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:
See previous diffs, same change as with analytics, don't stringify when creating the rows, but rather provide a closure to do that lazily, which reduces CPU (and mem) usage.
Note that this implicitly assumes the captures variables are immutable, as otherwise the semantics would change. But than again, if those variables are changed in the future, copyText will reflect their latest rather than initial state, which is better anyway.
Reviewed By: nikoant
Differential Revision: D21931748
fbshipit-source-id: 62325dd25953bab3a4e2e9a0d5dea3b3a7787bae
Summary:
`copyText` is generated when building rows for table, and is typically filled by JSON stringifying the incoming data. That is a pretty expensive process that could be done lazily. As shown in later diffs, this reduces the generation of rows for tables from ~18ms to ~3ms, which makes rendering a lot smoother.
(n.b. fixing the code duplication in the managedtables is part of the component lib plan)
Reviewed By: passy
Differential Revision: D21929660
fbshipit-source-id: 67cc69945e2bb28a6462a9d9ab765e33ced89378
Summary:
If the analytics plugin was in the foreground, and messages arrived in quick succession, some messages would not be processed.
Although the code was tested, there were not enough assertions to make sure the loop was correct. coverage !== correctness {emoji:1f605}
This fixes T68101450
Changelog: Fixed regression where analytics messages where lost
Reviewed By: jknoxville
Differential Revision: D21929679
fbshipit-source-id: c9fe2b18a249e40085d99914a809abf14fa7cf8f
Summary:
When trying to profile the Electron app, since recently the profiler hangs when trying to start the initializer. Found the following weird message in the console and googled the problem :-P
{F239554230}
Reviewed By: jknoxville
Differential Revision: D21929677
fbshipit-source-id: 7a9f150ebc8df30fa2890c9dbb79c8c144a5feae
Summary: Single quotes need to be double to be correctly recognized in queries. #thanks mweststrate for reminding me
Reviewed By: mweststrate
Differential Revision: D21908315
fbshipit-source-id: 6c13f9ddb527d1144cc3df90ba48bdb5f2ed4952
Summary:
In D21788243, John suggested the field should be calculated when needed not precomputed. This diff does so by moving calculation logic to the component and removing the field
This also fixes the crashing bug when switching to Structure tab, changing table, and switching back to Data tab.
Reviewed By: mweststrate
Differential Revision: D21906983
fbshipit-source-id: 5a9522a5ba3f504108282fb27deae25b5eadc693
Summary:
Encountered while trying to install the sample React Native app. Try the suggestion and the files changed.
This files are modified from `pod deintegrate` and `pod install` commands
Reviewed By: passy
Differential Revision: D21905958
fbshipit-source-id: 8b391acf5001c764bcfc0dd08b7ac5294ec9f5df
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: Added "description" field to PluginDetails interface and read it from package.json
Reviewed By: passy
Differential Revision: D21927391
fbshipit-source-id: 0513637d3afa3d8be8e2bc8ee87cc1d77c5e2250
Summary: Moved plugin installation utilities to "plugin-lib" module. There are no functional changes in this diff, just refactoring so that plugin installation utils can be re-used by different modules.
Reviewed By: passy
Differential Revision: D21927387
fbshipit-source-id: 340516a544f7cfdcc15d94660dcb74a012054531
Summary: Our external typings were only effective for the main "app" package. In this diff I've made them effective for all other workspaces too, and also cleaned up typescript configs.
Reviewed By: passy
Differential Revision: D21927361
fbshipit-source-id: ceb8009255583d969d79cc11b20dfe8b686f2fb3
Summary:
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md">websocket-extensions's changelog</a>.</em></p>
<blockquote>
<h3>0.1.4 / 2020-06-02</h3>
<ul>
<li>Remove a ReDoS vulnerability in the header parser (CVE-2020-7662, reported by
Robert McLaughlin)</li>
<li>Change license from MIT to Apache 2.0</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="8efd0cd6e3"><code>8efd0cd</code></a> Bump version to 0.1.4</li>
<li><a href="3dad4ad44a"><code>3dad4ad</code></a> Remove ReDoS vulnerability in the Sec-WebSocket-Extensions header parser</li>
<li><a href="4a76c75efb"><code>4a76c75</code></a> Add Node versions 13 and 14 on Travis</li>
<li><a href="44a677a9c0"><code>44a677a</code></a> Formatting change: {...} should have spaces inside the braces</li>
<li><a href="f6c50aba0c"><code>f6c50ab</code></a> Let npm reformat package.json</li>
<li><a href="2d211f3705"><code>2d211f3</code></a> Change markdown formatting of docs.</li>
<li><a href="0b620834cc"><code>0b62083</code></a> Update Travis target versions.</li>
<li><a href="729a465307"><code>729a465</code></a> Switch license to Apache 2.0.</li>
<li>See full diff in <a href="https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4">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
- `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 use these labels` will set the current labels as the default for future PRs for this repo and language
- `dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/facebook/flipper/network/alerts).
</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/1228
Reviewed By: mweststrate
Differential Revision: D21927370
Pulled By: nikoant
fbshipit-source-id: 6047bc0a5db1182c03742f459555f0df6bedbaac
Summary:
I noticed that Android device detection is _much_ faster than iOS, so I tried to optimize it a bit
1. Removed a test run on `instruments -s`. That command is really slow (easily 5 secs), and the check has become redundant since Doctor already does a similar check
2. When querying for devices, it tries to fetch emulated and physical devices in parallel, but only processes the results after both have finished. However, finding simulators is almost instant, while querying the physical devices takes ~5 seconds ore more. So in this diff we process the found devices till in parallel, rather than waiting until both have arrived
This diff reduces the time until the ios simulator + FB app is detected from 28 to 4 seconds on my machine.
Changelog: Improved the startup sequence for emulated iOS devices, so that devices and apps connect a lot faster after starting Flipper
Reviewed By: jknoxville
Differential Revision: D21907597
fbshipit-source-id: 73edf0b04c4ad8367e04557e33f4c0d9e9bcd710
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:
Fixes a regression (D21716761) in the layout of the accessibility inspector where the layout was accidentally switched from right to bottom.
Also made the region resizable while at it.
Changelog: Fix regression in the layout plugin where accessibility info was rendered in the wrong place
Reviewed By: cekkaewnumchai
Differential Revision: D21903760
fbshipit-source-id: 08623c17428e86ea77d8438e78766a308dbac1e6
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
Summary: Heard several reports that expanding device plugins by default would be preferred
Differential Revision: D21881338
fbshipit-source-id: 9f7444a4282684e4e0f046cf6a6679181ec55e73
Summary: Download updated plugins in background. This is implemented by periodical polling of Marketplace GraphQL API (interval 5 min by default). The feature is under GK flipper_plugin_auto_update, so for now it is enabled only for me.
Reviewed By: mweststrate
Differential Revision: D21863057
fbshipit-source-id: 51d8223ad4b2a928f7571ea480c10ba2efd9935d
Summary:
The last piece of the puzzle to get this working.
Now if a user has iOS development enabled in Flipper settings, and has XCode installed, we'll run the PortForwardingMacApp processes required to interact with iOS devices.
It's not great the way it starts the processes without any error checking, but since that's the way it currently works, I'm leaving it as it is for now.
Reviewed By: mweststrate
Differential Revision: D21881041
fbshipit-source-id: 1d1fdb7e0621cff88408bb707d768bb5c6bea0cc
Summary:
Bumps [iarna/toml](https://github.com/iarna/iarna-toml) from 2.2.3 to 2.2.5.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/iarna/iarna-toml/blob/v2.2.5/CHANGELOG.md">iarna/toml's changelog</a>.</em></p>
<blockquote>
<h1>2.2.5</h1>
<ul>
<li>Docs: Updated benchmark results. Add fast-toml to result list. Improved benchmark layout.</li>
<li>Update sgarciac/bombadil and ltd/j-toml in benchmarks and compliance tests.</li>
<li>Dev: Some dev dep updates that shouldn't have any impact.</li>
</ul>
<h1>2.2.4</h1>
<ul>
<li>Bug fix: Plain date literals (not datetime) immediately followed by another statement (no whitespace or blank line) would crash. Fixes <a href="https://github-redirect.dependabot.com/iarna/iarna-toml/issues/19">https://github.com/facebook/flipper/issues/19</a> and <a href="https://github-redirect.dependabot.com/iarna/iarna-toml/issues/23">https://github.com/facebook/flipper/issues/23</a>, thank you <a href="https://github.com/arnau">arnau</a> and <a href="https://github.com/jschaf">jschaf</a> for reporting this!</li>
<li>Bug fix: Hex literals with lowercase Es would throw errors. (Thank you <a href="https://github.com/DaeCatt">DaeCatt</a> for this fix!) Fixed <a href="https://github-redirect.dependabot.com/iarna/iarna-toml/issues/20">https://github.com/facebook/flipper/issues/20</a></li>
<li>Some minor doc tweaks</li>
<li>Added Node 12 and 13 to Travis. (Node 6 is failing there now, mysteriously. It works on my machine™, shipping anyway. �)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="9b386f8cda"><code>9b386f8</code></a> 2.2.5</li>
<li><a href="791b33c9d9"><code>791b33c</code></a> Appease standard</li>
<li><a href="650824710f"><code>6508247</code></a> Changelog for 2.2.5</li>
<li><a href="cf43fb4a91"><code>cf43fb4</code></a> Improve benchmark display (<a href="https://github-redirect.dependabot.com/iarna/iarna-toml/issues/25">https://github.com/facebook/flipper/issues/25</a>)</li>
<li><a href="b159345564"><code>b159345</code></a> Node6 inexplicably fails only travis</li>
<li><a href="4be75e2f42"><code>4be75e2</code></a> rimraf@3.0.2</li>
<li><a href="030e8c462b"><code>030e8c4</code></a> funstream@4.2.0</li>
<li><a href="1e9893beab"><code>1e9893b</code></a> weallcontribute@1.0.9</li>
<li><a href="64d4132160"><code>64d4132</code></a> docs(contributing): updated CONTRIBUTING.md</li>
<li><a href="d10e010597"><code>d10e010</code></a> js-yaml@3.13.1</li>
<li>Additional commits viewable in <a href="https://github.com/iarna/iarna-toml/compare/v2.2.3...v2.2.5">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=@iarna/toml&package-manager=npm_and_yarn&previous-version=2.2.3&new-version=2.2.5)
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/1214
Reviewed By: passy
Differential Revision: D21838146
Pulled By: mweststrate
fbshipit-source-id: bc41dfed2da639b17db3e81356d351001a5c84c5
Summary:
Part of https://github.com/facebook/flipper/issues/262
Use the user-configured idb install location instead of a hardcoded one.
Reviewed By: passy
Differential Revision: D21860236
fbshipit-source-id: 5c604d7b6361e7c93ab49d8a03a437dfce880ac1
Summary:
Part of https://github.com/facebook/flipper/issues/262
The default is the location on facebook computers, to avoid breaking it for existing users.
Reviewed By: passy
Differential Revision: D21860237
fbshipit-source-id: f4adfba0c63f7bb10751effb012dda734c455bee
Summary:
By default Node.JS has its internal certificate storage and doesn't use the system store. Because of this, it's impossible to access ondemand / devserver which are signed using some internal self-issued FB certificates. These internal certificates are automatically installed to MacOS system store on FB machines, so here we're using "mac-ca" library to load them into Node.JS when Flipper is running in dev mode.
For production version of Flipper we don't need to do this, because production certs are issued by DigiCert which is already trusted by node.js.
Reviewed By: passy
Differential Revision: D21862620
fbshipit-source-id: f7276e255fae1c208cb68af6632a303661af883e
Summary:
This is an automated PR to update the Podfile.lock.
- Make sure that the Podfile.lock contains latest FlipperKit and Flipper pod versions.
- Also make sure that all the dependencies are updated to the latest one.
- This is auto-generated by [create-pull-request](https://github.com/peter-evans/create-pull-request)
Pull Request resolved: https://github.com/facebook/flipper/pull/1221
Reviewed By: passy
Differential Revision: D21863090
Pulled By: priteshrnandgaonkar
fbshipit-source-id: c6b06a6dbc7039ef099462028f37a1761c6e071b
Summary: The holier-than-thou warnings of metro about require cycles are annoying. Require cycles are generally speaking well handles by ESM, and cause only harm if modules themselves are stateful, which is a bad smell. But warning for every cycle is just a flooding of false positives and removes the insentive to drop actual warnings.
Reviewed By: jknoxville
Differential Revision: D21859908
fbshipit-source-id: 66ec9a619a3737ccab5b16d11be5623d1d97c9f6
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:
See previous diff.
Achieves the same optimization as in the mentioned diff, but this time by only debouncing the messages as they arrive over the socket, and not the state updates caused by Redux directly. This means that plugin rendering won't be debounced anymore until we address this more fundamentally.
With this change there is a double level buffering:
1. A buffer that stores all incoming messages (that are not replies to requests)
2. A buffer that stores messages we are interested in in the plugin queue, unless the plugin is active (this we already had).
This still fixes the issue that too chatty plugins cause to many updates foreground plugin (the problem we tried to fix originally), without debouncing plugin rendering if it is needed to update for any other reason.
Another nice benefit is that previously every received message would trigger a store update in Redux which would cause all connected components to evaluate their subscriptions (and then bail out in the typical case). Now we will only update the redux store every 200 ms.
Changelog: Foreground plugins will burn less CPU when they're very chatty
Reviewed By: jknoxville
Differential Revision: D21858849
fbshipit-source-id: c72352e569a8a803bbedffb71b17b11fcefee043
Summary:
This change kinda reverts D21690494, which broke the layout plugin.
The layout plugin broken because it's implementation assumes that if `this.props.setPersisted` state is called, those changes are immediately reflected in `this.props.persistedState`. For that to work it means that a render needs to be triggered immediately and synchronously by React.
That is a troublesome assumption (React doesn't actually guarantee this) and very likely to break in the future if implementation details change in React or Redux. However, since this is an assumption here, probably more plugins rely on that behavior, so this diff reverts that change. I'll add it the the component library plan to fundamentally address this.
The next diff will re-introduce debouncing, just at a different code point.
Reviewed By: jknoxville
Differential Revision: D21840282
fbshipit-source-id: af69dbded80aa73dfd6558d7cb0268ea0b1c504a
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:
Bumps [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) from 4.0.2 to 4.0.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/facebook/react/blob/master/packages/eslint-plugin-react-hooks/CHANGELOG.md">eslint-plugin-react-hooks's changelog</a>.</em></p>
<blockquote>
<h2>4.0.3</h2>
<ul>
<li>Remove the heuristic that checks all Hooks ending with <code>Effect</code> due to too many false positives. (<a href="https://github.com/gaearon">gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19004">#19004</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/facebook/react/commits/HEAD/packages/eslint-plugin-react-hooks">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=eslint-plugin-react-hooks&package-manager=npm_and_yarn&previous-version=4.0.2&new-version=4.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/1211
Reviewed By: passy
Differential Revision: D21838130
Pulled By: mweststrate
fbshipit-source-id: 624154b78f5bbb773529ac4779aaa97c85b4a146
Summary:
per title
Also, edit file to match tests
Reviewed By: mweststrate
Differential Revision: D21819748
fbshipit-source-id: b697ae9915c53162624ba90fc867676c9ca8733b
Summary:
Bumps [eslint-plugin-flowtype](https://github.com/gajus/eslint-plugin-flowtype) from 4.6.0 to 4.7.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/gajus/eslint-plugin-flowtype/releases">eslint-plugin-flowtype's releases</a>.</em></p>
<blockquote>
<h2>v4.7.0</h2>
<h1><a href="https://github.com/gajus/eslint-plugin-flowtype/compare/v4.6.0...v4.7.0">4.7.0</a> (2020-03-24)</h1>
<h3>Features</h3>
<ul>
<li>require-exact-type detects nested objects (<a href="https://github-redirect.dependabot.com/gajus/eslint-plugin-flowtype/issues/441">https://github.com/facebook/flipper/issues/441</a>) (<a href="463b74e40b">463b74e</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="463b74e40b"><code>463b74e</code></a> feat: require-exact-type detects nested objects (<a href="https://github-redirect.dependabot.com/gajus/eslint-plugin-flowtype/issues/441">https://github.com/facebook/flipper/issues/441</a>)</li>
<li>See full diff in <a href="https://github.com/gajus/eslint-plugin-flowtype/compare/v4.6.0...v4.7.0">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=eslint-plugin-flowtype&package-manager=npm_and_yarn&previous-version=4.6.0&new-version=4.7.0)
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/1194
Reviewed By: passy
Differential Revision: D21838073
Pulled By: mweststrate
fbshipit-source-id: 276cd5a3959322dd5980d4a89c890d20cf3ab4f0
Summary:
I just noticed that the deeplink of the support form didn't select the right group. It got broken after the recent design change of the support form. This diff fixes that issue.
I have also added unit tests.
Reviewed By: passy
Differential Revision: D21817153
fbshipit-source-id: 06298b3b60cfc1bd77bea6c1f902b983474808dc
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