[
  {
    "path": ".gitignore",
    "content": "node_modules"
  },
  {
    "path": ".meteor/.finished-upgraders",
    "content": "# This file contains information which helps Meteor properly upgrade your\n# app when you run 'meteor update'. You should check it into version control\n# with your project.\n\nnotices-for-0.9.0\nnotices-for-0.9.1\n0.9.4-platform-file\nnotices-for-facebook-graph-api-2\n1.2.0-standard-minifiers-package\n1.2.0-meteor-platform-split\n1.2.0-cordova-changes\n1.2.0-breaking-changes\n1.3.0-split-minifiers-package\n1.4.0-remove-old-dev-bundle-link\n"
  },
  {
    "path": ".meteor/.gitignore",
    "content": "local\n"
  },
  {
    "path": ".meteor/.id",
    "content": "# This file contains a token that is unique to your project.\n# Check it into your repository along with the rest of this directory.\n# It can be used for purposes such as:\n#   - ensuring you don't accidentally deploy one app on top of another\n#   - providing package authors with aggregated statistics\n\na432rb1h16ihv1n6jv39\n"
  },
  {
    "path": ".meteor/packages",
    "content": "# Meteor packages used by this project, one per line.\n# Check this file (and the other files in this directory) into your repository.\n#\n# 'meteor add' and 'meteor remove' will edit this file for you,\n# but you can also edit it by hand.\n\nmeteor-base             # Packages every Meteor app needs to have\nmobile-experience       # Packages for a great mobile UX\nmongo                   # The database Meteor supports right now\nblaze-html-templates    # Compile .html files into Meteor Blaze views\nreactive-var            # Reactive variable for tracker\njquery                  # Helpful client-side library\ntracker                 # Meteor's client-side reactive programming library\n\nstandard-minifier-css   # CSS minifier run for production mode\nstandard-minifier-js    # JS minifier run for production mode\nes5-shim                # ECMAScript 5 compatibility for older browsers.\necmascript             # Enable ECMAScript2015+ syntax in app code\n\nautopublish             # Publish all data to the clients (for prototyping)\ninsecure                # Allow all DB writes from clients (for prototyping)\n\nsession\nlogging\nreload\nrandom\nejson\nspacebars\ncheck\naccounts-ui\naccounts-password\ngadicc:blaze-react-component\n"
  },
  {
    "path": ".meteor/platforms",
    "content": "server\nbrowser\n"
  },
  {
    "path": ".meteor/release",
    "content": "METEOR@1.4.0.1\n"
  },
  {
    "path": ".meteor/versions",
    "content": "accounts-base@1.2.10\naccounts-password@1.2.14\naccounts-ui@1.1.9\naccounts-ui-unstyled@1.1.12\nallow-deny@1.0.5\nautopublish@1.0.7\nautoupdate@1.2.11\nbabel-compiler@6.9.0\nbabel-runtime@0.1.10\nbase64@1.0.9\nbinary-heap@1.0.9\nblaze@2.1.8\nblaze-html-templates@1.0.4\nblaze-tools@1.0.9\nboilerplate-generator@1.0.9\ncaching-compiler@1.0.6\ncaching-html-compiler@1.0.6\ncallback-hook@1.0.9\ncheck@1.2.3\nddp@1.2.5\nddp-client@1.2.9\nddp-common@1.2.6\nddp-rate-limiter@1.0.5\nddp-server@1.2.10\ndeps@1.0.12\ndiff-sequence@1.0.6\necmascript@0.5.7\necmascript-runtime@0.3.13\nejson@1.0.12\nemail@1.1.16\nes5-shim@4.6.13\nfastclick@1.0.12\ngadicc:blaze-react-component@1.2.0\ngeojson-utils@1.0.9\nhot-code-push@1.0.4\nhtml-tools@1.0.10\nhtmljs@1.0.10\nhttp@1.1.8\nid-map@1.0.8\ninsecure@1.0.7\njquery@1.11.9\nlaunch-screen@1.0.12\nless@2.6.5\nlivedata@1.0.18\nlocalstorage@1.0.11\nlogging@1.1.14\nmeteor@1.2.16\nmeteor-base@1.0.4\nminifier-css@1.2.13\nminifier-js@1.2.13\nminimongo@1.0.17\nmobile-experience@1.0.4\nmobile-status-bar@1.0.12\nmodules@0.7.5\nmodules-runtime@0.7.5\nmongo@1.1.10\nmongo-id@1.0.5\nnpm-bcrypt@0.8.7_1\nnpm-mongo@1.5.45\nobserve-sequence@1.0.12\nordered-dict@1.0.8\npromise@0.8.3\nrandom@1.0.10\nrate-limit@1.0.5\nreactive-dict@1.1.8\nreactive-var@1.0.10\nreload@1.1.10\nretry@1.0.8\nroutepolicy@1.0.11\nservice-configuration@1.0.10\nsession@1.1.6\nsha@1.0.8\nspacebars@1.0.12\nspacebars-compiler@1.0.12\nsrp@1.0.9\nstandard-minifier-css@1.1.8\nstandard-minifier-js@1.1.8\ntemplating@1.1.14\ntemplating-tools@1.0.4\ntracker@1.1.0\nui@1.0.11\nunderscore@1.0.9\nurl@1.0.10\nwebapp@1.3.10\nwebapp-hashing@1.0.9\n"
  },
  {
    "path": "README.md",
    "content": "# meteor-react-boilerplate\nA starter project for React &amp; Meteor\n\nThis repo aims to get you up and running with with React with little effort. It has sane defaults that\nmost apps will use (router, accounts).\n\nMost of the content is in the 'imports' folder so that we can so serverside rendering more easily. Here's the\nrundown on what's included.\n\nFor an in-depth example of how to use Meteor with React see\n[React-ive Meteor](https://github.com/AdamBrodzinski/react-ive-meteor). For flux support see the [Flux Leaderboard](https://github.com/AdamBrodzinski/meteor-flux-leaderboard) example app.\n\n#### APIs & Packages\n- [Session](https://docs.meteor.com/api/session.html)\n- [Logging](https://atmospherejs.com/meteor/logging)\n- [Reload](https://atmospherejs.com/meteor/reload)\n- [Random](https://docs.meteor.com/packages/random.html)\n- [EJSON](https://docs.meteor.com/api/ejson.html)\n- [Spacebars](https://docs.meteor.com/packages/spacebars.html)\n- [Check](https://docs.meteor.com/api/check.html)\n- [Accounts Password](http://docs.meteor.com/api/passwords.html)\n- [Accounts UI](https://docs.meteor.com/packages/accounts-ui.html) (with React wrapper)\n- [gadicc:blaze-react-component](https://github.com/gadicc/meteor-blaze-react-component/)\n\n#### NPM\n- React\n- React DOM\n- [React Router](https://github.com/reactjs/react-router)\n- [Classnames](https://github.com/JedWatson/classnames)\n- [History](https://github.com/ReactTraining/history)\n\n#### Components\n- Header\n- LoginButtons\n\n#### Models\n- User\n- (See a more [complex example](https://github.com/AdamBrodzinski/react-ive-meteor/blob/master/both/models/post.js))\n\n#### Pages/Routes\n- Home, About\n- Not Found\n- Main Layout\n"
  },
  {
    "path": "client/main.css",
    "content": "/* CSS declarations go here */\nHeader a.active {\n  font-weight: bold;\n  text-decoration: underline;\n}\nHeader a, #login-buttons a {\n  text-decoration: none;\n  margin-right: 10px;\n  color:inherit;\n}\n"
  },
  {
    "path": "client/main.html",
    "content": "<head>\n\t\t<meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\t\t<title>Meteor React Boilerplate</title>\n</head>\n\n<body>\n\t\t<div id=\"app\"></div>\n</body>\n"
  },
  {
    "path": "client/main.js",
    "content": "import '../imports/startup/client/main.js';\n"
  },
  {
    "path": "imports/api/User.js",
    "content": "import { Meteor } from 'meteor/meteor';\nimport { Accounts } from 'meteor/accounts-base';\n\nexport const User = {\n  get: function() {\n    return Meteor.user() || {};\n  },\n\n  id: function() {\n    return Meteor.userId();\n  },\n\n  isLoggedIn: function() {\n    return !! Meteor.userId();\n  },\n\n  isLoggedOut: function() {\n    return ! User.isLoggedIn();\n  },\n\n  profile: function() {\n    return User.get().profile;\n  },\n\n  create: function(opts, callback) {\n    Accounts.createUser(opts, callback);\n  }\n};\n\n"
  },
  {
    "path": "imports/api/api.js",
    "content": "import './User.js';\n"
  },
  {
    "path": "imports/startup/client/app.jsx",
    "content": "import { Meteor } from 'meteor/meteor';\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport MainLayout from '../../ui/containers/MainLayout.jsx';\n\nMeteor.startup(() => {\n  ReactDOM.render(\n    <MainLayout />,\n    document.getElementById('app')\n  );\n});\n"
  },
  {
    "path": "imports/startup/client/main.js",
    "content": "import './app.jsx';\n"
  },
  {
    "path": "imports/startup/server/main.js",
    "content": "console.log(\"Starting server...\");\n\nimport '../../api/api.js';\n"
  },
  {
    "path": "imports/ui/components/Header.jsx",
    "content": "import React from 'react';\nimport { NavLink } from 'react-router-dom';\n\nimport LoginButtons from './LoginButtons.jsx';\n\nexport default class Header extends React.Component {\n  render() {\n    return (\n      <header className='Header'>\n        <b>Header</b> &nbsp;\n        <NavLink activeClassName=\"active\" exact to=\"/\">Home</NavLink>\n        <NavLink activeClassName=\"active\" to=\"/about\">About Page</NavLink>\n        <NavLink to=\"/bad-url\">Not Found Page</NavLink>\n        <LoginButtons align='left' />\n      </header>\n    );\n  }\n}\n"
  },
  {
    "path": "imports/ui/components/LoginButtons.jsx",
    "content": "import React from 'react';\nimport Blaze from 'meteor/gadicc:blaze-react-component';\n\nexport default class LoginButtons extends React.Component {\n  shouldComponentUpdate() {\n    return false;\n  }\n\n  render() {\n    return <Blaze template=\"loginButtons\" align={this.props.align} />\n  }\n}\n\nLoginButtons.propTypes = {\n  align: React.PropTypes.string,\n}\n\nLoginButtons.defaultProps = {\n  align: 'right',\n}\n"
  },
  {
    "path": "imports/ui/containers/MainLayout.jsx",
    "content": "import React from 'react';\nimport { BrowserRouter as Router, Route, Switch } from 'react-router-dom'\n\nimport Header from '../components/Header.jsx';\nimport Home from '../pages/Home.jsx';\nimport About from '../pages/About.jsx';\nimport NotFound from '../pages/NotFound.jsx';\n\nexport default class MainLayout extends React.Component {\n  render() {\n    return (\n      <Router>\n        <div>\n          <Header />\n            <Switch>\n              <Route exact path='/' component={Home} />\n              <Route path = '/about' component={About} />\n              <Route component={NotFound} />\n            </Switch>\n        </div>\n      </Router>\n    );\n  }\n}\n"
  },
  {
    "path": "imports/ui/pages/About.jsx",
    "content": "import React from 'react';\n\nfunction About() {\n  return (\n    <div className='About'>\n      <h1>About</h1>\n    </div>\n  );\n}\n\nexport default About;\n"
  },
  {
    "path": "imports/ui/pages/Home.jsx",
    "content": "import React from 'react';\nimport classNames from 'classnames';\n\nfunction Home() {\n  return (\n    <div className={classNames('Home', 'foo', 'bar')} >\n      <h1>Welcome to Meteor!</h1>\n\n      <p>\n        See <a href=\"https://github.com/meteor/react-packages/blob/master/docs/client-npm.md\">\n        this guide</a> to learn how to import NPM modules/components via browserify in Meteor.\n      </p>\n\n      <p>\n        For an in-depth example of how to use Meteor with React see <a href=\"https://github.com/AdamBrodzinski/react-ive-meteor\">Reactive Meteor</a>. For flux support see the <a href=\"https://github.com/AdamBrodzinski/meteor-flux-leaderboard\">Flux Leaderboard</a> example app.\n      </p>\n\n      <h4>Packages</h4>\n\n      <ul>\n        <li>React (MDG preview)</li>\n        <li>Flow Router</li>\n        <li>React Layout</li>\n        <li>Accounts Password</li>\n        <li>Accounts UI (with React wrapper)</li>\n        <li>meteorhacks:npm</li>\n        <li>cosmos:browserify</li>\n        <li><b>Removes insecure</b></li>\n        <li><b>Removes autopublish</b></li>\n      </ul>\n\n      <h4>Components</h4>\n      <ul>\n        <li>Header</li>\n        <li>LoginButtons</li>\n        <li>\n          <a href=\"https://github.com/JedWatson/classnames\">Classnames (NPM Component)</a>\n        </li>\n      </ul>\n\n      <h4>Models</h4>\n      <ul>\n        <li>User</li>\n        <li>See more a complex <a href=\"https://github.com/AdamBrodzinski/react-ive-meteor/blob/master/both/models/post.js\">example</a></li>\n      </ul>\n\n      <h4>Pages/Routes</h4>\n      <ul>\n        <li>Home, About</li>\n        <li>Not Found</li>\n        <li>Main Layout</li>\n      </ul>\n    </div>\n  );\n}\n\nexport default Home;\n"
  },
  {
    "path": "imports/ui/pages/NotFound.jsx",
    "content": "import React from 'react';\n\nfunction NotFound() {\n  return (\n    <div className='NotFound'>\n      <h1>This page can not be found</h1>\n    </div>\n  );\n}\n\nexport default NotFound;\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"meteor-react-boilerplate\",\n  \"version\": \"1.0.1\",\n  \"description\": \"Meteor React Boilerplate\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/AdamBrodzinski/meteor-react-boilerplate\"\n  },\n  \"author\": \"Ryen Beatty <ryen.beatty@gmail.com> (http://ryenbeatty.co)\",\n  \"license\": \"ISC\",\n  \"bugs\": {\n    \"url\": \"https://github.com/AdamBrodzinski/meteor-react-boilerplate/issues\"\n  },\n  \"homepage\": \"https://github.com/AdamBrodzinski/meteor-react-boilerplate\",\n  \"dependencies\": {\n    \"classnames\": \"^2.2.5\",\n    \"history\": \"^3.0.0\",\n    \"react\": \"^15.3.0\",\n    \"react-dom\": \"^15.3.0\",\n    \"react-router-dom\": \"^4.0.0-beta.6\"\n  }\n}\n"
  },
  {
    "path": "server/main.js",
    "content": "import '../imports/startup/server/main.js';\n"
  }
]