commit 748970fa0eb36b15869f112083540be0cb5e68e1 Author: Alexander Yakovlev Date: Wed Sep 20 18:49:45 2017 +0700 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..13d03a2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules +lib +npm-debug.log diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..0a7aab6 --- /dev/null +++ b/.npmignore @@ -0,0 +1,7 @@ +node_modules +src +npm-debug.log +lib/index.js +lib/index.coffee +test +Cakefile diff --git a/Cakefile b/Cakefile new file mode 100644 index 0000000..d3f3361 --- /dev/null +++ b/Cakefile @@ -0,0 +1,46 @@ +fs = require 'fs' +{exec,spawn} = require 'child_process' +util = require 'util' +glob = require 'glob' + +sources = [ + 'gamepad.coffee' + 'init.coffee' +] +sourcestring = "" +for source in sources + sourcestring += 'src/'+source+' ' + +task 'watch', 'Watch source files and build changes', -> + watch = spawn "node_modules/coffeescript/bin/coffee", ['-c', '-w', '-m', '--no-header', '-j', 'lib/index.js', sourcestring] + watch.stdout.on 'data', (data) -> console.log data.toString().trim() + +task 'compile', 'Compile all CoffeeScript files', -> + # prepare lib directory + if not fs.existsSync 'lib' + fs.mkdirSync 'lib' + + files = glob.sync('src/mappings/*.json') + mappings = [] + for file in files + data = JSON.parse(fs.readFileSync(file)) + mappings.push data + fs.writeFileSync('lib/mappings.json', JSON.stringify(mappings)) + + # run coffee-script compile + exec "cat #{sourcestring} > lib/index.coffee" + exec "node_modules/coffeescript/bin/coffee --compile --map --no-header lib/index.coffee", (err, stdout, stderr) -> + if err + util.log err + process.exit 1 # abort npm packaging + fs.unlink("lib/index.coffee", () -> ) + util.log "Compiled CoffeeScript." + +task 'build', 'Compile and minify all CoffeeScript files', -> + invoke 'compile' + exec 'closure-compiler --compilation_level ECMASCRIPT5 --compilation_level SIMPLE --create_source_map=lib/index.min.js.map --js_output_file lib/index.min.js lib/index.js', (err) -> + if err + util.log err + process.exit 1 # abort npm packaging + fs.appendFileSync('lib/index.min.js', "\n//# sourceMappingURL=index.min.js.map") + util.log "Minified JavaScript." diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..cba98b7 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,20 @@ +Copyright (c) 2017 Alexander Yakovlev, https://oreolek.ru/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..be77b59 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# Gamepad support for Salet 2 + +Requires [Salet](https://gitlab.com/Oreolek/salet-module) 2+ + +Uses code from the [`html-gamepad`](https://github.com/ericlathrop/html5-gamepad/blob/master/LICENSE) library in accordance to MIT License. + +Copyright 2017 Alexander Yakovlev. + +`html-gamepad` code copyright 2016 Eric Lathrop, with contributions from Rex Soriano. diff --git a/package.json b/package.json new file mode 100644 index 0000000..b0264e2 --- /dev/null +++ b/package.json @@ -0,0 +1,34 @@ +{ + "name": "salet-gamepad", + "version": "1.0.0", + "description": "A gamepad module for Salet 2.", + "keywords": [ + "ifiction", + "interactive fiction", + "games", + "coffeescript", + "gamepad" + ], + "homepage": "https://salet.su", + "bugs": { + "url": "https://gitlab.com/oreolek/salet-gamepad-module/issues" + }, + "license": "MIT", + "dependencies": { + "glob": "^7.1.2" + }, + "private": false, + "author": { + "name": "Alexander Yakovlev", + "email": "keloero@oreolek.ru", + "url": "https://oreolek.ru" + }, + "devDependencies": { + "coffeescript": "^2.0.0" + }, + "main": "lib/index.min.js", + "repository": { + "type": "git", + "url": "https://gitlab.com/oreolek/salet-gamepad-module" + } +} diff --git a/src/gamepad.coffee b/src/gamepad.coffee new file mode 100644 index 0000000..29e294a --- /dev/null +++ b/src/gamepad.coffee @@ -0,0 +1,40 @@ +# Gamepad HTML5 API +class Gamepad + constructor: (pad) -> + @gamepad = pad + @map = @detectMapping(pad.id, navigator.userAgent) + detectMapping: (id, browser) -> + for map in salet.view.gamepadmappings + for device in map.supported + if id.indexOf(device.id) != -1 and browser.indexOf(device.browser) != -1 + return map + # mapping not found, return the first map for this browser + for device in map.supported + if browser.indexOf(device.browser) != -1 + return map + # browser and device are not supported, just return the first map + console.warn "Browser and device are not found, gamepad support not guaranteed." + return salet.view.gamepadmappings[0] + axis: (name) -> + map = @map.axes[name] + unless map? + return 0 + if map.index? + return @gamepad.axes[map.index] + if map.buttonPositive? and @gamepad.buttons[map.buttonPositive].pressed + return 1 + if map.buttonNegative? and @gamepad.buttons[map.buttonNegative].pressed + return -1 + return 0 + button: (name) -> + map = @map.buttons[name] + unless map? + return 0 + if map.index? + return @gamepad.buttons[map.index].pressed + if map.axis? + if map.direction < 0 + return @gamepad.axes[map.axis] < -0.75 + else + return @gamepad.axes[map.axis] > 0.75 + return false diff --git a/src/init.coffee b/src/init.coffee new file mode 100644 index 0000000..73f2055 --- /dev/null +++ b/src/init.coffee @@ -0,0 +1,19 @@ +$(document).on("viewinit", () -> + # An array containing the connected gamepads (see Gamepad class) + salet.view.gamepads = [] + jQuery.ajax({ + dataType: 'json', + url: 'mappings.json', + success: (data) -> + salet.view.gamepadmappings = data + window.addEventListener("gamepadconnected", (e) -> + salet.view.gamepads[e.gamepad.index] = new Gamepad(e.gamepad) + ) + window.addEventListener("gamepaddisconnected", (e) -> + salet.view.gamepads[e.gamepad.index] = undefined + ) + if (typeof navigator.getGamepads == "function") + for pad in navigator.getGamepads() + salet.view.gamepads[pad.index] = new Gamepad(pad) + }) +) diff --git a/src/mappings/logitechf310-directinput-chrome-ff-linux.json b/src/mappings/logitechf310-directinput-chrome-ff-linux.json new file mode 100644 index 0000000..e4e77e9 --- /dev/null +++ b/src/mappings/logitechf310-directinput-chrome-ff-linux.json @@ -0,0 +1,121 @@ +{ + "axes": { + "dpad x": { + "index": 4 + }, + "dpad y": { + "index": 5 + }, + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "right stick x": { + "index": 2 + }, + "right stick y": { + "index": 3 + } + }, + "buttons": { + "a": { + "index": 1 + }, + "b": { + "index": 2 + }, + "back": { + "index": 8 + }, + "dpad down": { + "axis": 5, + "direction": 1 + }, + "dpad left": { + "axis": 4, + "direction": -1 + }, + "dpad right": { + "axis": 4, + "direction": 1 + }, + "dpad up": { + "axis": 5, + "direction": -1 + }, + "left shoulder": { + "index": 4 + }, + "left stick": { + "index": 10 + }, + "left stick down": { + "axis": 1, + "direction": 1 + }, + "left stick left": { + "axis": 0, + "direction": -1 + }, + "left stick right": { + "axis": 0, + "direction": 1 + }, + "left stick up": { + "axis": 1, + "direction": -1 + }, + "left trigger": { + "index": 6 + }, + "right shoulder": { + "index": 5 + }, + "right stick": { + "index": 11 + }, + "right stick down": { + "axis": 3, + "direction": 1 + }, + "right stick left": { + "axis": 2, + "direction": -1 + }, + "right stick right": { + "axis": 2, + "direction": 1 + }, + "right stick up": { + "axis": 3, + "direction": -1 + }, + "right trigger": { + "index": 7 + }, + "start": { + "index": 9 + }, + "x": { + "index": 0 + }, + "y": { + "index": 3 + } + }, + "name": "Logitech F310 (DirectInput) Chrome/Firefox Linux", + "supported": [ + { + "browser": "Chrome", + "id": "Logitech Logitech Dual Action (Vendor: 046d Product: c216)", + "os": "Linux" + }, + { + "browser": "Firefox", + "id": "046d-c216-Logitech Logitech Dual Action", + "os": "Linux" + } + ] +} diff --git a/src/mappings/logitechf310-directinput-chrome-windows-osx.json b/src/mappings/logitechf310-directinput-chrome-windows-osx.json new file mode 100644 index 0000000..e69a2f6 --- /dev/null +++ b/src/mappings/logitechf310-directinput-chrome-windows-osx.json @@ -0,0 +1,120 @@ +{ + "axes": { + "dpad x": { + "index": 6 + }, + "dpad y": { + "index": 7 + }, + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "right stick x": { + "index": 2 + }, + "right stick y": { + "index": 3 + }, + "right trigger": { + "index": 5 + } + }, + "buttons": { + "a": { + "index": 0 + }, + "b": { + "index": 1 + }, + "back": { + "index": 8 + }, + "dpad down": { + "index": 13 + }, + "dpad left": { + "index": 14 + }, + "dpad right": { + "index": 15 + }, + "dpad up": { + "index": 12 + }, + "left shoulder": { + "index": 4 + }, + "left stick": { + "index": 10 + }, + "left stick down": { + "axis": 1, + "direction": 1 + }, + "left stick left": { + "axis": 0, + "direction": -1 + }, + "left stick right": { + "axis": 0, + "direction": 1 + }, + "left stick up": { + "axis": 1, + "direction": -1 + }, + "left trigger": { + "index": 6 + }, + "right shoulder": { + "index": 5 + }, + "right stick": { + "index": 11 + }, + "right stick down": { + "axis": 3, + "direction": 1 + }, + "right stick left": { + "axis": 2, + "direction": -1 + }, + "right stick right": { + "axis": 2, + "direction": 1 + }, + "right stick up": { + "axis": 3, + "direction": -1 + }, + "right trigger": { + "index": 7 + }, + "start": { + "index": 9 + }, + "x": { + "index": 2 + }, + "y": { + "index": 3 + } + }, + "name": "Logitech F310 (DirectInput) Chrome Windows/OSX", + "supported": [ + { + "browser": "Chrome", + "id": "Logitech Dual Action (STANDARD GAMEPAD Vendor: 046d Product: c216)", + "os": "Mac OS X" + }, + { + "browser": "Chrome", + "id": "Logitech Dual Action (STANDARD GAMEPAD Vendor: 046d Product: c216)", + "os": "Windows NT" + } + ] +} diff --git a/src/mappings/logitechf310-directinput-ff-osx.json b/src/mappings/logitechf310-directinput-ff-osx.json new file mode 100644 index 0000000..b4b0774 --- /dev/null +++ b/src/mappings/logitechf310-directinput-ff-osx.json @@ -0,0 +1,114 @@ +{ + "axes": { + "dpad x": { + "index": 6 + }, + "dpad y": { + "index": 7 + }, + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "left trigger": { + "index": 2 + }, + "right stick x": { + "index": 3 + }, + "right stick y": { + "index": 4 + }, + "right trigger": { + "index": 5 + } + }, + "buttons": { + "a": { + "index": 1 + }, + "b": { + "index": 2 + }, + "back": { + "index": 8 + }, + "dpad down": { + "index": 13 + }, + "dpad left": { + "index": 14 + }, + "dpad right": { + "index": 15 + }, + "dpad up": { + "index": 12 + }, + "left shoulder": { + "index": 4 + }, + "left stick": { + "index": 10 + }, + "left stick down": { + "axis": 2, + "direction": 1 + }, + "left stick left": { + "axis": 1, + "direction": -1 + }, + "left stick right": { + "axis": 1, + "direction": 1 + }, + "left stick up": { + "axis": 2, + "direction": -1 + }, + "left trigger": { + "index": 6 + }, + "right shoulder": { + "index": 5 + }, + "right stick": { + "index": 11 + }, + "right stick down": { + "axis": 4, + "direction": 1 + }, + "right stick left": { + "axis": 3, + "direction": -1 + }, + "right stick up": { + "axis": 4, + "direction": -1 + }, + "right trigger": { + "index": 7 + }, + "start": { + "index": 9 + }, + "x": { + "index": 0 + }, + "y": { + "index": 3 + } + }, + "name": "Logitech F310 (DirectInput) Firefox OSX", + "supported": [ + { + "browser": "Firefox", + "id": "46d-c216-Logitech Dual Action", + "os": "Mac OS X" + } + ] +} diff --git a/src/mappings/logitechf310-directinput-ff-windows.json b/src/mappings/logitechf310-directinput-ff-windows.json new file mode 100644 index 0000000..c5b1e2d --- /dev/null +++ b/src/mappings/logitechf310-directinput-ff-windows.json @@ -0,0 +1,115 @@ +{ + "axes": { + "dpad x": { + "index": 6 + }, + "dpad y": { + "index": 7 + }, + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "right stick x": { + "index": 2 + }, + "right stick y": { + "index": 3 + }, + "right trigger": { + "index": 5 + } + }, + "buttons": { + "a": { + "index": 1 + }, + "b": { + "index": 2 + }, + "back": { + "index": 8 + }, + "dpad down": { + "index": 14 + }, + "dpad left": { + "index": 15 + }, + "dpad right": { + "index": 16 + }, + "dpad up": { + "index": 13 + }, + "left shoulder": { + "index": 4 + }, + "left stick": { + "index": 10 + }, + "left stick down": { + "axis": 1, + "direction": 1 + }, + "left stick left": { + "axis": 0, + "direction": -1 + }, + "left stick right": { + "axis": 0, + "direction": 1 + }, + "left stick up": { + "axis": 1, + "direction": -1 + }, + "left trigger": { + "index": 6 + }, + "right shoulder": { + "index": 5 + }, + "right stick": { + "index": 11 + }, + "right stick down": { + "axis": 3, + "direction": 1 + }, + "right stick left": { + "axis": 2, + "direction": -1 + }, + "right stick right": { + "axis": 2, + "direction": 1 + }, + "right stick up": { + "axis": 3, + "direction": -1 + }, + "right trigger": { + "index": 7 + }, + "start": { + "index": 9 + }, + "x": { + "index": 0 + }, + "y": { + "index": 3 + } + }, + "name": "Logitech F310 (DirectInput) Firefox Windows", + "supported": [ + { + "browser": "Firefox", + "id": "046d-c216-Logitech Dual Action", + "os": "Windows NT" + } + ] +} diff --git a/src/mappings/logitechf310-xinput-chrome-linux.json b/src/mappings/logitechf310-xinput-chrome-linux.json new file mode 100644 index 0000000..ee91526 --- /dev/null +++ b/src/mappings/logitechf310-xinput-chrome-linux.json @@ -0,0 +1,118 @@ +{ + "axes": { + "dpad x": { + "index": 6 + }, + "dpad y": { + "index": 7 + }, + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "right stick x": { + "index": 2 + }, + "right stick y": { + "index": 3 + }, + "right trigger": { + "index": 5 + } + }, + "buttons": { + "a": { + "index": 0 + }, + "b": { + "index": 1 + }, + "back": { + "index": 8 + }, + "dpad down": { + "index": 13 + }, + "dpad left": { + "index": 14 + }, + "dpad right": { + "index": 15 + }, + "dpad up": { + "index": 12 + }, + "home": { + "index": 16 + }, + "left shoulder": { + "index": 4 + }, + "left stick": { + "index": 10 + }, + "left stick down": { + "axis": 1, + "direction": 1 + }, + "left stick left": { + "axis": 0, + "direction": -1 + }, + "left stick right": { + "axis": 0, + "direction": 1 + }, + "left stick up": { + "axis": 1, + "direction": -1 + }, + "left trigger": { + "index": 6 + }, + "right shoulder": { + "index": 5 + }, + "right stick": { + "index": 11 + }, + "right stick down": { + "axis": 3, + "direction": 1 + }, + "right stick left": { + "axis": 2, + "direction": -1 + }, + "right stick right": { + "axis": 2, + "direction": 1 + }, + "right stick up": { + "axis": 3, + "direction": -1 + }, + "right trigger": { + "index": 7 + }, + "start": { + "index": 9 + }, + "x": { + "index": 2 + }, + "y": { + "index": 3 + } + }, + "name": "Logitech F310 (XInput) Chrome Linux", + "supported": [ + { + "browser": "Chrome", + "id": "Logitech Gamepad F310 (STANDARD GAMEPAD Vendor: 046d Product: c21d)", + "os": "Linux" + } + ] +} diff --git a/src/mappings/logitechf310-xinput-ff-linux.json b/src/mappings/logitechf310-xinput-ff-linux.json new file mode 100644 index 0000000..e13a521 --- /dev/null +++ b/src/mappings/logitechf310-xinput-ff-linux.json @@ -0,0 +1,127 @@ +{ + "axes": { + "dpad x": { + "index": 6 + }, + "dpad y": { + "index": 7 + }, + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "left trigger": { + "index": 2 + }, + "right stick x": { + "index": 3 + }, + "right stick y": { + "index": 4 + }, + "right trigger": { + "index": 5 + } + }, + "buttons": { + "a": { + "index": 0 + }, + "b": { + "index": 1 + }, + "back": { + "index": 6 + }, + "dpad down": { + "axis": 7, + "direction": 1 + }, + "dpad left": { + "axis": 6, + "direction": -1 + }, + "dpad right": { + "axis": 6, + "direction": 1 + }, + "dpad up": { + "axis": 7, + "direction": -1 + }, + "home": { + "index": 8 + }, + "left shoulder": { + "index": 4 + }, + "left stick": { + "index": 9 + }, + "left stick down": { + "axis": 1, + "direction": 1 + }, + "left stick left": { + "axis": 0, + "direction": -1 + }, + "left stick right": { + "axis": 0, + "direction": 1 + }, + "left stick up": { + "axis": 1, + "direction": -1 + }, + "left trigger": { + "axis": 2, + "direction": 1 + }, + "right shoulder": { + "index": 5 + }, + "right stick": { + "index": 10 + }, + "right stick down": { + "axis": 4, + "direction": 1 + }, + "right stick left": { + "axis": 3, + "direction": -1 + }, + "right stick right": { + "axis": 3, + "direction": 1 + }, + "right stick up": { + "axis": 4, + "direction": -1 + }, + "right trigger": { + "axis": 5, + "direction": 1 + }, + "start": { + "index": 7 + }, + "x": { + "index": 2 + }, + "y": { + "index": 3 + } + }, + "name": "Logitech F310 (XInput) Firefox Linux", + "supported": [ + { + "browser": "Firefox", + "id": "046d-c21d-Logitech Gamepad F310", + "os": "Linux" + } + ] +} diff --git a/src/mappings/ps3-chrome-osx-linux.json b/src/mappings/ps3-chrome-osx-linux.json new file mode 100644 index 0000000..0584a73 --- /dev/null +++ b/src/mappings/ps3-chrome-osx-linux.json @@ -0,0 +1,123 @@ +{ + "axes": { + "dpad x": { + "index": 6 + }, + "dpad y": { + "index": 7 + }, + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "right stick x": { + "index": 2 + }, + "right stick y": { + "index": 3 + }, + "right trigger": { + "index": 5 + } + }, + "buttons": { + "a": { + "index": 0 + }, + "b": { + "index": 1 + }, + "back": { + "index": 8 + }, + "dpad down": { + "index": 13 + }, + "dpad left": { + "index": 14 + }, + "dpad right": { + "index": 15 + }, + "dpad up": { + "index": 12 + }, + "home": { + "index": 16 + }, + "left shoulder": { + "index": 4 + }, + "left stick": { + "index": 10 + }, + "left stick down": { + "axis": 1, + "direction": 1 + }, + "left stick left": { + "axis": 0, + "direction": -1 + }, + "left stick right": { + "axis": 0, + "direction": 1 + }, + "left stick up": { + "axis": 1, + "direction": -1 + }, + "left trigger": { + "index": 6 + }, + "right shoulder": { + "index": 5 + }, + "right stick": { + "index": 11 + }, + "right stick down": { + "axis": 3, + "direction": 1 + }, + "right stick left": { + "axis": 2, + "direction": -1 + }, + "right stick right": { + "axis": 2, + "direction": 1 + }, + "right stick up": { + "axis": 3, + "direction": -1 + }, + "right trigger": { + "index": 7 + }, + "start": { + "index": 9 + }, + "x": { + "index": 2 + }, + "y": { + "index": 3 + } + }, + "name": "PLAYSTATION(R)3 Controller (STANDARD GAMEPAD Vendor: 054c Product: 0268) Chrome OSX Linux", + "supported": [ + { + "browser": "Chrome", + "id": "PLAYSTATION(R)3 Controller (STANDARD GAMEPAD Vendor: 054c Product: 0268)", + "os": "Mac OS X" + }, + { + "browser": "Chrome", + "id": "Sony PLAYSTATION(R)3 Controller (STANDARD GAMEPAD Vendor: 054c Product: 0268)", + "os": "Linux" + } + ] +} diff --git a/src/mappings/ps3-ff-linux.json b/src/mappings/ps3-ff-linux.json new file mode 100644 index 0000000..00d321f --- /dev/null +++ b/src/mappings/ps3-ff-linux.json @@ -0,0 +1,121 @@ +{ + "axes": { + "dpad x": { + "index": 6 + }, + "dpad y": { + "index": 7 + }, + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "left trigger": { + "index": 12 + }, + "right stick x": { + "index": 2 + }, + "right stick y": { + "index": 3 + }, + "right trigger": { + "index": 13 + } + }, + "buttons": { + "a": { + "index": 14 + }, + "b": { + "index": 13 + }, + "back": { + "index": 0 + }, + "dpad down": { + "index": 6 + }, + "dpad left": { + "index": 7 + }, + "dpad right": { + "index": 5 + }, + "dpad up": { + "index": 4 + }, + "home": { + "index": 16 + }, + "left stick": { + "index": 1 + }, + "left shoulder": { + "index": 10 + }, + "left stick down": { + "axis": 1, + "direction": 1 + }, + "left stick left": { + "axis": 0, + "direction": -1 + }, + "left stick right": { + "axis": 0, + "direction": 1 + }, + "left stick up": { + "axis": 1, + "direction": -1 + }, + "left trigger": { + "index": 8 + }, + "right stick": { + "index": 2 + }, + "right stick down": { + "axis": 3, + "direction": 1 + }, + "right stick left": { + "axis": 2, + "direction": -1 + }, + "right stick right": { + "axis": 2, + "direction": 1 + }, + "right stick up": { + "axis": 3, + "direction": -1 + }, + "right trigger": { + "index": 9 + }, + "right shoulder": { + "index": 11 + }, + "start": { + "index": 3 + }, + "x": { + "index": 15 + }, + "y": { + "index": 12 + } + }, + "name": "054c-0268-Sony PLAYSTATION(R)3 Controller Firefox Linux", + "supported": [ + { + "browser": "Firefox", + "id": "054c-0268-Sony PLAYSTATION(R)3 Controller", + "os": "Linux" + } + ] +} diff --git a/src/mappings/ps4-chrome-linux.json b/src/mappings/ps4-chrome-linux.json new file mode 100644 index 0000000..f5fd3b5 --- /dev/null +++ b/src/mappings/ps4-chrome-linux.json @@ -0,0 +1,123 @@ +{ + "axes": { + "dpad x": { + "buttonPositive": 15, + "buttonNegative": 14 + }, + "dpad y": { + "buttonPositive": 13, + "buttonNegative": 12 + }, + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "left trigger": { + "buttonPositive": 6 + }, + "right stick x": { + "index": 2 + }, + "right stick y": { + "index": 3 + }, + "right trigger": { + "buttonPositive": 7 + } + }, + "buttons": { + "a": { + "index": 0 + }, + "b": { + "index": 1 + }, + "back": { + "index": 8 + }, + "dpad down": { + "index": 13 + }, + "dpad left": { + "index": 14 + }, + "dpad right": { + "index": 15 + }, + "dpad up": { + "index": 12 + }, + "home": { + "index": 16 + }, + "left shoulder": { + "index": 4 + }, + "left stick": { + "index": 10 + }, + "left stick down": { + "axis": 1, + "direction": 1 + }, + "left stick left": { + "axis": 0, + "direction": -1 + }, + "left stick right": { + "axis": 0, + "direction": 1 + }, + "left stick up": { + "axis": 1, + "direction": -1 + }, + "left trigger": { + "index": 6 + }, + "right shoulder": { + "index": 5 + }, + "right stick": { + "index": 11 + }, + "right stick down": { + "axis": 3, + "direction": 1 + }, + "right stick left": { + "axis": 2, + "direction": -1 + }, + "right stick right": { + "axis": 2, + "direction": 1 + }, + "right stick up": { + "axis": 3, + "direction": -1 + }, + "right trigger": { + "index": 7 + }, + "start": { + "index": 9 + }, + "x": { + "index": 2 + }, + "y": { + "index": 3 + } + }, + "name": "PS4 Chrome Linux", + "supported": [ + { + "browser": "Chrome", + "id": "Sony Computer Entertainment Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 05c4)", + "os": "Linux" + } + ] +} diff --git a/src/mappings/ps4-chrome-windows-osx.json b/src/mappings/ps4-chrome-windows-osx.json new file mode 100644 index 0000000..08d22ee --- /dev/null +++ b/src/mappings/ps4-chrome-windows-osx.json @@ -0,0 +1,123 @@ +{ + "axes": { + "dpad x": { + "index": 6 + }, + "dpad y": { + "index": 7 + }, + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "right stick x": { + "index": 2 + }, + "right stick y": { + "index": 3 + }, + "right trigger": { + "index": 5 + } + }, + "buttons": { + "a": { + "index": 0 + }, + "b": { + "index": 1 + }, + "back": { + "index": 8 + }, + "dpad down": { + "index": 13 + }, + "dpad left": { + "index": 14 + }, + "dpad right": { + "index": 15 + }, + "dpad up": { + "index": 12 + }, + "home": { + "index": 16 + }, + "left shoulder": { + "index": 4 + }, + "left stick": { + "index": 10 + }, + "left stick down": { + "axis": 1, + "direction": 1 + }, + "left stick left": { + "axis": 0, + "direction": -1 + }, + "left stick right": { + "axis": 0, + "direction": 1 + }, + "left stick up": { + "axis": 1, + "direction": -1 + }, + "left trigger": { + "index": 6 + }, + "right shoulder": { + "index": 5 + }, + "right stick": { + "index": 11 + }, + "right stick down": { + "axis": 3, + "direction": 1 + }, + "right stick left": { + "axis": 2, + "direction": -1 + }, + "right stick right": { + "axis": 2, + "direction": 1 + }, + "right stick up": { + "axis": 3, + "direction": -1 + }, + "right trigger": { + "index": 7 + }, + "start": { + "index": 9 + }, + "x": { + "index": 2 + }, + "y": { + "index": 3 + } + }, + "name": "PS4 Chrome Windows/OSX", + "supported": [ + { + "browser": "Chrome", + "id": "Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 05c4)", + "os": "Windows NT" + }, + { + "browser": "Chrome", + "id": "Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 05c4)", + "os": "Mac OS X" + } + ] +} diff --git a/src/mappings/ps4-ff-linux.json b/src/mappings/ps4-ff-linux.json new file mode 100644 index 0000000..f6c1b4d --- /dev/null +++ b/src/mappings/ps4-ff-linux.json @@ -0,0 +1,125 @@ +{ + "axes": { + "dpad x": { + "index": 6 + }, + "dpad y": { + "index": 7 + }, + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "left trigger": { + "index": 3 + }, + "right stick x": { + "index": 2 + }, + "right stick y": { + "index": 5 + }, + "right trigger": { + "index": 4 + } + }, + "buttons": { + "a": { + "index": 1 + }, + "b": { + "index": 2 + }, + "back": { + "index": 8 + }, + "dpad down": { + "axis": 7, + "direction": 1 + }, + "dpad left": { + "axis": 6, + "direction": -1 + }, + "dpad right": { + "axis": 6, + "direction": 1 + }, + "dpad up": { + "axis": 7, + "direction": -1 + }, + "home": { + "index": 12 + }, + "left shoulder": { + "index": 4 + }, + "left stick": { + "index": 10 + }, + "left stick down": { + "axis": 1, + "direction": 1 + }, + "left stick left": { + "axis": 0, + "direction": -1 + }, + "left stick right": { + "axis": 0, + "direction": 1 + }, + "left stick up": { + "axis": 1, + "direction": -1 + }, + "left trigger": { + "index": 6 + }, + "right shoulder": { + "index": 5 + }, + "right stick": { + "index": 11 + }, + "right stick down": { + "axis": 5, + "direction": 1 + }, + "right stick left": { + "axis": 2, + "direction": -1 + }, + "right stick right": { + "axis": 2, + "direction": 1 + }, + "right stick up": { + "axis": 5, + "direction": -1 + }, + "right trigger": { + "index": 7 + }, + "start": { + "index": 9 + }, + "x": { + "index": 0 + }, + "y": { + "index": 3 + } + }, + "name": "PS4 Firefox Linux", + "supported": [ + { + "browser": "Firefox", + "id": "054c-05c4-Sony Computer Entertainment Wireless Controller", + "os": "Linux" + } + ] +} diff --git a/src/mappings/ps4-ff-osx.json b/src/mappings/ps4-ff-osx.json new file mode 100644 index 0000000..60fc869 --- /dev/null +++ b/src/mappings/ps4-ff-osx.json @@ -0,0 +1,115 @@ +{ + "axes": { + "dpad x": { + "index": 6 + }, + "dpad y": { + "index": 7 + }, + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "right stick x": { + "index": 2 + }, + "right stick y": { + "index": 5 + } + }, + "buttons": { + "a": { + "index": 0 + }, + "b": { + "index": 1 + }, + "back": { + "index": 8 + }, + "dpad down": { + "index": 15 + }, + "dpad left": { + "index": 16 + }, + "dpad right": { + "index": 17 + }, + "dpad up": { + "index": 14 + }, + "home": { + "index": 12 + }, + "left shoulder": { + "index": 4 + }, + "left stick": { + "index": 10 + }, + "left stick down": { + "axis": 1, + "direction": 1 + }, + "left stick left": { + "axis": 0, + "direction": -1 + }, + "left stick right": { + "axis": 0, + "direction": 1 + }, + "left stick up": { + "axis": 1, + "direction": -1 + }, + "left trigger": { + "index": 6 + }, + "right shoulder": { + "index": 5 + }, + "right stick": { + "index": 11 + }, + "right stick down": { + "axis": 5, + "direction": 1 + }, + "right stick left": { + "axis": 2, + "direction": -1 + }, + "right stick right": { + "axis": 2, + "direction": 1 + }, + "right stick up": { + "axis": 5, + "direction": -1 + }, + "right trigger": { + "index": 7 + }, + "start": { + "index": 9 + }, + "x": { + "index": 2 + }, + "y": { + "index": 3 + } + }, + "name": "PS4 Firefox OSX", + "supported": [ + { + "browser": "Firefox", + "id": "54c-5c4-Wireless Controller", + "os": "Mac OS X" + } + ] +} diff --git a/src/mappings/xbone-chrome-linux.json b/src/mappings/xbone-chrome-linux.json new file mode 100644 index 0000000..b59a7c7 --- /dev/null +++ b/src/mappings/xbone-chrome-linux.json @@ -0,0 +1,127 @@ +{ + "axes": { + "dpad x": { + "index": 6 + }, + "dpad y": { + "index": 7 + }, + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "left trigger": { + "index": 2 + }, + "right stick x": { + "index": 3 + }, + "right stick y": { + "index": 4 + }, + "right trigger": { + "index": 5 + } + }, + "buttons": { + "a": { + "index": 0 + }, + "b": { + "index": 1 + }, + "back": { + "index": 6 + }, + "dpad down": { + "axis": 7, + "direction": 1 + }, + "dpad left": { + "axis": 6, + "direction": -1 + }, + "dpad right": { + "axis": 6, + "direction": 1 + }, + "dpad up": { + "axis": 7, + "direction": -1 + }, + "home": { + "index": 8 + }, + "left shoulder": { + "index": 4 + }, + "left stick": { + "index": 9 + }, + "left stick down": { + "axis": 1, + "direction": 1 + }, + "left stick left": { + "axis": 0, + "direction": -1 + }, + "left stick right": { + "axis": 0, + "direction": 1 + }, + "left stick up": { + "axis": 1, + "direction": -1 + }, + "left trigger": { + "axis": 2, + "direction": 1 + }, + "right shoulder": { + "index": 5 + }, + "right stick": { + "index": 10 + }, + "right stick down": { + "axis": 4, + "direction": 1 + }, + "right stick left": { + "axis": 3, + "direction": -1 + }, + "right stick right": { + "axis": 3, + "direction": 1 + }, + "right stick up": { + "axis": 4, + "direction": -1 + }, + "right trigger": { + "axis": 5, + "direction": 1 + }, + "start": { + "index": 7 + }, + "x": { + "index": 2 + }, + "y": { + "index": 3 + } + }, + "name": "XBone Chrome Linux", + "supported": [ + { + "browser": "Chrome", + "id": "Microsoft Controller (Vendor: 045e Product: 02d1)", + "os": "Linux" + } + ] +} diff --git a/src/mappings/xbone-chrome-osx-linux.json b/src/mappings/xbone-chrome-osx-linux.json new file mode 100644 index 0000000..645d685 --- /dev/null +++ b/src/mappings/xbone-chrome-osx-linux.json @@ -0,0 +1,114 @@ +{ + "axes": { + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "right stick x": { + "index": 2 + }, + "right stick y": { + "index": 3 + } + }, + "buttons": { + "a": { + "index": 0 + }, + "b": { + "index": 1 + }, + "back": { + "index": 8 + }, + "dpad down": { + "index": 13 + }, + "dpad left": { + "index": 14 + }, + "dpad right": { + "index": 15 + }, + "dpad up": { + "index": 12 + }, + "home": { + "index": 16 + }, + "left shoulder": { + "index": 4 + }, + "left stick": { + "index": 10 + }, + "left stick down": { + "axis": 1, + "direction": 1 + }, + "left stick left": { + "axis": 0, + "direction": -1 + }, + "left stick right": { + "axis": 0, + "direction": 1 + }, + "left stick up": { + "axis": 1, + "direction": -1 + }, + "left trigger": { + "index": 6 + }, + "right shoulder": { + "index": 5 + }, + "right stick": { + "index": 11 + }, + "right stick down": { + "axis": 3, + "direction": 1 + }, + "right stick left": { + "axis": 2, + "direction": -1 + }, + "right stick right": { + "axis": 2, + "direction": 1 + }, + "right stick up": { + "axis": 3, + "direction": -1 + }, + "right trigger": { + "index": 7 + }, + "start": { + "index": 9 + }, + "x": { + "index": 2 + }, + "y": { + "index": 3 + } + }, + "name": "Xbox One Chrome OSX Linux", + "supported": [ + { + "browser": "Chrome", + "id": "©Microsoft Corporation Controller (STANDARD GAMEPAD Vendor: 045e Product: 028e)", + "os": "Linux" + }, + { + "browser": "Chrome", + "id": "Xbox One Controller (STANDARD GAMEPAD Vendor: 02d1 Product: 045e)", + "os": "Mac OS X" + } + ] +} diff --git a/src/mappings/xbone-ff-linux.json b/src/mappings/xbone-ff-linux.json new file mode 100644 index 0000000..869fd7c --- /dev/null +++ b/src/mappings/xbone-ff-linux.json @@ -0,0 +1,127 @@ +{ + "axes": { + "dpad x": { + "index": 6 + }, + "dpad y": { + "index": 7 + }, + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "left trigger": { + "index": 2 + }, + "right stick x": { + "index": 3 + }, + "right stick y": { + "index": 4 + }, + "right trigger": { + "index": 5 + } + }, + "buttons": { + "a": { + "index": 0 + }, + "b": { + "index": 1 + }, + "back": { + "index": 6 + }, + "dpad down": { + "axis": 7, + "direction": 1 + }, + "dpad left": { + "axis": 6, + "direction": -1 + }, + "dpad right": { + "axis": 6, + "direction": 1 + }, + "dpad up": { + "axis": 7, + "direction": -1 + }, + "home": { + "index": 8 + }, + "left shoulder": { + "index": 4 + }, + "left stick": { + "index": 9 + }, + "left stick down": { + "axis": 1, + "direction": 1 + }, + "left stick left": { + "axis": 0, + "direction": -1 + }, + "left stick right": { + "axis": 0, + "direction": 1 + }, + "left stick up": { + "axis": 1, + "direction": -1 + }, + "left trigger": { + "axis": 2, + "direction": 1 + }, + "right shoulder": { + "index": 5 + }, + "right stick": { + "index": 10 + }, + "right stick down": { + "axis": 4, + "direction": 1 + }, + "right stick left": { + "axis": 3, + "direction": -1 + }, + "right stick right": { + "axis": 3, + "direction": 1 + }, + "right stick up": { + "axis": 4, + "direction": -1 + }, + "right trigger": { + "axis": 5, + "direction": 1 + }, + "start": { + "index": 7 + }, + "x": { + "index": 2 + }, + "y": { + "index": 3 + } + }, + "name": "Xbone Firefox Linux", + "supported": [ + { + "browser": "Firefox", + "id": "045e-02d1-Microsoft X-Box One pad", + "os": "Linux" + } + ] +} diff --git a/src/mappings/xbox360-chrome-windows-osx.json b/src/mappings/xbox360-chrome-windows-osx.json new file mode 100644 index 0000000..7952da8 --- /dev/null +++ b/src/mappings/xbox360-chrome-windows-osx.json @@ -0,0 +1,123 @@ +{ + "axes": { + "dpad x": { + "index": 6 + }, + "dpad y": { + "index": 7 + }, + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "right stick x": { + "index": 2 + }, + "right stick y": { + "index": 3 + }, + "right trigger": { + "index": 5 + } + }, + "buttons": { + "a": { + "index": 0 + }, + "b": { + "index": 1 + }, + "back": { + "index": 8 + }, + "dpad down": { + "index": 13 + }, + "dpad left": { + "index": 14 + }, + "dpad right": { + "index": 15 + }, + "dpad up": { + "index": 12 + }, + "home": { + "index": 16 + }, + "left shoulder": { + "index": 4 + }, + "left stick": { + "index": 10 + }, + "left stick down": { + "axis": 1, + "direction": 1 + }, + "left stick left": { + "axis": 0, + "direction": -1 + }, + "left stick right": { + "axis": 0, + "direction": 1 + }, + "left stick up": { + "axis": 1, + "direction": -1 + }, + "left trigger": { + "index": 6 + }, + "right shoulder": { + "index": 5 + }, + "right stick": { + "index": 11 + }, + "right stick down": { + "axis": 3, + "direction": 1 + }, + "right stick left": { + "axis": 2, + "direction": -1 + }, + "right stick right": { + "axis": 2, + "direction": 1 + }, + "right stick up": { + "axis": 3, + "direction": -1 + }, + "right trigger": { + "index": 7 + }, + "start": { + "index": 9 + }, + "x": { + "index": 2 + }, + "y": { + "index": 3 + } + }, + "name": "Xbox 360 Chrome Windows/OSX", + "supported": [ + { + "browser": "Chrome", + "id": "Xbox 360 Controller (STANDARD GAMEPAD Vendor: 028e Product: 045e)", + "os": "Mac OS X" + }, + { + "browser": "Chrome", + "id": "Xbox 360 Controller (XInput STANDARD GAMEPAD)", + "os": "Windows NT" + } + ] +} diff --git a/src/mappings/xbox360-ff-linux.json b/src/mappings/xbox360-ff-linux.json new file mode 100644 index 0000000..cf0fdee --- /dev/null +++ b/src/mappings/xbox360-ff-linux.json @@ -0,0 +1,127 @@ +{ + "axes": { + "dpad x": { + "index": 6 + }, + "dpad y": { + "index": 7 + }, + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "left trigger": { + "index": 2 + }, + "right stick x": { + "index": 3 + }, + "right stick y": { + "index": 4 + }, + "right trigger": { + "index": 5 + } + }, + "buttons": { + "a": { + "index": 0 + }, + "b": { + "index": 1 + }, + "back": { + "index": 6 + }, + "dpad down": { + "axis": 7, + "direction": 1 + }, + "dpad left": { + "axis": 6, + "direction": -1 + }, + "dpad right": { + "axis": 6, + "direction": 1 + }, + "dpad up": { + "axis": 7, + "direction": -1 + }, + "home": { + "index": 8 + }, + "left shoulder": { + "index": 4 + }, + "left stick": { + "index": 9 + }, + "left stick down": { + "axis": 1, + "direction": 1 + }, + "left stick left": { + "axis": 0, + "direction": -1 + }, + "left stick right": { + "axis": 0, + "direction": 1 + }, + "left stick up": { + "axis": 1, + "direction": -1 + }, + "left trigger": { + "axis": 2, + "direction": 1 + }, + "right shoulder": { + "index": 5 + }, + "right stick": { + "index": 10 + }, + "right stick down": { + "axis": 4, + "direction": 1 + }, + "right stick left": { + "axis": 3, + "direction": -1 + }, + "right stick right": { + "axis": 3, + "direction": 1 + }, + "right stick up": { + "axis": 4, + "direction": -1 + }, + "right trigger": { + "axis": 5, + "direction": 1 + }, + "start": { + "index": 7 + }, + "x": { + "index": 2 + }, + "y": { + "index": 3 + } + }, + "name": "Xbox 360 Firefox Linux", + "supported": [ + { + "browser": "Firefox", + "id": "045e-028e-Microsoft X-Box 360 pad", + "os": "Linux" + } + ] +} diff --git a/src/mappings/xbox360-ff-windows.json b/src/mappings/xbox360-ff-windows.json new file mode 100644 index 0000000..26f810d --- /dev/null +++ b/src/mappings/xbox360-ff-windows.json @@ -0,0 +1,115 @@ +{ + "axes": { + "dpad x": { + "index": 6 + }, + "dpad y": { + "index": 7 + }, + "left stick x": { + "index": 0 + }, + "left stick y": { + "index": 1 + }, + "right stick x": { + "index": 2 + }, + "right stick y": { + "index": 3 + }, + "right trigger": { + "index": 5 + } + }, + "buttons": { + "a": { + "index": 0 + }, + "b": { + "index": 1 + }, + "back": { + "index": 8 + }, + "dpad down": { + "index": 13 + }, + "dpad left": { + "index": 14 + }, + "dpad right": { + "index": 15 + }, + "dpad up": { + "index": 12 + }, + "left shoulder": { + "index": 4 + }, + "left stick": { + "index": 10 + }, + "left stick down": { + "axis": 1, + "direction": 1 + }, + "left stick left": { + "axis": 0, + "direction": -1 + }, + "left stick right": { + "axis": 0, + "direction": 1 + }, + "left stick up": { + "axis": 1, + "direction": -1 + }, + "left trigger": { + "index": 6 + }, + "right shoulder": { + "index": 5 + }, + "right stick": { + "index": 11 + }, + "right stick down": { + "axis": 3, + "direction": 1 + }, + "right stick left": { + "axis": 2, + "direction": -1 + }, + "right stick right": { + "axis": 2, + "direction": 1 + }, + "right stick up": { + "axis": 3, + "direction": -1 + }, + "right trigger": { + "index": 7 + }, + "start": { + "index": 9 + }, + "x": { + "index": 2 + }, + "y": { + "index": 3 + } + }, + "name": "Xbox 360 FF Windows", + "supported": [ + { + "browser": "Firefox", + "id": "xinput", + "os": "Windows NT" + } + ] +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..abe0dfc --- /dev/null +++ b/yarn.lock @@ -0,0 +1,353 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6, babel-core@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.0" + debug "^2.6.8" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.7" + slash "^1.0.0" + source-map "^0.5.6" + +babel-generator@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.6" + trim-right "^1.0.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +brace-expansion@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +coffeescript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/coffeescript/-/coffeescript-2.0.0.tgz#61bcc70989cc18a0aab6b3d8be110d2ec7743c9a" + optionalDependencies: + babel-core "^6" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +convert-source-map@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" + +core-js@^2.4.0, core-js@^2.5.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" + +debug@^2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +glob@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +invariant@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +js-tokens@^3.0.0, js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +lodash@^4.17.4: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +loose-envify@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-tmpdir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +private@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" + +regenerator-runtime@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"