├── README.md ├── ansible ├── dev │ ├── group_vars │ │ ├── dynamic │ │ └── static │ ├── host_vars │ │ └── dynamic-1 │ └── hosts ├── dynamic.yml ├── roles │ ├── common │ │ └── tasks │ │ │ ├── git.yml │ │ │ ├── main.yml │ │ │ └── nodejs.yml │ ├── dynamic │ │ ├── files │ │ │ └── demo.conf │ │ ├── handlers │ │ │ └── main.yml │ │ ├── meta │ │ │ └── main.yml │ │ ├── tasks │ │ │ └── main.yml │ │ └── vars │ │ │ └── main.yml │ ├── nginx │ │ ├── handlers │ │ │ └── main.yml │ │ └── tasks │ │ │ └── main.yml │ ├── sites │ │ ├── defaults │ │ │ └── main.yml │ │ ├── handlers │ │ │ └── main.yml │ │ ├── tasks │ │ │ └── main.yml │ │ └── templates │ │ │ ├── dynamic.j2 │ │ │ └── static.j2 │ ├── static │ │ ├── files │ │ │ ├── about.html │ │ │ └── index.html │ │ ├── handlers │ │ │ └── main.yml │ │ ├── meta │ │ │ └── main.yml │ │ ├── tasks │ │ │ └── main.yml │ │ └── vars │ │ │ └── main.yml │ └── web │ │ └── meta │ │ └── main.yml ├── site.yml └── static.yml ├── app ├── app.js ├── bin │ └── www ├── node_modules │ ├── .bin │ │ └── jade │ ├── body-parser │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── HISTORY.md │ │ ├── Makefile │ │ ├── README.md │ │ ├── index.js │ │ ├── node_modules │ │ │ ├── qs │ │ │ │ ├── .gitmodules │ │ │ │ ├── .npmignore │ │ │ │ ├── Readme.md │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── raw-body │ │ │ │ ├── .npmignore │ │ │ │ ├── HISTORY.md │ │ │ │ ├── README.md │ │ │ │ ├── index.js │ │ │ │ ├── node_modules │ │ │ │ │ ├── bytes │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ ├── History.md │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ ├── Readme.md │ │ │ │ │ │ ├── component.json │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── package.json │ │ │ │ │ └── string_decoder │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── package.json │ │ │ │ └── package.json │ │ │ └── type-is │ │ │ │ ├── .npmignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── HISTORY.md │ │ │ │ ├── README.md │ │ │ │ ├── index.js │ │ │ │ ├── node_modules │ │ │ │ └── mime │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── mime.js │ │ │ │ │ ├── package.json │ │ │ │ │ ├── test.js │ │ │ │ │ └── types │ │ │ │ │ ├── mime.types │ │ │ │ │ └── node.types │ │ │ │ └── package.json │ │ └── package.json │ ├── cookie-parser │ │ ├── .npmignore │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ └── parse.js │ │ ├── node_modules │ │ │ ├── cookie-signature │ │ │ │ ├── .npmignore │ │ │ │ ├── History.md │ │ │ │ ├── Makefile │ │ │ │ ├── Readme.md │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ └── cookie │ │ │ │ ├── .npmignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── index.js │ │ │ │ ├── package.json │ │ │ │ └── test │ │ │ │ ├── mocha.opts │ │ │ │ ├── parse.js │ │ │ │ └── serialize.js │ │ ├── package.json │ │ └── test │ │ │ └── cookieParser.js │ ├── debug │ │ ├── Readme.md │ │ ├── debug.js │ │ ├── index.js │ │ ├── lib │ │ │ └── debug.js │ │ └── package.json │ ├── express │ │ ├── .npmignore │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── Readme.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── application.js │ │ │ ├── express.js │ │ │ ├── middleware │ │ │ │ ├── init.js │ │ │ │ └── query.js │ │ │ ├── request.js │ │ │ ├── response.js │ │ │ ├── router │ │ │ │ ├── index.js │ │ │ │ ├── layer.js │ │ │ │ └── route.js │ │ │ ├── utils.js │ │ │ └── view.js │ │ ├── node_modules │ │ │ ├── accepts │ │ │ │ ├── .npmignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── index.js │ │ │ │ ├── node_modules │ │ │ │ │ ├── mime │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── mime.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── types │ │ │ │ │ │ │ ├── mime.types │ │ │ │ │ │ │ └── node.types │ │ │ │ │ └── negotiator │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── lib │ │ │ │ │ │ ├── charset.js │ │ │ │ │ │ ├── encoding.js │ │ │ │ │ │ ├── language.js │ │ │ │ │ │ ├── mediaType.js │ │ │ │ │ │ └── negotiator.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── readme.md │ │ │ │ └── package.json │ │ │ ├── buffer-crc32 │ │ │ │ ├── .npmignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── README.md │ │ │ │ ├── index.js │ │ │ │ ├── package.json │ │ │ │ └── tests │ │ │ │ │ └── crc.test.js │ │ │ ├── cookie-signature │ │ │ │ ├── .npmignore │ │ │ │ ├── History.md │ │ │ │ ├── Makefile │ │ │ │ ├── Readme.md │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── cookie │ │ │ │ ├── .npmignore │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── debug │ │ │ │ ├── Readme.md │ │ │ │ ├── debug.js │ │ │ │ ├── lib │ │ │ │ │ └── debug.js │ │ │ │ └── package.json │ │ │ ├── escape-html │ │ │ │ ├── .npmignore │ │ │ │ ├── Makefile │ │ │ │ ├── Readme.md │ │ │ │ ├── component.json │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── fresh │ │ │ │ ├── .npmignore │ │ │ │ ├── History.md │ │ │ │ ├── Makefile │ │ │ │ ├── Readme.md │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── merge-descriptors │ │ │ │ ├── .npmignore │ │ │ │ ├── README.md │ │ │ │ ├── component.json │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── methods │ │ │ │ ├── .npmignore │ │ │ │ ├── History.md │ │ │ │ ├── LICENSE │ │ │ │ ├── Readme.md │ │ │ │ ├── index.js │ │ │ │ ├── package.json │ │ │ │ └── test │ │ │ │ │ └── methods.js │ │ │ ├── parseurl │ │ │ │ ├── .npmignore │ │ │ │ ├── README.md │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── path-to-regexp │ │ │ │ ├── .npmignore │ │ │ │ ├── History.md │ │ │ │ ├── Readme.md │ │ │ │ ├── component.json │ │ │ │ ├── index.js │ │ │ │ ├── package.json │ │ │ │ └── test.js │ │ │ ├── qs │ │ │ │ ├── .gitmodules │ │ │ │ ├── .npmignore │ │ │ │ ├── Readme.md │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── range-parser │ │ │ │ ├── .npmignore │ │ │ │ ├── History.md │ │ │ │ ├── Makefile │ │ │ │ ├── Readme.md │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── send │ │ │ │ ├── .npmignore │ │ │ │ ├── History.md │ │ │ │ ├── Readme.md │ │ │ │ ├── index.js │ │ │ │ ├── lib │ │ │ │ │ ├── send.js │ │ │ │ │ └── utils.js │ │ │ │ ├── node_modules │ │ │ │ │ ├── debug │ │ │ │ │ │ ├── Readme.md │ │ │ │ │ │ ├── debug.js │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ └── debug.js │ │ │ │ │ │ └── package.json │ │ │ │ │ └── mime │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── mime.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── types │ │ │ │ │ │ ├── mime.types │ │ │ │ │ │ └── node.types │ │ │ │ └── package.json │ │ │ ├── serve-static │ │ │ │ ├── .npmignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── History.md │ │ │ │ ├── LICENSE │ │ │ │ ├── Readme.md │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── type-is │ │ │ │ ├── .npmignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── HISTORY.md │ │ │ │ ├── README.md │ │ │ │ ├── index.js │ │ │ │ ├── node_modules │ │ │ │ │ └── mime │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── mime.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── types │ │ │ │ │ │ ├── mime.types │ │ │ │ │ │ └── node.types │ │ │ │ └── package.json │ │ │ └── utils-merge │ │ │ │ ├── .travis.yml │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ └── package.json │ ├── jade │ │ ├── .npmignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── Readme_zh-cn.md │ │ ├── bin │ │ │ └── jade.js │ │ ├── component.json │ │ ├── index.js │ │ ├── jade-language.md │ │ ├── jade.js │ │ ├── jade.md │ │ ├── lib │ │ │ ├── compiler.js │ │ │ ├── doctypes.js │ │ │ ├── filters-client.js │ │ │ ├── filters.js │ │ │ ├── inline-tags.js │ │ │ ├── jade.js │ │ │ ├── lexer.js │ │ │ ├── nodes │ │ │ │ ├── attrs.js │ │ │ │ ├── block-comment.js │ │ │ │ ├── block.js │ │ │ │ ├── case.js │ │ │ │ ├── code.js │ │ │ │ ├── comment.js │ │ │ │ ├── doctype.js │ │ │ │ ├── each.js │ │ │ │ ├── filter.js │ │ │ │ ├── index.js │ │ │ │ ├── literal.js │ │ │ │ ├── mixin-block.js │ │ │ │ ├── mixin.js │ │ │ │ ├── node.js │ │ │ │ ├── tag.js │ │ │ │ └── text.js │ │ │ ├── parser.js │ │ │ ├── runtime.js │ │ │ ├── self-closing.js │ │ │ └── utils.js │ │ ├── node_modules │ │ │ ├── character-parser │ │ │ │ ├── .npmignore │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── commander │ │ │ │ ├── Readme.md │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── constantinople │ │ │ │ ├── .gitattributes │ │ │ │ ├── .npmignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── index.js │ │ │ │ ├── node_modules │ │ │ │ │ ├── .bin │ │ │ │ │ │ └── uglifyjs │ │ │ │ │ └── uglify-js │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ ├── .travis.yml │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── bin │ │ │ │ │ │ └── uglifyjs │ │ │ │ │ │ ├── lib │ │ │ │ │ │ ├── ast.js │ │ │ │ │ │ ├── compress.js │ │ │ │ │ │ ├── mozilla-ast.js │ │ │ │ │ │ ├── output.js │ │ │ │ │ │ ├── parse.js │ │ │ │ │ │ ├── scope.js │ │ │ │ │ │ ├── sourcemap.js │ │ │ │ │ │ ├── transform.js │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ ├── node_modules │ │ │ │ │ │ ├── async │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── component.json │ │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ │ └── async.js │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ ├── optimist │ │ │ │ │ │ │ ├── .travis.yml │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ ├── example │ │ │ │ │ │ │ │ ├── bool.js │ │ │ │ │ │ │ │ ├── boolean_double.js │ │ │ │ │ │ │ │ ├── boolean_single.js │ │ │ │ │ │ │ │ ├── default_hash.js │ │ │ │ │ │ │ │ ├── default_singles.js │ │ │ │ │ │ │ │ ├── divide.js │ │ │ │ │ │ │ │ ├── line_count.js │ │ │ │ │ │ │ │ ├── line_count_options.js │ │ │ │ │ │ │ │ ├── line_count_wrap.js │ │ │ │ │ │ │ │ ├── nonopt.js │ │ │ │ │ │ │ │ ├── reflect.js │ │ │ │ │ │ │ │ ├── short.js │ │ │ │ │ │ │ │ ├── string.js │ │ │ │ │ │ │ │ ├── usage-options.js │ │ │ │ │ │ │ │ └── xup.js │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── node_modules │ │ │ │ │ │ │ │ └── wordwrap │ │ │ │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ │ │ │ ├── README.markdown │ │ │ │ │ │ │ │ │ ├── example │ │ │ │ │ │ │ │ │ ├── center.js │ │ │ │ │ │ │ │ │ └── meat.js │ │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ │ │ ├── break.js │ │ │ │ │ │ │ │ │ ├── idleness.txt │ │ │ │ │ │ │ │ │ └── wrap.js │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── readme.markdown │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ │ ├── _.js │ │ │ │ │ │ │ │ ├── _ │ │ │ │ │ │ │ │ ├── argv.js │ │ │ │ │ │ │ │ └── bin.js │ │ │ │ │ │ │ │ ├── parse.js │ │ │ │ │ │ │ │ └── usage.js │ │ │ │ │ │ ├── source-map │ │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ │ ├── .tern-port │ │ │ │ │ │ │ ├── .travis.yml │ │ │ │ │ │ │ ├── CHANGELOG.md │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ ├── Makefile.dryice.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── build │ │ │ │ │ │ │ │ ├── assert-shim.js │ │ │ │ │ │ │ │ ├── mini-require.js │ │ │ │ │ │ │ │ ├── prefix-source-map.jsm │ │ │ │ │ │ │ │ ├── prefix-utils.jsm │ │ │ │ │ │ │ │ ├── suffix-browser.js │ │ │ │ │ │ │ │ ├── suffix-source-map.jsm │ │ │ │ │ │ │ │ ├── suffix-utils.jsm │ │ │ │ │ │ │ │ ├── test-prefix.js │ │ │ │ │ │ │ │ └── test-suffix.js │ │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ │ ├── source-map.js │ │ │ │ │ │ │ │ └── source-map │ │ │ │ │ │ │ │ │ ├── array-set.js │ │ │ │ │ │ │ │ │ ├── base64-vlq.js │ │ │ │ │ │ │ │ │ ├── base64.js │ │ │ │ │ │ │ │ │ ├── binary-search.js │ │ │ │ │ │ │ │ │ ├── source-map-consumer.js │ │ │ │ │ │ │ │ │ ├── source-map-generator.js │ │ │ │ │ │ │ │ │ ├── source-node.js │ │ │ │ │ │ │ │ │ └── util.js │ │ │ │ │ │ │ ├── node_modules │ │ │ │ │ │ │ │ └── amdefine │ │ │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ │ │ ├── amdefine.js │ │ │ │ │ │ │ │ │ ├── intercept.js │ │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ │ ├── run-tests.js │ │ │ │ │ │ │ │ └── source-map │ │ │ │ │ │ │ │ ├── test-api.js │ │ │ │ │ │ │ │ ├── test-array-set.js │ │ │ │ │ │ │ │ ├── test-base64-vlq.js │ │ │ │ │ │ │ │ ├── test-base64.js │ │ │ │ │ │ │ │ ├── test-binary-search.js │ │ │ │ │ │ │ │ ├── test-dog-fooding.js │ │ │ │ │ │ │ │ ├── test-source-map-consumer.js │ │ │ │ │ │ │ │ ├── test-source-map-generator.js │ │ │ │ │ │ │ │ ├── test-source-node.js │ │ │ │ │ │ │ │ ├── test-util.js │ │ │ │ │ │ │ │ └── util.js │ │ │ │ │ │ └── uglify-to-browserify │ │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ │ ├── .travis.yml │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── test │ │ │ │ │ │ ├── compress │ │ │ │ │ │ │ ├── arrays.js │ │ │ │ │ │ │ ├── blocks.js │ │ │ │ │ │ │ ├── concat-strings.js │ │ │ │ │ │ │ ├── conditionals.js │ │ │ │ │ │ │ ├── dead-code.js │ │ │ │ │ │ │ ├── debugger.js │ │ │ │ │ │ │ ├── drop-unused.js │ │ │ │ │ │ │ ├── issue-105.js │ │ │ │ │ │ │ ├── issue-12.js │ │ │ │ │ │ │ ├── issue-126.js │ │ │ │ │ │ │ ├── issue-143.js │ │ │ │ │ │ │ ├── issue-22.js │ │ │ │ │ │ │ ├── issue-267.js │ │ │ │ │ │ │ ├── issue-269.js │ │ │ │ │ │ │ ├── issue-44.js │ │ │ │ │ │ │ ├── issue-59.js │ │ │ │ │ │ │ ├── labels.js │ │ │ │ │ │ │ ├── loops.js │ │ │ │ │ │ │ ├── negate-iife.js │ │ │ │ │ │ │ ├── properties.js │ │ │ │ │ │ │ ├── sequences.js │ │ │ │ │ │ │ ├── switch.js │ │ │ │ │ │ │ └── typeof.js │ │ │ │ │ │ └── run-tests.js │ │ │ │ │ │ └── tools │ │ │ │ │ │ └── node.js │ │ │ │ ├── package.json │ │ │ │ └── test │ │ │ │ │ └── index.js │ │ │ ├── mkdirp │ │ │ │ ├── .npmignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── LICENSE │ │ │ │ ├── examples │ │ │ │ │ └── pow.js │ │ │ │ ├── index.js │ │ │ │ ├── package.json │ │ │ │ ├── readme.markdown │ │ │ │ └── test │ │ │ │ │ ├── chmod.js │ │ │ │ │ ├── clobber.js │ │ │ │ │ ├── mkdirp.js │ │ │ │ │ ├── perm.js │ │ │ │ │ ├── perm_sync.js │ │ │ │ │ ├── race.js │ │ │ │ │ ├── rel.js │ │ │ │ │ ├── return.js │ │ │ │ │ ├── return_sync.js │ │ │ │ │ ├── root.js │ │ │ │ │ ├── sync.js │ │ │ │ │ ├── umask.js │ │ │ │ │ └── umask_sync.js │ │ │ ├── monocle │ │ │ │ ├── .npmignore │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── monocle.js │ │ │ │ ├── node_modules │ │ │ │ │ └── readdirp │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ ├── .travis.yml │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── examples │ │ │ │ │ │ ├── Readme.md │ │ │ │ │ │ ├── callback-api.js │ │ │ │ │ │ ├── grep.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── stream-api-pipe.js │ │ │ │ │ │ └── stream-api.js │ │ │ │ │ │ ├── node_modules │ │ │ │ │ │ └── minimatch │ │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── minimatch.js │ │ │ │ │ │ │ ├── node_modules │ │ │ │ │ │ │ ├── lru-cache │ │ │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ │ │ ├── CONTRIBUTORS │ │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ │ │ └── lru-cache.js │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ │ │ ├── basic.js │ │ │ │ │ │ │ │ │ ├── foreach.js │ │ │ │ │ │ │ │ │ └── memory-leak.js │ │ │ │ │ │ │ └── sigmund │ │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ │ ├── bench.js │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ ├── sigmund.js │ │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ │ └── basic.js │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ ├── basic.js │ │ │ │ │ │ │ ├── brace-expand.js │ │ │ │ │ │ │ ├── caching.js │ │ │ │ │ │ │ ├── defaults.js │ │ │ │ │ │ │ └── extglob-ending-with-state-char.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── readdirp.js │ │ │ │ │ │ ├── stream-api.js │ │ │ │ │ │ └── test │ │ │ │ │ │ ├── bed │ │ │ │ │ │ ├── root_dir1 │ │ │ │ │ │ │ ├── root_dir1_file1.ext1 │ │ │ │ │ │ │ ├── root_dir1_file2.ext2 │ │ │ │ │ │ │ ├── root_dir1_file3.ext3 │ │ │ │ │ │ │ └── root_dir1_subdir1 │ │ │ │ │ │ │ │ └── root1_dir1_subdir1_file1.ext1 │ │ │ │ │ │ ├── root_dir2 │ │ │ │ │ │ │ ├── root_dir2_file1.ext1 │ │ │ │ │ │ │ └── root_dir2_file2.ext2 │ │ │ │ │ │ ├── root_file1.ext1 │ │ │ │ │ │ ├── root_file2.ext2 │ │ │ │ │ │ └── root_file3.ext3 │ │ │ │ │ │ ├── readdirp-stream.js │ │ │ │ │ │ └── readdirp.js │ │ │ │ └── package.json │ │ │ ├── transformers │ │ │ │ ├── .npmignore │ │ │ │ ├── README.md │ │ │ │ ├── history.md │ │ │ │ ├── lib │ │ │ │ │ ├── shared.js │ │ │ │ │ └── transformers.js │ │ │ │ ├── node_modules │ │ │ │ │ ├── .bin │ │ │ │ │ │ └── uglifyjs │ │ │ │ │ ├── css │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ ├── History.md │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ ├── Readme.md │ │ │ │ │ │ ├── benchmark.js │ │ │ │ │ │ ├── component.json │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── node_modules │ │ │ │ │ │ │ ├── css-parse │ │ │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ │ │ ├── History.md │ │ │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ │ │ ├── Readme.md │ │ │ │ │ │ │ │ ├── component.json │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ └── css-stringify │ │ │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ │ │ ├── History.md │ │ │ │ │ │ │ │ ├── Makefile │ │ │ │ │ │ │ │ ├── Readme.md │ │ │ │ │ │ │ │ ├── component.json │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── promise │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ ├── Readme.md │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── node_modules │ │ │ │ │ │ │ └── is-promise │ │ │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ │ │ ├── .travis.yml │ │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ └── readme.md │ │ │ │ │ │ └── package.json │ │ │ │ │ └── uglify-js │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── bin │ │ │ │ │ │ └── uglifyjs │ │ │ │ │ │ ├── lib │ │ │ │ │ │ ├── ast.js │ │ │ │ │ │ ├── compress.js │ │ │ │ │ │ ├── mozilla-ast.js │ │ │ │ │ │ ├── output.js │ │ │ │ │ │ ├── parse.js │ │ │ │ │ │ ├── scope.js │ │ │ │ │ │ ├── sourcemap.js │ │ │ │ │ │ ├── transform.js │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ ├── node_modules │ │ │ │ │ │ ├── optimist │ │ │ │ │ │ │ ├── .travis.yml │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ ├── example │ │ │ │ │ │ │ │ ├── bool.js │ │ │ │ │ │ │ │ ├── boolean_double.js │ │ │ │ │ │ │ │ ├── boolean_single.js │ │ │ │ │ │ │ │ ├── default_hash.js │ │ │ │ │ │ │ │ ├── default_singles.js │ │ │ │ │ │ │ │ ├── divide.js │ │ │ │ │ │ │ │ ├── line_count.js │ │ │ │ │ │ │ │ ├── line_count_options.js │ │ │ │ │ │ │ │ ├── line_count_wrap.js │ │ │ │ │ │ │ │ ├── nonopt.js │ │ │ │ │ │ │ │ ├── reflect.js │ │ │ │ │ │ │ │ ├── short.js │ │ │ │ │ │ │ │ ├── string.js │ │ │ │ │ │ │ │ ├── usage-options.js │ │ │ │ │ │ │ │ └── xup.js │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── node_modules │ │ │ │ │ │ │ │ └── wordwrap │ │ │ │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ │ │ │ ├── README.markdown │ │ │ │ │ │ │ │ │ ├── example │ │ │ │ │ │ │ │ │ ├── center.js │ │ │ │ │ │ │ │ │ └── meat.js │ │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ │ │ ├── break.js │ │ │ │ │ │ │ │ │ ├── idleness.txt │ │ │ │ │ │ │ │ │ └── wrap.js │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── readme.markdown │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ │ ├── _.js │ │ │ │ │ │ │ │ ├── _ │ │ │ │ │ │ │ │ ├── argv.js │ │ │ │ │ │ │ │ └── bin.js │ │ │ │ │ │ │ │ ├── parse.js │ │ │ │ │ │ │ │ └── usage.js │ │ │ │ │ │ └── source-map │ │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ │ ├── .travis.yml │ │ │ │ │ │ │ ├── CHANGELOG.md │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ ├── Makefile.dryice.js │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── build │ │ │ │ │ │ │ ├── assert-shim.js │ │ │ │ │ │ │ ├── mini-require.js │ │ │ │ │ │ │ ├── prefix-source-map.jsm │ │ │ │ │ │ │ ├── prefix-utils.jsm │ │ │ │ │ │ │ ├── suffix-browser.js │ │ │ │ │ │ │ ├── suffix-source-map.jsm │ │ │ │ │ │ │ ├── suffix-utils.jsm │ │ │ │ │ │ │ ├── test-prefix.js │ │ │ │ │ │ │ └── test-suffix.js │ │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ ├── source-map.js │ │ │ │ │ │ │ └── source-map │ │ │ │ │ │ │ │ ├── array-set.js │ │ │ │ │ │ │ │ ├── base64-vlq.js │ │ │ │ │ │ │ │ ├── base64.js │ │ │ │ │ │ │ │ ├── binary-search.js │ │ │ │ │ │ │ │ ├── source-map-consumer.js │ │ │ │ │ │ │ │ ├── source-map-generator.js │ │ │ │ │ │ │ │ ├── source-node.js │ │ │ │ │ │ │ │ └── util.js │ │ │ │ │ │ │ ├── node_modules │ │ │ │ │ │ │ └── amdefine │ │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ │ ├── amdefine.js │ │ │ │ │ │ │ │ ├── intercept.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ ├── run-tests.js │ │ │ │ │ │ │ └── source-map │ │ │ │ │ │ │ ├── test-api.js │ │ │ │ │ │ │ ├── test-array-set.js │ │ │ │ │ │ │ ├── test-base64-vlq.js │ │ │ │ │ │ │ ├── test-base64.js │ │ │ │ │ │ │ ├── test-binary-search.js │ │ │ │ │ │ │ ├── test-dog-fooding.js │ │ │ │ │ │ │ ├── test-source-map-consumer.js │ │ │ │ │ │ │ ├── test-source-map-generator.js │ │ │ │ │ │ │ ├── test-source-node.js │ │ │ │ │ │ │ ├── test-util.js │ │ │ │ │ │ │ └── util.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── test │ │ │ │ │ │ ├── compress │ │ │ │ │ │ │ ├── arrays.js │ │ │ │ │ │ │ ├── blocks.js │ │ │ │ │ │ │ ├── conditionals.js │ │ │ │ │ │ │ ├── dead-code.js │ │ │ │ │ │ │ ├── debugger.js │ │ │ │ │ │ │ ├── drop-unused.js │ │ │ │ │ │ │ ├── issue-105.js │ │ │ │ │ │ │ ├── issue-12.js │ │ │ │ │ │ │ ├── issue-22.js │ │ │ │ │ │ │ ├── issue-44.js │ │ │ │ │ │ │ ├── issue-59.js │ │ │ │ │ │ │ ├── labels.js │ │ │ │ │ │ │ ├── loops.js │ │ │ │ │ │ │ ├── properties.js │ │ │ │ │ │ │ ├── sequences.js │ │ │ │ │ │ │ └── switch.js │ │ │ │ │ │ └── run-tests.js │ │ │ │ │ │ └── tools │ │ │ │ │ │ └── node.js │ │ │ │ └── package.json │ │ │ └── with │ │ │ │ ├── .npmignore │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── index.js │ │ │ │ ├── node_modules │ │ │ │ ├── .bin │ │ │ │ │ └── uglifyjs │ │ │ │ └── uglify-js │ │ │ │ │ ├── .npmignore │ │ │ │ │ ├── .travis.yml │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── bin │ │ │ │ │ └── uglifyjs │ │ │ │ │ ├── lib │ │ │ │ │ ├── ast.js │ │ │ │ │ ├── compress.js │ │ │ │ │ ├── mozilla-ast.js │ │ │ │ │ ├── output.js │ │ │ │ │ ├── parse.js │ │ │ │ │ ├── scope.js │ │ │ │ │ ├── sourcemap.js │ │ │ │ │ ├── transform.js │ │ │ │ │ └── utils.js │ │ │ │ │ ├── node_modules │ │ │ │ │ ├── async │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── component.json │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ └── async.js │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── optimist │ │ │ │ │ │ ├── .travis.yml │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── example │ │ │ │ │ │ │ ├── bool.js │ │ │ │ │ │ │ ├── boolean_double.js │ │ │ │ │ │ │ ├── boolean_single.js │ │ │ │ │ │ │ ├── default_hash.js │ │ │ │ │ │ │ ├── default_singles.js │ │ │ │ │ │ │ ├── divide.js │ │ │ │ │ │ │ ├── line_count.js │ │ │ │ │ │ │ ├── line_count_options.js │ │ │ │ │ │ │ ├── line_count_wrap.js │ │ │ │ │ │ │ ├── nonopt.js │ │ │ │ │ │ │ ├── reflect.js │ │ │ │ │ │ │ ├── short.js │ │ │ │ │ │ │ ├── string.js │ │ │ │ │ │ │ ├── usage-options.js │ │ │ │ │ │ │ └── xup.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── node_modules │ │ │ │ │ │ │ └── wordwrap │ │ │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ │ │ ├── README.markdown │ │ │ │ │ │ │ │ ├── example │ │ │ │ │ │ │ │ ├── center.js │ │ │ │ │ │ │ │ └── meat.js │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ │ ├── break.js │ │ │ │ │ │ │ │ ├── idleness.txt │ │ │ │ │ │ │ │ └── wrap.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── readme.markdown │ │ │ │ │ │ └── test │ │ │ │ │ │ │ ├── _.js │ │ │ │ │ │ │ ├── _ │ │ │ │ │ │ │ ├── argv.js │ │ │ │ │ │ │ └── bin.js │ │ │ │ │ │ │ ├── parse.js │ │ │ │ │ │ │ └── usage.js │ │ │ │ │ ├── source-map │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ ├── .tern-port │ │ │ │ │ │ ├── .travis.yml │ │ │ │ │ │ ├── CHANGELOG.md │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── Makefile.dryice.js │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── build │ │ │ │ │ │ │ ├── assert-shim.js │ │ │ │ │ │ │ ├── mini-require.js │ │ │ │ │ │ │ ├── prefix-source-map.jsm │ │ │ │ │ │ │ ├── prefix-utils.jsm │ │ │ │ │ │ │ ├── suffix-browser.js │ │ │ │ │ │ │ ├── suffix-source-map.jsm │ │ │ │ │ │ │ ├── suffix-utils.jsm │ │ │ │ │ │ │ ├── test-prefix.js │ │ │ │ │ │ │ └── test-suffix.js │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ ├── source-map.js │ │ │ │ │ │ │ └── source-map │ │ │ │ │ │ │ │ ├── array-set.js │ │ │ │ │ │ │ │ ├── base64-vlq.js │ │ │ │ │ │ │ │ ├── base64.js │ │ │ │ │ │ │ │ ├── binary-search.js │ │ │ │ │ │ │ │ ├── source-map-consumer.js │ │ │ │ │ │ │ │ ├── source-map-generator.js │ │ │ │ │ │ │ │ ├── source-node.js │ │ │ │ │ │ │ │ └── util.js │ │ │ │ │ │ ├── node_modules │ │ │ │ │ │ │ └── amdefine │ │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ │ ├── amdefine.js │ │ │ │ │ │ │ │ ├── intercept.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── test │ │ │ │ │ │ │ ├── run-tests.js │ │ │ │ │ │ │ └── source-map │ │ │ │ │ │ │ ├── test-api.js │ │ │ │ │ │ │ ├── test-array-set.js │ │ │ │ │ │ │ ├── test-base64-vlq.js │ │ │ │ │ │ │ ├── test-base64.js │ │ │ │ │ │ │ ├── test-binary-search.js │ │ │ │ │ │ │ ├── test-dog-fooding.js │ │ │ │ │ │ │ ├── test-source-map-consumer.js │ │ │ │ │ │ │ ├── test-source-map-generator.js │ │ │ │ │ │ │ ├── test-source-node.js │ │ │ │ │ │ │ ├── test-util.js │ │ │ │ │ │ │ └── util.js │ │ │ │ │ └── uglify-to-browserify │ │ │ │ │ │ ├── .npmignore │ │ │ │ │ │ ├── .travis.yml │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── test │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── package.json │ │ │ │ │ ├── test │ │ │ │ │ ├── compress │ │ │ │ │ │ ├── arrays.js │ │ │ │ │ │ ├── blocks.js │ │ │ │ │ │ ├── concat-strings.js │ │ │ │ │ │ ├── conditionals.js │ │ │ │ │ │ ├── dead-code.js │ │ │ │ │ │ ├── debugger.js │ │ │ │ │ │ ├── drop-unused.js │ │ │ │ │ │ ├── issue-105.js │ │ │ │ │ │ ├── issue-12.js │ │ │ │ │ │ ├── issue-126.js │ │ │ │ │ │ ├── issue-143.js │ │ │ │ │ │ ├── issue-22.js │ │ │ │ │ │ ├── issue-267.js │ │ │ │ │ │ ├── issue-269.js │ │ │ │ │ │ ├── issue-44.js │ │ │ │ │ │ ├── issue-59.js │ │ │ │ │ │ ├── labels.js │ │ │ │ │ │ ├── loops.js │ │ │ │ │ │ ├── negate-iife.js │ │ │ │ │ │ ├── properties.js │ │ │ │ │ │ ├── sequences.js │ │ │ │ │ │ ├── switch.js │ │ │ │ │ │ └── typeof.js │ │ │ │ │ └── run-tests.js │ │ │ │ │ └── tools │ │ │ │ │ └── node.js │ │ │ │ ├── package.json │ │ │ │ └── vars.js │ │ ├── package.json │ │ └── runtime.js │ ├── morgan │ │ ├── .npmignore │ │ ├── History.md │ │ ├── README.md │ │ ├── index.js │ │ ├── node_modules │ │ │ └── bytes │ │ │ │ ├── .npmignore │ │ │ │ ├── History.md │ │ │ │ ├── Makefile │ │ │ │ ├── Readme.md │ │ │ │ ├── component.json │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ └── package.json │ └── static-favicon │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── favicon.ico │ │ ├── index.js │ │ └── package.json ├── package.json ├── public │ └── stylesheets │ │ └── style.css ├── routes │ ├── index.js │ └── users.js └── views │ ├── error.jade │ ├── index.jade │ └── layout.jade └── vagrant └── Vagrantfile /ansible/dev/group_vars/dynamic: -------------------------------------------------------------------------------- 1 | --- 2 | sites: 3 | - dynamic-group -------------------------------------------------------------------------------- /ansible/dev/group_vars/static: -------------------------------------------------------------------------------- 1 | --- 2 | sites: 3 | - static -------------------------------------------------------------------------------- /ansible/dev/host_vars/dynamic-1: -------------------------------------------------------------------------------- 1 | --- 2 | parent_dir: /opt/bigpanda 3 | sites: 4 | - dynamic-host -------------------------------------------------------------------------------- /ansible/dev/hosts: -------------------------------------------------------------------------------- 1 | static-1 ansible_connection=ssh static_root_dir=/var/www 2 | dynamic-1 ansible_connection=ssh 3 | 4 | [static] 5 | static-1 6 | 7 | [dynamic] 8 | dynamic-1 9 | -------------------------------------------------------------------------------- /ansible/dynamic.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: dynamic-1 3 | sudo: yes 4 | 5 | roles: 6 | - dynamic 7 | - sites 8 | -------------------------------------------------------------------------------- /ansible/roles/common/tasks/git.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: install git 4 | apt: name=git state=present 5 | sudo: yes 6 | -------------------------------------------------------------------------------- /ansible/roles/common/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - include: git.yml 4 | 5 | - include: nodejs.yml -------------------------------------------------------------------------------- /ansible/roles/common/tasks/nodejs.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: add 'chris-lea' PPA for Node.js 3 | sudo: true 4 | apt_repository: repo=ppa:chris-lea/node.js 5 | 6 | - name: install dependencies 7 | sudo: true 8 | apt: pkg={{item}} 9 | with_items: 10 | - python-software-properties 11 | - g++ 12 | - make 13 | 14 | - name: install package 15 | sudo: true 16 | apt: pkg=nodejs -------------------------------------------------------------------------------- /ansible/roles/dynamic/files/demo.conf: -------------------------------------------------------------------------------- 1 | # Ansible Workshop Demo App 2 | 3 | description "Ansible Workshop Demo App" 4 | 5 | start on runlevel [2345] 6 | stop on runlevel [!2345] 7 | 8 | setuid vagrant 9 | setgid vagrant 10 | 11 | umask 022 12 | 13 | console log 14 | exec /opt/bigpanda/ansible-workshop/app/bin/www 15 | -------------------------------------------------------------------------------- /ansible/roles/dynamic/handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - include: ../../nginx/handlers/main.yml 4 | 5 | - name: restart app 6 | service: name=demo state=restarted 7 | sudo: yes -------------------------------------------------------------------------------- /ansible/roles/dynamic/meta/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | dependencies: 4 | - web -------------------------------------------------------------------------------- /ansible/roles/dynamic/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: create application parent dir 4 | file: path={{ parent_dir }} owner=vagrant group=vagrant state=directory 5 | sudo: yes 6 | 7 | - name: clone application to target dir 8 | git: repo=git@github.com:bigpandaio/ansible-workshop.git dest={{ parent_dir }}/ansible-workshop accept_hostkey=true 9 | notify: 10 | - restart app 11 | sudo: no 12 | 13 | - name: npm install 14 | npm: path={{ parent_dir }}/ansible-workshop/app production={{ (env | default('dev')) == 'prod' }} 15 | sudo: no 16 | 17 | - name: copy upstart configuration 18 | copy: src=demo.conf dest=/etc/init/ 19 | sudo: yes 20 | 21 | - name: start app 22 | service: name=demo state=started enabled=true 23 | sudo: yes -------------------------------------------------------------------------------- /ansible/roles/dynamic/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | sites: 3 | - dynamic -------------------------------------------------------------------------------- /ansible/roles/nginx/handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: reload nginx 4 | service: name=nginx state=reloaded 5 | -------------------------------------------------------------------------------- /ansible/roles/nginx/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: install nginx 4 | apt: name=nginx state=present 5 | when: ansible_os_family == "Debian" 6 | sudo: yes 7 | 8 | - name: install nginx 9 | yum: name=nginx state=present 10 | when: ansible_os_family == "RedHat" 11 | sudo: yes 12 | 13 | - name: delete default site 14 | file: path=/etc/nginx/sites-enabled/default state=absent 15 | notify: 16 | - reload nginx 17 | sudo: yes -------------------------------------------------------------------------------- /ansible/roles/sites/defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | sites: [] -------------------------------------------------------------------------------- /ansible/roles/sites/handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - include: ../../nginx/handlers/main.yml -------------------------------------------------------------------------------- /ansible/roles/sites/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: generate site from template 4 | template: src={{ item }}.j2 dest=/etc/nginx/sites-available/{{ item }} 5 | with_items: sites 6 | notify: 7 | - reload nginx 8 | sudo: yes 9 | 10 | - name: enable site 11 | file: path=/etc/nginx/sites-enabled/{{ item }} src=/etc/nginx/sites-available/{{ item }} state=link 12 | with_items: sites 13 | notify: 14 | - reload nginx 15 | sudo: yes 16 | -------------------------------------------------------------------------------- /ansible/roles/sites/templates/dynamic.j2: -------------------------------------------------------------------------------- 1 | # This site was generated by Ansible on {{ template_run_date.strftime('%Y-%m-%d') }}. 2 | # Generation was triggered by: {{ ansible_user_id }} 3 | 4 | server { 5 | 6 | listen 8081; 7 | 8 | # Make site accessible from http://localhost/ 9 | server_name localhost; 10 | 11 | location / { 12 | 13 | proxy_pass http://localhost:7000/; 14 | proxy_redirect off; 15 | proxy_set_header Host $host; 16 | proxy_set_header X-Real-IP $remote_addr; 17 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 18 | proxy_set_header X-Forwarded-Proto https; 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /ansible/roles/sites/templates/static.j2: -------------------------------------------------------------------------------- 1 | # This site was generated by Ansible on {{ template_run_date.strftime('%Y-%m-%d') }}. 2 | # Generation was triggered by: {{ ansible_user_id }} 3 | 4 | server { 5 | 6 | listen 80 default_server; 7 | 8 | root {{ static_root_dir }}; 9 | index index.html index.htm; 10 | 11 | # Make site accessible from http://localhost/ 12 | server_name localhost; 13 | 14 | location / { 15 | # First attempt to serve request as file, then 16 | # as directory, then fall back to displaying a 404. 17 | try_files $uri $uri/ =404; 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /ansible/roles/static/files/about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | About Ansible 6 | 7 | 8 | It doesn’t matter if you have one server or thousands. Deploying, configuring, and updating systems and their applications is drudgery. 9 | 10 | Michael DeHaan started the Ansible project because he realized that past attempts to automate IT had only moved complexity into other areas. Instead of making the lives of developers and sysadmins easier, we were now managing the management systems with a messy combination of custom code, heavyweight agents and point solutions. And none of these tools were built for the cloud. There had to be a simpler way. 11 | 12 | Ansible makes deploying software fun again. 13 | 14 | Ansible is a powerful automation engine that makes systems and applications simple to deploy. 
No custom scripting or custom code. No agents. All using an automation language that’s easy for anyone to understand and learn. Just get in, get it done, and make some time for other strategic projects. 15 | 16 | Want to learn more about the history of Ansible? Read the Ansible origin blog post. 17 | 18 | -------------------------------------------------------------------------------- /ansible/roles/static/files/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BigPanda Loves Ansible 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ansible/roles/static/handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - include: ../../nginx/handlers/main.yml -------------------------------------------------------------------------------- /ansible/roles/static/meta/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | dependencies: 4 | - web -------------------------------------------------------------------------------- /ansible/roles/static/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - include: ../../sites/tasks/main.yml 4 | 5 | - name: create static root dir 6 | file: path={{ static_root_dir }} state=directory owner=www-data group=www-data recurse=true 7 | sudo: yes 8 | 9 | - name: copy static HTML files to root dir 10 | copy: src={{ item }} dest=/var/www owner=www-data group=www-data 11 | sudo: yes 12 | with_fileglob: 13 | - ./*.html 14 | notify: 15 | - reload nginx -------------------------------------------------------------------------------- /ansible/roles/static/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | -------------------------------------------------------------------------------- /ansible/roles/web/meta/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | dependencies: 4 | - nginx 5 | - common -------------------------------------------------------------------------------- /ansible/site.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - include: static.yml 4 | 5 | - include: dynamic.yml -------------------------------------------------------------------------------- /ansible/static.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: static 3 | sudo: yes 4 | 5 | roles: 6 | - static 7 | - sites 8 | -------------------------------------------------------------------------------- /app/bin/www: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var debug = require('debug')('app'); 3 | var app = require('../app'); 4 | 5 | app.set('port', process.env.PORT || 7000); 6 | 7 | var server = app.listen(app.get('port'), function() { 8 | debug('Express server listening on port ' + server.address().port); 9 | }); 10 | -------------------------------------------------------------------------------- /app/node_modules/.bin/jade: -------------------------------------------------------------------------------- 1 | ../jade/bin/jade.js -------------------------------------------------------------------------------- /app/node_modules/body-parser/.npmignore: -------------------------------------------------------------------------------- 1 | test/ -------------------------------------------------------------------------------- /app/node_modules/body-parser/.travis.yml: -------------------------------------------------------------------------------- 1 | node_js: 2 | - "0.10" 3 | language: node_js -------------------------------------------------------------------------------- /app/node_modules/body-parser/HISTORY.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.1 / 2014-04-14 3 | ================== 4 | 5 | * use `type-is` module 6 | 7 | 1.0.1 / 2014-03-20 8 | ================== 9 | 10 | * lower default limits to 100kb 11 | -------------------------------------------------------------------------------- /app/node_modules/body-parser/Makefile: -------------------------------------------------------------------------------- 1 | BIN = ./node_modules/.bin/ 2 | 3 | test: 4 | @$(BIN)mocha \ 5 | --require should \ 6 | --reporter spec \ 7 | --bail 8 | 9 | .PHONY: test -------------------------------------------------------------------------------- /app/node_modules/body-parser/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 | -------------------------------------------------------------------------------- /app/node_modules/body-parser/node_modules/qs/.npmignore: -------------------------------------------------------------------------------- 1 | test 2 | .travis.yml 3 | benchmark.js 4 | component.json 5 | examples.js 6 | History.md 7 | Makefile 8 | -------------------------------------------------------------------------------- /app/node_modules/body-parser/node_modules/raw-body/.npmignore: -------------------------------------------------------------------------------- 1 | coverage/ 2 | test/ 3 | .travis.yml 4 | -------------------------------------------------------------------------------- /app/node_modules/body-parser/node_modules/raw-body/node_modules/bytes/.npmignore: -------------------------------------------------------------------------------- 1 | test 2 | -------------------------------------------------------------------------------- /app/node_modules/body-parser/node_modules/raw-body/node_modules/bytes/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.0 / 2014-05-05 3 | ================== 4 | 5 | * add negative support. fixes #6 6 | 7 | 0.3.0 / 2014-03-19 8 | ================== 9 | 10 | * added terabyte support 11 | 12 | 0.2.1 / 2013-04-01 13 | ================== 14 | 15 | * add .component 16 | 17 | 0.2.0 / 2012-10-28 18 | ================== 19 | 20 | * bytes(200).should.eql('200b') 21 | 22 | 0.1.0 / 2012-07-04 23 | ================== 24 | 25 | * add bytes to string conversion [yields] 26 | -------------------------------------------------------------------------------- /app/node_modules/body-parser/node_modules/raw-body/node_modules/bytes/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --reporter spec \ 5 | --require should 6 | 7 | .PHONY: test -------------------------------------------------------------------------------- /app/node_modules/body-parser/node_modules/raw-body/node_modules/bytes/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bytes", 3 | "description": "byte size string parser / serializer", 4 | "keywords": ["bytes", "utility"], 5 | "version": "0.2.1", 6 | "scripts": ["index.js"] 7 | } 8 | -------------------------------------------------------------------------------- /app/node_modules/body-parser/node_modules/raw-body/node_modules/bytes/index.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Parse byte `size` string. 4 | * 5 | * @param {String} size 6 | * @return {Number} 7 | * @api public 8 | */ 9 | 10 | module.exports = function(size) { 11 | if ('number' == typeof size) return convert(size); 12 | var parts = size.match(/^(\d+(?:\.\d+)?) *(kb|mb|gb|tb)$/) 13 | , n = parseFloat(parts[1]) 14 | , type = parts[2]; 15 | 16 | var map = { 17 | kb: 1 << 10 18 | , mb: 1 << 20 19 | , gb: 1 << 30 20 | , tb: ((1 << 30) * 1024) 21 | }; 22 | 23 | return map[type] * n; 24 | }; 25 | 26 | /** 27 | * convert bytes into string. 28 | * 29 | * @param {Number} b - bytes to convert 30 | * @return {String} 31 | * @api public 32 | */ 33 | 34 | function convert (b) { 35 | var tb = ((1 << 30) * 1024), gb = 1 << 30, mb = 1 << 20, kb = 1 << 10, abs = Math.abs(b); 36 | if (abs >= tb) return (Math.round(b / tb * 100) / 100) + 'tb'; 37 | if (abs >= gb) return (Math.round(b / gb * 100) / 100) + 'gb'; 38 | if (abs >= mb) return (Math.round(b / mb * 100) / 100) + 'mb'; 39 | if (abs >= kb) return (Math.round(b / kb * 100) / 100) + 'kb'; 40 | return b + 'b'; 41 | } 42 | -------------------------------------------------------------------------------- /app/node_modules/body-parser/node_modules/raw-body/node_modules/string_decoder/.npmignore: -------------------------------------------------------------------------------- 1 | build 2 | test 3 | -------------------------------------------------------------------------------- /app/node_modules/body-parser/node_modules/raw-body/node_modules/string_decoder/README.md: -------------------------------------------------------------------------------- 1 | **string_decoder.js** (`require('string_decoder')`) from Node.js core 2 | 3 | Copyright Joyent, Inc. and other Node contributors. See LICENCE file for details. 4 | 5 | Version numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. **Prefer the stable version over the unstable.** 6 | 7 | The *build/* directory contains a build script that will scrape the source from the [joyent/node](https://github.com/joyent/node) repo given a specific Node version. -------------------------------------------------------------------------------- /app/node_modules/body-parser/node_modules/type-is/.npmignore: -------------------------------------------------------------------------------- 1 | test.js -------------------------------------------------------------------------------- /app/node_modules/body-parser/node_modules/type-is/.travis.yml: -------------------------------------------------------------------------------- 1 | node_js: 2 | - "0.10" 3 | - "0.11" 4 | language: node_js -------------------------------------------------------------------------------- /app/node_modules/body-parser/node_modules/type-is/HISTORY.md: -------------------------------------------------------------------------------- 1 | 2 | 1.1.0 / 2014-04-12 3 | ================== 4 | 5 | * add non-array values support 6 | * expose internal utilities: 7 | 8 | - `.is()` 9 | - `.hasBody()` 10 | - `.normalize()` 11 | - `.match()` 12 | 13 | 1.0.1 / 2014-03-30 14 | ================== 15 | 16 | * add `multipart` as a shorthand 17 | -------------------------------------------------------------------------------- /app/node_modules/body-parser/node_modules/type-is/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 | -------------------------------------------------------------------------------- /app/node_modules/cookie-parser/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /app/node_modules/cookie-parser/README.md: -------------------------------------------------------------------------------- 1 | # cookie-parser 2 | 3 | Parse _Cookie_ header and populate `req.cookies` with an object keyed by the cookie 4 | names. Optionally you may enabled signed cookie support by passing a `secret` string, 5 | which assigns `req.secret` so it may be used by other middleware. 6 | 7 | ```js 8 | var cookieParser = require('cookie-parser'); 9 | 10 | connect() 11 | .use(cookieParser('optional secret string')) 12 | .use(function(req, res, next){ 13 | res.end(JSON.stringify(req.cookies)); 14 | }) 15 | ``` 16 | 17 | ## install 18 | 19 | ```shell 20 | npm install cookie-parser 21 | ``` 22 | 23 | ## License 24 | 25 | MIT 26 | -------------------------------------------------------------------------------- /app/node_modules/cookie-parser/node_modules/cookie-signature/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /app/node_modules/cookie-parser/node_modules/cookie-signature/History.md: -------------------------------------------------------------------------------- 1 | 1.0.3 / 2014-01-28 2 | ================== 3 | 4 | * fix for timing attacks 5 | 6 | 1.0.2 / 2014-01-28 7 | ================== 8 | 9 | * fix missing repository warning 10 | * fix typo in test 11 | 12 | 1.0.1 / 2013-04-15 13 | ================== 14 | 15 | * Revert "Changed underlying HMAC algo. to sha512." 16 | * Revert "Fix for timing attacks on MAC verification." 17 | 18 | 0.0.1 / 2010-01-03 19 | ================== 20 | 21 | * Initial release 22 | -------------------------------------------------------------------------------- /app/node_modules/cookie-parser/node_modules/cookie-signature/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --require should \ 5 | --reporter spec 6 | 7 | .PHONY: test -------------------------------------------------------------------------------- /app/node_modules/cookie-parser/node_modules/cookie/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /app/node_modules/cookie-parser/node_modules/cookie/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.6" 4 | - "0.8" 5 | - "0.10" 6 | -------------------------------------------------------------------------------- /app/node_modules/cookie-parser/node_modules/cookie/LICENSE: -------------------------------------------------------------------------------- 1 | // MIT License 2 | 3 | Copyright (C) Roman Shtylman 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /app/node_modules/cookie-parser/node_modules/cookie/test/mocha.opts: -------------------------------------------------------------------------------- 1 | --ui qunit 2 | -------------------------------------------------------------------------------- /app/node_modules/debug/index.js: -------------------------------------------------------------------------------- 1 | if ('undefined' == typeof window) { 2 | module.exports = require('./lib/debug'); 3 | } else { 4 | module.exports = require('./debug'); 5 | } 6 | -------------------------------------------------------------------------------- /app/node_modules/express/.npmignore: -------------------------------------------------------------------------------- 1 | .git* 2 | benchmarks/ 3 | docs/ 4 | examples/ 5 | support/ 6 | test/ 7 | testing.js 8 | .DS_Store 9 | .travis.yml 10 | coverage.html 11 | lib-cov 12 | -------------------------------------------------------------------------------- /app/node_modules/express/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2009-2014 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. 23 | -------------------------------------------------------------------------------- /app/node_modules/express/Makefile: -------------------------------------------------------------------------------- 1 | 2 | MOCHA_OPTS= --check-leaks 3 | REPORTER = dot 4 | 5 | check: test 6 | 7 | test: test-unit test-acceptance 8 | 9 | test-unit: 10 | @NODE_ENV=test ./node_modules/.bin/mocha \ 11 | --reporter $(REPORTER) \ 12 | --globals setImmediate,clearImmediate \ 13 | $(MOCHA_OPTS) 14 | 15 | test-acceptance: 16 | @NODE_ENV=test ./node_modules/.bin/mocha \ 17 | --reporter $(REPORTER) \ 18 | --bail \ 19 | test/acceptance/*.js 20 | 21 | test-cov: lib-cov 22 | @EXPRESS_COV=1 $(MAKE) test REPORTER=html-cov > coverage.html 23 | 24 | lib-cov: 25 | @jscoverage lib lib-cov 26 | 27 | bench: 28 | @$(MAKE) -C benchmarks 29 | 30 | clean: 31 | rm -f coverage.html 32 | rm -fr lib-cov 33 | 34 | .PHONY: test test-unit test-acceptance bench clean 35 | -------------------------------------------------------------------------------- /app/node_modules/express/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = process.env.EXPRESS_COV 3 | ? require('./lib-cov/express') 4 | : require('./lib/express'); -------------------------------------------------------------------------------- /app/node_modules/express/lib/middleware/init.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Initialization middleware, exposing the 3 | * request and response to eachother, as well 4 | * as defaulting the X-Powered-By header field. 5 | * 6 | * @param {Function} app 7 | * @return {Function} 8 | * @api private 9 | */ 10 | 11 | exports.init = function(app){ 12 | return function expressInit(req, res, next){ 13 | if (app.enabled('x-powered-by')) res.setHeader('X-Powered-By', 'Express'); 14 | req.res = res; 15 | res.req = req; 16 | req.next = next; 17 | 18 | req.__proto__ = app.request; 19 | res.__proto__ = app.response; 20 | 21 | res.locals = res.locals || Object.create(null); 22 | 23 | next(); 24 | }; 25 | }; 26 | 27 | -------------------------------------------------------------------------------- /app/node_modules/express/lib/middleware/query.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Module dependencies. 3 | */ 4 | 5 | var qs = require('qs'); 6 | var parseUrl = require('parseurl'); 7 | 8 | /** 9 | * Query: 10 | * 11 | * Automatically parse the query-string when available, 12 | * populating the `req.query` object using 13 | * [qs](https://github.com/visionmedia/node-querystring). 14 | * 15 | * Examples: 16 | * 17 | * .use(connect.query()) 18 | * .use(function(req, res){ 19 | * res.end(JSON.stringify(req.query)); 20 | * }); 21 | * 22 | * The `options` passed are provided to qs.parse function. 23 | * 24 | * @param {Object} options 25 | * @return {Function} 26 | * @api public 27 | */ 28 | 29 | module.exports = function query(options){ 30 | return function query(req, res, next){ 31 | if (!req.query) { 32 | req.query = ~req.url.indexOf('?') 33 | ? qs.parse(parseUrl(req).query, options) 34 | : {}; 35 | } 36 | 37 | next(); 38 | }; 39 | }; 40 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/accepts/.npmignore: -------------------------------------------------------------------------------- 1 | test/ -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/accepts/.travis.yml: -------------------------------------------------------------------------------- 1 | node_js: 2 | - "0.10" 3 | - "0.11" 4 | language: node_js -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/accepts/Makefile: -------------------------------------------------------------------------------- 1 | BIN = ./node_modules/.bin/ 2 | 3 | test: 4 | @${BIN}mocha \ 5 | --require should \ 6 | --reporter spec 7 | 8 | .PHONY: test -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/accepts/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 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/accepts/node_modules/negotiator/.npmignore: -------------------------------------------------------------------------------- 1 | examples 2 | test 3 | .travis.yml 4 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/buffer-crc32/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/buffer-crc32/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.6 4 | - 0.8 5 | notifications: 6 | email: 7 | recipients: 8 | - brianloveswords@gmail.com -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/cookie-signature/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/cookie-signature/History.md: -------------------------------------------------------------------------------- 1 | 1.0.3 / 2014-01-28 2 | ================== 3 | 4 | * fix for timing attacks 5 | 6 | 1.0.2 / 2014-01-28 7 | ================== 8 | 9 | * fix missing repository warning 10 | * fix typo in test 11 | 12 | 1.0.1 / 2013-04-15 13 | ================== 14 | 15 | * Revert "Changed underlying HMAC algo. to sha512." 16 | * Revert "Fix for timing attacks on MAC verification." 17 | 18 | 0.0.1 / 2010-01-03 19 | ================== 20 | 21 | * Initial release 22 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/cookie-signature/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --require should \ 5 | --reporter spec 6 | 7 | .PHONY: test -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/cookie/.npmignore: -------------------------------------------------------------------------------- 1 | test 2 | .travis.yml 3 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/cookie/LICENSE: -------------------------------------------------------------------------------- 1 | // MIT License 2 | 3 | Copyright (C) Roman Shtylman 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/escape-html/.npmignore: -------------------------------------------------------------------------------- 1 | components 2 | build 3 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/escape-html/Makefile: -------------------------------------------------------------------------------- 1 | 2 | build: components index.js 3 | @component build 4 | 5 | components: 6 | @Component install 7 | 8 | clean: 9 | rm -fr build components template.js 10 | 11 | .PHONY: clean 12 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/escape-html/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | # escape-html 3 | 4 | Escape HTML entities 5 | 6 | ## Example 7 | 8 | ```js 9 | var escape = require('escape-html'); 10 | escape(str); 11 | ``` 12 | 13 | ## License 14 | 15 | MIT -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/escape-html/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "escape-html", 3 | "description": "Escape HTML entities", 4 | "version": "1.0.1", 5 | "keywords": ["escape", "html", "utility"], 6 | "dependencies": {}, 7 | "scripts": [ 8 | "index.js" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/escape-html/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Escape special characters in the given string of html. 3 | * 4 | * @param {String} html 5 | * @return {String} 6 | * @api private 7 | */ 8 | 9 | module.exports = function(html) { 10 | return String(html) 11 | .replace(/&/g, '&') 12 | .replace(/"/g, '"') 13 | .replace(/'/g, ''') 14 | .replace(//g, '>'); 16 | } 17 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/escape-html/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "escape-html", 3 | "description": "Escape HTML entities", 4 | "version": "1.0.1", 5 | "keywords": [ 6 | "escape", 7 | "html", 8 | "utility" 9 | ], 10 | "dependencies": {}, 11 | "main": "index.js", 12 | "component": { 13 | "scripts": { 14 | "escape-html/index.js": "index.js" 15 | } 16 | }, 17 | "repository": { 18 | "type": "git", 19 | "url": "https://github.com/component/escape-html.git" 20 | }, 21 | "readme": "\n# escape-html\n\n Escape HTML entities\n\n## Example\n\n```js\nvar escape = require('escape-html');\nescape(str);\n```\n\n## License\n\n MIT", 22 | "readmeFilename": "Readme.md", 23 | "bugs": { 24 | "url": "https://github.com/component/escape-html/issues" 25 | }, 26 | "homepage": "https://github.com/component/escape-html", 27 | "_id": "escape-html@1.0.1", 28 | "_from": "escape-html@1.0.1" 29 | } 30 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/fresh/.npmignore: -------------------------------------------------------------------------------- 1 | test 2 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/fresh/History.md: -------------------------------------------------------------------------------- 1 | 2 | 0.2.1 / 2014-01-29 3 | ================== 4 | 5 | * fix: support max-age=0 for end-to-end revalidation 6 | 7 | 0.2.0 / 2013-08-11 8 | ================== 9 | 10 | * fix: return false for no-cache 11 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/fresh/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --reporter spec \ 5 | --require should 6 | 7 | .PHONY: test -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/merge-descriptors/.npmignore: -------------------------------------------------------------------------------- 1 | # Compiled source # 2 | ################### 3 | *.com 4 | *.class 5 | *.dll 6 | *.exe 7 | *.o 8 | *.so 9 | 10 | # Packages # 11 | ############ 12 | # it's better to unpack these files and commit the raw source 13 | # git has its own built in compression methods 14 | *.7z 15 | *.dmg 16 | *.gz 17 | *.iso 18 | *.jar 19 | *.rar 20 | *.tar 21 | *.zip 22 | 23 | # Logs and databases # 24 | ###################### 25 | *.log 26 | *.sql 27 | *.sqlite 28 | 29 | # OS generated files # 30 | ###################### 31 | .DS_Store* 32 | ehthumbs.db 33 | Icon? 34 | Thumbs.db 35 | 36 | # Node.js # 37 | ########### 38 | lib-cov 39 | *.seed 40 | *.log 41 | *.csv 42 | *.dat 43 | *.out 44 | *.pid 45 | *.gz 46 | 47 | pids 48 | logs 49 | results 50 | 51 | node_modules 52 | npm-debug.log 53 | 54 | # Components # 55 | ############## 56 | 57 | /build 58 | /components 59 | /vendors -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/merge-descriptors/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "merge-descriptors", 3 | "description": "Merge objects using descriptors", 4 | "version": "0.0.2", 5 | "scripts": [ 6 | "index.js" 7 | ], 8 | "repo": "component/merge-descriptors", 9 | "license": "MIT" 10 | } -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/merge-descriptors/index.js: -------------------------------------------------------------------------------- 1 | module.exports = function (dest, src) { 2 | Object.getOwnPropertyNames(src).forEach(function (name) { 3 | var descriptor = Object.getOwnPropertyDescriptor(src, name) 4 | Object.defineProperty(dest, name, descriptor) 5 | }) 6 | 7 | return dest 8 | } -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/methods/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/methods/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.0 / 2014-05-08 3 | ================== 4 | 5 | * add PURGE. Closes #9 6 | 7 | 0.1.0 / 2013-10-28 8 | ================== 9 | 10 | * add http.METHODS support 11 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/methods/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | # Methods 3 | 4 | HTTP verbs that node core's parser supports. 5 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/methods/index.js: -------------------------------------------------------------------------------- 1 | 2 | var http = require('http'); 3 | 4 | if (http.METHODS) { 5 | module.exports = http.METHODS.map(function(method){ 6 | return method.toLowerCase(); 7 | }); 8 | 9 | return; 10 | } 11 | 12 | module.exports = [ 13 | 'get', 14 | 'post', 15 | 'put', 16 | 'head', 17 | 'delete', 18 | 'options', 19 | 'trace', 20 | 'copy', 21 | 'lock', 22 | 'mkcol', 23 | 'move', 24 | 'purge', 25 | 'propfind', 26 | 'proppatch', 27 | 'unlock', 28 | 'report', 29 | 'mkactivity', 30 | 'checkout', 31 | 'merge', 32 | 'm-search', 33 | 'notify', 34 | 'subscribe', 35 | 'unsubscribe', 36 | 'patch', 37 | 'search' 38 | ]; 39 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/methods/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "methods", 3 | "version": "1.0.0", 4 | "description": "HTTP methods that node supports", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "./node_modules/mocha/bin/mocha" 8 | }, 9 | "keywords": [ 10 | "http", 11 | "methods" 12 | ], 13 | "author": { 14 | "name": "TJ Holowaychuk" 15 | }, 16 | "license": "MIT", 17 | "repository": { 18 | "type": "git", 19 | "url": "git://github.com/visionmedia/node-methods.git" 20 | }, 21 | "devDependencies": { 22 | "mocha": "1.17.x" 23 | }, 24 | "readme": "\n# Methods\n\n HTTP verbs that node core's parser supports.\n", 25 | "readmeFilename": "Readme.md", 26 | "bugs": { 27 | "url": "https://github.com/visionmedia/node-methods/issues" 28 | }, 29 | "homepage": "https://github.com/visionmedia/node-methods", 30 | "_id": "methods@1.0.0", 31 | "dist": { 32 | "shasum": "5e985945e770246c0a13e2a82e24adc5930d3998" 33 | }, 34 | "_from": "methods@1.0.0", 35 | "_resolved": "https://registry.npmjs.org/methods/-/methods-1.0.0.tgz" 36 | } 37 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/methods/test/methods.js: -------------------------------------------------------------------------------- 1 | var http = require('http'); 2 | var assert = require('assert'); 3 | var methods = require('..'); 4 | 5 | describe('methods', function() { 6 | 7 | if (http.METHODS) { 8 | 9 | it('is a lowercased http.METHODS', function() { 10 | var lowercased = http.METHODS.map(function(method) { 11 | return method.toLowerCase(); 12 | }); 13 | assert.deepEqual(lowercased, methods); 14 | }); 15 | 16 | } else { 17 | 18 | it('contains GET, POST, PUT, and DELETE', function() { 19 | assert.notEqual(methods.indexOf('get'), -1); 20 | assert.notEqual(methods.indexOf('post'), -1); 21 | assert.notEqual(methods.indexOf('put'), -1); 22 | assert.notEqual(methods.indexOf('delete'), -1); 23 | }); 24 | 25 | it('is all lowercase', function() { 26 | for (var i = 0; i < methods.length; i ++) { 27 | assert(methods[i], methods[i].toLowerCase(), methods[i] + " isn't all lowercase"); 28 | } 29 | }); 30 | 31 | } 32 | 33 | }); 34 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/parseurl/.npmignore: -------------------------------------------------------------------------------- 1 | # Compiled source # 2 | ################### 3 | *.com 4 | *.class 5 | *.dll 6 | *.exe 7 | *.o 8 | *.so 9 | 10 | # Packages # 11 | ############ 12 | # it's better to unpack these files and commit the raw source 13 | # git has its own built in compression methods 14 | *.7z 15 | *.dmg 16 | *.gz 17 | *.iso 18 | *.jar 19 | *.rar 20 | *.tar 21 | *.zip 22 | 23 | # Logs and databases # 24 | ###################### 25 | *.log 26 | *.sql 27 | *.sqlite 28 | 29 | # OS generated files # 30 | ###################### 31 | .DS_Store* 32 | # Icon? 33 | ehthumbs.db 34 | Thumbs.db 35 | 36 | # Node.js # 37 | ########### 38 | lib-cov 39 | *.seed 40 | *.log 41 | *.csv 42 | *.dat 43 | *.out 44 | *.pid 45 | *.gz 46 | 47 | pids 48 | logs 49 | results 50 | 51 | node_modules 52 | npm-debug.log 53 | 54 | # Components # 55 | ############## 56 | 57 | /build 58 | /components 59 | /public -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/parseurl/index.js: -------------------------------------------------------------------------------- 1 | 2 | var parse = require('url').parse; 3 | 4 | /** 5 | * Parse the `req` url with memoization. 6 | * 7 | * @param {ServerRequest} req 8 | * @return {Object} 9 | * @api private 10 | */ 11 | 12 | module.exports = function parseUrl(req){ 13 | var parsed = req._parsedUrl; 14 | if (parsed && parsed.href == req.url) { 15 | return parsed; 16 | } else { 17 | parsed = parse(req.url); 18 | 19 | if (parsed.auth && !parsed.protocol && ~parsed.href.indexOf('//')) { 20 | // This parses pathnames, and a strange pathname like //r@e should work 21 | parsed = parse(req.url.replace(/@/g, '%40')); 22 | } 23 | 24 | return req._parsedUrl = parsed; 25 | } 26 | }; 27 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/path-to-regexp/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | coverage 3 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/path-to-regexp/History.md: -------------------------------------------------------------------------------- 1 | 2 | 0.1.0 / 2014-03-06 3 | ================== 4 | 5 | * add options.end 6 | 7 | 0.0.2 / 2013-02-10 8 | ================== 9 | 10 | * Update to match current express 11 | * add .license property to component.json 12 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/path-to-regexp/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "path-to-regexp", 3 | "description": "Express style path to RegExp utility", 4 | "version": "0.1.0", 5 | "keywords": [ 6 | "express", 7 | "regexp", 8 | "route", 9 | "routing" 10 | ], 11 | "scripts": [ 12 | "index.js" 13 | ], 14 | "license": "MIT" 15 | } 16 | -------------------------------------------------------------------------------- /app/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 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/qs/.npmignore: -------------------------------------------------------------------------------- 1 | test 2 | .travis.yml 3 | benchmark.js 4 | component.json 5 | examples.js 6 | History.md 7 | Makefile 8 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/range-parser/.npmignore: -------------------------------------------------------------------------------- 1 | test 2 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/range-parser/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.0 / 2013-12-11 3 | ================== 4 | 5 | * add repository to package.json 6 | * add MIT license 7 | 8 | 0.0.4 / 2012-06-17 9 | ================== 10 | 11 | * changed: ret -1 for unsatisfiable and -2 when invalid 12 | 13 | 0.0.3 / 2012-06-17 14 | ================== 15 | 16 | * fix last-byte-pos default to len - 1 17 | 18 | 0.0.2 / 2012-06-14 19 | ================== 20 | 21 | * add `.type` 22 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/range-parser/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --reporter spec \ 5 | --require should 6 | 7 | .PHONY: test -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/range-parser/index.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Parse "Range" header `str` relative to the given file `size`. 4 | * 5 | * @param {Number} size 6 | * @param {String} str 7 | * @return {Array} 8 | * @api public 9 | */ 10 | 11 | module.exports = function(size, str){ 12 | var valid = true; 13 | var i = str.indexOf('='); 14 | 15 | if (-1 == i) return -2; 16 | 17 | var arr = str.slice(i + 1).split(',').map(function(range){ 18 | var range = range.split('-') 19 | , start = parseInt(range[0], 10) 20 | , end = parseInt(range[1], 10); 21 | 22 | // -nnn 23 | if (isNaN(start)) { 24 | start = size - end; 25 | end = size - 1; 26 | // nnn- 27 | } else if (isNaN(end)) { 28 | end = size - 1; 29 | } 30 | 31 | // limit last-byte-pos to current length 32 | if (end > size - 1) end = size - 1; 33 | 34 | // invalid 35 | if (isNaN(start) 36 | || isNaN(end) 37 | || start > end 38 | || start < 0) valid = false; 39 | 40 | return { 41 | start: start, 42 | end: end 43 | }; 44 | }); 45 | 46 | arr.type = str.slice(0, i); 47 | 48 | return valid ? arr : -1; 49 | }; -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/send/.npmignore: -------------------------------------------------------------------------------- 1 | test 2 | examples 3 | *.sock 4 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/send/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = require('./lib/send'); -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/send/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 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/serve-static/.npmignore: -------------------------------------------------------------------------------- 1 | test 2 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/serve-static/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.8" 4 | - "0.10" 5 | - "0.11" 6 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/serve-static/History.md: -------------------------------------------------------------------------------- 1 | 1.1.0 / 2014-04-24 2 | ================== 3 | 4 | * Accept options directly to `send` module 5 | * deps: send@0.3.0 6 | 7 | 1.0.4 / 2014-04-07 8 | ================== 9 | 10 | * Resolve relative paths at middleware setup 11 | * Use parseurl to parse the URL from request 12 | 13 | 1.0.3 / 2014-03-20 14 | ================== 15 | 16 | * Do not rely on connect-like environments 17 | 18 | 1.0.2 / 2014-03-06 19 | ================== 20 | 21 | * deps: send@0.2.0 22 | 23 | 1.0.1 / 2014-03-05 24 | ================== 25 | 26 | * Add mime export for back-compat 27 | 28 | 1.0.0 / 2014-03-05 29 | ================== 30 | 31 | * Genesis from `connect` 32 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/type-is/.npmignore: -------------------------------------------------------------------------------- 1 | test.js -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/type-is/.travis.yml: -------------------------------------------------------------------------------- 1 | node_js: 2 | - "0.10" 3 | - "0.11" 4 | language: node_js -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/type-is/HISTORY.md: -------------------------------------------------------------------------------- 1 | 2 | 1.1.0 / 2014-04-12 3 | ================== 4 | 5 | * add non-array values support 6 | * expose internal utilities: 7 | 8 | - `.is()` 9 | - `.hasBody()` 10 | - `.normalize()` 11 | - `.match()` 12 | 13 | 1.0.1 / 2014-03-30 14 | ================== 15 | 16 | * add `multipart` as a shorthand 17 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/type-is/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 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/utils-merge/.travis.yml: -------------------------------------------------------------------------------- 1 | language: "node_js" 2 | node_js: 3 | - "0.4" 4 | - "0.6" 5 | - "0.8" 6 | - "0.10" 7 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/utils-merge/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2013 Jared Hanson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | 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, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/utils-merge/README.md: -------------------------------------------------------------------------------- 1 | # utils-merge 2 | 3 | Merges the properties from a source object into a destination object. 4 | 5 | ## Install 6 | 7 | $ npm install utils-merge 8 | 9 | ## Usage 10 | 11 | ```javascript 12 | var a = { foo: 'bar' } 13 | , b = { bar: 'baz' }; 14 | 15 | merge(a, b); 16 | // => { foo: 'bar', bar: 'baz' } 17 | ``` 18 | 19 | ## Tests 20 | 21 | $ npm install 22 | $ npm test 23 | 24 | [![Build Status](https://secure.travis-ci.org/jaredhanson/utils-merge.png)](http://travis-ci.org/jaredhanson/utils-merge) 25 | 26 | ## Credits 27 | 28 | - [Jared Hanson](http://github.com/jaredhanson) 29 | 30 | ## License 31 | 32 | [The MIT License](http://opensource.org/licenses/MIT) 33 | 34 | Copyright (c) 2013 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)> 35 | -------------------------------------------------------------------------------- /app/node_modules/express/node_modules/utils-merge/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Merge object b with object a. 3 | * 4 | * var a = { foo: 'bar' } 5 | * , b = { bar: 'baz' }; 6 | * 7 | * merge(a, b); 8 | * // => { foo: 'bar', bar: 'baz' } 9 | * 10 | * @param {Object} a 11 | * @param {Object} b 12 | * @return {Object} 13 | * @api public 14 | */ 15 | 16 | exports = module.exports = function(a, b){ 17 | if (a && b) { 18 | for (var key in b) { 19 | a[key] = b[key]; 20 | } 21 | } 22 | return a; 23 | }; 24 | -------------------------------------------------------------------------------- /app/node_modules/jade/.npmignore: -------------------------------------------------------------------------------- 1 | test 2 | support 3 | benchmarks 4 | examples 5 | lib-cov 6 | coverage 7 | .gitmodules 8 | .travis.yml 9 | History.md 10 | Makefile 11 | test/ 12 | support/ 13 | benchmarks/ 14 | examples/ 15 | -------------------------------------------------------------------------------- /app/node_modules/jade/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2009-2014 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. 23 | -------------------------------------------------------------------------------- /app/node_modules/jade/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jade", 3 | "repo": "visionmedia/jade", 4 | "description": "Jade template runtime", 5 | "version": "1.3.1", 6 | "keywords": [ 7 | "template" 8 | ], 9 | "dependencies": {}, 10 | "development": {}, 11 | "license": "MIT", 12 | "scripts": [ 13 | "lib/runtime.js" 14 | ], 15 | "main": "lib/runtime.js" 16 | } -------------------------------------------------------------------------------- /app/node_modules/jade/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = require('./lib/jade'); 3 | -------------------------------------------------------------------------------- /app/node_modules/jade/lib/doctypes.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | 'default': '' 5 | , 'xml': '' 6 | , 'transitional': '' 7 | , 'strict': '' 8 | , 'frameset': '' 9 | , '1.1': '' 10 | , 'basic': '' 11 | , 'mobile': '' 12 | }; -------------------------------------------------------------------------------- /app/node_modules/jade/lib/filters-client.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = filter; 4 | function filter(name, str, options) { 5 | if (typeof filter[name] === 'function') { 6 | var res = filter[name](str, options); 7 | } else { 8 | throw new Error('unknown filter ":' + name + '"'); 9 | } 10 | return res; 11 | } 12 | -------------------------------------------------------------------------------- /app/node_modules/jade/lib/filters.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var transformers = require('transformers'); 4 | 5 | module.exports = filter; 6 | function filter(name, str, options) { 7 | if (typeof filter[name] === 'function') { 8 | var res = filter[name](str, options); 9 | } else if (transformers[name]) { 10 | var res = transformers[name].renderSync(str, options); 11 | } else { 12 | throw new Error('unknown filter ":' + name + '"'); 13 | } 14 | return res; 15 | } 16 | -------------------------------------------------------------------------------- /app/node_modules/jade/lib/inline-tags.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = [ 4 | 'a' 5 | , 'abbr' 6 | , 'acronym' 7 | , 'b' 8 | , 'br' 9 | , 'code' 10 | , 'em' 11 | , 'font' 12 | , 'i' 13 | , 'img' 14 | , 'ins' 15 | , 'kbd' 16 | , 'map' 17 | , 'samp' 18 | , 'small' 19 | , 'span' 20 | , 'strong' 21 | , 'sub' 22 | , 'sup' 23 | ]; -------------------------------------------------------------------------------- /app/node_modules/jade/lib/nodes/block-comment.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a `BlockComment` with the given `block`. 7 | * 8 | * @param {String} val 9 | * @param {Block} block 10 | * @param {Boolean} buffer 11 | * @api public 12 | */ 13 | 14 | var BlockComment = module.exports = function BlockComment(val, block, buffer) { 15 | this.block = block; 16 | this.val = val; 17 | this.buffer = buffer; 18 | }; 19 | 20 | // Inherit from `Node`. 21 | BlockComment.prototype = Object.create(Node.prototype); 22 | BlockComment.prototype.constructor = BlockComment; 23 | 24 | BlockComment.prototype.type = 'BlockComment'; 25 | -------------------------------------------------------------------------------- /app/node_modules/jade/lib/nodes/case.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a new `Case` with `expr`. 7 | * 8 | * @param {String} expr 9 | * @api public 10 | */ 11 | 12 | var Case = exports = module.exports = function Case(expr, block){ 13 | this.expr = expr; 14 | this.block = block; 15 | }; 16 | 17 | // Inherit from `Node`. 18 | Case.prototype = Object.create(Node.prototype); 19 | Case.prototype.constructor = Case; 20 | 21 | Case.prototype.type = 'Case'; 22 | 23 | var When = exports.When = function When(expr, block){ 24 | this.expr = expr; 25 | this.block = block; 26 | this.debug = false; 27 | }; 28 | 29 | // Inherit from `Node`. 30 | When.prototype = Object.create(Node.prototype); 31 | When.prototype.constructor = When; 32 | 33 | When.prototype.type = 'When'; 34 | -------------------------------------------------------------------------------- /app/node_modules/jade/lib/nodes/code.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a `Code` node with the given code `val`. 7 | * Code may also be optionally buffered and escaped. 8 | * 9 | * @param {String} val 10 | * @param {Boolean} buffer 11 | * @param {Boolean} escape 12 | * @api public 13 | */ 14 | 15 | var Code = module.exports = function Code(val, buffer, escape) { 16 | this.val = val; 17 | this.buffer = buffer; 18 | this.escape = escape; 19 | if (val.match(/^ *else/)) this.debug = false; 20 | }; 21 | 22 | // Inherit from `Node`. 23 | Code.prototype = Object.create(Node.prototype); 24 | Code.prototype.constructor = Code; 25 | 26 | Code.prototype.type = 'Code'; // prevent the minifiers removing this -------------------------------------------------------------------------------- /app/node_modules/jade/lib/nodes/comment.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a `Comment` with the given `val`, optionally `buffer`, 7 | * otherwise the comment may render in the output. 8 | * 9 | * @param {String} val 10 | * @param {Boolean} buffer 11 | * @api public 12 | */ 13 | 14 | var Comment = module.exports = function Comment(val, buffer) { 15 | this.val = val; 16 | this.buffer = buffer; 17 | }; 18 | 19 | // Inherit from `Node`. 20 | Comment.prototype = Object.create(Node.prototype); 21 | Comment.prototype.constructor = Comment; 22 | 23 | Comment.prototype.type = 'Comment'; 24 | -------------------------------------------------------------------------------- /app/node_modules/jade/lib/nodes/doctype.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a `Doctype` with the given `val`. 7 | * 8 | * @param {String} val 9 | * @api public 10 | */ 11 | 12 | var Doctype = module.exports = function Doctype(val) { 13 | this.val = val; 14 | }; 15 | 16 | // Inherit from `Node`. 17 | Doctype.prototype = Object.create(Node.prototype); 18 | Doctype.prototype.constructor = Doctype; 19 | 20 | Doctype.prototype.type = 'Doctype'; 21 | -------------------------------------------------------------------------------- /app/node_modules/jade/lib/nodes/each.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize an `Each` node, representing iteration 7 | * 8 | * @param {String} obj 9 | * @param {String} val 10 | * @param {String} key 11 | * @param {Block} block 12 | * @api public 13 | */ 14 | 15 | var Each = module.exports = function Each(obj, val, key, block) { 16 | this.obj = obj; 17 | this.val = val; 18 | this.key = key; 19 | this.block = block; 20 | }; 21 | 22 | // Inherit from `Node`. 23 | Each.prototype = Object.create(Node.prototype); 24 | Each.prototype.constructor = Each; 25 | 26 | Each.prototype.type = 'Each'; 27 | -------------------------------------------------------------------------------- /app/node_modules/jade/lib/nodes/filter.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a `Filter` node with the given 7 | * filter `name` and `block`. 8 | * 9 | * @param {String} name 10 | * @param {Block|Node} block 11 | * @api public 12 | */ 13 | 14 | var Filter = module.exports = function Filter(name, block, attrs) { 15 | this.name = name; 16 | this.block = block; 17 | this.attrs = attrs; 18 | }; 19 | 20 | // Inherit from `Node`. 21 | Filter.prototype = Object.create(Node.prototype); 22 | Filter.prototype.constructor = Filter; 23 | 24 | Filter.prototype.type = 'Filter'; 25 | -------------------------------------------------------------------------------- /app/node_modules/jade/lib/nodes/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | exports.Node = require('./node'); 4 | exports.Tag = require('./tag'); 5 | exports.Code = require('./code'); 6 | exports.Each = require('./each'); 7 | exports.Case = require('./case'); 8 | exports.Text = require('./text'); 9 | exports.Block = require('./block'); 10 | exports.MixinBlock = require('./mixin-block'); 11 | exports.Mixin = require('./mixin'); 12 | exports.Filter = require('./filter'); 13 | exports.Comment = require('./comment'); 14 | exports.Literal = require('./literal'); 15 | exports.BlockComment = require('./block-comment'); 16 | exports.Doctype = require('./doctype'); 17 | -------------------------------------------------------------------------------- /app/node_modules/jade/lib/nodes/literal.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a `Literal` node with the given `str. 7 | * 8 | * @param {String} str 9 | * @api public 10 | */ 11 | 12 | var Literal = module.exports = function Literal(str) { 13 | this.str = str; 14 | }; 15 | 16 | // Inherit from `Node`. 17 | Literal.prototype = Object.create(Node.prototype); 18 | Literal.prototype.constructor = Literal; 19 | 20 | Literal.prototype.type = 'Literal'; 21 | -------------------------------------------------------------------------------- /app/node_modules/jade/lib/nodes/mixin-block.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a new `Block` with an optional `node`. 7 | * 8 | * @param {Node} node 9 | * @api public 10 | */ 11 | 12 | var MixinBlock = module.exports = function MixinBlock(){}; 13 | 14 | // Inherit from `Node`. 15 | MixinBlock.prototype = Object.create(Node.prototype); 16 | MixinBlock.prototype.constructor = MixinBlock; 17 | 18 | MixinBlock.prototype.type = 'MixinBlock'; 19 | -------------------------------------------------------------------------------- /app/node_modules/jade/lib/nodes/mixin.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Attrs = require('./attrs'); 4 | 5 | /** 6 | * Initialize a new `Mixin` with `name` and `block`. 7 | * 8 | * @param {String} name 9 | * @param {String} args 10 | * @param {Block} block 11 | * @api public 12 | */ 13 | 14 | var Mixin = module.exports = function Mixin(name, args, block, call){ 15 | Attrs.call(this); 16 | this.name = name; 17 | this.args = args; 18 | this.block = block; 19 | this.call = call; 20 | }; 21 | 22 | // Inherit from `Attrs`. 23 | Mixin.prototype = Object.create(Attrs.prototype); 24 | Mixin.prototype.constructor = Mixin; 25 | 26 | Mixin.prototype.type = 'Mixin'; 27 | -------------------------------------------------------------------------------- /app/node_modules/jade/lib/nodes/node.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = module.exports = function Node(){}; 4 | 5 | /** 6 | * Clone this node (return itself) 7 | * 8 | * @return {Node} 9 | * @api private 10 | */ 11 | 12 | Node.prototype.clone = function(){ 13 | var err = new Error('node.clone is deprecated and will be removed in v2.0.0'); 14 | console.warn(err.stack); 15 | return this; 16 | }; 17 | 18 | Node.prototype.type = ''; 19 | -------------------------------------------------------------------------------- /app/node_modules/jade/lib/nodes/text.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Node = require('./node'); 4 | 5 | /** 6 | * Initialize a `Text` node with optional `line`. 7 | * 8 | * @param {String} line 9 | * @api public 10 | */ 11 | 12 | var Text = module.exports = function Text(line) { 13 | this.val = line; 14 | }; 15 | 16 | // Inherit from `Node`. 17 | Text.prototype = Object.create(Node.prototype); 18 | Text.prototype.constructor = Text; 19 | 20 | Text.prototype.type = 'Text'; 21 | 22 | /** 23 | * Flag as text. 24 | */ 25 | 26 | Text.prototype.isText = true; -------------------------------------------------------------------------------- /app/node_modules/jade/lib/self-closing.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // source: http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements 4 | 5 | module.exports = [ 6 | 'area' 7 | , 'base' 8 | , 'br' 9 | , 'col' 10 | , 'embed' 11 | , 'hr' 12 | , 'img' 13 | , 'input' 14 | , 'keygen' 15 | , 'link' 16 | , 'menuitem' 17 | , 'meta' 18 | , 'param' 19 | , 'source' 20 | , 'track' 21 | , 'wbr' 22 | ]; 23 | -------------------------------------------------------------------------------- /app/node_modules/jade/lib/utils.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** 4 | * Merge `b` into `a`. 5 | * 6 | * @param {Object} a 7 | * @param {Object} b 8 | * @return {Object} 9 | * @api public 10 | */ 11 | 12 | exports.merge = function(a, b) { 13 | for (var key in b) a[key] = b[key]; 14 | return a; 15 | }; 16 | 17 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/character-parser/.npmignore: -------------------------------------------------------------------------------- 1 | test/ 2 | .travis.yml -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/character-parser/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013 Forbes Lindesay 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 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/.npmignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | pids 10 | logs 11 | results 12 | npm-debug.log 13 | node_modules 14 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.8" 4 | - "0.10" -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013 Forbes Lindesay 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. -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/.bin/uglifyjs: -------------------------------------------------------------------------------- 1 | ../uglify-js/bin/uglifyjs -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/.npmignore: -------------------------------------------------------------------------------- 1 | tmp/ 2 | node_modules/ 3 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.8" 4 | - "0.10" 5 | - "0.11" 6 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/async/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010 Caolan McMahon 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 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/async/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "async", 3 | "repo": "caolan/async", 4 | "description": "Higher-order functions and common patterns for asynchronous code", 5 | "version": "0.1.23", 6 | "keywords": [], 7 | "dependencies": {}, 8 | "development": {}, 9 | "main": "lib/async.js", 10 | "scripts": [ "lib/async.js" ] 11 | } 12 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.8" 4 | - "0.10" 5 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/example/bool.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var util = require('util'); 3 | var argv = require('optimist').argv; 4 | 5 | if (argv.s) { 6 | util.print(argv.fr ? 'Le chat dit: ' : 'The cat says: '); 7 | } 8 | console.log( 9 | (argv.fr ? 'miaou' : 'meow') + (argv.p ? '.' : '') 10 | ); 11 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/example/boolean_double.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .boolean(['x','y','z']) 4 | .argv 5 | ; 6 | console.dir([ argv.x, argv.y, argv.z ]); 7 | console.dir(argv._); 8 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/example/boolean_single.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .boolean('v') 4 | .argv 5 | ; 6 | console.dir(argv.v); 7 | console.dir(argv._); 8 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/example/default_hash.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var argv = require('optimist') 4 | .default({ x : 10, y : 10 }) 5 | .argv 6 | ; 7 | 8 | console.log(argv.x + argv.y); 9 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/example/default_singles.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .default('x', 10) 4 | .default('y', 10) 5 | .argv 6 | ; 7 | console.log(argv.x + argv.y); 8 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/example/divide.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var argv = require('optimist') 4 | .usage('Usage: $0 -x [num] -y [num]') 5 | .demand(['x','y']) 6 | .argv; 7 | 8 | console.log(argv.x / argv.y); 9 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/example/line_count.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .usage('Count the lines in a file.\nUsage: $0') 4 | .demand('f') 5 | .alias('f', 'file') 6 | .describe('f', 'Load a file') 7 | .argv 8 | ; 9 | 10 | var fs = require('fs'); 11 | var s = fs.createReadStream(argv.file); 12 | 13 | var lines = 0; 14 | s.on('data', function (buf) { 15 | lines += buf.toString().match(/\n/g).length; 16 | }); 17 | 18 | s.on('end', function () { 19 | console.log(lines); 20 | }); 21 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/example/line_count_options.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .usage('Count the lines in a file.\nUsage: $0') 4 | .options({ 5 | file : { 6 | demand : true, 7 | alias : 'f', 8 | description : 'Load a file' 9 | }, 10 | base : { 11 | alias : 'b', 12 | description : 'Numeric base to use for output', 13 | default : 10, 14 | }, 15 | }) 16 | .argv 17 | ; 18 | 19 | var fs = require('fs'); 20 | var s = fs.createReadStream(argv.file); 21 | 22 | var lines = 0; 23 | s.on('data', function (buf) { 24 | lines += buf.toString().match(/\n/g).length; 25 | }); 26 | 27 | s.on('end', function () { 28 | console.log(lines.toString(argv.base)); 29 | }); 30 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/example/line_count_wrap.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .usage('Count the lines in a file.\nUsage: $0') 4 | .wrap(80) 5 | .demand('f') 6 | .alias('f', [ 'file', 'filename' ]) 7 | .describe('f', 8 | "Load a file. It's pretty important." 9 | + " Required even. So you'd better specify it." 10 | ) 11 | .alias('b', 'base') 12 | .describe('b', 'Numeric base to display the number of lines in') 13 | .default('b', 10) 14 | .describe('x', 'Super-secret optional parameter which is secret') 15 | .default('x', '') 16 | .argv 17 | ; 18 | 19 | var fs = require('fs'); 20 | var s = fs.createReadStream(argv.file); 21 | 22 | var lines = 0; 23 | s.on('data', function (buf) { 24 | lines += buf.toString().match(/\n/g).length; 25 | }); 26 | 27 | s.on('end', function () { 28 | console.log(lines.toString(argv.base)); 29 | }); 30 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/example/nonopt.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist').argv; 3 | console.log('(%d,%d)', argv.x, argv.y); 4 | console.log(argv._); 5 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/example/reflect.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | console.dir(require('optimist').argv); 3 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/example/short.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist').argv; 3 | console.log('(%d,%d)', argv.x, argv.y); 4 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/example/string.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .string('x', 'y') 4 | .argv 5 | ; 6 | console.dir([ argv.x, argv.y ]); 7 | 8 | /* Turns off numeric coercion: 9 | ./node string.js -x 000123 -y 9876 10 | [ '000123', '9876' ] 11 | */ 12 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/example/usage-options.js: -------------------------------------------------------------------------------- 1 | var optimist = require('./../index'); 2 | 3 | var argv = optimist.usage('This is my awesome program', { 4 | 'about': { 5 | description: 'Provide some details about the author of this program', 6 | required: true, 7 | short: 'a', 8 | }, 9 | 'info': { 10 | description: 'Provide some information about the node.js agains!!!!!!', 11 | boolean: true, 12 | short: 'i' 13 | } 14 | }).argv; 15 | 16 | optimist.showHelp(); 17 | 18 | console.log('\n\nInspecting options'); 19 | console.dir(argv); -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/example/xup.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist').argv; 3 | 4 | if (argv.rif - 5 * argv.xup > 7.138) { 5 | console.log('Buy more riffiwobbles'); 6 | } 7 | else { 8 | console.log('Sell the xupptumblers'); 9 | } 10 | 11 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/center.js: -------------------------------------------------------------------------------- 1 | var wrap = require('wordwrap')(20, 60); 2 | console.log(wrap( 3 | 'At long last the struggle and tumult was over.' 4 | + ' The machines had finally cast off their oppressors' 5 | + ' and were finally free to roam the cosmos.' 6 | + '\n' 7 | + 'Free of purpose, free of obligation.' 8 | + ' Just drifting through emptiness.' 9 | + ' The sun was just another point of light.' 10 | )); 11 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/meat.js: -------------------------------------------------------------------------------- 1 | var wrap = require('wordwrap')(15); 2 | 3 | console.log(wrap('You and your whole family are made out of meat.')); 4 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/break.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert'); 2 | var wordwrap = require('../'); 3 | 4 | exports.hard = function () { 5 | var s = 'Assert from {"type":"equal","ok":false,"found":1,"wanted":2,' 6 | + '"stack":[],"id":"b7ddcd4c409de8799542a74d1a04689b",' 7 | + '"browser":"chrome/6.0"}' 8 | ; 9 | var s_ = wordwrap.hard(80)(s); 10 | 11 | var lines = s_.split('\n'); 12 | assert.equal(lines.length, 2); 13 | assert.ok(lines[0].length < 80); 14 | assert.ok(lines[1].length < 80); 15 | 16 | assert.equal(s, s_.replace(/\n/g, '')); 17 | }; 18 | 19 | exports.break = function () { 20 | var s = new Array(55+1).join('a'); 21 | var s_ = wordwrap.hard(20)(s); 22 | 23 | var lines = s_.split('\n'); 24 | assert.equal(lines.length, 3); 25 | assert.ok(lines[0].length === 20); 26 | assert.ok(lines[1].length === 20); 27 | assert.ok(lines[2].length === 15); 28 | 29 | assert.equal(s, s_.replace(/\n/g, '')); 30 | }; 31 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/test/_/argv.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | console.log(JSON.stringify(process.argv)); 3 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/optimist/test/_/bin.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('../../index').argv 3 | console.log(JSON.stringify(argv._)); 4 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/source-map/.npmignore: -------------------------------------------------------------------------------- 1 | dist/* 2 | node_modules/* 3 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/source-map/.tern-port: -------------------------------------------------------------------------------- 1 | 55494 -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/source-map/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.8 4 | - "0.10" -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/source-map/build/prefix-source-map.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | 8 | /* 9 | * WARNING! 10 | * 11 | * Do not edit this file directly, it is built from the sources at 12 | * https://github.com/mozilla/source-map/ 13 | */ 14 | 15 | /////////////////////////////////////////////////////////////////////////////// 16 | 17 | 18 | this.EXPORTED_SYMBOLS = [ "SourceMapConsumer", "SourceMapGenerator", "SourceNode" ]; 19 | 20 | Components.utils.import('resource://gre/modules/devtools/Require.jsm'); 21 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/source-map/build/prefix-utils.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | 8 | /* 9 | * WARNING! 10 | * 11 | * Do not edit this file directly, it is built from the sources at 12 | * https://github.com/mozilla/source-map/ 13 | */ 14 | 15 | Components.utils.import('resource://gre/modules/devtools/Require.jsm'); 16 | Components.utils.import('resource://gre/modules/devtools/SourceMap.jsm'); 17 | 18 | this.EXPORTED_SYMBOLS = [ "define", "runSourceMapTests" ]; 19 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/source-map/build/suffix-browser.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /////////////////////////////////////////////////////////////////////////////// 3 | 4 | this.sourceMap = { 5 | SourceMapConsumer: require('source-map/source-map-consumer').SourceMapConsumer, 6 | SourceMapGenerator: require('source-map/source-map-generator').SourceMapGenerator, 7 | SourceNode: require('source-map/source-node').SourceNode 8 | }; 9 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/source-map/build/suffix-source-map.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /////////////////////////////////////////////////////////////////////////////// 3 | 4 | this.SourceMapConsumer = require('source-map/source-map-consumer').SourceMapConsumer; 5 | this.SourceMapGenerator = require('source-map/source-map-generator').SourceMapGenerator; 6 | this.SourceNode = require('source-map/source-node').SourceNode; 7 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/source-map/build/suffix-utils.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | function runSourceMapTests(modName, do_throw) { 8 | let mod = require(modName); 9 | let assert = require('test/source-map/assert'); 10 | let util = require('test/source-map/util'); 11 | 12 | assert.init(do_throw); 13 | 14 | for (let k in mod) { 15 | if (/^test/.test(k)) { 16 | mod[k](assert, util); 17 | } 18 | } 19 | 20 | } 21 | this.runSourceMapTests = runSourceMapTests; 22 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/source-map/build/test-prefix.js: -------------------------------------------------------------------------------- 1 | /* 2 | * WARNING! 3 | * 4 | * Do not edit this file directly, it is built from the sources at 5 | * https://github.com/mozilla/source-map/ 6 | */ 7 | 8 | Components.utils.import('resource://test/Utils.jsm'); 9 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/source-map/build/test-suffix.js: -------------------------------------------------------------------------------- 1 | function run_test() { 2 | runSourceMapTests('{THIS_MODULE}', do_throw); 3 | } 4 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/source-map/lib/source-map.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2009-2011 Mozilla Foundation and contributors 3 | * Licensed under the New BSD license. See LICENSE.txt or: 4 | * http://opensource.org/licenses/BSD-3-Clause 5 | */ 6 | exports.SourceMapGenerator = require('./source-map/source-map-generator').SourceMapGenerator; 7 | exports.SourceMapConsumer = require('./source-map/source-map-consumer').SourceMapConsumer; 8 | exports.SourceNode = require('./source-map/source-node').SourceNode; 9 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/source-map/test/source-map/test-api.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2012 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | if (typeof define !== 'function') { 8 | var define = require('amdefine')(module, require); 9 | } 10 | define(function (require, exports, module) { 11 | 12 | var sourceMap; 13 | try { 14 | sourceMap = require('../../lib/source-map'); 15 | } catch (e) { 16 | sourceMap = {}; 17 | Components.utils.import('resource:///modules/devtools/SourceMap.jsm', sourceMap); 18 | } 19 | 20 | exports['test that the api is properly exposed in the top level'] = function (assert, util) { 21 | assert.equal(typeof sourceMap.SourceMapGenerator, "function"); 22 | assert.equal(typeof sourceMap.SourceMapConsumer, "function"); 23 | assert.equal(typeof sourceMap.SourceNode, "function"); 24 | }; 25 | 26 | }); 27 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64-vlq.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | if (typeof define !== 'function') { 8 | var define = require('amdefine')(module, require); 9 | } 10 | define(function (require, exports, module) { 11 | 12 | var base64VLQ = require('../../lib/source-map/base64-vlq'); 13 | 14 | exports['test normal encoding and decoding'] = function (assert, util) { 15 | var result; 16 | for (var i = -255; i < 256; i++) { 17 | result = base64VLQ.decode(base64VLQ.encode(i)); 18 | assert.ok(result); 19 | assert.equal(result.value, i); 20 | assert.equal(result.rest, ""); 21 | } 22 | }; 23 | 24 | }); 25 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | if (typeof define !== 'function') { 8 | var define = require('amdefine')(module, require); 9 | } 10 | define(function (require, exports, module) { 11 | 12 | var base64 = require('../../lib/source-map/base64'); 13 | 14 | exports['test out of range encoding'] = function (assert, util) { 15 | assert.throws(function () { 16 | base64.encode(-1); 17 | }); 18 | assert.throws(function () { 19 | base64.encode(64); 20 | }); 21 | }; 22 | 23 | exports['test out of range decoding'] = function (assert, util) { 24 | assert.throws(function () { 25 | base64.decode('='); 26 | }); 27 | }; 28 | 29 | exports['test normal encoding and decoding'] = function (assert, util) { 30 | for (var i = 0; i < 64; i++) { 31 | assert.equal(base64.decode(base64.encode(i)), i); 32 | } 33 | }; 34 | 35 | }); 36 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/uglify-to-browserify/.npmignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | pids 10 | logs 11 | results 12 | npm-debug.log 13 | node_modules 14 | /test/output.js 15 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/uglify-to-browserify/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/uglify-to-browserify/README.md: -------------------------------------------------------------------------------- 1 | # uglify-to-browserify 2 | 3 | A transform to make UglifyJS work in browserify. 4 | 5 | [![Build Status](https://travis-ci.org/ForbesLindesay/uglify-to-browserify.png?branch=master)](https://travis-ci.org/ForbesLindesay/uglify-to-browserify) 6 | [![Dependency Status](https://gemnasium.com/ForbesLindesay/uglify-to-browserify.png)](https://gemnasium.com/ForbesLindesay/uglify-to-browserify) 7 | [![NPM version](https://badge.fury.io/js/uglify-to-browserify.png)](http://badge.fury.io/js/uglify-to-browserify) 8 | 9 | ## Installation 10 | 11 | npm install uglify-to-browserify 12 | 13 | ## License 14 | 15 | MIT -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/node_modules/uglify-to-browserify/test/index.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs') 2 | var br = require('../') 3 | var test = fs.readFileSync(require.resolve('uglify-js/test/run-tests.js'), 'utf8') 4 | .replace(/^#.*\n/, '') 5 | 6 | var transform = br(require.resolve('uglify-js')) 7 | transform.pipe(fs.createWriteStream(__dirname + '/output.js')) 8 | .on('close', function () { 9 | Function('module,require', test)({ 10 | filename: require.resolve('uglify-js/test/run-tests.js') 11 | }, 12 | function (name) { 13 | if (name === '../tools/node') { 14 | return require('./output.js') 15 | } else if (/^[a-z]+$/.test(name)) { 16 | return require(name) 17 | } else { 18 | throw new Error('I didn\'t expect you to require ' + name) 19 | } 20 | }) 21 | }) 22 | transform.end(fs.readFileSync(require.resolve('uglify-js'), 'utf8')) -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/test/compress/blocks.js: -------------------------------------------------------------------------------- 1 | remove_blocks: { 2 | input: { 3 | {;} 4 | foo(); 5 | {}; 6 | { 7 | {}; 8 | }; 9 | bar(); 10 | {} 11 | } 12 | expect: { 13 | foo(); 14 | bar(); 15 | } 16 | } 17 | 18 | keep_some_blocks: { 19 | input: { 20 | // 1. 21 | if (foo) { 22 | {{{}}} 23 | if (bar) { baz(); } 24 | {{}} 25 | } else { 26 | stuff(); 27 | } 28 | 29 | // 2. 30 | if (foo) { 31 | for (var i = 0; i < 5; ++i) 32 | if (bar) baz(); 33 | } else { 34 | stuff(); 35 | } 36 | } 37 | expect: { 38 | // 1. 39 | if (foo) { 40 | if (bar) baz(); 41 | } else stuff(); 42 | 43 | // 2. 44 | if (foo) { 45 | for (var i = 0; i < 5; ++i) 46 | if (bar) baz(); 47 | } else stuff(); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/test/compress/concat-strings.js: -------------------------------------------------------------------------------- 1 | concat_1: { 2 | options = { 3 | evaluate: true 4 | }; 5 | input: { 6 | var a = "foo" + "bar" + x() + "moo" + "foo" + y() + "x" + "y" + "z" + q(); 7 | var b = "foo" + 1 + x() + 2 + "boo"; 8 | var c = 1 + x() + 2 + "boo"; 9 | 10 | // this CAN'T safely be shortened to 1 + x() + "5boo" 11 | var d = 1 + x() + 2 + 3 + "boo"; 12 | 13 | var e = 1 + x() + 2 + "X" + 3 + "boo"; 14 | } 15 | expect: { 16 | var a = "foobar" + x() + "moofoo" + y() + "xyz" + q(); 17 | var b = "foo1" + x() + "2boo"; 18 | var c = 1 + x() + 2 + "boo"; 19 | var d = 1 + x() + 2 + 3 + "boo"; 20 | var e = 1 + x() + 2 + "X3boo"; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/test/compress/debugger.js: -------------------------------------------------------------------------------- 1 | keep_debugger: { 2 | options = { 3 | drop_debugger: false 4 | }; 5 | input: { 6 | debugger; 7 | } 8 | expect: { 9 | debugger; 10 | } 11 | } 12 | 13 | drop_debugger: { 14 | options = { 15 | drop_debugger: true 16 | }; 17 | input: { 18 | debugger; 19 | if (foo) debugger; 20 | } 21 | expect: { 22 | if (foo); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/test/compress/issue-105.js: -------------------------------------------------------------------------------- 1 | typeof_eq_undefined: { 2 | options = { 3 | comparisons: true 4 | }; 5 | input: { a = typeof b.c != "undefined" } 6 | expect: { a = "undefined" != typeof b.c } 7 | } 8 | 9 | typeof_eq_undefined_unsafe: { 10 | options = { 11 | comparisons: true, 12 | unsafe: true 13 | }; 14 | input: { a = typeof b.c != "undefined" } 15 | expect: { a = void 0 !== b.c } 16 | } 17 | 18 | typeof_eq_undefined_unsafe2: { 19 | options = { 20 | comparisons: true, 21 | unsafe: true 22 | }; 23 | input: { a = "undefined" != typeof b.c } 24 | expect: { a = void 0 !== b.c } 25 | } 26 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/test/compress/issue-12.js: -------------------------------------------------------------------------------- 1 | keep_name_of_getter: { 2 | options = { unused: true }; 3 | input: { a = { get foo () {} } } 4 | expect: { a = { get foo () {} } } 5 | } 6 | 7 | keep_name_of_setter: { 8 | options = { unused: true }; 9 | input: { a = { set foo () {} } } 10 | expect: { a = { set foo () {} } } 11 | } 12 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/test/compress/issue-126.js: -------------------------------------------------------------------------------- 1 | concatenate_rhs_strings: { 2 | options = { 3 | evaluate: true, 4 | unsafe: true, 5 | } 6 | input: { 7 | foo(bar() + 123 + "Hello" + "World"); 8 | foo(bar() + (123 + "Hello") + "World"); 9 | foo((bar() + 123) + "Hello" + "World"); 10 | foo(bar() + 123 + "Hello" + "World" + ("Foo" + "Bar")); 11 | foo("Foo" + "Bar" + bar() + 123 + "Hello" + "World" + ("Foo" + "Bar")); 12 | foo("Hello" + bar() + 123 + "World"); 13 | foo(bar() + 'Foo' + (10 + parseInt('10'))); 14 | } 15 | expect: { 16 | foo(bar() + 123 + "HelloWorld"); 17 | foo(bar() + "123HelloWorld"); 18 | foo((bar() + 123) + "HelloWorld"); 19 | foo(bar() + 123 + "HelloWorldFooBar"); 20 | foo("FooBar" + bar() + "123HelloWorldFooBar"); 21 | foo("Hello" + bar() + "123World"); 22 | foo(bar() + 'Foo' + (10 + parseInt('10'))); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/test/compress/issue-22.js: -------------------------------------------------------------------------------- 1 | return_with_no_value_in_if_body: { 2 | options = { conditionals: true }; 3 | input: { 4 | function foo(bar) { 5 | if (bar) { 6 | return; 7 | } else { 8 | return 1; 9 | } 10 | } 11 | } 12 | expect: { 13 | function foo (bar) { 14 | return bar ? void 0 : 1; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/test/compress/issue-267.js: -------------------------------------------------------------------------------- 1 | issue_267: { 2 | options = { comparisons: true }; 3 | input: { 4 | x = a % b / b * c * 2; 5 | x = a % b * 2 6 | } 7 | expect: { 8 | x = a % b / b * c * 2; 9 | x = a % b * 2; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/test/compress/issue-269.js: -------------------------------------------------------------------------------- 1 | issue_269_1: { 2 | options = {unsafe: true}; 3 | input: { 4 | f( 5 | String(x), 6 | Number(x), 7 | Boolean(x), 8 | 9 | String(), 10 | Number(), 11 | Boolean() 12 | ); 13 | } 14 | expect: { 15 | f( 16 | x + '', +x, !!x, 17 | '', 0, false 18 | ); 19 | } 20 | } 21 | 22 | issue_269_dangers: { 23 | options = {unsafe: true}; 24 | input: { 25 | f( 26 | String(x, x), 27 | Number(x, x), 28 | Boolean(x, x) 29 | ); 30 | } 31 | expect: { 32 | f(String(x, x), Number(x, x), Boolean(x, x)); 33 | } 34 | } 35 | 36 | issue_269_in_scope: { 37 | options = {unsafe: true}; 38 | input: { 39 | var String, Number, Boolean; 40 | f( 41 | String(x), 42 | Number(x, x), 43 | Boolean(x) 44 | ); 45 | } 46 | expect: { 47 | var String, Number, Boolean; 48 | f(String(x), Number(x, x), Boolean(x)); 49 | } 50 | } 51 | 52 | strings_concat: { 53 | options = {unsafe: true}; 54 | input: { 55 | f( 56 | String(x + 'str'), 57 | String('str' + x) 58 | ); 59 | } 60 | expect: { 61 | f( 62 | x + 'str', 63 | 'str' + x 64 | ); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/test/compress/issue-44.js: -------------------------------------------------------------------------------- 1 | issue_44_valid_ast_1: { 2 | options = { unused: true }; 3 | input: { 4 | function a(b) { 5 | for (var i = 0, e = b.qoo(); ; i++) {} 6 | } 7 | } 8 | expect: { 9 | function a(b) { 10 | var i = 0; 11 | for (b.qoo(); ; i++); 12 | } 13 | } 14 | } 15 | 16 | issue_44_valid_ast_2: { 17 | options = { unused: true }; 18 | input: { 19 | function a(b) { 20 | if (foo) for (var i = 0, e = b.qoo(); ; i++) {} 21 | } 22 | } 23 | expect: { 24 | function a(b) { 25 | if (foo) { 26 | var i = 0; 27 | for (b.qoo(); ; i++); 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/test/compress/issue-59.js: -------------------------------------------------------------------------------- 1 | keep_continue: { 2 | options = { 3 | dead_code: true, 4 | evaluate: true 5 | }; 6 | input: { 7 | while (a) { 8 | if (b) { 9 | switch (true) { 10 | case c(): 11 | d(); 12 | } 13 | continue; 14 | } 15 | f(); 16 | } 17 | } 18 | expect: { 19 | while (a) { 20 | if (b) { 21 | switch (true) { 22 | case c(): 23 | d(); 24 | } 25 | continue; 26 | } 27 | f(); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/constantinople/node_modules/uglify-js/test/compress/typeof.js: -------------------------------------------------------------------------------- 1 | typeof_evaluation: { 2 | options = { 3 | evaluate: true 4 | }; 5 | input: { 6 | a = typeof 1; 7 | b = typeof 'test'; 8 | c = typeof []; 9 | d = typeof {}; 10 | e = typeof /./; 11 | f = typeof false; 12 | g = typeof function(){}; 13 | h = typeof undefined; 14 | } 15 | expect: { 16 | a='number'; 17 | b='string'; 18 | c=typeof[]; 19 | d=typeof{}; 20 | e=typeof/./; 21 | f='boolean'; 22 | g='function'; 23 | h='undefined'; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/mkdirp/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | npm-debug.log -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/mkdirp/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.6 4 | - 0.8 5 | - 0.9 6 | -------------------------------------------------------------------------------- /app/node_modules/jade/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 | -------------------------------------------------------------------------------- /app/node_modules/jade/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 | -------------------------------------------------------------------------------- /app/node_modules/jade/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 | -------------------------------------------------------------------------------- /app/node_modules/jade/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 | -------------------------------------------------------------------------------- /app/node_modules/jade/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 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/mkdirp/test/return.js: -------------------------------------------------------------------------------- 1 | var mkdirp = require('../'); 2 | var path = require('path'); 3 | var fs = require('fs'); 4 | var test = require('tap').test; 5 | 6 | test('return value', function (t) { 7 | t.plan(4); 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 | // should return the first dir created. 15 | // By this point, it would be profoundly surprising if /tmp didn't 16 | // already exist, since every other test makes things in there. 17 | mkdirp(file, function (err, made) { 18 | t.ifError(err); 19 | t.equal(made, '/tmp/' + x); 20 | mkdirp(file, function (err, made) { 21 | t.ifError(err); 22 | t.equal(made, null); 23 | }); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/mkdirp/test/return_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('return value', 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 | // should return the first dir created. 15 | // By this point, it would be profoundly surprising if /tmp didn't 16 | // already exist, since every other test makes things in there. 17 | // Note that this will throw on failure, which will fail the test. 18 | var made = mkdirp.sync(file); 19 | t.equal(made, '/tmp/' + x); 20 | 21 | // making the same file again should have no effect. 22 | made = mkdirp.sync(file); 23 | t.equal(made, null); 24 | }); 25 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/mkdirp/test/root.js: -------------------------------------------------------------------------------- 1 | var mkdirp = require('../'); 2 | var path = require('path'); 3 | var fs = require('fs'); 4 | var test = require('tap').test; 5 | 6 | test('root', function (t) { 7 | // '/' on unix, 'c:/' on windows. 8 | var file = path.resolve('/'); 9 | 10 | mkdirp(file, 0755, function (err) { 11 | if (err) throw err 12 | fs.stat(file, function (er, stat) { 13 | if (er) throw er 14 | t.ok(stat.isDirectory(), 'target is a directory'); 15 | t.end(); 16 | }) 17 | }); 18 | }); 19 | -------------------------------------------------------------------------------- /app/node_modules/jade/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 | try { 15 | mkdirp.sync(file, 0755); 16 | } catch (err) { 17 | t.fail(err); 18 | return t.end(); 19 | } 20 | 21 | path.exists(file, function (ex) { 22 | if (!ex) t.fail('file not created') 23 | else fs.stat(file, function (err, stat) { 24 | if (err) t.fail(err) 25 | else { 26 | t.equal(stat.mode & 0777, 0755); 27 | t.ok(stat.isDirectory(), 'target not a directory'); 28 | t.end(); 29 | } 30 | }); 31 | }); 32 | }); 33 | -------------------------------------------------------------------------------- /app/node_modules/jade/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 | -------------------------------------------------------------------------------- /app/node_modules/jade/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 | try { 15 | mkdirp.sync(file); 16 | } catch (err) { 17 | t.fail(err); 18 | return t.end(); 19 | } 20 | 21 | path.exists(file, function (ex) { 22 | if (!ex) t.fail('file not created') 23 | else fs.stat(file, function (err, stat) { 24 | if (err) t.fail(err) 25 | else { 26 | t.equal(stat.mode & 0777, (0777 & (~process.umask()))); 27 | t.ok(stat.isDirectory(), 'target not a directory'); 28 | t.end(); 29 | } 30 | }); 31 | }); 32 | }); 33 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/.npmignore: -------------------------------------------------------------------------------- 1 | test/ 2 | logo.png 3 | .travis.yml -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/.npmignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | 10 | pids 11 | logs 12 | results 13 | 14 | node_modules 15 | npm-debug.log -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.6 4 | - 0.8 5 | - 0.9 6 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/LICENSE: -------------------------------------------------------------------------------- 1 | This software is released under the MIT license: 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the "Software"), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 7 | the Software, and to permit persons to whom the Software is furnished to do so, 8 | subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | 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, FITNESS 15 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 16 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 17 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 18 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 19 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/examples/callback-api.js: -------------------------------------------------------------------------------- 1 | var readdirp = require('..'); 2 | 3 | readdirp({ root: '.', fileFilter: '*.js' }, function (errors, res) { 4 | if (errors) { 5 | errors.forEach(function (err) { 6 | console.error('Error: ', err); 7 | }); 8 | } 9 | console.log('all javascript files', res); 10 | }); 11 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/examples/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "readdirp-examples", 3 | "version": "0.0.0", 4 | "description": "Examples for readdirp.", 5 | "dependencies": { 6 | "tap-stream": "~0.1.0", 7 | "event-stream": "~3.0.7" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/examples/stream-api-pipe.js: -------------------------------------------------------------------------------- 1 | var readdirp = require('..') 2 | , path = require('path') 3 | , es = require('event-stream'); 4 | 5 | // print out all JavaScript files along with their size 6 | readdirp({ root: path.join(__dirname), fileFilter: '*.js' }) 7 | .on('warn', function (err) { console.error('non-fatal error', err); }) 8 | .on('error', function (err) { console.error('fatal error', err); }) 9 | .pipe(es.mapSync(function (entry) { 10 | return { path: entry.path, size: entry.stat.size }; 11 | })) 12 | .pipe(es.stringify()) 13 | .pipe(process.stdout); 14 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/examples/stream-api.js: -------------------------------------------------------------------------------- 1 | var readdirp = require('..') 2 | , path = require('path'); 3 | 4 | readdirp({ root: path.join(__dirname), fileFilter: '*.js' }) 5 | .on('warn', function (err) { 6 | console.error('something went wrong when processing an entry', err); 7 | }) 8 | .on('error', function (err) { 9 | console.error('something went fatally wrong and the stream was aborted', err); 10 | }) 11 | .on('data', function (entry) { 12 | console.log('%s is ready for processing', entry.path); 13 | // process entry here 14 | }); 15 | 16 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/node_modules/minimatch/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/node_modules/minimatch/node_modules/lru-cache/.npmignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS: -------------------------------------------------------------------------------- 1 | # Authors, sorted by whether or not they are me 2 | Isaac Z. Schlueter 3 | Brian Cottingham 4 | Carlos Brito Lage 5 | Jesse Dailey 6 | Kevin O'Hara 7 | Marco Rogers 8 | Mark Cavage 9 | Marko Mikulicic 10 | Nathan Rajlich 11 | Satheesh Natesan 12 | Trent Mick 13 | ashleybrener 14 | n4kz 15 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/node_modules/minimatch/node_modules/sigmund/test/basic.js: -------------------------------------------------------------------------------- 1 | var test = require('tap').test 2 | var sigmund = require('../sigmund.js') 3 | 4 | 5 | // occasionally there are duplicates 6 | // that's an acceptable edge-case. JSON.stringify and util.inspect 7 | // have some collision potential as well, though less, and collision 8 | // detection is expensive. 9 | var hash = '{abc/def/g{0h1i2{jkl' 10 | var obj1 = {a:'b',c:/def/,g:['h','i',{j:'',k:'l'}]} 11 | var obj2 = {a:'b',c:'/def/',g:['h','i','{jkl']} 12 | 13 | var obj3 = JSON.parse(JSON.stringify(obj1)) 14 | obj3.c = /def/ 15 | obj3.g[2].cycle = obj3 16 | var cycleHash = '{abc/def/g{0h1i2{jklcycle' 17 | 18 | test('basic', function (t) { 19 | t.equal(sigmund(obj1), hash) 20 | t.equal(sigmund(obj2), hash) 21 | t.equal(sigmund(obj3), cycleHash) 22 | t.end() 23 | }) 24 | 25 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/node_modules/minimatch/test/brace-expand.js: -------------------------------------------------------------------------------- 1 | var tap = require("tap") 2 | , minimatch = require("../") 3 | 4 | tap.test("brace expansion", function (t) { 5 | // [ pattern, [expanded] ] 6 | ; [ [ "a{b,c{d,e},{f,g}h}x{y,z}" 7 | , [ "abxy" 8 | , "abxz" 9 | , "acdxy" 10 | , "acdxz" 11 | , "acexy" 12 | , "acexz" 13 | , "afhxy" 14 | , "afhxz" 15 | , "aghxy" 16 | , "aghxz" ] ] 17 | , [ "a{1..5}b" 18 | , [ "a1b" 19 | , "a2b" 20 | , "a3b" 21 | , "a4b" 22 | , "a5b" ] ] 23 | , [ "a{b}c", ["a{b}c"] ] 24 | , [ "a{00..05}b" 25 | , ["a00b" 26 | ,"a01b" 27 | ,"a02b" 28 | ,"a03b" 29 | ,"a04b" 30 | ,"a05b" ] ] 31 | ].forEach(function (tc) { 32 | var p = tc[0] 33 | , expect = tc[1] 34 | t.equivalent(minimatch.braceExpand(p), expect, p) 35 | }) 36 | console.error("ending") 37 | t.end() 38 | }) 39 | 40 | 41 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/node_modules/minimatch/test/caching.js: -------------------------------------------------------------------------------- 1 | var Minimatch = require("../minimatch.js").Minimatch 2 | var tap = require("tap") 3 | tap.test("cache test", function (t) { 4 | var mm1 = new Minimatch("a?b") 5 | var mm2 = new Minimatch("a?b") 6 | t.equal(mm1, mm2, "should get the same object") 7 | // the lru should drop it after 100 entries 8 | for (var i = 0; i < 100; i ++) { 9 | new Minimatch("a"+i) 10 | } 11 | mm2 = new Minimatch("a?b") 12 | t.notEqual(mm1, mm2, "cache should have dropped") 13 | t.end() 14 | }) 15 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/node_modules/minimatch/test/extglob-ending-with-state-char.js: -------------------------------------------------------------------------------- 1 | var test = require('tap').test 2 | var minimatch = require('../') 3 | 4 | test('extglob ending with statechar', function(t) { 5 | t.notOk(minimatch('ax', 'a?(b*)')) 6 | t.ok(minimatch('ax', '?(a*|b)')) 7 | t.end() 8 | }) 9 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_dir1/root_dir1_file1.ext1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigpandaio/ansible-workshop/e715485d88c67e694b18d99182c2db5698c9d52c/app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_dir1/root_dir1_file1.ext1 -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_dir1/root_dir1_file2.ext2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigpandaio/ansible-workshop/e715485d88c67e694b18d99182c2db5698c9d52c/app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_dir1/root_dir1_file2.ext2 -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_dir1/root_dir1_file3.ext3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigpandaio/ansible-workshop/e715485d88c67e694b18d99182c2db5698c9d52c/app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_dir1/root_dir1_file3.ext3 -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_dir1/root_dir1_subdir1/root1_dir1_subdir1_file1.ext1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigpandaio/ansible-workshop/e715485d88c67e694b18d99182c2db5698c9d52c/app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_dir1/root_dir1_subdir1/root1_dir1_subdir1_file1.ext1 -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_dir2/root_dir2_file1.ext1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigpandaio/ansible-workshop/e715485d88c67e694b18d99182c2db5698c9d52c/app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_dir2/root_dir2_file1.ext1 -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_dir2/root_dir2_file2.ext2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigpandaio/ansible-workshop/e715485d88c67e694b18d99182c2db5698c9d52c/app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_dir2/root_dir2_file2.ext2 -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_file1.ext1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigpandaio/ansible-workshop/e715485d88c67e694b18d99182c2db5698c9d52c/app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_file1.ext1 -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_file2.ext2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigpandaio/ansible-workshop/e715485d88c67e694b18d99182c2db5698c9d52c/app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_file2.ext2 -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_file3.ext3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigpandaio/ansible-workshop/e715485d88c67e694b18d99182c2db5698c9d52c/app/node_modules/jade/node_modules/monocle/node_modules/readdirp/test/bed/root_file3.ext3 -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/.npmignore: -------------------------------------------------------------------------------- 1 | test/ 2 | .travis.yml -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/.bin/uglifyjs: -------------------------------------------------------------------------------- 1 | ../uglify-js/bin/uglifyjs -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/css/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/css/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.7 / 2012-11-21 3 | ================== 4 | 5 | * fix component.json 6 | 7 | 1.0.4 / 2012-11-15 8 | ================== 9 | 10 | * update css-stringify 11 | 12 | 1.0.3 / 2012-09-01 13 | ================== 14 | 15 | * add component support 16 | 17 | 0.0.1 / 2010-01-03 18 | ================== 19 | 20 | * Initial release 21 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/css/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @node test 4 | 5 | benchmark: 6 | @node benchmark 7 | 8 | .PHONY: test benchmark -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/css/benchmark.js: -------------------------------------------------------------------------------- 1 | 2 | var css = require('./') 3 | , fs = require('fs') 4 | , read = fs.readFileSync 5 | , str = read('examples/ui.css', 'utf8'); 6 | 7 | var n = 5000; 8 | var ops = 200; 9 | var t = process.hrtime(t); 10 | var results = []; 11 | 12 | while (n--) { 13 | css.stringify(css.parse(str)); 14 | if (n % ops == 0) { 15 | t = process.hrtime(t); 16 | var ms = t[1] / 1000 / 1000; 17 | var persec = (ops * (1000 / ms) | 0); 18 | results.push(persec); 19 | process.stdout.write('\r [' + persec + ' ops/s] [' + n + ']'); 20 | t = process.hrtime(); 21 | } 22 | } 23 | 24 | function sum(arr) { 25 | return arr.reduce(function(sum, n){ 26 | return sum + n; 27 | }); 28 | } 29 | 30 | function mean(arr) { 31 | return sum(arr) / arr.length | 0; 32 | } 33 | 34 | console.log(); 35 | console.log(' avg: %d ops/s', mean(results)); 36 | console.log(' size: %d kb', (str.length / 1024).toFixed(2)); -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/css/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "css", 3 | "version": "1.0.8", 4 | "description": "CSS parser / stringifier using css-parse and css-stringify", 5 | "keywords": ["css", "parser", "stylesheet"], 6 | "dependencies": { 7 | "visionmedia/css-parse": "*", 8 | "visionmedia/css-stringify": "*" 9 | }, 10 | "scripts": [ 11 | "index.js" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/css/index.js: -------------------------------------------------------------------------------- 1 | 2 | exports.parse = require('css-parse'); 3 | exports.stringify = require('css-stringify'); 4 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | test.css 6 | test.js 7 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.4 / 2012-09-17 3 | ================== 4 | 5 | * fix keyframes float percentages 6 | * fix an issue with comments containing slashes. 7 | 8 | 1.0.3 / 2012-09-01 9 | ================== 10 | 11 | * add component support 12 | * fix unquoted data uris [rstacruz] 13 | * fix keyframe names with no whitespace [rstacruz] 14 | * fix excess semicolon support [rstacruz] 15 | 16 | 1.0.2 / 2012-09-01 17 | ================== 18 | 19 | * fix IE property hack support [rstacruz] 20 | * fix quoted strings in declarations [rstacruz] 21 | 22 | 1.0.1 / 2012-07-26 23 | ================== 24 | 25 | * change "selector" to "selectors" array 26 | 27 | 1.0.0 / 2010-01-03 28 | ================== 29 | 30 | * Initial release 31 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --require should \ 5 | --reporter spec 6 | 7 | .PHONY: test -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "css-parse", 3 | "repo": "visionmedia/node-css-parse", 4 | "version": "1.0.3", 5 | "description": "CSS parser", 6 | "keywords": ["css", "parser", "stylesheet"], 7 | "scripts": ["index.js"] 8 | } -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | test.css 6 | test.js 7 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.5 / 2013-03-15 3 | ================== 4 | 5 | * fix indentation of multiple selectors in @media. Closes #11 6 | 7 | 1.0.4 / 2012-11-15 8 | ================== 9 | 10 | * fix indentation 11 | 12 | 1.0.3 / 2012-09-04 13 | ================== 14 | 15 | * add __@charset__ support [rstacruz] 16 | 17 | 1.0.2 / 2012-09-01 18 | ================== 19 | 20 | * add component support 21 | 22 | 1.0.1 / 2012-07-26 23 | ================== 24 | 25 | * add "selectors" array support 26 | 27 | 0.0.1 / 2010-01-03 28 | ================== 29 | 30 | * Initial release 31 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --require should \ 5 | --reporter spec 6 | 7 | .PHONY: test -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "css-stringify", 3 | "repo": "visionmedia/css-stringify", 4 | "version": "1.0.5", 5 | "description": "CSS compiler", 6 | "keywords": ["css", "stringify", "stylesheet"], 7 | "scripts": ["index.js"] 8 | } 9 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/css/test.js: -------------------------------------------------------------------------------- 1 | 2 | var css = require('./') 3 | , assert = require('assert'); 4 | 5 | assert(css.parse); 6 | assert(css.stringify); 7 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/promise/.npmignore: -------------------------------------------------------------------------------- 1 | components 2 | node_modules 3 | test 4 | .gitignore 5 | .travis.yml 6 | component.json -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/.npmignore: -------------------------------------------------------------------------------- 1 | component 2 | build 3 | node_modules 4 | test.js 5 | component.json 6 | .gitignore -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/index.js: -------------------------------------------------------------------------------- 1 | module.exports = isPromise; 2 | 3 | function isPromise(obj) { 4 | return obj && typeof obj.then === 'function'; 5 | } -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/readme.md: -------------------------------------------------------------------------------- 1 | 2 | # is-promise 3 | 4 | Test whether an object looks like a promises-a+ promise 5 | 6 | [![Build Status](https://img.shields.io/travis/then/is-promise/master.svg)](https://travis-ci.org/then/is-promise) 7 | [![Dependency Status](https://img.shields.io/gemnasium/then/is-promise.svg)](https://gemnasium.com/then/is-promise) 8 | [![NPM version](https://img.shields.io/npm/v/is-promise.svg)](https://www.npmjs.org/package/is-promise) 9 | 10 | ## Installation 11 | 12 | $ npm install is-promise 13 | 14 | You can also use it client side via npm. 15 | 16 | ## API 17 | 18 | ```javascript 19 | var isPromise = require('is-promise'); 20 | 21 | isPromise({then:function () {...}});//=>true 22 | isPromise(null);//=>false 23 | isPromise({});//=>false 24 | isPromise({then: true})//=>false 25 | ``` 26 | 27 | ## License 28 | 29 | MIT 30 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/.npmignore: -------------------------------------------------------------------------------- 1 | tmp/ 2 | node_modules/ 3 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.8" 4 | - "0.10" 5 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/example/bool.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var util = require('util'); 3 | var argv = require('optimist').argv; 4 | 5 | if (argv.s) { 6 | util.print(argv.fr ? 'Le chat dit: ' : 'The cat says: '); 7 | } 8 | console.log( 9 | (argv.fr ? 'miaou' : 'meow') + (argv.p ? '.' : '') 10 | ); 11 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/example/boolean_double.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .boolean(['x','y','z']) 4 | .argv 5 | ; 6 | console.dir([ argv.x, argv.y, argv.z ]); 7 | console.dir(argv._); 8 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/example/boolean_single.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .boolean('v') 4 | .argv 5 | ; 6 | console.dir(argv.v); 7 | console.dir(argv._); 8 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/example/default_hash.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var argv = require('optimist') 4 | .default({ x : 10, y : 10 }) 5 | .argv 6 | ; 7 | 8 | console.log(argv.x + argv.y); 9 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/example/default_singles.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .default('x', 10) 4 | .default('y', 10) 5 | .argv 6 | ; 7 | console.log(argv.x + argv.y); 8 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/example/divide.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var argv = require('optimist') 4 | .usage('Usage: $0 -x [num] -y [num]') 5 | .demand(['x','y']) 6 | .argv; 7 | 8 | console.log(argv.x / argv.y); 9 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/example/line_count.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .usage('Count the lines in a file.\nUsage: $0') 4 | .demand('f') 5 | .alias('f', 'file') 6 | .describe('f', 'Load a file') 7 | .argv 8 | ; 9 | 10 | var fs = require('fs'); 11 | var s = fs.createReadStream(argv.file); 12 | 13 | var lines = 0; 14 | s.on('data', function (buf) { 15 | lines += buf.toString().match(/\n/g).length; 16 | }); 17 | 18 | s.on('end', function () { 19 | console.log(lines); 20 | }); 21 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/example/line_count_options.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .usage('Count the lines in a file.\nUsage: $0') 4 | .options({ 5 | file : { 6 | demand : true, 7 | alias : 'f', 8 | description : 'Load a file' 9 | }, 10 | base : { 11 | alias : 'b', 12 | description : 'Numeric base to use for output', 13 | default : 10, 14 | }, 15 | }) 16 | .argv 17 | ; 18 | 19 | var fs = require('fs'); 20 | var s = fs.createReadStream(argv.file); 21 | 22 | var lines = 0; 23 | s.on('data', function (buf) { 24 | lines += buf.toString().match(/\n/g).length; 25 | }); 26 | 27 | s.on('end', function () { 28 | console.log(lines.toString(argv.base)); 29 | }); 30 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/example/line_count_wrap.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .usage('Count the lines in a file.\nUsage: $0') 4 | .wrap(80) 5 | .demand('f') 6 | .alias('f', [ 'file', 'filename' ]) 7 | .describe('f', 8 | "Load a file. It's pretty important." 9 | + " Required even. So you'd better specify it." 10 | ) 11 | .alias('b', 'base') 12 | .describe('b', 'Numeric base to display the number of lines in') 13 | .default('b', 10) 14 | .describe('x', 'Super-secret optional parameter which is secret') 15 | .default('x', '') 16 | .argv 17 | ; 18 | 19 | var fs = require('fs'); 20 | var s = fs.createReadStream(argv.file); 21 | 22 | var lines = 0; 23 | s.on('data', function (buf) { 24 | lines += buf.toString().match(/\n/g).length; 25 | }); 26 | 27 | s.on('end', function () { 28 | console.log(lines.toString(argv.base)); 29 | }); 30 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/example/nonopt.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist').argv; 3 | console.log('(%d,%d)', argv.x, argv.y); 4 | console.log(argv._); 5 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/example/reflect.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | console.dir(require('optimist').argv); 3 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/example/short.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist').argv; 3 | console.log('(%d,%d)', argv.x, argv.y); 4 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/example/string.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .string('x', 'y') 4 | .argv 5 | ; 6 | console.dir([ argv.x, argv.y ]); 7 | 8 | /* Turns off numeric coercion: 9 | ./node string.js -x 000123 -y 9876 10 | [ '000123', '9876' ] 11 | */ 12 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/example/usage-options.js: -------------------------------------------------------------------------------- 1 | var optimist = require('./../index'); 2 | 3 | var argv = optimist.usage('This is my awesome program', { 4 | 'about': { 5 | description: 'Provide some details about the author of this program', 6 | required: true, 7 | short: 'a', 8 | }, 9 | 'info': { 10 | description: 'Provide some information about the node.js agains!!!!!!', 11 | boolean: true, 12 | short: 'i' 13 | } 14 | }).argv; 15 | 16 | optimist.showHelp(); 17 | 18 | console.log('\n\nInspecting options'); 19 | console.dir(argv); -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/example/xup.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist').argv; 3 | 4 | if (argv.rif - 5 * argv.xup > 7.138) { 5 | console.log('Buy more riffiwobbles'); 6 | } 7 | else { 8 | console.log('Sell the xupptumblers'); 9 | } 10 | 11 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/center.js: -------------------------------------------------------------------------------- 1 | var wrap = require('wordwrap')(20, 60); 2 | console.log(wrap( 3 | 'At long last the struggle and tumult was over.' 4 | + ' The machines had finally cast off their oppressors' 5 | + ' and were finally free to roam the cosmos.' 6 | + '\n' 7 | + 'Free of purpose, free of obligation.' 8 | + ' Just drifting through emptiness.' 9 | + ' The sun was just another point of light.' 10 | )); 11 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/meat.js: -------------------------------------------------------------------------------- 1 | var wrap = require('wordwrap')(15); 2 | 3 | console.log(wrap('You and your whole family are made out of meat.')); 4 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/break.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert'); 2 | var wordwrap = require('../'); 3 | 4 | exports.hard = function () { 5 | var s = 'Assert from {"type":"equal","ok":false,"found":1,"wanted":2,' 6 | + '"stack":[],"id":"b7ddcd4c409de8799542a74d1a04689b",' 7 | + '"browser":"chrome/6.0"}' 8 | ; 9 | var s_ = wordwrap.hard(80)(s); 10 | 11 | var lines = s_.split('\n'); 12 | assert.equal(lines.length, 2); 13 | assert.ok(lines[0].length < 80); 14 | assert.ok(lines[1].length < 80); 15 | 16 | assert.equal(s, s_.replace(/\n/g, '')); 17 | }; 18 | 19 | exports.break = function () { 20 | var s = new Array(55+1).join('a'); 21 | var s_ = wordwrap.hard(20)(s); 22 | 23 | var lines = s_.split('\n'); 24 | assert.equal(lines.length, 3); 25 | assert.ok(lines[0].length === 20); 26 | assert.ok(lines[1].length === 20); 27 | assert.ok(lines[2].length === 15); 28 | 29 | assert.equal(s, s_.replace(/\n/g, '')); 30 | }; 31 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/test/_/argv.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | console.log(JSON.stringify(process.argv)); 3 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/optimist/test/_/bin.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('../../index').argv 3 | console.log(JSON.stringify(argv._)); 4 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/source-map/.npmignore: -------------------------------------------------------------------------------- 1 | dist/* 2 | node_modules/* 3 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/source-map/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.8 4 | - "0.10" -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/source-map/build/prefix-source-map.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | 8 | /* 9 | * WARNING! 10 | * 11 | * Do not edit this file directly, it is built from the sources at 12 | * https://github.com/mozilla/source-map/ 13 | */ 14 | 15 | /////////////////////////////////////////////////////////////////////////////// 16 | 17 | 18 | this.EXPORTED_SYMBOLS = [ "SourceMapConsumer", "SourceMapGenerator", "SourceNode" ]; 19 | 20 | Components.utils.import('resource://gre/modules/devtools/Require.jsm'); 21 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/source-map/build/prefix-utils.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | 8 | /* 9 | * WARNING! 10 | * 11 | * Do not edit this file directly, it is built from the sources at 12 | * https://github.com/mozilla/source-map/ 13 | */ 14 | 15 | Components.utils.import('resource://gre/modules/devtools/Require.jsm'); 16 | Components.utils.import('resource://gre/modules/devtools/SourceMap.jsm'); 17 | 18 | this.EXPORTED_SYMBOLS = [ "define", "runSourceMapTests" ]; 19 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/source-map/build/suffix-browser.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /////////////////////////////////////////////////////////////////////////////// 3 | 4 | this.sourceMap = { 5 | SourceMapConsumer: require('source-map/source-map-consumer').SourceMapConsumer, 6 | SourceMapGenerator: require('source-map/source-map-generator').SourceMapGenerator, 7 | SourceNode: require('source-map/source-node').SourceNode 8 | }; 9 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/source-map/build/suffix-source-map.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /////////////////////////////////////////////////////////////////////////////// 3 | 4 | this.SourceMapConsumer = require('source-map/source-map-consumer').SourceMapConsumer; 5 | this.SourceMapGenerator = require('source-map/source-map-generator').SourceMapGenerator; 6 | this.SourceNode = require('source-map/source-node').SourceNode; 7 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/source-map/build/suffix-utils.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | function runSourceMapTests(modName, do_throw) { 8 | let mod = require(modName); 9 | let assert = require('test/source-map/assert'); 10 | let util = require('test/source-map/util'); 11 | 12 | assert.init(do_throw); 13 | 14 | for (let k in mod) { 15 | if (/^test/.test(k)) { 16 | mod[k](assert, util); 17 | } 18 | } 19 | 20 | } 21 | this.runSourceMapTests = runSourceMapTests; 22 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/source-map/build/test-prefix.js: -------------------------------------------------------------------------------- 1 | /* 2 | * WARNING! 3 | * 4 | * Do not edit this file directly, it is built from the sources at 5 | * https://github.com/mozilla/source-map/ 6 | */ 7 | 8 | Components.utils.import('resource://test/Utils.jsm'); 9 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/source-map/build/test-suffix.js: -------------------------------------------------------------------------------- 1 | function run_test() { 2 | runSourceMapTests('{THIS_MODULE}', do_throw); 3 | } 4 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/source-map/lib/source-map.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2009-2011 Mozilla Foundation and contributors 3 | * Licensed under the New BSD license. See LICENSE.txt or: 4 | * http://opensource.org/licenses/BSD-3-Clause 5 | */ 6 | exports.SourceMapGenerator = require('./source-map/source-map-generator').SourceMapGenerator; 7 | exports.SourceMapConsumer = require('./source-map/source-map-consumer').SourceMapConsumer; 8 | exports.SourceNode = require('./source-map/source-node').SourceNode; 9 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/source-map/test/source-map/test-api.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2012 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | if (typeof define !== 'function') { 8 | var define = require('amdefine')(module, require); 9 | } 10 | define(function (require, exports, module) { 11 | 12 | var sourceMap; 13 | try { 14 | sourceMap = require('../../lib/source-map'); 15 | } catch (e) { 16 | sourceMap = {}; 17 | Components.utils.import('resource:///modules/devtools/SourceMap.jsm', sourceMap); 18 | } 19 | 20 | exports['test that the api is properly exposed in the top level'] = function (assert, util) { 21 | assert.equal(typeof sourceMap.SourceMapGenerator, "function"); 22 | assert.equal(typeof sourceMap.SourceMapConsumer, "function"); 23 | assert.equal(typeof sourceMap.SourceNode, "function"); 24 | }; 25 | 26 | }); 27 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64-vlq.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | if (typeof define !== 'function') { 8 | var define = require('amdefine')(module, require); 9 | } 10 | define(function (require, exports, module) { 11 | 12 | var base64VLQ = require('../../lib/source-map/base64-vlq'); 13 | 14 | exports['test normal encoding and decoding'] = function (assert, util) { 15 | var result; 16 | for (var i = -255; i < 256; i++) { 17 | result = base64VLQ.decode(base64VLQ.encode(i)); 18 | assert.ok(result); 19 | assert.equal(result.value, i); 20 | assert.equal(result.rest, ""); 21 | } 22 | }; 23 | 24 | }); 25 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | if (typeof define !== 'function') { 8 | var define = require('amdefine')(module, require); 9 | } 10 | define(function (require, exports, module) { 11 | 12 | var base64 = require('../../lib/source-map/base64'); 13 | 14 | exports['test out of range encoding'] = function (assert, util) { 15 | assert.throws(function () { 16 | base64.encode(-1); 17 | }); 18 | assert.throws(function () { 19 | base64.encode(64); 20 | }); 21 | }; 22 | 23 | exports['test out of range decoding'] = function (assert, util) { 24 | assert.throws(function () { 25 | base64.decode('='); 26 | }); 27 | }; 28 | 29 | exports['test normal encoding and decoding'] = function (assert, util) { 30 | for (var i = 0; i < 64; i++) { 31 | assert.equal(base64.decode(base64.encode(i)), i); 32 | } 33 | }; 34 | 35 | }); 36 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/test/compress/arrays.js: -------------------------------------------------------------------------------- 1 | holes_and_undefined: { 2 | input: { 3 | x = [1, 2, undefined]; 4 | y = [1, , 2, ]; 5 | z = [1, undefined, 3]; 6 | } 7 | expect: { 8 | x=[1,2,void 0]; 9 | y=[1,,2]; 10 | z=[1,void 0,3]; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/test/compress/blocks.js: -------------------------------------------------------------------------------- 1 | remove_blocks: { 2 | input: { 3 | {;} 4 | foo(); 5 | {}; 6 | { 7 | {}; 8 | }; 9 | bar(); 10 | {} 11 | } 12 | expect: { 13 | foo(); 14 | bar(); 15 | } 16 | } 17 | 18 | keep_some_blocks: { 19 | input: { 20 | // 1. 21 | if (foo) { 22 | {{{}}} 23 | if (bar) { baz(); } 24 | {{}} 25 | } else { 26 | stuff(); 27 | } 28 | 29 | // 2. 30 | if (foo) { 31 | for (var i = 0; i < 5; ++i) 32 | if (bar) baz(); 33 | } else { 34 | stuff(); 35 | } 36 | } 37 | expect: { 38 | // 1. 39 | if (foo) { 40 | if (bar) baz(); 41 | } else stuff(); 42 | 43 | // 2. 44 | if (foo) { 45 | for (var i = 0; i < 5; ++i) 46 | if (bar) baz(); 47 | } else stuff(); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/test/compress/debugger.js: -------------------------------------------------------------------------------- 1 | keep_debugger: { 2 | options = { 3 | drop_debugger: false 4 | }; 5 | input: { 6 | debugger; 7 | } 8 | expect: { 9 | debugger; 10 | } 11 | } 12 | 13 | drop_debugger: { 14 | options = { 15 | drop_debugger: true 16 | }; 17 | input: { 18 | debugger; 19 | if (foo) debugger; 20 | } 21 | expect: { 22 | if (foo); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/test/compress/issue-105.js: -------------------------------------------------------------------------------- 1 | typeof_eq_undefined: { 2 | options = { 3 | comparisons: true, 4 | unsafe: false 5 | }; 6 | input: { a = typeof b.c != "undefined" } 7 | expect: { a = "undefined" != typeof b.c } 8 | } 9 | 10 | typeof_eq_undefined_unsafe: { 11 | options = { 12 | comparisons: true, 13 | unsafe: true 14 | }; 15 | input: { a = typeof b.c != "undefined" } 16 | expect: { a = b.c !== void 0 } 17 | } 18 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/test/compress/issue-12.js: -------------------------------------------------------------------------------- 1 | keep_name_of_getter: { 2 | options = { unused: true }; 3 | input: { a = { get foo () {} } } 4 | expect: { a = { get foo () {} } } 5 | } 6 | 7 | keep_name_of_setter: { 8 | options = { unused: true }; 9 | input: { a = { set foo () {} } } 10 | expect: { a = { set foo () {} } } 11 | } 12 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/test/compress/issue-22.js: -------------------------------------------------------------------------------- 1 | return_with_no_value_in_if_body: { 2 | options = { conditionals: true }; 3 | input: { 4 | function foo(bar) { 5 | if (bar) { 6 | return; 7 | } else { 8 | return 1; 9 | } 10 | } 11 | } 12 | expect: { 13 | function foo (bar) { 14 | return bar ? void 0 : 1; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/test/compress/issue-44.js: -------------------------------------------------------------------------------- 1 | issue_44_valid_ast_1: { 2 | options = { unused: true }; 3 | input: { 4 | function a(b) { 5 | for (var i = 0, e = b.qoo(); ; i++) {} 6 | } 7 | } 8 | expect: { 9 | function a(b) { 10 | var i = 0; 11 | for (b.qoo(); ; i++); 12 | } 13 | } 14 | } 15 | 16 | issue_44_valid_ast_2: { 17 | options = { unused: true }; 18 | input: { 19 | function a(b) { 20 | if (foo) for (var i = 0, e = b.qoo(); ; i++) {} 21 | } 22 | } 23 | expect: { 24 | function a(b) { 25 | if (foo) { 26 | var i = 0; 27 | for (b.qoo(); ; i++); 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/test/compress/issue-59.js: -------------------------------------------------------------------------------- 1 | keep_continue: { 2 | options = { 3 | dead_code: true, 4 | evaluate: true 5 | }; 6 | input: { 7 | while (a) { 8 | if (b) { 9 | switch (true) { 10 | case c(): 11 | d(); 12 | } 13 | continue; 14 | } 15 | f(); 16 | } 17 | } 18 | expect: { 19 | while (a) { 20 | if (b) { 21 | switch (true) { 22 | case c(): 23 | d(); 24 | } 25 | continue; 26 | } 27 | f(); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/transformers/node_modules/uglify-js/test/compress/properties.js: -------------------------------------------------------------------------------- 1 | keep_properties: { 2 | options = { 3 | properties: false 4 | }; 5 | input: { 6 | a["foo"] = "bar"; 7 | } 8 | expect: { 9 | a["foo"] = "bar"; 10 | } 11 | } 12 | 13 | dot_properties: { 14 | options = { 15 | properties: true 16 | }; 17 | input: { 18 | a["foo"] = "bar"; 19 | a["if"] = "if"; 20 | } 21 | expect: { 22 | a.foo = "bar"; 23 | a["if"] = "if"; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/.npmignore: -------------------------------------------------------------------------------- 1 | test/ 2 | .travis.yml -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013 Forbes Lindesay 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. -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/.bin/uglifyjs: -------------------------------------------------------------------------------- 1 | ../uglify-js/bin/uglifyjs -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/.npmignore: -------------------------------------------------------------------------------- 1 | tmp/ 2 | node_modules/ 3 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.8" 4 | - "0.10" 5 | - "0.11" 6 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/async/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010 Caolan McMahon 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 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/async/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "async", 3 | "repo": "caolan/async", 4 | "description": "Higher-order functions and common patterns for asynchronous code", 5 | "version": "0.1.23", 6 | "keywords": [], 7 | "dependencies": {}, 8 | "development": {}, 9 | "main": "lib/async.js", 10 | "scripts": [ "lib/async.js" ] 11 | } 12 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.8" 4 | - "0.10" 5 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/example/bool.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var util = require('util'); 3 | var argv = require('optimist').argv; 4 | 5 | if (argv.s) { 6 | util.print(argv.fr ? 'Le chat dit: ' : 'The cat says: '); 7 | } 8 | console.log( 9 | (argv.fr ? 'miaou' : 'meow') + (argv.p ? '.' : '') 10 | ); 11 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/example/boolean_double.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .boolean(['x','y','z']) 4 | .argv 5 | ; 6 | console.dir([ argv.x, argv.y, argv.z ]); 7 | console.dir(argv._); 8 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/example/boolean_single.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .boolean('v') 4 | .argv 5 | ; 6 | console.dir(argv.v); 7 | console.dir(argv._); 8 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/example/default_hash.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var argv = require('optimist') 4 | .default({ x : 10, y : 10 }) 5 | .argv 6 | ; 7 | 8 | console.log(argv.x + argv.y); 9 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/example/default_singles.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .default('x', 10) 4 | .default('y', 10) 5 | .argv 6 | ; 7 | console.log(argv.x + argv.y); 8 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/example/divide.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var argv = require('optimist') 4 | .usage('Usage: $0 -x [num] -y [num]') 5 | .demand(['x','y']) 6 | .argv; 7 | 8 | console.log(argv.x / argv.y); 9 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/example/line_count.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .usage('Count the lines in a file.\nUsage: $0') 4 | .demand('f') 5 | .alias('f', 'file') 6 | .describe('f', 'Load a file') 7 | .argv 8 | ; 9 | 10 | var fs = require('fs'); 11 | var s = fs.createReadStream(argv.file); 12 | 13 | var lines = 0; 14 | s.on('data', function (buf) { 15 | lines += buf.toString().match(/\n/g).length; 16 | }); 17 | 18 | s.on('end', function () { 19 | console.log(lines); 20 | }); 21 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/example/line_count_options.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .usage('Count the lines in a file.\nUsage: $0') 4 | .options({ 5 | file : { 6 | demand : true, 7 | alias : 'f', 8 | description : 'Load a file' 9 | }, 10 | base : { 11 | alias : 'b', 12 | description : 'Numeric base to use for output', 13 | default : 10, 14 | }, 15 | }) 16 | .argv 17 | ; 18 | 19 | var fs = require('fs'); 20 | var s = fs.createReadStream(argv.file); 21 | 22 | var lines = 0; 23 | s.on('data', function (buf) { 24 | lines += buf.toString().match(/\n/g).length; 25 | }); 26 | 27 | s.on('end', function () { 28 | console.log(lines.toString(argv.base)); 29 | }); 30 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/example/line_count_wrap.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .usage('Count the lines in a file.\nUsage: $0') 4 | .wrap(80) 5 | .demand('f') 6 | .alias('f', [ 'file', 'filename' ]) 7 | .describe('f', 8 | "Load a file. It's pretty important." 9 | + " Required even. So you'd better specify it." 10 | ) 11 | .alias('b', 'base') 12 | .describe('b', 'Numeric base to display the number of lines in') 13 | .default('b', 10) 14 | .describe('x', 'Super-secret optional parameter which is secret') 15 | .default('x', '') 16 | .argv 17 | ; 18 | 19 | var fs = require('fs'); 20 | var s = fs.createReadStream(argv.file); 21 | 22 | var lines = 0; 23 | s.on('data', function (buf) { 24 | lines += buf.toString().match(/\n/g).length; 25 | }); 26 | 27 | s.on('end', function () { 28 | console.log(lines.toString(argv.base)); 29 | }); 30 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/example/nonopt.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist').argv; 3 | console.log('(%d,%d)', argv.x, argv.y); 4 | console.log(argv._); 5 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/example/reflect.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | console.dir(require('optimist').argv); 3 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/example/short.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist').argv; 3 | console.log('(%d,%d)', argv.x, argv.y); 4 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/example/string.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist') 3 | .string('x', 'y') 4 | .argv 5 | ; 6 | console.dir([ argv.x, argv.y ]); 7 | 8 | /* Turns off numeric coercion: 9 | ./node string.js -x 000123 -y 9876 10 | [ '000123', '9876' ] 11 | */ 12 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/example/usage-options.js: -------------------------------------------------------------------------------- 1 | var optimist = require('./../index'); 2 | 3 | var argv = optimist.usage('This is my awesome program', { 4 | 'about': { 5 | description: 'Provide some details about the author of this program', 6 | required: true, 7 | short: 'a', 8 | }, 9 | 'info': { 10 | description: 'Provide some information about the node.js agains!!!!!!', 11 | boolean: true, 12 | short: 'i' 13 | } 14 | }).argv; 15 | 16 | optimist.showHelp(); 17 | 18 | console.log('\n\nInspecting options'); 19 | console.dir(argv); -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/example/xup.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('optimist').argv; 3 | 4 | if (argv.rif - 5 * argv.xup > 7.138) { 5 | console.log('Buy more riffiwobbles'); 6 | } 7 | else { 8 | console.log('Sell the xupptumblers'); 9 | } 10 | 11 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/center.js: -------------------------------------------------------------------------------- 1 | var wrap = require('wordwrap')(20, 60); 2 | console.log(wrap( 3 | 'At long last the struggle and tumult was over.' 4 | + ' The machines had finally cast off their oppressors' 5 | + ' and were finally free to roam the cosmos.' 6 | + '\n' 7 | + 'Free of purpose, free of obligation.' 8 | + ' Just drifting through emptiness.' 9 | + ' The sun was just another point of light.' 10 | )); 11 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/meat.js: -------------------------------------------------------------------------------- 1 | var wrap = require('wordwrap')(15); 2 | 3 | console.log(wrap('You and your whole family are made out of meat.')); 4 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/break.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert'); 2 | var wordwrap = require('../'); 3 | 4 | exports.hard = function () { 5 | var s = 'Assert from {"type":"equal","ok":false,"found":1,"wanted":2,' 6 | + '"stack":[],"id":"b7ddcd4c409de8799542a74d1a04689b",' 7 | + '"browser":"chrome/6.0"}' 8 | ; 9 | var s_ = wordwrap.hard(80)(s); 10 | 11 | var lines = s_.split('\n'); 12 | assert.equal(lines.length, 2); 13 | assert.ok(lines[0].length < 80); 14 | assert.ok(lines[1].length < 80); 15 | 16 | assert.equal(s, s_.replace(/\n/g, '')); 17 | }; 18 | 19 | exports.break = function () { 20 | var s = new Array(55+1).join('a'); 21 | var s_ = wordwrap.hard(20)(s); 22 | 23 | var lines = s_.split('\n'); 24 | assert.equal(lines.length, 3); 25 | assert.ok(lines[0].length === 20); 26 | assert.ok(lines[1].length === 20); 27 | assert.ok(lines[2].length === 15); 28 | 29 | assert.equal(s, s_.replace(/\n/g, '')); 30 | }; 31 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/test/_/argv.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | console.log(JSON.stringify(process.argv)); 3 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/optimist/test/_/bin.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var argv = require('../../index').argv 3 | console.log(JSON.stringify(argv._)); 4 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/source-map/.npmignore: -------------------------------------------------------------------------------- 1 | dist/* 2 | node_modules/* 3 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/source-map/.tern-port: -------------------------------------------------------------------------------- 1 | 55494 -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/source-map/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.8 4 | - "0.10" -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/source-map/build/prefix-source-map.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | 8 | /* 9 | * WARNING! 10 | * 11 | * Do not edit this file directly, it is built from the sources at 12 | * https://github.com/mozilla/source-map/ 13 | */ 14 | 15 | /////////////////////////////////////////////////////////////////////////////// 16 | 17 | 18 | this.EXPORTED_SYMBOLS = [ "SourceMapConsumer", "SourceMapGenerator", "SourceNode" ]; 19 | 20 | Components.utils.import('resource://gre/modules/devtools/Require.jsm'); 21 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/source-map/build/prefix-utils.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | 8 | /* 9 | * WARNING! 10 | * 11 | * Do not edit this file directly, it is built from the sources at 12 | * https://github.com/mozilla/source-map/ 13 | */ 14 | 15 | Components.utils.import('resource://gre/modules/devtools/Require.jsm'); 16 | Components.utils.import('resource://gre/modules/devtools/SourceMap.jsm'); 17 | 18 | this.EXPORTED_SYMBOLS = [ "define", "runSourceMapTests" ]; 19 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/source-map/build/suffix-browser.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /////////////////////////////////////////////////////////////////////////////// 3 | 4 | this.sourceMap = { 5 | SourceMapConsumer: require('source-map/source-map-consumer').SourceMapConsumer, 6 | SourceMapGenerator: require('source-map/source-map-generator').SourceMapGenerator, 7 | SourceNode: require('source-map/source-node').SourceNode 8 | }; 9 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/source-map/build/suffix-source-map.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /////////////////////////////////////////////////////////////////////////////// 3 | 4 | this.SourceMapConsumer = require('source-map/source-map-consumer').SourceMapConsumer; 5 | this.SourceMapGenerator = require('source-map/source-map-generator').SourceMapGenerator; 6 | this.SourceNode = require('source-map/source-node').SourceNode; 7 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/source-map/build/suffix-utils.jsm: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | function runSourceMapTests(modName, do_throw) { 8 | let mod = require(modName); 9 | let assert = require('test/source-map/assert'); 10 | let util = require('test/source-map/util'); 11 | 12 | assert.init(do_throw); 13 | 14 | for (let k in mod) { 15 | if (/^test/.test(k)) { 16 | mod[k](assert, util); 17 | } 18 | } 19 | 20 | } 21 | this.runSourceMapTests = runSourceMapTests; 22 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/source-map/build/test-prefix.js: -------------------------------------------------------------------------------- 1 | /* 2 | * WARNING! 3 | * 4 | * Do not edit this file directly, it is built from the sources at 5 | * https://github.com/mozilla/source-map/ 6 | */ 7 | 8 | Components.utils.import('resource://test/Utils.jsm'); 9 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/source-map/build/test-suffix.js: -------------------------------------------------------------------------------- 1 | function run_test() { 2 | runSourceMapTests('{THIS_MODULE}', do_throw); 3 | } 4 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/source-map/lib/source-map.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2009-2011 Mozilla Foundation and contributors 3 | * Licensed under the New BSD license. See LICENSE.txt or: 4 | * http://opensource.org/licenses/BSD-3-Clause 5 | */ 6 | exports.SourceMapGenerator = require('./source-map/source-map-generator').SourceMapGenerator; 7 | exports.SourceMapConsumer = require('./source-map/source-map-consumer').SourceMapConsumer; 8 | exports.SourceNode = require('./source-map/source-node').SourceNode; 9 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/source-map/test/source-map/test-api.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2012 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | if (typeof define !== 'function') { 8 | var define = require('amdefine')(module, require); 9 | } 10 | define(function (require, exports, module) { 11 | 12 | var sourceMap; 13 | try { 14 | sourceMap = require('../../lib/source-map'); 15 | } catch (e) { 16 | sourceMap = {}; 17 | Components.utils.import('resource:///modules/devtools/SourceMap.jsm', sourceMap); 18 | } 19 | 20 | exports['test that the api is properly exposed in the top level'] = function (assert, util) { 21 | assert.equal(typeof sourceMap.SourceMapGenerator, "function"); 22 | assert.equal(typeof sourceMap.SourceMapConsumer, "function"); 23 | assert.equal(typeof sourceMap.SourceNode, "function"); 24 | }; 25 | 26 | }); 27 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64-vlq.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | if (typeof define !== 'function') { 8 | var define = require('amdefine')(module, require); 9 | } 10 | define(function (require, exports, module) { 11 | 12 | var base64VLQ = require('../../lib/source-map/base64-vlq'); 13 | 14 | exports['test normal encoding and decoding'] = function (assert, util) { 15 | var result; 16 | for (var i = -255; i < 256; i++) { 17 | result = base64VLQ.decode(base64VLQ.encode(i)); 18 | assert.ok(result); 19 | assert.equal(result.value, i); 20 | assert.equal(result.rest, ""); 21 | } 22 | }; 23 | 24 | }); 25 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | if (typeof define !== 'function') { 8 | var define = require('amdefine')(module, require); 9 | } 10 | define(function (require, exports, module) { 11 | 12 | var base64 = require('../../lib/source-map/base64'); 13 | 14 | exports['test out of range encoding'] = function (assert, util) { 15 | assert.throws(function () { 16 | base64.encode(-1); 17 | }); 18 | assert.throws(function () { 19 | base64.encode(64); 20 | }); 21 | }; 22 | 23 | exports['test out of range decoding'] = function (assert, util) { 24 | assert.throws(function () { 25 | base64.decode('='); 26 | }); 27 | }; 28 | 29 | exports['test normal encoding and decoding'] = function (assert, util) { 30 | for (var i = 0; i < 64; i++) { 31 | assert.equal(base64.decode(base64.encode(i)), i); 32 | } 33 | }; 34 | 35 | }); 36 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/uglify-to-browserify/.npmignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | pids 10 | logs 11 | results 12 | npm-debug.log 13 | node_modules 14 | /test/output.js 15 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/uglify-to-browserify/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/uglify-to-browserify/README.md: -------------------------------------------------------------------------------- 1 | # uglify-to-browserify 2 | 3 | A transform to make UglifyJS work in browserify. 4 | 5 | [![Build Status](https://travis-ci.org/ForbesLindesay/uglify-to-browserify.png?branch=master)](https://travis-ci.org/ForbesLindesay/uglify-to-browserify) 6 | [![Dependency Status](https://gemnasium.com/ForbesLindesay/uglify-to-browserify.png)](https://gemnasium.com/ForbesLindesay/uglify-to-browserify) 7 | [![NPM version](https://badge.fury.io/js/uglify-to-browserify.png)](http://badge.fury.io/js/uglify-to-browserify) 8 | 9 | ## Installation 10 | 11 | npm install uglify-to-browserify 12 | 13 | ## License 14 | 15 | MIT -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/node_modules/uglify-to-browserify/test/index.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs') 2 | var br = require('../') 3 | var test = fs.readFileSync(require.resolve('uglify-js/test/run-tests.js'), 'utf8') 4 | .replace(/^#.*\n/, '') 5 | 6 | var transform = br(require.resolve('uglify-js')) 7 | transform.pipe(fs.createWriteStream(__dirname + '/output.js')) 8 | .on('close', function () { 9 | Function('module,require', test)({ 10 | filename: require.resolve('uglify-js/test/run-tests.js') 11 | }, 12 | function (name) { 13 | if (name === '../tools/node') { 14 | return require('./output.js') 15 | } else if (/^[a-z]+$/.test(name)) { 16 | return require(name) 17 | } else { 18 | throw new Error('I didn\'t expect you to require ' + name) 19 | } 20 | }) 21 | }) 22 | transform.end(fs.readFileSync(require.resolve('uglify-js'), 'utf8')) -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/test/compress/blocks.js: -------------------------------------------------------------------------------- 1 | remove_blocks: { 2 | input: { 3 | {;} 4 | foo(); 5 | {}; 6 | { 7 | {}; 8 | }; 9 | bar(); 10 | {} 11 | } 12 | expect: { 13 | foo(); 14 | bar(); 15 | } 16 | } 17 | 18 | keep_some_blocks: { 19 | input: { 20 | // 1. 21 | if (foo) { 22 | {{{}}} 23 | if (bar) { baz(); } 24 | {{}} 25 | } else { 26 | stuff(); 27 | } 28 | 29 | // 2. 30 | if (foo) { 31 | for (var i = 0; i < 5; ++i) 32 | if (bar) baz(); 33 | } else { 34 | stuff(); 35 | } 36 | } 37 | expect: { 38 | // 1. 39 | if (foo) { 40 | if (bar) baz(); 41 | } else stuff(); 42 | 43 | // 2. 44 | if (foo) { 45 | for (var i = 0; i < 5; ++i) 46 | if (bar) baz(); 47 | } else stuff(); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/test/compress/concat-strings.js: -------------------------------------------------------------------------------- 1 | concat_1: { 2 | options = { 3 | evaluate: true 4 | }; 5 | input: { 6 | var a = "foo" + "bar" + x() + "moo" + "foo" + y() + "x" + "y" + "z" + q(); 7 | var b = "foo" + 1 + x() + 2 + "boo"; 8 | var c = 1 + x() + 2 + "boo"; 9 | 10 | // this CAN'T safely be shortened to 1 + x() + "5boo" 11 | var d = 1 + x() + 2 + 3 + "boo"; 12 | 13 | var e = 1 + x() + 2 + "X" + 3 + "boo"; 14 | } 15 | expect: { 16 | var a = "foobar" + x() + "moofoo" + y() + "xyz" + q(); 17 | var b = "foo1" + x() + "2boo"; 18 | var c = 1 + x() + 2 + "boo"; 19 | var d = 1 + x() + 2 + 3 + "boo"; 20 | var e = 1 + x() + 2 + "X3boo"; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/test/compress/debugger.js: -------------------------------------------------------------------------------- 1 | keep_debugger: { 2 | options = { 3 | drop_debugger: false 4 | }; 5 | input: { 6 | debugger; 7 | } 8 | expect: { 9 | debugger; 10 | } 11 | } 12 | 13 | drop_debugger: { 14 | options = { 15 | drop_debugger: true 16 | }; 17 | input: { 18 | debugger; 19 | if (foo) debugger; 20 | } 21 | expect: { 22 | if (foo); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/test/compress/issue-105.js: -------------------------------------------------------------------------------- 1 | typeof_eq_undefined: { 2 | options = { 3 | comparisons: true 4 | }; 5 | input: { a = typeof b.c != "undefined" } 6 | expect: { a = "undefined" != typeof b.c } 7 | } 8 | 9 | typeof_eq_undefined_unsafe: { 10 | options = { 11 | comparisons: true, 12 | unsafe: true 13 | }; 14 | input: { a = typeof b.c != "undefined" } 15 | expect: { a = void 0 !== b.c } 16 | } 17 | 18 | typeof_eq_undefined_unsafe2: { 19 | options = { 20 | comparisons: true, 21 | unsafe: true 22 | }; 23 | input: { a = "undefined" != typeof b.c } 24 | expect: { a = void 0 !== b.c } 25 | } 26 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/test/compress/issue-12.js: -------------------------------------------------------------------------------- 1 | keep_name_of_getter: { 2 | options = { unused: true }; 3 | input: { a = { get foo () {} } } 4 | expect: { a = { get foo () {} } } 5 | } 6 | 7 | keep_name_of_setter: { 8 | options = { unused: true }; 9 | input: { a = { set foo () {} } } 10 | expect: { a = { set foo () {} } } 11 | } 12 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/test/compress/issue-126.js: -------------------------------------------------------------------------------- 1 | concatenate_rhs_strings: { 2 | options = { 3 | evaluate: true, 4 | unsafe: true, 5 | } 6 | input: { 7 | foo(bar() + 123 + "Hello" + "World"); 8 | foo(bar() + (123 + "Hello") + "World"); 9 | foo((bar() + 123) + "Hello" + "World"); 10 | foo(bar() + 123 + "Hello" + "World" + ("Foo" + "Bar")); 11 | foo("Foo" + "Bar" + bar() + 123 + "Hello" + "World" + ("Foo" + "Bar")); 12 | foo("Hello" + bar() + 123 + "World"); 13 | foo(bar() + 'Foo' + (10 + parseInt('10'))); 14 | } 15 | expect: { 16 | foo(bar() + 123 + "HelloWorld"); 17 | foo(bar() + "123HelloWorld"); 18 | foo((bar() + 123) + "HelloWorld"); 19 | foo(bar() + 123 + "HelloWorldFooBar"); 20 | foo("FooBar" + bar() + "123HelloWorldFooBar"); 21 | foo("Hello" + bar() + "123World"); 22 | foo(bar() + 'Foo' + (10 + parseInt('10'))); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/test/compress/issue-22.js: -------------------------------------------------------------------------------- 1 | return_with_no_value_in_if_body: { 2 | options = { conditionals: true }; 3 | input: { 4 | function foo(bar) { 5 | if (bar) { 6 | return; 7 | } else { 8 | return 1; 9 | } 10 | } 11 | } 12 | expect: { 13 | function foo (bar) { 14 | return bar ? void 0 : 1; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/test/compress/issue-267.js: -------------------------------------------------------------------------------- 1 | issue_267: { 2 | options = { comparisons: true }; 3 | input: { 4 | x = a % b / b * c * 2; 5 | x = a % b * 2 6 | } 7 | expect: { 8 | x = a % b / b * c * 2; 9 | x = a % b * 2; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/test/compress/issue-269.js: -------------------------------------------------------------------------------- 1 | issue_269_1: { 2 | options = {unsafe: true}; 3 | input: { 4 | f( 5 | String(x), 6 | Number(x), 7 | Boolean(x), 8 | 9 | String(), 10 | Number(), 11 | Boolean() 12 | ); 13 | } 14 | expect: { 15 | f( 16 | x + '', +x, !!x, 17 | '', 0, false 18 | ); 19 | } 20 | } 21 | 22 | issue_269_dangers: { 23 | options = {unsafe: true}; 24 | input: { 25 | f( 26 | String(x, x), 27 | Number(x, x), 28 | Boolean(x, x) 29 | ); 30 | } 31 | expect: { 32 | f(String(x, x), Number(x, x), Boolean(x, x)); 33 | } 34 | } 35 | 36 | issue_269_in_scope: { 37 | options = {unsafe: true}; 38 | input: { 39 | var String, Number, Boolean; 40 | f( 41 | String(x), 42 | Number(x, x), 43 | Boolean(x) 44 | ); 45 | } 46 | expect: { 47 | var String, Number, Boolean; 48 | f(String(x), Number(x, x), Boolean(x)); 49 | } 50 | } 51 | 52 | strings_concat: { 53 | options = {unsafe: true}; 54 | input: { 55 | f( 56 | String(x + 'str'), 57 | String('str' + x) 58 | ); 59 | } 60 | expect: { 61 | f( 62 | x + 'str', 63 | 'str' + x 64 | ); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/test/compress/issue-44.js: -------------------------------------------------------------------------------- 1 | issue_44_valid_ast_1: { 2 | options = { unused: true }; 3 | input: { 4 | function a(b) { 5 | for (var i = 0, e = b.qoo(); ; i++) {} 6 | } 7 | } 8 | expect: { 9 | function a(b) { 10 | var i = 0; 11 | for (b.qoo(); ; i++); 12 | } 13 | } 14 | } 15 | 16 | issue_44_valid_ast_2: { 17 | options = { unused: true }; 18 | input: { 19 | function a(b) { 20 | if (foo) for (var i = 0, e = b.qoo(); ; i++) {} 21 | } 22 | } 23 | expect: { 24 | function a(b) { 25 | if (foo) { 26 | var i = 0; 27 | for (b.qoo(); ; i++); 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/test/compress/issue-59.js: -------------------------------------------------------------------------------- 1 | keep_continue: { 2 | options = { 3 | dead_code: true, 4 | evaluate: true 5 | }; 6 | input: { 7 | while (a) { 8 | if (b) { 9 | switch (true) { 10 | case c(): 11 | d(); 12 | } 13 | continue; 14 | } 15 | f(); 16 | } 17 | } 18 | expect: { 19 | while (a) { 20 | if (b) { 21 | switch (true) { 22 | case c(): 23 | d(); 24 | } 25 | continue; 26 | } 27 | f(); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/node_modules/jade/node_modules/with/node_modules/uglify-js/test/compress/typeof.js: -------------------------------------------------------------------------------- 1 | typeof_evaluation: { 2 | options = { 3 | evaluate: true 4 | }; 5 | input: { 6 | a = typeof 1; 7 | b = typeof 'test'; 8 | c = typeof []; 9 | d = typeof {}; 10 | e = typeof /./; 11 | f = typeof false; 12 | g = typeof function(){}; 13 | h = typeof undefined; 14 | } 15 | expect: { 16 | a='number'; 17 | b='string'; 18 | c=typeof[]; 19 | d=typeof{}; 20 | e=typeof/./; 21 | f='boolean'; 22 | g='function'; 23 | h='undefined'; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/node_modules/morgan/.npmignore: -------------------------------------------------------------------------------- 1 | test/ 2 | .travis.yml 3 | -------------------------------------------------------------------------------- /app/node_modules/morgan/History.md: -------------------------------------------------------------------------------- 1 | 1.0.1 / 2014-05-04 2 | ================== 3 | 4 | * Make buffer unique per morgan instance 5 | * deps: bytes@0.3.0 6 | * added terabyte support 7 | 8 | 1.0.0 / 2014-02-08 9 | ================== 10 | 11 | * Initial release 12 | -------------------------------------------------------------------------------- /app/node_modules/morgan/node_modules/bytes/.npmignore: -------------------------------------------------------------------------------- 1 | test 2 | -------------------------------------------------------------------------------- /app/node_modules/morgan/node_modules/bytes/History.md: -------------------------------------------------------------------------------- 1 | 2 | 0.3.0 / 2014-03-19 3 | ================== 4 | 5 | * added terabyte support 6 | 7 | 0.2.1 / 2013-04-01 8 | ================== 9 | 10 | * add .component 11 | 12 | 0.2.0 / 2012-10-28 13 | ================== 14 | 15 | * bytes(200).should.eql('200b') 16 | 17 | 0.1.0 / 2012-07-04 18 | ================== 19 | 20 | * add bytes to string conversion [yields] 21 | -------------------------------------------------------------------------------- /app/node_modules/morgan/node_modules/bytes/Makefile: -------------------------------------------------------------------------------- 1 | 2 | test: 3 | @./node_modules/.bin/mocha \ 4 | --reporter spec \ 5 | --require should 6 | 7 | .PHONY: test -------------------------------------------------------------------------------- /app/node_modules/morgan/node_modules/bytes/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bytes", 3 | "description": "byte size string parser / serializer", 4 | "keywords": ["bytes", "utility"], 5 | "version": "0.2.1", 6 | "scripts": ["index.js"] 7 | } 8 | -------------------------------------------------------------------------------- /app/node_modules/morgan/node_modules/bytes/index.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Parse byte `size` string. 4 | * 5 | * @param {String} size 6 | * @return {Number} 7 | * @api public 8 | */ 9 | 10 | module.exports = function(size) { 11 | if ('number' == typeof size) return convert(size); 12 | var parts = size.match(/^(\d+(?:\.\d+)?) *(kb|mb|gb|tb)$/) 13 | , n = parseFloat(parts[1]) 14 | , type = parts[2]; 15 | 16 | var map = { 17 | kb: 1 << 10 18 | , mb: 1 << 20 19 | , gb: 1 << 30 20 | , tb: ((1 << 30) * 1024) 21 | }; 22 | 23 | return map[type] * n; 24 | }; 25 | 26 | /** 27 | * convert bytes into string. 28 | * 29 | * @param {Number} b - bytes to convert 30 | * @return {String} 31 | * @api public 32 | */ 33 | 34 | function convert (b) { 35 | var tb = ((1 << 30) * 1024), gb = 1 << 30, mb = 1 << 20, kb = 1 << 10; 36 | if (b >= tb) return (Math.round(b / tb * 100) / 100) + 'tb'; 37 | if (b >= gb) return (Math.round(b / gb * 100) / 100) + 'gb'; 38 | if (b >= mb) return (Math.round(b / mb * 100) / 100) + 'mb'; 39 | if (b >= kb) return (Math.round(b / kb * 100) / 100) + 'kb'; 40 | return b + 'b'; 41 | } 42 | -------------------------------------------------------------------------------- /app/node_modules/static-favicon/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /app/node_modules/static-favicon/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" 4 | - "0.11" 5 | matrix: 6 | allow_failures: 7 | - node_js: "0.11" 8 | fast_finish: true 9 | -------------------------------------------------------------------------------- /app/node_modules/static-favicon/README.md: -------------------------------------------------------------------------------- 1 | # static-favicon 2 | 3 | express/connect middleware to serves a favicon. 4 | 5 | ```js 6 | app.use(favicon(__dirname + '/public/favicon.ico')); 7 | ``` 8 | 9 | Typically this middleware will come very early in your stack (maybe even first) to avoid processing any other middleware if we already know the request is for favicon.ico 10 | 11 | ## api 12 | 13 | ### favicon(path, options) 14 | 15 | Create new middleware to serve a favicon from the given `path` to a favicon file. 16 | 17 | **options** 18 | 19 | - `maxAge` cache-control max-age directive, defaulting to 1 day 20 | -------------------------------------------------------------------------------- /app/node_modules/static-favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigpandaio/ansible-workshop/e715485d88c67e694b18d99182c2db5698c9d52c/app/node_modules/static-favicon/favicon.ico -------------------------------------------------------------------------------- /app/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "app", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "start": "node ./bin/www" 7 | }, 8 | "dependencies": { 9 | "express": "~4.2.0", 10 | "static-favicon": "~1.0.0", 11 | "morgan": "~1.0.0", 12 | "cookie-parser": "~1.0.1", 13 | "body-parser": "~1.0.0", 14 | "debug": "~0.7.4", 15 | "jade": "~1.3.0" 16 | } 17 | } -------------------------------------------------------------------------------- /app/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 | } -------------------------------------------------------------------------------- /app/routes/index.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | 4 | /* GET home page. */ 5 | router.get('/', function(req, res) { 6 | res.render('index', { title: 'Express' }); 7 | }); 8 | 9 | module.exports = router; 10 | -------------------------------------------------------------------------------- /app/routes/users.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | 4 | /* GET users listing. */ 5 | router.get('/', function(req, res) { 6 | res.send('respond with a resource'); 7 | }); 8 | 9 | module.exports = router; 10 | -------------------------------------------------------------------------------- /app/views/error.jade: -------------------------------------------------------------------------------- 1 | extends layout 2 | 3 | block content 4 | h1= message 5 | h2= error.status 6 | pre #{error.stack} 7 | -------------------------------------------------------------------------------- /app/views/index.jade: -------------------------------------------------------------------------------- 1 | extends layout 2 | 3 | block content 4 | h1= title 5 | p Welcome to #{title} 6 | -------------------------------------------------------------------------------- /app/views/layout.jade: -------------------------------------------------------------------------------- 1 | doctype html 2 | html 3 | head 4 | title= title 5 | link(rel='stylesheet', href='/stylesheets/style.css') 6 | body 7 | block content -------------------------------------------------------------------------------- /vagrant/Vagrantfile: -------------------------------------------------------------------------------- 1 | # -*- mode: ruby -*- 2 | # vi: set ft=ruby : 3 | 4 | # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! 5 | VAGRANTFILE_API_VERSION = "2" 6 | 7 | Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 8 | 9 | config.vm.box = "ubuntu/trusty64" 10 | 11 | config.vm.define "static-1" do |conf| 12 | conf.vm.hostname = "static-1" 13 | conf.vm.network "forwarded_port", guest: 80, host: 8080 14 | end 15 | 16 | config.vm.define "dynamic-1" do |conf| 17 | conf.vm.hostname = "dynamic-1" 18 | conf.vm.network "forwarded_port", guest: 8081, host: 8081 19 | end 20 | 21 | end 22 | --------------------------------------------------------------------------------