├── src ├── static │ ├── .keep │ └── index.html ├── css │ └── app.scss └── js │ ├── other_file.js │ ├── app.js │ └── react_component.js ├── .gitignore ├── MIT-LICENSE.txt ├── package.json ├── README.md └── config.js /src/static/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/css/app.scss: -------------------------------------------------------------------------------- 1 | body { 2 | background: #eee; 3 | } 4 | -------------------------------------------------------------------------------- /src/js/other_file.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | console.log('hello world from another file'); -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /jspm_packages 2 | /node_modules 3 | /.sass-cache 4 | /npm-debug.log 5 | /dist 6 | -------------------------------------------------------------------------------- /src/js/app.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import React from 'react'; 4 | import 'other_file'; 5 | import 'react_component'; 6 | 7 | let testES6 = 'working'; 8 | console.log('it is', testES6); 9 | -------------------------------------------------------------------------------- /src/static/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Bla 5 | 6 | 7 | 8 |

Bla

9 |

See console, if JS is working

10 |
11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/js/react_component.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import React from 'react'; 4 | import ReactDOM from 'react-dom'; 5 | 6 | var renderHelloWorld = function(){ 7 | ReactDOM.render( 8 | Reeeeact Component, 9 | document.getElementById('blubb') 10 | ); 11 | } 12 | 13 | document.addEventListener('DOMContentLoaded', function(){ 14 | renderHelloWorld(); 15 | }, false); 16 | -------------------------------------------------------------------------------- /MIT-LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 Jan Lelis 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "package", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "build": "npm run js && npm run static && npm run css", 7 | "clean": "rm -rf dist/*", 8 | "static": "mkdir -p dist && cp -R src/static/* dist/", 9 | "css": "mkdir -p dist/css && sass -I src/css -I jspm_packages src/css/app.scss > dist/css/bundle.css", 10 | "js": "jspm bundle-sfx app.js dist/js/bundle.js", 11 | "postinstall": "jspm install", 12 | "server": "mkdir -p dist && http-server -p 8000 dist", 13 | "start": "parallelshell 'npm run server' 'npm run watch'", 14 | "test": "rm -f spec/compiled.js && jspm bundle-sfx spec.js src/js/spec/compiled.js --skip-source-maps && karma start", 15 | "watch": "npm run clean && npm run build && parallelshell 'npm run watchCss' 'npm run watchJs' 'npm run watchStatic'", 16 | "watchCss": "onchange src/css -- npm run css", 17 | "watchJs": "onchange src/js -- npm run js", 18 | "watchStatic": "onchange src/static -- npm run static" 19 | }, 20 | "jspm": { 21 | "dependencies": { 22 | "react": "npm:react@^0.14.7", 23 | "react-dom": "npm:react-dom@^0.14.7" 24 | }, 25 | "devDependencies": { 26 | "babel": "npm:babel-core@^5.8.24", 27 | "babel-plugin-transform-react-jsx": "npm:babel-plugin-transform-react-jsx@^6.4.0", 28 | "babel-runtime": "npm:babel-runtime@^5.8.24", 29 | "core-js": "npm:core-js@^1.1.4", 30 | "react-addons-test-utils": "npm:react-addons-test-utils@0.14.5" 31 | } 32 | }, 33 | "devDependencies": { 34 | "http-server": "^0.8.5", 35 | "jasmine-core": "^2.3.4", 36 | "karma": "^0.13.15", 37 | "karma-chrome-launcher": "^0.2.1", 38 | "karma-firefox-launcher": "^0.1.7", 39 | "karma-jasmine": "^0.3.6", 40 | "onchange": "^2.0.0", 41 | "parallelshell": "^2.0.0", 42 | "watch": "^0.16.0" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Single Page App Starter Kit with ES6, JSPM, React, and Sass 2 | 3 | ## What? 4 | 5 | This is the boilerplate tooling for a new single page web application. It transpiles ES6/ES7-style code to browser compatible JavaScript using Babel. It uses JSPM for frontend dependency management, which supports ES6 modules via System.JS. CSS is generated by the excellent Sass pre-processor. Everything is glued together with npm scripts in package.json. 6 | 7 | See below to get started. 8 | 9 | ## Documentation 10 | 11 | ### Frontend 12 | 13 | - JavaScript: https://github.com/getify/You-Dont-Know-JS/ 14 | - React Docs: https://facebook.github.io/react/docs/getting-started.html 15 | - React Style Guide: https://github.com/Khan/style-guides/blob/master/style/react.md 16 | - JSX: https://facebook.github.io/react/docs/jsx-in-depth.html 17 | 18 | ### Tooling 19 | 20 | - ES6 Transpiler: https://babeljs.io 21 | - ES6 Module System: https://github.com/systemjs/systemjs/blob/master/docs/es6-modules-overview.md 22 | - System.js: https://github.com/systemjs/systemjs 23 | - JSPM: http://jspm.io 24 | - NPM: https://docs.npmjs.com 25 | 26 | ### Testing 27 | 28 | - Jasmine Docs: http://jasmine.github.io/2.3/introduction.html 29 | - Jasmine Cheatsheet: http://www.cheatography.com/citguy/cheat-sheets/jasmine-js-testing/ 30 | - Karma Docs: http://karma-runner.github.io 31 | - React Test Utils: https://facebook.github.io/react/docs/test-utils.html 32 | 33 | ## Setup 34 | 35 | ### A) System Requirements 36 | 37 | #### A1) Install NodeJS & NPM 38 | 39 | - https://nodejs.org/en/download/ 40 | 41 | #### A2) Install JSPM 42 | 43 | $ npm install -g jspm 44 | 45 | Depending on your specific node setup, this might also require `sudo`. 46 | 47 | #### A3) Install Ruby & SASS 48 | 49 | - http://sass-lang.com/install 50 | 51 | Sass is written in Ruby, so install Ruby first. It might already be installed. 52 | 53 | ### B) Project Setup 54 | 55 | #### B1) Clone this repository 56 | 57 | $ git clone https://github.com/janlelis/jspm-es6-react-sass-starter.git 58 | 59 | #### B2) Install JavaScript Dependencies 60 | 61 | $ npm install 62 | 63 | This will also trigger `jspm install`. 64 | 65 | #### 5) Start the Local Server & File Watcher 66 | 67 | $ npm start 68 | 69 | This will start a local webserver on http://127.0.0.1:8000 70 | 71 | -------------------------------------------------------------------------------- /config.js: -------------------------------------------------------------------------------- 1 | System.config({ 2 | baseURL: "/js/", 3 | defaultJSExtensions: true, 4 | transpiler: "babel", 5 | babelOptions: { 6 | "optional": [ 7 | "runtime", 8 | "optimisation.modules.system" 9 | ], 10 | "blacklist": [] 11 | }, 12 | paths: { 13 | "*": "src/js/*", 14 | "github:*": "jspm_packages/github/*", 15 | "npm:*": "jspm_packages/npm/*" 16 | }, 17 | 18 | map: { 19 | "babel": "npm:babel-core@5.8.33", 20 | "babel-plugin-transform-react-jsx": "npm:babel-plugin-transform-react-jsx@6.4.0", 21 | "babel-runtime": "npm:babel-runtime@5.8.35", 22 | "core-js": "npm:core-js@1.2.5", 23 | "react": "npm:react@0.14.7", 24 | "react-addons-test-utils": "npm:react-addons-test-utils@0.14.5", 25 | "react-dom": "npm:react-dom@0.14.2", 26 | "github:jspm/nodelibs-assert@0.1.0": { 27 | "assert": "npm:assert@1.3.0" 28 | }, 29 | "github:jspm/nodelibs-buffer@0.1.0": { 30 | "buffer": "npm:buffer@3.6.0" 31 | }, 32 | "github:jspm/nodelibs-constants@0.1.0": { 33 | "constants-browserify": "npm:constants-browserify@0.0.1" 34 | }, 35 | "github:jspm/nodelibs-crypto@0.1.0": { 36 | "crypto-browserify": "npm:crypto-browserify@3.11.0" 37 | }, 38 | "github:jspm/nodelibs-events@0.1.1": { 39 | "events": "npm:events@1.0.2" 40 | }, 41 | "github:jspm/nodelibs-http@1.7.1": { 42 | "Base64": "npm:Base64@0.2.1", 43 | "events": "github:jspm/nodelibs-events@0.1.1", 44 | "inherits": "npm:inherits@2.0.1", 45 | "stream": "github:jspm/nodelibs-stream@0.1.0", 46 | "url": "github:jspm/nodelibs-url@0.1.0", 47 | "util": "github:jspm/nodelibs-util@0.1.0" 48 | }, 49 | "github:jspm/nodelibs-net@0.1.2": { 50 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 51 | "crypto": "github:jspm/nodelibs-crypto@0.1.0", 52 | "http": "github:jspm/nodelibs-http@1.7.1", 53 | "net": "github:jspm/nodelibs-net@0.1.2", 54 | "process": "github:jspm/nodelibs-process@0.1.2", 55 | "stream": "github:jspm/nodelibs-stream@0.1.0", 56 | "timers": "github:jspm/nodelibs-timers@0.1.0", 57 | "util": "github:jspm/nodelibs-util@0.1.0" 58 | }, 59 | "github:jspm/nodelibs-path@0.1.0": { 60 | "path-browserify": "npm:path-browserify@0.0.0" 61 | }, 62 | "github:jspm/nodelibs-process@0.1.2": { 63 | "process": "npm:process@0.11.2" 64 | }, 65 | "github:jspm/nodelibs-stream@0.1.0": { 66 | "stream-browserify": "npm:stream-browserify@1.0.0" 67 | }, 68 | "github:jspm/nodelibs-string_decoder@0.1.0": { 69 | "string_decoder": "npm:string_decoder@0.10.31" 70 | }, 71 | "github:jspm/nodelibs-timers@0.1.0": { 72 | "timers-browserify": "npm:timers-browserify@1.4.2" 73 | }, 74 | "github:jspm/nodelibs-tty@0.1.0": { 75 | "tty-browserify": "npm:tty-browserify@0.0.0" 76 | }, 77 | "github:jspm/nodelibs-url@0.1.0": { 78 | "url": "npm:url@0.10.3" 79 | }, 80 | "github:jspm/nodelibs-util@0.1.0": { 81 | "util": "npm:util@0.10.3" 82 | }, 83 | "github:jspm/nodelibs-vm@0.1.0": { 84 | "vm-browserify": "npm:vm-browserify@0.0.4" 85 | }, 86 | "npm:asn1.js@4.3.0": { 87 | "assert": "github:jspm/nodelibs-assert@0.1.0", 88 | "bn.js": "npm:bn.js@4.9.0", 89 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 90 | "inherits": "npm:inherits@2.0.1", 91 | "minimalistic-assert": "npm:minimalistic-assert@1.0.0", 92 | "vm": "github:jspm/nodelibs-vm@0.1.0" 93 | }, 94 | "npm:assert@1.3.0": { 95 | "util": "npm:util@0.10.3" 96 | }, 97 | "npm:babel-code-frame@6.3.13": { 98 | "babel-runtime": "npm:babel-runtime@5.8.35", 99 | "chalk": "npm:chalk@1.1.1", 100 | "esutils": "npm:esutils@2.0.2", 101 | "js-tokens": "npm:js-tokens@1.0.2", 102 | "line-numbers": "npm:line-numbers@0.2.0", 103 | "repeating": "npm:repeating@1.1.3" 104 | }, 105 | "npm:babel-helper-builder-react-jsx@6.3.13": { 106 | "babel-runtime": "npm:babel-runtime@5.8.35", 107 | "babel-types": "npm:babel-types@6.4.5", 108 | "esutils": "npm:esutils@2.0.2", 109 | "lodash": "npm:lodash@3.10.1", 110 | "process": "github:jspm/nodelibs-process@0.1.2" 111 | }, 112 | "npm:babel-messages@6.3.18": { 113 | "babel-runtime": "npm:babel-runtime@5.8.35", 114 | "util": "github:jspm/nodelibs-util@0.1.0" 115 | }, 116 | "npm:babel-plugin-syntax-jsx@6.3.13": { 117 | "babel-runtime": "npm:babel-runtime@5.8.35" 118 | }, 119 | "npm:babel-plugin-transform-react-jsx@6.4.0": { 120 | "babel-helper-builder-react-jsx": "npm:babel-helper-builder-react-jsx@6.3.13", 121 | "babel-plugin-syntax-jsx": "npm:babel-plugin-syntax-jsx@6.3.13", 122 | "babel-runtime": "npm:babel-runtime@5.8.35" 123 | }, 124 | "npm:babel-runtime@5.8.35": { 125 | "process": "github:jspm/nodelibs-process@0.1.2" 126 | }, 127 | "npm:babel-traverse@6.4.5": { 128 | "babel-code-frame": "npm:babel-code-frame@6.3.13", 129 | "babel-messages": "npm:babel-messages@6.3.18", 130 | "babel-runtime": "npm:babel-runtime@5.8.35", 131 | "babel-types": "npm:babel-types@6.4.5", 132 | "babylon": "npm:babylon@6.4.5", 133 | "debug": "npm:debug@2.2.0", 134 | "globals": "npm:globals@8.18.0", 135 | "invariant": "npm:invariant@2.2.0", 136 | "lodash": "npm:lodash@3.10.1", 137 | "process": "github:jspm/nodelibs-process@0.1.2", 138 | "repeating": "npm:repeating@1.1.3" 139 | }, 140 | "npm:babel-types@6.4.5": { 141 | "babel-runtime": "npm:babel-runtime@5.8.35", 142 | "babel-traverse": "npm:babel-traverse@6.4.5", 143 | "esutils": "npm:esutils@2.0.2", 144 | "lodash": "npm:lodash@3.10.1", 145 | "to-fast-properties": "npm:to-fast-properties@1.0.1" 146 | }, 147 | "npm:babylon@6.4.5": { 148 | "babel-runtime": "npm:babel-runtime@5.8.35", 149 | "fs": "github:jspm/nodelibs-fs@0.1.2", 150 | "process": "github:jspm/nodelibs-process@0.1.2" 151 | }, 152 | "npm:browserify-aes@1.0.6": { 153 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 154 | "buffer-xor": "npm:buffer-xor@1.0.3", 155 | "cipher-base": "npm:cipher-base@1.0.2", 156 | "create-hash": "npm:create-hash@1.1.2", 157 | "crypto": "github:jspm/nodelibs-crypto@0.1.0", 158 | "evp_bytestokey": "npm:evp_bytestokey@1.0.0", 159 | "fs": "github:jspm/nodelibs-fs@0.1.2", 160 | "inherits": "npm:inherits@2.0.1", 161 | "systemjs-json": "github:systemjs/plugin-json@0.1.0" 162 | }, 163 | "npm:browserify-cipher@1.0.0": { 164 | "browserify-aes": "npm:browserify-aes@1.0.6", 165 | "browserify-des": "npm:browserify-des@1.0.0", 166 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 167 | "crypto": "github:jspm/nodelibs-crypto@0.1.0", 168 | "evp_bytestokey": "npm:evp_bytestokey@1.0.0" 169 | }, 170 | "npm:browserify-des@1.0.0": { 171 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 172 | "cipher-base": "npm:cipher-base@1.0.2", 173 | "crypto": "github:jspm/nodelibs-crypto@0.1.0", 174 | "des.js": "npm:des.js@1.0.0", 175 | "inherits": "npm:inherits@2.0.1" 176 | }, 177 | "npm:browserify-rsa@4.0.0": { 178 | "bn.js": "npm:bn.js@4.9.0", 179 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 180 | "constants": "github:jspm/nodelibs-constants@0.1.0", 181 | "crypto": "github:jspm/nodelibs-crypto@0.1.0", 182 | "randombytes": "npm:randombytes@2.0.2" 183 | }, 184 | "npm:browserify-sign@4.0.0": { 185 | "bn.js": "npm:bn.js@4.9.0", 186 | "browserify-rsa": "npm:browserify-rsa@4.0.0", 187 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 188 | "create-hash": "npm:create-hash@1.1.2", 189 | "create-hmac": "npm:create-hmac@1.1.4", 190 | "crypto": "github:jspm/nodelibs-crypto@0.1.0", 191 | "elliptic": "npm:elliptic@6.2.3", 192 | "inherits": "npm:inherits@2.0.1", 193 | "parse-asn1": "npm:parse-asn1@5.0.0", 194 | "stream": "github:jspm/nodelibs-stream@0.1.0" 195 | }, 196 | "npm:buffer-xor@1.0.3": { 197 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 198 | "systemjs-json": "github:systemjs/plugin-json@0.1.0" 199 | }, 200 | "npm:buffer@3.6.0": { 201 | "base64-js": "npm:base64-js@0.0.8", 202 | "child_process": "github:jspm/nodelibs-child_process@0.1.0", 203 | "fs": "github:jspm/nodelibs-fs@0.1.2", 204 | "ieee754": "npm:ieee754@1.1.6", 205 | "isarray": "npm:isarray@1.0.0", 206 | "process": "github:jspm/nodelibs-process@0.1.2" 207 | }, 208 | "npm:chalk@1.1.1": { 209 | "ansi-styles": "npm:ansi-styles@2.1.0", 210 | "escape-string-regexp": "npm:escape-string-regexp@1.0.4", 211 | "has-ansi": "npm:has-ansi@2.0.0", 212 | "process": "github:jspm/nodelibs-process@0.1.2", 213 | "strip-ansi": "npm:strip-ansi@3.0.0", 214 | "supports-color": "npm:supports-color@2.0.0" 215 | }, 216 | "npm:cipher-base@1.0.2": { 217 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 218 | "inherits": "npm:inherits@2.0.1", 219 | "stream": "github:jspm/nodelibs-stream@0.1.0", 220 | "string_decoder": "github:jspm/nodelibs-string_decoder@0.1.0" 221 | }, 222 | "npm:constants-browserify@0.0.1": { 223 | "systemjs-json": "github:systemjs/plugin-json@0.1.0" 224 | }, 225 | "npm:core-js@1.2.5": { 226 | "fs": "github:jspm/nodelibs-fs@0.1.2", 227 | "path": "github:jspm/nodelibs-path@0.1.0", 228 | "process": "github:jspm/nodelibs-process@0.1.2", 229 | "systemjs-json": "github:systemjs/plugin-json@0.1.0" 230 | }, 231 | "npm:core-util-is@1.0.2": { 232 | "buffer": "github:jspm/nodelibs-buffer@0.1.0" 233 | }, 234 | "npm:create-ecdh@4.0.0": { 235 | "bn.js": "npm:bn.js@4.9.0", 236 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 237 | "crypto": "github:jspm/nodelibs-crypto@0.1.0", 238 | "elliptic": "npm:elliptic@6.2.3" 239 | }, 240 | "npm:create-hash@1.1.2": { 241 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 242 | "cipher-base": "npm:cipher-base@1.0.2", 243 | "crypto": "github:jspm/nodelibs-crypto@0.1.0", 244 | "fs": "github:jspm/nodelibs-fs@0.1.2", 245 | "inherits": "npm:inherits@2.0.1", 246 | "ripemd160": "npm:ripemd160@1.0.1", 247 | "sha.js": "npm:sha.js@2.4.4" 248 | }, 249 | "npm:create-hmac@1.1.4": { 250 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 251 | "create-hash": "npm:create-hash@1.1.2", 252 | "crypto": "github:jspm/nodelibs-crypto@0.1.0", 253 | "inherits": "npm:inherits@2.0.1", 254 | "stream": "github:jspm/nodelibs-stream@0.1.0" 255 | }, 256 | "npm:crypto-browserify@3.11.0": { 257 | "browserify-cipher": "npm:browserify-cipher@1.0.0", 258 | "browserify-sign": "npm:browserify-sign@4.0.0", 259 | "create-ecdh": "npm:create-ecdh@4.0.0", 260 | "create-hash": "npm:create-hash@1.1.2", 261 | "create-hmac": "npm:create-hmac@1.1.4", 262 | "diffie-hellman": "npm:diffie-hellman@5.0.2", 263 | "inherits": "npm:inherits@2.0.1", 264 | "pbkdf2": "npm:pbkdf2@3.0.4", 265 | "public-encrypt": "npm:public-encrypt@4.0.0", 266 | "randombytes": "npm:randombytes@2.0.2" 267 | }, 268 | "npm:debug@2.2.0": { 269 | "fs": "github:jspm/nodelibs-fs@0.1.2", 270 | "ms": "npm:ms@0.7.1", 271 | "net": "github:jspm/nodelibs-net@0.1.2", 272 | "process": "github:jspm/nodelibs-process@0.1.2", 273 | "tty": "github:jspm/nodelibs-tty@0.1.0", 274 | "util": "github:jspm/nodelibs-util@0.1.0" 275 | }, 276 | "npm:des.js@1.0.0": { 277 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 278 | "inherits": "npm:inherits@2.0.1", 279 | "minimalistic-assert": "npm:minimalistic-assert@1.0.0" 280 | }, 281 | "npm:diffie-hellman@5.0.2": { 282 | "bn.js": "npm:bn.js@4.9.0", 283 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 284 | "crypto": "github:jspm/nodelibs-crypto@0.1.0", 285 | "miller-rabin": "npm:miller-rabin@4.0.0", 286 | "randombytes": "npm:randombytes@2.0.2", 287 | "systemjs-json": "github:systemjs/plugin-json@0.1.0" 288 | }, 289 | "npm:elliptic@6.2.3": { 290 | "bn.js": "npm:bn.js@4.9.0", 291 | "brorand": "npm:brorand@1.0.5", 292 | "hash.js": "npm:hash.js@1.0.3", 293 | "inherits": "npm:inherits@2.0.1", 294 | "systemjs-json": "github:systemjs/plugin-json@0.1.0" 295 | }, 296 | "npm:evp_bytestokey@1.0.0": { 297 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 298 | "create-hash": "npm:create-hash@1.1.2", 299 | "crypto": "github:jspm/nodelibs-crypto@0.1.0" 300 | }, 301 | "npm:fbjs@0.6.1": { 302 | "process": "github:jspm/nodelibs-process@0.1.2" 303 | }, 304 | "npm:globals@8.18.0": { 305 | "systemjs-json": "github:systemjs/plugin-json@0.1.0" 306 | }, 307 | "npm:has-ansi@2.0.0": { 308 | "ansi-regex": "npm:ansi-regex@2.0.0" 309 | }, 310 | "npm:hash.js@1.0.3": { 311 | "inherits": "npm:inherits@2.0.1" 312 | }, 313 | "npm:inherits@2.0.1": { 314 | "util": "github:jspm/nodelibs-util@0.1.0" 315 | }, 316 | "npm:invariant@2.2.0": { 317 | "loose-envify": "npm:loose-envify@1.1.0", 318 | "process": "github:jspm/nodelibs-process@0.1.2" 319 | }, 320 | "npm:is-finite@1.0.1": { 321 | "number-is-nan": "npm:number-is-nan@1.0.0" 322 | }, 323 | "npm:line-numbers@0.2.0": { 324 | "left-pad": "npm:left-pad@0.0.3" 325 | }, 326 | "npm:lodash@3.10.1": { 327 | "process": "github:jspm/nodelibs-process@0.1.2" 328 | }, 329 | "npm:loose-envify@1.1.0": { 330 | "js-tokens": "npm:js-tokens@1.0.2", 331 | "process": "github:jspm/nodelibs-process@0.1.2", 332 | "stream": "github:jspm/nodelibs-stream@0.1.0", 333 | "util": "github:jspm/nodelibs-util@0.1.0" 334 | }, 335 | "npm:miller-rabin@4.0.0": { 336 | "bn.js": "npm:bn.js@4.9.0", 337 | "brorand": "npm:brorand@1.0.5" 338 | }, 339 | "npm:parse-asn1@5.0.0": { 340 | "asn1.js": "npm:asn1.js@4.3.0", 341 | "browserify-aes": "npm:browserify-aes@1.0.6", 342 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 343 | "create-hash": "npm:create-hash@1.1.2", 344 | "evp_bytestokey": "npm:evp_bytestokey@1.0.0", 345 | "pbkdf2": "npm:pbkdf2@3.0.4", 346 | "systemjs-json": "github:systemjs/plugin-json@0.1.0" 347 | }, 348 | "npm:path-browserify@0.0.0": { 349 | "process": "github:jspm/nodelibs-process@0.1.2" 350 | }, 351 | "npm:pbkdf2@3.0.4": { 352 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 353 | "child_process": "github:jspm/nodelibs-child_process@0.1.0", 354 | "create-hmac": "npm:create-hmac@1.1.4", 355 | "crypto": "github:jspm/nodelibs-crypto@0.1.0", 356 | "path": "github:jspm/nodelibs-path@0.1.0", 357 | "process": "github:jspm/nodelibs-process@0.1.2", 358 | "systemjs-json": "github:systemjs/plugin-json@0.1.0" 359 | }, 360 | "npm:process@0.11.2": { 361 | "assert": "github:jspm/nodelibs-assert@0.1.0" 362 | }, 363 | "npm:public-encrypt@4.0.0": { 364 | "bn.js": "npm:bn.js@4.9.0", 365 | "browserify-rsa": "npm:browserify-rsa@4.0.0", 366 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 367 | "create-hash": "npm:create-hash@1.1.2", 368 | "crypto": "github:jspm/nodelibs-crypto@0.1.0", 369 | "parse-asn1": "npm:parse-asn1@5.0.0", 370 | "randombytes": "npm:randombytes@2.0.2" 371 | }, 372 | "npm:punycode@1.3.2": { 373 | "process": "github:jspm/nodelibs-process@0.1.2" 374 | }, 375 | "npm:randombytes@2.0.2": { 376 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 377 | "crypto": "github:jspm/nodelibs-crypto@0.1.0", 378 | "process": "github:jspm/nodelibs-process@0.1.2" 379 | }, 380 | "npm:react-addons-test-utils@0.14.5": { 381 | "react": "npm:react@0.14.7" 382 | }, 383 | "npm:react-dom@0.14.2": { 384 | "react": "npm:react@0.14.7" 385 | }, 386 | "npm:react@0.14.7": { 387 | "fbjs": "npm:fbjs@0.6.1", 388 | "process": "github:jspm/nodelibs-process@0.1.2" 389 | }, 390 | "npm:readable-stream@1.1.13": { 391 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 392 | "core-util-is": "npm:core-util-is@1.0.2", 393 | "events": "github:jspm/nodelibs-events@0.1.1", 394 | "inherits": "npm:inherits@2.0.1", 395 | "isarray": "npm:isarray@0.0.1", 396 | "process": "github:jspm/nodelibs-process@0.1.2", 397 | "stream-browserify": "npm:stream-browserify@1.0.0", 398 | "string_decoder": "npm:string_decoder@0.10.31" 399 | }, 400 | "npm:repeating@1.1.3": { 401 | "is-finite": "npm:is-finite@1.0.1", 402 | "process": "github:jspm/nodelibs-process@0.1.2", 403 | "systemjs-json": "github:systemjs/plugin-json@0.1.0" 404 | }, 405 | "npm:ripemd160@1.0.1": { 406 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 407 | "process": "github:jspm/nodelibs-process@0.1.2" 408 | }, 409 | "npm:sha.js@2.4.4": { 410 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 411 | "fs": "github:jspm/nodelibs-fs@0.1.2", 412 | "inherits": "npm:inherits@2.0.1", 413 | "process": "github:jspm/nodelibs-process@0.1.2" 414 | }, 415 | "npm:stream-browserify@1.0.0": { 416 | "events": "github:jspm/nodelibs-events@0.1.1", 417 | "inherits": "npm:inherits@2.0.1", 418 | "readable-stream": "npm:readable-stream@1.1.13" 419 | }, 420 | "npm:string_decoder@0.10.31": { 421 | "buffer": "github:jspm/nodelibs-buffer@0.1.0" 422 | }, 423 | "npm:strip-ansi@3.0.0": { 424 | "ansi-regex": "npm:ansi-regex@2.0.0" 425 | }, 426 | "npm:supports-color@2.0.0": { 427 | "process": "github:jspm/nodelibs-process@0.1.2" 428 | }, 429 | "npm:timers-browserify@1.4.2": { 430 | "process": "npm:process@0.11.2" 431 | }, 432 | "npm:url@0.10.3": { 433 | "assert": "github:jspm/nodelibs-assert@0.1.0", 434 | "punycode": "npm:punycode@1.3.2", 435 | "querystring": "npm:querystring@0.2.0", 436 | "util": "github:jspm/nodelibs-util@0.1.0" 437 | }, 438 | "npm:util@0.10.3": { 439 | "inherits": "npm:inherits@2.0.1", 440 | "process": "github:jspm/nodelibs-process@0.1.2" 441 | }, 442 | "npm:vm-browserify@0.0.4": { 443 | "indexof": "npm:indexof@0.0.1" 444 | } 445 | } 446 | }); 447 | --------------------------------------------------------------------------------