Commit Graph

333 Commits

Author SHA1 Message Date
Michel Weststrate
b1d960e4c4 Make sure plugin loading works in NPX builds
Summary: Make sure non-bundled plugins load correctly . Note that sourcemaps don't load yet

Reviewed By: nikoant

Differential Revision: D33278639

fbshipit-source-id: 9951286ec6df65f33149e4687261a43e6c072c31
2021-12-24 02:16:48 -08:00
Michel Weststrate
6ff4abbc67 Make flipper-server stand-alone servable
Summary:
This diff makes flipper-server stand-alone servable as a single package.

It basically works as follows:

- (default) plugins are build as usually into static folder
- static folder is copied into flipper-server/static (as far as relevant)
- `flipper-server/src/index.tsx` is bundled into `flipper-server/dist/index.js`
- `flipper-ui-browser/src/index.tsx` is bundled into `flipper-server/static/bundle.js`

If flipper-server is started without the `--bundler` config, the `bundle.js` will be served statically, rather than starting up the Metro bundler with all the typical transforms (in a distributed version of the package those all wouldn't resolve)

Things to be done in next diffs:

* make sure plugins actually load in the non bundled setup
* make sure flipper-server gets published properly
* make sure build is created as part of CI

At the end of this stack, running `npx flipper-server` on any machine should basically be a viable approach to get flipper up and running locally :)

Reviewed By: nikoant

Differential Revision: D33171107

fbshipit-source-id: 4af8ac2699467a0b55283fe084640482700744c2
2021-12-24 02:16:48 -08:00
Flipper Bot
9043966413 Flipper Release: v0.127.0
Summary: Releasing version 0.127.0

Reviewed By: nikoant

Differential Revision: D33277479

fbshipit-source-id: 86ea279f547add2b1216777909ec094f94fedd39
2021-12-22 07:30:05 -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
Flipper Bot
d3ea3c46ce Flipper Release: v0.126.0
Summary: Releasing version 0.126.0

Reviewed By: nikoant

Differential Revision: D33183900

fbshipit-source-id: 65ff0048c3d6dca3910209dfa8e285d754698716
2021-12-17 02:49:09 -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
78413c1ecf Register shortcuts on window instead of globally
Summary:
Changelog: Register shortcuts only for Flipper application instead of globally. Fixes https://github.com/facebook/flipper/issues/3090

As reported, during decapitation we accidentally started registering shortcuts globally, rather per app as it used to be in the menu's. This diff fixes that and also makes sure shortcuts are supported in the browser version of flipper

Reviewed By: lawrencelomax

Differential Revision: D33158445

fbshipit-source-id: 8371e5b96e772152eeb93ba990e1f5edb9e67085
2021-12-16 14:51:08 -08:00
Harsh Sinha
68a2cfaffa Building a plugin for Messenger Co Presence
Summary:
Created a plugin from   https://www.internalfb.com/intern/staticdocs/flipper/docs/tutorial/intro

The plugin allows us to look at various signal events and help debug issues for messenger copresence with different protocols (upi or gqls)

Differential Revision: D28548194

fbshipit-source-id: 5f5063dc5bc1dbf282bd327907003301836f3698
2021-12-16 01:06:48 -08:00
Flipper Bot
b7ef9c7490 Flipper Release: v0.125.0
Summary: Releasing version 0.125.0

Reviewed By: mweststrate

Differential Revision: D33041394

fbshipit-source-id: f6b8a3a2298bfdcb2bb259214c2836b255c44e59
2021-12-11 04:51:03 -08:00
Flipper Bot
a3401ff8fd Flipper Release: v0.124.0
Summary: Releasing version 0.124.0

Reviewed By: aigoncharov

Differential Revision: D32946871

fbshipit-source-id: eba5fe2e68bd181af02140cc9119f2518ad283ea
2021-12-10 02:48:07 -08:00
Michel Weststrate
92a743cc59 Processed some earlier review comments
Summary: Per title, processed some pending review comments made earlier in this stack

Reviewed By: aigoncharov

Differential Revision: D32916920

fbshipit-source-id: 01db85883596b5c85b77efc9cddadeac23cc4ef5
2021-12-08 04:30:57 -08:00
Michel Weststrate
ad4a55f263 move node types, stub node modules
Summary: This diff stubs all node modules when running in the browser, so that, albeit with a lot of errors and without plugins, the UI loads in a browser. To be continued in the rest of this diff

Reviewed By: antonk52

Differential Revision: D32665705

fbshipit-source-id: 4632e241f59c5b9712a41d01a26878afb01f69b5
2021-12-08 04:30:57 -08:00
Michel Weststrate
eab4f0d3d3 Bits & pieces
Summary: Added a command to let a file be opened by the OS, and some other small bits and pieces to make Flipper browser compatible.

Reviewed By: lblasa

Differential Revision: D32721748

fbshipit-source-id: a4ad1c2f662f4651ddf6c20c57e5af1e123914a8
2021-12-08 04:30:56 -08:00
Michel Weststrate
5d45bd741b Initialise flipper-ui-browser with socket connection
Summary:
This diff sets up the socket connection between flipper-browser and flipper-server, and verifies that the initial UI initialisation work (e.g. `get-config` command works). The initial RenderHost is initialised as well based on the config and browser APIs.

Note that flipper-ui-core itself isn't started yet, as that has still a plethora of node imports, so Metro will correctly refuse to bundle

Not in this diff
* remove Node usage from flipper-ui-core
* implement all RenderHost APIs

Reviewed By: aigoncharov

Differential Revision: D32644074

fbshipit-source-id: 2c8065caf0191771a3867b69a431ca50eeb7a5a3
2021-12-08 04:30:55 -08:00
Michel Weststrate
0dfc73da93 setup webserver for flipper-server
Summary:
This sets up the metro bundler for flipper-server, to be able to serve the front end.

Note that this is a setup that is only relevant for development purposes

Done in this diff:

* setup metro
* setup fast refresh
* setup nodemon to be able to refresh on server changes

Not done in this diff

* Setup FlipperServerImpl in the flipper-server
* Load flipper-ui-core in flipper-ui-browser
* Load plugins
* Support options, env vars etc etc
* Make flipper-server stand alone (it is largely self contained, but still requires some static resources like theming)

Reviewed By: passy, aigoncharov

Differential Revision: D32626137

fbshipit-source-id: 47f580356ddf0993392d3b583082b187661727e9
2021-12-08 04:30:55 -08:00
Michel Weststrate
bca169df73 Move settings, launcherSettings, GKs to app / flipper-server-core
Summary:
This diff moves a lot of stuff from the client to the server. This diff is fairly large, as a lot of concept closely relate, although some things have split off to the earlier diffs in the stack, or are still to follow (like making intern requests).

This diff primarily moves reading and storing settings and GKs from client to server (both flipper and launcher settings). This means that settings are no longer persisted by Redux (which only exists on client). Most other changes are fallout from that. For now settings are just one big object, although we might need to separate settings that are only make sense in an Electron context. For example launcher settings.

Reviewed By: passy, aigoncharov

Differential Revision: D32498649

fbshipit-source-id: d842faf7a7f03774b621c7656e53a9127afc6192
2021-12-08 04:30:54 -08:00
Mohamed Osman
0bb6e42282 1/x Setting up showreel flipper plugin
Summary: This diff. sets up Showreel Flipper Plugin without any implementation other than Ping <> Pong to test Flipper to Client(App) and Client(App) to Flipper communication.

Differential Revision: D32098971

fbshipit-source-id: 6f66a51b6844e7e38d20f0be7d164705924d30a6
2021-11-24 12:34:21 -08:00
Flipper Bot
af581a20a0 Flipper Release: v0.119.0
Summary: Releasing version 0.119.0

Reviewed By: nikoant

Differential Revision: D32309847

fbshipit-source-id: a4c4728c935111fa593ea629b564f2d8d02b9135
2021-11-11 02:44:32 -08:00
Michel Weststrate
2fcd815098 Flipper Release: v0.118.1
Summary: Releasing version 0.118.1

Reviewed By: passy

Differential Revision: D32204867

fbshipit-source-id: ac9bc8d106375e834ea18f502b6badb52d726233
2021-11-05 10:59:55 -07:00
dependabot[bot]
90b8dfe67e Bump node-fetch from 2.6.5 to 2.6.6 in /desktop (#3018)
Summary:
Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.5 to 2.6.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/node-fetch/node-fetch/releases">node-fetch's releases</a>.</em></p>
<blockquote>
<h2>v2.6.6</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(URL): prefer built in URL version when available and fallback to whatwg by <a href="https://github.com/jimmywarting"><code>@​jimmywarting</code></a> in <a href="https://github-redirect.dependabot.com/node-fetch/node-fetch/pull/1352">node-fetch/node-fetch#1352</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/node-fetch/node-fetch/compare/v2.6.5...v2.6.6">https://github.com/node-fetch/node-fetch/compare/v2.6.5...v2.6.6</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f56b0c66d3"><code>f56b0c6</code></a> fix(URL): prefer built in URL version when available and fallback to whatwg (...</li>
<li>See full diff in <a href="https://github.com/node-fetch/node-fetch/compare/v2.6.5...v2.6.6">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=node-fetch&package-manager=npm_and_yarn&previous-version=2.6.5&new-version=2.6.6)](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/3018

Reviewed By: passy

Differential Revision: D32202504

Pulled By: mweststrate

fbshipit-source-id: ae615c39872dcc10946fab4cbe096aa7f32437f9
2021-11-05 05:29:54 -07:00
dependabot[bot]
7a19b1c8d4 Bump ws from 7.5.5 to 8.2.3 in /desktop (#3004)
Summary:
Bumps [ws](https://github.com/websockets/ws) from 7.5.5 to 8.2.3.
<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.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>
<h2>8.0.0</h2>
<h1>Breaking changes</h1>
<ul>
<li>The <code>WebSocket</code> constructor now throws a <code>SyntaxError</code> if any of the
subprotocol names are invalid or duplicated (0aecf0c9).</li>
<li>The server now aborts the opening handshake if an invalid
<code>Sec-WebSocket-Protocol</code> header field value is received (1877ddeb).</li>
<li>The <code>protocols</code> argument of <code>handleProtocols</code> hook is no longer an <code>Array</code> but
a <code>Set</code> (1877ddeb).</li>
<li>The opening handshake is now aborted if the <code>Sec-WebSocket-Extensions</code> header
field value is empty or it begins or ends with a white space (e814110e).</li>
<li>Dropped support for Node.js &lt; 10.0.0 (552b5067).</li>
<li>The <code>WebSocket</code> constructor now throws a <code>SyntaxError</code> if the connection URL
contains a fragment identifier or if the URL's protocol is not one of <code>'ws:'</code>,
<code>'wss:'</code>, or <code>'ws+unix:'</code> (ebea038f).</li>
<li>Text messages and close reasons are no longer decoded to strings. They are</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="cfd99b6309"><code>cfd99b6</code></a> [dist] 8.2.3</li>
<li><a href="fef7942a18"><code>fef7942</code></a> [ci] Fix typo</li>
<li><a href="41ae56313b"><code>41ae563</code></a> [fix] Ignore the <code>threshold</code> option if context takeover is enabled</li>
<li><a href="474aa3616f"><code>474aa36</code></a> [doc] Improve <code>WebSocket#{p{i,o}ng,send}()</code> documentation</li>
<li><a href="055949fd23"><code>055949f</code></a> [doc] Remove no longer needed noop function from code snippet</li>
<li><a href="5b85322f54"><code>5b85322</code></a> [ci] Update coverallsapp/github-action action to version 1.1.3</li>
<li><a href="f871195c55"><code>f871195</code></a> [doc] Update issue template</li>
<li><a href="72296e54ca"><code>72296e5</code></a> [dist] 8.2.2</li>
<li><a href="3039b6b9d2"><code>3039b6b</code></a> [doc] Change label text to CI</li>
<li><a href="04c032c51b"><code>04c032c</code></a> [ci] Use Github Actions for Windows x86 testing</li>
<li>Additional commits viewable in <a href="https://github.com/websockets/ws/compare/7.5.5...8.2.3">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.5&new-version=8.2.3)](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/3004

Reviewed By: passy

Differential Revision: D31991546

Pulled By: cekkaewnumchai

fbshipit-source-id: 029092fa88e0c4a0816574c6c18e5565b9650615
2021-10-28 06:18:12 -07:00
Michel Weststrate
cc946d12ec Disable Redux devTools
Summary:
I can't recall seeing anybody use Redux DevTools in the last 2 years. I don't think it adds much (most data in it is not serializable anyway), and disabling hopefully makes memory leaks / OOMs less likely on long debug sessions :)

If someone misses it, feel free to bring it back.

Reviewed By: passy

Differential Revision: D31827421

fbshipit-source-id: 3c3836d4620a1ae431116df2de19a606672a6cd7
2021-10-22 09:21:18 -07:00
Roman Karpenko
2be631ea4d Fix Flipper lints #18
Summary: Fixed several lint errors mainly related to Warning/node/no-sync.

Reviewed By: passy

Differential Revision: D31795894

fbshipit-source-id: 020597d93232a8e84b25ea11a87d9481a6d2616f
2021-10-21 03:44:31 -07:00
Ananya Arun
df7bb59e9a Add screenshots for in app debugging with preview
Summary:
Added ss for in app diagnostics using FB app as an example.

Image can be previewed as well if user wants more clarity.

Reviewed By: mweststrate

Differential Revision: D31679937

fbshipit-source-id: 550de8099c8912d2d6caa58c6c9c4c90ba78fabe
2021-10-15 02:48:59 -07:00
Aaron Coplan
eba328e2a1 Implement screens list UI and copy action
Summary: TSIA, implementation for delete button coming in next diff. Note that Flipper doesn't seem to have a good Toast I could find so this is the best we have at the moment.

Reviewed By: nscoding

Differential Revision: D31496628

fbshipit-source-id: b9f94b3b2e757907b36e93b32d7f61448473a304
2021-10-13 14:23:16 -07:00
dependabot[bot]
8f9ecd6b2d Bump node-fetch from 2.6.1 to 2.6.5 in /desktop (#2970)
Summary:
Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/node-fetch/node-fetch/releases">node-fetch's releases</a>.</em></p>
<blockquote>
<h2>v2.6.2</h2>
<p>fixed main path in package.json</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/node-fetch/node-fetch/blob/v2.6.5/CHANGELOG.md">node-fetch's changelog</a>.</em></p>
<blockquote>
<h2>v2.6.5</h2>
<ul>
<li>Fix: import <code>whatwg-url</code> in a way compatible with ESM</li>
</ul>
<h2>v2.6.4</h2>
<ul>
<li>Hotfix: fix v2.6.3 that did not sending query params</li>
</ul>
<h2>v2.6.3</h2>
<ul>
<li>Fix: properly encode url with unicode characters</li>
</ul>
<h2>v2.6.2</h2>
<ul>
<li>Fix: used full filename for main in package.json</li>
<li>Other: pinned codecov &amp; teeny-request (had one breaking change with spread operators)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b5417aea6a"><code>b5417ae</code></a> fix: import whatwg-url in a way compatible with ESM Node (<a href="https://github-redirect.dependabot.com/node-fetch/node-fetch/issues/1303">https://github.com/facebook/flipper/issues/1303</a>)</li>
<li><a href="18193c5922"><code>18193c5</code></a> fix v2.6.3 that did not sending query params (<a href="https://github-redirect.dependabot.com/node-fetch/node-fetch/issues/1301">https://github.com/facebook/flipper/issues/1301</a>)</li>
<li><a href="ace7536c95"><code>ace7536</code></a> fix: properly encode url with unicode characters (<a href="https://github-redirect.dependabot.com/node-fetch/node-fetch/issues/1291">https://github.com/facebook/flipper/issues/1291</a>)</li>
<li><a href="152214ca2f"><code>152214c</code></a> Fix(package.json): Corrected main file path in package.json (<a href="https://github-redirect.dependabot.com/node-fetch/node-fetch/issues/1274">https://github.com/facebook/flipper/issues/1274</a>)</li>
<li>See full diff in <a href="https://github.com/node-fetch/node-fetch/compare/v2.6.1...v2.6.5">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a href="https://www.npmjs.com/~endless">endless</a>, a new releaser for node-fetch since your current version.</p>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=node-fetch&package-manager=npm_and_yarn&previous-version=2.6.1&new-version=2.6.5)](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/2970

Reviewed By: mweststrate

Differential Revision: D31545798

Pulled By: passy

fbshipit-source-id: b72c0fdefb821d3a5806c5421333c570497edf54
2021-10-13 07:36:08 -07:00
Flipper Bot
49d41f15e3 Flipper Release: v0.114.0
Summary: Releasing version 0.114.0

Reviewed By: passy

Differential Revision: D31430620

fbshipit-source-id: fce3d83479199d27352c3b05d92fa6c5f0a69051
2021-10-06 08:09:30 -07:00
Hilal Alsibai
40f20f6785 Introduce an internal FDS Flipper plugin
Summary: Adding a Flipper plugin that is isolated to design systems engineering / FDS. This is essentially our dumping grounds of useful utilities for FDS. The first thing I've added is the ability to dump / view the ui tracker hierarchy, which will be useful for development / debugging.

Differential Revision: D31076277

fbshipit-source-id: 5aff639368945796dc3ebab603dadb8d43d7b699
2021-09-22 19:02:55 -07:00
Flipper Bot
5e10baa43f Flipper Release: v0.110.0
Summary: Releasing version 0.110.0

Reviewed By: mweststrate

Differential Revision: D31020264

fbshipit-source-id: e161705979fda9f95ddd212d5f35ede4bb8f49c3
2021-09-17 09:23:20 -07:00
Flipper Bot
fbe2b590d1 Flipper Release: v0.109.0
Summary: Releasing version 0.109.0

Reviewed By: mweststrate

Differential Revision: D30988723

fbshipit-source-id: 795fef1a475eb3c15ee323626a92e76345239af0
2021-09-16 05:45:15 -07:00
Michel Weststrate
bae2043e06 Fix theme updating issue
Summary:
Follow up on D29436059 (014e571f74), another place where the old format was leaked.

Fixes https://github.com/facebook/flipper/issues/2842 + some mentions on WP

Changelog: Fixed JavaScript exception on main thread occurring after loading Flipper

Reviewed By: nikoant

Differential Revision: D30928768

fbshipit-source-id: 083731e18230825738466b34368c2b5f730e386c
2021-09-14 03:16:56 -07:00
Flipper Bot
dcafcf85d7 Flipper Release: v0.108.0
Summary: Releasing version 0.108.0

Reviewed By: mweststrate

Differential Revision: D30868044

fbshipit-source-id: 07b58271f174095843368e884da36598e83eb77c
2021-09-10 09:03:13 -07:00
Michel Weststrate
f9c8bf8941 Fix dark mode startup error
Summary:
Changelog: Fixed startup error when loading default theme

The theme defaulted to `auto`, instead of `system`, causing an startup exception. Fixed by adding types and having a more defensive startup check.

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

Reviewed By: jknoxville

Differential Revision: D30866648

fbshipit-source-id: 83b6d9fc235eaa0a7e959df4276d3f378eed7d1f
2021-09-10 07:04:43 -07:00
Michel Weststrate
e1e9ca0f52 Fix startup error when loading theme
Summary: During testing, observed that Flipper always starts with an exception if `darkMode` is `true` or `false` (the old format) during startup, and this exception keeps on happening until the setting is changed. The root cause is that the setting is treated verbatim since D30666966 (9a4d94c971), trigger a very confusing Electron error. This diff addresses that.

Reviewed By: timur-valiev

Differential Revision: D30806453

fbshipit-source-id: fc7bbdda4e8bdf2dc4e3ca7ab1b05984c9406c68
2021-09-08 09:59:38 -07:00
ZHANG Qichuan
9a4d94c971 Add option for automatic dark theme (#2759)
Summary:
Add an setting option to allow automatic dark theme

A feature requested by swrobel https://github.com/facebook/flipper/issues/2708

## Changelog

### UI change
Replace the `Enable Dark Theme` Toggle button with a Radio group containing three Radio buttons.

The available options are `Dark`, `Light` and `Use System Default`, of which `Use System Default` is the default value

<img width="548" alt="Screenshot 2021-08-31 at 3 32 44 PM" src="https://user-images.githubusercontent.com/410850/131462798-4e74f757-41fc-4a3f-ba28-53d00fc1cf03.png">

### Data structure change

The `darkMode` property of [Settings](c0cd32564a/desktop/app/src/reducers/settings.tsx (L20)) is changed from `boolean` to `string`, the available values are `dark`, `light` and `auto`

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

Test Plan:
### Test 1
- Step: Choose `Dark` in the Settings page and click on `Apply and Restart` button
- Expect: The application is displayed in Dark mode
### Test 2
- Step: Choose `Light` in the Settings page and click on `Apply and Restart` button
- Expect: The application is displayed in Light mode
### Test 3
- Step: Choose `Use System Default` in the Settings page and click on `Apply and Restart` button
- Expect: The application is displayed in System Default mode

Reviewed By: mweststrate

Differential Revision: D30666966

Pulled By: passy

fbshipit-source-id: a63e91f2d0dbff96890e267062cb75bffd0007f4
2021-09-08 03:28:35 -07:00
dependabot[bot]
93660d6be3 Bump ws from 7.5.3 to 8.2.1 in /desktop (#2756)
Summary:
Bumps [ws](https://github.com/websockets/ws) from 7.5.3 to 8.2.1.
<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.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>
<h2>8.0.0</h2>
<h1>Breaking changes</h1>
<ul>
<li>
<p>The <code>WebSocket</code> constructor now throws a <code>SyntaxError</code> if any of the
subprotocol names are invalid or duplicated (0aecf0c9).</p>
</li>
<li>
<p>The server now aborts the opening handshake if an invalid
<code>Sec-WebSocket-Protocol</code> header field value is received (1877ddeb).</p>
</li>
<li>
<p>The <code>protocols</code> argument of <code>handleProtocols</code> hook is no longer an <code>Array</code> but
a <code>Set</code> (1877ddeb).</p>
</li>
<li>
<p>The opening handshake is now aborted if the <code>Sec-WebSocket-Extensions</code> header
field value is empty or it begins or ends with a white space (e814110e).</p>
</li>
<li>
<p>Dropped support for Node.js &lt; 10.0.0 (552b5067).</p>
</li>
<li>
<p>The <code>WebSocket</code> constructor now throws a <code>SyntaxError</code> if the connection URL
contains a fragment identifier or if the URL's protocol is not one of <code>'ws:'</code>,
<code>'wss:'</code>, or <code>'ws+unix:'</code> (ebea038f).</p>
</li>
<li>
<p>Text messages and close reasons are no longer decoded to strings. They are
passed as <code>Buffer</code>s to the listeners of their respective events. The listeners
of the <code>'message'</code> event now take a boolean argument specifying whether or not
the message is binary (e173423c).</p>
<p>Existing code can be migrated by decoding the buffer explicitly.</p>
<pre lang="js"><code>websocket.on('message', function message(data, isBinary) {
  const message = isBinary ? data : data.toString();
  // Continue as before.
});
</code></pre>
</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="cc7a7798b7"><code>cc7a779</code></a> [dist] 8.2.1</li>
<li><a href="869c9892cd"><code>869c989</code></a> [fix] Resume the socket in the next tick</li>
<li><a href="ea6c054e97"><code>ea6c054</code></a> [test] Reorganize some tests</li>
<li><a href="7647a8920b"><code>7647a89</code></a> [dist] 8.2.0</li>
<li><a href="d5e3549a03"><code>d5e3549</code></a> [minor] Add <code>WebSocket.WebSocket{,Server}</code> aliases (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1935">https://github.com/facebook/flipper/issues/1935</a>)</li>
<li><a href="c677aab978"><code>c677aab</code></a> [doc] Fix <code>createWebSocketStream()</code> documentation</li>
<li><a href="f38247e5e0"><code>f38247e</code></a> [doc] Sort options alphabetically</li>
<li><a href="142f0911b5"><code>142f091</code></a> [dist] 8.1.0</li>
<li><a href="d21c81034f"><code>d21c810</code></a> [feature] Add 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>
<li><a href="9bd3bd1251"><code>9bd3bd1</code></a> [minor] Fix typo (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1929">https://github.com/facebook/flipper/issues/1929</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/websockets/ws/compare/7.5.3...8.2.1">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.3&new-version=8.2.1)](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/2756

Reviewed By: lblasa

Differential Revision: D30727123

Pulled By: passy

fbshipit-source-id: b06ab55427b7798d004d2f3371f76bda6af69947
2021-09-06 06:50:37 -07:00
Pascal Hartig
5df03b3b93 Fix startup crash
Summary:
ESM module snuck in and wasn't caught in tests or builds.

Fixes Q244903.

Should fix https://github.com/facebook/flipper/issues/2768

Reviewed By: mweststrate

Differential Revision: D30760296

fbshipit-source-id: 36c632260e069830da1121e3d5de4ab21cef90f2
2021-09-06 06:50:37 -07:00
Pascal Hartig
d48293c30f Bump dependencies
Summary: Again, bundling a bunch of dependabot tasks I've received.

Reviewed By: mweststrate

Differential Revision: D30667465

fbshipit-source-id: 1acd29a36a642984105bbccfc75e0e3dd9e0f79b
2021-09-02 03:30:25 -07:00
Michel Weststrate
bd8912080b Kill IPC rendering / connection
Summary:
Remove IPC rendering / connection implementation. This has been behind GK for a couple of weeks, and no one complained / white listed. See also D30367413.

flipper_js_client_emulator

Reviewed By: passy

Differential Revision: D30452442

fbshipit-source-id: fbe7b4914fecc023f3ec78a027106ea32c5a99bd
2021-09-01 11:46:27 -07:00
Flipper Bot
120788413f Flipper Release: v0.104.0
Summary: Releasing version 0.104.0

Reviewed By: passy

Differential Revision: D30543476

fbshipit-source-id: a38f16d4928575c76a39da3c02812feb4620178e
2021-08-25 09:13:23 -07:00
Flipper Bot
f4631eecc1 Flipper Release: v0.103.0
Summary: Releasing version 0.103.0

Reviewed By: passy

Differential Revision: D30400660

fbshipit-source-id: e5d3e2e59c977e1e5a32945fffaba243c703823e
2021-08-18 15:51:47 -07:00
Anton Nikolaev
cc4064ec9f Force Sec-Fetch-Site header to 'none'
Reviewed By: bartoszniemczura

Differential Revision: D30047497

fbshipit-source-id: 0d9376c09d63176031291f19bfe82a56d5677641
2021-08-05 02:40:41 -07:00
Flipper Bot
c0b0a9f04e Flipper Release: v0.99.0
Summary: Releasing version 0.99.0

Reviewed By: nikoant

Differential Revision: D29815217

fbshipit-source-id: c0597dedcd15b04c7091bf22807e5b8dbca90f97
2021-07-22 06:08:56 -07:00
Matt Davison
1e93055eb5 Add SNAPL Flipper Plugin
Summary:
This stack adds a SNAPL Video Logs Flipper Plugin.
In this commit I created the skeleton for the desktop and the client sides of the plugin.

Differential Revision: D29065783

fbshipit-source-id: e204a465e64ede9479665fcbbb6be34643de5218
2021-07-15 14:09:04 -07:00
Flipper Bot
1b36e33a25 Flipper Release: v0.97.0 (#2579)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/2579

Releasing version 0.97.0

Reviewed By: jknoxville

Differential Revision: D29592758

fbshipit-source-id: 28ae9682c041afc29ee7b524eaa67167b9711baa
2021-07-09 05:23:01 -07:00
Pascal Hartig
3981ac9b1e Monday dep bump
Summary:
Going through all the patch updates and other small updates to pre-empt dependabot.

allow-large-files

Reviewed By: jknoxville

Differential Revision: D29547777

fbshipit-source-id: 86ef2408da0564049916cd96d66665074cdc23f2
2021-07-05 08:30:31 -07:00
Flipper Bot
1e8db937c1 Flipper Release: v0.96.1
Summary: Releasing version 0.96.1

Reviewed By: nikoant

Differential Revision: D29517059

fbshipit-source-id: a484862db5280897a17be415b36a9e7900de6737
2021-07-01 07:45:44 -07:00
Flipper Bot
f8996a35cd Flipper Release: v0.96.0
Summary: Releasing version 0.96.0

Reviewed By: nikoant

Differential Revision: D29487010

fbshipit-source-id: 37445bf8d448f2a71a16fbf0dbf37a5c6737a602
2021-06-30 09:08:28 -07:00
Anton Nikolaev
142859f0ed Intercept click to links in the embedded documentation and redirect them to the default browser
Summary: Intercept click to links in the embedded documentation and redirect them to the default browser.

Reviewed By: passy

Differential Revision: D29426270

fbshipit-source-id: 1d3d9613ff827f80287883768452b93701e95d96
2021-06-29 13:02:05 -07:00
Michel Weststrate
014e571f74 Start application in the right theme
Summary:
Changelog: Improved dark mode support!

This diff makes sure that the dark mode preference is written to the Flipper config, and applied during startup, so that the ugly light/dark flash when starting Flipper in dark mode disappears

Reviewed By: passy

Differential Revision: D29436059

fbshipit-source-id: 0f762149848298512026fbd216d9a9e0bf4276db
2021-06-29 08:39:34 -07:00