diff --git a/lockdown.json b/lockdown.json deleted file mode 100644 index 7c1c14956..000000000 --- a/lockdown.json +++ /dev/null @@ -1,508 +0,0 @@ -{ - "JSONSelect": { - "0.4.0": "a08edcc67eb3fcbe99ed630855344a0cf282bb8d" - }, - "addressparser": { - "0.1.3": "9e9ab43d257e1ae784e1df5f580c9f5240f58874" - }, - "amdefine": { - "0.1.0": "3ca9735cf1dde0edf7a4bf6641709c8024f9b227" - }, - "ansi": { - "0.1.2": "2627e29498f06e2a1c2ece9c21e28fd494430827" - }, - "async": { - "0.1.22": "0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061", - "0.2.9": "df63060fbf3d33286a76aaf6d55a2986d9ff8619" - }, - "aws-sign": { - "0.2.0": "c55013856c8194ec854a0cbec90aab5a04ce3ac5" - }, - "awsbox": { - "0.7.1": "*" - }, - "awssum": { - "1.1.0": "e010144aa516af78eca01352aab9203b816611bb" - }, - "awssum-amazon": { - "1.1.0": "ea9ed3f7116044563bb0b14d47b2f38a684bac47" - }, - "awssum-amazon-ec2": { - "1.3.2": "fb29a8dffaf6647440b93c64a1868317b4cc856c" - }, - "awssum-amazon-route53": { - "1.0.3": "85d1e6aeb22de14ed03e110cc887e482d0362aac" - }, - "bcrypt": { - "0.7.7": "966a2e709b8cf62c2e05408baf7c5ed663b3c868" - }, - "bigint": { - "0.4.2": "5bccafb5af3924cc71eb59942fb3a64a12906e49" - }, - "bindings": { - "1.0.0": "c3ccde60e9de6807c6f1aa4ef4843af29191c828", - "1.1.0": "f3cc4deec19fe31f255864eb1e6ffad857266ef0" - }, - "boom": { - "0.3.8": "c8cdb041435912741628c044ecc732d1d17c09ea" - }, - "browserify": { - "1.13.5": "b5f0a160733779d27547885dfb598a65ef6fdaad" - }, - "cef": { - "0.3.3": "74a521e3c5c702fe1dc240e6250a2583f885227f" - }, - "character-parser": { - "1.0.2": "55384d6afcf8c6b9dd483e8347646a790e4545e7" - }, - "cjson": { - "0.2.1": "73cd8aad65d9e1505f9af1744d3b79c1527682a5" - }, - "cli": { - "0.4.5": "78f9485cd161b566e9a6c72d7170c4270e81db61" - }, - "cli-table": { - "0.0.2": "982867e16435325c66c208a1e71b95336ea3093b" - }, - "client-sessions": { - "0.6.0": "b19bb5d09f0abc7d96c237982dcf12b7017e7b43" - }, - "coffee-script": { - "1.6.3": "6355d32cf1b04cdff6b484e5e711782b2f0c39be" - }, - "colors": { - "0.3.0": "c247d64d34db0ca4dc8e43f3ecd6da98d0af94e7", - "0.5.1": "7d0023eaeb154e8ee9fce75dcb923d0ed1667774", - "0.6.2": "2423fe6678ac0c5dae8852e5d0e5be08c997abcc" - }, - "combined-stream": { - "0.0.4": "2d1a43347dbe9515a4a2796732e5b88473840b22" - }, - "commander": { - "1.1.1": "50d1651868ae60eccff0a2d9f34595376bc6b041" - }, - "commondir": { - "0.0.1": "89f00fdcd51b519c578733fec563e6a6da7f5be2" - }, - "compute-cluster": { - "0.0.6": "8e7a52d9bfcd46ee65e2a084c32ce145ff6c3f79" - }, - "connect": { - "1.7.2": "ae50fee4a98c939f78451691ea640c1b4d9c1164" - }, - "connect-cachify": { - "0.0.15": "3a6d5329644e9303cff8a435c778732c5ed69396" - }, - "connect-fonts": { - "0.0.11": "805ccad0e46c89bcc9ebee47eb7f4254ce253d8b" - }, - "connect-fonts-feurasans": { - "0.0.3": "4d767ff7fbc23d6f76e2e6622414bd7d5cf1d4aa" - }, - "connect-fonts-opensans": { - "0.0.5": "d84bab84802131267a44eca9f940c4424dd6961c" - }, - "connect-logger-statsd": { - "0.0.1": "e1e350f0f6dc538a50a1868b4008806c45c409ea" - }, - "console-browserify": { - "0.1.6": "d128a3c0bb88350eb5626c6e7c71a6f0fd48983c" - }, - "convict": { - "0.4.1": "e93456d141e00926566ae6b05d1016a29b1cba23" - }, - "cookie-jar": { - "0.2.0": "64ecc06ac978db795e4b5290cbe48ba3781400fa" - }, - "cookies": { - "0.3.8": "92fe50918f3d55aec4ae9d978bcddda2ada28ce9" - }, - "cover": { - "0.2.9": "262029dfb31714d48043fed91ede658593955dd4" - }, - "cryptiles": { - "0.1.3": "1a556734f06d24ba34862ae9cb9e709a3afbff1c" - }, - "crypto-browserify": { - "0.4.0": "246f6a337b884c99ffe8bfb085a184aee60c33f3" - }, - "css": { - "1.0.8": "9386811ca82bccc9ee7fb5a732b1e2a317c8a3e7" - }, - "css-parse": { - "1.0.4": "38b0503fbf9da9f54e9c1dbda60e145c77117bdd" - }, - "css-stringify": { - "1.0.5": "b0d042946db2953bb9d292900a6cb5f6d0122031" - }, - "cycle": { - "1.0.2": "269aca6f1b8d2baeefc8ccbc888b459f322c4e60" - }, - "data2xml": { - "0.8.1": "a488617e71fa624cfdc344e026a1601549525596" - }, - "dateformat": { - "1.0.2-1.2.3": "b0220c02de98617433b72851cf47de3df2cdbee9", - "1.0.4-1.2.3": "4c12b101bddbb8880c2356da6e454459a5eb8b75" - }, - "delayed-stream": { - "0.0.5": "d4b1f43a93e8296dfe02694f4680bc37a313c73f" - }, - "deputy": { - "0.0.4": "edc00a9ef5c53527c405328534c99795ada41cbf" - }, - "detective": { - "0.1.1": "f1e04fe973754c8907ae51edd3e230e380d76fe9", - "0.2.1": "9ce92601fd223810c29432ad034f8c62d8b8654f" - }, - "diff": { - "1.0.7": "24bbb001c4a7d5522169e7cabdb2c2814ed91cf4" - }, - "ejs": { - "0.8.4": "52e61755e5e97fbc5aeeb07df49a4e062bff30d5" - }, - "encoding": { - "0.1.7": "25cc19b34e9225d120c2ea769f9136c91cecc908" - }, - "escodegen": { - "0.0.23": "9acf978164368e42276571f18839c823b3a844df" - }, - "esprima": { - "0.9.9": "1b90925c975d632d7282939c3bb9c3a423c30490", - "1.0.3": "7bdb544f95526d424808654d3b8fbe928650c0fe" - }, - "estraverse": { - "0.0.4": "01a0932dfee574684a598af5a67c3bf9b6428db2", - "1.1.2-1": "28ff59bb3cf1272a2027e1c1541f94b23226b311" - }, - "etagify": { - "0.0.2": "171c4f351c6d03e7e8a2c071b6bce2c05b41df44" - }, - "express": { - "2.5.0": "3f9716eaa0e7380025fbb2c6c9942e3d9c9ed3b9" - }, - "eyes": { - "0.1.8": "62cf120234c683785d902348a800ef3e0cc20bc0" - }, - "filed": { - "0.1.0": "b0f626472a2366dc1194537a4eea7e7a89f3c735" - }, - "fmt": { - "0.4.0": "d11e6a42e794f1e1e6200691e6c025106b684a8d" - }, - "forever-agent": { - "0.2.0": "e1c25c7ad44e09c38f233876c76fcc24ff843b1f" - }, - "form-data": { - "0.0.10": "db345a5378d86aeeb1ed5d553b869ac192d2f5ed" - }, - "github-url-from-git": { - "1.1.1": "1f89623453123ef9623956e264c60bf4c3cf5ccf" - }, - "glob": { - "3.1.21": "d29e0a055dea5138f4d07ed40e8982e83c2066cd", - "3.2.6": "28c805b47bc6c19ba3059cbdf079b98ff62442f2" - }, - "gobbledygook": { - "0.0.3": "437bb23d3ade04dd26b49e7c21e4026c6b086234" - }, - "graceful-fs": { - "1.1.14": "07078db5f6377f6321fceaaedf497de124dc9465", - "1.2.3": "15a4806a57547cb2d2dbf27f42e89a8c3451b364", - "2.0.1": "7fd6e0a4837c35d0cc15330294d9584a3898cf84" - }, - "hashish": { - "0.0.4": "6d60bc6ffaf711b6afd60e426d077988014e6554" - }, - "hawk": { - "0.10.2": "9b361dee95a931640e6d504e05609a8fc3ac45d2" - }, - "hoek": { - "0.7.6": "60fbd904557541cd2b8795abf308a1b3770e155a" - }, - "hood": { - "0.2.1": "39dfa083e6ab1b2fc6513fe634d66d7cbb2ab231" - }, - "htmlparser": { - "1.7.6": "6a263c7ee5930f3e5c56fa564011f99e49f80d34" - }, - "http-browserify": { - "0.1.1": "d9d82735a5f85f950761ac3909ba9485ec0af4f1" - }, - "i18n-abide": { - "0.0.14": "a784b7fed661d6fcaff8f4a714bc137210b09d59" - }, - "iconv-lite": { - "0.2.11": "1ce60a3a57864a292d1321ff4609ca4bb965adc8" - }, - "inherits": { - "1.0.0": "38e1975285bf1f7ba9c84da102bb12771322ac48", - "2.0.1": "b17d08d326b4423e568eff719f91b0b1cbdf69f1" - }, - "irc": { - "0.3.6": "eacfdb08c57971ea82c331178e2aaf34f1bab303" - }, - "is-promise": { - "1.0.0": "b998d17551f16f69f7bd4828f58f018cc81e064f" - }, - "jade": { - "0.30.0": "9ea816da61bea6fef4709b4d9f6b442f1e205ba3" - }, - "jshint": { - "2.1.11": "eb5108fef9ba5ddebb830983f572d242e49e3f96" - }, - "json-stringify-safe": { - "3.0.0": "9db7b0e530c7f289c5e8c8432af191c2ff75a5b3" - }, - "jsxgettext": { - "0.1.7": "db216039e97597f57e09787fa07f9c7212cc9155" - }, - "jwcrypto": { - "0.4.4": "acc75cb25aa1b038b71c49b4b054589035804d17" - }, - "keypress": { - "0.1.0": "4a3188d4291b66b4f65edb99f806aa9ae293592a" - }, - "lockdown": { - "0.0.5": "6bbcc01b7d2a3894a712f135b2675a078ede24c7" - }, - "lru-cache": { - "2.2.4": "6c658619becf14031d0d0b594b16042ce4dc063d", - "2.3.1": "b3adf6b3d856e954e2c390e6cef22081245a53d6" - }, - "mailcomposer": { - "0.2.2": "ce93bdea7cb51e60eb76491b6a64c39f382c20e5" - }, - "mime": { - "1.2.11": "58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10", - "1.2.9": "009cd40867bd35de521b3b966f04e2f8d4d13d09" - }, - "mimelib": { - "0.2.13": "0668eb85e870c510be747a67ece43b9bbf8e20b0" - }, - "minimatch": { - "0.2.12": "ea82a012ac662c7ddfaa144f1c147e6946f5dafb" - }, - "minimist": { - "0.0.5": "d7aa327bcecf518f9106ac6b8f003fa3bcea8566" - }, - "mkdirp": { - "0.0.7": "d89b4f0e4c3e5e5ca54235931675e094fe1a5072", - "0.3.5": "de3e5f8961c88c787ee1368df849ac4413eca8d7" - }, - "moment": { - "1.7.2": "e66be344be2e9ec1d12f1e16a8ca49bf63417f4f" - }, - "monocle": { - "0.1.50": "9a7cbd0ccc10de95fd78a04b9beb2482ae4940b7" - }, - "mysql": { - "0.9.6": "95a3a9f41f94353c6460664b5867997e88b625bc" - }, - "negotiator": { - "0.2.8": "adfd207a3875c4d37095729c2e7c283c5ba2ee72" - }, - "nice-route53": { - "0.3.4": "43c15d65c772a25b25edee4d5a091ed0bc711df4" - }, - "node-font-face-generator": { - "0.1.1": "d29cf7d2074bafe314e4360be1bba7ec5c80f790" - }, - "node-statsd": { - "0.0.7": "96d4bbd21dff2d798b3374a3e9329cfecce3afa8" - }, - "node-uuid": { - "1.4.1": "39aef510e5889a3dca9c895b506c73aae1bac048" - }, - "nodemailer": { - "0.5.3": "f1de09bc4fc91e92e59318370d80714f479eeb97" - }, - "nomnom": { - "1.5.2": "f4345448a853cfbd5c0d26320f2477ab0526fe2f" - }, - "normalize-package-data": { - "0.1.7": "f216a318a868214892e89ad80a944cddc1a79615", - "0.2.6": "830bda1412f7ccae09b903fc080edbcdbb0947c0" - }, - "npmlog": { - "0.0.4": "a12a7418606b7e0183a2851d97a8729b9a0f3837" - }, - "nub": { - "0.0.0": "b369bd32bdde66af59605c3b0520bc219dccc04f" - }, - "oauth-sign": { - "0.2.0": "a0e6a1715daed062f322b622b7fe5afd1035b6e2" - }, - "oppressor": { - "0.0.1": "84b2058c9121c4c6fe632566b31ed39618bd8feb" - }, - "optimist": { - "0.2.6": "c15b750c98274ea175d241b745edf4ddc88f177b", - "0.3.1": "6680d30560193af5a55eb64394883ed7bcb98f2e", - "0.3.4": "4d6d0bd71ffad0da4ba4f6d876d5eeb04e07480b", - "0.3.7": "c90941ad59e4273328923074d2cf2e7cbc6ec0d9", - "0.5.0": "d9c60da4c34811418d183390623f8046f134a2d4", - "0.6.0": "69424826f3405f79f142e6fc3d9ae58d4dbb9200" - }, - "osenv": { - "0.0.3": "cd6ad8ddb290915ad9e22765576025d411f29cb6" - }, - "pkginfo": { - "0.3.0": "726411401039fe9b009eea86614295d5f3a54276" - }, - "plist": { - "0.4.3": "812842a873aa57f98d0050bee6aaf3549b9d5798" - }, - "postprocess": { - "0.2.4": "f74512742b1d2c908182a4b60717faa226acf2fb" - }, - "promise": { - "2.0.0": "46648aa9d605af5d2e70c3024bf59436da02b80e" - }, - "qs": { - "0.5.6": "31b1ad058567651c526921506b9a8793911a0384", - "0.6.5": "294b268e4b0d4250f6dde19b3b8b34935dff14ef" - }, - "rai": { - "0.1.7": "1b50f1dcb4a493a67ef7a0a8c72167d789df52a0" - }, - "read-installed": { - "0.0.1": "2d9b9086ae33ae42793210f519701169edabd2e2" - }, - "read-package-json": { - "0.4.1": "a0e917cce8333444889543de9db2b1a4606baaa2", - "1.1.3": "a361ab3da88f6f78998df223ad8186a4b7e1f391" - }, - "readdirp": { - "0.2.5": "c4c276e52977ae25db5191fe51d008550f15d9bb" - }, - "relative-date": { - "1.1.1": "75c97c5446fa1146c1d250c47ca3629fb9a2e764" - }, - "request": { - "2.16.6": "872fe445ae72de266b37879d6ad7dc948fa01cad" - }, - "resolve": { - "0.2.8": "fdb17d4abb0ecaf6f80d67ac03cf290088f6c0d0" - }, - "response-stream": { - "0.0.0": "da4b17cc7684c98c962beb4d95f668c8dcad09d5" - }, - "rimraf": { - "2.2.2": "d99ec41dc646e55bf7a7a44a255c28bef33a8abf", - "2.2.8": "e439be2aaee327321952730f99a8929e4fc50582" - }, - "sax": { - "0.5.5": "b1ec13d77397248d059bcc18bb9530d8210bb5d3" - }, - "semver": { - "1.0.14": "cac5e2d55a6fbf958cb220ae844045071c78f676", - "2.1.0": "356294a90690b698774d62cf35d7c91f983e728a" - }, - "shelljs": { - "0.1.4": "dfbbe78d56c3c0168d2fb79e10ecd1dbcb07ec0e" - }, - "sigmund": { - "1.0.0": "66a2b3a749ae8b5fb89efd4fcc01dc94fbe02296" - }, - "simplesmtp": { - "0.3.10": "f395f4b118de45f82ac4fdae4bd88f12dc326f5d" - }, - "slide": { - "1.1.5": "31732adeae78f1d2d60a29b63baf6a032df7c25d" - }, - "sntp": { - "0.1.4": "5ef481b951a7b29affdf4afd7f26838fc1120f84" - }, - "source-map": { - "0.1.30": "182726b50671d8fccaefc5ec35bf2a65c1956afb" - }, - "stack-trace": { - "0.0.7": "c72e089744fc3659f508cdce3621af5634ec0fff" - }, - "temp": { - "0.4.0": "671ad63d57be0fe9d7294664b3fc400636678a60", - "0.8.1": "4b7b4ffde85bb09f2dd6ba6cc43b44213c94fd3a" - }, - "through": { - "0.1.4": "8059576d833089b3c18eccd37580bf9cc5b59130" - }, - "tmp": { - "0.0.16": "704ea0513c15375389ef5b6dde865730528f2245" - }, - "toobusy": { - "0.2.4": "d97a3ee760b2462388e15f8526579b4b64bb193d" - }, - "transformers": { - "2.0.1": "352131dfceb93a7532dc7535a4f142510435a394" - }, - "traverse": { - "0.6.6": "cbdf560fd7b9af632502fed40f918c157ea97137" - }, - "tunnel-agent": { - "0.2.0": "6853c2afb1b2109e45629e492bde35f459ea69e8" - }, - "ua-parser": { - "0.2.4": "c25ef577be95350d0fe1d3361597282da4e9ba71" - }, - "uglify-js": { - "1.0.6": "f0d3aafd463f26a437b9ebc19f4947ab7e8078aa", - "1.2.6": "d354b2d3c1cf10ebc18fa78c11a28bdd9ce1580d", - "2.2.5": "a6e02a70d839792b9780488b7b8b184c095c99c7" - }, - "uglifycss": { - "0.0.5": "db9652bbf3fed50d2e9b6e930e28380a0fc3a5b7" - }, - "underscore": { - "1.1.7": "40bab84bad19d230096e8d6ef628bff055d83db0", - "1.2.4": "e8da6241aa06f64df2473bb2590b8c17c84c3c7e", - "1.4.4": "61a6a32010622afa07963bf325203cf12239d604", - "1.5.2": "1335c5e4f5e6d33bbb4b006ba8c86a00f556de08" - }, - "underscore.string": { - "2.0.0": "7470858a54a0bb3560d037da56dcc67b5181e11a" - }, - "urlparse": { - "0.0.1": "d171ec4681fcd0d8bd00b64345637d89a9700876" - }, - "useragent": { - "2.0.7": "a44c07d157a15e13d73d4af4ece6aab70f298224" - }, - "validator": { - "0.4.24": "9d88e88809114a861ec69bc0ddcb85322c98499a", - "1.5.1": "7ab356cbbcbbb000ab85c43b8cda12621b1344c0" - }, - "vm-browserify": { - "0.0.1": "51d25979366ab219dfe35a3fc65ecd6af3631d54" - }, - "vows": { - "0.5.13": "f6fd9ee9c36d3f20bd6680455cff8090c4b29cde", - "0.6.0": "be2f068009d39a37b37af85c29fa86d8573db431", - "0.7.0": "*" - }, - "which": { - "1.0.5": "5630d6819dda692f1464462e7956cb42c0842739" - }, - "winston": { - "0.7.2": "2570ae1aa1d8a9401e8d5a88362e1cf936550ceb" - }, - "wordwrap": { - "0.0.2": "b79669bb42ecb409f83d583cad52ca17eaa1643f" - }, - "xml2js": { - "0.1.13": "438ff3b1d85a51ad659ffc2ebe83403e10c98722", - "0.2.8": "9b81690931631ff09d1957549faf54f4f980b3c2" - }, - "xmlbuilder": { - "0.4.2": "1776d65f3fdbad470a08d8604cdeb1c4e540ff83" - }, - "xmldom": { - "0.1.16": "cf2602832b1ab5c3e6813fca08fe70196ba15e8c" - }, - "xoauth2": { - "0.1.8": "b916ff10ecfb54320f16f24a3e975120653ab0d2" - }, - "yamlparser": { - "0.0.2": "32393e6afc70c8ca066b6650ac6738b481678ebc" - } -} diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json new file mode 100644 index 000000000..1b063750b --- /dev/null +++ b/npm-shrinkwrap.json @@ -0,0 +1,961 @@ +{ + "name": "browserid", + "version": "1.0.0-b2", + "dependencies": { + "JSONSelect": { + "version": "0.4.0", + "from": "JSONSelect@0.4.0", + "resolved": "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.4.0.tgz" + }, + "async": { + "version": "0.2.9", + "from": "async@0.2.9", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.9.tgz" + }, + "bcrypt": { + "version": "0.7.7", + "from": "bcrypt@0.7.7", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-0.7.7.tgz", + "dependencies": { + "bindings": { + "version": "1.0.0", + "from": "bindings@1.0.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.0.0.tgz" + } + } + }, + "cef": { + "version": "0.3.3", + "from": "cef@0.3.3", + "resolved": "https://registry.npmjs.org/cef/-/cef-0.3.3.tgz", + "dependencies": { + "dateformat": { + "version": "1.0.2-1.2.3", + "from": "dateformat@1.0.2-1.2.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz" + } + } + }, + "cjson": { + "version": "0.2.1", + "from": "cjson@0.2.1", + "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.2.1.tgz" + }, + "client-sessions": { + "version": "0.6.0", + "from": "client-sessions@0.6.0", + "resolved": "https://registry.npmjs.org/client-sessions/-/client-sessions-0.6.0.tgz", + "dependencies": { + "cookies": { + "version": "0.3.8", + "from": "cookies@0.3.8", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.3.8.tgz" + } + } + }, + "compute-cluster": { + "version": "0.0.6", + "from": "compute-cluster@0.0.6", + "resolved": "https://registry.npmjs.org/compute-cluster/-/compute-cluster-0.0.6.tgz", + "dependencies": { + "vows": { + "version": "0.6.0", + "from": "vows@0.6.0", + "resolved": "https://registry.npmjs.org/vows/-/vows-0.6.0.tgz", + "dependencies": { + "eyes": { + "version": "0.1.8", + "from": "eyes@>=0.1.6", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" + } + } + } + } + }, + "connect": { + "version": "1.7.2", + "from": "connect@1.7.2", + "resolved": "https://registry.npmjs.org/connect/-/connect-1.7.2.tgz", + "dependencies": { + "qs": { + "version": "2.3.2", + "from": "qs@>= 0.3.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.2.tgz" + }, + "mime": { + "version": "1.2.11", + "from": "mime@>= 0.0.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" + } + } + }, + "connect-cachify": { + "version": "0.0.15", + "from": "connect-cachify@0.0.15", + "resolved": "https://registry.npmjs.org/connect-cachify/-/connect-cachify-0.0.15.tgz" + }, + "connect-fonts": { + "version": "0.0.11", + "from": "connect-fonts@0.0.11", + "resolved": "https://registry.npmjs.org/connect-fonts/-/connect-fonts-0.0.11.tgz", + "dependencies": { + "node-font-face-generator": { + "version": "0.1.1", + "from": "node-font-face-generator@0.1.1", + "resolved": "https://registry.npmjs.org/node-font-face-generator/-/node-font-face-generator-0.1.1.tgz", + "dependencies": { + "ua-parser": { + "version": "0.2.4", + "from": "ua-parser@0.2.4", + "resolved": "https://registry.npmjs.org/ua-parser/-/ua-parser-0.2.4.tgz", + "dependencies": { + "yamlparser": { + "version": "0.0.2", + "from": "yamlparser@>=0.0.2", + "resolved": "https://registry.npmjs.org/yamlparser/-/yamlparser-0.0.2.tgz" + } + } + } + } + }, + "mime": { + "version": "1.2.9", + "from": "mime@1.2.9", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.9.tgz" + }, + "tmp": { + "version": "0.0.16", + "from": "tmp@0.0.16", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.16.tgz" + }, + "oppressor": { + "version": "0.0.1", + "from": "oppressor@0.0.1", + "resolved": "https://registry.npmjs.org/oppressor/-/oppressor-0.0.1.tgz", + "dependencies": { + "through": { + "version": "0.1.4", + "from": "through@~0.1.4", + "resolved": "https://registry.npmjs.org/through/-/through-0.1.4.tgz" + }, + "response-stream": { + "version": "0.0.0", + "from": "response-stream@~0.0.0", + "resolved": "https://registry.npmjs.org/response-stream/-/response-stream-0.0.0.tgz" + }, + "negotiator": { + "version": "0.2.8", + "from": "negotiator@~0.2.5", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.2.8.tgz" + } + } + }, + "filed": { + "version": "0.1.0", + "from": "filed@0.1.0", + "resolved": "https://registry.npmjs.org/filed/-/filed-0.1.0.tgz" + } + } + }, + "connect-fonts-feurasans": { + "version": "0.0.3", + "from": "connect-fonts-feurasans@0.0.3", + "resolved": "https://registry.npmjs.org/connect-fonts-feurasans/-/connect-fonts-feurasans-0.0.3.tgz" + }, + "connect-fonts-opensans": { + "version": "0.0.5", + "from": "connect-fonts-opensans@0.0.5", + "resolved": "https://registry.npmjs.org/connect-fonts-opensans/-/connect-fonts-opensans-0.0.5.tgz" + }, + "connect-logger-statsd": { + "version": "0.0.1", + "from": "connect-logger-statsd@0.0.1", + "resolved": "https://registry.npmjs.org/connect-logger-statsd/-/connect-logger-statsd-0.0.1.tgz" + }, + "convict": { + "version": "0.4.1", + "from": "convict@0.4.1", + "resolved": "https://registry.npmjs.org/convict/-/convict-0.4.1.tgz", + "dependencies": { + "validator": { + "version": "0.4.24", + "from": "validator@0.4.24", + "resolved": "https://registry.npmjs.org/validator/-/validator-0.4.24.tgz" + }, + "moment": { + "version": "1.7.2", + "from": "moment@1.7.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-1.7.2.tgz" + }, + "optimist": { + "version": "0.5.0", + "from": "optimist@0.5.0", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.5.0.tgz", + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "from": "wordwrap@~0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" + } + } + } + } + }, + "cover": { + "version": "0.2.9", + "from": "cover@0.2.9", + "resolved": "https://registry.npmjs.org/cover/-/cover-0.2.9.tgz", + "dependencies": { + "cli-table": { + "version": "0.0.2", + "from": "cli-table@0.0.x", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.0.2.tgz", + "dependencies": { + "colors": { + "version": "0.3.0", + "from": "colors@0.3.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.3.0.tgz" + } + } + }, + "underscore": { + "version": "1.2.4", + "from": "underscore@1.2.x", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.2.4.tgz" + }, + "underscore.string": { + "version": "2.0.0", + "from": "underscore.string@2.0.x", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.0.0.tgz" + } + } + }, + "ejs": { + "version": "0.8.4", + "from": "ejs@0.8.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-0.8.4.tgz" + }, + "etagify": { + "version": "0.0.2", + "from": "etagify@0.0.2", + "resolved": "https://registry.npmjs.org/etagify/-/etagify-0.0.2.tgz" + }, + "express": { + "version": "2.5.0", + "from": "express@2.5.0", + "resolved": "https://registry.npmjs.org/express/-/express-2.5.0.tgz", + "dependencies": { + "mime": { + "version": "1.2.11", + "from": "mime@>= 0.0.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" + }, + "qs": { + "version": "2.3.2", + "from": "qs@>= 0.3.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.2.tgz" + }, + "mkdirp": { + "version": "0.0.7", + "from": "mkdirp@0.0.7", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.0.7.tgz" + } + } + }, + "gobbledygook": { + "version": "0.0.3", + "from": "gobbledygook@0.0.3", + "resolved": "https://registry.npmjs.org/gobbledygook/-/gobbledygook-0.0.3.tgz" + }, + "hood": { + "version": "0.2.1", + "from": "hood@0.2.1", + "resolved": "https://registry.npmjs.org/hood/-/hood-0.2.1.tgz" + }, + "i18n-abide": { + "version": "0.0.14", + "from": "i18n-abide@0.0.14", + "resolved": "https://registry.npmjs.org/i18n-abide/-/i18n-abide-0.0.14.tgz", + "dependencies": { + "async": { + "version": "0.1.22", + "from": "async@0.1.22", + "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz" + }, + "jsxgettext": { + "version": "0.1.7", + "from": "jsxgettext@0.1.7", + "resolved": "https://registry.npmjs.org/jsxgettext/-/jsxgettext-0.1.7.tgz", + "dependencies": { + "escodegen": { + "version": "0.0.23", + "from": "escodegen@0.0.23", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.23.tgz", + "dependencies": { + "estraverse": { + "version": "0.0.4", + "from": "estraverse@~0.0.4", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz" + }, + "source-map": { + "version": "0.1.40", + "from": "source-map@>= 0.1.2", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.40.tgz", + "dependencies": { + "amdefine": { + "version": "0.1.0", + "from": "amdefine@>=0.0.4", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz" + } + } + } + } + }, + "esprima": { + "version": "1.0.3", + "from": "esprima@1.0.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.3.tgz" + }, + "estraverse": { + "version": "1.1.2-1", + "from": "estraverse@1.1.2-1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.1.2-1.tgz" + }, + "nomnom": { + "version": "1.5.2", + "from": "nomnom@1.5.2", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.5.2.tgz", + "dependencies": { + "underscore": { + "version": "1.1.7", + "from": "underscore@1.1.x", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz" + }, + "colors": { + "version": "0.5.1", + "from": "colors@0.5.x", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz" + } + } + }, + "jade": { + "version": "0.30.0", + "from": "jade@0.30.0", + "resolved": "https://registry.npmjs.org/jade/-/jade-0.30.0.tgz", + "dependencies": { + "commander": { + "version": "1.1.1", + "from": "commander@~1.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-1.1.1.tgz", + "dependencies": { + "keypress": { + "version": "0.1.0", + "from": "keypress@0.1.x", + "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz" + } + } + }, + "transformers": { + "version": "2.0.1", + "from": "transformers@~2.0.1", + "resolved": "https://registry.npmjs.org/transformers/-/transformers-2.0.1.tgz", + "dependencies": { + "promise": { + "version": "2.0.0", + "from": "promise@~2.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-2.0.0.tgz", + "dependencies": { + "is-promise": { + "version": "1.0.1", + "from": "is-promise@~1", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz" + } + } + }, + "css": { + "version": "1.0.8", + "from": "css@~1.0.8", + "resolved": "https://registry.npmjs.org/css/-/css-1.0.8.tgz", + "dependencies": { + "css-parse": { + "version": "1.0.4", + "from": "css-parse@1.0.4", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz" + }, + "css-stringify": { + "version": "1.0.5", + "from": "css-stringify@1.0.5", + "resolved": "https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz" + } + } + }, + "uglify-js": { + "version": "2.2.5", + "from": "uglify-js@~2.2.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz", + "dependencies": { + "source-map": { + "version": "0.1.40", + "from": "source-map@~0.1.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.40.tgz", + "dependencies": { + "amdefine": { + "version": "0.1.0", + "from": "amdefine@>=0.0.4", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz" + } + } + }, + "optimist": { + "version": "0.3.7", + "from": "optimist@~0.3.5", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "from": "wordwrap@~0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" + } + } + } + } + } + } + }, + "character-parser": { + "version": "1.0.2", + "from": "character-parser@~1.0.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-1.0.2.tgz" + }, + "monocle": { + "version": "0.1.50", + "from": "monocle@~0.1.46", + "resolved": "https://registry.npmjs.org/monocle/-/monocle-0.1.50.tgz", + "dependencies": { + "readdirp": { + "version": "0.2.5", + "from": "readdirp@~0.2.3", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-0.2.5.tgz", + "dependencies": { + "minimatch": { + "version": "1.0.0", + "from": "minimatch@>=0.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", + "dependencies": { + "lru-cache": { + "version": "2.5.0", + "from": "lru-cache@2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" + }, + "sigmund": { + "version": "1.0.0", + "from": "sigmund@~1.0.0", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz" + } + } + } + } + } + } + } + } + } + } + }, + "optimist": { + "version": "0.3.4", + "from": "optimist@0.3.4", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.4.tgz", + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "from": "wordwrap@~0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" + } + } + }, + "plist": { + "version": "0.4.3", + "from": "plist@0.4.3", + "resolved": "https://registry.npmjs.org/plist/-/plist-0.4.3.tgz", + "dependencies": { + "xmlbuilder": { + "version": "0.4.3", + "from": "xmlbuilder@0.4.x", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-0.4.3.tgz" + }, + "xmldom": { + "version": "0.1.19", + "from": "xmldom@0.1.x", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.19.tgz" + } + } + } + } + }, + "jwcrypto": { + "version": "0.4.4", + "from": "jwcrypto@0.4.4", + "resolved": "https://registry.npmjs.org/jwcrypto/-/jwcrypto-0.4.4.tgz", + "dependencies": { + "browserify": { + "version": "1.13.5", + "from": "browserify@1.13.5", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-1.13.5.tgz", + "dependencies": { + "detective": { + "version": "0.1.1", + "from": "detective@~0.1.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-0.1.1.tgz", + "dependencies": { + "uglify-js": { + "version": "1.2.6", + "from": "uglify-js@~1.2.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.6.tgz" + } + } + }, + "deputy": { + "version": "0.0.4", + "from": "deputy@~0.0.0", + "resolved": "https://registry.npmjs.org/deputy/-/deputy-0.0.4.tgz", + "dependencies": { + "detective": { + "version": "0.2.1", + "from": "detective@~0.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-0.2.1.tgz", + "dependencies": { + "esprima": { + "version": "0.9.9", + "from": "esprima@~0.9.9", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-0.9.9.tgz" + } + } + } + } + }, + "resolve": { + "version": "0.2.8", + "from": "resolve@~0.2.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.2.8.tgz" + }, + "nub": { + "version": "0.0.0", + "from": "nub@~0.0.0", + "resolved": "https://registry.npmjs.org/nub/-/nub-0.0.0.tgz" + }, + "commondir": { + "version": "0.0.1", + "from": "commondir@~0.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-0.0.1.tgz" + }, + "coffee-script": { + "version": "1.8.0", + "from": "coffee-script@1.x.x", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.8.0.tgz" + }, + "optimist": { + "version": "0.3.7", + "from": "optimist@~0.3.4", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "from": "wordwrap@~0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" + } + } + }, + "vm-browserify": { + "version": "0.0.4", + "from": "vm-browserify@~0.0.0", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "dependencies": { + "indexof": { + "version": "0.0.1", + "from": "indexof@0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" + } + } + }, + "crypto-browserify": { + "version": "0.4.0", + "from": "crypto-browserify@~0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-0.4.0.tgz" + } + } + }, + "http-browserify": { + "version": "0.1.1", + "from": "http-browserify@0.1.1", + "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-0.1.1.tgz" + }, + "vows": { + "version": "0.5.13", + "from": "vows@0.5.13", + "resolved": "https://registry.npmjs.org/vows/-/vows-0.5.13.tgz", + "dependencies": { + "eyes": { + "version": "0.1.8", + "from": "eyes@>=0.1.6", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" + } + } + }, + "optimist": { + "version": "0.2.6", + "from": "optimist@0.2.6", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.2.6.tgz", + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "from": "wordwrap@>=0.0.1 <0.1", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" + } + } + } + } + }, + "mkdirp": { + "version": "0.3.5", + "from": "mkdirp@0.3.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz" + }, + "mysql": { + "version": "0.9.6", + "from": "mysql@0.9.6", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-0.9.6.tgz", + "dependencies": { + "hashish": { + "version": "0.0.4", + "from": "hashish@0.0.4", + "resolved": "https://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz", + "dependencies": { + "traverse": { + "version": "0.6.6", + "from": "traverse@>=0.2.4", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz" + } + } + } + } + }, + "node-statsd": { + "version": "0.0.7", + "from": "node-statsd@0.0.7", + "resolved": "https://registry.npmjs.org/node-statsd/-/node-statsd-0.0.7.tgz" + }, + "nodemailer": { + "version": "0.5.3", + "from": "nodemailer@0.5.3", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-0.5.3.tgz", + "dependencies": { + "mailcomposer": { + "version": "0.2.12", + "from": "mailcomposer@~0.2", + "resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-0.2.12.tgz", + "dependencies": { + "mimelib": { + "version": "0.2.18", + "from": "mimelib@~0.2.15", + "resolved": "https://registry.npmjs.org/mimelib/-/mimelib-0.2.18.tgz", + "dependencies": { + "encoding": { + "version": "0.1.10", + "from": "encoding@~0.1.7", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.10.tgz", + "dependencies": { + "iconv-lite": { + "version": "0.4.4", + "from": "iconv-lite@~0.4.4", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.4.tgz" + } + } + }, + "addressparser": { + "version": "0.2.1", + "from": "addressparser@~0.2.1", + "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-0.2.1.tgz" + } + } + }, + "mime": { + "version": "1.2.11", + "from": "mime@~1.2.11", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" + }, + "he": { + "version": "0.3.6", + "from": "he@~0.3.6", + "resolved": "https://registry.npmjs.org/he/-/he-0.3.6.tgz" + }, + "follow-redirects": { + "version": "0.0.3", + "from": "follow-redirects@0.0.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-0.0.3.tgz" + }, + "dkim-signer": { + "version": "0.1.2", + "from": "dkim-signer@~0.1.1", + "resolved": "https://registry.npmjs.org/dkim-signer/-/dkim-signer-0.1.2.tgz", + "dependencies": { + "punycode": { + "version": "1.2.4", + "from": "punycode@~1.2.4", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.2.4.tgz" + } + } + } + } + }, + "simplesmtp": { + "version": "0.3.33", + "from": "simplesmtp@~0.2 || ~0.3", + "resolved": "https://registry.npmjs.org/simplesmtp/-/simplesmtp-0.3.33.tgz", + "dependencies": { + "rai": { + "version": "0.1.11", + "from": "rai@~0.1.11", + "resolved": "https://registry.npmjs.org/rai/-/rai-0.1.11.tgz" + }, + "xoauth2": { + "version": "0.1.8", + "from": "xoauth2@~0.1.8", + "resolved": "https://registry.npmjs.org/xoauth2/-/xoauth2-0.1.8.tgz" + } + } + } + } + }, + "optimist": { + "version": "0.6.0", + "from": "optimist@0.6.0", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz", + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "from": "wordwrap@~0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" + }, + "minimist": { + "version": "0.0.10", + "from": "minimist@~0.0.1", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" + } + } + }, + "postprocess": { + "version": "0.2.4", + "from": "postprocess@0.2.4", + "resolved": "https://registry.npmjs.org/postprocess/-/postprocess-0.2.4.tgz" + }, + "rimraf": { + "version": "2.2.2", + "from": "rimraf@2.2.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.2.tgz", + "dependencies": { + "graceful-fs": { + "version": "2.0.3", + "from": "graceful-fs@~2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz" + } + } + }, + "semver": { + "version": "2.1.0", + "from": "semver@2.1.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-2.1.0.tgz" + }, + "temp": { + "version": "0.8.1", + "from": "temp@0.8.1", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.1.tgz", + "dependencies": { + "rimraf": { + "version": "2.2.8", + "from": "rimraf@~2.2.6", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + } + } + }, + "toobusy": { + "version": "0.2.4", + "from": "toobusy@0.2.4", + "resolved": "https://registry.npmjs.org/toobusy/-/toobusy-0.2.4.tgz", + "dependencies": { + "bindings": { + "version": "1.1.0", + "from": "bindings@1.1.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.1.0.tgz" + } + } + }, + "uglify-js": { + "version": "1.0.6", + "from": "uglify-js@1.0.6", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-1.0.6.tgz" + }, + "uglifycss": { + "version": "0.0.5", + "from": "uglifycss@0.0.5", + "resolved": "https://registry.npmjs.org/uglifycss/-/uglifycss-0.0.5.tgz" + }, + "underscore": { + "version": "1.5.2", + "from": "underscore@1.5.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz" + }, + "urlparse": { + "version": "0.0.1", + "from": "urlparse@0.0.1", + "resolved": "https://registry.npmjs.org/urlparse/-/urlparse-0.0.1.tgz" + }, + "useragent": { + "version": "2.0.7", + "from": "useragent@2.0.7", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.0.7.tgz", + "dependencies": { + "lru-cache": { + "version": "2.2.4", + "from": "lru-cache@2.2.x", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz" + } + } + }, + "validator": { + "version": "1.5.1", + "from": "validator@1.5.1", + "resolved": "https://registry.npmjs.org/validator/-/validator-1.5.1.tgz" + }, + "winston": { + "version": "0.7.2", + "from": "winston@0.7.2", + "resolved": "https://registry.npmjs.org/winston/-/winston-0.7.2.tgz", + "dependencies": { + "colors": { + "version": "0.6.2", + "from": "colors@0.6.x", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz" + }, + "cycle": { + "version": "1.0.3", + "from": "cycle@1.0.x", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz" + }, + "eyes": { + "version": "0.1.8", + "from": "eyes@0.1.x", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" + }, + "pkginfo": { + "version": "0.3.0", + "from": "pkginfo@0.3.x", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.0.tgz" + }, + "request": { + "version": "2.16.6", + "from": "request@2.16.x", + "resolved": "https://registry.npmjs.org/request/-/request-2.16.6.tgz", + "dependencies": { + "form-data": { + "version": "0.0.10", + "from": "form-data@~0.0.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.0.10.tgz", + "dependencies": { + "combined-stream": { + "version": "0.0.7", + "from": "combined-stream@~0.0.4", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "dependencies": { + "delayed-stream": { + "version": "0.0.5", + "from": "delayed-stream@0.0.5", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" + } + } + } + } + }, + "mime": { + "version": "1.2.11", + "from": "mime@~1.2.7", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" + }, + "hawk": { + "version": "0.10.2", + "from": "hawk@~0.10.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-0.10.2.tgz", + "dependencies": { + "hoek": { + "version": "0.7.6", + "from": "hoek@0.7.x", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz" + }, + "boom": { + "version": "0.3.8", + "from": "boom@0.3.x", + "resolved": "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz" + }, + "cryptiles": { + "version": "0.1.3", + "from": "cryptiles@0.1.x", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.1.3.tgz" + }, + "sntp": { + "version": "0.1.4", + "from": "sntp@0.1.x", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.1.4.tgz" + } + } + }, + "node-uuid": { + "version": "1.4.1", + "from": "node-uuid@~1.4.0", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.1.tgz" + }, + "cookie-jar": { + "version": "0.2.0", + "from": "cookie-jar@~0.2.0", + "resolved": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.2.0.tgz" + }, + "aws-sign": { + "version": "0.2.0", + "from": "aws-sign@~0.2.0", + "resolved": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.2.0.tgz" + }, + "oauth-sign": { + "version": "0.2.0", + "from": "oauth-sign@~0.2.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.2.0.tgz" + }, + "forever-agent": { + "version": "0.2.0", + "from": "forever-agent@~0.2.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.2.0.tgz" + }, + "tunnel-agent": { + "version": "0.2.0", + "from": "tunnel-agent@~0.2.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.2.0.tgz" + }, + "json-stringify-safe": { + "version": "3.0.0", + "from": "json-stringify-safe@~3.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-3.0.0.tgz" + }, + "qs": { + "version": "0.5.6", + "from": "qs@~0.5.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz" + } + } + }, + "stack-trace": { + "version": "0.0.9", + "from": "stack-trace@0.0.x", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz" + } + } + } + } +} diff --git a/package.json b/package.json index ca12a617d..5ecfe7806 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,6 @@ "gobbledygook": "0.0.3", "hood": "0.2.1", "i18n-abide": "0.0.14", - "lockdown": "0.0.5", "jwcrypto": "0.4.4", "mkdirp": "0.3.5", "mysql": "0.9.6", @@ -68,7 +67,6 @@ "htmlparser": "1.7.6" }, "scripts": { - "preinstall": "node ./scripts/lockdown", "postinstall": "node ./scripts/postinstall.js", "postupdate": "node ./scripts/postinstall.js", "test": "./scripts/test", diff --git a/scripts/lockdown b/scripts/lockdown deleted file mode 100755 index 16ca4fdbf..000000000 --- a/scripts/lockdown +++ /dev/null @@ -1,198 +0,0 @@ -#!/usr/bin/env node - -if (process.env['NPM_LOCKDOWN_RUNNING']) process.exit(0); - -console.log("NPM Lockdown is here to check your dependencies! Never fear!"); - -var http = require('http'), - crypto = require('crypto'), - exec = require('child_process').exec, - fs = require('fs'), - path = require('path'); - -try { - var lockdownJson = JSON.parse(fs.readFileSync(path.join(process.cwd(), 'lockdown.json'))); -} catch(e) { - console.log("\nERROR: I cannot read lockdown.json! run node_modules/.bin/lockdown-relock to generate!\n"); - process.exit(1); -} - -var boundPort; - -// during execution fatal errors will be appended to this list -var errors = []; - -// during execution non-fatal warnings will be appended to this list -var warn = []; - -function rewriteURL(u) { - return u.replace('registry.npmjs.org', '127.0.0.1:' + boundPort); -} - -function packageOk(name, ver, sha, required) { - if (!lockdownJson[name]) { - if (required) { - errors.push("package '" + name + "' not in lockdown.json!"); - } - return false; - } - - if (lockdownJson[name][ver] === undefined) { - if (required) { - errors.push("package version " + name + "@" + ver + " not in lockdown.json!"); - } - return false; - } - - // a '*' shasum is not checked - var wantSHA = lockdownJson[name][ver]; - if (wantSHA !== '*' && wantSHA !== sha) { - if (required) { - errors.push("package " + name + "@" + ver + " has a different checksum (" + - wantSHA + " v. " + sha + ")"); - } - return false; - } - - if (wantSHA === '*') { - warn.push("Lockdown cannot guarantee your saftey! No sha for pkg " + name + "@" + ver + - " in lockdown.json"); - } - - return true; -} - - -function rewriteVersionMD(json) { - if (typeof json === 'string') json = JSON.parse(json); - if (!json.error) { - json.dist.tarball = rewriteURL(json.dist.tarball); - - // is the name/version/sha in our lockdown.json? - if (!packageOk(json.name, json.version, json.dist.shasum, true)) return null; - } - return JSON.stringify(json); -} - -function rewritePackageMD(json) { - if (typeof json === 'string') json = JSON.parse(json); - if (!json.error) { - Object.keys(json.versions).forEach(function(ver) { - var data = json.versions[ver]; - var name = data.name; - var sha = data.dist ? data.dist.shasum : undefined; - - if (packageOk(name, ver, sha, false)) { - data.dist.tarball = rewriteURL(data.dist.tarball); - } else { - delete json.versions[ver]; - } - }); - } - return JSON.stringify(json); -} - -function copy(from, to) { - for (var k in from) { - to[k] = from[k]; - } - return to; -} - -var server = http.createServer(function (req, res) { - if (req.method !== 'GET') { - return res.end('non GET requests not supported', 501); - } - - // what type of request is this? - // 1. specific version json metadata (when explicit dependency is expressed) - // - for these requests we should verify the name/version/sha advertised is allowed - // 2. package version json metadata (when version range is expressed - including '*') - // XXX: for these requests we should prune all versions that are not allowed - // 3. tarball - actual bits - // XXX: for these requests we should verify the name/version/sha matches something - // allowed, otherwise block the transaction - var arr = req.url.substr(1).split('/'); - var type = [ '', 'package_metadata', 'version_metadata', 'tarball' ][arr.length]; - - // let's extract pkg name and version sensitive to the type of request being performed. - var pkgname, pkgver; - if (type === 'tarball') { - pkgname = arr[0]; - var getVer = new RegExp("^" + pkgname + "-(.*)\\.tgz$"); - pkgver = getVer.exec(arr[2])[1]; - } else if (type === 'version_metadata') { - pkgname = arr[0]; - pkgver = arr[1]; - } else if (type === 'package_metadata') { - pkgname = arr[0]; - } - - var hash = crypto.createHash('sha1'); - - var r = http.request({ - host: 'registry.npmjs.org', - port: 80, - method: req.method, - path: req.url, - agent: false - }, function(rres) { - res.setHeader('Content-Type', rres.headers['content-type']); - if (type === 'tarball') res.setHeader('Content-Length', rres.headers['content-length']); - var b = ""; - rres.on('data', function(d) { - hash.update(d); - if (type != 'tarball') b += d; - else res.write(d); - }); - rres.on('end', function() { - if (type === 'tarball') { - res.end(); - } else { - if (type === 'package_metadata') { - b = rewritePackageMD(b); - } else if (type === 'version_metadata') { - b = rewriteVersionMD(b); - } - if (b === null) { - res.writeHead(404); - res.end("package installation disallowed by lockdown"); - } else { - res.setHeader('Content-Length', Buffer.byteLength(b)); - res.writeHead(rres.statusCode); - res.end(b); - } - } - }); - }); - r.end(); -}); - -server.listen(process.env['LOCKDOWN_PORT'] || 0, '127.0.0.1', function() { - boundPort = server.address().port; - var env = copy(process.env, { - NPM_CONFIG_REGISTRY: 'http://127.0.0.1:' + boundPort, - NPM_LOCKDOWN_RUNNING: "true" - }); - - var child = exec('npm install', { - cwd: process.cwd(), - env: env - }, function(e) { - if (warn.length) { - console.log(); - console.log("LOCKDOWN WARNINGS:"); - warn.forEach(function(e) { console.log(" ", e); }); - console.log(); - } - if (errors.length) { - console.log(); - console.log("LOCKDOWN ERRORS:"); - errors.forEach(function(e) { console.log(" ", e); }); - console.log(); - } - process.exit(e ? 1 : 0); - }); - child.stdout.pipe(process.stdout); - child.stderr.pipe(process.stderr); -});