Giter Site home page Giter Site logo

dash-button's Introduction

Dash Button for Node Circle CI codecov npm version

This project is archived. As of 2020, Amazon has disabled Dash Buttons. Various guides on the internet (e.g. Rescue Your Amazon Dash Buttons) explain how to keep some Dash Buttons working but it is no longer as simple to customize Dash Buttons as before.

Additionally, some of this library's dependencies don't compile with Node 12 and newer. You can still compile the dependencies with Node 10.

For these reasons, this project is archived.


Dash Button is a small Node server that reacts to Amazon Dash buttons on your WiFi network. You can write event handlers that Dash Button will run when it detects someone has pressed your Dash button.

Dash Button is designed to run on a Raspberry Pi. Specifically, it runs on Raspbian (Jessie or newer) and supports modern Node.js.

Installation and Setup

Dash Button runs on Node 8 and up on macOS and Linux. It depends on libpcap:

# Ubuntu and Debian
sudo apt-get install libpcap-dev
# Fedora and CentOS
sudo yum install libpcap-devel

Install Dash Button in your project using npm:

npm install --save dash-button

You will need to configure Dash Button with the MAC address of each of your Dash buttons, plus code to run when you press them. The examples here use ES2017.

Setting Up Your Dash Button

Follow Amazon's instructions to add your WiFi credentials to your Dash button, but skip the last step of choosing which product to order when you press the button. Your button is correctly configured if its LED flashes white for a few seconds before turning red when you press it. Note that the Dash button throttles presses, so you may have to wait a minute if you've pressed it recently.

Finding the MAC Address of Your Dash Button

The dash-button package includes a script that prints the MAC addresses of devices sending DHCP requests or ARP probes, which the Dash button emits when pressed. Use this to learn the MAC address of your Dash button by pressing it.

Add a new script to the scripts section of your package.json file:

{
  "scripts": {
    "scan": "dash-button scan"
  }
}

Run it with sudo npm run scan:

$ sudo npm run scan

By default it will listen on the first external network interface, which is commonly en0 or wlan0, for example. You can listen on another interface with the --interface option:

sudo npm run scan -- --interface en1

Telling Dash Button about Your Dash Button

Once you know your Dash button's MAC address you need to tell Dash Button about it:

const DashButton = require('dash-button');

const DASH_BUTTON_MAC_ADDRESS = 'xx:xx:xx:xx:xx:xx';

let button = new DashButton(DASH_BUTTON_MAC_ADDRESS);

Running Code When You Press Your Dash Button

Add a listener to your button. The listener will run when you press the button.

let subscription = button.addListener(async () => {
  let nest = require('unofficial-nest-api');
  await nest.login(username, password);
  nest.setFanModeOn();
});

// Later, if you want to remove the listener do so with the subscription:
subscription.remove();

You can add both normal and async functions. If you add an async function, Dash Button waits for the promise to settle before listening to new button presses.

API

DashButton

A DashButton listens to presses from a single Dash button with a specified MAC address. See the setup instructions for how to learn your Dash button's MAC address by scanning for DHCP requests and ARP probes.

Constructor

constructor(macAddress: string, options?: Options = {})

Creates a new DashButton object that listens to presses from the Dash button with the given MAC address. The supported options are:

  • networkInterface: name of the network interface on which to listen, like "en0" or "wlan0". See ifconfig for the list of interfaces on your computer. Defaults to the first external interface.

addListener

addListener(listener): Subscription

Adds a listener function that is invoked when this DashButton detects a press from your Dash button. Use the returned subscription to remove the listener.

The listener may be an async function. If you add an async listener, this DashButton will ignore subsequent presses from your Dash button until the async function completes. When you have multiple async listeners, the DashButton will wait for all of them to complete, even if some throw errors, before listening to any new presses. This lets you conveniently implement your own policy for throttling presses.

Subscription

Subscriptions are returned from DashButton.addListener and give you a convenient way to remove listeners.

remove

remove()

Removes the listener that is subscribed to the DashButton. It will release its reference to the listener's closure to mitigate memory leaks. Calling remove() more than once on the same subscription is OK.

Help Wanted

Green Light

The coolest feature would be to control the light on the Dash button so it turns green. Currently it turns white when broadcasting a DHCP request or ARP packet and then red when it doesn't receive a response from Amazon. But when you use a Dash button in the normal way, the light turns green after Amazon has placed your order. It would be great and make custom Dash apps feel more responsive if Dash Button could send back some kind of packet to trick the Dash button's light into turning green.

You probably can figure out what's going on with a packet capturing library or a tool like Wireshark. Once we know what Amazon's response looks like, then we need to spoof it. This might be impossible because of TLS but it's worth a shot.

Acknowledgements

These posts and projects were helpful for making Dash Button:

License

This source code is released under the MIT license. It is not affiliated with Amazon.

dash-button's People

Contributors

greenkeeper[bot] avatar greenkeeperio-bot avatar hiro-su avatar ide avatar steffenmllr avatar takehaya avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dash-button's Issues

An in-range update of prettier is breaking the build 🚨

The devDependency prettier was updated from 1.18.2 to 1.19.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

prettier is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: Your tests failed on CircleCI (Details).

Release Notes for Prettier 1.19: Long awaited Vue option, TypeScript 3.7 and new JavaScript features

diff

🔗 Release Notes

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of nullthrows is breaking the build 🚨

Version 1.1.0 of nullthrows was just published.

Branch Build failing 🚨
Dependency nullthrows
Current Version 1.0.3
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

nullthrows is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ci/circleci: Your tests failed on CircleCI (Details).

Commits

The new version differs by 5 commits.

  • b4e3aa8 1.1.0
  • c41fdc0 Support both default esmodule and direct commonjs require
  • bed21a1 Clearer flow type tests with commonjs variant
  • 0f54a01 Update flow-bin, jest and typescript
  • d64a920 Travis drop Node 4 & 6 and add Node 10

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

SyntaxError: Unexpected strict mode reserved word

When I try to do 'sudo npm run scan' I get this error. If I just try to remove 'use strict' from that file, it breaks it in another way. How can I make this work? I'm on OS X. I tried updating node. Here's the error:

/Users/kevinthr/Dropbox/Work/n04 dash/node_modules/dash-button/build/cli.js:29
let parser = _yargs2.default.usage('Usage: $0 <command> [options]').command(
^^^
SyntaxError: Unexpected strict mode reserved word
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3

An in-range update of yargs is breaking the build 🚨

The dependency yargs was updated from 14.1.0 to 14.2.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

yargs is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ci/circleci: Your tests failed on CircleCI (Details).

Commits

The new version differs by 9 commits.

  • bc3c4d1 chore(release): 14.2.0
  • 4d21520 feat(deps): introduce yargs-parser with support for unknown-options-as-args (#1440)
  • 1b47745 docs: update supported locales (#1425)
  • d38650e fix: groups were not being maintained for nested commands (#1430)
  • 9a42b63 fix: async middleware was called twice (#1422)
  • 0be43d2 fix: fix promise check to accept any spec conform object (#1424)
  • afaf6d3 chore: Minor refactor (#1396)
  • 236e24e fix(docs): broken markdown link (#1426)
  • bae66fe fix: support merging deeply nested configuration (#1423)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of @types/jest is breaking the build 🚨

The devDependency @types/jest was updated from 24.0.18 to 24.0.19.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@types/jest is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: Your tests failed on CircleCI (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of eslint-config-universe is breaking the build 🚨

The devDependency eslint-config-universe was updated from 2.0.0 to 2.1.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

eslint-config-universe is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: Your tests failed on CircleCI (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Deprecated errors on install

I'm seeing errors on install and scan that look like node version issues but I've tried this with Node 6, Node 8, and Node 10, all with no success.

I installed Node via nvm which actually doesn't allow you to run sudo npm run scan. It initially gives an error saying sudo: npm: command not found and then I have to create a symlink for it to work.

This can't be caused by nvm can it? I'd prefer not to blow away nvm and install via apt-get.

Version details

Node version: v8.15.0
npm version: 6.4.1
nvm version: 0.34.0
OS: Linux raspberrypi 4.9.80+ #1098 Fri Mar 9 18:51:28 GMT 2018 armv6l GNU/Linux

Error messages

$ npm install --save dash-button

> [email protected] install /home/pi/dash-listener/node_modules/socketwatcher
> node-gyp rebuild

make: Entering directory '/home/pi/dash-listener/node_modules/socketwatcher/build'
  CXX(target) Release/obj.target/socketwatcher/socket_watcher.o
../socket_watcher.cpp: In static member function ‘static void SocketWatcher::Callback(uv_poll_t*, int, int)’:
../socket_watcher.cpp:77:60: warning: ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated [-Wdeprecated-declarations]
   Nan::MakeCallback(watcher->handle(), callback, argc, argv);
                                                            ^
In file included from ../socket_watcher.hpp:8:0,
                 from ../socket_watcher.cpp:5:
../../nan/nan.h:959:46: note: declared here
   NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
                                              ^~~~~~~~~~~~
../socket_watcher.cpp: In static member function ‘static void SocketWatcher::New(const Nan::FunctionCallbackInfo<v8::Value>&)’:
../socket_watcher.cpp:104:49: warning: ‘v8::Local<v8::Object> v8::Function::NewInstance() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     info.GetReturnValue().Set(cons->NewInstance());
                                                 ^
In file included from /home/pi/.node-gyp/8.15.0/include/node/v8.h:26:0,
                 from /home/pi/.node-gyp/8.15.0/include/node/node.h:63,
                 from ../../nan/nan.h:53,
                 from ../socket_watcher.hpp:8,
                 from ../socket_watcher.cpp:5:
/home/pi/.node-gyp/8.15.0/include/node/v8.h:3901:52: note: declared here
   V8_DEPRECATED("Use maybe version", Local<Object> NewInstance() const);
                                                    ^
/home/pi/.node-gyp/8.15.0/include/node/v8config.h:318:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
  SOLINK_MODULE(target) Release/obj.target/socketwatcher.node
  COPY Release/socketwatcher.node
make: Leaving directory '/home/pi/dash-listener/node_modules/socketwatcher/build'

> pcap@git+https://github.com/mranney/node_pcap.git#b4eb828fbfb3ad9a253351aa38cb41c203589712 install /home/pi/dash-listener/node_modules/pcap
> node-gyp rebuild

make: Entering directory '/home/pi/dash-listener/node_modules/pcap/build'
  CXX(target) Release/obj.target/pcap_binding/pcap_binding.o
  CXX(target) Release/obj.target/pcap_binding/pcap_session.o
../pcap_session.cc: In static member function ‘static void PcapSession::New(const Nan::FunctionCallbackInfo<v8::Value>&)’:
../pcap_session.cc:46:49: warning: ‘v8::Local<v8::Object> v8::Function::NewInstance() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     info.GetReturnValue().Set(cons->NewInstance());
                                                 ^
In file included from /home/pi/.node-gyp/8.15.0/include/node/v8.h:26:0,
                 from /home/pi/.node-gyp/8.15.0/include/node/node.h:63,
                 from ../../nan/nan.h:53,
                 from ../pcap_session.h:4,
                 from ../pcap_session.cc:7:
/home/pi/.node-gyp/8.15.0/include/node/v8.h:3901:52: note: declared here
   V8_DEPRECATED("Use maybe version", Local<Object> NewInstance() const);
                                                    ^
/home/pi/.node-gyp/8.15.0/include/node/v8config.h:318:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../pcap_session.cc: In static member function ‘static void PcapSession::PacketReady(u_char*, const pcap_pkthdr*, const u_char*)’:
../pcap_session.cc:85:102: warning: ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated [-Wdeprecated-declarations]
 Nan::GetCurrentContext()->Global(), Nan::New(session->packet_ready_cb), 0, NULL);
                                                                                ^
In file included from ../pcap_session.h:4:0,
                 from ../pcap_session.cc:7:
../../nan/nan.h:959:46: note: declared here
   NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
                                              ^~~~~~~~~~~~
  SOLINK_MODULE(target) Release/obj.target/pcap_binding.node
  COPY Release/pcap_binding.node
make: Leaving directory '/home/pi/dash-listener/node_modules/pcap/build'
npm WARN [email protected] No description
npm WARN [email protected] No repository field.

+ [email protected]
added 57 packages from 24 contributors and audited 66 packages in 147.145s
found 0 vulnerabilities

Running scan seems to give similar node version type of errors.

$ sudo npm run scan
/home/pi/.nvm/versions/node/v8.15.0/lib/node_modules/npm/bin/npm-cli.js:85
      let notifier = require('update-notifier')({pkg})
      ^^^

SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:373:25)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:140:18)
    at node.js:1043:3

An in-range update of @types/yargs is breaking the build 🚨

The devDependency @types/yargs was updated from 13.0.2 to 13.0.3.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@types/yargs is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: Your tests failed on CircleCI (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of @typescript-eslint/eslint-plugin is breaking the build 🚨

The devDependency @typescript-eslint/eslint-plugin was updated from 2.3.0 to 2.3.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@typescript-eslint/eslint-plugin is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: Your tests failed on CircleCI (Details).

Release Notes for v2.3.1

2.3.1 (2019-09-23)

Bug Fixes

  • eslint-plugin: [cons-type-assns] handle namespaced types (#975) (c3c8b86)
  • eslint-plugin: [pfa] Allow async getter/setter in classes (#980) (e348cb2)
  • typescript-estree: parsing error for await in non-async func (#988) (19abbe0)
Commits

The new version differs by 6 commits.

  • 6279c5b chore: publish v2.3.1
  • ca8ac79 docs(eslint-plugin): add missing ROADMAP link (#998)
  • dfb4fd6 docs(typescript-estree): correct typo (#995)
  • 19abbe0 fix(typescript-estree): parsing error for await in non-async func (#988)
  • c3c8b86 fix(eslint-plugin): [cons-type-assns] handle namespaced types (#975)
  • e348cb2 fix(eslint-plugin): [pfa] Allow async getter/setter in classes (#980)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of @typescript-eslint/parser is breaking the build 🚨

The devDependency @typescript-eslint/parser was updated from 2.3.0 to 2.3.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@typescript-eslint/parser is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: Your tests failed on CircleCI (Details).

Release Notes for v2.3.1

2.3.1 (2019-09-23)

Bug Fixes

  • eslint-plugin: [cons-type-assns] handle namespaced types (#975) (c3c8b86)
  • eslint-plugin: [pfa] Allow async getter/setter in classes (#980) (e348cb2)
  • typescript-estree: parsing error for await in non-async func (#988) (19abbe0)
Commits

The new version differs by 6 commits.

  • 6279c5b chore: publish v2.3.1
  • ca8ac79 docs(eslint-plugin): add missing ROADMAP link (#998)
  • dfb4fd6 docs(typescript-estree): correct typo (#995)
  • 19abbe0 fix(typescript-estree): parsing error for await in non-async func (#988)
  • c3c8b86 fix(eslint-plugin): [cons-type-assns] handle namespaced types (#975)
  • e348cb2 fix(eslint-plugin): [pfa] Allow async getter/setter in classes (#980)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of prettier is breaking the build 🚨

The devDependency prettier was updated from 1.14.2 to 1.14.3.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

prettier is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: Your tests failed on CircleCI (Details).

Release Notes for 1.14.3

🔗 Changelog

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of @types/node is breaking the build 🚨

The devDependency @types/node was updated from 12.7.5 to 12.7.6.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@types/node is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: Your tests failed on CircleCI (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of rimraf is breaking the build 🚨

The devDependency rimraf was updated from 2.6.2 to 2.6.3.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

rimraf is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: Your tests failed on CircleCI (Details).

Commits

The new version differs by 6 commits.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

New Amazon Dash buttons not detected

It appears that "new" model Dash buttons (they have finally been released in the UK, and I'm playing with one on the day of release) behave differently when connecting to the network than the previous models.

Rather than broadcasting an ARP request from 0.0.0.0, they instead broadcast a DHCP request from 0.0.0.0. They do then send out ARP requests for other network devices (e.g. the gateway), but these have the source IP set to the address allocated to the device.

The following patch to build/ArpProbes.js fixes this, and should properly handle both the new and old button varieties. Change:

const ARP_PROBE_FILTER = 'arp src host 0.0.0.0';

to

const ARP_PROBE_FILTER = '(arp or (udp and src port 68 and dst port 67)) and src host 0.0.0.0';

(I believe udp and src port 68 and dst port 67 is the most succinct way to filter DHCP request packets.)

An in-range update of babel7 is breaking the build 🚨

There have been updates to the babel7 monorepo:

    • The devDependency @babel/core was updated from 7.6.0 to 7.6.2.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

This monorepo update includes releases of one or more dependencies which all belong to the babel7 group definition.

babel7 is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: Your tests failed on CircleCI (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of eslint is breaking the build 🚨

The devDependency eslint was updated from 6.4.0 to 6.5.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

eslint is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: Your tests failed on CircleCI (Details).

Release Notes for v6.5.0
  • 73596cb Update: Add enforceForSwitchCase option to use-isnan (#12106) (Milos Djermanovic)
  • d592a24 Fix: exclude \u000d so new line won't convert to text (fixes #12027) (#12031) (zamboney)
  • e85d27a Fix: no-regex-spaces false positives and invalid autofix (fixes #12226) (#12231) (Milos Djermanovic)
  • b349bf7 Fix: prefer-named-capture-group incorrect locations (fixes #12233) (#12247) (Milos Djermanovic)
  • 7dc1ea9 Fix: no-useless-return autofix removes comments (#12292) (Milos Djermanovic)
  • 0e68677 Fix: no-extra-bind autofix removes comments (#12293) (Milos Djermanovic)
  • 6ad7e86 Fix: no-extra-label autofix removes comments (#12298) (Milos Djermanovic)
  • acec201 Fix: no-undef-init autofix removes comments (#12299) (Milos Djermanovic)
  • d89390b Fix: use async reading of stdin in bin/eslint.js (fixes #12212) (#12230) (Barrie Treloar)
  • 334ca7c Update: no-useless-rename also reports default values (fixes #12301) (#12322) (Kai Cataldo)
  • 41bfe91 Update: Fix handling of chained new expressions in new-parens (#12303) (Milos Djermanovic)
  • 160b7c4 Chore: add autofix npm script (#12330) (Kai Cataldo)
  • 04b6adb Chore: enable eslint-plugin-jsdoc (refs #11146) (#12332) (Kai Cataldo)
  • 9b86167 Docs: Add new ES environments to Configuring ESLint (#12289) (Milos Djermanovic)
  • c9aeab2 Docs: Add supported ECMAScript version to README (#12290) (Milos Djermanovic)
  • 8316e7b Fix: no-useless-rename autofix removes comments (#12300) (Milos Djermanovic)
  • 29c12f1 Chore: cache results in runtime-info (#12320) (Kai Cataldo)
  • f5537b2 Fix: prefer-numeric-literals autofix removes comments (#12313) (Milos Djermanovic)
  • 11ae6fc Update: Fix call, new and member expressions in no-extra-parens (#12302) (Milos Djermanovic)
  • a7894eb New: add --env-info flag to CLI (#12270) (Kai Cataldo)
  • 61392ff Sponsors: Sync README with website (ESLint Jenkins)
  • 2c6bf8e Docs: English fix (#12306) (Daniel Nixon)
  • 6f11877 Sponsors: Sync README with website (ESLint Jenkins)
  • 2e202ca Docs: fix links in array-callback-return (#12288) (Milos Djermanovic)
  • e39c631 Docs: add example for CLIEngine#executeOnText 3rd arg (#12286) (Kai Cataldo)
  • d4f9a16 Update: add support for JSXFragments in indent rule (fixes #12208) (#12210) (Kai Cataldo)
  • c6af95f Sponsors: Sync README with website (ESLint Jenkins)
  • 8cadd52 Sponsors: Sync README with website (ESLint Jenkins)
  • f9fc695 Chore: enable default-param-last (#12244) (薛定谔的猫)
  • 9984c3e Docs: Update README team and sponsors (ESLint Jenkins)
Commits

The new version differs by 32 commits.

  • 76fb571 6.5.0
  • 7359a80 Build: changelog update for 6.5.0
  • 73596cb Update: Add enforceForSwitchCase option to use-isnan (#12106)
  • d592a24 Fix: exclude \u000d so new line won't convert to text (fixes #12027) (#12031)
  • e85d27a Fix: no-regex-spaces false positives and invalid autofix (fixes #12226) (#12231)
  • b349bf7 Fix: prefer-named-capture-group incorrect locations (fixes #12233) (#12247)
  • 7dc1ea9 Fix: no-useless-return autofix removes comments (#12292)
  • 0e68677 Fix: no-extra-bind autofix removes comments (#12293)
  • 6ad7e86 Fix: no-extra-label autofix removes comments (#12298)
  • acec201 Fix: no-undef-init autofix removes comments (#12299)
  • d89390b Fix: use async reading of stdin in bin/eslint.js (fixes #12212) (#12230)
  • 334ca7c Update: no-useless-rename also reports default values (fixes #12301) (#12322)
  • 41bfe91 Update: Fix handling of chained new expressions in new-parens (#12303)
  • 160b7c4 Chore: add autofix npm script (#12330)
  • 04b6adb Chore: enable eslint-plugin-jsdoc (refs #11146) (#12332)

There are 32 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.