Files
flipper/js/js-flipper
dependabot[bot] c2f895d9c5 Bump @babel/core from 7.16.7 to 7.16.12 in /js/js-flipper (#3349)
Summary:
Bumps [babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.16.7 to 7.16.12.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/babel/babel/releases"><code>@​babel/core</code>'s releases</a>.</em></p>
<blockquote>
<h2>v7.16.12 (2022-01-22)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-core</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14192">#14192</a> Avoid dynamic import when it's not needed (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-parser</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14194">#14194</a> fix: incorrect <code>in</code> parsing in arrow ConciseBody (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 2</h4>
<ul>
<li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
<li>Nicolò Ribaudo (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
<h2>v7.16.11 (2022-01-20)</h2>
<p>This empty releases force-publishes a new version of <code>babel/plugin-proposal-private-methods</code> (which was not published in v7.16.10 because it didn't have any actual change) and of <code>babel/preset-env</code>.</p>
<p>This solves <a href="https://github-redirect.dependabot.com/babel/babel/pull/14169#issuecomment-1016948723">an incompatibility</a> between <code>babel/preset-env@7.16.10</code> and <code>babel/helper-create-class-features-plugin@7.16.7</code>, by making sure that <code>babel/preset-env</code> transitively depends on <code>babel/helper-create-class-features-plugin@^7.16.10</code>.</p>
<h2>v7.16.10 (2022-01-19)</h2>
<p>Thanks <a href="https://github.com/blankPen"><code>@​blankPen</code></a> for your first PR!</p>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-highlight</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14165">#14165</a> Avoid infinite loop when highlighting an empty input (<a href="https://github.com/blankPen"><code>@​blankPen</code></a>)</li>
</ul>
</li>
<li><code>babel-traverse</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14164">#14164</a> Handle logical assignment in super property transforms (<a href="https://github.com/magic-akari"><code>@​magic-akari</code></a>)</li>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14162">#14162</a> Fix the transform of <code>super.foo--</code>/<code>super[foo]--</code> (and prefix) (<a href="https://github.com/magic-akari"><code>@​magic-akari</code></a>)</li>
</ul>
</li>
<li><code>babel-core</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14110">#14110</a> Respect <code>package.json#exports</code> when resolving plugins (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14153">#14153</a> Disable &quot;Reentrant plugin detected&quot; error in async mode (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h4>🏠 Internal</h4>
<ul>
<li><code>babel-plugin-transform-runtime</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14157">#14157</a> Remove workaround for <code>_typeof</code> in runtime build script (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-parser</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14130">#14130</a> Improve errors location tracking (<a href="https://github.com/tolmasky"><code>@​tolmasky</code></a>)</li>
</ul>
</li>
</ul>
<h4>🔬 Output optimization</h4>
<ul>
<li><code>babel-helper-create-class-features-plugin</code>, <code>babel-preset-env</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14169">#14169</a> Skip class fields transform when not necessary for private methods (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 5</h4>
<ul>
<li>1o57 (<a href="https://github.com/blankPen"><code>@​blankPen</code></a>)</li>
<li>Francisco Ryan Tolmasky I (<a href="https://github.com/tolmasky"><code>@​tolmasky</code></a>)</li>
<li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
<li>Nicolò Ribaudo (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
<li>magic-akari (<a href="https://github.com/magic-akari"><code>@​magic-akari</code></a>)</li>
</ul>
<h2>v7.16.9 (2022-01-11)</h2>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/babel/babel/blob/main/CHANGELOG.md"><code>@​babel/core</code>'s changelog</a>.</em></p>
<blockquote>
<h2>v7.16.12 (2022-01-22)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-core</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14192">#14192</a> Avoid dynamic import when it's not needed (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-parser</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14194">#14194</a> fix: incorrect <code>in</code> parsing in arrow ConciseBody (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h2>v7.16.10 (2022-01-19)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-highlight</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14165">#14165</a> Avoid infinite loop when highlighting an empty input (<a href="https://github.com/blankPen"><code>@​blankPen</code></a>)</li>
</ul>
</li>
<li><code>babel-traverse</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14164">#14164</a> Handle logical assignment in super property transforms (<a href="https://github.com/magic-akari"><code>@​magic-akari</code></a>)</li>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14162">#14162</a> Fix the transform of <code>super.foo--</code>/<code>super[foo]--</code> (and prefix) (<a href="https://github.com/magic-akari"><code>@​magic-akari</code></a>)</li>
</ul>
</li>
<li><code>babel-core</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14110">#14110</a> Respect <code>package.json#exports</code> when resolving plugins (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14153">#14153</a> Disable &quot;Reentrant plugin detected&quot; error in async mode (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h4>🏠 Internal</h4>
<ul>
<li><code>babel-plugin-transform-runtime</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14157">#14157</a> Remove workaround for <code>_typeof</code> in runtime build script (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-parser</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14130">#14130</a> Improve errors location tracking (<a href="https://github.com/tolmasky"><code>@​tolmasky</code></a>)</li>
</ul>
</li>
</ul>
<h4>🔬 Output optimization</h4>
<ul>
<li><code>babel-helper-create-class-features-plugin</code>, <code>babel-preset-env</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14169">#14169</a> Skip class fields transform when not necessary for private methods (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h2>v7.16.9 (2022-01-11)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-register</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14136">#14136</a> Restore <code>babel/register</code> compat with <code>babel/core@7.5.x</code> (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h2>v7.16.8 (2022-01-10)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-generator</code>, <code>babel-plugin-syntax-typescript</code>, <code>babel-plugin-transform-parameters</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14113">#14113</a> Print trailing comma after a single TS generic in arrow fns (<a href="https://github.com/ozanhonamlioglu"><code>@​ozanhonamlioglu</code></a>)</li>
</ul>
</li>
<li><code>babel-traverse</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14105">#14105</a> fix: forward stop signal to parent path (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-register</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14107">#14107</a> Don't mutate <code>babel/register</code> options (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-plugin-transform-modules-commonjs</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14097">#14097</a> Register binding for newly created vars for commonjs transforms (<a href="https://github.com/The-x-Theorist"><code>@​The-x-Theorist</code></a>)</li>
</ul>
</li>
<li><code>babel-plugin-transform-typescript</code>
<ul>
<li><a href="https://github-redirect.dependabot.com/babel/babel/pull/14093">#14093</a> Fix TypeScript Enum self-references (<a href="https://github.com/magic-akari"><code>@​magic-akari</code></a>)</li>
</ul>
</li>
</ul>
<h4>💅 Polish</h4>
<ul>
<li><code>babel-generator</code></li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="5266605528"><code>5266605</code></a> v7.16.12</li>
<li><a href="2ea90542bc"><code>2ea9054</code></a> Avoid dynamic import when it's not needed (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-core/issues/14192">#14192</a>)</li>
<li><a href="4a737547e5"><code>4a73754</code></a> v7.16.10</li>
<li><a href="e7c705a748"><code>e7c705a</code></a> Respect <code>package.json#exports</code> when resolving plugins (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-core/issues/14110">#14110</a>)</li>
<li><a href="8035ad90f9"><code>8035ad9</code></a> Disable &quot;Reentrant plugin detected&quot; error in async mode (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-core/issues/14153">#14153</a>)</li>
<li>See full diff in <a href="https://github.com/babel/babel/commits/v7.16.12/packages/babel-core">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@babel/core&package-manager=npm_and_yarn&previous-version=7.16.7&new-version=7.16.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/3349

Reviewed By: aigoncharov

Differential Revision: D33741783

Pulled By: lblasa

fbshipit-source-id: 15d669817d6a6daab82dacded5f16f0c00bd2269
2022-01-26 04:23:04 -08:00
..
2022-01-17 07:55:41 -08:00
2021-10-21 04:28:21 -07:00
2022-01-18 07:46:05 -08:00
2021-10-21 04:28:21 -07:00
2021-10-21 04:28:21 -07:00
2021-10-21 04:28:21 -07:00
2022-01-20 04:56:21 -08:00
2021-10-21 04:28:21 -07:00

js-flipper

This package exposes JavaScript bindings to talk from web / Node.js directly to flipper.

Installation

yarn add js-flipper

Usage

How to build Flipper plugins is explained in the flipper documentation: Creating a Flipper plugin. Building a Flipper plugin involves building a plugin for the Desktop app, and a plugin that runs on a Device (web or Node.js). This package is only needed for the plugin that runs on the device (web / Node.js), and wants to use the WebSocket connection to communicate to Flipper.

This package exposes a flipperClient. It has:

  • addPlugin method. It accepts a plugin parameter, that registers a client plugin and will fire the relevant callbacks if the corresponding desktop plugin is selected in the Flipper Desktop. The full plugin API is documented here.
  • start method. It starts the client. It has two arguments:
    • appName - (required) the name dsplayed in Flipper
    • options which conforms to the infterface
      interface FlipperClientOptions {
        // Make the client connect to a different URL
        urlBase?: string;
        // Override WebSocket implementation (Node.js folks, it is for you!)
        websocketFactory?: (url: string) => FlipperWebSocket;
        // Override how errors are handled (it is simple `console.error` by default)
        onError?: (e: unknown) => void;
        // Timeout after which client tries to reconnect to Flipper
        reconnectTimeout?: number;
      }
      

Example (web)

An example plugin can be found in FlipperTicTacToe.js.

The corresponding Desktop plugin ships by default in Flipper, so importing the above file and dropping the <FlipperTicTacToe /> component somewhere in your application should work out of the box.

The sources of the corresponding Desktop plugin can be found here.

Node.js

Node.js does not have a built-in WebSocket implementation. You need to install any implmentation of WebSockets for Node.js that is compatible with the interface of the web version.

import flipperClient from 'js-flipper';
// Say, you decided to go with 'ws'
// https://github.com/websockets/ws
import WebSocket from 'ws';

// Start the client and pass some options
// You might ask yourself why there is the second argument `{ origin: 'localhost:' }`
// Flipper Desktop verifies the `Origin` header for every WS connection. You need to set it to one of the whitelisted values (see `VALID_WEB_SOCKET_REQUEST_ORIGIN_PREFIXES`).
flipperClient.start('My cool nodejs app', { websocketFactory: url => new WebSocket(url, {origin: 'localhost:'}) });

An example plugin should be somewhat similar to what we have for React. It is currently WIP (do not confuse with RIP!).