Archive
+ +By Year
+ +-
+ {{#years}}
+
- {{.}} + {{/years}} +
By Tag
+-
+ {{#top_tags}}
+
- {{.}} + {{/top_tags}} +
-
+ {{#posts}}
+
- + {{{ title }}} + + + {{/posts}} +
diff --git a/config.json b/config.json
index 5a742a08..9d18b295 100644
--- a/config.json
+++ b/config.json
@@ -7,9 +7,37 @@
},
"plugins": {
+ "content_handler": "punch-blog-content-handler",
+ "helpers": {
+ "formatted_date": "./helpers/formatted_date_helper.js",
+ "archive_helper": "./helpers/archive_helper.js",
+
+ "feed_helper": "./helpers/feed_helper.js",
+ "current_helper": "punch-current-page-helper"
+ },
"generator_hooks": {
"htaccess": "./bin/htaccess.js",
- "redirects": "./bin/redirects.js"
+ "redirects": "./bin/redirects.js",
+ "sitemap_generator_hook": "punch-sitemap-generator"
+ }
+ },
+
+ "blog": {
+ "posts_dir": "posts",
+ "post_format": "md",
+ "post_url": "/updates/{year}/{month}/{date}/{title}",
+ "teaser_length": 2,
+ "homepage_posts": 10,
+ "archive_urls": {
+ "all": "/updates",
+ "year": "/updates/{year}",
+ "year_month": "/updates/{year}/{month}",
+ "year_month_date": "/updates/{year}/{month}/{date}",
+ "tag": "/updates/tag/{tag}"
}
+ },
+
+ "sitemap_generator": {
+ "url_root": "https://hackerspace.sg"
}
}
diff --git a/contents/_index/events.json b/contents/_index/events.json
index 568b5341..d064a1d7 100644
--- a/contents/_index/events.json
+++ b/contents/_index/events.json
@@ -1,26 +1,12 @@
[
{
- "Name": "Python Meetup September",
- "When": 1409830200000,
- "URL": "https://www.facebook.com/events/685781994823718/685781998157051/?comment_id=687726351295949"
+ "Name": "SG Futurist - Life Extension Now",
+ "When": "2017-11-18T06:30:00.000Z",
+ "URL": "https://www.meetup.com/Singapore-Futurists/events/244400372/
Host:"
},
{
- "Name": "SG WordPress Meetup (Sept 2014)",
- "When": 1410348600000,
- "URL": "https://www.facebook.com/events/492930457509067/492930467509066/"
- },
- {
- "Name": "Papers We Love SG #002",
- "When": 1410778800000
- },
- {
- "Name": "Postgres User Group (PUGs) Meetup",
- "When": 1410949800000,
- "URL": "http://www.meetup.com/PUGS-Postgres-Users-Group-Singapore/"
- },
- {
- "Name": "The Ukulele Assemble",
- "When": 1411279200000,
- "URL": "http://www.meetup.com/The-Ukulele-Assemble/events/204272602/"
+ "Name": "Super Sunday Photography Walk",
+ "When": "2017-11-26T00:30:00.000Z",
+ "URL": "https://www.google.com/url?q=https%3A%2F%2Fwww.facebook.com%2Fevents%2F1890104491256160%2F&sa=D&usd=2&usg=AFQjCNGv8CO48HJPrrh8Xf_6NA2g2hk24A"
}
]
\ No newline at end of file
diff --git a/contents/feed.rss.json b/contents/feed.rss.json
new file mode 100644
index 00000000..9e26dfee
--- /dev/null
+++ b/contents/feed.rss.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/contents/shared.json b/contents/shared.json
index 8c434aa9..dc965c35 100644
--- a/contents/shared.json
+++ b/contents/shared.json
@@ -1,5 +1,8 @@
{
- "site-title": "HackerspaceSG: the Singapore tech scene's community centre",
+ "site-title": "HackerspaceSG",
+ "tagline": "the Singapore tech scene's community centre",
+ "host": "hackerspace.sg",
+ "creator": "HackerspaceSG",
"footer-text": "Built with Punch",
"navbar": [
{ "label": "Home", "href": "/" },
@@ -7,7 +10,8 @@
{ "label": "Connect", "href": "/connect" },
{ "label": "Location", "href": "/location" },
{ "label": "Membership", "href": "/membership" },
- { "label": "About", "href": "/about" },
- { "label": "FAQ", "href": "/faq" }
+ { "label": "About", "href": "/about" },
+ { "label": "FAQ", "href": "/faq" },
+ { "label": "Updates", "href": "/updates"}
]
}
diff --git a/helpers/archive_helper.js b/helpers/archive_helper.js
new file mode 100644
index 00000000..78857dce
--- /dev/null
+++ b/helpers/archive_helper.js
@@ -0,0 +1,62 @@
+var _ = require("underscore");
+var helper_utils = require("punch").Utils.Helper;
+var path_utils = require("punch").Utils.Path;
+var blog_content_handler = require("punch-blog-content-handler");
+
+var all_posts = [];
+var last_modified = null;
+
+var fetch_all_posts = function(callback) {
+ //reset posts list
+ blog_content_handler.allPosts = {};
+
+ blog_content_handler.getAllPosts(function(err, posts_obj, posts_last_modified) {
+ if (!err) {
+ all_posts = _.values(posts_obj);
+ last_modified = posts_last_modified;
+ }
+
+ return callback();
+ });
+}
+
+var tag_helpers = {
+
+ years: function() {
+ return _.keys(blog_content_handler.postDates).reverse();
+ },
+
+ top_tags: function() {
+ var tag_counts = blog_content_handler.tagCounts;
+ return _.sortBy(_.keys(tag_counts), function(tag) {
+ return tag_counts[tag];
+ }).reverse();
+ }
+
+};
+
+
+module.exports = {
+
+ directAccess: function() {
+ return { "block_helpers": {}, "tag_helpers": {}, "options": {} };
+ },
+
+ get: function(basepath, file_extension, options, callback) {
+ var self = this;
+
+ var archive_url_regexs = _.map(blog_content_handler.archiveUrls, function(url) {
+ return new RegExp("^" + url.pattern + "\\/index$", "g");
+ });
+
+ if (path_utils.matchPath(basepath, archive_url_regexs)) {
+ fetch_all_posts(function() {
+ return callback(null, { "tag": tag_helpers }, {}, last_modified);
+ });
+ } else {
+ return callback(null, {}, {}, null);
+ }
+ }
+
+}
+
diff --git a/helpers/feed_helper.js b/helpers/feed_helper.js
new file mode 100644
index 00000000..024801ce
--- /dev/null
+++ b/helpers/feed_helper.js
@@ -0,0 +1,70 @@
+var _ = require("underscore");
+var path = require("path");
+
+var helper_utils = require("punch").Utils.Helper;
+var path_utils = require("punch").Utils.Path;
+var blog_content_handler = require("punch-blog-content-handler");
+
+var all_posts = [];
+var last_modified;
+
+var fetch_content = function(callback) {
+ var all_post_permalinks = [];
+
+ blog_content_handler.getAllPosts(function(err, posts_obj, posts_last_modified) {
+ if (!err) {
+ all_post_permalinks = _.map(posts_obj, function(post){ return post.permalink; });
+ last_modified = posts_last_modified;
+ }
+
+ // fetch the content for each post
+ var fetch_full_post = function() {
+ if (all_post_permalinks.length) {
+ blog_content_handler.getPost(path.join(all_post_permalinks.shift(), "index"), function(err, post_contents, modified_date) {
+ if (!err) {
+ all_posts.push(post_contents);
+ }
+
+ return fetch_full_post();
+ });
+ } else {
+ return callback();
+ }
+ };
+
+ return fetch_full_post();
+
+ });
+}
+
+var tag_helpers = {
+
+ all_posts: function() {
+ return all_posts.reverse();
+ },
+
+ last_modified: function() {
+ return last_modified;
+ }
+
+};
+
+module.exports = {
+
+ directAccess: function(){
+ return { "block_helpers": {}, "tag_helpers": {}, "options": {} };
+ },
+
+ get: function(basepath, file_extension, options, callback){
+ var self = this;
+
+ if (!path_utils.matchPath(basepath, "^/feed$")) {
+ return callback(null, {}, {}, null);
+ }
+
+ fetch_content(function() {
+ return callback(null, { "tag": tag_helpers }, {}, last_modified);
+ });
+ }
+
+}
diff --git a/helpers/formatted_date_helper.js b/helpers/formatted_date_helper.js
new file mode 100644
index 00000000..56750547
--- /dev/null
+++ b/helpers/formatted_date_helper.js
@@ -0,0 +1,56 @@
+var helper_utils = require("punch").Utils.Helper;
+
+var getDateValue = function(text){
+ return String(text).match(/^\d+$/) ? parseInt(text, 10) : text;
+};
+
+var block_helpers = {
+ long_date: function() {
+ return helper_utils.checkArgs(arguments, function(text) {
+ if(!text) {
+ return "";
+ }
+
+ var published_date = new Date( getDateValue(text) );
+ var month_names = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];
+
+ var f_date = (published_date.getDate() < 10) ? ("0" + published_date.getDate()) : published_date.getDate();
+ var f_month = month_names[published_date.getMonth()];
+ var f_year = published_date.getFullYear();
+
+ return f_date + " " + f_month + " " + f_year;
+ });
+ },
+
+ short_date: function() {
+ return helper_utils.checkArgs(arguments, function(text) {
+ if(!text) {
+ return "";
+ }
+
+ var published_date = new Date( getDateValue(text) );
+ var month_names = [ "JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC" ];
+
+ var f_date = (published_date.getDate() < 10) ? ("0" + published_date.getDate()) : published_date.getDate();
+ var f_month = month_names[published_date.getMonth()];
+ var f_year = published_date.getFullYear();
+
+ return f_date + " " + f_month + " " + f_year;
+ });
+ }
+
+};
+
+module.exports = {
+
+ directAccess: function(){
+ return { "block_helpers": block_helpers, "options": {} };
+ },
+
+ get: function(basepath, file_extension, options, callback){
+ var self = this;
+
+ return callback(null, { "block": block_helpers }, {});
+ }
+
+};
diff --git a/helpers/index_helper.js b/helpers/index_helper.js
new file mode 100644
index 00000000..3fe5de90
--- /dev/null
+++ b/helpers/index_helper.js
@@ -0,0 +1,95 @@
+var _ = require("underscore");
+var path = require("path");
+
+var helper_utils = require("punch").Utils.Helper;
+var path_utils = require("punch").Utils.Path;
+var blog_content_handler = require("punch-blog-content-handler");
+
+var homepage_posts = 10;
+var teaser_length = 2;
+var recent_posts = [];
+var last_modified = null;
+
+var fetch_content = function(callback) {
+ recent_posts = [];
+
+ //reset posts list
+ blog_content_handler.allPosts = {};
+
+ blog_content_handler.getPosts('', function(err, posts_obj, posts_last_modified) {
+ if (!err) {
+ var all_posts = posts_obj.posts;
+
+ last_modified = posts_last_modified;
+
+ var recent_posts_list = all_posts.length > homepage_posts ? all_posts.slice(all_posts.length - homepage_posts) : all_posts;
+
+ var fetch_full_posts = function() {
+ if (recent_posts_list.length) {
+ blog_content_handler.getPost(path.join(recent_posts_list.shift().permalink, "index"), function(err, post_contents, modified_date) {
+ var post_paras = post_contents.content.replace(/\n/g, " ").match(/(
]*>.*?<\/p>)/g);
+
+ if (teaser_length < 1) {
+ paras_to_show = post_paras.length;
+ } else {
+ paras_to_show = teaser_length;
+ }
+
+ post_contents.is_teaser = (paras_to_show < post_paras.length);
+ post_contents.content = post_paras.slice(0, paras_to_show).join("");
+
+ if (!err) {
+ recent_posts.push(post_contents);
+ }
+
+ return fetch_full_posts()
+
+ });
+ } else {
+ return callback();
+ }
+ }
+
+ return fetch_full_posts();
+
+ } else {
+ console.log(err);
+ return callback();
+ }
+ });
+}
+
+var tag_helpers = {
+
+ recent_posts: function() {
+ return recent_posts;
+ }
+
+};
+
+module.exports = {
+
+ setup: function(config) {
+ if (config.blog) {
+ teaser_length = config.blog.teaser_length;
+ homepage_posts = config.blog.homepage_posts;
+ }
+ },
+
+ directAccess: function(){
+ return { "block_helpers": {}, "tag_helpers": {}, "options": {} };
+ },
+
+ get: function(basepath, file_extension, options, callback){
+ var self = this;
+
+ if (!path_utils.matchPath(basepath, "^/index$")) {
+ return callback(null, {}, {}, null);
+ }
+
+ fetch_content(function() {
+ return callback(null, { "tag": tag_helpers }, {}, last_modified);
+ });
+ }
+
+}
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 00000000..87b54f5b
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,1514 @@
+{
+ "name": "hackerspacesg",
+ "version": "0.0.1",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "accepts": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.0.7.tgz",
+ "integrity": "sha1-W1AftPBwQwmWTM2wSBclQSCNqxo=",
+ "requires": {
+ "mime-types": "1.0.2",
+ "negotiator": "0.4.7"
+ }
+ },
+ "ajv": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
+ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
+ "optional": true,
+ "requires": {
+ "co": "4.6.0",
+ "json-stable-stringify": "1.0.1"
+ }
+ },
+ "any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8="
+ },
+ "argparse": {
+ "version": "0.1.16",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
+ "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
+ "requires": {
+ "underscore": "1.7.0",
+ "underscore.string": "2.4.0"
+ },
+ "dependencies": {
+ "underscore": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
+ "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk="
+ }
+ }
+ },
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
+ "optional": true
+ },
+ "asn1": {
+ "version": "0.1.11",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz",
+ "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc=",
+ "optional": true
+ },
+ "assert-plus": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz",
+ "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=",
+ "optional": true
+ },
+ "async": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+ "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
+ "optional": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "optional": true
+ },
+ "aws-sign2": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz",
+ "integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM=",
+ "optional": true
+ },
+ "aws4": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
+ "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
+ "optional": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "base64-url": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.3.3.tgz",
+ "integrity": "sha1-+LbFN/CaT8WMmcuG4LDpxhRhog8="
+ },
+ "basic-auth-connect": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz",
+ "integrity": "sha1-/bC0OWLKe0BFanwrtI/hc9otISI="
+ },
+ "batch": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.1.tgz",
+ "integrity": "sha1-NqS6tZTAUP17UHvKDbMMLZKvT/I="
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
+ "optional": true,
+ "requires": {
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "body-parser": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.4.3.tgz",
+ "integrity": "sha1-RyeVLP9K8Hc+76SyJsL0Ei9eI00=",
+ "requires": {
+ "bytes": "1.0.0",
+ "depd": "0.3.0",
+ "iconv-lite": "0.4.3",
+ "media-typer": "0.2.0",
+ "qs": "0.6.6",
+ "raw-body": "1.2.2",
+ "type-is": "1.3.1"
+ },
+ "dependencies": {
+ "mime-types": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.0.tgz",
+ "integrity": "sha1-antKavLn2S+Xr+A/BHx4AejwAdI="
+ },
+ "qs": {
+ "version": "0.6.6",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz",
+ "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc="
+ },
+ "type-is": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.3.1.tgz",
+ "integrity": "sha1-pnibWlITgomt4e+PbZ8odP/XC2s=",
+ "requires": {
+ "media-typer": "0.2.0",
+ "mime-types": "1.0.0"
+ }
+ }
+ }
+ },
+ "boom": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz",
+ "integrity": "sha1-emNune1O/O+xnO9JR6PGffrukRs=",
+ "requires": {
+ "hoek": "0.9.1"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer-crc32": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.3.tgz",
+ "integrity": "sha1-u1RRnpXRB8vSQA520MqxRnM22SE="
+ },
+ "bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
+ "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g="
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "optional": true
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "optional": true
+ },
+ "coffee-script": {
+ "version": "1.12.7",
+ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz",
+ "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw=="
+ },
+ "combined-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
+ "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=",
+ "optional": true,
+ "requires": {
+ "delayed-stream": "0.0.5"
+ }
+ },
+ "commander": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
+ "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ=="
+ },
+ "compressible": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-1.1.1.tgz",
+ "integrity": "sha1-I7ceqQ6mxqZiiXAakYGCwk0HKe8="
+ },
+ "compression": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.0.11.tgz",
+ "integrity": "sha1-aXAM8e6JY0VDVqwZKm5ekeIyv/s=",
+ "requires": {
+ "accepts": "1.0.7",
+ "bytes": "1.0.0",
+ "compressible": "1.1.1",
+ "debug": "1.0.4",
+ "on-headers": "1.0.1",
+ "vary": "1.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz",
+ "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=",
+ "requires": {
+ "ms": "0.6.2"
+ }
+ },
+ "on-headers": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
+ "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c="
+ }
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "connect": {
+ "version": "2.21.1",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-2.21.1.tgz",
+ "integrity": "sha1-qUjuZhZ0iB5WFcBtuYLV1HzQqhI=",
+ "requires": {
+ "basic-auth-connect": "1.0.0",
+ "body-parser": "1.4.3",
+ "bytes": "1.0.0",
+ "compression": "1.0.11",
+ "connect-timeout": "1.1.1",
+ "cookie": "0.1.2",
+ "cookie-parser": "1.3.2",
+ "cookie-signature": "1.0.4",
+ "csurf": "1.2.2",
+ "debug": "1.0.2",
+ "depd": "0.3.0",
+ "errorhandler": "1.1.1",
+ "express-session": "1.5.2",
+ "finalhandler": "0.0.2",
+ "fresh": "0.2.2",
+ "media-typer": "0.2.0",
+ "method-override": "2.0.2",
+ "morgan": "1.1.1",
+ "multiparty": "3.2.9",
+ "on-headers": "0.0.0",
+ "parseurl": "1.0.1",
+ "pause": "0.0.1",
+ "qs": "0.6.6",
+ "response-time": "2.0.0",
+ "serve-favicon": "2.0.1",
+ "serve-index": "1.1.6",
+ "serve-static": "1.2.3",
+ "type-is": "1.3.2",
+ "vhost": "2.0.0"
+ },
+ "dependencies": {
+ "fresh": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz",
+ "integrity": "sha1-lzHc9WeMf660T7kDxPct9VGH+nc="
+ },
+ "qs": {
+ "version": "0.6.6",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz",
+ "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc="
+ }
+ }
+ },
+ "connect-timeout": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.1.1.tgz",
+ "integrity": "sha1-bH4xyY8Kxo620TBfZ/IfWm6Q/QQ=",
+ "requires": {
+ "debug": "1.0.2",
+ "on-headers": "0.0.0"
+ }
+ },
+ "cookie": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz",
+ "integrity": "sha1-cv7D0k5Io0Mgc9kMEmQgBQYQBLE="
+ },
+ "cookie-parser": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.2.tgz",
+ "integrity": "sha1-UiEcyCyVXXn/DAiJVEB3JOGc9WI=",
+ "requires": {
+ "cookie": "0.1.2",
+ "cookie-signature": "1.0.4"
+ }
+ },
+ "cookie-signature": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.4.tgz",
+ "integrity": "sha1-Dt0iKG46ERuaKnDbNj6SXoZ/aso="
+ },
+ "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="
+ },
+ "cryptiles": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz",
+ "integrity": "sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw=",
+ "optional": true,
+ "requires": {
+ "boom": "0.4.2"
+ }
+ },
+ "csrf-tokens": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/csrf-tokens/-/csrf-tokens-2.0.0.tgz",
+ "integrity": "sha1-yCEAP7i2rRe8l31v0ahL7cPtYZs=",
+ "requires": {
+ "base64-url": "1.3.3",
+ "rndm": "1.2.0",
+ "scmp": "0.0.3",
+ "uid-safe": "1.1.0"
+ }
+ },
+ "cssmin": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/cssmin/-/cssmin-0.4.3.tgz",
+ "integrity": "sha1-yRlAd+Dr2s1pHV9ZAVudgZ840BU="
+ },
+ "csurf": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/csurf/-/csurf-1.2.2.tgz",
+ "integrity": "sha1-Lqny0/LWex4iUykOZ2tiGV3Ld1Y=",
+ "requires": {
+ "csrf-tokens": "2.0.0"
+ }
+ },
+ "ctype": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz",
+ "integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8=",
+ "optional": true
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "optional": true
+ }
+ }
+ },
+ "debug": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.2.tgz",
+ "integrity": "sha1-OElZHBDM5khHbDx8Li40FttZY8Q=",
+ "requires": {
+ "ms": "0.6.2"
+ }
+ },
+ "delayed-stream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz",
+ "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=",
+ "optional": true
+ },
+ "depd": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-0.3.0.tgz",
+ "integrity": "sha1-Ecm8KOQlMl+9iziUC+/2n6UyaIM="
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "optional": true,
+ "requires": {
+ "jsbn": "0.1.1"
+ }
+ },
+ "ee-first": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.0.3.tgz",
+ "integrity": "sha1-bJjECJq+y1p7hcGsRJqmA9Oz2r4="
+ },
+ "errno": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
+ "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=",
+ "optional": true,
+ "requires": {
+ "prr": "0.0.0"
+ }
+ },
+ "errorhandler": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.1.1.tgz",
+ "integrity": "sha1-GN79Q22Mou/gotiGxcTW7m121pE=",
+ "requires": {
+ "accepts": "1.0.7",
+ "escape-html": "1.0.1"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz",
+ "integrity": "sha1-GBoobq05ejmpKFfPsdQwUuNWv/A="
+ },
+ "express-session": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.5.2.tgz",
+ "integrity": "sha1-56Tr74ob/8EyMt0J/mq18DMeMw8=",
+ "requires": {
+ "buffer-crc32": "0.2.3",
+ "cookie": "0.1.2",
+ "cookie-signature": "1.0.4",
+ "debug": "1.0.2",
+ "depd": "0.3.0",
+ "on-headers": "0.0.0",
+ "uid-safe": "1.0.1",
+ "utils-merge": "1.0.0"
+ },
+ "dependencies": {
+ "uid-safe": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-1.0.1.tgz",
+ "integrity": "sha1-W9FIRgouhPVPGT/SA1LIw9feasg=",
+ "requires": {
+ "base64-url": "1.3.3",
+ "mz": "1.3.0"
+ }
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
+ "optional": true
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
+ },
+ "finalhandler": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.0.2.tgz",
+ "integrity": "sha1-BgPYde6H1WeiZmkoFcyK1E/M7to=",
+ "requires": {
+ "debug": "1.0.2",
+ "escape-html": "1.0.1"
+ }
+ },
+ "finished": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/finished/-/finished-1.2.2.tgz",
+ "integrity": "sha1-QWCOr639ZWg7RqEiC8Sx7D2u3Ng=",
+ "requires": {
+ "ee-first": "1.0.3"
+ }
+ },
+ "forever-agent": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz",
+ "integrity": "sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA="
+ },
+ "form-data": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz",
+ "integrity": "sha1-kavXiKupcCsaq/qLwBAxoqyeOxI=",
+ "optional": true,
+ "requires": {
+ "async": "0.9.2",
+ "combined-stream": "0.0.7",
+ "mime": "1.2.11"
+ }
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "fstream": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
+ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "inherits": "2.0.3",
+ "mkdirp": "0.5.1",
+ "rimraf": "2.6.2"
+ }
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "optional": true
+ }
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
+ },
+ "har-schema": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
+ "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=",
+ "optional": true
+ },
+ "har-validator": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
+ "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
+ "optional": true,
+ "requires": {
+ "ajv": "4.11.8",
+ "har-schema": "1.0.5"
+ }
+ },
+ "hawk": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz",
+ "integrity": "sha1-h81JH5tG5OKurKM1QWdmiF0tHtk=",
+ "optional": true,
+ "requires": {
+ "boom": "0.4.2",
+ "cryptiles": "0.2.2",
+ "hoek": "0.9.1",
+ "sntp": "0.2.4"
+ }
+ },
+ "hoek": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz",
+ "integrity": "sha1-PTIkYrrfB3Fup+uFuviAec3c5QU="
+ },
+ "http-accept": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/http-accept/-/http-accept-0.1.6.tgz",
+ "integrity": "sha1-KjNppBlACocPz1Q8KboYUKLk6xc="
+ },
+ "http-signature": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz",
+ "integrity": "sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY=",
+ "optional": true,
+ "requires": {
+ "asn1": "0.1.11",
+ "assert-plus": "0.1.5",
+ "ctype": "0.5.3"
+ }
+ },
+ "ical": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/ical/-/ical-0.3.1.tgz",
+ "integrity": "sha1-jd3ihT5eT8O48Pm0pCHZRIOBXjo=",
+ "requires": {
+ "request": "2.40.0",
+ "rrule": "2.0.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.3.tgz",
+ "integrity": "sha1-nniHeTt2nMaV6yLSVGpP0tebeh4="
+ },
+ "image-size": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
+ "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
+ "optional": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "optional": true
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "optional": true
+ },
+ "js-yaml": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-1.0.3.tgz",
+ "integrity": "sha1-7GGXYP/IrlAcPWJnPYdOK58HQio=",
+ "requires": {
+ "argparse": "0.1.16"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "optional": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+ "optional": true
+ },
+ "json-stable-stringify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
+ "optional": true,
+ "requires": {
+ "jsonify": "0.0.0"
+ }
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
+ "optional": true
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "optional": true
+ }
+ }
+ },
+ "knox": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/knox/-/knox-0.9.2.tgz",
+ "integrity": "sha1-NzZZNmniTwJP2vcjtqHcSv2DmnE=",
+ "requires": {
+ "debug": "1.0.2",
+ "mime": "1.2.11",
+ "once": "1.4.0",
+ "stream-counter": "1.0.0",
+ "xml2js": "0.4.19"
+ },
+ "dependencies": {
+ "stream-counter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz",
+ "integrity": "sha1-kc8lac5NxQYf6816yyY5SloRR1E="
+ }
+ }
+ },
+ "less": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/less/-/less-2.7.3.tgz",
+ "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==",
+ "requires": {
+ "errno": "0.1.4",
+ "graceful-fs": "4.1.11",
+ "image-size": "0.5.5",
+ "mime": "1.2.11",
+ "mkdirp": "0.5.1",
+ "promise": "7.3.1",
+ "request": "2.81.0",
+ "source-map": "0.5.7"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
+ "optional": true
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
+ "optional": true
+ },
+ "boom": {
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
+ "requires": {
+ "delayed-stream": "1.0.0"
+ }
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "optional": true,
+ "requires": {
+ "boom": "2.10.1"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "optional": true
+ },
+ "form-data": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
+ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
+ "optional": true,
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.5",
+ "mime-types": "2.1.17"
+ }
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "optional": true,
+ "requires": {
+ "boom": "2.10.1",
+ "cryptiles": "2.0.5",
+ "hoek": "2.16.3",
+ "sntp": "1.0.9"
+ }
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+ "optional": true,
+ "requires": {
+ "assert-plus": "0.2.0",
+ "jsprim": "1.4.1",
+ "sshpk": "1.13.1"
+ }
+ },
+ "mime-types": {
+ "version": "2.1.17",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
+ "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
+ "requires": {
+ "mime-db": "1.30.0"
+ }
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
+ "optional": true
+ },
+ "qs": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
+ "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
+ "optional": true
+ },
+ "request": {
+ "version": "2.81.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
+ "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
+ "optional": true,
+ "requires": {
+ "aws-sign2": "0.6.0",
+ "aws4": "1.6.0",
+ "caseless": "0.12.0",
+ "combined-stream": "1.0.5",
+ "extend": "3.0.1",
+ "forever-agent": "0.6.1",
+ "form-data": "2.1.4",
+ "har-validator": "4.2.1",
+ "hawk": "3.1.3",
+ "http-signature": "1.1.1",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.17",
+ "oauth-sign": "0.8.2",
+ "performance-now": "0.2.0",
+ "qs": "6.4.0",
+ "safe-buffer": "5.1.1",
+ "stringstream": "0.0.5",
+ "tough-cookie": "2.3.3",
+ "tunnel-agent": "0.6.0",
+ "uuid": "3.1.0"
+ }
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "optional": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "optional": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "uuid": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
+ "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==",
+ "optional": true
+ }
+ }
+ },
+ "marked": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz",
+ "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc="
+ },
+ "media-typer": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.2.0.tgz",
+ "integrity": "sha1-2KBlITrf6qLnYyGitt2jb/YzWYQ="
+ },
+ "method-override": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.0.2.tgz",
+ "integrity": "sha1-AFMSeMeXiWQL8n6X4mo6Wh98ynM=",
+ "requires": {
+ "methods": "1.0.1",
+ "parseurl": "1.0.1",
+ "vary": "0.1.0"
+ },
+ "dependencies": {
+ "vary": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-0.1.0.tgz",
+ "integrity": "sha1-3wlFiZ6TwMxb0YzIMh2dIedPYXY="
+ }
+ }
+ },
+ "methods": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.0.1.tgz",
+ "integrity": "sha1-dbyRlD3/19oDfPPusO1zoAN80Us="
+ },
+ "mime": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
+ "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA="
+ },
+ "mime-db": {
+ "version": "1.30.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
+ "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE="
+ },
+ "mime-types": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz",
+ "integrity": "sha1-mVrhOSq4r/y/yyZB3QVOlDwNXc4="
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "morgan": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.1.1.tgz",
+ "integrity": "sha1-zeRdLoB+vMQ5dFhG6oA5LmkJgUY=",
+ "requires": {
+ "bytes": "1.0.0"
+ }
+ },
+ "ms": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz",
+ "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw="
+ },
+ "multiparty": {
+ "version": "3.2.9",
+ "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-3.2.9.tgz",
+ "integrity": "sha1-xzNz6pwBLnd2zlvEDJNiZLa6LB4=",
+ "requires": {
+ "readable-stream": "1.1.14",
+ "stream-counter": "0.2.0"
+ }
+ },
+ "mustache": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/mustache/-/mustache-0.7.3.tgz",
+ "integrity": "sha1-JI1o0LEFA5eEj6Y0wkRsGPMEkOk="
+ },
+ "mz": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/mz/-/mz-1.3.0.tgz",
+ "integrity": "sha1-BvCT/dmVagbTfhsegTROJ0eMQvA=",
+ "requires": {
+ "native-or-bluebird": "1.1.2",
+ "thenify": "3.3.0",
+ "thenify-all": "1.6.0"
+ }
+ },
+ "native-or-bluebird": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/native-or-bluebird/-/native-or-bluebird-1.1.2.tgz",
+ "integrity": "sha1-OSHhECMtHreQ89rGG7NwUxx9NW4="
+ },
+ "negotiator": {
+ "version": "0.4.7",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.7.tgz",
+ "integrity": "sha1-pBYPcXfsgGc4Yx0NMFIyXaQqvcg="
+ },
+ "node-uuid": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz",
+ "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc="
+ },
+ "oauth-sign": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz",
+ "integrity": "sha1-y1QPk7srIqfVlBaRoojWDo6pOG4=",
+ "optional": true
+ },
+ "on-headers": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-0.0.0.tgz",
+ "integrity": "sha1-7igX+DRDJXhc2cLfKyQrvBfK9MQ="
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "parseurl": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.0.1.tgz",
+ "integrity": "sha1-Llfc5u/dN8NRhwEDCUTCK/OIt7Q="
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "pause": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
+ "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10="
+ },
+ "performance-now": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
+ "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=",
+ "optional": true
+ },
+ "promise": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "optional": true,
+ "requires": {
+ "asap": "2.0.6"
+ }
+ },
+ "prr": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz",
+ "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=",
+ "optional": true
+ },
+ "punch": {
+ "version": "0.5.46",
+ "resolved": "https://registry.npmjs.org/punch/-/punch-0.5.46.tgz",
+ "integrity": "sha1-E62rCOVSaqoNB9hM8jI2y3Qs6qs=",
+ "requires": {
+ "coffee-script": "1.12.7",
+ "connect": "2.21.1",
+ "cssmin": "0.4.3",
+ "fresh": "0.5.2",
+ "fstream": "1.0.11",
+ "http-accept": "0.1.6",
+ "knox": "0.9.2",
+ "less": "2.7.3",
+ "marked": "0.3.6",
+ "mime": "1.2.11",
+ "mustache": "0.7.3",
+ "uglify-js": "3.1.6",
+ "underscore": "1.8.3"
+ }
+ },
+ "punch-blog-content-handler": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/punch-blog-content-handler/-/punch-blog-content-handler-0.0.9.tgz",
+ "integrity": "sha1-w9rQM+NGxxNHvIp+p/V9BcTYDJs=",
+ "requires": {
+ "js-yaml": "1.0.3",
+ "punch": "0.5.46",
+ "underscore": "1.8.3"
+ }
+ },
+ "punch-current-page-helper": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/punch-current-page-helper/-/punch-current-page-helper-0.0.3.tgz",
+ "integrity": "sha1-WJOR/I28Cji+gczpLzausJS+1cU=",
+ "requires": {
+ "punch": "0.5.46"
+ }
+ },
+ "punch-sitemap-generator": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/punch-sitemap-generator/-/punch-sitemap-generator-0.0.5.tgz",
+ "integrity": "sha1-1fqw73+IoUFVF2DoLZzuEBfFbjM=",
+ "requires": {
+ "punch": "0.5.46"
+ }
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "optional": true
+ },
+ "qs": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-1.0.2.tgz",
+ "integrity": "sha1-UKk+K1r2aRwxvOpdrnjubqGQN2g="
+ },
+ "range-parser": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz",
+ "integrity": "sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU="
+ },
+ "raw-body": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.2.2.tgz",
+ "integrity": "sha1-DGjh7ijP7X26SCIjSuxgeEYcvB8=",
+ "requires": {
+ "bytes": "1.0.0",
+ "iconv-lite": "0.4.3"
+ }
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "0.0.1",
+ "string_decoder": "0.10.31"
+ }
+ },
+ "request": {
+ "version": "2.40.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.40.0.tgz",
+ "integrity": "sha1-TdZw9pbx5uhC5mtLXoOTAaub62c=",
+ "requires": {
+ "aws-sign2": "0.5.0",
+ "forever-agent": "0.5.2",
+ "form-data": "0.1.4",
+ "hawk": "1.1.1",
+ "http-signature": "0.10.1",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "1.0.2",
+ "node-uuid": "1.4.8",
+ "oauth-sign": "0.3.0",
+ "qs": "1.0.2",
+ "stringstream": "0.0.5",
+ "tough-cookie": "2.3.3",
+ "tunnel-agent": "0.4.3"
+ }
+ },
+ "response-time": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/response-time/-/response-time-2.0.0.tgz",
+ "integrity": "sha1-Zcs5/VDeL0/9vdKF8YVZZr1vyzY=",
+ "requires": {
+ "on-headers": "0.0.0"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
+ "requires": {
+ "glob": "7.1.2"
+ }
+ },
+ "rndm": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz",
+ "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w="
+ },
+ "rrule": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/rrule/-/rrule-2.0.0.tgz",
+ "integrity": "sha1-xUp1/8iGcd1y/kWVVqa89s8s8m4=",
+ "requires": {
+ "underscore": "1.8.3"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ },
+ "scmp": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/scmp/-/scmp-0.0.3.tgz",
+ "integrity": "sha1-NkjfLXKUZB5/eGc//CloHZutkHM="
+ },
+ "send": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.4.3.tgz",
+ "integrity": "sha1-lieyO3cH+/Y3ODHKxXkzMLWUtkA=",
+ "requires": {
+ "debug": "1.0.2",
+ "escape-html": "1.0.1",
+ "finished": "1.2.2",
+ "fresh": "0.2.2",
+ "mime": "1.2.11",
+ "range-parser": "1.0.3"
+ },
+ "dependencies": {
+ "fresh": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz",
+ "integrity": "sha1-lzHc9WeMf660T7kDxPct9VGH+nc="
+ }
+ }
+ },
+ "serve-favicon": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.0.1.tgz",
+ "integrity": "sha1-SCaXXZ8XPKOkFY6WmBYfdd7Hr+w=",
+ "requires": {
+ "fresh": "0.2.2"
+ },
+ "dependencies": {
+ "fresh": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz",
+ "integrity": "sha1-lzHc9WeMf660T7kDxPct9VGH+nc="
+ }
+ }
+ },
+ "serve-index": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.1.6.tgz",
+ "integrity": "sha1-t1gxj+eBYoOD9mrIDdRHcS6neB8=",
+ "requires": {
+ "accepts": "1.0.7",
+ "batch": "0.5.1",
+ "parseurl": "1.3.2"
+ },
+ "dependencies": {
+ "parseurl": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
+ "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.2.3.tgz",
+ "integrity": "sha1-k87Lw0Dweey4WJKB0dwxwmwM0Vg=",
+ "requires": {
+ "escape-html": "1.0.1",
+ "parseurl": "1.0.1",
+ "send": "0.4.3"
+ }
+ },
+ "sntp": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz",
+ "integrity": "sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA=",
+ "optional": true,
+ "requires": {
+ "hoek": "0.9.1"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "optional": true
+ },
+ "sshpk": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
+ "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
+ "optional": true,
+ "requires": {
+ "asn1": "0.2.3",
+ "assert-plus": "1.0.0",
+ "bcrypt-pbkdf": "1.0.1",
+ "dashdash": "1.14.1",
+ "ecc-jsbn": "0.1.1",
+ "getpass": "0.1.7",
+ "jsbn": "0.1.1",
+ "tweetnacl": "0.14.5"
+ },
+ "dependencies": {
+ "asn1": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
+ "optional": true
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "optional": true
+ }
+ }
+ },
+ "stream-counter": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz",
+ "integrity": "sha1-3tJmVWMZyLDiIoErnPOyb6fZR94=",
+ "requires": {
+ "readable-stream": "1.1.14"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
+ "optional": true
+ },
+ "thenify": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz",
+ "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=",
+ "requires": {
+ "any-promise": "1.3.0"
+ }
+ },
+ "thenify-all": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=",
+ "requires": {
+ "thenify": "3.3.0"
+ }
+ },
+ "tough-cookie": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
+ "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
+ "optional": true,
+ "requires": {
+ "punycode": "1.4.1"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
+ "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
+ "optional": true
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "optional": true
+ },
+ "type-is": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.3.2.tgz",
+ "integrity": "sha1-TypdxYd1yhYwJQr8cYb4s2MJ0bs=",
+ "requires": {
+ "media-typer": "0.2.0",
+ "mime-types": "1.0.2"
+ }
+ },
+ "uglify-js": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.6.tgz",
+ "integrity": "sha512-/rseyxEKEVMBo8279lqpoJgD6C/i/CIi+9TJDvWmb+Xo6mqMKwjA8Io3IMHlcXQzj99feR6zrN8m3wqqvm/nYA==",
+ "requires": {
+ "commander": "2.11.0",
+ "source-map": "0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "uid-safe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-1.1.0.tgz",
+ "integrity": "sha1-WNbF2r+N+9jVKDSDmAbAP9YUMjI=",
+ "requires": {
+ "base64-url": "1.2.1",
+ "native-or-bluebird": "1.1.2"
+ },
+ "dependencies": {
+ "base64-url": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz",
+ "integrity": "sha1-GZ/WYXAqDnt9yubgaYuwicUvbXg="
+ }
+ }
+ },
+ "underscore": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
+ "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI="
+ },
+ "underscore.string": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
+ "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs="
+ },
+ "utils-merge": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
+ "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg="
+ },
+ "vary": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz",
+ "integrity": "sha1-meSYFWaihhGN+yuBc1ffeZM3bRA="
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "1.3.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "optional": true
+ }
+ }
+ },
+ "vhost": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/vhost/-/vhost-2.0.0.tgz",
+ "integrity": "sha1-HiZ3C9D86GxAlFWR5vKExokXkeI="
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "xml2js": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
+ "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
+ "requires": {
+ "sax": "1.2.4",
+ "xmlbuilder": "9.0.4"
+ }
+ },
+ "xmlbuilder": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.4.tgz",
+ "integrity": "sha1-UZy0ymhtAFqEINNJbz8MruzKWA8="
+ }
+ }
+}
diff --git a/package.json b/package.json
index 436c9a97..a230041b 100644
--- a/package.json
+++ b/package.json
@@ -5,21 +5,25 @@
"author": "HackerspaceSG",
"description": "hackerspace website",
"contributors": [
- "Chinmay Pendharkar Sorry, but the page you were trying to view does not exist. It looks like this was the result of either:
Not found :(