├── metamail-ui
├── .gitignore
├── Procfile
├── node_modules
│ ├── ejs
│ │ ├── .gitmodules
│ │ ├── test
│ │ │ └── fixtures
│ │ │ │ ├── backslash.ejs
│ │ │ │ ├── backslash.html
│ │ │ │ ├── para.ejs
│ │ │ │ ├── user.ejs
│ │ │ │ ├── pet.ejs
│ │ │ │ ├── double-quote.html
│ │ │ │ ├── single-quote.html
│ │ │ │ ├── single-quote.ejs
│ │ │ │ ├── style.css
│ │ │ │ ├── includes
│ │ │ │ ├── menu-item.ejs
│ │ │ │ └── menu
│ │ │ │ │ └── item.ejs
│ │ │ │ ├── double-quote.ejs
│ │ │ │ ├── messed.html
│ │ │ │ ├── include.css.html
│ │ │ │ ├── include.css.ejs
│ │ │ │ ├── messed.ejs
│ │ │ │ ├── error.ejs
│ │ │ │ ├── no.newlines.html
│ │ │ │ ├── include.ejs
│ │ │ │ ├── menu.html
│ │ │ │ ├── include.html
│ │ │ │ ├── newlines.ejs
│ │ │ │ ├── no.newlines.ejs
│ │ │ │ ├── newlines.html
│ │ │ │ ├── error.out
│ │ │ │ └── menu.ejs
│ │ ├── index.js
│ │ ├── .npmignore
│ │ ├── examples
│ │ │ ├── list.ejs
│ │ │ ├── list.js
│ │ │ └── client.html
│ │ ├── benchmark.js
│ │ ├── package.json
│ │ ├── Makefile
│ │ ├── lib
│ │ │ └── utils.js
│ │ └── History.md
│ ├── .bin
│ │ └── express
│ └── express
│ │ ├── testing
│ │ ├── views
│ │ │ ├── page.html
│ │ │ ├── user
│ │ │ │ ├── index.jade
│ │ │ │ └── list.jade
│ │ │ ├── test.md
│ │ │ └── page.jade
│ │ ├── foo
│ │ │ ├── views
│ │ │ │ ├── index.jade
│ │ │ │ └── layout.jade
│ │ │ ├── public
│ │ │ │ └── stylesheets
│ │ │ │ │ └── style.css
│ │ │ ├── package.json
│ │ │ ├── routes
│ │ │ │ └── index.js
│ │ │ └── app.js
│ │ └── index.js
│ │ ├── node_modules
│ │ ├── qs
│ │ │ ├── .npmignore
│ │ │ ├── test
│ │ │ │ └── mocha.opts
│ │ │ ├── index.js
│ │ │ ├── .travis.yml
│ │ │ ├── Makefile
│ │ │ ├── .gitmodules
│ │ │ ├── benchmark.js
│ │ │ ├── package.json
│ │ │ ├── examples.js
│ │ │ ├── History.md
│ │ │ └── Readme.md
│ │ ├── mkdirp
│ │ │ ├── .npmignore
│ │ │ ├── .gitignore.orig
│ │ │ ├── .gitignore.rej
│ │ │ ├── examples
│ │ │ │ ├── pow.js
│ │ │ │ ├── pow.js.orig
│ │ │ │ └── pow.js.rej
│ │ │ ├── package.json
│ │ │ ├── test
│ │ │ │ ├── sync.js
│ │ │ │ ├── clobber.js
│ │ │ │ ├── umask_sync.js
│ │ │ │ ├── perm.js
│ │ │ │ ├── mkdirp.js
│ │ │ │ ├── umask.js
│ │ │ │ ├── rel.js
│ │ │ │ ├── chmod.js
│ │ │ │ ├── perm_sync.js
│ │ │ │ └── race.js
│ │ │ ├── README.markdown
│ │ │ ├── LICENSE
│ │ │ └── index.js
│ │ ├── connect
│ │ │ ├── index.js
│ │ │ ├── node_modules
│ │ │ │ └── formidable
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── test
│ │ │ │ │ ├── fixture
│ │ │ │ │ │ ├── file
│ │ │ │ │ │ │ ├── plain.txt
│ │ │ │ │ │ │ └── funkyfilename.txt
│ │ │ │ │ │ ├── js
│ │ │ │ │ │ │ ├── no-filename.js
│ │ │ │ │ │ │ └── special-chars-in-filename.js
│ │ │ │ │ │ ├── http
│ │ │ │ │ │ │ └── special-chars-in-filename
│ │ │ │ │ │ │ │ └── info.md
│ │ │ │ │ │ └── multipart.js
│ │ │ │ │ ├── run.js
│ │ │ │ │ ├── common.js
│ │ │ │ │ ├── legacy
│ │ │ │ │ │ ├── common.js
│ │ │ │ │ │ ├── simple
│ │ │ │ │ │ │ ├── test-querystring-parser.js
│ │ │ │ │ │ │ ├── test-multipart-parser.js
│ │ │ │ │ │ │ └── test-file.js
│ │ │ │ │ │ ├── integration
│ │ │ │ │ │ │ └── test-multipart-parser.js
│ │ │ │ │ │ └── system
│ │ │ │ │ │ │ └── test-multi-video-upload.js
│ │ │ │ │ ├── unit
│ │ │ │ │ │ └── test-incoming-form.js
│ │ │ │ │ └── integration
│ │ │ │ │ │ └── test-fixtures.js
│ │ │ │ │ ├── .npmignore
│ │ │ │ │ ├── node-gently
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── lib
│ │ │ │ │ │ └── gently
│ │ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── test
│ │ │ │ │ │ └── common.js
│ │ │ │ │ ├── package.json
│ │ │ │ │ └── example
│ │ │ │ │ │ ├── event_emitter.js
│ │ │ │ │ │ └── dog.js
│ │ │ │ │ ├── .travis.yml
│ │ │ │ │ ├── lib
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── util.js
│ │ │ │ │ ├── querystring_parser.js
│ │ │ │ │ └── file.js
│ │ │ │ │ ├── TODO
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── package.json
│ │ │ │ │ ├── example
│ │ │ │ │ ├── post.js
│ │ │ │ │ └── upload.js
│ │ │ │ │ ├── tool
│ │ │ │ │ └── record.js
│ │ │ │ │ └── benchmark
│ │ │ │ │ └── bench-multipart-parser.js
│ │ │ ├── lib
│ │ │ │ ├── public
│ │ │ │ │ ├── favicon.ico
│ │ │ │ │ ├── icons
│ │ │ │ │ │ ├── page.png
│ │ │ │ │ │ ├── page_add.png
│ │ │ │ │ │ ├── page_code.png
│ │ │ │ │ │ ├── page_copy.png
│ │ │ │ │ │ ├── page_edit.png
│ │ │ │ │ │ ├── page_find.png
│ │ │ │ │ │ ├── page_gear.png
│ │ │ │ │ │ ├── page_go.png
│ │ │ │ │ │ ├── page_key.png
│ │ │ │ │ │ ├── page_link.png
│ │ │ │ │ │ ├── page_red.png
│ │ │ │ │ │ ├── page_save.png
│ │ │ │ │ │ ├── page_word.png
│ │ │ │ │ │ ├── page_attach.png
│ │ │ │ │ │ ├── page_delete.png
│ │ │ │ │ │ ├── page_error.png
│ │ │ │ │ │ ├── page_excel.png
│ │ │ │ │ │ ├── page_green.png
│ │ │ │ │ │ ├── page_paste.png
│ │ │ │ │ │ ├── page_white.png
│ │ │ │ │ │ ├── page_world.png
│ │ │ │ │ │ ├── page_lightning.png
│ │ │ │ │ │ ├── page_refresh.png
│ │ │ │ │ │ ├── page_white_add.png
│ │ │ │ │ │ ├── page_white_c.png
│ │ │ │ │ │ ├── page_white_cd.png
│ │ │ │ │ │ ├── page_white_cup.png
│ │ │ │ │ │ ├── page_white_dvd.png
│ │ │ │ │ │ ├── page_white_get.png
│ │ │ │ │ │ ├── page_white_go.png
│ │ │ │ │ │ ├── page_white_h.png
│ │ │ │ │ │ ├── page_white_key.png
│ │ │ │ │ │ ├── page_white_php.png
│ │ │ │ │ │ ├── page_white_put.png
│ │ │ │ │ │ ├── page_white_tux.png
│ │ │ │ │ │ ├── page_white_zip.png
│ │ │ │ │ │ ├── page_paintbrush.png
│ │ │ │ │ │ ├── page_white_code.png
│ │ │ │ │ │ ├── page_white_copy.png
│ │ │ │ │ │ ├── page_white_edit.png
│ │ │ │ │ │ ├── page_white_error.png
│ │ │ │ │ │ ├── page_white_excel.png
│ │ │ │ │ │ ├── page_white_find.png
│ │ │ │ │ │ ├── page_white_flash.png
│ │ │ │ │ │ ├── page_white_gear.png
│ │ │ │ │ │ ├── page_white_link.png
│ │ │ │ │ │ ├── page_white_medal.png
│ │ │ │ │ │ ├── page_white_paint.png
│ │ │ │ │ │ ├── page_white_paste.png
│ │ │ │ │ │ ├── page_white_ruby.png
│ │ │ │ │ │ ├── page_white_stack.png
│ │ │ │ │ │ ├── page_white_star.png
│ │ │ │ │ │ ├── page_white_text.png
│ │ │ │ │ │ ├── page_white_width.png
│ │ │ │ │ │ ├── page_white_word.png
│ │ │ │ │ │ ├── page_white_world.png
│ │ │ │ │ │ ├── page_white_acrobat.png
│ │ │ │ │ │ ├── page_white_camera.png
│ │ │ │ │ │ ├── page_white_code_red.png
│ │ │ │ │ │ ├── page_white_csharp.png
│ │ │ │ │ │ ├── page_white_database.png
│ │ │ │ │ │ ├── page_white_delete.png
│ │ │ │ │ │ ├── page_white_freehand.png
│ │ │ │ │ │ ├── page_white_magnify.png
│ │ │ │ │ │ ├── page_white_office.png
│ │ │ │ │ │ ├── page_white_picture.png
│ │ │ │ │ │ ├── page_white_swoosh.png
│ │ │ │ │ │ ├── page_white_vector.png
│ │ │ │ │ │ ├── page_white_wrench.png
│ │ │ │ │ │ ├── page_white_coldfusion.png
│ │ │ │ │ │ ├── page_white_compressed.png
│ │ │ │ │ │ ├── page_white_cplusplus.png
│ │ │ │ │ │ ├── page_white_horizontal.png
│ │ │ │ │ │ ├── page_white_lightning.png
│ │ │ │ │ │ ├── page_white_paintbrush.png
│ │ │ │ │ │ ├── page_white_powerpoint.png
│ │ │ │ │ │ ├── page_white_text_width.png
│ │ │ │ │ │ ├── page_white_actionscript.png
│ │ │ │ │ │ └── page_white_visualstudio.png
│ │ │ │ │ ├── error.html
│ │ │ │ │ └── directory.html
│ │ │ │ ├── middleware
│ │ │ │ │ ├── responseTime.js
│ │ │ │ │ ├── query.js
│ │ │ │ │ ├── cookieParser.js
│ │ │ │ │ ├── methodOverride.js
│ │ │ │ │ ├── vhost.js
│ │ │ │ │ ├── limit.js
│ │ │ │ │ ├── favicon.js
│ │ │ │ │ ├── session
│ │ │ │ │ │ ├── store.js
│ │ │ │ │ │ └── cookie.js
│ │ │ │ │ ├── profiler.js
│ │ │ │ │ └── basicAuth.js
│ │ │ │ ├── https.js
│ │ │ │ ├── cache.js
│ │ │ │ ├── patch.js
│ │ │ │ ├── index.js
│ │ │ │ └── connect.js
│ │ │ ├── .npmignore
│ │ │ ├── test.js
│ │ │ ├── package.json
│ │ │ └── LICENSE
│ │ └── mime
│ │ │ ├── package.json
│ │ │ ├── LICENSE
│ │ │ ├── types
│ │ │ └── node.types
│ │ │ ├── README.md
│ │ │ ├── test.js
│ │ │ └── mime.js
│ │ ├── index.js
│ │ ├── .npmignore
│ │ ├── Makefile
│ │ ├── lib
│ │ ├── view
│ │ │ └── partial.js
│ │ ├── router
│ │ │ ├── collection.js
│ │ │ ├── methods.js
│ │ │ └── route.js
│ │ ├── https.js
│ │ └── express.js
│ │ ├── LICENSE
│ │ └── package.json
├── views
│ ├── .scatterchart
│ │ ├── main.ejs
│ │ ├── index.ejs
│ │ └── scatterchart.js
│ ├── index.ejs
│ └── graphics
│ │ └── bar.ejs
├── public
│ ├── img
│ │ └── igalia-logo-mini.png
│ ├── csv
│ │ ├── msg-by-year.csv
│ │ ├── msg-by-day-week.csv
│ │ ├── msg-by-month-2001.csv
│ │ ├── msg-by-size.csv
│ │ ├── msg-by-hour-day.csv
│ │ ├── msg-thread-length.csv
│ │ ├── msg-by-month.csv
│ │ ├── msg-received.csv
│ │ └── msg-sent.csv
│ └── stylesheets
│ │ ├── style.css
│ │ ├── histogram.css
│ │ ├── bar.css
│ │ └── base.css
├── package.json
├── app.js
└── routes
│ └── index.js
├── enron-importer
├── .gitignore
├── .settings
│ ├── org.eclipse.m2e.core.prefs
│ ├── org.eclipse.core.resources.prefs
│ └── org.eclipse.jdt.core.prefs
├── .classpath
├── .project
├── src
│ └── test
│ │ └── java
│ │ └── com
│ │ └── igalia
│ │ └── mail_importer
│ │ └── AppTest.java
├── README.rst
└── pom.xml
├── mail-analyzer
├── .gitignore
├── src
│ ├── main
│ │ └── java
│ │ │ └── com
│ │ │ └── igalia
│ │ │ └── metamail
│ │ │ ├── utils
│ │ │ ├── DBSetup.java
│ │ │ └── JobRunner.java
│ │ │ └── Main.java
│ └── test
│ │ └── java
│ │ └── com
│ │ └── igalia
│ │ └── AppTest.java
├── benchmark
│ ├── bySize.csv
│ ├── msgReceived.csv
│ ├── msgSent.csv
│ ├── byTimePeriod.csv
│ └── byThreadLength.csv
└── README.md
├── AUTHORS
├── CHANGELOG
└── BENCHMARK.rst
/metamail-ui/.gitignore:
--------------------------------------------------------------------------------
1 | *.swp
2 |
--------------------------------------------------------------------------------
/metamail-ui/Procfile:
--------------------------------------------------------------------------------
1 | web: node app.js
2 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/.gitmodules:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/metamail-ui/views/.scatterchart/main.ejs:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/enron-importer/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | data/
3 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/.bin/express:
--------------------------------------------------------------------------------
1 | ../express/bin/express
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/backslash.ejs:
--------------------------------------------------------------------------------
1 | \foo
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/backslash.html:
--------------------------------------------------------------------------------
1 | \foo
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/para.ejs:
--------------------------------------------------------------------------------
1 |
hey
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/user.ejs:
--------------------------------------------------------------------------------
1 | {= name}
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/testing/views/page.html:
--------------------------------------------------------------------------------
1 | p register test
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/testing/views/user/index.jade:
--------------------------------------------------------------------------------
1 | p user page
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/pet.ejs:
--------------------------------------------------------------------------------
1 | <%= pet.name %>
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/qs/.npmignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/testing/views/test.md:
--------------------------------------------------------------------------------
1 | testing _some_ markdown
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/testing/views/user/list.jade:
--------------------------------------------------------------------------------
1 | p user list page
--------------------------------------------------------------------------------
/mail-analyzer/.gitignore:
--------------------------------------------------------------------------------
1 | .classpath
2 | .project
3 | .settings/
4 | target/
5 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/index.js:
--------------------------------------------------------------------------------
1 |
2 | module.exports = require('./lib/ejs');
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/double-quote.html:
--------------------------------------------------------------------------------
1 | loki's "wheelchair"
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/single-quote.html:
--------------------------------------------------------------------------------
1 | loki's wheelchair
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/index.js:
--------------------------------------------------------------------------------
1 |
2 | module.exports = require('./lib/express');
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/testing/views/page.jade:
--------------------------------------------------------------------------------
1 | html
2 | body
3 | h1 test
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/single-quote.ejs:
--------------------------------------------------------------------------------
1 | <%= 'loki' %>'s wheelchair
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/style.css:
--------------------------------------------------------------------------------
1 | body {
2 | foo: '<%= value %>';
3 | }
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/includes/menu-item.ejs:
--------------------------------------------------------------------------------
1 | <% include menu/item %>
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/.npmignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | npm-debug.log
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/testing/foo/views/index.jade:
--------------------------------------------------------------------------------
1 | h1= title
2 | p Welcome to #{title}
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/double-quote.ejs:
--------------------------------------------------------------------------------
1 | <%= "lo" + 'ki' %>'s "wheelchair"
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/includes/menu/item.ejs:
--------------------------------------------------------------------------------
1 | <%= title %>
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/messed.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/.gitignore.orig:
--------------------------------------------------------------------------------
1 | node_modules/
2 | npm-debug.log
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/qs/test/mocha.opts:
--------------------------------------------------------------------------------
1 | --require should
2 | --ui exports
3 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/include.css.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/qs/index.js:
--------------------------------------------------------------------------------
1 |
2 | module.exports = require('./lib/querystring');
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/index.js:
--------------------------------------------------------------------------------
1 |
2 | module.exports = require('./lib/connect');
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/.npmignore:
--------------------------------------------------------------------------------
1 | # ignore any vim files:
2 | *.sw[a-z]
3 | vim/.netrwhist
4 | node_modules
5 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/qs/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - 0.6
4 | - 0.4
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/include.css.ejs:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/qs/Makefile:
--------------------------------------------------------------------------------
1 |
2 | test:
3 | @./node_modules/.bin/mocha
4 |
5 | .PHONY: test
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/messed.ejs:
--------------------------------------------------------------------------------
1 | <%users.forEach(function(user){%><%=user.name%> <%})%>
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/error.ejs:
--------------------------------------------------------------------------------
1 |
2 | <% if (users) { %>
3 | Has users
4 | <% } %>
5 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/.npmignore:
--------------------------------------------------------------------------------
1 | .git*
2 | docs/
3 | examples/
4 | support/
5 | test/
6 | testing.js
7 | .DS_Store
8 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/index.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./lib/formidable');
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/file/plain.txt:
--------------------------------------------------------------------------------
1 | I am a plain text file
2 |
--------------------------------------------------------------------------------
/AUTHORS:
--------------------------------------------------------------------------------
1 | # Authors ordered by first contribution.
2 | Diego Pino
3 | Dustin Saunders
4 |
--------------------------------------------------------------------------------
/CHANGELOG:
--------------------------------------------------------------------------------
1 | CHANGELOG
2 |
3 | 2015-11-10: Updated enron-importer with dependency and API updates
4 |
5 | 2012-08-01: Initial release
6 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/.npmignore:
--------------------------------------------------------------------------------
1 | /test/tmp/
2 | *.upload
3 | *.un~
4 | *.http
5 |
--------------------------------------------------------------------------------
/metamail-ui/public/img/igalia-logo-mini.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/public/img/igalia-logo-mini.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/no.newlines.html:
--------------------------------------------------------------------------------
1 |
2 | tobi
3 | loki
4 | jane
5 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/node-gently/index.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./lib/gently');
--------------------------------------------------------------------------------
/metamail-ui/public/csv/msg-by-year.csv:
--------------------------------------------------------------------------------
1 | label,value
2 | 1997,437
3 | 1998,177
4 | 1999,11144
5 | 2000,196094
6 | 2001,272956
7 | 2002,36011
8 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - 0.4
4 | - 0.6
5 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/node-gently/lib/gently/index.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./gently');
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/test/run.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | require('urun')(__dirname)
3 |
--------------------------------------------------------------------------------
/enron-importer/.settings/org.eclipse.m2e.core.prefs:
--------------------------------------------------------------------------------
1 | activeProfiles=
2 | eclipse.preferences.version=1
3 | resolveWorkspaceProjects=true
4 | version=1
5 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/include.ejs:
--------------------------------------------------------------------------------
1 |
2 | <% pets.forEach(function(pet){ %>
3 | <% include pet %>
4 | <% }) %>
5 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/file/funkyfilename.txt:
--------------------------------------------------------------------------------
1 | I am a text file with a funky name!
2 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/menu.html:
--------------------------------------------------------------------------------
1 | Foo
2 | Bar
3 | Baz
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/.gitignore.rej:
--------------------------------------------------------------------------------
1 | --- /dev/null
2 | +++ .gitignore
3 | @@ -0,0 +1,2 @@
4 | +node_modules/
5 | +npm-debug.log
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/include.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | tobi
4 |
5 | loki
6 |
7 | jane
8 |
9 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/newlines.ejs:
--------------------------------------------------------------------------------
1 |
2 | <% users.forEach(function(user){ %>
3 | <%= user.name %>
4 | <% }) %>
5 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/no.newlines.ejs:
--------------------------------------------------------------------------------
1 |
2 | <% users.forEach(function(user){ -%>
3 | <%= user.name %>
4 | <% }) -%>
5 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/newlines.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | tobi
4 |
5 | loki
6 |
7 | jane
8 |
9 |
--------------------------------------------------------------------------------
/metamail-ui/public/stylesheets/style.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding: 50px;
3 | font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
4 | }
5 |
6 | a {
7 | color: #00B7FF;
8 | }
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/node-gently/Makefile:
--------------------------------------------------------------------------------
1 | test:
2 | @find test/simple/test-*.js | xargs -n 1 -t node
3 |
4 | .PHONY: test
--------------------------------------------------------------------------------
/enron-importer/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | encoding//src/main/java=UTF-8
3 | encoding//src/test/java=UTF-8
4 | encoding/=UTF-8
5 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/testing/foo/views/layout.jade:
--------------------------------------------------------------------------------
1 | !!!
2 | html
3 | head
4 | title= title
5 | link(rel='stylesheet', href='/stylesheets/style.css')
6 | body!= body
--------------------------------------------------------------------------------
/metamail-ui/public/csv/msg-by-day-week.csv:
--------------------------------------------------------------------------------
1 | label,value
2 | Sunday,10106
3 | Monday,94382
4 | Tuesday,105763
5 | Wednesday,106812
6 | Thursday,97535
7 | Friday,91445
8 | Saturday,11381
9 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/examples/list.ejs:
--------------------------------------------------------------------------------
1 | <% if (names.length) { %>
2 |
3 | <% names.forEach(function(name){ %>
4 | <%= name %>
5 | <% }) %>
6 |
7 | <% } %>
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/favicon.ico
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page.png
--------------------------------------------------------------------------------
/mail-analyzer/src/main/java/com/igalia/metamail/utils/DBSetup.java:
--------------------------------------------------------------------------------
1 | package com.igalia.metamail.utils;
2 |
3 | public class DBSetup {
4 |
5 | public static final String tablename = "enron";
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/testing/foo/public/stylesheets/style.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding: 50px;
3 | font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
4 | }
5 |
6 | a {
7 | color: #00B7FF;
8 | }
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/.npmignore:
--------------------------------------------------------------------------------
1 | *.markdown
2 | *.md
3 | .git*
4 | Makefile
5 | benchmarks/
6 | docs/
7 | examples/
8 | install.sh
9 | support/
10 | test/
11 | .DS_Store
12 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_add.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_code.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_copy.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_edit.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_find.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_find.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_gear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_gear.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_go.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_go.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_key.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_key.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_link.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_link.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_red.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_save.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_word.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_word.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_attach.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_attach.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_delete.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_error.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_excel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_excel.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_green.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_paste.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_paste.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_world.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_world.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/error.out:
--------------------------------------------------------------------------------
1 | ReferenceError: error.ejs:2
2 | 1|
3 | >> 2| <% if (users) { %>
4 | 3| Has users
5 | 4| <% } %>
6 | 5|
7 |
8 | users is not defined
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_lightning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_lightning.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_refresh.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_add.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_c.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_cd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_cd.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_cup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_cup.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_dvd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_dvd.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_get.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_get.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_go.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_go.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_h.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_key.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_key.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_php.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_php.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_put.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_put.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_tux.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_tux.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_zip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_zip.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/js/no-filename.js:
--------------------------------------------------------------------------------
1 | module.exports['generic.http'] = [
2 | {type: 'file', name: 'upload', filename: '', fixture: 'plain.txt'},
3 | ];
4 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_paintbrush.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_paintbrush.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_code.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_copy.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_edit.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_error.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_excel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_excel.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_find.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_find.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_flash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_flash.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_gear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_gear.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_link.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_link.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_medal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_medal.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_paint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_paint.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_paste.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_paste.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_ruby.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_ruby.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_stack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_stack.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_star.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_text.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_width.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_width.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_word.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_word.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_world.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_world.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_acrobat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_acrobat.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_camera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_camera.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_code_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_code_red.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_csharp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_csharp.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_database.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_database.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_delete.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_freehand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_freehand.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_magnify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_magnify.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_office.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_office.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_picture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_picture.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_swoosh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_swoosh.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_vector.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_vector.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_wrench.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_wrench.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/lib/index.js:
--------------------------------------------------------------------------------
1 | var IncomingForm = require('./incoming_form').IncomingForm;
2 | IncomingForm.IncomingForm = IncomingForm;
3 | module.exports = IncomingForm;
4 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/lib/util.js:
--------------------------------------------------------------------------------
1 | // Backwards compatibility ...
2 | try {
3 | module.exports = require('util');
4 | } catch (e) {
5 | module.exports = require('sys');
6 | }
7 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/examples/pow.js:
--------------------------------------------------------------------------------
1 | var mkdirp = require('mkdirp');
2 |
3 | mkdirp('/tmp/foo/bar/baz', function (err) {
4 | if (err) console.error(err)
5 | else console.log('pow!')
6 | });
7 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_coldfusion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_coldfusion.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_compressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_compressed.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_cplusplus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_cplusplus.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_horizontal.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_lightning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_lightning.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_paintbrush.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_paintbrush.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_powerpoint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_powerpoint.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_text_width.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_text_width.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/testing/foo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "application-name"
3 | , "version": "0.0.1"
4 | , "private": true
5 | , "dependencies": {
6 | "express": "2.5.0"
7 | , "jade": ">= 0.0.1"
8 | }
9 | }
--------------------------------------------------------------------------------
/metamail-ui/public/csv/msg-by-month-2001.csv:
--------------------------------------------------------------------------------
1 | label,value
2 | Jan,24013
3 | Feb,23150
4 | Mar,28522
5 | Apr,35645
6 | May,35665
7 | Jun,18890
8 | Jul,10160
9 | Aug,8918
10 | Sep,10890
11 | Oct,37083
12 | Nov,28594
13 | Dec,11426
14 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_actionscript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_actionscript.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_visualstudio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dpino/Metamail/HEAD/metamail-ui/node_modules/express/node_modules/connect/lib/public/icons/page_white_visualstudio.png
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/examples/pow.js.orig:
--------------------------------------------------------------------------------
1 | var mkdirp = require('mkdirp');
2 |
3 | mkdirp('/tmp/foo/bar/baz', 0755, function (err) {
4 | if (err) console.error(err)
5 | else console.log('pow!')
6 | });
7 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/TODO:
--------------------------------------------------------------------------------
1 | - Better bufferMaxSize handling approach
2 | - Add tests for JSON parser pull request and merge it
3 | - Implement QuerystringParser the same way as MultipartParser
4 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/testing/foo/routes/index.js:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | * GET home page.
4 | */
5 |
6 | exports.index = function(req, res){
7 | res.writeHead(200);
8 | req.doesnotexist();
9 | // res.render('index', { title: 'Express' })
10 | };
--------------------------------------------------------------------------------
/metamail-ui/public/stylesheets/histogram.css:
--------------------------------------------------------------------------------
1 | svg {
2 | font: 10px sans-serif;
3 | }
4 |
5 | rect {
6 | fill: steelblue;
7 | }
8 |
9 | .axis path, .axis line {
10 | fill: none;
11 | stroke: #000;
12 | shape-rendering: crispEdges;
13 | }
14 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/Makefile:
--------------------------------------------------------------------------------
1 | SHELL := /bin/bash
2 |
3 | test:
4 | @./test/run.js
5 |
6 | build: npm test
7 |
8 | npm:
9 | npm install .
10 |
11 | clean:
12 | rm test/tmp/*
13 |
14 | .PHONY: test clean build
15 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/qs/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "support/expresso"]
2 | path = support/expresso
3 | url = git://github.com/visionmedia/expresso.git
4 | [submodule "support/should"]
5 | path = support/should
6 | url = git://github.com/visionmedia/should.js.git
7 |
--------------------------------------------------------------------------------
/metamail-ui/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "metamail"
3 | , "version": "0.0.1"
4 | , "private": true
5 | , "dependencies": {
6 | "express": "3.21.2"
7 | , "ejs": ">= 0.0.1"
8 | }
9 | , "engines": {
10 | "node": "0.6.8",
11 | "npm": "1.1.1"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/enron-importer/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
3 | org.eclipse.jdt.core.compiler.compliance=1.5
4 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
5 | org.eclipse.jdt.core.compiler.source=1.5
6 |
--------------------------------------------------------------------------------
/metamail-ui/public/csv/msg-by-size.csv:
--------------------------------------------------------------------------------
1 | label,value
2 | 20,2156
3 | 40,519
4 | 60,321
5 | 80,177
6 | 100,108
7 | 120,67
8 | 140,64
9 | 160,43
10 | 180,16
11 | 200,19
12 | 220,2
13 | 240,5
14 | 260,4
15 | 280,2
16 | 300,1
17 | 320,2
18 | 380,1
19 | 520,2
20 | 800,1
21 | 1320,1
22 | 1600,1
23 | 1640,3
24 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/examples/list.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Module dependencies.
4 | */
5 |
6 | var ejs = require('../')
7 | , fs = require('fs')
8 | , str = fs.readFileSync(__dirname + '/list.ejs', 'utf8');
9 |
10 | var ret = ejs.render(str, {
11 | names: ['foo', 'bar', 'baz']
12 | });
13 |
14 | console.log(ret);
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/test/fixtures/menu.ejs:
--------------------------------------------------------------------------------
1 | <% var url = '/foo' -%>
2 | <% var title = 'Foo' -%>
3 | <% include includes/menu-item -%>
4 |
5 | <% var url = '/bar' -%>
6 | <% var title = 'Bar' -%>
7 | <% include includes/menu-item -%>
8 |
9 | <% var url = '/baz' -%>
10 | <% var title = 'Baz' -%>
11 | <% include includes/menu-item -%>
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/info.md:
--------------------------------------------------------------------------------
1 | * Opera does not allow submitting this file, it shows a warning to the
2 | user that the file could not be found instead. Tested in 9.8, 11.51 on OSX.
3 | Reported to Opera on 08.09.2011 (tracking email DSK-346009@bugs.opera.com).
4 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/node-gently/test/common.js:
--------------------------------------------------------------------------------
1 | var path = require('path')
2 | , sys = require('sys');
3 |
4 | require.paths.unshift(path.dirname(__dirname)+'/lib');
5 |
6 | global.puts = sys.puts;
7 | global.p = function() {sys.error(sys.inspect.apply(null, arguments))};;
8 | global.assert = require('assert');
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/error.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {error}
4 |
5 |
6 |
7 |
8 |
{title}
9 |
500 {error}
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/metamail-ui/public/csv/msg-by-hour-day.csv:
--------------------------------------------------------------------------------
1 | label,value
2 | 0,14706
3 | 1,10950
4 | 2,7046
5 | 3,4877
6 | 4,4420
7 | 5,3600
8 | 6,3486
9 | 7,4029
10 | 8,7318
11 | 9,18276
12 | 10,29166
13 | 11,34286
14 | 12,33563
15 | 13,29351
16 | 14,30385
17 | 15,38760
18 | 16,43415
19 | 17,45162
20 | 18,41652
21 | 19,32227
22 | 20,25005
23 | 21,19558
24 | 22,18612
25 | 23,17574
26 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/test.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Module dependencies.
4 | */
5 |
6 | var connect = require('./');
7 |
8 | var app = connect()
9 | .use(connect.logger('dev'))
10 | .use(function(req, res){
11 | var body = Array(3222).join('hey');
12 | res.setHeader('Content-Length', body.length);
13 | res.end(body);
14 | })
15 | .listen(3000);
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/node-gently/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "gently",
3 | "version": "0.9.2",
4 | "directories": {
5 | "lib": "./lib/gently"
6 | },
7 | "main": "./lib/gently/index",
8 | "dependencies": {},
9 | "devDependencies": {},
10 | "engines": {
11 | "node": "*"
12 | },
13 | "optionalDependencies": {}
14 | }
15 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/benchmark.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | var ejs = require('./lib/ejs'),
4 | str = '<% if (foo) { %><%= foo %>
<% } %>',
5 | times = 50000;
6 |
7 | console.log('rendering ' + times + ' times');
8 |
9 | var start = new Date;
10 | while (times--) {
11 | ejs.render(str, { cache: true, filename: 'test', locals: { foo: 'bar' }});
12 | }
13 |
14 | console.log('took ' + (new Date - start) + 'ms');
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ejs",
3 | "description": "Embedded JavaScript templates",
4 | "version": "0.8.0",
5 | "author": "TJ Holowaychuk ",
6 | "keywords": ["template", "engine", "ejs"],
7 | "devDependencies": {
8 | "mocha": "*",
9 | "should": "*"
10 | },
11 | "main": "./lib/ejs.js",
12 | "repository": "git://github.com/visionmedia/ejs.git"
13 | }
--------------------------------------------------------------------------------
/metamail-ui/public/stylesheets/bar.css:
--------------------------------------------------------------------------------
1 | body {
2 | font: 10px sans-serif;
3 | }
4 |
5 | .bar rect {
6 | fill: steelblue;
7 | }
8 |
9 | .bar text.value {
10 | fill: white;
11 | }
12 |
13 | .axis {
14 | shape-rendering: crispEdges;
15 | }
16 |
17 | .axis path {
18 | fill: none;
19 | }
20 |
21 | .x.axis line {
22 | stroke: #fff;
23 | stroke-opacity: .8;
24 | }
25 |
26 | .y.axis path {
27 | stroke: black;
28 | }
29 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/node-gently/example/event_emitter.js:
--------------------------------------------------------------------------------
1 | require('../test/common');
2 | var gently = new (require('gently'))
3 | , stream = new (require('fs').WriteStream)('my_file.txt');
4 |
5 | gently.expect(stream, 'emit', function(event) {
6 | assert.equal(event, 'open');
7 | });
8 |
9 | gently.expect(stream, 'emit', function(event) {
10 | assert.equal(event, 'drain');
11 | });
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/qs/benchmark.js:
--------------------------------------------------------------------------------
1 |
2 | var qs = require('./');
3 |
4 | var times = 100000
5 | , start = new Date
6 | , n = times;
7 |
8 | console.log('times: %d', times);
9 |
10 | while (n--) qs.parse('foo=bar');
11 | console.log('simple: %dms', new Date - start);
12 |
13 | var start = new Date
14 | , n = times;
15 |
16 | while (n--) qs.parse('user[name][first]=tj&user[name][last]=holowaychuk');
17 | console.log('nested: %dms', new Date - start);
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/Makefile:
--------------------------------------------------------------------------------
1 |
2 | SRC = $(shell find lib -name "*.js" -type f)
3 | UGLIFY_FLAGS = --no-mangle
4 |
5 | all: ejs.min.js
6 |
7 | test:
8 | @./node_modules/.bin/mocha \
9 | --require should \
10 | --reporter spec
11 |
12 | ejs.js: $(SRC)
13 | @node support/compile.js $^
14 |
15 | ejs.min.js: ejs.js
16 | @uglifyjs $(UGLIFY_FLAGS) $< > $@ \
17 | && du ejs.min.js \
18 | && du ejs.js
19 |
20 | clean:
21 | rm -f ejs.js
22 | rm -f ejs.min.js
23 |
24 | .PHONY: test
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/qs/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "qs",
3 | "description": "querystring parser",
4 | "version": "0.4.2",
5 | "repository": {
6 | "type" : "git",
7 | "url" : "git://github.com/visionmedia/node-querystring.git"
8 | },
9 | "devDependencies": {
10 | "mocha": "*"
11 | , "should": "*"
12 | },
13 | "author": "TJ Holowaychuk (http://tjholowaychuk.com)",
14 | "main": "index",
15 | "engines": { "node": "*" }
16 | }
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/lib/utils.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * EJS
4 | * Copyright(c) 2010 TJ Holowaychuk
5 | * MIT Licensed
6 | */
7 |
8 | /**
9 | * Escape the given string of `html`.
10 | *
11 | * @param {String} html
12 | * @return {String}
13 | * @api private
14 | */
15 |
16 | exports.escape = function(html){
17 | return String(html)
18 | .replace(/&(?!\w+;)/g, '&')
19 | .replace(//g, '>')
21 | .replace(/"/g, '"');
22 | };
23 |
--------------------------------------------------------------------------------
/enron-importer/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/examples/pow.js.rej:
--------------------------------------------------------------------------------
1 | --- examples/pow.js
2 | +++ examples/pow.js
3 | @@ -1,6 +1,15 @@
4 | -var mkdirp = require('mkdirp').mkdirp;
5 | +var mkdirp = require('../').mkdirp,
6 | + mkdirpSync = require('../').mkdirpSync;
7 |
8 | mkdirp('/tmp/foo/bar/baz', 0755, function (err) {
9 | if (err) console.error(err)
10 | else console.log('pow!')
11 | });
12 | +
13 | +try {
14 | + mkdirpSync('/tmp/bar/foo/baz', 0755);
15 | + console.log('double pow!');
16 | +}
17 | +catch (ex) {
18 | + console.log(ex);
19 | +}
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "formidable",
3 | "version": "1.0.11",
4 | "dependencies": {},
5 | "devDependencies": {
6 | "gently": "0.8.0",
7 | "findit": "0.1.1",
8 | "hashish": "0.0.4",
9 | "urun": "0.0.4",
10 | "utest": "0.0.3"
11 | },
12 | "directories": {
13 | "lib": "./lib"
14 | },
15 | "main": "./lib/index",
16 | "scripts": {
17 | "test": "make test"
18 | },
19 | "engines": {
20 | "node": "*"
21 | },
22 | "optionalDependencies": {}
23 | }
24 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/test/common.js:
--------------------------------------------------------------------------------
1 | var mysql = require('..');
2 | var path = require('path');
3 |
4 | var root = path.join(__dirname, '../');
5 | exports.dir = {
6 | root : root,
7 | lib : root + '/lib',
8 | fixture : root + '/test/fixture',
9 | tmp : root + '/test/tmp',
10 | };
11 |
12 | exports.port = 13532;
13 |
14 | exports.formidable = require('..');
15 | exports.assert = require('assert');
16 |
17 | exports.require = function(lib) {
18 | return require(exports.dir.lib + '/' + lib);
19 | };
20 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/node-gently/example/dog.js:
--------------------------------------------------------------------------------
1 | require('../test/common');
2 | function Dog() {}
3 |
4 | Dog.prototype.seeCat = function() {
5 | this.bark('whuf, whuf');
6 | this.run();
7 | }
8 |
9 | Dog.prototype.bark = function(bark) {
10 | require('sys').puts(bark);
11 | }
12 |
13 | var gently = new (require('gently'))
14 | , assert = require('assert')
15 | , dog = new Dog();
16 |
17 | gently.expect(dog, 'bark', function(bark) {
18 | assert.equal(bark, 'whuf, whuf');
19 | });
20 | gently.expect(dog, 'run');
21 |
22 | dog.seeCat();
--------------------------------------------------------------------------------
/enron-importer/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | mail-importer
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.m2e.core.maven2Builder
15 |
16 |
17 |
18 |
19 |
20 | org.eclipse.jdt.core.javanature
21 | org.eclipse.m2e.core.maven2Nature
22 |
23 |
24 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/Makefile:
--------------------------------------------------------------------------------
1 |
2 | DOCS = $(shell find docs/*.md)
3 | HTMLDOCS = $(DOCS:.md=.html)
4 | TESTS = $(shell find test/*.test.js)
5 |
6 | test:
7 | @NODE_ENV=test ./node_modules/.bin/expresso $(TESTS)
8 |
9 | docs: $(HTMLDOCS)
10 | @ echo "... generating TOC"
11 | @./support/toc.js docs/guide.html
12 |
13 | %.html: %.md
14 | @echo "... $< -> $@"
15 | @markdown $< \
16 | | cat docs/layout/head.html - docs/layout/foot.html \
17 | > $@
18 |
19 | site:
20 | rm -fr /tmp/docs \
21 | && cp -fr docs /tmp/docs \
22 | && git checkout gh-pages \
23 | && cp -fr /tmp/docs/* . \
24 | && echo "done"
25 |
26 | docclean:
27 | rm -f docs/*.{1,html}
28 |
29 | .PHONY: site test docs docclean
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name" : "mkdirp",
3 | "description" : "Recursively mkdir, like `mkdir -p`",
4 | "version" : "0.3.0",
5 | "author" : "James Halliday (http://substack.net)",
6 | "main" : "./index",
7 | "keywords" : [
8 | "mkdir",
9 | "directory"
10 | ],
11 | "repository" : {
12 | "type" : "git",
13 | "url" : "http://github.com/substack/node-mkdirp.git"
14 | },
15 | "scripts" : {
16 | "test" : "tap test/*.js"
17 | },
18 | "devDependencies" : {
19 | "tap" : "0.0.x"
20 | },
21 | "license" : "MIT/X11",
22 | "engines": { "node": "*" }
23 | }
24 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/examples/client.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mime/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "author": {
3 | "name": "Robert Kieffer",
4 | "url": "http://github.com/broofa",
5 | "email": "robert@broofa.com"
6 | },
7 | "contributors": [
8 | {
9 | "name": "Benjamin Thomas",
10 | "url": "http://github.com/bentomas",
11 | "email": "benjamin@benjaminthomas.org"
12 | }
13 | ],
14 | "dependencies": {},
15 | "description": "A comprehensive library for mime-type mapping",
16 | "devDependencies": {"async_testing": ""},
17 | "keywords": ["util", "mime"],
18 | "main": "mime.js",
19 | "name": "mime",
20 | "repository": {"url": "http://github.com/bentomas/node-mime", "type": "git"},
21 | "version": "1.2.4"
22 | }
23 |
--------------------------------------------------------------------------------
/metamail-ui/views/.scatterchart/index.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | The d3 test
5 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/metamail-ui/views/index.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <%= title %>
6 |
7 |
8 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/mail-analyzer/src/test/java/com/igalia/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.igalia;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "connect",
3 | "version": "1.9.2",
4 | "description": "High performance middleware framework",
5 | "keywords": ["framework", "web", "middleware", "connect", "rack"],
6 | "repository": "git://github.com/senchalabs/connect.git",
7 | "author": "TJ Holowaychuk (http://tjholowaychuk.com)",
8 | "repository": "git://github.com/senchalabs/connect",
9 | "dependencies": {
10 | "qs": ">= 0.4.0",
11 | "mime": ">= 0.0.1",
12 | "formidable": "1.0.x"
13 | },
14 | "devDependencies": {
15 | "expresso": "0.9.2",
16 | "koala": "0.1.2",
17 | "less": "1.1.1",
18 | "sass": "0.5.0",
19 | "markdown": "0.2.1",
20 | "ejs": "0.4.3",
21 | "should": "0.3.2"
22 | },
23 | "publishConfig": { "tag": "1.8" },
24 | "main": "index"
25 | }
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/lib/querystring_parser.js:
--------------------------------------------------------------------------------
1 | if (global.GENTLY) require = GENTLY.hijack(require);
2 |
3 | // This is a buffering parser, not quite as nice as the multipart one.
4 | // If I find time I'll rewrite this to be fully streaming as well
5 | var querystring = require('querystring');
6 |
7 | function QuerystringParser() {
8 | this.buffer = '';
9 | };
10 | exports.QuerystringParser = QuerystringParser;
11 |
12 | QuerystringParser.prototype.write = function(buffer) {
13 | this.buffer += buffer.toString('ascii');
14 | return buffer.length;
15 | };
16 |
17 | QuerystringParser.prototype.end = function() {
18 | var fields = querystring.parse(this.buffer);
19 | for (var field in fields) {
20 | this.onField(field, fields[field]);
21 | }
22 | this.buffer = '';
23 |
24 | this.onEnd();
25 | };
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/common.js:
--------------------------------------------------------------------------------
1 | var path = require('path'),
2 | fs = require('fs');
3 |
4 | try {
5 | global.Gently = require('gently');
6 | } catch (e) {
7 | throw new Error('this test suite requires node-gently');
8 | }
9 |
10 | exports.lib = path.join(__dirname, '../../lib');
11 |
12 | global.GENTLY = new Gently();
13 |
14 | global.assert = require('assert');
15 | global.TEST_PORT = 13532;
16 | global.TEST_FIXTURES = path.join(__dirname, '../fixture');
17 | global.TEST_TMP = path.join(__dirname, '../tmp');
18 |
19 | // Stupid new feature in node that complains about gently attaching too many
20 | // listeners to process 'exit'. This is a workaround until I can think of a
21 | // better way to deal with this.
22 | if (process.setMaxListeners) {
23 | process.setMaxListeners(10000);
24 | }
25 |
--------------------------------------------------------------------------------
/enron-importer/src/test/java/com/igalia/mail_importer/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.igalia.mail_importer;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/mail-analyzer/benchmark/bySize.csv:
--------------------------------------------------------------------------------
1 | -- msgBySize
2 | com.igalia.metamail.jobs.MessagesBySize,50.00
3 | com.igalia.metamail.jobs.MessagesBySize,50.00
4 | com.igalia.metamail.jobs.MessagesBySize,42.00
5 | com.igalia.metamail.jobs.MessagesBySize,38.00
6 | com.igalia.metamail.jobs.MessagesBySize,41.00
7 | com.igalia.metamail.jobs.MessagesBySize,38.00
8 | com.igalia.metamail.jobs.MessagesBySize,38.00
9 | com.igalia.metamail.jobs.MessagesBySize,38.00
10 | com.igalia.metamail.jobs.MessagesBySize,39.00
11 | com.igalia.metamail.jobs.MessagesBySize,38.00
12 | com.igalia.metamail.jobs.MessagesBySize,36.00
13 | com.igalia.metamail.jobs.MessagesBySize,38.00
14 | com.igalia.metamail.jobs.MessagesBySize,39.00
15 | com.igalia.metamail.jobs.MessagesBySize,37.00
16 | com.igalia.metamail.jobs.MessagesBySize,38.00
17 | com.igalia.metamail.jobs.MessagesBySize,39.00
18 | com.igalia.metamail.jobs.MessagesBySize,40.00
19 |
20 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/js/special-chars-in-filename.js:
--------------------------------------------------------------------------------
1 | var properFilename = 'funkyfilename.txt';
2 |
3 | function expect(filename) {
4 | return [
5 | {type: 'field', name: 'title', value: 'Weird filename'},
6 | {type: 'file', name: 'upload', filename: filename, fixture: properFilename},
7 | ];
8 | };
9 |
10 | var webkit = " ? % * | \" < > . ? ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt";
11 | var ffOrIe = " ? % * | \" < > . ☃ ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt";
12 |
13 | module.exports = {
14 | 'osx-chrome-13.http' : expect(webkit),
15 | 'osx-firefox-3.6.http' : expect(ffOrIe),
16 | 'osx-safari-5.http' : expect(webkit),
17 | 'xp-chrome-12.http' : expect(webkit),
18 | 'xp-ie-7.http' : expect(ffOrIe),
19 | 'xp-ie-8.http' : expect(ffOrIe),
20 | 'xp-safari-5.http' : expect(webkit),
21 | };
22 |
--------------------------------------------------------------------------------
/mail-analyzer/README.md:
--------------------------------------------------------------------------------
1 | -- Mail Analyzer
2 |
3 | This is a mail analyzer based in Hadoop. Mail to be analyzed should be stored in directory.
4 | Results are written in directory.
5 |
6 | Mail files should be stored in mbox format. Every file may have one or mail emails.:
7 |
8 | -- Compile
9 |
10 | $ mvn clean install
11 |
12 | This generates a .jar file in target/
13 |
14 | -- Run
15 |
16 | $ hadoop jar ./target/metamail-0.0.1-SNAPSHOT.jar com.igalia.metamail.jobs.MessagesByTimePeriod
17 |
18 | This job counts the number of mails by year, month, day, date and hour. Result is stored in mail/out.
19 | Before running the directory mail/out should not exist.
20 |
21 | -- Dependencies
22 |
23 | This tool uses Java Mail. Hadoop tries to find dependency libraries at /usr/share/hadoop/lib. Please,
24 | place a copy of Java Mail jar at that directory, otherwise you will get a NoClassDefFoundError at runtime.
25 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/middleware/responseTime.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Connect - responseTime
4 | * Copyright(c) 2011 TJ Holowaychuk
5 | * MIT Licensed
6 | */
7 |
8 | /**
9 | * Adds the `X-Response-Time` header displaying the response
10 | * duration in milliseconds.
11 | *
12 | * @return {Function}
13 | * @api public
14 | */
15 |
16 | module.exports = function responseTime(){
17 | return function(req, res, next){
18 | var writeHead = res.writeHead
19 | , start = new Date;
20 |
21 | if (res._responseTime) return next();
22 | res._responseTime = true;
23 |
24 | // proxy writeHead to calculate duration
25 | res.writeHead = function(status, headers){
26 | var duration = new Date - start;
27 | res.setHeader('X-Response-Time', duration + 'ms');
28 | res.writeHead = writeHead;
29 | res.writeHead(status, headers);
30 | };
31 |
32 | next();
33 | };
34 | };
35 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/middleware/query.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Connect - query
4 | * Copyright(c) 2011 TJ Holowaychuk
5 | * Copyright(c) 2011 Sencha Inc.
6 | * MIT Licensed
7 | */
8 |
9 | /**
10 | * Module dependencies.
11 | */
12 |
13 | var qs = require('qs')
14 | , parse = require('url').parse;
15 |
16 | /**
17 | * Automatically parse the query-string when available,
18 | * populating the `req.query` object.
19 | *
20 | * Examples:
21 | *
22 | * connect(
23 | * connect.query()
24 | * , function(req, res){
25 | * res.end(JSON.stringify(req.query));
26 | * }
27 | * ).listen(3000);
28 | *
29 | * @return {Function}
30 | * @api public
31 | */
32 |
33 | module.exports = function query(){
34 | return function query(req, res, next){
35 | req.query = ~req.url.indexOf('?')
36 | ? qs.parse(parse(req.url).query)
37 | : {};
38 | next();
39 | };
40 | };
41 |
--------------------------------------------------------------------------------
/mail-analyzer/src/main/java/com/igalia/metamail/utils/JobRunner.java:
--------------------------------------------------------------------------------
1 | package com.igalia.metamail.utils;
2 |
3 | import java.io.IOException;
4 |
5 | import org.apache.hadoop.mapreduce.Job;
6 |
7 | /**
8 | *
9 | * @author Diego Pino García
10 | *
11 | */
12 | public class JobRunner {
13 |
14 | public static boolean run(Job job) throws IOException,
15 | InterruptedException, ClassNotFoundException {
16 | try {
17 | return job.waitForCompletion(true);
18 | } catch (IOException e) {
19 | // TODO Auto-generated catch block
20 | e.printStackTrace();
21 | } catch (InterruptedException e) {
22 | // TODO Auto-generated catch block
23 | e.printStackTrace();
24 | } catch (ClassNotFoundException e) {
25 | // TODO Auto-generated catch block
26 | e.printStackTrace();
27 | }
28 | return false;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/testing/foo/app.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Module dependencies.
4 | */
5 |
6 | var express = require('express')
7 | , routes = require('./routes')
8 |
9 | var app = module.exports = express.createServer();
10 |
11 | // Configuration
12 |
13 | app.configure(function(){
14 | app.set('views', __dirname + '/views');
15 | app.set('view engine', 'jade');
16 | app.use(express.bodyParser());
17 | app.use(express.methodOverride());
18 | app.use(app.router);
19 | app.use(express.static(__dirname + '/public'));
20 | });
21 |
22 | app.configure('development', function(){
23 | app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
24 | });
25 |
26 | app.configure('production', function(){
27 | app.use(express.errorHandler());
28 | });
29 |
30 | // Routes
31 |
32 | app.get('/', routes.index);
33 |
34 | app.listen(3000);
35 | console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
36 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/lib/view/partial.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Express - view - Partial
4 | * Copyright(c) 2010 TJ Holowaychuk
5 | * MIT Licensed
6 | */
7 |
8 | /**
9 | * Memory cache.
10 | */
11 |
12 | var cache = {};
13 |
14 | /**
15 | * Resolve partial object name from the view path.
16 | *
17 | * Examples:
18 | *
19 | * "user.ejs" becomes "user"
20 | * "forum thread.ejs" becomes "forumThread"
21 | * "forum/thread/post.ejs" becomes "post"
22 | * "blog-post.ejs" becomes "blogPost"
23 | *
24 | * @return {String}
25 | * @api private
26 | */
27 |
28 | exports.resolveObjectName = function(view){
29 | return cache[view] || (cache[view] = view
30 | .split('/')
31 | .slice(-1)[0]
32 | .split('.')[0]
33 | .replace(/^_/, '')
34 | .replace(/[^a-zA-Z0-9 ]+/g, ' ')
35 | .split(/ +/).map(function(word, i){
36 | return i
37 | ? word[0].toUpperCase() + word.substr(1)
38 | : word;
39 | }).join(''));
40 | };
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/test/sync.js:
--------------------------------------------------------------------------------
1 | var mkdirp = require('../');
2 | var path = require('path');
3 | var fs = require('fs');
4 | var test = require('tap').test;
5 |
6 | test('sync', function (t) {
7 | t.plan(2);
8 | var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
9 | var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
10 | var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
11 |
12 | var file = '/tmp/' + [x,y,z].join('/');
13 |
14 | var err = mkdirp.sync(file, 0755);
15 | if (err) t.fail(err);
16 | else path.exists(file, function (ex) {
17 | if (!ex) t.fail('file not created')
18 | else fs.stat(file, function (err, stat) {
19 | if (err) t.fail(err)
20 | else {
21 | t.equal(stat.mode & 0777, 0755);
22 | t.ok(stat.isDirectory(), 'target not a directory');
23 | t.end();
24 | }
25 | })
26 | })
27 | });
28 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/testing/index.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Module dependencies.
4 | */
5 |
6 | var express = require('../')
7 | , http = require('http')
8 | , connect = require('connect');
9 |
10 | var app = express.createServer();
11 |
12 | app.get('/', function(req, res){
13 | req.foo();
14 | res.send('test');
15 | });
16 |
17 | // app.set('views', __dirname + '/views');
18 | // app.set('view engine', 'jade');
19 | //
20 | // app.configure(function(){
21 | // app.use(function(req, res, next){
22 | // debugger
23 | // res.write('first');
24 | // console.error('first');
25 | // next();
26 | // });
27 | //
28 | // app.use(app.router);
29 | //
30 | // app.use(function(req, res, next){
31 | // console.error('last');
32 | // res.end('last');
33 | // });
34 | // });
35 | //
36 | // app.get('/', function(req, res, next){
37 | // console.error('middle');
38 | // res.write(' route ');
39 | // next();
40 | // });
41 |
42 | app.listen(3000);
43 | console.log('listening on port 3000');
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/test/clobber.js:
--------------------------------------------------------------------------------
1 | var mkdirp = require('../').mkdirp;
2 | var path = require('path');
3 | var fs = require('fs');
4 | var test = require('tap').test;
5 |
6 | var ps = [ '', 'tmp' ];
7 |
8 | for (var i = 0; i < 25; i++) {
9 | var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
10 | ps.push(dir);
11 | }
12 |
13 | var file = ps.join('/');
14 |
15 | // a file in the way
16 | var itw = ps.slice(0, 3).join('/');
17 |
18 |
19 | test('clobber-pre', function (t) {
20 | console.error("about to write to "+itw)
21 | fs.writeFileSync(itw, 'I AM IN THE WAY, THE TRUTH, AND THE LIGHT.');
22 |
23 | fs.stat(itw, function (er, stat) {
24 | t.ifError(er)
25 | t.ok(stat && stat.isFile(), 'should be file')
26 | t.end()
27 | })
28 | })
29 |
30 | test('clobber', function (t) {
31 | t.plan(2);
32 | mkdirp(file, 0755, function (err) {
33 | t.ok(err);
34 | t.equal(err.code, 'ENOTDIR');
35 | t.end();
36 | });
37 | });
38 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/test/umask_sync.js:
--------------------------------------------------------------------------------
1 | var mkdirp = require('../');
2 | var path = require('path');
3 | var fs = require('fs');
4 | var test = require('tap').test;
5 |
6 | test('umask sync modes', function (t) {
7 | t.plan(2);
8 | var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
9 | var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
10 | var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
11 |
12 | var file = '/tmp/' + [x,y,z].join('/');
13 |
14 | var err = mkdirp.sync(file);
15 | if (err) t.fail(err);
16 | else path.exists(file, function (ex) {
17 | if (!ex) t.fail('file not created')
18 | else fs.stat(file, function (err, stat) {
19 | if (err) t.fail(err)
20 | else {
21 | t.equal(stat.mode & 0777, (0777 & (~process.umask())));
22 | t.ok(stat.isDirectory(), 'target not a directory');
23 | t.end();
24 | }
25 | })
26 | })
27 | });
28 |
--------------------------------------------------------------------------------
/mail-analyzer/benchmark/msgReceived.csv:
--------------------------------------------------------------------------------
1 | com.igalia.metamail.jobs.MessagesReceived,44.00
2 | com.igalia.metamail.jobs.MessagesReceived,45.00
3 | com.igalia.metamail.jobs.MessagesReceived,45.00
4 | com.igalia.metamail.jobs.MessagesReceived,42.00
5 | com.igalia.metamail.jobs.MessagesReceived,42.00
6 | com.igalia.metamail.jobs.MessagesReceived,42.00
7 | com.igalia.metamail.jobs.MessagesReceived,43.00
8 | com.igalia.metamail.jobs.MessagesReceived,41.00
9 | com.igalia.metamail.jobs.MessagesReceived,43.00
10 | com.igalia.metamail.jobs.MessagesReceived,43.00
11 | com.igalia.metamail.jobs.MessagesReceived,43.00
12 | com.igalia.metamail.jobs.MessagesReceived,42.00
13 | com.igalia.metamail.jobs.MessagesReceived,43.00
14 | com.igalia.metamail.jobs.MessagesReceived,43.00
15 | com.igalia.metamail.jobs.MessagesReceived,42.00
16 | com.igalia.metamail.jobs.MessagesReceived,43.00
17 | com.igalia.metamail.jobs.MessagesReceived,47.00
18 | com.igalia.metamail.jobs.MessagesReceived,43.00
19 | com.igalia.metamail.jobs.MessagesReceived,42.00
20 | com.igalia.metamail.jobs.MessagesReceived,44.00
21 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/test/perm.js:
--------------------------------------------------------------------------------
1 | var mkdirp = require('../');
2 | var path = require('path');
3 | var fs = require('fs');
4 | var test = require('tap').test;
5 |
6 | test('async perm', function (t) {
7 | t.plan(2);
8 | var file = '/tmp/' + (Math.random() * (1<<30)).toString(16);
9 |
10 | mkdirp(file, 0755, function (err) {
11 | if (err) t.fail(err);
12 | else path.exists(file, function (ex) {
13 | if (!ex) t.fail('file not created')
14 | else fs.stat(file, function (err, stat) {
15 | if (err) t.fail(err)
16 | else {
17 | t.equal(stat.mode & 0777, 0755);
18 | t.ok(stat.isDirectory(), 'target not a directory');
19 | t.end();
20 | }
21 | })
22 | })
23 | });
24 | });
25 |
26 | test('async root perm', function (t) {
27 | mkdirp('/tmp', 0755, function (err) {
28 | if (err) t.fail(err);
29 | t.end();
30 | });
31 | t.end();
32 | });
33 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/test/mkdirp.js:
--------------------------------------------------------------------------------
1 | var mkdirp = require('../');
2 | var path = require('path');
3 | var fs = require('fs');
4 | var test = require('tap').test;
5 |
6 | test('woo', function (t) {
7 | t.plan(2);
8 | var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
9 | var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
10 | var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
11 |
12 | var file = '/tmp/' + [x,y,z].join('/');
13 |
14 | mkdirp(file, 0755, function (err) {
15 | if (err) t.fail(err);
16 | else path.exists(file, function (ex) {
17 | if (!ex) t.fail('file not created')
18 | else fs.stat(file, function (err, stat) {
19 | if (err) t.fail(err)
20 | else {
21 | t.equal(stat.mode & 0777, 0755);
22 | t.ok(stat.isDirectory(), 'target not a directory');
23 | t.end();
24 | }
25 | })
26 | })
27 | });
28 | });
29 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/test/umask.js:
--------------------------------------------------------------------------------
1 | var mkdirp = require('../');
2 | var path = require('path');
3 | var fs = require('fs');
4 | var test = require('tap').test;
5 |
6 | test('implicit mode from umask', function (t) {
7 | t.plan(2);
8 | var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
9 | var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
10 | var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
11 |
12 | var file = '/tmp/' + [x,y,z].join('/');
13 |
14 | mkdirp(file, function (err) {
15 | if (err) t.fail(err);
16 | else path.exists(file, function (ex) {
17 | if (!ex) t.fail('file not created')
18 | else fs.stat(file, function (err, stat) {
19 | if (err) t.fail(err)
20 | else {
21 | t.equal(stat.mode & 0777, 0777 & (~process.umask()));
22 | t.ok(stat.isDirectory(), 'target not a directory');
23 | t.end();
24 | }
25 | })
26 | })
27 | });
28 | });
29 |
--------------------------------------------------------------------------------
/mail-analyzer/benchmark/msgSent.csv:
--------------------------------------------------------------------------------
1 | com.igalia.metamail.jobs.MessagesSentByPerson,40.00
2 | com.igalia.metamail.jobs.MessagesSentByPerson,37.00
3 | com.igalia.metamail.jobs.MessagesSentByPerson,38.00
4 | com.igalia.metamail.jobs.MessagesSentByPerson,37.00
5 | com.igalia.metamail.jobs.MessagesSentByPerson,38.00
6 | com.igalia.metamail.jobs.MessagesSentByPerson,37.00
7 | com.igalia.metamail.jobs.MessagesSentByPerson,37.00
8 | com.igalia.metamail.jobs.MessagesSentByPerson,38.00
9 | com.igalia.metamail.jobs.MessagesSentByPerson,38.00
10 | com.igalia.metamail.jobs.MessagesSentByPerson,37.00
11 | com.igalia.metamail.jobs.MessagesSentByPerson,38.00
12 | com.igalia.metamail.jobs.MessagesSentByPerson,39.00
13 | com.igalia.metamail.jobs.MessagesSentByPerson,38.00
14 | com.igalia.metamail.jobs.MessagesSentByPerson,38.00
15 | com.igalia.metamail.jobs.MessagesSentByPerson,38.00
16 | com.igalia.metamail.jobs.MessagesSentByPerson,38.00
17 | com.igalia.metamail.jobs.MessagesSentByPerson,37.00
18 | com.igalia.metamail.jobs.MessagesSentByPerson,38.00
19 | com.igalia.metamail.jobs.MessagesSentByPerson,38.00
20 | com.igalia.metamail.jobs.MessagesSentByPerson,37.00
21 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/lib/router/collection.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Express - router - Collection
4 | * Copyright(c) 2010 TJ Holowaychuk
5 | * MIT Licensed
6 | */
7 |
8 | /**
9 | * Expose `Collection`.
10 | */
11 |
12 | module.exports = Collection;
13 |
14 | /**
15 | * Initialize a new route `Collection`
16 | * with the given `router`.
17 | *
18 | * @param {Router} router
19 | * @api private
20 | */
21 |
22 | function Collection(router) {
23 | Array.apply(this, arguments);
24 | this.router = router;
25 | }
26 |
27 | /**
28 | * Inherit from `Array.prototype`.
29 | */
30 |
31 | Collection.prototype.__proto__ = Array.prototype;
32 |
33 | /**
34 | * Remove the routes in this collection.
35 | *
36 | * @return {Collection} of routes removed
37 | * @api public
38 | */
39 |
40 | Collection.prototype.remove = function(){
41 | var router = this.router
42 | , len = this.length
43 | , ret = new Collection(this.router);
44 |
45 | for (var i = 0; i < len; ++i) {
46 | if (router.remove(this[i])) {
47 | ret.push(this[i]);
48 | }
49 | }
50 |
51 | return ret;
52 | };
53 |
54 |
--------------------------------------------------------------------------------
/mail-analyzer/benchmark/byTimePeriod.csv:
--------------------------------------------------------------------------------
1 | com.igalia.metamail.jobs.MessagesByTimePeriod,41.00
2 | com.igalia.metamail.jobs.MessagesByTimePeriod,40.00
3 | com.igalia.metamail.jobs.MessagesByTimePeriod,42.00
4 | com.igalia.metamail.jobs.MessagesByTimePeriod,42.00
5 | com.igalia.metamail.jobs.MessagesByTimePeriod,52.00
6 | com.igalia.metamail.jobs.MessagesByTimePeriod,51.00
7 | com.igalia.metamail.jobs.MessagesByTimePeriod,46.00
8 | com.igalia.metamail.jobs.MessagesByTimePeriod,48.00
9 | com.igalia.metamail.jobs.MessagesByTimePeriod,46.00
10 | com.igalia.metamail.jobs.MessagesByTimePeriod,45.00
11 | com.igalia.metamail.jobs.MessagesByTimePeriod,43.00
12 | com.igalia.metamail.jobs.MessagesByTimePeriod,44.00
13 | com.igalia.metamail.jobs.MessagesByTimePeriod,44.00
14 | com.igalia.metamail.jobs.MessagesByTimePeriod,43.00
15 | com.igalia.metamail.jobs.MessagesByTimePeriod,42.00
16 | com.igalia.metamail.jobs.MessagesByTimePeriod,45.00
17 | com.igalia.metamail.jobs.MessagesByTimePeriod,44.00
18 | com.igalia.metamail.jobs.MessagesByTimePeriod,43.00
19 | com.igalia.metamail.jobs.MessagesByTimePeriod,44.00
20 | com.igalia.metamail.jobs.MessagesByTimePeriod,44.00
21 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/middleware/cookieParser.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Connect - cookieParser
4 | * Copyright(c) 2010 Sencha Inc.
5 | * Copyright(c) 2011 TJ Holowaychuk
6 | * MIT Licensed
7 | */
8 |
9 | /**
10 | * Module dependencies.
11 | */
12 |
13 | var utils = require('./../utils');
14 |
15 | /**
16 | * Parse _Cookie_ header and populate `req.cookies`
17 | * with an object keyed by the cookie names.
18 | *
19 | * Examples:
20 | *
21 | * connect.createServer(
22 | * connect.cookieParser()
23 | * , function(req, res, next){
24 | * res.end(JSON.stringify(req.cookies));
25 | * }
26 | * );
27 | *
28 | * @return {Function}
29 | * @api public
30 | */
31 |
32 | module.exports = function cookieParser(){
33 | return function cookieParser(req, res, next) {
34 | var cookie = req.headers.cookie;
35 | if (req.cookies) return next();
36 | req.cookies = {};
37 | if (cookie) {
38 | try {
39 | req.cookies = utils.parseCookie(cookie);
40 | } catch (err) {
41 | return next(err);
42 | }
43 | }
44 | next();
45 | };
46 | };
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Connect - methodOverride
4 | * Copyright(c) 2010 Sencha Inc.
5 | * Copyright(c) 2011 TJ Holowaychuk
6 | * MIT Licensed
7 | */
8 |
9 | /**
10 | * Provides faux HTTP method support.
11 | *
12 | * Pass an optional `key` to use when checking for
13 | * a method override, othewise defaults to _\_method_.
14 | * The original method is available via `req.originalMethod`.
15 | *
16 | * @param {String} key
17 | * @return {Function}
18 | * @api public
19 | */
20 |
21 | module.exports = function methodOverride(key){
22 | key = key || "_method";
23 | return function methodOverride(req, res, next) {
24 | req.originalMethod = req.originalMethod || req.method;
25 |
26 | // req.body
27 | if (req.body && key in req.body) {
28 | req.method = req.body[key].toUpperCase();
29 | delete req.body[key];
30 | // check X-HTTP-Method-Override
31 | } else if (req.headers['x-http-method-override']) {
32 | req.method = req.headers['x-http-method-override'].toUpperCase();
33 | }
34 |
35 | next();
36 | };
37 | };
38 |
39 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/lib/https.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Express - HTTPSServer
4 | * Copyright(c) 2010 TJ Holowaychuk
5 | * MIT Licensed
6 | */
7 |
8 | /**
9 | * Module dependencies.
10 | */
11 |
12 | var connect = require('connect')
13 | , HTTPServer = require('./http')
14 | , https = require('https');
15 |
16 | /**
17 | * Expose `HTTPSServer`.
18 | */
19 |
20 | exports = module.exports = HTTPSServer;
21 |
22 | /**
23 | * Server proto.
24 | */
25 |
26 | var app = HTTPSServer.prototype;
27 |
28 | /**
29 | * Initialize a new `HTTPSServer` with the
30 | * given `options`, and optional `middleware`.
31 | *
32 | * @param {Object} options
33 | * @param {Array} middleware
34 | * @api public
35 | */
36 |
37 | function HTTPSServer(options, middleware){
38 | connect.HTTPSServer.call(this, options, []);
39 | this.init(middleware);
40 | };
41 |
42 | /**
43 | * Inherit from `connect.HTTPSServer`.
44 | */
45 |
46 | app.__proto__ = connect.HTTPSServer.prototype;
47 |
48 | // mixin HTTPServer methods
49 |
50 | Object.keys(HTTPServer.prototype).forEach(function(method){
51 | app[method] = HTTPServer.prototype[method];
52 | });
53 |
--------------------------------------------------------------------------------
/mail-analyzer/benchmark/byThreadLength.csv:
--------------------------------------------------------------------------------
1 | com.igalia.metamail.jobs.MessagesByThreadLength,36.00
2 | com.igalia.metamail.jobs.MessagesByThreadLength,38.00
3 | com.igalia.metamail.jobs.MessagesByThreadLength,36.00
4 | com.igalia.metamail.jobs.MessagesByThreadLength,38.00
5 | com.igalia.metamail.jobs.MessagesByThreadLength,39.00
6 | com.igalia.metamail.jobs.MessagesByThreadLength,39.00
7 | com.igalia.metamail.jobs.MessagesByThreadLength,40.00
8 | com.igalia.metamail.jobs.MessagesByThreadLength,39.00
9 | com.igalia.metamail.jobs.MessagesByThreadLength,38.00
10 | com.igalia.metamail.jobs.MessagesByThreadLength,39.00
11 | com.igalia.metamail.jobs.MessagesByThreadLength,40.00
12 | com.igalia.metamail.jobs.MessagesByThreadLength,40.00
13 | com.igalia.metamail.jobs.MessagesByThreadLength,40.00
14 | com.igalia.metamail.jobs.MessagesByThreadLength,40.00
15 | com.igalia.metamail.jobs.MessagesByThreadLength,40.00
16 | com.igalia.metamail.jobs.MessagesByThreadLength,40.00
17 | com.igalia.metamail.jobs.MessagesByThreadLength,43.00
18 | com.igalia.metamail.jobs.MessagesByThreadLength,40.00
19 | com.igalia.metamail.jobs.MessagesByThreadLength,41.00
20 | com.igalia.metamail.jobs.MessagesByThreadLength,41.00
21 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/test/rel.js:
--------------------------------------------------------------------------------
1 | var mkdirp = require('../');
2 | var path = require('path');
3 | var fs = require('fs');
4 | var test = require('tap').test;
5 |
6 | test('rel', function (t) {
7 | t.plan(2);
8 | var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
9 | var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
10 | var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
11 |
12 | var cwd = process.cwd();
13 | process.chdir('/tmp');
14 |
15 | var file = [x,y,z].join('/');
16 |
17 | mkdirp(file, 0755, function (err) {
18 | if (err) t.fail(err);
19 | else path.exists(file, function (ex) {
20 | if (!ex) t.fail('file not created')
21 | else fs.stat(file, function (err, stat) {
22 | if (err) t.fail(err)
23 | else {
24 | process.chdir(cwd);
25 | t.equal(stat.mode & 0777, 0755);
26 | t.ok(stat.isDirectory(), 'target not a directory');
27 | t.end();
28 | }
29 | })
30 | })
31 | });
32 | });
33 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mime/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2010 Benjamin Thomas, Robert Kieffer
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/LICENSE:
--------------------------------------------------------------------------------
1 | (The MIT License)
2 |
3 | Copyright (c) 2009-2011 TJ Holowaychuk
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining
6 | a copy of this software and associated documentation files (the
7 | 'Software'), to deal in the Software without restriction, including
8 | without limitation the rights to use, copy, modify, merge, publish,
9 | distribute, sublicense, and/or sell copies of the Software, and to
10 | permit persons to whom the Software is furnished to do so, subject to
11 | the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be
14 | included in all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/README.markdown:
--------------------------------------------------------------------------------
1 | mkdirp
2 | ======
3 |
4 | Like `mkdir -p`, but in node.js!
5 |
6 | example
7 | =======
8 |
9 | pow.js
10 | ------
11 | var mkdirp = require('mkdirp');
12 |
13 | mkdirp('/tmp/foo/bar/baz', function (err) {
14 | if (err) console.error(err)
15 | else console.log('pow!')
16 | });
17 |
18 | Output
19 | pow!
20 |
21 | And now /tmp/foo/bar/baz exists, huzzah!
22 |
23 | methods
24 | =======
25 |
26 | var mkdirp = require('mkdirp');
27 |
28 | mkdirp(dir, mode, cb)
29 | ---------------------
30 |
31 | Create a new directory and any necessary subdirectories at `dir` with octal
32 | permission string `mode`.
33 |
34 | If `mode` isn't specified, it defaults to `0777 & (~process.umask())`.
35 |
36 | mkdirp.sync(dir, mode)
37 | ----------------------
38 |
39 | Synchronously create a new directory and any necessary subdirectories at `dir`
40 | with octal permission string `mode`.
41 |
42 | If `mode` isn't specified, it defaults to `0777 & (~process.umask())`.
43 |
44 | install
45 | =======
46 |
47 | With [npm](http://npmjs.org) do:
48 |
49 | npm install mkdirp
50 |
51 | license
52 | =======
53 |
54 | MIT/X11
55 |
--------------------------------------------------------------------------------
/enron-importer/README.rst:
--------------------------------------------------------------------------------
1 | Enron Email Importer
2 | --------------------
3 |
4 | This is a program for importing the Enron Email Dataset into a HBase database. You can download the Enron Email Dataset from http://www.cs.cmu.edu/~enron/enron_mail_20110402.tgz
5 |
6 | This program works fine with the Enron Email Dataset. Once you have download and uncompressed the dataset, create a folder called 'data' and place the emails there. The structure should be as follows:
7 |
8 | ::
9 |
10 | + enron-importer
11 | -+ data
12 | - DELETIONS.txt
13 | -+ maildir
14 |
15 | You can use this program to import your own dataset, although it may not fully work.
16 |
17 | In order to run this program succesfully you also need to install HBase. The program has been tested successfully against 'HBase 0.90.6'.
18 |
19 | Run it
20 | ------
21 |
22 | Before running the program, check HBase is running:
23 |
24 | ::
25 |
26 | $ cd /usr/local/share/hbase/bin
27 | $ sudo ./start-hbase.sh
28 |
29 |
30 | Now build the program with Maven:
31 |
32 | ::
33 |
34 | $ mvn clean install
35 |
36 | Then run it:
37 |
38 | ::
39 |
40 | $ mvn exec:java -Dexec.mainClass="com.igalia.enron_importer.Main"
41 |
--------------------------------------------------------------------------------
/metamail-ui/public/csv/msg-thread-length.csv:
--------------------------------------------------------------------------------
1 | name,value
2 | Pueblo,59
3 | Test,59
4 | Deferral Enrollment 2001,61
5 | test,61
6 | WP-02 Data Response,61
7 | California,63
8 | Yahoo! Breaking News,63
9 | Reminder,64
10 | Update,67
11 | Succession Plan,68
12 | meeting,69
13 | RE: Hello,70
14 | Synchronization Log:,70
15 | Vacation,72
16 | GISB,77
17 | Confidentiality Agreement,78
18 | All-Employee Meeting,83
19 | natsource checkout,89
20 | Datek Online execution report,95
21 | Year End 2000 Performance Feedback,95
22 | Gas Indices,103
23 | Meeting,104
24 | FYI,114
25 | WARNING: Your mailbox is approaching the size limit,115
26 | Lunch,118
27 | RIGZONE Industry News,118
28 | Organization Announcement,122
29 | Power Indices,129
30 | Hi,130
31 | Mid-Year 2001 Performance Feedback,131
32 | apb,135
33 | Hey,143
34 | Congratulations,144
35 | Williams Energy News Live -- today's video newscast,150
36 | Organizational Announcement,152
37 | Organizational Changes,156
38 | apb checkout,185
39 | Energy Issues,193
40 | EnTouch Newsletter,196
41 | (no subject),204
42 | Enron Mentions,385
43 | Schedule Crawler: HourAhead Failure ,405
44 | FW:,434
45 | Schedule Crawler: HourAhead Failure,466
46 | Demand Ken Lay Donate Proceeds from Enron Stock Sales,582
47 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/test/chmod.js:
--------------------------------------------------------------------------------
1 | var mkdirp = require('../').mkdirp;
2 | var path = require('path');
3 | var fs = require('fs');
4 | var test = require('tap').test;
5 |
6 | var ps = [ '', 'tmp' ];
7 |
8 | for (var i = 0; i < 25; i++) {
9 | var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
10 | ps.push(dir);
11 | }
12 |
13 | var file = ps.join('/');
14 |
15 | test('chmod-pre', function (t) {
16 | var mode = 0744
17 | mkdirp(file, mode, function (er) {
18 | t.ifError(er, 'should not error');
19 | fs.stat(file, function (er, stat) {
20 | t.ifError(er, 'should exist');
21 | t.ok(stat && stat.isDirectory(), 'should be directory');
22 | t.equal(stat && stat.mode & 0777, mode, 'should be 0744');
23 | t.end();
24 | });
25 | });
26 | });
27 |
28 | test('chmod', function (t) {
29 | var mode = 0755
30 | mkdirp(file, mode, function (er) {
31 | t.ifError(er, 'should not error');
32 | fs.stat(file, function (er, stat) {
33 | t.ifError(er, 'should exist');
34 | t.ok(stat && stat.isDirectory(), 'should be directory');
35 | t.end();
36 | });
37 | });
38 | });
39 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright 2010 James Halliday (mail@substack.net)
2 |
3 | This project is free software released under the MIT/X11 license:
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/LICENSE:
--------------------------------------------------------------------------------
1 | (The MIT License)
2 |
3 | Copyright (c) 2010 Sencha Inc.
4 | Copyright (c) 2011 LearnBoost
5 | Copyright (c) 2011 TJ Holowaychuk
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining
8 | a copy of this software and associated documentation files (the
9 | 'Software'), to deal in the Software without restriction, including
10 | without limitation the rights to use, copy, modify, merge, publish,
11 | distribute, sublicense, and/or sell copies of the Software, and to
12 | permit persons to whom the Software is furnished to do so, subject to
13 | the following conditions:
14 |
15 | The above copyright notice and this permission notice shall be
16 | included in all copies or substantial portions of the Software.
17 |
18 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
19 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
21 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
22 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/https.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Connect - HTTPServer
4 | * Copyright(c) 2010 Sencha Inc.
5 | * Copyright(c) 2011 TJ Holowaychuk
6 | * MIT Licensed
7 | */
8 |
9 | /**
10 | * Module dependencies.
11 | */
12 |
13 | var HTTPServer = require('./http').Server
14 | , https = require('https');
15 |
16 | /**
17 | * Initialize a new `Server` with the given
18 | *`options` and `middleware`. The HTTPS api
19 | * is identical to the [HTTP](http.html) server,
20 | * however TLS `options` must be provided before
21 | * passing in the optional middleware.
22 | *
23 | * @params {Object} options
24 | * @params {Array} middleawre
25 | * @return {Server}
26 | * @api public
27 | */
28 |
29 | var Server = exports.Server = function HTTPSServer(options, middleware) {
30 | this.stack = [];
31 | middleware.forEach(function(fn){
32 | this.use(fn);
33 | }, this);
34 | https.Server.call(this, options, this.handle);
35 | };
36 |
37 | /**
38 | * Inherit from `http.Server.prototype`.
39 | */
40 |
41 | Server.prototype.__proto__ = https.Server.prototype;
42 |
43 | // mixin HTTPServer methods
44 |
45 | Object.keys(HTTPServer.prototype).forEach(function(method){
46 | Server.prototype[method] = HTTPServer.prototype[method];
47 | });
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/test/perm_sync.js:
--------------------------------------------------------------------------------
1 | var mkdirp = require('../');
2 | var path = require('path');
3 | var fs = require('fs');
4 | var test = require('tap').test;
5 |
6 | test('sync perm', function (t) {
7 | t.plan(2);
8 | var file = '/tmp/' + (Math.random() * (1<<30)).toString(16) + '.json';
9 |
10 | mkdirp.sync(file, 0755);
11 | path.exists(file, function (ex) {
12 | if (!ex) t.fail('file not created')
13 | else fs.stat(file, function (err, stat) {
14 | if (err) t.fail(err)
15 | else {
16 | t.equal(stat.mode & 0777, 0755);
17 | t.ok(stat.isDirectory(), 'target not a directory');
18 | t.end();
19 | }
20 | })
21 | });
22 | });
23 |
24 | test('sync root perm', function (t) {
25 | t.plan(1);
26 |
27 | var file = '/tmp';
28 | mkdirp.sync(file, 0755);
29 | path.exists(file, function (ex) {
30 | if (!ex) t.fail('file not created')
31 | else fs.stat(file, function (err, stat) {
32 | if (err) t.fail(err)
33 | else {
34 | t.ok(stat.isDirectory(), 'target not a directory');
35 | t.end();
36 | }
37 | })
38 | });
39 | });
40 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/test/race.js:
--------------------------------------------------------------------------------
1 | var mkdirp = require('../').mkdirp;
2 | var path = require('path');
3 | var fs = require('fs');
4 | var test = require('tap').test;
5 |
6 | test('race', function (t) {
7 | t.plan(4);
8 | var ps = [ '', 'tmp' ];
9 |
10 | for (var i = 0; i < 25; i++) {
11 | var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
12 | ps.push(dir);
13 | }
14 | var file = ps.join('/');
15 |
16 | var res = 2;
17 | mk(file, function () {
18 | if (--res === 0) t.end();
19 | });
20 |
21 | mk(file, function () {
22 | if (--res === 0) t.end();
23 | });
24 |
25 | function mk (file, cb) {
26 | mkdirp(file, 0755, function (err) {
27 | if (err) t.fail(err);
28 | else path.exists(file, function (ex) {
29 | if (!ex) t.fail('file not created')
30 | else fs.stat(file, function (err, stat) {
31 | if (err) t.fail(err)
32 | else {
33 | t.equal(stat.mode & 0777, 0755);
34 | t.ok(stat.isDirectory(), 'target not a directory');
35 | if (cb) cb();
36 | }
37 | })
38 | })
39 | });
40 | }
41 | });
42 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "express",
3 | "description": "Sinatra inspired web development framework",
4 | "version": "2.5.8",
5 | "author": "TJ Holowaychuk ",
6 | "contributors": [
7 | { "name": "TJ Holowaychuk", "email": "tj@vision-media.ca" },
8 | { "name": "Aaron Heckmann", "email": "aaron.heckmann+github@gmail.com" },
9 | { "name": "Ciaran Jessup", "email": "ciaranj@gmail.com" },
10 | { "name": "Guillermo Rauch", "email": "rauchg@gmail.com" }
11 | ],
12 | "dependencies": {
13 | "connect": "1.x",
14 | "mime": "1.2.4",
15 | "qs": "0.4.x",
16 | "mkdirp": "0.3.0"
17 | },
18 | "devDependencies": {
19 | "connect-form": "0.2.1",
20 | "ejs": "0.4.2",
21 | "expresso": "0.9.2",
22 | "hamljs": "0.6.x",
23 | "jade": "0.16.2",
24 | "stylus": "0.13.0",
25 | "should": "0.3.2",
26 | "express-messages": "0.0.2",
27 | "node-markdown": ">= 0.0.1",
28 | "connect-redis": ">= 0.0.1"
29 | },
30 | "keywords": ["framework", "sinatra", "web", "rest", "restful"],
31 | "repository": "git://github.com/visionmedia/express",
32 | "main": "index",
33 | "bin": { "express": "./bin/express" },
34 | "scripts": {
35 | "test": "make test",
36 | "prepublish" : "npm prune"
37 | },
38 | "engines": { "node": ">= 0.4.1 < 0.7.0" }
39 | }
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/middleware/vhost.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Connect - vhost
4 | * Copyright(c) 2010 Sencha Inc.
5 | * Copyright(c) 2011 TJ Holowaychuk
6 | * MIT Licensed
7 | */
8 |
9 | /**
10 | * Setup vhost for the given `hostname` and `server`.
11 | *
12 | * Examples:
13 | *
14 | * connect(
15 | * connect.vhost('foo.com',
16 | * connect.createServer(...middleware...)
17 | * ),
18 | * connect.vhost('bar.com',
19 | * connect.createServer(...middleware...)
20 | * )
21 | * );
22 | *
23 | * @param {String} hostname
24 | * @param {Server} server
25 | * @return {Function}
26 | * @api public
27 | */
28 |
29 | module.exports = function vhost(hostname, server){
30 | if (!hostname) throw new Error('vhost hostname required');
31 | if (!server) throw new Error('vhost server required');
32 | var regexp = new RegExp('^' + hostname.replace(/[*]/g, '(.*?)') + '$');
33 | if (server.onvhost) server.onvhost(hostname);
34 | return function vhost(req, res, next){
35 | if (!req.headers.host) return next();
36 | var host = req.headers.host.split(':')[0];
37 | if (req.subdomains = regexp.exec(host)) {
38 | req.subdomains = req.subdomains[0].split('.').slice(0, -1);
39 | server.emit("request", req, res);
40 | } else {
41 | next();
42 | }
43 | };
44 | };
45 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-querystring-parser.js:
--------------------------------------------------------------------------------
1 | var common = require('../common');
2 | var QuerystringParser = require(common.lib + '/querystring_parser').QuerystringParser,
3 | Buffer = require('buffer').Buffer,
4 | gently,
5 | parser;
6 |
7 | function test(test) {
8 | gently = new Gently();
9 | parser = new QuerystringParser();
10 | test();
11 | gently.verify(test.name);
12 | }
13 |
14 | test(function constructor() {
15 | assert.equal(parser.buffer, '');
16 | assert.equal(parser.constructor.name, 'QuerystringParser');
17 | });
18 |
19 | test(function write() {
20 | var a = new Buffer('a=1');
21 | assert.equal(parser.write(a), a.length);
22 |
23 | var b = new Buffer('&b=2');
24 | parser.write(b);
25 | assert.equal(parser.buffer, a + b);
26 | });
27 |
28 | test(function end() {
29 | var FIELDS = {a: ['b', {c: 'd'}], e: 'f'};
30 |
31 | gently.expect(GENTLY.hijacked.querystring, 'parse', function(str) {
32 | assert.equal(str, parser.buffer);
33 | return FIELDS;
34 | });
35 |
36 | gently.expect(parser, 'onField', Object.keys(FIELDS).length, function(key, val) {
37 | assert.deepEqual(FIELDS[key], val);
38 | });
39 |
40 | gently.expect(parser, 'onEnd');
41 |
42 | parser.buffer = 'my buffer';
43 | parser.end();
44 | assert.equal(parser.buffer, '');
45 | });
46 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/qs/examples.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Module dependencies.
4 | */
5 |
6 | var qs = require('./');
7 |
8 | var obj = qs.parse('foo');
9 | console.log(obj)
10 |
11 | var obj = qs.parse('foo=bar=baz');
12 | console.log(obj)
13 |
14 | var obj = qs.parse('users[]');
15 | console.log(obj)
16 |
17 | var obj = qs.parse('name=tj&email=tj@vision-media.ca');
18 | console.log(obj)
19 |
20 | var obj = qs.parse('users[]=tj&users[]=tobi&users[]=jane');
21 | console.log(obj)
22 |
23 | var obj = qs.parse('user[name][first]=tj&user[name][last]=holowaychuk');
24 | console.log(obj)
25 |
26 | var obj = qs.parse('users[][name][first]=tj&users[][name][last]=holowaychuk');
27 | console.log(obj)
28 |
29 | var obj = qs.parse('a=a&a=b&a=c');
30 | console.log(obj)
31 |
32 | var obj = qs.parse('user[tj]=tj&user[tj]=TJ');
33 | console.log(obj)
34 |
35 | var obj = qs.parse('user[names]=tj&user[names]=TJ&user[names]=Tyler');
36 | console.log(obj)
37 |
38 | var obj = qs.parse('user[name][first]=tj&user[name][first]=TJ');
39 | console.log(obj)
40 |
41 | var obj = qs.parse('user[0]=tj&user[1]=TJ');
42 | console.log(obj)
43 |
44 | var obj = qs.parse('user[0]=tj&user[]=TJ');
45 | console.log(obj)
46 |
47 | var obj = qs.parse('user[0]=tj&user[foo]=TJ');
48 | console.log(obj)
49 |
50 | var str = qs.stringify({ user: { name: 'Tobi', email: 'tobi@learnboost.com' }});
51 | console.log(str);
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/example/post.js:
--------------------------------------------------------------------------------
1 | require('../test/common');
2 | var http = require('http'),
3 | util = require('util'),
4 | formidable = require('formidable'),
5 | server;
6 |
7 | server = http.createServer(function(req, res) {
8 | if (req.url == '/') {
9 | res.writeHead(200, {'content-type': 'text/html'});
10 | res.end(
11 | ''
16 | );
17 | } else if (req.url == '/post') {
18 | var form = new formidable.IncomingForm(),
19 | fields = [];
20 |
21 | form
22 | .on('error', function(err) {
23 | res.writeHead(200, {'content-type': 'text/plain'});
24 | res.end('error:\n\n'+util.inspect(err));
25 | })
26 | .on('field', function(field, value) {
27 | console.log(field, value);
28 | fields.push([field, value]);
29 | })
30 | .on('end', function() {
31 | console.log('-> post done');
32 | res.writeHead(200, {'content-type': 'text/plain'});
33 | res.end('received fields:\n\n '+util.inspect(fields));
34 | });
35 | form.parse(req);
36 | } else {
37 | res.writeHead(404, {'content-type': 'text/plain'});
38 | res.end('404');
39 | }
40 | });
41 | server.listen(TEST_PORT);
42 |
43 | console.log('listening on http://localhost:'+TEST_PORT+'/');
44 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/tool/record.js:
--------------------------------------------------------------------------------
1 | var http = require('http');
2 | var fs = require('fs');
3 | var connections = 0;
4 |
5 | var server = http.createServer(function(req, res) {
6 | var socket = req.socket;
7 | console.log('Request: %s %s -> %s', req.method, req.url, socket.filename);
8 |
9 | req.on('end', function() {
10 | if (req.url !== '/') {
11 | res.end(JSON.stringify({
12 | method: req.method,
13 | url: req.url,
14 | filename: socket.filename,
15 | }));
16 | return;
17 | }
18 |
19 | res.writeHead(200, {'content-type': 'text/html'});
20 | res.end(
21 | ''
26 | );
27 | });
28 | });
29 |
30 | server.on('connection', function(socket) {
31 | connections++;
32 |
33 | socket.id = connections;
34 | socket.filename = 'connection-' + socket.id + '.http';
35 | socket.file = fs.createWriteStream(socket.filename);
36 | socket.pipe(socket.file);
37 |
38 | console.log('--> %s', socket.filename);
39 | socket.on('close', function() {
40 | console.log('<-- %s', socket.filename);
41 | });
42 | });
43 |
44 | var port = process.env.PORT || 8080;
45 | server.listen(port, function() {
46 | console.log('Recording connections on port %s', port);
47 | });
48 |
--------------------------------------------------------------------------------
/metamail-ui/app.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Module dependencies.
4 | */
5 |
6 | var express = require('express'),
7 | routes = require('./routes');
8 |
9 | var app = module.exports = express.createServer();
10 |
11 | // Configuration
12 |
13 | app.configure(function(){
14 | app.set('views', __dirname + '/views');
15 | app.set('view engine', 'ejs');
16 | app.use(express.bodyParser());
17 | app.use(express.methodOverride());
18 | app.use(app.router);
19 | app.use(express.static(__dirname + '/public'));
20 | });
21 |
22 | app.configure('development', function(){
23 | app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
24 | });
25 |
26 | app.configure('production', function(){
27 | app.use(express.errorHandler());
28 | });
29 |
30 | // Routes
31 |
32 | app.get('/', routes.index);
33 | app.get('/graphics/msg-by-size', routes.msg_by_size);
34 | app.get('/graphics/msg-by-day-week', routes.msg_by_day_week);
35 | app.get('/graphics/msg-by-hour-day', routes.msg_by_hour_day);
36 | app.get('/graphics/msg-by-month', routes.msg_by_month);
37 | app.get('/graphics/msg-by-year', routes.msg_by_year);
38 | app.get('/graphics/msg-received', routes.msg_received);
39 | app.get('/graphics/msg-sent', routes.msg_sent);
40 | app.get('/graphics/msg-thread-length', routes.msg_thread_length);
41 |
42 | // Listen to env.PORT if it's defined (needed to deploy in Heroku)
43 | var port = process.env.PORT || 3000;
44 | app.listen(port, function() {
45 | console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
46 | });
47 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/cache.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Connect - Cache
4 | * Copyright(c) 2011 Sencha Inc.
5 | * MIT Licensed
6 | */
7 |
8 | /**
9 | * Expose `Cache`.
10 | */
11 |
12 | module.exports = Cache;
13 |
14 | /**
15 | * LRU cache store.
16 | *
17 | * @param {Number} limit
18 | * @api private
19 | */
20 |
21 | function Cache(limit) {
22 | this.store = {};
23 | this.keys = [];
24 | this.limit = limit;
25 | }
26 |
27 | /**
28 | * Touch `key`, promoting the object.
29 | *
30 | * @param {String} key
31 | * @param {Number} i
32 | * @api private
33 | */
34 |
35 | Cache.prototype.touch = function(key, i){
36 | this.keys.splice(i,1);
37 | this.keys.push(key);
38 | };
39 |
40 | /**
41 | * Remove `key`.
42 | *
43 | * @param {String} key
44 | * @api private
45 | */
46 |
47 | Cache.prototype.remove = function(key){
48 | delete this.store[key];
49 | };
50 |
51 | /**
52 | * Get the object stored for `key`.
53 | *
54 | * @param {String} key
55 | * @return {Array}
56 | * @api private
57 | */
58 |
59 | Cache.prototype.get = function(key){
60 | return this.store[key];
61 | };
62 |
63 | /**
64 | * Add a cache `key`.
65 | *
66 | * @param {String} key
67 | * @return {Array}
68 | * @api private
69 | */
70 |
71 | Cache.prototype.add = function(key){
72 | // initialize store
73 | var len = this.keys.push(key);
74 |
75 | // limit reached, invalid LRU
76 | if (len > this.limit) this.remove(this.keys.shift());
77 |
78 | var arr = this.store[key] = [];
79 | arr.createdAt = new Date;
80 | return arr;
81 | };
82 |
--------------------------------------------------------------------------------
/metamail-ui/public/csv/msg-by-month.csv:
--------------------------------------------------------------------------------
1 | MONTH:1-1980 522
2 | MONTH:1-1997 1
3 | MONTH:1-1998 4
4 | MONTH:1-1999 130
5 | MONTH:1-2000 6357
6 | MONTH:1-2001 24013
7 | MONTH:1-2002 21013
8 | MONTH:1-2044 3
9 | MONTH:10-1997 28
10 | MONTH:10-1998 8
11 | MONTH:10-1999 1394
12 | MONTH:10-2000 24720
13 | MONTH:10-2001 37083
14 | MONTH:10-2002 1
15 | MONTH:11-1997 32
16 | MONTH:11-1998 56
17 | MONTH:11-1999 1310
18 | MONTH:11-2000 32494
19 | MONTH:11-2001 28594
20 | MONTH:11-2012 2
21 | MONTH:12-1998 107
22 | MONTH:12-1999 3545
23 | MONTH:12-2000 31403
24 | MONTH:12-2001 11426
25 | MONTH:12-2002 1
26 | MONTH:12-2005 1
27 | MONTH:12-2020 2
28 | MONTH:12-2043 1
29 | MONTH:2-1999 91
30 | MONTH:2-2000 7191
31 | MONTH:2-2001 23150
32 | MONTH:2-2002 8282
33 | MONTH:2-2004 70
34 | MONTH:2-2007 1
35 | MONTH:3-1997 39
36 | MONTH:3-1999 112
37 | MONTH:3-2000 8744
38 | MONTH:3-2001 28522
39 | MONTH:3-2002 3475
40 | MONTH:4-1986 1
41 | MONTH:4-1997 36
42 | MONTH:4-1999 97
43 | MONTH:4-2000 8626
44 | MONTH:4-2001 35645
45 | MONTH:4-2002 1156
46 | MONTH:5-1986 1
47 | MONTH:5-1997 32
48 | MONTH:5-1998 1
49 | MONTH:5-1999 662
50 | MONTH:5-2000 10242
51 | MONTH:5-2001 35665
52 | MONTH:5-2002 906
53 | MONTH:5-2024 1
54 | MONTH:6-1997 64
55 | MONTH:6-1999 645
56 | MONTH:6-2000 13703
57 | MONTH:6-2001 18890
58 | MONTH:6-2002 927
59 | MONTH:7-1997 56
60 | MONTH:7-1999 859
61 | MONTH:7-2000 13617
62 | MONTH:7-2001 10160
63 | MONTH:7-2002 244
64 | MONTH:8-1997 77
65 | MONTH:8-1999 1060
66 | MONTH:8-2000 19058
67 | MONTH:8-2001 8918
68 | MONTH:9-1997 72
69 | MONTH:9-1998 1
70 | MONTH:9-1999 1239
71 | MONTH:9-2000 19939
72 | MONTH:9-2001 10890
73 | MONTH:9-2002 6
74 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mime/types/node.types:
--------------------------------------------------------------------------------
1 | # What: Google Chrome Extension
2 | # Why: To allow apps to (work) be served with the right content type header.
3 | # http://codereview.chromium.org/2830017
4 | # Added by: niftylettuce
5 | application/x-chrome-extension crx
6 |
7 | # What: OTF Message Silencer
8 | # Why: To silence the "Resource interpreted as font but transferred with MIME
9 | # type font/otf" message that occurs in Google Chrome
10 | # Added by: niftylettuce
11 | font/opentype otf
12 |
13 | # What: HTC support
14 | # Why: To properly render .htc files such as CSS3PIE
15 | # Added by: niftylettuce
16 | text/x-component htc
17 |
18 | # What: HTML5 application cache manifest
19 | # Why: De-facto standard. Required by Mozilla browser when serving HTML5 apps
20 | # per https://developer.mozilla.org/en/offline_resources_in_firefox
21 | # Added by: louisremi
22 | text/cache-manifest appcache manifest
23 |
24 | # What: node binary buffer format
25 | # Why: semi-standard extension w/in the node community
26 | # Added by: tootallnate
27 | application/octet-stream buffer
28 |
29 | # What: The "protected" MP-4 formats used by iTunes.
30 | # Why: Required for streaming music to browsers (?)
31 | # Added by: broofa
32 | application/mp4 m4p
33 | audio/mp4 m4a
34 |
35 | # What: Music playlist format (http://en.wikipedia.org/wiki/M3U)
36 | # Why: See https://github.com/bentomas/node-mime/pull/6
37 | # Added by: mjrusso
38 | application/x-mpegURL m3u8
39 |
40 | # What: Video format, Part of RFC1890
41 | # Why: See https://github.com/bentomas/node-mime/pull/6
42 | # Added by: mjrusso
43 | video/MP2T ts
44 |
--------------------------------------------------------------------------------
/metamail-ui/public/csv/msg-received.csv:
--------------------------------------------------------------------------------
1 | name,value
2 | richard.shapiro@enron.com,7442
3 | jeff.dasovich@enron.com,6965
4 | steven.kean@enron.com,6184
5 | tana.jones@enron.com,5667
6 | james.steffes@enron.com,5086
7 | pete.davis@enron.com,4631
8 | susan.mara@enron.com,4452
9 | paul.kaufman@enron.com,4177
10 | louise.kitchen@enron.com,3739
11 | tim.belden@enron.com,3703
12 | sally.beck@enron.com,3414
13 | harry.kingerski@enron.com,3250
14 | gerald.nemec@enron.com,3137
15 | karen.denne@enron.com,3052
16 | mark.taylor@enron.com,3045
17 | john.lavorato@enron.com,3045
18 | joe.hartsoe@enron.com,2994
19 | sandra.mccubbin@enron.com,2988
20 | sarah.novosel@enron.com,2868
21 | alan.comnes@enron.com,2801
22 | daren.farmer@enron.com,2722
23 | kate.symes@enron.com,2717
24 | sara.shackleton@enron.com,2696
25 | elizabeth.sager@enron.com,2645
26 | richard.sanders@enron.com,2623
27 | linda.robertson@enron.com,2472
28 | greg.whalley@enron.com,2316
29 | william.bradford@enron.com,2259
30 | mark.palmer@enron.com,2237
31 | benjamin.rogers@enron.com,2171
32 | mary.hain@enron.com,2113
33 | don.baughman@enron.com,2101
34 | skean@enron.com,2082
35 | chris.germany@enron.com,2017
36 | kenneth.lay@enron.com,1997
37 | michelle.lokay@enron.com,1828
38 | susan.bailey@enron.com,1826
39 | janel.guerrero@enron.com,1824
40 | mike.grigsby@enron.com,1817
41 | steven.harris@enron.com,1810
42 | christian.yoder@enron.com,1804
43 | robert.badeer@enron.com,1790
44 | dana.davis@enron.com,1756
45 | mark.haedicke@enron.com,1716
46 | jdasovic@enron.com,1691
47 | jeff.skilling@enron.com,1690
48 | matthew.lenhart@enron.com,1676
49 | scott.neal@enron.com,1675
50 | lorraine.lindberg@enron.com,1653
51 | edward.sacks@enron.com,1642
52 |
--------------------------------------------------------------------------------
/metamail-ui/public/csv/msg-sent.csv:
--------------------------------------------------------------------------------
1 | name,value
2 | jeff.dasovich@enron.com,11385
3 | chris.germany@enron.com,8781
4 | pete.davis@enron.com,8496
5 | tana.jones@enron.com,8140
6 | enron.announcements@enron.com,7651
7 | vince.kaminski@enron.com,6718
8 | steven.kean@enron.com,6477
9 | kate.symes@enron.com,5415
10 | matthew.lenhart@enron.com,5265
11 | eric.bass@enron.com,5158
12 | no.address@enron.com,4480
13 | debra.perlingiere@enron.com,4340
14 | sally.beck@enron.com,4336
15 | kay.mann@enron.com,4308
16 | susan.scott@enron.com,3998
17 | gerald.nemec@enron.com,3861
18 | drew.fossum@enron.com,3702
19 | benjamin.rogers@enron.com,3425
20 | richard.sanders@enron.com,3255
21 | phillip.love@enron.com,3112
22 | carol.clair@enron.com,3069
23 | daren.farmer@enron.com,2812
24 | jeffrey.shankman@enron.com,2628
25 | elizabeth.sager@enron.com,2617
26 | john.lavorato@enron.com,2541
27 | sara.shackleton@enron.com,2328
28 | 40enron@enron.com,2230
29 | phillip.allen@enron.com,2193
30 | mark.haedicke@enron.com,1903
31 | scott.neal@enron.com,1826
32 | michelle.cash@enron.com,1815
33 | outlook.team@enron.com,1750
34 | mike.grigsby@enron.com,1691
35 | susan.mara@enron.com,1683
36 | d..steffes@enron.com,1636
37 | louise.kitchen@enron.com,1560
38 | john.arnold@enron.com,1521
39 | mary.hain@enron.com,1455
40 | arsystem@mailman.enron.com,1445
41 | larry.campbell@enron.com,1387
42 | james.steffes@enron.com,1326
43 | errol.mclaughlin@enron.com,1307
44 | j.kaminski@enron.com,1228
45 | lynn.blair@enron.com,1210
46 | richard.shapiro@enron.com,1206
47 | mark.taylor@enron.com,1201
48 | kimberly.watson@enron.com,1169
49 | maureen.mcvicker@enron.com,1133
50 | rosalee.fleming@enron.com,1091
51 | stanley.horton@enron.com,1071
52 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/lib/express.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Express
4 | * Copyright(c) 2010 TJ Holowaychuk
5 | * MIT Licensed
6 | */
7 |
8 | /**
9 | * Module dependencies.
10 | */
11 |
12 | var connect = require('connect')
13 | , HTTPSServer = require('./https')
14 | , HTTPServer = require('./http')
15 | , Route = require('./router/route')
16 |
17 | /**
18 | * Re-export connect auto-loaders.
19 | *
20 | * This prevents the need to `require('connect')` in order
21 | * to access core middleware, so for example `express.logger()` instead
22 | * of `require('connect').logger()`.
23 | */
24 |
25 | var exports = module.exports = connect.middleware;
26 |
27 | /**
28 | * Framework version.
29 | */
30 |
31 | exports.version = '2.5.8';
32 |
33 | /**
34 | * Shortcut for `new Server(...)`.
35 | *
36 | * @param {Function} ...
37 | * @return {Server}
38 | * @api public
39 | */
40 |
41 | exports.createServer = function(options){
42 | if ('object' == typeof options) {
43 | return new HTTPSServer(options, Array.prototype.slice.call(arguments, 1));
44 | } else {
45 | return new HTTPServer(Array.prototype.slice.call(arguments));
46 | }
47 | };
48 |
49 | /**
50 | * Expose constructors.
51 | */
52 |
53 | exports.HTTPServer = HTTPServer;
54 | exports.HTTPSServer = HTTPSServer;
55 | exports.Route = Route;
56 |
57 | /**
58 | * View extensions.
59 | */
60 |
61 | exports.View =
62 | exports.view = require('./view');
63 |
64 | /**
65 | * Response extensions.
66 | */
67 |
68 | require('./response');
69 |
70 | /**
71 | * Request extensions.
72 | */
73 |
74 | require('./request');
75 |
76 | // Error handler title
77 |
78 | exports.errorHandler.title = 'Express';
79 |
80 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/example/upload.js:
--------------------------------------------------------------------------------
1 | require('../test/common');
2 | var http = require('http'),
3 | util = require('util'),
4 | formidable = require('formidable'),
5 | server;
6 |
7 | server = http.createServer(function(req, res) {
8 | if (req.url == '/') {
9 | res.writeHead(200, {'content-type': 'text/html'});
10 | res.end(
11 | ''
16 | );
17 | } else if (req.url == '/upload') {
18 | var form = new formidable.IncomingForm(),
19 | files = [],
20 | fields = [];
21 |
22 | form.uploadDir = TEST_TMP;
23 |
24 | form
25 | .on('field', function(field, value) {
26 | console.log(field, value);
27 | fields.push([field, value]);
28 | })
29 | .on('file', function(field, file) {
30 | console.log(field, file);
31 | files.push([field, file]);
32 | })
33 | .on('end', function() {
34 | console.log('-> upload done');
35 | res.writeHead(200, {'content-type': 'text/plain'});
36 | res.write('received fields:\n\n '+util.inspect(fields));
37 | res.write('\n\n');
38 | res.end('received files:\n\n '+util.inspect(files));
39 | });
40 | form.parse(req);
41 | } else {
42 | res.writeHead(404, {'content-type': 'text/plain'});
43 | res.end('404');
44 | }
45 | });
46 | server.listen(TEST_PORT);
47 |
48 | console.log('listening on http://localhost:'+TEST_PORT+'/');
49 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/qs/History.md:
--------------------------------------------------------------------------------
1 |
2 | 0.4.2 / 2012-02-08
3 | ==================
4 |
5 | * Fixed: ensure objects are created when appropriate not arrays [aheckmann]
6 |
7 | 0.4.1 / 2012-01-26
8 | ==================
9 |
10 | * Fixed stringify()ing numbers. Closes #23
11 |
12 | 0.4.0 / 2011-11-21
13 | ==================
14 |
15 | * Allow parsing of an existing object (for `bodyParser()`) [jackyz]
16 | * Replaced expresso with mocha
17 |
18 | 0.3.2 / 2011-11-08
19 | ==================
20 |
21 | * Fixed global variable leak
22 |
23 | 0.3.1 / 2011-08-17
24 | ==================
25 |
26 | * Added `try/catch` around malformed uri components
27 | * Add test coverage for Array native method bleed-though
28 |
29 | 0.3.0 / 2011-07-19
30 | ==================
31 |
32 | * Allow `array[index]` and `object[property]` syntaxes [Aria Stewart]
33 |
34 | 0.2.0 / 2011-06-29
35 | ==================
36 |
37 | * Added `qs.stringify()` [Cory Forsyth]
38 |
39 | 0.1.0 / 2011-04-13
40 | ==================
41 |
42 | * Added jQuery-ish array support
43 |
44 | 0.0.7 / 2011-03-13
45 | ==================
46 |
47 | * Fixed; handle empty string and `== null` in `qs.parse()` [dmit]
48 | allows for convenient `qs.parse(url.parse(str).query)`
49 |
50 | 0.0.6 / 2011-02-14
51 | ==================
52 |
53 | * Fixed; support for implicit arrays
54 |
55 | 0.0.4 / 2011-02-09
56 | ==================
57 |
58 | * Fixed `+` as a space
59 |
60 | 0.0.3 / 2011-02-08
61 | ==================
62 |
63 | * Fixed case when right-hand value contains "]"
64 |
65 | 0.0.2 / 2011-02-07
66 | ==================
67 |
68 | * Fixed "=" presence in key
69 |
70 | 0.0.1 / 2011-02-07
71 | ==================
72 |
73 | * Initial release
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/lib/router/methods.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Express - router - methods
4 | * Copyright(c) 2010 TJ Holowaychuk
5 | * MIT Licensed
6 | */
7 |
8 | /**
9 | * Hypertext Transfer Protocol -- HTTP/1.1
10 | * http://www.ietf.org/rfc/rfc2616.txt
11 | */
12 |
13 | var RFC2616 = ['OPTIONS', 'GET', 'POST', 'PUT', 'DELETE', 'TRACE', 'CONNECT'];
14 |
15 | /**
16 | * HTTP Extensions for Distributed Authoring -- WEBDAV
17 | * http://www.ietf.org/rfc/rfc2518.txt
18 | */
19 |
20 | var RFC2518 = ['PROPFIND', 'PROPPATCH', 'MKCOL', 'COPY', 'MOVE', 'LOCK', 'UNLOCK'];
21 |
22 | /**
23 | * Versioning Extensions to WebDAV
24 | * http://www.ietf.org/rfc/rfc3253.txt
25 | */
26 |
27 | var RFC3253 = ['VERSION-CONTROL', 'REPORT', 'CHECKOUT', 'CHECKIN', 'UNCHECKOUT', 'MKWORKSPACE', 'UPDATE', 'LABEL', 'MERGE', 'BASELINE-CONTROL', 'MKACTIVITY'];
28 |
29 | /**
30 | * Ordered Collections Protocol (WebDAV)
31 | * http://www.ietf.org/rfc/rfc3648.txt
32 | */
33 |
34 | var RFC3648 = ['ORDERPATCH'];
35 |
36 | /**
37 | * Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol
38 | * http://www.ietf.org/rfc/rfc3744.txt
39 | */
40 |
41 | var RFC3744 = ['ACL'];
42 |
43 | /**
44 | * Web Distributed Authoring and Versioning (WebDAV) SEARCH
45 | * http://www.ietf.org/rfc/rfc5323.txt
46 | */
47 |
48 | var RFC5323 = ['SEARCH'];
49 |
50 | /**
51 | * PATCH Method for HTTP
52 | * http://www.ietf.org/rfc/rfc5789.txt
53 | */
54 |
55 | var RFC5789 = ['PATCH'];
56 |
57 | /**
58 | * Expose the methods.
59 | */
60 |
61 | module.exports = [].concat(
62 | RFC2616
63 | , RFC2518
64 | , RFC3253
65 | , RFC3648
66 | , RFC3744
67 | , RFC5323
68 | , RFC5789).map(function(method){
69 | return method.toLowerCase();
70 | });
71 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-multipart-parser.js:
--------------------------------------------------------------------------------
1 | var common = require('../common');
2 | var multipartParser = require(common.lib + '/multipart_parser'),
3 | MultipartParser = multipartParser.MultipartParser,
4 | events = require('events'),
5 | Buffer = require('buffer').Buffer,
6 | parser;
7 |
8 | function test(test) {
9 | parser = new MultipartParser();
10 | test();
11 | }
12 |
13 | test(function constructor() {
14 | assert.equal(parser.boundary, null);
15 | assert.equal(parser.state, 0);
16 | assert.equal(parser.flags, 0);
17 | assert.equal(parser.boundaryChars, null);
18 | assert.equal(parser.index, null);
19 | assert.equal(parser.lookbehind, null);
20 | assert.equal(parser.constructor.name, 'MultipartParser');
21 | });
22 |
23 | test(function initWithBoundary() {
24 | var boundary = 'abc';
25 | parser.initWithBoundary(boundary);
26 | assert.deepEqual(Array.prototype.slice.call(parser.boundary), [13, 10, 45, 45, 97, 98, 99]);
27 | assert.equal(parser.state, multipartParser.START);
28 |
29 | assert.deepEqual(parser.boundaryChars, {10: true, 13: true, 45: true, 97: true, 98: true, 99: true});
30 | });
31 |
32 | test(function parserError() {
33 | var boundary = 'abc',
34 | buffer = new Buffer(5);
35 |
36 | parser.initWithBoundary(boundary);
37 | buffer.write('--ad', 'ascii', 0);
38 | assert.equal(parser.write(buffer), 3);
39 | });
40 |
41 | test(function end() {
42 | (function testError() {
43 | assert.equal(parser.end().message, 'MultipartParser.end(): stream ended unexpectedly: ' + parser.explain());
44 | })();
45 |
46 | (function testRegular() {
47 | parser.state = multipartParser.END;
48 | assert.strictEqual(parser.end(), undefined);
49 | })();
50 | });
51 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/patch.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Connect
4 | * Copyright(c) 2011 TJ Holowaychuk
5 | * MIT Licensed
6 | */
7 |
8 | /**
9 | * Module dependencies.
10 | */
11 |
12 | var http = require('http')
13 | , res = http.OutgoingMessage.prototype;
14 |
15 | // original setHeader()
16 |
17 | var setHeader = res.setHeader;
18 |
19 | // original _renderHeaders()
20 |
21 | var _renderHeaders = res._renderHeaders;
22 |
23 | if (res._hasConnectPatch) return;
24 |
25 | /**
26 | * Provide a public "header sent" flag
27 | * until node does.
28 | *
29 | * @return {Boolean}
30 | * @api public
31 | */
32 |
33 | res.__defineGetter__('headerSent', function(){
34 | return this._headerSent;
35 | });
36 |
37 | /**
38 | * Set header `field` to `val`, special-casing
39 | * the `Set-Cookie` field for multiple support.
40 | *
41 | * @param {String} field
42 | * @param {String} val
43 | * @api public
44 | */
45 |
46 | res.setHeader = function(field, val){
47 | var key = field.toLowerCase()
48 | , prev;
49 |
50 | // special-case Set-Cookie
51 | if (this._headers && 'set-cookie' == key) {
52 | if (prev = this.getHeader(field)) {
53 | val = Array.isArray(prev)
54 | ? prev.concat(val)
55 | : [prev, val];
56 | }
57 | // charset
58 | } else if ('content-type' == key && this.charset) {
59 | val += '; charset=' + this.charset;
60 | }
61 |
62 | return setHeader.call(this, field, val);
63 | };
64 |
65 | /**
66 | * Proxy `res.end()` to expose a 'header' event,
67 | * allowing arbitrary augmentation before the header
68 | * fields are written to the socket.
69 | *
70 | * NOTE: this _only_ supports node's progressive header
71 | * field API aka `res.setHeader()`.
72 | */
73 |
74 | res._renderHeaders = function(){
75 | this.emit('header');
76 | return _renderHeaders.call(this);
77 | };
78 |
79 | res._hasConnectPatch = true;
80 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/middleware/limit.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Connect - limit
4 | * Copyright(c) 2011 TJ Holowaychuk
5 | * MIT Licensed
6 | */
7 |
8 | /**
9 | * Limit request bodies to the given size in `bytes`.
10 | *
11 | * A string representation of the bytesize may also be passed,
12 | * for example "5mb", "200kb", "1gb", etc.
13 | *
14 | * Examples:
15 | *
16 | * var server = connect(
17 | * connect.limit('5.5mb')
18 | * ).listen(3000);
19 | *
20 | * @param {Number|String} bytes
21 | * @return {Function}
22 | * @api public
23 | */
24 |
25 | module.exports = function limit(bytes){
26 | if ('string' == typeof bytes) bytes = parse(bytes);
27 | if ('number' != typeof bytes) throw new Error('limit() bytes required');
28 | return function limit(req, res, next){
29 | var received = 0
30 | , len = req.headers['content-length']
31 | ? parseInt(req.headers['content-length'], 10)
32 | : null;
33 |
34 | // deny the request
35 | function deny() {
36 | req.destroy();
37 | }
38 |
39 | // self-awareness
40 | if (req._limit) return next();
41 | req._limit = true;
42 |
43 | // limit by content-length
44 | if (len && len > bytes) {
45 | res.statusCode = 413;
46 | res.end('Request Entity Too Large');
47 | return;
48 | }
49 |
50 | // limit
51 | req.on('data', function(chunk){
52 | received += chunk.length;
53 | if (received > bytes) deny();
54 | });
55 |
56 | next();
57 | };
58 | };
59 |
60 | /**
61 | * Parse byte `size` string.
62 | *
63 | * @param {String} size
64 | * @return {Number}
65 | * @api private
66 | */
67 |
68 | function parse(size) {
69 | var parts = size.match(/^(\d+(?:\.\d+)?) *(kb|mb|gb)$/)
70 | , n = parseFloat(parts[1])
71 | , type = parts[2];
72 |
73 | var map = {
74 | kb: 1024
75 | , mb: 1024 * 1024
76 | , gb: 1024 * 1024 * 1024
77 | };
78 |
79 | return map[type] * n;
80 | }
--------------------------------------------------------------------------------
/metamail-ui/public/stylesheets/base.css:
--------------------------------------------------------------------------------
1 | body {
2 | height: 100%;
3 | margin: 0px auto;
4 | padding: 0px;
5 | padding-bottom: 80px;
6 | background: white;
7 | font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
8 | }
9 |
10 | #header {
11 | color: white;
12 | background: black;
13 | padding: 0px;
14 | padding-top: 10px;
15 | padding-left: 150px;
16 | padding-right: 150px;
17 | height: 80px;
18 | }
19 |
20 | #header a.title, a.title:visited {
21 | font-size: 36px;
22 | font-weight: bold;
23 | text-decoration: none;
24 | color: white;
25 | }
26 |
27 | #header .subtitle {
28 | display: block;
29 | font-size: 12px;
30 | margin-left: 5px;
31 | margin-top: -5px;
32 | }
33 |
34 | ul.menu {
35 | float: left;
36 | list-style-type: none;
37 | display: block;
38 | width: 200px;
39 | background-color: #eee;
40 | padding-left: 0px;
41 | }
42 |
43 | ul.menu > li {
44 | border-bottom: 1px solid black;
45 | }
46 |
47 | ul.menu > li:first-child {
48 | border-top: 1px solid black;
49 | }
50 |
51 | ul.menu > li > a {
52 | color: black;
53 | text-decoration: none;
54 | }
55 |
56 | ul.menu > li:hover {
57 | background: #ed0;
58 | }
59 |
60 | #center {
61 | width: 65%;
62 | margin: 0 auto;
63 | }
64 |
65 | div.chart {
66 | width: 65%;
67 | margin: 0 auto;
68 | }
69 |
70 | div.content {
71 | overflow: hidden;
72 | padding-left: 30px;
73 | }
74 |
75 | #container {
76 | min-height:100%;
77 | position:relative;
78 | }
79 |
80 | #footer {
81 | position: absolute;
82 | bottom: 0px;
83 | padding: 0px;
84 | padding-top: 4px;
85 | width: 100%;
86 | height: 80px;
87 | color: white;
88 | background: black;
89 | }
90 |
91 | #footer > p {
92 | font-size: 10px;
93 | text-align: center;
94 | vertical-align: text-bottom;
95 | }
96 |
97 | #footer > p > a:visited {
98 | color: white;
99 | }
100 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/middleware/favicon.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Connect - favicon
4 | * Copyright(c) 2010 Sencha Inc.
5 | * Copyright(c) 2011 TJ Holowaychuk
6 | * MIT Licensed
7 | */
8 |
9 | /**
10 | * Module dependencies.
11 | */
12 |
13 | var fs = require('fs')
14 | , utils = require('../utils');
15 |
16 | /**
17 | * Favicon cache.
18 | */
19 |
20 | var icon;
21 |
22 | /**
23 | * By default serves the connect favicon, or the favicon
24 | * located by the given `path`.
25 | *
26 | * Options:
27 | *
28 | * - `maxAge` cache-control max-age directive, defaulting to 1 day
29 | *
30 | * Examples:
31 | *
32 | * connect.createServer(
33 | * connect.favicon()
34 | * );
35 | *
36 | * connect.createServer(
37 | * connect.favicon(__dirname + '/public/favicon.ico')
38 | * );
39 | *
40 | * @param {String} path
41 | * @param {Object} options
42 | * @return {Function}
43 | * @api public
44 | */
45 |
46 | module.exports = function favicon(path, options){
47 | var options = options || {}
48 | , path = path || __dirname + '/../public/favicon.ico'
49 | , maxAge = options.maxAge || 86400000;
50 |
51 | return function favicon(req, res, next){
52 | if ('/favicon.ico' == req.url) {
53 | if (icon) {
54 | res.writeHead(200, icon.headers);
55 | res.end(icon.body);
56 | } else {
57 | fs.readFile(path, function(err, buf){
58 | if (err) return next(err);
59 | icon = {
60 | headers: {
61 | 'Content-Type': 'image/x-icon'
62 | , 'Content-Length': buf.length
63 | , 'ETag': '"' + utils.md5(buf) + '"'
64 | , 'Cache-Control': 'public, max-age=' + (maxAge / 1000)
65 | },
66 | body: buf
67 | };
68 | res.writeHead(200, icon.headers);
69 | res.end(icon.body);
70 | });
71 | }
72 | } else {
73 | next();
74 | }
75 | };
76 | };
--------------------------------------------------------------------------------
/enron-importer/pom.xml:
--------------------------------------------------------------------------------
1 |
3 | 4.0.0
4 |
5 | com.igalia
6 | mail-importer
7 | 0.0.1-SNAPSHOT
8 | jar
9 |
10 | enron-importer
11 | http://maven.apache.org
12 |
13 |
14 | UTF-8
15 |
16 |
17 |
18 |
19 | junit
20 | junit
21 | 4.13.1
22 | test
23 |
24 |
25 | org.apache.hbase
26 | hbase-client
27 | 1.1.2
28 |
29 |
30 | org.apache.hbase
31 | hbase-common
32 | 1.1.2
33 |
34 |
35 | commons-io
36 | commons-io
37 | 2.4
38 |
39 |
40 | commons-lang
41 | commons-lang
42 | 2.6
43 |
44 |
45 |
46 |
47 |
48 | org.apache.maven.plugins
49 | maven-compiler-plugin
50 | 3.3
51 |
52 | 1.6
53 | 1.6
54 |
55 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/metamail-ui/views/.scatterchart/scatterchart.js:
--------------------------------------------------------------------------------
1 | /*
2 | var xdata = [5, 10, 15, 20],
3 | ydata = [3, 17, 4, 6];
4 | */
5 | var xdata = [1998,1998,1998,1999,1999,1999,2000,2000,2000,2001,2001,2001,2002,2002,2002,2003,2003,2003];
6 | var ydata = [];
7 | for (var i = 1998; i <= 2003; i++) {
8 | for (var j = 0; j < 3; j++) {
9 | ydata.push(Math.floor(Math.random()*101));
10 | }
11 | }
12 |
13 |
14 | var margin = {top: 20, right: 15, bottom: 60, left: 60}
15 | , width = 960 - margin.left - margin.right
16 | , height = 500 - margin.top - margin.bottom;
17 |
18 | var x = d3.scale.linear()
19 | .domain([d3.min(xdata), d3.max(xdata)])
20 | .range([ 0, width ]);
21 |
22 | var y = d3.scale.linear()
23 | .domain([0, d3.max(ydata)])
24 | .range([ height, 0 ]);
25 |
26 | var chart = d3.select('body')
27 | .append('svg:svg')
28 | .attr('width', width + margin.right + margin.left)
29 | .attr('height', height + margin.top + margin.bottom)
30 | .attr('class', 'chart')
31 |
32 | var main = chart.append('g')
33 | .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')
34 | .attr('width', width)
35 | .attr('height', height)
36 | .attr('class', 'main')
37 |
38 | // draw the x axis
39 | var xAxis = d3.svg.axis()
40 | .scale(x)
41 | .orient('bottom');
42 |
43 | main.append('g')
44 | .attr('transform', 'translate(0,' + height + ')')
45 | .attr('class', 'main axis date')
46 | .call(xAxis);
47 |
48 | // draw the y axis
49 | var yAxis = d3.svg.axis()
50 | .scale(y)
51 | .orient('left');
52 |
53 | main.append('g')
54 | .attr('transform', 'translate(0,0)')
55 | .attr('class', 'main axis date')
56 | .call(yAxis);
57 |
58 | var g = main.append("svg:g");
59 |
60 | g.selectAll("scatter-dots")
61 | .data(ydata)
62 | .enter().append("svg:circle")
63 | .attr("cy", function (d) { return y(d); } )
64 | .attr("cx", function (d,i) { return x(xdata[i]); } )
65 | .attr("r", 10)
66 | .style("opacity", 0.6);
67 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/lib/file.js:
--------------------------------------------------------------------------------
1 | if (global.GENTLY) require = GENTLY.hijack(require);
2 |
3 | var util = require('./util'),
4 | WriteStream = require('fs').WriteStream,
5 | EventEmitter = require('events').EventEmitter,
6 | crypto = require('crypto');
7 |
8 | function File(properties) {
9 | EventEmitter.call(this);
10 |
11 | this.size = 0;
12 | this.path = null;
13 | this.name = null;
14 | this.type = null;
15 | this.hash = null;
16 | this.lastModifiedDate = null;
17 |
18 | this._writeStream = null;
19 |
20 | for (var key in properties) {
21 | this[key] = properties[key];
22 | }
23 |
24 | if(typeof this.hash === 'string') {
25 | this.hash = crypto.createHash(properties.hash);
26 | }
27 |
28 | this._backwardsCompatibility();
29 | }
30 | module.exports = File;
31 | util.inherits(File, EventEmitter);
32 |
33 | // @todo Next release: Show error messages when accessing these
34 | File.prototype._backwardsCompatibility = function() {
35 | var self = this;
36 | this.__defineGetter__('length', function() {
37 | return self.size;
38 | });
39 | this.__defineGetter__('filename', function() {
40 | return self.name;
41 | });
42 | this.__defineGetter__('mime', function() {
43 | return self.type;
44 | });
45 | };
46 |
47 | File.prototype.open = function() {
48 | this._writeStream = new WriteStream(this.path);
49 | };
50 |
51 | File.prototype.write = function(buffer, cb) {
52 | var self = this;
53 | this._writeStream.write(buffer, function() {
54 | if(self.hash) {
55 | self.hash.update(buffer);
56 | }
57 | self.lastModifiedDate = new Date();
58 | self.size += buffer.length;
59 | self.emit('progress', self.size);
60 | cb();
61 | });
62 | };
63 |
64 | File.prototype.end = function(cb) {
65 | var self = this;
66 | this._writeStream.end(function() {
67 | if(self.hash) {
68 | self.hash = self.hash.digest('hex');
69 | }
70 | self.emit('end');
71 | cb();
72 | });
73 | };
74 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/benchmark/bench-multipart-parser.js:
--------------------------------------------------------------------------------
1 | require('../test/common');
2 | var multipartParser = require('../lib/multipart_parser'),
3 | MultipartParser = multipartParser.MultipartParser,
4 | parser = new MultipartParser(),
5 | Buffer = require('buffer').Buffer,
6 | boundary = '-----------------------------168072824752491622650073',
7 | mb = 100,
8 | buffer = createMultipartBuffer(boundary, mb * 1024 * 1024),
9 | callbacks =
10 | { partBegin: -1,
11 | partEnd: -1,
12 | headerField: -1,
13 | headerValue: -1,
14 | partData: -1,
15 | end: -1,
16 | };
17 |
18 |
19 | parser.initWithBoundary(boundary);
20 | parser.onHeaderField = function() {
21 | callbacks.headerField++;
22 | };
23 |
24 | parser.onHeaderValue = function() {
25 | callbacks.headerValue++;
26 | };
27 |
28 | parser.onPartBegin = function() {
29 | callbacks.partBegin++;
30 | };
31 |
32 | parser.onPartData = function() {
33 | callbacks.partData++;
34 | };
35 |
36 | parser.onPartEnd = function() {
37 | callbacks.partEnd++;
38 | };
39 |
40 | parser.onEnd = function() {
41 | callbacks.end++;
42 | };
43 |
44 | var start = +new Date(),
45 | nparsed = parser.write(buffer),
46 | duration = +new Date - start,
47 | mbPerSec = (mb / (duration / 1000)).toFixed(2);
48 |
49 | console.log(mbPerSec+' mb/sec');
50 |
51 | assert.equal(nparsed, buffer.length);
52 |
53 | function createMultipartBuffer(boundary, size) {
54 | var head =
55 | '--'+boundary+'\r\n'
56 | + 'content-disposition: form-data; name="field1"\r\n'
57 | + '\r\n'
58 | , tail = '\r\n--'+boundary+'--\r\n'
59 | , buffer = new Buffer(size);
60 |
61 | buffer.write(head, 'ascii', 0);
62 | buffer.write(tail, 'ascii', buffer.length - tail.length);
63 | return buffer;
64 | }
65 |
66 | process.on('exit', function() {
67 | for (var k in callbacks) {
68 | assert.equal(0, callbacks[k], k+' count off by '+callbacks[k]);
69 | }
70 | });
71 |
--------------------------------------------------------------------------------
/mail-analyzer/src/main/java/com/igalia/metamail/Main.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Metamail
3 | *
4 | * Copyright (C) 2012 Igalia, S.L.
5 | *
6 | * This program is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU Affero General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU Affero General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Affero General Public License
17 | * along with this program. If not, see .
18 | */
19 |
20 | package com.igalia.metamail;
21 |
22 | import java.io.ByteArrayInputStream;
23 | import java.io.File;
24 | import java.io.IOException;
25 | import java.io.InputStream;
26 | import java.util.Properties;
27 |
28 | import javax.mail.MessagingException;
29 | import javax.mail.Session;
30 |
31 | import org.apache.commons.io.FileUtils;
32 |
33 | import com.igalia.metamail.utils.MailRecord;
34 |
35 |
36 | /**
37 | *
38 | * @author Diego Pino García
39 | *
40 | */
41 | public class Main {
42 |
43 | public static void main( String[] args ) {
44 | try {
45 | String filename = "../enron-importer/data/maildir/lay-k/sent/1.";
46 | byte[] body = FileUtils.readFileToByteArray(new File(filename));
47 | InputStream input = new ByteArrayInputStream(body);
48 | Session s = Session.getDefaultInstance(new Properties());
49 |
50 | MailRecord mail = MailRecord.create(s, input);
51 | System.out.println( "To: " + mail.getTo());
52 | } catch (IOException e) {
53 | e.printStackTrace();
54 | } catch (MessagingException e) {
55 | e.printStackTrace();
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/BENCHMARK.rst:
--------------------------------------------------------------------------------
1 | BENCHMARK
2 | =========
3 |
4 | MapReduce Jobs
5 | --------------
6 |
7 | Each job was executed 20 times and later the average time was calculated. Check results of each execution in the attached .csv files (mail-analyzer/benchmark).
8 |
9 | +---------------------------+------------------------+--------------------+
10 | | Job | Average Time (seconds) | Standard Deviation |
11 | +===========================+========================+====================+
12 | | Messages By Size | 39.94 | 3.91 |
13 | +---------------------------+------------------------+--------------------+
14 | | Messages By Thread Length | 39.12 | 1.60 |
15 | +---------------------------+------------------------+--------------------+
16 | | Messages By Time Period | 44.58 | 3.18 |
17 | +---------------------------+------------------------+--------------------+
18 | | Messages Received | 43.12 | 1.41 |
19 | +---------------------------+------------------------+--------------------+
20 | | Messages Sent | 37.82 | 0.78 |
21 | +---------------------------+------------------------+--------------------+
22 |
23 | Hardare settings
24 | ----------------
25 |
26 | +---------+----------------------------------------------------+
27 | | Laptop: | Lenovo X220 |
28 | +---------+----------------------------------------------------+
29 | | OS: | Fedora 16 |
30 | +---------+----------------------------------------------------+
31 | | CPU: | Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz (4 CPUs) |
32 | +---------+----------------------------------------------------+
33 | | RAM: | 8GB DD3 |
34 | +---------+----------------------------------------------------+
35 | | HD: | INTEL SSDSA2M160G2LE |
36 | +---------+----------------------------------------------------+
37 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/qs/Readme.md:
--------------------------------------------------------------------------------
1 | # node-querystring
2 |
3 | query string parser for node supporting nesting, as it was removed from `0.3.x`, so this library provides the previous and commonly desired behaviour (and twice as fast). Used by [express](http://expressjs.com), [connect](http://senchalabs.github.com/connect) and others.
4 |
5 | ## Installation
6 |
7 | $ npm install qs
8 |
9 | ## Examples
10 |
11 | ```js
12 | var qs = require('qs');
13 |
14 | qs.parse('user[name][first]=Tobi&user[email]=tobi@learnboost.com');
15 | // => { user: { name: { first: 'Tobi' }, email: 'tobi@learnboost.com' } }
16 |
17 | qs.stringify({ user: { name: 'Tobi', email: 'tobi@learnboost.com' }})
18 | // => user[name]=Tobi&user[email]=tobi%40learnboost.com
19 | ```
20 |
21 | ## Testing
22 |
23 | Install dev dependencies:
24 |
25 | $ npm install -d
26 |
27 | and execute:
28 |
29 | $ make test
30 |
31 | ## License
32 |
33 | (The MIT License)
34 |
35 | Copyright (c) 2010 TJ Holowaychuk <tj@vision-media.ca>
36 |
37 | Permission is hereby granted, free of charge, to any person obtaining
38 | a copy of this software and associated documentation files (the
39 | 'Software'), to deal in the Software without restriction, including
40 | without limitation the rights to use, copy, modify, merge, publish,
41 | distribute, sublicense, and/or sell copies of the Software, and to
42 | permit persons to whom the Software is furnished to do so, subject to
43 | the following conditions:
44 |
45 | The above copyright notice and this permission notice shall be
46 | included in all copies or substantial portions of the Software.
47 |
48 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
49 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
50 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
51 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
52 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
53 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
54 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mime/README.md:
--------------------------------------------------------------------------------
1 | # mime
2 |
3 | Support for mapping between file extensions and MIME types. This module uses the latest version of the Apache "mime.types" file (maps over 620 types to 800+ extensions). It is also trivially easy to add your own types and extensions, should you need to do that.
4 |
5 | ## Install
6 |
7 | Install with [npm](http://github.com/isaacs/npm):
8 |
9 | npm install mime
10 |
11 | ## API - Queries
12 |
13 | ### mime.lookup(path)
14 | Get the mime type associated with a file. This is method is case-insensitive. Everything in path up to and including the last '/' or '.' is ignored, so you can pass it paths, filenames, or extensions, like so:
15 |
16 | var mime = require('mime');
17 |
18 | mime.lookup('/path/to/file.txt'); // => 'text/plain'
19 | mime.lookup('file.txt'); // => 'text/plain'
20 | mime.lookup('.txt'); // => 'text/plain'
21 | mime.lookup('htm'); // => 'text/html'
22 |
23 | ### mime.extension(type) - lookup the default extension for type
24 |
25 | mime.extension('text/html'); // => 'html'
26 | mime.extension('application/octet-stream'); // => 'bin'
27 |
28 | ### mime.charsets.lookup() - map mime-type to charset
29 |
30 | mime.charsets.lookup('text/plain'); // => 'UTF-8'
31 |
32 | (The logic for charset lookups is pretty rudimentary. Feel free to suggest improvements.)
33 |
34 | ## API - Customizing
35 |
36 | The following APIs allow you to add your own type mappings within your project. If you feel a type should be included as part of node-mime, see [requesting new types](https://github.com/bentomas/node-mime/wiki/Requesting-New-Types).
37 | ### mime.define() - Add custom mime/extension mappings
38 |
39 | mime.define({
40 | 'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'],
41 | 'application/x-my-type': ['x-mt', 'x-mtt'],
42 | // etc ...
43 | });
44 |
45 | mime.lookup('x-sft'); // => 'text/x-some-format'
46 | mime.extension('text/x-some-format'); // => 'x-sf'
47 |
48 | ### mime.load(filepath) - Load mappings from an Apache ".types" format file
49 |
50 | mime.load('./my_project.types');
51 |
--------------------------------------------------------------------------------
/metamail-ui/routes/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Configure all routes
3 | */
4 |
5 | exports.index = function(req, res){
6 | res.render('index', { title: 'Metamail' })
7 | };
8 |
9 | exports.msg_by_size = function(req, res) {
10 | res.render('graphics/msg-by-size.ejs', {
11 | title: 'Messages by Size',
12 | css_files: ['histogram.css'],
13 | csv_file: 'msg-by-size.csv'
14 | });
15 | }
16 |
17 | exports.msg_by_day_week = function(req, res) {
18 | res.render('graphics/histogram.ejs', {
19 | title: 'Messages by Day of Week',
20 | css_files: ['histogram.css'],
21 | csv_file: 'msg-by-day-week.csv'
22 | });
23 | }
24 |
25 | exports.msg_by_hour_day = function(req, res) {
26 | res.render('graphics/histogram.ejs', {
27 | title: 'Messages by Hour of Day',
28 | css_files: ['histogram.css'],
29 | csv_file: 'msg-by-hour-day.csv',
30 | w: 820,
31 | h: 320
32 | });
33 | }
34 |
35 | exports.msg_by_month = function(req, res) {
36 | res.render('graphics/histogram.ejs', {
37 | title: 'Messages by Month (Year 2001)',
38 | css_files: ['histogram.css'],
39 | csv_file: 'msg-by-month-2001.csv',
40 | w: 820,
41 | h: 320
42 | });
43 | }
44 |
45 | exports.msg_by_year = function(req, res) {
46 | res.render('graphics/msg-by-year.ejs', {
47 | title: 'Messages by Year',
48 | css_files: ['histogram.css'],
49 | csv_file: 'msg-by-year.csv'
50 | });
51 | }
52 |
53 | exports.msg_received = function(req, res) {
54 | res.render('graphics/bar.ejs', {
55 | title: 'Messages Received',
56 | css_files: ['bar.css'],
57 | csv_file: 'msg-received.csv',
58 | w: 820
59 | });
60 | }
61 |
62 | exports.msg_sent = function(req, res) {
63 | res.render('graphics/bar.ejs', {
64 | title: 'Messages Sent',
65 | css_files: ['bar.css'],
66 | csv_file: 'msg-sent.csv',
67 | w: 820
68 | });
69 | }
70 |
71 | exports.msg_thread_length = function(req, res) {
72 | res.render('graphics/bar.ejs', {
73 | title: 'Messages by Thread Length',
74 | css_files: ['bar.css'],
75 | csv_file: 'msg-thread-length.csv',
76 | w: 820
77 | });
78 | }
79 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/test/unit/test-incoming-form.js:
--------------------------------------------------------------------------------
1 | var common = require('../common');
2 | var test = require('utest');
3 | var assert = common.assert;
4 | var IncomingForm = common.require('incoming_form').IncomingForm;
5 | var path = require('path');
6 |
7 | var form;
8 | test('IncomingForm', {
9 | before: function() {
10 | form = new IncomingForm();
11 | },
12 |
13 | '#_fileName with regular characters': function() {
14 | var filename = 'foo.txt';
15 | assert.equal(form._fileName(makeHeader(filename)), 'foo.txt');
16 | },
17 |
18 | '#_fileName with unescaped quote': function() {
19 | var filename = 'my".txt';
20 | assert.equal(form._fileName(makeHeader(filename)), 'my".txt');
21 | },
22 |
23 | '#_fileName with escaped quote': function() {
24 | var filename = 'my%22.txt';
25 | assert.equal(form._fileName(makeHeader(filename)), 'my".txt');
26 | },
27 |
28 | '#_fileName with bad quote and additional sub-header': function() {
29 | var filename = 'my".txt';
30 | var header = makeHeader(filename) + '; foo="bar"';
31 | assert.equal(form._fileName(header), filename);
32 | },
33 |
34 | '#_fileName with semicolon': function() {
35 | var filename = 'my;.txt';
36 | assert.equal(form._fileName(makeHeader(filename)), 'my;.txt');
37 | },
38 |
39 | '#_fileName with utf8 character': function() {
40 | var filename = 'my☃.txt';
41 | assert.equal(form._fileName(makeHeader(filename)), 'my☃.txt');
42 | },
43 |
44 | '#_uploadPath strips harmful characters from extension when keepExtensions': function() {
45 | form.keepExtensions = true;
46 |
47 | var ext = path.extname(form._uploadPath('fine.jpg?foo=bar'));
48 | assert.equal(ext, '.jpg');
49 |
50 | var ext = path.extname(form._uploadPath('fine?foo=bar'));
51 | assert.equal(ext, '');
52 |
53 | var ext = path.extname(form._uploadPath('super.cr2+dsad'));
54 | assert.equal(ext, '.cr2');
55 |
56 | var ext = path.extname(form._uploadPath('super.bar'));
57 | assert.equal(ext, '.bar');
58 | },
59 | });
60 |
61 | function makeHeader(filename) {
62 | return 'Content-Disposition: form-data; name="upload"; filename="' + filename + '"';
63 | }
64 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/public/directory.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | listing directory {directory}
4 |
5 |
67 |
68 |
69 |
70 |
71 |
{linked-path}
72 | {files}
73 |
74 |
75 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/middleware/session/store.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Connect - session - Store
4 | * Copyright(c) 2010 Sencha Inc.
5 | * Copyright(c) 2011 TJ Holowaychuk
6 | * MIT Licensed
7 | */
8 |
9 | /**
10 | * Module dependencies.
11 | */
12 |
13 | var EventEmitter = require('events').EventEmitter
14 | , Session = require('./session')
15 | , Cookie = require('./cookie')
16 | , utils = require('../../utils');
17 |
18 | /**
19 | * Initialize abstract `Store`.
20 | *
21 | * @api private
22 | */
23 |
24 | var Store = module.exports = function Store(options){};
25 |
26 | /**
27 | * Inherit from `EventEmitter.prototype`.
28 | */
29 |
30 | Store.prototype.__proto__ = EventEmitter.prototype;
31 |
32 | /**
33 | * Re-generate the given requests's session.
34 | *
35 | * @param {IncomingRequest} req
36 | * @return {Function} fn
37 | * @api public
38 | */
39 |
40 | Store.prototype.regenerate = function(req, fn){
41 | var self = this;
42 | this.destroy(req.sessionID, function(err){
43 | self.generate(req);
44 | fn(err);
45 | });
46 | };
47 |
48 | /**
49 | * Load a `Session` instance via the given `sid`
50 | * and invoke the callback `fn(err, sess)`.
51 | *
52 | * @param {String} sid
53 | * @param {Function} fn
54 | * @api public
55 | */
56 |
57 | Store.prototype.load = function(sid, fn){
58 | var self = this;
59 | this.get(sid, function(err, sess){
60 | if (err) return fn(err);
61 | if (!sess) return fn();
62 | var req = { sessionID: sid, sessionStore: self };
63 | sess = self.createSession(req, sess, false);
64 | fn(null, sess);
65 | });
66 | };
67 |
68 | /**
69 | * Create session from JSON `sess` data.
70 | *
71 | * @param {IncomingRequest} req
72 | * @param {Object} sess
73 | * @return {Session}
74 | * @api private
75 | */
76 |
77 | Store.prototype.createSession = function(req, sess, update){
78 | var expires = sess.cookie.expires
79 | , orig = sess.cookie.originalMaxAge
80 | , update = null == update ? true : false;
81 | sess.cookie = new Cookie(sess.cookie);
82 | if ('string' == typeof expires) sess.cookie.expires = new Date(expires);
83 | sess.cookie.originalMaxAge = orig;
84 | req.session = new Session(req, sess);
85 | if (update) req.session.resetLastAccess();
86 | return req.session;
87 | };
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mime/test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Requires the async_testing module
3 | *
4 | * Usage: node test.js
5 | */
6 | var mime = require('./mime');
7 | exports["test mime lookup"] = function(test) {
8 | // easy
9 | test.equal('text/plain', mime.lookup('text.txt'));
10 |
11 | // hidden file or multiple periods
12 | test.equal('text/plain', mime.lookup('.text.txt'));
13 |
14 | // just an extension
15 | test.equal('text/plain', mime.lookup('.txt'));
16 |
17 | // just an extension without a dot
18 | test.equal('text/plain', mime.lookup('txt'));
19 |
20 | // default
21 | test.equal('application/octet-stream', mime.lookup('text.nope'));
22 |
23 | // fallback
24 | test.equal('fallback', mime.lookup('text.fallback', 'fallback'));
25 |
26 | test.finish();
27 | };
28 |
29 | exports["test extension lookup"] = function(test) {
30 | // easy
31 | test.equal('txt', mime.extension(mime.types.text));
32 | test.equal('html', mime.extension(mime.types.htm));
33 | test.equal('bin', mime.extension('application/octet-stream'));
34 |
35 | test.finish();
36 | };
37 |
38 | exports["test mime lookup uppercase"] = function(test) {
39 | // easy
40 | test.equal('text/plain', mime.lookup('TEXT.TXT'));
41 |
42 | // just an extension
43 | test.equal('text/plain', mime.lookup('.TXT'));
44 |
45 | // just an extension without a dot
46 | test.equal('text/plain', mime.lookup('TXT'));
47 |
48 | // default
49 | test.equal('application/octet-stream', mime.lookup('TEXT.NOPE'));
50 |
51 | // fallback
52 | test.equal('fallback', mime.lookup('TEXT.FALLBACK', 'fallback'));
53 |
54 | test.finish();
55 | };
56 |
57 | exports["test custom types"] = function(test) {
58 | test.equal('application/octet-stream', mime.lookup('file.buffer'));
59 | test.equal('audio/mp4', mime.lookup('file.m4a'));
60 |
61 | test.finish();
62 | };
63 |
64 | exports["test charset lookup"] = function(test) {
65 | // easy
66 | test.equal('UTF-8', mime.charsets.lookup('text/plain'));
67 |
68 | // none
69 | test.ok(typeof mime.charsets.lookup(mime.types.js) == 'undefined');
70 |
71 | // fallback
72 | test.equal('fallback', mime.charsets.lookup('application/octet-stream', 'fallback'));
73 |
74 | test.finish();
75 | };
76 |
77 | if (module == require.main) {
78 | require('async_testing').run(__filename, process.ARGV);
79 | }
80 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/index.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * # Connect
4 | *
5 | * Connect is a middleware framework for node,
6 | * shipping with over 11 bundled middleware and a rich choice of
7 | * [3rd-party middleware](https://github.com/senchalabs/connect/wiki).
8 | *
9 | * Installation:
10 | *
11 | * $ npm install connect
12 | *
13 | * API:
14 | *
15 | * - [connect](connect.html) general
16 | * - [http](http.html) http server
17 | * - [https](https.html) https server
18 | *
19 | * Middleware:
20 | *
21 | * - [logger](middleware-logger.html) request logger with custom format support
22 | * - [csrf](middleware-csrf.html) Cross-site request forgery protection
23 | * - [basicAuth](middleware-basicAuth.html) basic http authentication
24 | * - [bodyParser](middleware-bodyParser.html) extensible request body parser
25 | * - [cookieParser](middleware-cookieParser.html) cookie parser
26 | * - [session](middleware-session.html) session management support with bundled [MemoryStore](middleware-session-memory.html)
27 | * - [compiler](middleware-compiler.html) static asset compiler (sass, less, coffee-script, etc)
28 | * - [methodOverride](middleware-methodOverride.html) faux HTTP method support
29 | * - [responseTime](middleware-responseTime.html) calculates response-time and exposes via X-Response-Time
30 | * - [router](middleware-router.html) provides rich Sinatra / Express-like routing
31 | * - [staticCache](middleware-staticCache.html) memory cache layer for the static() middleware
32 | * - [static](middleware-static.html) streaming static file server supporting `Range` and more
33 | * - [directory](middleware-directory.html) directory listing middleware
34 | * - [vhost](middleware-vhost.html) virtual host sub-domain mapping middleware
35 | * - [favicon](middleware-favicon.html) efficient favicon server (with default icon)
36 | * - [limit](middleware-limit.html) limit the bytesize of request bodies
37 | * - [profiler](middleware-profiler.html) request profiler reporting response-time, memory usage, etc
38 | * - [query](middleware-query.html) automatic querystring parser, populating `req.query`
39 | * - [errorHandler](middleware-errorHandler.html) flexible error handler
40 | *
41 | * Internals:
42 | *
43 | * - connect [utilities](utils.html)
44 | * - node monkey [patches](patch.html)
45 | *
46 | */
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/multipart.js:
--------------------------------------------------------------------------------
1 | exports['rfc1867'] =
2 | { boundary: 'AaB03x',
3 | raw:
4 | '--AaB03x\r\n'+
5 | 'content-disposition: form-data; name="field1"\r\n'+
6 | '\r\n'+
7 | 'Joe Blow\r\nalmost tricked you!\r\n'+
8 | '--AaB03x\r\n'+
9 | 'content-disposition: form-data; name="pics"; filename="file1.txt"\r\n'+
10 | 'Content-Type: text/plain\r\n'+
11 | '\r\n'+
12 | '... contents of file1.txt ...\r\r\n'+
13 | '--AaB03x--\r\n',
14 | parts:
15 | [ { headers: {
16 | 'content-disposition': 'form-data; name="field1"',
17 | },
18 | data: 'Joe Blow\r\nalmost tricked you!',
19 | },
20 | { headers: {
21 | 'content-disposition': 'form-data; name="pics"; filename="file1.txt"',
22 | 'Content-Type': 'text/plain',
23 | },
24 | data: '... contents of file1.txt ...\r',
25 | }
26 | ]
27 | };
28 |
29 | exports['noTrailing\r\n'] =
30 | { boundary: 'AaB03x',
31 | raw:
32 | '--AaB03x\r\n'+
33 | 'content-disposition: form-data; name="field1"\r\n'+
34 | '\r\n'+
35 | 'Joe Blow\r\nalmost tricked you!\r\n'+
36 | '--AaB03x\r\n'+
37 | 'content-disposition: form-data; name="pics"; filename="file1.txt"\r\n'+
38 | 'Content-Type: text/plain\r\n'+
39 | '\r\n'+
40 | '... contents of file1.txt ...\r\r\n'+
41 | '--AaB03x--',
42 | parts:
43 | [ { headers: {
44 | 'content-disposition': 'form-data; name="field1"',
45 | },
46 | data: 'Joe Blow\r\nalmost tricked you!',
47 | },
48 | { headers: {
49 | 'content-disposition': 'form-data; name="pics"; filename="file1.txt"',
50 | 'Content-Type': 'text/plain',
51 | },
52 | data: '... contents of file1.txt ...\r',
53 | }
54 | ]
55 | };
56 |
57 | exports['emptyHeader'] =
58 | { boundary: 'AaB03x',
59 | raw:
60 | '--AaB03x\r\n'+
61 | 'content-disposition: form-data; name="field1"\r\n'+
62 | ': foo\r\n'+
63 | '\r\n'+
64 | 'Joe Blow\r\nalmost tricked you!\r\n'+
65 | '--AaB03x\r\n'+
66 | 'content-disposition: form-data; name="pics"; filename="file1.txt"\r\n'+
67 | 'Content-Type: text/plain\r\n'+
68 | '\r\n'+
69 | '... contents of file1.txt ...\r\r\n'+
70 | '--AaB03x--\r\n',
71 | expectError: true,
72 | };
73 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mkdirp/index.js:
--------------------------------------------------------------------------------
1 | var path = require('path');
2 | var fs = require('fs');
3 |
4 | module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP;
5 |
6 | function mkdirP (p, mode, f) {
7 | if (typeof mode === 'function' || mode === undefined) {
8 | f = mode;
9 | mode = 0777 & (~process.umask());
10 | }
11 |
12 | var cb = f || function () {};
13 | if (typeof mode === 'string') mode = parseInt(mode, 8);
14 | p = path.resolve(p);
15 |
16 | fs.mkdir(p, mode, function (er) {
17 | if (!er) return cb();
18 | switch (er.code) {
19 | case 'ENOENT':
20 | mkdirP(path.dirname(p), mode, function (er) {
21 | if (er) cb(er);
22 | else mkdirP(p, mode, cb);
23 | });
24 | break;
25 |
26 | case 'EEXIST':
27 | fs.stat(p, function (er2, stat) {
28 | // if the stat fails, then that's super weird.
29 | // let the original EEXIST be the failure reason.
30 | if (er2 || !stat.isDirectory()) cb(er)
31 | else cb();
32 | });
33 | break;
34 |
35 | default:
36 | cb(er);
37 | break;
38 | }
39 | });
40 | }
41 |
42 | mkdirP.sync = function sync (p, mode) {
43 | if (mode === undefined) {
44 | mode = 0777 & (~process.umask());
45 | }
46 |
47 | if (typeof mode === 'string') mode = parseInt(mode, 8);
48 | p = path.resolve(p);
49 |
50 | try {
51 | fs.mkdirSync(p, mode)
52 | }
53 | catch (err0) {
54 | switch (err0.code) {
55 | case 'ENOENT' :
56 | var err1 = sync(path.dirname(p), mode)
57 | if (err1) throw err1;
58 | else return sync(p, mode);
59 | break;
60 |
61 | case 'EEXIST' :
62 | var stat;
63 | try {
64 | stat = fs.statSync(p);
65 | }
66 | catch (err1) {
67 | throw err0
68 | }
69 | if (!stat.isDirectory()) throw err0;
70 | else return null;
71 | break;
72 | default :
73 | throw err0
74 | break;
75 | }
76 | }
77 |
78 | return null;
79 | };
80 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/lib/router/route.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Express - router - Route
4 | * Copyright(c) 2010 TJ Holowaychuk
5 | * MIT Licensed
6 | */
7 |
8 | /**
9 | * Expose `Route`.
10 | */
11 |
12 | module.exports = Route;
13 |
14 | /**
15 | * Initialize `Route` with the given HTTP `method`, `path`,
16 | * and an array of `callbacks` and `options`.
17 | *
18 | * Options:
19 | *
20 | * - `sensitive` enable case-sensitive routes
21 | * - `strict` enable strict matching for trailing slashes
22 | *
23 | * @param {String} method
24 | * @param {String} path
25 | * @param {Array} callbacks
26 | * @param {Object} options.
27 | * @api private
28 | */
29 |
30 | function Route(method, path, callbacks, options) {
31 | options = options || {};
32 | this.path = path;
33 | this.method = method;
34 | this.callbacks = callbacks;
35 | this.regexp = normalize(path
36 | , this.keys = []
37 | , options.sensitive
38 | , options.strict);
39 | }
40 |
41 | /**
42 | * Check if this route matches `path` and return captures made.
43 | *
44 | * @param {String} path
45 | * @return {Array}
46 | * @api private
47 | */
48 |
49 | Route.prototype.match = function(path){
50 | return this.regexp.exec(path);
51 | };
52 |
53 | /**
54 | * Normalize the given path string,
55 | * returning a regular expression.
56 | *
57 | * An empty array should be passed,
58 | * which will contain the placeholder
59 | * key names. For example "/user/:id" will
60 | * then contain ["id"].
61 | *
62 | * @param {String|RegExp} path
63 | * @param {Array} keys
64 | * @param {Boolean} sensitive
65 | * @param {Boolean} strict
66 | * @return {RegExp}
67 | * @api private
68 | */
69 |
70 | function normalize(path, keys, sensitive, strict) {
71 | if (path instanceof RegExp) return path;
72 | path = path
73 | .concat(strict ? '' : '/?')
74 | .replace(/\/\(/g, '(?:/')
75 | .replace(/(\/)?(\.)?:(\w+)(?:(\(.*?\)))?(\?)?/g, function(_, slash, format, key, capture, optional){
76 | keys.push({ name: key, optional: !! optional });
77 | slash = slash || '';
78 | return ''
79 | + (optional ? '' : slash)
80 | + '(?:'
81 | + (optional ? slash : '')
82 | + (format || '') + (capture || (format && '([^/.]+?)' || '([^/]+?)')) + ')'
83 | + (optional || '');
84 | })
85 | .replace(/([\/.])/g, '\\$1')
86 | .replace(/\*/g, '(.*)');
87 | return new RegExp('^' + path + '$', sensitive ? '' : 'i');
88 | }
89 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/integration/test-multipart-parser.js:
--------------------------------------------------------------------------------
1 | var common = require('../common');
2 | var CHUNK_LENGTH = 10,
3 | multipartParser = require(common.lib + '/multipart_parser'),
4 | MultipartParser = multipartParser.MultipartParser,
5 | parser = new MultipartParser(),
6 | fixtures = require(TEST_FIXTURES + '/multipart'),
7 | Buffer = require('buffer').Buffer;
8 |
9 | Object.keys(fixtures).forEach(function(name) {
10 | var fixture = fixtures[name],
11 | buffer = new Buffer(Buffer.byteLength(fixture.raw, 'binary')),
12 | offset = 0,
13 | chunk,
14 | nparsed,
15 |
16 | parts = [],
17 | part = null,
18 | headerField,
19 | headerValue,
20 | endCalled = '';
21 |
22 | parser.initWithBoundary(fixture.boundary);
23 | parser.onPartBegin = function() {
24 | part = {headers: {}, data: ''};
25 | parts.push(part);
26 | headerField = '';
27 | headerValue = '';
28 | };
29 |
30 | parser.onHeaderField = function(b, start, end) {
31 | headerField += b.toString('ascii', start, end);
32 | };
33 |
34 | parser.onHeaderValue = function(b, start, end) {
35 | headerValue += b.toString('ascii', start, end);
36 | }
37 |
38 | parser.onHeaderEnd = function() {
39 | part.headers[headerField] = headerValue;
40 | headerField = '';
41 | headerValue = '';
42 | };
43 |
44 | parser.onPartData = function(b, start, end) {
45 | var str = b.toString('ascii', start, end);
46 | part.data += b.slice(start, end);
47 | }
48 |
49 | parser.onEnd = function() {
50 | endCalled = true;
51 | }
52 |
53 | buffer.write(fixture.raw, 'binary', 0);
54 |
55 | while (offset < buffer.length) {
56 | if (offset + CHUNK_LENGTH < buffer.length) {
57 | chunk = buffer.slice(offset, offset+CHUNK_LENGTH);
58 | } else {
59 | chunk = buffer.slice(offset, buffer.length);
60 | }
61 | offset = offset + CHUNK_LENGTH;
62 |
63 | nparsed = parser.write(chunk);
64 | if (nparsed != chunk.length) {
65 | if (fixture.expectError) {
66 | return;
67 | }
68 | puts('-- ERROR --');
69 | p(chunk.toString('ascii'));
70 | throw new Error(chunk.length+' bytes written, but only '+nparsed+' bytes parsed!');
71 | }
72 | }
73 |
74 | if (fixture.expectError) {
75 | throw new Error('expected parse error did not happen');
76 | }
77 |
78 | assert.ok(endCalled);
79 | assert.deepEqual(parts, fixture.parts);
80 | });
81 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/ejs/History.md:
--------------------------------------------------------------------------------
1 |
2 | 0.8.0 / 2012-07-25
3 | ==================
4 |
5 | * add `<% include file %>` support
6 | * fix wrapping of custom require in build step. Closes #57
7 |
8 | 0.7.3 / 2012-04-25
9 | ==================
10 |
11 | * Added repository to package.json [isaacs]
12 |
13 | 0.7.1 / 2012-03-26
14 | ==================
15 |
16 | * Fixed exception when using express in production caused by typo. [slaskis]
17 |
18 | 0.7.0 / 2012-03-24
19 | ==================
20 |
21 | * Added newline consumption support (`-%>`) [whoatemydomain]
22 |
23 | 0.6.1 / 2011-12-09
24 | ==================
25 |
26 | * Fixed `ejs.renderFile()`
27 |
28 | 0.6.0 / 2011-12-09
29 | ==================
30 |
31 | * Changed: you no longer need `{ locals: {} }`
32 |
33 | 0.5.0 / 2011-11-20
34 | ==================
35 |
36 | * Added express 3.x support
37 | * Added ejs.renderFile()
38 | * Added 'json' filter
39 | * Fixed tests for 0.5.x
40 |
41 | 0.4.3 / 2011-06-20
42 | ==================
43 |
44 | * Fixed stacktraces line number when used multiline js expressions [Octave]
45 |
46 | 0.4.2 / 2011-05-11
47 | ==================
48 |
49 | * Added client side support
50 |
51 | 0.4.1 / 2011-04-21
52 | ==================
53 |
54 | * Fixed error context
55 |
56 | 0.4.0 / 2011-04-21
57 | ==================
58 |
59 | * Added; ported jade's error reporting to ejs. [slaskis]
60 |
61 | 0.3.1 / 2011-02-23
62 | ==================
63 |
64 | * Fixed optional `compile()` options
65 |
66 | 0.3.0 / 2011-02-14
67 | ==================
68 |
69 | * Added 'json' filter [Yuriy Bogdanov]
70 | * Use exported version of parse function to allow monkey-patching [Anatoliy Chakkaev]
71 |
72 | 0.2.1 / 2010-10-07
73 | ==================
74 |
75 | * Added filter support
76 | * Fixed _cache_ option. ~4x performance increase
77 |
78 | 0.2.0 / 2010-08-05
79 | ==================
80 |
81 | * Added support for global tag config
82 | * Added custom tag support. Closes #5
83 | * Fixed whitespace bug. Closes #4
84 |
85 | 0.1.0 / 2010-08-04
86 | ==================
87 |
88 | * Faster implementation [ashleydev]
89 |
90 | 0.0.4 / 2010-08-02
91 | ==================
92 |
93 | * Fixed single quotes for content outside of template tags. [aniero]
94 | * Changed; `exports.compile()` now expects only "locals"
95 |
96 | 0.0.3 / 2010-07-15
97 | ==================
98 |
99 | * Fixed single quotes
100 |
101 | 0.0.2 / 2010-07-09
102 | ==================
103 |
104 | * Fixed newline preservation
105 |
106 | 0.0.1 / 2010-07-09
107 | ==================
108 |
109 | * Initial release
110 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/test/integration/test-fixtures.js:
--------------------------------------------------------------------------------
1 | var hashish = require('hashish');
2 | var fs = require('fs');
3 | var findit = require('findit');
4 | var path = require('path');
5 | var http = require('http');
6 | var net = require('net');
7 | var assert = require('assert');
8 |
9 | var common = require('../common');
10 | var formidable = common.formidable;
11 |
12 | var server = http.createServer();
13 | server.listen(common.port, findFixtures);
14 |
15 | function findFixtures() {
16 | var fixtures = [];
17 | findit
18 | .sync(common.dir.fixture + '/js')
19 | .forEach(function(jsPath) {
20 | if (!/\.js$/.test(jsPath)) return;
21 |
22 | var group = path.basename(jsPath, '.js');
23 | hashish.forEach(require(jsPath), function(fixture, name) {
24 | fixtures.push({
25 | name : group + '/' + name,
26 | fixture : fixture,
27 | });
28 | });
29 | });
30 |
31 | testNext(fixtures);
32 | }
33 |
34 | function testNext(fixtures) {
35 | var fixture = fixtures.shift();
36 | if (!fixture) return server.close();
37 |
38 | var name = fixture.name;
39 | var fixture = fixture.fixture;
40 |
41 | uploadFixture(name, function(err, parts) {
42 | if (err) throw err;
43 |
44 | fixture.forEach(function(expectedPart, i) {
45 | var parsedPart = parts[i];
46 | assert.equal(parsedPart.type, expectedPart.type);
47 | assert.equal(parsedPart.name, expectedPart.name);
48 |
49 | if (parsedPart.type === 'file') {
50 | var filename = parsedPart.value.name;
51 | assert.equal(filename, expectedPart.filename);
52 | }
53 | });
54 |
55 | testNext(fixtures);
56 | });
57 | };
58 |
59 | function uploadFixture(name, cb) {
60 | server.once('request', function(req, res) {
61 | var form = new formidable.IncomingForm();
62 | form.uploadDir = common.dir.tmp;
63 | form.parse(req);
64 |
65 | function callback() {
66 | var realCallback = cb;
67 | cb = function() {};
68 | realCallback.apply(null, arguments);
69 | }
70 |
71 | var parts = [];
72 | form
73 | .on('error', callback)
74 | .on('fileBegin', function(name, value) {
75 | parts.push({type: 'file', name: name, value: value});
76 | })
77 | .on('field', function(name, value) {
78 | parts.push({type: 'field', name: name, value: value});
79 | })
80 | .on('end', function() {
81 | callback(null, parts);
82 | });
83 | });
84 |
85 | var socket = net.createConnection(common.port);
86 | var file = fs.createReadStream(common.dir.fixture + '/http/' + name);
87 |
88 | file.pipe(socket);
89 | }
90 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/middleware/profiler.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Connect - profiler
4 | * Copyright(c) 2011 TJ Holowaychuk
5 | * MIT Licensed
6 | */
7 |
8 | /**
9 | * Profile the duration of a request.
10 | *
11 | * Typically this middleware should be utilized
12 | * _above_ all others, as it proxies the `res.end()`
13 | * method, being first allows it to encapsulate all
14 | * other middleware.
15 | *
16 | * Example Output:
17 | *
18 | * GET /
19 | * response time 2ms
20 | * memory rss 52.00kb
21 | * memory vsize 2.07mb
22 | * heap before 3.76mb / 8.15mb
23 | * heap after 3.80mb / 8.15mb
24 | *
25 | * @api public
26 | */
27 |
28 | module.exports = function profiler(){
29 | return function(req, res, next){
30 | var end = res.end
31 | , start = snapshot();
32 |
33 | // state snapshot
34 | function snapshot() {
35 | return {
36 | mem: process.memoryUsage()
37 | , time: new Date
38 | };
39 | }
40 |
41 | // proxy res.end()
42 | res.end = function(data, encoding){
43 | res.end = end;
44 | res.end(data, encoding);
45 | compare(req, start, snapshot())
46 | };
47 |
48 | next();
49 | }
50 | };
51 |
52 | /**
53 | * Compare `start` / `end` snapshots.
54 | *
55 | * @param {IncomingRequest} req
56 | * @param {Object} start
57 | * @param {Object} end
58 | * @api private
59 | */
60 |
61 | function compare(req, start, end) {
62 | console.log();
63 | row(req.method, req.url);
64 | row('response time:', (end.time - start.time) + 'ms');
65 | row('memory rss:', formatBytes(end.mem.rss - start.mem.rss));
66 | row('memory vsize:', formatBytes(end.mem.vsize - start.mem.vsize));
67 | row('heap before:', formatBytes(start.mem.heapUsed) + ' / ' + formatBytes(start.mem.heapTotal));
68 | row('heap after:', formatBytes(end.mem.heapUsed) + ' / ' + formatBytes(end.mem.heapTotal));
69 | console.log();
70 | }
71 |
72 | /**
73 | * Row helper
74 | *
75 | * @param {String} key
76 | * @param {String} val
77 | * @api private
78 | */
79 |
80 | function row(key, val) {
81 | console.log(' \033[90m%s\033[0m \033[36m%s\033[0m', key, val);
82 | }
83 |
84 | /**
85 | * Format byte-size.
86 | *
87 | * @param {Number} bytes
88 | * @return {String}
89 | * @api private
90 | */
91 |
92 | function formatBytes(bytes) {
93 | var kb = 1024
94 | , mb = 1024 * kb
95 | , gb = 1024 * mb;
96 | if (bytes < kb) return bytes + 'b';
97 | if (bytes < mb) return (bytes / kb).toFixed(2) + 'kb';
98 | if (bytes < gb) return (bytes / mb).toFixed(2) + 'mb';
99 | return (bytes / gb).toFixed(2) + 'gb';
100 | };
101 |
--------------------------------------------------------------------------------
/metamail-ui/views/graphics/bar.ejs:
--------------------------------------------------------------------------------
1 |
86 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/middleware/session/cookie.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Connect - session - Cookie
4 | * Copyright(c) 2010 Sencha Inc.
5 | * Copyright(c) 2011 TJ Holowaychuk
6 | * MIT Licensed
7 | */
8 |
9 | /**
10 | * Module dependencies.
11 | */
12 |
13 | var utils = require('../../utils');
14 |
15 | /**
16 | * Initialize a new `Cookie` with the given `options`.
17 | *
18 | * @param {Object} options
19 | * @api private
20 | */
21 |
22 | var Cookie = module.exports = function Cookie(options) {
23 | this.path = '/';
24 | this.httpOnly = true;
25 | this.maxAge = 14400000;
26 | if (options) utils.merge(this, options);
27 | this.originalMaxAge = undefined == this.originalMaxAge
28 | ? this.maxAge
29 | : this.originalMaxAge;
30 | };
31 |
32 | /**
33 | * Prototype.
34 | */
35 |
36 | Cookie.prototype = {
37 |
38 | /**
39 | * Set expires `date`.
40 | *
41 | * @param {Date} date
42 | * @api public
43 | */
44 |
45 | set expires(date) {
46 | this._expires = date;
47 | this.originalMaxAge = this.maxAge;
48 | },
49 |
50 | /**
51 | * Get expires `date`.
52 | *
53 | * @return {Date}
54 | * @api public
55 | */
56 |
57 | get expires() {
58 | return this._expires;
59 | },
60 |
61 | /**
62 | * Set expires via max-age in `ms`.
63 | *
64 | * @param {Number} ms
65 | * @api public
66 | */
67 |
68 | set maxAge(ms) {
69 | this.expires = 'number' == typeof ms
70 | ? new Date(Date.now() + ms)
71 | : ms;
72 | },
73 |
74 | /**
75 | * Get expires max-age in `ms`.
76 | *
77 | * @return {Number}
78 | * @api public
79 | */
80 |
81 | get maxAge() {
82 | return this.expires instanceof Date
83 | ? this.expires.valueOf() - Date.now()
84 | : this.expires;
85 | },
86 |
87 | /**
88 | * Return cookie data object.
89 | *
90 | * @return {Object}
91 | * @api private
92 | */
93 |
94 | get data() {
95 | return {
96 | originalMaxAge: this.originalMaxAge
97 | , expires: this._expires
98 | , secure: this.secure
99 | , httpOnly: this.httpOnly
100 | , domain: this.domain
101 | , path: this.path
102 | }
103 | },
104 |
105 | /**
106 | * Return a serialized cookie string.
107 | *
108 | * @return {String}
109 | * @api public
110 | */
111 |
112 | serialize: function(name, val){
113 | return utils.serializeCookie(name, val, this.data);
114 | },
115 |
116 | /**
117 | * Return JSON representation of this cookie.
118 | *
119 | * @return {Object}
120 | * @api private
121 | */
122 |
123 | toJSON: function(){
124 | return this.data;
125 | }
126 | };
127 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/middleware/basicAuth.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Connect - basicAuth
4 | * Copyright(c) 2010 Sencha Inc.
5 | * Copyright(c) 2011 TJ Holowaychuk
6 | * MIT Licensed
7 | */
8 |
9 | /**
10 | * Module dependencies.
11 | */
12 |
13 | var utils = require('../utils')
14 | , unauthorized = utils.unauthorized
15 | , badRequest = utils.badRequest;
16 |
17 | /**
18 | * Enfore basic authentication by providing a `callback(user, pass)`,
19 | * which must return `true` in order to gain access. Alternatively an async
20 | * method is provided as well, invoking `callback(user, pass, callback)`. Populates
21 | * `req.remoteUser`. The final alternative is simply passing username / password
22 | * strings.
23 | *
24 | * Examples:
25 | *
26 | * connect(connect.basicAuth('username', 'password'));
27 | *
28 | * connect(
29 | * connect.basicAuth(function(user, pass){
30 | * return 'tj' == user & 'wahoo' == pass;
31 | * })
32 | * );
33 | *
34 | * connect(
35 | * connect.basicAuth(function(user, pass, fn){
36 | * User.authenticate({ user: user, pass: pass }, fn);
37 | * })
38 | * );
39 | *
40 | * @param {Function|String} callback or username
41 | * @param {String} realm
42 | * @api public
43 | */
44 |
45 | module.exports = function basicAuth(callback, realm) {
46 | var username, password;
47 |
48 | // user / pass strings
49 | if ('string' == typeof callback) {
50 | username = callback;
51 | password = realm;
52 | if ('string' != typeof password) throw new Error('password argument required');
53 | realm = arguments[2];
54 | callback = function(user, pass){
55 | return user == username && pass == password;
56 | }
57 | }
58 |
59 | realm = realm || 'Authorization Required';
60 |
61 | return function(req, res, next) {
62 | var authorization = req.headers.authorization;
63 |
64 | if (req.remoteUser) return next();
65 | if (!authorization) return unauthorized(res, realm);
66 |
67 | var parts = authorization.split(' ')
68 | , scheme = parts[0]
69 | , credentials = new Buffer(parts[1], 'base64').toString().split(':');
70 |
71 | if ('Basic' != scheme) return badRequest(res);
72 |
73 | // async
74 | if (callback.length >= 3) {
75 | var pause = utils.pause(req);
76 | callback(credentials[0], credentials[1], function(err, user){
77 | if (err || !user) return unauthorized(res, realm);
78 | req.remoteUser = user;
79 | next();
80 | pause.resume();
81 | });
82 | // sync
83 | } else {
84 | if (callback(credentials[0], credentials[1])) {
85 | req.remoteUser = credentials[0];
86 | next();
87 | } else {
88 | unauthorized(res, realm);
89 | }
90 | }
91 | }
92 | };
93 |
94 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/lib/connect.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Connect
4 | * Copyright(c) 2010 Sencha Inc.
5 | * Copyright(c) 2011 TJ Holowaychuk
6 | * MIT Licensed
7 | */
8 |
9 | /**
10 | * Module dependencies.
11 | */
12 |
13 | var HTTPServer = require('./http').Server
14 | , HTTPSServer = require('./https').Server
15 | , fs = require('fs');
16 |
17 | // node patches
18 |
19 | require('./patch');
20 |
21 | // expose createServer() as the module
22 |
23 | exports = module.exports = createServer;
24 |
25 | /**
26 | * Framework version.
27 | */
28 |
29 | exports.version = '1.9.2';
30 |
31 | /**
32 | * Initialize a new `connect.HTTPServer` with the middleware
33 | * passed to this function. When an object is passed _first_,
34 | * we assume these are the tls options, and return a `connect.HTTPSServer`.
35 | *
36 | * Examples:
37 | *
38 | * An example HTTP server, accepting several middleware.
39 | *
40 | * var server = connect.createServer(
41 | * connect.logger()
42 | * , connect.static(__dirname + '/public')
43 | * );
44 | *
45 | * An HTTPS server, utilizing the same middleware as above.
46 | *
47 | * var server = connect.createServer(
48 | * { key: key, cert: cert }
49 | * , connect.logger()
50 | * , connect.static(__dirname + '/public')
51 | * );
52 | *
53 | * Alternatively with connect 1.0 we may omit `createServer()`.
54 | *
55 | * connect(
56 | * connect.logger()
57 | * , connect.static(__dirname + '/public')
58 | * ).listen(3000);
59 | *
60 | * @param {Object|Function} ...
61 | * @return {Server}
62 | * @api public
63 | */
64 |
65 | function createServer() {
66 | if ('object' == typeof arguments[0]) {
67 | return new HTTPSServer(arguments[0], Array.prototype.slice.call(arguments, 1));
68 | } else {
69 | return new HTTPServer(Array.prototype.slice.call(arguments));
70 | }
71 | };
72 |
73 | // support connect.createServer()
74 |
75 | exports.createServer = createServer;
76 |
77 | // auto-load getters
78 |
79 | exports.middleware = {};
80 |
81 | /**
82 | * Auto-load bundled middleware with getters.
83 | */
84 |
85 | fs.readdirSync(__dirname + '/middleware').forEach(function(filename){
86 | if (/\.js$/.test(filename)) {
87 | var name = filename.substr(0, filename.lastIndexOf('.'));
88 | exports.middleware.__defineGetter__(name, function(){
89 | return require('./middleware/' + name);
90 | });
91 | }
92 | });
93 |
94 | // expose utils
95 |
96 | exports.utils = require('./utils');
97 |
98 | // expose getters as first-class exports
99 |
100 | exports.utils.merge(exports, exports.middleware);
101 |
102 | // expose constructors
103 |
104 | exports.HTTPServer = HTTPServer;
105 | exports.HTTPSServer = HTTPSServer;
106 |
107 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/system/test-multi-video-upload.js:
--------------------------------------------------------------------------------
1 | var common = require('../common');
2 | var BOUNDARY = '---------------------------10102754414578508781458777923',
3 | FIXTURE = TEST_FIXTURES+'/multi_video.upload',
4 | fs = require('fs'),
5 | util = require(common.lib + '/util'),
6 | http = require('http'),
7 | formidable = require(common.lib + '/index'),
8 | server = http.createServer();
9 |
10 | server.on('request', function(req, res) {
11 | var form = new formidable.IncomingForm(),
12 | uploads = {};
13 |
14 | form.uploadDir = TEST_TMP;
15 | form.hash = 'sha1';
16 | form.parse(req);
17 |
18 | form
19 | .on('fileBegin', function(field, file) {
20 | assert.equal(field, 'upload');
21 |
22 | var tracker = {file: file, progress: [], ended: false};
23 | uploads[file.filename] = tracker;
24 | file
25 | .on('progress', function(bytesReceived) {
26 | tracker.progress.push(bytesReceived);
27 | assert.equal(bytesReceived, file.length);
28 | })
29 | .on('end', function() {
30 | tracker.ended = true;
31 | });
32 | })
33 | .on('field', function(field, value) {
34 | assert.equal(field, 'title');
35 | assert.equal(value, '');
36 | })
37 | .on('file', function(field, file) {
38 | assert.equal(field, 'upload');
39 | assert.strictEqual(uploads[file.filename].file, file);
40 | })
41 | .on('end', function() {
42 | assert.ok(uploads['shortest_video.flv']);
43 | assert.ok(uploads['shortest_video.flv'].ended);
44 | assert.ok(uploads['shortest_video.flv'].progress.length > 3);
45 | assert.equal(uploads['shortest_video.flv'].file.hash, 'd6a17616c7143d1b1438ceeef6836d1a09186b3a');
46 | assert.equal(uploads['shortest_video.flv'].progress.slice(-1), uploads['shortest_video.flv'].file.length);
47 | assert.ok(uploads['shortest_video.mp4']);
48 | assert.ok(uploads['shortest_video.mp4'].ended);
49 | assert.ok(uploads['shortest_video.mp4'].progress.length > 3);
50 | assert.equal(uploads['shortest_video.mp4'].file.hash, '937dfd4db263f4887ceae19341dcc8d63bcd557f');
51 |
52 | server.close();
53 | res.writeHead(200);
54 | res.end('good');
55 | });
56 | });
57 |
58 | server.listen(TEST_PORT, function() {
59 | var client = http.createClient(TEST_PORT),
60 | stat = fs.statSync(FIXTURE),
61 | headers = {
62 | 'content-type': 'multipart/form-data; boundary='+BOUNDARY,
63 | 'content-length': stat.size,
64 | }
65 | request = client.request('POST', '/', headers),
66 | fixture = new fs.ReadStream(FIXTURE);
67 |
68 | fixture
69 | .on('data', function(b) {
70 | request.write(b);
71 | })
72 | .on('end', function() {
73 | request.end();
74 | });
75 | });
76 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/mime/mime.js:
--------------------------------------------------------------------------------
1 | var path = require('path'),
2 | fs = require('fs');
3 |
4 | var mime = module.exports = {
5 | /** Map of extension to mime type */
6 | types: {},
7 |
8 | /** Map of mime type to extension */
9 | extensions :{},
10 |
11 | /**
12 | * Define mimetype -> extension mappings. Each key is a mime-type that maps
13 | * to an array of extensions associated with the type. The first extension is
14 | * used as the default extension for the type.
15 | *
16 | * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});
17 | *
18 | * @param map (Object) type definitions
19 | */
20 | define: function(map) {
21 | for (var type in map) {
22 | var exts = map[type];
23 |
24 | for (var i = 0; i < exts.length; i++) {
25 | mime.types[exts[i]] = type;
26 | }
27 |
28 | // Default extension is the first one we encounter
29 | if (!mime.extensions[type]) {
30 | mime.extensions[type] = exts[0];
31 | }
32 | }
33 | },
34 |
35 | /**
36 | * Load an Apache2-style ".types" file
37 | *
38 | * This may be called multiple times (it's expected). Where files declare
39 | * overlapping types/extensions, the last file wins.
40 | *
41 | * @param file (String) path of file to load.
42 | */
43 | load: function(file) {
44 | // Read file and split into lines
45 | var map = {},
46 | content = fs.readFileSync(file, 'ascii'),
47 | lines = content.split(/[\r\n]+/);
48 |
49 | lines.forEach(function(line, lineno) {
50 | // Clean up whitespace/comments, and split into fields
51 | var fields = line.replace(/\s*#.*|^\s*|\s*$/g, '').split(/\s+/);
52 | map[fields.shift()] = fields;
53 | });
54 |
55 | mime.define(map);
56 | },
57 |
58 | /**
59 | * Lookup a mime type based on extension
60 | */
61 | lookup: function(path, fallback) {
62 | var ext = path.replace(/.*[\.\/]/, '').toLowerCase();
63 | return mime.types[ext] || fallback || mime.default_type;
64 | },
65 |
66 | /**
67 | * Return file extension associated with a mime type
68 | */
69 | extension: function(mimeType) {
70 | return mime.extensions[mimeType];
71 | },
72 |
73 | /**
74 | * Lookup a charset based on mime type.
75 | */
76 | charsets: {
77 | lookup: function (mimeType, fallback) {
78 | // Assume text types are utf8. Modify mime logic as needed.
79 | return (/^text\//).test(mimeType) ? 'UTF-8' : fallback;
80 | }
81 | }
82 | };
83 |
84 | // Load our local copy of
85 | // http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
86 | mime.load(path.join(__dirname, 'types/mime.types'));
87 |
88 | // Overlay enhancements submitted by the node.js community
89 | mime.load(path.join(__dirname, 'types/node.types'));
90 |
91 | // Set the default type
92 | mime.default_type = mime.types.bin;
93 |
--------------------------------------------------------------------------------
/metamail-ui/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-file.js:
--------------------------------------------------------------------------------
1 | var common = require('../common');
2 | var WriteStreamStub = GENTLY.stub('fs', 'WriteStream');
3 |
4 | var File = require(common.lib + '/file'),
5 | EventEmitter = require('events').EventEmitter,
6 | file,
7 | gently;
8 |
9 | function test(test) {
10 | gently = new Gently();
11 | file = new File();
12 | test();
13 | gently.verify(test.name);
14 | }
15 |
16 | test(function constructor() {
17 | assert.ok(file instanceof EventEmitter);
18 | assert.strictEqual(file.size, 0);
19 | assert.strictEqual(file.path, null);
20 | assert.strictEqual(file.name, null);
21 | assert.strictEqual(file.type, null);
22 | assert.strictEqual(file.lastModifiedDate, null);
23 |
24 | assert.strictEqual(file._writeStream, null);
25 |
26 | (function testSetProperties() {
27 | var file2 = new File({foo: 'bar'});
28 | assert.equal(file2.foo, 'bar');
29 | })();
30 | });
31 |
32 | test(function open() {
33 | var WRITE_STREAM;
34 | file.path = '/foo';
35 |
36 | gently.expect(WriteStreamStub, 'new', function (path) {
37 | WRITE_STREAM = this;
38 | assert.strictEqual(path, file.path);
39 | });
40 |
41 | file.open();
42 | assert.strictEqual(file._writeStream, WRITE_STREAM);
43 | });
44 |
45 | test(function write() {
46 | var BUFFER = {length: 10},
47 | CB_STUB,
48 | CB = function() {
49 | CB_STUB.apply(this, arguments);
50 | };
51 |
52 | file._writeStream = {};
53 |
54 | gently.expect(file._writeStream, 'write', function (buffer, cb) {
55 | assert.strictEqual(buffer, BUFFER);
56 |
57 | gently.expect(file, 'emit', function (event, bytesWritten) {
58 | assert.ok(file.lastModifiedDate instanceof Date);
59 | assert.equal(event, 'progress');
60 | assert.equal(bytesWritten, file.size);
61 | });
62 |
63 | CB_STUB = gently.expect(function writeCb() {
64 | assert.equal(file.size, 10);
65 | });
66 |
67 | cb();
68 |
69 | gently.expect(file, 'emit', function (event, bytesWritten) {
70 | assert.equal(event, 'progress');
71 | assert.equal(bytesWritten, file.size);
72 | });
73 |
74 | CB_STUB = gently.expect(function writeCb() {
75 | assert.equal(file.size, 20);
76 | });
77 |
78 | cb();
79 | });
80 |
81 | file.write(BUFFER, CB);
82 | });
83 |
84 | test(function end() {
85 | var CB_STUB,
86 | CB = function() {
87 | CB_STUB.apply(this, arguments);
88 | };
89 |
90 | file._writeStream = {};
91 |
92 | gently.expect(file._writeStream, 'end', function (cb) {
93 | gently.expect(file, 'emit', function (event) {
94 | assert.equal(event, 'end');
95 | });
96 |
97 | CB_STUB = gently.expect(function endCb() {
98 | });
99 |
100 | cb();
101 | });
102 |
103 | file.end(CB);
104 | });
105 |
--------------------------------------------------------------------------------