├── .gitignore ├── .npmignore ├── LICENSE ├── README.md ├── example ├── Cargo.lock ├── Cargo.toml ├── README.md ├── index.html ├── package-lock.json ├── package.json ├── src │ ├── index.js │ └── lib.rs └── webpack.config.js ├── index.js ├── package-lock.json └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Compiled binary addons (http://nodejs.org/api/addons.html) 7 | build/Release 8 | 9 | # Dependency directory 10 | node_modules 11 | 12 | example/build 13 | example/target 14 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Compiled binary addons (http://nodejs.org/api/addons.html) 7 | build/Release 8 | 9 | # Dependency directory 10 | node_modules 11 | 12 | example 13 | .npmignore 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Ian J Sikes 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Rust WebAssembly loader 2 | 3 | [![npm](https://img.shields.io/npm/v/rust-wasm-loader.svg)](https://www.npmjs.com/package/rust-wasm-loader) 4 | 5 | ## Usage 6 | 7 | This is a simple Webpack loader that shells out to cargo to build a Rust project targeting WebAssembly. See [this post](https://www.hellorust.com/setup/wasm-target/) for 8 | more details on using Rust to target the web. 9 | 10 | To use it, first install the package: 11 | 12 | ```bash 13 | $ npm install rust-wasm-loader 14 | ``` 15 | 16 | Configure the loader in your Webpack config: 17 | 18 | ```js 19 | module.exports = { 20 | // ... 21 | module: { 22 | rules: [ 23 | { 24 | test: /\.rs$/, 25 | use: { 26 | loader: 'rust-wasm-loader', 27 | options: { 28 | // Path to your 'build' or 'dist' directory relative to project root 29 | path: 'build/', 30 | } 31 | } 32 | }, 33 | // ... 34 | ] 35 | } 36 | } 37 | ``` 38 | 39 | Note: if you are using `file-loader`, make sure to add `.wasm` to the test field, otherwise the module will not be copied! (e.g. `test: /\.(wasm|jpg|jpeg|png|gif|svg|eot|ttf|woff|woff2)$/i,`). 40 | 41 | Make sure you have the `cargo`, `rustc`, and (optionally) `emsdk` binaries somewhere in your `PATH`. `stdweb` and other Rust libraries require a nightly build, which can be installed from https://rustup.rs/ . 42 | 43 | Require and initialize the wasm module: 44 | 45 | ```js 46 | const wasm = require('./lib.rs') 47 | wasm.then(module => { 48 | // Use your module here 49 | console.log(module.doub(21)) 50 | }) 51 | ``` 52 | 53 | or with async/await: 54 | 55 | ```js 56 | async function loadwasm() { 57 | const lib = await require('./lib.rs'); 58 | // Use your module here 59 | console.log(lib.doub(21)); 60 | } 61 | loadwasm(); 62 | ``` 63 | 64 | ### Configuration 65 | 66 | The following options can be added to the Webpack loader query: 67 | 68 | | Name | Description | Required | Default | 69 | | ---- | ----------- | -------- | ------- | 70 | | `release` | Whether or not to pass the `--release` flag to cargo | false | false | 71 | | `path` | Path to your webpack output folder relative to project root | true | '' | 72 | | `target` | Allows one to specify `wasm32-unknown-emscripten` as build target | false | 'wasm32-unknown-unknown' | 73 | 74 | ### Example 75 | 76 | Check out the [example](example) directory for a simple Hello World example. 77 | 78 | This project is based off of [rust-emscripten-loader](https://github.com/mrdziuban/rust-emscripten-loader) 79 | by [mrdziuban](https://github.com/mrdziuban). 80 | -------------------------------------------------------------------------------- /example/Cargo.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | name = "base-x" 3 | version = "0.2.2" 4 | source = "registry+https://github.com/rust-lang/crates.io-index" 5 | 6 | [[package]] 7 | name = "discard" 8 | version = "1.0.3" 9 | source = "registry+https://github.com/rust-lang/crates.io-index" 10 | 11 | [[package]] 12 | name = "dtoa" 13 | version = "0.4.2" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | 16 | [[package]] 17 | name = "itoa" 18 | version = "0.4.1" 19 | source = "registry+https://github.com/rust-lang/crates.io-index" 20 | 21 | [[package]] 22 | name = "proc-macro2" 23 | version = "0.2.3" 24 | source = "registry+https://github.com/rust-lang/crates.io-index" 25 | dependencies = [ 26 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 27 | ] 28 | 29 | [[package]] 30 | name = "proc-macro2" 31 | version = "0.4.6" 32 | source = "registry+https://github.com/rust-lang/crates.io-index" 33 | dependencies = [ 34 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 35 | ] 36 | 37 | [[package]] 38 | name = "quote" 39 | version = "0.4.2" 40 | source = "registry+https://github.com/rust-lang/crates.io-index" 41 | dependencies = [ 42 | "proc-macro2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 43 | ] 44 | 45 | [[package]] 46 | name = "quote" 47 | version = "0.6.3" 48 | source = "registry+https://github.com/rust-lang/crates.io-index" 49 | dependencies = [ 50 | "proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 51 | ] 52 | 53 | [[package]] 54 | name = "rustexample" 55 | version = "0.2.0" 56 | dependencies = [ 57 | "stdweb 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 58 | ] 59 | 60 | [[package]] 61 | name = "serde" 62 | version = "1.0.66" 63 | source = "registry+https://github.com/rust-lang/crates.io-index" 64 | 65 | [[package]] 66 | name = "serde_derive" 67 | version = "1.0.66" 68 | source = "registry+https://github.com/rust-lang/crates.io-index" 69 | dependencies = [ 70 | "proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 71 | "quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", 72 | "syn 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)", 73 | ] 74 | 75 | [[package]] 76 | name = "serde_json" 77 | version = "1.0.21" 78 | source = "registry+https://github.com/rust-lang/crates.io-index" 79 | dependencies = [ 80 | "dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 81 | "itoa 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", 82 | "serde 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)", 83 | ] 84 | 85 | [[package]] 86 | name = "stdweb" 87 | version = "0.4.6" 88 | source = "registry+https://github.com/rust-lang/crates.io-index" 89 | dependencies = [ 90 | "discard 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 91 | "serde 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)", 92 | "serde_json 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", 93 | "stdweb-derive 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 94 | "stdweb-internal-macros 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 95 | ] 96 | 97 | [[package]] 98 | name = "stdweb-derive" 99 | version = "0.4.0" 100 | source = "registry+https://github.com/rust-lang/crates.io-index" 101 | dependencies = [ 102 | "quote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 103 | "serde 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)", 104 | "serde_derive 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)", 105 | "syn 0.12.15 (registry+https://github.com/rust-lang/crates.io-index)", 106 | ] 107 | 108 | [[package]] 109 | name = "stdweb-internal-macros" 110 | version = "0.1.0" 111 | source = "registry+https://github.com/rust-lang/crates.io-index" 112 | dependencies = [ 113 | "base-x 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 114 | "quote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 115 | "serde 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)", 116 | "serde_derive 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)", 117 | "serde_json 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)", 118 | "syn 0.12.15 (registry+https://github.com/rust-lang/crates.io-index)", 119 | ] 120 | 121 | [[package]] 122 | name = "syn" 123 | version = "0.12.15" 124 | source = "registry+https://github.com/rust-lang/crates.io-index" 125 | dependencies = [ 126 | "proc-macro2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 127 | "quote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 128 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 129 | ] 130 | 131 | [[package]] 132 | name = "syn" 133 | version = "0.14.2" 134 | source = "registry+https://github.com/rust-lang/crates.io-index" 135 | dependencies = [ 136 | "proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 137 | "quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", 138 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 139 | ] 140 | 141 | [[package]] 142 | name = "unicode-xid" 143 | version = "0.1.0" 144 | source = "registry+https://github.com/rust-lang/crates.io-index" 145 | 146 | [metadata] 147 | "checksum base-x 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2f59103b47307f76e03bef1633aec7fa9e29bfb5aa6daf5a334f94233c71f6c1" 148 | "checksum discard 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9a9117502da3c5657cb8e2ca7ffcf52d659f00c78c5127d1ebadc2ebe76465be" 149 | "checksum dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e50ab" 150 | "checksum itoa 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c069bbec61e1ca5a596166e55dfe4773ff745c3d16b700013bcaff9a6df2c682" 151 | "checksum proc-macro2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cd07deb3c6d1d9ff827999c7f9b04cdfd66b1b17ae508e14fe47b620f2282ae0" 152 | "checksum proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "effdb53b25cdad54f8f48843d67398f7ef2e14f12c1b4cb4effc549a6462a4d6" 153 | "checksum quote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1eca14c727ad12702eb4b6bfb5a232287dcf8385cb8ca83a3eeaf6519c44c408" 154 | "checksum quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e44651a0dc4cdd99f71c83b561e221f714912d11af1a4dff0631f923d53af035" 155 | "checksum serde 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)" = "e9a2d9a9ac5120e0f768801ca2b58ad6eec929dc9d1d616c162f208869c2ce95" 156 | "checksum serde_derive 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)" = "0a90213fa7e0f5eac3f7afe2d5ff6b088af515052cc7303bd68c7e3b91a3fb79" 157 | "checksum serde_json 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)" = "eb40600c756f02d7ea34943626cefa85732fdae5f95b90b31f9797b3c526d1e6" 158 | "checksum stdweb 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7df34022ad1ded904a8c69ae125e822e717063005cdf4ddbcb8e13e72f223554" 159 | "checksum stdweb-derive 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6aa46e9b38ea028a8a327ae6db35a486ace3eb834f5600bb3b6a71c0b6b1bd4b" 160 | "checksum stdweb-internal-macros 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b0bb3289dfd46bba44d80ed47a9b3d4c43bf6c1d7931b29e2fa86bd6697ccf59" 161 | "checksum syn 0.12.15 (registry+https://github.com/rust-lang/crates.io-index)" = "c97c05b8ebc34ddd6b967994d5c6e9852fa92f8b82b3858c39451f97346dcce5" 162 | "checksum syn 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c67da57e61ebc7b7b6fff56bb34440ca3a83db037320b0507af4c10368deda7d" 163 | "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" 164 | -------------------------------------------------------------------------------- /example/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | authors = ["Ian J Sikes "] 3 | name = "rustexample" 4 | version = "0.2.0" 5 | 6 | [lib] 7 | crate-type = ["cdylib"] 8 | 9 | [dependencies] 10 | "stdweb" = "0.4.6" -------------------------------------------------------------------------------- /example/README.md: -------------------------------------------------------------------------------- 1 | # Rust WebAssembly loader example 2 | 3 | This is a simple Hello World example of the [Rust WebAssembly loader](https://www.npmjs.com/package/rust-wasm-loader). 4 | 5 | ### Install dependencies 6 | 7 | ```bash 8 | $ npm install 9 | ``` 10 | 11 | ### Compile 12 | 13 | ```bash 14 | $ npm run compile 15 | ``` 16 | 17 | ### Serve 18 | 19 | Run 20 | 21 | ```bash 22 | $ npm run serve 23 | ``` 24 | 25 | then open http://localhost:8080 in your browser. 26 | -------------------------------------------------------------------------------- /example/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Hello World 6 | 7 | 8 |
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rust-wasm-loader-example", 3 | "version": "0.1.0", 4 | "description": "A simple Hello World example of rust-wasm-loader", 5 | "author": "Ian J Sikes", 6 | "license": "UNLICENSED", 7 | "scripts": { 8 | "compile": "webpack --progress", 9 | "serve": "http-server" 10 | }, 11 | "dependencies": { 12 | "http-server": "^0.9.0", 13 | "rust-wasm-loader": "../", 14 | "webpack": "^4.12.0", 15 | "webpack-cli": "^3.0.8" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /example/src/index.js: -------------------------------------------------------------------------------- 1 | const wasm = require('./lib.rs'); 2 | 3 | wasm.then(module => { 4 | console.log('Calling rust functions!'); 5 | module.hello(); 6 | console.log(module.doub(21)); 7 | }) 8 | -------------------------------------------------------------------------------- /example/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![feature(proc_macro)] 2 | #[macro_use] 3 | 4 | extern crate stdweb; 5 | 6 | use stdweb::js_export; 7 | use stdweb::traits::*; 8 | use stdweb::unstable::TryInto; 9 | use stdweb::web::{ 10 | HtmlElement, 11 | Element, 12 | document 13 | }; 14 | 15 | #[js_export] 16 | fn hello() { 17 | 18 | stdweb::initialize(); 19 | 20 | let hw = "HELLO FROM RUST"; 21 | 22 | // This unwrap() stuff is from the stdweb examples - 23 | // https://github.com/koute/stdweb/blob/52cf01616a1a32ecf63af9858437d37be743b7dd/examples/echo/src/main.rs#L36 24 | let div: HtmlElement = document().query_selector("#container") 25 | .unwrap().unwrap().try_into().unwrap(); 26 | 27 | let h1: Element = document().create_element("h1") 28 | .unwrap(); 29 | 30 | h1.set_text_content(hw); 31 | div.append_child(&h1); 32 | 33 | js! { 34 | console.log(@{hw}); 35 | } 36 | 37 | } 38 | 39 | #[js_export] 40 | fn doub(a: i32) -> i32 { 41 | return a + a; 42 | } 43 | -------------------------------------------------------------------------------- /example/webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | mode: 'production', 3 | entry: './src/index.js', 4 | output: { 5 | filename: 'bundle.js', 6 | path: __dirname + '/build', 7 | }, 8 | module: { 9 | rules: [ 10 | { 11 | test: /\.rs$/, 12 | use: { 13 | loader: 'rust-wasm-loader', 14 | options: { 15 | path: 'build/', 16 | } 17 | } 18 | }, 19 | { 20 | test: /\.wasm$/, 21 | use: { 22 | loader: 'file-loader' 23 | } 24 | } 25 | ] 26 | }, 27 | externals: { 28 | 'fs': true, 29 | 'path': true, 30 | }, 31 | } 32 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const child_process = require('child_process') 2 | const fs = require('fs') 3 | const loaderUtils = require('loader-utils') 4 | const path = require('path') 5 | const toml = require('toml') 6 | const babel = require('babel-core'); 7 | 8 | module.exports = function(source) { 9 | // Indicate that this loader is asynchronous 10 | const callback = this.async() 11 | const srcDir = path.dirname(path.dirname(this.resourcePath)) 12 | // Find the rust package name in the Cargo.toml 13 | const packageName = toml.parse( 14 | fs.readFileSync(path.join(srcDir, 'Cargo.toml'), 'utf8').toString() 15 | ).package.name 16 | 17 | const opts = loaderUtils.getOptions(this) 18 | 19 | const rustTarget = (opts || {}).rustTarget || `wasm32-unknown-unknown`; 20 | 21 | const builtin = /unknown-unknown/.test(rustTarget); 22 | 23 | // debug builds are presently broken in straight rust wasm 24 | const release = builtin || (opts ? opts.release : false) 25 | 26 | const buildPath = opts ? opts.path : undefined 27 | if (buildPath === undefined) { 28 | return callback( 29 | new Error( 30 | 'You must set the `path` option to the path to webpack output relative to project root' 31 | ), 32 | null 33 | ) 34 | } 35 | 36 | const outDir = path.join( 37 | srcDir, 38 | 'target', 39 | rustTarget, 40 | release ? 'release' : 'debug' 41 | ) 42 | 43 | const outFile = path.join(outDir, `${packageName}.js`); 44 | 45 | const subcmd = `cargo ${builtin ? 'web ' : ''}build`; 46 | const cmd = `${subcmd} --target=${rustTarget}${release ? ' --release' : ''} --verbose` 47 | 48 | const self = this 49 | child_process.exec(cmd, { cwd: this.context }, function( 50 | error, 51 | stdout, 52 | stderr 53 | ) { 54 | if (error) { 55 | return callback(error, null) 56 | } 57 | // Get the contents of the javascript 'glue' code generated by Emscripten 58 | const out = fs.readFileSync(outFile, 'utf8') 59 | 60 | let wasmFile; 61 | if (builtin) { 62 | wasmFile = path.join(outDir, `${packageName}.wasm`); 63 | } else { 64 | wasmFile = fs 65 | .readdirSync(path.join(outDir, 'deps')) 66 | .find(f => /\.wasm$/.test(f)); 67 | wasmFile = path.join(outDir, 'deps', wasmFile) 68 | } 69 | 70 | if (!wasmFile) { 71 | return callback(new Error('No wasm file found', null)) 72 | } 73 | 74 | // Emit the wasm file 75 | self.emitFile( 76 | `${packageName}.wasm`, 77 | fs.readFileSync(wasmFile) 78 | ) 79 | 80 | if (builtin) { 81 | 82 | // `cargo web build` emits es6 which 83 | // causes problems with `webpack -p` 84 | const es5out = babel.transform(out, { 85 | 'presets': ['env'] 86 | }); 87 | 88 | return callback(null, es5out.code); 89 | 90 | } 91 | 92 | // This object is passed to the Emscripten 'glue' code 93 | const Module = { 94 | // Path in the built project to the wasm file 95 | wasmBinaryFile: path.join(buildPath, `${packageName}.wasm`), 96 | // Indicates that we are NOT running in node, despite 'require' being defined 97 | ENVIRONMENT: 'WEB', 98 | } 99 | 100 | const glue = `module.exports = (function(existingModule){ 101 | return { 102 | // Returns a promise that resolves when the wasm runtime is initialized and ready for use 103 | initialize: function(userDefinedModule) { 104 | return new Promise(function(resolve, reject) { 105 | if (!userDefinedModule) { 106 | userDefinedModule = {} 107 | } 108 | var Module = Object.assign({}, userDefinedModule, existingModule); 109 | Module['onRuntimeInitialized'] = function() { resolve(Module) }; 110 | \n${out}\n 111 | }); 112 | } 113 | } 114 | })(${JSON.stringify(Module)})` 115 | 116 | return callback(null, glue) 117 | }) 118 | } 119 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rust-wasm-loader", 3 | "version": "0.1.2", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "ansi-regex": { 8 | "version": "2.1.1", 9 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 10 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" 11 | }, 12 | "ansi-styles": { 13 | "version": "2.2.1", 14 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 15 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" 16 | }, 17 | "babel-code-frame": { 18 | "version": "6.26.0", 19 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 20 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 21 | "requires": { 22 | "chalk": "^1.1.3", 23 | "esutils": "^2.0.2", 24 | "js-tokens": "^3.0.2" 25 | } 26 | }, 27 | "babel-core": { 28 | "version": "6.26.3", 29 | "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", 30 | "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", 31 | "requires": { 32 | "babel-code-frame": "^6.26.0", 33 | "babel-generator": "^6.26.0", 34 | "babel-helpers": "^6.24.1", 35 | "babel-messages": "^6.23.0", 36 | "babel-register": "^6.26.0", 37 | "babel-runtime": "^6.26.0", 38 | "babel-template": "^6.26.0", 39 | "babel-traverse": "^6.26.0", 40 | "babel-types": "^6.26.0", 41 | "babylon": "^6.18.0", 42 | "convert-source-map": "^1.5.1", 43 | "debug": "^2.6.9", 44 | "json5": "^0.5.1", 45 | "lodash": "^4.17.4", 46 | "minimatch": "^3.0.4", 47 | "path-is-absolute": "^1.0.1", 48 | "private": "^0.1.8", 49 | "slash": "^1.0.0", 50 | "source-map": "^0.5.7" 51 | } 52 | }, 53 | "babel-generator": { 54 | "version": "6.26.1", 55 | "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", 56 | "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", 57 | "requires": { 58 | "babel-messages": "^6.23.0", 59 | "babel-runtime": "^6.26.0", 60 | "babel-types": "^6.26.0", 61 | "detect-indent": "^4.0.0", 62 | "jsesc": "^1.3.0", 63 | "lodash": "^4.17.4", 64 | "source-map": "^0.5.7", 65 | "trim-right": "^1.0.1" 66 | } 67 | }, 68 | "babel-helper-builder-binary-assignment-operator-visitor": { 69 | "version": "6.24.1", 70 | "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", 71 | "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", 72 | "requires": { 73 | "babel-helper-explode-assignable-expression": "^6.24.1", 74 | "babel-runtime": "^6.22.0", 75 | "babel-types": "^6.24.1" 76 | } 77 | }, 78 | "babel-helper-call-delegate": { 79 | "version": "6.24.1", 80 | "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", 81 | "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", 82 | "requires": { 83 | "babel-helper-hoist-variables": "^6.24.1", 84 | "babel-runtime": "^6.22.0", 85 | "babel-traverse": "^6.24.1", 86 | "babel-types": "^6.24.1" 87 | } 88 | }, 89 | "babel-helper-define-map": { 90 | "version": "6.26.0", 91 | "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", 92 | "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", 93 | "requires": { 94 | "babel-helper-function-name": "^6.24.1", 95 | "babel-runtime": "^6.26.0", 96 | "babel-types": "^6.26.0", 97 | "lodash": "^4.17.4" 98 | } 99 | }, 100 | "babel-helper-explode-assignable-expression": { 101 | "version": "6.24.1", 102 | "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", 103 | "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", 104 | "requires": { 105 | "babel-runtime": "^6.22.0", 106 | "babel-traverse": "^6.24.1", 107 | "babel-types": "^6.24.1" 108 | } 109 | }, 110 | "babel-helper-function-name": { 111 | "version": "6.24.1", 112 | "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", 113 | "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", 114 | "requires": { 115 | "babel-helper-get-function-arity": "^6.24.1", 116 | "babel-runtime": "^6.22.0", 117 | "babel-template": "^6.24.1", 118 | "babel-traverse": "^6.24.1", 119 | "babel-types": "^6.24.1" 120 | } 121 | }, 122 | "babel-helper-get-function-arity": { 123 | "version": "6.24.1", 124 | "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", 125 | "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", 126 | "requires": { 127 | "babel-runtime": "^6.22.0", 128 | "babel-types": "^6.24.1" 129 | } 130 | }, 131 | "babel-helper-hoist-variables": { 132 | "version": "6.24.1", 133 | "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", 134 | "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", 135 | "requires": { 136 | "babel-runtime": "^6.22.0", 137 | "babel-types": "^6.24.1" 138 | } 139 | }, 140 | "babel-helper-optimise-call-expression": { 141 | "version": "6.24.1", 142 | "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", 143 | "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", 144 | "requires": { 145 | "babel-runtime": "^6.22.0", 146 | "babel-types": "^6.24.1" 147 | } 148 | }, 149 | "babel-helper-regex": { 150 | "version": "6.26.0", 151 | "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", 152 | "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", 153 | "requires": { 154 | "babel-runtime": "^6.26.0", 155 | "babel-types": "^6.26.0", 156 | "lodash": "^4.17.4" 157 | } 158 | }, 159 | "babel-helper-remap-async-to-generator": { 160 | "version": "6.24.1", 161 | "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", 162 | "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", 163 | "requires": { 164 | "babel-helper-function-name": "^6.24.1", 165 | "babel-runtime": "^6.22.0", 166 | "babel-template": "^6.24.1", 167 | "babel-traverse": "^6.24.1", 168 | "babel-types": "^6.24.1" 169 | } 170 | }, 171 | "babel-helper-replace-supers": { 172 | "version": "6.24.1", 173 | "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", 174 | "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", 175 | "requires": { 176 | "babel-helper-optimise-call-expression": "^6.24.1", 177 | "babel-messages": "^6.23.0", 178 | "babel-runtime": "^6.22.0", 179 | "babel-template": "^6.24.1", 180 | "babel-traverse": "^6.24.1", 181 | "babel-types": "^6.24.1" 182 | } 183 | }, 184 | "babel-helpers": { 185 | "version": "6.24.1", 186 | "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", 187 | "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", 188 | "requires": { 189 | "babel-runtime": "^6.22.0", 190 | "babel-template": "^6.24.1" 191 | } 192 | }, 193 | "babel-messages": { 194 | "version": "6.23.0", 195 | "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", 196 | "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", 197 | "requires": { 198 | "babel-runtime": "^6.22.0" 199 | } 200 | }, 201 | "babel-plugin-check-es2015-constants": { 202 | "version": "6.22.0", 203 | "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", 204 | "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", 205 | "requires": { 206 | "babel-runtime": "^6.22.0" 207 | } 208 | }, 209 | "babel-plugin-syntax-async-functions": { 210 | "version": "6.13.0", 211 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", 212 | "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" 213 | }, 214 | "babel-plugin-syntax-exponentiation-operator": { 215 | "version": "6.13.0", 216 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", 217 | "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" 218 | }, 219 | "babel-plugin-syntax-trailing-function-commas": { 220 | "version": "6.22.0", 221 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", 222 | "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" 223 | }, 224 | "babel-plugin-transform-async-to-generator": { 225 | "version": "6.24.1", 226 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", 227 | "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", 228 | "requires": { 229 | "babel-helper-remap-async-to-generator": "^6.24.1", 230 | "babel-plugin-syntax-async-functions": "^6.8.0", 231 | "babel-runtime": "^6.22.0" 232 | } 233 | }, 234 | "babel-plugin-transform-es2015-arrow-functions": { 235 | "version": "6.22.0", 236 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", 237 | "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", 238 | "requires": { 239 | "babel-runtime": "^6.22.0" 240 | } 241 | }, 242 | "babel-plugin-transform-es2015-block-scoped-functions": { 243 | "version": "6.22.0", 244 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", 245 | "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", 246 | "requires": { 247 | "babel-runtime": "^6.22.0" 248 | } 249 | }, 250 | "babel-plugin-transform-es2015-block-scoping": { 251 | "version": "6.26.0", 252 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", 253 | "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", 254 | "requires": { 255 | "babel-runtime": "^6.26.0", 256 | "babel-template": "^6.26.0", 257 | "babel-traverse": "^6.26.0", 258 | "babel-types": "^6.26.0", 259 | "lodash": "^4.17.4" 260 | } 261 | }, 262 | "babel-plugin-transform-es2015-classes": { 263 | "version": "6.24.1", 264 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", 265 | "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", 266 | "requires": { 267 | "babel-helper-define-map": "^6.24.1", 268 | "babel-helper-function-name": "^6.24.1", 269 | "babel-helper-optimise-call-expression": "^6.24.1", 270 | "babel-helper-replace-supers": "^6.24.1", 271 | "babel-messages": "^6.23.0", 272 | "babel-runtime": "^6.22.0", 273 | "babel-template": "^6.24.1", 274 | "babel-traverse": "^6.24.1", 275 | "babel-types": "^6.24.1" 276 | } 277 | }, 278 | "babel-plugin-transform-es2015-computed-properties": { 279 | "version": "6.24.1", 280 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", 281 | "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", 282 | "requires": { 283 | "babel-runtime": "^6.22.0", 284 | "babel-template": "^6.24.1" 285 | } 286 | }, 287 | "babel-plugin-transform-es2015-destructuring": { 288 | "version": "6.23.0", 289 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", 290 | "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", 291 | "requires": { 292 | "babel-runtime": "^6.22.0" 293 | } 294 | }, 295 | "babel-plugin-transform-es2015-duplicate-keys": { 296 | "version": "6.24.1", 297 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", 298 | "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", 299 | "requires": { 300 | "babel-runtime": "^6.22.0", 301 | "babel-types": "^6.24.1" 302 | } 303 | }, 304 | "babel-plugin-transform-es2015-for-of": { 305 | "version": "6.23.0", 306 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", 307 | "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", 308 | "requires": { 309 | "babel-runtime": "^6.22.0" 310 | } 311 | }, 312 | "babel-plugin-transform-es2015-function-name": { 313 | "version": "6.24.1", 314 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", 315 | "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", 316 | "requires": { 317 | "babel-helper-function-name": "^6.24.1", 318 | "babel-runtime": "^6.22.0", 319 | "babel-types": "^6.24.1" 320 | } 321 | }, 322 | "babel-plugin-transform-es2015-literals": { 323 | "version": "6.22.0", 324 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", 325 | "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", 326 | "requires": { 327 | "babel-runtime": "^6.22.0" 328 | } 329 | }, 330 | "babel-plugin-transform-es2015-modules-amd": { 331 | "version": "6.24.1", 332 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", 333 | "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", 334 | "requires": { 335 | "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", 336 | "babel-runtime": "^6.22.0", 337 | "babel-template": "^6.24.1" 338 | } 339 | }, 340 | "babel-plugin-transform-es2015-modules-commonjs": { 341 | "version": "6.26.2", 342 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", 343 | "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", 344 | "requires": { 345 | "babel-plugin-transform-strict-mode": "^6.24.1", 346 | "babel-runtime": "^6.26.0", 347 | "babel-template": "^6.26.0", 348 | "babel-types": "^6.26.0" 349 | } 350 | }, 351 | "babel-plugin-transform-es2015-modules-systemjs": { 352 | "version": "6.24.1", 353 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", 354 | "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", 355 | "requires": { 356 | "babel-helper-hoist-variables": "^6.24.1", 357 | "babel-runtime": "^6.22.0", 358 | "babel-template": "^6.24.1" 359 | } 360 | }, 361 | "babel-plugin-transform-es2015-modules-umd": { 362 | "version": "6.24.1", 363 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", 364 | "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", 365 | "requires": { 366 | "babel-plugin-transform-es2015-modules-amd": "^6.24.1", 367 | "babel-runtime": "^6.22.0", 368 | "babel-template": "^6.24.1" 369 | } 370 | }, 371 | "babel-plugin-transform-es2015-object-super": { 372 | "version": "6.24.1", 373 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", 374 | "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", 375 | "requires": { 376 | "babel-helper-replace-supers": "^6.24.1", 377 | "babel-runtime": "^6.22.0" 378 | } 379 | }, 380 | "babel-plugin-transform-es2015-parameters": { 381 | "version": "6.24.1", 382 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", 383 | "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", 384 | "requires": { 385 | "babel-helper-call-delegate": "^6.24.1", 386 | "babel-helper-get-function-arity": "^6.24.1", 387 | "babel-runtime": "^6.22.0", 388 | "babel-template": "^6.24.1", 389 | "babel-traverse": "^6.24.1", 390 | "babel-types": "^6.24.1" 391 | } 392 | }, 393 | "babel-plugin-transform-es2015-shorthand-properties": { 394 | "version": "6.24.1", 395 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", 396 | "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", 397 | "requires": { 398 | "babel-runtime": "^6.22.0", 399 | "babel-types": "^6.24.1" 400 | } 401 | }, 402 | "babel-plugin-transform-es2015-spread": { 403 | "version": "6.22.0", 404 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", 405 | "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", 406 | "requires": { 407 | "babel-runtime": "^6.22.0" 408 | } 409 | }, 410 | "babel-plugin-transform-es2015-sticky-regex": { 411 | "version": "6.24.1", 412 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", 413 | "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", 414 | "requires": { 415 | "babel-helper-regex": "^6.24.1", 416 | "babel-runtime": "^6.22.0", 417 | "babel-types": "^6.24.1" 418 | } 419 | }, 420 | "babel-plugin-transform-es2015-template-literals": { 421 | "version": "6.22.0", 422 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", 423 | "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", 424 | "requires": { 425 | "babel-runtime": "^6.22.0" 426 | } 427 | }, 428 | "babel-plugin-transform-es2015-typeof-symbol": { 429 | "version": "6.23.0", 430 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", 431 | "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", 432 | "requires": { 433 | "babel-runtime": "^6.22.0" 434 | } 435 | }, 436 | "babel-plugin-transform-es2015-unicode-regex": { 437 | "version": "6.24.1", 438 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", 439 | "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", 440 | "requires": { 441 | "babel-helper-regex": "^6.24.1", 442 | "babel-runtime": "^6.22.0", 443 | "regexpu-core": "^2.0.0" 444 | } 445 | }, 446 | "babel-plugin-transform-exponentiation-operator": { 447 | "version": "6.24.1", 448 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", 449 | "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", 450 | "requires": { 451 | "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", 452 | "babel-plugin-syntax-exponentiation-operator": "^6.8.0", 453 | "babel-runtime": "^6.22.0" 454 | } 455 | }, 456 | "babel-plugin-transform-regenerator": { 457 | "version": "6.26.0", 458 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", 459 | "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", 460 | "requires": { 461 | "regenerator-transform": "^0.10.0" 462 | } 463 | }, 464 | "babel-plugin-transform-strict-mode": { 465 | "version": "6.24.1", 466 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", 467 | "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", 468 | "requires": { 469 | "babel-runtime": "^6.22.0", 470 | "babel-types": "^6.24.1" 471 | } 472 | }, 473 | "babel-preset-env": { 474 | "version": "1.7.0", 475 | "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", 476 | "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", 477 | "requires": { 478 | "babel-plugin-check-es2015-constants": "^6.22.0", 479 | "babel-plugin-syntax-trailing-function-commas": "^6.22.0", 480 | "babel-plugin-transform-async-to-generator": "^6.22.0", 481 | "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", 482 | "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", 483 | "babel-plugin-transform-es2015-block-scoping": "^6.23.0", 484 | "babel-plugin-transform-es2015-classes": "^6.23.0", 485 | "babel-plugin-transform-es2015-computed-properties": "^6.22.0", 486 | "babel-plugin-transform-es2015-destructuring": "^6.23.0", 487 | "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", 488 | "babel-plugin-transform-es2015-for-of": "^6.23.0", 489 | "babel-plugin-transform-es2015-function-name": "^6.22.0", 490 | "babel-plugin-transform-es2015-literals": "^6.22.0", 491 | "babel-plugin-transform-es2015-modules-amd": "^6.22.0", 492 | "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", 493 | "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", 494 | "babel-plugin-transform-es2015-modules-umd": "^6.23.0", 495 | "babel-plugin-transform-es2015-object-super": "^6.22.0", 496 | "babel-plugin-transform-es2015-parameters": "^6.23.0", 497 | "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", 498 | "babel-plugin-transform-es2015-spread": "^6.22.0", 499 | "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", 500 | "babel-plugin-transform-es2015-template-literals": "^6.22.0", 501 | "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", 502 | "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", 503 | "babel-plugin-transform-exponentiation-operator": "^6.22.0", 504 | "babel-plugin-transform-regenerator": "^6.22.0", 505 | "browserslist": "^3.2.6", 506 | "invariant": "^2.2.2", 507 | "semver": "^5.3.0" 508 | } 509 | }, 510 | "babel-register": { 511 | "version": "6.26.0", 512 | "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", 513 | "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", 514 | "requires": { 515 | "babel-core": "^6.26.0", 516 | "babel-runtime": "^6.26.0", 517 | "core-js": "^2.5.0", 518 | "home-or-tmp": "^2.0.0", 519 | "lodash": "^4.17.4", 520 | "mkdirp": "^0.5.1", 521 | "source-map-support": "^0.4.15" 522 | } 523 | }, 524 | "babel-runtime": { 525 | "version": "6.26.0", 526 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", 527 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", 528 | "requires": { 529 | "core-js": "^2.4.0", 530 | "regenerator-runtime": "^0.11.0" 531 | } 532 | }, 533 | "babel-template": { 534 | "version": "6.26.0", 535 | "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", 536 | "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", 537 | "requires": { 538 | "babel-runtime": "^6.26.0", 539 | "babel-traverse": "^6.26.0", 540 | "babel-types": "^6.26.0", 541 | "babylon": "^6.18.0", 542 | "lodash": "^4.17.4" 543 | } 544 | }, 545 | "babel-traverse": { 546 | "version": "6.26.0", 547 | "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", 548 | "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", 549 | "requires": { 550 | "babel-code-frame": "^6.26.0", 551 | "babel-messages": "^6.23.0", 552 | "babel-runtime": "^6.26.0", 553 | "babel-types": "^6.26.0", 554 | "babylon": "^6.18.0", 555 | "debug": "^2.6.8", 556 | "globals": "^9.18.0", 557 | "invariant": "^2.2.2", 558 | "lodash": "^4.17.4" 559 | } 560 | }, 561 | "babel-types": { 562 | "version": "6.26.0", 563 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", 564 | "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", 565 | "requires": { 566 | "babel-runtime": "^6.26.0", 567 | "esutils": "^2.0.2", 568 | "lodash": "^4.17.4", 569 | "to-fast-properties": "^1.0.3" 570 | } 571 | }, 572 | "babylon": { 573 | "version": "6.18.0", 574 | "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", 575 | "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" 576 | }, 577 | "balanced-match": { 578 | "version": "1.0.0", 579 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 580 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 581 | }, 582 | "big.js": { 583 | "version": "3.2.0", 584 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", 585 | "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" 586 | }, 587 | "brace-expansion": { 588 | "version": "1.1.11", 589 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 590 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 591 | "requires": { 592 | "balanced-match": "^1.0.0", 593 | "concat-map": "0.0.1" 594 | } 595 | }, 596 | "browserslist": { 597 | "version": "3.2.8", 598 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", 599 | "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", 600 | "requires": { 601 | "caniuse-lite": "^1.0.30000844", 602 | "electron-to-chromium": "^1.3.47" 603 | } 604 | }, 605 | "caniuse-lite": { 606 | "version": "1.0.30000856", 607 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000856.tgz", 608 | "integrity": "sha512-x3mYcApHMQemyaHuH/RyqtKCGIYTgEA63fdi+VBvDz8xUSmRiVWTLeyKcoGQCGG6UPR9/+4qG4OKrTa6aSQRKg==" 609 | }, 610 | "chalk": { 611 | "version": "1.1.3", 612 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 613 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 614 | "requires": { 615 | "ansi-styles": "^2.2.1", 616 | "escape-string-regexp": "^1.0.2", 617 | "has-ansi": "^2.0.0", 618 | "strip-ansi": "^3.0.0", 619 | "supports-color": "^2.0.0" 620 | } 621 | }, 622 | "concat-map": { 623 | "version": "0.0.1", 624 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 625 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 626 | }, 627 | "convert-source-map": { 628 | "version": "1.5.1", 629 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", 630 | "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" 631 | }, 632 | "core-js": { 633 | "version": "2.5.7", 634 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", 635 | "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" 636 | }, 637 | "debug": { 638 | "version": "2.6.9", 639 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 640 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 641 | "requires": { 642 | "ms": "2.0.0" 643 | } 644 | }, 645 | "detect-indent": { 646 | "version": "4.0.0", 647 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", 648 | "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", 649 | "requires": { 650 | "repeating": "^2.0.0" 651 | } 652 | }, 653 | "electron-to-chromium": { 654 | "version": "1.3.48", 655 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.48.tgz", 656 | "integrity": "sha1-07DYWTgUBE4JLs4hCPw6ya6kuQA=" 657 | }, 658 | "emojis-list": { 659 | "version": "2.1.0", 660 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", 661 | "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" 662 | }, 663 | "escape-string-regexp": { 664 | "version": "1.0.5", 665 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 666 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 667 | }, 668 | "esutils": { 669 | "version": "2.0.2", 670 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 671 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" 672 | }, 673 | "globals": { 674 | "version": "9.18.0", 675 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", 676 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" 677 | }, 678 | "has-ansi": { 679 | "version": "2.0.0", 680 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 681 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 682 | "requires": { 683 | "ansi-regex": "^2.0.0" 684 | } 685 | }, 686 | "home-or-tmp": { 687 | "version": "2.0.0", 688 | "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", 689 | "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", 690 | "requires": { 691 | "os-homedir": "^1.0.0", 692 | "os-tmpdir": "^1.0.1" 693 | } 694 | }, 695 | "invariant": { 696 | "version": "2.2.4", 697 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", 698 | "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", 699 | "requires": { 700 | "loose-envify": "^1.0.0" 701 | } 702 | }, 703 | "is-finite": { 704 | "version": "1.0.2", 705 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 706 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 707 | "requires": { 708 | "number-is-nan": "^1.0.0" 709 | } 710 | }, 711 | "js-tokens": { 712 | "version": "3.0.2", 713 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 714 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" 715 | }, 716 | "jsesc": { 717 | "version": "1.3.0", 718 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", 719 | "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" 720 | }, 721 | "json5": { 722 | "version": "0.5.1", 723 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", 724 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" 725 | }, 726 | "loader-utils": { 727 | "version": "1.1.0", 728 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", 729 | "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", 730 | "requires": { 731 | "big.js": "^3.1.3", 732 | "emojis-list": "^2.0.0", 733 | "json5": "^0.5.0" 734 | } 735 | }, 736 | "lodash": { 737 | "version": "4.17.10", 738 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", 739 | "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" 740 | }, 741 | "loose-envify": { 742 | "version": "1.3.1", 743 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", 744 | "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", 745 | "requires": { 746 | "js-tokens": "^3.0.0" 747 | } 748 | }, 749 | "minimatch": { 750 | "version": "3.0.4", 751 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 752 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 753 | "requires": { 754 | "brace-expansion": "^1.1.7" 755 | } 756 | }, 757 | "minimist": { 758 | "version": "0.0.8", 759 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 760 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" 761 | }, 762 | "mkdirp": { 763 | "version": "0.5.1", 764 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 765 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 766 | "requires": { 767 | "minimist": "0.0.8" 768 | } 769 | }, 770 | "ms": { 771 | "version": "2.0.0", 772 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 773 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 774 | }, 775 | "number-is-nan": { 776 | "version": "1.0.1", 777 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 778 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" 779 | }, 780 | "os-homedir": { 781 | "version": "1.0.2", 782 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 783 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" 784 | }, 785 | "os-tmpdir": { 786 | "version": "1.0.2", 787 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 788 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" 789 | }, 790 | "path-is-absolute": { 791 | "version": "1.0.1", 792 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 793 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 794 | }, 795 | "private": { 796 | "version": "0.1.8", 797 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", 798 | "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" 799 | }, 800 | "regenerate": { 801 | "version": "1.4.0", 802 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", 803 | "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" 804 | }, 805 | "regenerator-runtime": { 806 | "version": "0.11.1", 807 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", 808 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" 809 | }, 810 | "regenerator-transform": { 811 | "version": "0.10.1", 812 | "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", 813 | "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", 814 | "requires": { 815 | "babel-runtime": "^6.18.0", 816 | "babel-types": "^6.19.0", 817 | "private": "^0.1.6" 818 | } 819 | }, 820 | "regexpu-core": { 821 | "version": "2.0.0", 822 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", 823 | "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", 824 | "requires": { 825 | "regenerate": "^1.2.1", 826 | "regjsgen": "^0.2.0", 827 | "regjsparser": "^0.1.4" 828 | } 829 | }, 830 | "regjsgen": { 831 | "version": "0.2.0", 832 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", 833 | "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" 834 | }, 835 | "regjsparser": { 836 | "version": "0.1.5", 837 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", 838 | "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", 839 | "requires": { 840 | "jsesc": "~0.5.0" 841 | }, 842 | "dependencies": { 843 | "jsesc": { 844 | "version": "0.5.0", 845 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", 846 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" 847 | } 848 | } 849 | }, 850 | "repeating": { 851 | "version": "2.0.1", 852 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 853 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 854 | "requires": { 855 | "is-finite": "^1.0.0" 856 | } 857 | }, 858 | "semver": { 859 | "version": "5.5.0", 860 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", 861 | "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" 862 | }, 863 | "slash": { 864 | "version": "1.0.0", 865 | "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", 866 | "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" 867 | }, 868 | "source-map": { 869 | "version": "0.5.7", 870 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 871 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" 872 | }, 873 | "source-map-support": { 874 | "version": "0.4.18", 875 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", 876 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", 877 | "requires": { 878 | "source-map": "^0.5.6" 879 | } 880 | }, 881 | "strip-ansi": { 882 | "version": "3.0.1", 883 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 884 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 885 | "requires": { 886 | "ansi-regex": "^2.0.0" 887 | } 888 | }, 889 | "supports-color": { 890 | "version": "2.0.0", 891 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 892 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" 893 | }, 894 | "to-fast-properties": { 895 | "version": "1.0.3", 896 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", 897 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" 898 | }, 899 | "toml": { 900 | "version": "2.3.2", 901 | "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.2.tgz", 902 | "integrity": "sha1-Xt7VykKIeSSUn9BusOlVZWAB6DQ=" 903 | }, 904 | "trim-right": { 905 | "version": "1.0.1", 906 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", 907 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" 908 | } 909 | } 910 | } 911 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rust-wasm-loader", 3 | "version": "0.2.0", 4 | "author": "Ian J Sikes", 5 | "description": "Webpack loader for Rust compiled to WebAssembly using Emscripten", 6 | "dependencies": { 7 | "babel-core": "^6.26.3", 8 | "babel-preset-env": "^1.7.0", 9 | "loader-utils": "^1.1.0", 10 | "toml": "^2.3.2" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "git@github.com:ianjsikes/rust-wasm-loader" 15 | }, 16 | "main": "index.js", 17 | "license": "MIT" 18 | } 19 | --------------------------------------------------------------------------------