Commit Graph

294 Commits

Author SHA1 Message Date
Lawrence Lomax
9cbdc3038f Remove mising iOS Bridge invariant in iOSDeviceManager
Summary:
There's no need for us to have a property that can be undefined, since we can use the magic of *passing arguments* to achieve the same end result.

The unit test a bit more precarious, but it's left here for posterity or until we decide to kill it otherwise.

Reviewed By: passy

Differential Revision: D33892407

fbshipit-source-id: 3b499511189862e2265d8d6d29f849a7b813050e
2022-02-01 00:44:34 -08:00
Lawrence Lomax
757b82757e Use polymorphic IOSBridge to perform iOS target listing
Summary:
Bulding on the work from prior diffs we can use the created bridge directly. No need to have if statements calling out to sub-functions, just use the base type itself which will use the appropriate implementation.

There's no behavioural change here. Either idb was queried for sims/devices or simctl was queried for just sims, they were always mutually exclusive.

Reviewed By: passy

Differential Revision: D33842604

fbshipit-source-id: 0bf63ffc34368c70df31c105ea0ba5df941e72cc
2022-02-01 00:44:34 -08:00
Lawrence Lomax
b0046c8ddb Check for xcode mismatch once and only once
Summary:
We perform this *repeatedly* (every 2s!!!). Which is clearly excessive.

Let's perform this check once to avoid noise and a waste of system resources

Reviewed By: passy

Differential Revision: D33844194

fbshipit-source-id: 226dc9d67bb83b167afa8e28ade8e1911470ef8a
2022-02-01 00:44:34 -08:00
Lawrence Lomax
e16662a28f Improve xcode version mismatch messaging
Summary:
This runs in a very hot loop (which I will change shortly)

However, there's also some simplification that we can do here:
- Only look for `Simulator.app` processes instead of all the processes. This limits the amount of string comparison to do. If there's a `Simulator.app` running, then we know a sim is running for that Xcode.
- Use piping to extract the launch path of the process, instead of then regex'ing this out.
- Use a simpler substring match to determine if paths have a different start.

Reviewed By: passy

Differential Revision: D33891296

fbshipit-source-id: e37d5f260fc6c6113be9c5268b7c8cffb4057b9a
2022-02-01 00:44:34 -08:00
Anton Kastritskiy
c5dd1fc350 rename files from ts to tsx in flipper-* packages
Summary: mass files rename

Reviewed By: nikoant

Differential Revision: D33890252

fbshipit-source-id: d5afaa60af7340313a97d8e4967fe37f00abd9db
2022-01-31 10:16:19 -08:00
Lawrence Lomax
ccae37aa71 Extract idb device querying to IOSBridge
Summary:
Again this is just a code move for now.

However, we now have a common method between simctl and idb cases. This means that the next diff can call an `IOSBridge` with polymorpism taking over. This is still delegated out, but there's an argument to be made to move `iosUtil` functionality back so that this all lives in the same place.

Reviewed By: passy

Differential Revision: D33843093

fbshipit-source-id: 5cd884140817df851cccf63e5780582b16d4231c
2022-01-31 07:29:34 -08:00
Lawrence Lomax
aeb0b5f317 Extract getSimulators to IOSBridge
Summary:
Extracts `getSimulator` interrnals to `SimctlBridge`. This allows this functionality to be used independently of things like the the flipper server.

For now this just moves the functionality, but future diffs will build on top of this.

Reviewed By: passy

Differential Revision: D33842986

fbshipit-source-id: bae26a9bd5c21c9813f8a2b10c3b3e3efc1c5929
2022-01-31 07:29:34 -08:00
Lawrence Lomax
959a2a77d7 Extract launchSimulator to IOSBridge
Summary:
This is related to `simctl` functionality, so can be extracted there.

This will aid in future changes whereby we can hide `getDeviceSetPath` in the IOSBridge module

Reviewed By: passy

Differential Revision: D33842987

fbshipit-source-id: de292ce5afba3e7d79d8ba27c2b8852909d7e6f3
2022-01-31 07:29:34 -08:00
Anton Kastritskiy
1aff8466b1 let linter handle type naming conventions
Summary: {gif:kosnw403}

Reviewed By: passy

Differential Revision: D33846715

fbshipit-source-id: 5de4bb0cf88f24f5a26acedb82a0816417fb0787
2022-01-31 02:49:09 -08:00
Lawrence Lomax
2573462cec Use provided idb path in iOSBridge idb execs
Summary:
We pass the `idbPath` to only the log listener function, when in reality it should be used by all of these functions that call out to idb.

This could result in some bizzare inconsistencies where some idb functions to fail as they are not using the supplied path

Reviewed By: passy

Differential Revision: D33818298

fbshipit-source-id: f0fb7f26579c646a0d5265364d539dfded711c2e
2022-01-28 00:35:23 -08:00
Lawrence Lomax
e2abe1c89a Separate concerns of reading screenshot into buffer & execing screenshot function
Summary: This allows us to change the way that the command is itself exec'd (for instance to change the idb exec'ing in D33818298)

Reviewed By: passy

Differential Revision: D33818822

fbshipit-source-id: c90b7e58c7476f5db08da0e74e9791230ff97f6f
2022-01-28 00:35:23 -08:00
Lawrence Lomax
4f886448e0 Move simctl iOSBridge free-functions into class
Summary: Similar to D33818267, but for simctl. Brings logical ordering of methods as well as consistency

Reviewed By: passy

Differential Revision: D33818687

fbshipit-source-id: 3fbcea128d06c900b49b83ad583ec8a7a07cae2c
2022-01-28 00:35:23 -08:00
Lawrence Lomax
1e5a070dbd Move idb iOSBridge free-functions into class
Summary:
This isn't that important right now, but will help as the `IOSBridge` is expanded in the future. There's also an argument for logical ordering of functions within a container (a class!), but that's not the real motivation here.

The existence of `bind` shows that this free function is effectively closing over this argument anyway.

Reviewed By: passy, lblasa

Differential Revision: D33818267

fbshipit-source-id: e7b83f013121cedbd31cb28746b69c1fa76a0803
2022-01-28 00:35:23 -08:00
Andrey Goncharov
e0204486a5 Fix stale idbConfig and adb in CertificateProvider
Summary: CertificateProvider initializes too early, and set abd and idb to undefined, before adb and idb are initialized by android and ios manager.

Reviewed By: lawrencelomax

Differential Revision: D33792854

fbshipit-source-id: b6bba32dead7edf62e360b2e2563f2b67243b1b8
2022-01-26 10:23:45 -08:00
Andrey Goncharov
da618fd3f3 Decouple CertificateProvider and adb/idb client intialization
Summary:
Previously CertificateProvider initialized ADB and provided config to IDB. As result, AndroidDeviceManager and iOSDeviceManager indirectly depended on CertificateProvider.

With this diff we:
1. Make idbConfig resemble adbClient.
2. Make AndroidDeviceManager and iOSDeviceManager initialize their own clients
3. Fix server crash when one of the clients couldn't be initialized. The reason for the crash is CertificateProvider.prototype.init which is no longer needed.

Reviewed By: passy

Differential Revision: D33711652

fbshipit-source-id: 055b5625ed993827b65396f4af5157808479242b
2022-01-26 04:23:05 -08:00
dependabot[bot]
0d1520bbec Bump ws from 8.4.0 to 8.4.2 in /desktop (#3354)
Summary:
Bumps [ws](https://github.com/websockets/ws) from 8.4.0 to 8.4.2.
<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>8.4.2</h2>
<h1>Bug fixes</h1>
<ul>
<li>Fixed a data framing issue introduced in version 8.4.1 (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/2004">https://github.com/facebook/flipper/issues/2004</a>).</li>
</ul>
<h2>8.4.1</h2>
<h1>Notable changes</h1>
<ul>
<li>To improve performance, strings sent via <code>websocket.ping()</code>,
<code>websocket.pong()</code>, and <code>websocket.send()</code> are no longer converted to
<code>Buffer</code>s if the data does not need to be masked (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/2000">https://github.com/facebook/flipper/issues/2000</a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="33fd1016ec"><code>33fd101</code></a> [dist] 8.4.2</li>
<li><a href="0c0754b897"><code>0c0754b</code></a> [fix] Use the byte length of the data (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/2004">https://github.com/facebook/flipper/issues/2004</a>)</li>
<li><a href="6ebfeb8be7"><code>6ebfeb8</code></a> [dist] 8.4.1</li>
<li><a href="5b7fbb0009"><code>5b7fbb0</code></a> [perf] Reduce buffer allocations (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/2000">https://github.com/facebook/flipper/issues/2000</a>)</li>
<li><a href="8de448fbd1"><code>8de448f</code></a> [test] Fix failing tests</li>
<li><a href="91f3c07b26"><code>91f3c07</code></a> [minor] Replace echo.websocket.org with websocket-echo.com</li>
<li><a href="ad3fe6dc4f"><code>ad3fe6d</code></a> [test] Improve test title</li>
<li><a href="4081a368ff"><code>4081a36</code></a> [test] Do not call the <code>done</code> callback prematurely</li>
<li><a href="d2c935a477"><code>d2c935a</code></a> [doc] Fix typo in <code>WebSocketServer</code> description (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1996">https://github.com/facebook/flipper/issues/1996</a>)</li>
<li><a href="5edf1f4a1b"><code>5edf1f4</code></a> [doc] Clarify interpretation of <code>verifyClient</code> (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1994">https://github.com/facebook/flipper/issues/1994</a>)</li>
<li>See full diff in <a href="https://github.com/websockets/ws/compare/8.4.0...8.4.2">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ws&package-manager=npm_and_yarn&previous-version=8.4.0&new-version=8.4.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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)

</details>

Pull Request resolved: https://github.com/facebook/flipper/pull/3354

Reviewed By: aigoncharov

Differential Revision: D33741798

Pulled By: lblasa

fbshipit-source-id: e8d43d2408118f6b19a2c59603b92c701100f355
2022-01-24 09:38:27 -08:00
Andrey Goncharov
b5cd33f7e8 Fix excessive error login for FLIPPER_BROWSER_PORT
Summary: Prior to this diff, an empty env var FLIPPER_BROWSER_PORT resulted in an error

Reviewed By: passy

Differential Revision: D33712720

fbshipit-source-id: 760fc92bbf44268ec428a3d2947735d5cf8567b7
2022-01-21 13:31:33 -08:00
Andrey Goncharov
3865a3d9a2 Support a custom port for the insecure connection flow
Summary:
1. Remove GK.get('comet_enable_flipper_connection') which does not seem to be needed anymore
2. Support custom ports for the insecure connection flow

Reviewed By: lblasa

Differential Revision: D33632891

fbshipit-source-id: 045d6886ea94e15bff38f2f61c7d5a2c56c39859
2022-01-18 05:52:57 -08:00
dependabot[bot]
97f861b2dc Bump ws from 7.5.6 to 8.4.0 in /desktop (#3240)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/3240

Bumps [ws](https://github.com/websockets/ws) from 7.5.6 to 8.4.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>8.4.0</h2>
<h1>Features</h1>
<ul>
<li>Added ability to generate custom masking keys (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1990">https://github.com/facebook/flipper/issues/1990</a>).</li>
</ul>
<h2>8.3.0</h2>
<h1>Features</h1>
<ul>
<li>Added ability to pause and resume a <code>WebSocket</code> (0a8c7a9c).</li>
</ul>
<h1>Bug fixes</h1>
<ul>
<li>Fixed a bug that could prevent the connection from being closed cleanly when
using the stream API (ed2b8039).</li>
<li>When following redirects, an error is now emitted and not thrown if the
redirect URL is invalid (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1980">https://github.com/facebook/flipper/issues/1980</a>).</li>
</ul>
<h2>8.2.3</h2>
<h1>Bug fixes</h1>
<ul>
<li>When context takeover is enabled, messages are now compressed even if their size
is below the value of the <code>perMessageDeflate.threshold</code> option (41ae5631).</li>
</ul>
<h2>8.2.2</h2>
<h1>Bug fixes</h1>
<ul>
<li>Some closing operations are now run only if needed (ec9377ca).</li>
</ul>
<h2>8.2.1</h2>
<h1>Bug fixes</h1>
<ul>
<li>Fixed an issue where the socket was not resumed, preventing the connection
from being closed cleanly (869c9892).</li>
</ul>
<h2>8.2.0</h2>
<h1>Features</h1>
<ul>
<li>Added <code>WebSocket.WebSocket</code> as an alias for <code>WebSocket</code> and
<code>WebSocket.WebSocketServer</code> as an alias for <code>WebSocket.Server</code> to fix name
consistency and improve interoperability with the ES module wrapper (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1935">https://github.com/facebook/flipper/issues/1935</a>).</li>
</ul>
<h2>8.1.0</h2>
<h1>Features</h1>
<ul>
<li>Added ability to skip UTF-8 validation (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1928">https://github.com/facebook/flipper/issues/1928</a>).</li>
</ul>
<h1>Bug fixes</h1>
<ul>
<li>Fixed an issue with a breaking change in Node.js master (6a72da3e).</li>
<li>Fixed a misleading error message (c95e695d).</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="00c34d726d"><code>00c34d7</code></a> [dist] 8.4.0</li>
<li><a href="35d45c2a4f"><code>35d45c2</code></a> [perf] Skip masking and unmasking if the masking key is zero</li>
<li><a href="eb2e3a84a1"><code>eb2e3a8</code></a> [feature] Introduce the <code>generateMask</code> option</li>
<li><a href="c82b08737f"><code>c82b087</code></a> [dist] 8.3.0</li>
<li><a href="0a8c7a9c4f"><code>0a8c7a9</code></a> [api] Add <code>WebSocket#pause()</code> and <code>WebSocket#resume()</code></li>
<li><a href="ed2b803905"><code>ed2b803</code></a> [fix] Resume the socket in the <code>CLOSING</code> state</li>
<li><a href="b8186dd115"><code>b8186dd</code></a> [fix] Do not throw if the redirect URL is invalid (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1980">https://github.com/facebook/flipper/issues/1980</a>)</li>
<li><a href="5a905e49be"><code>5a905e4</code></a> [minor] Add missing label to the issue form</li>
<li><a href="89d81e8670"><code>89d81e8</code></a> [minor] Fix nit</li>
<li><a href="4916d03ad8"><code>4916d03</code></a> [minor] Allow to write frames with up to 2^48 - 1 bytes of data (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1973">https://github.com/facebook/flipper/issues/1973</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/websockets/ws/compare/7.5.6...8.4.0">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ws&package-manager=npm_and_yarn&previous-version=7.5.6&new-version=8.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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)

</details>

Pull Request resolved: https://github.com/facebook/flipper/pull/3218

Reviewed By: antonk52, timur-valiev

Differential Revision: D33348279

Pulled By: nikoant

fbshipit-source-id: c245f53556e8f58ba1df619d3d0e106e8e5b1911
2022-01-17 05:03:10 -08:00
Michel Weststrate
b6c884f011 Make sure flipper server initialization errors are propagated properly
Summary:
This diff makes sure that errors are propagated similarly in flipper desktop and browser version, and that they are shown in either case.

Since in the browser version, the UI loads after the error happened, we'll store the error so that any client connecting in the future will read and report it.

Also added a `--failFast` flag to flipper-server, so that the process exits immediately if misconfigured, which is convenient in CI use cases and such

Reviewed By: nikoant

Differential Revision: D33348922

fbshipit-source-id: 0f584104f881141fde38da3f0031748415343ea2
2022-01-04 02:57:25 -08:00
Michel Weststrate
8259f92983 Make sure Flipper server startup errors are propagated for desktop
Summary:
If openssl is not available, this would lead to an unhandled rejection exception. That is because a lot initialization logic generates promises that don't get a catch chained on immediately. Changed the flipper server startup flow to be more idiomatically async

Fixes https://github.com/facebook/flipper/issues/2766

Changelog: More clearly communicate if flipper server failed to start (e.d. due to port already taken, openssl not being available)

This change fixes it only for desktop flipper, will make sure the browser UI will support this as well (the error will fire correctly there, but there are no listeners during startup)

Reviewed By: nikoant

Differential Revision: D33348923

fbshipit-source-id: f561bb27b18a3041c514b37f7aed11435a49647f
2022-01-04 02:57:25 -08:00
Andres Suarez
79023ee190 Update copyright headers from Facebook to Meta
Reviewed By: bhamodi

Differential Revision: D33331422

fbshipit-source-id: 016e8dcc0c0c7f1fc353a348b54fda0d5e2ddc01
2021-12-27 14:31:45 -08:00
Michel Weststrate
cbda298b9d Add support to build flipper-server from SandCastle
Summary:
This refactors the flipper-server release script in such a way that it works the same as the normal release script, which solves two problems:

1) the official release script modifies versioned files, as it touches the package.json
2) it was slightly confusing that `flipper-server/static` was filled for release builds only, but not used in dev builds
3) running test:npx without running a release build before it, would fail with hard to comprehend errors. this has been solved now by removing that script and make it an arg of `build:flipper-server`

Also some further minor changes to prepare running a corresponding build / release job from SandCastle (later in this stack)

Reviewed By: nikoant

Differential Revision: D33297214

fbshipit-source-id: f6299aa982c3e59d1cc6479a93c56cbe4b57f85c
2021-12-24 07:18:11 -08:00
Michel Weststrate
72fa481d27 Fix generation of bundled.json, make source maps work in prod builds
Summary:
This diff fixes several issues around loading plugin, such as:

* make suresource maps work in the flipper-server production build
* make sure default plugins are no symlinked, which wouldn't work anywhere else but on the the system where it was build
* support release channel param for flipper-server

Bundled flipper-server is now 42MB (with icons (see later diffs) and plugins
```
ll flipper-server-v0.0.0.tgz
-rw-r--r--  1 mweststrate  staff    42M 23 Dec 15:29 flipper-server-v0.0.0.tgz
```

Reviewed By: nikoant

Differential Revision: D33294677

fbshipit-source-id: 63538dc8127f883fee6a3608673ad11ce239b350
2021-12-24 02:16:48 -08:00
Michel Weststrate
86b6d2c99d Make flipper-server NPX-able
Summary: Make sure flipper-server is bundled in such a way that it is self-contained NPX-able. Also added some checks to make sure that dev dependencies don't accidentallly end up in in Flipper buidls

Reviewed By: nikoant

Differential Revision: D33190254

fbshipit-source-id: 443162e537d8ca9f956acac2d7bd52cbf0c92172
2021-12-24 02:16:48 -08:00
Michel Weststrate
f9c769aee3 Fix Metro crash if no origin header is set
Summary:
Changelog: Work-around for missing `origin` header problem https://github.com/facebook/flipper/issues/3189; causing Metro to crash when Flipper tries to connect

Will follow up with separate fix in React Native itself as well

Reviewed By: nikoant

Differential Revision: D33276414

fbshipit-source-id: 34d1510262ac24172ac1c6660799bb755b0f1f11
2021-12-22 03:18:52 -08:00
Andrey Goncharov
5e3e777b5c Enable DownloadFile write stream error test (#3207)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/3207

Followup of D33191515 (e0afebeb32)

Reviewed By: mweststrate

Differential Revision: D33253520

fbshipit-source-id: 30bca740dd8674b9bbba4e157d27f2dcedbc5ed5
2021-12-21 08:10:49 -08:00
dependabot[bot]
3d28991cbe Bump axios from 0.21.4 to 0.24.0 in /desktop (#3166)
Summary:
Bumps [axios](https://github.com/axios/axios) from 0.21.4 to 0.24.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/axios/axios/releases">axios's releases</a>.</em></p>
<blockquote>
<h2>v0.24.0</h2>
<h3>0.24.0 (October 25, 2021)</h3>
<p>Breaking changes:</p>
<ul>
<li>Revert: change type of AxiosResponse to any, please read lengthy discussion here: (<a href="https://github-redirect.dependabot.com/axios/axios/issues/4141">#4141</a>) pull request: (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4186">#4186</a>)</li>
</ul>
<p>Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:</p>
<ul>
<li><a href="https://github.com/axios/axios/blob/HEAD/mailto:jasonsaayman@gmail.com">Jay</a></li>
<li><a href="https://github.com/ImRodry">Rodry</a></li>
<li><a href="https://github.com/remcohaszing">Remco Haszing</a></li>
<li><a href="https://github.com/ITenthusiasm">Isaiah Thomason</a></li>
</ul>
<h2>v0.23.0</h2>
<h3>0.23.0 (October 12, 2021)</h3>
<p>Breaking changes:</p>
<ul>
<li>Distinguish request and response data types (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4116">#4116</a>)</li>
<li>Change never type to unknown (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4142">#4142</a>)</li>
<li>Fixed TransitionalOptions typings (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4147">#4147</a>)</li>
</ul>
<p>Fixes and Functionality:</p>
<ul>
<li>Adding globalObject: 'this' to webpack config (<a href="https://github-redirect.dependabot.com/axios/axios/pull/3176">https://github.com/facebook/flipper/issues/3176</a>)</li>
<li>Adding insecureHTTPParser type to AxiosRequestConfig (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4066">#4066</a>)</li>
<li>Fix missing semicolon in typings (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4115">#4115</a>)</li>
<li>Fix response headers types (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4136">#4136</a>)</li>
</ul>
<p>Internal and Tests:</p>
<ul>
<li>Improve timeout error when timeout is browser default (<a href="https://github-redirect.dependabot.com/axios/axios/pull/3209">#3209</a>)</li>
<li>Fix node version on CI (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4069">#4069</a>)</li>
<li>Added testing to TypeScript portion of project (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4140">#4140</a>)</li>
</ul>
<p>Documentation:</p>
<ul>
<li>Rename Angular to AngularJS (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4114">#4114</a>)</li>
</ul>
<p>Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:</p>
<ul>
<li><a href="https://github.com/axios/axios/blob/HEAD/mailto:jasonsaayman@gmail.com">Jay</a></li>
<li><a href="https://github.com/Evan-Finkelstein">Evan-Finkelstein</a></li>
<li><a href="https://github.com/Jezorko">Paweł Szymański</a></li>
<li><a href="https://github.com/dobesv">Dobes Vandermeer</a></li>
<li><a href="https://github.com/caugner">Claas Augner</a></li>
<li><a href="https://github.com/remcohaszing">Remco Haszing</a></li>
<li><a href="https://github.com/egmen">Evgeniy</a></li>
<li><a href="https://github.com/DigitalBrainJS">Dmitriy Mozgovoy</a></li>
</ul>
<h2>v0.22.0</h2>
<h3>0.22.0 (October 01, 2021)</h3>
<p>Fixes and Functionality:</p>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/axios/axios/blob/master/CHANGELOG.md">axios's changelog</a>.</em></p>
<blockquote>
<h3>0.24.0 (October 25, 2021)</h3>
<p>Breaking changes:</p>
<ul>
<li>Revert: change type of AxiosResponse to any, please read lengthy discussion here: (<a href="https://github-redirect.dependabot.com/axios/axios/issues/4141">#4141</a>) pull request: (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4186">#4186</a>)</li>
</ul>
<p>Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:</p>
<ul>
<li><a href="https://github.com/axios/axios/blob/master/mailto:jasonsaayman@gmail.com">Jay</a></li>
<li><a href="https://github.com/ImRodry">Rodry</a></li>
<li><a href="https://github.com/remcohaszing">Remco Haszing</a></li>
<li><a href="https://github.com/ITenthusiasm">Isaiah Thomason</a></li>
</ul>
<h3>0.23.0 (October 12, 2021)</h3>
<p>Breaking changes:</p>
<ul>
<li>Distinguish request and response data types (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4116">#4116</a>)</li>
<li>Change never type to unknown (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4142">#4142</a>)</li>
<li>Fixed TransitionalOptions typings (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4147">#4147</a>)</li>
</ul>
<p>Fixes and Functionality:</p>
<ul>
<li>Adding globalObject: 'this' to webpack config (<a href="https://github-redirect.dependabot.com/axios/axios/pull/3176">https://github.com/facebook/flipper/issues/3176</a>)</li>
<li>Adding insecureHTTPParser type to AxiosRequestConfig (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4066">#4066</a>)</li>
<li>Fix missing semicolon in typings (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4115">#4115</a>)</li>
<li>Fix response headers types (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4136">#4136</a>)</li>
</ul>
<p>Internal and Tests:</p>
<ul>
<li>Improve timeout error when timeout is browser default (<a href="https://github-redirect.dependabot.com/axios/axios/pull/3209">#3209</a>)</li>
<li>Fix node version on CI (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4069">#4069</a>)</li>
<li>Added testing to TypeScript portion of project (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4140">#4140</a>)</li>
</ul>
<p>Documentation:</p>
<ul>
<li>Rename Angular to AngularJS (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4114">#4114</a>)</li>
</ul>
<p>Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:</p>
<ul>
<li><a href="https://github.com/axios/axios/blob/master/mailto:jasonsaayman@gmail.com">Jay</a></li>
<li><a href="https://github.com/Evan-Finkelstein">Evan-Finkelstein</a></li>
<li><a href="https://github.com/Jezorko">Paweł Szymański</a></li>
<li><a href="https://github.com/dobesv">Dobes Vandermeer</a></li>
<li><a href="https://github.com/caugner">Claas Augner</a></li>
<li><a href="https://github.com/remcohaszing">Remco Haszing</a></li>
<li><a href="https://github.com/egmen">Evgeniy</a></li>
<li><a href="https://github.com/DigitalBrainJS">Dmitriy Mozgovoy</a></li>
</ul>
<h3>0.22.0 (October 01, 2021)</h3>
<p>Fixes and Functionality:</p>
<ul>
<li>Caseless header comparing in HTTP adapter (<a href="https://github-redirect.dependabot.com/axios/axios/pull/2880">https://github.com/facebook/flipper/issues/2880</a>)</li>
<li>Avoid package.json import fixing issues and warnings related to this (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4041">#4041</a>), (<a href="https://github-redirect.dependabot.com/axios/axios/pull/4065">#4065</a>)</li>
<li>Fixed cancelToken leakage and added AbortController support (<a href="https://github-redirect.dependabot.com/axios/axios/pull/3305">#3305</a>)</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="53d6d37556"><code>53d6d37</code></a> Adding minfied files</li>
<li><a href="6d613b4fe4"><code>6d613b4</code></a> Updated changelog</li>
<li><a href="2c9cc76ee9"><code>2c9cc76</code></a> revert: change type of AxiosResponse to any (<a href="https://github-redirect.dependabot.com/axios/axios/issues/4186">#4186</a>)</li>
<li><a href="1025d1231a"><code>1025d12</code></a> Release v0.23.0</li>
<li><a href="6d1e30fd80"><code>6d1e30f</code></a> Prepared release notes</li>
<li><a href="20e8b6bc8c"><code>20e8b6b</code></a> chore(docs): rename Angular to AngularJS (<a href="https://github-redirect.dependabot.com/axios/axios/issues/4114">#4114</a>)</li>
<li><a href="94a9344799"><code>94a9344</code></a> Test types (<a href="https://github-redirect.dependabot.com/axios/axios/issues/4140">#4140</a>)</li>
<li><a href="fce210a67e"><code>fce210a</code></a> Fixed TransitionalOptions typings (<a href="https://github-redirect.dependabot.com/axios/axios/issues/4147">#4147</a>)</li>
<li><a href="547815d9fd"><code>547815d</code></a> Mending merge conflict</li>
<li><a href="e462973a4b"><code>e462973</code></a> fix response headers types (<a href="https://github-redirect.dependabot.com/axios/axios/issues/4136">#4136</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/axios/axios/compare/v0.21.4...v0.24.0">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=axios&package-manager=npm_and_yarn&previous-version=0.21.4&new-version=0.24.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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)

</details>

Pull Request resolved: https://github.com/facebook/flipper/pull/3166

Reviewed By: passy

Differential Revision: D33234007

Pulled By: aigoncharov

fbshipit-source-id: 1be18f528a4f8eae84a7a19afec92d8b11ce7cf9
2021-12-20 13:52:52 -08:00
Andrey Goncharov
debf872806 Allow to start only one instance of log listener and crash watcher
Summary:
Changelog: Allow only a single crash watcher and a single log listener per device. Start log listener and crash watcher for every device upon connection. Remove commands to start/stop them externally.

Monitored CPU load for a physical Android device with the log listener on and off. Did not notice any real difference.

Resolved crashing adbkit-logcat by forcing the usage of 2.0.1. A proper fix would be to unify babel transforms for browser flipper and electron flipper, but we might re-think how we distribute flipper in the next half, so a simple hot fix might be a better use of time and resources.

Reviewed By: mweststrate

Differential Revision: D33132506

fbshipit-source-id: 39d422682a10a64830ac516e30f43f32f416819d
2021-12-20 11:39:01 -08:00
Andrey Goncharov
731749b41f Move crash reporting listener to the server
Summary: Changelog: Move crash watcher to the server. Add 'device-crash' event. Add 'device-start-crash-watcher', 'device-stop-crash-watcher' commands. Add 'onDeviceCrash' method to Plugin Client.

Reviewed By: mweststrate

Differential Revision: D33089810

fbshipit-source-id: ed62ee7c1129e5e25af18b444744b0796f567b72
2021-12-20 11:39:00 -08:00
Michel Weststrate
e0afebeb32 Disabled consistently failing OSS test (#3188)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/3188

Fixes failing typescript issue (probably case sensitivity thing, on windows it was complaining about `Metro` not being resolvable while we use `metro` everywhere). Put a `ts-ignore` on it, since the metro typings we use are empty anyway

Disabled a test that failed consistently on GH CI. Maybe timing or Node version issue?

Reviewed By: fabiomassimo

Differential Revision: D33191515

fbshipit-source-id: 18a143024824eeeafaffe4941df474591fb7b70a
2021-12-17 14:03:53 -08:00
Michel Weststrate
d9488f06ac Clean up flipper-ui-core deps
Summary: Noticed that flipper-ui-core bundled quite some unused / node based deps. No longer

Reviewed By: aigoncharov

Differential Revision: D33184489

fbshipit-source-id: a180f9b8f3eb00ffa6c91e0cca654d4b9b609692
2021-12-17 10:04:23 -08:00
Michel Weststrate
cea7be7fde Clean up globals
Summary: This diff is some boyscouting on cleaning up our globals, and stop using them inconsistently icmw global or window

Reviewed By: aigoncharov

Differential Revision: D33171108

fbshipit-source-id: 400893e5f31523631a7ab6fda428524c751901f1
2021-12-17 10:04:23 -08:00
Michel Weststrate
8f40949bb0 clean slate package resolutions
Summary:
Over time we collected a lot of harcoded resolutions, but it is really hard to get signal about their sanity:
* some resolutions generate a lot of yarn warnings as they resolve with a different major than required, and it's really hard to tell whether they actually make things worse or better
* some resolutions are for package we don't even use any more
* some resolutions were there to fix type incompatibilities which have been solved now by keeping them uniquely required
* some resolutions are there to fix "security issues" or security issues in transient dependencies that might have been upgraded int he mean time

So this diff radically removes all of them, trusting Github to propose restoring the sane ones of them :). In terms of functionality everything seems to be working at least

Reviewed By: timur-valiev

Differential Revision: D33158981

fbshipit-source-id: 83e74cdbc8e47ccbf554b97620cf7caa2c6599ce
2021-12-17 07:36:07 -08:00
Michel Weststrate
5df34a337c Unshare global types
Summary:
This diff adds `types` fields on the compiler config for every project. This way we can make sure that for example node types and packages are not available in flipper-ui-core. Without an explicit types field, all types would be shared between all packages, and implicitly included into the compilation of everything. For the same reason `types/index.d.ts` has been removed, we want to be intentional on which types are being used in which package.

This diff does most of the work, the next diff will fine tune the globals, and do some further cleanup.

As an alternative solution I first tried a `nohoist: **/node_modules/types/**` and make sure every package list explicitly the types used in package json, which works but is much more error prone, as for example two different react types versions in two packages will cause the most unreadable compiler error due to the types not being shared and not literally the same.

Reviewed By: lawrencelomax

Differential Revision: D33124441

fbshipit-source-id: c2b9d768f845ac28005d8331ef5fa1066c7e4cd7
2021-12-17 07:36:07 -08:00
Michel Weststrate
dcfeb4a4d5 Clean up packages and types
Summary:
This diff removes most deps from the root package.json, which now only contains electron and shared build / test infra structure: lint, prettier, jest, typescript.

This makes it possible to control much better which packages are used where, as all sub packages now have their deps explicitly in their package.json instead of incidentally shared. This allows for example to disable DOM types for all packages by default (flipper-plugin, ui(-core) and app still request it), and in the next diff I hope to add to this that nodeJS types are no longer shared either, so that UI oriented packages will generate compile errors when using Node built-ins

This diff removes most deps that were currently unused, and dedupes a bunch of other ones, so the build should probably be a bit smaller now as well:

{F686704253}

{F686704295}

Reviewed By: antonk52

Differential Revision: D33062859

fbshipit-source-id: 5afaa4f2103d055188382a3370c1fffa295a298a
2021-12-16 14:54:59 -08:00
Michel Weststrate
ef2a86e7a8 Sdk path should be used when launching emulator
Summary:
Changelog: Fixed issue where a missing ANDROID_SDK_ROOT env var made it impossible to launch emulators

Run into an issue where ANDROID_SDK_ROOT wasn't set for my user, causing Flipper not to be able to launch emulator, which was looked up from the path rather than using the flipper settings.

Fixes: https://github.com/facebook/flipper/issues/3119

Reviewed By: timur-valiev

Differential Revision: D33158280

fbshipit-source-id: ea5616b10265ed43f1012c58da081be275ff1d5b
2021-12-16 14:51:08 -08:00
Michel Weststrate
3ef1923b29 Use uniform Socket message size to avoid disconnects
Summary: During startup the socket connection would close a few times, among others because Scribe dumps 1.3 MB of data after startup, and the maximum payload of `socket.io` defaults to 1MB. This diff changes it to 100MB (the max size used by `ws` library). We know that we need at least > 10 MB, as that is what plugins like Network cap at.

Reviewed By: aigoncharov

Differential Revision: D33017653

fbshipit-source-id: 1233af6fbdc4b9eed42786ee418cfd6d43b2b433
2021-12-13 05:48:17 -08:00
Michel Weststrate
d95b15094f Implement fs.readFile / fs.writeFile
Summary: Per title. Made an explicit distinction between binary and non binary files, since they need to be encoded differently. This keeps both the implementation and API simpler (in terms of overloading / type checking)

Reviewed By: aigoncharov

Differential Revision: D33016031

fbshipit-source-id: 3c99956eb016849a908a171d88a7a64a88b76268
2021-12-13 05:48:17 -08:00
Michel Weststrate
7e9ad72baa Fix --no-bundled-plugins was not respected
Summary: Even with the `--no-bundled-plugins` flag, still a hundred plugins were loaded when running flipper-server

Reviewed By: timur-valiev, aigoncharov

Differential Revision: D32987158

fbshipit-source-id: 19e51e7e5f8ec9e664eb48cf2f2b8936f2f5ed73
2021-12-13 05:48:17 -08:00
Michel Weststrate
34a1da3345 Implement fs.stat and fs.readlink
Summary: Fixes issue for the stackTraceMapper

Reviewed By: aigoncharov

Differential Revision: D32987161

fbshipit-source-id: 660f49a1bdf61b2fd2963874ef23dfd284f71128
2021-12-13 05:48:17 -08:00
Michel Weststrate
0510786dec Fixed relilability issues in running health checks
Summary: Run doctor checks remained pending when the socket disonnected during a check. This

Reviewed By: aigoncharov

Differential Revision: D32984539

fbshipit-source-id: 277005e78803afaaa220cc5ca7fdc9cca6254453
2021-12-13 05:48:16 -08:00
Michel Weststrate
bb23b36051 Fixed flipper settings not being loaded / saved on fresh install
Summary:
I was running flipper-server on a fresh machine without Flipper installed and discovered that reading / writing settings failed since `~/.flipper` wasn't existing, due to using `access` instead of `pathExists`.

Added a warning about needing to restart the server after making changes, since that is tricky to do from the UI.

Fixed an issue in the settings screen, which would fs.stat as part of rendering, causing the Settings UI not to load.

Reviewed By: timur-valiev, aigoncharov

Differential Revision: D32984538

fbshipit-source-id: 2b2011ad9d84c72ac824d92a8c96f636237b8771
2021-12-10 17:59:33 -08:00
Andrey Goncharov
c96558a524 Remove fs and os usage from Mobile Builds plugin
Summary: Changelog: Expose env info and FS rm command to flipper plugins.

Reviewed By: mweststrate

Differential Revision: D32988478

fbshipit-source-id: 3d0233f9eb34d3478b07e39b9401c0e30ca95135
2021-12-10 06:36:13 -08:00
Andrey Goncharov
adb2573a1f Forbid imports from nested directories of flipper-common, flipper-plugin, flipper-ui-core
Summary:
Forbid imports from nested directories of flipper-common, flipper-plugin, flipper-ui-core

In the stack of D32926830 I occasionally imported from flipper-plugin/src/... which is not allowed. This should fix any auto-import related issues once and for all.

Reviewed By: timur-valiev

Differential Revision: D32987054

fbshipit-source-id: f19f6278219961ad283cacfec094a6c703ca93f8
2021-12-10 06:36:12 -08:00
Andrey Goncharov
9436c32ce9 Add unit tests for 'download-file' command
Reviewed By: mweststrate

Differential Revision: D32926830

fbshipit-source-id: fbd4dcb910ffdcdc365f5f0b4c401423f0256824
2021-12-10 06:36:12 -08:00
Andrey Goncharov
6aa0cef927 Use download file API in MobileBuildsPlugin
Summary:
Facenook:
Use downloadFile API in Mobile Builds plugin

Reviewed By: mweststrate

Differential Revision: D32922041

fbshipit-source-id: d554ed9287af3bda4329e87732ab4de67136c0d2
2021-12-10 06:36:12 -08:00
Andrey Goncharov
92f0ed67f4 Add download file API
Summary: Changelog: Expose "downloadFile" API to Flipper plugins. Allow them to download files form the web to Flipper Server.

Reviewed By: mweststrate

Differential Revision: D32950685

fbshipit-source-id: 7b7f666e165ff7bf209230cdc96078272ede3616
2021-12-10 06:36:12 -08:00
Andrey Goncharov
0e785fb18d Add remote fs API
Summary: Changelog: Expose Flipper Server FS access to Flipper plugins

Reviewed By: lblasa

Differential Revision: D32883144

fbshipit-source-id: 47637b61849ef60a2d8fe91a0a28d2a358e0b8c4
2021-12-10 06:36:12 -08:00
Andrey Goncharov
e458ae76f9 Add exec Node API to FlipperLib
Summary: Changelog: Allow flipper plugins to run "exec" Node API on Flipper server.

Reviewed By: mweststrate

Differential Revision: D32881149

fbshipit-source-id: 46486a47ee9824ca68897c19fd86b4afc7f8bf1d
2021-12-10 06:36:12 -08:00