mirror of
				https://github.com/open5gs/open5gs.git
				synced 2025-11-04 05:53:18 +00:00 
			
		
		
		
	move SQLite to MongoDB
This commit is contained in:
		@@ -25,6 +25,7 @@
 | 
			
		||||
    "open-color": "^1.5.1",
 | 
			
		||||
    "passport": "^0.3.2",
 | 
			
		||||
    "passport-local": "^1.0.0",
 | 
			
		||||
    "passport-local-mongoose": "^4.0.0",
 | 
			
		||||
    "prop-types": "^15.5.10",
 | 
			
		||||
    "react": "^15.5.4",
 | 
			
		||||
    "react-dom": "^15.5.4",
 | 
			
		||||
@@ -37,8 +38,6 @@
 | 
			
		||||
    "redux": "^3.6.0",
 | 
			
		||||
    "redux-actions": "^2.0.3",
 | 
			
		||||
    "redux-saga": "^0.15.3",
 | 
			
		||||
    "sequelize": "^3.30.4",
 | 
			
		||||
    "sqlite3": "^3.1.8",
 | 
			
		||||
    "styled-components": "2.0.0-19",
 | 
			
		||||
    "yarn": "^0.24.5"
 | 
			
		||||
  },
 | 
			
		||||
 
 | 
			
		||||
@@ -15,45 +15,44 @@ const mongoose = require('mongoose');
 | 
			
		||||
const MongoStore = require('connect-mongo')(session);
 | 
			
		||||
 | 
			
		||||
const passport = require('passport');
 | 
			
		||||
require('./passport');
 | 
			
		||||
const LocalStrategy = require('passport-local').Strategy;
 | 
			
		||||
const csrf = require('lusca').csrf();
 | 
			
		||||
const secret = process.env.SECRET_KEY || 'change-me';
 | 
			
		||||
 | 
			
		||||
const models = require('./models');
 | 
			
		||||
const api = require('./routes');
 | 
			
		||||
 | 
			
		||||
Promise.all([ 
 | 
			
		||||
  app.prepare(), 
 | 
			
		||||
  models.sequelize.sync()
 | 
			
		||||
])
 | 
			
		||||
.then(() => {
 | 
			
		||||
  mongoose.Promise = global.Promise;
 | 
			
		||||
  const db = mongoose.connection;
 | 
			
		||||
  db.on('error', err => { throw err });
 | 
			
		||||
  db.once('open', () => {
 | 
			
		||||
    console.log('Connected to mongod server');
 | 
			
		||||
  });
 | 
			
		||||
const Account = require('./models/account2.js');
 | 
			
		||||
 | 
			
		||||
  if (dev) {
 | 
			
		||||
mongoose.Promise = global.Promise;
 | 
			
		||||
const db = mongoose.connection;
 | 
			
		||||
 | 
			
		||||
if (dev) {
 | 
			
		||||
  mongoose.set('debug', true);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  mongoose.connect(process.env.DB_URI);
 | 
			
		||||
 | 
			
		||||
  // FIXME : we need to implement landing page for adding admin account
 | 
			
		||||
  models.AccountRole.count().then(c => {
 | 
			
		||||
    if (c == 0) {
 | 
			
		||||
      models.AccountRole.create({
 | 
			
		||||
        role: 'admin',
 | 
			
		||||
        Accounts: [{
 | 
			
		||||
          username: 'admin',
 | 
			
		||||
          password: '1423'
 | 
			
		||||
        }]
 | 
			
		||||
      }, {
 | 
			
		||||
        include: [ models.AccountRole.Account ]
 | 
			
		||||
      });
 | 
			
		||||
mongoose.connect(process.env.DB_URI)
 | 
			
		||||
.then(() => {
 | 
			
		||||
  return app.prepare();
 | 
			
		||||
})
 | 
			
		||||
.then(() => {
 | 
			
		||||
  // FIXME : we need to implement landing page for inserting admin account
 | 
			
		||||
  Account.findByUsername('admin', true, (err, account) => {
 | 
			
		||||
    if (err) {
 | 
			
		||||
      console.error(err);
 | 
			
		||||
      throw err;
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
    if (!account) {
 | 
			
		||||
      const newAccount = new Account();
 | 
			
		||||
      newAccount.username = 'admin';
 | 
			
		||||
      newAccount.roles = [ 'admin' ];
 | 
			
		||||
      Account.register(newAccount, '1423', err => {
 | 
			
		||||
        if (err) {
 | 
			
		||||
          console.error(err);
 | 
			
		||||
          throw err;
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  const server = express();
 | 
			
		||||
  
 | 
			
		||||
@@ -82,6 +81,10 @@ Promise.all([
 | 
			
		||||
  server.use(passport.initialize());
 | 
			
		||||
  server.use(passport.session());
 | 
			
		||||
 | 
			
		||||
  passport.use(new LocalStrategy(Account.authenticate()));
 | 
			
		||||
  passport.serializeUser(Account.serializeUser());
 | 
			
		||||
  passport.deserializeUser(Account.deserializeUser());
 | 
			
		||||
 | 
			
		||||
  server.use('/api', api);
 | 
			
		||||
 | 
			
		||||
  server.get('*', (req, res) => {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,30 +0,0 @@
 | 
			
		||||
module.exports = (sequelize, DataTypes) => {
 | 
			
		||||
  const Account = sequelize.define('Account', {
 | 
			
		||||
    username: {
 | 
			
		||||
      type: DataTypes.STRING,
 | 
			
		||||
      allowNull: false,
 | 
			
		||||
      validate: {
 | 
			
		||||
        isAlpha: true,
 | 
			
		||||
        notEmpty: true
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    password: {
 | 
			
		||||
      type: DataTypes.STRING,
 | 
			
		||||
      allowNull: false
 | 
			
		||||
    }
 | 
			
		||||
  }, {
 | 
			
		||||
    classMethods: {
 | 
			
		||||
      associate: models => {
 | 
			
		||||
        Account.AccountRole = Account.belongsTo(models.AccountRole, {
 | 
			
		||||
          onDelete: 'CASCADE',
 | 
			
		||||
          foreignKey: {
 | 
			
		||||
            allowNull: false
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    freezeTableName: true
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  return Account;
 | 
			
		||||
};
 | 
			
		||||
@@ -1,21 +0,0 @@
 | 
			
		||||
module.exports = (sequelize, DataTypes) => {
 | 
			
		||||
  const AccountRole = sequelize.define('AccountRole', {
 | 
			
		||||
    role: {
 | 
			
		||||
      type: DataTypes.STRING,
 | 
			
		||||
      allowNull: false,
 | 
			
		||||
      validate: {
 | 
			
		||||
        isAlpha: true,
 | 
			
		||||
        notEmpty: true
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }, {
 | 
			
		||||
    classMethods: {
 | 
			
		||||
      associate: models => {
 | 
			
		||||
        AccountRole.Account = AccountRole.hasMany(models.Account);
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    freezeTableName: true
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  return AccountRole;
 | 
			
		||||
};
 | 
			
		||||
@@ -1,15 +0,0 @@
 | 
			
		||||
module.exports = (sequelize, DataTypes) => {
 | 
			
		||||
  const Session = sequelize.define('Session', {
 | 
			
		||||
    sid: {
 | 
			
		||||
      type: DataTypes.STRING,
 | 
			
		||||
      primaryKey: true,
 | 
			
		||||
    },
 | 
			
		||||
    userId: DataTypes.STRING,
 | 
			
		||||
    expires: DataTypes.DATE,
 | 
			
		||||
    data: DataTypes.STRING(50000)
 | 
			
		||||
  }, {
 | 
			
		||||
    freezeTableName: true
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  return Session;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										11
									
								
								webui/server/models/account2.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								webui/server/models/account2.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
const mongoose = require('mongoose');
 | 
			
		||||
const Schema = mongoose.Schema;
 | 
			
		||||
const passportLocalMongoose = require('passport-local-mongoose');
 | 
			
		||||
 | 
			
		||||
const Account = new Schema({
 | 
			
		||||
  roles: [String]
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Account.plugin(passportLocalMongoose);
 | 
			
		||||
 | 
			
		||||
module.exports = mongoose.model('Account', Account);
 | 
			
		||||
@@ -1,31 +0,0 @@
 | 
			
		||||
process.env.DB_STORAGE = process.env.DB_STORAGE || '/tmp/nextepc.db';
 | 
			
		||||
 | 
			
		||||
const fs = require('fs');
 | 
			
		||||
const path = require('path');
 | 
			
		||||
const Sequelize = require('sequelize');
 | 
			
		||||
const sequelize = new Sequelize(null, null, null, {
 | 
			
		||||
  'dialect': 'sqlite',
 | 
			
		||||
  'storage': process.env.DB_STORAGE,
 | 
			
		||||
  'logging': false
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
var db = {};
 | 
			
		||||
 | 
			
		||||
fs
 | 
			
		||||
  .readdirSync(__dirname)
 | 
			
		||||
  .filter(file => {
 | 
			
		||||
    return file.indexOf('.') !== 0 && file !== 'index.js';
 | 
			
		||||
  })
 | 
			
		||||
  .forEach(file => {
 | 
			
		||||
    const model = sequelize.import(path.join(__dirname, file));
 | 
			
		||||
    db[model.name] = model;
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
Object.keys(db).forEach(modelName => {
 | 
			
		||||
  if ('associate' in db[modelName]) db[modelName].associate(db);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
db.sequelize = sequelize;
 | 
			
		||||
db.Sequelize = Sequelize;
 | 
			
		||||
 | 
			
		||||
module.exports = db;
 | 
			
		||||
@@ -1,32 +0,0 @@
 | 
			
		||||
const passport = require('passport');
 | 
			
		||||
const LocalStrategy = require('passport-local').Strategy;
 | 
			
		||||
 | 
			
		||||
const models = require('../models');
 | 
			
		||||
 | 
			
		||||
passport.use(new LocalStrategy((username, password, done) => {
 | 
			
		||||
    models.Account.findOne({ where: {username: username} }).then(account => {
 | 
			
		||||
      if (!account) { 
 | 
			
		||||
        return done(null);
 | 
			
		||||
      }
 | 
			
		||||
      if (account.password != password) {
 | 
			
		||||
        return done(null);
 | 
			
		||||
      }
 | 
			
		||||
      return done(null, account);
 | 
			
		||||
    });
 | 
			
		||||
  }));
 | 
			
		||||
 | 
			
		||||
passport.serializeUser((account, done) => {
 | 
			
		||||
  done(null, account.id);
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
passport.deserializeUser((id, done) => {
 | 
			
		||||
  models.Account.findOne({
 | 
			
		||||
    where: { id: id },
 | 
			
		||||
    include: [{ model: models.AccountRole }]
 | 
			
		||||
  }).then(account => {
 | 
			
		||||
    done(null, {
 | 
			
		||||
      username: account.username,
 | 
			
		||||
      role: account.AccountRole.role
 | 
			
		||||
    });
 | 
			
		||||
  })
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										134
									
								
								webui/yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										134
									
								
								webui/yarn.lock
									
									
									
									
									
								
							@@ -2,10 +2,6 @@
 | 
			
		||||
# yarn lockfile v1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
"@types/geojson@^1.0.0":
 | 
			
		||||
  version "1.0.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-1.0.2.tgz#b02d10ab028e2928ac592a051aaa4981a1941d03"
 | 
			
		||||
 | 
			
		||||
abbrev@1:
 | 
			
		||||
  version "1.1.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f"
 | 
			
		||||
@@ -988,7 +984,7 @@ bluebird@2.10.2:
 | 
			
		||||
  version "2.10.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.10.2.tgz#024a5517295308857f14f91f1106fc3b555f446b"
 | 
			
		||||
 | 
			
		||||
bluebird@^3.0, bluebird@^3.3.4, bluebird@^3.4.6:
 | 
			
		||||
bluebird@^3.0:
 | 
			
		||||
  version "3.5.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c"
 | 
			
		||||
 | 
			
		||||
@@ -1368,14 +1364,7 @@ create-react-class@^15.5.3, create-react-class@^15.5.x:
 | 
			
		||||
    loose-envify "^1.3.1"
 | 
			
		||||
    object-assign "^4.1.1"
 | 
			
		||||
 | 
			
		||||
cross-env@^3.1.2:
 | 
			
		||||
  version "3.2.4"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-3.2.4.tgz#9e0585f277864ed421ce756f81a980ff0d698aba"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    cross-spawn "^5.1.0"
 | 
			
		||||
    is-windows "^1.0.0"
 | 
			
		||||
 | 
			
		||||
cross-spawn@5.1.0, cross-spawn@^5.1.0:
 | 
			
		||||
cross-spawn@5.1.0:
 | 
			
		||||
  version "5.1.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
 | 
			
		||||
  dependencies:
 | 
			
		||||
@@ -1489,7 +1478,7 @@ delegates@^1.0.0:
 | 
			
		||||
  version "1.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
 | 
			
		||||
 | 
			
		||||
depd@1.1.0, depd@^1.1.0, depd@~1.1.0:
 | 
			
		||||
depd@1.1.0, depd@~1.1.0:
 | 
			
		||||
  version "1.1.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3"
 | 
			
		||||
 | 
			
		||||
@@ -1534,10 +1523,6 @@ domain-browser@^1.1.1:
 | 
			
		||||
  version "1.1.7"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc"
 | 
			
		||||
 | 
			
		||||
dottie@^1.0.0:
 | 
			
		||||
  version "1.1.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/dottie/-/dottie-1.1.1.tgz#45c2a3f48bd6528eeed267a69a848eaaca6faa6a"
 | 
			
		||||
 | 
			
		||||
duplexify@^3.1.2, duplexify@^3.5.0:
 | 
			
		||||
  version "3.5.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604"
 | 
			
		||||
@@ -1923,9 +1908,9 @@ gauge@~2.7.3:
 | 
			
		||||
    strip-ansi "^3.0.1"
 | 
			
		||||
    wide-align "^1.1.0"
 | 
			
		||||
 | 
			
		||||
generic-pool@2.4.2:
 | 
			
		||||
  version "2.4.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-2.4.2.tgz#886bc5bf0beb7db96e81bcbba078818de5a62683"
 | 
			
		||||
generaterr@^1.2.0:
 | 
			
		||||
  version "1.5.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/generaterr/-/generaterr-1.5.0.tgz#b0ceb6cc5164df2a061338cc340a8615395c52fc"
 | 
			
		||||
 | 
			
		||||
get-caller-file@^1.0.1:
 | 
			
		||||
  version "1.0.2"
 | 
			
		||||
@@ -2163,10 +2148,6 @@ indexof@0.0.1:
 | 
			
		||||
  version "0.0.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
 | 
			
		||||
 | 
			
		||||
inflection@^1.6.0:
 | 
			
		||||
  version "1.12.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416"
 | 
			
		||||
 | 
			
		||||
inflight@^1.0.4:
 | 
			
		||||
  version "1.0.6"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
 | 
			
		||||
@@ -2381,10 +2362,6 @@ is-windows-bash@1.0.3:
 | 
			
		||||
  version "1.0.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/is-windows-bash/-/is-windows-bash-1.0.3.tgz#00132a47dcdacb00a9d68f3408a4d01d76215e88"
 | 
			
		||||
 | 
			
		||||
is-windows@^1.0.0:
 | 
			
		||||
  version "1.0.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9"
 | 
			
		||||
 | 
			
		||||
isarray@0.0.1:
 | 
			
		||||
  version "0.0.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
 | 
			
		||||
@@ -2545,14 +2522,14 @@ lodash-es@^4.17.4, lodash-es@^4.2.0, lodash-es@^4.2.1:
 | 
			
		||||
  version "4.17.4"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7"
 | 
			
		||||
 | 
			
		||||
lodash@4.12.0, lodash@^4.2.0, lodash@^4.2.1:
 | 
			
		||||
  version "4.12.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.12.0.tgz#2bd6dc46a040f59e686c972ed21d93dc59053258"
 | 
			
		||||
 | 
			
		||||
lodash@^4.13.1, lodash@^4.14.0, lodash@^4.3.0, lodash@^4.5.1, lodash@^4.6.1:
 | 
			
		||||
  version "4.17.4"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
 | 
			
		||||
 | 
			
		||||
lodash@^4.2.0, lodash@^4.2.1:
 | 
			
		||||
  version "4.12.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.12.0.tgz#2bd6dc46a040f59e686c972ed21d93dc59053258"
 | 
			
		||||
 | 
			
		||||
longest@^1.0.1:
 | 
			
		||||
  version "1.0.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
 | 
			
		||||
@@ -2694,13 +2671,7 @@ mkdirp-then@1.2.0:
 | 
			
		||||
  dependencies:
 | 
			
		||||
    minimist "0.0.8"
 | 
			
		||||
 | 
			
		||||
moment-timezone@^0.5.4:
 | 
			
		||||
  version "0.5.13"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.13.tgz#99ce5c7d827262eb0f1f702044177f60745d7b90"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    moment ">= 2.9.0"
 | 
			
		||||
 | 
			
		||||
"moment@>= 2.9.0", moment@^2.11.2, moment@^2.13.0:
 | 
			
		||||
moment@^2.11.2:
 | 
			
		||||
  version "2.18.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f"
 | 
			
		||||
 | 
			
		||||
@@ -2799,7 +2770,7 @@ mz@2.6.0:
 | 
			
		||||
    object-assign "^4.0.1"
 | 
			
		||||
    thenify-all "^1.0.0"
 | 
			
		||||
 | 
			
		||||
nan@^2.3.0, nan@~2.4.0:
 | 
			
		||||
nan@^2.3.0:
 | 
			
		||||
  version "2.4.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/nan/-/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232"
 | 
			
		||||
 | 
			
		||||
@@ -2911,7 +2882,7 @@ node-libs-browser@^2.0.0:
 | 
			
		||||
    util "^0.10.3"
 | 
			
		||||
    vm-browserify "0.0.4"
 | 
			
		||||
 | 
			
		||||
node-pre-gyp@^0.6.29, node-pre-gyp@~0.6.31:
 | 
			
		||||
node-pre-gyp@^0.6.29:
 | 
			
		||||
  version "0.6.36"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786"
 | 
			
		||||
  dependencies:
 | 
			
		||||
@@ -3102,6 +3073,15 @@ parseurl@~1.3.1:
 | 
			
		||||
  version "1.3.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56"
 | 
			
		||||
 | 
			
		||||
passport-local-mongoose@^4.0.0:
 | 
			
		||||
  version "4.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/passport-local-mongoose/-/passport-local-mongoose-4.0.0.tgz#10fee927eaf9785bb2e10e2a8c446a0ff1fa0107"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    generaterr "^1.2.0"
 | 
			
		||||
    passport-local "^1.0.0"
 | 
			
		||||
    scmp "^1.0.0"
 | 
			
		||||
    semver "^5.1.0"
 | 
			
		||||
 | 
			
		||||
passport-local@^1.0.0:
 | 
			
		||||
  version "1.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/passport-local/-/passport-local-1.0.0.tgz#1fe63268c92e75606626437e3b906662c15ba6ee"
 | 
			
		||||
@@ -3664,14 +3644,6 @@ restore-cursor@^2.0.0:
 | 
			
		||||
    onetime "^2.0.0"
 | 
			
		||||
    signal-exit "^3.0.2"
 | 
			
		||||
 | 
			
		||||
retry-as-promised@^2.0.0:
 | 
			
		||||
  version "2.2.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/retry-as-promised/-/retry-as-promised-2.2.0.tgz#b0463d7fd3cf5b2fed64500ab6e8b8a49c5b8e6c"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    bluebird "^3.4.6"
 | 
			
		||||
    cross-env "^3.1.2"
 | 
			
		||||
    debug "^2.2.0"
 | 
			
		||||
 | 
			
		||||
retry@^0.10.0:
 | 
			
		||||
  version "0.10.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4"
 | 
			
		||||
@@ -3715,7 +3687,11 @@ safe-buffer@^5.0.1:
 | 
			
		||||
  version "5.0.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
 | 
			
		||||
 | 
			
		||||
"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.1.0, semver@^5.3.0:
 | 
			
		||||
scmp@^1.0.0:
 | 
			
		||||
  version "1.0.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/scmp/-/scmp-1.0.2.tgz#bc4e4e2713252b04210cdff9cef3ade2c8fa7370"
 | 
			
		||||
 | 
			
		||||
"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0:
 | 
			
		||||
  version "5.3.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
 | 
			
		||||
 | 
			
		||||
@@ -3755,27 +3731,6 @@ send@0.15.3:
 | 
			
		||||
    range-parser "~1.2.0"
 | 
			
		||||
    statuses "~1.3.1"
 | 
			
		||||
 | 
			
		||||
sequelize@^3.30.4:
 | 
			
		||||
  version "3.30.4"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-3.30.4.tgz#bda2df1e31854b099e4149a111e9fc0a5ca1d1a4"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    bluebird "^3.3.4"
 | 
			
		||||
    depd "^1.1.0"
 | 
			
		||||
    dottie "^1.0.0"
 | 
			
		||||
    generic-pool "2.4.2"
 | 
			
		||||
    inflection "^1.6.0"
 | 
			
		||||
    lodash "4.12.0"
 | 
			
		||||
    moment "^2.13.0"
 | 
			
		||||
    moment-timezone "^0.5.4"
 | 
			
		||||
    retry-as-promised "^2.0.0"
 | 
			
		||||
    semver "^5.0.1"
 | 
			
		||||
    shimmer "1.1.0"
 | 
			
		||||
    terraformer-wkt-parser "^1.1.0"
 | 
			
		||||
    toposort-class "^1.0.1"
 | 
			
		||||
    uuid "^3.0.0"
 | 
			
		||||
    validator "^5.2.0"
 | 
			
		||||
    wkx "0.2.0"
 | 
			
		||||
 | 
			
		||||
serve-static@1.12.3:
 | 
			
		||||
  version "1.12.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.3.tgz#9f4ba19e2f3030c547f8af99107838ec38d5b1e2"
 | 
			
		||||
@@ -3817,10 +3772,6 @@ shebang-regex@^1.0.0:
 | 
			
		||||
  version "1.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
 | 
			
		||||
 | 
			
		||||
shimmer@1.1.0:
 | 
			
		||||
  version "1.1.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.1.0.tgz#97d7377137ffbbab425522e429fe0aa89a488b35"
 | 
			
		||||
 | 
			
		||||
signal-exit@^3.0.0, signal-exit@^3.0.2:
 | 
			
		||||
  version "3.0.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
 | 
			
		||||
@@ -3877,13 +3828,6 @@ spdx-license-ids@^1.0.2:
 | 
			
		||||
  version "1.2.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
 | 
			
		||||
 | 
			
		||||
sqlite3@^3.1.8:
 | 
			
		||||
  version "3.1.8"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-3.1.8.tgz#4cbcf965d8b901d1b1015cbc7fc415aae157dfaa"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    nan "~2.4.0"
 | 
			
		||||
    node-pre-gyp "~0.6.31"
 | 
			
		||||
 | 
			
		||||
sshpk@^1.7.0:
 | 
			
		||||
  version "1.13.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c"
 | 
			
		||||
@@ -4084,18 +4028,6 @@ tar@^2.2.1:
 | 
			
		||||
    fstream "^1.0.2"
 | 
			
		||||
    inherits "2"
 | 
			
		||||
 | 
			
		||||
terraformer-wkt-parser@^1.1.0:
 | 
			
		||||
  version "1.1.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/terraformer-wkt-parser/-/terraformer-wkt-parser-1.1.2.tgz#336a0c8fc82094a5aff83288f69aedecd369bf0c"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    terraformer "~1.0.5"
 | 
			
		||||
 | 
			
		||||
terraformer@~1.0.5:
 | 
			
		||||
  version "1.0.8"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/terraformer/-/terraformer-1.0.8.tgz#51e0ad89746fcf2161dc6f65aa70e42377c8b593"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@types/geojson" "^1.0.0"
 | 
			
		||||
 | 
			
		||||
thenify-all@^1.0.0:
 | 
			
		||||
  version "1.6.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
 | 
			
		||||
@@ -4139,10 +4071,6 @@ to-fast-properties@^1.0.1:
 | 
			
		||||
  version "1.0.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
 | 
			
		||||
 | 
			
		||||
toposort-class@^1.0.1:
 | 
			
		||||
  version "1.0.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/toposort-class/-/toposort-class-1.0.1.tgz#7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988"
 | 
			
		||||
 | 
			
		||||
touch@1.0.0:
 | 
			
		||||
  version "1.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/touch/-/touch-1.0.0.tgz#449cbe2dbae5a8c8038e30d71fa0ff464947c4de"
 | 
			
		||||
@@ -4251,10 +4179,6 @@ validate-npm-package-license@^3.0.1:
 | 
			
		||||
    spdx-correct "~1.0.0"
 | 
			
		||||
    spdx-expression-parse "~1.0.0"
 | 
			
		||||
 | 
			
		||||
validator@^5.2.0:
 | 
			
		||||
  version "5.7.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/validator/-/validator-5.7.0.tgz#7a87a58146b695ac486071141c0c49d67da05e5c"
 | 
			
		||||
 | 
			
		||||
vary@~1.1.1:
 | 
			
		||||
  version "1.1.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37"
 | 
			
		||||
@@ -4360,10 +4284,6 @@ window-size@0.1.0:
 | 
			
		||||
  version "0.1.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
 | 
			
		||||
 | 
			
		||||
wkx@0.2.0:
 | 
			
		||||
  version "0.2.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/wkx/-/wkx-0.2.0.tgz#76c24f16acd0cd8f93cd34aa331e0f7961256e84"
 | 
			
		||||
 | 
			
		||||
wordwrap@0.0.2:
 | 
			
		||||
  version "0.0.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user