forked from acouzens/open5gs
move SQLite to MongoDB
This commit is contained in:
parent
6531fd4761
commit
798ec79bac
|
@ -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()
|
||||
])
|
||||
const Account = require('./models/account2.js');
|
||||
|
||||
mongoose.Promise = global.Promise;
|
||||
const db = mongoose.connection;
|
||||
|
||||
if (dev) {
|
||||
mongoose.set('debug', true);
|
||||
}
|
||||
|
||||
mongoose.connect(process.env.DB_URI)
|
||||
.then(() => {
|
||||
mongoose.Promise = global.Promise;
|
||||
const db = mongoose.connection;
|
||||
db.on('error', err => { throw err });
|
||||
db.once('open', () => {
|
||||
console.log('Connected to mongod server');
|
||||
});
|
||||
|
||||
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 ]
|
||||
});
|
||||
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;
|
||||
};
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue