Summary:
- This Diff is part 1 of 2 of milestone 1 of my internship project flipper self sufficiency. The task can be found here - https://www.internalfb.com/tasks?q=958574791613645&t=91334896
- I have extended the plugin package meta data format to support a "supportedApps" field that consists of appID (facebook, instagram, messenger etc) along with OS and type that were previously defined in supportedDevices as well.
- The diff also adds unit tests for this new format to ensure addition of the supportedApps field does not break anything.
Reviewed By: nikoant
Differential Revision: D30133225
fbshipit-source-id: 6ef0d1cadd61c0d69640cf61793322acb4cd65f4
Summary:
per title
For `xmldom`, npm can't push the update as mentioned in https://github.com/xmldom/xmldom/releases/tag/0.7.0
Reviewed By: lblasa
Differential Revision: D30101848
fbshipit-source-id: 0d84a302b845708787d5cae01643dba9963f0330
Summary:
- This diff adds usage statistics for
- How often was the troubleshooting button opened
- What were its end states ( Problem solved or file a support request)
- I am using the tracked flipper plugin to obtain and analyse the stats on Infinity analytics events dev in Scuba backend.
(Since this is not yet productionized we are using the dev version now )
Reviewed By: nikoant
Differential Revision: D30098054
fbshipit-source-id: 871cc18872bccf70a829dc1dd173a337b02ec6e6
Summary:
- Added a dialogue with 2 possible end state buttons
- Problem Solved
- File Support Request
- This diff is the start of the implementation of the troubleshooting wizard.
- The previously implemented troubleshooting button (D29993355 (921a65bc17)) now links to a modal dialogue box.
- This is essentially the last screen of the troubleshooting guide to be implemented.
- We have options for a user to either select file a support request if the issue persists after navigating the guide or click on problem solved if the guide helped them solve it.
- Selecting option 2 (file support request) links to the pre-existing form
The modal has been implemented as an independent reusable component and can be easily extended.
Reviewed By: passy
Differential Revision: D30069270
fbshipit-source-id: f61bf8c03de786e11b7f06194328dbee703abf8b
Summary:
This change enables a WebSocket server if the user is on the 'flipper_websocket_server' GK.
I don't expect this change to make it as the final product of the entire solution. Instead, it can be used to quickly enable/disable WebSocket during development/testing without requiring any code changes.
Reviewed By: passy
Differential Revision: D30069694
fbshipit-source-id: 75daac75e6dad7f63cf194d8287971c33d3abb61
Summary:
This change addresses a problem with using data.id straight into the if statement.
If `data.id` is not undefined but has a value of 0 then the expression evaluates to false.
Right now, that wasn't the intended usage.
Using this change to also export some types from Client.
Reviewed By: passy
Differential Revision: D30069746
fbshipit-source-id: 04a8d161efceadf7a38ee556be70c15b45c11056
Summary: The markdown bump required ignoring another prop, the rest was smooth.
Reviewed By: timur-valiev
Differential Revision: D30067682
fbshipit-source-id: 6038ffe29d2e0041c81bac132eed747cbfe40f54
Summary:
Bumps [metro-cache](https://github.com/facebook/metro) from 0.66.1 to 0.66.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/metro/releases">metro-cache's releases</a>.</em></p>
<blockquote>
<h2>Release v0.66.2</h2>
<ul>
<li><strong>[Fix]</strong> Fix crash in React Native 0.65.0-rc.2. (f7c6325)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="c21daba415"><code>c21daba</code></a> Bump metro to 0.66.2</li>
<li><a href="4972832419"><code>4972832</code></a> Deploy Flow v0.155.1</li>
<li><a href="f0247a811b"><code>f0247a8</code></a> Deploy Flow v0.155.1</li>
<li><a href="f7c6325cbe"><code>f7c6325</code></a> fix(metro): cannot read property 'toUpperCase' of undefined (<a href="https://github-redirect.dependabot.com/facebook/metro/issues/687">https://github.com/facebook/flipper/issues/687</a>)</li>
<li><a href="48b5b1eaa8"><code>48b5b1e</code></a> Update xplat to Flow v0.155.0</li>
<li>See full diff in <a href="https://github.com/facebook/metro/compare/v0.66.1...v0.66.2">compare view</a></li>
</ul>
</details>
<br />
[](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/2660
Reviewed By: passy
Differential Revision: D30044649
Pulled By: cekkaewnumchai
fbshipit-source-id: fbd9c77eb93accf8db241b37076dfdef75c82a4e
Summary:
Bumps [chalk](https://github.com/chalk/chalk) from 4.1.1 to 4.1.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/chalk/chalk/releases">chalk's releases</a>.</em></p>
<blockquote>
<h2>v4.1.2</h2>
<ul>
<li>Readme updates</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="95d74cbe8d"><code>95d74cb</code></a> 4.1.2 - Readme updates</li>
<li>See full diff in <a href="https://github.com/chalk/chalk/compare/v4.1.1...v4.1.2">compare view</a></li>
</ul>
</details>
<br />
[](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/2655
Reviewed By: passy
Differential Revision: D30044697
Pulled By: cekkaewnumchai
fbshipit-source-id: 3e322863cc8f03f997783b90768a63edf6245c18
Summary:
- Minor change on Diff - D30040808
- Removed cyclic dependancy on AppSelector
- Previous dependancy chain : AppSelector -> TroubleshootingGuide -> AppSelector
- Now the NoDevices component that troubleshooting guide was importing has been moved to an independent file.
Reviewed By: passy
Differential Revision: D30041820
fbshipit-source-id: 17856aad7d2a569ec4e0f19e63f458472b22dcf8
Summary:
- Added a troubleshooting guide button which on clicking will open the expert chat bot system of flipper. ( Will be implemented in future diffs)
- This has been added only in the internal version of flipper available to FB.
- The public version shall continue to link to the troubleshooting guide for now.
- Also a new gatekeeper flipper_self_sufficiency was set up.
- This currently gives access to ongoing changes only to a few team members.
- In the future access shall be extended to the entire team, followed by the entire org and then finally all internal FB users in the final stages of the project.
Reviewed By: passy
Differential Revision: D29993355
fbshipit-source-id: afdb76baef6fde2c785c50ad6530ea2f76ce7284
Summary:
Bumps [globby](https://github.com/sindresorhus/globby) from 11.0.4 to 12.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/sindresorhus/globby/releases">globby's releases</a>.</em></p>
<blockquote>
<h2>v12.0.0</h2>
<h3>Breaking</h3>
<ul>
<li>Require Node.js 12.20 (<a href="https://github-redirect.dependabot.com/sindresorhus/globby/issues/181">https://github.com/facebook/flipper/issues/181</a>) 5c32b4a</li>
<li>This package is now pure ESM. Please <a href="https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c">read this</a>.</li>
<li>This package now uses named exports instead of a default export
<ul>
<li><code>globby</code> → <code>{globby}</code></li>
<li><code>globby.sync</code> → <code>{globbySync}</code></li>
<li><code>globby.stream</code> → <code>{globbyStream}</code></li>
<li><code>globby.generateGlobTasks</code> → <code>{generateGlobTasks}</code></li>
<li><code>globby.hasMagic</code> → <code>{isDynamicPattern}</code></li>
<li><code>globby.gitignore</code> → <code>{isGitIgnored}</code></li>
<li><code>globby.gitignore.sync</code> → <code>{isGitIgnoredSync}</code></li>
</ul>
</li>
</ul>
<pre lang="diff"><code>-const globby = require('globby');
+import {globby} from 'globby';
</code></pre>
<p><a href="https://github.com/sindresorhus/globby/compare/v11.0.4...v12.0.0">https://github.com/sindresorhus/globby/compare/v11.0.4...v12.0.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="24453e6bff"><code>24453e6</code></a> 12.0.0</li>
<li><a href="662cafc794"><code>662cafc</code></a> Minor tweaks</li>
<li><a href="5c32b4ab94"><code>5c32b4a</code></a> Require Node.js 12.20 and move to ESM (<a href="https://github-redirect.dependabot.com/sindresorhus/globby/issues/181">https://github.com/facebook/flipper/issues/181</a>)</li>
<li>See full diff in <a href="https://github.com/sindresorhus/globby/compare/v11.0.4...v12.0.0">compare view</a></li>
</ul>
</details>
<br />
[](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/2631
Reviewed By: timur-valiev
Differential Revision: D30012641
Pulled By: passy
fbshipit-source-id: e37e70084e8169d567361e22acce44848ef7d2c6
Summary:
WebSocket implementation of ServerAdapter.
About the setup payload:
RSocket uses a setup payload sent by the client when the initial handshake takes place.
WebSocket handshake doesn't use one.
Instead, it is proposed to use the URL query string to embed any arguments that the server may require to correctly identify and verify a client.
This is the case for the existing Browser WebSocket server.
The only extra adjustment was made for the CSR, proposed to be Base64 encoded.
There's no particular reason to Base64 encode it, as it was already tested by simply escaping any necessary characters.
I feel Base64 adds a layer of simple obfuscation that although doesn't offer any security, it abstracts the content to the URL reader.
The only concern was about the URL maximum length. It seems to be accepted that URL lengths should be at most 2048 characters.
Also, it seems to be the case that the PEM encoded public key size is 451 characters.
That, combined with all the extra necessary arguments, the final URL seem to fit well within the 2048 characters limit.
Reviewed By: passy
Differential Revision: D30014341
fbshipit-source-id: f3e13754b9e513eb84473e45de03f9e101c73862
Summary:
I hate when I have to comment on a diff and tell somebody to please not use
Her Majesty's Spelling, so I'll let the computer do the shouting.
Mixing two ways of spelling the same thing just isn't fun. I had to
work with an Android library that insisted on spelling it `colour`,
leading to awkward code like `colour: COLORS.BLUE` which is just annoying
and hard to remember.
Reviewed By: lblasa
Differential Revision: D30015807
fbshipit-source-id: 9f913e72617301273dbe12c60b9cdba8cea05537
Summary:
Bumps [ansi-to-html](https://github.com/rburns/ansi-to-html) from 0.6.15 to 0.7.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/rburns/ansi-to-html/commits">compare view</a></li>
</ul>
</details>
<br />
[](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/2650
Reviewed By: timur-valiev
Differential Revision: D30012636
Pulled By: passy
fbshipit-source-id: 5ddb58e6a84803bea166ce93d1335ed083ba4437
Summary:
This is the change that will pull the previous diffs together by making ServerController use the refactored components.
There are no logical changes.
The only additions are the ServerEventsListener interface implementation that re-use logic that was previously scattered around this same type.
Reviewed By: passy
Differential Revision: D29989270
fbshipit-source-id: 9ed7ff84ae8cd8ca46fad0db0737456eb705241c
Summary:
ServerController creates, configures, and contains any necessary servers to be used by Flipper.
ServerFactory is added as a means to abstract the creation of servers from it.
Reviewed By: passy
Differential Revision: D29987328
fbshipit-source-id: ff60a408710dbd51ea28ff27a9f85c0020741f4b
Summary:
Introduce a base class for WebSocket based servers and a Browser-based implementation which is in use by Kite.
The implementation for the Browser-based one is basically taken as is from ServerController but slightly adapted to match the existing interface.
As with the RSocket-based implementation, this diff doesn't put this implementation into use but is a good opportunity to revisit the existing implementation.
Reviewed By: passy
Differential Revision: D29985886
fbshipit-source-id: 32abba37ec31478b6497ef5cfe90bb9aedc282d3
Summary:
RSocket server which implements the ServerAdapter interface.
Most of the code was taken from the ServerController class with a few minor adjustments.
Once ServerController starts using ServerAdapter instances the code will be removed from there.
Reviewed By: fabiomassimo
Differential Revision: D29984578
fbshipit-source-id: e35e7635dff995314b3c1fbc85177f90384e025d
Summary:
Introduce ServerAdapter which should be used as a base class for different server implementations e.g. RSocket, WebSocket.
The type is not used elsewhere at this point but this is a good chance to look at the API and suggest changes and/or improvements.
Reviewed By: passy
Differential Revision: D29958434
fbshipit-source-id: 50ba46332d40e836b0a87bcf354d3237bf8fe7c5
Summary:
Extract the following utility functions from ServerController:
transformCertificateExchangeMediumToType
appNameWithUpdateHint
The functions are not tied to the ServerController and will be used outside of it.
Reviewed By: passy
Differential Revision: D29938355
fbshipit-source-id: ea489f54a3a6bf46ae4e108579d48ede1f891093
Summary:
allow-large-files
Got a ton of open bumps in GitHub. Want to address a bunch of them in one swoop.
Reviewed By: jknoxville, nikoant
Differential Revision: D29933570
fbshipit-source-id: d5dc18fab22e8c5b300ab318e60dd1514aecfd52
Summary:
Move BrowserClientFlipperConnection to a better location.
All communication types should be located inside the comms/ directory.
Reviewed By: jknoxville
Differential Revision: D29937942
fbshipit-source-id: 7fbf92c60d53a8f4f16d738bcbd6c451ce367ff1
Summary:
At the moment Flipper spawns a WebSocket server which can be used to debug Web applications in the Browser i.e. Kite.
This diff renames websocketClientFlipperConnection to BrowserClientFlipperConnection.
Renamed to make it clearer what type of connection it really is. WebSocket connections will no longer have the same meaning once RSocket is removed and WebSockets are used instead.
Reviewed By: jknoxville
Differential Revision: D29937656
fbshipit-source-id: 99d55fcfe256865add1ba3aada2c23f935f5cabe
Summary: TSC is raising this for a missing property.
Reviewed By: timur-valiev
Differential Revision: D29933795
fbshipit-source-id: 2acb3ea3b504f1bce1fb4bd0f7e4b52fd49e00b0
Summary:
FlipperClientConnection used to define an interface which closely matched the Socket interface defined in RSocket.
Presumably it tried to 'decouple' RSocket from consumers of the client socket connection. It also limited the amount of actions that could be triggered on said socket connection.
This diff does two things:
- Renames FlipperClientConnection to ClientConnection.
- Changes the interface so that it no longer matches the RSocket Socket interface. The new interface doesn't use RSocket reactive types either.
As a result, current implementations of the interface will act as a proxy to the RSocket Socket type. The change allows the usage of other implementations such as WebSocket.
Reviewed By: fabiomassimo
Differential Revision: D29934090
fbshipit-source-id: 02742e50cd6e801310698969c81b3bf1ef0fa2a2
Summary:
In the file server.tsx was defined the Server type.
Server is being renamed to ServerController and the new file is ServerController.tsx
This is the last diff where things are being moved or renamed in a way that will make harder to review future changes.
Reviewed By: fabiomassimo
Differential Revision: D29912626
fbshipit-source-id: ae583671d98823a10f7efceeefd8215621f59dcf
Summary:
A new comms/ directory is introduced which will contain all the communication code between client and server.
This change just moves server.tsx to its new location, it will make the next changes easier to follow.
Reviewed By: fabiomassimo
Differential Revision: D29911904
fbshipit-source-id: ae319dc8f9fd7af9d8b5b5c0ee87b56102cc0a18
Summary: When loading a Flipper trace, the loading dialog was no longer show. This diff fixes that.
Reviewed By: nikoant
Differential Revision: D29844892
fbshipit-source-id: 23d1f53962a3f64f93cc42127cd008c03486c14c
Summary: Introduce convenience abstractions to make it easier to manage dialogs imperatively, by promisyfying common dialog abstractions.
Reviewed By: jknoxville, nikoant
Differential Revision: D29790462
fbshipit-source-id: c092c15cf569ec353b9c1042f25cd67e6c76db01
Summary: This diff makes sure we can manually & unit tests deeplinks more easily, by introducing a dialog in which a deeplink can be entered manually and extracting deeplink handling logic from the application dispatcher.
Reviewed By: jknoxville
Differential Revision: D29760933
fbshipit-source-id: 0fc8f577204ecdd278716853b87786557a6e2194
Summary: Refactored Navigation plugin to make it fast-refreshable: moved the main component into a separate file and exported all components as named functions. Without these changes every change of UI triggered full reload.
Reviewed By: timur-valiev
Differential Revision: D29814077
fbshipit-source-id: 5285bdc5f14a5163f9501c0d45a3affefb08fc8e
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/2609
Make it possible to mark some tests to run on non-CI, or unix only
Reviewed By: nikoant
Differential Revision: D29813506
fbshipit-source-id: 140f8a4eaed5af3282ab9d139b46a52818be0934