Summary:
This is causing our OSS requirements to fail because
the dependency resolution causes ws 1.x to be pulled in,
which has a security vuln. Not in any exploitable code paths
for us, ruining a perfectly good otherwise green checkmark.
Reviewed By: jknoxville
Differential Revision: D18807775
fbshipit-source-id: e2391d957183ba25ec8ad02854c4e821ec8dc3aa
Summary: Slightly refactored JS api to make it work with new js app launcher
Reviewed By: jknoxville
Differential Revision: D18761757
fbshipit-source-id: edb8e5907765a9354e4c636be97d3cf6df63ee98
Summary:
Original commit changeset: ff84080d43fa
This re-adds JS client support. The original version had a small bug that inadvertantly wrapped support for Android emulators in the dropdown in a GK that was only meant to cover JS clients. This is addressed here.
Reviewed By: timur-valiev
Differential Revision: D18707485
fbshipit-source-id: ceea8e279a21111f96073f8b784e852f6313e2a4
Summary:
Original commit changeset: eddfbb3571c7
Original commit changeset: f7300f527b65
Pains me to do this, but probably our best chance right now to get a release out.
Reviewed By: cekkaewnumchai
Differential Revision: D18687890
fbshipit-source-id: 05d13aca71457ca6dd19f5b45d58158ae223e66f
Summary:
Original commit changeset: 56d1ca1a60ed
This broke Android support in some instances. We haven't had a chance to investigate this yet, but this should cleanly reapply, so we can figure out what happened after the release.
Reviewed By: cekkaewnumchai
Differential Revision: D18688590
fbshipit-source-id: ff84080d43fa481cc8c8c669a76aed15d0f8aa56
Summary:
### Connecting Flipper with JS apps by using electron's BrowserWindow and IPC
1. UI: there is a menu item in Devices tab which opens JS Emulator Launcher Sheet. Here we can configure URL to open and initial size of the window.
2. BrowserWindow, preloaded js: there is SupportJSClientPreload.js which initialize communication between flipper and app via electron's ipc
3. On flipper's side there is src/utils/js-client/serverUtils.tsx which contains most of JS emulator related code
4. Extracting of FlipperClientConnection: since we don't use RScocket to communicate with JS app I extracted needed methods to FlipperClientConnection (located in Client) and partly implemented them in JSClientFlipperConnection (requestResponse is just send a message now, doesn't return actual result)
Reviewed By: jknoxville
Differential Revision: D18572882
fbshipit-source-id: 56d1ca1a60ed2e51329b917021a09382cbb1ceec
Summary:
## The dependency [yargs](https://github.com/yargs/yargs) was updated from `14.2.1` to `15.0.1`.
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:** [bcoe](https://www.npmjs.com/~bcoe)
**License:** MIT
<details>
<summary>Release Notes for yargs v15.0.1</summary>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> cliui, find-up, and string-width, all drop Node 6 support (<a href="https://www.github.com/yargs/yargs/issues/1479">#1479</a>) (<a href="6a9ebe2d95">6a9ebe2</a>)</li>
</ul>
</details>
<details>
<summary>Commits</summary>
<p>The new version differs by 22 commits ahead by 22, behind by 2.</p>
<ul>
<li><a href="aa09faf708"><code>aa09faf</code></a> <code>chore: release 15.0.1 (#1480)</code></li>
<li><a href="6a9ebe2d95"><code>6a9ebe2</code></a> <code>fix(deps): cliui, find-up, and string-width, all drop Node 6 support (#1479)</code></li>
<li><a href="5cc2b5e15b"><code>5cc2b5e</code></a> <code>chore: release 15.0.0 (#1462)</code></li>
<li><a href="62a114a90a"><code>62a114a</code></a> <code>force build</code></li>
<li><a href="1840ba22f1"><code>1840ba2</code></a> <code>feat: expose <code>Parser</code> from <code>require('yargs/yargs')</code> (#1477)</code></li>
<li><a href="afd5b4871b"><code>afd5b48</code></a> <code>fix(docs): update boolean description and examples in docs (#1474)</code></li>
<li><a href="c10c38cca0"><code>c10c38c</code></a> <code>feat(deps)!: yargs-parser now throws on invalid combinations of config (#1470)</code></li>
<li><a href="0cba424d8b"><code>0cba424</code></a> <code>build: switch to release-please for releases (#1471)</code></li>
<li><a href="445bc587d8"><code>445bc58</code></a> <code>chore: update engines to note Node 6 is dropped (#1469)</code></li>
<li><a href="52d875a46d"><code>52d875a</code></a> <code>test: add additional test for 1459</code></li>
<li><a href="12c82e6266"><code>12c82e6</code></a> <code>fix: stop-parse was not being respected by commands (#1459)</code></li>
<li><a href="b4812ac99a"><code>b4812ac</code></a> <code>test: add tests for argsert warning to display positional information (#1468)</code></li>
<li><a href="10f10ee189"><code>10f10ee</code></a> <code>test: cover missing filter arg in obj-filter (#1467)</code></li>
<li><a href="cb0396fda2"><code>cb0396f</code></a> <code>build: switch to c8 for coverage (#1464)</code></li>
<li><a href="ebee59d902"><code>ebee59d</code></a> <code>fix!: update to yargs-parser with fix for array default values (#1463)</code></li>
</ul>
<p>There are 22 commits in total.</p>
<p>See the <a href="2fe88f5e22...aa09faf708">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/643
Reviewed By: cekkaewnumchai
Differential Revision: D18595724
Pulled By: passy
fbshipit-source-id: d2d1352d27e3059334ba71bfaa02929ef22e6861
Summary:
## The dependency [mem](https://github.com/sindresorhus/mem) was updated from `5.1.1` to `6.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:** [sindresorhus](https://www.npmjs.com/~sindresorhus)
**License:** MIT
[Find out more about this release](https://github.com/sindresorhus/mem).
---
<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/635
Reviewed By: jknoxville
Differential Revision: D18449137
Pulled By: passy
fbshipit-source-id: 2ca358574ef710e0113e092d2d887ef2c2ac8047
Summary:
When the CPU or kaois plugins are started, they show a buffer deprecated warning, caused by the fact that they ship their own adbkit version, which is unpatched.
This diff makes sure that the adbkit as shipped with Flipper is used instead.
Reviewed By: jknoxville
Differential Revision: D18327441
fbshipit-source-id: 9cab23b9701adc070210cc4133fc8760031bd1d7
Summary: Make sure that `.native.js` modules resolutions are _NOT_ prefered over `.js` modules when building flipper or flipper plugins
Reviewed By: jknoxville
Differential Revision: D18297580
fbshipit-source-id: 73f9114d19eb0934cdf69d9668b582966aedc756
Summary: `compilePlugins.js` was still flow typed, but our current formatting setup breaks the file as soon as it is changed. This diff removes the (minimal) flow types and applies prettier
Reviewed By: jknoxville
Differential Revision: D18297696
fbshipit-source-id: 4af2318083188d8758981183f10ccd80e14feea2
Summary:
## The dependency [metro](https://github.com/facebook/metro) was updated from `0.56.3` to `0.57.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:** [metro-bot](https://www.npmjs.com/~metro-bot)
**License:** MIT
[Find out more about this release](https://github.com/facebook/metro).
---
<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/622
Reviewed By: jknoxville
Differential Revision: D18268960
Pulled By: passy
fbshipit-source-id: 7dc99729f72978786f301c57b6b0f7d93b49674f
Summary:
D18169584 introduced state error which I didn't notice. This diff reverted the diff.
`hg backout D18169584`
Original commit changeset: 77a8b034c5e4
Reviewed By: jknoxville
Differential Revision: D18203354
fbshipit-source-id: 3e281f1e8c7e1d2bf41665adfa5ce5f13daca3a1
Summary: Update and include `react-redux` to Greenkeeper
Reviewed By: passy
Differential Revision: D18169584
fbshipit-source-id: 77a8b034c5e4a13a2ba6c82895e1aee9d852375e
Summary:
## The dependency [ws](https://github.com/websockets/ws) was updated from `7.1.2` to `7.2.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:** [lpinca](https://www.npmjs.com/~lpinca)
**License:** MIT
[Find out more about this release](https://github.com/websockets/ws).
---
<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/596
Differential Revision: D18032150
Pulled By: passy
fbshipit-source-id: 44f6156cecb879f523dbe93d22f8b65dbe13646a
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:
We were losing the first argument of every console.error call during tests.
This happens to be useful stuff, like react telling you how to do better testing etc, and explains the weird looking error output from the ConfigField tests.
Reviewed By: passy
Differential Revision: D17931532
fbshipit-source-id: cfeb834a4646ef68ac55f81a269bcfef7a25ea31
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: A settings screen has been added where android home can be set. This changes the downstream code to use this value rather than the `env.PATH` variable.
Reviewed By: passy
Differential Revision: D17713288
fbshipit-source-id: 51551652c9c2f468e1117c18785123348e4b4576
Summary:
Currently Flipper.init is called as soon as the script loads.
However, if the store takes a bit longer than usual to get rehydrated, then this init call can get called before it has been set.
Fixing it by using a specific event instead of the generic `onload`.
Reviewed By: passy
Differential Revision: D17711399
fbshipit-source-id: fcaf9e5943bfd15359038b8e3722f11d7e06379b
Summary:
This can quite easily happen if you manually edit it and
aren't careful. The least we can do is tell the user about it,
because it be a bit surprising otherwise.
Reviewed By: jknoxville
Differential Revision: D17626760
fbshipit-source-id: 8c7d64b041fa4b97ce2753116800d0e855442dd9
Summary:
In the previous implementation plugins were downloaded from npm, but dependencies weren't. This diff uses the `live-plugin-manager` which does mostly what we want. It install a package from NPM with all its dependencies.
live-plugin-manager puts the plugin and its dependencies in the same folder. We expect the plugins to be in `node_modules`. For this reason, we are installing the plugin into `$pluginName/node_modules` and move the plugin after the installation out of the `node_modules` folder.
* Fixed plugin loading path for thirdparty plugins.
* Disabled hot reloading for plugins in the flipper folder to prevent reloads when moving around files and installing dependencies here.
* an empty `.watchmanconfig` is created, because metro requires it
* tsx files are added to the list of supported extensions for metro
Reviewed By: passy
Differential Revision: D17570413
fbshipit-source-id: ecbedc60841b36188fec9c83da41ef1f27e5e155
Summary: This diff adds an initial support to prefill the app information and the revision information. This diff also copies the workplace url in the clipboard.
Reviewed By: passy
Differential Revision: D16990925
fbshipit-source-id: 4f354e52de5fea07c2ea36336761d6963c27ef66
Summary:
My MBP just crashed again during startup. I would like to
understand why every plugin compilation appears to start
up a new electron process, but until that's understood
and hopefully fixed, it's probably best to limit the number
of processes we spawn by setting an upper bound here.
N.B. My Linux box doesn't mind this at all.
Reviewed By: jknoxville, danielbuechele
Differential Revision: D17419289
fbshipit-source-id: a11562a21a984059dc35e826eb20d869df218546
Summary:
This is a bit embarrassing. It seems like I never wired this up which is
why the update indicator keeps coming up even if the app was started
by the Launcher.
This actually makes sure that we proxy the yargs flag through to
`processConfig`.
Reviewed By: jknoxville
Differential Revision: D17341896
fbshipit-source-id: 73602e2035c26fb0d03e853a4e94065af3986757
Summary: Tests were failing as they were not being transformed correctly. Class properties (proposed syntax) was only partially added for Typescript files. This fixes the issue.
Reviewed By: passy
Differential Revision: D16686613
fbshipit-source-id: 2108cf77eb688bb6825d016960480ea55fcc2620
Summary: Same as previous diff, but for `static/`.
Reviewed By: danielbuechele
Differential Revision: D16579860
fbshipit-source-id: aa4449ded8734270fb5e1ab400a95768c6a1c09f
Summary:
Currently icons were always fetched remotely. We used a service worker to prefetch and cache some icons, that were critical to the UI.
In this diff, we are bundling icons at build time, with the app. In utils/icons.js we still specfify the list of icons which should be bundled. These are downloaded as part of the build step and bundled with the app. We are downloading the icons in 1x and 2x (the two most common pixel densities).
Reviewed By: jknoxville
Differential Revision: D16620764
fbshipit-source-id: 965a7793ad1f08aebb292606add00218429cdaf4
Summary: Move from adding adb path in tracery plugin to adding flipper as a whole. Se discussion here: D16494684
Reviewed By: jknoxville
Differential Revision: D16542414
fbshipit-source-id: abb2f4989693025a8bfe7d12f4c328870a962204
Summary:
In my last plugin for React VR I used spawn heavily to call adb and python2. It worked out well, but after Flipper released, I noticed that all my spawn commands were broken.
I found that Electron start in different way when bundled as production bundle, and because of it, it does not inherit process.env.PATH in a same way as it do this for development mode. (only linux/mac issue)
In this diff I used npm package which detects linux/mac and executes bash command which returns all the env variables from the system. After it, it takes PATH and merge it with process.env.PATH.
Reviewed By: passy
Differential Revision: D16457847
fbshipit-source-id: 60226f2d7977f1dfec49de6e889f3115d8688991
Summary:
Compilation is a mixture of I/O and CPU work, so there's some good optimisation potential even on a single thread by running the promises concurrently. The downside is that the output is a bit garbled, but it's quite a bit faster for me.
To test this, I applied this diff so I could just `time yarn start` for an entire run.
```
diff --git a/xplat/sonar/src/init.js b/xplat/sonar/src/init.js
--- a/xplat/sonar/src/init.js
+++ b/xplat/sonar/src/init.js
@@ -80,4 +80,5 @@
dispatcher(store, logger);
// make init function callable from outside
window.Flipper.init = init;
+ window.close();
});
```
## Before
**Cold Start**
```
696.89user 93.21system 4:21.44elapsed 302%CPU (0avgtext+0avgdata 1111448maxresident)k
1416inputs+372824outputs (3major+28155897minor)pagefaults 0swaps
```
**Hot Start**
```
6.87user 1.62system 0:17.32elapsed 49%CPU (0avgtext+0avgdata 249264maxresident)k
216inputs+182912outputs (0major+251426minor)pagefaults 0swaps
```
## After
**Cold Start**
```
736.86user 95.47system 1:53.13elapsed 735%CPU (0avgtext+0avgdata 970616maxresident)k
42864inputs+356776outputs (42major+25299531minor)pagefaults 0swaps
```
**Hot Start**
```
6.85user 1.60system 0:15.93elapsed 53%CPU (0avgtext+0avgdata 269420maxresident)k
2592inputs+197904outputs (0major+260099minor)pagefaults 0swaps
```
## Summary
It's beneficial in both cases, but the wall clock time for cold start goes from *4:21.44* to *1:53.13* for me (mind that this is a single sample). This is a 2.3x speed-up!
Reviewed By: jknoxville
Differential Revision: D16359215
fbshipit-source-id: 62257ec3bdefbf98356f5ac9418c4906f7cb4b1b
Summary:
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.5 to 4.17.14.
<details>
<summary>Commits</summary>
- [`be87d30`](be87d30394) Bump to v4.17.14.
- [`a6fe6b1`](a6fe6b1e17) Rebuild lodash and docs.
- [`e371828`](e37182845f) Bump to v4.17.13.
- [`357e899`](357e899e68) Rebuild lodash and docs.
- [`fd9a062`](fd9a062d57) Bump to v4.17.12.
- [`e77d681`](e77d68121f) Rebuild lodash and docs.
- [`629d186`](629d186579) Update OpenJS references.
- [`2406eac`](2406eac542) Fix minified build.
- [`17a34bc`](17a34bc585) Fix test bootstrap for core build.
- [`53838a3`](53838a38f8) Fix tests in older browsers.
- Additional commits viewable in [compare view](https://github.com/lodash/lodash/compare/4.17.5...4.17.14)
</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 ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major 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/493
Reviewed By: jknoxville
Differential Revision: D16323535
Pulled By: passy
fbshipit-source-id: 9511b4050306a872295a7053f465ae46b9c5fa8a
Summary: When Trace has been uploaded, load it inside a webview in Flipper.
Reviewed By: habond
Differential Revision: D16185763
fbshipit-source-id: 3217211f1d5035fc16d733ef48db44d8f8d9d360
Summary: This one snuck in while rebasing my new rules onto master.
Reviewed By: bnelo12
Differential Revision: D16180472
fbshipit-source-id: b715c218ff1886c1901c7730a6b8dac67beb3968
Summary: Taking another stab at adding some lint rules to make it harder to shoot yourself in the foot. Hopefully nothing too controversial. Preferring spread and rest should lead is more readable and there's no downside when using ES6. The "useless" rules are just things like renaming imports to the original name which should only happen during refactors.
Reviewed By: jknoxville
Differential Revision: D16180453
fbshipit-source-id: 1cf6851b7726c0aee953ec7cf7dd6fa0aca32253