diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..da6ed88
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+node_modules
+settings-demo.json
+settings-staging.json
+settings-production.json
diff --git a/.meteor/.finished-upgraders b/.meteor/.finished-upgraders
new file mode 100644
index 0000000..910574c
--- /dev/null
+++ b/.meteor/.finished-upgraders
@@ -0,0 +1,17 @@
+# This file contains information which helps Meteor properly upgrade your
+# app when you run 'meteor update'. You should check it into version control
+# with your project.
+
+notices-for-0.9.0
+notices-for-0.9.1
+0.9.4-platform-file
+notices-for-facebook-graph-api-2
+1.2.0-standard-minifiers-package
+1.2.0-meteor-platform-split
+1.2.0-cordova-changes
+1.2.0-breaking-changes
+1.3.0-split-minifiers-package
+1.4.0-remove-old-dev-bundle-link
+1.4.1-add-shell-server-package
+1.4.3-split-account-service-packages
+1.5-add-dynamic-import-package
diff --git a/.meteor/.gitignore b/.meteor/.gitignore
new file mode 100644
index 0000000..4083037
--- /dev/null
+++ b/.meteor/.gitignore
@@ -0,0 +1 @@
+local
diff --git a/.meteor/.id b/.meteor/.id
new file mode 100644
index 0000000..9c23f12
--- /dev/null
+++ b/.meteor/.id
@@ -0,0 +1,7 @@
+# This file contains a token that is unique to your project.
+# Check it into your repository along with the rest of this directory.
+# It can be used for purposes such as:
+# - ensuring you don't accidentally deploy one app on top of another
+# - providing package authors with aggregated statistics
+
+16be20efyo0qb53r01o
diff --git a/.meteor/packages b/.meteor/packages
new file mode 100644
index 0000000..62200af
--- /dev/null
+++ b/.meteor/packages
@@ -0,0 +1,35 @@
+# Meteor packages used by this project, one per line.
+# Check this file (and the other files in this directory) into your repository.
+#
+# 'meteor add' and 'meteor remove' will edit this file for you,
+# but you can also edit it by hand.
+
+meteor-base@1.1.0 # Packages every Meteor app needs to have
+mobile-experience@1.0.4 # Packages for a great mobile UX
+mongo@1.2.0 # The database Meteor supports right now
+reactive-var@1.0.11 # Reactive variable for tracker
+tracker@1.1.3 # Meteor's client-side reactive programming library
+
+standard-minifier-css@1.3.4 # CSS minifier run for production mode
+standard-minifier-js@2.1.1 # JS minifier run for production mode
+es5-shim@4.6.15 # ECMAScript 5 compatibility for older browsers.
+ecmascript@0.8.2 # Enable ECMAScript2015+ syntax in app code
+shell-server@0.2.4 # Server-side component of the `meteor shell` command
+
+react-meteor-data
+alanning:roles
+fourseven:scss
+twbs:bootstrap
+accounts-base@1.3.2
+accounts-password@1.4.0
+service-configuration@1.0.11
+accounts-facebook@1.2.1
+accounts-github@1.3.0
+accounts-google@1.2.0
+themeteorchef:bert
+fortawesome:fontawesome
+aldeed:collection2-core@2.0.1
+audit-argument-checks@1.0.7
+ddp-rate-limiter@1.0.7
+dynamic-import@0.1.1
+static-html
diff --git a/.meteor/platforms b/.meteor/platforms
new file mode 100644
index 0000000..efeba1b
--- /dev/null
+++ b/.meteor/platforms
@@ -0,0 +1,2 @@
+server
+browser
diff --git a/.meteor/release b/.meteor/release
new file mode 100644
index 0000000..47c31ab
--- /dev/null
+++ b/.meteor/release
@@ -0,0 +1 @@
+METEOR@1.5.2
diff --git a/.meteor/versions b/.meteor/versions
new file mode 100644
index 0000000..87e5bde
--- /dev/null
+++ b/.meteor/versions
@@ -0,0 +1,104 @@
+accounts-base@1.3.3
+accounts-facebook@1.2.1
+accounts-github@1.3.0
+accounts-google@1.2.0
+accounts-oauth@1.1.15
+accounts-password@1.4.0
+alanning:roles@1.2.16
+aldeed:collection2-core@2.0.1
+allow-deny@1.0.9
+audit-argument-checks@1.0.7
+autoupdate@1.3.12
+babel-compiler@6.20.0
+babel-runtime@1.0.1
+base64@1.0.10
+binary-heap@1.0.10
+blaze@2.3.2
+blaze-tools@1.0.10
+boilerplate-generator@1.2.0
+caching-compiler@1.1.9
+caching-html-compiler@1.1.2
+callback-hook@1.0.10
+check@1.2.5
+ddp@1.3.1
+ddp-client@2.1.3
+ddp-common@1.2.9
+ddp-rate-limiter@1.0.7
+ddp-server@2.0.2
+deps@1.0.12
+diff-sequence@1.0.7
+dynamic-import@0.1.3
+ecmascript@0.8.2
+ecmascript-runtime@0.4.1
+ecmascript-runtime-client@0.4.3
+ecmascript-runtime-server@0.4.1
+ejson@1.0.14
+email@1.2.3
+es5-shim@4.6.15
+facebook-oauth@1.3.2
+fastclick@1.0.13
+fortawesome:fontawesome@4.7.0
+fourseven:scss@4.5.4
+geojson-utils@1.0.10
+github-oauth@1.2.0
+google-oauth@1.2.4
+hot-code-push@1.0.4
+html-tools@1.0.11
+htmljs@1.0.11
+http@1.2.12
+id-map@1.0.9
+jquery@1.11.10
+launch-screen@1.1.1
+livedata@1.0.18
+localstorage@1.1.1
+logging@1.1.17
+meteor@1.7.2
+meteor-base@1.1.0
+minifier-css@1.2.16
+minifier-js@2.1.3
+minimongo@1.3.1
+mobile-experience@1.0.4
+mobile-status-bar@1.0.14
+modules@0.10.0
+modules-runtime@0.8.0
+mongo@1.2.2
+mongo-dev-server@1.0.1
+mongo-id@1.0.6
+npm-bcrypt@0.9.3
+npm-mongo@2.2.30
+oauth@1.1.13
+oauth2@1.1.11
+observe-sequence@1.0.16
+ordered-dict@1.0.9
+promise@0.9.0
+raix:eventemitter@0.1.3
+random@1.0.10
+rate-limit@1.0.8
+react-meteor-data@0.2.13
+reactive-dict@1.1.9
+reactive-var@1.0.11
+reload@1.1.11
+retry@1.0.9
+routepolicy@1.0.12
+service-configuration@1.0.11
+session@1.1.7
+sha@1.0.9
+shell-server@0.2.4
+spacebars@1.0.15
+spacebars-compiler@1.1.3
+srp@1.0.10
+standard-minifier-css@1.3.5
+standard-minifier-js@2.1.1
+static-html@1.2.2
+templating@1.3.2
+templating-compiler@1.3.3
+templating-runtime@1.3.2
+templating-tools@1.1.2
+themeteorchef:bert@2.1.3
+tmeasday:check-npm-versions@0.3.1
+tracker@1.1.3
+twbs:bootstrap@3.3.6
+underscore@1.0.10
+url@1.1.0
+webapp@1.3.19
+webapp-hashing@1.0.9
diff --git a/History.md b/History.md
new file mode 100644
index 0000000..f64a6d7
--- /dev/null
+++ b/History.md
@@ -0,0 +1,69 @@
+## v.NEXT
+
+- Improve [#96](https://github.com/cleverbeagle/pup/issues/96). Fix miscellaneous ESLint errors (h/t [@cdolek](https://github.com/cdolek) for sniffing these out).
+- Improve [#95](https://github.com/cleverbeagle/pup/issues/95). Migrate from `createContainer` method to `withTracker` for data containers (h/t [@cdolek](https://github.com/cdolek) for sniffing these out).
+- Improve [#94](https://github.com/cleverbeagle/pup/issues/94). Bump Meteor to v1.6 and bump Atmosphere and NPM deps.
+- Improve [#53](https://github.com/cleverbeagle/pup/issues/53). Move method imports to be on both the client and the server to leverage Meteor's latency compensation by default (h/t [@zodern](https://github.com/zodern) for refactoring this).
+- Improve [#78](https://github.com/cleverbeagle/pup/issues/78). Deprecate `@cleverbeagle/dates` package in favor of a local file of date helpers (h/t [@zodern](https://github.com/zodern) for refactoring this).
+- Improve [#79](https://github.com/cleverbeagle/pup/issues/79). Add `babel-plugin-lodash` to reduce footprint of Lodash to only methods that are used in the project (h/t [@ninjaPixel](https://github.com/ninjaPixel) for finding/implementing this).
+- Improve [#80](https://github.com/cleverbeagle/pup/issues/80). Add exception to disable `max-len` ESLint rule (h/t [@ninjaPixel](https://github.com/ninjaPixel) for implementing this).
+- Improve [#60](https://github.com/cleverbeagle/pup/issues/60). Move to `babel-preset-env` from `babel-preset-es2015` (h/t [@pilarArr](https://github.com/pilarArr) for implementing this).
+- Fix [#59](https://github.com/cleverbeagle/pup/issues/59). Fix ESLint throwing a tantrum about line endings on Windows (h/t [@pilarArr](https://github.com/pilarArr) for implementing this).
+- Improve [#47](https://github.com/cleverbeagle/pup/issues/47). Move `getUserName()` function in `/imports/ui/layouts/App/App.js` into its own file (h/t [@pilarArr](https://github.com/pilarArr) for implementing this).
+- Improve [#46](https://github.com/cleverbeagle/pup/issues/46). Move the resend verification email bar into its own component (h/t [@pilarArr](https://github.com/pilarArr) for implementing this).
+
+## v1.2.2, September 30th, 2017
+
+- Fix [#66](https://github.com/cleverbeagle/pup/issues/66). Remove unnecessary `callback` argument causing trouble in `/imports/modules/server/send-email.js`.
+
+- Fix [#74](https://github.com/cleverbeagle/pup/issues/74). Fix typo in `/imports/ui/components/Public/Public.js`.
+
+## v1.2.1, September 24th, 2017
+
+- Fix [#68](https://github.com/cleverbeagle/pup/issues/68). Update Meteor to v1.5.2 and bump Atmosphere dependencies to latest versions.
+
+## v1.2.0, September 7th, 2017
+
+- Fix [#31](https://github.com/cleverbeagle/pup/issues/31). Fix name not rendering for users logged in via OAuth with Google.
+- Fix [#32](https://github.com/cleverbeagle/pup/issues/32). Fix route props not being passed to rendered component in ` ` and ` `. h/t @pilarArr for the fix.
+- Improve [#37](https://github.com/cleverbeagle/pup/issues/37). Bump Atmosphere and NPM dependencies to latest versions. h/t @pilarArr for the refactor.
+- Improve [#40](https://github.com/cleverbeagle/pup/issues/40). Move `Meteor.logout()` call to be triggered by visiting the `/logout` route.
+- Add [#44](https://github.com/cleverbeagle/pup/issues/44). Add support for transactional emails with HTML and text templates via Handlebars.
+- Improve [#45](https://github.com/cleverbeagle/pup/issues/45). Clean up the UI/UX of the "Edit Profile" view for users who are logged in via OAuth.
+
+## v1.1.1, August 6th, 2017
+
+- Fix [#27](https://github.com/cleverbeagle/pup/issues/27). Fix incorrect method name in rate limiter list in `/imports/api/Users/server/methods.js`.
+- Fix [#28](https://github.com/cleverbeagle/pup/issues/28). Fix verify email message displaying for users who log in via OAuth.
+- Fix [#29](https://github.com/cleverbeagle/pup/issues/29). Fix `@cleverbeagle/seeder` and `@cleverbeagle/dates` dependencies breaking initial startup. Also add `core-js` dependency as it was breaking some apps on startup.
+
+## v1.1.0, August 1st, 2017
+
+- Improve [#16](https://github.com/cleverbeagle/pup/issues/16). Adds missing import for `/imports/startup/server/accounts/on-create-user.js` in `/imports/startup/server/accounts/index.js`.
+ [Add documentation on usage of `Accounts.onCreateUser()`](/pup/v1/accounts/on-create-user-hook).
+
+- Improve [#17](https://github.com/cleverbeagle/pup/issues/17). Move setting of user password in editing profile to client to ensure the user's current password is actually checked (implements Meteor's `Accounts.changePassword()` method).
+
+- Add [#20](https://github.com/cleverbeagle/pup/issues/20). Add support for `lodash` package via NPM and swap usage of `capitalize()` method from `@cleverbeagle/strings` package with lodash's `_.capitalize()` method. Remove `@cleverbeagle/strings` from NPM dependencies.
+
+- Add [#21](https://github.com/cleverbeagle/pup/issues/21). Add support for (non-blocking) email verification on user signup. [Add documentation on email verification process](/pup/v1/accounts/email-verification).
+
+- Fix [#23](https://github.com/cleverbeagle/pup/issues/23). Fixes a React PropTypes warning showing up when accessing a non-existing document on `/documents/:_id/edit`. Also improve 404 handling on `/documents/:_id/edit` and `/documents/:_id` when no document is passed.
+
+- Fix [#24](https://github.com/cleverbeagle/pup/issues/24). Remove unnecessary `_.pluck()` call obscuring the method names passed to the `rateLimit()` options object.
+
+## v1.0.3, July 9th, 2017
+
+- Fix [#14](https://github.com/cleverbeagle/pup/issues/14). Remove unnecessary `loggingIn` check that was forcing the page to re-render.
+
+## v1.0.2, June 27th, 2017
+
+- Fix [#12](https://github.com/cleverbeagle/pup/issues/12). Fixes prop type warning being thrown when transitioning to the `ViewDocument` page component from the `NewDocument` page component.
+
+## v1.0.1, June 14th, 2017
+
+- Fix [#1](https://github.com/cleverbeagle/pup/issues/1). h/t to [@sczk](https://github.com/sczk) for pointing out the fix.
+
+## v1.0.0, June 13th, 2017
+
+- Initial release of Pup.
diff --git a/README.md b/README.md
index e69de29..5d2adc6 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1,8 @@
+### Pup
+A boilerplate for products.
+
+[Read the Documentation](http://cleverbeagle.com/pup)
+
+---
+
+Need help and want to stay accountable building your product? [Check out Clever Beagle](http://cleverbeagle.com).
diff --git a/client/main.html b/client/main.html
new file mode 100644
index 0000000..db2b85f
--- /dev/null
+++ b/client/main.html
@@ -0,0 +1,13 @@
+
+
+ Pup
+
+
+
+
+
+
+
+
+
+
diff --git a/client/main.js b/client/main.js
new file mode 100644
index 0000000..1412f30
--- /dev/null
+++ b/client/main.js
@@ -0,0 +1 @@
+import '../imports/startup/client';
diff --git a/imports/api/Documents/Documents.js b/imports/api/Documents/Documents.js
new file mode 100644
index 0000000..4974aab
--- /dev/null
+++ b/imports/api/Documents/Documents.js
@@ -0,0 +1,51 @@
+/* eslint-disable consistent-return */
+
+import { Mongo } from 'meteor/mongo';
+import SimpleSchema from 'simpl-schema';
+
+const Documents = new Mongo.Collection('Documents');
+
+Documents.allow({
+ insert: () => false,
+ update: () => false,
+ remove: () => false,
+});
+
+Documents.deny({
+ insert: () => true,
+ update: () => true,
+ remove: () => true,
+});
+
+Documents.schema = new SimpleSchema({
+ owner: {
+ type: String,
+ label: 'The ID of the user this document belongs to.',
+ },
+ createdAt: {
+ type: String,
+ label: 'The date this document was created.',
+ autoValue() {
+ if (this.isInsert) return (new Date()).toISOString();
+ },
+ },
+ updatedAt: {
+ type: String,
+ label: 'The date this document was last updated.',
+ autoValue() {
+ if (this.isInsert || this.isUpdate) return (new Date()).toISOString();
+ },
+ },
+ title: {
+ type: String,
+ label: 'The title of the document.',
+ },
+ body: {
+ type: String,
+ label: 'The body of the document.',
+ },
+});
+
+Documents.attachSchema(Documents.schema);
+
+export default Documents;
diff --git a/imports/api/Documents/methods.js b/imports/api/Documents/methods.js
new file mode 100644
index 0000000..29fbd8b
--- /dev/null
+++ b/imports/api/Documents/methods.js
@@ -0,0 +1,53 @@
+import { Meteor } from 'meteor/meteor';
+import { check } from 'meteor/check';
+import Documents from './Documents';
+import rateLimit from '../../modules/rate-limit';
+
+Meteor.methods({
+ 'documents.insert': function documentsInsert(doc) {
+ check(doc, {
+ title: String,
+ body: String,
+ });
+
+ try {
+ return Documents.insert({ owner: this.userId, ...doc });
+ } catch (exception) {
+ throw new Meteor.Error('500', exception);
+ }
+ },
+ 'documents.update': function documentsUpdate(doc) {
+ check(doc, {
+ _id: String,
+ title: String,
+ body: String,
+ });
+
+ try {
+ const documentId = doc._id;
+ Documents.update(documentId, { $set: doc });
+ return documentId; // Return _id so we can redirect to document after update.
+ } catch (exception) {
+ throw new Meteor.Error('500', exception);
+ }
+ },
+ 'documents.remove': function documentsRemove(documentId) {
+ check(documentId, String);
+
+ try {
+ return Documents.remove(documentId);
+ } catch (exception) {
+ throw new Meteor.Error('500', exception);
+ }
+ },
+});
+
+rateLimit({
+ methods: [
+ 'documents.insert',
+ 'documents.update',
+ 'documents.remove',
+ ],
+ limit: 5,
+ timeRange: 1000,
+});
diff --git a/imports/api/Documents/server/publications.js b/imports/api/Documents/server/publications.js
new file mode 100644
index 0000000..f667a8b
--- /dev/null
+++ b/imports/api/Documents/server/publications.js
@@ -0,0 +1,13 @@
+import { Meteor } from 'meteor/meteor';
+import { check } from 'meteor/check';
+import Documents from '../Documents';
+
+Meteor.publish('documents', function documents() {
+ return Documents.find({ owner: this.userId });
+});
+
+// Note: documents.view is also used when editing an existing document.
+Meteor.publish('documents.view', function documentsView(documentId) {
+ check(documentId, String);
+ return Documents.find({ _id: documentId, owner: this.userId });
+});
diff --git a/imports/api/OAuth/server/methods.js b/imports/api/OAuth/server/methods.js
new file mode 100644
index 0000000..6696da4
--- /dev/null
+++ b/imports/api/OAuth/server/methods.js
@@ -0,0 +1,30 @@
+import { Meteor } from 'meteor/meteor';
+import { check } from 'meteor/check';
+import { ServiceConfiguration } from 'meteor/service-configuration';
+import rateLimit from '../../../modules/rate-limit';
+
+Meteor.methods({
+ 'oauth.verifyConfiguration': function oauthVerifyConfiguration(services) {
+ check(services, Array);
+
+ try {
+ const verifiedServices = [];
+ services.forEach((service) => {
+ if (ServiceConfiguration.configurations.findOne({ service })) {
+ verifiedServices.push(service);
+ }
+ });
+ return verifiedServices.sort();
+ } catch (exception) {
+ throw new Meteor.Error('500', exception);
+ }
+ },
+});
+
+rateLimit({
+ methods: [
+ 'oauth.verifyConfiguration',
+ ],
+ limit: 5,
+ timeRange: 1000,
+});
diff --git a/imports/api/Users/server/edit-profile.js b/imports/api/Users/server/edit-profile.js
new file mode 100644
index 0000000..fc44093
--- /dev/null
+++ b/imports/api/Users/server/edit-profile.js
@@ -0,0 +1,32 @@
+/* eslint-disable consistent-return */
+
+import { Meteor } from 'meteor/meteor';
+
+let action;
+
+const updateUser = (userId, { emailAddress, profile }) => {
+ try {
+ Meteor.users.update(userId, {
+ $set: {
+ 'emails.0.address': emailAddress,
+ profile,
+ },
+ });
+ } catch (exception) {
+ action.reject(`[editProfile.updateUser] ${exception}`);
+ }
+};
+
+const editProfile = ({ userId, profile }, promise) => {
+ try {
+ action = promise;
+ updateUser(userId, profile);
+ action.resolve();
+ } catch (exception) {
+ action.reject(`[editProfile.handler] ${exception}`);
+ }
+};
+
+export default options =>
+new Promise((resolve, reject) =>
+editProfile(options, { resolve, reject }));
diff --git a/imports/api/Users/server/methods.js b/imports/api/Users/server/methods.js
new file mode 100644
index 0000000..130c6ee
--- /dev/null
+++ b/imports/api/Users/server/methods.js
@@ -0,0 +1,37 @@
+import { Meteor } from 'meteor/meteor';
+import { check } from 'meteor/check';
+import { Accounts } from 'meteor/accounts-base';
+import editProfile from './edit-profile';
+import rateLimit from '../../../modules/rate-limit';
+
+Meteor.methods({
+ 'users.sendVerificationEmail': function usersSendVerificationEmail() {
+ return Accounts.sendVerificationEmail(this.userId);
+ },
+ 'users.editProfile': function usersEditProfile(profile) {
+ check(profile, {
+ emailAddress: String,
+ profile: {
+ name: {
+ first: String,
+ last: String,
+ },
+ },
+ });
+
+ return editProfile({ userId: this.userId, profile })
+ .then(response => response)
+ .catch((exception) => {
+ throw new Meteor.Error('500', exception);
+ });
+ },
+});
+
+rateLimit({
+ methods: [
+ 'users.sendVerificationEmail',
+ 'users.editProfile',
+ ],
+ limit: 5,
+ timeRange: 1000,
+});
diff --git a/imports/api/Users/server/publications.js b/imports/api/Users/server/publications.js
new file mode 100644
index 0000000..7728b4b
--- /dev/null
+++ b/imports/api/Users/server/publications.js
@@ -0,0 +1,11 @@
+import { Meteor } from 'meteor/meteor';
+
+Meteor.publish('users.editProfile', function usersProfile() {
+ return Meteor.users.find(this.userId, {
+ fields: {
+ emails: 1,
+ profile: 1,
+ services: 1,
+ },
+ });
+});
diff --git a/imports/api/Users/server/send-welcome-email.js b/imports/api/Users/server/send-welcome-email.js
new file mode 100644
index 0000000..d15298d
--- /dev/null
+++ b/imports/api/Users/server/send-welcome-email.js
@@ -0,0 +1,25 @@
+import sendEmail from '../../../modules/server/send-email';
+import getOAuthProfile from '../../../modules/get-oauth-profile';
+
+export default (options, user) => {
+ const OAuthProfile = getOAuthProfile(options, user);
+
+ const applicationName = 'Application Name';
+ const firstName = OAuthProfile ? OAuthProfile.name.first : options.profile.name.first;
+ const emailAddress = OAuthProfile ? OAuthProfile.email : options.email;
+
+ return sendEmail({
+ to: emailAddress,
+ from: `${applicationName} `,
+ subject: `[${applicationName}] Welcome, ${firstName}!`,
+ template: 'welcome',
+ templateVars: {
+ applicationName,
+ firstName,
+ welcomeUrl: Meteor.absoluteUrl('documents'), // e.g., returns http://localhost:3000/documents
+ },
+ })
+ .catch((error) => {
+ throw new Meteor.Error('500', `${error}`);
+ });
+};
diff --git a/imports/api/Utility/server/methods.js b/imports/api/Utility/server/methods.js
new file mode 100644
index 0000000..498caae
--- /dev/null
+++ b/imports/api/Utility/server/methods.js
@@ -0,0 +1,11 @@
+import { Meteor } from 'meteor/meteor';
+import { check } from 'meteor/check';
+import getPrivateFile from '../../../modules/server/get-private-file';
+import parseMarkdown from '../../../modules/parse-markdown';
+
+Meteor.methods({
+ 'utility.getPage': function utilityGetPage(fileName) {
+ check(fileName, String);
+ return parseMarkdown(getPrivateFile(`pages/${fileName}.md`));
+ },
+});
diff --git a/imports/modules/get-oauth-profile.js b/imports/modules/get-oauth-profile.js
new file mode 100644
index 0000000..91866dc
--- /dev/null
+++ b/imports/modules/get-oauth-profile.js
@@ -0,0 +1,42 @@
+const parseGoogleData = service => {
+ return {
+ email: service.email,
+ name: {
+ first: service.given_name,
+ last: service.family_name,
+ },
+ };
+};
+
+const parseGithubData = (profile, service) => {
+ const name = profile.name.split(' ');
+ return {
+ email: service.email,
+ name: {
+ first: name[0],
+ last: name[1],
+ },
+ };
+};
+
+const parseFacebookData = service => {
+ return {
+ email: service.email,
+ name: {
+ first: service.first_name,
+ last: service.last_name,
+ },
+ };
+};
+
+const getDataForService = (profile, services) => {
+ if (services.facebook) return parseFacebookData(services.facebook);
+ if (services.github) return parseGithubData(profile, services.github);
+ if (services.google) return parseGoogleData(services.google);
+};
+
+export default (options, user) => {
+ const isOAuth = !options.password;
+ const serviceData = isOAuth ? getDataForService(options.profile, user.services) : null;
+ return isOAuth ? serviceData : null;
+};
diff --git a/imports/modules/parse-markdown.js b/imports/modules/parse-markdown.js
new file mode 100644
index 0000000..9ccaffd
--- /dev/null
+++ b/imports/modules/parse-markdown.js
@@ -0,0 +1,8 @@
+import { Parser, HtmlRenderer } from 'commonmark';
+
+export default (markdown, options) => {
+ const reader = new Parser();
+ const writer = options ? new HtmlRenderer(options) : new HtmlRenderer();
+ const parsed = reader.parse(markdown);
+ return writer.render(parsed);
+};
diff --git a/imports/modules/rate-limit.js b/imports/modules/rate-limit.js
new file mode 100644
index 0000000..d98096f
--- /dev/null
+++ b/imports/modules/rate-limit.js
@@ -0,0 +1,11 @@
+import { Meteor } from 'meteor/meteor';
+import { DDPRateLimiter } from 'meteor/ddp-rate-limiter';
+
+export default ({ methods, limit, timeRange }) => {
+ if (Meteor.isServer) {
+ DDPRateLimiter.addRule({
+ name(name) { return methods.indexOf(name) > -1; },
+ connectionId() { return true; },
+ }, limit, timeRange);
+ }
+};
diff --git a/imports/modules/server/get-private-file.js b/imports/modules/server/get-private-file.js
new file mode 100644
index 0000000..d2204d8
--- /dev/null
+++ b/imports/modules/server/get-private-file.js
@@ -0,0 +1,3 @@
+import fs from 'fs';
+
+export default path => fs.readFileSync(`assets/app/${path}`, 'utf8');
diff --git a/imports/modules/server/handlebars-email-to-html.js b/imports/modules/server/handlebars-email-to-html.js
new file mode 100644
index 0000000..4d7e809
--- /dev/null
+++ b/imports/modules/server/handlebars-email-to-html.js
@@ -0,0 +1,11 @@
+import handlebars from 'handlebars';
+import juice from 'juice';
+
+export default (handlebarsMarkup, context, options) => {
+ if (handlebarsMarkup && context) {
+ const template = handlebars.compile(handlebarsMarkup);
+ return options && !options.inlineCss ? template(context) : juice(template(context)); // Use juice to inline CSS styles from unless disabled.
+ }
+
+ throw new Error('Please pass Handlebars markup to compile and a context object with data mapping to the Handlebars expressions used in your template.');
+};
diff --git a/imports/modules/server/handlebars-email-to-text.js b/imports/modules/server/handlebars-email-to-text.js
new file mode 100644
index 0000000..c348901
--- /dev/null
+++ b/imports/modules/server/handlebars-email-to-text.js
@@ -0,0 +1,10 @@
+import handlebars from 'handlebars';
+
+export default (handlebarsMarkup, context) => {
+ if (handlebarsMarkup && context) {
+ const template = handlebars.compile(handlebarsMarkup);
+ return template(context);
+ }
+
+ throw new Error('Please pass Handlebars markup to compile and a context object with data mapping to the Handlebars expressions used in your template.');
+};
diff --git a/imports/modules/server/send-email.js b/imports/modules/server/send-email.js
new file mode 100644
index 0000000..08b731d
--- /dev/null
+++ b/imports/modules/server/send-email.js
@@ -0,0 +1,29 @@
+import { Meteor } from 'meteor/meteor';
+import { Email } from 'meteor/email';
+import getPrivateFile from './get-private-file';
+import templateToText from './handlebars-email-to-text';
+import templateToHTML from './handlebars-email-to-html';
+
+const sendEmail = (options, { resolve, reject }) => {
+ try {
+ Meteor.defer(() => {
+ Email.send(options);
+ resolve();
+ });
+ } catch (exception) {
+ reject(exception);
+ }
+};
+
+export default ({ text, html, template, templateVars, ...rest }) => {
+ if (text || html || template) {
+ return new Promise((resolve, reject) => {
+ sendEmail({
+ ...rest,
+ text: template ? templateToText(getPrivateFile(`email-templates/${template}.txt`), (templateVars || {})) : text,
+ html: template ? templateToHTML(getPrivateFile(`email-templates/${template}.html`), (templateVars || {})) : html,
+ }, { resolve, reject });
+ });
+ }
+ throw new Error('Please pass an HTML string, text, or template name to compile for your message\'s body.');
+};
diff --git a/imports/modules/validate.js b/imports/modules/validate.js
new file mode 100644
index 0000000..33f6175
--- /dev/null
+++ b/imports/modules/validate.js
@@ -0,0 +1,4 @@
+import $ from 'jquery';
+import 'jquery-validation';
+
+export default (form, options) => $(form).validate(options);
diff --git a/imports/startup/client/index.js b/imports/startup/client/index.js
new file mode 100644
index 0000000..ccebfda
--- /dev/null
+++ b/imports/startup/client/index.js
@@ -0,0 +1,8 @@
+import React from 'react';
+import { render } from 'react-dom';
+import { Meteor } from 'meteor/meteor';
+import App from '../../ui/layouts/App/App';
+
+import '../../ui/stylesheets/app.scss';
+
+Meteor.startup(() => render( , document.getElementById('react-root')));
diff --git a/imports/startup/server/accounts/email-templates.js b/imports/startup/server/accounts/email-templates.js
new file mode 100644
index 0000000..40a2f18
--- /dev/null
+++ b/imports/startup/server/accounts/email-templates.js
@@ -0,0 +1,59 @@
+import { Meteor } from 'meteor/meteor';
+import { Accounts } from 'meteor/accounts-base';
+import getPrivateFile from '../../../modules/server/get-private-file';
+import templateToHTML from '../../../modules/server/handlebars-email-to-html';
+import templateToText from '../../../modules/server/handlebars-email-to-text';
+
+const name = 'Application Name';
+const email = '';
+const from = `${name} ${email}`;
+const emailTemplates = Accounts.emailTemplates;
+
+emailTemplates.siteName = name;
+emailTemplates.from = from;
+
+emailTemplates.verifyEmail = {
+ subject() {
+ return `[${name}] Verify Your Email Address`;
+ },
+ html(user, url) {
+ return templateToHTML(getPrivateFile('email-templates/verify-email.html'), {
+ applicationName: name,
+ firstName: user.profile.name.first,
+ verifyUrl: url.replace('#/', '')
+ });
+ },
+ text(user, url) {
+ const urlWithoutHash = url.replace('#/', '');
+ if (Meteor.isDevelopment) console.info(`Verify Email Link: ${urlWithoutHash}`); // eslint-disable-line
+ return templateToText(getPrivateFile('email-templates/verify-email.txt'), {
+ applicationName: name,
+ firstName: user.profile.name.first,
+ verifyUrl: urlWithoutHash,
+ });
+ },
+};
+
+emailTemplates.resetPassword = {
+ subject() {
+ return `[${name}] Reset Your Password`;
+ },
+ html(user, url) {
+ return templateToHTML(getPrivateFile('email-templates/reset-password.html'), {
+ firstName: user.profile.name.first,
+ applicationName: name,
+ emailAddress: user.emails[0].address,
+ resetUrl: url.replace('#/', ''),
+ });
+ },
+ text(user, url) {
+ const urlWithoutHash = url.replace('#/', '');
+ if (Meteor.isDevelopment) console.info(`Reset Password Link: ${urlWithoutHash}`); // eslint-disable-line
+ return templateToText(getPrivateFile('email-templates/reset-password.txt'), {
+ firstName: user.profile.name.first,
+ applicationName: name,
+ emailAddress: user.emails[0].address,
+ resetUrl: urlWithoutHash,
+ });
+ },
+};
diff --git a/imports/startup/server/accounts/index.js b/imports/startup/server/accounts/index.js
new file mode 100644
index 0000000..f9400a8
--- /dev/null
+++ b/imports/startup/server/accounts/index.js
@@ -0,0 +1,3 @@
+import './oauth';
+import './email-templates';
+import './on-create-user.js';
diff --git a/imports/startup/server/accounts/oauth.js b/imports/startup/server/accounts/oauth.js
new file mode 100644
index 0000000..545519a
--- /dev/null
+++ b/imports/startup/server/accounts/oauth.js
@@ -0,0 +1,13 @@
+import { Meteor } from 'meteor/meteor';
+import { ServiceConfiguration } from 'meteor/service-configuration';
+
+const OAuthSettings = Meteor.settings.private.OAuth;
+
+if (OAuthSettings) {
+ Object.keys(OAuthSettings).forEach((service) => {
+ ServiceConfiguration.configurations.upsert(
+ { service },
+ { $set: OAuthSettings[service] },
+ );
+ });
+}
diff --git a/imports/startup/server/accounts/on-create-user.js b/imports/startup/server/accounts/on-create-user.js
new file mode 100644
index 0000000..92d8b40
--- /dev/null
+++ b/imports/startup/server/accounts/on-create-user.js
@@ -0,0 +1,9 @@
+import { Accounts } from 'meteor/accounts-base';
+import sendWelcomeEmail from '../../../api/Users/server/send-welcome-email';
+
+Accounts.onCreateUser((options, user) => {
+ const userToCreate = user;
+ if (options.profile) userToCreate.profile = options.profile;
+ sendWelcomeEmail(options, user);
+ return userToCreate;
+});
diff --git a/imports/startup/server/api.js b/imports/startup/server/api.js
new file mode 100644
index 0000000..e351317
--- /dev/null
+++ b/imports/startup/server/api.js
@@ -0,0 +1,9 @@
+import '../../api/Documents/methods';
+import '../../api/Documents/server/publications';
+
+import '../../api/OAuth/server/methods';
+
+import '../../api/Users/server/methods';
+import '../../api/Users/server/publications';
+
+import '../../api/Utility/server/methods';
diff --git a/imports/startup/server/email.js b/imports/startup/server/email.js
new file mode 100644
index 0000000..377599c
--- /dev/null
+++ b/imports/startup/server/email.js
@@ -0,0 +1,3 @@
+import { Meteor } from 'meteor/meteor';
+
+if (Meteor.isDevelopment) process.env.MAIL_URL = Meteor.settings.private.MAIL_URL;
diff --git a/imports/startup/server/fixtures.js b/imports/startup/server/fixtures.js
new file mode 100644
index 0000000..d608ab1
--- /dev/null
+++ b/imports/startup/server/fixtures.js
@@ -0,0 +1,54 @@
+import seeder from '@cleverbeagle/seeder';
+import { Meteor } from 'meteor/meteor';
+import Documents from '../../api/Documents/Documents';
+
+const documentsSeed = userId => ({
+ collection: Documents,
+ environments: ['development', 'staging'],
+ noLimit: true,
+ modelCount: 5,
+ model(dataIndex) {
+ return {
+ owner: userId,
+ title: `Document #${dataIndex + 1}`,
+ body: `This is the body of document #${dataIndex + 1}`,
+ };
+ },
+});
+
+seeder(Meteor.users, {
+ environments: ['development', 'staging'],
+ noLimit: true,
+ data: [{
+ email: 'admin@admin.com',
+ password: 'password',
+ profile: {
+ name: {
+ first: 'Andy',
+ last: 'Warhol',
+ },
+ },
+ roles: ['admin'],
+ data(userId) {
+ return documentsSeed(userId);
+ },
+ }],
+ modelCount: 5,
+ model(index, faker) {
+ const userCount = index + 1;
+ return {
+ email: `user+${userCount}@test.com`,
+ password: 'password',
+ profile: {
+ name: {
+ first: faker.name.firstName(),
+ last: faker.name.lastName(),
+ },
+ },
+ roles: ['user'],
+ data(userId) {
+ return documentsSeed(userId);
+ },
+ };
+ },
+});
diff --git a/imports/startup/server/index.js b/imports/startup/server/index.js
new file mode 100644
index 0000000..09fb6b3
--- /dev/null
+++ b/imports/startup/server/index.js
@@ -0,0 +1,4 @@
+import './accounts';
+import './api';
+import './fixtures';
+import './email';
diff --git a/imports/ui/components/AccountPageFooter/AccountPageFooter.js b/imports/ui/components/AccountPageFooter/AccountPageFooter.js
new file mode 100644
index 0000000..dd5a1e7
--- /dev/null
+++ b/imports/ui/components/AccountPageFooter/AccountPageFooter.js
@@ -0,0 +1,16 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+
+import './AccountPageFooter.scss';
+
+const AccountPageFooter = ({ children }) => (
+
+ {children}
+
+);
+
+AccountPageFooter.propTypes = {
+ children: PropTypes.node.isRequired,
+};
+
+export default AccountPageFooter;
diff --git a/imports/ui/components/AccountPageFooter/AccountPageFooter.scss b/imports/ui/components/AccountPageFooter/AccountPageFooter.scss
new file mode 100644
index 0000000..0e6b0df
--- /dev/null
+++ b/imports/ui/components/AccountPageFooter/AccountPageFooter.scss
@@ -0,0 +1,7 @@
+@import '../../stylesheets/colors';
+
+.AccountPageFooter {
+ margin: 25px 0 0;
+ padding-top: 20px;
+ border-top: 1px solid $gray-lighter;
+}
diff --git a/imports/ui/components/Authenticated/Authenticated.js b/imports/ui/components/Authenticated/Authenticated.js
new file mode 100644
index 0000000..f34da2f
--- /dev/null
+++ b/imports/ui/components/Authenticated/Authenticated.js
@@ -0,0 +1,23 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import { Route, Redirect } from 'react-router-dom';
+
+const Authenticated = ({ loggingIn, authenticated, component, path, exact, ...rest }) => (
+ (
+ authenticated ?
+ (React.createElement(component, { ...props, ...rest, loggingIn, authenticated })) :
+ ( )
+ )}
+ />
+);
+
+Authenticated.propTypes = {
+ loggingIn: PropTypes.bool.isRequired,
+ authenticated: PropTypes.bool.isRequired,
+ component: PropTypes.func.isRequired,
+};
+
+export default Authenticated;
diff --git a/imports/ui/components/AuthenticatedNavigation/AuthenticatedNavigation.js b/imports/ui/components/AuthenticatedNavigation/AuthenticatedNavigation.js
new file mode 100644
index 0000000..c8f6b18
--- /dev/null
+++ b/imports/ui/components/AuthenticatedNavigation/AuthenticatedNavigation.js
@@ -0,0 +1,31 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import { withRouter } from 'react-router-dom';
+import { LinkContainer } from 'react-router-bootstrap';
+import { Nav, NavItem, NavDropdown, MenuItem } from 'react-bootstrap';
+import { Meteor } from 'meteor/meteor';
+
+const AuthenticatedNavigation = ({ name, history }) => (
+
+
+
+ Documents
+
+
+
+
+
+ Profile
+
+
+ history.push('/logout')}>Logout
+
+
+
+);
+
+AuthenticatedNavigation.propTypes = {
+ name: PropTypes.string.isRequired,
+};
+
+export default withRouter(AuthenticatedNavigation);
diff --git a/imports/ui/components/Content/Content.js b/imports/ui/components/Content/Content.js
new file mode 100644
index 0000000..b38d9ca
--- /dev/null
+++ b/imports/ui/components/Content/Content.js
@@ -0,0 +1,16 @@
+/* eslint-disable react/no-danger */
+
+import React from 'react';
+import PropTypes from 'prop-types';
+
+import './Content.scss';
+
+const Content = ({ content }) => (
+
+);
+
+Content.propTypes = {
+ content: PropTypes.string.isRequired,
+};
+
+export default Content;
diff --git a/imports/ui/components/Content/Content.scss b/imports/ui/components/Content/Content.scss
new file mode 100644
index 0000000..a1573ea
--- /dev/null
+++ b/imports/ui/components/Content/Content.scss
@@ -0,0 +1,36 @@
+@import '../../stylesheets/mixins';
+
+.Content {
+ max-width: 700px;
+ margin: 0 auto;
+ font-size: 14px;
+ line-height: 22px;
+
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6 {
+ margin: 30px 0 20px;
+ }
+
+ p {
+ margin-bottom: 20px;
+ }
+
+ > *:first-child {
+ margin-top: 0px;
+ }
+
+ > *:last-child {
+ margin-bottom: 0px;
+ }
+}
+
+@include breakpoint(tablet) {
+ .Content {
+ font-size: 16px;
+ line-height: 22px;
+ }
+}
diff --git a/imports/ui/components/DocumentEditor/DocumentEditor.js b/imports/ui/components/DocumentEditor/DocumentEditor.js
new file mode 100644
index 0000000..4a42df7
--- /dev/null
+++ b/imports/ui/components/DocumentEditor/DocumentEditor.js
@@ -0,0 +1,97 @@
+/* eslint-disable max-len, no-return-assign */
+
+import React from 'react';
+import PropTypes from 'prop-types';
+import { FormGroup, ControlLabel, Button } from 'react-bootstrap';
+import { Meteor } from 'meteor/meteor';
+import { Bert } from 'meteor/themeteorchef:bert';
+import validate from '../../../modules/validate';
+
+class DocumentEditor extends React.Component {
+ componentDidMount() {
+ const component = this;
+ validate(component.form, {
+ rules: {
+ title: {
+ required: true,
+ },
+ body: {
+ required: true,
+ },
+ },
+ messages: {
+ title: {
+ required: 'Need a title in here, Seuss.',
+ },
+ body: {
+ required: 'This thneeds a body, please.',
+ },
+ },
+ submitHandler() { component.handleSubmit(); },
+ });
+ }
+
+ handleSubmit() {
+ const { history } = this.props;
+ const existingDocument = this.props.doc && this.props.doc._id;
+ const methodToCall = existingDocument ? 'documents.update' : 'documents.insert';
+ const doc = {
+ title: this.title.value.trim(),
+ body: this.body.value.trim(),
+ };
+
+ if (existingDocument) doc._id = existingDocument;
+
+ Meteor.call(methodToCall, doc, (error, documentId) => {
+ if (error) {
+ Bert.alert(error.reason, 'danger');
+ } else {
+ const confirmation = existingDocument ? 'Document updated!' : 'Document added!';
+ this.form.reset();
+ Bert.alert(confirmation, 'success');
+ history.push(`/documents/${documentId}`);
+ }
+ });
+ }
+
+ render() {
+ const { doc } = this.props;
+ return ();
+ }
+}
+
+DocumentEditor.defaultProps = {
+ doc: { title: '', body: '' },
+};
+
+DocumentEditor.propTypes = {
+ doc: PropTypes.object,
+ history: PropTypes.object.isRequired,
+};
+
+export default DocumentEditor;
diff --git a/imports/ui/components/Footer/Footer.js b/imports/ui/components/Footer/Footer.js
new file mode 100644
index 0000000..e5f61b6
--- /dev/null
+++ b/imports/ui/components/Footer/Footer.js
@@ -0,0 +1,27 @@
+import React from 'react';
+import { year } from '@cleverbeagle/dates';
+import { Link } from 'react-router-dom';
+import { Grid } from 'react-bootstrap';
+
+import './Footer.scss';
+
+const copyrightYear = () => {
+ const currentYear = year();
+ return currentYear === '2017' ? '2017' : `2017-${currentYear}`;
+};
+
+const Footer = () => (
+
+
+ © {copyrightYear()} Application Name
+
+ Terms of Service
+ Privacy Policy
+
+
+
+);
+
+Footer.propTypes = {};
+
+export default Footer;
diff --git a/imports/ui/components/Footer/Footer.scss b/imports/ui/components/Footer/Footer.scss
new file mode 100644
index 0000000..d0cb740
--- /dev/null
+++ b/imports/ui/components/Footer/Footer.scss
@@ -0,0 +1,55 @@
+@import '../../stylesheets/mixins';
+@import '../../stylesheets/colors';
+
+html {
+ position: relative;
+ min-height: 100%;
+}
+
+body {
+ margin-bottom: 80px;
+}
+
+.Footer {
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ height: 60px;
+ background-color: #fff;
+ border-top: 1px solid $gray-lighter;
+ padding: 20px 0;
+
+ p {
+ color: $gray-light;
+ }
+
+ ul {
+ list-style: none;
+ padding: 0;
+ }
+
+ ul li {
+ float: left;
+
+ &:first-child {
+ margin-right: 15px;
+ }
+
+ a {
+ color: $gray-light;
+ }
+
+ a:hover,
+ a:active,
+ a:focus {
+ text-decoration: none;
+ color: $gray;
+ }
+ }
+}
+
+@include breakpoint(tablet) {
+ .Footer ul li:first-child {
+ margin-right: 30px;
+ }
+}
diff --git a/imports/ui/components/Icon/Icon.js b/imports/ui/components/Icon/Icon.js
new file mode 100644
index 0000000..078787f
--- /dev/null
+++ b/imports/ui/components/Icon/Icon.js
@@ -0,0 +1,10 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+
+const Icon = ({ icon }) => ( );
+
+Icon.propTypes = {
+ icon: PropTypes.string.isRequired,
+};
+
+export default Icon;
diff --git a/imports/ui/components/InputHint/InputHint.js b/imports/ui/components/InputHint/InputHint.js
new file mode 100644
index 0000000..6342880
--- /dev/null
+++ b/imports/ui/components/InputHint/InputHint.js
@@ -0,0 +1,16 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+
+import './InputHint.scss';
+
+const InputHint = ({ children }) => (
+
+ {children}
+
+);
+
+InputHint.propTypes = {
+ children: PropTypes.node.isRequired,
+};
+
+export default InputHint;
diff --git a/imports/ui/components/InputHint/InputHint.scss b/imports/ui/components/InputHint/InputHint.scss
new file mode 100644
index 0000000..521d272
--- /dev/null
+++ b/imports/ui/components/InputHint/InputHint.scss
@@ -0,0 +1,9 @@
+@import '../../stylesheets/colors';
+
+.InputHint {
+ display: block;
+ margin-top: 8px;
+ font-style: italic;
+ color: $gray-light;
+ font-size: 13px;
+}
diff --git a/imports/ui/components/Loading/Loading.js b/imports/ui/components/Loading/Loading.js
new file mode 100644
index 0000000..69a5ff4
--- /dev/null
+++ b/imports/ui/components/Loading/Loading.js
@@ -0,0 +1,56 @@
+import React from 'react';
+
+const Loading = () => (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+);
+
+export default Loading;
diff --git a/imports/ui/components/Navigation/Navigation.js b/imports/ui/components/Navigation/Navigation.js
new file mode 100644
index 0000000..ffc3020
--- /dev/null
+++ b/imports/ui/components/Navigation/Navigation.js
@@ -0,0 +1,32 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import { Navbar } from 'react-bootstrap';
+import { Link } from 'react-router-dom';
+import PublicNavigation from '../PublicNavigation/PublicNavigation';
+import AuthenticatedNavigation from '../AuthenticatedNavigation/AuthenticatedNavigation';
+
+import './Navigation.scss';
+
+const Navigation = props => (
+
+
+
+ Pup
+
+
+
+
+ {!props.authenticated ? : }
+
+
+);
+
+Navigation.defaultProps = {
+ name: '',
+};
+
+Navigation.propTypes = {
+ authenticated: PropTypes.bool.isRequired,
+};
+
+export default Navigation;
diff --git a/imports/ui/components/Navigation/Navigation.scss b/imports/ui/components/Navigation/Navigation.scss
new file mode 100644
index 0000000..0734946
--- /dev/null
+++ b/imports/ui/components/Navigation/Navigation.scss
@@ -0,0 +1,6 @@
+.navbar {
+ border-radius: 0;
+ border-left: none;
+ border-right: none;
+ border-top: none;
+}
diff --git a/imports/ui/components/OAuthLoginButton/OAuthLoginButton.js b/imports/ui/components/OAuthLoginButton/OAuthLoginButton.js
new file mode 100644
index 0000000..afb8453
--- /dev/null
+++ b/imports/ui/components/OAuthLoginButton/OAuthLoginButton.js
@@ -0,0 +1,60 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import { Meteor } from 'meteor/meteor';
+import { Bert } from 'meteor/themeteorchef:bert';
+import Icon from '../Icon/Icon';
+
+import './OAuthLoginButton.scss';
+
+const handleLogin = (service, callback) => {
+ const options = {
+ facebook: {
+ requestPermissions: ['email'],
+ loginStyle: 'popup',
+ },
+ github: {
+ requestPermissions: ['user:email'],
+ loginStyle: 'popup',
+ },
+ google: {
+ requestPermissions: ['email', 'profile'],
+ requestOfflineToken: true,
+ loginStyle: 'popup',
+ },
+ }[service];
+
+ return {
+ facebook: Meteor.loginWithFacebook,
+ github: Meteor.loginWithGithub,
+ google: Meteor.loginWithGoogle,
+ }[service](options, callback);
+};
+
+const serviceLabel = {
+ facebook: Log In with Facebook ,
+ github: Log In with GitHub ,
+ google: Log In with Google ,
+};
+
+const OAuthLoginButton = ({ service, callback }) => (
+ handleLogin(service, callback)}
+ >
+ {serviceLabel[service]}
+
+);
+
+OAuthLoginButton.defaultProps = {
+ callback: (error) => {
+ if (error) Bert.alert(error.message, 'danger');
+ },
+};
+
+OAuthLoginButton.propTypes = {
+ service: PropTypes.string.isRequired,
+ callback: PropTypes.func,
+};
+
+export default OAuthLoginButton;
diff --git a/imports/ui/components/OAuthLoginButton/OAuthLoginButton.scss b/imports/ui/components/OAuthLoginButton/OAuthLoginButton.scss
new file mode 100644
index 0000000..59051a5
--- /dev/null
+++ b/imports/ui/components/OAuthLoginButton/OAuthLoginButton.scss
@@ -0,0 +1,52 @@
+@import '../../stylesheets/colors';
+
+.OAuthLoginButton {
+ display: block;
+ width: 100%;
+ padding: 10px 15px;
+ border: none;
+ background: $gray-lighter;
+ border-radius: 3px;
+
+ i {
+ margin-right: 3px;
+ font-size: 18px;
+ position: relative;
+ top: 1px;
+ }
+
+ &.OAuthLoginButton-facebook {
+ background: $facebook;
+ color: #fff;
+
+ &:hover { background: darken($facebook, 5%); }
+ }
+
+ &.OAuthLoginButton-google {
+ background: $google;
+ color: #fff;
+
+ &:hover { background: darken($google, 5%); }
+ }
+
+ &.OAuthLoginButton-github {
+ background: $github;
+ color: #fff;
+
+ &:hover { background: darken($github, 5%); }
+ }
+
+ &:active {
+ position: relative;
+ top: 1px;
+ }
+
+ &:active,
+ &:focus {
+ outline: 0;
+ }
+}
+
+.OAuthLoginButton + .OAuthLoginButton {
+ margin-top: 10px;
+}
diff --git a/imports/ui/components/OAuthLoginButtons/OAuthLoginButtons.js b/imports/ui/components/OAuthLoginButtons/OAuthLoginButtons.js
new file mode 100644
index 0000000..60dc857
--- /dev/null
+++ b/imports/ui/components/OAuthLoginButtons/OAuthLoginButtons.js
@@ -0,0 +1,42 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import { Meteor } from 'meteor/meteor';
+import { createContainer } from 'meteor/react-meteor-data';
+import { ReactiveVar } from 'meteor/reactive-var';
+import OAuthLoginButton from '../OAuthLoginButton/OAuthLoginButton';
+
+import './OAuthLoginButtons.scss';
+
+const OAuthLoginButtons = ({ services, emailMessage }) => (services.length ? (
+
+ {services.map(service =>
)}
+ {emailMessage ?
+ {emailMessage.text}
+
: ''}
+
+) :
);
+
+OAuthLoginButtons.propTypes = {
+ services: PropTypes.array.isRequired,
+ emailMessage: PropTypes.object.isRequired,
+};
+
+const verificationComplete = new ReactiveVar(false);
+const verifiedServices = new ReactiveVar([]);
+
+export default createContainer(({ services }) => {
+ if (!verificationComplete.get()) {
+ Meteor.call('oauth.verifyConfiguration', services, (error, response) => {
+ if (error) {
+ console.warn(error);
+ } else {
+ verifiedServices.set(response);
+ verificationComplete.set(true);
+ }
+ });
+ }
+
+ return {
+ services: verifiedServices.get(),
+ };
+}, OAuthLoginButtons);
diff --git a/imports/ui/components/OAuthLoginButtons/OAuthLoginButtons.scss b/imports/ui/components/OAuthLoginButtons/OAuthLoginButtons.scss
new file mode 100644
index 0000000..673e347
--- /dev/null
+++ b/imports/ui/components/OAuthLoginButtons/OAuthLoginButtons.scss
@@ -0,0 +1,20 @@
+@import '../../stylesheets/colors';
+
+.OAuthLoginButtons {
+ margin-bottom: 25px;
+
+ &.WithEmailMessage {
+ position: relative;
+ border-bottom: 1px solid $gray-lighter;
+ padding-bottom: 30px;
+
+ .EmailMessage {
+ display: inline-block;
+ background: #fff;
+ padding: 0 10px;
+ position: absolute;
+ bottom: -19px;
+ left: 50%;
+ }
+ }
+}
diff --git a/imports/ui/components/PageHeader/PageHeader.js b/imports/ui/components/PageHeader/PageHeader.js
new file mode 100644
index 0000000..93b5c61
--- /dev/null
+++ b/imports/ui/components/PageHeader/PageHeader.js
@@ -0,0 +1,24 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+
+import './PageHeader.scss';
+
+const PageHeader = ({ title, subtitle }) => (
+
+
+
{title}
+ {subtitle ?
{subtitle}
: ''}
+
+
+);
+
+PageHeader.defaultProps = {
+ subtitle: '',
+};
+
+PageHeader.propTypes = {
+ title: PropTypes.string.isRequired,
+ subtitle: PropTypes.string,
+};
+
+export default PageHeader;
diff --git a/imports/ui/components/PageHeader/PageHeader.scss b/imports/ui/components/PageHeader/PageHeader.scss
new file mode 100644
index 0000000..3f7216f
--- /dev/null
+++ b/imports/ui/components/PageHeader/PageHeader.scss
@@ -0,0 +1,47 @@
+@import '../../stylesheets/mixins';
+@import '../../stylesheets/colors';
+
+.PageHeader {
+ border-bottom: 1px solid $gray-lighter;
+ padding: 0px 0 20px;
+ margin-bottom: 20px;
+
+ h1 {
+ font-size: 20px;
+ font-weight: 600;
+ margin: 0;
+ }
+
+ p {
+ font-size: 14px;
+ margin-top: 10px;
+ margin-bottom: 0;
+ color: $gray-light;
+ }
+}
+
+.PageHeader-container {
+ text-align: center;
+}
+
+@include breakpoint(tablet) {
+ .PageHeader {
+ padding: 10px 0 30px;
+ margin-bottom: 30px;
+
+ h1 {
+ font-size: 24px;
+ }
+
+ p {
+ font-size: 16px;
+ }
+ }
+}
+
+@include breakpoint(desktop) {
+ .PageHeader {
+ padding: 20px 0 40px;
+ margin-bottom: 40px;
+ }
+}
diff --git a/imports/ui/components/Public/Public.js b/imports/ui/components/Public/Public.js
new file mode 100644
index 0000000..991e1b8
--- /dev/null
+++ b/imports/ui/components/Public/Public.js
@@ -0,0 +1,23 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import { Route, Redirect } from 'react-router-dom';
+
+const Public = ({ loggingIn, authenticated, component, path, exact, ...rest }) => (
+ (
+ !authenticated ?
+ (React.createElement(component, { ...props, ...rest, loggingIn, authenticated })) :
+ ( )
+ )}
+ />
+);
+
+Public.propTypes = {
+ loggingIn: PropTypes.bool.isRequired,
+ authenticated: PropTypes.bool.isRequired,
+ component: PropTypes.func.isRequired,
+};
+
+export default Public;
diff --git a/imports/ui/components/PublicNavigation/PublicNavigation.js b/imports/ui/components/PublicNavigation/PublicNavigation.js
new file mode 100644
index 0000000..b254b86
--- /dev/null
+++ b/imports/ui/components/PublicNavigation/PublicNavigation.js
@@ -0,0 +1,16 @@
+import React from 'react';
+import { LinkContainer } from 'react-router-bootstrap';
+import { Nav, NavItem } from 'react-bootstrap';
+
+const PublicNavigation = () => (
+
+
+ Sign Up
+
+
+ Log In
+
+
+);
+
+export default PublicNavigation;
diff --git a/imports/ui/layouts/App/App.js b/imports/ui/layouts/App/App.js
new file mode 100644
index 0000000..2be6a1f
--- /dev/null
+++ b/imports/ui/layouts/App/App.js
@@ -0,0 +1,109 @@
+/* eslint-disable jsx-a11y/no-href*/
+
+import React from 'react';
+import PropTypes from 'prop-types';
+import { BrowserRouter as Router, Switch, Route } from 'react-router-dom';
+import { Grid, Alert, Button } from 'react-bootstrap';
+import { Meteor } from 'meteor/meteor';
+import { createContainer } from 'meteor/react-meteor-data';
+import { Roles } from 'meteor/alanning:roles';
+import { Bert } from 'meteor/themeteorchef:bert';
+import Navigation from '../../components/Navigation/Navigation';
+import Authenticated from '../../components/Authenticated/Authenticated';
+import Public from '../../components/Public/Public';
+import Index from '../../pages/Index/Index';
+import Documents from '../../pages/Documents/Documents';
+import NewDocument from '../../pages/NewDocument/NewDocument';
+import ViewDocument from '../../pages/ViewDocument/ViewDocument';
+import EditDocument from '../../pages/EditDocument/EditDocument';
+import Signup from '../../pages/Signup/Signup';
+import Login from '../../pages/Login/Login';
+import Logout from '../../pages/Logout/Logout';
+import VerifyEmail from '../../pages/VerifyEmail/VerifyEmail';
+import RecoverPassword from '../../pages/RecoverPassword/RecoverPassword';
+import ResetPassword from '../../pages/ResetPassword/ResetPassword';
+import Profile from '../../pages/Profile/Profile';
+import NotFound from '../../pages/NotFound/NotFound';
+import Footer from '../../components/Footer/Footer';
+import Terms from '../../pages/Terms/Terms';
+import Privacy from '../../pages/Privacy/Privacy';
+import ExamplePage from '../../pages/ExamplePage/ExamplePage';
+
+import './App.scss';
+
+const handleResendVerificationEmail = (emailAddress) => {
+ Meteor.call('users.sendVerificationEmail', (error) => {
+ if (error) {
+ Bert.alert(error.reason, 'danger');
+ } else {
+ Bert.alert(`Check ${emailAddress} for a verification link!`, 'success');
+ }
+ });
+};
+
+const App = props => (
+
+ {!props.loading ?
+ {props.userId && !props.emailVerified ?
Hey friend! Can you verify your email address ({props.emailAddress}) for us? handleResendVerificationEmail(props.emailAddress)} href="#">Re-send verification email
: ''}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
: ''}
+
+);
+
+App.defaultProps = {
+ userId: '',
+ emailAddress: '',
+};
+
+App.propTypes = {
+ loading: PropTypes.bool.isRequired,
+ userId: PropTypes.string,
+ emailAddress: PropTypes.string,
+ emailVerified: PropTypes.bool.isRequired,
+};
+
+const getUserName = name => ({
+ string: name,
+ object: `${name.first} ${name.last}`,
+}[typeof name]);
+
+export default createContainer(() => {
+ const loggingIn = Meteor.loggingIn();
+ const user = Meteor.user();
+ const userId = Meteor.userId();
+ const loading = !Roles.subscription.ready();
+ const name = user && user.profile && user.profile.name && getUserName(user.profile.name);
+ const emailAddress = user && user.emails && user.emails[0].address;
+
+ return {
+ loading,
+ loggingIn,
+ authenticated: !loggingIn && !!userId,
+ name: name || emailAddress,
+ roles: !loading && Roles.getRolesForUser(userId),
+ userId,
+ emailAddress,
+ emailVerified: user && user.emails ? user && user.emails && user.emails[0].verified : true,
+ };
+}, App);
diff --git a/imports/ui/layouts/App/App.scss b/imports/ui/layouts/App/App.scss
new file mode 100644
index 0000000..e3d6669
--- /dev/null
+++ b/imports/ui/layouts/App/App.scss
@@ -0,0 +1,23 @@
+@import '../../stylesheets/colors';
+
+.App > .container {
+ margin-bottom: 20px;
+}
+
+.App .verify-email {
+ margin-bottom: 0;
+ padding: 0;
+ border-top: none;
+ border-bottom: 1px solid #e7e7e7;
+ background: #fff;
+ color: $gray-dark;
+ border-radius: 0;
+
+ p {
+ padding: 19px;
+ }
+
+ .btn {
+ padding: 0;
+ }
+}
diff --git a/imports/ui/pages/Documents/Documents.js b/imports/ui/pages/Documents/Documents.js
new file mode 100644
index 0000000..6b7b2df
--- /dev/null
+++ b/imports/ui/pages/Documents/Documents.js
@@ -0,0 +1,82 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import { Link } from 'react-router-dom';
+import { Table, Alert, Button } from 'react-bootstrap';
+import { timeago, monthDayYearAtTime } from '@cleverbeagle/dates';
+import { Meteor } from 'meteor/meteor';
+import { createContainer } from 'meteor/react-meteor-data';
+import { Bert } from 'meteor/themeteorchef:bert';
+import DocumentsCollection from '../../../api/Documents/Documents';
+import Loading from '../../components/Loading/Loading';
+
+import './Documents.scss';
+
+const handleRemove = (documentId) => {
+ if (confirm('Are you sure? This is permanent!')) {
+ Meteor.call('documents.remove', documentId, (error) => {
+ if (error) {
+ Bert.alert(error.reason, 'danger');
+ } else {
+ Bert.alert('Document deleted!', 'success');
+ }
+ });
+ }
+};
+
+const Documents = ({ loading, documents, match, history }) => (!loading ? (
+
+
+
Documents
+ Add Document
+
+ {documents.length ?
+
+
+ Title
+ Last Updated
+ Created
+
+
+
+
+
+ {documents.map(({ _id, title, createdAt, updatedAt }) => (
+
+ {title}
+ {timeago(updatedAt)}
+ {monthDayYearAtTime(createdAt)}
+
+ history.push(`${match.url}/${_id}`)}
+ block
+ >View
+
+
+ handleRemove(_id)}
+ block
+ >Delete
+
+
+ ))}
+
+
:
No documents yet! }
+
+) : );
+
+Documents.propTypes = {
+ loading: PropTypes.bool.isRequired,
+ documents: PropTypes.arrayOf(PropTypes.object).isRequired,
+ match: PropTypes.object.isRequired,
+ history: PropTypes.object.isRequired,
+};
+
+export default createContainer(() => {
+ const subscription = Meteor.subscribe('documents');
+ return {
+ loading: !subscription.ready(),
+ documents: DocumentsCollection.find().fetch(),
+ };
+}, Documents);
diff --git a/imports/ui/pages/Documents/Documents.scss b/imports/ui/pages/Documents/Documents.scss
new file mode 100644
index 0000000..f753913
--- /dev/null
+++ b/imports/ui/pages/Documents/Documents.scss
@@ -0,0 +1,3 @@
+.Documents table tbody tr td {
+ vertical-align: middle;
+}
diff --git a/imports/ui/pages/EditDocument/EditDocument.js b/imports/ui/pages/EditDocument/EditDocument.js
new file mode 100644
index 0000000..cfae309
--- /dev/null
+++ b/imports/ui/pages/EditDocument/EditDocument.js
@@ -0,0 +1,33 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import { createContainer } from 'meteor/react-meteor-data';
+import { Meteor } from 'meteor/meteor';
+import Documents from '../../../api/Documents/Documents';
+import DocumentEditor from '../../components/DocumentEditor/DocumentEditor';
+import NotFound from '../NotFound/NotFound';
+
+const EditDocument = ({ doc, history }) => (doc ? (
+
+
{`Editing "${doc.title}"`}
+
+
+) : );
+
+EditDocument.defaultProps = {
+ doc: null,
+};
+
+EditDocument.propTypes = {
+ doc: PropTypes.object,
+ history: PropTypes.object.isRequired,
+};
+
+export default createContainer(({ match }) => {
+ const documentId = match.params._id;
+ const subscription = Meteor.subscribe('documents.view', documentId);
+
+ return {
+ loading: !subscription.ready(),
+ doc: Documents.findOne(documentId),
+ };
+}, EditDocument);
diff --git a/imports/ui/pages/ExamplePage/ExamplePage.js b/imports/ui/pages/ExamplePage/ExamplePage.js
new file mode 100644
index 0000000..349dedd
--- /dev/null
+++ b/imports/ui/pages/ExamplePage/ExamplePage.js
@@ -0,0 +1,14 @@
+import React from 'react';
+import Page from '../Page/Page';
+
+const ExamplePage = () => (
+
+);
+
+export default ExamplePage;
diff --git a/imports/ui/pages/Index/Index.js b/imports/ui/pages/Index/Index.js
new file mode 100644
index 0000000..35709e5
--- /dev/null
+++ b/imports/ui/pages/Index/Index.js
@@ -0,0 +1,24 @@
+import React from 'react';
+import { Button } from 'react-bootstrap';
+
+import './Index.scss';
+
+const Index = () => (
+
+
+
Pup
+
A boilerplate for products.
+
+ Read the Docs
+ Star on GitHub
+
+
+
+);
+
+export default Index;
diff --git a/imports/ui/pages/Index/Index.scss b/imports/ui/pages/Index/Index.scss
new file mode 100644
index 0000000..0e397a2
--- /dev/null
+++ b/imports/ui/pages/Index/Index.scss
@@ -0,0 +1,75 @@
+@import '../../stylesheets/mixins';
+@import '../../stylesheets/colors';
+
+.Index {
+ padding: 20px;
+ background: $cb-blue;
+ text-align: center;
+ border-radius: 3px;
+ color: #fff;
+
+ img {
+ width: 100px;
+ height: auto;
+ }
+
+ h1 {
+ font-size: 28px;
+ }
+
+ p {
+ font-size: 18px;
+ color: lighten($cb-blue, 25%);
+ }
+
+ > div {
+ display: inline-block;
+ margin: 10px 0 0;
+
+ .btn:first-child {
+ margin-right: 10px;
+ }
+
+ .btn {
+ border: none;
+ }
+ }
+
+ footer {
+ margin: 20px -20px -20px;
+ border-top: 1px solid darken($cb-blue, 10%);
+ padding: 20px;
+
+ p {
+ font-size: 14px;
+ line-height: 22px;
+ color: lighten($cb-blue, 35%);
+ margin: 0;
+ }
+
+ p a {
+ color: lighten($cb-blue, 35%);
+ text-decoration: underline;
+ }
+ }
+}
+
+@include breakpoint(tablet) {
+ .Index {
+ padding: 30px;
+
+ footer {
+ margin: 30px -30px -30px;
+ }
+ }
+}
+
+@include breakpoint(desktop) {
+ .Index {
+ padding: 40px;
+
+ footer {
+ margin: 40px -40px -40px;
+ }
+ }
+}
diff --git a/imports/ui/pages/Login/Login.js b/imports/ui/pages/Login/Login.js
new file mode 100644
index 0000000..fb7377f
--- /dev/null
+++ b/imports/ui/pages/Login/Login.js
@@ -0,0 +1,108 @@
+import React from 'react';
+import { Row, Col, FormGroup, ControlLabel, Button } from 'react-bootstrap';
+import PropTypes from 'prop-types';
+import { Link } from 'react-router-dom';
+import { Meteor } from 'meteor/meteor';
+import { Bert } from 'meteor/themeteorchef:bert';
+import OAuthLoginButtons from '../../components/OAuthLoginButtons/OAuthLoginButtons';
+import AccountPageFooter from '../../components/AccountPageFooter/AccountPageFooter';
+import validate from '../../../modules/validate';
+
+class Login extends React.Component {
+ constructor(props) {
+ super(props);
+ this.handleSubmit = this.handleSubmit.bind(this);
+ }
+
+ componentDidMount() {
+ const component = this;
+
+ validate(component.form, {
+ rules: {
+ emailAddress: {
+ required: true,
+ email: true,
+ },
+ password: {
+ required: true,
+ },
+ },
+ messages: {
+ emailAddress: {
+ required: 'Need an email address here.',
+ email: 'Is this email address correct?',
+ },
+ password: {
+ required: 'Need a password here.',
+ },
+ },
+ submitHandler() { component.handleSubmit(); },
+ });
+ }
+
+ handleSubmit() {
+ const { history } = this.props;
+
+ Meteor.loginWithPassword(this.emailAddress.value, this.password.value, (error) => {
+ if (error) {
+ Bert.alert(error.reason, 'danger');
+ } else {
+ Bert.alert('Welcome back!', 'success');
+ }
+ });
+ }
+
+ render() {
+ return ();
+ }
+}
+
+Login.propTypes = {
+ history: PropTypes.object.isRequired,
+};
+
+export default Login;
diff --git a/imports/ui/pages/Logout/Logout.js b/imports/ui/pages/Logout/Logout.js
new file mode 100644
index 0000000..127c35c
--- /dev/null
+++ b/imports/ui/pages/Logout/Logout.js
@@ -0,0 +1,32 @@
+import React from 'react';
+import Icon from '../../components/Icon/Icon';
+
+import './Logout.scss';
+
+class Logout extends React.Component {
+ componentDidMount() {
+ Meteor.logout();
+ }
+
+ render() {
+ return (
+
+
+
Stay safe out there.
+
{'Don\'t forget to like and follow Clever Beagle elsewhere on the web:'}
+
+
+ );
+ }
+}
+
+Logout.propTypes = {};
+
+export default Logout;
diff --git a/imports/ui/pages/Logout/Logout.scss b/imports/ui/pages/Logout/Logout.scss
new file mode 100644
index 0000000..6eeba19
--- /dev/null
+++ b/imports/ui/pages/Logout/Logout.scss
@@ -0,0 +1,57 @@
+@import '../../stylesheets/mixins';
+@import '../../stylesheets/colors';
+
+.Logout {
+ padding: 20px;
+ background: $cb-blue;
+ text-align: center;
+ border-radius: 3px;
+ color: #fff;
+
+ img {
+ width: 100px;
+ height: auto;
+ }
+
+ h1 {
+ font-size: 28px;
+ }
+
+ p {
+ font-size: 18px;
+ color: lighten($cb-blue, 25%);
+ }
+
+ ul {
+ list-style: none;
+ display: inline-block;
+ padding: 0;
+ margin: 10px 0 0;
+ }
+
+ ul li {
+ float: left;
+ font-size: 28px;
+ line-height: 28px;
+
+ a {
+ color: #fff;
+ }
+
+ &:not(:last-child) {
+ margin-right: 15px;
+ }
+ }
+}
+
+@include breakpoint(tablet) {
+ .Logout {
+ padding: 30px;
+ }
+}
+
+@include breakpoint(desktop) {
+ .Logout {
+ padding: 40px;
+ }
+}
diff --git a/imports/ui/pages/NewDocument/NewDocument.js b/imports/ui/pages/NewDocument/NewDocument.js
new file mode 100644
index 0000000..cd8418f
--- /dev/null
+++ b/imports/ui/pages/NewDocument/NewDocument.js
@@ -0,0 +1,16 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import DocumentEditor from '../../components/DocumentEditor/DocumentEditor';
+
+const NewDocument = ({ history }) => (
+
+
New Document
+
+
+);
+
+NewDocument.propTypes = {
+ history: PropTypes.object.isRequired,
+};
+
+export default NewDocument;
diff --git a/imports/ui/pages/NotFound/NotFound.js b/imports/ui/pages/NotFound/NotFound.js
new file mode 100644
index 0000000..eca2868
--- /dev/null
+++ b/imports/ui/pages/NotFound/NotFound.js
@@ -0,0 +1,12 @@
+import React from 'react';
+import { Alert } from 'react-bootstrap';
+
+const NotFound = () => (
+
+
+ Error [404] : {window.location.pathname} does not exist.
+
+
+);
+
+export default NotFound;
diff --git a/imports/ui/pages/Page/Page.js b/imports/ui/pages/Page/Page.js
new file mode 100644
index 0000000..41d6b4b
--- /dev/null
+++ b/imports/ui/pages/Page/Page.js
@@ -0,0 +1,44 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import { Meteor } from 'meteor/meteor';
+import { createContainer } from 'meteor/react-meteor-data';
+import { ReactiveVar } from 'meteor/reactive-var';
+import PageHeader from '../../components/PageHeader/PageHeader';
+import Content from '../../components/Content/Content';
+
+import './Page.scss';
+
+const Page = ({ title, subtitle, content }) => (
+
+);
+
+Page.defaultProps = {
+ subtitle: '',
+};
+
+Page.propTypes = {
+ title: PropTypes.string.isRequired,
+ subtitle: PropTypes.string,
+ content: PropTypes.string.isRequired,
+};
+
+const pageContent = new ReactiveVar('');
+
+export default createContainer(({ content, page }) => {
+ window.scrollTo(0, 0); // Force window to top of page.
+
+ Meteor.call('utility.getPage', page, (error, response) => {
+ if (error) {
+ console.warn(error);
+ } else {
+ pageContent.set(response);
+ }
+ });
+
+ return {
+ content: content || pageContent.get(),
+ };
+}, Page);
diff --git a/imports/ui/pages/Page/Page.scss b/imports/ui/pages/Page/Page.scss
new file mode 100644
index 0000000..183bf23
--- /dev/null
+++ b/imports/ui/pages/Page/Page.scss
@@ -0,0 +1,11 @@
+@import '../../stylesheets/mixins';
+
+.Page {
+ margin-bottom: 0px;
+}
+
+@include breakpoint(tablet) {
+ .Page {
+ margin-bottom: 30px;
+ }
+}
diff --git a/imports/ui/pages/Privacy/Privacy.js b/imports/ui/pages/Privacy/Privacy.js
new file mode 100644
index 0000000..4cb33d4
--- /dev/null
+++ b/imports/ui/pages/Privacy/Privacy.js
@@ -0,0 +1,14 @@
+import React from 'react';
+import Page from '../Page/Page';
+
+const Privacy = () => (
+
+);
+
+export default Privacy;
diff --git a/imports/ui/pages/Profile/Profile.js b/imports/ui/pages/Profile/Profile.js
new file mode 100644
index 0000000..f8c5684
--- /dev/null
+++ b/imports/ui/pages/Profile/Profile.js
@@ -0,0 +1,230 @@
+/* eslint-disable no-underscore-dangle */
+
+import React from 'react';
+import PropTypes from 'prop-types';
+import { Row, Col, FormGroup, ControlLabel, Button } from 'react-bootstrap';
+import _ from 'lodash';
+import { Meteor } from 'meteor/meteor';
+import { Accounts } from 'meteor/accounts-base';
+import { Bert } from 'meteor/themeteorchef:bert';
+import { createContainer } from 'meteor/react-meteor-data';
+import InputHint from '../../components/InputHint/InputHint';
+import validate from '../../../modules/validate';
+
+import './Profile.scss';
+
+class Profile extends React.Component {
+ constructor(props) {
+ super(props);
+
+ this.getUserType = this.getUserType.bind(this);
+ this.handleSubmit = this.handleSubmit.bind(this);
+ this.renderOAuthUser = this.renderOAuthUser.bind(this);
+ this.renderPasswordUser = this.renderPasswordUser.bind(this);
+ this.renderProfileForm = this.renderProfileForm.bind(this);
+ }
+
+ componentDidMount() {
+ const component = this;
+
+ validate(component.form, {
+ rules: {
+ firstName: {
+ required: true,
+ },
+ lastName: {
+ required: true,
+ },
+ emailAddress: {
+ required: true,
+ email: true,
+ },
+ currentPassword: {
+ required() {
+ // Only required if newPassword field has a value.
+ return component.newPassword.value.length > 0;
+ },
+ },
+ newPassword: {
+ required() {
+ // Only required if currentPassword field has a value.
+ return component.currentPassword.value.length > 0;
+ },
+ },
+ },
+ messages: {
+ firstName: {
+ required: 'What\'s your first name?',
+ },
+ lastName: {
+ required: 'What\'s your last name?',
+ },
+ emailAddress: {
+ required: 'Need an email address here.',
+ email: 'Is this email address correct?',
+ },
+ currentPassword: {
+ required: 'Need your current password if changing.',
+ },
+ newPassword: {
+ required: 'Need your new password if changing.',
+ },
+ },
+ submitHandler() { component.handleSubmit(); },
+ });
+ }
+
+ getUserType(user) {
+ const userToCheck = user;
+ delete userToCheck.services.resume;
+ const service = Object.keys(userToCheck.services)[0];
+ return service === 'password' ? 'password' : 'oauth';
+ }
+
+ handleSubmit() {
+ const profile = {
+ emailAddress: this.emailAddress.value,
+ profile: {
+ name: {
+ first: this.firstName.value,
+ last: this.lastName.value,
+ },
+ },
+ };
+
+ Meteor.call('users.editProfile', profile, (error) => {
+ if (error) {
+ Bert.alert(error.reason, 'danger');
+ } else {
+ Bert.alert('Profile updated!', 'success');
+ }
+ });
+
+ if (this.newPassword.value) {
+ Accounts.changePassword(this.currentPassword.value, this.newPassword.value, (error) => {
+ if (error) {
+ Bert.alert(error.reason, 'danger');
+ } else {
+ this.currentPassword.value = '';
+ this.newPassword.value = '';
+ }
+ });
+ }
+ }
+
+ renderOAuthUser(loading, user) {
+ return !loading ? (
+ {Object.keys(user.services).map(service => (
+
+
+
{`You're logged in with ${_.capitalize(service)} using the email address ${user.services[service].email}.`}
+
Edit Profile on {_.capitalize(service)}
+
+ ))}
+
) :
;
+ }
+
+ renderPasswordUser(loading, user) {
+ return !loading ? (
+
+
+
+ First Name
+ (this.firstName = firstName)}
+ className="form-control"
+ />
+
+
+
+
+ Last Name
+ (this.lastName = lastName)}
+ className="form-control"
+ />
+
+
+
+
+ Email Address
+ (this.emailAddress = emailAddress)}
+ className="form-control"
+ />
+
+
+ Current Password
+ (this.currentPassword = currentPassword)}
+ className="form-control"
+ />
+
+
+ New Password
+ (this.newPassword = newPassword)}
+ className="form-control"
+ />
+ Use at least six characters.
+
+ Save Profile
+
) :
;
+ }
+
+ renderProfileForm(loading, user) {
+ return !loading ? ({
+ password: this.renderPasswordUser,
+ oauth: this.renderOAuthUser,
+ }[this.getUserType(user)])(loading, user) :
;
+ }
+
+ render() {
+ const { loading, user } = this.props;
+ return (
+
+
+ Edit Profile
+ (this.form = form)} onSubmit={event => event.preventDefault()}>
+ {this.renderProfileForm(loading, user)}
+
+
+
+
);
+ }
+}
+
+Profile.propTypes = {
+ loading: PropTypes.bool.isRequired,
+ user: PropTypes.object.isRequired,
+};
+
+export default createContainer(() => {
+ const subscription = Meteor.subscribe('users.editProfile');
+
+ return {
+ loading: !subscription.ready(),
+ user: Meteor.user(),
+ };
+}, Profile);
diff --git a/imports/ui/pages/Profile/Profile.scss b/imports/ui/pages/Profile/Profile.scss
new file mode 100644
index 0000000..84b579f
--- /dev/null
+++ b/imports/ui/pages/Profile/Profile.scss
@@ -0,0 +1,46 @@
+@import '../../stylesheets/colors';
+
+.OAuthProfile {
+ .LoggedInWith {
+ padding: 20px;
+ border-radius: 3px;
+ color: #fff;
+ border: 1px solid $gray-lighter;
+ text-align: center;
+
+ img {
+ width: 100px;
+ }
+
+ &.github img {
+ width: 125px;
+ }
+
+ p {
+ margin: 20px 0 0 0;
+ color: $gray-light;
+ }
+
+ .btn {
+ margin-top: 20px;
+
+ &.btn-facebook {
+ background: $facebook;
+ border-color: $facebook;
+ color: #fff;
+ }
+
+ &.btn-google {
+ background: $google;
+ border-color: $google;
+ color: #fff;
+ }
+
+ &.btn-github {
+ background: $github;
+ border-color: $github;
+ color: #fff;
+ }
+ }
+ }
+}
diff --git a/imports/ui/pages/RecoverPassword/RecoverPassword.js b/imports/ui/pages/RecoverPassword/RecoverPassword.js
new file mode 100644
index 0000000..b890442
--- /dev/null
+++ b/imports/ui/pages/RecoverPassword/RecoverPassword.js
@@ -0,0 +1,83 @@
+import React from 'react';
+import { Row, Col, Alert, FormGroup, ControlLabel, Button } from 'react-bootstrap';
+import PropTypes from 'prop-types';
+import { Link } from 'react-router-dom';
+import { Accounts } from 'meteor/accounts-base';
+import { Bert } from 'meteor/themeteorchef:bert';
+import AccountPageFooter from '../../components/AccountPageFooter/AccountPageFooter';
+import validate from '../../../modules/validate';
+
+class RecoverPassword extends React.Component {
+ constructor(props) {
+ super(props);
+ this.handleSubmit = this.handleSubmit.bind(this);
+ }
+
+ componentDidMount() {
+ const component = this;
+
+ validate(component.form, {
+ rules: {
+ emailAddress: {
+ required: true,
+ email: true,
+ },
+ },
+ messages: {
+ emailAddress: {
+ required: 'Need an email address here.',
+ email: 'Is this email address correct?',
+ },
+ },
+ submitHandler() { component.handleSubmit(); },
+ });
+ }
+
+ handleSubmit() {
+ const { history } = this.props;
+ const email = this.emailAddress.value;
+
+ Accounts.forgotPassword({ email }, (error) => {
+ if (error) {
+ Bert.alert(error.reason, 'danger');
+ } else {
+ Bert.alert(`Check ${email} for a reset link!`, 'success');
+ history.push('/login');
+ }
+ });
+ }
+
+ render() {
+ return (
+
+
+ Recover Password
+
+ Enter your email address below to receive a link to reset your password.
+
+ (this.form = form)} onSubmit={event => event.preventDefault()}>
+
+ Email Address
+ (this.emailAddress = emailAddress)}
+ className="form-control"
+ />
+
+ Recover Password
+
+ Remember your password? Log In.
+
+
+
+
+
);
+ }
+}
+
+RecoverPassword.propTypes = {
+ history: PropTypes.object.isRequired,
+};
+
+export default RecoverPassword;
diff --git a/imports/ui/pages/ResetPassword/ResetPassword.js b/imports/ui/pages/ResetPassword/ResetPassword.js
new file mode 100644
index 0000000..c6b07e5
--- /dev/null
+++ b/imports/ui/pages/ResetPassword/ResetPassword.js
@@ -0,0 +1,99 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import { Row, Col, Alert, FormGroup, ControlLabel, Button } from 'react-bootstrap';
+import { Accounts } from 'meteor/accounts-base';
+import { Bert } from 'meteor/themeteorchef:bert';
+import validate from '../../../modules/validate';
+
+class ResetPassword extends React.Component {
+ constructor(props) {
+ super(props);
+ this.handleSubmit = this.handleSubmit.bind(this);
+ }
+
+ componentDidMount() {
+ const component = this;
+
+ validate(component.form, {
+ rules: {
+ newPassword: {
+ required: true,
+ minlength: 6,
+ },
+ repeatNewPassword: {
+ required: true,
+ minlength: 6,
+ equalTo: '[name="newPassword"]',
+ },
+ },
+ messages: {
+ newPassword: {
+ required: 'Enter a new password, please.',
+ minlength: 'Use at least six characters, please.',
+ },
+ repeatNewPassword: {
+ required: 'Repeat your new password, please.',
+ equalTo: 'Hmm, your passwords don\'t match. Try again?',
+ },
+ },
+ submitHandler() { component.handleSubmit(); },
+ });
+ }
+
+ handleSubmit() {
+ const { match, history } = this.props;
+ const token = match.params.token;
+
+ Accounts.resetPassword(token, this.newPassword.value, (error) => {
+ if (error) {
+ Bert.alert(error.reason, 'danger');
+ } else {
+ history.push('/documents');
+ }
+ });
+ }
+
+ render() {
+ return ();
+ }
+}
+
+ResetPassword.propTypes = {
+ match: PropTypes.object.isRequired,
+ history: PropTypes.object.isRequired,
+};
+
+export default ResetPassword;
diff --git a/imports/ui/pages/Signup/Signup.js b/imports/ui/pages/Signup/Signup.js
new file mode 100644
index 0000000..f750c28
--- /dev/null
+++ b/imports/ui/pages/Signup/Signup.js
@@ -0,0 +1,157 @@
+import React from 'react';
+import { Row, Col, FormGroup, ControlLabel, Button } from 'react-bootstrap';
+import PropTypes from 'prop-types';
+import { Link } from 'react-router-dom';
+import { Meteor } from 'meteor/meteor';
+import { Accounts } from 'meteor/accounts-base';
+import { Bert } from 'meteor/themeteorchef:bert';
+import OAuthLoginButtons from '../../components/OAuthLoginButtons/OAuthLoginButtons';
+import InputHint from '../../components/InputHint/InputHint';
+import AccountPageFooter from '../../components/AccountPageFooter/AccountPageFooter';
+import validate from '../../../modules/validate';
+
+class Signup extends React.Component {
+ constructor(props) {
+ super(props);
+ this.handleSubmit = this.handleSubmit.bind(this);
+ }
+
+ componentDidMount() {
+ const component = this;
+
+ validate(component.form, {
+ rules: {
+ firstName: {
+ required: true,
+ },
+ lastName: {
+ required: true,
+ },
+ emailAddress: {
+ required: true,
+ email: true,
+ },
+ password: {
+ required: true,
+ minlength: 6,
+ },
+ },
+ messages: {
+ firstName: {
+ required: 'What\'s your first name?',
+ },
+ lastName: {
+ required: 'What\'s your last name?',
+ },
+ emailAddress: {
+ required: 'Need an email address here.',
+ email: 'Is this email address correct?',
+ },
+ password: {
+ required: 'Need a password here.',
+ minlength: 'Please use at least six characters.',
+ },
+ },
+ submitHandler() { component.handleSubmit(); },
+ });
+ }
+
+ handleSubmit() {
+ const { history } = this.props;
+
+ Accounts.createUser({
+ email: this.emailAddress.value,
+ password: this.password.value,
+ profile: {
+ name: {
+ first: this.firstName.value,
+ last: this.lastName.value,
+ },
+ },
+ }, (error) => {
+ if (error) {
+ Bert.alert(error.reason, 'danger');
+ } else {
+ Meteor.call('users.sendVerificationEmail');
+ Bert.alert('Welcome!', 'success');
+ history.push('/documents');
+ }
+ });
+ }
+
+ render() {
+ return ();
+ }
+}
+
+Signup.propTypes = {
+ history: PropTypes.object.isRequired,
+};
+
+export default Signup;
diff --git a/imports/ui/pages/Terms/Terms.js b/imports/ui/pages/Terms/Terms.js
new file mode 100644
index 0000000..2aebfdf
--- /dev/null
+++ b/imports/ui/pages/Terms/Terms.js
@@ -0,0 +1,14 @@
+import React from 'react';
+import Page from '../Page/Page';
+
+const Terms = () => (
+
+);
+
+export default Terms;
diff --git a/imports/ui/pages/VerifyEmail/VerifyEmail.js b/imports/ui/pages/VerifyEmail/VerifyEmail.js
new file mode 100644
index 0000000..2b39f1d
--- /dev/null
+++ b/imports/ui/pages/VerifyEmail/VerifyEmail.js
@@ -0,0 +1,43 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import { Alert } from 'react-bootstrap';
+import { Meteor } from 'meteor/meteor';
+import { Accounts } from 'meteor/accounts-base';
+import { Bert } from 'meteor/themeteorchef:bert';
+
+class VerifyEmail extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = { error: null };
+ }
+
+ componentDidMount() {
+ const { match, history } = this.props;
+ Accounts.verifyEmail(match.params.token, (error) => {
+ if (error) {
+ Bert.alert(error.reason, 'danger');
+ this.setState({ error: `${error.reason}. Please try again.` });
+ } else {
+ setTimeout(() => {
+ Bert.alert('All set, thanks!', 'success');
+ history.push('/documents');
+ }, 1500);
+ }
+ });
+ }
+
+ render() {
+ return (
+
+ {!this.state.error ? 'Verifying...' : this.state.error}
+
+
);
+ }
+}
+
+VerifyEmail.propTypes = {
+ match: PropTypes.object.isRequired,
+ history: PropTypes.object.isRequired,
+};
+
+export default VerifyEmail;
diff --git a/imports/ui/pages/ViewDocument/ViewDocument.js b/imports/ui/pages/ViewDocument/ViewDocument.js
new file mode 100644
index 0000000..6c88608
--- /dev/null
+++ b/imports/ui/pages/ViewDocument/ViewDocument.js
@@ -0,0 +1,60 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import { ButtonToolbar, ButtonGroup, Button } from 'react-bootstrap';
+import { createContainer } from 'meteor/react-meteor-data';
+import { Meteor } from 'meteor/meteor';
+import { Bert } from 'meteor/themeteorchef:bert';
+import Documents from '../../../api/Documents/Documents';
+import NotFound from '../NotFound/NotFound';
+import Loading from '../../components/Loading/Loading';
+
+const handleRemove = (documentId, history) => {
+ if (confirm('Are you sure? This is permanent!')) {
+ Meteor.call('documents.remove', documentId, (error) => {
+ if (error) {
+ Bert.alert(error.reason, 'danger');
+ } else {
+ Bert.alert('Document deleted!', 'success');
+ history.push('/documents');
+ }
+ });
+ }
+};
+
+const renderDocument = (doc, match, history) => (doc ? (
+
+
+
{ doc && doc.title }
+
+
+ history.push(`${match.url}/edit`)}>Edit
+ handleRemove(doc._id, history)} className="text-danger">
+ Delete
+
+
+
+
+ { doc && doc.body }
+
+) : );
+
+const ViewDocument = ({ loading, doc, match, history }) => (
+ !loading ? renderDocument(doc, match, history) :
+);
+
+ViewDocument.propTypes = {
+ loading: PropTypes.bool.isRequired,
+ doc: PropTypes.object,
+ match: PropTypes.object.isRequired,
+ history: PropTypes.object.isRequired,
+};
+
+export default createContainer(({ match }) => {
+ const documentId = match.params._id;
+ const subscription = Meteor.subscribe('documents.view', documentId);
+
+ return {
+ loading: !subscription.ready(),
+ doc: Documents.findOne(documentId),
+ };
+}, ViewDocument);
diff --git a/imports/ui/stylesheets/app.scss b/imports/ui/stylesheets/app.scss
new file mode 100644
index 0000000..21c9469
--- /dev/null
+++ b/imports/ui/stylesheets/app.scss
@@ -0,0 +1,3 @@
+@import './colors';
+@import './forms';
+@import './bootstrap-overrides';
diff --git a/imports/ui/stylesheets/bootstrap-overrides.scss b/imports/ui/stylesheets/bootstrap-overrides.scss
new file mode 100644
index 0000000..c305149
--- /dev/null
+++ b/imports/ui/stylesheets/bootstrap-overrides.scss
@@ -0,0 +1,11 @@
+@import './mixins';
+
+.page-header {
+ margin-top: 0;
+}
+
+@include breakpoint(tablet) {
+ .page-header {
+ margin-top: 20px;
+ }
+}
diff --git a/imports/ui/stylesheets/colors.scss b/imports/ui/stylesheets/colors.scss
new file mode 100644
index 0000000..0e0e2f2
--- /dev/null
+++ b/imports/ui/stylesheets/colors.scss
@@ -0,0 +1,20 @@
+$primary: #337ab7;
+$success: #5cb85c;
+$info: #5bc0de;
+$warning: #f0ad4e;
+$danger: #d9534f;
+
+$gray-darker: #222;
+$gray-dark: #333;
+$gray: #555;
+$gray-light: #777;
+$gray-lighter: #eee;
+
+$facebook: #3b5998;
+$google: #ea4335;
+$github: $gray-dark;
+
+$cb-blue: #4285F4;
+$cb-green: #00D490;
+$cb-yellow: #FFCF50;
+$cb-red: #DA5847;
diff --git a/imports/ui/stylesheets/forms.scss b/imports/ui/stylesheets/forms.scss
new file mode 100644
index 0000000..de85585
--- /dev/null
+++ b/imports/ui/stylesheets/forms.scss
@@ -0,0 +1,17 @@
+@import './mixins';
+@import './colors';
+
+form {
+ label,
+ .control-label {
+ display: block;
+ }
+
+ label.error {
+ display: block;
+ margin-top: 8px;
+ font-size: 13px;
+ font-weight: normal;
+ color: $danger;
+ }
+}
diff --git a/imports/ui/stylesheets/mixins.scss b/imports/ui/stylesheets/mixins.scss
new file mode 100644
index 0000000..01d5602
--- /dev/null
+++ b/imports/ui/stylesheets/mixins.scss
@@ -0,0 +1,23 @@
+@mixin breakpoint($point) {
+ @if $point == desktop-large {
+ @media (min-width: 1200px) { @content; }
+ } @else if $point == desktop {
+ @media (min-width: 1024px) { @content; }
+ } @else if $point == tablet {
+ @media (min-width: 768px) { @content; }
+ } @else if $point == handheld-large {
+ @media (min-width: 480px) { @content; }
+ } @else {
+ @media (min-width: $point) { @content; }
+ }
+}
+
+@mixin ie {
+ @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
+ @content;
+ }
+
+ @supports (-ms-accelerator:true) {
+ @content;
+ }
+}
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..30672d5
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,5591 @@
+{
+ "name": "pup",
+ "requires": true,
+ "lockfileVersion": 1,
+ "dependencies": {
+ "@cleverbeagle/dates": {
+ "version": "https://registry.npmjs.org/@cleverbeagle/dates/-/dates-0.5.1.tgz",
+ "integrity": "sha1-71iDpbR5CXe2JfdYJdmCLBBmSXI=",
+ "requires": {
+ "moment": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz",
+ "moment-timezone": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.13.tgz"
+ }
+ },
+ "@cleverbeagle/seeder": {
+ "version": "https://registry.npmjs.org/@cleverbeagle/seeder/-/seeder-1.2.0.tgz",
+ "integrity": "sha1-6n1l0QybGLUH1XjHbK7DVupTgIE=",
+ "requires": {
+ "faker": "https://registry.npmjs.org/faker/-/faker-4.1.0.tgz"
+ }
+ },
+ "abab": {
+ "version": "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz",
+ "integrity": "sha1-uB3l9ydOxOdW15fNg08wNkJyTl0=",
+ "dev": true
+ },
+ "abbrev": {
+ "version": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
+ "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8="
+ },
+ "acorn": {
+ "version": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz",
+ "integrity": "sha1-kRy1PgNoB88Pp3jcXTcPvYZCRtc=",
+ "dev": true
+ },
+ "acorn-globals": {
+ "version": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
+ "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
+ "dev": true,
+ "requires": {
+ "acorn": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+ "dev": true
+ }
+ }
+ },
+ "acorn-jsx": {
+ "version": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
+ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
+ "dev": true,
+ "requires": {
+ "acorn": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
+ "dev": true
+ }
+ }
+ },
+ "ajv": {
+ "version": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
+ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
+ "requires": {
+ "co": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "json-stable-stringify": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"
+ }
+ },
+ "ajv-keywords": {
+ "version": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
+ "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=",
+ "dev": true
+ },
+ "align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "requires": {
+ "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "longest": "1.0.1",
+ "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
+ }
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
+ },
+ "ansi-escapes": {
+ "version": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz",
+ "integrity": "sha1-W65SvkJIeN2Xg+iRDj/Cki6DyBs=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "ansi-styles": {
+ "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ },
+ "anymatch": {
+ "version": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
+ "integrity": "sha1-VT3Lj5HjyImEXf26NMd3IbkLnXo=",
+ "dev": true,
+ "requires": {
+ "micromatch": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "normalize-path": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz"
+ }
+ },
+ "append-transform": {
+ "version": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz",
+ "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=",
+ "dev": true,
+ "requires": {
+ "default-require-extensions": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz"
+ }
+ },
+ "aproba": {
+ "version": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz",
+ "integrity": "sha1-RcZikJTeTpb2k+9+q3SuB5wkD8E="
+ },
+ "are-we-there-yet": {
+ "version": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
+ "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=",
+ "requires": {
+ "delegates": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz"
+ }
+ },
+ "argparse": {
+ "version": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"
+ }
+ },
+ "aria-query": {
+ "version": "https://registry.npmjs.org/aria-query/-/aria-query-0.7.0.tgz",
+ "integrity": "sha1-SvEKHmFXPd6gzzuZtRxSwFtCTSQ=",
+ "dev": true,
+ "requires": {
+ "ast-types-flow": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz"
+ }
+ },
+ "arr-diff": {
+ "version": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz"
+ }
+ },
+ "arr-flatten": {
+ "version": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz",
+ "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=",
+ "dev": true
+ },
+ "array-equal": {
+ "version": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
+ "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
+ "dev": true
+ },
+ "array-includes": {
+ "version": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
+ "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
+ "dev": true,
+ "requires": {
+ "define-properties": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
+ "es-abstract": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.2.tgz"
+ }
+ },
+ "array-union": {
+ "version": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "requires": {
+ "array-uniq": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz"
+ }
+ },
+ "array-uniq": {
+ "version": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+ "dev": true
+ },
+ "arrify": {
+ "version": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
+ },
+ "asap": {
+ "version": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz",
+ "integrity": "sha1-UidltQw1EEkOUtfc/ghe+bqWlY8="
+ },
+ "asn1": {
+ "version": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
+ },
+ "assert-plus": {
+ "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ="
+ },
+ "ast-types-flow": {
+ "version": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
+ "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
+ "dev": true
+ },
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+ },
+ "asynckit": {
+ "version": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "aws-sign2": {
+ "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8="
+ },
+ "aws4": {
+ "version": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
+ "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4="
+ },
+ "axobject-query": {
+ "version": "https://registry.npmjs.org/axobject-query/-/axobject-query-0.1.0.tgz",
+ "integrity": "sha1-YvWdvFnJ+SQnWco0mWDnov48NsA=",
+ "dev": true,
+ "requires": {
+ "ast-types-flow": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz"
+ }
+ },
+ "babel-code-frame": {
+ "version": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz",
+ "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "js-tokens": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz"
+ }
+ },
+ "babel-core": {
+ "version": "https://registry.npmjs.org/babel-core/-/babel-core-6.24.1.tgz",
+ "integrity": "sha1-jEKFZNzh4fQfszfsNPTDsCK1rYM=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz",
+ "babel-generator": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.1.tgz",
+ "babel-helpers": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
+ "babel-messages": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "babel-register": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz",
+ "babylon": "https://registry.npmjs.org/babylon/-/babylon-6.17.1.tgz",
+ "convert-source-map": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz",
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+ "json5": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "lodash": "4.17.4",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "private": "https://registry.npmjs.org/private/-/private-0.1.7.tgz",
+ "slash": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+ "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
+ "dev": true
+ }
+ }
+ },
+ "babel-generator": {
+ "version": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.1.tgz",
+ "integrity": "sha1-5xX0hsWN7SVknYiJRNUqoHxdlJc=",
+ "dev": true,
+ "requires": {
+ "babel-messages": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz",
+ "detect-indent": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
+ "jsesc": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+ "lodash": "4.17.4",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+ "trim-right": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+ "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
+ "dev": true
+ }
+ }
+ },
+ "babel-helper-builder-react-jsx": {
+ "version": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.24.1.tgz",
+ "integrity": "sha1-CteRfjPI11HmRtrKTnfMGTd9LLw=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz",
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"
+ }
+ },
+ "babel-helper-call-delegate": {
+ "version": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
+ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
+ "dev": true,
+ "requires": {
+ "babel-helper-hoist-variables": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz"
+ }
+ },
+ "babel-helper-define-map": {
+ "version": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz",
+ "integrity": "sha1-epdH8ljYlH0y1RX2qhx70CIEoIA=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-helper-function-name": {
+ "version": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
+ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
+ "dev": true,
+ "requires": {
+ "babel-helper-get-function-arity": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz"
+ }
+ },
+ "babel-helper-get-function-arity": {
+ "version": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
+ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz"
+ }
+ },
+ "babel-helper-hoist-variables": {
+ "version": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
+ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz"
+ }
+ },
+ "babel-helper-optimise-call-expression": {
+ "version": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
+ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz"
+ }
+ },
+ "babel-helper-regex": {
+ "version": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz",
+ "integrity": "sha1-024i+rEAjXnYhkjjIRaGgShFbOg=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-helper-replace-supers": {
+ "version": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
+ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
+ "dev": true,
+ "requires": {
+ "babel-helper-optimise-call-expression": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
+ "babel-messages": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz"
+ }
+ },
+ "babel-helpers": {
+ "version": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
+ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz"
+ }
+ },
+ "babel-jest": {
+ "version": "https://registry.npmjs.org/babel-jest/-/babel-jest-20.0.3.tgz",
+ "integrity": "sha1-5KA7E9wQOJ4UD8ZF0J/8TO0wFnE=",
+ "dev": true,
+ "requires": {
+ "babel-core": "https://registry.npmjs.org/babel-core/-/babel-core-6.24.1.tgz",
+ "babel-plugin-istanbul": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.3.tgz",
+ "babel-preset-jest": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz"
+ }
+ },
+ "babel-messages": {
+ "version": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-check-es2015-constants": {
+ "version": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
+ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.3.tgz",
+ "integrity": "sha1-buYoBBDc9Zx3R1GMPf2YaAlY8QI=",
+ "dev": true,
+ "requires": {
+ "find-up": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "istanbul-lib-instrument": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.1.tgz",
+ "test-exclude": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.0.tgz"
+ }
+ },
+ "babel-plugin-jest-hoist": {
+ "version": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz",
+ "integrity": "sha1-r+3IU70/jcNUjqZx++adA8wsF2c=",
+ "dev": true
+ },
+ "babel-plugin-syntax-flow": {
+ "version": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz",
+ "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=",
+ "dev": true
+ },
+ "babel-plugin-syntax-jsx": {
+ "version": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
+ "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=",
+ "dev": true
+ },
+ "babel-plugin-transform-es2015-arrow-functions": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
+ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoped-functions": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
+ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoping": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz",
+ "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-plugin-transform-es2015-classes": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
+ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
+ "dev": true,
+ "requires": {
+ "babel-helper-define-map": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz",
+ "babel-helper-function-name": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
+ "babel-helper-optimise-call-expression": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
+ "babel-helper-replace-supers": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
+ "babel-messages": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-computed-properties": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
+ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-destructuring": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
+ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-duplicate-keys": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
+ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-for-of": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
+ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-function-name": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
+ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-literals": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
+ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-amd": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
+ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-commonjs": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-commonjs": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz",
+ "integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-strict-mode": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-systemjs": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
+ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
+ "dev": true,
+ "requires": {
+ "babel-helper-hoist-variables": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-umd": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
+ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-amd": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-object-super": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
+ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
+ "dev": true,
+ "requires": {
+ "babel-helper-replace-supers": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-parameters": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
+ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
+ "dev": true,
+ "requires": {
+ "babel-helper-call-delegate": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
+ "babel-helper-get-function-arity": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-shorthand-properties": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
+ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-spread": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
+ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-sticky-regex": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
+ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
+ "dev": true,
+ "requires": {
+ "babel-helper-regex": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-template-literals": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
+ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-typeof-symbol": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
+ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-es2015-unicode-regex": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
+ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
+ "dev": true,
+ "requires": {
+ "babel-helper-regex": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "regexpu-core": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz"
+ }
+ },
+ "babel-plugin-transform-flow-strip-types": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz",
+ "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-flow": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-react-display-name": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.23.0.tgz",
+ "integrity": "sha1-Q5iRDDWEQdxM7xh4cmTQQS7Tazc=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-react-jsx": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
+ "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
+ "dev": true,
+ "requires": {
+ "babel-helper-builder-react-jsx": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.24.1.tgz",
+ "babel-plugin-syntax-jsx": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-react-jsx-self": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz",
+ "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-jsx": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-react-jsx-source": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz",
+ "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-jsx": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
+ }
+ },
+ "babel-plugin-transform-regenerator": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz",
+ "integrity": "sha1-uNowWtQ8PJm0hI5P5AN7dw0jxBg=",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz"
+ }
+ },
+ "babel-plugin-transform-strict-mode": {
+ "version": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
+ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz"
+ }
+ },
+ "babel-preset-es2015": {
+ "version": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz",
+ "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-check-es2015-constants": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
+ "babel-plugin-transform-es2015-arrow-functions": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
+ "babel-plugin-transform-es2015-block-scoped-functions": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
+ "babel-plugin-transform-es2015-block-scoping": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz",
+ "babel-plugin-transform-es2015-classes": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
+ "babel-plugin-transform-es2015-computed-properties": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
+ "babel-plugin-transform-es2015-destructuring": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
+ "babel-plugin-transform-es2015-duplicate-keys": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
+ "babel-plugin-transform-es2015-for-of": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
+ "babel-plugin-transform-es2015-function-name": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
+ "babel-plugin-transform-es2015-literals": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
+ "babel-plugin-transform-es2015-modules-amd": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
+ "babel-plugin-transform-es2015-modules-commonjs": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz",
+ "babel-plugin-transform-es2015-modules-systemjs": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
+ "babel-plugin-transform-es2015-modules-umd": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
+ "babel-plugin-transform-es2015-object-super": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
+ "babel-plugin-transform-es2015-parameters": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
+ "babel-plugin-transform-es2015-shorthand-properties": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
+ "babel-plugin-transform-es2015-spread": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
+ "babel-plugin-transform-es2015-sticky-regex": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
+ "babel-plugin-transform-es2015-template-literals": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
+ "babel-plugin-transform-es2015-typeof-symbol": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
+ "babel-plugin-transform-es2015-unicode-regex": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
+ "babel-plugin-transform-regenerator": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz"
+ }
+ },
+ "babel-preset-flow": {
+ "version": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz",
+ "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-flow-strip-types": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz"
+ }
+ },
+ "babel-preset-jest": {
+ "version": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz",
+ "integrity": "sha1-y6yq3stdaJyh4d4TYOv8ZoYsF4o=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-jest-hoist": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz"
+ }
+ },
+ "babel-preset-react": {
+ "version": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz",
+ "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-jsx": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
+ "babel-plugin-transform-react-display-name": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.23.0.tgz",
+ "babel-plugin-transform-react-jsx": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
+ "babel-plugin-transform-react-jsx-self": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz",
+ "babel-plugin-transform-react-jsx-source": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz",
+ "babel-preset-flow": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz"
+ }
+ },
+ "babel-register": {
+ "version": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz",
+ "integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=",
+ "dev": true,
+ "requires": {
+ "babel-core": "https://registry.npmjs.org/babel-core/-/babel-core-6.24.1.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "core-js": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
+ "home-or-tmp": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
+ "lodash": "4.17.4",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "source-map-support": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz"
+ }
+ },
+ "babel-runtime": {
+ "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "requires": {
+ "core-js": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
+ "regenerator-runtime": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz"
+ }
+ },
+ "babel-template": {
+ "version": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz",
+ "integrity": "sha1-BK5RTx+Ts6JTfyoPYKWkX7gwgzM=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz",
+ "babylon": "https://registry.npmjs.org/babylon/-/babylon-6.17.1.tgz",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-traverse": {
+ "version": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz",
+ "integrity": "sha1-qzZnP9NW+aCUhlnnszjV/q2zFpU=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz",
+ "babel-messages": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz",
+ "babylon": "https://registry.npmjs.org/babylon/-/babylon-6.17.1.tgz",
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+ "globals": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz",
+ "invariant": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-types": {
+ "version": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz",
+ "integrity": "sha1-oTaHncFbNga9oNkMH8dDBML/CXU=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "lodash": "4.17.4",
+ "to-fast-properties": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz"
+ }
+ },
+ "babylon": {
+ "version": "https://registry.npmjs.org/babylon/-/babylon-6.17.1.tgz",
+ "integrity": "sha1-F/FP3fNhtpWYH+Z5OF5PHAHr2G8=",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg="
+ },
+ "bcrypt": {
+ "version": "https://registry.npmjs.org/bcrypt/-/bcrypt-1.0.3.tgz",
+ "integrity": "sha1-sC3cbAtS6ha40883XVoy54DatUg=",
+ "requires": {
+ "nan": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz",
+ "node-pre-gyp": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz"
+ }
+ },
+ "bcrypt-pbkdf": {
+ "version": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
+ "optional": true,
+ "requires": {
+ "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
+ }
+ },
+ "block-stream": {
+ "version": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ }
+ },
+ "boolbase": {
+ "version": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
+ },
+ "boom": {
+ "version": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "requires": {
+ "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
+ }
+ },
+ "brace-expansion": {
+ "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz",
+ "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=",
+ "requires": {
+ "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ }
+ },
+ "braces": {
+ "version": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "dev": true,
+ "requires": {
+ "expand-range": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "preserve": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "repeat-element": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz"
+ }
+ },
+ "browser-resolve": {
+ "version": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
+ "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=",
+ "dev": true,
+ "requires": {
+ "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz"
+ },
+ "dependencies": {
+ "resolve": {
+ "version": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+ "dev": true
+ }
+ }
+ },
+ "bser": {
+ "version": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz",
+ "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=",
+ "dev": true,
+ "requires": {
+ "node-int64": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz"
+ }
+ },
+ "buffer-shims": {
+ "version": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
+ "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E="
+ },
+ "builtin-modules": {
+ "version": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "dev": true
+ },
+ "caller-path": {
+ "version": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
+ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
+ "dev": true,
+ "requires": {
+ "callsites": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz"
+ }
+ },
+ "callsites": {
+ "version": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
+ "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "optional": true
+ },
+ "caseless": {
+ "version": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "optional": true,
+ "requires": {
+ "align-text": "0.1.4",
+ "lazy-cache": "1.0.4"
+ }
+ },
+ "chalk": {
+ "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "requires": {
+ "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
+ }
+ },
+ "cheerio": {
+ "version": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz",
+ "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=",
+ "requires": {
+ "css-select": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "dom-serializer": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
+ "entities": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
+ "htmlparser2": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
+ "lodash.assignin": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz",
+ "lodash.bind": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz",
+ "lodash.defaults": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
+ "lodash.filter": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz",
+ "lodash.flatten": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
+ "lodash.foreach": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
+ "lodash.map": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
+ "lodash.merge": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.0.tgz",
+ "lodash.pick": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
+ "lodash.reduce": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz",
+ "lodash.reject": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz",
+ "lodash.some": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz"
+ }
+ },
+ "ci-info": {
+ "version": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.1.tgz",
+ "integrity": "sha1-R7RN8RjEjSWXtW00Ln4leRBgFxo=",
+ "dev": true
+ },
+ "circular-json": {
+ "version": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
+ "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=",
+ "dev": true
+ },
+ "classnames": {
+ "version": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz",
+ "integrity": "sha1-+zgB1FNGdknvNgPH1hoCvRKb3m0="
+ },
+ "cli-cursor": {
+ "version": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz"
+ }
+ },
+ "cli-width": {
+ "version": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "optional": true,
+ "requires": {
+ "center-align": "0.1.3",
+ "right-align": "0.1.3",
+ "wordwrap": "0.0.2"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "optional": true
+ }
+ }
+ },
+ "clone": {
+ "version": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz",
+ "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs="
+ },
+ "co": {
+ "version": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
+ },
+ "code-point-at": {
+ "version": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+ },
+ "color-convert": {
+ "version": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
+ "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=",
+ "dev": true,
+ "requires": {
+ "color-name": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
+ }
+ },
+ "color-name": {
+ "version": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
+ "requires": {
+ "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
+ }
+ },
+ "commander": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "requires": {
+ "graceful-readlink": "1.0.1"
+ }
+ },
+ "commonmark": {
+ "version": "https://registry.npmjs.org/commonmark/-/commonmark-0.28.1.tgz",
+ "integrity": "sha1-Buq41SM4uDn6Gi11rwCF7tGxvq4=",
+ "requires": {
+ "entities": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
+ "mdurl": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "string.prototype.repeat": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ }
+ }
+ },
+ "concat-map": {
+ "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "concat-stream": {
+ "version": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
+ "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
+ "dev": true,
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz",
+ "typedarray": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
+ }
+ },
+ "console-control-strings": {
+ "version": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
+ },
+ "contains-path": {
+ "version": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
+ "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
+ "dev": true
+ },
+ "content-type-parser": {
+ "version": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.1.tgz",
+ "integrity": "sha1-w+VpiMU8ZRJ/tG1AMqOpACRv3JQ=",
+ "dev": true
+ },
+ "convert-source-map": {
+ "version": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz",
+ "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=",
+ "dev": true
+ },
+ "core-js": {
+ "version": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
+ "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs="
+ },
+ "core-util-is": {
+ "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "create-react-class": {
+ "version": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.0.tgz",
+ "integrity": "sha1-q0SEl8JlZuHilBPogyB9V8/nvtQ=",
+ "requires": {
+ "fbjs": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz",
+ "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ }
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "requires": {
+ "lru-cache": "4.1.1",
+ "shebang-command": "1.2.0",
+ "which": "https://registry.npmjs.org/which/-/which-1.2.14.tgz"
+ }
+ },
+ "cryptiles": {
+ "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "requires": {
+ "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz"
+ }
+ },
+ "css-select": {
+ "version": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "requires": {
+ "boolbase": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "css-what": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
+ "domutils": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "nth-check": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz"
+ }
+ },
+ "css-what": {
+ "version": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
+ "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0="
+ },
+ "cssom": {
+ "version": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz",
+ "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=",
+ "dev": true
+ },
+ "cssstyle": {
+ "version": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
+ "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
+ "dev": true,
+ "requires": {
+ "cssom": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz"
+ }
+ },
+ "d": {
+ "version": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
+ "dev": true,
+ "requires": {
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz"
+ }
+ },
+ "damerau-levenshtein": {
+ "version": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz",
+ "integrity": "sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=",
+ "dev": true
+ },
+ "dashdash": {
+ "version": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "requires": {
+ "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "datauri": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/datauri/-/datauri-1.0.5.tgz",
+ "integrity": "sha1-0JddGrbI8uDOPKQ7qkU5vhLSiaA=",
+ "requires": {
+ "image-size": "0.3.5",
+ "mimer": "0.2.1",
+ "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
+ }
+ },
+ "debug": {
+ "version": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+ "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
+ "requires": {
+ "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
+ },
+ "deep-extend": {
+ "version": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
+ "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8="
+ },
+ "deep-is": {
+ "version": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+ "dev": true
+ },
+ "default-require-extensions": {
+ "version": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz",
+ "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=",
+ "dev": true,
+ "requires": {
+ "strip-bom": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz"
+ }
+ },
+ "define-properties": {
+ "version": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
+ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
+ "dev": true,
+ "requires": {
+ "foreach": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "object-keys": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz"
+ }
+ },
+ "del": {
+ "version": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
+ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
+ "dev": true,
+ "requires": {
+ "globby": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
+ "is-path-cwd": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
+ "is-path-in-cwd": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz"
+ }
+ },
+ "delayed-stream": {
+ "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "delegates": {
+ "version": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
+ },
+ "detect-indent": {
+ "version": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
+ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+ "dev": true,
+ "requires": {
+ "repeating": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz"
+ }
+ },
+ "diff": {
+ "version": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
+ "integrity": "sha1-qoVnpu7QPFMfyJ0/cRzQ5SWd7HU=",
+ "dev": true
+ },
+ "doctrine": {
+ "version": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz",
+ "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=",
+ "dev": true,
+ "requires": {
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ }
+ }
+ },
+ "dom-helpers": {
+ "version": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.2.1.tgz",
+ "integrity": "sha1-MgPgf+0he9H0JLAZc1WC/Deyglo="
+ },
+ "dom-serializer": {
+ "version": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
+ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "requires": {
+ "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
+ "entities": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
+ "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs="
+ }
+ }
+ },
+ "domelementtype": {
+ "version": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
+ "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI="
+ },
+ "domhandler": {
+ "version": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz",
+ "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=",
+ "requires": {
+ "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz"
+ }
+ },
+ "domutils": {
+ "version": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "requires": {
+ "dom-serializer": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
+ "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz"
+ }
+ },
+ "ecc-jsbn": {
+ "version": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "optional": true,
+ "requires": {
+ "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
+ }
+ },
+ "emoji-regex": {
+ "version": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz",
+ "integrity": "sha1-m66pKbFVVlwR6kHGYm6qZc75ksI=",
+ "dev": true
+ },
+ "encoding": {
+ "version": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
+ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
+ "requires": {
+ "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.17.tgz"
+ }
+ },
+ "entities": {
+ "version": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
+ "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA="
+ },
+ "enzyme": {
+ "version": "https://registry.npmjs.org/enzyme/-/enzyme-2.9.1.tgz",
+ "integrity": "sha1-B9XOaRJBJA+4F78sSxjW5TAkDfY=",
+ "dev": true,
+ "requires": {
+ "cheerio": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz",
+ "function.prototype.name": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.0.3.tgz",
+ "is-subset": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz",
+ "lodash": "4.17.4",
+ "object-is": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
+ "object.assign": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz",
+ "object.entries": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz",
+ "object.values": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz",
+ "prop-types": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz",
+ "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz"
+ }
+ },
+ "errno": {
+ "version": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
+ "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=",
+ "dev": true,
+ "requires": {
+ "prr": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz"
+ }
+ },
+ "error-ex": {
+ "version": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
+ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
+ }
+ },
+ "es-abstract": {
+ "version": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.2.tgz",
+ "integrity": "sha1-JRAyY9xN7L2mDgxzfKMjE1GAJ+4=",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
+ "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "is-callable": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
+ "is-regex": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz"
+ }
+ },
+ "es-to-primitive": {
+ "version": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
+ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
+ "dev": true,
+ "requires": {
+ "is-callable": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
+ "is-date-object": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "is-symbol": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz"
+ }
+ },
+ "es5-ext": {
+ "version": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz",
+ "integrity": "sha1-cUGhaDZpfbq/qq7uQUlc4p9SyTk=",
+ "dev": true,
+ "requires": {
+ "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz",
+ "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz"
+ }
+ },
+ "es6-iterator": {
+ "version": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz",
+ "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz",
+ "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz"
+ }
+ },
+ "es6-map": {
+ "version": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
+ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz",
+ "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz",
+ "es6-set": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
+ "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "event-emitter": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz"
+ }
+ },
+ "es6-set": {
+ "version": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
+ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz",
+ "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz",
+ "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "event-emitter": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz"
+ }
+ },
+ "es6-symbol": {
+ "version": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz"
+ }
+ },
+ "es6-weak-map": {
+ "version": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
+ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz",
+ "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz",
+ "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ },
+ "escodegen": {
+ "version": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
+ "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
+ "dev": true,
+ "requires": {
+ "esprima": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "optionator": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz"
+ },
+ "dependencies": {
+ "esprima": {
+ "version": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+ "dev": true
+ },
+ "estraverse": {
+ "version": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
+ "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
+ "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "amdefine": "1.0.1"
+ }
+ }
+ }
+ },
+ "escope": {
+ "version": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
+ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
+ "dev": true,
+ "requires": {
+ "es6-map": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
+ "es6-weak-map": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
+ "esrecurse": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz",
+ "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz"
+ }
+ },
+ "eslint": {
+ "version": "https://registry.npmjs.org/eslint/-/eslint-4.6.1.tgz",
+ "integrity": "sha1-3cf8f9cL+TIFsLNEm7FqHp59SVA=",
+ "dev": true,
+ "requires": {
+ "ajv": "https://registry.npmjs.org/ajv/-/ajv-5.2.2.tgz",
+ "babel-code-frame": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz",
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
+ "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
+ "cross-spawn": "5.1.0",
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+ "doctrine": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz",
+ "eslint-scope": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
+ "espree": "https://registry.npmjs.org/espree/-/espree-3.5.0.tgz",
+ "esquery": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz",
+ "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "file-entry-cache": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
+ "functional-red-black-tree": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "globals": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz",
+ "ignore": "https://registry.npmjs.org/ignore/-/ignore-3.3.5.tgz",
+ "imurmurhash": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "inquirer": "https://registry.npmjs.org/inquirer/-/inquirer-3.2.3.tgz",
+ "is-resolvable": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz",
+ "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.9.1.tgz",
+ "json-stable-stringify": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "levn": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "lodash": "4.17.4",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "natural-compare": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "optionator": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "path-is-inside": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "pluralize": "https://registry.npmjs.org/pluralize/-/pluralize-4.0.0.tgz",
+ "progress": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz",
+ "require-uncached": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
+ "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "strip-json-comments": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "table": "https://registry.npmjs.org/table/-/table-4.0.1.tgz",
+ "text-table": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "https://registry.npmjs.org/ajv/-/ajv-5.2.2.tgz",
+ "integrity": "sha1-R8aNaehvXZUxA7AHSpQw3GPaXjk=",
+ "dev": true,
+ "requires": {
+ "co": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "fast-deep-equal": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
+ "json-schema-traverse": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "json-stable-stringify": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"
+ }
+ },
+ "ansi-regex": {
+ "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha1-wVm41b4PnlpvNG2rlPFs4CIWG4g=",
+ "dev": true,
+ "requires": {
+ "color-convert": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz"
+ }
+ },
+ "chalk": {
+ "version": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
+ "integrity": "sha1-rFvs8U+iG5nGySynp9fP1bF+dD4=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz"
+ }
+ },
+ "strip-ansi": {
+ "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"
+ }
+ },
+ "supports-color": {
+ "version": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "integrity": "sha1-iD992rwWUUKyphQn8zUt7RldGj4=",
+ "dev": true,
+ "requires": {
+ "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz"
+ }
+ }
+ }
+ },
+ "eslint-config-airbnb": {
+ "version": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-15.1.0.tgz",
+ "integrity": "sha1-/UMpZakG4wE5ABuoMPWPc67dro4=",
+ "dev": true,
+ "requires": {
+ "eslint-config-airbnb-base": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.3.2.tgz"
+ }
+ },
+ "eslint-config-airbnb-base": {
+ "version": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.3.2.tgz",
+ "integrity": "sha1-hwOxGr48iKx+wrdFt/31LgCuaAo=",
+ "dev": true,
+ "requires": {
+ "eslint-restricted-globals": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz"
+ }
+ },
+ "eslint-import-resolver-node": {
+ "version": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz",
+ "integrity": "sha1-RCJXTN5mqaewmZOO5NUIoZng48w=",
+ "dev": true,
+ "requires": {
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+ "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz"
+ }
+ },
+ "eslint-module-utils": {
+ "version": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz",
+ "integrity": "sha1-q67IJBd2E7ipWymWOeG2+s9HNEk=",
+ "dev": true,
+ "requires": {
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+ "pkg-dir": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz"
+ }
+ },
+ "eslint-plugin-import": {
+ "version": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.7.0.tgz",
+ "integrity": "sha1-Id4zOAue+1X1720uIQ7A4H5/pp8=",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "contains-path": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+ "doctrine": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
+ "eslint-import-resolver-node": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz",
+ "eslint-module-utils": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz",
+ "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "lodash.cond": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "read-pkg-up": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz"
+ },
+ "dependencies": {
+ "doctrine": {
+ "version": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
+ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
+ "dev": true,
+ "requires": {
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ }
+ },
+ "isarray": {
+ "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "load-json-file": {
+ "version": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "parse-json": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "strip-bom": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz"
+ }
+ },
+ "path-type": {
+ "version": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
+ "requires": {
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
+ }
+ },
+ "read-pkg": {
+ "version": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz",
+ "path-type": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz"
+ }
+ },
+ "read-pkg-up": {
+ "version": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true,
+ "requires": {
+ "find-up": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "read-pkg": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz"
+ }
+ },
+ "strip-bom": {
+ "version": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
+ "eslint-plugin-jsx-a11y": {
+ "version": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-5.1.1.tgz",
+ "integrity": "sha1-XJa7UYbKFOlNsQlf9Zs+K9lAabE=",
+ "dev": true,
+ "requires": {
+ "aria-query": "https://registry.npmjs.org/aria-query/-/aria-query-0.7.0.tgz",
+ "array-includes": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
+ "ast-types-flow": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
+ "axobject-query": "https://registry.npmjs.org/axobject-query/-/axobject-query-0.1.0.tgz",
+ "damerau-levenshtein": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz",
+ "emoji-regex": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz",
+ "jsx-ast-utils": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz"
+ }
+ },
+ "eslint-plugin-meteor": {
+ "version": "https://registry.npmjs.org/eslint-plugin-meteor/-/eslint-plugin-meteor-4.1.4.tgz",
+ "integrity": "sha1-yl7KHjPPIbxiorYTV8Uv9EvILAM=",
+ "dev": true,
+ "requires": {
+ "babel-register": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz",
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz",
+ "escope": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
+ "invariant": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
+ "lodash.find": "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz",
+ "lodash.memoize": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "path-exists": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"
+ },
+ "dependencies": {
+ "babel-runtime": {
+ "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz",
+ "integrity": "sha1-M7mOql1IK7AajRqmtDetKwGuxBw=",
+ "dev": true,
+ "requires": {
+ "core-js": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
+ "regenerator-runtime": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
+ "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=",
+ "dev": true
+ }
+ }
+ },
+ "eslint-plugin-react": {
+ "version": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.3.0.tgz",
+ "integrity": "sha1-ypNo2jb3M/vcBXGK5Okfd48440Q=",
+ "dev": true,
+ "requires": {
+ "doctrine": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz",
+ "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "jsx-ast-utils": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz",
+ "prop-types": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz"
+ },
+ "dependencies": {
+ "jsx-ast-utils": {
+ "version": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz",
+ "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=",
+ "dev": true,
+ "requires": {
+ "array-includes": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz"
+ }
+ }
+ }
+ },
+ "eslint-restricted-globals": {
+ "version": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz",
+ "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=",
+ "dev": true
+ },
+ "eslint-scope": {
+ "version": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
+ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
+ "dev": true,
+ "requires": {
+ "esrecurse": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz",
+ "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz"
+ }
+ },
+ "espree": {
+ "version": "https://registry.npmjs.org/espree/-/espree-3.5.0.tgz",
+ "integrity": "sha1-mDWGJb3QVYYeon4oZ+pyn69GPY0=",
+ "dev": true,
+ "requires": {
+ "acorn": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz",
+ "acorn-jsx": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz"
+ }
+ },
+ "esprima": {
+ "version": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
+ "integrity": "sha1-RJnt3NERDgshi6zy+n9/WfVcqAQ=",
+ "dev": true
+ },
+ "esquery": {
+ "version": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz",
+ "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=",
+ "dev": true,
+ "requires": {
+ "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz"
+ }
+ },
+ "esrecurse": {
+ "version": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz",
+ "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=",
+ "dev": true,
+ "requires": {
+ "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ }
+ },
+ "estraverse": {
+ "version": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true
+ },
+ "esutils": {
+ "version": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "dev": true
+ },
+ "event-emitter": {
+ "version": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz"
+ }
+ },
+ "exec-sh": {
+ "version": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.0.tgz",
+ "integrity": "sha1-FPdd4/INKG75MwmbLOUKkDWc7xA=",
+ "dev": true,
+ "requires": {
+ "merge": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz"
+ }
+ },
+ "expand-brackets": {
+ "version": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "dev": true,
+ "requires": {
+ "is-posix-bracket": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz"
+ }
+ },
+ "expand-range": {
+ "version": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+ "dev": true,
+ "requires": {
+ "fill-range": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz"
+ }
+ },
+ "extend": {
+ "version": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
+ },
+ "external-editor": {
+ "version": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz",
+ "integrity": "sha1-HtkZnanL/i7y96MbL96LDRI2iXI=",
+ "dev": true,
+ "requires": {
+ "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.17.tgz",
+ "jschardet": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.1.tgz",
+ "tmp": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz"
+ }
+ },
+ "extglob": {
+ "version": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz"
+ }
+ },
+ "extsprintf": {
+ "version": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
+ "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA="
+ },
+ "faker": {
+ "version": "https://registry.npmjs.org/faker/-/faker-4.1.0.tgz",
+ "integrity": "sha1-HkW7vsxndLPBlfrSg1EJxtdIzD8="
+ },
+ "fast-deep-equal": {
+ "version": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
+ "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "fb-watchman": {
+ "version": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz",
+ "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=",
+ "dev": true,
+ "requires": {
+ "bser": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz"
+ }
+ },
+ "fbjs": {
+ "version": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz",
+ "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=",
+ "requires": {
+ "core-js": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
+ "isomorphic-fetch": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
+ "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "promise": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz",
+ "setimmediate": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "ua-parser-js": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.12.tgz"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
+ "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
+ }
+ }
+ },
+ "figures": {
+ "version": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
+ }
+ },
+ "file-entry-cache": {
+ "version": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
+ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
+ "dev": true,
+ "requires": {
+ "flat-cache": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ }
+ },
+ "filename-regex": {
+ "version": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
+ "dev": true
+ },
+ "fileset": {
+ "version": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz",
+ "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=",
+ "dev": true,
+ "requires": {
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
+ }
+ },
+ "fill-range": {
+ "version": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
+ "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
+ "dev": true,
+ "requires": {
+ "is-number": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "isobject": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "randomatic": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz",
+ "repeat-element": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+ "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
+ }
+ },
+ "find-up": {
+ "version": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz"
+ }
+ },
+ "flat-cache": {
+ "version": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz",
+ "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=",
+ "dev": true,
+ "requires": {
+ "circular-json": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
+ "del": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "write": "https://registry.npmjs.org/write/-/write-0.2.1.tgz"
+ }
+ },
+ "for-in": {
+ "version": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true
+ },
+ "for-own": {
+ "version": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "dev": true,
+ "requires": {
+ "for-in": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz"
+ }
+ },
+ "foreach": {
+ "version": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
+ "dev": true
+ },
+ "forever-agent": {
+ "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ },
+ "form-data": {
+ "version": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
+ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
+ "requires": {
+ "asynckit": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz"
+ }
+ },
+ "fs": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
+ "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ="
+ },
+ "fs.realpath": {
+ "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "fstream": {
+ "version": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
+ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz"
+ }
+ },
+ "fstream-ignore": {
+ "version": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz",
+ "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=",
+ "requires": {
+ "fstream": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
+ }
+ },
+ "function-bind": {
+ "version": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=",
+ "dev": true
+ },
+ "function.prototype.name": {
+ "version": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.0.3.tgz",
+ "integrity": "sha1-AJmuVXLp3W8DyX0CP9krzF5jnqw=",
+ "dev": true,
+ "requires": {
+ "define-properties": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
+ "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "is-callable": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz"
+ }
+ },
+ "functional-red-black-tree": {
+ "version": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
+ "gauge": {
+ "version": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "requires": {
+ "aproba": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz",
+ "console-control-strings": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "has-unicode": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "signal-exit": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "wide-align": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz"
+ }
+ },
+ "get-caller-file": {
+ "version": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
+ "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
+ "dev": true
+ },
+ "getpass": {
+ "version": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "requires": {
+ "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "glob": {
+ "version": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=",
+ "requires": {
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ }
+ },
+ "glob-base": {
+ "version": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "dev": true,
+ "requires": {
+ "glob-parent": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
+ }
+ },
+ "glob-parent": {
+ "version": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "dev": true,
+ "requires": {
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
+ }
+ },
+ "globals": {
+ "version": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz",
+ "integrity": "sha1-DAymltm5u2lNLlRwvTd3fKrVAoY=",
+ "dev": true
+ },
+ "globby": {
+ "version": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
+ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
+ "dev": true,
+ "requires": {
+ "array-union": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "arrify": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ }
+ },
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
+ },
+ "graceful-readlink": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
+ },
+ "growly": {
+ "version": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
+ "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=",
+ "dev": true
+ },
+ "handlebars": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz",
+ "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=",
+ "requires": {
+ "async": "1.5.2",
+ "optimist": "0.6.1",
+ "source-map": "0.4.4",
+ "uglify-js": "2.8.29"
+ }
+ },
+ "har-schema": {
+ "version": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
+ "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4="
+ },
+ "har-validator": {
+ "version": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
+ "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
+ "requires": {
+ "ajv": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
+ "har-schema": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz"
+ }
+ },
+ "has": {
+ "version": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
+ "dev": true,
+ "requires": {
+ "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
+ }
+ },
+ "has-ansi": {
+ "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "requires": {
+ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
+ }
+ },
+ "has-flag": {
+ "version": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "dev": true
+ },
+ "has-unicode": {
+ "version": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
+ },
+ "hawk": {
+ "version": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "requires": {
+ "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "sntp": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"
+ }
+ },
+ "history": {
+ "version": "https://registry.npmjs.org/history/-/history-4.7.2.tgz",
+ "integrity": "sha1-IrXH8xYzxbgCHH9KipVKwTnujVs=",
+ "requires": {
+ "invariant": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
+ "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
+ "resolve-pathname": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz",
+ "value-equal": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz",
+ "warning": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz"
+ }
+ },
+ "hoek": {
+ "version": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
+ },
+ "hoist-non-react-statics": {
+ "version": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz",
+ "integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA="
+ },
+ "home-or-tmp": {
+ "version": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
+ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
+ "dev": true,
+ "requires": {
+ "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"
+ }
+ },
+ "hosted-git-info": {
+ "version": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz",
+ "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=",
+ "dev": true
+ },
+ "html-encoding-sniffer": {
+ "version": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz",
+ "integrity": "sha1-eb96eF6klf5mFl5zQVPzY/9UN9o=",
+ "dev": true,
+ "requires": {
+ "whatwg-encoding": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz"
+ }
+ },
+ "htmlparser2": {
+ "version": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
+ "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
+ "requires": {
+ "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
+ "domhandler": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz",
+ "domutils": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "entities": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz"
+ }
+ },
+ "http-signature": {
+ "version": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+ "requires": {
+ "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "jsprim": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
+ "sshpk": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz"
+ }
+ },
+ "iconv-lite": {
+ "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.17.tgz",
+ "integrity": "sha1-T9qjs4rLwsAxsEXQ7c3+HsqxjI0="
+ },
+ "ignore": {
+ "version": "https://registry.npmjs.org/ignore/-/ignore-3.3.5.tgz",
+ "integrity": "sha1-xOcVRV9gc6jX5drnLS/J1xZj26Y=",
+ "dev": true
+ },
+ "image-size": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.3.5.tgz",
+ "integrity": "sha1-gyQOqy+1sAsEqrjHSwRx6cunrYw="
+ },
+ "imurmurhash": {
+ "version": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ }
+ },
+ "inherits": {
+ "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "ini": {
+ "version": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
+ "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4="
+ },
+ "inquirer": {
+ "version": "https://registry.npmjs.org/inquirer/-/inquirer-3.2.3.tgz",
+ "integrity": "sha1-HHsXMc93uTTsR9IsmsWqj+f74JU=",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz",
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
+ "cli-cursor": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "cli-width": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+ "external-editor": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz",
+ "figures": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "lodash": "4.17.4",
+ "mute-stream": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "run-async": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "rx-lite": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
+ "rx-lite-aggregates": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
+ "string-width": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha1-wVm41b4PnlpvNG2rlPFs4CIWG4g=",
+ "dev": true,
+ "requires": {
+ "color-convert": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz"
+ }
+ },
+ "chalk": {
+ "version": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
+ "integrity": "sha1-rFvs8U+iG5nGySynp9fP1bF+dD4=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"
+ }
+ },
+ "strip-ansi": {
+ "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"
+ }
+ },
+ "supports-color": {
+ "version": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "integrity": "sha1-iD992rwWUUKyphQn8zUt7RldGj4=",
+ "dev": true,
+ "requires": {
+ "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz"
+ }
+ }
+ }
+ },
+ "invariant": {
+ "version": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
+ "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
+ "requires": {
+ "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz"
+ }
+ },
+ "invert-kv": {
+ "version": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-buffer": {
+ "version": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
+ "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw="
+ },
+ "is-builtin-module": {
+ "version": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz"
+ }
+ },
+ "is-callable": {
+ "version": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
+ "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=",
+ "dev": true
+ },
+ "is-ci": {
+ "version": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz",
+ "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=",
+ "dev": true,
+ "requires": {
+ "ci-info": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.1.tgz"
+ }
+ },
+ "is-date-object": {
+ "version": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+ "dev": true
+ },
+ "is-dotfile": {
+ "version": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz",
+ "integrity": "sha1-LBMjg/ORmfjtwmjKAbmwB9IFzE0=",
+ "dev": true
+ },
+ "is-equal-shallow": {
+ "version": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "dev": true,
+ "requires": {
+ "is-primitive": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz"
+ }
+ },
+ "is-extendable": {
+ "version": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "requires": {
+ "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+ }
+ },
+ "is-glob": {
+ "version": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz"
+ }
+ },
+ "is-number": {
+ "version": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "dev": true,
+ "requires": {
+ "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ }
+ },
+ "is-path-cwd": {
+ "version": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
+ "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
+ "dev": true
+ },
+ "is-path-in-cwd": {
+ "version": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz",
+ "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=",
+ "dev": true,
+ "requires": {
+ "is-path-inside": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz"
+ }
+ },
+ "is-path-inside": {
+ "version": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz",
+ "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=",
+ "dev": true,
+ "requires": {
+ "path-is-inside": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz"
+ }
+ },
+ "is-posix-bracket": {
+ "version": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
+ "dev": true
+ },
+ "is-primitive": {
+ "version": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
+ "dev": true
+ },
+ "is-promise": {
+ "version": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+ "dev": true,
+ "requires": {
+ "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz"
+ }
+ },
+ "is-resolvable": {
+ "version": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz",
+ "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=",
+ "dev": true,
+ "requires": {
+ "tryit": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz"
+ }
+ },
+ "is-stream": {
+ "version": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+ },
+ "is-subset": {
+ "version": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz",
+ "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=",
+ "dev": true
+ },
+ "is-symbol": {
+ "version": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
+ "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=",
+ "dev": true
+ },
+ "is-typedarray": {
+ "version": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "is-utf8": {
+ "version": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "isexe": {
+ "version": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ },
+ "isobject": {
+ "version": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "requires": {
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ }
+ }
+ },
+ "isomorphic-fetch": {
+ "version": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
+ "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
+ "requires": {
+ "node-fetch": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz",
+ "whatwg-fetch": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz"
+ }
+ },
+ "isstream": {
+ "version": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+ },
+ "istanbul-api": {
+ "version": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.1.14.tgz",
+ "integrity": "sha1-JbxXAffGgMD//5E95G42GaOm5oA=",
+ "dev": true,
+ "requires": {
+ "async": "https://registry.npmjs.org/async/-/async-2.5.0.tgz",
+ "fileset": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz",
+ "istanbul-lib-coverage": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz",
+ "istanbul-lib-hook": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz",
+ "istanbul-lib-instrument": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.8.0.tgz",
+ "istanbul-lib-report": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz",
+ "istanbul-lib-source-maps": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz",
+ "istanbul-reports": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.2.tgz",
+ "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.9.1.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+ },
+ "dependencies": {
+ "async": {
+ "version": "https://registry.npmjs.org/async/-/async-2.5.0.tgz",
+ "integrity": "sha1-hDGQ/WtzV6C54clW7d3V7IRitU0=",
+ "dev": true,
+ "requires": {
+ "lodash": "4.17.4"
+ }
+ },
+ "babylon": {
+ "version": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=",
+ "dev": true
+ },
+ "istanbul-lib-coverage": {
+ "version": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz",
+ "integrity": "sha1-c7+5mIhSmUFck9OKPprfeEp3qdo=",
+ "dev": true
+ },
+ "istanbul-lib-instrument": {
+ "version": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.8.0.tgz",
+ "integrity": "sha1-ZvbJQhzJ7EcE928tsIS6kHiitTI=",
+ "dev": true,
+ "requires": {
+ "babel-generator": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.1.tgz",
+ "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz",
+ "babylon": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "istanbul-lib-coverage": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz",
+ "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
+ }
+ }
+ }
+ },
+ "istanbul-lib-coverage": {
+ "version": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz",
+ "integrity": "sha1-ysoZ3srvNSW11jMdcB8/O3rUhSg=",
+ "dev": true
+ },
+ "istanbul-lib-hook": {
+ "version": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz",
+ "integrity": "sha1-3WYH8DB2V4/n1vKmMM8UO0m6zdw=",
+ "dev": true,
+ "requires": {
+ "append-transform": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz"
+ }
+ },
+ "istanbul-lib-instrument": {
+ "version": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.1.tgz",
+ "integrity": "sha1-Fp4xvGLHeIUamUOd2Zw8wSGE02A=",
+ "dev": true,
+ "requires": {
+ "babel-generator": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.1.tgz",
+ "babel-template": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz",
+ "babel-traverse": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz",
+ "babylon": "https://registry.npmjs.org/babylon/-/babylon-6.17.1.tgz",
+ "istanbul-lib-coverage": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz",
+ "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
+ }
+ },
+ "istanbul-lib-report": {
+ "version": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz",
+ "integrity": "sha1-8OVfVmVf+jQiIIC3oM1HYOFAX8k=",
+ "dev": true,
+ "requires": {
+ "istanbul-lib-coverage": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "path-parse": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "istanbul-lib-coverage": {
+ "version": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz",
+ "integrity": "sha1-c7+5mIhSmUFck9OKPprfeEp3qdo=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz"
+ }
+ }
+ }
+ },
+ "istanbul-lib-source-maps": {
+ "version": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz",
+ "integrity": "sha1-pv4ay6jOCO68Y45XLilNJnAIqgw=",
+ "dev": true,
+ "requires": {
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+ "istanbul-lib-coverage": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
+ },
+ "dependencies": {
+ "istanbul-lib-coverage": {
+ "version": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz",
+ "integrity": "sha1-c7+5mIhSmUFck9OKPprfeEp3qdo=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
+ }
+ },
+ "istanbul-reports": {
+ "version": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.2.tgz",
+ "integrity": "sha1-D7Lj9qqZIr085F0F2KtNXo4HvU8=",
+ "dev": true,
+ "requires": {
+ "handlebars": "4.0.10"
+ }
+ },
+ "jest": {
+ "version": "https://registry.npmjs.org/jest/-/jest-20.0.4.tgz",
+ "integrity": "sha1-PdJgwpidba1nix6cxNkZRPbWAqw=",
+ "dev": true,
+ "requires": {
+ "jest-cli": "https://registry.npmjs.org/jest-cli/-/jest-cli-20.0.4.tgz"
+ },
+ "dependencies": {
+ "ansi-escapes": {
+ "version": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
+ "dev": true
+ },
+ "callsites": {
+ "version": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dev": true,
+ "requires": {
+ "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "wrap-ansi": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz"
+ }
+ },
+ "jest-cli": {
+ "version": "https://registry.npmjs.org/jest-cli/-/jest-cli-20.0.4.tgz",
+ "integrity": "sha1-5TKxnYiuW8bEF+iwWTpv6VSx3JM=",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "callsites": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "is-ci": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz",
+ "istanbul-api": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.1.14.tgz",
+ "istanbul-lib-coverage": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz",
+ "istanbul-lib-instrument": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.1.tgz",
+ "istanbul-lib-source-maps": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz",
+ "jest-changed-files": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-20.0.3.tgz",
+ "jest-config": "https://registry.npmjs.org/jest-config/-/jest-config-20.0.4.tgz",
+ "jest-docblock": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.0.3.tgz",
+ "jest-environment-jsdom": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz",
+ "jest-haste-map": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.0.5.tgz",
+ "jest-jasmine2": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz",
+ "jest-message-util": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-20.0.3.tgz",
+ "jest-regex-util": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-20.0.3.tgz",
+ "jest-resolve-dependencies": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz",
+ "jest-runtime": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-20.0.4.tgz",
+ "jest-snapshot": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-20.0.3.tgz",
+ "jest-util": "https://registry.npmjs.org/jest-util/-/jest-util-20.0.3.tgz",
+ "micromatch": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "node-notifier": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "slash": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "string-length": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
+ "throat": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz",
+ "which": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
+ "worker-farm": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.0.tgz",
+ "yargs": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz"
+ }
+ },
+ "yargs": {
+ "version": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
+ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
+ "dev": true,
+ "requires": {
+ "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "cliui": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "decamelize": "1.2.0",
+ "get-caller-file": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
+ "os-locale": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+ "read-pkg-up": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "require-directory": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "require-main-filename": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "set-blocking": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "which-module": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+ "y18n": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "yargs-parser": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz"
+ }
+ }
+ }
+ },
+ "jest-changed-files": {
+ "version": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-20.0.3.tgz",
+ "integrity": "sha1-k5TVzGXEOEBhSb7xv01Sto4D4/g=",
+ "dev": true
+ },
+ "jest-config": {
+ "version": "https://registry.npmjs.org/jest-config/-/jest-config-20.0.4.tgz",
+ "integrity": "sha1-43kwqyIXyRNgXv8T5712PsSPruo=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "jest-environment-jsdom": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz",
+ "jest-environment-node": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-20.0.3.tgz",
+ "jest-jasmine2": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz",
+ "jest-matcher-utils": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz",
+ "jest-regex-util": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-20.0.3.tgz",
+ "jest-resolve": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-20.0.4.tgz",
+ "jest-validate": "https://registry.npmjs.org/jest-validate/-/jest-validate-20.0.3.tgz",
+ "pretty-format": "https://registry.npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz"
+ }
+ },
+ "jest-diff": {
+ "version": "https://registry.npmjs.org/jest-diff/-/jest-diff-20.0.3.tgz",
+ "integrity": "sha1-gfKI/Z5nXw+yPHXxwrGURf5YZhc=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "diff": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
+ "jest-matcher-utils": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz",
+ "pretty-format": "https://registry.npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz"
+ }
+ },
+ "jest-docblock": {
+ "version": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.0.3.tgz",
+ "integrity": "sha1-F76phDQswz2DxQ++FUXqDvqkRxI=",
+ "dev": true
+ },
+ "jest-environment-jsdom": {
+ "version": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz",
+ "integrity": "sha1-BIqKwS7iJfcZBBdxODS7mZeH3pk=",
+ "dev": true,
+ "requires": {
+ "jest-mock": "https://registry.npmjs.org/jest-mock/-/jest-mock-20.0.3.tgz",
+ "jest-util": "https://registry.npmjs.org/jest-util/-/jest-util-20.0.3.tgz",
+ "jsdom": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz"
+ }
+ },
+ "jest-environment-node": {
+ "version": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-20.0.3.tgz",
+ "integrity": "sha1-1Ii8RhKvLCRumG6K52caCZFj1AM=",
+ "dev": true,
+ "requires": {
+ "jest-mock": "https://registry.npmjs.org/jest-mock/-/jest-mock-20.0.3.tgz",
+ "jest-util": "https://registry.npmjs.org/jest-util/-/jest-util-20.0.3.tgz"
+ }
+ },
+ "jest-haste-map": {
+ "version": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.0.5.tgz",
+ "integrity": "sha1-q61077GgBZdKe2UX4RAQcJyrkRI=",
+ "dev": true,
+ "requires": {
+ "fb-watchman": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz",
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "jest-docblock": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.0.3.tgz",
+ "micromatch": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "sane": "https://registry.npmjs.org/sane/-/sane-1.6.0.tgz",
+ "worker-farm": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.0.tgz"
+ }
+ },
+ "jest-jasmine2": {
+ "version": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz",
+ "integrity": "sha1-/MWxQReA2RHQQpAu8YWehS5g1eE=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "jest-diff": "https://registry.npmjs.org/jest-diff/-/jest-diff-20.0.3.tgz",
+ "jest-matcher-utils": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz",
+ "jest-matchers": "https://registry.npmjs.org/jest-matchers/-/jest-matchers-20.0.3.tgz",
+ "jest-message-util": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-20.0.3.tgz",
+ "jest-snapshot": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-20.0.3.tgz",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "p-map": "https://registry.npmjs.org/p-map/-/p-map-1.1.1.tgz"
+ }
+ },
+ "jest-matcher-utils": {
+ "version": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz",
+ "integrity": "sha1-s6a443yld4A7CDKpixZPRLeBVhI=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "pretty-format": "https://registry.npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz"
+ }
+ },
+ "jest-matchers": {
+ "version": "https://registry.npmjs.org/jest-matchers/-/jest-matchers-20.0.3.tgz",
+ "integrity": "sha1-ymnbHDLbWm9wf6XgQBq7VXAN/WA=",
+ "dev": true,
+ "requires": {
+ "jest-diff": "https://registry.npmjs.org/jest-diff/-/jest-diff-20.0.3.tgz",
+ "jest-matcher-utils": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz",
+ "jest-message-util": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-20.0.3.tgz",
+ "jest-regex-util": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-20.0.3.tgz"
+ }
+ },
+ "jest-message-util": {
+ "version": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-20.0.3.tgz",
+ "integrity": "sha1-auwoRDBvyw5udNV5bBAG2W/dgxw=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "micromatch": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "slash": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz"
+ }
+ },
+ "jest-mock": {
+ "version": "https://registry.npmjs.org/jest-mock/-/jest-mock-20.0.3.tgz",
+ "integrity": "sha1-i8Bw6QQUqhVcEajWTIaaDVxx2lk=",
+ "dev": true
+ },
+ "jest-regex-util": {
+ "version": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-20.0.3.tgz",
+ "integrity": "sha1-hburXRM+RGJbGfr4xqpRItCF12I=",
+ "dev": true
+ },
+ "jest-resolve": {
+ "version": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-20.0.4.tgz",
+ "integrity": "sha1-lEiz6La6/BVHlETGSZBFt//ll6U=",
+ "dev": true,
+ "requires": {
+ "browser-resolve": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
+ "is-builtin-module": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz"
+ }
+ },
+ "jest-resolve-dependencies": {
+ "version": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz",
+ "integrity": "sha1-bhSntxevDyyzZnxUneQK8Bexcjo=",
+ "dev": true,
+ "requires": {
+ "jest-regex-util": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-20.0.3.tgz"
+ }
+ },
+ "jest-runtime": {
+ "version": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-20.0.4.tgz",
+ "integrity": "sha1-osgCIZxCA/dU3xQE5JAYYWnRJNg=",
+ "dev": true,
+ "requires": {
+ "babel-core": "https://registry.npmjs.org/babel-core/-/babel-core-6.24.1.tgz",
+ "babel-jest": "https://registry.npmjs.org/babel-jest/-/babel-jest-20.0.3.tgz",
+ "babel-plugin-istanbul": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.3.tgz",
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "convert-source-map": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz",
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "jest-config": "https://registry.npmjs.org/jest-config/-/jest-config-20.0.4.tgz",
+ "jest-haste-map": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.0.5.tgz",
+ "jest-regex-util": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-20.0.3.tgz",
+ "jest-resolve": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-20.0.4.tgz",
+ "jest-util": "https://registry.npmjs.org/jest-util/-/jest-util-20.0.3.tgz",
+ "json-stable-stringify": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "micromatch": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "strip-bom": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "yargs": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dev": true,
+ "requires": {
+ "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "wrap-ansi": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz"
+ }
+ },
+ "strip-bom": {
+ "version": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
+ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
+ "dev": true,
+ "requires": {
+ "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "cliui": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "decamelize": "1.2.0",
+ "get-caller-file": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
+ "os-locale": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+ "read-pkg-up": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "require-directory": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "require-main-filename": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "set-blocking": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "which-module": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+ "y18n": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "yargs-parser": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz"
+ }
+ }
+ }
+ },
+ "jest-snapshot": {
+ "version": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-20.0.3.tgz",
+ "integrity": "sha1-W4R+GtsaTZCFKn+fElCG4YfHZWY=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "jest-diff": "https://registry.npmjs.org/jest-diff/-/jest-diff-20.0.3.tgz",
+ "jest-matcher-utils": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz",
+ "jest-util": "https://registry.npmjs.org/jest-util/-/jest-util-20.0.3.tgz",
+ "natural-compare": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "pretty-format": "https://registry.npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz"
+ }
+ },
+ "jest-util": {
+ "version": "https://registry.npmjs.org/jest-util/-/jest-util-20.0.3.tgz",
+ "integrity": "sha1-DAf32A2C9OWmfG+LnD/n9lz9Mq0=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "jest-message-util": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-20.0.3.tgz",
+ "jest-mock": "https://registry.npmjs.org/jest-mock/-/jest-mock-20.0.3.tgz",
+ "jest-validate": "https://registry.npmjs.org/jest-validate/-/jest-validate-20.0.3.tgz",
+ "leven": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
+ }
+ },
+ "jest-validate": {
+ "version": "https://registry.npmjs.org/jest-validate/-/jest-validate-20.0.3.tgz",
+ "integrity": "sha1-0M/R3k9XnymEhJJcKA+PHZTsPKs=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "jest-matcher-utils": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz",
+ "leven": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
+ "pretty-format": "https://registry.npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz"
+ }
+ },
+ "jodid25519": {
+ "version": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz",
+ "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=",
+ "optional": true,
+ "requires": {
+ "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
+ }
+ },
+ "jquery": {
+ "version": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz",
+ "integrity": "sha1-LInWiJterFIqfuoywUUhVZxsvwI="
+ },
+ "jquery-validation": {
+ "version": "https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.17.0.tgz",
+ "integrity": "sha1-q2a2tYPXdAubvRSJk+UOisBB81s=",
+ "requires": {
+ "jquery": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz"
+ }
+ },
+ "js-tokens": {
+ "version": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz",
+ "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc="
+ },
+ "js-yaml": {
+ "version": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.9.1.tgz",
+ "integrity": "sha1-CHdc69/dNZIJ8NKs04PI+GppBKA=",
+ "dev": true,
+ "requires": {
+ "argparse": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "esprima": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz"
+ }
+ },
+ "jsbn": {
+ "version": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "optional": true
+ },
+ "jschardet": {
+ "version": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.1.tgz",
+ "integrity": "sha1-xRn2KfhrOlvtuliojTETCe7Al/k=",
+ "dev": true
+ },
+ "jsdom": {
+ "version": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz",
+ "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=",
+ "dev": true,
+ "requires": {
+ "abab": "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz",
+ "acorn": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "acorn-globals": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
+ "array-equal": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
+ "content-type-parser": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.1.tgz",
+ "cssom": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz",
+ "cssstyle": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
+ "escodegen": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
+ "html-encoding-sniffer": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz",
+ "nwmatcher": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.1.tgz",
+ "parse5": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
+ "request": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
+ "sax": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "symbol-tree": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
+ "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
+ "webidl-conversions": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
+ "whatwg-encoding": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz",
+ "whatwg-url": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz",
+ "xml-name-validator": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+ "dev": true
+ }
+ }
+ },
+ "jsesc": {
+ "version": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+ "dev": true
+ },
+ "json-schema": {
+ "version": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ },
+ "json-schema-traverse": {
+ "version": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "dev": true
+ },
+ "json-stable-stringify": {
+ "version": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
+ "requires": {
+ "jsonify": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
+ }
+ },
+ "json-stringify-safe": {
+ "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
+ },
+ "json5": {
+ "version": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "dev": true
+ },
+ "jsonify": {
+ "version": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="
+ },
+ "jsprim": {
+ "version": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
+ "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=",
+ "requires": {
+ "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
+ "json-schema": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "verror": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "jsx-ast-utils": {
+ "version": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz",
+ "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=",
+ "dev": true
+ },
+ "juice": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/juice/-/juice-4.1.1.tgz",
+ "integrity": "sha512-vfsL1c6ls2PKa35nttZ+PFIC2EjfNUCYmlx99bX4AL9GyRTJU/yBllRCMUGD+Phvss8PBTCvtMRA5vC4aj5cgA==",
+ "requires": {
+ "cheerio": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz",
+ "commander": "2.9.0",
+ "cross-spawn": "5.1.0",
+ "deep-extend": "0.5.0",
+ "mensch": "0.3.3",
+ "slick": "1.12.2",
+ "web-resource-inliner": "4.1.1"
+ },
+ "dependencies": {
+ "deep-extend": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz",
+ "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM="
+ }
+ }
+ },
+ "keycode": {
+ "version": "https://registry.npmjs.org/keycode/-/keycode-2.1.9.tgz",
+ "integrity": "sha1-lkojxU5IiUBbSGGlyfBIDUUUHfo="
+ },
+ "kind-of": {
+ "version": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz"
+ }
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+ "optional": true
+ },
+ "lcid": {
+ "version": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "dev": true,
+ "requires": {
+ "invert-kv": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz"
+ }
+ },
+ "leven": {
+ "version": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
+ "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=",
+ "dev": true
+ },
+ "levn": {
+ "version": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz"
+ }
+ },
+ "load-json-file": {
+ "version": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "parse-json": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "strip-bom": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz"
+ }
+ },
+ "locate-path": {
+ "version": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "path-exists": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"
+ }
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
+ },
+ "lodash._reinterpolate": {
+ "version": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0="
+ },
+ "lodash.assignin": {
+ "version": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz",
+ "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI="
+ },
+ "lodash.bind": {
+ "version": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz",
+ "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU="
+ },
+ "lodash.cond": {
+ "version": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz",
+ "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=",
+ "dev": true
+ },
+ "lodash.defaults": {
+ "version": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
+ "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw="
+ },
+ "lodash.filter": {
+ "version": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz",
+ "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4="
+ },
+ "lodash.find": {
+ "version": "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz",
+ "integrity": "sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E=",
+ "dev": true
+ },
+ "lodash.flatten": {
+ "version": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
+ "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8="
+ },
+ "lodash.foreach": {
+ "version": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
+ "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM="
+ },
+ "lodash.isempty": {
+ "version": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz",
+ "integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4="
+ },
+ "lodash.isobject": {
+ "version": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz",
+ "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0="
+ },
+ "lodash.map": {
+ "version": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
+ "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM="
+ },
+ "lodash.memoize": {
+ "version": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
+ "dev": true
+ },
+ "lodash.merge": {
+ "version": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.0.tgz",
+ "integrity": "sha1-aYhLoUSsM/5plzemCG3v+t0PicU="
+ },
+ "lodash.pick": {
+ "version": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
+ "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM="
+ },
+ "lodash.reduce": {
+ "version": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz",
+ "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs="
+ },
+ "lodash.reject": {
+ "version": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz",
+ "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU="
+ },
+ "lodash.some": {
+ "version": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz",
+ "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0="
+ },
+ "lodash.template": {
+ "version": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz",
+ "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=",
+ "requires": {
+ "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "lodash.templatesettings": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz"
+ }
+ },
+ "lodash.templatesettings": {
+ "version": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz",
+ "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=",
+ "requires": {
+ "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz"
+ }
+ },
+ "lodash.unescape": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz",
+ "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw="
+ },
+ "lodash.without": {
+ "version": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz",
+ "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw="
+ },
+ "longest": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
+ },
+ "loose-envify": {
+ "version": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
+ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
+ "requires": {
+ "js-tokens": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
+ "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ },
+ "makeerror": {
+ "version": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz",
+ "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=",
+ "dev": true,
+ "requires": {
+ "tmpl": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz"
+ }
+ },
+ "mdurl": {
+ "version": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
+ "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
+ },
+ "mensch": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/mensch/-/mensch-0.3.3.tgz",
+ "integrity": "sha1-4gD/TdgjcX+OBWOzLj9UgfyiYrI="
+ },
+ "merge": {
+ "version": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz",
+ "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=",
+ "dev": true
+ },
+ "message-box": {
+ "version": "https://registry.npmjs.org/message-box/-/message-box-0.1.1.tgz",
+ "integrity": "sha1-d4VlhUzUUn0mc3P8IBJN4Ycpjaw=",
+ "requires": {
+ "lodash.merge": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.0.tgz",
+ "lodash.template": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz"
+ }
+ },
+ "meteor-node-stubs": {
+ "version": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-0.2.11.tgz",
+ "integrity": "sha1-cV5Owc6IgkiylgThbQkiVrDLfjQ=",
+ "requires": {
+ "assert": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
+ "browserify-zlib": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
+ "buffer": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+ "console-browserify": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+ "constants-browserify": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "crypto-browserify": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz",
+ "domain-browser": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
+ "events": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
+ "http-browserify": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz",
+ "https-browserify": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz",
+ "os-browserify": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz",
+ "path-browserify": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
+ "process": "https://registry.npmjs.org/process/-/process-0.11.9.tgz",
+ "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "querystring-es3": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "readable-stream": "git+https://github.com/meteor/readable-stream.git#2e9112d7d31a2af6e0682db0e18679b1e5fd4694",
+ "stream-browserify": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz",
+ "timers-browserify": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
+ "tty-browserify": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "url": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "util": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "vm-browserify": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz"
+ },
+ "dependencies": {
+ "asn1.js": {
+ "version": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.0.tgz",
+ "integrity": "sha1-9xoSQ/PnnUbXsH1/v0gk7nOvBUo=",
+ "requires": {
+ "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz"
+ }
+ },
+ "assert": {
+ "version": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
+ "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
+ "requires": {
+ "util": "https://registry.npmjs.org/util/-/util-0.10.3.tgz"
+ }
+ },
+ "balanced-match": {
+ "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg="
+ },
+ "Base64": {
+ "version": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz",
+ "integrity": "sha1-ujpCMHCOGGcFBl5mur3Uw1z2ACg="
+ },
+ "base64-js": {
+ "version": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz",
+ "integrity": "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE="
+ },
+ "bn.js": {
+ "version": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU="
+ },
+ "brace-expansion": {
+ "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz",
+ "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=",
+ "requires": {
+ "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ }
+ },
+ "brorand": {
+ "version": "https://registry.npmjs.org/brorand/-/brorand-1.0.6.tgz",
+ "integrity": "sha1-QChwa5FfkfezSaLgvzw3YDnSFuU="
+ },
+ "browserify-aes": {
+ "version": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz",
+ "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=",
+ "requires": {
+ "buffer-xor": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "cipher-base": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz",
+ "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz",
+ "evp_bytestokey": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+ }
+ },
+ "browserify-cipher": {
+ "version": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
+ "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
+ "requires": {
+ "browserify-aes": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz",
+ "browserify-des": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
+ "evp_bytestokey": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz"
+ }
+ },
+ "browserify-des": {
+ "version": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
+ "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=",
+ "requires": {
+ "cipher-base": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz",
+ "des.js": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+ }
+ },
+ "browserify-rsa": {
+ "version": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+ "requires": {
+ "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz"
+ }
+ },
+ "browserify-sign": {
+ "version": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.0.tgz",
+ "integrity": "sha1-EHc5EMPCBtVCCkaq2GlPgguFlo8=",
+ "requires": {
+ "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "browserify-rsa": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+ "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz",
+ "create-hmac": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz",
+ "elliptic": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.2.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "parse-asn1": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.0.0.tgz"
+ }
+ },
+ "browserify-zlib": {
+ "version": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
+ "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
+ "requires": {
+ "pako": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz"
+ }
+ },
+ "buffer": {
+ "version": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+ "requires": {
+ "base64-js": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz",
+ "ieee754": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz",
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ }
+ },
+ "buffer-xor": {
+ "version": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
+ },
+ "cipher-base": {
+ "version": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz",
+ "integrity": "sha1-7qvxlEGc6QDaMBjCB9IS8qbfCgc=",
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+ }
+ },
+ "concat-map": {
+ "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "console-browserify": {
+ "version": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+ "requires": {
+ "date-now": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz"
+ }
+ },
+ "constants-browserify": {
+ "version": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
+ },
+ "create-ecdh": {
+ "version": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
+ "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
+ "requires": {
+ "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "elliptic": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.2.tgz"
+ }
+ },
+ "create-hash": {
+ "version": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz",
+ "integrity": "sha1-USEAYte7dHn2xlu0GpIgix1hq60=",
+ "requires": {
+ "cipher-base": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "ripemd160": "https://registry.npmjs.org/ripemd160/-/ripemd160-1.0.1.tgz",
+ "sha.js": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz"
+ }
+ },
+ "create-hmac": {
+ "version": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz",
+ "integrity": "sha1-0/tLolPriz9W456i+8uK90e9MXA=",
+ "requires": {
+ "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+ }
+ },
+ "crypto-browserify": {
+ "version": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz",
+ "integrity": "sha1-NlKgkGq5sqfgw85mpAjpV6JIVSI=",
+ "requires": {
+ "browserify-cipher": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
+ "browserify-sign": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.0.tgz",
+ "create-ecdh": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
+ "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz",
+ "create-hmac": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz",
+ "diffie-hellman": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "pbkdf2": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.9.tgz",
+ "public-encrypt": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
+ "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz"
+ }
+ },
+ "date-now": {
+ "version": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs="
+ },
+ "des.js": {
+ "version": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
+ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz"
+ }
+ },
+ "diffie-hellman": {
+ "version": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
+ "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
+ "requires": {
+ "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "miller-rabin": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz",
+ "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz"
+ }
+ },
+ "domain-browser": {
+ "version": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
+ "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw="
+ },
+ "elliptic": {
+ "version": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.2.tgz",
+ "integrity": "sha1-5MgeCCnPCmWrcOmYuCMnI7XBvEg=",
+ "requires": {
+ "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "brorand": "https://registry.npmjs.org/brorand/-/brorand-1.0.6.tgz",
+ "hash.js": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+ }
+ },
+ "events": {
+ "version": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
+ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
+ },
+ "evp_bytestokey": {
+ "version": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz",
+ "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=",
+ "requires": {
+ "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz"
+ }
+ },
+ "fs.realpath": {
+ "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "glob": {
+ "version": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=",
+ "requires": {
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ }
+ },
+ "hash.js": {
+ "version": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz",
+ "integrity": "sha1-EzL/ABVsCg/92CNgE9B7d6BFFXM=",
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+ }
+ },
+ "http-browserify": {
+ "version": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz",
+ "integrity": "sha1-M3la3nLfiKz7/TZ3PO/tp2RzWyA=",
+ "requires": {
+ "Base64": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+ }
+ },
+ "https-browserify": {
+ "version": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz",
+ "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI="
+ },
+ "ieee754": {
+ "version": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz",
+ "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q="
+ },
+ "indexof": {
+ "version": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
+ "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
+ },
+ "inflight": {
+ "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ }
+ },
+ "inherits": {
+ "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+ },
+ "isarray": {
+ "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "miller-rabin": {
+ "version": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz",
+ "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=",
+ "requires": {
+ "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "brorand": "https://registry.npmjs.org/brorand/-/brorand-1.0.6.tgz"
+ }
+ },
+ "minimalistic-assert": {
+ "version": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
+ "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M="
+ },
+ "minimatch": {
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
+ "requires": {
+ "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz"
+ }
+ },
+ "once": {
+ "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ }
+ },
+ "os-browserify": {
+ "version": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz",
+ "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8="
+ },
+ "pako": {
+ "version": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
+ "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU="
+ },
+ "parse-asn1": {
+ "version": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.0.0.tgz",
+ "integrity": "sha1-NQYPbVAV03Yox3D04JGgtaJ4vCM=",
+ "requires": {
+ "asn1.js": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.0.tgz",
+ "browserify-aes": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz",
+ "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz",
+ "evp_bytestokey": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz",
+ "pbkdf2": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.9.tgz"
+ }
+ },
+ "path-browserify": {
+ "version": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
+ "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo="
+ },
+ "path-is-absolute": {
+ "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "pbkdf2": {
+ "version": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.9.tgz",
+ "integrity": "sha1-8sSyWmAAWLPDdzwIbDfbvuH/5pM=",
+ "requires": {
+ "create-hmac": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz"
+ }
+ },
+ "process": {
+ "version": "https://registry.npmjs.org/process/-/process-0.11.9.tgz",
+ "integrity": "sha1-e9WtIapiU+fahoImTx4R0RwDGME="
+ },
+ "process-nextick-args": {
+ "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
+ },
+ "public-encrypt": {
+ "version": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
+ "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
+ "requires": {
+ "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "browserify-rsa": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+ "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz",
+ "parse-asn1": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.0.0.tgz",
+ "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz"
+ }
+ },
+ "punycode": {
+ "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ },
+ "querystring": {
+ "version": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
+ },
+ "querystring-es3": {
+ "version": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM="
+ },
+ "randombytes": {
+ "version": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz",
+ "integrity": "sha1-Z0yZdgkBw8QRJ3GjHlIdw0nMCew="
+ },
+ "readable-stream": {
+ "version": "git+https://github.com/meteor/readable-stream.git#2e9112d7d31a2af6e0682db0e18679b1e5fd4694",
+ "integrity": "sha1-8ShlS187DDnDjkzS6evquZLUmyI=",
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz",
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz",
+ "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+ }
+ },
+ "rimraf": {
+ "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
+ "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=",
+ "requires": {
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz"
+ }
+ },
+ "ripemd160": {
+ "version": "https://registry.npmjs.org/ripemd160/-/ripemd160-1.0.1.tgz",
+ "integrity": "sha1-k6S71JQrxXS2mo+lfHHeEOzKfW4="
+ },
+ "safe-buffer": {
+ "version": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz",
+ "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c="
+ },
+ "sha.js": {
+ "version": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz",
+ "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=",
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+ }
+ },
+ "stream-browserify": {
+ "version": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
+ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "readable-stream": "git+https://github.com/meteor/readable-stream.git#2e9112d7d31a2af6e0682db0e18679b1e5fd4694"
+ }
+ },
+ "string_decoder": {
+ "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz",
+ "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=",
+ "requires": {
+ "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz"
+ }
+ },
+ "timers-browserify": {
+ "version": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
+ "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=",
+ "requires": {
+ "process": "https://registry.npmjs.org/process/-/process-0.11.9.tgz"
+ }
+ },
+ "tty-browserify": {
+ "version": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY="
+ },
+ "url": {
+ "version": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "requires": {
+ "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "querystring": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
+ }
+ }
+ },
+ "util": {
+ "version": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+ }
+ },
+ "util-deprecate": {
+ "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "vm-browserify": {
+ "version": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
+ "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
+ "requires": {
+ "indexof": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz"
+ }
+ },
+ "wrappy": {
+ "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ }
+ }
+ },
+ "micromatch": {
+ "version": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+ "dev": true,
+ "requires": {
+ "arr-diff": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "array-unique": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "braces": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "expand-brackets": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "extglob": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "filename-regex": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "normalize-path": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "object.omit": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "parse-glob": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "regex-cache": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz"
+ }
+ },
+ "mime-db": {
+ "version": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz",
+ "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE="
+ },
+ "mime-types": {
+ "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz",
+ "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=",
+ "requires": {
+ "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz"
+ }
+ },
+ "mimer": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/mimer/-/mimer-0.2.1.tgz",
+ "integrity": "sha1-xjxaF/6GQj9RYahdVcPtUYm6r/w="
+ },
+ "mimic-fn": {
+ "version": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz",
+ "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
+ "requires": {
+ "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz"
+ }
+ },
+ "minimist": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
+ "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
+ },
+ "mkdirp": {
+ "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ }
+ }
+ },
+ "moment": {
+ "version": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz",
+ "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8="
+ },
+ "moment-timezone": {
+ "version": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.13.tgz",
+ "integrity": "sha1-mc5cfYJyYusPH3AgRBd/YHRde5A=",
+ "requires": {
+ "moment": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz"
+ }
+ },
+ "mongo-object": {
+ "version": "https://registry.npmjs.org/mongo-object/-/mongo-object-0.0.2.tgz",
+ "integrity": "sha1-Pcq6+RRuGvtjqAlAYUa4VE0olko=",
+ "requires": {
+ "lodash.foreach": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
+ "lodash.isempty": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz",
+ "lodash.isobject": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz",
+ "lodash.without": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz"
+ }
+ },
+ "ms": {
+ "version": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "mute-stream": {
+ "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "dev": true
+ },
+ "nan": {
+ "version": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz",
+ "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U="
+ },
+ "natural-compare": {
+ "version": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "node-fetch": {
+ "version": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz",
+ "integrity": "sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ=",
+ "requires": {
+ "encoding": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
+ "is-stream": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"
+ }
+ },
+ "node-int64": {
+ "version": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=",
+ "dev": true
+ },
+ "node-notifier": {
+ "version": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz",
+ "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=",
+ "dev": true,
+ "requires": {
+ "growly": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
+ "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "shellwords": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
+ "which": "https://registry.npmjs.org/which/-/which-1.2.14.tgz"
+ }
+ },
+ "node-pre-gyp": {
+ "version": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz",
+ "integrity": "sha1-22BBEst04NR3VU6bUFsXq936t4Y=",
+ "requires": {
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "nopt": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+ "npmlog": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "rc": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz",
+ "request": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
+ "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "tar": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
+ "tar-pack": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz"
+ }
+ },
+ "nopt": {
+ "version": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
+ "requires": {
+ "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
+ "osenv": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz"
+ }
+ },
+ "normalize-package-data": {
+ "version": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz",
+ "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz",
+ "is-builtin-module": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "validate-npm-package-license": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz"
+ }
+ },
+ "normalize-path": {
+ "version": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz"
+ }
+ },
+ "npmlog": {
+ "version": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=",
+ "requires": {
+ "are-we-there-yet": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
+ "console-control-strings": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "gauge": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "set-blocking": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
+ }
+ },
+ "nth-check": {
+ "version": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
+ "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
+ "requires": {
+ "boolbase": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz"
+ }
+ },
+ "number-is-nan": {
+ "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+ },
+ "nwmatcher": {
+ "version": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.1.tgz",
+ "integrity": "sha1-eumwew6oBNt+JfBctf5Al9TklJ8=",
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
+ },
+ "object-assign": {
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "object-is": {
+ "version": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
+ "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=",
+ "dev": true
+ },
+ "object-keys": {
+ "version": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
+ "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=",
+ "dev": true
+ },
+ "object.assign": {
+ "version": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz",
+ "integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=",
+ "dev": true,
+ "requires": {
+ "define-properties": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
+ "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "object-keys": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz"
+ }
+ },
+ "object.entries": {
+ "version": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz",
+ "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=",
+ "dev": true,
+ "requires": {
+ "define-properties": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
+ "es-abstract": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.2.tgz",
+ "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz"
+ }
+ },
+ "object.omit": {
+ "version": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "dev": true,
+ "requires": {
+ "for-own": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "is-extendable": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
+ }
+ },
+ "object.values": {
+ "version": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz",
+ "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=",
+ "dev": true,
+ "requires": {
+ "define-properties": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
+ "es-abstract": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.2.tgz",
+ "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz"
+ }
+ },
+ "once": {
+ "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ }
+ },
+ "onetime": {
+ "version": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz"
+ }
+ },
+ "optimist": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+ "requires": {
+ "minimist": "0.0.10",
+ "wordwrap": "0.0.3"
+ }
+ },
+ "optionator": {
+ "version": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+ "dev": true,
+ "requires": {
+ "deep-is": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "fast-levenshtein": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "levn": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+ "dev": true
+ }
+ }
+ },
+ "os-homedir": {
+ "version": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
+ },
+ "os-locale": {
+ "version": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+ "dev": true,
+ "requires": {
+ "lcid": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz"
+ }
+ },
+ "os-tmpdir": {
+ "version": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ },
+ "osenv": {
+ "version": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
+ "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
+ "requires": {
+ "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"
+ }
+ },
+ "p-limit": {
+ "version": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz",
+ "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=",
+ "dev": true
+ },
+ "p-locate": {
+ "version": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz"
+ }
+ },
+ "p-map": {
+ "version": "https://registry.npmjs.org/p-map/-/p-map-1.1.1.tgz",
+ "integrity": "sha1-BfXkrpegaDcbwqXMhr+9vBnErno=",
+ "dev": true
+ },
+ "parse-glob": {
+ "version": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "dev": true,
+ "requires": {
+ "glob-base": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "is-dotfile": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz",
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
+ }
+ },
+ "parse-json": {
+ "version": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz"
+ }
+ },
+ "parse5": {
+ "version": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
+ "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "path-is-inside": {
+ "version": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
+ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
+ "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=",
+ "requires": {
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
+ }
+ },
+ "path-type": {
+ "version": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ }
+ },
+ "performance-now": {
+ "version": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
+ "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU="
+ },
+ "pify": {
+ "version": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
+ }
+ },
+ "pkg-dir": {
+ "version": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
+ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
+ "dev": true,
+ "requires": {
+ "find-up": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ }
+ },
+ "path-exists": {
+ "version": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ }
+ }
+ }
+ },
+ "pluralize": {
+ "version": "https://registry.npmjs.org/pluralize/-/pluralize-4.0.0.tgz",
+ "integrity": "sha1-WbcIwcAZCi9pLxx2GMRGsFL9F2I=",
+ "dev": true
+ },
+ "prelude-ls": {
+ "version": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "dev": true
+ },
+ "preserve": {
+ "version": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "https://registry.npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz",
+ "integrity": "sha1-Ag41ClYKH+GpjcO+tsz/s4beixQ=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha1-wVm41b4PnlpvNG2rlPFs4CIWG4g=",
+ "dev": true,
+ "requires": {
+ "color-convert": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz"
+ }
+ }
+ }
+ },
+ "private": {
+ "version": "https://registry.npmjs.org/private/-/private-0.1.7.tgz",
+ "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
+ },
+ "progress": {
+ "version": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz",
+ "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=",
+ "dev": true
+ },
+ "promise": {
+ "version": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz",
+ "integrity": "sha1-SJZUxpJha4qlWwck+oCbt9tJxb8=",
+ "requires": {
+ "asap": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz"
+ }
+ },
+ "prop-types": {
+ "version": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz",
+ "integrity": "sha1-J5ffwxJhguOpXj37suiT3ddFYVQ=",
+ "requires": {
+ "fbjs": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz",
+ "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz"
+ }
+ },
+ "prop-types-extra": {
+ "version": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.0.1.tgz",
+ "integrity": "sha1-pXvUgQ6C0no/9DF+zBtK0AX3moI=",
+ "requires": {
+ "warning": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz"
+ }
+ },
+ "prr": {
+ "version": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz",
+ "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=",
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
+ },
+ "punycode": {
+ "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ },
+ "qs": {
+ "version": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
+ "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM="
+ },
+ "randomatic": {
+ "version": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz",
+ "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=",
+ "dev": true,
+ "requires": {
+ "is-number": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ }
+ },
+ "rc": {
+ "version": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz",
+ "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=",
+ "requires": {
+ "deep-extend": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
+ "ini": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "strip-json-comments": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ }
+ }
+ },
+ "react": {
+ "version": "https://registry.npmjs.org/react/-/react-15.6.1.tgz",
+ "integrity": "sha1-uqhDTsZ4C96ZfNw4C3nNM7ljk98=",
+ "requires": {
+ "create-react-class": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.0.tgz",
+ "fbjs": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz",
+ "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "prop-types": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz"
+ }
+ },
+ "react-addons-pure-render-mixin": {
+ "version": "https://registry.npmjs.org/react-addons-pure-render-mixin/-/react-addons-pure-render-mixin-15.6.0.tgz",
+ "integrity": "sha1-hLoChjDN+JI50W8btNmP6GVlGBM=",
+ "requires": {
+ "fbjs": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ }
+ },
+ "react-bootstrap": {
+ "version": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.31.3.tgz",
+ "integrity": "sha1-2yt9RbALXawauLbePdl/6zCRuEk=",
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "classnames": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz",
+ "dom-helpers": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.2.1.tgz",
+ "invariant": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
+ "keycode": "https://registry.npmjs.org/keycode/-/keycode-2.1.9.tgz",
+ "prop-types": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz",
+ "prop-types-extra": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.0.1.tgz",
+ "react-overlays": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.7.0.tgz",
+ "react-prop-types": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.4.0.tgz",
+ "uncontrollable": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-4.1.0.tgz",
+ "warning": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz"
+ }
+ },
+ "react-dom": {
+ "version": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.1.tgz",
+ "integrity": "sha1-LLDtQZEDjlPCCes6eaI+Kkz5lHA=",
+ "requires": {
+ "fbjs": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz",
+ "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "prop-types": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz"
+ }
+ },
+ "react-overlays": {
+ "version": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.7.0.tgz",
+ "integrity": "sha1-UxiY/1ZsflxyJurShjuM+fu1qYE=",
+ "requires": {
+ "classnames": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz",
+ "dom-helpers": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.2.1.tgz",
+ "prop-types": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz",
+ "react-prop-types": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.4.0.tgz",
+ "warning": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz"
+ }
+ },
+ "react-prop-types": {
+ "version": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.4.0.tgz",
+ "integrity": "sha1-+ZsL+0AGkpya8gUefBQUpcdbk9A=",
+ "requires": {
+ "warning": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz"
+ }
+ },
+ "react-router": {
+ "version": "https://registry.npmjs.org/react-router/-/react-router-4.2.0.tgz",
+ "integrity": "sha1-Yfez43cNrrJAYtrj7t7xsFQVWYY=",
+ "requires": {
+ "history": "https://registry.npmjs.org/history/-/history-4.7.2.tgz",
+ "hoist-non-react-statics": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz",
+ "invariant": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
+ "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
+ "path-to-regexp": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
+ "prop-types": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz",
+ "warning": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz"
+ }
+ },
+ "react-router-bootstrap": {
+ "version": "https://registry.npmjs.org/react-router-bootstrap/-/react-router-bootstrap-0.24.3.tgz",
+ "integrity": "sha1-psLDgWTgp3mEP9u66gXc1N4jOjs=",
+ "requires": {
+ "prop-types": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz"
+ }
+ },
+ "react-router-dom": {
+ "version": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.2.2.tgz",
+ "integrity": "sha1-yKgd863Fi7qKdngulGy9Tq5km40=",
+ "requires": {
+ "history": "https://registry.npmjs.org/history/-/history-4.7.2.tgz",
+ "invariant": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
+ "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
+ "prop-types": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz",
+ "react-router": "https://registry.npmjs.org/react-router/-/react-router-4.2.0.tgz",
+ "warning": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz"
+ }
+ },
+ "read-pkg": {
+ "version": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz",
+ "path-type": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz"
+ }
+ },
+ "read-pkg-up": {
+ "version": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "read-pkg": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ }
+ },
+ "path-exists": {
+ "version": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ }
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz",
+ "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=",
+ "requires": {
+ "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz",
+ "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ }
+ }
+ },
+ "regenerate": {
+ "version": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz",
+ "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=",
+ "dev": true
+ },
+ "regenerator-runtime": {
+ "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz",
+ "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE="
+ },
+ "regenerator-transform": {
+ "version": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz",
+ "integrity": "sha1-On0GdSDLe3F2dp61/4aGkb7+EoM=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz",
+ "private": "https://registry.npmjs.org/private/-/private-0.1.7.tgz"
+ }
+ },
+ "regex-cache": {
+ "version": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz",
+ "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=",
+ "dev": true,
+ "requires": {
+ "is-equal-shallow": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+ "is-primitive": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz"
+ }
+ },
+ "regexpu-core": {
+ "version": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
+ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
+ "dev": true,
+ "requires": {
+ "regenerate": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz",
+ "regjsgen": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "regjsparser": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz"
+ }
+ },
+ "regjsgen": {
+ "version": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ }
+ }
+ },
+ "remove-trailing-separator": {
+ "version": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz",
+ "integrity": "sha1-YV67lq9VlVLUv0BXyENtSGq2PMQ=",
+ "dev": true
+ },
+ "repeat-element": {
+ "version": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+ "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
+ },
+ "repeating": {
+ "version": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz"
+ }
+ },
+ "request": {
+ "version": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
+ "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
+ "requires": {
+ "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "aws4": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
+ "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "form-data": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
+ "har-validator": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
+ "hawk": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "is-typedarray": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz",
+ "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "performance-now": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
+ "qs": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
+ "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz",
+ "stringstream": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
+ "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz",
+ "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE="
+ }
+ }
+ },
+ "require-directory": {
+ "version": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "dev": true
+ },
+ "require-uncached": {
+ "version": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
+ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
+ "dev": true,
+ "requires": {
+ "caller-path": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
+ "resolve-from": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz"
+ }
+ },
+ "resolve": {
+ "version": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz",
+ "integrity": "sha1-p1vgHFPaJdk0qY69DkxKcxL5KoY=",
+ "dev": true,
+ "requires": {
+ "path-parse": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz"
+ }
+ },
+ "resolve-from": {
+ "version": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
+ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
+ "dev": true
+ },
+ "resolve-pathname": {
+ "version": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz",
+ "integrity": "sha1-fpriHtgV/WOrGJre7mTcgx7vqHk="
+ },
+ "restore-cursor": {
+ "version": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "dev": true,
+ "requires": {
+ "onetime": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "signal-exit": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"
+ }
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "optional": true,
+ "requires": {
+ "align-text": "0.1.4"
+ }
+ },
+ "rimraf": {
+ "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
+ "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=",
+ "requires": {
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz"
+ }
+ },
+ "run-async": {
+ "version": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "dev": true,
+ "requires": {
+ "is-promise": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz"
+ }
+ },
+ "rx-lite": {
+ "version": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
+ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
+ "dev": true
+ },
+ "rx-lite-aggregates": {
+ "version": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
+ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
+ "dev": true,
+ "requires": {
+ "rx-lite": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz"
+ }
+ },
+ "safe-buffer": {
+ "version": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz",
+ "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c="
+ },
+ "sane": {
+ "version": "https://registry.npmjs.org/sane/-/sane-1.6.0.tgz",
+ "integrity": "sha1-lhDEUjB6E10pwf3+JUcDQYDEZ3U=",
+ "dev": true,
+ "requires": {
+ "anymatch": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
+ "exec-sh": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.0.tgz",
+ "fb-watchman": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-1.9.2.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "walker": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
+ "watch": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz"
+ },
+ "dependencies": {
+ "bser": {
+ "version": "https://registry.npmjs.org/bser/-/bser-1.0.2.tgz",
+ "integrity": "sha1-OBEWlwsqbe6lZG3RXdcnhES1YWk=",
+ "dev": true,
+ "requires": {
+ "node-int64": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz"
+ }
+ },
+ "fb-watchman": {
+ "version": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-1.9.2.tgz",
+ "integrity": "sha1-okz0eCf4LTj7Waaa1wt247auc4M=",
+ "dev": true,
+ "requires": {
+ "bser": "https://registry.npmjs.org/bser/-/bser-1.0.2.tgz"
+ }
+ },
+ "minimist": {
+ "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "sax": {
+ "version": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=",
+ "dev": true
+ },
+ "semver": {
+ "version": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
+ },
+ "set-blocking": {
+ "version": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+ },
+ "setimmediate": {
+ "version": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "requires": {
+ "shebang-regex": "1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
+ },
+ "shellwords": {
+ "version": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
+ "integrity": "sha1-1rkYHBpI05cyTISHHvvPxz/AZUs=",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
+ },
+ "simpl-schema": {
+ "version": "https://registry.npmjs.org/simpl-schema/-/simpl-schema-0.3.2.tgz",
+ "integrity": "sha1-LHVETpN4UFrFJSGTlN4GPOT28Gg=",
+ "requires": {
+ "clone": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz",
+ "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "message-box": "https://registry.npmjs.org/message-box/-/message-box-0.1.1.tgz",
+ "mongo-object": "https://registry.npmjs.org/mongo-object/-/mongo-object-0.0.2.tgz",
+ "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz"
+ }
+ },
+ "slash": {
+ "version": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
+ "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
+ "dev": true
+ },
+ "slick": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz",
+ "integrity": "sha1-vQSN23TefRymkV+qSldXCzVQwtc="
+ },
+ "sntp": {
+ "version": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "requires": {
+ "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
+ }
+ },
+ "source-map": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "requires": {
+ "amdefine": "1.0.1"
+ }
+ },
+ "source-map-support": {
+ "version": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz",
+ "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=",
+ "dev": true,
+ "requires": {
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+ "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
+ "dev": true
+ }
+ }
+ },
+ "spdx-correct": {
+ "version": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
+ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
+ "dev": true,
+ "requires": {
+ "spdx-license-ids": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz"
+ }
+ },
+ "spdx-expression-parse": {
+ "version": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
+ "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
+ "dev": true
+ },
+ "spdx-license-ids": {
+ "version": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
+ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
+ "dev": true
+ },
+ "sprintf-js": {
+ "version": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz",
+ "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=",
+ "requires": {
+ "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "bcrypt-pbkdf": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+ "dashdash": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "ecc-jsbn": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "getpass": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "jodid25519": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz",
+ "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "string_decoder": {
+ "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz",
+ "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=",
+ "requires": {
+ "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz"
+ }
+ },
+ "string-length": {
+ "version": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
+ "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=",
+ "dev": true,
+ "requires": {
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
+ }
+ },
+ "string-width": {
+ "version": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "requires": {
+ "code-point-at": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
+ }
+ },
+ "string.prototype.repeat": {
+ "version": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz",
+ "integrity": "sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8="
+ },
+ "stringstream": {
+ "version": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
+ },
+ "strip-ansi": {
+ "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
+ }
+ },
+ "strip-bom": {
+ "version": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz"
+ }
+ },
+ "strip-json-comments": {
+ "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
+ },
+ "supports-color": {
+ "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+ },
+ "symbol-tree": {
+ "version": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
+ "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=",
+ "dev": true
+ },
+ "table": {
+ "version": "https://registry.npmjs.org/table/-/table-4.0.1.tgz",
+ "integrity": "sha1-qBFsEz+sLGH0pCCrbN9cTWHw5DU=",
+ "dev": true,
+ "requires": {
+ "ajv": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
+ "ajv-keywords": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "lodash": "4.17.4",
+ "slice-ansi": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
+ "string-width": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"
+ }
+ },
+ "strip-ansi": {
+ "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"
+ }
+ }
+ }
+ },
+ "tar": {
+ "version": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
+ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
+ "requires": {
+ "block-stream": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "fstream": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ }
+ },
+ "tar-pack": {
+ "version": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz",
+ "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=",
+ "requires": {
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+ "fstream": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
+ "fstream-ignore": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz",
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
+ "tar": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
+ "uid-number": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz"
+ }
+ },
+ "test-exclude": {
+ "version": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.0.tgz",
+ "integrity": "sha1-BMpwtzkN04yY1KADoXOAbKeZHJE=",
+ "dev": true,
+ "requires": {
+ "arrify": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "micromatch": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "read-pkg-up": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "require-main-filename": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz"
+ }
+ },
+ "text-table": {
+ "version": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "throat": {
+ "version": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz",
+ "integrity": "sha1-UMsGcO28QCN7njR9fh+I5GIK+DY=",
+ "dev": true
+ },
+ "through": {
+ "version": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "tmp": {
+ "version": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
+ "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"
+ }
+ },
+ "tmpl": {
+ "version": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
+ "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=",
+ "dev": true
+ },
+ "to-fast-properties": {
+ "version": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "dev": true
+ },
+ "tough-cookie": {
+ "version": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
+ "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
+ "requires": {
+ "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"
+ }
+ },
+ "tr46": {
+ "version": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
+ "dev": true
+ },
+ "trim-right": {
+ "version": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
+ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+ "dev": true
+ },
+ "tryit": {
+ "version": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz",
+ "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "requires": {
+ "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz"
+ }
+ },
+ "tweetnacl": {
+ "version": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "optional": true
+ },
+ "type-check": {
+ "version": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz"
+ }
+ },
+ "typedarray": {
+ "version": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "ua-parser-js": {
+ "version": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.12.tgz",
+ "integrity": "sha1-BMgamb3V3FImPqKdJMa/jUgYpLs="
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "optional": true,
+ "requires": {
+ "source-map": "0.5.7",
+ "uglify-to-browserify": "1.0.2",
+ "yargs": "3.10.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "optional": true
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "optional": true
+ },
+ "uid-number": {
+ "version": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz",
+ "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE="
+ },
+ "uncontrollable": {
+ "version": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-4.1.0.tgz",
+ "integrity": "sha1-4DWCkSUuGGUiLZCTmxny9J+Bwak=",
+ "requires": {
+ "invariant": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz"
+ }
+ },
+ "underscore": {
+ "version": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
+ "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI="
+ },
+ "util-deprecate": {
+ "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "uuid": {
+ "version": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
+ "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "version": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
+ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
+ "spdx-expression-parse": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz"
+ }
+ },
+ "value-equal": {
+ "version": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz",
+ "integrity": "sha1-xb3S9U7gk8BIOdcc4uR1imiQq8c="
+ },
+ "verror": {
+ "version": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
+ "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=",
+ "requires": {
+ "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz"
+ }
+ },
+ "walker": {
+ "version": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
+ "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=",
+ "dev": true,
+ "requires": {
+ "makeerror": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz"
+ }
+ },
+ "warning": {
+ "version": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
+ "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
+ "requires": {
+ "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz"
+ }
+ },
+ "watch": {
+ "version": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz",
+ "integrity": "sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw=",
+ "dev": true
+ },
+ "web-resource-inliner": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-4.1.1.tgz",
+ "integrity": "sha512-LZFX/V43wi+opsbw7ymzBNW2f4cplLPCqBvvPTu/gXfFmy2mXcW7P3CF5UYBJEz2ZIe6tQy4xHAjtJLGhEu0Tw==",
+ "requires": {
+ "async": "2.5.0",
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "datauri": "1.0.5",
+ "htmlparser2": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
+ "lodash.unescape": "4.0.1",
+ "request": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz",
+ "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==",
+ "requires": {
+ "lodash": "4.17.4"
+ }
+ }
+ }
+ },
+ "webidl-conversions": {
+ "version": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
+ "integrity": "sha1-qFWYCx8LazWbodXZ+zmulB+qY60=",
+ "dev": true
+ },
+ "whatwg-encoding": {
+ "version": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz",
+ "integrity": "sha1-PGxFGhmO567FWx7GHQkgxngBpfQ=",
+ "dev": true,
+ "requires": {
+ "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
+ "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=",
+ "dev": true
+ }
+ }
+ },
+ "whatwg-fetch": {
+ "version": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz",
+ "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ="
+ },
+ "whatwg-url": {
+ "version": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz",
+ "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=",
+ "dev": true,
+ "requires": {
+ "tr46": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "webidl-conversions": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz"
+ },
+ "dependencies": {
+ "webidl-conversions": {
+ "version": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=",
+ "dev": true
+ }
+ }
+ },
+ "which": {
+ "version": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
+ "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=",
+ "requires": {
+ "isexe": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
+ }
+ },
+ "which-module": {
+ "version": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
+ "dev": true
+ },
+ "wide-align": {
+ "version": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz",
+ "integrity": "sha1-Vx4PGwYEY268DfwhsDObvjE0FxA=",
+ "requires": {
+ "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"
+ }
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "optional": true
+ },
+ "wordwrap": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
+ },
+ "worker-farm": {
+ "version": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.0.tgz",
+ "integrity": "sha1-rf3wzUBYFGXtCh9kj5c1cir9XI0=",
+ "dev": true,
+ "requires": {
+ "errno": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
+ }
+ },
+ "wrap-ansi": {
+ "version": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "requires": {
+ "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
+ }
+ },
+ "wrappy": {
+ "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "write": {
+ "version": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
+ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
+ "dev": true,
+ "requires": {
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
+ }
+ },
+ "xml-name-validator": {
+ "version": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
+ "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=",
+ "dev": true
+ },
+ "xtend": {
+ "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
+ },
+ "y18n": {
+ "version": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "optional": true,
+ "requires": {
+ "camelcase": "1.2.1",
+ "cliui": "2.1.0",
+ "decamelize": "1.2.0",
+ "window-size": "0.1.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
+ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
+ "dev": true,
+ "requires": {
+ "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "dev": true
+ }
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..5462567
--- /dev/null
+++ b/package.json
@@ -0,0 +1,86 @@
+{
+ "name": "pup",
+ "private": true,
+ "scripts": {
+ "start": "meteor --settings settings-development.json",
+ "test": "jest"
+ },
+ "dependencies": {
+ "@cleverbeagle/dates": "^0.5.1",
+ "@cleverbeagle/seeder": "^1.2.0",
+ "babel-runtime": "^6.26.0",
+ "bcrypt": "^1.0.3",
+ "commonmark": "^0.28.1",
+ "core-js": "^2.5.1",
+ "fs": "0.0.1-security",
+ "handlebars": "^4.0.10",
+ "jquery": "^2.2.4",
+ "jquery-validation": "^1.17.0",
+ "juice": "^4.1.1",
+ "lodash": "^4.17.4",
+ "meteor-node-stubs": "^0.2.11",
+ "prop-types": "^15.5.10",
+ "react": "^15.6.1",
+ "react-addons-pure-render-mixin": "^15.6.0",
+ "react-bootstrap": "^0.31.2",
+ "react-dom": "^15.6.1",
+ "react-router-bootstrap": "^0.24.3",
+ "react-router-dom": "^4.2.2",
+ "simpl-schema": "^0.3.2"
+ },
+ "devDependencies": {
+ "babel-jest": "^20.0.3",
+ "babel-preset-es2015": "^6.24.1",
+ "babel-preset-react": "^6.24.1",
+ "enzyme": "^2.9.1",
+ "eslint": "^4.6.0",
+ "eslint-config-airbnb": "^15.1.0",
+ "eslint-plugin-import": "^2.7.0",
+ "eslint-plugin-jsx-a11y": "^5.1.1",
+ "eslint-plugin-meteor": "^4.1.4",
+ "eslint-plugin-react": "^7.3.0",
+ "jest": "^20.0.4"
+ },
+ "eslintConfig": {
+ "parserOptions": {
+ "ecmaFeatures": {
+ "jsx": true
+ }
+ },
+ "plugins": [
+ "meteor",
+ "react"
+ ],
+ "extends": [
+ "airbnb",
+ "plugin:meteor/recommended",
+ "plugin:react/recommended"
+ ],
+ "env": {
+ "browser": true
+ },
+ "globals": {
+ "expect": false
+ },
+ "rules": {
+ "import/no-unresolved": 0,
+ "import/no-extraneous-dependencies": 0,
+ "import/extensions": 0,
+ "no-underscore-dangle": [
+ "error",
+ {
+ "allow": [
+ "_id",
+ "_ensureIndex",
+ "_verifyEmailToken",
+ "_resetPasswordToken",
+ "_name"
+ ]
+ }
+ ],
+ "class-methods-use-this": 0,
+ "react/jsx-filename-extension": 0,
+ "react/forbid-prop-types": 0
+ }
+ }
+}
diff --git a/private/email-templates/reset-password.html b/private/email-templates/reset-password.html
new file mode 100644
index 0000000..bd7c1f8
--- /dev/null
+++ b/private/email-templates/reset-password.html
@@ -0,0 +1,322 @@
+
+
+
+
+
+[{{applicationName}}] Reset Your Password
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hey, {{firstName}}!
+
+
+
+
+ A password reset has been requested for the account related to this email address ({{emailAddress}}).
+
+
+
+
+ To reset the password, visit the following link:
+
+
+
+
+ Reset Password
+
+
+
+
+ Cheers,
+ {{applicationName}} Team
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/private/email-templates/reset-password.txt b/private/email-templates/reset-password.txt
new file mode 100644
index 0000000..5994913
--- /dev/null
+++ b/private/email-templates/reset-password.txt
@@ -0,0 +1,10 @@
+Hey, {{firstName}}!
+
+A password reset has been requested for the account related to this email address ({{emailAddress}}).
+
+To reset the password, visit the following link:
+
+[Reset Password]({{resetUrl}})
+
+Cheers,
+{{applicationName}} Team
diff --git a/private/email-templates/verify-email.html b/private/email-templates/verify-email.html
new file mode 100644
index 0000000..8db2306
--- /dev/null
+++ b/private/email-templates/verify-email.html
@@ -0,0 +1,317 @@
+
+
+
+
+
+[{{applicationName}}] Verify Your Email Address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hey, {{firstName}}!
+
+
+
+
+ Can you do us a favor and verify your email address?
+
+
+
+
+ Verify Email Address
+
+
+
+
+ Thanks!
+ {{applicationName}} Team
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/private/email-templates/verify-email.txt b/private/email-templates/verify-email.txt
new file mode 100644
index 0000000..cd22d81
--- /dev/null
+++ b/private/email-templates/verify-email.txt
@@ -0,0 +1,8 @@
+Hey, {{firstName}}!
+
+Can you do us a favor and verify your email address?
+
+[Verify Email Address]({{verifyUrl}})
+
+Thanks!
+{{applicationName}} Team
diff --git a/private/email-templates/welcome.html b/private/email-templates/welcome.html
new file mode 100644
index 0000000..a9a6369
--- /dev/null
+++ b/private/email-templates/welcome.html
@@ -0,0 +1,322 @@
+
+
+
+
+
+Welcome! | {{applicationName}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hey, {{firstName}}!
+
+
+
+
+ Welcome to {{applicationName}}. We're excited to have you on board.
+
+
+
+
+ Ready to get started?
+
+
+
+
+ View Your Documents
+
+
+
+
+ Cheers,
+ {{applicationName}} Team
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/private/email-templates/welcome.txt b/private/email-templates/welcome.txt
new file mode 100644
index 0000000..2aad868
--- /dev/null
+++ b/private/email-templates/welcome.txt
@@ -0,0 +1,10 @@
+Hey, {{firstName}}!
+
+Welcome to Application Name. We're excited to have you on board.
+
+Ready to get started?
+
+[View Your Documents]({{welcomeUrl}})
+
+Cheers,
+Application Name Team
diff --git a/private/pages/example-page.md b/private/pages/example-page.md
new file mode 100644
index 0000000..51dd9b0
--- /dev/null
+++ b/private/pages/example-page.md
@@ -0,0 +1,5 @@
+### This is my Markdown page
+
+I can type **any** Markdown I want into this file and it will ultimately be `parsed` as HTML by Pup's `utility.getPage` Method.
+
+To learn more, you can [read about this Method here](http://cleverbeagle.com/pup/v1/the-basics/methods#utility-methods).
diff --git a/private/pages/privacy.md b/private/pages/privacy.md
new file mode 100644
index 0000000..7f31547
--- /dev/null
+++ b/private/pages/privacy.md
@@ -0,0 +1,18 @@
+Your privacy is important to us.
+
+It is Clever Beagle's policy to respect your privacy regarding any information we may collect while operating our website. Accordingly, we have developed this privacy policy in order for you to understand how we collect, use, communicate, disclose and otherwise make use of personal information. We have outlined our privacy policy below.
+
+We will collect personal information by lawful and fair means and, where appropriate, with the knowledge or consent of the individual concerned.
+Before or at the time of collecting personal information, we will identify the purposes for which information is being collected.
+
+We will collect and use personal information solely for fulfilling those purposes specified by us and for other ancillary purposes, unless we obtain the consent of the individual concerned or as required by law.
+
+Personal data should be relevant to the purposes for which it is to be used, and, to the extent necessary for those purposes, should be accurate, complete, and up-to-date.
+
+We will protect personal information by using reasonable security safeguards against loss or theft, as well as unauthorized access, disclosure, copying, use or modification.
+
+We will make readily available to customers information about our policies and practices relating to the management of personal information.
+
+We will only retain personal information for as long as necessary for the fulfillment of those purposes.
+
+We are committed to conducting our business in accordance with these principles in order to ensure that the confidentiality of personal information is protected and maintained. Clever Beagle may change this privacy policy from time to time at Clever Beagle's sole discretion.
diff --git a/private/pages/terms.md b/private/pages/terms.md
new file mode 100644
index 0000000..79757b6
--- /dev/null
+++ b/private/pages/terms.md
@@ -0,0 +1,38 @@
+#### Terms
+
+By accessing the website at https://pup.cleverbeagle.com, you are agreeing to be bound by these terms of service, all applicable laws and regulations, and agree that you are responsible for compliance with any applicable local laws. If you do not agree with any of these terms, you are prohibited from using or accessing this site. The materials contained in this website are protected by applicable copyright and trademark law.
+
+#### Use License
+
+Permission is granted to temporarily download one copy of the materials (information or software) on Clever Beagle's website for personal, non-commercial transitory viewing only. This is the grant of a license, not a transfer of title, and under this license you may not:
+modify or copy the materials;
+use the materials for any commercial purpose, or for any public display (commercial or non-commercial);
+attempt to decompile or reverse engineer any software contained on Clever Beagle's website;
+remove any copyright or other proprietary notations from the materials; or
+transfer the materials to another person or "mirror" the materials on any other server.
+This license shall automatically terminate if you violate any of these restrictions and may be terminated by Clever Beagle at any time. Upon terminating your viewing of these materials or upon the termination of this license, you must destroy any downloaded materials in your possession whether in electronic or printed format.
+
+#### Disclaimer
+
+The materials on Clever Beagle's website are provided on an 'as is' basis. Clever Beagle makes no warranties, expressed or implied, and hereby disclaims and negates all other warranties including, without limitation, implied warranties or conditions of merchantability, fitness for a particular purpose, or non-infringement of intellectual property or other violation of rights.
+Further, Clever Beagle does not warrant or make any representations concerning the accuracy, likely results, or reliability of the use of the materials on its website or otherwise relating to such materials or on any sites linked to this site.
+
+#### Limitations
+
+In no event shall Clever Beagle or its suppliers be liable for any damages (including, without limitation, damages for loss of data or profit, or due to business interruption) arising out of the use or inability to use the materials on Clever Beagle's website, even if Clever Beagle or a Clever Beagle authorized representative has been notified orally or in writing of the possibility of such damage. Because some jurisdictions do not allow limitations on implied warranties, or limitations of liability for consequential or incidental damages, these limitations may not apply to you.
+
+#### Accuracy of materials
+
+The materials appearing on Clever Beagle's website could include technical, typographical, or photographic errors. Clever Beagle does not warrant that any of the materials on its website are accurate, complete or current. Clever Beagle may make changes to the materials contained on its website at any time without notice. However Clever Beagle does not make any commitment to update the materials.
+
+#### Links
+
+Clever Beagle has not reviewed all of the sites linked to its website and is not responsible for the contents of any such linked site. The inclusion of any link does not imply endorsement by Clever Beagle of the site. Use of any such linked website is at the user's own risk.
+
+#### Modifications
+
+Clever Beagle may revise these terms of service for its website at any time without notice. By using this website you are agreeing to be bound by the then current version of these terms of service.
+
+#### Governing Law
+
+These terms and conditions are governed by and construed in accordance with the laws of Illinois and you irrevocably submit to the exclusive jurisdiction of the courts in that State or location.
diff --git a/public/apple-touch-icon-precomposed.png b/public/apple-touch-icon-precomposed.png
new file mode 100644
index 0000000..ff7797e
Binary files /dev/null and b/public/apple-touch-icon-precomposed.png differ
diff --git a/public/facebook.svg b/public/facebook.svg
new file mode 100644
index 0000000..d8a6181
--- /dev/null
+++ b/public/facebook.svg
@@ -0,0 +1,13 @@
+
+
+
+ facebook-icon
+ Created with Sketch.
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/favicon.png b/public/favicon.png
new file mode 100644
index 0000000..2b26d3d
Binary files /dev/null and b/public/favicon.png differ
diff --git a/public/github.svg b/public/github.svg
new file mode 100644
index 0000000..ace7635
--- /dev/null
+++ b/public/github.svg
@@ -0,0 +1,29 @@
+
+
+
+ github-octocat
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/google.svg b/public/google.svg
new file mode 100644
index 0000000..67dec77
--- /dev/null
+++ b/public/google.svg
@@ -0,0 +1,15 @@
+
+
+
+ google-icon
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/server/main.js b/server/main.js
new file mode 100644
index 0000000..a88fcc8
--- /dev/null
+++ b/server/main.js
@@ -0,0 +1 @@
+import '../imports/startup/server';
diff --git a/settings-development.json b/settings-development.json
new file mode 100644
index 0000000..afe4cc7
--- /dev/null
+++ b/settings-development.json
@@ -0,0 +1,23 @@
+{
+ "public": {},
+ "private": {
+ "MAIL_URL": "",
+ "OAuth": {
+ "facebook": {
+ "appId": "",
+ "secret": "",
+ "loginStyle": "popup"
+ },
+ "google": {
+ "clientId": "",
+ "secret": "",
+ "loginStyle": "popup"
+ },
+ "github": {
+ "clientId": "",
+ "secret": "",
+ "loginStyle": "popup"
+ }
+ }
+ }
+}