Summary:
D24358369 (8a31e984b3) introduced a dependency outside the `sonar/` dir, which probably should not have happened. D27324576 finally broke this, by adding a dep to QPL core, which will never be installed in our CI.
This diff unbreaks that rewriting the require to a locally provided version of crc32, however this is a stop gap, and it would be great if someone would look into a sustainable solution :)
Reviewed By: passy
Differential Revision: D27327272
fbshipit-source-id: 70cdf21c7ecf081ef804d6338ec11e498e3cb7cf
Summary: This moves `<DetailSidebar>` component to `flipper-plugin` and documents it. No semantic changes.
Reviewed By: passy
Differential Revision: D27234575
fbshipit-source-id: 74640602d718f84ad999f5dac0420089796ed7fb
Summary:
This diff deprecates the Sidebar concept, and copies the implementation to Sandy (tried moving first, but since existing plugins use the Sidebar in non-flex (Layout) contexts, that the layout of several plugins, so rather deprecated the old implementation.
Instead of exposing `Sidebar` explicitly, one can now put the `resizable` flag on a Layout.Top/Left/Bottom/Right, which makes building layouts even simpler, see demo.
The gutter logic was moved to the new implementation, since that was only used by the Sandy chrome anyway.
Changelog: Layout.Top / Left / Bottom / Right now support a resizable option
Reviewed By: passy
Differential Revision: D27233899
fbshipit-source-id: fbbdeb2ebf30d49d0837705a00ea86bb07fc2ba2
Summary:
Bumps [rsocket-flowable](https://github.com/rsocket/rsocket-js) from 0.0.23 to 0.0.25.
<details>
<summary>Commits</summary>
<ul>
<li><a href="a85a4db041"><code>a85a4db</code></a> v0.0.25</li>
<li><a href="b279d67569"><code>b279d67</code></a> ammend versions</li>
<li><a href="1e15f3c975"><code>1e15f3c</code></a> v0.0.24</li>
<li><a href="a4b7a93dc0"><code>a4b7a93</code></a> provides a temporary fix for <a href="https://github.com/rsocket/rsocket-js/issues/110">https://github.com/facebook/flipper/issues/110</a></li>
<li><a href="c271a37128"><code>c271a37</code></a> exports missing TlsClient</li>
<li><a href="844b10b35b"><code>844b10b</code></a> updates docs</li>
<li><a href="39a86dfa5f"><code>39a86df</code></a> updates docs</li>
<li><a href="97e1e9f922"><code>97e1e9f</code></a> updates versions</li>
<li><a href="90e70580d1"><code>90e7058</code></a> fixes RSocketMachine leak on the server-side (<a href="https://github.com/rsocket/rsocket-js/issues/120">https://github.com/facebook/flipper/issues/120</a>)</li>
<li><a href="f665cd1038"><code>f665cd1</code></a> adds METADATA_PUSH support (<a href="https://github.com/rsocket/rsocket-js/issues/119">https://github.com/facebook/flipper/issues/119</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/rsocket/rsocket-js/compare/v0.0.23...v0.0.25">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/2069
Reviewed By: passy
Differential Revision: D27230118
Pulled By: priteshrnandgaonkar
fbshipit-source-id: 814a094dabdffae71b26abd8b8ef0d6691ef94ee
Summary:
Really not errors at all. I'm getting warnings here about my Vulkan
support not working. That shouldn't be logged as a Flipper error.
Reviewed By: mweststrate
Differential Revision: D27260607
fbshipit-source-id: 6f9d2ab0da3fe37bb5c8c185ad627ef0d581e5d5
Summary:
Bumps [emotion/styled](https://github.com/emotion-js/emotion) from 11.0.0 to 11.1.5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/emotion-js/emotion/releases"><code>@emotion/styled's releases</code></a>.</em></p>
<blockquote>
<h2>emotion/styled@11.1.5</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a href="d029350801"><code>d0293508</code></a> <a href="https://github.com/emotion-js/emotion/pull/2240">#2240</a> Thanks <a href="https://github.com/wolszczak96"><code>@wolszczak96</code></a>! - <code>as</code> prop has been removed from TypeScript declarations for composite components. This prop has not actually been handled by default by <code>styled</code> for those components - to make <code>styled</code> handle it you need to provide a custom <code>shouldForwardProp</code> that doesn't forward the <code>as</code> prop.</p>
</li>
<li>
<p>Updated dependencies [<a href="f3c2e81d10"><code>f3c2e81d</code></a>]:</p>
<ul>
<li>emotion/is-prop-valid@1.1.0</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="2fe9e0e945"><code>2fe9e0e</code></a> Version Packages (<a href="https://github.com/emotion-js/emotion/issues/2207">#2207</a>)</li>
<li><a href="d029350801"><code>d029350</code></a> Removed type for <code>as</code> prop for composite components (<a href="https://github.com/emotion-js/emotion/issues/2240">#2240</a>)</li>
<li><a href="f3c2e81d10"><code>f3c2e81</code></a> Added <code>option</code> & <code>fallback</code> AMP props to the list of valid props (<a href="https://github.com/emotion-js/emotion/issues/2232">#2232</a>)</li>
<li><a href="b62647e8f5"><code>b62647e</code></a> Fix regex to comply with no-useless-escape ESLint rule</li>
<li><a href="400c6f7290"><code>400c6f7</code></a> Update slack link</li>
<li><a href="00cb6141a7"><code>00cb614</code></a> Update example describing how one can provide a library theme type using inte...</li>
<li><a href="4d2e732e9f"><code>4d2e732</code></a> Added export for <code>SerializedStyles</code> Flow type from <code>emotion/react</code> (<a href="https://github.com/emotion-js/emotion/issues/2206">#2206</a>)</li>
<li><a href="a89d4257b0"><code>a89d425</code></a> Lift Emotion 11 codemod instructions to the earlier spot in the docs (<a href="https://github.com/emotion-js/emotion/issues/2194">#2194</a>)</li>
<li><a href="a1e44aa56b"><code>a1e44aa</code></a> Version Packages (<a href="https://github.com/emotion-js/emotion/issues/2187">#2187</a>)</li>
<li><a href="71ca9be336"><code>71ca9be</code></a> Fix TypeScript support for custom components with non-standard declarations (...</li>
<li>Additional commits viewable in <a href="https://github.com/emotion-js/emotion/compare/emotion/styled@11.0.0...@emotion/styled@11.1.5">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/2067
Reviewed By: passy
Differential Revision: D27230129
Pulled By: priteshrnandgaonkar
fbshipit-source-id: fcd95fb0db6b160df165189b6841ce5a42694459
Summary:
Stacktraces right now always contain the `/home/$USER/.cache/flipper-launcher/v1.2.3/...` (or equivalent)
which makes deduping and reading harder. This strips the paths.
Reviewed By: mweststrate
Differential Revision: D27130251
fbshipit-source-id: c0e8d5eb1575c6269d49a6aee0e8a5e93996d223
Summary:
In browsers and Node.js, console methods accept a printf format string as a first argument:
```
console.log('Hello %s', 'world');
//> Hello world
```
This is not currently supported in Flipper, which just renders the log messages as they come from Metro (as an array of values, most often strings).
This adds support for it in Flipper by using the `util.format` function from Node.js (which is the same method used by the console under the hood).
It is implemented in Flipper and not in Metro so we have the flexibility to format the values as we want in the future (e.g.: numbers with a specific color).
Reviewed By: yungsters, mweststrate
Differential Revision: D27154864
fbshipit-source-id: e807b67900ddaf3a7e8cd86795589bed088beecd
Summary: Just a small fix to normalise import path to make typescript happy when this code is located in "flipper" folder (e.g. after installing "flipper" package as dependency) rather than "app" folder.
Reviewed By: jknoxville
Differential Revision: D27156167
fbshipit-source-id: 24495d6b1a756b20fadf62eec18bfe6665eb78e2
Summary:
Found that one of the parameters wasn't used for anything making
it harder to make sense of the construct and test it.
Reviewed By: nikoant
Differential Revision: D27117591
fbshipit-source-id: f4c796dd37b0bd75497710fb9f88c923181f90e1
Summary: This diffs refactors tsc projects structure and structure of our custom typings to allow producing typescript typings for "flipper" package. In next diffs I'm going to use the produced typings to check compatibility of plugins with certain versions of Flipper, e.g. to check whether plugin is compatible with current "stable" and "insiders" version.
Reviewed By: passy
Differential Revision: D26997158
fbshipit-source-id: a0416c7139bf08ec9d175730da4c4c2a8768eeb7
Summary: See D27047041 (d293b2b0e5) for more details. This diff makes sure the log listener is disposed if the Logs plugin is disabled / the logging is paused, rather than keeping the connection open all time.
Reviewed By: nikoant
Differential Revision: D27083966
fbshipit-source-id: 6f157c237519a0fde9591f1c2033621858863de0
Summary:
Flipper used to always subscribe to the adb logs. This change makes the log subscription lazy, which means if there are no plugins listening to the logs, we don't subscribe to the adb logs at all. As you can see in the recording (prod build) this lowers CPU usage significantly: without logs plugin disabled it is now ~5-8 %, with the plugin enabled ~12-18%. Before this change we would never stop listening to the log output, even when the plugins were disabled, causing a constant background noise which people complain regularly about.
The pause / resume button in the new log plugin will now cleanup the connection as well, so that a simple 'pause' click will already boost performance, without needing to disable the logs plugin (if crash reporter is not enabled)
In this diff we also will clear the logs when reconnected. Previously we didn't reset the logs after connecting, we means Flipper would try to gets up with all past logs first, which could be a few 100 K entries.
Further future optimizations could involve using logcat smarter; by actually passing filters on app or loglevel to the command (not sure if that is actually faster, or just a convenience api that does the same filtering as we do)
Changelog: Flipper will now use less CPU if logs & crash reporter plugins are disabled by no longer tailing adb logcat.
Reviewed By: nikoant
Differential Revision: D27047041
fbshipit-source-id: 251a04dcc6f488f220cb56fe50a26788d795e38c
Summary: `onRegisterDevice` device abstraction was only used by the CrashReporterPlugin, and since with Sandy plugin lifecycles every plugin can do 'on-load' logic, we don't need it anymore.
Reviewed By: priteshrnandgaonkar
Differential Revision: D27046711
fbshipit-source-id: 16c567c60ed29a50017d525a2b707ee696a99e62
Summary:
This diff converts the CrashReporter plugin to Sandy. The main driver is that it allows us to fix the connection management of logs in a next diff.
There are few changes to highlight:
* A bunch of the old unit tests are removed, as they primarily verified that persistedState abstraction works, a concept that doesn't exist anymore with Sandy (as a result all the logic in error handling and crash reporter plugin has become a lot more trivial as well)
* Added additional unit tests to verify that the integration with notifications from Sandy, and the integration of crashes in combination with CrashReporter plugin works (this wasn't the case before)
* Plugin errors were always suppressed in production builds of Flipper. However, that makes error reporting pretty pointless in the first place, so enabled it by default, but made it a setting in case this results in too many errors suddenly.
* The integration with clicking OS crash notification -> bringing the user to a sensible place _doesn't_ work, but it didn't work before this diff either, so will address that later
* This doesn't upgrade the Crash reporter UI to sandy yet, will do that later in a separate diff
Changelog: Crash reporter will now report errors triggered from the device / client plugins by default. This can be disabled in settings.
Reviewed By: priteshrnandgaonkar
Differential Revision: D27044507
fbshipit-source-id: 8233798f5cce668d61460c948c24bdf92ed7c834
Summary: Exposed the `pluginKey` to sandy plugins (which we will use later for storing table preferences per plugin). And a little moving code around because circular deps problem roared its ugly head again.
Reviewed By: nikoant
Differential Revision: D27009721
fbshipit-source-id: 7ad29e72ff8028c9daae270c4749b657bd8ff049
Summary: ..and some earlier reviews comments has been processed + some fine tuning on the ui
Reviewed By: priteshrnandgaonkar
Differential Revision: D26816559
fbshipit-source-id: adf2586763be185ee8e7cc22b2827ecefe4e4cab
Summary:
This diff implements the remaining features in the logs plugin:
- deeplinking
- merging duplicate rows
The logs plugin source code has now been reduced from originally `935` to `285` LoC. All optimisation code has been removed from the plugin:
* debouncing data processing
* pre-rendering (and storing!) all rows
Finally applied some further styling tweaks and applied some renames to DataTable / DataSource + types finetuning. Some more will follow.
Fixed a emotion warning in unit tests which was pretty annoying.
Reviewed By: passy
Differential Revision: D26666190
fbshipit-source-id: e45e289b4422ebeb46cad927cfc0cfcc9566834f
Summary:
Introduced a context menu for DataTable with some default options. Opted to put it under a visible hovered dropdown instead of on right-click, since this better alings with Ant's design guides (we don't have context clicks anywhere else I think), but if it isn't convincing we can still change it.
Included some default actions, to set up quick filters, and to copy values. For copying rows, implemented it to by default take the JSON from a row, rather than space separated values like in ManagedTable, as many existing plugins customize the onCopy handler to just do that, so it seemed like a better default since it is a richer format. If there are good use cases for the previous behavior, we'll probably find out after the old release :)
Introduced utility to copy text to clipboard in FlipperLib, but decoupled it from Electron.
Didn't include multi select yet, that will be done in a next diff.
Reviewed By: nikoant
Differential Revision: D26513161
fbshipit-source-id: b2b1b20b0a6f4ada9de2566bf6b02171f722c4aa
Summary:
Beyond a search across all columns, it is now possible to specific columns for specific values:
* for a row to be visible, all active column filters need to be matched (e.g. both a filter on time and app has to be satisfied)
* if multiple values within a column are filtered for, these are -or-ed.
* if no value at all within a column is checked, even when they are defined, the column won't take part in filtering
* if there is a general search and column filters, a row has to satisfy both
Filters can be preconfigured, pre-configured filters cannot be removed.
Reseting will reset the filters back to their original
Move `useMemoize` to flipper-plugin
Merged the `ui/utils` and `utils` folder inside `flipper-plugin`
Reviewed By: nikoant
Differential Revision: D26450260
fbshipit-source-id: 11693d5d140cea03cad91c1e0f3438d7b129cf29
Summary:
Add support for resizable columns, column sorting, and hiding / showing columns
Moved some utilities from Flipper to flipper-plugin, such as Interactive and LowPassFilter
Split DataTable into two components; DataSourceRenderer which takes care of purely rendering the virtualization, and DataTable that has the Chrome around that, such as column headers, search bar, etc.
Reviewed By: nikoant
Differential Revision: D26321105
fbshipit-source-id: 32b8fc03b4fb97b3af52b23e273c3e5b8cbc4498
Summary: This diff updates the device display name in the drop down for DummyDevice
Reviewed By: mweststrate
Differential Revision: D26945724
fbshipit-source-id: 6a82c6353f6d8dfe6d3a60e06f0f78d00c39ff59
Summary:
Device plugins won't work for DummyDevice type as the device id is a fake one for this.
This diff updates the "supportedDevices" for the plugins.
Reviewed By: mweststrate
Differential Revision: D26944601
fbshipit-source-id: a29acc288f8f0c564f52db02914e7b0491b211d2
Summary: Rename ClientDevice to DummyDevice. It is being currently used in the case when we do cert exchange through WWW/Distillery. In this mode we are not able to figure out the exact device id(instead we create a fake one) and thus we would not like to use Android or IOSDevice for such cases.
Reviewed By: mweststrate
Differential Revision: D26944415
fbshipit-source-id: f9f76e8997cf5402ba5627ae1959f5a11e078bb1
Summary:
Bumps [ant-design/icons](https://github.com/ant-design/ant-design-icons) from 4.4.0 to 4.5.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/ant-design/ant-design-icons/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/2019
Reviewed By: mweststrate
Differential Revision: D26889248
Pulled By: passy
fbshipit-source-id: 753cc63b9417b5e33eb0593122b248fc0c69b0f7
Summary:
Bumps [types/archiver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/archiver) from 3.1.1 to 5.1.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/archiver">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/2020
Reviewed By: mweststrate
Differential Revision: D26889183
Pulled By: passy
fbshipit-source-id: 60ab86160e29ebf53d8291bac14ef25da9c99e2e
Summary: Due to the space in the path, `fs.pathExists` returned false even if the path was existent. Thus added `.trim()` to fix it.
Reviewed By: passy
Differential Revision: D26869404
fbshipit-source-id: 146a96262353177e786f5100a1dad9af7c7d398b
Summary:
This diff adds the support of detecting physical device in Flipper even if the xcode is not installed and there is no cli tool installed.
See the demo.
Reviewed By: timur-valiev
Differential Revision: D26816588
fbshipit-source-id: 5f052998fcbe5c51385222d16df0e1855177b552
Summary:
Changelog: Creating an Android screen recording no longer includes meta information like frame rate.
Context: https://fb.workplace.com/groups/flippersupport/permalink/1088379648309359/
Before:
{F454408806}
Reviewed By: mweststrate
Differential Revision: D26765408
fbshipit-source-id: 560d7ba4ff4ccff1b4a17f1c1073efe7638e397a
Summary: In dev mode a (further harmless) error will be triggered if the self inspection plugin is loaded, since the device_id is empty. empty device id's however are fine; the represent the host device (Mac / Win devices)
Reviewed By: passy
Differential Revision: D26814269
fbshipit-source-id: 281fc591c1df47092011b4140099fc7138718b43
Summary:
Fixing the previous resulted in a next exception, where blur / focus might be triggered directly as side effect of some running logic. I think this happens when entering a debugger statement causing the window to loose focus in favor of the devtools.
Wrapped the logic in setImmediate to make sure that it runs on its own stack, since this will prevent any potential future issues with programmatically focussing / blurring as well.
Reviewed By: jknoxville
Differential Revision: D26814270
fbshipit-source-id: 5ca430653a219d3c98d8bf925277de67d8a9eb20
Summary: The state recorder was never updated for Sandy, nor is that really needed since Sandy offers better testing abstractions, and this was a stop gap with potential privacy concerns (due to recording real data). The feature didn't result in any actual test cases, so it seems we won't be missing out with this :)
Reviewed By: passy
Differential Revision: D26813798
fbshipit-source-id: 48ec11516fbc1a47a349a5799713ad05a7e1c73a
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1996
Erm, I'm a bit of a dummy. I didn't mock the access check, so it would actually
rely on idb being installed to run the tests correctly. Without, we'd fail like here
on GitHub: https://github.com/facebook/flipper/runs/2021551466
I couldn't quite figure out how to mock `fs.promises.access`, so I made the constructor
configurable, which doesn't seem that bad, actually.
Reviewed By: mweststrate
Differential Revision: D26778428
fbshipit-source-id: 120b8060ad3ccb1cecd8ce2b208733d5e1090a72
Summary: Create a constant to hold all valid origin prefixes, for incoming WebSocket requests. This is to make it easier to add additional origins.
Reviewed By: mweststrate
Differential Revision: D26778708
fbshipit-source-id: b89bd8c8d8925b2863f12c319c6ecbeeb265fc42
Summary:
Upgraded Metro to 0.65.2 which contains the fix for regression which blocked us previously (https://github.com/facebook/metro/issues/641).
Also upgraded Babel to the latest available versions as anyway most of its packages were upgraded together with Metro.
Reviewed By: passy
Differential Revision: D26777168
fbshipit-source-id: f325e0ba46a95e15605a7b15a793d714b1027061
Summary: Minimal tweak to the soft crash error reporting: include the version number
Reviewed By: passy
Differential Revision: D26754416
fbshipit-source-id: d517d0bdb6bcf5c58b492c60b5bb8cc5f6b288f6
Summary: I've modified migration to ensure it never produces "undefined" state. Before that this happened when migration is performed from version 0.75- to 0.77+ without 0.76 in between.
Reviewed By: mweststrate
Differential Revision: D26749830
fbshipit-source-id: 3a6599e80935060e8784103363abd617a7f1b7bd
Summary: This is just an early start of centralising some ad-hoc logic we've got all over the place right now. Memoised do-we-have-idb calls with concatenated shell invocations. This gives us the opportunity to do a bit of testing, too.
Reviewed By: mweststrate
Differential Revision: D26694863
fbshipit-source-id: cd2b9883f90397802bbaae6030f7cb3881c565c2
Summary:
Packaged KaiOS apps have "app://" as their origin prefix (see the "origin" section in the documentation - https://developer.kaiostech.com/getting-started/main-concepts/manifest).
Accept WebSocket connections from any "app://" origin, so can connect to Flipper from apps running on KaiOS devices.
Reviewed By: priteshrnandgaonkar
Differential Revision: D26728925
fbshipit-source-id: 05f15fe464bf0dc977665fba1dd2b8d61a399fa6
Summary:
Fixes https://github.com/facebook/flipper/issues/1989
We had some self healing side effect that would destroy devices when registering a new device with the same serial, if they weren't yet. Redux isn't too happy about that, causing the attached crash.
Instead introduced a utility to destroy devices, and log an error if the device life cycle isn't respected by the device implementations, rather than crashing we will now just waste some memory.
Changelog: Fix a crash when disconnecting metro devices
Reviewed By: passy
Differential Revision: D26749214
fbshipit-source-id: 4c185ac521d44c1337fac8a9145440123b8b784c
Summary:
Bumps [async-mutex](https://github.com/DirtyHairy/async-mutex) from 0.2.6 to 0.3.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/DirtyHairy/async-mutex/blob/master/CHANGELOG.md">async-mutex's changelog</a>.</em></p>
<blockquote>
<h2>0.3.1</h2>
<ul>
<li><code>withTimeout</code>: make Jest happy and cancel timer when the mutex is acquired.
Thanks to cantoine for the PR.</li>
</ul>
<h2>0.3.0</h2>
<ul>
<li>
<p>Deprecate <code>Mutex::release</code> / <code>Semaphore::release</code> and remove them from the
documentation. The methods are still available in 0.3.x, but will be removed in
0.4.0.</p>
<p>I don't like breaking existing APIs, but using those methods is inherently
dangerous as they can accidentially release locks acquired in a completely
different place. Furthermore, they are mostly useless for semaphores. I consider
adding them an unfortunate mistake on my end.</p>
<p>A safe alternative is the usage of <code>runExclusive</code> which allows to execute
blocks exclusively and automatically manages acquiring and releasing the
mutex or semaphore.</p>
</li>
<li>
<p>Add <code>Mutex::cancel</code> / <code>Semaphore::cancel</code> for rejecting all currently pending
locks.</p>
</li>
<li>
<p>Add <code>tryAcquire</code> decorator for lock-or-fail semantics.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="93f1ff7d6d"><code>93f1ff7</code></a> Changelog, bump version.</li>
<li><a href="3aad9351d7"><code>3aad935</code></a> Bump version.</li>
<li><a href="eed47b0425"><code>eed47b0</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/DirtyHairy/async-mutex/issues/34">https://github.com/facebook/flipper/issues/34</a> from cantoine/clear-timeout-fix</li>
<li><a href="38e59ba3b4"><code>38e59ba</code></a> Add clearTimeout and tests</li>
<li><a href="76fb6185d3"><code>76fb618</code></a> Point badge to action on gh.</li>
<li><a href="330854af56"><code>330854a</code></a> Typo.</li>
<li><a href="73992fee3a"><code>73992fe</code></a> Ups.</li>
<li><a href="b3870af6b6"><code>b3870af</code></a> Badge.</li>
<li><a href="13ad461682"><code>13ad461</code></a> Another stab at coveralls.</li>
<li><a href="3e5daebbb7"><code>3e5daeb</code></a> Remove travis, add coveralls to github workflow.</li>
<li>Additional commits viewable in <a href="https://github.com/DirtyHairy/async-mutex/compare/v0.2.6...v0.3.1">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/1984
Reviewed By: passy
Differential Revision: D26724090
Pulled By: mweststrate
fbshipit-source-id: 71a59fe1df200198fc437d2a87f72dde82ba4fa4
Summary:
Bumps [react-color](https://github.com/casesandberg/react-color) from 2.18.1 to 2.19.3.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/casesandberg/react-color/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/1987
Reviewed By: passy
Differential Revision: D26724081
Pulled By: mweststrate
fbshipit-source-id: c7b136546206dadfbd1a793360953b14586b219b
Summary: When exploratory testing Flipper, I generally see quite some React key warnings. So it seems that plugin devs often miss them. This diff will configure linting more aggressively to address that (it's not fool proof, but will find the most common cases).
Reviewed By: nikoant
Differential Revision: D26722707
fbshipit-source-id: e0d2b56de2422e1147f52c8e9150d00c7ee64bd2
Summary:
Changelog: Flipper will no automatically select any newly connected client
This reverts D26250896 (2df117923c) to V5, which is to aggressively select new clients. The current behavior was too conservative and caused Flipper to jump to a different client, without returning, after reconnecting a disconnected device.
As reported in https://fb.workplace.com/groups/flippersupport/permalink/1084676302013027/
Reviewed By: fabiomassimo
Differential Revision: D26691046
fbshipit-source-id: b16af2052f58dc1d4254eb1e6ebbb5848c53ed7e