Commit Graph

349 Commits

Author SHA1 Message Date
Michel Weststrate
f7fc00cde2 Fix bug where high frequent updates could be skipped
Summary:
As reported in https://fb.workplace.com/groups/flippersupport/permalink/1346149929198995/, data updates would sometimes not render in DataTable. After some debugging, this happens when multiple updates are scheduled with high frequency, and is bug in the internal render scheduler. (it might be that this never triggered before React 18, but it was a lingering bug).

Basically in the following sequence, no second render of the data table would happen:

1. emit update
2. schedule render
3. React renders
4. emit a second update
5. scheduler bails out because update is already scheduled
6. React useEffect will clear out the scheduler state that was causing the render at point 3.

Now the second update never gets rendered out (well, not until something else causes a new render).

The problem here is that the scheduler state should be immediately reset as soon as React starts rendering, so that any new incoming update should trigger a new render, even though useEffect of the first render didn't finish. New flow now becomes:

1. emit update
2. schedule render
3. React renders & clears out scheduler state
4. emit a second update
5. scheduler schedules fresh render
6. etc...

Reviewed By: nikoant

Differential Revision: D35501325

fbshipit-source-id: 8af58c0da7bb024f360b750c856865f220dc6272
2022-04-08 11:10:29 -07:00
Andrey Goncharov
1f83b4b414 Migrate to React 18
Summary:
Sadly, we have to use the experimental version of React to decapitate React Devtools.
See https://fb.workplace.com/groups/react.devtools/posts/3135684459978453/?comment_id=3135711763309056&reply_comment_id=3135760513304181

On the bright side, Replay.io and Code Sandbox also use experimental React without any problem.

Reviewed By: lblasa

Differential Revision: D34926473

fbshipit-source-id: 5cd63cc065c2535f0583464c7b5e37891dadaf14
2022-03-31 04:01:33 -07:00
Andrey Goncharov
88b72043b4 Persist "inversed" table filter
Summary: Persist "inversed" filtering between sessions

Reviewed By: antonk52

Differential Revision: D35113051

fbshipit-source-id: 466d94c7041e44398b5bd89ed9560c7d026ab2fd
2022-03-24 07:58:27 -07:00
dependabot[bot]
5685d774a9 Bump @emotion/react from 11.8.1 to 11.8.2 in /desktop (#3533)
Summary:
Bumps [emotion/react](https://github.com/emotion-js/emotion) from 11.8.1 to 11.8.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/emotion-js/emotion/releases"><code>@​emotion/react</code>'s releases</a>.</em></p>
<blockquote>
<h2><code>@​emotion/react</code><a href="https://github.com/11"><code>@​11</code></a>.8.2</h2>
<h3>Patch Changes</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/emotion-js/emotion/pull/2677">https://github.com/facebook/flipper/issues/2677</a> <a href="ff3cb16419"><code>ff3cb164</code></a> Thanks <a href="https://github.com/Jack-Works"><code>@​Jack-Works</code></a>! - Change <code>Global</code> component to use the <code>StyleSheet</code> constructor of the current <code>cache.sheet</code>. This is useful when <code>cache.sheet</code> is not the default implementation. Thanks to that the inner sheet constructed by <code>Global</code> can share the behavior with its &quot;main&quot; sheet that is hold by the <code>cache</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="239f2d0f9e"><code>239f2d0</code></a> Version Packages (<a href="https://github-redirect.dependabot.com/emotion-js/emotion/issues/2679">https://github.com/facebook/flipper/issues/2679</a>)</li>
<li><a href="7f8910a049"><code>7f8910a</code></a> Removed the direct dependency on  from  as it's no longer used that way</li>
<li><a href="ff3cb16419"><code>ff3cb16</code></a> Change <code>Global</code> component to use the <code>StyleSheet</code> constructor of the current ...</li>
<li><a href="4266aa0183"><code>4266aa0</code></a> Fix the description of the cascade problem in the docs (<a href="https://github-redirect.dependabot.com/emotion-js/emotion/issues/2659">https://github.com/facebook/flipper/issues/2659</a>)</li>
<li><a href="affe8f1e37"><code>affe8f1</code></a> Removed non-existent item from the ToC in the theming doc (<a href="https://github-redirect.dependabot.com/emotion-js/emotion/issues/2674">https://github.com/facebook/flipper/issues/2674</a>)</li>
<li><a href="6d81b4b28b"><code>6d81b4b</code></a> Add <code>concurrency</code> to the Changesets workflow</li>
<li><a href="4851669459"><code>4851669</code></a> STOP WAR IN UKRAINE (<a href="https://github-redirect.dependabot.com/emotion-js/emotion/issues/2668">https://github.com/facebook/flipper/issues/2668</a>)</li>
<li><a href="ce9873faab"><code>ce9873f</code></a> Upgrade <code>dtslint</code> (<a href="https://github-redirect.dependabot.com/emotion-js/emotion/issues/2653">https://github.com/facebook/flipper/issues/2653</a>)</li>
<li>See full diff in <a href="https://github.com/emotion-js/emotion/compare/emotion/react@11.8.1...@emotion/react@11.8.2">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@emotion/react&package-manager=npm_and_yarn&previous-version=11.8.1&new-version=11.8.2)](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/3533

Reviewed By: mweststrate

Differential Revision: D34867363

Pulled By: lblasa

fbshipit-source-id: a2ad3f6863ee8a9c4273dd50d1c87bdc8326badb
2022-03-15 05:52:17 -07:00
Pascal Hartig
9d390d0864 Dep bump for /desktop
Summary: Combining dependabot bumps.

Reviewed By: nikoant

Differential Revision: D34682717

fbshipit-source-id: 09975ed9f258d2f5bed6871e15643c38a07e0459
2022-03-08 03:02:11 -08:00
Andrey Goncharov
6c74f2dd18 Set device features on device initialization
Summary:
1. Identify if device supports screenshots/screen recording when it is created.
2. Disable screen recording/screenshot buttons when they are not supported

Reviewed By: passy

Differential Revision: D34611133

fbshipit-source-id: 82ad2d67e4af482d9becf7995187667b5d99bc36
2022-03-04 02:00:23 -08:00
Pascal Hartig
7c1251075f Dep bump for /desktop
Summary:
Combining a bunch of dependabot PRs.

N.B. I had to manually clean up the `yarn.lock` a few times because some dependencies resolved to multiple version numbers, catching tsc off-guard.
allow-large-files

Reviewed By: nikoant

Differential Revision: D34579180

fbshipit-source-id: a4848e1010ff240d9b0e721d3878585e7b4bd078
2022-03-03 04:11:52 -08:00
Andrey Goncharov
aec05533d7 Expose a subset of flipper-plugin to flipper server
Summary: Flipper plugins rely on 'flipper-plugin' package being accessible from 'global'. Expose a subset (without UI stuff) of flipper-plugin to server add-ons

Reviewed By: mweststrate

Differential Revision: D34400811

fbshipit-source-id: e0079ddfa67e66c1b24ab02d7682917ddfc84aaf
2022-02-28 03:50:34 -08:00
Andrey Goncharov
01a5f3da90 Add generics to server add-on connection
Reviewed By: mweststrate

Differential Revision: D34307356

fbshipit-source-id: 27e61355a85995368ebb197c42d58f4145473567
2022-02-28 03:50:34 -08:00
Andrey Goncharov
dcfc84cce6 Add onServerAddOnStart and onServerAddOnStop plugin hooks
Reviewed By: mweststrate

Differential Revision: D34378231

fbshipit-source-id: e086eebcf94c01da76bfe8b88c6528bd21d89968
2022-02-28 03:50:34 -08:00
Andrey Goncharov
bdbf79e3e1 Limit events and methods in server contact to strings only
Reviewed By: antonk52

Differential Revision: D34300854

fbshipit-source-id: 79cd3e3da9bb5dbac75243ac90118f32e12d8177
2022-02-28 03:50:34 -08:00
Andrey Goncharov
8b94186783 Load installed server add-ons
Reviewed By: nikoant

Differential Revision: D34300475

fbshipit-source-id: 6bb6c0ab811e28806a0924b3487931bdb0dd2c59
2022-02-28 03:50:34 -08:00
Andrey Goncharov
b4b9c0ab28 Implement receiving messages from add-on on the client
Reviewed By: mweststrate

Differential Revision: D34249101

fbshipit-source-id: 07297b84ed8640e3b41599726ba613b6b4e2b62e
2022-02-28 03:50:34 -08:00
Andrey Goncharov
4067f5bd88 Implement sending messages from desktop to add-on
Reviewed By: antonk52

Differential Revision: D34239803

fbshipit-source-id: 1a18d522ba877ade3d0703fbb374c15b596241d7
2022-02-28 03:50:34 -08:00
Andrey Goncharov
04eab80c98 Move server add-on interfaces to flipper-common
Reviewed By: antonk52

Differential Revision: D34169419

fbshipit-source-id: 69fcc8da7d98f59818fbb5b486a488f19830cd81
2022-02-28 03:50:34 -08:00
Andrey Goncharov
b80755721c Draft communication with server add-ons from the client side
Reviewed By: nikoant

Differential Revision: D34075379

fbshipit-source-id: 09f575f5cced866ad7b9290d7739ce60f38edeee
2022-02-28 03:50:34 -08:00
Andrey Goncharov
3b390b74ff Track client connections and autostop server add-ons when all clients leave
Reviewed By: mweststrate

Differential Revision: D34045584

fbshipit-source-id: 1ad0cfffb9d304f0359c973d76d6956f7e932f72
2022-02-28 03:50:34 -08:00
Andrey Goncharov
9113006851 Make Client initialize server add-ons
Reviewed By: mweststrate

Differential Revision: D34044353

fbshipit-source-id: 99bcb1559787b2a904bdd796233666a7a4783ea4
2022-02-28 03:50:34 -08:00
Jong Hyun Park
035ba5613c Add neighbouring lines feature to Flipper Logs plugin
Summary:
Adding a feature to Flipper's Logs plugin where:
1) you search for something,
2) click on a line among the filtered search results,
3) press control,
4) get taken back to unfiltered list of all messages, centered on your selected line

This is to help debugging where the user may add a print statement but the error happens after it, and it's difficult to catch without a lot of scrolling.

Reviewed By: mweststrate

Differential Revision: D33446285

fbshipit-source-id: 19aa472a12de074e561dbe37b44821fc29bf5c91
2022-02-25 10:07:42 -08:00
dependabot[bot]
a0ec82c981 Bump @emotion/react from 11.6.0 to 11.7.1 in /desktop (#3388)
Summary:
Bumps [emotion/react](https://github.com/emotion-js/emotion) from 11.6.0 to 11.7.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/emotion-js/emotion/releases"><code>@​emotion/react</code>'s releases</a>.</em></p>
<blockquote>
<h2><code>@​emotion/react</code><a href="https://github.com/11"><code>@​11</code></a>.7.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a href="https://github-redirect.dependabot.com/emotion-js/emotion/pull/2577">https://github.com/facebook/flipper/issues/2577</a> <a href="04681a5f52"><code>04681a5f</code></a> Thanks <a href="https://github.com/Methuselah96"><code>@​Methuselah96</code></a>! - Export <code>Keyframes</code> type to avoid TypeScript inserting <code>import(&quot;emotion/serialize&quot;).Keyframes</code> references into declaration files emitted based on a source files exporting <code>keyframes</code> result. This avoids issues with strict package managers that don't allow accessing undeclared dependencies.</p>
</li>
<li>
<p><a href="https://github-redirect.dependabot.com/emotion-js/emotion/pull/2590">https://github.com/facebook/flipper/issues/2590</a> <a href="1554a7e264"><code>1554a7e2</code></a> Thanks <a href="https://github.com/Andarist"><code>@​Andarist</code></a>! - Upgraded and pinned the version of Stylis - the CSS parser that Emotion uses under the hood.</p>
</li>
<li>
<p>Updated dependencies [<a href="1554a7e264"><code>1554a7e2</code></a>]:</p>
<ul>
<li><code>@​emotion/cache</code><a href="https://github.com/11"><code>@​11</code></a>.7.1</li>
</ul>
</li>
</ul>
<h2><code>@​emotion/react</code><a href="https://github.com/11"><code>@​11</code></a>.7.0</h2>
<h3>Patch Changes</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/emotion-js/emotion/pull/2534">https://github.com/facebook/flipper/issues/2534</a> <a href="57be9e8cb2"><code>57be9e8c</code></a> Thanks <a href="https://github.com/srmagura"><code>@​srmagura</code></a>! - Changed the implementation of the runtime label extraction in elements using the css prop (that only happens in development) to one that should yield more consistent results across browsers. This fixes some minor issues with React reporting hydration mismatches that wouldn't happen in production.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="01cca604ca"><code>01cca60</code></a> Version Packages (<a href="https://github-redirect.dependabot.com/emotion-js/emotion/issues/2581">https://github.com/facebook/flipper/issues/2581</a>)</li>
<li><a href="1554a7e264"><code>1554a7e</code></a> Stylis upgrade (<a href="https://github-redirect.dependabot.com/emotion-js/emotion/issues/2590">https://github.com/facebook/flipper/issues/2590</a>)</li>
<li><a href="04681a5f52"><code>04681a5</code></a> Export Keyframes type from <code>@​emotion/react</code> (<a href="https://github-redirect.dependabot.com/emotion-js/emotion/issues/2577">https://github.com/facebook/flipper/issues/2577</a>)</li>
<li><a href="26ded6109f"><code>26ded61</code></a> Tweak grammar in the CHANGELOGs</li>
<li><a href="200bc6a56b"><code>200bc6a</code></a> Version Packages (<a href="https://github-redirect.dependabot.com/emotion-js/emotion/issues/2564">https://github.com/facebook/flipper/issues/2564</a>)</li>
<li><a href="f046ae40bc"><code>f046ae4</code></a> Add ESLint 8 to the peer dependency range  (<a href="https://github-redirect.dependabot.com/emotion-js/emotion/issues/2562">https://github.com/facebook/flipper/issues/2562</a>)</li>
<li><a href="57be9e8cb2"><code>57be9e8</code></a> Extract, unit test, and improve getLabelFromStackTrace (<a href="https://github-redirect.dependabot.com/emotion-js/emotion/issues/2534">https://github.com/facebook/flipper/issues/2534</a>)</li>
<li>See full diff in <a href="https://github.com/emotion-js/emotion/compare/emotion/react@11.6.0...@emotion/react@11.7.1">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@emotion/react&package-manager=npm_and_yarn&previous-version=11.6.0&new-version=11.7.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

 ---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

</details>

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

Reviewed By: nikoant

Differential Revision: D33892154

Pulled By: cekkaewnumchai

fbshipit-source-id: 460e820c36c367a4174e7cc44bc4d23340db020a
2022-02-02 11:14:39 -08:00
Anton Kastritskiy
f2abbf63db ban interface usage for component props and state
Summary: another eslint rule for flipper codebase

Reviewed By: passy

Differential Revision: D33917213

fbshipit-source-id: e60b867d359ef5b94a481edf0eda318ecff17eee
2022-02-02 05:09:45 -08:00
Anton Kastritskiy
c5dd1fc350 rename files from ts to tsx in flipper-* packages
Summary: mass files rename

Reviewed By: nikoant

Differential Revision: D33890252

fbshipit-source-id: d5afaa60af7340313a97d8e4967fe37f00abd9db
2022-01-31 10:16:19 -08:00
dependabot[bot]
9415bff254 Bump react-virtual from 2.10.0 to 2.10.4 in /desktop (#3343)
Summary:
Bumps [react-virtual](https://github.com/tannerlinsley/react-virtual) from 2.10.0 to 2.10.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/tannerlinsley/react-virtual/releases">react-virtual's releases</a>.</em></p>
<blockquote>
<h2>v2.10.4</h2>
<h2><a href="https://github.com/tannerlinsley/react-virtual/compare/v2.10.3...v2.10.4">2.10.4</a> (2022-01-21)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><code>totalSize</code> should be <code>paddingStart</code> + <code>paddingEnd</code> when size is 0 (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/238">https://github.com/facebook/flipper/issues/238</a>) (<a href="5300e47ea5">5300e47</a>)</li>
</ul>
<h2>v2.10.3</h2>
<h2><a href="https://github.com/tannerlinsley/react-virtual/compare/v2.10.2...v2.10.3">2.10.3</a> (2022-01-20)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>types:</strong> Move options interface definition to separated interface and export it (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/178">https://github.com/facebook/flipper/issues/178</a>) (<a href="df4723cf72">df4723c</a>)</li>
</ul>
<h2>v2.10.2</h2>
<h2><a href="https://github.com/tannerlinsley/react-virtual/compare/v2.10.1...v2.10.2">2.10.2</a> (2022-01-20)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>increment patch to fix breaking change (<a href="7a799a2f40">7a799a2</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="5300e47ea5"><code>5300e47</code></a> fix: <code>totalSize</code> should be <code>paddingStart</code> + <code>paddingEnd</code> when size is 0 (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/238">https://github.com/facebook/flipper/issues/238</a>)</li>
<li><a href="bc21ad14ff"><code>bc21ad1</code></a> docs: fix dynamic example</li>
<li><a href="df4723cf72"><code>df4723c</code></a> fix(types): Move options interface definition to separated interface and expo...</li>
<li><a href="75417452c7"><code>7541745</code></a> docs: add sticky example (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/169">https://github.com/facebook/flipper/issues/169</a>)</li>
<li><a href="7a799a2f40"><code>7a799a2</code></a> fix: increment patch to fix breaking change</li>
<li><a href="6a748a6914"><code>6a748a6</code></a> feat: put version to 2.10 in prep for fix release to cure breaking change</li>
<li><a href="6056d1d819"><code>6056d1d</code></a> fix: rebase breaking changes into next branch, rerelease 2.10.1 as non-breaking</li>
<li><a href="7f88ae6f23"><code>7f88ae6</code></a> Update logo.sketch</li>
<li>See full diff in <a href="https://github.com/tannerlinsley/react-virtual/compare/v2.10.0...v2.10.4">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=react-virtual&package-manager=npm_and_yarn&previous-version=2.10.0&new-version=2.10.4)](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/3343

Reviewed By: mweststrate

Differential Revision: D33741758

Pulled By: lblasa

fbshipit-source-id: 84edbb7cc1a4a80c1967c97eebe5732000ebc76d
2022-01-27 07:22:34 -08:00
dependabot[bot]
3764b5aa2d Bump immer from 9.0.7 to 9.0.12 in /desktop (#3345)
Summary:
Bumps [immer](https://github.com/immerjs/immer) from 9.0.7 to 9.0.12.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/immerjs/immer/releases">immer's releases</a>.</em></p>
<blockquote>
<h2>v9.0.12</h2>
<h2><a href="https://github.com/immerjs/immer/compare/v9.0.11...v9.0.12">9.0.12</a> (2022-01-11)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>produceWithPatches should not wrap result in Immutable, fixes <a href="https://github-redirect.dependabot.com/immerjs/immer/issues/850">https://github.com/facebook/flipper/issues/850</a>, <a href="https://github-redirect.dependabot.com/immerjs/immer/issues/881">https://github.com/facebook/flipper/issues/881</a> (<a href="d8f26362a9">d8f2636</a>)</li>
</ul>
<h2>v9.0.11</h2>
<h2><a href="https://github.com/immerjs/immer/compare/v9.0.10...v9.0.11">9.0.11</a> (2022-01-11)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>incorrect patches for <code>delete</code> on arrays. Fixes <a href="https://github-redirect.dependabot.com/immerjs/immer/issues/879">https://github.com/facebook/flipper/issues/879</a> (<a href="d91a6597e9">d91a659</a>)</li>
</ul>
<h2>v9.0.10</h2>
<h2><a href="https://github.com/immerjs/immer/compare/v9.0.9...v9.0.10">9.0.10</a> (2022-01-11)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>No patches being generated for root primitive replacements. Fixes <a href="https://github-redirect.dependabot.com/immerjs/immer/issues/888">https://github.com/facebook/flipper/issues/888</a> (<a href="0f96270840">0f96270</a>)</li>
</ul>
<h2>v9.0.9</h2>
<h2><a href="https://github.com/immerjs/immer/compare/v9.0.8...v9.0.9">9.0.9</a> (2022-01-11)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>make sure produceWithPatches accepts promises (<a href="d80e823733">d80e823</a>)</li>
</ul>
<h2>v9.0.8</h2>
<h2><a href="https://github.com/immerjs/immer/compare/v9.0.7...v9.0.8">9.0.8</a> (2022-01-11)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>immerjs<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/876">https://github.com/facebook/flipper/issues/876</a> Ensure empty patch set for atomic set+delete on Map (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/878">https://github.com/facebook/flipper/issues/878</a>) (<a href="e1409180eb">e140918</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="d8f26362a9"><code>d8f2636</code></a> fix: produceWithPatches should not wrap result in Immutable, fixes <a href="https://github-redirect.dependabot.com/immerjs/immer/issues/850">https://github.com/facebook/flipper/issues/850</a>, <a href="https://github-redirect.dependabot.com/immerjs/immer/issues/881">https://github.com/facebook/flipper/issues/881</a></li>
<li><a href="feba5d1404"><code>feba5d1</code></a> chore: remove debugger statement</li>
<li><a href="d91a6597e9"><code>d91a659</code></a> fix: incorrect patches for <code>delete</code> on arrays. Fixes <a href="https://github-redirect.dependabot.com/immerjs/immer/issues/879">https://github.com/facebook/flipper/issues/879</a></li>
<li><a href="0f96270840"><code>0f96270</code></a> fix: No patches being generated for root primitive replacements. Fixes <a href="https://github-redirect.dependabot.com/immerjs/immer/issues/888">https://github.com/facebook/flipper/issues/888</a></li>
<li><a href="d80e823733"><code>d80e823</code></a> fix: make sure produceWithPatches accepts promises</li>
<li><a href="e1409180eb"><code>e140918</code></a> fix: immerjs#876 Ensure empty patch set for atomic set+delete on Map (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/878">https://github.com/facebook/flipper/issues/878</a>)</li>
<li>See full diff in <a href="https://github.com/immerjs/immer/compare/v9.0.7...v9.0.12">compare view</a></li>
</ul>
</details>
<br />

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

Reviewed By: antonk52

Differential Revision: D33741770

Pulled By: lblasa

fbshipit-source-id: 2f52bee684c99d171c1e3460825c557b027e8cf0
2022-01-25 03:30:52 -08:00
Michel Weststrate
80bb372920 make data tables horizontally scrollable if needed
Summary:
Changelog: most data tables allow for horizontal scrolling now if they run out of space

This diff introduces support for horizontal scrolling in datatables. Originally thought about making this a view option, but doing automatically works actually quite fine. By default the columns resize as they did, but if either a column is made bigger or the window is so small no space is left, a horizontal scrollbar can be used.

This adresses several usability issues reported in GH / workplace

fixes https://github.com/facebook/flipper/issues/2608

Reviewed By: antonk52

Differential Revision: D33368216

fbshipit-source-id: 206c761a5873cf0396af091f2cbdedc3e638afac
2022-01-04 09:06:15 -08:00
Michel Weststrate
25e585b819 fix data tables not remembering their defaults
Summary:
Changelog: Data tables will now remember their configuration by default and share it across different applications

As reported, column configurations were often not remembered across restarts. This was caused by two things
1. persisting config was by default turned off
2. the persistence key was based on pluginKey, that includes device and client identification, rather than purely the plugin name.

Reviewed By: cekkaewnumchai

Differential Revision: D33364780

fbshipit-source-id: 6c38182dc35e3cce23b858f931d554111b080c97
2022-01-04 04:08:23 -08:00
Michel Weststrate
b77b234e98 fix table header column widths deviating from rows
Summary:
changelog: Improved column widths in data tables

This diff fixes two issues:
1) dynamic width columns became invisible if there is too much else, and therefor it was hard to make them bigger or even notice them
2) column headers could be out of sync with the actually rendered rows, due to minor styling differences

Reviewed By: cekkaewnumchai

Differential Revision: D33364781

fbshipit-source-id: c3d47bb8db4af521859a5cbdf525d8ce39c71d00
2022-01-04 04:08:23 -08:00
Andres Suarez
79023ee190 Update copyright headers from Facebook to Meta
Reviewed By: bhamodi

Differential Revision: D33331422

fbshipit-source-id: 016e8dcc0c0c7f1fc353a348b54fda0d5e2ddc01
2021-12-27 14:31:45 -08:00
Anton Nikolaev
d48fbd8e50 Logs: cleaned up warnings because of duplicate keys in context menu
Summary: In dev build there were tons of warnings on opening table context menu, because some items had same keys. This diff fixes that by differentiating item keys.

Reviewed By: mweststrate

Differential Revision: D33277520

fbshipit-source-id: aca2fa2f1163a2b6782be0ca4c5baebdecc5acd5
2021-12-22 15:34:11 -08:00
Anton Nikolaev
dd4d7bbe7f API for creating pastes without showing notifications
Reviewed By: mweststrate

Differential Revision: D33277470

fbshipit-source-id: 2ec9ad7d9fc48d7d2da64be3bfc1a66bb5b3a347
2021-12-22 15:34:11 -08:00
Michel Weststrate
87833c759e Fixed an exception when logging unserializable errors
Reviewed By: nikoant

Differential Revision: D33276412

fbshipit-source-id: 615b2cc523a3ab4445a1208f460753b8634f6812
2021-12-22 03:18:51 -08:00
dependabot[bot]
845f8ea87c Bump react-virtual from 2.8.2 to 2.10.0 in /desktop (#3137)
Summary:
Bumps [react-virtual](https://github.com/tannerlinsley/react-virtual) from 2.8.2 to 2.10.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/tannerlinsley/react-virtual/releases">react-virtual's releases</a>.</em></p>
<blockquote>
<h2>v2.10.0</h2>
<h1><a href="https://github.com/tannerlinsley/react-virtual/compare/v2.9.0...v2.10.0">2.10.0</a> (2021-12-02)</h1>
<h3>Features</h3>
<ul>
<li>add useScroll, extract useElementScroll, useWindowScroll (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/219">https://github.com/facebook/flipper/issues/219</a>) (<a href="aa8dc9ced4">aa8dc9c</a>)</li>
</ul>
<h2>v2.9.0</h2>
<h1><a href="https://github.com/tannerlinsley/react-virtual/compare/v2.8.2...v2.9.0">2.9.0</a> (2021-11-29)</h1>
<h3>Features</h3>
<ul>
<li>add initialRect for SSR, calc range in every render (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/217">https://github.com/facebook/flipper/issues/217</a>) (<a href="cf19d1fb1a">cf19d1f</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="aa8dc9ced4"><code>aa8dc9c</code></a> feat: add useScroll, extract useElementScroll, useWindowScroll (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/219">https://github.com/facebook/flipper/issues/219</a>)</li>
<li><a href="f4b62c4e37"><code>f4b62c4</code></a> Update the height and width values in examples (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/194">https://github.com/facebook/flipper/issues/194</a>)</li>
<li><a href="8044f4bfa4"><code>8044f4b</code></a> Fixed Github Image Shield to show stars (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/213">https://github.com/facebook/flipper/issues/213</a>)</li>
<li><a href="cf19d1fb1a"><code>cf19d1f</code></a> feat: add initialRect for SSR, calc range in every render (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/217">https://github.com/facebook/flipper/issues/217</a>)</li>
<li><a href="edeefebacd"><code>edeefeb</code></a> Use <code>types/index.d.ts</code> for <code>types</code> field (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/209">https://github.com/facebook/flipper/issues/209</a>)</li>
<li><a href="907fcf3e69"><code>907fcf3</code></a> A few typo fixes on Markdown files (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/215">https://github.com/facebook/flipper/issues/215</a>)</li>
<li><a href="5508e19db3"><code>5508e19</code></a> Update index.js</li>
<li><a href="266eb5551f"><code>266eb55</code></a> Fixed Faulty Links on the Website (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/207">https://github.com/facebook/flipper/issues/207</a>)</li>
<li>See full diff in <a href="https://github.com/tannerlinsley/react-virtual/compare/v2.8.2...v2.10.0">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=react-virtual&package-manager=npm_and_yarn&previous-version=2.8.2&new-version=2.10.0)](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/3137

Reviewed By: passy

Differential Revision: D33234027

Pulled By: aigoncharov

fbshipit-source-id: e496395375e5ea9a5024f3f6fd151837911d9a78
2021-12-20 13:52:51 -08:00
Andrey Goncharov
731749b41f Move crash reporting listener to the server
Summary: Changelog: Move crash watcher to the server. Add 'device-crash' event. Add 'device-start-crash-watcher', 'device-stop-crash-watcher' commands. Add 'onDeviceCrash' method to Plugin Client.

Reviewed By: mweststrate

Differential Revision: D33089810

fbshipit-source-id: ed62ee7c1129e5e25af18b444744b0796f567b72
2021-12-20 11:39:00 -08:00
Andrey Goncharov
3f771c05dd Remove fs usage from Navigator plugin
Reviewed By: mweststrate

Differential Revision: D33019873

fbshipit-source-id: 6d48971dc04161b64fdd32ac4e658b56aa98b7ec
2021-12-20 11:39:00 -08:00
dependabot[bot]
9085fc6f72 Bump immer from 9.0.6 to 9.0.7 in /desktop (#3138)
Summary:
Bumps [immer](https://github.com/immerjs/immer) from 9.0.6 to 9.0.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/immerjs/immer/releases">immer's releases</a>.</em></p>
<blockquote>
<h2>v9.0.7</h2>
<h2><a href="https://github.com/immerjs/immer/compare/v9.0.6...v9.0.7">9.0.7</a> (2021-11-24)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Append to array when key is &quot;-&quot; (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/872">https://github.com/facebook/flipper/issues/872</a>) (<a href="2afdb1b37d">2afdb1b</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="8507692c72"><code>8507692</code></a> chore(deps): bump prismjs from 1.24.0 to 1.25.0 in /website (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/853">https://github.com/facebook/flipper/issues/853</a>)</li>
<li><a href="5e71d58499"><code>5e71d58</code></a> chore(deps): bump tmpl from 1.0.4 to 1.0.5 (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/854">https://github.com/facebook/flipper/issues/854</a>)</li>
<li><a href="26355d7531"><code>26355d7</code></a> chore: typo (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/857">https://github.com/facebook/flipper/issues/857</a>)</li>
<li><a href="4e062c4292"><code>4e062c4</code></a> docs: Fix typo (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/862">https://github.com/facebook/flipper/issues/862</a>)</li>
<li><a href="fb28e8835d"><code>fb28e88</code></a> docs: Update produce.mdx (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/868">https://github.com/facebook/flipper/issues/868</a>)</li>
<li><a href="6e7cd9aaf9"><code>6e7cd9a</code></a> docs: fix mobile navbar menu styles (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/870">https://github.com/facebook/flipper/issues/870</a>)</li>
<li><a href="437e745258"><code>437e745</code></a> chore(deps): bump ws from 5.2.2 to 5.2.3</li>
<li><a href="2afdb1b37d"><code>2afdb1b</code></a> fix: Append to array when key is &quot;-&quot; (<a href="https://github-redirect.dependabot.com/immerjs/immer/issues/872">https://github.com/facebook/flipper/issues/872</a>)</li>
<li><a href="2794576206"><code>2794576</code></a> chore: fix release job</li>
<li><a href="e6aa92c141"><code>e6aa92c</code></a> chore: fix tests on master</li>
<li>Additional commits viewable in <a href="https://github.com/immerjs/immer/compare/v9.0.6...v9.0.7">compare view</a></li>
</ul>
</details>
<br />

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

Reviewed By: aigoncharov

Differential Revision: D33234026

Pulled By: mweststrate

fbshipit-source-id: 95134c207a685125e1eaab4a6c9bc565a3077828
2021-12-20 03:26:23 -08:00
Michel Weststrate
4630f37786 Clean up process globals
Summary: Cleaned up some `process` references

Reviewed By: passy

Differential Revision: D33184882

fbshipit-source-id: 6fc56bcea4e145ba97aa8bf9e689e53e2bf239cc
2021-12-17 14:12:50 -08:00
Michel Weststrate
e46fcba0b2 Make sure that test stuff doesn't end up in bundles
Summary: When bundling a production bundle of flipper-ui / flipper-server, noticed that a lot of irrelevant stuff ends up. Like: `jest`, `metro`, `testing-library`. The whole jungle basically. Will add safety checks in the next diffs that this no longer happens

Reviewed By: passy

Differential Revision: D33186531

fbshipit-source-id: 1e2034153c8c4a3fac02cd9ce27d99224223df7a
2021-12-17 14:12:50 -08:00
Michel Weststrate
5df34a337c Unshare global types
Summary:
This diff adds `types` fields on the compiler config for every project. This way we can make sure that for example node types and packages are not available in flipper-ui-core. Without an explicit types field, all types would be shared between all packages, and implicitly included into the compilation of everything. For the same reason `types/index.d.ts` has been removed, we want to be intentional on which types are being used in which package.

This diff does most of the work, the next diff will fine tune the globals, and do some further cleanup.

As an alternative solution I first tried a `nohoist: **/node_modules/types/**` and make sure every package list explicitly the types used in package json, which works but is much more error prone, as for example two different react types versions in two packages will cause the most unreadable compiler error due to the types not being shared and not literally the same.

Reviewed By: lawrencelomax

Differential Revision: D33124441

fbshipit-source-id: c2b9d768f845ac28005d8331ef5fa1066c7e4cd7
2021-12-17 07:36:07 -08:00
Michel Weststrate
dcfeb4a4d5 Clean up packages and types
Summary:
This diff removes most deps from the root package.json, which now only contains electron and shared build / test infra structure: lint, prettier, jest, typescript.

This makes it possible to control much better which packages are used where, as all sub packages now have their deps explicitly in their package.json instead of incidentally shared. This allows for example to disable DOM types for all packages by default (flipper-plugin, ui(-core) and app still request it), and in the next diff I hope to add to this that nodeJS types are no longer shared either, so that UI oriented packages will generate compile errors when using Node built-ins

This diff removes most deps that were currently unused, and dedupes a bunch of other ones, so the build should probably be a bit smaller now as well:

{F686704253}

{F686704295}

Reviewed By: antonk52

Differential Revision: D33062859

fbshipit-source-id: 5afaa4f2103d055188382a3370c1fffa295a298a
2021-12-16 14:54:59 -08:00
Michel Weststrate
accef856fc Remove remaining Node imports from core
Summary:
Removed remaining path / fs imports from Flipper core.

`expand-tide` needed replacement too, but noticed that it never actually rewrites paths since all use cases were already using absolute paths, so removed it instead.

Reviewed By: aigoncharov

Differential Revision: D33017654

fbshipit-source-id: e12f66ef68b5f9e4279411c94445a2fb87249e9a
2021-12-13 05:48:17 -08:00
Michel Weststrate
d95b15094f Implement fs.readFile / fs.writeFile
Summary: Per title. Made an explicit distinction between binary and non binary files, since they need to be encoded differently. This keeps both the implementation and API simpler (in terms of overloading / type checking)

Reviewed By: aigoncharov

Differential Revision: D33016031

fbshipit-source-id: 3c99956eb016849a908a171d88a7a64a88b76268
2021-12-13 05:48:17 -08:00
Michel Weststrate
34a1da3345 Implement fs.stat and fs.readlink
Summary: Fixes issue for the stackTraceMapper

Reviewed By: aigoncharov

Differential Revision: D32987161

fbshipit-source-id: 660f49a1bdf61b2fd2963874ef23dfd284f71128
2021-12-13 05:48:17 -08:00
Andrey Goncharov
c96558a524 Remove fs and os usage from Mobile Builds plugin
Summary: Changelog: Expose env info and FS rm command to flipper plugins.

Reviewed By: mweststrate

Differential Revision: D32988478

fbshipit-source-id: 3d0233f9eb34d3478b07e39b9401c0e30ca95135
2021-12-10 06:36:13 -08:00
Andrey Goncharov
92f0ed67f4 Add download file API
Summary: Changelog: Expose "downloadFile" API to Flipper plugins. Allow them to download files form the web to Flipper Server.

Reviewed By: mweststrate

Differential Revision: D32950685

fbshipit-source-id: 7b7f666e165ff7bf209230cdc96078272ede3616
2021-12-10 06:36:12 -08:00
Andrey Goncharov
4cb80a452f Rename RemoteNodeAPI tp RemoteServerContext
Reviewed By: mweststrate

Differential Revision: D32921160

fbshipit-source-id: 9d6b723427d7a819f2fc1b7168f6d1077dc56bd9
2021-12-10 06:36:12 -08:00
Andrey Goncharov
0e785fb18d Add remote fs API
Summary: Changelog: Expose Flipper Server FS access to Flipper plugins

Reviewed By: lblasa

Differential Revision: D32883144

fbshipit-source-id: 47637b61849ef60a2d8fe91a0a28d2a358e0b8c4
2021-12-10 06:36:12 -08:00
Andrey Goncharov
e458ae76f9 Add exec Node API to FlipperLib
Summary: Changelog: Allow flipper plugins to run "exec" Node API on Flipper server.

Reviewed By: mweststrate

Differential Revision: D32881149

fbshipit-source-id: 46486a47ee9824ca68897c19fd86b4afc7f8bf1d
2021-12-10 06:36:12 -08:00
Michel Weststrate
f5f9608098 Remove crypto dependency
Summary:
Remove crypto dep, which was only used by NUX, to hash the elements that has been confirmed.

Sadly trickier than hoped; there is no uniform api in both browser and Node available that can take a sha-256 hash, and the browser APIs are async.

Reviewed By: aigoncharov

Differential Revision: D32721204

fbshipit-source-id: 32625f83bf6c60cedc4fb7096240c2fa0d8434a7
2021-12-08 04:30:56 -08:00
Michel Weststrate
f9b72ac69e Move RenderHost initialisation to Jest
Summary:
This diff moves RenderHost initialisation to jest, which is thereby treated as just another 'Host' like flipper-ui, the electron app etc. A benefit is that it provides a mocked flipperServer by default that can be used to mock or intercept requests. See LaunchEmulator.spec as example.

Also made the jest setup scripts strongly typed by converting them to TS.

This change allows the test stub configuration, which was OS dependent, out of flipper-ui-core.

Reviewed By: nikoant

Differential Revision: D32668632

fbshipit-source-id: fac0c09812b000fd7d1acb75010c35573087c99f
2021-12-08 04:30:55 -08:00
Michel Weststrate
e7f841b6d2 Move flipper plugin from flipper-lib types to flipper-common
Summary: Moved all types related to plugin descriptions from plugin-lib (which handles downloads and such) to flipper-common. The goal of that is to remove all plugin-lib usage from ui-core to server-core, so that the UI itself doesn't do any file operations anymore related to plugins. That will be done in next diffs, this just moves types but no code.

Reviewed By: nikoant, aigoncharov

Differential Revision: D32665064

fbshipit-source-id: 86d908e7264569b0229b09290a891171876c8e00
2021-12-08 04:30:55 -08:00