Summary:
This changes moves most of the functionality found in flipper-server to flipper-server-core.
flipper-server will mostly be a package that wraps around flipper-server-core. Staying in flipper-server:
- Command line args
- Orchestration to start the necessary servers
Reviewed By: aigoncharov
Differential Revision: D36807087
fbshipit-source-id: f29002c7cc5d08b8c5184fdaaa02ba22562a9f45
Summary:
This change aggregates/redirects flipper-server logs with logs generated by the app.
This is a great approach, why:
As we tail the file, we deserialise the logs, and re-log them using console. This means, that they will be intercepted by the logging infrastructure flipper already has in place which will make these logs go to scribe, error reporting, etc.
Reviewed By: passy
Differential Revision: D36473790
fbshipit-source-id: a3547c5c8733217c61bb2d9b94990626bbf0a492
Summary:
This change extracts logging logic out from startFlipperServer.
Logs will also be written to disk.
Reviewed By: passy
Differential Revision: D36473768
fbshipit-source-id: b1df9df79b4aced0d3ba2e8c243aa8d44cf83703
Summary:
CHANGELOG: Upgrade electron to 18.2.0.
In Electron 18.2.0 we no longer have access to `remote`. Instead, we are recommended to implement IPC communications. We re-implement `remote` methods used before as IPC commands. To support type-safe execution of the commands, we create electron IPC clients on both sides: the main process and renderer process. We also move the main menu creation to the main process and track its usage via sending IPC messages to the renderer process where the logging happens.
Reviewed By: mweststrate
Differential Revision: D36593625
fbshipit-source-id: 6dcf531461ef2edceb9cac372a650f84f3370953
Summary:
These are utility methods that are not specific to startServer.
They will be reused by other components needing to check if something is listening to a port.
Make socket path is also extracted.
Reviewed By: passy
Differential Revision: D36473641
fbshipit-source-id: 73ed67912052896696b59670cb757d22761eeaa1
Summary: Tail is a server-side logging utility. We cannot add it to flipper-frontend-core as it is going to be included into the browser bundle then and break the build.
Reviewed By: antonk52
Differential Revision: D36771864
fbshipit-source-id: 169cdb88543f1e47f39e8c0976c3a3f45c0439d5
Summary:
This adds support for the key of DataTableColumn to be a dotted path into a nested object, e.g foo.bar. Currently the typescript types only allow a top level key to be set, making this feature currently unusuable from plugin code.
While this could be addressed in a future commit the intention of this is to allow the user to add custom fields into their table columns at run time
Note there is a side effect to free text search from this commit. Previously it would search all top keys in the object. Now it will only search in columns that are in the table.
changelog: Searching data table will now only search columns in the table, rather than all top level attributes of the object
Reviewed By: mweststrate
Differential Revision: D36663929
fbshipit-source-id: 3688e9f26aa7e1828f8e9ee69f8e6f86268c8a54
Summary:
Andrey's diff already ensures that we send the flag, this also adds it to the info string
which makes it more visible.
Reviewed By: lblasa
Differential Revision: D36699070
fbshipit-source-id: 905eded9612b19ecaa35a841ec240af002e11611
Summary: This was lost when I changed from `pkg-fetch` writing it to copying the file.
Reviewed By: mweststrate, aigoncharov
Differential Revision: D36682861
fbshipit-source-id: 23822d4cc75720a83282de949d28029a05a2a7f9
Summary:
In electron setup, bundlers usually bundle for browser environments. In browser envs, bundles seem to pick up .mjs files first. .mjs fro node-fetch exports fetch as a default export. This fix allows bundling of npm-api for electron.
Closes https://github.com/facebook/flipper/issues/3752https://github.com/doowb/npm-api/pull/25/files
Reviewed By: lblasa
Differential Revision: D36758469
fbshipit-source-id: bf6c27ed37cb0baa54382ea563902e6e77a118e9
Summary: Allows to attribute errors to flipper server or flipper electron
Reviewed By: passy
Differential Revision: D36698504
fbshipit-source-id: 6d07216fd05aa48b7c8cca5b53145916b64526eb
Summary:
Added a new type, Tail. It observes changes made to a file and notifies the subscriber.
It is useful and used to tail flipper-server logs, for example.
Reviewed By: passy
Differential Revision: D36473529
fbshipit-source-id: b0f905f4f8419d9e13386440d2d2cdabd528295b
Summary: The styleguide was no longer accessible in Flipper, this diff restores that, and also cleans up the extras menu a bit to by creating a plugin devs only section.
Reviewed By: antonk52
Differential Revision: D36697071
fbshipit-source-id: a2abce40157fffd4952172f379c8063492e2dcc0
Summary: For some reason, the most important container property grow (and shrink) wasn't in the docs. Added that
Reviewed By: antonk52
Differential Revision: D36697072
fbshipit-source-id: 45dd0351e2a94d31972d57a9f006cd06a0d37c4e
Summary:
^
This change aims to extract some bits and pieces that are not specific to FBLogger and could be used by other Logger implementations.
Reviewed By: passy
Differential Revision: D36473286
fbshipit-source-id: 57f02d132673dbac97384da4dca51bf3e6fb8738
Summary:
It's not obvious for non-mobile developers how to fix it when there are no emulators available. Adding a quick section in the troubleshooting guide and linking to it.
Changelog: Add link to troubleshooting page when no emulators are available.
Reviewed By: nikoant
Differential Revision: D36599925
fbshipit-source-id: f3a1e79e07209e34b66176102c85e7797292978c
Summary:
Our current loading state holder for the emulator launch dialogue is a "No emulators available" error message which may stay there for up to 5 seconds (in the case of only iOS enabled) before we see devices.
This adds a proper spinner that will show for as long there are pending device queries.
Changelog: Loading state for emulator launch dialogue
Reviewed By: nikoant
Differential Revision: D36598855
fbshipit-source-id: 64099596b48708b48a43f0208696a7dddc15007c
Summary:
Our launch emulator button isn't very helpful when you don't have any SDKs set up as it shows you exactly the same message as if it was loading for a bit longer. We've seen a low, but constant flow of support requests and it's often not easy to debug remotely unless you dig into the state export.
This sets up a new actionable message when you have neither Android nor iOS support enabled and sends you straight to the settings.
Changelog: Show alert in Launch Emulator dialogue if no SDKs are enabled
Reviewed By: mweststrate
Differential Revision: D36596972
fbshipit-source-id: ba72e9aaeb136c1a7e2f360ef9fbbeec6bc76f4d
Summary:
When filter is applied for the first time we shouldn't debounce to avoid "flashing" on datatable loading when it is first loaded without filter and then filter applied after 250ms.
Changelog:
Fixed flashing on opening datatable-based plugin with a filter.
Reviewed By: timur-valiev
Differential Revision: D36602929
fbshipit-source-id: 8bd33f50c92036f2a5565f636f4f2fbe69d900f2
Summary:
As we persist column filters between sessions - sometimes it's not obvious that they are applied.
This diff adds "Reset filters" action just near message "No records match the current search / filter criteria" to make it obvious that some records are hidden because of filters and let user quickly disable filters to see all items.
The same action also added to datatable's context menu.
Changelog:
Quick action "Reset filters" for datatable-based plugins which is shown in context menu and in empty table when all items filtered out.
Reviewed By: timur-valiev
Differential Revision: D36600535
fbshipit-source-id: 782e7f863f2f52d7f6017685bdebcb1feeb97dbd
Summary:
A paper cut that hurt me so many times. The launch emulator window gets populated by external commands that finish at interminate points in time and change the size, jiggling the buttons around. That means, you may hover over an android emulator just when the iOS command returns and when you click, you don't hit the Android emu, but some iOS thing.
This just makes the height fixed, so this cannot happen.
Still having some more improvements in mind as this is such a high-trafficked surface.
Chanlog: Fix wiggling of the Launch Emulator dialogue as data comes in
Reviewed By: mweststrate
Differential Revision: D36595001
fbshipit-source-id: e61de55f348ab4d2f6f977552539d2a44d3fd11d
Summary: Add a CLI app to play tic-tac-toe from the terminal.
Reviewed By: lblasa
Differential Revision: D36548528
fbshipit-source-id: 4cdfb9d8887cb0d4d0100a822f39a4f9fb25aa9b
Summary: FlipperServerClient is a high-level abstraction to talk to Flipper Server
Reviewed By: passy
Differential Revision: D36545544
fbshipit-source-id: 12845a96dfc39d4268d2f7134d90d5addae48b83
Summary:
Bumps [ws](https://github.com/websockets/ws) from 8.5.0 to 8.6.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>8.6.0</h2>
<h1>Features</h1>
<ul>
<li>Add the ability to remove confidential headers on a per-redirect basis (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/2030">https://github.com/facebook/flipper/issues/2030</a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ba214d9693"><code>ba214d9</code></a> [dist] 8.6.0</li>
<li><a href="8e3f1181f2"><code>8e3f118</code></a> [feature] Introduce the <code>'redirect'</code> event (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/2030">https://github.com/facebook/flipper/issues/2030</a>)</li>
<li><a href="69e682806d"><code>69e6828</code></a> [ci] Test on node 18</li>
<li><a href="0b6eb71665"><code>0b6eb71</code></a> [ci] Do not test on node 17</li>
<li><a href="d062ded622"><code>d062ded</code></a> [example] Fix require path</li>
<li><a href="2cf6202f8a"><code>2cf6202</code></a> [example] Use the <code>WebSocket.WebSocket{,Server}</code> aliases</li>
<li><a href="62e9b199ad"><code>62e9b19</code></a> [doc] Fix nits</li>
<li><a href="2619c003ce"><code>2619c00</code></a> [minor] Fix nit in comment</li>
<li><a href="d086f4bcbb"><code>d086f4b</code></a> [minor] Make <code>abortHandshake()</code> emit the error in the next tick</li>
<li><a href="ff80d665f9"><code>ff80d66</code></a> [test] Do not use a relative URL</li>
<li>Additional commits viewable in <a href="https://github.com/websockets/ws/compare/8.5.0...8.6.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/3708
Reviewed By: timur-valiev
Differential Revision: D36371198
Pulled By: mweststrate
fbshipit-source-id: df9befdb3f95be2b8c564f87287bd8621e3a0c59
Summary: Allow subscribing to state updates from the plugin in headless mode
Reviewed By: passy
Differential Revision: D36516754
fbshipit-source-id: 14db51243e1d91332a7327c1792412149339f907
Summary: Required for companion in later diffs
Reviewed By: passy
Differential Revision: D36517737
fbshipit-source-id: ad47ae00cc88f424507284553c7d4eb430691311
Summary:
Provide the same build parameters as for the main build and move
the two bundles to a folder where we can pick them up.
For consistency, I'm keeping the naming scheme with the main build.
Reviewed By: antonk52
Differential Revision: D36521046
fbshipit-source-id: 9ea992d6e5dc299d88083d751ca8e84eadb1430b
Summary: Fix a TypeError exception in TableHead.tsx when an ordered column is not present in the row.
Reviewed By: aigoncharov
Differential Revision: D36497494
fbshipit-source-id: 18c961468fc2bc3cca16290fd9e6c973e5e18ebf
Summary:
CHANGELOG: Refactor tic-tac-toe plugin to Sandy architecture
Sandy architecture unblocks using the plugin in a headless mode. Eventual goal - platy tic-tac-toe form a terminal
Reviewed By: passy
Differential Revision: D36513795
fbshipit-source-id: 5a967a325cfb52cc3ae72840240b22b0a4e8f031
Summary:
pkg-fetch is a bit weird in that it doesn't use the offline cache
if an output path is defined. That makes building in Sandcastle a lot harder.
Reviewed By: lawrencelomax, aigoncharov
Differential Revision: D36485283
fbshipit-source-id: 27596999c69441bc25e341db77b409ed0caaf0fe
Summary: Seems to have improvements to the cache which we need in Sandcastle
Reviewed By: lawrencelomax
Differential Revision: D36483459
fbshipit-source-id: 4dfe1dcccddd21c3966508b1260644630c1082f5
Summary: Expose uuid from flipper-common as it is required in multiple packages
Reviewed By: lblasa
Differential Revision: D36441889
fbshipit-source-id: 1fa539cb437976dbefe7d5d9a52e5e098a6402a7