Commit Graph

432 Commits

Author SHA1 Message Date
Anton Nikolaev
e545a50045 Rolled back removing inline source map for plugins build
Summary: After some testing I found file source map does not work as expected when prod version of Flipper is used to debug plugin. So returning back inline source maps. Note that this only affects debug builds, for production builds no source maps will be produced anyway.

Reviewed By: passy

Differential Revision: D22161927

fbshipit-source-id: 068b9da09da4dcb6c31aff4e5a15bd6438f686b3
2020-06-23 03:55:41 -07:00
Anton Nikolaev
f436f192eb Fix getWatchFolder script to resolve workspaces transitive dependencies (#1289)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1289

getWatchFolder script updated to resolve symlinked transitive dependencies. Before this change the script only resolved 1st direct symlinked dependencies.

Reviewed By: mweststrate

Differential Revision: D22161469

fbshipit-source-id: c30802a413259021aaca99c08743dc762ed877eb
2020-06-23 03:55:41 -07:00
Pritesh Nandgaonkar
d4680eead9 Support Installation for physical device
Summary: This diff enables the installation for iOS simulators. This also fixes the error view created when there is an error. Right now there is a bug on my machine where idb doesn't detect my physical device. But once it is detected, it will work.

Reviewed By: mweststrate

Differential Revision: D22137831

fbshipit-source-id: b6d6f77318c6baef78c35af73db3969b7dd1b907
2020-06-22 15:58:31 -07:00
Pascal Hartig
2d9d2d4b1a Upgrade flow
Summary:
Close https://github.com/facebook/flipper/pull/1286

Changelog:
Upgrade Flow to 0.127

Reviewed By: jknoxville

Differential Revision: D22160443

fbshipit-source-id: 4f810f2a0adaf87e632a6bc11d4271d57b6f9709
2020-06-22 09:50:42 -07:00
Anton Nikolaev
666032fa46 "yarn build-plugin" command added
Summary: Added "build-plugin" command. Can be used like this: `yarn build-plugin fresco` which produces package to 'sonar/dist/plugins/fresco.tgz'

Reviewed By: mweststrate

Differential Revision: D22160253

fbshipit-source-id: 48b202984b0f515bf253b595be1f59953a9ce411
2020-06-22 08:15:56 -07:00
Anton Nikolaev
4219df6a93 Remove prepack script from each plugin
Summary: Removed back "prepack" script from every plugin package to keep it simple. Instead we will use `build-plugin` command defined in the root package.json (see next diff in the stack).

Reviewed By: mweststrate

Differential Revision: D22160252

fbshipit-source-id: cffb5df65b89df3fe390c051da0df797b3d16d2d
2020-06-22 08:15:56 -07:00
Anton Nikolaev
b69996ca50 Remove inlined source maps from debug builds
Summary: Disabled producing inline source maps for debug builds. Source maps are already writte to "map" files, so this does not make sense to also inline them to the js bundle. Passing "sourceMapUrl" parameter to Metro fixed this.

Reviewed By: mweststrate

Differential Revision: D22159501

fbshipit-source-id: f06225cd43f44a7f93afcc32bb0501323b35d0c3
2020-06-22 06:11:29 -07:00
Michel Weststrate
f373872b5c Add infra to test a plugin
Summary:
There were several reports that it is hard to test an entire plugin, and send updates.

This should address that and help with avoiding plugin regressions in the future.

Added a `renderMockFlipperWithPlugin` utility and demo test.

Reviewed By: passy

Differential Revision: D22114217

fbshipit-source-id: ceefd954abc4ea47c336eab495fb50f161993df9
2020-06-22 06:05:25 -07:00
Anton Nikolaev
496f97a1ba Disable source maps for Flipper release builds
Summary:
Disabled source maps for Flipper release builds.
1) I found that source maps was not only written to the "bundle.map" file, but also inlined into "bundle.js" in base64 format which hugely affected the total bundle size.
2) In addition to the size, these inlined source maps were also one of 2 causes that Flipper package size was not deterministic and changed so significantly in every diff even when Flipper was not touched at all.

Changelog: Disabled source maps in Flipper release builds thus reducing size by ~20%.

Reviewed By: mweststrate

Differential Revision: D22158898

fbshipit-source-id: b35cfba80553d01aec256983c3ba772ed0534d8f
2020-06-22 05:37:29 -07:00
Anton Nikolaev
c359d666c5 Use default Metro implementation of source module ID mappings for "flipper-pkg bundle"
Summary: Use default Metro implementation of source module ID mappings for "flipper-pkg bundle". The problem with the custom implementation we used before is that it is not deterministic, i.e. produced bundles are different on different machines. We need deterministic bundles to reliably detect if the version changed from the last deployment to Marketplace.

Reviewed By: mweststrate

Differential Revision: D22158794

fbshipit-source-id: ae4b4b05e020489c0900423107a938a5b670e7d8
2020-06-22 02:40:59 -07:00
Anton Nikolaev
21ab8dc25c "flipper-pkg" option for creating production bundle
Summary:
Development bundle: NODE_ENV=development, disabled minification, enabled source maps.

Production bundle: NODE_ENV=production, enabled minification, disabled source maps.

Changelog: Added "--production" option for "flipper-pkg bundle" command to produce minified plugin packages without source maps.

Reviewed By: mweststrate

Differential Revision: D22158791

fbshipit-source-id: 0f9ac84ca39ac3fb86f0c0b0a3c1be866445a305
2020-06-22 02:40:59 -07:00
dependabot[bot]
163f3982f7 Bump ws from 7.2.3 to 7.3.0 in /desktop (#1266)
Summary:
Bumps [ws](https://github.com/websockets/ws) from 7.2.3 to 7.3.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/websockets/ws/releases">ws's releases</a>.</em></p>
<blockquote>
<h2>7.3.0</h2>
<h1>Features</h1>
<ul>
<li><code>WebSocket.prototype.addEventListener()</code> now supports the <code>once</code> option (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1754">#1754</a>).</li>
</ul>
<h2>7.2.5</h2>
<h1>Bug fixes</h1>
<ul>
<li>Fixed compatibility with Node.js master (651d6627).</li>
</ul>
<h2>7.2.4</h2>
<h1>Bug fixes</h1>
<ul>
<li>The <a href="https://nodejs.org/api/http.html#http_http_request_options_callback"><code>http.request()</code></a> <code>auth</code> option is now supported (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1734">#1734</a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="41f5e4ff11"><code>41f5e4f</code></a> [dist] 7.3.0</li>
<li><a href="2e5c01f5b5"><code>2e5c01f</code></a> [feature] Make <code>addEventListener()</code> support the <code>once</code> option (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1754">#1754</a>)</li>
<li><a href="97ddfce983"><code>97ddfce</code></a> [ci] Test on node 14</li>
<li><a href="2b49c4821f"><code>2b49c48</code></a> Revert &quot;[ci] Use GitHub Actions (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1644">#1644</a>)&quot;</li>
<li><a href="82f05372ba"><code>82f0537</code></a> Revert &quot;[ci] Test on node 14&quot;</li>
<li><a href="b167d1cd45"><code>b167d1c</code></a> Revert &quot;[ci] Update Coveralls GitHub Action to version 1.1.1&quot;</li>
<li><a href="78e1c01959"><code>78e1c01</code></a> [ci] Update Coveralls GitHub Action to version 1.1.1</li>
<li><a href="e6949791fa"><code>e694979</code></a> [doc] Fix badge URL</li>
<li><a href="67983cbba4"><code>67983cb</code></a> [dist] 7.2.5</li>
<li><a href="18d773d1f5"><code>18d773d</code></a> [test] Fix failing tests</li>
<li>Additional commits viewable in <a href="https://github.com/websockets/ws/compare/7.2.3...7.3.0">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ws&package-manager=npm_and_yarn&previous-version=7.2.3&new-version=7.3.0)](https://help.github.com/articles/configuring-automated-security-fixes)

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

</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/1266

Reviewed By: nikoant

Differential Revision: D22118507

Pulled By: passy

fbshipit-source-id: 700f098e5c7b6ddb1dda27ef50974af5b73fe88c
2020-06-22 02:17:59 -07:00
ZHANG Qichuan
c068deac2d Fix the network plugin crashes when Add Route button is pressed (#1281)
Summary:
Changelog:
Fix Network Mock Dialog crashes when 'Add Route' button is pressed  https://github.com/facebook/flipper/issues/1280

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

Reviewed By: cekkaewnumchai

Differential Revision: D22151908

Pulled By: passy

fbshipit-source-id: cafd2b53d76cd9ea213f8be09866222a6330d043
2020-06-22 02:14:26 -07:00
dependabot[bot]
4ac9dc9eda Bump tslib from 1.11.1 to 2.0.0 in /desktop (#1258)
Summary:
Bumps [tslib](https://github.com/Microsoft/tslib) from 1.11.1 to 2.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/Microsoft/tslib/releases">tslib's releases</a>.</em></p>
<blockquote>
<h2>tslib 2.0.0</h2>
<p>This release changes <code>__exportStar</code> and <code>__importStar</code> to use <code>__createBinding</code> which is incompatible with versions of TypeScript older than 3.9 (i.e. 3.8 and below).</p>
<h2>tslib 1.13.0</h2>
<p>This release reverts breaking changes in tslib that were not compatible with versions of TypeScript prior to 3.9. The behavior slightly diverges from that of TypeScript 3.9, but generally is compatible with previous versions of TypeScript-authored code.</p>
<p>The new behavior of TypeScript 3.9 will be available in tslib 2.0.0.</p>
<p><a href="https://github-redirect.dependabot.com/microsoft/tslib/pull/109">See this pull request</a> for more details.</p>
<h2>tslib 1.12.0</h2>
<p>This release adds the <code>__createBinding</code> helper function which is used by non-ECMAScript module emit in TypeScript 3.9.</p>
<h2>tslib 1.11.2</h2>
<p>This release <a href="https://github-redirect.dependabot.com/microsoft/tslib/pull/96">relicenses tslib to the 0BSD license</a> which should allow projects that embed or bundle tslib to omit its license header.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="2d120146f6"><code>2d12014</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/Microsoft/tslib/issues/112">https://github.com/facebook/flipper/issues/112</a> from microsoft/revert-109-revert3.9Changes</li>
<li><a href="19e3f35015"><code>19e3f35</code></a> Switch to 2.0.0</li>
<li><a href="fa5c8a0b76"><code>fa5c8a0</code></a> Switch from const to var</li>
<li><a href="1a9d7477f3"><code>1a9d747</code></a> Revert &quot;Revert changes to pre-3.9 behavior, update version to 1.13.0&quot;</li>
<li><a href="b7e9c51bf7"><code>b7e9c51</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/Microsoft/tslib/issues/109">https://github.com/facebook/flipper/issues/109</a> from microsoft/revert3.9Changes</li>
<li><a href="7b69d91f43"><code>7b69d91</code></a> Semicolon</li>
<li><a href="0587b2af68"><code>0587b2a</code></a> Add back 'p !== default'</li>
<li><a href="ce3462e9da"><code>ce3462e</code></a> Re-add '__createBinding'.</li>
<li><a href="e6dc41c6d7"><code>e6dc41c</code></a> Update version number.</li>
<li><a href="12fca3bb5a"><code>12fca3b</code></a> Revert changes to pre-3.9 behavior.</li>
<li>Additional commits viewable in <a href="https://github.com/Microsoft/tslib/compare/1.11.1...2.0.0">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tslib&package-manager=npm_and_yarn&previous-version=1.11.1&new-version=2.0.0)](https://help.github.com/articles/configuring-automated-security-fixes)

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

</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/1258

Reviewed By: nikoant

Differential Revision: D22118750

Pulled By: passy

fbshipit-source-id: b9413bda5a1f0df98374cc114e36358a6b168c67
2020-06-19 11:28:15 -07:00
Anton Nikolaev
2085d4e362 Fix layout plugin source import violation
Summary: Fixed direct source import of Flipper code from layout plugin which broke its packaging

Reviewed By: cekkaewnumchai

Differential Revision: D22135716

fbshipit-source-id: 8f67a21ed94c13dd73d24ef8692d37ae51963319
2020-06-19 08:44:51 -07:00
ZHANG Qichuan
ae9c07c8f3 Persist the Network mock data (#1218)
Summary:
Persist the Network mock data, so it can survive after switching the plugins

Closes https://github.com/facebook/flipper/issues/1206
## Changelog

- Persist the Network mock data
- Remove the pref-filled '/' when creating a mock route
Pull Request resolved: https://github.com/facebook/flipper/pull/1218

Test Plan: <img width="807" alt="Screenshot 2020-06-02 at 11 45 15 PM" src="https://user-images.githubusercontent.com/410850/83540614-27e95000-a52b-11ea-8fc8-d7ad1373e904.png">

Reviewed By: mweststrate

Differential Revision: D21863561

Pulled By: passy

fbshipit-source-id: 4706ede721c7990a6bcc0bfe51f41e80306ffac7
2020-06-19 05:27:48 -07:00
Chaiwat Ekkaewnumchai
9f931db91f Upgrade Electron to Version 9 (#1224)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1224

Upgrade Electron-related dependencies to version 9.

Changes includes:
- force `fetch` to `no-cors` mode to get rid of CORS policy error while upgrading to version 9
- `keytar` returns promises so changes to reflect that ([reference](https://github.com/atom/node-keytar/blob/master/keytar.d.ts))

Reviewed By: passy

Differential Revision: D21862765

fbshipit-source-id: 25e236ee568934ee9c64dcc90f2fc9648c905b6a
2020-06-19 03:57:00 -07:00
Michel Weststrate
7b69b96190 Fix code formatting
Summary:
Had some horrible dev experience caused by  VSCode and Jest not agreeing what snapshots should look like, every time saving a test in VSCode, it would break the jest snapshots. After investigating eslint and prettier, turned out VSCode itself was the culprit. Caused by a global user setting, but this makes sure nobody else runs into it :)

Also made sure Jest uses the correct prettier settings (it didn't before).

Reviewed By: passy

Differential Revision: D22114656

fbshipit-source-id: aef6c278a668bce049c96aba95c7a5101ca840ad
2020-06-19 03:54:49 -07:00
Scott Kyle
cf9309b039 Remove ManagedDataInspector constructor
Summary: The constructor that accepts `context` is deprecated and in turn causes `React.ComponentProps<typeof ManagedDataInspector>` and other type signatures to fail.

Reviewed By: mweststrate

Differential Revision: D22111964

fbshipit-source-id: 71553d749d0d7de6ef34350faa55d04433a639d1
2020-06-18 11:05:13 -07:00
Scott Kyle
27cff396ad Add path param to extractValue
Summary: I'm working on an attribute inspector that has particular top-level special keys that should not be editable, while the rest can be. This enables the functionality to allow dynamic determinations of what can be made editable, and is an additive non-breaking change to the API.

Reviewed By: mweststrate

Differential Revision: D22111965

fbshipit-source-id: 4bc6df0f76cf1e2bf0590235dcf543c665c7d8d8
2020-06-18 11:05:13 -07:00
generatedunixname89002005306973
43b9426ff4 Flipper Release: v0.47.0
Summary: Releasing version 0.47.0

Reviewed By: jknoxville

Differential Revision: D22089288

fbshipit-source-id: 0107d1f17cce8c9adc2b9c26d48a6d80797749be
2020-06-17 09:00:07 -07:00
Chaiwat Ekkaewnumchai
2785ec2d32 Add Unit Test for Log Adding Logic
Summary: D22047276 introduced a new way to adding log data column depending on how one sorts by time. This diff adds unit test to test the logic

Reviewed By: passy

Differential Revision: D22068114

fbshipit-source-id: 3fe01beec69d45d96f2fc2a437c3f408686565a3
2020-06-17 03:10:45 -07:00
John Knox
77bc432a81 Don't filter iOS devices by name
Summary:
Well this is embarassing. My iPhone is called iPhone, so I assumed instruments always outputs "iPhone" for iPhones, but it doesn't if they've got a different name.

Pointed out in https://github.com/facebook/flipper/issues/262

Reviewed By: nikoant

Differential Revision: D22066872

fbshipit-source-id: 847e1baf28103692dc9472d9730b6384ec719be0
2020-06-16 08:16:03 -07:00
Anton Nikolaev
c995fc8fc2 Report versions of plugins and plugin load success rate (#1270)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1270

1) Report versions of loaded plugins so we can track auto-updates
2) Report plugin load success rate

Reviewed By: jknoxville

Differential Revision: D22066598

fbshipit-source-id: 23ef2fb37260438cc1a9a873c88a50b75cd718f4
2020-06-16 06:46:14 -07:00
Jason Moore
fec52a3989 escape app name to account for special characters in name (closes #1252) (#1268)
Summary:
App Names can contain special characters. Escape them (and unescape later) so that device ID strings don't break.

Simpler is better - thanks to mweststrate for keeping me out of the rabbit hole
## Changelog

Escape app name to account for special characters in name
Pull Request resolved: https://github.com/facebook/flipper/pull/1268

Test Plan:
Added test to test character escaping: `cd desktop && yarn test -- -i app/src/utils/__tests__/clientUtils.node.tsx`

closes https://github.com/facebook/flipper/issues/1252

Reviewed By: passy

Differential Revision: D22066263

Pulled By: jknoxville

fbshipit-source-id: c820d055700ca6f55d35265528ce874eeb159216
2020-06-16 06:06:29 -07:00
Anton Nikolaev
96645a21b1 Fixed silent error on notification side-effect
Summary: Fixed silent error on showing deprecated format notification

Reviewed By: jknoxville

Differential Revision: D22066427

fbshipit-source-id: ae721aaa45e111df3cf8d8344554efac54b6d2ec
2020-06-16 05:31:09 -07:00
Lukas Kurucz
f2996b7e7c When init, search for first level subdirectory (#1269)
Summary:
When running `flipper-pkg init path/plugin`, this allows to skip the `Do you wanna add this path to watching in Flipper config?`, if the path is direct first level subdirectory of any added path from Flipper `pluginPaths: []`

## Changelog

- Improve matching for watched pluginPaths when initialising new plugin
Pull Request resolved: https://github.com/facebook/flipper/pull/1269

Test Plan:
1. Create folder: `~/flipper-plugins`
2. Add this folder to Flipper config `pluginPaths: ['~/flipper-plugins']`
3. Create new subfolder `test-plugin`
4. Run `flipper-pkg init test-plugin`
5. It should not ask to add this folder to pluginPaths

To verify it only works for first level subdirectory, create another folder: `/deep/test-plugin2` and re-run steps with it.

This should also keep working if we specify exactly the path for the plugin itself.

Reviewed By: mweststrate

Differential Revision: D22065630

Pulled By: jknoxville

fbshipit-source-id: 9ef8d364e3815033b63579e37a6f2d19515ca902
2020-06-16 04:50:45 -07:00
Anton Nikolaev
4a52af358e NotificationHub: allow to select notification text and copy it
Summary: Enabled selection of notification text + added a context menu item to copy the selected text only.

Reviewed By: passy

Differential Revision: D22065704

fbshipit-source-id: 510e68d50a54329aaeefb9b3097bc4283f884dc9
2020-06-16 04:30:59 -07:00
Anton Nikolaev
5b92836bea Show notifications about plugin spec v1 deprecation
Summary:
Show notification if user has installed plugins packaged in the old format. Example text of notification:

***
Plugin "Example" will stop working after version 0.48 of Flipper released, because it is packaged using the deprecated format.
Please try to install a newer version of this plugin packaged using "Install Plugins" tab on "Manage Plugins" form.

If the latest version of the plugin is still packaged in the old format, please contact the author and consider raising a pull request for upgrading the plugin. You can find contact details on the package page https://www.npmjs.com/package/flipper-plugin-example.

If you are the author of this plugin, please migrate your plugin to the new format, and publish new version of it. See https://fbflipper.com/docs/extending/js-setup#migration-to-the-new-plugin-specification on how to migrate the plugin. See https://fbflipper.com/docs/extending/js-setup#package-format for details on plugin package format.
***

Reviewed By: passy

Differential Revision: D22065688

fbshipit-source-id: da9b9d8f62e7cdb8c926a81e24bdfb4ec67f9dff
2020-06-16 04:30:59 -07:00
Chaiwat Ekkaewnumchai
993249ed86 Add Sorting Log by Time
Summary:
This is a discussion on Github about reversing log. This diff tries to do that.

Changelog: Add ability to reverse log by time

Reviewed By: mweststrate

Differential Revision: D22047276

fbshipit-source-id: 6100a5ca40db223d1989be2746c7190cce7ffc53
2020-06-16 03:55:56 -07:00
Anton Nikolaev
f5a8e929c0 Bump plugin versions to match Flipper version (#1267)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1267

Bumped versions of all plugins to match current Flipper version 0.46.0.

Reviewed By: mweststrate

Differential Revision: D22042959

fbshipit-source-id: 37c169bfd1b90debb8f94c9465a345a015524158
2020-06-15 09:28:23 -07:00
Anton Nikolaev
696ca8e604 Bump script updated to also bump plugin versions
Summary:
Updated "bump-versions" script to also bump version of all plugins when we're releasing Flipper.

Changelog: Versions of bundled plugins will be matching Flipper core version.

Reviewed By: mweststrate

Differential Revision: D22042960

fbshipit-source-id: b2d361ce9cbfc8022e12aecbbf7c6101029844e5
2020-06-15 09:28:23 -07:00
Anton Nikolaev
c628ad7cbd Fixed check for requires outside of plugin folder when shared library is used
Summary: There was a error on bundling plugins which references a shared lib, because of wrong check during babel transformation.

Reviewed By: passy

Differential Revision: D22041443

fbshipit-source-id: c157675c05e9d9653b65ed30293e3b8b09bae260
2020-06-15 07:29:34 -07:00
Anton Nikolaev
8003e7eb34 Migrate all plugins to spec v2
Summary: All the plugins migrated to spec v2 to allow packaging/publishing them independently from Flipper releases.

Reviewed By: passy

Differential Revision: D22041384

fbshipit-source-id: 23bfaf724f771a57bd628b9ea1c4d37846534a93
2020-06-15 07:29:34 -07:00
Scott Kyle
906b6a0230 RFC NT Layout sidebar extension
Summary:
This diff is not meant to land as-is, but instead to generate discussion on how to properly accomplish this.

The goal is to add a Layout plugin sidebar extension that displays the NT reduction trace when an NT component is selected.

Note this is a feature that exists today (when whitelisted on `reduction_trace_check` GK) via the `SKComponentLayoutDescriptor` API, where we'd include the entire JSON representation on every element and display that in a standard inspector in the sidebar. We have a new metadata system where we only include a metadata id and Flipper can separately request the metadata, which is much more performant. Also, we have an existing `NTReductionTracePanel` component we'd like to use that handles requesting and displaying that information in a much better way.

I'd still like to use the `SKComponentLayoutDescriptor` API (or something similar) to have access to that component's metadata id in order to decide whether the panel should appear and of course that id is needed for the panel. This works well right now (see test plan), but as you can see, it's less than ideal in that it needs to look into `Extra Sections` then `Native Templates` to get that information. This might be acceptable for the time being while we think this API through, but I wanted to get input on if we can do better before trying to land.

Additional questions:
- Why are `SidebarExtensions` exported from the "flipper" module, when they only work with and import from the Layout plugin?
- There are two `InspectorSidebar` components - one in the Layout plugin and one in main flipper module [here](https://fburl.com/diffusion/ecg8lhfq) that I don't think is being used?

Reviewed By: mweststrate

Differential Revision: D21887701

fbshipit-source-id: 23ed19c08b68b4b1115b8cc6af84af9e87e91128
2020-06-12 09:48:52 -07:00
Anton Nikolaev
fb92a6f131 Show notification after plugin update downloaded
Summary: Add notification after plugin update downloaded

Reviewed By: passy

Differential Revision: D22016571

fbshipit-source-id: 188eeb848561f8461d7f76d1965dc5190d41e7d0
2020-06-12 06:15:29 -07:00
Anton Nikolaev
74a27aafcc Disable plugin auto-update in dev mode
Summary: When Flipper is running in dev mode we should always use bundled version of plugin (e.g. loaded from sources) even if a newer version is installed. Otherwise it could happen that Flipper will load installed version and it will not be possible to test your changes of plugin sources.

Reviewed By: passy

Differential Revision: D22016564

fbshipit-source-id: fbf63d5248b60034dc61688e4faa9b54890b744e
2020-06-12 06:15:29 -07:00
Timur Valiev
896a90aa26 update js-client api (migrate to TS)
Summary:
JS/TS api:
- migrate to TS
- some refactoring (get rid of bridge, make client abstract)

Implementation isn't full yet, things to be implemented:
- let plugins connect on init command from Flipper
- implement Responder

Further plans:
- make fully compatible with react-native api without breaking changes

Reviewed By: mweststrate

Differential Revision: D21839377

fbshipit-source-id: 9e9fe4ad01632f958b59eb255c703c6cbc5fafe2
2020-06-11 08:45:35 -07:00
Anton Nikolaev
f88d707dbb Sign-in form improvements
Summary:
Sign in form improvements:
1) Added context menu with "Paste" and "Reset" items
2) Added "Reset" button
3) When form is empty, simple click to it automatically pastes token from clipboard
4) Automatically sign-in after token is pasted into empty form

Reviewed By: mweststrate

Differential Revision: D21994724

fbshipit-source-id: 8605c7f9b96777036b1b20b69370fba499185911
2020-06-11 07:31:10 -07:00
Scott Kyle
d6c97b48d3 Fix scrolling to inspected element
Summary:
When the `Scrollable` component was introduced, this functionality regressed because the `ref` was no longer set on the right component.

changelog: Fix scrolling to inspected element in Layout plugin

Reviewed By: mweststrate

Differential Revision: D21979475

fbshipit-source-id: f84d515cb1593a33d1ae0e93a01681b6e11aa623
2020-06-11 00:16:07 -07:00
dependabot-preview[bot]
fb0af47c31 Bump uuid from 8.0.0 to 8.1.0 in /desktop (#1234)
Summary:
Bumps [uuid](https://github.com/uuidjs/uuid) from 8.0.0 to 8.1.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/uuidjs/uuid/blob/master/CHANGELOG.md">uuid's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/uuidjs/uuid/compare/v8.0.0...v8.1.0">8.1.0</a> (2020-05-20)</h2>
<h3>Features</h3>
<ul>
<li>improve v4 performance by reusing random number array (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/435">https://github.com/facebook/flipper/issues/435</a>) (<a href="bf4af0d711">bf4af0d</a>)</li>
<li>optimize V8 performance of bytesToUuid (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/434">https://github.com/facebook/flipper/issues/434</a>) (<a href="e156415448">e156415</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>export package.json required by react-native and bundlers (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/449">https://github.com/facebook/flipper/issues/449</a>) (<a href="be1c8fe9a3">be1c8fe</a>), closes <a href="https://github-redirect.dependabot.com/uuidjs//github-redirect.dependabot.com/ai/nanoevents/issues/44/issues/issuecomment-602010343">ai/nanoevents#44</a> <a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/444">https://github.com/facebook/flipper/issues/444</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="4124ec75f0"><code>4124ec7</code></a> chore(release): 8.1.0</li>
<li><a href="be1c8fe9a3"><code>be1c8fe</code></a> fix: export package.json required by react-native and bundlers (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/449">https://github.com/facebook/flipper/issues/449</a>)</li>
<li><a href="a21e4d8c53"><code>a21e4d8</code></a> test: improve v3/v5 test (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/450">https://github.com/facebook/flipper/issues/450</a>)</li>
<li><a href="3b4b35ca28"><code>3b4b35c</code></a> chore: warn about Node.js 13.x incompatibility in issue template (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/443">https://github.com/facebook/flipper/issues/443</a>)</li>
<li><a href="aabb7757fe"><code>aabb775</code></a> test: add tests for buffer api (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/438">https://github.com/facebook/flipper/issues/438</a>)</li>
<li><a href="bf4af0d711"><code>bf4af0d</code></a> feat: improve v4 performance by reusing random number array (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/435">https://github.com/facebook/flipper/issues/435</a>)</li>
<li><a href="e156415448"><code>e156415</code></a> feat: optimize V8 performance of bytesToUuid (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/434">https://github.com/facebook/flipper/issues/434</a>)</li>
<li><a href="f6ce4bffc2"><code>f6ce4bf</code></a> refactor: upgrade code to modern JavaScript (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/427">https://github.com/facebook/flipper/issues/427</a>)</li>
<li><a href="2b796869ec"><code>2b79686</code></a> test: add benchmark (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/430">https://github.com/facebook/flipper/issues/430</a>)</li>
<li>See full diff in <a href="https://github.com/uuidjs/uuid/compare/v8.0.0...v8.1.0">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=uuid&package-manager=npm_and_yarn&previous-version=8.0.0&new-version=8.1.0)](https://dependabot.com/compatibility-score/?dependency-name=uuid&package-manager=npm_and_yarn&previous-version=8.0.0&new-version=8.1.0)

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)

 ---

**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).

<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)
- `dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in the `.dependabot/config.yml` file in this repo:
- Update frequency
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/1234

Reviewed By: nikoant

Differential Revision: D21940732

Pulled By: passy

fbshipit-source-id: 8ff46c925659156049ac8dd56ec2b7464dd83500
2020-06-10 09:39:56 -07:00
Anton Nikolaev
ce6f8eea90 Attempt to fix tests on github (#1236)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1236

I'm not quite sure why tests are failing on GitHub on Windows and Linux, while working well on MacOS. I cannot reproduce fail on my Windows machine. So will use this diff for debugging.

Reviewed By: jknoxville

Differential Revision: D21954828

fbshipit-source-id: bc88a67c4974c8453dcecee3128b354f0b1cb694
2020-06-10 09:18:06 -07:00
dependabot-preview[bot]
7a7684e32f Bump eslint-plugin-relay from 1.4.1 to 1.7.1 in /desktop (#1235)
Summary:
Bumps [eslint-plugin-relay](https://github.com/relayjs/eslint-plugin-relay) from 1.4.1 to 1.7.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/relayjs/eslint-plugin-relay/commits/v1.7.1">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=eslint-plugin-relay&package-manager=npm_and_yarn&previous-version=1.4.1&new-version=1.7.1)](https://dependabot.com/compatibility-score/?dependency-name=eslint-plugin-relay&package-manager=npm_and_yarn&previous-version=1.4.1&new-version=1.7.1)

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)

 ---

**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).

<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)
- `dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in the `.dependabot/config.yml` file in this repo:
- Update frequency
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/1235

Reviewed By: jknoxville

Differential Revision: D21940729

Pulled By: passy

fbshipit-source-id: c7770504a10dcfe70db9a58bd83e98715eb3c2db
2020-06-10 08:34:37 -07:00
Anton Nikolaev
587b8f6013 Fix flipper-pkg publishing
Summary: Command "oclif-dev manifest" is failing without esModuleInterop set to true, even though it is specified in base config. Because of this, automatic publishing to npm failed yesterday.

Reviewed By: jknoxville

Differential Revision: D21972747

fbshipit-source-id: ccdd34833f7beb4fbd79a97beeacaf012d5cb0cb
2020-06-10 06:40:39 -07:00
Pritesh Nandgaonkar
78924c527b Add persisted state
Summary: Persist state in Mobile builds plugin. This diff also moves the logic of percentage updates in the persisted state.

Reviewed By: mweststrate

Differential Revision: D21840853

fbshipit-source-id: 3246cdfecfca12cd0f269f5a87646cf619380999
2020-06-10 05:23:54 -07:00
generatedunixname89002005306973
c0eb2648b7 Flipper Release: v0.46.0
Summary: Releasing version 0.46.0

Reviewed By: nikoant

Differential Revision: D21952711

fbshipit-source-id: 8681a244d64c50f2ad50f6c9c5e0ea766fd9ff20
2020-06-09 10:14:19 -07:00
Madeline Cripps
c7f7ac0228 Migrate to FBSystrace Server
Summary:
As title, this restores all of the functionality of the original plugin to but uses json-rpc to interact with fbsystrace in server mode.

Mostly at feature parity with the old plugins, need to update the following in my next diff:
- Better fbsystrace error surfacing
- Pipe all all output to 'Console'
- Support non-select type options

{F239554690}

I think that the authentication issues with Tracery might go away in prod - according to https://fb.workplace.com/groups/flippersupport/permalink/889080114905981/ this seems like a dev issue. But the "Open in Browser" functionality is working fine.

Reviewed By: nslingerland

Differential Revision: D21668522

fbshipit-source-id: fa3b887c7b5dedc08c62a9d579e1112d7f8e0323
2020-06-09 09:21:29 -07:00
Michel Weststrate
17223f5a99 add CPU status
Summary: ^

Reviewed By: passy

Differential Revision: D21952136

fbshipit-source-id: b33de0b9da0cf0f77730599c99003362bac0d159
2020-06-09 07:28:25 -07:00
John Knox
21a926232e Add idb check to doctor
Summary:
Adds a check for idb to flipper-doctor.

This depends on the flipper settings, to know where to look for idb, so I've made it so you can pass settings into the doctor when running it. When run from the command line, you don't get the settings. This is because settings loading currently depends on redux so I haven't extracted it into its own package.

Not that this will notify ALL open source iOS users with a doctor warning because they don't have idb installed. The error message says you can disable it in settings, which will silence this warning.

CHANGELOG: The open source version now works with physical iOS devices.

Reviewed By: passy

Differential Revision: D21883086

fbshipit-source-id: f28c43487e88a6c07ef3cc3da2764026726c9f18
2020-06-09 06:56:09 -07:00
Anton Nikolaev
bf62c8cbe4 Unit tests for finishinh plugin installation step
Summary: Added unit test covering finishing of plugin installation on Flipper startup

Reviewed By: mweststrate

Differential Revision: D21949628

fbshipit-source-id: a8b3a320c1ddd151ebbd63d7a6d596320ca8e25a
2020-06-09 04:58:37 -07:00