Summary: I upgraded the docker image which should pull the latest GHR release (https://github.com/tcnksm/ghr).
Reviewed By: lblasa
Differential Revision: D31442256
fbshipit-source-id: 0f9fa81ec1be1285aea3da621b7ef5a1e63c3e84
Summary:
This diff introduces the packages necessary for Flipper decapitated.
* flipper-common: utilities & types shared between client, server, flipper-plugin
* flipper-server-core: all device & client management goes in here. Basically flipper's backend
* flipper-ui-core: all UI goes in here, as far as it doesn't depend on Electron
* desktop: the Electron app, will load server-core and ui-core, and glue them together, providing implementations for some electron specific stuff like dialgos
* flipper-server: A node process hosting flipper-server-core, that can be connected to over websockets. And probably can serve a browser version of the UI as well.
* flipper-ui-browser: thin wrapper around flipper-ui-core, providing some browser specific behavior / stubs.
* flipper-dump: (might remove later), but want to hack a quick and dirt flipper dump in here, as alternative way to test flipper-server-core.
This diff just creates the packages, but doesn't move any code, so it can be summarized as:
restoftheowl
Reviewed By: nikoant
Differential Revision: D30218646
fbshipit-source-id: 735598a1261a98e584f52504b5eba01ec0afa162
Summary:
Per https://react-native-community.github.io/upgrade-helper/?from=0.65.1&to=0.66.0
Also cleaned up lockfiles, made relative-deps non-default, removed old resolutions since I got weird errors with them.
allow-large-files
Reviewed By: timur-valiev
Differential Revision: D31471307
fbshipit-source-id: 2ef8856498bb73293d6638b2c08a1042adb636e5
Summary:
This diff cleans up order remaining dialogs, the ones involved in exporting to file or url. Includes some legacy component cleanup boyscouting, but not too much.
This removes a lot of code where state of the wizard was stored globally, and makes it locally instead.
Other code that was removed involves interaction with the old UI, which allowed import / export to be running in the background as well. (which is no longer needed since we optimised the process)
Reviewed By: timur-valiev
Differential Revision: D30192000
fbshipit-source-id: 13be883c5bf217a3d58b610b78516359e9bd0ebc
Summary:
This diff moves the dialogs
* Settings
* Plugin Manager
* Doctor
* Sign in
* Changelog
To use the imperative dialog APIs, rather then organising them through reducers which adds a lot of indirection which isn't really needed but hard to follow.
Reviewed By: passy
Differential Revision: D30192002
fbshipit-source-id: ba38b2e700da3e442653786448fcbf85074981ad
Summary: This stack gets rid of Flippers old sheet abstraction that relies on native (Electron) overlays, and implements it using Ant dialogs instead. Also removes a lot of code by making dialog API imperative, rather than reducer organised, like done in the deeplink handling.
Reviewed By: passy
Differential Revision: D30192001
fbshipit-source-id: 9bca3274bd039207e58f8f9394027515e391671d
Summary: This diff separates the concept of a Client as now on the UI, from the concept of a Client as known on the server, and makes all interactions with client and vice versa async.
Reviewed By: timur-valiev
Differential Revision: D31235682
fbshipit-source-id: 99089e9b390b4c5359f97f6f2b15bf4b182b6cb9
Summary:
The entire repo is MIT (unless stated otherwise) but
without the flag, yarn is very noisy on every startup.
{F668266100}
Reviewed By: timur-valiev
Differential Revision: D31429016
fbshipit-source-id: 11a963181dc309a251e6c71a9a16ab93d12b7f93
Summary: Sets up some logging for the various drop-out points when going through the deeplink flow.
Reviewed By: lblasa
Differential Revision: D31345623
fbshipit-source-id: a06ca97c1e687e39ea97a1f47fd8bb614149056f
Summary: Refactor clients storage: array -> map. A lot of logic looks up clients by their id, which is currently done with an array.find operation, which is pretty inefficient. This diff changes it to a map, that is pretty important, as in the next diff the decoupled client message handing will need to find the client again for every message that arrives.
Reviewed By: timur-valiev
Differential Revision: D31303536
fbshipit-source-id: ca3f540a3de7665930d2354436d37cb0fbfd5546
Summary:
Changelog: Improved plugin / device / app selection handing.
During some refactorings I discovered that the `connetions.selectedApp` field contained sometimes an application id, and sometimes just the name. This caused inconsistent behavior especially in unit tests.
I've cleaned that up, and renamed it to `selectedAppId` where applicable, to make the distinction more clear.
And, in contrast, userPreferredApp now always has a name, not an id.
During refactoring our existing selection update logic was quite in the way, which was overcomplicated still, since during the sandy chrome migration, the reducers needed to be able to handle both the old UI, and the new application selection UI. That logic has been simplified now, and a lot of tests were added.
As a further simplification the preferredApp/Device/Plugin are now only read and used when updating selection, but not when running selectors.
Reviewed By: timur-valiev
Differential Revision: D31305180
fbshipit-source-id: 2dbd9f9c33950227cc63aa29cc4a98bdd0db8e7a
Summary:
This change removes ourselves as a delegate before closing.
SocketRocket uses its own internal async queue to perform most operations.
After a disconnect, we don't expect to receive any more delegate calls as the handlers may contain references which may have become invalid.
So, removing ourselves as delegates will ensure that we don't get called after a disconnect.
For sanity, we are also taking a copy of the message handler instead of a reference to it.
Reviewed By: briantkelley
Differential Revision: D31360721
fbshipit-source-id: bae5a2423757cd9064ffac28afb8b78c28a20d87
Summary:
Set up some basic logging for deep link usage at the entry point and error cases.
More granular logging coming up next.
Reviewed By: nikoant
Differential Revision: D31337822
fbshipit-source-id: 171eae68fb3d9a11aa155087baf6f8309bbd7295
Summary:
Add screenreader-focusable property to AccessibilityUtil#getAccessibilityNodeInfoData
The accessibility hierarchy displays various AccessibilityNodeInfo properties. However, it was missing the screenreader-focusable property.
## Changelog
Display screenreader-focusable property in the accessibility hierarchy.
Pull Request resolved: https://github.com/facebook/flipper/pull/2925
Test Plan: Test suite passes and code lints.
Reviewed By: mweststrate
Differential Revision: D31312381
Pulled By: passy
fbshipit-source-id: c5044cef6aabe5bd2d2ce5e315f5aafd6990a137
Summary: Some drive-by changes as I'm working on other stuff.
Reviewed By: mweststrate
Differential Revision: D31337500
fbshipit-source-id: 8f348af06b7c4b159703d7adf160a7380ba57b22
Summary:
Splitting this up into the wiring and the actual usage.
This just ensures we have a logger in place for handling
deeplinks.
Reviewed By: mweststrate
Differential Revision: D31337457
fbshipit-source-id: b088a7396e38554a87502ba7d5669dbef1b398d7
Summary:
Grey -> gray. "Cancelled" seems quite common in APIs though, so I disabled that.
A few promise cleanups
Reviewed By: aigoncharov
Differential Revision: D31323610
fbshipit-source-id: c8863d995936f451c24eb408fe5c26677187f089
Summary:
Promisify leads to weird types and sometimes unexpected runtime behaviour. Replacing it with the dep we use everywhere.
It's just really annoying that `stdout` is here explicitly `| null` which isn't the case in the default types.
Reviewed By: timur-valiev
Differential Revision: D31278303
fbshipit-source-id: eadbc49b287704e71a5ecba0d9a311eac91dc6f8
Summary:
Simplifies the logic by only using idb when available to query *both* simulators and physical devices.
Changelog: Prefer idb for device listing when available.
Reviewed By: mweststrate
Differential Revision: D31271539
fbshipit-source-id: ac5b73ca5b00b7707bf87cd4d3a6af6e0c0ae214
Summary:
I believe that matches what we have internally. This has been causing some upgrades to fail.
Pull Request resolved: https://github.com/facebook/flipper/pull/2928
Reviewed By: aigoncharov
Differential Revision: D31324394
Pulled By: passy
fbshipit-source-id: eec38dcc6322e3e8957bbc20bf74d343855be8c0
Summary:
Bumps [js-base64](https://github.com/dankogai/js-base64) from 3.7.0 to 3.7.2.
<details>
<summary>Commits</summary>
<ul>
<li><a href="bf0845d5b5"><code>bf0845d</code></a> version 3.7.2</li>
<li><a href="bbd711c62a"><code>bbd711c</code></a> improve handling of padding =</li>
<li><a href="cb2434f152"><code>cb2434f</code></a> Create codeql-analysis.yml</li>
<li><a href="4c54242333"><code>4c54242</code></a> Create SECURITY.md</li>
<li><a href="8119845603"><code>8119845</code></a> version 3.7.1</li>
<li><a href="e4362c7c51"><code>e4362c7</code></a> package.json: empty <code>dependencies</code></li>
<li>See full diff in <a href="https://github.com/dankogai/js-base64/compare/3.7.0...3.7.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/2917
Reviewed By: mweststrate
Differential Revision: D31240067
Pulled By: passy
fbshipit-source-id: 4724b72e84a10fea3a40a4e1da84a9f6347ec495
Summary:
This should fix the build failures due to old node versions.
Pull Request resolved: https://github.com/facebook/flipper/pull/2927
Reviewed By: timur-valiev
Differential Revision: D31311267
Pulled By: passy
fbshipit-source-id: 336138c0bd57fbc9f72f5694a258279245b8a30d
Summary: This is from a larger lint task but I'm pulling this out separately. Sync only matters to us in the context of UI where it can block the main loop. Here it's fine.
Reviewed By: timur-valiev
Differential Revision: D31290130
fbshipit-source-id: 9a156ce549a1249b2b08f16e3afef6e5cd1e5441
Summary:
Added fetching logs for flipper and autofilling them too with the create paste link in the description of the support form.
Changed the on click load form function to async to handle this as createPaste returns a promise and not the URL directly.
Reviewed By: mweststrate
Differential Revision: D31268006
fbshipit-source-id: 2a9ee08948198781adadd2b3b9c447f179db7d5c
Summary: Fix potentially unhandled promise rejection in Layout inspector. Not really reproducible, and probably originating from old Flipper versions (no trace is available either), since we have a lot of connection check in place. Just in case still handled the exception, for example if something goes wrong on client side
Reviewed By: passy
Differential Revision: D31267465
fbshipit-source-id: d1b384db7bb010af8d2aa12ae29110f343fb14af
Summary: Added autofill for title and description. Description are the list of steps users have taken to troubleshoot.
Reviewed By: mweststrate
Differential Revision: D31263065
fbshipit-source-id: 932e6cb42438cd2da0d7e8686f0f7e0fa69ee586
Summary:
Trigger a manual disconnect on deallocation. This was done automatically for us when the underlying socket gets released. But, this gives a bit more visibility and control onto exactly when this is going to take place.
Additionally, do not clear the message handler when a message is received.
It is not required as sendExpectResponse is one time called only used for certificate exchange. If this takes place again, a new handler will be set anyway.
Reviewed By: passy
Differential Revision: D31231828
fbshipit-source-id: 36ad13564a358b88d1618e94195fe05433d80993
Summary:
Client up `client.device` (which had no code references anymore) / `client.deviceSync`. Cleaned up feature code for old SDKs (pre 2, which is 3 years old).
This makes decapitating Client a little simpler in the rest of the stack.
Reviewed By: passy
Differential Revision: D31235436
fbshipit-source-id: 919679c1830e2b9368d0787d7b363c090305edb8
Summary: Removed an old GK that has been 100% for all employees for months.
Reviewed By: passy
Differential Revision: D31233413
fbshipit-source-id: ce7d871c5c4f46e9264fdc1c2e4042f0362464f1
Summary: Failed to fetch promise rejections should not be reported
Reviewed By: passy
Differential Revision: D31266851
fbshipit-source-id: ce3c15db5504c01d66b44e032c2b7fb752ec2ec3
Summary:
If you just use this profile `hg sparse switch tools/scm/sparse/xplat/flipper-js`, your total checkout will only be around 9 gigs.
I officially ran out of patience and out of space with the recent addition of `/arvr` which alone is about 40GB and I mostly touch Flipper files.
I also included staticdocs and the Rust third-party libraries so Launcher, plugin-metrics etc. are supported, too.
Reviewed By: mweststrate
Differential Revision: D31243980
fbshipit-source-id: 650d67d89298901610fa20330b7737f0a304569e
Summary:
Bumps [glob](https://github.com/isaacs/node-glob) from 7.1.7 to 7.2.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="3bfec21dd1"><code>3bfec21</code></a> 7.2.0</li>
<li><a href="df4598a75a"><code>df4598a</code></a> Add fs option to allow passing virtual filesystem</li>
<li>See full diff in <a href="https://github.com/isaacs/node-glob/compare/v7.1.7...v7.2.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/2918
Reviewed By: mweststrate
Differential Revision: D31240061
Pulled By: passy
fbshipit-source-id: 3bc187526af5051325ef81cbfe5e8790ea76130f
Summary:
Bumps [pretty-format](https://github.com/facebook/jest/tree/HEAD/packages/pretty-format) from 27.1.0 to 27.2.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/jest/releases">pretty-format's releases</a>.</em></p>
<blockquote>
<h2>27.2.0</h2>
<h3>Features</h3>
<ul>
<li><code>[jest-resolver, jest-runtime]</code> Pass <code>conditions</code> to custom resolvers to enable them to implement support for package.json <code>exports</code> field (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11859">#11859</a>)</li>
<li><code>[jest-runtime]</code> Allow custom envs to specify <code>exportConditions</code> which is passed together with Jest's own conditions to custom resolvers (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11863">#11863</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[jest/reporters]</code> Use async transform if available to transform files with no coverage (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11852">#11852</a>)</li>
<li><code>[jest-util]</code> Return correct value from <code>process.send</code> stub (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11799">#11799</a>)</li>
</ul>
<h2>27.1.1</h2>
<h3>Features</h3>
<ul>
<li><code>[jest-runtime]</code> Add experimental, limited (and undocumented) support for mocking ECMAScript Modules (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11818">#11818</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[jest-resolver]</code> Support <code>node:</code> prefix when importing Node core modules with ESM (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11817">#11817</a>)</li>
<li><code>[jest-types]</code> Export the <code>PrettyFormatOptions</code> interface (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11801">#11801</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/facebook/jest/blob/main/CHANGELOG.md">pretty-format's changelog</a>.</em></p>
<blockquote>
<h2>27.2.0</h2>
<h3>Features</h3>
<ul>
<li><code>[jest-resolver, jest-runtime]</code> Pass <code>conditions</code> to custom resolvers to enable them to implement support for package.json <code>exports</code> field (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11859">#11859</a>)</li>
<li><code>[jest-runtime]</code> Allow custom envs to specify <code>exportConditions</code> which is passed together with Jest's own conditions to custom resolvers (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11863">#11863</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[jest/reporters]</code> Use async transform if available to transform files with no coverage (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11852">#11852</a>)</li>
<li><code>[jest-util]</code> Return correct value from <code>process.send</code> stub (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11799">#11799</a>)</li>
</ul>
<h2>27.1.1</h2>
<h3>Features</h3>
<ul>
<li><code>[jest-runtime]</code> Add experimental, limited (and undocumented) support for mocking ECMAScript Modules (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11818">#11818</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[jest-resolver]</code> Support <code>node:</code> prefix when importing Node core modules with ESM (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11817">#11817</a>)</li>
<li><code>[jest-types]</code> Export the <code>PrettyFormatOptions</code> interface (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11801">#11801</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b05635c539"><code>b05635c</code></a> v27.2.0</li>
<li><a href="d6e5ddb0c3"><code>d6e5ddb</code></a> Rename all links to main (<a href="https://github.com/facebook/jest/tree/HEAD/packages/pretty-format/issues/11856">#11856</a>)</li>
<li><a href="111198b62d"><code>111198b</code></a> v27.1.1</li>
<li>See full diff in <a href="https://github.com/facebook/jest/commits/v27.2.0/packages/pretty-format">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/2861
Reviewed By: timur-valiev
Differential Revision: D30961750
Pulled By: mweststrate
fbshipit-source-id: 2c7a43755e840713b2233abbad7ce131785268b8