Summary: Minimal change to be able to filter crashes in the notifications tab, to filter out recurring/irrelevant crashes such as the one in https://github.com/facebook/flipper/issues/609
Reviewed By: passy
Differential Revision: D18223356
fbshipit-source-id: 8cf2187d53c9fec98c9a35edefb0da5783fe7c8e
Summary: This diff calls JSON.stringify on the final export object instead of the custom serializer. As the custom serializer is slower, because it has to check for different types on its children before serializing it. Which adds to the complexity. The time gain which we get is 3x, that is with this change the export is 3 times faster. We required custom serializer, because the logs had `Date` which is not serializable. So that is being taken care while importing it.
Reviewed By: jknoxville
Differential Revision: D18171202
fbshipit-source-id: cd1b59b74dabb4c35a032dc7b54f183a68e37823
Summary: Before this diff whenever one called serialize method it showed `Serializing Flipper ` msg without showing the explicit details of which data we are serializing. Thus with this diff one can pass the status msg as an argument which will be displayed while serializing.
Reviewed By: jknoxville
Differential Revision: D18173024
fbshipit-source-id: a4e7e073498993626204061d4e774099f00b8c5a
Summary: This diff refactors the Select plugin sheet to have multi select and single select options. Also renamed the class names and variables, as its business logic is quite generic.
Reviewed By: jknoxville
Differential Revision: D18118359
fbshipit-source-id: 2f1a6840032b81c5fdd9af9f6e69ea2ff611bf13
Summary:
D17877108 inadvertently introduced a bug because `fs` and `fs-extra` behave differently and apparently wrapping `exists` which is already async in another `promisify` ends up raising the result as an exception (in this case throwing "true" or "false" as an error instead of yielding it back). Annoyingly, TypeScript's type system doesn't catch this. :/
This fixes the invocation and restores the install/remove functionality.
Reviewed By: jknoxville
Differential Revision: D18199958
fbshipit-source-id: f5835d8912bfe1191a12a318103bfc1fb7d776a3
Summary:
This PR introduces the possibility to group plugins in categories.
The category can be determined by setting the `category` field in `package.json`.
Categories are sorted alphabetically.
Categories are shown below all uncategorized items.
Within categories, items are sorted as before: by last recently usage.
Design wise, the category name might now look more prominent than the app name, this is to be addressed in a follow up PR.
Reviewed By: jknoxville
Differential Revision: D18169459
fbshipit-source-id: 77deb0f27a0462a0d449944ddc262396160687a2
Summary:
This diff fixes the broken UI of advertising bar when window size is too small
Bug:
{F219320329}
Reviewed By: jknoxville
Differential Revision: D18114230
fbshipit-source-id: fda321af761f9707077ded5d53a51e79f4cd26d6
Summary:
This plugin simply plots a graph of RAM usage per app (with some built-in apps are excluded).
Can be useful for debugging memory spikes.
{F218362880}
Reviewed By: jknoxville
Differential Revision: D18013073
fbshipit-source-id: 93e2f87280a734d1d05f4f5b600f7b81024bd348
Summary: This diff shows marketing bar for support feature when someone inspects the litho view. Once it is inspected it will shown for the rest of the time till the plugin is unmounted.
Reviewed By: jknoxville
Differential Revision: D18086347
fbshipit-source-id: cb906614f571e8ece2293b028f809d1aa5c211e5
Summary:
Some of the tests need to mock behavior of fb-internal dependencies.
These fb deps get swapped out with a babel transform and it's become hard to maintain now that we're mocking them as well.
For simplicity of mocking, moving them out of the public repo, they'll get run on PRs.
Reviewed By: priteshrnandgaonkar
Differential Revision: D18086247
fbshipit-source-id: 001e258e00da67a112cb754e851253e5480e578a
Summary:
It's already a promise. With the next upgrade this otherwise causes
some nasty type errors due to overloading.
Reviewed By: jknoxville
Differential Revision: D18059641
fbshipit-source-id: 93cee95d7bbf767ff6276a0946262bf83587c728
Summary: This diff fixes an issue where error messages that are to long pushed the buttons out of view, or the other rows too much down.
Reviewed By: passy
Differential Revision: D18083659
fbshipit-source-id: 54bdae682e6e756c9dad1a8cd247dd694ae0eef2
Summary:
It shouldn't make a difference which one we import because they're
both mocked but only one works in the GitHub export.
Pull Request resolved: https://github.com/facebook/flipper/pull/599
Test Plan: yarn test; CI
Reviewed By: jknoxville
Differential Revision: D18083321
Pulled By: passy
fbshipit-source-id: 6d04390b4403bf291c201d3c17902304ea9b1c6e
Summary: To make (accidental) errors more visible to developers of Flipper, all uncaught and FBLogger logged errors will be shown in the UI and prefixed with `[DEV]`. This is only done in non-production builds
Reviewed By: jknoxville
Differential Revision: D18061174
fbshipit-source-id: 9dab0e8d34396b0cb421a4d4e6fc14c81447d190
Summary:
When a toggled section is frozen, it already has a greyed out overlay over the whole thing.
So there's no need for another one covering the indented section.
Reviewed By: passy
Differential Revision: D18063767
fbshipit-source-id: a4d5992ecf61f036a23f619e9cf64d59150a41d6
Summary: Added a slug a while ago and it looks a bit better when shown in the bugnub.
Reviewed By: cekkaewnumchai
Differential Revision: D18083274
fbshipit-source-id: 5a9c8c126b5dcee92a697096ac3393a93a1690c3
Summary: Improved the display of error messages. Where previously only one error message could be displayed (quite obtrusively), with this change multiple errors can now be displayed and stack traces and further info can be hidden.
Reviewed By: passy
Differential Revision: D18036569
fbshipit-source-id: 2bc3dfa7a5196f931370a6e6dbf27c55b6cfb2bf
Summary: This got broken during TS migration. Plugin failures were being logged as platform failures, and showing up in the wrong graphs.
Reviewed By: passy
Differential Revision: D18059046
fbshipit-source-id: 8209a0e852f62e221bf64cb5091115e3cac09fd9
Summary: This makes use of the previously set up new settings. The logic is a tiny bit difficult to follow so I wanted to make sure it's not lost in the noise of the previous diff.
Reviewed By: jknoxville
Differential Revision: D18036538
fbshipit-source-id: db3bbce4361862cee479aed70578a4bcbde2c46d
Summary: Allows users to override the GK status of prefetching. It is implemented as a Tri-State. "Unset" means that the local Flipper config won't take precedent over the GK setting and will leave it unchanged. If a user interacts with the setting, it gets persisted into the config and will from then-on override the GK, meaning that the user has an opt-in mechanism and if we open the GK to more people, they effectively have an opt-out.
Reviewed By: jknoxville
Differential Revision: D18008259
fbshipit-source-id: bdfde9a8b9acf43aa60c84800a7979a29a4e9364
Summary:
The config fields do some async validity checking and possibly update their own state after render. So their renders need to be wrapped in `act()` so that it includes their updates too.
This fixes those tests, and also adds mocking for valid and invalid file paths.
Reviewed By: passy
Differential Revision: D18036449
fbshipit-source-id: 7eec2992313c77e539da0c375966c7c65c30732d
Summary:
Centralizes the restart logic.
And adds ability for it to work in dev mode as well.
Reviewed By: passy
Differential Revision: D18008197
fbshipit-source-id: b76ac7935d5859dfdbb8cf593462f8ac02348181
Summary:
## The devDependency [uglify-js](https://github.com/mishoo/UglifyJS2) was updated from `3.6.2` to `3.6.3`.
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:** [alexlamsl](https://www.npmjs.com/~alexlamsl)
**License:** BSD-2-Clause
<details>
<summary>Release Notes for v3.6.3</summary>
<p> </p>
</details>
<details>
<summary>Commits</summary>
<p>The new version differs by 18 commits.</p>
<ul>
<li><a href="6b4886c908"><code>6b4886c</code></a> <code>v3.6.3</code></li>
<li><a href="0201cb4b52"><code>0201cb4</code></a> <code>fix corner case in <code>unused</code> (#3499)</code></li>
<li><a href="cd072317d0"><code>cd07231</code></a> <code>fix corner case in <code>unused</code> (#3496)</code></li>
<li><a href="0785a15ace"><code>0785a15</code></a> <code>fix corner case in <code>dead_code</code> & <code>ie8</code> (#3494)</code></li>
<li><a href="b1279a46d9"><code>b1279a4</code></a> <code>fix corner case in <code>sequences</code> (#3491)</code></li>
<li><a href="b571619d31"><code>b571619</code></a> <code>handle <code>throw</code> of non-<code>Error</code>s gracefully (#3492)</code></li>
<li><a href="7b5350b459"><code>7b5350b</code></a> <code>tweak Travis CI execution environment (#3489)</code></li>
<li><a href="1549db70e6"><code>1549db7</code></a> <code>fix corner case in <code>ie8</code> (#3487)</code></li>
<li><a href="8ff9a3c8fb"><code>8ff9a3c</code></a> <code>fix corner cases in <code>ie8</code> (#3485)</code></li>
<li><a href="91cae51d8f"><code>91cae51</code></a> <code>fix corner case in <code>evaluate</code> & <code>ie8</code> (#3483)</code></li>
<li><a href="8af2f5fbcf"><code>8af2f5f</code></a> <code>fix corner case in <code>rename</code> (#3481)</code></li>
<li><a href="86a8016323"><code>86a8016</code></a> <code>fix corner case in <code>ie8</code> & <code>mangle</code> (#3479)</code></li>
<li><a href="009dcdae01"><code>009dcda</code></a> <code>avoid mangling of <code>MutationObserver</code> properties (#3477)</code></li>
<li><a href="f86f615d83"><code>f86f615</code></a> <code>fix corner case in <code>ie8</code> & <code>mangle</code> (#3476)</code></li>
<li><a href="d3d1d11926"><code>d3d1d11</code></a> <code>fix corner case in <code>ie8</code> & <code>rename</code> (#3474)</code></li>
</ul>
<p>There are 18 commits in total.</p>
<p>See the <a href="c3ca293e6b...6b4886c908">full diff</a></p>
</details>
---
<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/594
Reviewed By: jknoxville
Differential Revision: D18035631
Pulled By: passy
fbshipit-source-id: 0de12654bd434ccf29e67907febeb1aca85558c9
Summary:
Planning to add some FB-only modules to it and is the easiest
way to prevent it from breaking in OSS.
Following commit is also already quite large and this makes it a little more manageable.
Reviewed By: priteshrnandgaonkar
Differential Revision: D18009280
fbshipit-source-id: 73f2488c352547b3e489272960efa4d6e017f294
Summary:
Replacing our custom electron-stubs transform with a mocked module.
This will now be the default impl for tests, and we can override it by mocking as needed.
Reviewed By: passy
Differential Revision: D17979659
fbshipit-source-id: a26994158d439fa7dc1ca38225294106fc4e1559
Summary: This diff shows the support form option for the deeplink users too even if they are not part of GK. As I discovered a bug where the user opened the Flipper app thru deeplink and then the screen showed temporarily till the device connected and then the default plugin was displayed. In this case there is no way to navigate back to the form.
Reviewed By: jknoxville
Differential Revision: D17978648
fbshipit-source-id: 23ae3660e499a959733753b49cc987f2e381bf6b
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/592
Finally we can join the 21st century and use `jest.mock` in tests!
I'm enabling the ts-jest transform to `*/__tests__/*.tsx` files. This takes care of transforming the typescript, and preserves jest mock capabilities.
I have left the existing custom transform on all other files, so they will continue to work as usual.
Caveats:
* Our existing custom transforms will no longer be applied in tests.
* With our current suite this makes no difference. But bear in mind things like importing directly from 'flipper' instead of the actual files, won't work. However, I don't see this being a problem, as I think they'll only be needed inside the actual product code.
Reviewed By: passy
Differential Revision: D17978753
fbshipit-source-id: df7b312b5dd5592e4aa4f8df605f5952ea3158e9
Summary:
Let’s get started with automated dependency management for flipper 💪🔒 Greenkeeper has found a `yarn.lock` file in this repository. Greenkeeper supports lockfile updates for public packages. If you use private packages in your repository, please use [greenkeeper-lockfile](https://github.com/greenkeeperio/greenkeeper-lockfile) to make sure these can get updated as well.
This pull request **updates all your dependencies to their latest version**. Having them all up to date really is the best starting point for keeping up with new releases. Greenkeeper will look out for further dependency updates and make sure to handle them in isolation and in real-time, but only after **you merge this pull request**.
**Important: Greenkeeper will only start watching this repository’s dependency updates after you merge this initial pull request**.
📦📦 Greenkeeper has detected multiple `package.json` files. Since this repo already has a `greenkeeper.json` config file with defined groups, Greenkeeper has only checked whether they’re still valid.
---
<details>
<summary>🏷 How to check the status of this repository</summary>
Greenkeeper adds a badge to your README which indicates the status of this repository.
This is what your badge looks like right now 👉 
</details>
<details>
<summary>🙈 How to ignore certain dependencies</summary>
You may have good reasons for not wanting to update to a certain dependency right now. In this case, you can [change the dependency’s version string in the `package.json` file back to whatever you prefer](https://github.com/facebook/flipper/edit/greenkeeper/initial/package.json).
To make sure Greenkeeper doesn’t nag you again on the next update, add a `greenkeeper.ignore` field to your `package.json`, containing a list of dependencies you don’t want to update.
```js
// package.json
{
…
"greenkeeper": {
"ignore": [
"package-names",
"you-want-me-to-ignore"
]
}
}
```
</details>
<details>
<summary>👩💻 How to update this pull request</summary>
```bash
# Change into your repository’s directory
git fetch --all
git checkout greenkeeper/initial
npm install-test
# Adapt your code until everything works again
git commit -m 'chore: adapt code to updated dependencies'
git push https://github.com/facebook/flipper.git greenkeeper/initial
```
</details>
<details>
<summary>✨ How do dependency updates work with Greenkeeper?</summary>
After you merge this pull request, **Greenkeeper will create a new branch whenever a dependency is updated**, with the new version applied. The branch creation should trigger your testing services and check whether your code still works with the new dependency version. Depending on the the results of these tests Greenkeeper will try to open meaningful and helpful pull requests and issues, so your dependencies remain working and up-to-date.
```diff
- "underscore": "^1.6.0"
+ "underscore": "^1.7.0"
```
The above example shows an in-range update. `1.7.0` is included in the old `^1.6.0` range, because of the [caret `^` character ](https://docs.npmjs.com/misc/semver#ranges).
When the test services report success Greenkeeper will silently delete the branch again, because no action needs to be taken – everything is fine.
However, should the tests fail, Greenkeeper will create an issue to inform you about the problem immediately.
This way, you’ll never be surprised by a dependency breaking your code. As long as everything still works, Greenkeeper will stay out of your way, and as soon as something goes wrong, you’ll be the first to know.
```diff
- "lodash": "^3.0.0"
+ "lodash": "^4.0.0"
```
In this example, the new version `4.0.0` is _not_ included in the old `^3.0.0` range.
For version updates like these – let’s call them “out of range” updates – you’ll receive a pull request.
This means that **you no longer need to check for new versions manually** – Greenkeeper will keep you up to date automatically.
These pull requests not only serve as reminders to update: If you have solid tests and good coverage, and the pull requests passes those tests, you can very likely just merge it and release a new version of your software straight away :shipit:
To get a better idea of which ranges apply to which releases, check out the extremely useful [semver calculator](https://semver.npmjs.com/) provided by npm.
</details>
<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>
---
Good luck with your project and see you soon ✨
Your [Greenkeeper](https://greenkeeper.io) bot 🌴
Pull Request resolved: https://github.com/facebook/flipper/pull/591
Reviewed By: jknoxville
Differential Revision: D17951583
Pulled By: passy
fbshipit-source-id: 6ad2bfe7d4a9f7ed4920e50af36e194dc5b1cb93
Summary:
Last one blocking Greenkeeper.
Only change affecting us appears to be where to import from.
Reviewed By: jknoxville
Differential Revision: D17932089
fbshipit-source-id: b913defdabd99721886557d7c92afb8181ca1803
Summary: This diff adds the telemetry to track the source of the support form being launched.
Reviewed By: passy
Differential Revision: D17908752
fbshipit-source-id: 275812992884a471844fda40d1f636815a4a2346
Summary:
Instead of replacing the buttons, this shows an error next to
them and gives the opportunity to retry.
Reviewed By: jknoxville
Differential Revision: D17907389
fbshipit-source-id: 15b27802671b39c53b32d01f1d2bcf8c67fd2647
Summary:
Close https://github.com/facebook/flipper/pull/580
This enables Greenkeeper with some caveats:
- I disabled a bunch of upgrades we know currently break:
- React
- Emotion
- Electron/Electron-Builder
- The bot isn't CLA-whitelisted yet, so we won't be able to directly import yet.
- It might actually be better to have automatic tasks created for the dependencies above breaking.
- Something changed in the prop types and required `StatusBar` to have its signature changed.
allow-large-files
Reviewed By: jknoxville
Differential Revision: D17906693
fbshipit-source-id: f73fe231518f56a6f6114f761d5e5e5528d0d487
Summary: This diff adds the support to close the dialog automatically for the support form.
Reviewed By: passy
Differential Revision: D17899862
fbshipit-source-id: 9d9cd14556a4cebe60f8cc1d082be3e439998e9c
Summary: A significant proportion of CPU time when doing a target selection in the layout plugin, was spent rendering Glyphs. They shouldn't really be doing anything expensive in render, but since they already are, this will make sure they don't re-render unnecessarily.
Reviewed By: passy
Differential Revision: D17906723
fbshipit-source-id: ece143f65fd46d8582e21455732049368f301186
Summary: Not a fan of the long lines, but if that's where prettier is going, let's roll with it.
Reviewed By: jknoxville
Differential Revision: D17905599
fbshipit-source-id: c4232d46d2ec0b7c743f6afd8349106c85f013b9
Summary:
Noticed a bunch of failures [here](https://our.intern.facebook.com/intern/scuba/query/?dataset=flipper_session_event_stats_scuba&drillstate=%7B%22sampleCols%22%3A[%22errors%22%2C%22event%22]%2C%22cols%22%3A[]%2C%22derivedCols%22%3A[%7B%22name%22%3A%22perfect_session%22%2C%22sql%22%3A%22CAST_AS_DOUBLE(no_failures)%22%2C%22type%22%3A%22Numeric%22%7D]%2C%22mappedCols%22%3A[]%2C%22enumCols%22%3A[]%2C%22return_remainder%22%3Afalse%2C%22should_pivot%22%3Afalse%2C%22is_timeseries%22%3Atrue%2C%22hideEmptyColumns%22%3Afalse%2C%22start%22%3A%22-90%20days%22%2C%22samplingRatio%22%3A1%2C%22compare%22%3A%22comparison%22%2C%22axes%22%3A%22linked%22%2C%22bucket%22%3A%221%22%2C%22overlay_types%22%3A[]%2C%22minBucketSamples%22%3A%22%22%2C%22dimensions%22%3A[%22time%22%2C%22event%22]%2C%22scale_type%22%3A%22absolute%22%2C%22num_samples%22%3A%22100%22%2C%22metric%22%3A%22avg%22%2C%22fill_missing_buckets%22%3A%22connect%22%2C%22smoothing_bucket%22%3A%221%22%2C%22top%22%3A20%2C%22markers%22%3A%22%22%2C%22timezone%22%3A%22America%2FLos_Angeles%22%2C%22end%22%3A%22now%22%2C%22time_bucket%22%3A%22604800%22%2C%22compare_mode%22%3A%22normal%22%2C%22aggregateList%22%3A[]%2C%22param_dimensions%22%3A[]%2C%22modifiers%22%3A[]%2C%22order%22%3A%22none%22%2C%22order_desc%22%3Atrue%2C%22filterMode%22%3A%22DEFAULT%22%2C%22constraints%22%3A[[%7B%22column%22%3A%22plugin%22%2C%22op%22%3A%22eq%22%2C%22value%22%3A[%22[%5C%22null%5C%22]%22]%7D%2C%7B%22column%22%3A%22is_headless%22%2C%22op%22%3A%22!substr%22%2C%22value%22%3A[%22[%5C%22true%5C%22]%22]%7D%2C%7B%22column%22%3A%22event%22%2C%22op%22%3A%22substr%22%2C%22value%22%3A[%22[%5C%22getInstalledPlugins%5C%22]%22]%7D]]%2C%22c_constraints%22%3A[[]]%2C%22b_constraints%22%3A[[]]%2C%22metrik_view_params%22%3A%7B%22xaxis_type%22%3A%22auto%22%2C%22should_use_legacy_colors%22%3Afalse%2C%22view%22%3A%22Samples%22%2C%22width%22%3A%222126%22%2C%22height%22%3A%221132%22%2C%22y_max_hint%22%3A%221%22%2C%22yaxis_settings%22%3A[%7B%22yaxis_title%22%3A%22%22%2C%22yaxis_series_name%22%3A%22%22%2C%22yaxis_width%22%3A%220%22%2C%22yaxis_format%22%3A%22%25P%22%7D]%2C%22tooltip_outside%22%3Atrue%2C%22state%22%3A%22published%22%2C%22use_y_axis_hints_as_limits%22%3Atrue%2C%22legend_mode%22%3A%22nongrid%22%2C%22connect_nulls%22%3Atrue%2C%22yaxismin%22%3A0%2C%22title%22%3A%22Operation%20success%20rate%20over%20time%20(human)%22%2C%22tooltip_disabled%22%3Atrue%2C%22timezone_offset%22%3A420%2C%22y_min_hint%22%3A0%2C%22legend_position%22%3A%22none%22%2C%22title_use_v2%22%3Atrue%7D%7D&pool=uber&view=Samples&dashboard_id&tab_id&widget_id&widget_piece_id).
This fixes it.
Reviewed By: passy
Differential Revision: D17877108
fbshipit-source-id: 85586a1ce65033b98d793746c611b44f68e13eff
Summary: Take a snapshot with each field adjusted to prevent accidental changes.
Reviewed By: priteshrnandgaonkar
Differential Revision: D17832181
fbshipit-source-id: 016f99ec032036993a40fea310c6fd9887da6c38
Summary:
Adds an iOS "setting" to the settings, but it's automatically set based on xcode-select for minimum required effort.
Helpful text added to tell you how to enable it if it's disabled.
Reviewed By: passy
Differential Revision: D17830940
fbshipit-source-id: 53e1e40c5b96e29b30036259cc774ab14097a1da