Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
m4lab_tv1
User Account
Commits
69ab56ca
Commit
69ab56ca
authored
Dec 04, 2019
by
Rosanny Sihombing
Browse files
Initial commit
parents
Pipeline
#311
failed with stages
in 28 seconds
Changes
36
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
.gitignore
0 → 100644
View file @
69ab56ca
/node_modules
sp-account-metadata.xml
README.md
0 → 100644
View file @
69ab56ca
User Account Management
Re-implementation of https://transfer.hft-stuttgart.de/gitlab/sihombing/portal/tree/master/app-useracc using NodeJS and ExpressJS
\ No newline at end of file
app.js
0 → 100644
View file @
69ab56ca
const
express
=
require
(
'
express
'
);
const
http
=
require
(
'
http
'
);
const
path
=
require
(
'
path
'
);
const
passport
=
require
(
'
passport
'
);
const
morgan
=
require
(
'
morgan
'
);
const
cookieParser
=
require
(
'
cookie-parser
'
);
const
bodyParser
=
require
(
'
body-parser
'
);
const
session
=
require
(
'
express-session
'
);
const
errorhandler
=
require
(
'
errorhandler
'
);
const
flash
=
require
(
'
express-flash
'
);
var
env
=
process
.
env
.
NODE_ENV
||
'
development
'
;
const
config
=
require
(
'
./config/config
'
)[
env
];
var
app
=
express
();
app
.
set
(
'
port
'
,
config
.
app
.
port
);
app
.
set
(
'
views
'
,
__dirname
+
'
/views
'
);
app
.
set
(
'
view engine
'
,
'
pug
'
);
app
.
use
(
morgan
(
'
combined
'
));
app
.
use
(
cookieParser
());
app
.
use
(
bodyParser
.
json
());
app
.
use
(
bodyParser
.
urlencoded
({
extended
:
false
}));
app
.
use
(
express
.
static
(
path
.
join
(
__dirname
,
'
public
'
)));
app
.
use
(
session
(
{
resave
:
true
,
saveUninitialized
:
true
,
secret
:
'
thisisasecret
'
}
));
app
.
use
(
flash
());
app
.
use
((
req
,
res
,
next
)
=>
{
res
.
locals
.
errors
=
req
.
flash
(
"
error
"
);
res
.
locals
.
successes
=
req
.
flash
(
"
success
"
);
next
();
});
app
.
use
(
passport
.
initialize
());
app
.
use
(
passport
.
session
());
// caching disabled for every route
// NOTE: Works in Firefox and Opera. Does not work in Edge
app
.
use
(
function
(
req
,
res
,
next
)
{
res
.
set
(
'
Cache-Control
'
,
'
no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0
'
);
next
();
});
require
(
'
./routes/routes
'
)(
app
,
config
,
passport
);
//require('./routes/dbconn')(app, config);
require
(
'
./routes/api
'
)(
app
,
config
,
passport
);
app
.
listen
(
app
.
get
(
'
port
'
),
function
()
{
console
.
log
(
'
Express server listening on port
'
+
app
.
get
(
'
port
'
));
});
config/config.js
0 → 100644
View file @
69ab56ca
module
.
exports
=
{
development
:
{
app
:
{
name
:
'
User Account Management
'
,
port
:
process
.
env
.
PORT
||
9989
},
passport
:
{
strategy
:
'
saml
'
,
saml
:
{
path
:
process
.
env
.
SAML_PATH
||
'
/saml/SSO
'
,
entryPoint
:
process
.
env
.
SAML_ENTRY_POINT
||
'
https://transfer.hft-stuttgart.de/idp/saml2/idp/SSOService.php
'
,
issuer
:
'
sp-account.m4lab.hft-stuttgart.de
'
,
logoutUrl
:
'
https://transfer.hft-stuttgart.de/idp/saml2/idp/SingleLogoutService.php
'
}
},
database
:
{
host
:
'
localhost
'
,
// DB host
user
:
'
DBManager
'
,
// DB username
password
:
'
Stuttgart2019
'
,
// DB password
port
:
3306
,
// MySQL port
db
:
'
test_db
'
,
// User DB
dbProject
:
'
projectdb
'
// Project DB
},
mailer
:
{
host
:
'
mail.hft-stuttgart.de
'
,
// hostname
secureConnection
:
false
,
// TLS requires secureConnection to be false
port
:
587
,
// port for secure SMTP
authUser
:
'
ad
\\
support-transfer
'
,
authPass
:
'
6laumri2
'
,
tlsCiphers
:
'
SSLv3
'
,
from
:
'
support-transfer@hft-stuttgart.de
'
,
}
}
}
package-lock.json
0 → 100644
View file @
69ab56ca
{
"name"
:
"m4lab-user-account"
,
"version"
:
"0.0.1"
,
"lockfileVersion"
:
1
,
"requires"
:
true
,
"dependencies"
:
{
"@types/babel-types"
:
{
"version"
:
"7.0.7"
,
"resolved"
:
"https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz"
,
"integrity"
:
"sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ=="
},
"@types/babylon"
:
{
"version"
:
"6.16.5"
,
"resolved"
:
"https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz"
,
"integrity"
:
"sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w=="
,
"requires"
:
{
"@types/babel-types"
:
"*"
}
},
"abbrev"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"
,
"integrity"
:
"sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
"accepts"
:
{
"version"
:
"1.3.7"
,
"resolved"
:
"https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz"
,
"integrity"
:
"sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA=="
,
"requires"
:
{
"mime-types"
:
"~2.1.24"
,
"negotiator"
:
"0.6.2"
}
},
"acorn"
:
{
"version"
:
"2.7.0"
,
"resolved"
:
"https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz"
,
"integrity"
:
"sha1-q259nYhqrKiwhbwzEreaGYQz8Oc="
},
"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"
:
"^3.0.2"
,
"longest"
:
"^1.0.1"
,
"repeat-string"
:
"^1.5.2"
}
},
"ansi-regex"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
,
"integrity"
:
"sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
"ansi-styles"
:
{
"version"
:
"2.2.1"
,
"resolved"
:
"https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"
,
"integrity"
:
"sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
},
"anymatch"
:
{
"version"
:
"1.3.2"
,
"resolved"
:
"https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz"
,
"integrity"
:
"sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA=="
,
"requires"
:
{
"micromatch"
:
"^2.1.5"
,
"normalize-path"
:
"^2.0.0"
}
},
"arr-diff"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz"
,
"integrity"
:
"sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8="
,
"requires"
:
{
"arr-flatten"
:
"^1.0.1"
}
},
"arr-flatten"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz"
,
"integrity"
:
"sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
},
"arr-union"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz"
,
"integrity"
:
"sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
},
"array-flatten"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
,
"integrity"
:
"sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
"array-unique"
:
{
"version"
:
"0.2.1"
,
"resolved"
:
"https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz"
,
"integrity"
:
"sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
},
"assign-symbols"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz"
,
"integrity"
:
"sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
},
"async"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/async/-/async-3.1.0.tgz"
,
"integrity"
:
"sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ=="
},
"async-each"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz"
,
"integrity"
:
"sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="
},
"atob"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/atob/-/atob-2.1.2.tgz"
,
"integrity"
:
"sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
},
"babel-runtime"
:
{
"version"
:
"6.26.0"
,
"resolved"
:
"https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
,
"integrity"
:
"sha1-llxwWGaOgrVde/4E/yM3vItWR/4="
,
"requires"
:
{
"core-js"
:
"^2.4.0"
,
"regenerator-runtime"
:
"^0.11.0"
}
},
"babel-types"
:
{
"version"
:
"6.26.0"
,
"resolved"
:
"https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"
,
"integrity"
:
"sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc="
,
"requires"
:
{
"babel-runtime"
:
"^6.26.0"
,
"esutils"
:
"^2.0.2"
,
"lodash"
:
"^4.17.4"
,
"to-fast-properties"
:
"^1.0.3"
},
"dependencies"
:
{
"lodash"
:
{
"version"
:
"4.17.15"
,
"resolved"
:
"https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz"
,
"integrity"
:
"sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
}
}
},
"babylon"
:
{
"version"
:
"6.18.0"
,
"resolved"
:
"https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz"
,
"integrity"
:
"sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
},
"balanced-match"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
,
"integrity"
:
"sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"base"
:
{
"version"
:
"0.11.2"
,
"resolved"
:
"https://registry.npmjs.org/base/-/base-0.11.2.tgz"
,
"integrity"
:
"sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg=="
,
"requires"
:
{
"cache-base"
:
"^1.0.1"
,
"class-utils"
:
"^0.3.5"
,
"component-emitter"
:
"^1.2.1"
,
"define-property"
:
"^1.0.0"
,
"isobject"
:
"^3.0.1"
,
"mixin-deep"
:
"^1.2.0"
,
"pascalcase"
:
"^0.1.1"
},
"dependencies"
:
{
"define-property"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz"
,
"integrity"
:
"sha1-dp66rz9KY6rTr56NMEybvnm/sOY="
,
"requires"
:
{
"is-descriptor"
:
"^1.0.0"
}
},
"is-accessor-descriptor"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz"
,
"integrity"
:
"sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ=="
,
"requires"
:
{
"kind-of"
:
"^6.0.0"
}
},
"is-data-descriptor"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz"
,
"integrity"
:
"sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ=="
,
"requires"
:
{
"kind-of"
:
"^6.0.0"
}
},
"is-descriptor"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz"
,
"integrity"
:
"sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg=="
,
"requires"
:
{
"is-accessor-descriptor"
:
"^1.0.0"
,
"is-data-descriptor"
:
"^1.0.0"
,
"kind-of"
:
"^6.0.2"
}
},
"isobject"
:
{
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
,
"integrity"
:
"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
},
"kind-of"
:
{
"version"
:
"6.0.2"
,
"resolved"
:
"https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz"
,
"integrity"
:
"sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
}
}
},
"base64-url"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz"
,
"integrity"
:
"sha1-GZ/WYXAqDnt9yubgaYuwicUvbXg="
},
"basic-auth"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz"
,
"integrity"
:
"sha1-Awk1sB3nyblKgksp8/zLdQ06UpA="
},
"bcryptjs"
:
{
"version"
:
"2.4.3"
,
"resolved"
:
"https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz"
,
"integrity"
:
"sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms="
},
"bignumber.js"
:
{
"version"
:
"7.2.1"
,
"resolved"
:
"https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz"
,
"integrity"
:
"sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ=="
},
"binary-extensions"
:
{
"version"
:
"1.13.1"
,
"resolved"
:
"https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz"
,
"integrity"
:
"sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw=="
},
"body-parser"
:
{
"version"
:
"1.15.1"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.15.1.tgz"
,
"integrity"
:
"sha1-m87vBmm4+LlD8K2M5dlXFr10D9I="
,
"requires"
:
{
"bytes"
:
"2.3.0"
,
"content-type"
:
"~1.0.1"
,
"debug"
:
"~2.2.0"
,
"depd"
:
"~1.1.0"
,
"http-errors"
:
"~1.4.0"
,
"iconv-lite"
:
"0.4.13"
,
"on-finished"
:
"~2.3.0"
,
"qs"
:
"6.1.0"
,
"raw-body"
:
"~2.1.6"
,
"type-is"
:
"~1.6.12"
}
},
"brace-expansion"
:
{
"version"
:
"1.1.11"
,
"resolved"
:
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
,
"integrity"
:
"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="
,
"requires"
:
{
"balanced-match"
:
"^1.0.0"
,
"concat-map"
:
"0.0.1"
}
},
"braces"
:
{
"version"
:
"1.8.5"
,
"resolved"
:
"https://registry.npmjs.org/braces/-/braces-1.8.5.tgz"
,
"integrity"
:
"sha1-uneWLhLf+WnWt2cR6RS3N4V79qc="
,
"requires"
:
{
"expand-range"
:
"^1.8.1"
,
"preserve"
:
"^0.2.0"
,
"repeat-element"
:
"^1.1.2"
}
},
"bytes"
:
{
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz"
,
"integrity"
:
"sha1-1baAoWW2IBc5rLYRVCqrwtjOsHA="
},
"cache-base"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz"
,
"integrity"
:
"sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ=="
,
"requires"
:
{
"collection-visit"
:
"^1.0.0"
,
"component-emitter"
:
"^1.2.1"
,
"get-value"
:
"^2.0.6"
,
"has-value"
:
"^1.0.0"
,
"isobject"
:
"^3.0.1"
,
"set-value"
:
"^2.0.0"
,
"to-object-path"
:
"^0.3.0"
,
"union-value"
:
"^1.0.0"
,
"unset-value"
:
"^1.0.0"
},
"dependencies"
:
{
"isobject"
:
{
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
,
"integrity"
:
"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
}
}
},
"camelcase"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz"
,
"integrity"
:
"sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
},
"center-align"
:
{
"version"
:
"0.1.3"
,
"resolved"
:
"https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz"
,
"integrity"
:
"sha1-qg0yYptu6XIgBBHL1EYckHvCt60="
,
"requires"
:
{
"align-text"
:
"^0.1.3"
,
"lazy-cache"
:
"^1.0.3"
}
},
"chalk"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
,
"integrity"
:
"sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg="
,
"requires"
:
{
"ansi-styles"
:
"^2.2.1"
,
"escape-string-regexp"
:
"^1.0.2"
,
"has-ansi"
:
"^2.0.0"
,
"strip-ansi"
:
"^3.0.0"
,
"supports-color"
:
"^2.0.0"
}
},
"chokidar"
:
{
"version"
:
"1.7.0"
,
"resolved"
:
"https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz"
,
"integrity"
:
"sha1-eY5ol3gVHIB2tLNg5e3SjNortGg="
,
"requires"
:
{
"anymatch"
:
"^1.3.0"
,
"async-each"
:
"^1.0.0"
,
"fsevents"
:
"^1.0.0"
,
"glob-parent"
:
"^2.0.0"
,
"inherits"
:
"^2.0.1"
,
"is-binary-path"
:
"^1.0.0"
,
"is-glob"
:
"^2.0.0"
,
"path-is-absolute"
:
"^1.0.0"
,
"readdirp"
:
"^2.0.0"
}
},
"class-utils"
:
{
"version"
:
"0.3.6"
,
"resolved"
:
"https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz"
,
"integrity"
:
"sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg=="
,
"requires"
:
{
"arr-union"
:
"^3.1.0"
,
"define-property"
:
"^0.2.5"
,
"isobject"
:
"^3.0.0"
,
"static-extend"
:
"^0.1.1"
},
"dependencies"
:
{
"define-property"
:
{
"version"
:
"0.2.5"
,
"resolved"
:
"https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
,
"integrity"
:
"sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY="
,
"requires"
:
{
"is-descriptor"
:
"^0.1.0"
}
},
"isobject"
:
{
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
,
"integrity"
:
"sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
}
}
},
"cliui"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz"
,
"integrity"
:
"sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE="
,
"requires"
:
{
"center-align"
:
"^0.1.1"
,
"right-align"
:
"^0.1.1"
,
"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="
}
}
},
"collection-visit"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz"
,
"integrity"
:
"sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA="
,
"requires"
:
{
"map-visit"
:
"^1.0.0"
,
"object-visit"
:
"^1.0.0"
}
},
"component-emitter"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz"
,
"integrity"
:
"sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
},
"concat-map"
:
{
"version"
:
"0.0.1"
,
"resolved"
:
"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
,
"integrity"
:
"sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"configstore"
:
{
"version"
:
"1.4.0"
,
"resolved"
:
"https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz"
,
"integrity"
:
"sha1-w1eB0FAdJowlxUuLF/YkDopPsCE="
,
"requires"
:
{
"graceful-fs"
:
"^4.1.2"
,
"mkdirp"
:
"^0.5.0"
,
"object-assign"
:
"^4.0.1"
,
"os-tmpdir"
:
"^1.0.0"
,
"osenv"
:
"^0.1.0"
,
"uuid"
:
"^2.0.1"
,
"write-file-atomic"
:
"^1.1.2"
,
"xdg-basedir"
:
"^2.0.0"
}
},
"connect-flash"
:
{
"version"
:
"0.1.1"
,
"resolved"
:
"https://registry.npmjs.org/connect-flash/-/connect-flash-0.1.1.tgz"
,
"integrity"
:
"sha1-2GMPJtlaf4UfmVax6MxnMvO2qjA="
},
"constantinople"
:
{
"version"
:
"3.0.2"
,
"resolved"
:
"https://registry.npmjs.org/constantinople/-/constantinople-3.0.2.tgz"
,
"integrity"
:
"sha1-S5RdmTeQe82Y7ldRIsOBdRZUQUE="
,
"requires"
:
{
"acorn"
:
"^2.1.0"
}
},
"content-disposition"
:
{
"version"
:
"0.5.1"
,
"resolved"
:
"https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz"
,
"integrity"
:
"sha1-h0dsamfI2qh+Muh2Ft+IO6f7Bxs="
},
"content-type"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"
,
"integrity"
:
"sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
},
"cookie"
:
{
"version"
:
"0.3.1"
,
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz"
,
"integrity"
:
"sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
},
"cookie-parser"
:
{
"version"
:
"1.4.3"
,
"resolved"
:
"https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.3.tgz"
,
"integrity"
:
"sha1-D+MfoZ0AC5X0qt8fU/3CuKIDuqU="
,
"requires"
:
{
"cookie"
:
"0.3.1"
,
"cookie-signature"
:
"1.0.6"
}
},
"cookie-signature"
:
{
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
,
"integrity"
:
"sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"copy-descriptor"
:
{
"version"
:
"0.1.1"
,
"resolved"
:
"https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz"
,
"integrity"
:
"sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
},
"core-js"
:
{
"version"
:
"2.6.10"
,
"resolved"
:
"https://registry.npmjs.org/core-js/-/core-js-2.6.10.tgz"
,
"integrity"
:
"sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA=="
},
"core-util-is"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
,
"integrity"
:
"sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"crc"
:
{
"version"
:
"3.4.0"
,
"resolved"
:
"https://registry.npmjs.org/crc/-/crc-3.4.0.tgz"
,
"integrity"
:
"sha1-QljjUWE6dO8RU9/LBeggw+lxXX8="
},
"crypto"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz"
,
"integrity"
:
"sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig=="
},
"debug"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-2.2.0.tgz"
,
"integrity"
:
"sha1-+HBX6ZWxofauaklgZkE3vFbwOdo="
,
"requires"
:
{
"ms"
:
"0.7.1"
}
},
"decamelize"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
,
"integrity"
:
"sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
},
"decode-uri-component"
:
{