Summary:
Added a microbundle based build setup to the data-source folder to be able to package just that folder.
For simplicity / iteration speed, this is only used to publish externally. Our own code still references the source files directly.
More strict separation can be done later if there is external adoption.
Reviewed By: nikoant
Differential Revision: D28056699
fbshipit-source-id: a011b615cfffeff8ecb879bd7281a71085cea965
Summary:
To make the DataSource abstraction reusable for other teams and an upcoming talk, this diff moves all DataSource storage & virtualization logic in one folder.
Will set up a build process and demo project in later diffs.
Reviewed By: nikoant
Differential Revision: D28056700
fbshipit-source-id: 7cfe5b40bbbe387da711f765a604a45029d451c7
Summary: Trying to make some bumps a daily habit.
Reviewed By: mweststrate
Differential Revision: D28260273
fbshipit-source-id: 29d163af3e3acc55139b52320992123b72de22c4
Summary: We can't fix the underlying issue but it's quite frustrating when you get an error from Preview or QuickTime after the file was pulled. This improves the messaging a little.
Reviewed By: mweststrate
Differential Revision: D28096087
fbshipit-source-id: 0428fa821a225a02e81574f16d066085e8775251
Summary:
The `flipper` dependency is being deprecated for plugins, so upgraded the plugin to new APIs. This should be pretty safe, however, I'm not sure how to test it :)
Also removed react-diff-viewer dependency, as that seemed unused.
Reviewed By: passy
Differential Revision: D28091469
fbshipit-source-id: b9be007e3fc7b0689b1e1f711849ed82a6e01716
Summary: Bump a few more devDeps that are safe.
Reviewed By: mweststrate
Differential Revision: D28227971
fbshipit-source-id: 3b35b098230b604930d875ddf8867cfc6f56a9c7
Summary: Supress a bunch of ugly emotion warnings, which are completely irrelevant to use as they are about SSR. Also made stacktrac e a bit longer by default.
Reviewed By: passy
Differential Revision: D28226306
fbshipit-source-id: 9060cf2c349a265ce6b479eea252fdcfc9a6c5f2
Summary:
Changelog: [Network] It is now possible to add custom columns for specific request / response headers
This implements #3 papercut. See also https://fb.workplace.com/groups/flippersupport/permalink/1080685582412099/
Didn't include a way to remove custom columns yet. But they can be hidden just like normal columns. Custom columns aren't remembered across Flipper sessions or apps. We can add that later if desired.
Reviewed By: passy
Differential Revision: D28223515
fbshipit-source-id: 3ed008883430be4ae51a645c6a4ac780467ba442
Summary:
Currently the network plugin was always storing the transfer format of our request/ response bodies: a base64 string. However, those are not searchable, and every formatter (and multiple can be invoked in a single view) was responsible for its own decompressing.
This diff changes parsing requests / responses into an accurate format: a decompressed, de-base64-ed utf8 string, or a Uint8array for binary data.
We will use this in the next diffs to do some more efficient searching
Reviewed By: passy
Differential Revision: D28200190
fbshipit-source-id: 33a71aeb7b340b58305e97fff4fa5ce472169b25
Summary:
Changelog: Updated Network plugin to Sandy UI, including several UI improvements
Converted UI to Sandy, and some minor code cleanups
Moved all mock related logic to its own dir
Fixes https://github.com/facebook/flipper/issues/2267
Reviewed By: passy
Differential Revision: D27966606
fbshipit-source-id: a64e20276d7f0966ce7a95b22557762a32c184cd
Summary: Found a small issue in the column width calculation where initial invisible columns still got space assigned.
Reviewed By: passy
Differential Revision: D28221659
fbshipit-source-id: ef052533bc37bc833bab72979803ce36bcf50e61
Summary:
converted the network plugin to use DataSource / DataTable. Restructured the storage to contain a single flat normalised object that will be much more efficient for rendering / filtering (as columns currently don't support nested keys yet, and lazy columns are a lot less flexible)
lint errors and further `flipper` package usages will be cleaned up in the next diff to make sure this diff doesn't become too large.
The rest of the plugin is converted in the next diff
Reviewed By: nikoant
Differential Revision: D27938581
fbshipit-source-id: 2e0e2ba75ef13d88304c6566d4519b121daa215b
Summary:
The migration to Sandy (D28060888) breaks the existing integration we have with importing Flipper traces from bug reports. Given that, I broke this diff out from that one just to highlight the changes.
`pluginStates2` appears to be the field to use for Sandy traces (rather than `store`, which we were using before)
Differential Revision: D28209561
fbshipit-source-id: 9803e1a60b1b1deba6403b50b4079aac2a19efa6
Summary:
Removed the "notifications for leaks" test since we're no longer storing notifications but showing them immediately.
Will do UI updates separately.
Reviewed By: mweststrate
Differential Revision: D28025507
fbshipit-source-id: 58db2504c29bba441b2c2d86cd3e2b8b5c010757
Summary:
allow-large-files
Bumps [metro-resolver](https://github.com/facebook/metro) from 0.65.2 to 0.66.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/metro/releases">metro-resolver's releases</a>.</em></p>
<blockquote>
<h2>Release v0.66.0</h2>
<ul>
<li><strong>[Breaking]</strong> metro-symbolicate: Optionally accept a SourceURL parameter for debug builds (7ad7560)</li>
<li><strong>[Feature]</strong> Move generator to Hermes stable (b280477)</li>
<li><strong>[Feature]</strong> Move for-of and ?? to hermes stable (31375f7)</li>
<li><strong>[Feature]</strong> Set app name for React Native Experimental Debug Connection (3aca116)</li>
<li><strong>[Feature]</strong> Infer the name "default" for anonymous exports (af23a1b)</li>
<li><strong>[Fix]</strong> Disable fileName moduleId parsing for non-legacy source maps (e473e93)</li>
<li><strong>[Fix]</strong> Format log messages using printf format (f2b3485)</li>
<li><strong>[Fix]</strong> Fix scope of function declaration binding in constant folding (150d13e)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="20e4480f9e"><code>20e4480</code></a> Bump metro to 0.66.0</li>
<li><a href="7ad7560e33"><code>7ad7560</code></a> Optionally accept a SourceURL parameter for debug builds</li>
<li><a href="af23a1b27b"><code>af23a1b</code></a> Infer the name "default" for anonymous exports</li>
<li><a href="31375f7604"><code>31375f7</code></a> Move for-of and ?? to hermes stable</li>
<li><a href="3aca116973"><code>3aca116</code></a> Set app name for React Native Experimental Debug Connection</li>
<li><a href="4bd9e40297"><code>4bd9e40</code></a> Deploy v0.148.0 to xplat</li>
<li><a href="54bcce22c6"><code>54bcce2</code></a> Backout for-of and canary ??</li>
<li><a href="f66d6e37f2"><code>f66d6e3</code></a> Canary Hermes for-of</li>
<li><a href="17d4761946"><code>17d4761</code></a> Clean up redundant experimental flowconfig options</li>
<li><a href="0b4f46c064"><code>0b4f46c</code></a> Update troubleshooting docs for metro cache tmpdir (<a href="https://github-redirect.dependabot.com/facebook/metro/issues/642">https://github.com/facebook/flipper/issues/642</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/facebook/metro/compare/v0.65.2...v0.66.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/2264
Reviewed By: mweststrate
Differential Revision: D28181904
Pulled By: passy
fbshipit-source-id: dae2d6e5936e21a09d831460129b69563c8a4bed
Summary:
allow-large-files
Bumps [metro](https://github.com/facebook/metro) from 0.65.2 to 0.66.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/metro/releases">metro's releases</a>.</em></p>
<blockquote>
<h2>Release v0.66.0</h2>
<ul>
<li><strong>[Breaking]</strong> metro-symbolicate: Optionally accept a SourceURL parameter for debug builds (7ad7560)</li>
<li><strong>[Feature]</strong> Move generator to Hermes stable (b280477)</li>
<li><strong>[Feature]</strong> Move for-of and ?? to hermes stable (31375f7)</li>
<li><strong>[Feature]</strong> Set app name for React Native Experimental Debug Connection (3aca116)</li>
<li><strong>[Feature]</strong> Infer the name "default" for anonymous exports (af23a1b)</li>
<li><strong>[Fix]</strong> Disable fileName moduleId parsing for non-legacy source maps (e473e93)</li>
<li><strong>[Fix]</strong> Format log messages using printf format (f2b3485)</li>
<li><strong>[Fix]</strong> Fix scope of function declaration binding in constant folding (150d13e)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="20e4480f9e"><code>20e4480</code></a> Bump metro to 0.66.0</li>
<li><a href="7ad7560e33"><code>7ad7560</code></a> Optionally accept a SourceURL parameter for debug builds</li>
<li><a href="af23a1b27b"><code>af23a1b</code></a> Infer the name "default" for anonymous exports</li>
<li><a href="31375f7604"><code>31375f7</code></a> Move for-of and ?? to hermes stable</li>
<li><a href="3aca116973"><code>3aca116</code></a> Set app name for React Native Experimental Debug Connection</li>
<li><a href="4bd9e40297"><code>4bd9e40</code></a> Deploy v0.148.0 to xplat</li>
<li><a href="54bcce22c6"><code>54bcce2</code></a> Backout for-of and canary ??</li>
<li><a href="f66d6e37f2"><code>f66d6e3</code></a> Canary Hermes for-of</li>
<li><a href="17d4761946"><code>17d4761</code></a> Clean up redundant experimental flowconfig options</li>
<li><a href="0b4f46c064"><code>0b4f46c</code></a> Update troubleshooting docs for metro cache tmpdir (<a href="https://github-redirect.dependabot.com/facebook/metro/issues/642">https://github.com/facebook/flipper/issues/642</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/facebook/metro/compare/v0.65.2...v0.66.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/2261
Reviewed By: mweststrate
Differential Revision: D28181917
Pulled By: passy
fbshipit-source-id: 5219b826a8acfeb098fd0ac72f0503a679780bb6
Summary:
With proper notification, components and code clean up in place, time for the reward and giving the plugin a fresh look.
Changelog: CrashReporter plugin got a fresh look and several navigation issues were addressed.
Reviewed By: passy
Differential Revision: D28102398
fbshipit-source-id: 5721634e45c5b1fc5fba3fb0c0b8970635b80b46
Summary:
Moved a lot of utility logic in separate files for Android and iOS, to make cleanup in next diffs easier by having a bit smaller files.
Purely a code shuffle, no functional changes
Reviewed By: passy
Differential Revision: D28102399
fbshipit-source-id: 2fd8f6669bdd2804fa8a7e1791c610ae7883eda6
Summary:
Changelog: Fixed application crash notifications not opening the crash log
Crashlog notifications were quite blatantly broken:
1. Because I force all GK's to true locally during testing, and the feature gate is negative, I never had any crash reports in the first place. The GK was empty so removed it.
2. The notifications overview would always cause a NPE when the notification came from a device plugin (it assumed a client to be present). This made the button do nothing and the device name not show up near the notification
3. The OS level notifications would link to the notification screen, which was a static screen in the classic UI and would always render to an empty page in Sandy. Removed that screen from the code base. Instead the click the notification will now trigger the notification action.
Reviewed By: passy
Differential Revision: D28119719
fbshipit-source-id: 5b28dd854260fd479d09e3ee6206301cc669ab40
Summary: Added wash color option to Toolbar, made codeblocks transparent rather than gray & bordered, which looks cleaner
Reviewed By: passy
Differential Revision: D28119720
fbshipit-source-id: 9d1f4db5b39a91d9d117046bd5482726ac2f555d
Summary:
Changelog: Standardized DataList component
This diff standardizes the DataList component, by reusing the DataList. This is done to be able to take full advantage of all its features like virtualisation, keyboard support, datasource support, etc.
Also cleaned up DataTable properties a bit, by prefixing all flags with `enableXXX` and setting clear defaults
Reviewed By: passy
Differential Revision: D28119721
fbshipit-source-id: b7b241ea18d788bfa035389cc8c6ae7ea95ecadb
Summary:
Code blocks are quite common in Flipper, and a bit verbose in Ant, so let's standardize!
Changelog: Standardize CodeBlock component
Reviewed By: passy
Differential Revision: D28117560
fbshipit-source-id: 5a5538a49b59ef40c814d22055fac56e7598cbbb
Summary: Flipper Sandy plugins didn't have an event to hook into that is run _after_ any state snapshot is loaded, which was needed by the graphQL plugin, as they do some post processing when a data snapshot is restored.
Reviewed By: passy
Differential Revision: D28189573
fbshipit-source-id: 4ef992f3fafc32787eab3bc235059f2c41396c80
Summary:
Bumps [jest-mock-console](https://github.com/bpedersen/jest-mock-console) from 1.0.1 to 1.1.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/bpedersen/jest-mock-console/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/2265
Reviewed By: mweststrate
Differential Revision: D28181903
Pulled By: passy
fbshipit-source-id: 40b305d3a90a01adfb7e21b3cbd5a8e75ce5de04
Summary:
Increase the mouse target for copying values from the the tree in a data inspector to the full row, not just the text.
Not sure if bringing reversing the order here has any unintended side-effects, but in testing it seems to work fine.
Reviewed By: mweststrate
Differential Revision: D28185064
fbshipit-source-id: b9b86a7e181bfd0083f2a3bcb24c571b5ec4647e
Summary:
Bumps [types/yargs](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/yargs) from 15.0.13 to 16.0.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/yargs">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/2262
Reviewed By: mweststrate
Differential Revision: D28181914
Pulled By: passy
fbshipit-source-id: c4d85bcad4bbc5829b7177bec3debb1bc94b7caa
Summary: Some more deps bumps that don't have breaking changes.
Reviewed By: mweststrate
Differential Revision: D28121014
fbshipit-source-id: 51a6473fe8aceb32fb58a7602d41d5cae0c94259
Summary: Extracted plugin UI root coomponent to a separate file to avoid falling back to full reloads even when "--fast-refresh" flag provided
Reviewed By: mweststrate
Differential Revision: D28119498
fbshipit-source-id: 18ef891512cbe5ddc34cacf7010dfd82f86c4fcc
Summary:
Moving Value/renderValue API to "database" plugin as these APIs used exclusively by this plugin.
Alternative to that could be moving this API to "flipper-plugin" instead, but I think it doesn't make sense to expose public API which is only used in one plugin.
Reviewed By: mweststrate
Differential Revision: D28110483
fbshipit-source-id: 1576444681c1e0531fe45f0c15f442d65a28f803
Summary: Use DataTable to show table structure
Reviewed By: mweststrate
Differential Revision: D28110485
fbshipit-source-id: 81f843a4763e1fbf5acf870621bc9049f719fd2c
Summary: Fixed loading of source maps when dev server is running with --fast-refresh flag set. Looks like it was broken after last metro upgrade because it changed the way how module paths are passed to dev server. We also had a hack to workaround bug when requested module paths were malformed, but it looks this hack is not needed now, so I deleted it as well.
Reviewed By: passy
Differential Revision: D28120080
fbshipit-source-id: 03a39c9840da8f4c8c72be6189c0b71c62fac7f0
Summary:
This addresses my biggest gripe with Flipper right now (maybe after it occasionally crashing my entire Mac, but that's beyond our control, sadly). When you try to switch your current device and hover over the picker, move your mouse quickly to where you expect the menu to open, it will immediate close. You have to wait for about 200ms before moving your cursor down into the expanded dropdown menu. "Well, it's only 200ms, Passy, chill." That's fair, but I still think that hovering to open a dropdown is unnatural behaviour. Looking around here in Phabricator, none of the dropdowns behave like this. And they definitely don't just disappear under my cursor if I'm Moving (too) Fast.
Changelog: The app selector no longer reacts on hover events now requites a click
Reviewed By: mweststrate
Differential Revision: D28118657
fbshipit-source-id: 67867d597b21b80a0de87ecbc8c86a7334f81952
Summary:
React DevTools has gotten pretty outdated in React Native. Let's fix that!
Last time I tried this it caused a lot of churn for tools like Flipper, so I approached this in two steps ([detailed in this post](https://fb.workplace.com/groups/rnsyncsquad/permalink/808063140086959/)).
First was a short term plan (as implemented in [PR 21344](https://github.com/facebook/react/pull/21344)) to:
1. Branch and make a patch release of DevTools 4.10 that adds a protocol check to the frontend (to detect any newer backends).
2. Upgrade Flipper (and recommend upgrade for the OSS React Native Debugger as well) to this new frontend.
3. Wait for the updated frontend to roll out.
The short term plan is now done, at least for the internal build of Flipper, and both GitHub PRs to update Flipper and React Native Debugger have been merged.
So this diff moves forward with the longer term plan (implemented in [PR 21331](https://github.com/facebook/react/pull/21331)):
1. Add an explicit version to the protocol used by the DevTools "backend" and "frontend" components to talk to each other.
2. Check this protocol during initialization to ensure it matches.
3. Show upgrade/downgrade instructions if there's a mismatch (or if the check times out without a response– indicating an older backend).
4. Release this as 4.13.
---
Changelog:
[General][Changed] - Upgrade `react-devtools-core` from ~4.6.0 to ^4.13.0
Reviewed By: yungsters
Differential Revision: D28103394
fbshipit-source-id: 21114294144bde9aede63cb3ba98a240082299bd
Summary:
This help handle updates to objects containing JSONObject type (generates typescript errors around infinite recursion:
> Type instantiation is excessively deep and possibly infinite.ts(2589)
Reviewed By: mweststrate
Differential Revision: D28098502
fbshipit-source-id: a8e7f785b03bce7c8e1c0b355e2eca2e087b1881
Summary:
Cleaned up margins and paddings by removing hardcoded values and use constant sizes from "themes" instead.
Changelog: Database plugin UI aligned with the new Flipper UI
Reviewed By: mweststrate
Differential Revision: D28094217
fbshipit-source-id: 6514b2f1ea7073ca658a86e49c2be029f054ddf0