updated build and dependencies
This commit is contained in:
2525
ChangeLog
2525
ChangeLog
@@ -1,2525 +0,0 @@
|
||||
2016-09-07 08:34
|
||||
|
||||
* nodejs/doc/documentation.dox: more documentation
|
||||
|
||||
2016-09-04 19:13
|
||||
|
||||
* ax_init_standard_project.m4, bootstrap.sh, doc/doxyfile.in,
|
||||
nodejs/doc/documentation.dox: fixed documentation problem:
|
||||
startuml is now part of doxygen
|
||||
|
||||
2016-09-03 17:33
|
||||
|
||||
* ax_init_standard_project.m4, bootstrap.sh, doc/doxyfile.in,
|
||||
nodejs/doc/documentation.dox: hack to fix uml image
|
||||
|
||||
2016-09-03 15:26
|
||||
|
||||
* ax_init_standard_project.m4: fix build
|
||||
|
||||
2016-09-03 10:51
|
||||
|
||||
* COPYING, INSTALL, bootstrap.sh, doc/doxyfile.in,
|
||||
nodejs/doc/documentation.dox, nodejs/public/javascripts/ext,
|
||||
nodejs/public/javascripts/ext/jquery.cssemoticons.js,
|
||||
nodejs/public/javascripts/ext/jquery.js,
|
||||
nodejs/public/javascripts/ext/openpgp.js,
|
||||
nodejs/public/javascripts/ext/openpgp.worker.js,
|
||||
nodejs/public/javascripts/jquery.cssemoticons.js,
|
||||
nodejs/public/javascripts/jquery.js,
|
||||
nodejs/public/javascripts/openpgp.js,
|
||||
nodejs/public/javascripts/openpgp.worker.js,
|
||||
nodejs/views/index.ejs: documentation updated
|
||||
|
||||
2016-09-02 14:27
|
||||
|
||||
* COPYING, INSTALL, ax_init_standard_project.m4, bootstrap.sh,
|
||||
configure.ac, doc/doxyfile.in, doc/plantuml.jar,
|
||||
nodejs/doc/documentation.dox, resolve-debbuilddeps.sh: updated
|
||||
docu
|
||||
|
||||
2016-09-02 07:33
|
||||
|
||||
* COPYING, INSTALL, nodejs/doc/documentation.dox: fixed
|
||||
documentation
|
||||
|
||||
2016-09-01 14:02
|
||||
|
||||
* COPYING, INSTALL, ax_init_standard_project.m4, bootstrap.sh,
|
||||
configure.ac, doc/doxyfile.in, nodejs/doc/documentation.dox,
|
||||
resolve-debbuilddeps.sh: added docu
|
||||
|
||||
2016-08-31 18:16
|
||||
|
||||
* debian/control.in: fixed cordova build
|
||||
|
||||
2016-08-30 20:00
|
||||
|
||||
* resolve-debbuilddeps.sh: fix build in docker
|
||||
|
||||
2016-08-30 19:02 marc
|
||||
|
||||
* COPYING, ChangeLog, INSTALL, autogen.sh,
|
||||
ax_cxx_compile_stdcxx_11.m4, ax_init_standard_project.m4,
|
||||
bootstrap.sh, build-in-docker.sh, configure.ac, doc/doxyfile.in,
|
||||
doc/footer.html.in, doc/header.html.in, doc/style.css,
|
||||
mac-create-app-bundle.sh, makefile_test.inc.am,
|
||||
resolve-rpmbuilddeps.sh, sql-to-dot.sed: documentation updated
|
||||
|
||||
2016-06-08 11:12 marc
|
||||
|
||||
* nodejs/makefile.am: cleanup makefile
|
||||
|
||||
2016-01-19 16:20 marc
|
||||
|
||||
* build-in-docker.sh: build fixed
|
||||
|
||||
2016-01-19 08:48 marc
|
||||
|
||||
* build-in-docker.sh, debian/control.in: debian build fixed
|
||||
|
||||
2016-01-18 14:03 marc
|
||||
|
||||
* build-in-docker.conf, debian/control.in: moveed dependencies from
|
||||
build-in-docker.conf to debian/control.in
|
||||
|
||||
2016-01-18 13:41 marc
|
||||
|
||||
* ChangeLog, ax_init_standard_project.m4, build-in-docker.sh,
|
||||
nodejs/database/config.json,
|
||||
nodejs/node_modules/mysql/Changes.md,
|
||||
nodejs/node_modules/mysql/lib/Connection.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/Parser.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/constants/ssl_profiles.js,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js/README.md,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js/bignumber.js,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js/bignumber.js.map,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js/bignumber.min.js,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js/bower.json,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js/package.json,
|
||||
nodejs/node_modules/mysql/package.json,
|
||||
nodejs/node_modules/socket.io/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/.zuul.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/engine.io.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/polling-jsonp.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/socket.io.js,
|
||||
nodejs/node_modules/socket.io/package.json,
|
||||
nodejs/package.json.in: don't install unnecessary packages
|
||||
|
||||
2016-01-14 09:47 marc
|
||||
|
||||
* cordova/platforms/android/AndroidManifest.xml,
|
||||
cordova/platforms/android/assets/www/cordova_plugins.js,
|
||||
cordova/platforms/android/res/xml/config.xml,
|
||||
nodejs/public/javascripts/safechat.js: try to set size
|
||||
constraints, but firefox fails; show attachment size
|
||||
|
||||
2016-01-13 15:54 marc
|
||||
|
||||
* nodejs/database/index.js,
|
||||
nodejs/public/javascripts/mediarecorder.js,
|
||||
nodejs/public/javascripts/safechat.js, nodejs/sockets/index.js:
|
||||
fix video blob
|
||||
|
||||
2016-01-13 14:41 marc
|
||||
|
||||
* nodejs/public/javascripts/mediarecorder.js,
|
||||
nodejs/public/javascripts/safechat.js,
|
||||
nodejs/public/stylesheets/safechat.css, nodejs/views/index.ejs:
|
||||
video attachments from camera
|
||||
|
||||
2016-01-12 15:50 marc
|
||||
|
||||
* build-in-docker.conf, nodejs/public/javascripts/safechat.js,
|
||||
nodejs/views/index.ejs: some trials to record video
|
||||
|
||||
2016-01-12 00:22 marc
|
||||
|
||||
* ChangeLog, build-in-docker.conf, build-in-docker.sh,
|
||||
nodejs/public/images/Document_sans_PICOL-PIctorial-COmmunication-Language.svg,
|
||||
nodejs/public/javascripts/safechat.js,
|
||||
nodejs/public/stylesheets/safechat.css, nodejs/views/index.ejs:
|
||||
allow any type of attachments; fixed cordova build in docker
|
||||
|
||||
2016-01-11 15:48 marc
|
||||
|
||||
* cordova/makefile.am: removed cordova plugin in makefile
|
||||
|
||||
2016-01-11 15:46 marc
|
||||
|
||||
* nodejs/public/javascripts/openpgp.js,
|
||||
nodejs/public/javascripts/openpgp.worker.js,
|
||||
nodejs/public/javascripts/safechat.js,
|
||||
nodejs/public/stylesheets/safechat.css, nodejs/sockets/index.js,
|
||||
nodejs/views/index.ejs: some fixes; asynchronous message
|
||||
decryption to keep browser responsive
|
||||
|
||||
2016-01-11 10:48 marc
|
||||
|
||||
* ChangeLog, nodejs/package.json.in,
|
||||
nodejs/public/javascripts/safechat.js,
|
||||
nodejs/public/stylesheets/safechat.css, nodejs/routes/index.js,
|
||||
nodejs/sockets/index.js, nodejs/views/index.ejs: some small
|
||||
fixes: grey-out send button if not ready
|
||||
|
||||
2016-01-11 09:16 marc
|
||||
|
||||
* nodejs/makefile.am: added forgotten makefile
|
||||
|
||||
2016-01-10 23:17 marc
|
||||
|
||||
* ChangeLog, build-in-docker.sh, configure.ac, cordova/makefile.am,
|
||||
doc/doxyfile.in, html, makefile.am, nodejs, nodejs/database,
|
||||
nodejs/database/config.json, nodejs/database/index.js,
|
||||
nodejs/database/schema.sql, nodejs/doc,
|
||||
nodejs/doc/documentation.dox, nodejs/node_modules,
|
||||
nodejs/node_modules/.bin, nodejs/node_modules/.bin/express,
|
||||
nodejs/node_modules/.bin/stylus, nodejs/node_modules/ejs,
|
||||
nodejs/node_modules/ejs/Jakefile,
|
||||
nodejs/node_modules/ejs/README.md,
|
||||
nodejs/node_modules/ejs/ejs.js,
|
||||
nodejs/node_modules/ejs/ejs.min.js, nodejs/node_modules/ejs/lib,
|
||||
nodejs/node_modules/ejs/lib/ejs.js,
|
||||
nodejs/node_modules/ejs/lib/utils.js,
|
||||
nodejs/node_modules/ejs/package.json,
|
||||
nodejs/node_modules/ejs/test,
|
||||
nodejs/node_modules/ejs/test/ejs.js,
|
||||
nodejs/node_modules/ejs/test/fixtures,
|
||||
nodejs/node_modules/ejs/test/fixtures/backslash.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/backslash.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/comments.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/comments.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/consecutive-tags.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/consecutive-tags.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/double-quote.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/double-quote.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/error.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/error.out,
|
||||
nodejs/node_modules/ejs/test/fixtures/fail.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/hello-world.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/include-abspath.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/include-simple.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/include-simple.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/include.css.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/include.css.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/include.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/include.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/include_cache.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/include_cache.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/include_preprocessor.css.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/include_preprocessor.css.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/include_preprocessor.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/include_preprocessor.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/include_preprocessor_cache.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/include_preprocessor_cache.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/includes,
|
||||
nodejs/node_modules/ejs/test/fixtures/includes/bom.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/includes/menu,
|
||||
nodejs/node_modules/ejs/test/fixtures/includes/menu-item.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/includes/menu/item.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/literal.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/literal.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/menu.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/menu.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/menu_preprocessor.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/menu_preprocessor.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/menu_var.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/messed.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/messed.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/newlines.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/newlines.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/newlines.mixed.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/newlines.mixed.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/no.newlines.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/no.newlines.error.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/no.newlines.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/no.semicolons.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/no.semicolons.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/para.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/pet.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/rmWhitespace.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/rmWhitespace.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/single-quote.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/single-quote.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/space-and-tab-slurp.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/space-and-tab-slurp.html,
|
||||
nodejs/node_modules/ejs/test/fixtures/style.css,
|
||||
nodejs/node_modules/ejs/test/fixtures/user-no-with.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/user.ejs,
|
||||
nodejs/node_modules/ejs/test/fixtures/with-context.ejs,
|
||||
nodejs/node_modules/ejs/test/mocha.opts,
|
||||
nodejs/node_modules/ejs/test/tmp,
|
||||
nodejs/node_modules/ejs/test/tmp/include.ejs,
|
||||
nodejs/node_modules/ejs/test/tmp/include_preprocessor.ejs,
|
||||
nodejs/node_modules/ejs/test/tmp/renderFile.ejs,
|
||||
nodejs/node_modules/express,
|
||||
nodejs/node_modules/express/.npmignore,
|
||||
nodejs/node_modules/express/History.md,
|
||||
nodejs/node_modules/express/LICENSE,
|
||||
nodejs/node_modules/express/Makefile,
|
||||
nodejs/node_modules/express/Readme.md,
|
||||
nodejs/node_modules/express/bin,
|
||||
nodejs/node_modules/express/bin/express,
|
||||
nodejs/node_modules/express/index.js,
|
||||
nodejs/node_modules/express/lib,
|
||||
nodejs/node_modules/express/lib/express.js,
|
||||
nodejs/node_modules/express/lib/http.js,
|
||||
nodejs/node_modules/express/lib/https.js,
|
||||
nodejs/node_modules/express/lib/request.js,
|
||||
nodejs/node_modules/express/lib/response.js,
|
||||
nodejs/node_modules/express/lib/router,
|
||||
nodejs/node_modules/express/lib/router/collection.js,
|
||||
nodejs/node_modules/express/lib/router/index.js,
|
||||
nodejs/node_modules/express/lib/router/methods.js,
|
||||
nodejs/node_modules/express/lib/router/route.js,
|
||||
nodejs/node_modules/express/lib/utils.js,
|
||||
nodejs/node_modules/express/lib/view,
|
||||
nodejs/node_modules/express/lib/view.js,
|
||||
nodejs/node_modules/express/lib/view/partial.js,
|
||||
nodejs/node_modules/express/lib/view/view.js,
|
||||
nodejs/node_modules/express/node_modules,
|
||||
nodejs/node_modules/express/node_modules/connect,
|
||||
nodejs/node_modules/express/node_modules/connect/.npmignore,
|
||||
nodejs/node_modules/express/node_modules/connect/LICENSE,
|
||||
nodejs/node_modules/express/node_modules/connect/index.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/cache.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/connect.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/http.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/https.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/index.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/basicAuth.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/compiler.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/compress.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/cookieParser.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/csrf.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/directory.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/errorHandler.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/favicon.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/limit.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/logger.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/profiler.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/query.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/responseTime.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/router.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/session,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/session.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/session/cookie.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/session/memory.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/session/session.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/session/store.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/static.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/staticCache.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/middleware/vhost.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/patch.js,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/directory.html,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/error.html,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/favicon.ico,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_add.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_attach.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_code.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_copy.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_delete.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_edit.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_error.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_excel.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_find.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_gear.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_go.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_green.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_key.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_lightning.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_link.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_paintbrush.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_paste.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_red.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_refresh.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_save.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_acrobat.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_actionscript.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_add.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_c.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_camera.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_cd.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_code.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_code_red.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_coldfusion.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_compressed.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_copy.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_cplusplus.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_csharp.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_cup.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_database.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_delete.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_dvd.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_edit.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_error.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_excel.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_find.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_flash.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_freehand.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_gear.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_get.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_go.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_h.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_horizontal.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_key.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_lightning.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_link.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_magnify.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_medal.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_office.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_paint.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_paintbrush.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_paste.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_php.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_picture.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_powerpoint.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_put.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_ruby.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_stack.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_star.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_swoosh.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_text.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_text_width.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_tux.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_vector.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_visualstudio.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_width.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_word.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_world.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_wrench.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_white_zip.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_word.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/icons/page_world.png,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/public/style.css,
|
||||
nodejs/node_modules/express/node_modules/connect/lib/utils.js,
|
||||
nodejs/node_modules/express/node_modules/connect/node_modules,
|
||||
nodejs/node_modules/express/node_modules/connect/node_modules/formidable,
|
||||
nodejs/node_modules/express/node_modules/connect/node_modules/formidable/.npmignore,
|
||||
nodejs/node_modules/express/node_modules/connect/node_modules/formidable/.travis.yml,
|
||||
nodejs/node_modules/express/node_modules/connect/node_modules/formidable/LICENSE,
|
||||
nodejs/node_modules/express/node_modules/connect/node_modules/formidable/Readme.md,
|
||||
nodejs/node_modules/express/node_modules/connect/node_modules/formidable/index.js,
|
||||
nodejs/node_modules/express/node_modules/connect/node_modules/formidable/lib,
|
||||
nodejs/node_modules/express/node_modules/connect/node_modules/formidable/lib/file.js,
|
||||
nodejs/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js,
|
||||
nodejs/node_modules/express/node_modules/connect/node_modules/formidable/lib/index.js,
|
||||
nodejs/node_modules/express/node_modules/connect/node_modules/formidable/lib/json_parser.js,
|
||||
nodejs/node_modules/express/node_modules/connect/node_modules/formidable/lib/multipart_parser.js,
|
||||
nodejs/node_modules/express/node_modules/connect/node_modules/formidable/lib/octet_parser.js,
|
||||
nodejs/node_modules/express/node_modules/connect/node_modules/formidable/lib/querystring_parser.js,
|
||||
nodejs/node_modules/express/node_modules/connect/node_modules/formidable/package.json,
|
||||
nodejs/node_modules/express/node_modules/connect/package.json,
|
||||
nodejs/node_modules/express/node_modules/connect/test.js,
|
||||
nodejs/node_modules/express/node_modules/mime,
|
||||
nodejs/node_modules/express/node_modules/mime/LICENSE,
|
||||
nodejs/node_modules/express/node_modules/mime/README.md,
|
||||
nodejs/node_modules/express/node_modules/mime/mime.js,
|
||||
nodejs/node_modules/express/node_modules/mime/package.json,
|
||||
nodejs/node_modules/express/node_modules/mime/test.js,
|
||||
nodejs/node_modules/express/node_modules/mime/types,
|
||||
nodejs/node_modules/express/node_modules/mime/types/mime.types,
|
||||
nodejs/node_modules/express/node_modules/mime/types/node.types,
|
||||
nodejs/node_modules/express/node_modules/mkdirp,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/.gitignore.orig,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/.npmignore,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/LICENSE,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/README.markdown,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/examples,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/examples/pow.js,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/examples/pow.js.orig,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/index.js,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/package.json,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/test,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/test/chmod.js,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/test/clobber.js,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/test/mkdirp.js,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/test/perm.js,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/test/perm_sync.js,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/test/race.js,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/test/rel.js,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/test/sync.js,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/test/umask.js,
|
||||
nodejs/node_modules/express/node_modules/mkdirp/test/umask_sync.js,
|
||||
nodejs/node_modules/express/node_modules/qs,
|
||||
nodejs/node_modules/express/node_modules/qs/.gitmodules,
|
||||
nodejs/node_modules/express/node_modules/qs/.npmignore,
|
||||
nodejs/node_modules/express/node_modules/qs/.travis.yml,
|
||||
nodejs/node_modules/express/node_modules/qs/History.md,
|
||||
nodejs/node_modules/express/node_modules/qs/Makefile,
|
||||
nodejs/node_modules/express/node_modules/qs/Readme.md,
|
||||
nodejs/node_modules/express/node_modules/qs/benchmark.js,
|
||||
nodejs/node_modules/express/node_modules/qs/examples.js,
|
||||
nodejs/node_modules/express/node_modules/qs/index.js,
|
||||
nodejs/node_modules/express/node_modules/qs/lib,
|
||||
nodejs/node_modules/express/node_modules/qs/lib/querystring.js,
|
||||
nodejs/node_modules/express/node_modules/qs/package.json,
|
||||
nodejs/node_modules/express/node_modules/qs/test,
|
||||
nodejs/node_modules/express/node_modules/qs/test/mocha.opts,
|
||||
nodejs/node_modules/express/node_modules/qs/test/parse.js,
|
||||
nodejs/node_modules/express/node_modules/qs/test/stringify.js,
|
||||
nodejs/node_modules/express/package.json,
|
||||
nodejs/node_modules/express/testing,
|
||||
nodejs/node_modules/express/testing/foo,
|
||||
nodejs/node_modules/express/testing/foo/app.js,
|
||||
nodejs/node_modules/express/testing/foo/package.json,
|
||||
nodejs/node_modules/express/testing/foo/public,
|
||||
nodejs/node_modules/express/testing/foo/public/stylesheets,
|
||||
nodejs/node_modules/express/testing/foo/public/stylesheets/style.css,
|
||||
nodejs/node_modules/express/testing/foo/routes,
|
||||
nodejs/node_modules/express/testing/foo/routes/index.js,
|
||||
nodejs/node_modules/express/testing/foo/views,
|
||||
nodejs/node_modules/express/testing/foo/views/index.jade,
|
||||
nodejs/node_modules/express/testing/foo/views/layout.jade,
|
||||
nodejs/node_modules/express/testing/index.js,
|
||||
nodejs/node_modules/express/testing/public,
|
||||
nodejs/node_modules/express/testing/public/test.txt,
|
||||
nodejs/node_modules/express/testing/views,
|
||||
nodejs/node_modules/express/testing/views/page.html,
|
||||
nodejs/node_modules/express/testing/views/page.jade,
|
||||
nodejs/node_modules/express/testing/views/test.md,
|
||||
nodejs/node_modules/express/testing/views/user,
|
||||
nodejs/node_modules/express/testing/views/user/index.jade,
|
||||
nodejs/node_modules/express/testing/views/user/list.jade,
|
||||
nodejs/node_modules/mysql, nodejs/node_modules/mysql/Changes.md,
|
||||
nodejs/node_modules/mysql/License,
|
||||
nodejs/node_modules/mysql/Readme.md,
|
||||
nodejs/node_modules/mysql/index.js,
|
||||
nodejs/node_modules/mysql/lib,
|
||||
nodejs/node_modules/mysql/lib/Connection.js,
|
||||
nodejs/node_modules/mysql/lib/ConnectionConfig.js,
|
||||
nodejs/node_modules/mysql/lib/Pool.js,
|
||||
nodejs/node_modules/mysql/lib/PoolCluster.js,
|
||||
nodejs/node_modules/mysql/lib/PoolConfig.js,
|
||||
nodejs/node_modules/mysql/lib/PoolConnection.js,
|
||||
nodejs/node_modules/mysql/lib/PoolNamespace.js,
|
||||
nodejs/node_modules/mysql/lib/PoolSelector.js,
|
||||
nodejs/node_modules/mysql/lib/protocol,
|
||||
nodejs/node_modules/mysql/lib/protocol/Auth.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/PacketHeader.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/PacketWriter.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/Parser.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/Protocol.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/ResultSet.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/SqlString.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/constants,
|
||||
nodejs/node_modules/mysql/lib/protocol/constants/charsets.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/constants/client.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/constants/errors.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/constants/field_flags.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/constants/server_status.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/constants/ssl_profiles.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/constants/types.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/ClientAuthenticationPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/ComChangeUserPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/ComPingPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/ComQueryPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/ComQuitPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/ComStatisticsPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/EmptyPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/EofPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/ErrorPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/Field.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/FieldPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/HandshakeInitializationPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/LocalDataFilePacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/OkPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/OldPasswordPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/ResultSetHeaderPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/RowDataPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/SSLRequestPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/StatisticsPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/UseOldPasswordPacket.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/packets/index.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/sequences,
|
||||
nodejs/node_modules/mysql/lib/protocol/sequences/ChangeUser.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/sequences/Handshake.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/sequences/Ping.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/sequences/Query.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/sequences/Quit.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/sequences/Sequence.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/sequences/Statistics.js,
|
||||
nodejs/node_modules/mysql/lib/protocol/sequences/index.js,
|
||||
nodejs/node_modules/mysql/node_modules,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js/.npmignore,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js/.travis.yml,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js/LICENCE,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js/README.md,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js/bignumber.js,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js/bignumber.js.map,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js/bignumber.min.js,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js/bower.json,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js/doc,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js/doc/API.html,
|
||||
nodejs/node_modules/mysql/node_modules/bignumber.js/package.json,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/.npmignore,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/LICENSE,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/README.md,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/duplex.js,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/float.patch,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/lib,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/lib/_stream_duplex.js,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/lib/_stream_passthrough.js,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/lib/_stream_readable.js,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/lib/_stream_transform.js,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/lib/_stream_writable.js,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/core-util-is,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/core-util-is/LICENSE,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/core-util-is/README.md,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/core-util-is/float.patch,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/core-util-is/lib,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/core-util-is/lib/util.js,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/core-util-is/package.json,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/core-util-is/test.js,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/inherits,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/inherits/LICENSE,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/inherits/README.md,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/inherits/inherits.js,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/inherits/inherits_browser.js,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/inherits/package.json,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/inherits/test.js,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/isarray,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/isarray/README.md,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/isarray/build,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/isarray/build/build.js,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/isarray/component.json,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/isarray/index.js,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/isarray/package.json,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/string_decoder,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/string_decoder/.npmignore,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/string_decoder/LICENSE,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/string_decoder/README.md,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/string_decoder/index.js,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/node_modules/string_decoder/package.json,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/package.json,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/passthrough.js,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/readable.js,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/transform.js,
|
||||
nodejs/node_modules/mysql/node_modules/readable-stream/writable.js,
|
||||
nodejs/node_modules/mysql/package.json,
|
||||
nodejs/node_modules/socket.io,
|
||||
nodejs/node_modules/socket.io/.npmignore,
|
||||
nodejs/node_modules/socket.io/.travis.yml,
|
||||
nodejs/node_modules/socket.io/History.md,
|
||||
nodejs/node_modules/socket.io/LICENSE,
|
||||
nodejs/node_modules/socket.io/Makefile,
|
||||
nodejs/node_modules/socket.io/Readme.md,
|
||||
nodejs/node_modules/socket.io/lib,
|
||||
nodejs/node_modules/socket.io/lib/client.js,
|
||||
nodejs/node_modules/socket.io/lib/index.js,
|
||||
nodejs/node_modules/socket.io/lib/namespace.js,
|
||||
nodejs/node_modules/socket.io/lib/socket.js,
|
||||
nodejs/node_modules/socket.io/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/debug,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/.jshintrc,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/bower.json,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/browser.js,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/debug.js,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/node.js,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/node_modules/ms,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/node_modules/ms/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/node_modules/ms/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/node_modules/ms/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/node_modules/ms/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/node_modules/ms/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/debug/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/lib/engine.io.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/lib/server.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/lib/socket.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/lib/transport.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/lib/transports,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/lib/transports/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/lib/transports/polling-jsonp.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/lib/transports/polling-xhr.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/lib/transports/polling.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/lib/transports/websocket.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/HISTORY.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/mime-types,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/HISTORY.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/node_modules/mime-db,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/HISTORY.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/db.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/node_modules/mime-db/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/mime-types/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/negotiator,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/negotiator/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/negotiator/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/negotiator/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/negotiator/lib/charset.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/negotiator/lib/encoding.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/negotiator/lib/language.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/negotiator/lib/mediaType.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/negotiator/lib/negotiator.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/node_modules/negotiator/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/accepts/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/base64id,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/base64id/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/base64id/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/base64id/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/base64id/lib/base64id.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/base64id/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/.zuul.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/lib/browser.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/lib/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/lib/keys.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/LICENCE,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/test,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/test/after-test.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/test,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/test/slice-buffer.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/LICENSE-MIT,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/grunt.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/lib/base64-arraybuffer.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/test,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/test/base64-arraybuffer_test.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/.zuul.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/test,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/test/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/fixtures,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/fixtures/big.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/build,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/build/build.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/test.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/.gitattributes,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/Gruntfile.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/LICENSE-MIT.txt,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/bower.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/tests,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/tests/generate-test-data.py,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/tests/index.html,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/tests/tests.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/utf8.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/BufferPool.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/BufferUtil.fallback.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/BufferUtil.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/ErrorCodes.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Extensions.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/PerMessageDeflate.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Receiver.hixie.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Receiver.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Sender.hixie.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Sender.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Validation.fallback.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Validation.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/WebSocket.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/WebSocketServer.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/lib/options.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/test.js,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/node_modules/ws/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/engine.io/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/has-binary,
|
||||
nodejs/node_modules/socket.io/node_modules/has-binary/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/has-binary/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/has-binary/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/has-binary/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/has-binary/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/has-binary/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/has-binary/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/has-binary/node_modules/isarray,
|
||||
nodejs/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/build,
|
||||
nodejs/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/build/build.js,
|
||||
nodejs/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/has-binary/node_modules/isarray/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/has-binary/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/has-binary/test.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/.zuul.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/bench,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/bench/bench.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/bench/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/binary.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/is-buffer.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/LICENSE.txt,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/benchmark.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/doc,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/doc/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/test,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/test/run-test.sh,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/test/test.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/bower.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/debug.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/lib/debug.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/build,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/build/build.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.gitmodules,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.jamignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/coverage.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov-report,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov-report/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov-report/lib/json3.js.html,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov-report/prettify.css,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov-report/prettify.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov.info,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/lib/json3.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/lib/json3.min.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-adapter/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/lib/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/lib/manager.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/lib/on.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/lib/socket.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/lib/url.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/test,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/test/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/.zuul.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/engine.io.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/socket.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/transport.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/transports,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/polling-jsonp.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/polling-xhr.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/polling.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/websocket.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/xmlhttprequest.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/bower.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit/test,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit/test/inherit.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/.zuul.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/lib/browser.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/lib/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/lib/keys.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/LICENCE,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/test,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/test/after-test.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/test,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/test/slice-buffer.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/LICENSE-MIT,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/grunt.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/lib/base64-arraybuffer.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/test,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/test/base64-arraybuffer_test.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/.zuul.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/test,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/test/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/fixtures,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/fixtures/big.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/build,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/build/build.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/test.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/.gitattributes,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/Gruntfile.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/LICENSE-MIT.txt,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/bower.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/tests,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/tests/generate-test-data.py,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/tests/index.html,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/tests/tests.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/utf8.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/test.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/example.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules/callsite,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules/callsite/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules/callsite/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules/callsite/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules/callsite/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules/callsite/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules/callsite/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/test.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/example.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules/callsite,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules/callsite/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules/callsite/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules/callsite/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules/callsite/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules/callsite/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules/callsite/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/test.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/BufferPool.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/BufferUtil.fallback.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/BufferUtil.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/ErrorCodes.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Extensions.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/PerMessageDeflate.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.hixie.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Sender.hixie.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Sender.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Validation.fallback.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Validation.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocket.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocketServer.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/options,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/options/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/options/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/options/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/options/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/options/lib/options.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/options/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/ultron,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/ultron/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/ultron/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/ultron/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/ultron/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/ultron/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/ultron/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/ultron/test.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/autotest.watchr,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/example,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/example/demo.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/lib/XMLHttpRequest.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/tests,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/tests/test-constants.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/tests/test-events.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/tests/test-exceptions.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/tests/test-headers.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/tests/test-redirect-302.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/tests/test-redirect-303.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/tests/test-redirect-307.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/tests/test-request-methods.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/tests/test-request-protocols.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest-ssl/tests/testdata.txt,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/yeast,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/yeast/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/yeast/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/yeast/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/yeast/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/indexof,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/indexof/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/indexof/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/indexof/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/indexof/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/indexof/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/indexof/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component/test,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component/test/object.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/example.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/test.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/.zuul.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/bench,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/bench/bench.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/bench/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/binary.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/is-buffer.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/benchmark,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/benchmark/LICENSE.txt,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/benchmark/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/benchmark/benchmark.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/benchmark/doc,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/benchmark/doc/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/benchmark/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/benchmark/test,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/benchmark/test/run-test.sh,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/benchmark/test/test.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/bower.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/isarray,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/isarray/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/isarray/build,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/isarray/build/build.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/isarray/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/isarray/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/isarray/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/json3,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/json3/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/json3/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/json3/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/json3/lib/json3.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/json3/lib/json3.min.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/json3/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/to-array,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/to-array/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/to-array/LICENCE,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/to-array/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/to-array/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/node_modules/to-array/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/socket.io.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-client/webpack.config.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/.zuul.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/bench,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/bench/bench.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/bench/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/binary.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/is-buffer.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/benchmark,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/benchmark/LICENSE.txt,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/benchmark/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/benchmark/benchmark.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/benchmark/doc,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/benchmark/doc/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/benchmark/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/benchmark/test,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/benchmark/test/run-test.sh,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/benchmark/test/test.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/.npmignore,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/.travis.yml,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/History.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/Makefile,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/Readme.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/bower.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/isarray,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/isarray/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/isarray/build,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/isarray/build/build.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/isarray/component.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/isarray/index.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/isarray/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/json3,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/json3/LICENSE,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/json3/README.md,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/json3/lib,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/json3/lib/json3.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/json3/lib/json3.min.js,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/node_modules/json3/package.json,
|
||||
nodejs/node_modules/socket.io/node_modules/socket.io-parser/package.json,
|
||||
nodejs/node_modules/socket.io/package.json,
|
||||
nodejs/node_modules/stylus,
|
||||
nodejs/node_modules/stylus/Code_of_Conduct.md,
|
||||
nodejs/node_modules/stylus/Contributing.md,
|
||||
nodejs/node_modules/stylus/History.md,
|
||||
nodejs/node_modules/stylus/LICENSE,
|
||||
nodejs/node_modules/stylus/Readme.md,
|
||||
nodejs/node_modules/stylus/bin,
|
||||
nodejs/node_modules/stylus/bin/stylus,
|
||||
nodejs/node_modules/stylus/index.js,
|
||||
nodejs/node_modules/stylus/lib,
|
||||
nodejs/node_modules/stylus/lib/browserify.js,
|
||||
nodejs/node_modules/stylus/lib/cache,
|
||||
nodejs/node_modules/stylus/lib/cache/fs.js,
|
||||
nodejs/node_modules/stylus/lib/cache/index.js,
|
||||
nodejs/node_modules/stylus/lib/cache/memory.js,
|
||||
nodejs/node_modules/stylus/lib/cache/null.js,
|
||||
nodejs/node_modules/stylus/lib/colors.js,
|
||||
nodejs/node_modules/stylus/lib/convert,
|
||||
nodejs/node_modules/stylus/lib/convert/css.js,
|
||||
nodejs/node_modules/stylus/lib/errors.js,
|
||||
nodejs/node_modules/stylus/lib/functions,
|
||||
nodejs/node_modules/stylus/lib/functions/add-property.js,
|
||||
nodejs/node_modules/stylus/lib/functions/adjust.js,
|
||||
nodejs/node_modules/stylus/lib/functions/alpha.js,
|
||||
nodejs/node_modules/stylus/lib/functions/base-convert.js,
|
||||
nodejs/node_modules/stylus/lib/functions/basename.js,
|
||||
nodejs/node_modules/stylus/lib/functions/blend.js,
|
||||
nodejs/node_modules/stylus/lib/functions/blue.js,
|
||||
nodejs/node_modules/stylus/lib/functions/clone.js,
|
||||
nodejs/node_modules/stylus/lib/functions/component.js,
|
||||
nodejs/node_modules/stylus/lib/functions/contrast.js,
|
||||
nodejs/node_modules/stylus/lib/functions/convert.js,
|
||||
nodejs/node_modules/stylus/lib/functions/current-media.js,
|
||||
nodejs/node_modules/stylus/lib/functions/define.js,
|
||||
nodejs/node_modules/stylus/lib/functions/dirname.js,
|
||||
nodejs/node_modules/stylus/lib/functions/error.js,
|
||||
nodejs/node_modules/stylus/lib/functions/extname.js,
|
||||
nodejs/node_modules/stylus/lib/functions/green.js,
|
||||
nodejs/node_modules/stylus/lib/functions/hsl.js,
|
||||
nodejs/node_modules/stylus/lib/functions/hsla.js,
|
||||
nodejs/node_modules/stylus/lib/functions/hue.js,
|
||||
nodejs/node_modules/stylus/lib/functions/image-size.js,
|
||||
nodejs/node_modules/stylus/lib/functions/image.js,
|
||||
nodejs/node_modules/stylus/lib/functions/index.js,
|
||||
nodejs/node_modules/stylus/lib/functions/index.styl,
|
||||
nodejs/node_modules/stylus/lib/functions/json.js,
|
||||
nodejs/node_modules/stylus/lib/functions/length.js,
|
||||
nodejs/node_modules/stylus/lib/functions/lightness.js,
|
||||
nodejs/node_modules/stylus/lib/functions/list-separator.js,
|
||||
nodejs/node_modules/stylus/lib/functions/lookup.js,
|
||||
nodejs/node_modules/stylus/lib/functions/luminosity.js,
|
||||
nodejs/node_modules/stylus/lib/functions/match.js,
|
||||
nodejs/node_modules/stylus/lib/functions/math-prop.js,
|
||||
nodejs/node_modules/stylus/lib/functions/math.js,
|
||||
nodejs/node_modules/stylus/lib/functions/merge.js,
|
||||
nodejs/node_modules/stylus/lib/functions/operate.js,
|
||||
nodejs/node_modules/stylus/lib/functions/opposite-position.js,
|
||||
nodejs/node_modules/stylus/lib/functions/p.js,
|
||||
nodejs/node_modules/stylus/lib/functions/pathjoin.js,
|
||||
nodejs/node_modules/stylus/lib/functions/pop.js,
|
||||
nodejs/node_modules/stylus/lib/functions/prefix-classes.js,
|
||||
nodejs/node_modules/stylus/lib/functions/push.js,
|
||||
nodejs/node_modules/stylus/lib/functions/range.js,
|
||||
nodejs/node_modules/stylus/lib/functions/red.js,
|
||||
nodejs/node_modules/stylus/lib/functions/remove.js,
|
||||
nodejs/node_modules/stylus/lib/functions/replace.js,
|
||||
nodejs/node_modules/stylus/lib/functions/resolver.js,
|
||||
nodejs/node_modules/stylus/lib/functions/rgb.js,
|
||||
nodejs/node_modules/stylus/lib/functions/rgba.js,
|
||||
nodejs/node_modules/stylus/lib/functions/s.js,
|
||||
nodejs/node_modules/stylus/lib/functions/saturation.js,
|
||||
nodejs/node_modules/stylus/lib/functions/selector-exists.js,
|
||||
nodejs/node_modules/stylus/lib/functions/selector.js,
|
||||
nodejs/node_modules/stylus/lib/functions/selectors.js,
|
||||
nodejs/node_modules/stylus/lib/functions/shift.js,
|
||||
nodejs/node_modules/stylus/lib/functions/split.js,
|
||||
nodejs/node_modules/stylus/lib/functions/substr.js,
|
||||
nodejs/node_modules/stylus/lib/functions/tan.js,
|
||||
nodejs/node_modules/stylus/lib/functions/trace.js,
|
||||
nodejs/node_modules/stylus/lib/functions/transparentify.js,
|
||||
nodejs/node_modules/stylus/lib/functions/type.js,
|
||||
nodejs/node_modules/stylus/lib/functions/unit.js,
|
||||
nodejs/node_modules/stylus/lib/functions/unquote.js,
|
||||
nodejs/node_modules/stylus/lib/functions/unshift.js,
|
||||
nodejs/node_modules/stylus/lib/functions/url.js,
|
||||
nodejs/node_modules/stylus/lib/functions/use.js,
|
||||
nodejs/node_modules/stylus/lib/functions/warn.js,
|
||||
nodejs/node_modules/stylus/lib/lexer.js,
|
||||
nodejs/node_modules/stylus/lib/middleware.js,
|
||||
nodejs/node_modules/stylus/lib/nodes,
|
||||
nodejs/node_modules/stylus/lib/nodes/arguments.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/atblock.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/atrule.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/binop.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/block.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/boolean.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/call.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/charset.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/comment.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/each.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/expression.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/extend.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/feature.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/function.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/group.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/hsla.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/ident.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/if.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/import.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/index.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/keyframes.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/literal.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/media.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/member.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/namespace.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/node.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/null.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/object.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/params.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/property.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/query-list.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/query.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/return.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/rgba.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/root.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/selector.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/string.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/supports.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/ternary.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/unaryop.js,
|
||||
nodejs/node_modules/stylus/lib/nodes/unit.js,
|
||||
nodejs/node_modules/stylus/lib/parser.js,
|
||||
nodejs/node_modules/stylus/lib/renderer.js,
|
||||
nodejs/node_modules/stylus/lib/selector-parser.js,
|
||||
nodejs/node_modules/stylus/lib/stack,
|
||||
nodejs/node_modules/stylus/lib/stack/frame.js,
|
||||
nodejs/node_modules/stylus/lib/stack/index.js,
|
||||
nodejs/node_modules/stylus/lib/stack/scope.js,
|
||||
nodejs/node_modules/stylus/lib/stylus.js,
|
||||
nodejs/node_modules/stylus/lib/token.js,
|
||||
nodejs/node_modules/stylus/lib/units.js,
|
||||
nodejs/node_modules/stylus/lib/utils.js,
|
||||
nodejs/node_modules/stylus/lib/visitor,
|
||||
nodejs/node_modules/stylus/lib/visitor/compiler.js,
|
||||
nodejs/node_modules/stylus/lib/visitor/deps-resolver.js,
|
||||
nodejs/node_modules/stylus/lib/visitor/evaluator.js,
|
||||
nodejs/node_modules/stylus/lib/visitor/index.js,
|
||||
nodejs/node_modules/stylus/lib/visitor/normalizer.js,
|
||||
nodejs/node_modules/stylus/lib/visitor/sourcemapper.js,
|
||||
nodejs/node_modules/stylus/node_modules,
|
||||
nodejs/node_modules/stylus/node_modules/.bin,
|
||||
nodejs/node_modules/stylus/node_modules/.bin/mkdirp,
|
||||
nodejs/node_modules/stylus/node_modules/css-parse,
|
||||
nodejs/node_modules/stylus/node_modules/css-parse/Readme.md,
|
||||
nodejs/node_modules/stylus/node_modules/css-parse/index.js,
|
||||
nodejs/node_modules/stylus/node_modules/css-parse/package.json,
|
||||
nodejs/node_modules/stylus/node_modules/debug,
|
||||
nodejs/node_modules/stylus/node_modules/debug/.jshintrc,
|
||||
nodejs/node_modules/stylus/node_modules/debug/.npmignore,
|
||||
nodejs/node_modules/stylus/node_modules/debug/History.md,
|
||||
nodejs/node_modules/stylus/node_modules/debug/Makefile,
|
||||
nodejs/node_modules/stylus/node_modules/debug/Readme.md,
|
||||
nodejs/node_modules/stylus/node_modules/debug/bower.json,
|
||||
nodejs/node_modules/stylus/node_modules/debug/browser.js,
|
||||
nodejs/node_modules/stylus/node_modules/debug/component.json,
|
||||
nodejs/node_modules/stylus/node_modules/debug/debug.js,
|
||||
nodejs/node_modules/stylus/node_modules/debug/node.js,
|
||||
nodejs/node_modules/stylus/node_modules/debug/node_modules,
|
||||
nodejs/node_modules/stylus/node_modules/debug/node_modules/ms,
|
||||
nodejs/node_modules/stylus/node_modules/debug/node_modules/ms/.npmignore,
|
||||
nodejs/node_modules/stylus/node_modules/debug/node_modules/ms/LICENSE,
|
||||
nodejs/node_modules/stylus/node_modules/debug/node_modules/ms/README.md,
|
||||
nodejs/node_modules/stylus/node_modules/debug/node_modules/ms/index.js,
|
||||
nodejs/node_modules/stylus/node_modules/debug/node_modules/ms/package.json,
|
||||
nodejs/node_modules/stylus/node_modules/debug/package.json,
|
||||
nodejs/node_modules/stylus/node_modules/glob,
|
||||
nodejs/node_modules/stylus/node_modules/glob/.npmignore,
|
||||
nodejs/node_modules/stylus/node_modules/glob/.travis.yml,
|
||||
nodejs/node_modules/stylus/node_modules/glob/LICENSE,
|
||||
nodejs/node_modules/stylus/node_modules/glob/README.md,
|
||||
nodejs/node_modules/stylus/node_modules/glob/examples,
|
||||
nodejs/node_modules/stylus/node_modules/glob/examples/g.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/examples/usr-local.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/glob.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/inherits,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/inherits/LICENSE,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/inherits/README.md,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/inherits/inherits.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/inherits/inherits_browser.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/inherits/package.json,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/inherits/test.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/.npmignore,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/LICENSE,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/README.md,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/minimatch.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/lru-cache,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/.npmignore,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/.travis.yml,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/LICENSE,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/README.md,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/lib,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/package.json,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/basic.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/foreach.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/serialize.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/sigmund,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/sigmund/LICENSE,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/sigmund/README.md,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/sigmund/bench.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/sigmund/package.json,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/sigmund/sigmund.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/sigmund/test,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/node_modules/sigmund/test/basic.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/package.json,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/test,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/test/basic.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/test/brace-expand.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/test/caching.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/test/defaults.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/package.json,
|
||||
nodejs/node_modules/stylus/node_modules/glob/test,
|
||||
nodejs/node_modules/stylus/node_modules/glob/test/00-setup.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/test/bash-comparison.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/test/bash-results.json,
|
||||
nodejs/node_modules/stylus/node_modules/glob/test/cwd-test.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/test/globstar-match.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/test/mark.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/test/new-glob-optional-options.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/test/nocase-nomagic.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/test/pause-resume.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/test/readme-issue.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/test/root-nomount.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/test/root.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/test/stat.js,
|
||||
nodejs/node_modules/stylus/node_modules/glob/test/zz-cleanup.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/.travis.yml,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/LICENSE,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/bin,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/bin/cmd.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/bin/usage.txt,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/examples,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/examples/pow.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/index.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules/minimist,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules/minimist/.travis.yml,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules/minimist/LICENSE,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules/minimist/example,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules/minimist/example/parse.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules/minimist/index.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules/minimist/package.json,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules/minimist/readme.markdown,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules/minimist/test,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules/minimist/test/dash.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules/minimist/test/default_bool.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules/minimist/test/dotted.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules/minimist/test/long.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules/minimist/test/parse.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules/minimist/test/short.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/node_modules/minimist/test/whitespace.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/package.json,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/readme.markdown,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/test,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/test/chmod.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/test/clobber.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/test/mkdirp.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/test/opts_fs.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/test/opts_fs_sync.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/test/perm.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/test/perm_sync.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/test/race.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/test/rel.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/test/return.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/test/return_sync.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/test/root.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/test/sync.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/test/umask.js,
|
||||
nodejs/node_modules/stylus/node_modules/mkdirp/test/umask_sync.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax,
|
||||
nodejs/node_modules/stylus/node_modules/sax/AUTHORS,
|
||||
nodejs/node_modules/stylus/node_modules/sax/LICENSE,
|
||||
nodejs/node_modules/stylus/node_modules/sax/LICENSE-W3C.html,
|
||||
nodejs/node_modules/stylus/node_modules/sax/README.md,
|
||||
nodejs/node_modules/stylus/node_modules/sax/component.json,
|
||||
nodejs/node_modules/stylus/node_modules/sax/examples,
|
||||
nodejs/node_modules/stylus/node_modules/sax/examples/big-not-pretty.xml,
|
||||
nodejs/node_modules/stylus/node_modules/sax/examples/example.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/examples/get-products.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/examples/hello-world.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/examples/not-pretty.xml,
|
||||
nodejs/node_modules/stylus/node_modules/sax/examples/pretty-print.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/examples/shopping.xml,
|
||||
nodejs/node_modules/stylus/node_modules/sax/examples/strict.dtd,
|
||||
nodejs/node_modules/stylus/node_modules/sax/examples/test.html,
|
||||
nodejs/node_modules/stylus/node_modules/sax/examples/test.xml,
|
||||
nodejs/node_modules/stylus/node_modules/sax/lib,
|
||||
nodejs/node_modules/stylus/node_modules/sax/lib/sax.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/package.json,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/attribute-name.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/attribute-no-space.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/buffer-overrun.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/case.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/cdata-chunked.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/cdata-end-split.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/cdata-fake-end.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/cdata-multiple.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/cdata.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/cyrillic.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/duplicate-attribute.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/end_empty_stream.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/entities.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/entity-mega.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/flush.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/index.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/issue-23.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/issue-30.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/issue-35.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/issue-47.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/issue-49.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/issue-84.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/parser-position.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/script-close-better.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/script.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/self-closing-child-strict.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/self-closing-child.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/self-closing-tag.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/stray-ending.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/trailing-attribute-no-value.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/trailing-non-whitespace.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/unclosed-root.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/unquoted.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/utf8-split.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/xmlns-as-tag-name.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/xmlns-issue-41.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/xmlns-rebinding.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/xmlns-strict.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/xmlns-unbound-element.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/xmlns-unbound.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/xmlns-xml-default-ns.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/xmlns-xml-default-prefix.js,
|
||||
nodejs/node_modules/stylus/node_modules/sax/test/xmlns-xml-default-redefine.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/.npmignore,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/.travis.yml,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/CHANGELOG.md,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/LICENSE,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/Makefile.dryice.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/README.md,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/build,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/build/assert-shim.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/build/mini-require.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/build/prefix-source-map.jsm,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/build/prefix-utils.jsm,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/build/suffix-browser.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/build/suffix-source-map.jsm,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/build/suffix-utils.jsm,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/build/test-prefix.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/build/test-suffix.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/lib,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/lib/source-map,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/lib/source-map.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/lib/source-map/array-set.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/lib/source-map/base64-vlq.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/lib/source-map/base64.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/lib/source-map/binary-search.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/lib/source-map/mapping-list.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/lib/source-map/source-map-consumer.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/lib/source-map/source-map-generator.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/lib/source-map/source-node.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/lib/source-map/util.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/node_modules,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/node_modules/amdefine,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/node_modules/amdefine/LICENSE,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/node_modules/amdefine/README.md,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/node_modules/amdefine/amdefine.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/node_modules/amdefine/intercept.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/node_modules/amdefine/package.json,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/package.json,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/test,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/test/run-tests.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/test/source-map,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/test/source-map/test-api.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/test/source-map/test-array-set.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/test/source-map/test-base64-vlq.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/test/source-map/test-base64.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/test/source-map/test-binary-search.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/test/source-map/test-dog-fooding.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/test/source-map/test-source-map-consumer.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/test/source-map/test-source-map-generator.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/test/source-map/test-source-node.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/test/source-map/test-util.js,
|
||||
nodejs/node_modules/stylus/node_modules/source-map/test/source-map/util.js,
|
||||
nodejs/node_modules/stylus/package.json, nodejs/package.json.in,
|
||||
nodejs/public, nodejs/public/images,
|
||||
nodejs/public/images/abort.svg,
|
||||
nodejs/public/images/attachment.svg,
|
||||
nodejs/public/images/audio.svg,
|
||||
nodejs/public/images/chat-rodrigo-angleton.svg,
|
||||
nodejs/public/images/envelope.svg, nodejs/public/images/menu.svg,
|
||||
nodejs/public/images/pfeil.svg, nodejs/public/images/photo.svg,
|
||||
nodejs/public/images/safe-mimooh.svg,
|
||||
nodejs/public/images/safechat-rodrigo-angleton.svg,
|
||||
nodejs/public/images/send.svg, nodejs/public/images/video.svg,
|
||||
nodejs/public/javascripts,
|
||||
nodejs/public/javascripts/jquery.cssemoticons.js,
|
||||
nodejs/public/javascripts/jquery.js,
|
||||
nodejs/public/javascripts/openpgp.js,
|
||||
nodejs/public/javascripts/safechat.js, nodejs/public/sounds,
|
||||
nodejs/public/sounds/A-Tone-His_Self-1266414414.mp3,
|
||||
nodejs/public/sounds/Checkout-Scanner-Beep-SoundBible.com-593325210-by-Mike-Koenig.mp3,
|
||||
nodejs/public/stylesheets,
|
||||
nodejs/public/stylesheets/jquery.cssemoticons.css,
|
||||
nodejs/public/stylesheets/safechat.css, nodejs/routes,
|
||||
nodejs/routes/index.js, nodejs/safechat.js, nodejs/sockets,
|
||||
nodejs/sockets/index.js, nodejs/views, nodejs/views/index.ejs,
|
||||
nodejs/views/layout.ejs, resolve-debbuilddeps.sh,
|
||||
test/makefile.am: complete redesign: use nodejs on server instead
|
||||
of php - documentation to be updated
|
||||
|
||||
2016-01-10 22:23 marc
|
||||
|
||||
* cordova/platforms/android/android.json,
|
||||
cordova/platforms/android/assets/www/plugins/cordova-plugin-device,
|
||||
cordova/platforms/android/assets/www/plugins/cordova-plugin-device/www,
|
||||
cordova/platforms/android/assets/www/plugins/cordova-plugin-device/www/device.js,
|
||||
cordova/platforms/android/assets/www/plugins/de.appplant.cordova.plugin.background-mode,
|
||||
cordova/platforms/android/assets/www/plugins/de.appplant.cordova.plugin.background-mode/www,
|
||||
cordova/platforms/android/assets/www/plugins/de.appplant.cordova.plugin.background-mode/www/background-mode.js,
|
||||
cordova/platforms/android/platform_www/cordova_plugins.js,
|
||||
cordova/platforms/android/platform_www/plugins,
|
||||
cordova/platforms/android/platform_www/plugins/cordova-plugin-device,
|
||||
cordova/platforms/android/platform_www/plugins/cordova-plugin-device/www,
|
||||
cordova/platforms/android/platform_www/plugins/cordova-plugin-device/www/device.js,
|
||||
cordova/platforms/android/platform_www/plugins/cordova-plugin-whitelist,
|
||||
cordova/platforms/android/platform_www/plugins/cordova-plugin-whitelist/whitelist.js,
|
||||
cordova/platforms/android/platform_www/plugins/de.appplant.cordova.plugin.background-mode,
|
||||
cordova/platforms/android/platform_www/plugins/de.appplant.cordova.plugin.background-mode/www,
|
||||
cordova/platforms/android/platform_www/plugins/de.appplant.cordova.plugin.background-mode/www/background-mode.js,
|
||||
cordova/platforms/android/src/de,
|
||||
cordova/platforms/android/src/de/appplant,
|
||||
cordova/platforms/android/src/de/appplant/cordova,
|
||||
cordova/platforms/android/src/de/appplant/cordova/plugin,
|
||||
cordova/platforms/android/src/de/appplant/cordova/plugin/background,
|
||||
cordova/platforms/android/src/de/appplant/cordova/plugin/background/BackgroundMode.java,
|
||||
cordova/platforms/android/src/de/appplant/cordova/plugin/background/ForegroundService.java,
|
||||
cordova/platforms/android/src/org/apache/cordova/device,
|
||||
cordova/platforms/android/src/org/apache/cordova/device/Device.java,
|
||||
cordova/plugins/cordova-plugin-device,
|
||||
cordova/plugins/cordova-plugin-device/CONTRIBUTING.md,
|
||||
cordova/plugins/cordova-plugin-device/LICENSE,
|
||||
cordova/plugins/cordova-plugin-device/NOTICE,
|
||||
cordova/plugins/cordova-plugin-device/README.md,
|
||||
cordova/plugins/cordova-plugin-device/RELEASENOTES.md,
|
||||
cordova/plugins/cordova-plugin-device/doc,
|
||||
cordova/plugins/cordova-plugin-device/doc/de,
|
||||
cordova/plugins/cordova-plugin-device/doc/de/README.md,
|
||||
cordova/plugins/cordova-plugin-device/doc/de/index.md,
|
||||
cordova/plugins/cordova-plugin-device/doc/es,
|
||||
cordova/plugins/cordova-plugin-device/doc/es/README.md,
|
||||
cordova/plugins/cordova-plugin-device/doc/es/index.md,
|
||||
cordova/plugins/cordova-plugin-device/doc/fr,
|
||||
cordova/plugins/cordova-plugin-device/doc/fr/README.md,
|
||||
cordova/plugins/cordova-plugin-device/doc/fr/index.md,
|
||||
cordova/plugins/cordova-plugin-device/doc/it,
|
||||
cordova/plugins/cordova-plugin-device/doc/it/README.md,
|
||||
cordova/plugins/cordova-plugin-device/doc/it/index.md,
|
||||
cordova/plugins/cordova-plugin-device/doc/ja,
|
||||
cordova/plugins/cordova-plugin-device/doc/ja/README.md,
|
||||
cordova/plugins/cordova-plugin-device/doc/ja/index.md,
|
||||
cordova/plugins/cordova-plugin-device/doc/ko,
|
||||
cordova/plugins/cordova-plugin-device/doc/ko/README.md,
|
||||
cordova/plugins/cordova-plugin-device/doc/ko/index.md,
|
||||
cordova/plugins/cordova-plugin-device/doc/pl,
|
||||
cordova/plugins/cordova-plugin-device/doc/pl/README.md,
|
||||
cordova/plugins/cordova-plugin-device/doc/pl/index.md,
|
||||
cordova/plugins/cordova-plugin-device/doc/ru,
|
||||
cordova/plugins/cordova-plugin-device/doc/ru/index.md,
|
||||
cordova/plugins/cordova-plugin-device/doc/zh,
|
||||
cordova/plugins/cordova-plugin-device/doc/zh/README.md,
|
||||
cordova/plugins/cordova-plugin-device/doc/zh/index.md,
|
||||
cordova/plugins/cordova-plugin-device/package.json,
|
||||
cordova/plugins/cordova-plugin-device/plugin.xml,
|
||||
cordova/plugins/cordova-plugin-device/src,
|
||||
cordova/plugins/cordova-plugin-device/src/android,
|
||||
cordova/plugins/cordova-plugin-device/src/android/Device.java,
|
||||
cordova/plugins/cordova-plugin-device/src/blackberry10,
|
||||
cordova/plugins/cordova-plugin-device/src/blackberry10/index.js,
|
||||
cordova/plugins/cordova-plugin-device/src/browser,
|
||||
cordova/plugins/cordova-plugin-device/src/browser/DeviceProxy.js,
|
||||
cordova/plugins/cordova-plugin-device/src/firefoxos,
|
||||
cordova/plugins/cordova-plugin-device/src/firefoxos/DeviceProxy.js,
|
||||
cordova/plugins/cordova-plugin-device/src/ios,
|
||||
cordova/plugins/cordova-plugin-device/src/ios/CDVDevice.h,
|
||||
cordova/plugins/cordova-plugin-device/src/ios/CDVDevice.m,
|
||||
cordova/plugins/cordova-plugin-device/src/tizen,
|
||||
cordova/plugins/cordova-plugin-device/src/tizen/DeviceProxy.js,
|
||||
cordova/plugins/cordova-plugin-device/src/ubuntu,
|
||||
cordova/plugins/cordova-plugin-device/src/ubuntu/device.cpp,
|
||||
cordova/plugins/cordova-plugin-device/src/ubuntu/device.h,
|
||||
cordova/plugins/cordova-plugin-device/src/ubuntu/device.js,
|
||||
cordova/plugins/cordova-plugin-device/src/windows,
|
||||
cordova/plugins/cordova-plugin-device/src/windows/DeviceProxy.js,
|
||||
cordova/plugins/cordova-plugin-device/src/wp,
|
||||
cordova/plugins/cordova-plugin-device/src/wp/Device.cs,
|
||||
cordova/plugins/cordova-plugin-device/tests,
|
||||
cordova/plugins/cordova-plugin-device/tests/plugin.xml,
|
||||
cordova/plugins/cordova-plugin-device/tests/tests.js,
|
||||
cordova/plugins/cordova-plugin-device/www,
|
||||
cordova/plugins/cordova-plugin-device/www/device.js,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode/CHANGELOG.md,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode/LICENSE,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode/README.md,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode/appbeep.wav,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode/package.json,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode/plugin.xml,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode/src,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode/src/android,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode/src/android/BackgroundMode.java,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode/src/android/ForegroundService.java,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode/src/ios,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode/src/ios/APPBackgroundMode.h,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode/src/ios/APPBackgroundMode.m,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode/src/wp8,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode/src/wp8/BackgroundMode.cs,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode/www,
|
||||
cordova/plugins/de.appplant.cordova.plugin.background-mode/www/background-mode.js:
|
||||
new cordova plugins
|
||||
|
||||
2016-01-08 11:40 marc
|
||||
|
||||
* ChangeLog, cordova/platforms/android/AndroidManifest.xml,
|
||||
cordova/platforms/android/assets/www/cordova_plugins.js,
|
||||
cordova/platforms/android/res/xml/config.xml, html/login.php,
|
||||
html/opendb.php, html/safechat.js, html/send.php,
|
||||
test/makefile.am, test/runtests.sh, test/settings.wt: non working
|
||||
experimental status
|
||||
|
||||
2015-12-18 16:07 marc
|
||||
|
||||
* build-in-docker.conf, html/schema.sql: fix build in docker
|
||||
|
||||
2015-12-04 08:36 marc
|
||||
|
||||
* COPYING, ChangeLog, INSTALL, build-in-docker.conf,
|
||||
build-in-docker.sh: distinguish by hw arch
|
||||
|
||||
2015-12-04 07:05 marc
|
||||
|
||||
* COPYING, ChangeLog, INSTALL, build-in-docker.conf,
|
||||
build-in-docker.sh, cordova/makefile.am,
|
||||
cordova/platforms/android/AndroidManifest.xml,
|
||||
cordova/platforms/android/assets/www/cordova_plugins.js,
|
||||
cordova/platforms/android/res/xml/config.xml,
|
||||
cordova/plugins/android.json, cordova/plugins/fetch.json,
|
||||
html/index.html.in: build all in docker
|
||||
|
||||
2015-12-02 15:58 marc
|
||||
|
||||
* build-in-docker.conf, build-in-docker.sh,
|
||||
resolve-debbuilddeps.sh: enhanced build in docker
|
||||
|
||||
2015-12-02 07:17 marc
|
||||
|
||||
* build-in-docker.conf: build requires universe for npm
|
||||
|
||||
2015-12-01 14:50 marc
|
||||
|
||||
* build-in-docker.conf, build-in-docker.sh, debian/control.in:
|
||||
improved dependencies for more ubuntu support
|
||||
|
||||
2015-12-01 13:10 marc
|
||||
|
||||
* build-in-docker.conf: build everything in docker now, 2nd try
|
||||
|
||||
2015-12-01 12:17 marc
|
||||
|
||||
* bootstrap.sh, build-in-docker.conf, build-in-docker.sh,
|
||||
configure.ac, makefile.am: build everithing in docker now
|
||||
|
||||
2015-11-25 15:25 marc
|
||||
|
||||
* build-in-docker.sh: allow add repositories (for cordova-cli)
|
||||
|
||||
2015-11-25 12:45 marc
|
||||
|
||||
* configure.ac, debian/control.in: install cordova from ubuntu ppa
|
||||
|
||||
2015-11-25 10:05 marc
|
||||
|
||||
* configure.ac, cordova/makefile.am, debian/control.in: fixes for
|
||||
cordova
|
||||
|
||||
2015-11-25 08:57 marc
|
||||
|
||||
* ax_init_standard_project.m4, bootstrap.sh, configure.ac,
|
||||
debian/control.in, sql-to-dot.sed: check for android and cordova
|
||||
separately; depend on npm and nodejs for cordova
|
||||
|
||||
2015-11-20 14:05 marc
|
||||
|
||||
* ChangeLog, cordova/config.xml.in, cordova/makefile.am,
|
||||
html/safechat.js, safechat.desktop.in: try to allow background
|
||||
process
|
||||
|
||||
2015-11-09 22:34 marc
|
||||
|
||||
* html/documentation.dox, html/makefile.am: added missing doc
|
||||
|
||||
2015-11-09 22:13 marc
|
||||
|
||||
* doc/doxyfile.in, html/checknewuser.php, html/get.php,
|
||||
html/login.php, html/pubkey.php, html/send.php: improved
|
||||
documentation, better api documentation
|
||||
|
||||
2015-11-09 18:04 marc
|
||||
|
||||
* ChangeLog, cordova/platforms/android/AndroidManifest.xml,
|
||||
cordova/platforms/android/res/xml/config.xml, doc/doxyfile.in,
|
||||
html/safechat.js, makefile.am, test/settings.wt,
|
||||
test/testcase.wt: minor docu fixes
|
||||
|
||||
2015-11-09 15:12 marc
|
||||
|
||||
* ChangeLog, bootstrap.sh, doc/doxyfile.in, html/makefile.am,
|
||||
html/opendb.php, resolve-debbuilddeps.sh, sql-to-dot.sed: better
|
||||
documentation
|
||||
|
||||
2015-11-09 11:13 marc
|
||||
|
||||
* ChangeLog, ax_init_standard_project.m4, bootstrap.sh,
|
||||
configure.ac, cordova/platforms/android/AndroidManifest.xml,
|
||||
cordova/platforms/android/res/xml/config.xml,
|
||||
html/checknewuser.php, html/get.php, html/login.php,
|
||||
html/messagetable.php, html/messagetable.sql, html/opendb.php,
|
||||
html/pubkey.php, html/safechat.js, html/schema.sql,
|
||||
html/send.php, html/usertable.php, html/usertable.sql, test,
|
||||
test/makefile.am, test/runtests.sh: new way to generate database
|
||||
fromseparate schema.sql
|
||||
|
||||
2015-11-07 10:47 marc
|
||||
|
||||
* bootstrap.sh: there is no qt4-default
|
||||
|
||||
2015-11-07 09:23 marc
|
||||
|
||||
* bootstrap.sh: there is no qt4-default
|
||||
|
||||
2015-11-06 15:39 marc
|
||||
|
||||
* html/makefile.am, html/messagetable.php, html/messagetable.sql,
|
||||
html/usertable.php, html/usertable.sql: split sql schema from php
|
||||
|
||||
2015-11-05 16:01 marc
|
||||
|
||||
* ChangeLog, html/messagetable.php, html/usertable.php:
|
||||
documentation added to tables
|
||||
|
||||
2015-11-05 13:24 marc
|
||||
|
||||
* ChangeLog, bootstrap.sh,
|
||||
cordova/platforms/android/AndroidManifest.xml,
|
||||
cordova/platforms/android/res/xml/config.xml, debian,
|
||||
debian/control.in, makefile.am, scripts/safechat-install.sh:
|
||||
build in docker successful
|
||||
|
||||
2015-11-05 12:53 marc
|
||||
|
||||
* bootstrap.sh, debian, debian/changelog.in, debian/compat,
|
||||
debian/control.in, debian/docs, debian/rules: updated build
|
||||
system
|
||||
|
||||
2015-11-05 09:58 marc
|
||||
|
||||
* ChangeLog, ax_check_qt.m4, ax_init_standard_project.m4,
|
||||
bootstrap.sh, build-in-docker.sh, resolve-debbuilddeps.sh:
|
||||
updated build system
|
||||
|
||||
2015-11-04 15:48 marc
|
||||
|
||||
* html/messagetable.php, html/safechat.js, html/usertable.php:
|
||||
added foreign key to database
|
||||
|
||||
2015-11-03 22:02 marc
|
||||
|
||||
* AUTHORS, ax_check_qt.m4, ax_init_standard_project.m4,
|
||||
bootstrap.sh, configure.ac,
|
||||
cordova/platforms/android/AndroidManifest.xml,
|
||||
cordova/platforms/android/res/xml/config.xml, html/functions.php,
|
||||
html/login.php, html/messagetable.php, html/pubkey.php,
|
||||
html/safechat.js, html/send.php, html/usertable.php, makefile.am,
|
||||
resolve-rpmbuilddeps.sh, safechat.spec.in, scripts,
|
||||
scripts/makefile.am: AUTHOR updated to new homepage
|
||||
|
||||
2015-09-25 05:58 marc
|
||||
|
||||
* html/login.php: typo
|
||||
|
||||
2015-09-24 21:47 marc
|
||||
|
||||
* ChangeLog, cordova/makefile.am, html/index.html.in,
|
||||
html/login.php, html/newuser.html, html/safechat.css,
|
||||
html/safechat.js: better welcome page;
|
||||
password-forgotten-feature; refs #32
|
||||
|
||||
2015-09-22 18:09 marc
|
||||
|
||||
* ChangeLog, cordova/config.xml.in,
|
||||
cordova/platforms/android/AndroidManifest.xml,
|
||||
cordova/platforms/android/res/xml/config.xml: fixed android
|
||||
problems; uninstall before update; closes #29
|
||||
|
||||
2015-09-21 19:46 marc
|
||||
|
||||
* cordova/makefile.am: fix build error message
|
||||
|
||||
2015-09-21 15:02 marc
|
||||
|
||||
* ChangeLog, cordova/makefile.am,
|
||||
cordova/platforms/android/AndroidManifest.xml,
|
||||
cordova/platforms/android/res/xml/config.xml: more stable build -
|
||||
cordova often crashes, so retry
|
||||
|
||||
2015-09-21 14:44 marc
|
||||
|
||||
* html/index.html.in: added menu about
|
||||
|
||||
2015-09-20 20:45 marc
|
||||
|
||||
* configure.ac, cordova/makefile.am,
|
||||
cordova/platforms/android/AndroidManifest.xml,
|
||||
cordova/platforms/android/res/xml/config.xml, html/index.html.in,
|
||||
html/safechat.css: build debian packages should work now
|
||||
|
||||
2015-09-20 13:13 marc
|
||||
|
||||
* configure.ac, cordova/makefile.am, debian/control.in: build for
|
||||
cordova an android is now optional, only if tools are available
|
||||
|
||||
2015-09-19 13:24 marc
|
||||
|
||||
* ax_init_standard_project.m4, cordova/makefile.am: make distcheck
|
||||
is now successful
|
||||
|
||||
2015-09-19 08:42 marc
|
||||
|
||||
* ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh,
|
||||
build-resource-file.sh, cordova/logo.png, cordova/makefile.am,
|
||||
cordova/platforms/android/.gradle,
|
||||
cordova/platforms/android/res/drawable-hdpi/icon.png,
|
||||
cordova/platforms/android/res/drawable-ldpi/icon.png,
|
||||
cordova/platforms/android/res/drawable-mdpi/icon.png,
|
||||
cordova/platforms/android/res/drawable-xhdpi/icon.png,
|
||||
cordova/platforms/android/res/drawable/icon.png,
|
||||
resolve-debbuilddeps.sh, resolve-rpmbuilddeps.sh: basic android
|
||||
abb works, distcheck fails; refs #24
|
||||
|
||||
2015-09-15 19:24 marc
|
||||
|
||||
* configure.ac, cordova, cordova/config.xml.in, cordova/hooks,
|
||||
cordova/hooks/README.md, cordova/makefile.am, cordova/platforms,
|
||||
cordova/platforms/android, cordova/platforms/android/.gitignore,
|
||||
cordova/platforms/android/.gradle,
|
||||
cordova/platforms/android/.gradle/2.2.1,
|
||||
cordova/platforms/android/.gradle/2.2.1/taskArtifacts,
|
||||
cordova/platforms/android/.project,
|
||||
cordova/platforms/android/AndroidManifest.xml,
|
||||
cordova/platforms/android/CordovaLib,
|
||||
cordova/platforms/android/CordovaLib/.project,
|
||||
cordova/platforms/android/CordovaLib/AndroidManifest.xml,
|
||||
cordova/platforms/android/CordovaLib/build.gradle,
|
||||
cordova/platforms/android/CordovaLib/cordova.gradle,
|
||||
cordova/platforms/android/CordovaLib/project.properties,
|
||||
cordova/platforms/android/CordovaLib/src,
|
||||
cordova/platforms/android/CordovaLib/src/org,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/AuthenticationToken.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/CallbackContext.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/Config.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/ConfigXmlParser.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/CordovaActivity.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/CordovaArgs.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/CordovaBridge.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/CordovaClientCertRequest.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/CordovaDialogsHelper.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/CordovaHttpAuthHandler.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/CordovaInterface.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/CordovaInterfaceImpl.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/CordovaPlugin.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/CordovaPreferences.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/CordovaResourceApi.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebView.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewEngine.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewImpl.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/CoreAndroid.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/ExposedJsApi.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/ICordovaClientCertRequest.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/ICordovaCookieManager.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/ICordovaHttpAuthHandler.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/LOG.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/NativeToJsMessageQueue.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/PluginEntry.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/PluginManager.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/PluginResult.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/Whitelist.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/engine,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemCookieManager.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemExposedJsApi.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebChromeClient.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebView.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewClient.java,
|
||||
cordova/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewEngine.java,
|
||||
cordova/platforms/android/assets,
|
||||
cordova/platforms/android/assets/_where-is-www.txt,
|
||||
cordova/platforms/android/assets/www,
|
||||
cordova/platforms/android/assets/www/cordova.js,
|
||||
cordova/platforms/android/assets/www/cordova_plugins.js,
|
||||
cordova/platforms/android/assets/www/css,
|
||||
cordova/platforms/android/assets/www/css/index.css,
|
||||
cordova/platforms/android/assets/www/img,
|
||||
cordova/platforms/android/assets/www/img/logo.png,
|
||||
cordova/platforms/android/assets/www/index.html,
|
||||
cordova/platforms/android/assets/www/js,
|
||||
cordova/platforms/android/assets/www/js/index.js,
|
||||
cordova/platforms/android/assets/www/plugins,
|
||||
cordova/platforms/android/assets/www/plugins/cordova-plugin-whitelist,
|
||||
cordova/platforms/android/assets/www/plugins/cordova-plugin-whitelist/whitelist.js,
|
||||
cordova/platforms/android/build.gradle,
|
||||
cordova/platforms/android/cordova,
|
||||
cordova/platforms/android/cordova/android_sdk_version,
|
||||
cordova/platforms/android/cordova/build,
|
||||
cordova/platforms/android/cordova/build.bat,
|
||||
cordova/platforms/android/cordova/check_reqs,
|
||||
cordova/platforms/android/cordova/clean,
|
||||
cordova/platforms/android/cordova/clean.bat,
|
||||
cordova/platforms/android/cordova/defaults.xml,
|
||||
cordova/platforms/android/cordova/lib,
|
||||
cordova/platforms/android/cordova/lib/android_sdk_version.js,
|
||||
cordova/platforms/android/cordova/lib/appinfo.js,
|
||||
cordova/platforms/android/cordova/lib/build.js,
|
||||
cordova/platforms/android/cordova/lib/check_reqs.js,
|
||||
cordova/platforms/android/cordova/lib/device.js,
|
||||
cordova/platforms/android/cordova/lib/emulator.js,
|
||||
cordova/platforms/android/cordova/lib/exec.js,
|
||||
cordova/platforms/android/cordova/lib/install-device,
|
||||
cordova/platforms/android/cordova/lib/install-device.bat,
|
||||
cordova/platforms/android/cordova/lib/install-emulator,
|
||||
cordova/platforms/android/cordova/lib/install-emulator.bat,
|
||||
cordova/platforms/android/cordova/lib/list-devices,
|
||||
cordova/platforms/android/cordova/lib/list-devices.bat,
|
||||
cordova/platforms/android/cordova/lib/list-emulator-images,
|
||||
cordova/platforms/android/cordova/lib/list-emulator-images.bat,
|
||||
cordova/platforms/android/cordova/lib/list-started-emulators,
|
||||
cordova/platforms/android/cordova/lib/list-started-emulators.bat,
|
||||
cordova/platforms/android/cordova/lib/log.js,
|
||||
cordova/platforms/android/cordova/lib/plugin-build.gradle,
|
||||
cordova/platforms/android/cordova/lib/run.js,
|
||||
cordova/platforms/android/cordova/lib/spawn.js,
|
||||
cordova/platforms/android/cordova/lib/start-emulator,
|
||||
cordova/platforms/android/cordova/lib/start-emulator.bat,
|
||||
cordova/platforms/android/cordova/log,
|
||||
cordova/platforms/android/cordova/log.bat,
|
||||
cordova/platforms/android/cordova/node_modules,
|
||||
cordova/platforms/android/cordova/node_modules/.bin,
|
||||
cordova/platforms/android/cordova/node_modules/.bin/shjs,
|
||||
cordova/platforms/android/cordova/node_modules/nopt,
|
||||
cordova/platforms/android/cordova/node_modules/nopt/LICENSE,
|
||||
cordova/platforms/android/cordova/node_modules/nopt/lib,
|
||||
cordova/platforms/android/cordova/node_modules/nopt/lib/nopt.js,
|
||||
cordova/platforms/android/cordova/node_modules/nopt/node_modules,
|
||||
cordova/platforms/android/cordova/node_modules/nopt/node_modules/abbrev,
|
||||
cordova/platforms/android/cordova/node_modules/nopt/node_modules/abbrev/LICENSE,
|
||||
cordova/platforms/android/cordova/node_modules/nopt/node_modules/abbrev/abbrev.js,
|
||||
cordova/platforms/android/cordova/node_modules/nopt/node_modules/abbrev/package.json,
|
||||
cordova/platforms/android/cordova/node_modules/nopt/package.json,
|
||||
cordova/platforms/android/cordova/node_modules/q,
|
||||
cordova/platforms/android/cordova/node_modules/q/CONTRIBUTING.md,
|
||||
cordova/platforms/android/cordova/node_modules/q/LICENSE,
|
||||
cordova/platforms/android/cordova/node_modules/q/README.md,
|
||||
cordova/platforms/android/cordova/node_modules/q/benchmark,
|
||||
cordova/platforms/android/cordova/node_modules/q/benchmark/compare-with-callbacks.js,
|
||||
cordova/platforms/android/cordova/node_modules/q/benchmark/scenarios.js,
|
||||
cordova/platforms/android/cordova/node_modules/q/package.json,
|
||||
cordova/platforms/android/cordova/node_modules/q/q.js,
|
||||
cordova/platforms/android/cordova/node_modules/q/queue.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/.documentup.json,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/.jshintrc,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/.npmignore,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/.travis.yml,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/LICENSE,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/README.md,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/bin,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/bin/shjs,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/global.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/make.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/package.json,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/scripts,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/scripts/generate-docs.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/scripts/run-tests.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/shell.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/cat.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/cd.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/chmod.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/common.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/cp.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/dirs.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/echo.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/error.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/exec.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/find.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/grep.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/ls.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/mkdir.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/mv.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/popd.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/pushd.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/pwd.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/rm.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/sed.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/tempdir.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/test.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/to.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/toEnd.js,
|
||||
cordova/platforms/android/cordova/node_modules/shelljs/src/which.js,
|
||||
cordova/platforms/android/cordova/node_modules/which,
|
||||
cordova/platforms/android/cordova/node_modules/which/LICENSE,
|
||||
cordova/platforms/android/cordova/node_modules/which/README.md,
|
||||
cordova/platforms/android/cordova/node_modules/which/bin,
|
||||
cordova/platforms/android/cordova/node_modules/which/bin/which,
|
||||
cordova/platforms/android/cordova/node_modules/which/package.json,
|
||||
cordova/platforms/android/cordova/node_modules/which/which.js,
|
||||
cordova/platforms/android/cordova/run,
|
||||
cordova/platforms/android/cordova/run.bat,
|
||||
cordova/platforms/android/cordova/version,
|
||||
cordova/platforms/android/cordova/version.bat,
|
||||
cordova/platforms/android/gradle,
|
||||
cordova/platforms/android/gradle/wrapper,
|
||||
cordova/platforms/android/gradle/wrapper/gradle-wrapper.jar,
|
||||
cordova/platforms/android/gradle/wrapper/gradle-wrapper.properties,
|
||||
cordova/platforms/android/gradlew,
|
||||
cordova/platforms/android/libs,
|
||||
cordova/platforms/android/platform_www,
|
||||
cordova/platforms/android/platform_www/cordova.js,
|
||||
cordova/platforms/android/project.properties,
|
||||
cordova/platforms/android/res,
|
||||
cordova/platforms/android/res/drawable,
|
||||
cordova/platforms/android/res/drawable-hdpi,
|
||||
cordova/platforms/android/res/drawable-hdpi/icon.png,
|
||||
cordova/platforms/android/res/drawable-land-hdpi,
|
||||
cordova/platforms/android/res/drawable-land-hdpi/screen.png,
|
||||
cordova/platforms/android/res/drawable-land-ldpi,
|
||||
cordova/platforms/android/res/drawable-land-ldpi/screen.png,
|
||||
cordova/platforms/android/res/drawable-land-mdpi,
|
||||
cordova/platforms/android/res/drawable-land-mdpi/screen.png,
|
||||
cordova/platforms/android/res/drawable-land-xhdpi,
|
||||
cordova/platforms/android/res/drawable-land-xhdpi/screen.png,
|
||||
cordova/platforms/android/res/drawable-ldpi,
|
||||
cordova/platforms/android/res/drawable-ldpi/icon.png,
|
||||
cordova/platforms/android/res/drawable-mdpi,
|
||||
cordova/platforms/android/res/drawable-mdpi/icon.png,
|
||||
cordova/platforms/android/res/drawable-port-hdpi,
|
||||
cordova/platforms/android/res/drawable-port-hdpi/screen.png,
|
||||
cordova/platforms/android/res/drawable-port-ldpi,
|
||||
cordova/platforms/android/res/drawable-port-ldpi/screen.png,
|
||||
cordova/platforms/android/res/drawable-port-mdpi,
|
||||
cordova/platforms/android/res/drawable-port-mdpi/screen.png,
|
||||
cordova/platforms/android/res/drawable-port-xhdpi,
|
||||
cordova/platforms/android/res/drawable-port-xhdpi/screen.png,
|
||||
cordova/platforms/android/res/drawable-xhdpi,
|
||||
cordova/platforms/android/res/drawable-xhdpi/icon.png,
|
||||
cordova/platforms/android/res/drawable/icon.png,
|
||||
cordova/platforms/android/res/values,
|
||||
cordova/platforms/android/res/values/strings.xml,
|
||||
cordova/platforms/android/res/xml,
|
||||
cordova/platforms/android/res/xml/config.xml,
|
||||
cordova/platforms/android/settings.gradle,
|
||||
cordova/platforms/android/src, cordova/platforms/android/src/ch,
|
||||
cordova/platforms/android/src/ch/safechat,
|
||||
cordova/platforms/android/src/ch/safechat/MainActivity.java,
|
||||
cordova/platforms/android/src/org,
|
||||
cordova/platforms/android/src/org/apache,
|
||||
cordova/platforms/android/src/org/apache/cordova,
|
||||
cordova/platforms/android/src/org/apache/cordova/whitelist,
|
||||
cordova/platforms/android/src/org/apache/cordova/whitelist/WhitelistPlugin.java,
|
||||
cordova/platforms/platforms.json, cordova/plugins,
|
||||
cordova/plugins/android.json,
|
||||
cordova/plugins/cordova-plugin-whitelist,
|
||||
cordova/plugins/cordova-plugin-whitelist/CONTRIBUTING.md,
|
||||
cordova/plugins/cordova-plugin-whitelist/LICENSE,
|
||||
cordova/plugins/cordova-plugin-whitelist/NOTICE,
|
||||
cordova/plugins/cordova-plugin-whitelist/README.md,
|
||||
cordova/plugins/cordova-plugin-whitelist/RELEASENOTES.md,
|
||||
cordova/plugins/cordova-plugin-whitelist/package.json,
|
||||
cordova/plugins/cordova-plugin-whitelist/plugin.xml,
|
||||
cordova/plugins/cordova-plugin-whitelist/src,
|
||||
cordova/plugins/cordova-plugin-whitelist/src/android,
|
||||
cordova/plugins/cordova-plugin-whitelist/src/android/WhitelistPlugin.java,
|
||||
cordova/plugins/cordova-plugin-whitelist/src/ios,
|
||||
cordova/plugins/cordova-plugin-whitelist/src/ios/CDVNavigationWhitelistPlugin.h,
|
||||
cordova/plugins/cordova-plugin-whitelist/src/ios/CDVNavigationWhitelistPlugin.m,
|
||||
cordova/plugins/cordova-plugin-whitelist/whitelist.js,
|
||||
cordova/plugins/fetch.json, cordova/www, cordova/www/css,
|
||||
cordova/www/css/index.css, cordova/www/img,
|
||||
cordova/www/img/logo.png, cordova/www/index.html, cordova/www/js,
|
||||
cordova/www/js/index.js, html/index.html.in, html/makefile.am,
|
||||
html/safechat.js, makefile.am: added first try of an android app
|
||||
using cordova; refs #24
|
||||
|
||||
2015-08-27 20:55 marc
|
||||
|
||||
* ChangeLog, html/safechat.css, html/safechat.js: need to make sure
|
||||
that get loop runs only once; closes #20
|
||||
|
||||
2015-08-26 22:43 marc
|
||||
|
||||
* ax_init_standard_project.m4, bootstrap.sh, configure.ac,
|
||||
html/index.html.in, html/safechat.css, html/safechat.js: profile
|
||||
download implemented; closes #16
|
||||
|
||||
2015-08-26 21:30 marc
|
||||
|
||||
* html/chat.html, html/index.html.in, html/safechat.js: profile
|
||||
download implemented; closes #15
|
||||
|
||||
2015-08-26 21:13 marc
|
||||
|
||||
* html/index.html.in, html/menu.svg, html/safechat.css,
|
||||
html/safechat.js: profile download implemented; closes #15
|
||||
|
||||
2015-08-16 15:07 marc
|
||||
|
||||
* ChangeLog, ax_check_qt.m4, ax_init_standard_project.m4,
|
||||
bootstrap.sh, configure.ac, html/index.html, html/index.html.in,
|
||||
html/safechat.js, mac-create-app-bundle.sh: Fixes #13 by
|
||||
introducing vibration where available
|
||||
|
||||
2015-07-16 10:54 marc
|
||||
|
||||
* ChangeLog, doc/doxyfile.in: try without searchbox
|
||||
|
||||
2015-07-15 21:33 marc
|
||||
|
||||
* ChangeLog, html/checknewuser.php, html/documentation.dox,
|
||||
html/get.php, html/login.php, html/messagetable.php,
|
||||
html/pubkey.php, html/safechat.js, html/send.php,
|
||||
html/usertable.php: more docs
|
||||
|
||||
2015-07-15 13:54 marc
|
||||
|
||||
* ChangeLog, ax_check_qt.m4, ax_init_standard_project.m4,
|
||||
bootstrap.sh, configure.ac, doc, doc/doxyfile.in,
|
||||
doc/makefile.am, html/checknewuser.php, html/documentation.dox,
|
||||
html/functions.php, html/makefile.am, html/newuser.html,
|
||||
html/safechat.js, mac-create-app-bundle.sh, makefile.am: added
|
||||
some comments and dokus
|
||||
|
||||
2015-07-09 11:14 marc
|
||||
|
||||
* ChangeLog: but one change is necessary for the test to succeed:
|
||||
We need libcryptoki installed; refs #2200, #2227
|
||||
|
||||
2015-07-08 07:13 marc
|
||||
|
||||
* html/functions.php, html/update-messages.js: added missing files
|
||||
|
||||
2015-07-08 05:48 marc
|
||||
|
||||
* ChangeLog, html/login.php, html/makefile.am,
|
||||
html/messagetable.php, html/safechat.js, html/send.php,
|
||||
html/usertable.php: added missing files
|
||||
|
||||
2015-07-06 11:34 marc
|
||||
|
||||
* debian/control.in: debian needs a section
|
||||
|
||||
2015-07-02 07:08 marc
|
||||
|
||||
* html/login.php, html/pubkey.php, html/safechat.js, html/send.php:
|
||||
some checks on server side
|
||||
|
||||
2015-07-01 13:34 marc
|
||||
|
||||
* README: build need description
|
||||
|
||||
2015-07-01 13:08 marc
|
||||
|
||||
* ChangeLog, html/makefile.am: too much isn't good either
|
||||
|
||||
2015-07-01 11:45 marc
|
||||
|
||||
* html/chat-rodrigo-angleton.svg, html/makefile.am, html/menu.svg,
|
||||
html/safe-mimooh.svg, html/safechat-rodrigo-angleton.svg: missing
|
||||
files added
|
||||
|
||||
2015-07-01 00:08 marc
|
||||
|
||||
* html/abort.svg, html/audio.svg, html/envelope.svg,
|
||||
html/pfeil.svg, html/photo.svg, html/send.svg, html/video.svg:
|
||||
with image support
|
||||
|
||||
2015-07-01 00:07 marc
|
||||
|
||||
* html/attachment.svg, html/chat.html, html/messagetable.php,
|
||||
html/safechat.css, html/safechat.js, html/send.php: with image
|
||||
support
|
||||
|
||||
2015-06-30 14:09 marc
|
||||
|
||||
* html/attachment.svg, html/photo.png, html/video.png: file upload
|
||||
preparations
|
||||
|
||||
2015-06-30 14:09 marc
|
||||
|
||||
* html/chat.html, html/safechat.js: file upload preparations
|
||||
|
||||
2015-06-29 22:34 marc
|
||||
|
||||
* html/chat.html, html/index.html, html/newuser.html,
|
||||
html/safechat.css, html/safechat.js: first design
|
||||
|
||||
2015-06-29 13:19 marc
|
||||
|
||||
* html/A-Tone-His_Self-1266414414.mp3,
|
||||
html/Checkout-Scanner-Beep-SoundBible.com-593325210-by-Mike-Koenig.mp3,
|
||||
html/index.html, html/javascripts, html/jquery.cssemoticons.css,
|
||||
html/jquery.cssemoticons.js, html/safechat.css, html/safechat.js,
|
||||
html/stylesheets: beep on new message + first css
|
||||
|
||||
2015-06-28 20:58 marc
|
||||
|
||||
* AUTHORS, COPYING, ChangeLog, INSTALL, NEWS, README,
|
||||
ax_check_qt.m4, ax_cxx_compile_stdcxx_11.m4,
|
||||
ax_init_standard_project.m4, bootstrap.sh, configure.ac, debian,
|
||||
debian/changelog.in, debian/compat, debian/control.in,
|
||||
debian/docs, debian/rules, html, html/chat.html,
|
||||
html/checknewuser.php, html/get.php, html/index.html,
|
||||
html/javascripts, html/javascripts/jquery-1.4.2.min.js,
|
||||
html/javascripts/jquery.cssemoticons.js,
|
||||
html/javascripts/jquery.cssemoticons.min.js, html/jquery.js,
|
||||
html/login.php, html/makefile.am, html/messagetable.php,
|
||||
html/newuser.html, html/openpgp.js, html/pubkey.php,
|
||||
html/safechat.js, html/send.php, html/stylesheets,
|
||||
html/stylesheets/jquery.cssemoticons.css, html/usertable.php,
|
||||
makefile.am: copied files
|
||||
|
||||
2015-06-28 19:57 marc
|
||||
|
||||
* .: init
|
||||
|
||||
|
@@ -3,10 +3,13 @@
|
||||
## 1 2 3 4 5 6 7 8
|
||||
## 45678901234567890123456789012345678901234567890123456789012345678901234567890
|
||||
|
||||
EXTRA_DIST = package.json.in database doc node_modules public routes sockets safechat.js views
|
||||
EXTRA_DIST = package.json.in database doc public routes sockets safechat.js views
|
||||
|
||||
nodejsdir = ${pkgdatadir}/nodejs
|
||||
|
||||
node_modules:
|
||||
npm install
|
||||
|
||||
install-data-hook:
|
||||
test -d $(DESTDIR)${nodejsdir} || mkdir -p $(DESTDIR)${nodejsdir}
|
||||
chmod -R u+w $(DESTDIR)${nodejsdir}
|
||||
@@ -15,5 +18,7 @@ uninstall-local:
|
||||
-chmod -R u+w $(DESTDIR)${nodejsdir}
|
||||
-rm -rf $(DESTDIR)${nodejsdir}
|
||||
|
||||
clean-local:
|
||||
-rm -rf node_modules
|
||||
|
||||
MAINTAINERCLEANFILES = makefile.in
|
||||
|
1
nodejs/node_modules/.bin/express
generated
vendored
1
nodejs/node_modules/.bin/express
generated
vendored
@@ -1 +0,0 @@
|
||||
../express/bin/express
|
1
nodejs/node_modules/.bin/stylus
generated
vendored
1
nodejs/node_modules/.bin/stylus
generated
vendored
@@ -1 +0,0 @@
|
||||
../stylus/bin/stylus
|
44
nodejs/node_modules/ejs/Jakefile
generated
vendored
44
nodejs/node_modules/ejs/Jakefile
generated
vendored
@@ -1,44 +0,0 @@
|
||||
var fs = require('fs')
|
||||
, buildOpts = {
|
||||
printStdout: true
|
||||
, printStderr: true
|
||||
};
|
||||
|
||||
task('build', ['browserify', 'minify'], function () {
|
||||
console.log('Build completed.');
|
||||
});
|
||||
|
||||
desc('Cleans browerified/minified files and package files');
|
||||
task('clean', ['clobber'], function () {
|
||||
jake.rmRf('./ejs.js');
|
||||
jake.rmRf('./ejs.min.js');
|
||||
});
|
||||
|
||||
task('browserify', {async: true}, function () {
|
||||
jake.exec('./node_modules/browserify/bin/cmd.js --standalone ejs lib/ejs.js > ejs.js',
|
||||
buildOpts, function () {
|
||||
console.log('Browserification completed.');
|
||||
setTimeout(complete, 0);
|
||||
});
|
||||
});
|
||||
|
||||
task('minify', {async: true}, function () {
|
||||
jake.exec('./node_modules/uglify-js/bin/uglifyjs ejs.js > ejs.min.js',
|
||||
buildOpts, function () {
|
||||
console.log('Minification completed.');
|
||||
setTimeout(complete, 0);
|
||||
});
|
||||
});
|
||||
|
||||
publishTask('ejs', ['build'], function () {
|
||||
this.packageFiles.include([
|
||||
'Jakefile'
|
||||
, 'README.md'
|
||||
, 'LICENSE'
|
||||
, 'package.json'
|
||||
, 'ejs.js'
|
||||
, 'ejs.min.js'
|
||||
, 'lib/**'
|
||||
, 'test/**'
|
||||
]);
|
||||
});
|
202
nodejs/node_modules/ejs/LICENSE
generated
vendored
202
nodejs/node_modules/ejs/LICENSE
generated
vendored
@@ -1,202 +0,0 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
241
nodejs/node_modules/ejs/README.md
generated
vendored
241
nodejs/node_modules/ejs/README.md
generated
vendored
@@ -1,241 +0,0 @@
|
||||
# EJS
|
||||
|
||||
Embedded JavaScript templates
|
||||
|
||||
[](https://travis-ci.org/mde/ejs)
|
||||
[](https://david-dm.org/mde/ejs?type=dev)
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
$ npm install ejs
|
||||
```
|
||||
|
||||
## Features
|
||||
|
||||
* Control flow with `<% %>`
|
||||
* Escaped output with `<%= %>` (escape function configurable)
|
||||
* Unescaped raw output with `<%- %>`
|
||||
* Newline-trim mode ('newline slurping') with `-%>` ending tag
|
||||
* Whitespace-trim mode (slurp all whitespace) for control flow with `<%_ _%>`
|
||||
* Custom delimiters (e.g., use `<? ?>` instead of `<% %>`)
|
||||
* Includes
|
||||
* Client-side support
|
||||
* Static caching of intermediate JavaScript
|
||||
* Static caching of templates
|
||||
* Complies with the [Express](http://expressjs.com) view system
|
||||
|
||||
## Example
|
||||
|
||||
```html
|
||||
<% if (user) { %>
|
||||
<h2><%= user.name %></h2>
|
||||
<% } %>
|
||||
```
|
||||
|
||||
Try EJS online at: https://ionicabizau.github.io/ejs-playground/.
|
||||
|
||||
## Usage
|
||||
|
||||
```javascript
|
||||
var template = ejs.compile(str, options);
|
||||
template(data);
|
||||
// => Rendered HTML string
|
||||
|
||||
ejs.render(str, data, options);
|
||||
// => Rendered HTML string
|
||||
|
||||
ejs.renderFile(filename, data, options, function(err, str){
|
||||
// str => Rendered HTML string
|
||||
});
|
||||
```
|
||||
|
||||
It is also possible to use `ejs.render(dataAndOptions);` where you pass
|
||||
everything in a single object. In that case, you'll end up with local variables
|
||||
for all the passed options. However, be aware that your code could break if we
|
||||
add an option with the same name as one of your data object's properties.
|
||||
Therefore, we do not recommend using this shortcut.
|
||||
|
||||
## Options
|
||||
|
||||
- `cache` Compiled functions are cached, requires `filename`
|
||||
- `filename` The name of the file being rendered. Not required if you
|
||||
are using `renderFile()`. Used by `cache` to key caches, and for includes.
|
||||
- `root` Set project root for includes with an absolute path (/file.ejs).
|
||||
- `context` Function execution context
|
||||
- `compileDebug` When `false` no debug instrumentation is compiled
|
||||
- `client` When `true`, compiles a function that can be rendered
|
||||
in the browser without needing to load the EJS Runtime
|
||||
([ejs.min.js](https://github.com/mde/ejs/releases/latest)).
|
||||
- `delimiter` Character to use with angle brackets for open/close
|
||||
- `debug` Output generated function body
|
||||
- `strict` When set to `true`, generated function is in strict mode
|
||||
- `_with` Whether or not to use `with() {}` constructs. If `false` then the locals will be stored in the `locals` object. Set to `false` in strict mode.
|
||||
- `localsName` Name to use for the object storing local variables when not using `with` Defaults to `locals`
|
||||
- `rmWhitespace` Remove all safe-to-remove whitespace, including leading
|
||||
and trailing whitespace. It also enables a safer version of `-%>` line
|
||||
slurping for all scriptlet tags (it does not strip new lines of tags in
|
||||
the middle of a line).
|
||||
- `escape` The escaping function used with `<%=` construct. It is
|
||||
used in rendering and is `.toString()`ed in the generation of client functions. (By default escapes XML).
|
||||
|
||||
This project uses [JSDoc](http://usejsdoc.org/). For the full public API
|
||||
documentation, clone the repository and run `npm run doc`. This will run JSDoc
|
||||
with the proper options and output the documentation to `out/`. If you want
|
||||
the both the public & private API docs, run `npm run devdoc` instead.
|
||||
|
||||
## Tags
|
||||
|
||||
- `<%` 'Scriptlet' tag, for control-flow, no output
|
||||
- `<%_` 'Whitespace Slurping' Scriptlet tag, strips all whitespace before it
|
||||
- `<%=` Outputs the value into the template (escaped)
|
||||
- `<%-` Outputs the unescaped value into the template
|
||||
- `<%#` Comment tag, no execution, no output
|
||||
- `<%%` Outputs a literal '<%'
|
||||
- `%%>` Outputs a literal '%>'
|
||||
- `%>` Plain ending tag
|
||||
- `-%>` Trim-mode ('newline slurp') tag, trims following newline
|
||||
- `_%>` 'Whitespace Slurping' ending tag, removes all whitespace after it
|
||||
|
||||
For the full syntax documentation, please see [docs/syntax.md](https://github.com/mde/ejs/blob/master/docs/syntax.md).
|
||||
|
||||
## Includes
|
||||
|
||||
Includes either have to be an absolute path, or, if not, are assumed as
|
||||
relative to the template with the `include` call. For example if you are
|
||||
including `./views/user/show.ejs` from `./views/users.ejs` you would
|
||||
use `<%- include('user/show') %>`.
|
||||
|
||||
You must specify the `filename` option for the template with the `include`
|
||||
call unless you are using `renderFile()`.
|
||||
|
||||
You'll likely want to use the raw output tag (`<%-`) with your include to avoid
|
||||
double-escaping the HTML output.
|
||||
|
||||
```html
|
||||
<ul>
|
||||
<% users.forEach(function(user){ %>
|
||||
<%- include('user/show', {user: user}) %>
|
||||
<% }); %>
|
||||
</ul>
|
||||
```
|
||||
|
||||
Includes are inserted at runtime, so you can use variables for the path in the
|
||||
`include` call (for example `<%- include(somePath) %>`). Variables in your
|
||||
top-level data object are available to all your includes, but local variables
|
||||
need to be passed down.
|
||||
|
||||
NOTE: Include preprocessor directives (`<% include user/show %>`) are
|
||||
still supported.
|
||||
|
||||
## Custom delimiters
|
||||
|
||||
Custom delimiters can be applied on a per-template basis, or globally:
|
||||
|
||||
```javascript
|
||||
var ejs = require('ejs'),
|
||||
users = ['geddy', 'neil', 'alex'];
|
||||
|
||||
// Just one template
|
||||
ejs.render('<?= users.join(" | "); ?>', {users: users}, {delimiter: '?'});
|
||||
// => 'geddy | neil | alex'
|
||||
|
||||
// Or globally
|
||||
ejs.delimiter = '$';
|
||||
ejs.render('<$= users.join(" | "); $>', {users: users});
|
||||
// => 'geddy | neil | alex'
|
||||
```
|
||||
|
||||
## Caching
|
||||
|
||||
EJS ships with a basic in-process cache for caching the intermediate JavaScript
|
||||
functions used to render templates. It's easy to plug in LRU caching using
|
||||
Node's `lru-cache` library:
|
||||
|
||||
```javascript
|
||||
var ejs = require('ejs')
|
||||
, LRU = require('lru-cache');
|
||||
ejs.cache = LRU(100); // LRU cache with 100-item limit
|
||||
```
|
||||
|
||||
If you want to clear the EJS cache, call `ejs.clearCache`. If you're using the
|
||||
LRU cache and need a different limit, simple reset `ejs.cache` to a new instance
|
||||
of the LRU.
|
||||
|
||||
## Layouts
|
||||
|
||||
EJS does not specifically support blocks, but layouts can be implemented by
|
||||
including headers and footers, like so:
|
||||
|
||||
|
||||
```html
|
||||
<%- include('header') -%>
|
||||
<h1>
|
||||
Title
|
||||
</h1>
|
||||
<p>
|
||||
My page
|
||||
</p>
|
||||
<%- include('footer') -%>
|
||||
```
|
||||
|
||||
## Client-side support
|
||||
|
||||
Go to the [Latest Release](https://github.com/mde/ejs/releases/latest), download
|
||||
`./ejs.js` or `./ejs.min.js`. Alternately, you can compile it yourself by cloning
|
||||
the repository and running `jake build` (or `$(npm bin)/jake build` if jake is
|
||||
not installed globally).
|
||||
|
||||
Include one of these files on your page, and `ejs` should be available globally.
|
||||
|
||||
### Example
|
||||
|
||||
```html
|
||||
<div id="output"></div>
|
||||
<script src="ejs.min.js"></script>
|
||||
<script>
|
||||
var people = ['geddy', 'neil', 'alex'],
|
||||
html = ejs.render('<%= people.join(", "); %>', {people: people});
|
||||
// With jQuery:
|
||||
$('#output').html(html);
|
||||
// Vanilla JS:
|
||||
document.getElementById('output').innerHTML = html;
|
||||
</script>
|
||||
```
|
||||
|
||||
### Caveats
|
||||
|
||||
Most of EJS will work as expected; however, there are a few things to note:
|
||||
|
||||
1. Obviously, since you do not have access to the filesystem, `ejs.renderFile()` won't work.
|
||||
2. For the same reason, `include`s do not work unless you use an `IncludeCallback`. Here is an example:
|
||||
```javascript
|
||||
var str = "Hello <%= include('file', {person: 'John'}); %>",
|
||||
fn = ejs.compile(str, {client: true});
|
||||
|
||||
fn(data, null, function(path, d){ // IncludeCallback
|
||||
// path -> 'file'
|
||||
// d -> {person: 'John'}
|
||||
// Put your code here
|
||||
// Return the contents of file as a string
|
||||
}); // returns rendered string
|
||||
```
|
||||
|
||||
## Related projects
|
||||
|
||||
There are a number of implementations of EJS:
|
||||
|
||||
* TJ's implementation, the v1 of this library: https://github.com/tj/ejs
|
||||
* Jupiter Consulting's EJS: http://www.embeddedjs.com/
|
||||
* EJS Embedded JavaScript Framework on Google Code: https://code.google.com/p/embeddedjavascript/
|
||||
* Sam Stephenson's Ruby implementation: https://rubygems.org/gems/ejs
|
||||
* Erubis, an ERB implementation which also runs JavaScript: http://www.kuwata-lab.com/erubis/users-guide.04.html#lang-javascript
|
||||
|
||||
## License
|
||||
|
||||
Licensed under the Apache License, Version 2.0
|
||||
(<http://www.apache.org/licenses/LICENSE-2.0>)
|
||||
|
||||
- - -
|
||||
EJS Embedded JavaScript templates copyright 2112
|
||||
mde@fleegix.org.
|
1281
nodejs/node_modules/ejs/ejs.js
generated
vendored
1281
nodejs/node_modules/ejs/ejs.js
generated
vendored
@@ -1,1281 +0,0 @@
|
||||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.ejs=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
||||
/*
|
||||
* EJS Embedded JavaScript templates
|
||||
* Copyright 2112 Matthew Eernisse (mde@fleegix.org)
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* @file Embedded JavaScript templating engine.
|
||||
* @author Matthew Eernisse <mde@fleegix.org>
|
||||
* @author Tiancheng "Timothy" Gu <timothygu99@gmail.com>
|
||||
* @project EJS
|
||||
* @license {@link http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0}
|
||||
*/
|
||||
|
||||
/**
|
||||
* EJS internal functions.
|
||||
*
|
||||
* Technically this "module" lies in the same file as {@link module:ejs}, for
|
||||
* the sake of organization all the private functions re grouped into this
|
||||
* module.
|
||||
*
|
||||
* @module ejs-internal
|
||||
* @private
|
||||
*/
|
||||
|
||||
/**
|
||||
* Embedded JavaScript templating engine.
|
||||
*
|
||||
* @module ejs
|
||||
* @public
|
||||
*/
|
||||
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var utils = require('./utils');
|
||||
|
||||
var scopeOptionWarned = false;
|
||||
var _VERSION_STRING = require('../package.json').version;
|
||||
var _DEFAULT_DELIMITER = '%';
|
||||
var _DEFAULT_LOCALS_NAME = 'locals';
|
||||
var _REGEX_STRING = '(<%%|%%>|<%=|<%-|<%_|<%#|<%|%>|-%>|_%>)';
|
||||
var _OPTS = [ 'cache', 'filename', 'delimiter', 'scope', 'context',
|
||||
'debug', 'compileDebug', 'client', '_with', 'root', 'rmWhitespace',
|
||||
'strict', 'localsName'];
|
||||
var _TRAILING_SEMCOL = /;\s*$/;
|
||||
var _BOM = /^\uFEFF/;
|
||||
|
||||
/**
|
||||
* EJS template function cache. This can be a LRU object from lru-cache NPM
|
||||
* module. By default, it is {@link module:utils.cache}, a simple in-process
|
||||
* cache that grows continuously.
|
||||
*
|
||||
* @type {Cache}
|
||||
*/
|
||||
|
||||
exports.cache = utils.cache;
|
||||
|
||||
/**
|
||||
* Name of the object containing the locals.
|
||||
*
|
||||
* This variable is overriden by {@link Options}`.localsName` if it is not
|
||||
* `undefined`.
|
||||
*
|
||||
* @type {String}
|
||||
* @public
|
||||
*/
|
||||
|
||||
exports.localsName = _DEFAULT_LOCALS_NAME;
|
||||
|
||||
/**
|
||||
* Get the path to the included file from the parent file path and the
|
||||
* specified path.
|
||||
*
|
||||
* @param {String} name specified path
|
||||
* @param {String} filename parent file path
|
||||
* @param {Boolean} isDir parent file path whether is directory
|
||||
* @return {String}
|
||||
*/
|
||||
exports.resolveInclude = function(name, filename, isDir) {
|
||||
var dirname = path.dirname;
|
||||
var extname = path.extname;
|
||||
var resolve = path.resolve;
|
||||
var includePath = resolve(isDir ? filename : dirname(filename), name);
|
||||
var ext = extname(name);
|
||||
if (!ext) {
|
||||
includePath += '.ejs';
|
||||
}
|
||||
return includePath;
|
||||
};
|
||||
|
||||
/**
|
||||
* Get the path to the included file by Options
|
||||
*
|
||||
* @param {String} path specified path
|
||||
* @param {Options} options compilation options
|
||||
* @return {String}
|
||||
*/
|
||||
function getIncludePath(path, options){
|
||||
var includePath;
|
||||
if (path.charAt(0) == '/') {
|
||||
includePath = exports.resolveInclude(path.replace(/^\/*/,''), options.root || '/', true);
|
||||
}
|
||||
else {
|
||||
if (!options.filename) {
|
||||
throw new Error('`include` use relative path requires the \'filename\' option.');
|
||||
}
|
||||
includePath = exports.resolveInclude(path, options.filename);
|
||||
}
|
||||
return includePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the template from a string or a file, either compiled on-the-fly or
|
||||
* read from cache (if enabled), and cache the template if needed.
|
||||
*
|
||||
* If `template` is not set, the file specified in `options.filename` will be
|
||||
* read.
|
||||
*
|
||||
* If `options.cache` is true, this function reads the file from
|
||||
* `options.filename` so it must be set prior to calling this function.
|
||||
*
|
||||
* @memberof module:ejs-internal
|
||||
* @param {Options} options compilation options
|
||||
* @param {String} [template] template source
|
||||
* @return {(TemplateFunction|ClientFunction)}
|
||||
* Depending on the value of `options.client`, either type might be returned.
|
||||
* @static
|
||||
*/
|
||||
|
||||
function handleCache(options, template) {
|
||||
var func;
|
||||
var filename = options.filename;
|
||||
var hasTemplate = arguments.length > 1;
|
||||
|
||||
if (options.cache) {
|
||||
if (!filename) {
|
||||
throw new Error('cache option requires a filename');
|
||||
}
|
||||
func = exports.cache.get(filename);
|
||||
if (func) {
|
||||
return func;
|
||||
}
|
||||
if (!hasTemplate) {
|
||||
template = fs.readFileSync(filename).toString().replace(_BOM, '');
|
||||
}
|
||||
}
|
||||
else if (!hasTemplate) {
|
||||
// istanbul ignore if: should not happen at all
|
||||
if (!filename) {
|
||||
throw new Error('Internal EJS error: no file name or template '
|
||||
+ 'provided');
|
||||
}
|
||||
template = fs.readFileSync(filename).toString().replace(_BOM, '');
|
||||
}
|
||||
func = exports.compile(template, options);
|
||||
if (options.cache) {
|
||||
exports.cache.set(filename, func);
|
||||
}
|
||||
return func;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the template function.
|
||||
*
|
||||
* If `options.cache` is `true`, then the template is cached.
|
||||
*
|
||||
* @memberof module:ejs-internal
|
||||
* @param {String} path path for the specified file
|
||||
* @param {Options} options compilation options
|
||||
* @return {(TemplateFunction|ClientFunction)}
|
||||
* Depending on the value of `options.client`, either type might be returned
|
||||
* @static
|
||||
*/
|
||||
|
||||
function includeFile(path, options) {
|
||||
var opts = utils.shallowCopy({}, options);
|
||||
opts.filename = getIncludePath(path, opts);
|
||||
return handleCache(opts);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the JavaScript source of an included file.
|
||||
*
|
||||
* @memberof module:ejs-internal
|
||||
* @param {String} path path for the specified file
|
||||
* @param {Options} options compilation options
|
||||
* @return {Object}
|
||||
* @static
|
||||
*/
|
||||
|
||||
function includeSource(path, options) {
|
||||
var opts = utils.shallowCopy({}, options);
|
||||
var includePath;
|
||||
var template;
|
||||
includePath = getIncludePath(path,opts);
|
||||
template = fs.readFileSync(includePath).toString().replace(_BOM, '');
|
||||
opts.filename = includePath;
|
||||
var templ = new Template(template, opts);
|
||||
templ.generateSource();
|
||||
return {
|
||||
source: templ.source,
|
||||
filename: includePath,
|
||||
template: template
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-throw the given `err` in context to the `str` of ejs, `filename`, and
|
||||
* `lineno`.
|
||||
*
|
||||
* @implements RethrowCallback
|
||||
* @memberof module:ejs-internal
|
||||
* @param {Error} err Error object
|
||||
* @param {String} str EJS source
|
||||
* @param {String} filename file name of the EJS file
|
||||
* @param {String} lineno line number of the error
|
||||
* @static
|
||||
*/
|
||||
|
||||
function rethrow(err, str, filename, lineno){
|
||||
var lines = str.split('\n');
|
||||
var start = Math.max(lineno - 3, 0);
|
||||
var end = Math.min(lines.length, lineno + 3);
|
||||
// Error context
|
||||
var context = lines.slice(start, end).map(function (line, i){
|
||||
var curr = i + start + 1;
|
||||
return (curr == lineno ? ' >> ' : ' ')
|
||||
+ curr
|
||||
+ '| '
|
||||
+ line;
|
||||
}).join('\n');
|
||||
|
||||
// Alter exception message
|
||||
err.path = filename;
|
||||
err.message = (filename || 'ejs') + ':'
|
||||
+ lineno + '\n'
|
||||
+ context + '\n\n'
|
||||
+ err.message;
|
||||
|
||||
throw err;
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy properties in data object that are recognized as options to an
|
||||
* options object.
|
||||
*
|
||||
* This is used for compatibility with earlier versions of EJS and Express.js.
|
||||
*
|
||||
* @memberof module:ejs-internal
|
||||
* @param {Object} data data object
|
||||
* @param {Options} opts options object
|
||||
* @static
|
||||
*/
|
||||
|
||||
function cpOptsInData(data, opts) {
|
||||
_OPTS.forEach(function (p) {
|
||||
if (typeof data[p] != 'undefined') {
|
||||
opts[p] = data[p];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Compile the given `str` of ejs into a template function.
|
||||
*
|
||||
* @param {String} template EJS template
|
||||
*
|
||||
* @param {Options} opts compilation options
|
||||
*
|
||||
* @return {(TemplateFunction|ClientFunction)}
|
||||
* Depending on the value of `opts.client`, either type might be returned.
|
||||
* @public
|
||||
*/
|
||||
|
||||
exports.compile = function compile(template, opts) {
|
||||
var templ;
|
||||
|
||||
// v1 compat
|
||||
// 'scope' is 'context'
|
||||
// FIXME: Remove this in a future version
|
||||
if (opts && opts.scope) {
|
||||
if (!scopeOptionWarned){
|
||||
console.warn('`scope` option is deprecated and will be removed in EJS 3');
|
||||
scopeOptionWarned = true;
|
||||
}
|
||||
if (!opts.context) {
|
||||
opts.context = opts.scope;
|
||||
}
|
||||
delete opts.scope;
|
||||
}
|
||||
templ = new Template(template, opts);
|
||||
return templ.compile();
|
||||
};
|
||||
|
||||
/**
|
||||
* Render the given `template` of ejs.
|
||||
*
|
||||
* If you would like to include options but not data, you need to explicitly
|
||||
* call this function with `data` being an empty object or `null`.
|
||||
*
|
||||
* @param {String} template EJS template
|
||||
* @param {Object} [data={}] template data
|
||||
* @param {Options} [opts={}] compilation and rendering options
|
||||
* @return {String}
|
||||
* @public
|
||||
*/
|
||||
|
||||
exports.render = function (template, d, o) {
|
||||
var data = d || {};
|
||||
var opts = o || {};
|
||||
|
||||
// No options object -- if there are optiony names
|
||||
// in the data, copy them to options
|
||||
if (arguments.length == 2) {
|
||||
cpOptsInData(data, opts);
|
||||
}
|
||||
|
||||
return handleCache(opts, template)(data);
|
||||
};
|
||||
|
||||
/**
|
||||
* Render an EJS file at the given `path` and callback `cb(err, str)`.
|
||||
*
|
||||
* If you would like to include options but not data, you need to explicitly
|
||||
* call this function with `data` being an empty object or `null`.
|
||||
*
|
||||
* @param {String} path path to the EJS file
|
||||
* @param {Object} [data={}] template data
|
||||
* @param {Options} [opts={}] compilation and rendering options
|
||||
* @param {RenderFileCallback} cb callback
|
||||
* @public
|
||||
*/
|
||||
|
||||
exports.renderFile = function () {
|
||||
var args = Array.prototype.slice.call(arguments);
|
||||
var filename = args.shift();
|
||||
var cb = args.pop();
|
||||
var data = args.shift() || {};
|
||||
var opts = args.pop() || {};
|
||||
var result;
|
||||
|
||||
// Don't pollute passed in opts obj with new vals
|
||||
opts = utils.shallowCopy({}, opts);
|
||||
|
||||
// No options object -- if there are optiony names
|
||||
// in the data, copy them to options
|
||||
if (arguments.length == 3) {
|
||||
// Express 4
|
||||
if (data.settings && data.settings['view options']) {
|
||||
cpOptsInData(data.settings['view options'], opts);
|
||||
}
|
||||
// Express 3 and lower
|
||||
else {
|
||||
cpOptsInData(data, opts);
|
||||
}
|
||||
}
|
||||
opts.filename = filename;
|
||||
|
||||
try {
|
||||
result = handleCache(opts)(data);
|
||||
}
|
||||
catch(err) {
|
||||
return cb(err);
|
||||
}
|
||||
return cb(null, result);
|
||||
};
|
||||
|
||||
/**
|
||||
* Clear intermediate JavaScript cache. Calls {@link Cache#reset}.
|
||||
* @public
|
||||
*/
|
||||
|
||||
exports.clearCache = function () {
|
||||
exports.cache.reset();
|
||||
};
|
||||
|
||||
function Template(text, opts) {
|
||||
opts = opts || {};
|
||||
var options = {};
|
||||
this.templateText = text;
|
||||
this.mode = null;
|
||||
this.truncate = false;
|
||||
this.currentLine = 1;
|
||||
this.source = '';
|
||||
this.dependencies = [];
|
||||
options.client = opts.client || false;
|
||||
options.escapeFunction = opts.escape || utils.escapeXML;
|
||||
options.compileDebug = opts.compileDebug !== false;
|
||||
options.debug = !!opts.debug;
|
||||
options.filename = opts.filename;
|
||||
options.delimiter = opts.delimiter || exports.delimiter || _DEFAULT_DELIMITER;
|
||||
options.strict = opts.strict || false;
|
||||
options.context = opts.context;
|
||||
options.cache = opts.cache || false;
|
||||
options.rmWhitespace = opts.rmWhitespace;
|
||||
options.root = opts.root;
|
||||
options.localsName = opts.localsName || exports.localsName || _DEFAULT_LOCALS_NAME;
|
||||
|
||||
if (options.strict) {
|
||||
options._with = false;
|
||||
}
|
||||
else {
|
||||
options._with = typeof opts._with != 'undefined' ? opts._with : true;
|
||||
}
|
||||
|
||||
this.opts = options;
|
||||
|
||||
this.regex = this.createRegex();
|
||||
}
|
||||
|
||||
Template.modes = {
|
||||
EVAL: 'eval',
|
||||
ESCAPED: 'escaped',
|
||||
RAW: 'raw',
|
||||
COMMENT: 'comment',
|
||||
LITERAL: 'literal'
|
||||
};
|
||||
|
||||
Template.prototype = {
|
||||
createRegex: function () {
|
||||
var str = _REGEX_STRING;
|
||||
var delim = utils.escapeRegExpChars(this.opts.delimiter);
|
||||
str = str.replace(/%/g, delim);
|
||||
return new RegExp(str);
|
||||
},
|
||||
|
||||
compile: function () {
|
||||
var src;
|
||||
var fn;
|
||||
var opts = this.opts;
|
||||
var prepended = '';
|
||||
var appended = '';
|
||||
var escape = opts.escapeFunction;
|
||||
|
||||
if (!this.source) {
|
||||
this.generateSource();
|
||||
prepended += ' var __output = [], __append = __output.push.bind(__output);' + '\n';
|
||||
if (opts._with !== false) {
|
||||
prepended += ' with (' + opts.localsName + ' || {}) {' + '\n';
|
||||
appended += ' }' + '\n';
|
||||
}
|
||||
appended += ' return __output.join("");' + '\n';
|
||||
this.source = prepended + this.source + appended;
|
||||
}
|
||||
|
||||
if (opts.compileDebug) {
|
||||
src = 'var __line = 1' + '\n'
|
||||
+ ' , __lines = ' + JSON.stringify(this.templateText) + '\n'
|
||||
+ ' , __filename = ' + (opts.filename ?
|
||||
JSON.stringify(opts.filename) : 'undefined') + ';' + '\n'
|
||||
+ 'try {' + '\n'
|
||||
+ this.source
|
||||
+ '} catch (e) {' + '\n'
|
||||
+ ' rethrow(e, __lines, __filename, __line);' + '\n'
|
||||
+ '}' + '\n';
|
||||
}
|
||||
else {
|
||||
src = this.source;
|
||||
}
|
||||
|
||||
if (opts.debug) {
|
||||
console.log(src);
|
||||
}
|
||||
|
||||
if (opts.client) {
|
||||
src = 'escape = escape || ' + escape.toString() + ';' + '\n' + src;
|
||||
if (opts.compileDebug) {
|
||||
src = 'rethrow = rethrow || ' + rethrow.toString() + ';' + '\n' + src;
|
||||
}
|
||||
}
|
||||
|
||||
if (opts.strict) {
|
||||
src = '"use strict";\n' + src;
|
||||
}
|
||||
|
||||
try {
|
||||
fn = new Function(opts.localsName + ', escape, include, rethrow', src);
|
||||
}
|
||||
catch(e) {
|
||||
// istanbul ignore else
|
||||
if (e instanceof SyntaxError) {
|
||||
if (opts.filename) {
|
||||
e.message += ' in ' + opts.filename;
|
||||
}
|
||||
e.message += ' while compiling ejs';
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
|
||||
if (opts.client) {
|
||||
fn.dependencies = this.dependencies;
|
||||
return fn;
|
||||
}
|
||||
|
||||
// Return a callable function which will execute the function
|
||||
// created by the source-code, with the passed data as locals
|
||||
// Adds a local `include` function which allows full recursive include
|
||||
var returnedFn = function (data) {
|
||||
var include = function (path, includeData) {
|
||||
var d = utils.shallowCopy({}, data);
|
||||
if (includeData) {
|
||||
d = utils.shallowCopy(d, includeData);
|
||||
}
|
||||
return includeFile(path, opts)(d);
|
||||
};
|
||||
return fn.apply(opts.context, [data || {}, escape, include, rethrow]);
|
||||
};
|
||||
returnedFn.dependencies = this.dependencies;
|
||||
return returnedFn;
|
||||
},
|
||||
|
||||
generateSource: function () {
|
||||
var opts = this.opts;
|
||||
|
||||
if (opts.rmWhitespace) {
|
||||
// Have to use two separate replace here as `^` and `$` operators don't
|
||||
// work well with `\r`.
|
||||
this.templateText =
|
||||
this.templateText.replace(/\r/g, '').replace(/^\s+|\s+$/gm, '');
|
||||
}
|
||||
|
||||
// Slurp spaces and tabs before <%_ and after _%>
|
||||
this.templateText =
|
||||
this.templateText.replace(/[ \t]*<%_/gm, '<%_').replace(/_%>[ \t]*/gm, '_%>');
|
||||
|
||||
var self = this;
|
||||
var matches = this.parseTemplateText();
|
||||
var d = this.opts.delimiter;
|
||||
|
||||
if (matches && matches.length) {
|
||||
matches.forEach(function (line, index) {
|
||||
var opening;
|
||||
var closing;
|
||||
var include;
|
||||
var includeOpts;
|
||||
var includeObj;
|
||||
var includeSrc;
|
||||
// If this is an opening tag, check for closing tags
|
||||
// FIXME: May end up with some false positives here
|
||||
// Better to store modes as k/v with '<' + delimiter as key
|
||||
// Then this can simply check against the map
|
||||
if ( line.indexOf('<' + d) === 0 // If it is a tag
|
||||
&& line.indexOf('<' + d + d) !== 0) { // and is not escaped
|
||||
closing = matches[index + 2];
|
||||
if (!(closing == d + '>' || closing == '-' + d + '>' || closing == '_' + d + '>')) {
|
||||
throw new Error('Could not find matching close tag for "' + line + '".');
|
||||
}
|
||||
}
|
||||
// HACK: backward-compat `include` preprocessor directives
|
||||
if ((include = line.match(/^\s*include\s+(\S+)/))) {
|
||||
opening = matches[index - 1];
|
||||
// Must be in EVAL or RAW mode
|
||||
if (opening && (opening == '<' + d || opening == '<' + d + '-' || opening == '<' + d + '_')) {
|
||||
includeOpts = utils.shallowCopy({}, self.opts);
|
||||
includeObj = includeSource(include[1], includeOpts);
|
||||
if (self.opts.compileDebug) {
|
||||
includeSrc =
|
||||
' ; (function(){' + '\n'
|
||||
+ ' var __line = 1' + '\n'
|
||||
+ ' , __lines = ' + JSON.stringify(includeObj.template) + '\n'
|
||||
+ ' , __filename = ' + JSON.stringify(includeObj.filename) + ';' + '\n'
|
||||
+ ' try {' + '\n'
|
||||
+ includeObj.source
|
||||
+ ' } catch (e) {' + '\n'
|
||||
+ ' rethrow(e, __lines, __filename, __line);' + '\n'
|
||||
+ ' }' + '\n'
|
||||
+ ' ; }).call(this)' + '\n';
|
||||
}else{
|
||||
includeSrc = ' ; (function(){' + '\n' + includeObj.source +
|
||||
' ; }).call(this)' + '\n';
|
||||
}
|
||||
self.source += includeSrc;
|
||||
self.dependencies.push(exports.resolveInclude(include[1],
|
||||
includeOpts.filename));
|
||||
return;
|
||||
}
|
||||
}
|
||||
self.scanLine(line);
|
||||
});
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
parseTemplateText: function () {
|
||||
var str = this.templateText;
|
||||
var pat = this.regex;
|
||||
var result = pat.exec(str);
|
||||
var arr = [];
|
||||
var firstPos;
|
||||
|
||||
while (result) {
|
||||
firstPos = result.index;
|
||||
|
||||
if (firstPos !== 0) {
|
||||
arr.push(str.substring(0, firstPos));
|
||||
str = str.slice(firstPos);
|
||||
}
|
||||
|
||||
arr.push(result[0]);
|
||||
str = str.slice(result[0].length);
|
||||
result = pat.exec(str);
|
||||
}
|
||||
|
||||
if (str) {
|
||||
arr.push(str);
|
||||
}
|
||||
|
||||
return arr;
|
||||
},
|
||||
|
||||
scanLine: function (line) {
|
||||
var self = this;
|
||||
var d = this.opts.delimiter;
|
||||
var newLineCount = 0;
|
||||
|
||||
function _addOutput() {
|
||||
if (self.truncate) {
|
||||
// Only replace single leading linebreak in the line after
|
||||
// -%> tag -- this is the single, trailing linebreak
|
||||
// after the tag that the truncation mode replaces
|
||||
// Handle Win / Unix / old Mac linebreaks -- do the \r\n
|
||||
// combo first in the regex-or
|
||||
line = line.replace(/^(?:\r\n|\r|\n)/, '');
|
||||
self.truncate = false;
|
||||
}
|
||||
else if (self.opts.rmWhitespace) {
|
||||
// Gotta be more careful here.
|
||||
// .replace(/^(\s*)\n/, '$1') might be more appropriate here but as
|
||||
// rmWhitespace already removes trailing spaces anyway so meh.
|
||||
line = line.replace(/^\n/, '');
|
||||
}
|
||||
if (!line) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Preserve literal slashes
|
||||
line = line.replace(/\\/g, '\\\\');
|
||||
|
||||
// Convert linebreaks
|
||||
line = line.replace(/\n/g, '\\n');
|
||||
line = line.replace(/\r/g, '\\r');
|
||||
|
||||
// Escape double-quotes
|
||||
// - this will be the delimiter during execution
|
||||
line = line.replace(/"/g, '\\"');
|
||||
self.source += ' ; __append("' + line + '")' + '\n';
|
||||
}
|
||||
|
||||
newLineCount = (line.split('\n').length - 1);
|
||||
|
||||
switch (line) {
|
||||
case '<' + d:
|
||||
case '<' + d + '_':
|
||||
this.mode = Template.modes.EVAL;
|
||||
break;
|
||||
case '<' + d + '=':
|
||||
this.mode = Template.modes.ESCAPED;
|
||||
break;
|
||||
case '<' + d + '-':
|
||||
this.mode = Template.modes.RAW;
|
||||
break;
|
||||
case '<' + d + '#':
|
||||
this.mode = Template.modes.COMMENT;
|
||||
break;
|
||||
case '<' + d + d:
|
||||
this.mode = Template.modes.LITERAL;
|
||||
this.source += ' ; __append("' + line.replace('<' + d + d, '<' + d) + '")' + '\n';
|
||||
break;
|
||||
case d + d + '>':
|
||||
this.mode = Template.modes.LITERAL;
|
||||
this.source += ' ; __append("' + line.replace(d + d + '>', d + '>') + '")' + '\n';
|
||||
break;
|
||||
case d + '>':
|
||||
case '-' + d + '>':
|
||||
case '_' + d + '>':
|
||||
if (this.mode == Template.modes.LITERAL) {
|
||||
_addOutput();
|
||||
}
|
||||
|
||||
this.mode = null;
|
||||
this.truncate = line.indexOf('-') === 0 || line.indexOf('_') === 0;
|
||||
break;
|
||||
default:
|
||||
// In script mode, depends on type of tag
|
||||
if (this.mode) {
|
||||
// If '//' is found without a line break, add a line break.
|
||||
switch (this.mode) {
|
||||
case Template.modes.EVAL:
|
||||
case Template.modes.ESCAPED:
|
||||
case Template.modes.RAW:
|
||||
if (line.lastIndexOf('//') > line.lastIndexOf('\n')) {
|
||||
line += '\n';
|
||||
}
|
||||
}
|
||||
switch (this.mode) {
|
||||
// Just executing code
|
||||
case Template.modes.EVAL:
|
||||
this.source += ' ; ' + line + '\n';
|
||||
break;
|
||||
// Exec, esc, and output
|
||||
case Template.modes.ESCAPED:
|
||||
this.source += ' ; __append(escape(' +
|
||||
line.replace(_TRAILING_SEMCOL, '').trim() + '))' + '\n';
|
||||
break;
|
||||
// Exec and output
|
||||
case Template.modes.RAW:
|
||||
this.source += ' ; __append(' +
|
||||
line.replace(_TRAILING_SEMCOL, '').trim() + ')' + '\n';
|
||||
break;
|
||||
case Template.modes.COMMENT:
|
||||
// Do nothing
|
||||
break;
|
||||
// Literal <%% mode, append as raw output
|
||||
case Template.modes.LITERAL:
|
||||
_addOutput();
|
||||
break;
|
||||
}
|
||||
}
|
||||
// In string mode, just add the output
|
||||
else {
|
||||
_addOutput();
|
||||
}
|
||||
}
|
||||
|
||||
if (self.opts.compileDebug && newLineCount) {
|
||||
this.currentLine += newLineCount;
|
||||
this.source += ' ; __line = ' + this.currentLine + '\n';
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Escape characters reserved in XML.
|
||||
*
|
||||
* This is simply an export of {@link module:utils.escapeXML}.
|
||||
*
|
||||
* If `markup` is `undefined` or `null`, the empty string is returned.
|
||||
*
|
||||
* @param {String} markup Input string
|
||||
* @return {String} Escaped string
|
||||
* @public
|
||||
* @func
|
||||
* */
|
||||
exports.escapeXML = utils.escapeXML;
|
||||
|
||||
/**
|
||||
* Express.js support.
|
||||
*
|
||||
* This is an alias for {@link module:ejs.renderFile}, in order to support
|
||||
* Express.js out-of-the-box.
|
||||
*
|
||||
* @func
|
||||
*/
|
||||
|
||||
exports.__express = exports.renderFile;
|
||||
|
||||
// Add require support
|
||||
/* istanbul ignore else */
|
||||
if (require.extensions) {
|
||||
require.extensions['.ejs'] = function (module, flnm) {
|
||||
var filename = flnm || /* istanbul ignore next */ module.filename;
|
||||
var options = {
|
||||
filename: filename,
|
||||
client: true
|
||||
};
|
||||
var template = fs.readFileSync(filename).toString();
|
||||
var fn = exports.compile(template, options);
|
||||
module._compile('module.exports = ' + fn.toString() + ';', filename);
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Version of EJS.
|
||||
*
|
||||
* @readonly
|
||||
* @type {String}
|
||||
* @public
|
||||
*/
|
||||
|
||||
exports.VERSION = _VERSION_STRING;
|
||||
|
||||
/* istanbul ignore if */
|
||||
if (typeof window != 'undefined') {
|
||||
window.ejs = exports;
|
||||
}
|
||||
|
||||
},{"../package.json":6,"./utils":2,"fs":3,"path":4}],2:[function(require,module,exports){
|
||||
/*
|
||||
* EJS Embedded JavaScript templates
|
||||
* Copyright 2112 Matthew Eernisse (mde@fleegix.org)
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* Private utility functions
|
||||
* @module utils
|
||||
* @private
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var regExpChars = /[|\\{}()[\]^$+*?.]/g;
|
||||
|
||||
/**
|
||||
* Escape characters reserved in regular expressions.
|
||||
*
|
||||
* If `string` is `undefined` or `null`, the empty string is returned.
|
||||
*
|
||||
* @param {String} string Input string
|
||||
* @return {String} Escaped string
|
||||
* @static
|
||||
* @private
|
||||
*/
|
||||
exports.escapeRegExpChars = function (string) {
|
||||
// istanbul ignore if
|
||||
if (!string) {
|
||||
return '';
|
||||
}
|
||||
return String(string).replace(regExpChars, '\\$&');
|
||||
};
|
||||
|
||||
var _ENCODE_HTML_RULES = {
|
||||
'&': '&'
|
||||
, '<': '<'
|
||||
, '>': '>'
|
||||
, '"': '"'
|
||||
, "'": '''
|
||||
}
|
||||
, _MATCH_HTML = /[&<>\'"]/g;
|
||||
|
||||
function encode_char(c) {
|
||||
return _ENCODE_HTML_RULES[c] || c;
|
||||
};
|
||||
|
||||
/**
|
||||
* Stringified version of constants used by {@link module:utils.escapeXML}.
|
||||
*
|
||||
* It is used in the process of generating {@link ClientFunction}s.
|
||||
*
|
||||
* @readonly
|
||||
* @type {String}
|
||||
*/
|
||||
|
||||
var escapeFuncStr =
|
||||
'var _ENCODE_HTML_RULES = {\n'
|
||||
+ ' "&": "&"\n'
|
||||
+ ' , "<": "<"\n'
|
||||
+ ' , ">": ">"\n'
|
||||
+ ' , \'"\': """\n'
|
||||
+ ' , "\'": "'"\n'
|
||||
+ ' }\n'
|
||||
+ ' , _MATCH_HTML = /[&<>\'"]/g;\n'
|
||||
+ 'function encode_char(c) {\n'
|
||||
+ ' return _ENCODE_HTML_RULES[c] || c;\n'
|
||||
+ '};\n';
|
||||
|
||||
/**
|
||||
* Escape characters reserved in XML.
|
||||
*
|
||||
* If `markup` is `undefined` or `null`, the empty string is returned.
|
||||
*
|
||||
* @implements {EscapeCallback}
|
||||
* @param {String} markup Input string
|
||||
* @return {String} Escaped string
|
||||
* @static
|
||||
* @private
|
||||
*/
|
||||
|
||||
exports.escapeXML = function (markup) {
|
||||
return markup == undefined
|
||||
? ''
|
||||
: String(markup)
|
||||
.replace(_MATCH_HTML, encode_char);
|
||||
};
|
||||
exports.escapeXML.toString = function () {
|
||||
return Function.prototype.toString.call(this) + ';\n' + escapeFuncStr
|
||||
};
|
||||
|
||||
/**
|
||||
* Copy all properties from one object to another, in a shallow fashion.
|
||||
*
|
||||
* @param {Object} to Destination object
|
||||
* @param {Object} from Source object
|
||||
* @return {Object} Destination object
|
||||
* @static
|
||||
* @private
|
||||
*/
|
||||
exports.shallowCopy = function (to, from) {
|
||||
from = from || {};
|
||||
for (var p in from) {
|
||||
to[p] = from[p];
|
||||
}
|
||||
return to;
|
||||
};
|
||||
|
||||
/**
|
||||
* Simple in-process cache implementation. Does not implement limits of any
|
||||
* sort.
|
||||
*
|
||||
* @implements Cache
|
||||
* @static
|
||||
* @private
|
||||
*/
|
||||
exports.cache = {
|
||||
_data: {},
|
||||
set: function (key, val) {
|
||||
this._data[key] = val;
|
||||
},
|
||||
get: function (key) {
|
||||
return this._data[key];
|
||||
},
|
||||
reset: function () {
|
||||
this._data = {};
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
},{}],3:[function(require,module,exports){
|
||||
|
||||
},{}],4:[function(require,module,exports){
|
||||
(function (process){
|
||||
// Copyright Joyent, Inc. and other Node contributors.
|
||||
//
|
||||
// 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:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included
|
||||
// in all copies or substantial portions of the Software.
|
||||
//
|
||||
// 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.
|
||||
|
||||
// resolves . and .. elements in a path array with directory names there
|
||||
// must be no slashes, empty elements, or device names (c:\) in the array
|
||||
// (so also no leading and trailing slashes - it does not distinguish
|
||||
// relative and absolute paths)
|
||||
function normalizeArray(parts, allowAboveRoot) {
|
||||
// if the path tries to go above the root, `up` ends up > 0
|
||||
var up = 0;
|
||||
for (var i = parts.length - 1; i >= 0; i--) {
|
||||
var last = parts[i];
|
||||
if (last === '.') {
|
||||
parts.splice(i, 1);
|
||||
} else if (last === '..') {
|
||||
parts.splice(i, 1);
|
||||
up++;
|
||||
} else if (up) {
|
||||
parts.splice(i, 1);
|
||||
up--;
|
||||
}
|
||||
}
|
||||
|
||||
// if the path is allowed to go above the root, restore leading ..s
|
||||
if (allowAboveRoot) {
|
||||
for (; up--; up) {
|
||||
parts.unshift('..');
|
||||
}
|
||||
}
|
||||
|
||||
return parts;
|
||||
}
|
||||
|
||||
// Split a filename into [root, dir, basename, ext], unix version
|
||||
// 'root' is just a slash, or nothing.
|
||||
var splitPathRe =
|
||||
/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
|
||||
var splitPath = function(filename) {
|
||||
return splitPathRe.exec(filename).slice(1);
|
||||
};
|
||||
|
||||
// path.resolve([from ...], to)
|
||||
// posix version
|
||||
exports.resolve = function() {
|
||||
var resolvedPath = '',
|
||||
resolvedAbsolute = false;
|
||||
|
||||
for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
|
||||
var path = (i >= 0) ? arguments[i] : process.cwd();
|
||||
|
||||
// Skip empty and invalid entries
|
||||
if (typeof path !== 'string') {
|
||||
throw new TypeError('Arguments to path.resolve must be strings');
|
||||
} else if (!path) {
|
||||
continue;
|
||||
}
|
||||
|
||||
resolvedPath = path + '/' + resolvedPath;
|
||||
resolvedAbsolute = path.charAt(0) === '/';
|
||||
}
|
||||
|
||||
// At this point the path should be resolved to a full absolute path, but
|
||||
// handle relative paths to be safe (might happen when process.cwd() fails)
|
||||
|
||||
// Normalize the path
|
||||
resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
|
||||
return !!p;
|
||||
}), !resolvedAbsolute).join('/');
|
||||
|
||||
return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
|
||||
};
|
||||
|
||||
// path.normalize(path)
|
||||
// posix version
|
||||
exports.normalize = function(path) {
|
||||
var isAbsolute = exports.isAbsolute(path),
|
||||
trailingSlash = substr(path, -1) === '/';
|
||||
|
||||
// Normalize the path
|
||||
path = normalizeArray(filter(path.split('/'), function(p) {
|
||||
return !!p;
|
||||
}), !isAbsolute).join('/');
|
||||
|
||||
if (!path && !isAbsolute) {
|
||||
path = '.';
|
||||
}
|
||||
if (path && trailingSlash) {
|
||||
path += '/';
|
||||
}
|
||||
|
||||
return (isAbsolute ? '/' : '') + path;
|
||||
};
|
||||
|
||||
// posix version
|
||||
exports.isAbsolute = function(path) {
|
||||
return path.charAt(0) === '/';
|
||||
};
|
||||
|
||||
// posix version
|
||||
exports.join = function() {
|
||||
var paths = Array.prototype.slice.call(arguments, 0);
|
||||
return exports.normalize(filter(paths, function(p, index) {
|
||||
if (typeof p !== 'string') {
|
||||
throw new TypeError('Arguments to path.join must be strings');
|
||||
}
|
||||
return p;
|
||||
}).join('/'));
|
||||
};
|
||||
|
||||
|
||||
// path.relative(from, to)
|
||||
// posix version
|
||||
exports.relative = function(from, to) {
|
||||
from = exports.resolve(from).substr(1);
|
||||
to = exports.resolve(to).substr(1);
|
||||
|
||||
function trim(arr) {
|
||||
var start = 0;
|
||||
for (; start < arr.length; start++) {
|
||||
if (arr[start] !== '') break;
|
||||
}
|
||||
|
||||
var end = arr.length - 1;
|
||||
for (; end >= 0; end--) {
|
||||
if (arr[end] !== '') break;
|
||||
}
|
||||
|
||||
if (start > end) return [];
|
||||
return arr.slice(start, end - start + 1);
|
||||
}
|
||||
|
||||
var fromParts = trim(from.split('/'));
|
||||
var toParts = trim(to.split('/'));
|
||||
|
||||
var length = Math.min(fromParts.length, toParts.length);
|
||||
var samePartsLength = length;
|
||||
for (var i = 0; i < length; i++) {
|
||||
if (fromParts[i] !== toParts[i]) {
|
||||
samePartsLength = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var outputParts = [];
|
||||
for (var i = samePartsLength; i < fromParts.length; i++) {
|
||||
outputParts.push('..');
|
||||
}
|
||||
|
||||
outputParts = outputParts.concat(toParts.slice(samePartsLength));
|
||||
|
||||
return outputParts.join('/');
|
||||
};
|
||||
|
||||
exports.sep = '/';
|
||||
exports.delimiter = ':';
|
||||
|
||||
exports.dirname = function(path) {
|
||||
var result = splitPath(path),
|
||||
root = result[0],
|
||||
dir = result[1];
|
||||
|
||||
if (!root && !dir) {
|
||||
// No dirname whatsoever
|
||||
return '.';
|
||||
}
|
||||
|
||||
if (dir) {
|
||||
// It has a dirname, strip trailing slash
|
||||
dir = dir.substr(0, dir.length - 1);
|
||||
}
|
||||
|
||||
return root + dir;
|
||||
};
|
||||
|
||||
|
||||
exports.basename = function(path, ext) {
|
||||
var f = splitPath(path)[2];
|
||||
// TODO: make this comparison case-insensitive on windows?
|
||||
if (ext && f.substr(-1 * ext.length) === ext) {
|
||||
f = f.substr(0, f.length - ext.length);
|
||||
}
|
||||
return f;
|
||||
};
|
||||
|
||||
|
||||
exports.extname = function(path) {
|
||||
return splitPath(path)[3];
|
||||
};
|
||||
|
||||
function filter (xs, f) {
|
||||
if (xs.filter) return xs.filter(f);
|
||||
var res = [];
|
||||
for (var i = 0; i < xs.length; i++) {
|
||||
if (f(xs[i], i, xs)) res.push(xs[i]);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
// String.prototype.substr - negative index don't work in IE8
|
||||
var substr = 'ab'.substr(-1) === 'b'
|
||||
? function (str, start, len) { return str.substr(start, len) }
|
||||
: function (str, start, len) {
|
||||
if (start < 0) start = str.length + start;
|
||||
return str.substr(start, len);
|
||||
}
|
||||
;
|
||||
|
||||
}).call(this,require('_process'))
|
||||
},{"_process":5}],5:[function(require,module,exports){
|
||||
// shim for using process in browser
|
||||
|
||||
var process = module.exports = {};
|
||||
var queue = [];
|
||||
var draining = false;
|
||||
|
||||
function drainQueue() {
|
||||
if (draining) {
|
||||
return;
|
||||
}
|
||||
draining = true;
|
||||
var currentQueue;
|
||||
var len = queue.length;
|
||||
while(len) {
|
||||
currentQueue = queue;
|
||||
queue = [];
|
||||
var i = -1;
|
||||
while (++i < len) {
|
||||
currentQueue[i]();
|
||||
}
|
||||
len = queue.length;
|
||||
}
|
||||
draining = false;
|
||||
}
|
||||
process.nextTick = function (fun) {
|
||||
queue.push(fun);
|
||||
if (!draining) {
|
||||
setTimeout(drainQueue, 0);
|
||||
}
|
||||
};
|
||||
|
||||
process.title = 'browser';
|
||||
process.browser = true;
|
||||
process.env = {};
|
||||
process.argv = [];
|
||||
process.version = ''; // empty string to avoid regexp issues
|
||||
process.versions = {};
|
||||
|
||||
function noop() {}
|
||||
|
||||
process.on = noop;
|
||||
process.addListener = noop;
|
||||
process.once = noop;
|
||||
process.off = noop;
|
||||
process.removeListener = noop;
|
||||
process.removeAllListeners = noop;
|
||||
process.emit = noop;
|
||||
|
||||
process.binding = function (name) {
|
||||
throw new Error('process.binding is not supported');
|
||||
};
|
||||
|
||||
// TODO(shtylman)
|
||||
process.cwd = function () { return '/' };
|
||||
process.chdir = function (dir) {
|
||||
throw new Error('process.chdir is not supported');
|
||||
};
|
||||
process.umask = function() { return 0; };
|
||||
|
||||
},{}],6:[function(require,module,exports){
|
||||
module.exports={
|
||||
"name": "ejs",
|
||||
"description": "Embedded JavaScript templates",
|
||||
"keywords": [
|
||||
"template",
|
||||
"engine",
|
||||
"ejs"
|
||||
],
|
||||
"version": "2.5.1",
|
||||
"author": "Matthew Eernisse <mde@fleegix.org> (http://fleegix.org)",
|
||||
"contributors": [
|
||||
"Timothy Gu <timothygu99@gmail.com> (https://timothygu.github.io)"
|
||||
],
|
||||
"license": "Apache-2.0",
|
||||
"main": "./lib/ejs.js",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/mde/ejs.git"
|
||||
},
|
||||
"bugs": "https://github.com/mde/ejs/issues",
|
||||
"homepage": "https://github.com/mde/ejs",
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"browserify": "^13.0.1",
|
||||
"eslint": "^3.0.0",
|
||||
"istanbul": "~0.4.3",
|
||||
"jake": "^8.0.0",
|
||||
"jsdoc": "^3.4.0",
|
||||
"lru-cache": "^4.0.1",
|
||||
"mocha": "^3.0.2",
|
||||
"rimraf": "^2.2.8",
|
||||
"uglify-js": "^2.6.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "mocha",
|
||||
"coverage": "istanbul cover node_modules/mocha/bin/_mocha",
|
||||
"doc": "rimraf out && jsdoc -c jsdoc.json lib/* docs/jsdoc/*",
|
||||
"devdoc": "rimraf out && jsdoc -p -c jsdoc.json lib/* docs/jsdoc/*"
|
||||
}
|
||||
}
|
||||
|
||||
},{}]},{},[1])(1)
|
||||
});
|
1
nodejs/node_modules/ejs/ejs.min.js
generated
vendored
1
nodejs/node_modules/ejs/ejs.min.js
generated
vendored
@@ -1 +0,0 @@
|
||||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.ejs=e()}}(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){"use strict";var fs=require("fs");var path=require("path");var utils=require("./utils");var scopeOptionWarned=false;var _VERSION_STRING=require("../package.json").version;var _DEFAULT_DELIMITER="%";var _DEFAULT_LOCALS_NAME="locals";var _REGEX_STRING="(<%%|%%>|<%=|<%-|<%_|<%#|<%|%>|-%>|_%>)";var _OPTS=["cache","filename","delimiter","scope","context","debug","compileDebug","client","_with","root","rmWhitespace","strict","localsName"];var _TRAILING_SEMCOL=/;\s*$/;var _BOM=/^\uFEFF/;exports.cache=utils.cache;exports.localsName=_DEFAULT_LOCALS_NAME;exports.resolveInclude=function(name,filename,isDir){var dirname=path.dirname;var extname=path.extname;var resolve=path.resolve;var includePath=resolve(isDir?filename:dirname(filename),name);var ext=extname(name);if(!ext){includePath+=".ejs"}return includePath};function getIncludePath(path,options){var includePath;if(path.charAt(0)=="/"){includePath=exports.resolveInclude(path.replace(/^\/*/,""),options.root||"/",true)}else{if(!options.filename){throw new Error("`include` use relative path requires the 'filename' option.")}includePath=exports.resolveInclude(path,options.filename)}return includePath}function handleCache(options,template){var func;var filename=options.filename;var hasTemplate=arguments.length>1;if(options.cache){if(!filename){throw new Error("cache option requires a filename")}func=exports.cache.get(filename);if(func){return func}if(!hasTemplate){template=fs.readFileSync(filename).toString().replace(_BOM,"")}}else if(!hasTemplate){if(!filename){throw new Error("Internal EJS error: no file name or template "+"provided")}template=fs.readFileSync(filename).toString().replace(_BOM,"")}func=exports.compile(template,options);if(options.cache){exports.cache.set(filename,func)}return func}function includeFile(path,options){var opts=utils.shallowCopy({},options);opts.filename=getIncludePath(path,opts);return handleCache(opts)}function includeSource(path,options){var opts=utils.shallowCopy({},options);var includePath;var template;includePath=getIncludePath(path,opts);template=fs.readFileSync(includePath).toString().replace(_BOM,"");opts.filename=includePath;var templ=new Template(template,opts);templ.generateSource();return{source:templ.source,filename:includePath,template:template}}function rethrow(err,str,filename,lineno){var lines=str.split("\n");var start=Math.max(lineno-3,0);var end=Math.min(lines.length,lineno+3);var context=lines.slice(start,end).map(function(line,i){var curr=i+start+1;return(curr==lineno?" >> ":" ")+curr+"| "+line}).join("\n");err.path=filename;err.message=(filename||"ejs")+":"+lineno+"\n"+context+"\n\n"+err.message;throw err}function cpOptsInData(data,opts){_OPTS.forEach(function(p){if(typeof data[p]!="undefined"){opts[p]=data[p]}})}exports.compile=function compile(template,opts){var templ;if(opts&&opts.scope){if(!scopeOptionWarned){console.warn("`scope` option is deprecated and will be removed in EJS 3");scopeOptionWarned=true}if(!opts.context){opts.context=opts.scope}delete opts.scope}templ=new Template(template,opts);return templ.compile()};exports.render=function(template,d,o){var data=d||{};var opts=o||{};if(arguments.length==2){cpOptsInData(data,opts)}return handleCache(opts,template)(data)};exports.renderFile=function(){var args=Array.prototype.slice.call(arguments);var filename=args.shift();var cb=args.pop();var data=args.shift()||{};var opts=args.pop()||{};var result;opts=utils.shallowCopy({},opts);if(arguments.length==3){if(data.settings&&data.settings["view options"]){cpOptsInData(data.settings["view options"],opts)}else{cpOptsInData(data,opts)}}opts.filename=filename;try{result=handleCache(opts)(data)}catch(err){return cb(err)}return cb(null,result)};exports.clearCache=function(){exports.cache.reset()};function Template(text,opts){opts=opts||{};var options={};this.templateText=text;this.mode=null;this.truncate=false;this.currentLine=1;this.source="";this.dependencies=[];options.client=opts.client||false;options.escapeFunction=opts.escape||utils.escapeXML;options.compileDebug=opts.compileDebug!==false;options.debug=!!opts.debug;options.filename=opts.filename;options.delimiter=opts.delimiter||exports.delimiter||_DEFAULT_DELIMITER;options.strict=opts.strict||false;options.context=opts.context;options.cache=opts.cache||false;options.rmWhitespace=opts.rmWhitespace;options.root=opts.root;options.localsName=opts.localsName||exports.localsName||_DEFAULT_LOCALS_NAME;if(options.strict){options._with=false}else{options._with=typeof opts._with!="undefined"?opts._with:true}this.opts=options;this.regex=this.createRegex()}Template.modes={EVAL:"eval",ESCAPED:"escaped",RAW:"raw",COMMENT:"comment",LITERAL:"literal"};Template.prototype={createRegex:function(){var str=_REGEX_STRING;var delim=utils.escapeRegExpChars(this.opts.delimiter);str=str.replace(/%/g,delim);return new RegExp(str)},compile:function(){var src;var fn;var opts=this.opts;var prepended="";var appended="";var escape=opts.escapeFunction;if(!this.source){this.generateSource();prepended+=" var __output = [], __append = __output.push.bind(__output);"+"\n";if(opts._with!==false){prepended+=" with ("+opts.localsName+" || {}) {"+"\n";appended+=" }"+"\n"}appended+=' return __output.join("");'+"\n";this.source=prepended+this.source+appended}if(opts.compileDebug){src="var __line = 1"+"\n"+" , __lines = "+JSON.stringify(this.templateText)+"\n"+" , __filename = "+(opts.filename?JSON.stringify(opts.filename):"undefined")+";"+"\n"+"try {"+"\n"+this.source+"} catch (e) {"+"\n"+" rethrow(e, __lines, __filename, __line);"+"\n"+"}"+"\n"}else{src=this.source}if(opts.debug){console.log(src)}if(opts.client){src="escape = escape || "+escape.toString()+";"+"\n"+src;if(opts.compileDebug){src="rethrow = rethrow || "+rethrow.toString()+";"+"\n"+src}}if(opts.strict){src='"use strict";\n'+src}try{fn=new Function(opts.localsName+", escape, include, rethrow",src)}catch(e){if(e instanceof SyntaxError){if(opts.filename){e.message+=" in "+opts.filename}e.message+=" while compiling ejs"}throw e}if(opts.client){fn.dependencies=this.dependencies;return fn}var returnedFn=function(data){var include=function(path,includeData){var d=utils.shallowCopy({},data);if(includeData){d=utils.shallowCopy(d,includeData)}return includeFile(path,opts)(d)};return fn.apply(opts.context,[data||{},escape,include,rethrow])};returnedFn.dependencies=this.dependencies;return returnedFn},generateSource:function(){var opts=this.opts;if(opts.rmWhitespace){this.templateText=this.templateText.replace(/\r/g,"").replace(/^\s+|\s+$/gm,"")}this.templateText=this.templateText.replace(/[ \t]*<%_/gm,"<%_").replace(/_%>[ \t]*/gm,"_%>");var self=this;var matches=this.parseTemplateText();var d=this.opts.delimiter;if(matches&&matches.length){matches.forEach(function(line,index){var opening;var closing;var include;var includeOpts;var includeObj;var includeSrc;if(line.indexOf("<"+d)===0&&line.indexOf("<"+d+d)!==0){closing=matches[index+2];if(!(closing==d+">"||closing=="-"+d+">"||closing=="_"+d+">")){throw new Error('Could not find matching close tag for "'+line+'".')}}if(include=line.match(/^\s*include\s+(\S+)/)){opening=matches[index-1];if(opening&&(opening=="<"+d||opening=="<"+d+"-"||opening=="<"+d+"_")){includeOpts=utils.shallowCopy({},self.opts);includeObj=includeSource(include[1],includeOpts);if(self.opts.compileDebug){includeSrc=" ; (function(){"+"\n"+" var __line = 1"+"\n"+" , __lines = "+JSON.stringify(includeObj.template)+"\n"+" , __filename = "+JSON.stringify(includeObj.filename)+";"+"\n"+" try {"+"\n"+includeObj.source+" } catch (e) {"+"\n"+" rethrow(e, __lines, __filename, __line);"+"\n"+" }"+"\n"+" ; }).call(this)"+"\n"}else{includeSrc=" ; (function(){"+"\n"+includeObj.source+" ; }).call(this)"+"\n"}self.source+=includeSrc;self.dependencies.push(exports.resolveInclude(include[1],includeOpts.filename));return}}self.scanLine(line)})}},parseTemplateText:function(){var str=this.templateText;var pat=this.regex;var result=pat.exec(str);var arr=[];var firstPos;while(result){firstPos=result.index;if(firstPos!==0){arr.push(str.substring(0,firstPos));str=str.slice(firstPos)}arr.push(result[0]);str=str.slice(result[0].length);result=pat.exec(str)}if(str){arr.push(str)}return arr},scanLine:function(line){var self=this;var d=this.opts.delimiter;var newLineCount=0;function _addOutput(){if(self.truncate){line=line.replace(/^(?:\r\n|\r|\n)/,"");self.truncate=false}else if(self.opts.rmWhitespace){line=line.replace(/^\n/,"")}if(!line){return}line=line.replace(/\\/g,"\\\\");line=line.replace(/\n/g,"\\n");line=line.replace(/\r/g,"\\r");line=line.replace(/"/g,'\\"');self.source+=' ; __append("'+line+'")'+"\n"}newLineCount=line.split("\n").length-1;switch(line){case"<"+d:case"<"+d+"_":this.mode=Template.modes.EVAL;break;case"<"+d+"=":this.mode=Template.modes.ESCAPED;break;case"<"+d+"-":this.mode=Template.modes.RAW;break;case"<"+d+"#":this.mode=Template.modes.COMMENT;break;case"<"+d+d:this.mode=Template.modes.LITERAL;this.source+=' ; __append("'+line.replace("<"+d+d,"<"+d)+'")'+"\n";break;case d+d+">":this.mode=Template.modes.LITERAL;this.source+=' ; __append("'+line.replace(d+d+">",d+">")+'")'+"\n";break;case d+">":case"-"+d+">":case"_"+d+">":if(this.mode==Template.modes.LITERAL){_addOutput()}this.mode=null;this.truncate=line.indexOf("-")===0||line.indexOf("_")===0;break;default:if(this.mode){switch(this.mode){case Template.modes.EVAL:case Template.modes.ESCAPED:case Template.modes.RAW:if(line.lastIndexOf("//")>line.lastIndexOf("\n")){line+="\n"}}switch(this.mode){case Template.modes.EVAL:this.source+=" ; "+line+"\n";break;case Template.modes.ESCAPED:this.source+=" ; __append(escape("+line.replace(_TRAILING_SEMCOL,"").trim()+"))"+"\n";break;case Template.modes.RAW:this.source+=" ; __append("+line.replace(_TRAILING_SEMCOL,"").trim()+")"+"\n";break;case Template.modes.COMMENT:break;case Template.modes.LITERAL:_addOutput();break}}else{_addOutput()}}if(self.opts.compileDebug&&newLineCount){this.currentLine+=newLineCount;this.source+=" ; __line = "+this.currentLine+"\n"}}};exports.escapeXML=utils.escapeXML;exports.__express=exports.renderFile;if(require.extensions){require.extensions[".ejs"]=function(module,flnm){var filename=flnm||module.filename;var options={filename:filename,client:true};var template=fs.readFileSync(filename).toString();var fn=exports.compile(template,options);module._compile("module.exports = "+fn.toString()+";",filename)}}exports.VERSION=_VERSION_STRING;if(typeof window!="undefined"){window.ejs=exports}},{"../package.json":6,"./utils":2,fs:3,path:4}],2:[function(require,module,exports){"use strict";var regExpChars=/[|\\{}()[\]^$+*?.]/g;exports.escapeRegExpChars=function(string){if(!string){return""}return String(string).replace(regExpChars,"\\$&")};var _ENCODE_HTML_RULES={"&":"&","<":"<",">":">",'"':""","'":"'"},_MATCH_HTML=/[&<>\'"]/g;function encode_char(c){return _ENCODE_HTML_RULES[c]||c}var escapeFuncStr="var _ENCODE_HTML_RULES = {\n"+' "&": "&"\n'+' , "<": "<"\n'+' , ">": ">"\n'+' , \'"\': """\n'+' , "\'": "'"\n'+" }\n"+" , _MATCH_HTML = /[&<>'\"]/g;\n"+"function encode_char(c) {\n"+" return _ENCODE_HTML_RULES[c] || c;\n"+"};\n";exports.escapeXML=function(markup){return markup==undefined?"":String(markup).replace(_MATCH_HTML,encode_char)};exports.escapeXML.toString=function(){return Function.prototype.toString.call(this)+";\n"+escapeFuncStr};exports.shallowCopy=function(to,from){from=from||{};for(var p in from){to[p]=from[p]}return to};exports.cache={_data:{},set:function(key,val){this._data[key]=val},get:function(key){return this._data[key]},reset:function(){this._data={}}}},{}],3:[function(require,module,exports){},{}],4:[function(require,module,exports){(function(process){function normalizeArray(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;var splitPath=function(filename){return splitPathRe.exec(filename).slice(1)};exports.resolve=function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){continue}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=normalizeArray(filter(resolvedPath.split("/"),function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."};exports.normalize=function(path){var isAbsolute=exports.isAbsolute(path),trailingSlash=substr(path,-1)==="/";path=normalizeArray(filter(path.split("/"),function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path};exports.isAbsolute=function(path){return path.charAt(0)==="/"};exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p,index){if(typeof p!=="string"){throw new TypeError("Arguments to path.join must be strings")}return p}).join("/"))};exports.relative=function(from,to){from=exports.resolve(from).substr(1);to=exports.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")};exports.sep="/";exports.delimiter=":";exports.dirname=function(path){var result=splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir};exports.basename=function(path,ext){var f=splitPath(path)[2];if(ext&&f.substr(-1*ext.length)===ext){f=f.substr(0,f.length-ext.length)}return f};exports.extname=function(path){return splitPath(path)[3]};function filter(xs,f){if(xs.filter)return xs.filter(f);var res=[];for(var i=0;i<xs.length;i++){if(f(xs[i],i,xs))res.push(xs[i])}return res}var substr="ab".substr(-1)==="b"?function(str,start,len){return str.substr(start,len)}:function(str,start,len){if(start<0)start=str.length+start;return str.substr(start,len)}}).call(this,require("_process"))},{_process:5}],5:[function(require,module,exports){var process=module.exports={};var queue=[];var draining=false;function drainQueue(){if(draining){return}draining=true;var currentQueue;var len=queue.length;while(len){currentQueue=queue;queue=[];var i=-1;while(++i<len){currentQueue[i]()}len=queue.length}draining=false}process.nextTick=function(fun){queue.push(fun);if(!draining){setTimeout(drainQueue,0)}};process.title="browser";process.browser=true;process.env={};process.argv=[];process.version="";process.versions={};function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")};process.umask=function(){return 0}},{}],6:[function(require,module,exports){module.exports={name:"ejs",description:"Embedded JavaScript templates",keywords:["template","engine","ejs"],version:"2.5.1",author:"Matthew Eernisse <mde@fleegix.org> (http://fleegix.org)",contributors:["Timothy Gu <timothygu99@gmail.com> (https://timothygu.github.io)"],license:"Apache-2.0",main:"./lib/ejs.js",repository:{type:"git",url:"git://github.com/mde/ejs.git"},bugs:"https://github.com/mde/ejs/issues",homepage:"https://github.com/mde/ejs",dependencies:{},devDependencies:{browserify:"^13.0.1",eslint:"^3.0.0",istanbul:"~0.4.3",jake:"^8.0.0",jsdoc:"^3.4.0","lru-cache":"^4.0.1",mocha:"^3.0.2",rimraf:"^2.2.8","uglify-js":"^2.6.2"},engines:{node:">=0.10.0"},scripts:{test:"mocha",coverage:"istanbul cover node_modules/mocha/bin/_mocha",doc:"rimraf out && jsdoc -c jsdoc.json lib/* docs/jsdoc/*",devdoc:"rimraf out && jsdoc -p -c jsdoc.json lib/* docs/jsdoc/*"}}},{}]},{},[1])(1)});
|
799
nodejs/node_modules/ejs/lib/ejs.js
generated
vendored
799
nodejs/node_modules/ejs/lib/ejs.js
generated
vendored
@@ -1,799 +0,0 @@
|
||||
/*
|
||||
* EJS Embedded JavaScript templates
|
||||
* Copyright 2112 Matthew Eernisse (mde@fleegix.org)
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* @file Embedded JavaScript templating engine.
|
||||
* @author Matthew Eernisse <mde@fleegix.org>
|
||||
* @author Tiancheng "Timothy" Gu <timothygu99@gmail.com>
|
||||
* @project EJS
|
||||
* @license {@link http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0}
|
||||
*/
|
||||
|
||||
/**
|
||||
* EJS internal functions.
|
||||
*
|
||||
* Technically this "module" lies in the same file as {@link module:ejs}, for
|
||||
* the sake of organization all the private functions re grouped into this
|
||||
* module.
|
||||
*
|
||||
* @module ejs-internal
|
||||
* @private
|
||||
*/
|
||||
|
||||
/**
|
||||
* Embedded JavaScript templating engine.
|
||||
*
|
||||
* @module ejs
|
||||
* @public
|
||||
*/
|
||||
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var utils = require('./utils');
|
||||
|
||||
var scopeOptionWarned = false;
|
||||
var _VERSION_STRING = require('../package.json').version;
|
||||
var _DEFAULT_DELIMITER = '%';
|
||||
var _DEFAULT_LOCALS_NAME = 'locals';
|
||||
var _REGEX_STRING = '(<%%|%%>|<%=|<%-|<%_|<%#|<%|%>|-%>|_%>)';
|
||||
var _OPTS = [ 'cache', 'filename', 'delimiter', 'scope', 'context',
|
||||
'debug', 'compileDebug', 'client', '_with', 'root', 'rmWhitespace',
|
||||
'strict', 'localsName'];
|
||||
var _TRAILING_SEMCOL = /;\s*$/;
|
||||
var _BOM = /^\uFEFF/;
|
||||
|
||||
/**
|
||||
* EJS template function cache. This can be a LRU object from lru-cache NPM
|
||||
* module. By default, it is {@link module:utils.cache}, a simple in-process
|
||||
* cache that grows continuously.
|
||||
*
|
||||
* @type {Cache}
|
||||
*/
|
||||
|
||||
exports.cache = utils.cache;
|
||||
|
||||
/**
|
||||
* Name of the object containing the locals.
|
||||
*
|
||||
* This variable is overriden by {@link Options}`.localsName` if it is not
|
||||
* `undefined`.
|
||||
*
|
||||
* @type {String}
|
||||
* @public
|
||||
*/
|
||||
|
||||
exports.localsName = _DEFAULT_LOCALS_NAME;
|
||||
|
||||
/**
|
||||
* Get the path to the included file from the parent file path and the
|
||||
* specified path.
|
||||
*
|
||||
* @param {String} name specified path
|
||||
* @param {String} filename parent file path
|
||||
* @param {Boolean} isDir parent file path whether is directory
|
||||
* @return {String}
|
||||
*/
|
||||
exports.resolveInclude = function(name, filename, isDir) {
|
||||
var dirname = path.dirname;
|
||||
var extname = path.extname;
|
||||
var resolve = path.resolve;
|
||||
var includePath = resolve(isDir ? filename : dirname(filename), name);
|
||||
var ext = extname(name);
|
||||
if (!ext) {
|
||||
includePath += '.ejs';
|
||||
}
|
||||
return includePath;
|
||||
};
|
||||
|
||||
/**
|
||||
* Get the path to the included file by Options
|
||||
*
|
||||
* @param {String} path specified path
|
||||
* @param {Options} options compilation options
|
||||
* @return {String}
|
||||
*/
|
||||
function getIncludePath(path, options){
|
||||
var includePath;
|
||||
if (path.charAt(0) == '/') {
|
||||
includePath = exports.resolveInclude(path.replace(/^\/*/,''), options.root || '/', true);
|
||||
}
|
||||
else {
|
||||
if (!options.filename) {
|
||||
throw new Error('`include` use relative path requires the \'filename\' option.');
|
||||
}
|
||||
includePath = exports.resolveInclude(path, options.filename);
|
||||
}
|
||||
return includePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the template from a string or a file, either compiled on-the-fly or
|
||||
* read from cache (if enabled), and cache the template if needed.
|
||||
*
|
||||
* If `template` is not set, the file specified in `options.filename` will be
|
||||
* read.
|
||||
*
|
||||
* If `options.cache` is true, this function reads the file from
|
||||
* `options.filename` so it must be set prior to calling this function.
|
||||
*
|
||||
* @memberof module:ejs-internal
|
||||
* @param {Options} options compilation options
|
||||
* @param {String} [template] template source
|
||||
* @return {(TemplateFunction|ClientFunction)}
|
||||
* Depending on the value of `options.client`, either type might be returned.
|
||||
* @static
|
||||
*/
|
||||
|
||||
function handleCache(options, template) {
|
||||
var func;
|
||||
var filename = options.filename;
|
||||
var hasTemplate = arguments.length > 1;
|
||||
|
||||
if (options.cache) {
|
||||
if (!filename) {
|
||||
throw new Error('cache option requires a filename');
|
||||
}
|
||||
func = exports.cache.get(filename);
|
||||
if (func) {
|
||||
return func;
|
||||
}
|
||||
if (!hasTemplate) {
|
||||
template = fs.readFileSync(filename).toString().replace(_BOM, '');
|
||||
}
|
||||
}
|
||||
else if (!hasTemplate) {
|
||||
// istanbul ignore if: should not happen at all
|
||||
if (!filename) {
|
||||
throw new Error('Internal EJS error: no file name or template '
|
||||
+ 'provided');
|
||||
}
|
||||
template = fs.readFileSync(filename).toString().replace(_BOM, '');
|
||||
}
|
||||
func = exports.compile(template, options);
|
||||
if (options.cache) {
|
||||
exports.cache.set(filename, func);
|
||||
}
|
||||
return func;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the template function.
|
||||
*
|
||||
* If `options.cache` is `true`, then the template is cached.
|
||||
*
|
||||
* @memberof module:ejs-internal
|
||||
* @param {String} path path for the specified file
|
||||
* @param {Options} options compilation options
|
||||
* @return {(TemplateFunction|ClientFunction)}
|
||||
* Depending on the value of `options.client`, either type might be returned
|
||||
* @static
|
||||
*/
|
||||
|
||||
function includeFile(path, options) {
|
||||
var opts = utils.shallowCopy({}, options);
|
||||
opts.filename = getIncludePath(path, opts);
|
||||
return handleCache(opts);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the JavaScript source of an included file.
|
||||
*
|
||||
* @memberof module:ejs-internal
|
||||
* @param {String} path path for the specified file
|
||||
* @param {Options} options compilation options
|
||||
* @return {Object}
|
||||
* @static
|
||||
*/
|
||||
|
||||
function includeSource(path, options) {
|
||||
var opts = utils.shallowCopy({}, options);
|
||||
var includePath;
|
||||
var template;
|
||||
includePath = getIncludePath(path,opts);
|
||||
template = fs.readFileSync(includePath).toString().replace(_BOM, '');
|
||||
opts.filename = includePath;
|
||||
var templ = new Template(template, opts);
|
||||
templ.generateSource();
|
||||
return {
|
||||
source: templ.source,
|
||||
filename: includePath,
|
||||
template: template
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-throw the given `err` in context to the `str` of ejs, `filename`, and
|
||||
* `lineno`.
|
||||
*
|
||||
* @implements RethrowCallback
|
||||
* @memberof module:ejs-internal
|
||||
* @param {Error} err Error object
|
||||
* @param {String} str EJS source
|
||||
* @param {String} filename file name of the EJS file
|
||||
* @param {String} lineno line number of the error
|
||||
* @static
|
||||
*/
|
||||
|
||||
function rethrow(err, str, filename, lineno){
|
||||
var lines = str.split('\n');
|
||||
var start = Math.max(lineno - 3, 0);
|
||||
var end = Math.min(lines.length, lineno + 3);
|
||||
// Error context
|
||||
var context = lines.slice(start, end).map(function (line, i){
|
||||
var curr = i + start + 1;
|
||||
return (curr == lineno ? ' >> ' : ' ')
|
||||
+ curr
|
||||
+ '| '
|
||||
+ line;
|
||||
}).join('\n');
|
||||
|
||||
// Alter exception message
|
||||
err.path = filename;
|
||||
err.message = (filename || 'ejs') + ':'
|
||||
+ lineno + '\n'
|
||||
+ context + '\n\n'
|
||||
+ err.message;
|
||||
|
||||
throw err;
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy properties in data object that are recognized as options to an
|
||||
* options object.
|
||||
*
|
||||
* This is used for compatibility with earlier versions of EJS and Express.js.
|
||||
*
|
||||
* @memberof module:ejs-internal
|
||||
* @param {Object} data data object
|
||||
* @param {Options} opts options object
|
||||
* @static
|
||||
*/
|
||||
|
||||
function cpOptsInData(data, opts) {
|
||||
_OPTS.forEach(function (p) {
|
||||
if (typeof data[p] != 'undefined') {
|
||||
opts[p] = data[p];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Compile the given `str` of ejs into a template function.
|
||||
*
|
||||
* @param {String} template EJS template
|
||||
*
|
||||
* @param {Options} opts compilation options
|
||||
*
|
||||
* @return {(TemplateFunction|ClientFunction)}
|
||||
* Depending on the value of `opts.client`, either type might be returned.
|
||||
* @public
|
||||
*/
|
||||
|
||||
exports.compile = function compile(template, opts) {
|
||||
var templ;
|
||||
|
||||
// v1 compat
|
||||
// 'scope' is 'context'
|
||||
// FIXME: Remove this in a future version
|
||||
if (opts && opts.scope) {
|
||||
if (!scopeOptionWarned){
|
||||
console.warn('`scope` option is deprecated and will be removed in EJS 3');
|
||||
scopeOptionWarned = true;
|
||||
}
|
||||
if (!opts.context) {
|
||||
opts.context = opts.scope;
|
||||
}
|
||||
delete opts.scope;
|
||||
}
|
||||
templ = new Template(template, opts);
|
||||
return templ.compile();
|
||||
};
|
||||
|
||||
/**
|
||||
* Render the given `template` of ejs.
|
||||
*
|
||||
* If you would like to include options but not data, you need to explicitly
|
||||
* call this function with `data` being an empty object or `null`.
|
||||
*
|
||||
* @param {String} template EJS template
|
||||
* @param {Object} [data={}] template data
|
||||
* @param {Options} [opts={}] compilation and rendering options
|
||||
* @return {String}
|
||||
* @public
|
||||
*/
|
||||
|
||||
exports.render = function (template, d, o) {
|
||||
var data = d || {};
|
||||
var opts = o || {};
|
||||
|
||||
// No options object -- if there are optiony names
|
||||
// in the data, copy them to options
|
||||
if (arguments.length == 2) {
|
||||
cpOptsInData(data, opts);
|
||||
}
|
||||
|
||||
return handleCache(opts, template)(data);
|
||||
};
|
||||
|
||||
/**
|
||||
* Render an EJS file at the given `path` and callback `cb(err, str)`.
|
||||
*
|
||||
* If you would like to include options but not data, you need to explicitly
|
||||
* call this function with `data` being an empty object or `null`.
|
||||
*
|
||||
* @param {String} path path to the EJS file
|
||||
* @param {Object} [data={}] template data
|
||||
* @param {Options} [opts={}] compilation and rendering options
|
||||
* @param {RenderFileCallback} cb callback
|
||||
* @public
|
||||
*/
|
||||
|
||||
exports.renderFile = function () {
|
||||
var args = Array.prototype.slice.call(arguments);
|
||||
var filename = args.shift();
|
||||
var cb = args.pop();
|
||||
var data = args.shift() || {};
|
||||
var opts = args.pop() || {};
|
||||
var result;
|
||||
|
||||
// Don't pollute passed in opts obj with new vals
|
||||
opts = utils.shallowCopy({}, opts);
|
||||
|
||||
// No options object -- if there are optiony names
|
||||
// in the data, copy them to options
|
||||
if (arguments.length == 3) {
|
||||
// Express 4
|
||||
if (data.settings && data.settings['view options']) {
|
||||
cpOptsInData(data.settings['view options'], opts);
|
||||
}
|
||||
// Express 3 and lower
|
||||
else {
|
||||
cpOptsInData(data, opts);
|
||||
}
|
||||
}
|
||||
opts.filename = filename;
|
||||
|
||||
try {
|
||||
result = handleCache(opts)(data);
|
||||
}
|
||||
catch(err) {
|
||||
return cb(err);
|
||||
}
|
||||
return cb(null, result);
|
||||
};
|
||||
|
||||
/**
|
||||
* Clear intermediate JavaScript cache. Calls {@link Cache#reset}.
|
||||
* @public
|
||||
*/
|
||||
|
||||
exports.clearCache = function () {
|
||||
exports.cache.reset();
|
||||
};
|
||||
|
||||
function Template(text, opts) {
|
||||
opts = opts || {};
|
||||
var options = {};
|
||||
this.templateText = text;
|
||||
this.mode = null;
|
||||
this.truncate = false;
|
||||
this.currentLine = 1;
|
||||
this.source = '';
|
||||
this.dependencies = [];
|
||||
options.client = opts.client || false;
|
||||
options.escapeFunction = opts.escape || utils.escapeXML;
|
||||
options.compileDebug = opts.compileDebug !== false;
|
||||
options.debug = !!opts.debug;
|
||||
options.filename = opts.filename;
|
||||
options.delimiter = opts.delimiter || exports.delimiter || _DEFAULT_DELIMITER;
|
||||
options.strict = opts.strict || false;
|
||||
options.context = opts.context;
|
||||
options.cache = opts.cache || false;
|
||||
options.rmWhitespace = opts.rmWhitespace;
|
||||
options.root = opts.root;
|
||||
options.localsName = opts.localsName || exports.localsName || _DEFAULT_LOCALS_NAME;
|
||||
|
||||
if (options.strict) {
|
||||
options._with = false;
|
||||
}
|
||||
else {
|
||||
options._with = typeof opts._with != 'undefined' ? opts._with : true;
|
||||
}
|
||||
|
||||
this.opts = options;
|
||||
|
||||
this.regex = this.createRegex();
|
||||
}
|
||||
|
||||
Template.modes = {
|
||||
EVAL: 'eval',
|
||||
ESCAPED: 'escaped',
|
||||
RAW: 'raw',
|
||||
COMMENT: 'comment',
|
||||
LITERAL: 'literal'
|
||||
};
|
||||
|
||||
Template.prototype = {
|
||||
createRegex: function () {
|
||||
var str = _REGEX_STRING;
|
||||
var delim = utils.escapeRegExpChars(this.opts.delimiter);
|
||||
str = str.replace(/%/g, delim);
|
||||
return new RegExp(str);
|
||||
},
|
||||
|
||||
compile: function () {
|
||||
var src;
|
||||
var fn;
|
||||
var opts = this.opts;
|
||||
var prepended = '';
|
||||
var appended = '';
|
||||
var escape = opts.escapeFunction;
|
||||
|
||||
if (!this.source) {
|
||||
this.generateSource();
|
||||
prepended += ' var __output = [], __append = __output.push.bind(__output);' + '\n';
|
||||
if (opts._with !== false) {
|
||||
prepended += ' with (' + opts.localsName + ' || {}) {' + '\n';
|
||||
appended += ' }' + '\n';
|
||||
}
|
||||
appended += ' return __output.join("");' + '\n';
|
||||
this.source = prepended + this.source + appended;
|
||||
}
|
||||
|
||||
if (opts.compileDebug) {
|
||||
src = 'var __line = 1' + '\n'
|
||||
+ ' , __lines = ' + JSON.stringify(this.templateText) + '\n'
|
||||
+ ' , __filename = ' + (opts.filename ?
|
||||
JSON.stringify(opts.filename) : 'undefined') + ';' + '\n'
|
||||
+ 'try {' + '\n'
|
||||
+ this.source
|
||||
+ '} catch (e) {' + '\n'
|
||||
+ ' rethrow(e, __lines, __filename, __line);' + '\n'
|
||||
+ '}' + '\n';
|
||||
}
|
||||
else {
|
||||
src = this.source;
|
||||
}
|
||||
|
||||
if (opts.debug) {
|
||||
console.log(src);
|
||||
}
|
||||
|
||||
if (opts.client) {
|
||||
src = 'escape = escape || ' + escape.toString() + ';' + '\n' + src;
|
||||
if (opts.compileDebug) {
|
||||
src = 'rethrow = rethrow || ' + rethrow.toString() + ';' + '\n' + src;
|
||||
}
|
||||
}
|
||||
|
||||
if (opts.strict) {
|
||||
src = '"use strict";\n' + src;
|
||||
}
|
||||
|
||||
try {
|
||||
fn = new Function(opts.localsName + ', escape, include, rethrow', src);
|
||||
}
|
||||
catch(e) {
|
||||
// istanbul ignore else
|
||||
if (e instanceof SyntaxError) {
|
||||
if (opts.filename) {
|
||||
e.message += ' in ' + opts.filename;
|
||||
}
|
||||
e.message += ' while compiling ejs';
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
|
||||
if (opts.client) {
|
||||
fn.dependencies = this.dependencies;
|
||||
return fn;
|
||||
}
|
||||
|
||||
// Return a callable function which will execute the function
|
||||
// created by the source-code, with the passed data as locals
|
||||
// Adds a local `include` function which allows full recursive include
|
||||
var returnedFn = function (data) {
|
||||
var include = function (path, includeData) {
|
||||
var d = utils.shallowCopy({}, data);
|
||||
if (includeData) {
|
||||
d = utils.shallowCopy(d, includeData);
|
||||
}
|
||||
return includeFile(path, opts)(d);
|
||||
};
|
||||
return fn.apply(opts.context, [data || {}, escape, include, rethrow]);
|
||||
};
|
||||
returnedFn.dependencies = this.dependencies;
|
||||
return returnedFn;
|
||||
},
|
||||
|
||||
generateSource: function () {
|
||||
var opts = this.opts;
|
||||
|
||||
if (opts.rmWhitespace) {
|
||||
// Have to use two separate replace here as `^` and `$` operators don't
|
||||
// work well with `\r`.
|
||||
this.templateText =
|
||||
this.templateText.replace(/\r/g, '').replace(/^\s+|\s+$/gm, '');
|
||||
}
|
||||
|
||||
// Slurp spaces and tabs before <%_ and after _%>
|
||||
this.templateText =
|
||||
this.templateText.replace(/[ \t]*<%_/gm, '<%_').replace(/_%>[ \t]*/gm, '_%>');
|
||||
|
||||
var self = this;
|
||||
var matches = this.parseTemplateText();
|
||||
var d = this.opts.delimiter;
|
||||
|
||||
if (matches && matches.length) {
|
||||
matches.forEach(function (line, index) {
|
||||
var opening;
|
||||
var closing;
|
||||
var include;
|
||||
var includeOpts;
|
||||
var includeObj;
|
||||
var includeSrc;
|
||||
// If this is an opening tag, check for closing tags
|
||||
// FIXME: May end up with some false positives here
|
||||
// Better to store modes as k/v with '<' + delimiter as key
|
||||
// Then this can simply check against the map
|
||||
if ( line.indexOf('<' + d) === 0 // If it is a tag
|
||||
&& line.indexOf('<' + d + d) !== 0) { // and is not escaped
|
||||
closing = matches[index + 2];
|
||||
if (!(closing == d + '>' || closing == '-' + d + '>' || closing == '_' + d + '>')) {
|
||||
throw new Error('Could not find matching close tag for "' + line + '".');
|
||||
}
|
||||
}
|
||||
// HACK: backward-compat `include` preprocessor directives
|
||||
if ((include = line.match(/^\s*include\s+(\S+)/))) {
|
||||
opening = matches[index - 1];
|
||||
// Must be in EVAL or RAW mode
|
||||
if (opening && (opening == '<' + d || opening == '<' + d + '-' || opening == '<' + d + '_')) {
|
||||
includeOpts = utils.shallowCopy({}, self.opts);
|
||||
includeObj = includeSource(include[1], includeOpts);
|
||||
if (self.opts.compileDebug) {
|
||||
includeSrc =
|
||||
' ; (function(){' + '\n'
|
||||
+ ' var __line = 1' + '\n'
|
||||
+ ' , __lines = ' + JSON.stringify(includeObj.template) + '\n'
|
||||
+ ' , __filename = ' + JSON.stringify(includeObj.filename) + ';' + '\n'
|
||||
+ ' try {' + '\n'
|
||||
+ includeObj.source
|
||||
+ ' } catch (e) {' + '\n'
|
||||
+ ' rethrow(e, __lines, __filename, __line);' + '\n'
|
||||
+ ' }' + '\n'
|
||||
+ ' ; }).call(this)' + '\n';
|
||||
}else{
|
||||
includeSrc = ' ; (function(){' + '\n' + includeObj.source +
|
||||
' ; }).call(this)' + '\n';
|
||||
}
|
||||
self.source += includeSrc;
|
||||
self.dependencies.push(exports.resolveInclude(include[1],
|
||||
includeOpts.filename));
|
||||
return;
|
||||
}
|
||||
}
|
||||
self.scanLine(line);
|
||||
});
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
parseTemplateText: function () {
|
||||
var str = this.templateText;
|
||||
var pat = this.regex;
|
||||
var result = pat.exec(str);
|
||||
var arr = [];
|
||||
var firstPos;
|
||||
|
||||
while (result) {
|
||||
firstPos = result.index;
|
||||
|
||||
if (firstPos !== 0) {
|
||||
arr.push(str.substring(0, firstPos));
|
||||
str = str.slice(firstPos);
|
||||
}
|
||||
|
||||
arr.push(result[0]);
|
||||
str = str.slice(result[0].length);
|
||||
result = pat.exec(str);
|
||||
}
|
||||
|
||||
if (str) {
|
||||
arr.push(str);
|
||||
}
|
||||
|
||||
return arr;
|
||||
},
|
||||
|
||||
scanLine: function (line) {
|
||||
var self = this;
|
||||
var d = this.opts.delimiter;
|
||||
var newLineCount = 0;
|
||||
|
||||
function _addOutput() {
|
||||
if (self.truncate) {
|
||||
// Only replace single leading linebreak in the line after
|
||||
// -%> tag -- this is the single, trailing linebreak
|
||||
// after the tag that the truncation mode replaces
|
||||
// Handle Win / Unix / old Mac linebreaks -- do the \r\n
|
||||
// combo first in the regex-or
|
||||
line = line.replace(/^(?:\r\n|\r|\n)/, '');
|
||||
self.truncate = false;
|
||||
}
|
||||
else if (self.opts.rmWhitespace) {
|
||||
// Gotta be more careful here.
|
||||
// .replace(/^(\s*)\n/, '$1') might be more appropriate here but as
|
||||
// rmWhitespace already removes trailing spaces anyway so meh.
|
||||
line = line.replace(/^\n/, '');
|
||||
}
|
||||
if (!line) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Preserve literal slashes
|
||||
line = line.replace(/\\/g, '\\\\');
|
||||
|
||||
// Convert linebreaks
|
||||
line = line.replace(/\n/g, '\\n');
|
||||
line = line.replace(/\r/g, '\\r');
|
||||
|
||||
// Escape double-quotes
|
||||
// - this will be the delimiter during execution
|
||||
line = line.replace(/"/g, '\\"');
|
||||
self.source += ' ; __append("' + line + '")' + '\n';
|
||||
}
|
||||
|
||||
newLineCount = (line.split('\n').length - 1);
|
||||
|
||||
switch (line) {
|
||||
case '<' + d:
|
||||
case '<' + d + '_':
|
||||
this.mode = Template.modes.EVAL;
|
||||
break;
|
||||
case '<' + d + '=':
|
||||
this.mode = Template.modes.ESCAPED;
|
||||
break;
|
||||
case '<' + d + '-':
|
||||
this.mode = Template.modes.RAW;
|
||||
break;
|
||||
case '<' + d + '#':
|
||||
this.mode = Template.modes.COMMENT;
|
||||
break;
|
||||
case '<' + d + d:
|
||||
this.mode = Template.modes.LITERAL;
|
||||
this.source += ' ; __append("' + line.replace('<' + d + d, '<' + d) + '")' + '\n';
|
||||
break;
|
||||
case d + d + '>':
|
||||
this.mode = Template.modes.LITERAL;
|
||||
this.source += ' ; __append("' + line.replace(d + d + '>', d + '>') + '")' + '\n';
|
||||
break;
|
||||
case d + '>':
|
||||
case '-' + d + '>':
|
||||
case '_' + d + '>':
|
||||
if (this.mode == Template.modes.LITERAL) {
|
||||
_addOutput();
|
||||
}
|
||||
|
||||
this.mode = null;
|
||||
this.truncate = line.indexOf('-') === 0 || line.indexOf('_') === 0;
|
||||
break;
|
||||
default:
|
||||
// In script mode, depends on type of tag
|
||||
if (this.mode) {
|
||||
// If '//' is found without a line break, add a line break.
|
||||
switch (this.mode) {
|
||||
case Template.modes.EVAL:
|
||||
case Template.modes.ESCAPED:
|
||||
case Template.modes.RAW:
|
||||
if (line.lastIndexOf('//') > line.lastIndexOf('\n')) {
|
||||
line += '\n';
|
||||
}
|
||||
}
|
||||
switch (this.mode) {
|
||||
// Just executing code
|
||||
case Template.modes.EVAL:
|
||||
this.source += ' ; ' + line + '\n';
|
||||
break;
|
||||
// Exec, esc, and output
|
||||
case Template.modes.ESCAPED:
|
||||
this.source += ' ; __append(escape(' +
|
||||
line.replace(_TRAILING_SEMCOL, '').trim() + '))' + '\n';
|
||||
break;
|
||||
// Exec and output
|
||||
case Template.modes.RAW:
|
||||
this.source += ' ; __append(' +
|
||||
line.replace(_TRAILING_SEMCOL, '').trim() + ')' + '\n';
|
||||
break;
|
||||
case Template.modes.COMMENT:
|
||||
// Do nothing
|
||||
break;
|
||||
// Literal <%% mode, append as raw output
|
||||
case Template.modes.LITERAL:
|
||||
_addOutput();
|
||||
break;
|
||||
}
|
||||
}
|
||||
// In string mode, just add the output
|
||||
else {
|
||||
_addOutput();
|
||||
}
|
||||
}
|
||||
|
||||
if (self.opts.compileDebug && newLineCount) {
|
||||
this.currentLine += newLineCount;
|
||||
this.source += ' ; __line = ' + this.currentLine + '\n';
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Escape characters reserved in XML.
|
||||
*
|
||||
* This is simply an export of {@link module:utils.escapeXML}.
|
||||
*
|
||||
* If `markup` is `undefined` or `null`, the empty string is returned.
|
||||
*
|
||||
* @param {String} markup Input string
|
||||
* @return {String} Escaped string
|
||||
* @public
|
||||
* @func
|
||||
* */
|
||||
exports.escapeXML = utils.escapeXML;
|
||||
|
||||
/**
|
||||
* Express.js support.
|
||||
*
|
||||
* This is an alias for {@link module:ejs.renderFile}, in order to support
|
||||
* Express.js out-of-the-box.
|
||||
*
|
||||
* @func
|
||||
*/
|
||||
|
||||
exports.__express = exports.renderFile;
|
||||
|
||||
// Add require support
|
||||
/* istanbul ignore else */
|
||||
if (require.extensions) {
|
||||
require.extensions['.ejs'] = function (module, flnm) {
|
||||
var filename = flnm || /* istanbul ignore next */ module.filename;
|
||||
var options = {
|
||||
filename: filename,
|
||||
client: true
|
||||
};
|
||||
var template = fs.readFileSync(filename).toString();
|
||||
var fn = exports.compile(template, options);
|
||||
module._compile('module.exports = ' + fn.toString() + ';', filename);
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Version of EJS.
|
||||
*
|
||||
* @readonly
|
||||
* @type {String}
|
||||
* @public
|
||||
*/
|
||||
|
||||
exports.VERSION = _VERSION_STRING;
|
||||
|
||||
/* istanbul ignore if */
|
||||
if (typeof window != 'undefined') {
|
||||
window.ejs = exports;
|
||||
}
|
141
nodejs/node_modules/ejs/lib/utils.js
generated
vendored
141
nodejs/node_modules/ejs/lib/utils.js
generated
vendored
@@ -1,141 +0,0 @@
|
||||
/*
|
||||
* EJS Embedded JavaScript templates
|
||||
* Copyright 2112 Matthew Eernisse (mde@fleegix.org)
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* Private utility functions
|
||||
* @module utils
|
||||
* @private
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var regExpChars = /[|\\{}()[\]^$+*?.]/g;
|
||||
|
||||
/**
|
||||
* Escape characters reserved in regular expressions.
|
||||
*
|
||||
* If `string` is `undefined` or `null`, the empty string is returned.
|
||||
*
|
||||
* @param {String} string Input string
|
||||
* @return {String} Escaped string
|
||||
* @static
|
||||
* @private
|
||||
*/
|
||||
exports.escapeRegExpChars = function (string) {
|
||||
// istanbul ignore if
|
||||
if (!string) {
|
||||
return '';
|
||||
}
|
||||
return String(string).replace(regExpChars, '\\$&');
|
||||
};
|
||||
|
||||
var _ENCODE_HTML_RULES = {
|
||||
'&': '&'
|
||||
, '<': '<'
|
||||
, '>': '>'
|
||||
, '"': '"'
|
||||
, "'": '''
|
||||
}
|
||||
, _MATCH_HTML = /[&<>\'"]/g;
|
||||
|
||||
function encode_char(c) {
|
||||
return _ENCODE_HTML_RULES[c] || c;
|
||||
};
|
||||
|
||||
/**
|
||||
* Stringified version of constants used by {@link module:utils.escapeXML}.
|
||||
*
|
||||
* It is used in the process of generating {@link ClientFunction}s.
|
||||
*
|
||||
* @readonly
|
||||
* @type {String}
|
||||
*/
|
||||
|
||||
var escapeFuncStr =
|
||||
'var _ENCODE_HTML_RULES = {\n'
|
||||
+ ' "&": "&"\n'
|
||||
+ ' , "<": "<"\n'
|
||||
+ ' , ">": ">"\n'
|
||||
+ ' , \'"\': """\n'
|
||||
+ ' , "\'": "'"\n'
|
||||
+ ' }\n'
|
||||
+ ' , _MATCH_HTML = /[&<>\'"]/g;\n'
|
||||
+ 'function encode_char(c) {\n'
|
||||
+ ' return _ENCODE_HTML_RULES[c] || c;\n'
|
||||
+ '};\n';
|
||||
|
||||
/**
|
||||
* Escape characters reserved in XML.
|
||||
*
|
||||
* If `markup` is `undefined` or `null`, the empty string is returned.
|
||||
*
|
||||
* @implements {EscapeCallback}
|
||||
* @param {String} markup Input string
|
||||
* @return {String} Escaped string
|
||||
* @static
|
||||
* @private
|
||||
*/
|
||||
|
||||
exports.escapeXML = function (markup) {
|
||||
return markup == undefined
|
||||
? ''
|
||||
: String(markup)
|
||||
.replace(_MATCH_HTML, encode_char);
|
||||
};
|
||||
exports.escapeXML.toString = function () {
|
||||
return Function.prototype.toString.call(this) + ';\n' + escapeFuncStr
|
||||
};
|
||||
|
||||
/**
|
||||
* Copy all properties from one object to another, in a shallow fashion.
|
||||
*
|
||||
* @param {Object} to Destination object
|
||||
* @param {Object} from Source object
|
||||
* @return {Object} Destination object
|
||||
* @static
|
||||
* @private
|
||||
*/
|
||||
exports.shallowCopy = function (to, from) {
|
||||
from = from || {};
|
||||
for (var p in from) {
|
||||
to[p] = from[p];
|
||||
}
|
||||
return to;
|
||||
};
|
||||
|
||||
/**
|
||||
* Simple in-process cache implementation. Does not implement limits of any
|
||||
* sort.
|
||||
*
|
||||
* @implements Cache
|
||||
* @static
|
||||
* @private
|
||||
*/
|
||||
exports.cache = {
|
||||
_data: {},
|
||||
set: function (key, val) {
|
||||
this._data[key] = val;
|
||||
},
|
||||
get: function (key) {
|
||||
return this._data[key];
|
||||
},
|
||||
reset: function () {
|
||||
this._data = {};
|
||||
}
|
||||
};
|
||||
|
61
nodejs/node_modules/ejs/package.json
generated
vendored
61
nodejs/node_modules/ejs/package.json
generated
vendored
@@ -1,61 +0,0 @@
|
||||
{
|
||||
"name": "ejs",
|
||||
"description": "Embedded JavaScript templates",
|
||||
"keywords": [
|
||||
"template",
|
||||
"engine",
|
||||
"ejs"
|
||||
],
|
||||
"version": "2.5.2",
|
||||
"author": {
|
||||
"name": "Matthew Eernisse",
|
||||
"email": "mde@fleegix.org",
|
||||
"url": "http://fleegix.org"
|
||||
},
|
||||
"contributors": [
|
||||
{
|
||||
"name": "Timothy Gu",
|
||||
"email": "timothygu99@gmail.com",
|
||||
"url": "https://timothygu.github.io"
|
||||
}
|
||||
],
|
||||
"license": "Apache-2.0",
|
||||
"main": "./lib/ejs.js",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/mde/ejs.git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/mde/ejs/issues"
|
||||
},
|
||||
"homepage": "https://github.com/mde/ejs",
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"browserify": "^13.0.1",
|
||||
"eslint": "^3.0.0",
|
||||
"istanbul": "~0.4.3",
|
||||
"jake": "^8.0.0",
|
||||
"jsdoc": "^3.4.0",
|
||||
"lru-cache": "^4.0.1",
|
||||
"mocha": "^3.0.2",
|
||||
"rimraf": "^2.2.8",
|
||||
"uglify-js": "^2.6.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "mocha",
|
||||
"coverage": "istanbul cover node_modules/mocha/bin/_mocha",
|
||||
"doc": "rimraf out && jsdoc -c jsdoc.json lib/* docs/jsdoc/*",
|
||||
"devdoc": "rimraf out && jsdoc -p -c jsdoc.json lib/* docs/jsdoc/*"
|
||||
},
|
||||
"readme": "# EJS\n\nEmbedded JavaScript templates\n\n[](https://travis-ci.org/mde/ejs)\n[](https://david-dm.org/mde/ejs?type=dev)\n\n## Installation\n\n```bash\n$ npm install ejs\n```\n\n## Features\n\n * Control flow with `<% %>`\n * Escaped output with `<%= %>` (escape function configurable)\n * Unescaped raw output with `<%- %>`\n * Newline-trim mode ('newline slurping') with `-%>` ending tag\n * Whitespace-trim mode (slurp all whitespace) for control flow with `<%_ _%>`\n * Custom delimiters (e.g., use `<? ?>` instead of `<% %>`)\n * Includes\n * Client-side support\n * Static caching of intermediate JavaScript\n * Static caching of templates\n * Complies with the [Express](http://expressjs.com) view system\n\n## Example\n\n```html\n<% if (user) { %>\n <h2><%= user.name %></h2>\n<% } %>\n```\n\nTry EJS online at: https://ionicabizau.github.io/ejs-playground/.\n\n## Usage\n\n```javascript\nvar template = ejs.compile(str, options);\ntemplate(data);\n// => Rendered HTML string\n\nejs.render(str, data, options);\n// => Rendered HTML string\n\nejs.renderFile(filename, data, options, function(err, str){\n // str => Rendered HTML string\n});\n```\n\nIt is also possible to use `ejs.render(dataAndOptions);` where you pass\neverything in a single object. In that case, you'll end up with local variables\nfor all the passed options. However, be aware that your code could break if we\nadd an option with the same name as one of your data object's properties.\nTherefore, we do not recommend using this shortcut.\n\n## Options\n\n - `cache` Compiled functions are cached, requires `filename`\n - `filename` The name of the file being rendered. Not required if you\n are using `renderFile()`. Used by `cache` to key caches, and for includes.\n - `root` Set project root for includes with an absolute path (/file.ejs).\n - `context` Function execution context\n - `compileDebug` When `false` no debug instrumentation is compiled\n - `client` When `true`, compiles a function that can be rendered\n in the browser without needing to load the EJS Runtime\n ([ejs.min.js](https://github.com/mde/ejs/releases/latest)).\n - `delimiter` Character to use with angle brackets for open/close\n - `debug` Output generated function body\n - `strict` When set to `true`, generated function is in strict mode\n - `_with` Whether or not to use `with() {}` constructs. If `false` then the locals will be stored in the `locals` object. Set to `false` in strict mode.\n - `localsName` Name to use for the object storing local variables when not using `with` Defaults to `locals`\n - `rmWhitespace` Remove all safe-to-remove whitespace, including leading\n and trailing whitespace. It also enables a safer version of `-%>` line\n slurping for all scriptlet tags (it does not strip new lines of tags in\n the middle of a line).\n - `escape` The escaping function used with `<%=` construct. It is\n used in rendering and is `.toString()`ed in the generation of client functions. (By default escapes XML).\n\nThis project uses [JSDoc](http://usejsdoc.org/). For the full public API\ndocumentation, clone the repository and run `npm run doc`. This will run JSDoc\nwith the proper options and output the documentation to `out/`. If you want\nthe both the public & private API docs, run `npm run devdoc` instead.\n\n## Tags\n\n - `<%` 'Scriptlet' tag, for control-flow, no output\n - `<%_` 'Whitespace Slurping' Scriptlet tag, strips all whitespace before it\n - `<%=` Outputs the value into the template (escaped)\n - `<%-` Outputs the unescaped value into the template\n - `<%#` Comment tag, no execution, no output\n - `<%%` Outputs a literal '<%'\n - `%%>` Outputs a literal '%>'\n - `%>` Plain ending tag\n - `-%>` Trim-mode ('newline slurp') tag, trims following newline\n - `_%>` 'Whitespace Slurping' ending tag, removes all whitespace after it\n\nFor the full syntax documentation, please see [docs/syntax.md](https://github.com/mde/ejs/blob/master/docs/syntax.md).\n\n## Includes\n\nIncludes either have to be an absolute path, or, if not, are assumed as\nrelative to the template with the `include` call. For example if you are\nincluding `./views/user/show.ejs` from `./views/users.ejs` you would\nuse `<%- include('user/show') %>`.\n\nYou must specify the `filename` option for the template with the `include`\ncall unless you are using `renderFile()`.\n\nYou'll likely want to use the raw output tag (`<%-`) with your include to avoid\ndouble-escaping the HTML output.\n\n```html\n<ul>\n <% users.forEach(function(user){ %>\n <%- include('user/show', {user: user}) %>\n <% }); %>\n</ul>\n```\n\nIncludes are inserted at runtime, so you can use variables for the path in the\n`include` call (for example `<%- include(somePath) %>`). Variables in your\ntop-level data object are available to all your includes, but local variables\nneed to be passed down.\n\nNOTE: Include preprocessor directives (`<% include user/show %>`) are\nstill supported.\n\n## Custom delimiters\n\nCustom delimiters can be applied on a per-template basis, or globally:\n\n```javascript\nvar ejs = require('ejs'),\n users = ['geddy', 'neil', 'alex'];\n\n// Just one template\nejs.render('<?= users.join(\" | \"); ?>', {users: users}, {delimiter: '?'});\n// => 'geddy | neil | alex'\n\n// Or globally\nejs.delimiter = '$';\nejs.render('<$= users.join(\" | \"); $>', {users: users});\n// => 'geddy | neil | alex'\n```\n\n## Caching\n\nEJS ships with a basic in-process cache for caching the intermediate JavaScript\nfunctions used to render templates. It's easy to plug in LRU caching using\nNode's `lru-cache` library:\n\n```javascript\nvar ejs = require('ejs')\n , LRU = require('lru-cache');\nejs.cache = LRU(100); // LRU cache with 100-item limit\n```\n\nIf you want to clear the EJS cache, call `ejs.clearCache`. If you're using the\nLRU cache and need a different limit, simple reset `ejs.cache` to a new instance\nof the LRU.\n\n## Layouts\n\nEJS does not specifically support blocks, but layouts can be implemented by\nincluding headers and footers, like so:\n\n\n```html\n<%- include('header') -%>\n<h1>\n Title\n</h1>\n<p>\n My page\n</p>\n<%- include('footer') -%>\n```\n\n## Client-side support\n\nGo to the [Latest Release](https://github.com/mde/ejs/releases/latest), download\n`./ejs.js` or `./ejs.min.js`. Alternately, you can compile it yourself by cloning\nthe repository and running `jake build` (or `$(npm bin)/jake build` if jake is\nnot installed globally).\n\nInclude one of these files on your page, and `ejs` should be available globally.\n\n### Example\n\n```html\n<div id=\"output\"></div>\n<script src=\"ejs.min.js\"></script>\n<script>\n var people = ['geddy', 'neil', 'alex'],\n html = ejs.render('<%= people.join(\", \"); %>', {people: people});\n // With jQuery:\n $('#output').html(html);\n // Vanilla JS:\n document.getElementById('output').innerHTML = html;\n</script>\n```\n\n### Caveats\n\nMost of EJS will work as expected; however, there are a few things to note:\n\n1. Obviously, since you do not have access to the filesystem, `ejs.renderFile()` won't work.\n2. For the same reason, `include`s do not work unless you use an `IncludeCallback`. Here is an example:\n ```javascript\n var str = \"Hello <%= include('file', {person: 'John'}); %>\",\n fn = ejs.compile(str, {client: true});\n\n fn(data, null, function(path, d){ // IncludeCallback\n // path -> 'file'\n // d -> {person: 'John'}\n // Put your code here\n // Return the contents of file as a string\n }); // returns rendered string\n ```\n\n## Related projects\n\nThere are a number of implementations of EJS:\n\n * TJ's implementation, the v1 of this library: https://github.com/tj/ejs\n * Jupiter Consulting's EJS: http://www.embeddedjs.com/\n * EJS Embedded JavaScript Framework on Google Code: https://code.google.com/p/embeddedjavascript/\n * Sam Stephenson's Ruby implementation: https://rubygems.org/gems/ejs\n * Erubis, an ERB implementation which also runs JavaScript: http://www.kuwata-lab.com/erubis/users-guide.04.html#lang-javascript\n\n## License\n\nLicensed under the Apache License, Version 2.0\n(<http://www.apache.org/licenses/LICENSE-2.0>)\n\n- - -\nEJS Embedded JavaScript templates copyright 2112\nmde@fleegix.org.\n",
|
||||
"readmeFilename": "README.md",
|
||||
"_id": "ejs@2.5.2",
|
||||
"dist": {
|
||||
"shasum": "2b57fbf297934f308997427b5f8f27ce0f9bf082"
|
||||
},
|
||||
"_from": "ejs@2.5.2",
|
||||
"_resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.2.tgz"
|
||||
}
|
962
nodejs/node_modules/ejs/test/ejs.js
generated
vendored
962
nodejs/node_modules/ejs/test/ejs.js
generated
vendored
@@ -1,962 +0,0 @@
|
||||
/* jshint mocha: true */
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var ejs = require('..')
|
||||
, fs = require('fs')
|
||||
, read = fs.readFileSync
|
||||
, assert = require('assert')
|
||||
, path = require('path')
|
||||
, LRU = require('lru-cache');
|
||||
|
||||
try {
|
||||
fs.mkdirSync(__dirname + '/tmp');
|
||||
} catch (ex) {
|
||||
if (ex.code !== 'EEXIST') {
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
|
||||
// From https://gist.github.com/pguillory/729616
|
||||
function hook_stdio(stream, callback) {
|
||||
var old_write = stream.write;
|
||||
|
||||
stream.write = (function() {
|
||||
return function(string, encoding, fd) {
|
||||
callback(string, encoding, fd);
|
||||
};
|
||||
})(stream.write);
|
||||
|
||||
return function() {
|
||||
stream.write = old_write;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Load fixture `name`.
|
||||
*/
|
||||
|
||||
function fixture(name) {
|
||||
return read('test/fixtures/' + name, 'utf8');
|
||||
}
|
||||
|
||||
/**
|
||||
* User fixtures.
|
||||
*/
|
||||
|
||||
var users = [];
|
||||
users.push({name: 'geddy'});
|
||||
users.push({name: 'neil'});
|
||||
users.push({name: 'alex'});
|
||||
|
||||
suite('ejs.compile(str, options)', function () {
|
||||
test('compile to a function', function () {
|
||||
var fn = ejs.compile('<p>yay</p>');
|
||||
assert.equal(fn(), '<p>yay</p>');
|
||||
});
|
||||
|
||||
test('empty input works', function () {
|
||||
var fn = ejs.compile('');
|
||||
assert.equal(fn(), '');
|
||||
});
|
||||
|
||||
test('throw if there are syntax errors', function () {
|
||||
try {
|
||||
ejs.compile(fixture('fail.ejs'));
|
||||
}
|
||||
catch (err) {
|
||||
assert.ok(err.message.indexOf('compiling ejs') > -1);
|
||||
|
||||
try {
|
||||
ejs.compile(fixture('fail.ejs'), {filename: 'fail.ejs'});
|
||||
}
|
||||
catch (err) {
|
||||
assert.ok(err.message.indexOf('fail.ejs') > -1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
throw new Error('no error reported when there should be');
|
||||
});
|
||||
|
||||
test('allow customizing delimiter local var', function () {
|
||||
var fn;
|
||||
fn = ejs.compile('<p><?= name ?></p>', {delimiter: '?'});
|
||||
assert.equal(fn({name: 'geddy'}), '<p>geddy</p>');
|
||||
|
||||
fn = ejs.compile('<p><:= name :></p>', {delimiter: ':'});
|
||||
assert.equal(fn({name: 'geddy'}), '<p>geddy</p>');
|
||||
|
||||
fn = ejs.compile('<p><$= name $></p>', {delimiter: '$'});
|
||||
assert.equal(fn({name: 'geddy'}), '<p>geddy</p>');
|
||||
});
|
||||
|
||||
test('default to using ejs.delimiter', function () {
|
||||
var fn;
|
||||
ejs.delimiter = '&';
|
||||
fn = ejs.compile('<p><&= name &></p>');
|
||||
assert.equal(fn({name: 'geddy'}), '<p>geddy</p>');
|
||||
|
||||
fn = ejs.compile('<p><|= name |></p>', {delimiter: '|'});
|
||||
assert.equal(fn({name: 'geddy'}), '<p>geddy</p>');
|
||||
delete ejs.delimiter;
|
||||
});
|
||||
|
||||
test('have a working client option', function () {
|
||||
var fn
|
||||
, str
|
||||
, preFn;
|
||||
fn = ejs.compile('<p><%= foo %></p>', {client: true});
|
||||
str = fn.toString();
|
||||
if (!process.env.running_under_istanbul) {
|
||||
eval('var preFn = ' + str);
|
||||
assert.equal(preFn({foo: 'bar'}), '<p>bar</p>');
|
||||
}
|
||||
});
|
||||
|
||||
test('support client mode without locals', function () {
|
||||
var fn
|
||||
, str
|
||||
, preFn;
|
||||
fn = ejs.compile('<p><%= "foo" %></p>', {client: true});
|
||||
str = fn.toString();
|
||||
if (!process.env.running_under_istanbul) {
|
||||
eval('var preFn = ' + str);
|
||||
assert.equal(preFn(), '<p>foo</p>');
|
||||
}
|
||||
});
|
||||
|
||||
test('not include rethrow() in client mode if compileDebug is false', function () {
|
||||
var fn = ejs.compile('<p><%= "foo" %></p>', {
|
||||
client: true
|
||||
, compileDebug: false
|
||||
});
|
||||
// There could be a `rethrow` in the function declaration
|
||||
assert((fn.toString().match(/rethrow/g) || []).length <= 1);
|
||||
});
|
||||
|
||||
test('support custom escape function', function () {
|
||||
var customEscape
|
||||
, fn;
|
||||
customEscape = function customEscape(str) {
|
||||
return !str ? '' : str.toUpperCase();
|
||||
};
|
||||
fn = ejs.compile('HELLO <%= name %>', {escape: customEscape});
|
||||
assert.equal(fn({name: 'world'}), 'HELLO WORLD');
|
||||
});
|
||||
|
||||
test('support custom escape function in client mode', function () {
|
||||
var customEscape
|
||||
, fn
|
||||
, str;
|
||||
customEscape = function customEscape(str) {
|
||||
return !str ? '' : str.toUpperCase();
|
||||
};
|
||||
fn = ejs.compile('HELLO <%= name %>', {escape: customEscape, client: true});
|
||||
str = fn.toString();
|
||||
if (!process.env.running_under_istanbul) {
|
||||
eval('var preFn = ' + str);
|
||||
assert.equal(preFn({name: 'world'}), 'HELLO WORLD');
|
||||
}
|
||||
});
|
||||
|
||||
test('strict mode works', function () {
|
||||
assert.equal(ejs.render(fixture('strict.ejs'), {}, {strict: true}), 'true');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
suite('ejs.render(str, data, opts)', function () {
|
||||
test('render the template', function () {
|
||||
assert.equal(ejs.render('<p>yay</p>'), '<p>yay</p>');
|
||||
});
|
||||
|
||||
test('empty input works', function () {
|
||||
assert.equal(ejs.render(''), '');
|
||||
});
|
||||
|
||||
test('undefined renders nothing escaped', function () {
|
||||
assert.equal(ejs.render('<%= undefined %>'), '');
|
||||
});
|
||||
|
||||
test('undefined renders nothing raw', function () {
|
||||
assert.equal(ejs.render('<%- undefined %>'), '');
|
||||
});
|
||||
|
||||
test('null renders nothing escaped', function () {
|
||||
assert.equal(ejs.render('<%= null %>'), '');
|
||||
});
|
||||
|
||||
test('null renders nothing raw', function () {
|
||||
assert.equal(ejs.render('<%- null %>'), '');
|
||||
});
|
||||
|
||||
test('zero-value data item renders something escaped', function () {
|
||||
assert.equal(ejs.render('<%= 0 %>'), '0');
|
||||
});
|
||||
|
||||
test('zero-value data object renders something raw', function () {
|
||||
assert.equal(ejs.render('<%- 0 %>'), '0');
|
||||
});
|
||||
|
||||
test('accept locals', function () {
|
||||
assert.equal(ejs.render('<p><%= name %></p>', {name: 'geddy'}),
|
||||
'<p>geddy</p>');
|
||||
});
|
||||
|
||||
test('accept locals without using with() {}', function () {
|
||||
assert.equal(ejs.render('<p><%= locals.name %></p>', {name: 'geddy'},
|
||||
{_with: false}),
|
||||
'<p>geddy</p>');
|
||||
assert.throws(function() {
|
||||
ejs.render('<p><%= name %></p>', {name: 'geddy'},
|
||||
{_with: false});
|
||||
}, /name is not defined/);
|
||||
});
|
||||
|
||||
test('accept custom name for locals', function () {
|
||||
ejs.localsName = 'it';
|
||||
assert.equal(ejs.render('<p><%= it.name %></p>', {name: 'geddy'},
|
||||
{_with: false}),
|
||||
'<p>geddy</p>');
|
||||
assert.throws(function() {
|
||||
ejs.render('<p><%= name %></p>', {name: 'geddy'},
|
||||
{_with: false});
|
||||
}, /name is not defined/);
|
||||
ejs.localsName = 'locals';
|
||||
});
|
||||
|
||||
test('support caching', function () {
|
||||
var file = __dirname + '/tmp/render.ejs'
|
||||
, options = {cache: true, filename: file}
|
||||
, out = ejs.render('<p>Old</p>', {}, options)
|
||||
, expected = '<p>Old</p>';
|
||||
assert.equal(out, expected);
|
||||
// Assert no change, still in cache
|
||||
out = ejs.render('<p>New</p>', {}, options);
|
||||
assert.equal(out, expected);
|
||||
});
|
||||
|
||||
test('support LRU caching', function () {
|
||||
var oldCache = ejs.cache
|
||||
, file = __dirname + '/tmp/render.ejs'
|
||||
, options = {cache: true, filename: file}
|
||||
, out
|
||||
, expected = '<p>Old</p>';
|
||||
|
||||
// Switch to LRU
|
||||
ejs.cache = LRU();
|
||||
|
||||
out = ejs.render('<p>Old</p>', {}, options);
|
||||
assert.equal(out, expected);
|
||||
// Assert no change, still in cache
|
||||
out = ejs.render('<p>New</p>', {}, options);
|
||||
assert.equal(out, expected);
|
||||
|
||||
// Restore system cache
|
||||
ejs.cache = oldCache;
|
||||
});
|
||||
|
||||
test('opts.context', function () {
|
||||
var ctxt = {foo: 'FOO'}
|
||||
, out = ejs.render('<%= this.foo %>', {}, {context: ctxt});
|
||||
assert.equal(out, ctxt.foo);
|
||||
});
|
||||
});
|
||||
|
||||
suite('ejs.renderFile(path, [data], [options], fn)', function () {
|
||||
test('render a file', function(done) {
|
||||
ejs.renderFile('test/fixtures/para.ejs', function(err, html) {
|
||||
if (err) {
|
||||
return done(err);
|
||||
}
|
||||
assert.equal(html, '<p>hey</p>\n');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('accept locals', function(done) {
|
||||
var data = {name: 'fonebone'}
|
||||
, options = {delimiter: '$'};
|
||||
ejs.renderFile('test/fixtures/user.ejs', data, options, function(err, html) {
|
||||
if (err) {
|
||||
return done(err);
|
||||
}
|
||||
assert.equal(html, '<h1>fonebone</h1>\n');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('accept locals without using with() {}', function(done) {
|
||||
var data = {name: 'fonebone'}
|
||||
, options = {delimiter: '$', _with: false}
|
||||
, doneCount = 0;
|
||||
ejs.renderFile('test/fixtures/user-no-with.ejs', data, options,
|
||||
function(err, html) {
|
||||
if (err) {
|
||||
if (doneCount === 2) {
|
||||
return;
|
||||
}
|
||||
doneCount = 2;
|
||||
return done(err);
|
||||
}
|
||||
assert.equal(html, '<h1>fonebone</h1>\n');
|
||||
doneCount++;
|
||||
if (doneCount === 2) {
|
||||
done();
|
||||
}
|
||||
});
|
||||
ejs.renderFile('test/fixtures/user.ejs', data, options, function(err) {
|
||||
if (!err) {
|
||||
if (doneCount === 2) {
|
||||
return;
|
||||
}
|
||||
doneCount = 2;
|
||||
return done(new Error('error not thrown'));
|
||||
}
|
||||
doneCount++;
|
||||
if (doneCount === 2) {
|
||||
done();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
test('not catch err thrown by callback', function(done) {
|
||||
var data = {name: 'fonebone'}
|
||||
, options = {delimiter: '$'}
|
||||
, counter = 0;
|
||||
|
||||
var d = require('domain').create();
|
||||
d.on('error', function (err) {
|
||||
assert.equal(counter, 1);
|
||||
assert.equal(err.message, 'Exception in callback');
|
||||
done();
|
||||
});
|
||||
d.run(function () {
|
||||
// process.nextTick() needed to work around mochajs/mocha#513
|
||||
//
|
||||
// tl;dr: mocha doesn't support synchronous exception throwing in
|
||||
// domains. Have to make it async. Ticket closed because: "domains are
|
||||
// deprecated :D"
|
||||
process.nextTick(function () {
|
||||
ejs.renderFile('test/fixtures/user.ejs', data, options,
|
||||
function(err) {
|
||||
counter++;
|
||||
if (err) {
|
||||
assert.notEqual(err.message, 'Exception in callback');
|
||||
return done(err);
|
||||
}
|
||||
throw new Error('Exception in callback');
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
test('support caching', function (done) {
|
||||
var expected = '<p>Old</p>'
|
||||
, file = __dirname + '/tmp/renderFile.ejs'
|
||||
, options = {cache: true};
|
||||
fs.writeFileSync(file, '<p>Old</p>');
|
||||
|
||||
ejs.renderFile(file, {}, options, function (err, out) {
|
||||
if (err) {
|
||||
done(err);
|
||||
}
|
||||
fs.writeFileSync(file, '<p>New</p>');
|
||||
assert.equal(out, expected);
|
||||
|
||||
ejs.renderFile(file, {}, options, function (err, out) {
|
||||
if (err) {
|
||||
done(err);
|
||||
}
|
||||
// Assert no change, still in cache
|
||||
assert.equal(out, expected);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
test('opts.context', function (done) {
|
||||
var ctxt = {foo: 'FOO'};
|
||||
ejs.renderFile('test/fixtures/with-context.ejs', {},
|
||||
{context: ctxt}, function(err, html) {
|
||||
if (err) {
|
||||
return done(err);
|
||||
}
|
||||
assert.equal(html, ctxt.foo + '\n');
|
||||
done();
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
suite('cache specific', function () {
|
||||
test('`clearCache` work properly', function () {
|
||||
var expected = '<p>Old</p>'
|
||||
, file = __dirname + '/tmp/clearCache.ejs'
|
||||
, options = {cache: true, filename: file}
|
||||
, out = ejs.render('<p>Old</p>', {}, options);
|
||||
assert.equal(out, expected);
|
||||
|
||||
ejs.clearCache();
|
||||
|
||||
expected = '<p>New</p>';
|
||||
out = ejs.render('<p>New</p>', {}, options);
|
||||
assert.equal(out, expected);
|
||||
});
|
||||
|
||||
test('`clearCache` work properly, LRU', function () {
|
||||
var expected = '<p>Old</p>'
|
||||
, oldCache = ejs.cache
|
||||
, file = __dirname + '/tmp/clearCache.ejs'
|
||||
, options = {cache: true, filename: file}
|
||||
, out;
|
||||
|
||||
ejs.cache = LRU();
|
||||
|
||||
out = ejs.render('<p>Old</p>', {}, options);
|
||||
assert.equal(out, expected);
|
||||
ejs.clearCache();
|
||||
expected = '<p>New</p>';
|
||||
out = ejs.render('<p>New</p>', {}, options);
|
||||
assert.equal(out, expected);
|
||||
|
||||
ejs.cache = oldCache;
|
||||
});
|
||||
|
||||
test('LRU with cache-size 1', function () {
|
||||
var oldCache = ejs.cache
|
||||
, options
|
||||
, out
|
||||
, expected
|
||||
, file;
|
||||
|
||||
ejs.cache = LRU(1);
|
||||
|
||||
file = __dirname + '/tmp/render1.ejs';
|
||||
options = {cache: true, filename: file};
|
||||
out = ejs.render('<p>File1</p>', {}, options);
|
||||
expected = '<p>File1</p>';
|
||||
assert.equal(out, expected);
|
||||
|
||||
// Same filename, different template, but output
|
||||
// should be the same because cache
|
||||
file = __dirname + '/tmp/render1.ejs';
|
||||
options = {cache: true, filename: file};
|
||||
out = ejs.render('<p>ChangedFile1</p>', {}, options);
|
||||
expected = '<p>File1</p>';
|
||||
assert.equal(out, expected);
|
||||
|
||||
// Different filiename -- output should be different,
|
||||
// and previous cache-entry should be evicted
|
||||
file = __dirname + '/tmp/render2.ejs';
|
||||
options = {cache: true, filename: file};
|
||||
out = ejs.render('<p>File2</p>', {}, options);
|
||||
expected = '<p>File2</p>';
|
||||
assert.equal(out, expected);
|
||||
|
||||
// Entry with first filename should now be out of cache,
|
||||
// results should be different
|
||||
file = __dirname + '/tmp/render1.ejs';
|
||||
options = {cache: true, filename: file};
|
||||
out = ejs.render('<p>ChangedFile1</p>', {}, options);
|
||||
expected = '<p>ChangedFile1</p>';
|
||||
assert.equal(out, expected);
|
||||
|
||||
ejs.cache = oldCache;
|
||||
});
|
||||
});
|
||||
|
||||
suite('<%', function () {
|
||||
test('without semicolons', function () {
|
||||
assert.equal(ejs.render(fixture('no.semicolons.ejs')),
|
||||
fixture('no.semicolons.html'));
|
||||
});
|
||||
});
|
||||
|
||||
suite('<%=', function () {
|
||||
test('escape &<script>', function () {
|
||||
assert.equal(ejs.render('<%= name %>', {name: ' <script>'}),
|
||||
'&nbsp;<script>');
|
||||
});
|
||||
|
||||
test('should escape \'', function () {
|
||||
assert.equal(ejs.render('<%= name %>', {name: 'The Jones\'s'}),
|
||||
'The Jones's');
|
||||
});
|
||||
|
||||
test('should escape &foo_bar;', function () {
|
||||
assert.equal(ejs.render('<%= name %>', {name: '&foo_bar;'}),
|
||||
'&foo_bar;');
|
||||
});
|
||||
|
||||
test('should accept custom function', function() {
|
||||
|
||||
var customEscape = function customEscape(str) {
|
||||
return !str ? '' : str.toUpperCase();
|
||||
};
|
||||
|
||||
assert.equal(
|
||||
ejs.render('<%= name %>', {name: 'The Jones\'s'}, {escape: customEscape}),
|
||||
'THE JONES\'S'
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
suite('<%-', function () {
|
||||
test('not escape', function () {
|
||||
assert.equal(ejs.render('<%- name %>', {name: '<script>'}),
|
||||
'<script>');
|
||||
});
|
||||
|
||||
test('terminate gracefully if no close tag is found', function () {
|
||||
try {
|
||||
ejs.compile('<h1>oops</h1><%- name ->');
|
||||
throw new Error('Expected parse failure');
|
||||
}
|
||||
catch (err) {
|
||||
assert.ok(err.message.indexOf('Could not find matching close tag for') > -1);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
suite('%>', function () {
|
||||
test('produce newlines', function () {
|
||||
assert.equal(ejs.render(fixture('newlines.ejs'), {users: users}),
|
||||
fixture('newlines.html'));
|
||||
});
|
||||
test('works with `-%>` interspersed', function () {
|
||||
assert.equal(ejs.render(fixture('newlines.mixed.ejs'), {users: users}),
|
||||
fixture('newlines.mixed.html'));
|
||||
});
|
||||
test('consecutive tags work', function () {
|
||||
assert.equal(ejs.render(fixture('consecutive-tags.ejs')),
|
||||
fixture('consecutive-tags.html'));
|
||||
});
|
||||
});
|
||||
|
||||
suite('-%>', function () {
|
||||
test('not produce newlines', function () {
|
||||
assert.equal(ejs.render(fixture('no.newlines.ejs'), {users: users}),
|
||||
fixture('no.newlines.html'));
|
||||
});
|
||||
test('stack traces work', function () {
|
||||
try {
|
||||
ejs.render(fixture('no.newlines.error.ejs'));
|
||||
}
|
||||
catch (e) {
|
||||
if (e.message.indexOf('>> 4| <%= qdata %>') > -1) {
|
||||
return;
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
throw new Error('Expected ReferenceError');
|
||||
});
|
||||
|
||||
test('works with unix style', function () {
|
||||
var content = "<ul><% -%>\n"
|
||||
+ "<% users.forEach(function(user){ -%>\n"
|
||||
+ "<li><%= user.name -%></li>\n"
|
||||
+ "<% }) -%>\n"
|
||||
+ "</ul><% -%>\n";
|
||||
|
||||
var expectedResult = "<ul><li>geddy</li>\n<li>neil</li>\n<li>alex</li>\n</ul>";
|
||||
var fn;
|
||||
fn = ejs.compile(content);
|
||||
assert.equal(fn({users: users}),
|
||||
expectedResult);
|
||||
});
|
||||
|
||||
test('works with windows style', function () {
|
||||
var content = "<ul><% -%>\r\n"
|
||||
+ "<% users.forEach(function(user){ -%>\r\n"
|
||||
+ "<li><%= user.name -%></li>\r\n"
|
||||
+ "<% }) -%>\r\n"
|
||||
+ "</ul><% -%>\r\n";
|
||||
|
||||
var expectedResult = "<ul><li>geddy</li>\r\n<li>neil</li>\r\n<li>alex</li>\r\n</ul>";
|
||||
var fn;
|
||||
fn = ejs.compile(content);
|
||||
assert.equal(fn({users: users}),
|
||||
expectedResult);
|
||||
});
|
||||
});
|
||||
|
||||
suite('<%%', function () {
|
||||
test('produce literals', function () {
|
||||
assert.equal(ejs.render('<%%- "foo" %>'),
|
||||
'<%- "foo" %>');
|
||||
});
|
||||
test('work without an end tag', function () {
|
||||
assert.equal(ejs.render('<%%'), '<%');
|
||||
assert.equal(ejs.render(fixture('literal.ejs'), {}, {delimiter: ' '}),
|
||||
fixture('literal.html'));
|
||||
});
|
||||
});
|
||||
|
||||
suite('%%>', function () {
|
||||
test('produce literal', function () {
|
||||
assert.equal(ejs.render('%%>'),
|
||||
'%>');
|
||||
assert.equal(ejs.render(' >', {}, {delimiter: ' '}),
|
||||
' >');
|
||||
});
|
||||
});
|
||||
|
||||
suite('<%_ and _%>', function () {
|
||||
test('slurps spaces and tabs', function () {
|
||||
assert.equal(ejs.render(fixture('space-and-tab-slurp.ejs'), {users: users}),
|
||||
fixture('space-and-tab-slurp.html'));
|
||||
});
|
||||
});
|
||||
|
||||
suite('single quotes', function () {
|
||||
test('not mess up the constructed function', function () {
|
||||
assert.equal(ejs.render(fixture('single-quote.ejs')),
|
||||
fixture('single-quote.html'));
|
||||
});
|
||||
});
|
||||
|
||||
suite('double quotes', function () {
|
||||
test('not mess up the constructed function', function () {
|
||||
assert.equal(ejs.render(fixture('double-quote.ejs')),
|
||||
fixture('double-quote.html'));
|
||||
});
|
||||
});
|
||||
|
||||
suite('backslashes', function () {
|
||||
test('escape', function () {
|
||||
assert.equal(ejs.render(fixture('backslash.ejs')),
|
||||
fixture('backslash.html'));
|
||||
});
|
||||
});
|
||||
|
||||
suite('messed up whitespace', function () {
|
||||
test('work', function () {
|
||||
assert.equal(ejs.render(fixture('messed.ejs'), {users: users}),
|
||||
fixture('messed.html'));
|
||||
});
|
||||
});
|
||||
|
||||
suite('exceptions', function () {
|
||||
test('produce useful stack traces', function () {
|
||||
try {
|
||||
ejs.render(fixture('error.ejs'), {}, {filename: 'error.ejs'});
|
||||
}
|
||||
catch (err) {
|
||||
assert.equal(err.path, 'error.ejs');
|
||||
assert.equal(err.stack.split('\n').slice(0, 8).join('\n'), fixture('error.out'));
|
||||
return;
|
||||
}
|
||||
throw new Error('no error reported when there should be');
|
||||
});
|
||||
|
||||
test('not include fancy stack info if compileDebug is false', function () {
|
||||
try {
|
||||
ejs.render(fixture('error.ejs'), {}, {
|
||||
filename: 'error.ejs',
|
||||
compileDebug: false
|
||||
});
|
||||
}
|
||||
catch (err) {
|
||||
assert.ok(!err.path);
|
||||
assert.notEqual(err.stack.split('\n').slice(0, 8).join('\n'), fixture('error.out'));
|
||||
return;
|
||||
}
|
||||
throw new Error('no error reported when there should be');
|
||||
});
|
||||
|
||||
var unhook = null;
|
||||
test('log JS source when debug is set', function (done) {
|
||||
var out = ''
|
||||
, needToExit = false;
|
||||
unhook = hook_stdio(process.stdout, function (str) {
|
||||
out += str;
|
||||
if (needToExit) {
|
||||
return;
|
||||
}
|
||||
if (out.indexOf('__output')) {
|
||||
needToExit = true;
|
||||
unhook();
|
||||
unhook = null;
|
||||
return done();
|
||||
}
|
||||
});
|
||||
ejs.render(fixture('hello-world.ejs'), {}, {debug: true});
|
||||
});
|
||||
teardown(function() {
|
||||
if (!unhook) {
|
||||
return;
|
||||
}
|
||||
unhook();
|
||||
unhook = null;
|
||||
});
|
||||
});
|
||||
|
||||
suite('rmWhitespace', function () {
|
||||
test('works', function () {
|
||||
assert.equal(ejs.render(fixture('rmWhitespace.ejs'), {}, {rmWhitespace: true}),
|
||||
fixture('rmWhitespace.html'));
|
||||
});
|
||||
});
|
||||
|
||||
suite('include()', function () {
|
||||
test('include ejs', function () {
|
||||
var file = 'test/fixtures/include-simple.ejs';
|
||||
assert.equal(ejs.render(fixture('include-simple.ejs'), {}, {filename: file}),
|
||||
fixture('include-simple.html'));
|
||||
});
|
||||
|
||||
test('include ejs fails without `filename`', function () {
|
||||
try {
|
||||
ejs.render(fixture('include-simple.ejs'));
|
||||
}
|
||||
catch (err) {
|
||||
assert.ok(err.message.indexOf('requires the \'filename\' option') > -1);
|
||||
return;
|
||||
}
|
||||
throw new Error('expected inclusion error');
|
||||
});
|
||||
|
||||
test('strips BOM', function () {
|
||||
assert.equal(
|
||||
ejs.render('<%- include("fixtures/includes/bom.ejs") %>',
|
||||
{}, {filename: path.join(__dirname, 'f.ejs')}),
|
||||
'<p>This is a file with BOM.</p>\n');
|
||||
});
|
||||
|
||||
test('include ejs with locals', function () {
|
||||
var file = 'test/fixtures/include.ejs';
|
||||
assert.equal(ejs.render(fixture('include.ejs'), {pets: users}, {filename: file, delimiter: '@'}),
|
||||
fixture('include.html'));
|
||||
});
|
||||
|
||||
test('include ejs with absolute path and locals', function () {
|
||||
var file = 'test/fixtures/include-abspath.ejs';
|
||||
assert.equal(ejs.render(fixture('include-abspath.ejs'),
|
||||
{dir: path.join(__dirname, 'fixtures'), pets: users, path: path},
|
||||
{filename: file, delimiter: '@'}),
|
||||
fixture('include.html'));
|
||||
});
|
||||
|
||||
test('include ejs with set root path', function () {
|
||||
var file = 'test/fixtures/include-root.ejs',
|
||||
viewsPath = path.join(__dirname, 'fixtures');
|
||||
assert.equal(ejs.render(fixture('include-root.ejs'), {pets: users}, {filename: file, delimiter: '@',root:viewsPath}),
|
||||
fixture('include.html'));
|
||||
|
||||
});
|
||||
|
||||
test('work when nested', function () {
|
||||
var file = 'test/fixtures/menu.ejs';
|
||||
assert.equal(ejs.render(fixture('menu.ejs'), {pets: users}, {filename: file}),
|
||||
fixture('menu.html'));
|
||||
});
|
||||
|
||||
test('work with a variable path', function () {
|
||||
var file = 'test/fixtures/menu_var.ejs',
|
||||
includePath = 'includes/menu-item';
|
||||
assert.equal(ejs.render(fixture('menu.ejs'), {pets: users, varPath: includePath}, {filename: file}),
|
||||
fixture('menu.html'));
|
||||
});
|
||||
|
||||
test('include arbitrary files as-is', function () {
|
||||
var file = 'test/fixtures/include.css.ejs';
|
||||
assert.equal(ejs.render(fixture('include.css.ejs'), {pets: users}, {filename: file}),
|
||||
fixture('include.css.html'));
|
||||
});
|
||||
|
||||
test('pass compileDebug to include', function () {
|
||||
var file = 'test/fixtures/include.ejs'
|
||||
, fn;
|
||||
fn = ejs.compile(fixture('include.ejs'), {
|
||||
filename: file
|
||||
, delimiter: '@'
|
||||
, compileDebug: false
|
||||
});
|
||||
try {
|
||||
// Render without a required variable reference
|
||||
fn({foo: 'asdf'});
|
||||
}
|
||||
catch(e) {
|
||||
assert.equal(e.message, 'pets is not defined');
|
||||
assert.ok(!e.path);
|
||||
return;
|
||||
}
|
||||
throw new Error('no error reported when there should be');
|
||||
});
|
||||
|
||||
test('is dynamic', function () {
|
||||
fs.writeFileSync(__dirname + '/tmp/include.ejs', '<p>Old</p>');
|
||||
var file = 'test/fixtures/include_cache.ejs'
|
||||
, options = {filename: file}
|
||||
, out = ejs.compile(fixture('include_cache.ejs'), options);
|
||||
assert.equal(out(), '<p>Old</p>\n');
|
||||
|
||||
fs.writeFileSync(__dirname + '/tmp/include.ejs', '<p>New</p>');
|
||||
assert.equal(out(), '<p>New</p>\n');
|
||||
});
|
||||
|
||||
test('support caching', function () {
|
||||
fs.writeFileSync(__dirname + '/tmp/include.ejs', '<p>Old</p>');
|
||||
var file = 'test/fixtures/include_cache.ejs'
|
||||
, options = {cache: true, filename: file}
|
||||
, out = ejs.render(fixture('include_cache.ejs'), {}, options)
|
||||
, expected = fixture('include_cache.html');
|
||||
assert.equal(out, expected);
|
||||
out = ejs.render(fixture('include_cache.ejs'), {}, options);
|
||||
// No change, still in cache
|
||||
assert.equal(out, expected);
|
||||
fs.writeFileSync(__dirname + '/tmp/include.ejs', '<p>New</p>');
|
||||
out = ejs.render(fixture('include_cache.ejs'), {}, options);
|
||||
assert.equal(out, expected);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
suite('preprocessor include', function () {
|
||||
test('work', function () {
|
||||
var file = 'test/fixtures/include_preprocessor.ejs';
|
||||
assert.equal(ejs.render(fixture('include_preprocessor.ejs'), {pets: users}, {filename: file, delimiter: '@'}),
|
||||
fixture('include_preprocessor.html'));
|
||||
});
|
||||
|
||||
test('no false positives', function () {
|
||||
assert.equal(ejs.render('<% %> include foo <% %>'), ' include foo ');
|
||||
});
|
||||
|
||||
test('fails without `filename`', function () {
|
||||
try {
|
||||
ejs.render(fixture('include_preprocessor.ejs'), {pets: users}, {delimiter: '@'});
|
||||
}
|
||||
catch (err) {
|
||||
assert.ok(err.message.indexOf('requires the \'filename\' option') > -1);
|
||||
return;
|
||||
}
|
||||
throw new Error('expected inclusion error');
|
||||
});
|
||||
|
||||
test('strips BOM', function () {
|
||||
assert.equal(
|
||||
ejs.render('<% include fixtures/includes/bom.ejs %>',
|
||||
{}, {filename: path.join(__dirname, 'f.ejs')}),
|
||||
'<p>This is a file with BOM.</p>\n');
|
||||
});
|
||||
|
||||
test('work when nested', function () {
|
||||
var file = 'test/fixtures/menu_preprocessor.ejs';
|
||||
assert.equal(ejs.render(fixture('menu_preprocessor.ejs'), {pets: users}, {filename: file}),
|
||||
fixture('menu_preprocessor.html'));
|
||||
});
|
||||
|
||||
test('tracks dependency correctly', function () {
|
||||
var file = 'test/fixtures/menu_preprocessor.ejs'
|
||||
, fn = ejs.compile(fixture('menu_preprocessor.ejs'), {filename: file});
|
||||
assert(fn.dependencies.length);
|
||||
});
|
||||
|
||||
test('include arbitrary files as-is', function () {
|
||||
var file = 'test/fixtures/include_preprocessor.css.ejs';
|
||||
assert.equal(ejs.render(fixture('include_preprocessor.css.ejs'), {pets: users}, {filename: file}),
|
||||
fixture('include_preprocessor.css.html'));
|
||||
});
|
||||
|
||||
test('pass compileDebug to include', function () {
|
||||
var file = 'test/fixtures/include_preprocessor.ejs'
|
||||
, fn;
|
||||
fn = ejs.compile(fixture('include_preprocessor.ejs'), {
|
||||
filename: file
|
||||
, delimiter: '@'
|
||||
, compileDebug: false
|
||||
});
|
||||
try {
|
||||
// Render without a required variable reference
|
||||
fn({foo: 'asdf'});
|
||||
}
|
||||
catch(e) {
|
||||
assert.equal(e.message, 'pets is not defined');
|
||||
assert.ok(!e.path);
|
||||
return;
|
||||
}
|
||||
throw new Error('no error reported when there should be');
|
||||
});
|
||||
|
||||
test('is static', function () {
|
||||
fs.writeFileSync(__dirname + '/tmp/include_preprocessor.ejs', '<p>Old</p>');
|
||||
var file = 'test/fixtures/include_preprocessor_cache.ejs'
|
||||
, options = {filename: file}
|
||||
, out = ejs.compile(fixture('include_preprocessor_cache.ejs'), options);
|
||||
assert.equal(out(), '<p>Old</p>\n');
|
||||
|
||||
fs.writeFileSync(__dirname + '/tmp/include_preprocessor.ejs', '<p>New</p>');
|
||||
assert.equal(out(), '<p>Old</p>\n');
|
||||
});
|
||||
|
||||
test('support caching', function () {
|
||||
fs.writeFileSync(__dirname + '/tmp/include_preprocessor.ejs', '<p>Old</p>');
|
||||
var file = 'test/fixtures/include_preprocessor_cache.ejs'
|
||||
, options = {cache: true, filename: file}
|
||||
, out = ejs.render(fixture('include_preprocessor_cache.ejs'), {}, options)
|
||||
, expected = fixture('include_preprocessor_cache.html');
|
||||
assert.equal(out, expected);
|
||||
fs.writeFileSync(__dirname + '/tmp/include_preprocessor.ejs', '<p>New</p>');
|
||||
out = ejs.render(fixture('include_preprocessor_cache.ejs'), {}, options);
|
||||
assert.equal(out, expected);
|
||||
});
|
||||
|
||||
test('whitespace slurp and rmWhitespace work', function() {
|
||||
var file = 'test/fixtures/include_preprocessor_line_slurp.ejs'
|
||||
, template = fixture('include_preprocessor_line_slurp.ejs')
|
||||
, expected = fixture('include_preprocessor_line_slurp.html')
|
||||
, options = {rmWhitespace: true, filename: file};
|
||||
assert.equal(ejs.render(template, options),
|
||||
expected);
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
suite('comments', function () {
|
||||
test('fully render with comments removed', function () {
|
||||
assert.equal(ejs.render(fixture('comments.ejs')),
|
||||
fixture('comments.html'));
|
||||
});
|
||||
});
|
||||
|
||||
suite('require', function () {
|
||||
|
||||
// Only works with inline/preprocessor includes
|
||||
test('allow ejs templates to be required as node modules', function () {
|
||||
var file = 'test/fixtures/include_preprocessor.ejs'
|
||||
, template = require(__dirname + '/fixtures/menu_preprocessor.ejs');
|
||||
if (!process.env.running_under_istanbul) {
|
||||
assert.equal(template({filename: file, pets: users}),
|
||||
fixture('menu_preprocessor.html'));
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
suite('examples', function () {
|
||||
function noop () {}
|
||||
fs.readdirSync('examples').forEach(function (f) {
|
||||
if (!/\.js$/.test(f)) {
|
||||
return;
|
||||
}
|
||||
suite(f, function () {
|
||||
test('doesn\'t throw any errors', function () {
|
||||
var stderr = hook_stdio(process.stderr, noop)
|
||||
, stdout = hook_stdio(process.stdout, noop);
|
||||
try {
|
||||
require('../examples/' + f);
|
||||
}
|
||||
catch (ex) {
|
||||
stdout();
|
||||
stderr();
|
||||
throw ex;
|
||||
}
|
||||
stdout();
|
||||
stderr();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
1
nodejs/node_modules/ejs/test/fixtures/backslash.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/backslash.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
\foo
|
1
nodejs/node_modules/ejs/test/fixtures/backslash.html
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/backslash.html
generated
vendored
@@ -1 +0,0 @@
|
||||
\foo
|
7
nodejs/node_modules/ejs/test/fixtures/comments.ejs
generated
vendored
7
nodejs/node_modules/ejs/test/fixtures/comments.ejs
generated
vendored
@@ -1,7 +0,0 @@
|
||||
<li><a href="foo"><% // double-slash comment %>foo</li>
|
||||
<li><a href="bar"><% /* C-style comment */ %>bar</li>
|
||||
<li><a href="baz"><% // double-slash comment with newline
|
||||
%>baz</li>
|
||||
<li><a href="qux"><% var x = 'qux'; // double-slash comment @ end of line %><%= x %></li>
|
||||
<li><a href="fee"><%# ERB style comment %>fee</li>
|
||||
<li><a href="bah"><%= 'not a ' + '//' + ' comment' %></a></li>
|
6
nodejs/node_modules/ejs/test/fixtures/comments.html
generated
vendored
6
nodejs/node_modules/ejs/test/fixtures/comments.html
generated
vendored
@@ -1,6 +0,0 @@
|
||||
<li><a href="foo">foo</li>
|
||||
<li><a href="bar">bar</li>
|
||||
<li><a href="baz">baz</li>
|
||||
<li><a href="qux">qux</li>
|
||||
<li><a href="fee">fee</li>
|
||||
<li><a href="bah">not a // comment</a></li>
|
1
nodejs/node_modules/ejs/test/fixtures/consecutive-tags.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/consecutive-tags.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<% var a = 'foo' %><% var b = 'bar' %><%= a %>
|
1
nodejs/node_modules/ejs/test/fixtures/consecutive-tags.html
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/consecutive-tags.html
generated
vendored
@@ -1 +0,0 @@
|
||||
foo
|
1
nodejs/node_modules/ejs/test/fixtures/double-quote.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/double-quote.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<p><%= "lo" + 'ki' %>'s "wheelchair"</p>
|
1
nodejs/node_modules/ejs/test/fixtures/double-quote.html
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/double-quote.html
generated
vendored
@@ -1 +0,0 @@
|
||||
<p>loki's "wheelchair"</p>
|
5
nodejs/node_modules/ejs/test/fixtures/error.ejs
generated
vendored
5
nodejs/node_modules/ejs/test/fixtures/error.ejs
generated
vendored
@@ -1,5 +0,0 @@
|
||||
<ul>
|
||||
<% if (users) { %>
|
||||
<p>Has users</p>
|
||||
<% } %>
|
||||
</ul>
|
8
nodejs/node_modules/ejs/test/fixtures/error.out
generated
vendored
8
nodejs/node_modules/ejs/test/fixtures/error.out
generated
vendored
@@ -1,8 +0,0 @@
|
||||
ReferenceError: error.ejs:2
|
||||
1| <ul>
|
||||
>> 2| <% if (users) { %>
|
||||
3| <p>Has users</p>
|
||||
4| <% } %>
|
||||
5| </ul>
|
||||
|
||||
users is not defined
|
1
nodejs/node_modules/ejs/test/fixtures/fail.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/fail.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<% function foo() return 'foo'; %>
|
1
nodejs/node_modules/ejs/test/fixtures/hello-world.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/hello-world.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<p>Hello world!</p>
|
5
nodejs/node_modules/ejs/test/fixtures/include-abspath.ejs
generated
vendored
5
nodejs/node_modules/ejs/test/fixtures/include-abspath.ejs
generated
vendored
@@ -1,5 +0,0 @@
|
||||
<ul>
|
||||
<@ pets.forEach(function(pet){ @>
|
||||
<@- include(path.join(dir, 'pet'), {pet: pet}); @>
|
||||
<@ }); @>
|
||||
</ul>
|
1
nodejs/node_modules/ejs/test/fixtures/include-root.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/include-root.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<@- include('/include'); @>
|
3
nodejs/node_modules/ejs/test/fixtures/include-simple.ejs
generated
vendored
3
nodejs/node_modules/ejs/test/fixtures/include-simple.ejs
generated
vendored
@@ -1,3 +0,0 @@
|
||||
<ul>
|
||||
<%- include('hello-world'); %>
|
||||
</ul>
|
4
nodejs/node_modules/ejs/test/fixtures/include-simple.html
generated
vendored
4
nodejs/node_modules/ejs/test/fixtures/include-simple.html
generated
vendored
@@ -1,4 +0,0 @@
|
||||
<ul>
|
||||
<p>Hello world!</p>
|
||||
|
||||
</ul>
|
1
nodejs/node_modules/ejs/test/fixtures/include.css.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/include.css.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<style><%- include('style.css', {value: 'bar'}); %></style>
|
4
nodejs/node_modules/ejs/test/fixtures/include.css.html
generated
vendored
4
nodejs/node_modules/ejs/test/fixtures/include.css.html
generated
vendored
@@ -1,4 +0,0 @@
|
||||
<style>body {
|
||||
foo: 'bar';
|
||||
}
|
||||
</style>
|
5
nodejs/node_modules/ejs/test/fixtures/include.ejs
generated
vendored
5
nodejs/node_modules/ejs/test/fixtures/include.ejs
generated
vendored
@@ -1,5 +0,0 @@
|
||||
<ul>
|
||||
<@ pets.forEach(function(pet){ @>
|
||||
<@- include('pet', {pet: pet}); @>
|
||||
<@ }); @>
|
||||
</ul>
|
12
nodejs/node_modules/ejs/test/fixtures/include.html
generated
vendored
12
nodejs/node_modules/ejs/test/fixtures/include.html
generated
vendored
@@ -1,12 +0,0 @@
|
||||
<ul>
|
||||
|
||||
<li>geddy</li>
|
||||
|
||||
|
||||
<li>neil</li>
|
||||
|
||||
|
||||
<li>alex</li>
|
||||
|
||||
|
||||
</ul>
|
1
nodejs/node_modules/ejs/test/fixtures/include_cache.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/include_cache.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<%- include('../tmp/include') %>
|
1
nodejs/node_modules/ejs/test/fixtures/include_cache.html
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/include_cache.html
generated
vendored
@@ -1 +0,0 @@
|
||||
<p>Old</p>
|
1
nodejs/node_modules/ejs/test/fixtures/include_preprocessor.css.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/include_preprocessor.css.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<style><% var value = 'bar' %><% include style.css %></style>
|
4
nodejs/node_modules/ejs/test/fixtures/include_preprocessor.css.html
generated
vendored
4
nodejs/node_modules/ejs/test/fixtures/include_preprocessor.css.html
generated
vendored
@@ -1,4 +0,0 @@
|
||||
<style>body {
|
||||
foo: 'bar';
|
||||
}
|
||||
</style>
|
5
nodejs/node_modules/ejs/test/fixtures/include_preprocessor.ejs
generated
vendored
5
nodejs/node_modules/ejs/test/fixtures/include_preprocessor.ejs
generated
vendored
@@ -1,5 +0,0 @@
|
||||
<ul>
|
||||
<@ pets.forEach(function(pet){ @>
|
||||
<@ include pet @>
|
||||
<@ }) @>
|
||||
</ul>
|
12
nodejs/node_modules/ejs/test/fixtures/include_preprocessor.html
generated
vendored
12
nodejs/node_modules/ejs/test/fixtures/include_preprocessor.html
generated
vendored
@@ -1,12 +0,0 @@
|
||||
<ul>
|
||||
|
||||
<li>geddy</li>
|
||||
|
||||
|
||||
<li>neil</li>
|
||||
|
||||
|
||||
<li>alex</li>
|
||||
|
||||
|
||||
</ul>
|
1
nodejs/node_modules/ejs/test/fixtures/include_preprocessor_cache.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/include_preprocessor_cache.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<%- include ../tmp/include_preprocessor %>
|
1
nodejs/node_modules/ejs/test/fixtures/include_preprocessor_cache.html
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/include_preprocessor_cache.html
generated
vendored
@@ -1 +0,0 @@
|
||||
<p>Old</p>
|
1
nodejs/node_modules/ejs/test/fixtures/include_preprocessor_line_slurp.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/include_preprocessor_line_slurp.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<% include include_preprocessor_line_slurp_child %>
|
5
nodejs/node_modules/ejs/test/fixtures/include_preprocessor_line_slurp.html
generated
vendored
5
nodejs/node_modules/ejs/test/fixtures/include_preprocessor_line_slurp.html
generated
vendored
@@ -1,5 +0,0 @@
|
||||
<div>
|
||||
12
|
||||
3
|
||||
45
|
||||
</div>
|
5
nodejs/node_modules/ejs/test/fixtures/include_preprocessor_line_slurp_child.ejs
generated
vendored
5
nodejs/node_modules/ejs/test/fixtures/include_preprocessor_line_slurp_child.ejs
generated
vendored
@@ -1,5 +0,0 @@
|
||||
<div>
|
||||
1 <%_ if (true) { _%> 2
|
||||
3
|
||||
4 <%_ } _%> 5
|
||||
</div>
|
1
nodejs/node_modules/ejs/test/fixtures/includes/bom.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/includes/bom.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<p>This is a file with BOM.</p>
|
1
nodejs/node_modules/ejs/test/fixtures/includes/menu-item.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/includes/menu-item.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<li><% include menu/item %></li>
|
1
nodejs/node_modules/ejs/test/fixtures/includes/menu/item.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/includes/menu/item.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<a href="/<%= url %>"><%= title %></a>
|
3
nodejs/node_modules/ejs/test/fixtures/literal.ejs
generated
vendored
3
nodejs/node_modules/ejs/test/fixtures/literal.ejs
generated
vendored
@@ -1,3 +0,0 @@
|
||||
<pre>There should be a space followed by a less-than sign and then two more
|
||||
spaces in the next line:
|
||||
< .</pre>
|
3
nodejs/node_modules/ejs/test/fixtures/literal.html
generated
vendored
3
nodejs/node_modules/ejs/test/fixtures/literal.html
generated
vendored
@@ -1,3 +0,0 @@
|
||||
<pre>There should be a space followed by a less-than sign and then two more
|
||||
spaces in the next line:
|
||||
< .</pre>
|
15
nodejs/node_modules/ejs/test/fixtures/menu.ejs
generated
vendored
15
nodejs/node_modules/ejs/test/fixtures/menu.ejs
generated
vendored
@@ -1,15 +0,0 @@
|
||||
<%- include('includes/menu-item', {
|
||||
url: '/foo'
|
||||
, title: 'Foo'
|
||||
}); -%>
|
||||
|
||||
<%- include('includes/menu-item', {
|
||||
url: '/bar'
|
||||
, title: 'Bar'
|
||||
}); -%>
|
||||
|
||||
<%- include('includes/menu-item', {
|
||||
url: '/baz'
|
||||
, title: 'Baz'
|
||||
}); -%>
|
||||
|
9
nodejs/node_modules/ejs/test/fixtures/menu.html
generated
vendored
9
nodejs/node_modules/ejs/test/fixtures/menu.html
generated
vendored
@@ -1,9 +0,0 @@
|
||||
<li><a href="//foo">Foo</a>
|
||||
</li>
|
||||
|
||||
<li><a href="//bar">Bar</a>
|
||||
</li>
|
||||
|
||||
<li><a href="//baz">Baz</a>
|
||||
</li>
|
||||
|
11
nodejs/node_modules/ejs/test/fixtures/menu_preprocessor.ejs
generated
vendored
11
nodejs/node_modules/ejs/test/fixtures/menu_preprocessor.ejs
generated
vendored
@@ -1,11 +0,0 @@
|
||||
<% var url = '/foo' -%>
|
||||
<% var title = 'Foo' -%>
|
||||
<% include includes/menu-item -%>
|
||||
|
||||
<% var url = '/bar' -%>
|
||||
<% var title = 'Bar' -%>
|
||||
<% include includes/menu-item -%>
|
||||
|
||||
<% var url = '/baz' -%>
|
||||
<% var title = 'Baz' -%>
|
||||
<% include includes/menu-item -%>
|
8
nodejs/node_modules/ejs/test/fixtures/menu_preprocessor.html
generated
vendored
8
nodejs/node_modules/ejs/test/fixtures/menu_preprocessor.html
generated
vendored
@@ -1,8 +0,0 @@
|
||||
<li><a href="//foo">Foo</a>
|
||||
</li>
|
||||
|
||||
<li><a href="//bar">Bar</a>
|
||||
</li>
|
||||
|
||||
<li><a href="//baz">Baz</a>
|
||||
</li>
|
15
nodejs/node_modules/ejs/test/fixtures/menu_var.ejs
generated
vendored
15
nodejs/node_modules/ejs/test/fixtures/menu_var.ejs
generated
vendored
@@ -1,15 +0,0 @@
|
||||
<%- include(varPath, {
|
||||
url: '/foo'
|
||||
, title: 'Foo'
|
||||
}); -%>
|
||||
|
||||
<%- include(varPath, {
|
||||
url: '/bar'
|
||||
, title: 'Bar'
|
||||
}); -%>
|
||||
|
||||
<%- include(varPath, {
|
||||
url: '/baz'
|
||||
, title: 'Baz'
|
||||
}); -%>
|
||||
|
1
nodejs/node_modules/ejs/test/fixtures/messed.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/messed.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<ul><%users.forEach(function(user){%><li><%=user.name%></li><%})%></ul>
|
1
nodejs/node_modules/ejs/test/fixtures/messed.html
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/messed.html
generated
vendored
@@ -1 +0,0 @@
|
||||
<ul><li>geddy</li><li>neil</li><li>alex</li></ul>
|
5
nodejs/node_modules/ejs/test/fixtures/newlines.ejs
generated
vendored
5
nodejs/node_modules/ejs/test/fixtures/newlines.ejs
generated
vendored
@@ -1,5 +0,0 @@
|
||||
<ul>
|
||||
<% users.forEach(function(user){ %>
|
||||
<li><%= user.name %></li>
|
||||
<% }) %>
|
||||
</ul>
|
9
nodejs/node_modules/ejs/test/fixtures/newlines.html
generated
vendored
9
nodejs/node_modules/ejs/test/fixtures/newlines.html
generated
vendored
@@ -1,9 +0,0 @@
|
||||
<ul>
|
||||
|
||||
<li>geddy</li>
|
||||
|
||||
<li>neil</li>
|
||||
|
||||
<li>alex</li>
|
||||
|
||||
</ul>
|
6
nodejs/node_modules/ejs/test/fixtures/newlines.mixed.ejs
generated
vendored
6
nodejs/node_modules/ejs/test/fixtures/newlines.mixed.ejs
generated
vendored
@@ -1,6 +0,0 @@
|
||||
<ul>
|
||||
<% var unused1 = 'blah' -%>
|
||||
<% var unused2 = 'bleh' %>
|
||||
<% var unused3 = 'bloh' -%>
|
||||
<% var unused4 = 'bluh' %>
|
||||
</ul>
|
4
nodejs/node_modules/ejs/test/fixtures/newlines.mixed.html
generated
vendored
4
nodejs/node_modules/ejs/test/fixtures/newlines.mixed.html
generated
vendored
@@ -1,4 +0,0 @@
|
||||
<ul>
|
||||
|
||||
|
||||
</ul>
|
5
nodejs/node_modules/ejs/test/fixtures/no.newlines.ejs
generated
vendored
5
nodejs/node_modules/ejs/test/fixtures/no.newlines.ejs
generated
vendored
@@ -1,5 +0,0 @@
|
||||
<ul>
|
||||
<% users.forEach(function(user){ -%>
|
||||
<li><%= user.name %></li>
|
||||
<% }) -%>
|
||||
</ul>
|
5
nodejs/node_modules/ejs/test/fixtures/no.newlines.error.ejs
generated
vendored
5
nodejs/node_modules/ejs/test/fixtures/no.newlines.error.ejs
generated
vendored
@@ -1,5 +0,0 @@
|
||||
AAA
|
||||
<% data = "test"; -%>
|
||||
BBB
|
||||
<%= qdata %>
|
||||
CCC
|
5
nodejs/node_modules/ejs/test/fixtures/no.newlines.html
generated
vendored
5
nodejs/node_modules/ejs/test/fixtures/no.newlines.html
generated
vendored
@@ -1,5 +0,0 @@
|
||||
<ul>
|
||||
<li>geddy</li>
|
||||
<li>neil</li>
|
||||
<li>alex</li>
|
||||
</ul>
|
8
nodejs/node_modules/ejs/test/fixtures/no.semicolons.ejs
generated
vendored
8
nodejs/node_modules/ejs/test/fixtures/no.semicolons.ejs
generated
vendored
@@ -1,8 +0,0 @@
|
||||
This document does not use semicolons in scriptlets.
|
||||
<%
|
||||
var a = 'b'
|
||||
var b = 'c'
|
||||
var c
|
||||
c = b
|
||||
%>
|
||||
The value of c is: <%= c %>
|
3
nodejs/node_modules/ejs/test/fixtures/no.semicolons.html
generated
vendored
3
nodejs/node_modules/ejs/test/fixtures/no.semicolons.html
generated
vendored
@@ -1,3 +0,0 @@
|
||||
This document does not use semicolons in scriptlets.
|
||||
|
||||
The value of c is: c
|
1
nodejs/node_modules/ejs/test/fixtures/para.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/para.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<p>hey</p>
|
1
nodejs/node_modules/ejs/test/fixtures/pet.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/pet.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<li><@= pet.name @></li>
|
14
nodejs/node_modules/ejs/test/fixtures/rmWhitespace.ejs
generated
vendored
14
nodejs/node_modules/ejs/test/fixtures/rmWhitespace.ejs
generated
vendored
@@ -1,14 +0,0 @@
|
||||
<tag1>
|
||||
<tag2>
|
||||
A very long piece of text very long piece of text very long piece of
|
||||
text very long piece <% var f = 'f' %>of text very long piece of
|
||||
tex
|
||||
t very long piece of<% %>text very long
|
||||
adsffadsfadsfad<%= f %>
|
||||
|
||||
piece of text.
|
||||
<% var a = 'a' %>
|
||||
Text again.
|
||||
<% var b = 'b' %>
|
||||
<% var c = 'c'
|
||||
var d = 'd' %>
|
8
nodejs/node_modules/ejs/test/fixtures/rmWhitespace.html
generated
vendored
8
nodejs/node_modules/ejs/test/fixtures/rmWhitespace.html
generated
vendored
@@ -1,8 +0,0 @@
|
||||
<tag1>
|
||||
<tag2>
|
||||
A very long piece of text very long piece of text very long piece of
|
||||
text very long piece of text very long piece of
|
||||
text very long piece oftext very long
|
||||
adsffadsfadsfadfpiece of text.
|
||||
Text again.
|
||||
Another text. c
|
1
nodejs/node_modules/ejs/test/fixtures/single-quote.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/single-quote.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<p><%= 'loki' %>'s wheelchair</p>
|
1
nodejs/node_modules/ejs/test/fixtures/single-quote.html
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/single-quote.html
generated
vendored
@@ -1 +0,0 @@
|
||||
<p>loki's wheelchair</p>
|
5
nodejs/node_modules/ejs/test/fixtures/space-and-tab-slurp.ejs
generated
vendored
5
nodejs/node_modules/ejs/test/fixtures/space-and-tab-slurp.ejs
generated
vendored
@@ -1,5 +0,0 @@
|
||||
<ul>
|
||||
<%_ users.forEach(function(user){ _%>
|
||||
<li><%= user.name %></li>
|
||||
<%_ }) _%>
|
||||
</ul>
|
5
nodejs/node_modules/ejs/test/fixtures/space-and-tab-slurp.html
generated
vendored
5
nodejs/node_modules/ejs/test/fixtures/space-and-tab-slurp.html
generated
vendored
@@ -1,5 +0,0 @@
|
||||
<ul>
|
||||
<li>geddy</li>
|
||||
<li>neil</li>
|
||||
<li>alex</li>
|
||||
</ul>
|
5
nodejs/node_modules/ejs/test/fixtures/strict.ejs
generated
vendored
5
nodejs/node_modules/ejs/test/fixtures/strict.ejs
generated
vendored
@@ -1,5 +0,0 @@
|
||||
<%
|
||||
// Unspecified execution context should be `undefined` in strict mode
|
||||
var isReallyStrict = !((function () { return this; })())
|
||||
-%>
|
||||
<%= isReallyStrict -%>
|
3
nodejs/node_modules/ejs/test/fixtures/style.css
generated
vendored
3
nodejs/node_modules/ejs/test/fixtures/style.css
generated
vendored
@@ -1,3 +0,0 @@
|
||||
body {
|
||||
foo: '<%= value %>';
|
||||
}
|
1
nodejs/node_modules/ejs/test/fixtures/user-no-with.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/user-no-with.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<h1><$= locals.name $></h1>
|
1
nodejs/node_modules/ejs/test/fixtures/user.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/user.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<h1><$= name $></h1>
|
1
nodejs/node_modules/ejs/test/fixtures/with-context.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/fixtures/with-context.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<%= this.foo %>
|
3
nodejs/node_modules/ejs/test/mocha.opts
generated
vendored
3
nodejs/node_modules/ejs/test/mocha.opts
generated
vendored
@@ -1,3 +0,0 @@
|
||||
--ui tdd
|
||||
--reporter spec
|
||||
--check-leaks
|
1
nodejs/node_modules/ejs/test/tmp/include.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/tmp/include.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<p>New</p>
|
1
nodejs/node_modules/ejs/test/tmp/include_preprocessor.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/tmp/include_preprocessor.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<p>New</p>
|
1
nodejs/node_modules/ejs/test/tmp/renderFile.ejs
generated
vendored
1
nodejs/node_modules/ejs/test/tmp/renderFile.ejs
generated
vendored
@@ -1 +0,0 @@
|
||||
<p>New</p>
|
7
nodejs/node_modules/express/.npmignore
generated
vendored
7
nodejs/node_modules/express/.npmignore
generated
vendored
@@ -1,7 +0,0 @@
|
||||
.git*
|
||||
docs/
|
||||
examples/
|
||||
support/
|
||||
test/
|
||||
testing.js
|
||||
.DS_Store
|
805
nodejs/node_modules/express/History.md
generated
vendored
805
nodejs/node_modules/express/History.md
generated
vendored
@@ -1,805 +0,0 @@
|
||||
|
||||
2.5.8 / 2012-02-08
|
||||
==================
|
||||
|
||||
* Update mkdirp dep. Closes #991
|
||||
|
||||
2.5.7 / 2012-02-06
|
||||
==================
|
||||
|
||||
* Fixed `app.all` duplicate DELETE requests [mscdex]
|
||||
|
||||
2.5.6 / 2012-01-13
|
||||
==================
|
||||
|
||||
* Updated hamljs dev dep. Closes #953
|
||||
|
||||
2.5.5 / 2012-01-08
|
||||
==================
|
||||
|
||||
* Fixed: set `filename` on cached templates [matthewleon]
|
||||
|
||||
2.5.4 / 2012-01-02
|
||||
==================
|
||||
|
||||
* Fixed `express(1)` eol on 0.4.x. Closes #947
|
||||
|
||||
2.5.3 / 2011-12-30
|
||||
==================
|
||||
|
||||
* Fixed `req.is()` when a charset is present
|
||||
|
||||
2.5.2 / 2011-12-10
|
||||
==================
|
||||
|
||||
* Fixed: express(1) LF -> CRLF for windows
|
||||
|
||||
2.5.1 / 2011-11-17
|
||||
==================
|
||||
|
||||
* Changed: updated connect to 1.8.x
|
||||
* Removed sass.js support from express(1)
|
||||
|
||||
2.5.0 / 2011-10-24
|
||||
==================
|
||||
|
||||
* Added ./routes dir for generated app by default
|
||||
* Added npm install reminder to express(1) app gen
|
||||
* Added 0.5.x support
|
||||
* Removed `make test-cov` since it wont work with node 0.5.x
|
||||
* Fixed express(1) public dir for windows. Closes #866
|
||||
|
||||
2.4.7 / 2011-10-05
|
||||
==================
|
||||
|
||||
* Added mkdirp to express(1). Closes #795
|
||||
* Added simple _json-config_ example
|
||||
* Added shorthand for the parsed request's pathname via `req.path`
|
||||
* Changed connect dep to 1.7.x to fix npm issue...
|
||||
* Fixed `res.redirect()` __HEAD__ support. [reported by xerox]
|
||||
* Fixed `req.flash()`, only escape args
|
||||
* Fixed absolute path checking on windows. Closes #829 [reported by andrewpmckenzie]
|
||||
|
||||
2.4.6 / 2011-08-22
|
||||
==================
|
||||
|
||||
* Fixed multiple param callback regression. Closes #824 [reported by TroyGoode]
|
||||
|
||||
2.4.5 / 2011-08-19
|
||||
==================
|
||||
|
||||
* Added support for routes to handle errors. Closes #809
|
||||
* Added `app.routes.all()`. Closes #803
|
||||
* Added "basepath" setting to work in conjunction with reverse proxies etc.
|
||||
* Refactored `Route` to use a single array of callbacks
|
||||
* Added support for multiple callbacks for `app.param()`. Closes #801
|
||||
Closes #805
|
||||
* Changed: removed .call(self) for route callbacks
|
||||
* Dependency: `qs >= 0.3.1`
|
||||
* Fixed `res.redirect()` on windows due to `join()` usage. Closes #808
|
||||
|
||||
2.4.4 / 2011-08-05
|
||||
==================
|
||||
|
||||
* Fixed `res.header()` intention of a set, even when `undefined`
|
||||
* Fixed `*`, value no longer required
|
||||
* Fixed `res.send(204)` support. Closes #771
|
||||
|
||||
2.4.3 / 2011-07-14
|
||||
==================
|
||||
|
||||
* Added docs for `status` option special-case. Closes #739
|
||||
* Fixed `options.filename`, exposing the view path to template engines
|
||||
|
||||
2.4.2. / 2011-07-06
|
||||
==================
|
||||
|
||||
* Revert "removed jsonp stripping" for XSS
|
||||
|
||||
2.4.1 / 2011-07-06
|
||||
==================
|
||||
|
||||
* Added `res.json()` JSONP support. Closes #737
|
||||
* Added _extending-templates_ example. Closes #730
|
||||
* Added "strict routing" setting for trailing slashes
|
||||
* Added support for multiple envs in `app.configure()` calls. Closes #735
|
||||
* Changed: `res.send()` using `res.json()`
|
||||
* Changed: when cookie `path === null` don't default it
|
||||
* Changed; default cookie path to "home" setting. Closes #731
|
||||
* Removed _pids/logs_ creation from express(1)
|
||||
|
||||
2.4.0 / 2011-06-28
|
||||
==================
|
||||
|
||||
* Added chainable `res.status(code)`
|
||||
* Added `res.json()`, an explicit version of `res.send(obj)`
|
||||
* Added simple web-service example
|
||||
|
||||
2.3.12 / 2011-06-22
|
||||
==================
|
||||
|
||||
* \#express is now on freenode! come join!
|
||||
* Added `req.get(field, param)`
|
||||
* Added links to Japanese documentation, thanks @hideyukisaito!
|
||||
* Added; the `express(1)` generated app outputs the env
|
||||
* Added `content-negotiation` example
|
||||
* Dependency: connect >= 1.5.1 < 2.0.0
|
||||
* Fixed view layout bug. Closes #720
|
||||
* Fixed; ignore body on 304. Closes #701
|
||||
|
||||
2.3.11 / 2011-06-04
|
||||
==================
|
||||
|
||||
* Added `npm test`
|
||||
* Removed generation of dummy test file from `express(1)`
|
||||
* Fixed; `express(1)` adds express as a dep
|
||||
* Fixed; prune on `prepublish`
|
||||
|
||||
2.3.10 / 2011-05-27
|
||||
==================
|
||||
|
||||
* Added `req.route`, exposing the current route
|
||||
* Added _package.json_ generation support to `express(1)`
|
||||
* Fixed call to `app.param()` function for optional params. Closes #682
|
||||
|
||||
2.3.9 / 2011-05-25
|
||||
==================
|
||||
|
||||
* Fixed bug-ish with `../' in `res.partial()` calls
|
||||
|
||||
2.3.8 / 2011-05-24
|
||||
==================
|
||||
|
||||
* Fixed `app.options()`
|
||||
|
||||
2.3.7 / 2011-05-23
|
||||
==================
|
||||
|
||||
* Added route `Collection`, ex: `app.get('/user/:id').remove();`
|
||||
* Added support for `app.param(fn)` to define param logic
|
||||
* Removed `app.param()` support for callback with return value
|
||||
* Removed module.parent check from express(1) generated app. Closes #670
|
||||
* Refactored router. Closes #639
|
||||
|
||||
2.3.6 / 2011-05-20
|
||||
==================
|
||||
|
||||
* Changed; using devDependencies instead of git submodules
|
||||
* Fixed redis session example
|
||||
* Fixed markdown example
|
||||
* Fixed view caching, should not be enabled in development
|
||||
|
||||
2.3.5 / 2011-05-20
|
||||
==================
|
||||
|
||||
* Added export `.view` as alias for `.View`
|
||||
|
||||
2.3.4 / 2011-05-08
|
||||
==================
|
||||
|
||||
* Added `./examples/say`
|
||||
* Fixed `res.sendfile()` bug preventing the transfer of files with spaces
|
||||
|
||||
2.3.3 / 2011-05-03
|
||||
==================
|
||||
|
||||
* Added "case sensitive routes" option.
|
||||
* Changed; split methods supported per rfc [slaskis]
|
||||
* Fixed route-specific middleware when using the same callback function several times
|
||||
|
||||
2.3.2 / 2011-04-27
|
||||
==================
|
||||
|
||||
* Fixed view hints
|
||||
|
||||
2.3.1 / 2011-04-26
|
||||
==================
|
||||
|
||||
* Added `app.match()` as `app.match.all()`
|
||||
* Added `app.lookup()` as `app.lookup.all()`
|
||||
* Added `app.remove()` for `app.remove.all()`
|
||||
* Added `app.remove.VERB()`
|
||||
* Fixed template caching collision issue. Closes #644
|
||||
* Moved router over from connect and started refactor
|
||||
|
||||
2.3.0 / 2011-04-25
|
||||
==================
|
||||
|
||||
* Added options support to `res.clearCookie()`
|
||||
* Added `res.helpers()` as alias of `res.locals()`
|
||||
* Added; json defaults to UTF-8 with `res.send()`. Closes #632. [Daniel * Dependency `connect >= 1.4.0`
|
||||
* Changed; auto set Content-Type in res.attachement [Aaron Heckmann]
|
||||
* Renamed "cache views" to "view cache". Closes #628
|
||||
* Fixed caching of views when using several apps. Closes #637
|
||||
* Fixed gotcha invoking `app.param()` callbacks once per route middleware.
|
||||
Closes #638
|
||||
* Fixed partial lookup precedence. Closes #631
|
||||
Shaw]
|
||||
|
||||
2.2.2 / 2011-04-12
|
||||
==================
|
||||
|
||||
* Added second callback support for `res.download()` connection errors
|
||||
* Fixed `filename` option passing to template engine
|
||||
|
||||
2.2.1 / 2011-04-04
|
||||
==================
|
||||
|
||||
* Added `layout(path)` helper to change the layout within a view. Closes #610
|
||||
* Fixed `partial()` collection object support.
|
||||
Previously only anything with `.length` would work.
|
||||
When `.length` is present one must still be aware of holes,
|
||||
however now `{ collection: {foo: 'bar'}}` is valid, exposes
|
||||
`keyInCollection` and `keysInCollection`.
|
||||
|
||||
* Performance improved with better view caching
|
||||
* Removed `request` and `response` locals
|
||||
* Changed; errorHandler page title is now `Express` instead of `Connect`
|
||||
|
||||
2.2.0 / 2011-03-30
|
||||
==================
|
||||
|
||||
* Added `app.lookup.VERB()`, ex `app.lookup.put('/user/:id')`. Closes #606
|
||||
* Added `app.match.VERB()`, ex `app.match.put('/user/12')`. Closes #606
|
||||
* Added `app.VERB(path)` as alias of `app.lookup.VERB()`.
|
||||
* Dependency `connect >= 1.2.0`
|
||||
|
||||
2.1.1 / 2011-03-29
|
||||
==================
|
||||
|
||||
* Added; expose `err.view` object when failing to locate a view
|
||||
* Fixed `res.partial()` call `next(err)` when no callback is given [reported by aheckmann]
|
||||
* Fixed; `res.send(undefined)` responds with 204 [aheckmann]
|
||||
|
||||
2.1.0 / 2011-03-24
|
||||
==================
|
||||
|
||||
* Added `<root>/_?<name>` partial lookup support. Closes #447
|
||||
* Added `request`, `response`, and `app` local variables
|
||||
* Added `settings` local variable, containing the app's settings
|
||||
* Added `req.flash()` exception if `req.session` is not available
|
||||
* Added `res.send(bool)` support (json response)
|
||||
* Fixed stylus example for latest version
|
||||
* Fixed; wrap try/catch around `res.render()`
|
||||
|
||||
2.0.0 / 2011-03-17
|
||||
==================
|
||||
|
||||
* Fixed up index view path alternative.
|
||||
* Changed; `res.locals()` without object returns the locals
|
||||
|
||||
2.0.0rc3 / 2011-03-17
|
||||
==================
|
||||
|
||||
* Added `res.locals(obj)` to compliment `res.local(key, val)`
|
||||
* Added `res.partial()` callback support
|
||||
* Fixed recursive error reporting issue in `res.render()`
|
||||
|
||||
2.0.0rc2 / 2011-03-17
|
||||
==================
|
||||
|
||||
* Changed; `partial()` "locals" are now optional
|
||||
* Fixed `SlowBuffer` support. Closes #584 [reported by tyrda01]
|
||||
* Fixed .filename view engine option [reported by drudge]
|
||||
* Fixed blog example
|
||||
* Fixed `{req,res}.app` reference when mounting [Ben Weaver]
|
||||
|
||||
2.0.0rc / 2011-03-14
|
||||
==================
|
||||
|
||||
* Fixed; expose `HTTPSServer` constructor
|
||||
* Fixed express(1) default test charset. Closes #579 [reported by secoif]
|
||||
* Fixed; default charset to utf-8 instead of utf8 for lame IE [reported by NickP]
|
||||
|
||||
2.0.0beta3 / 2011-03-09
|
||||
==================
|
||||
|
||||
* Added support for `res.contentType()` literal
|
||||
The original `res.contentType('.json')`,
|
||||
`res.contentType('application/json')`, and `res.contentType('json')`
|
||||
will work now.
|
||||
* Added `res.render()` status option support back
|
||||
* Added charset option for `res.render()`
|
||||
* Added `.charset` support (via connect 1.0.4)
|
||||
* Added view resolution hints when in development and a lookup fails
|
||||
* Added layout lookup support relative to the page view.
|
||||
For example while rendering `./views/user/index.jade` if you create
|
||||
`./views/user/layout.jade` it will be used in favour of the root layout.
|
||||
* Fixed `res.redirect()`. RFC states absolute url [reported by unlink]
|
||||
* Fixed; default `res.send()` string charset to utf8
|
||||
* Removed `Partial` constructor (not currently used)
|
||||
|
||||
2.0.0beta2 / 2011-03-07
|
||||
==================
|
||||
|
||||
* Added res.render() `.locals` support back to aid in migration process
|
||||
* Fixed flash example
|
||||
|
||||
2.0.0beta / 2011-03-03
|
||||
==================
|
||||
|
||||
* Added HTTPS support
|
||||
* Added `res.cookie()` maxAge support
|
||||
* Added `req.header()` _Referrer_ / _Referer_ special-case, either works
|
||||
* Added mount support for `res.redirect()`, now respects the mount-point
|
||||
* Added `union()` util, taking place of `merge(clone())` combo
|
||||
* Added stylus support to express(1) generated app
|
||||
* Added secret to session middleware used in examples and generated app
|
||||
* Added `res.local(name, val)` for progressive view locals
|
||||
* Added default param support to `req.param(name, default)`
|
||||
* Added `app.disabled()` and `app.enabled()`
|
||||
* Added `app.register()` support for omitting leading ".", either works
|
||||
* Added `res.partial()`, using the same interface as `partial()` within a view. Closes #539
|
||||
* Added `app.param()` to map route params to async/sync logic
|
||||
* Added; aliased `app.helpers()` as `app.locals()`. Closes #481
|
||||
* Added extname with no leading "." support to `res.contentType()`
|
||||
* Added `cache views` setting, defaulting to enabled in "production" env
|
||||
* Added index file partial resolution, eg: partial('user') may try _views/user/index.jade_.
|
||||
* Added `req.accepts()` support for extensions
|
||||
* Changed; `res.download()` and `res.sendfile()` now utilize Connect's
|
||||
static file server `connect.static.send()`.
|
||||
* Changed; replaced `connect.utils.mime()` with npm _mime_ module
|
||||
* Changed; allow `req.query` to be pre-defined (via middleware or other parent
|
||||
* Changed view partial resolution, now relative to parent view
|
||||
* Changed view engine signature. no longer `engine.render(str, options, callback)`, now `engine.compile(str, options) -> Function`, the returned function accepts `fn(locals)`.
|
||||
* Fixed `req.param()` bug returning Array.prototype methods. Closes #552
|
||||
* Fixed; using `Stream#pipe()` instead of `sys.pump()` in `res.sendfile()`
|
||||
* Fixed; using _qs_ module instead of _querystring_
|
||||
* Fixed; strip unsafe chars from jsonp callbacks
|
||||
* Removed "stream threshold" setting
|
||||
|
||||
1.0.8 / 2011-03-01
|
||||
==================
|
||||
|
||||
* Allow `req.query` to be pre-defined (via middleware or other parent app)
|
||||
* "connect": ">= 0.5.0 < 1.0.0". Closes #547
|
||||
* Removed the long deprecated __EXPRESS_ENV__ support
|
||||
|
||||
1.0.7 / 2011-02-07
|
||||
==================
|
||||
|
||||
* Fixed `render()` setting inheritance.
|
||||
Mounted apps would not inherit "view engine"
|
||||
|
||||
1.0.6 / 2011-02-07
|
||||
==================
|
||||
|
||||
* Fixed `view engine` setting bug when period is in dirname
|
||||
|
||||
1.0.5 / 2011-02-05
|
||||
==================
|
||||
|
||||
* Added secret to generated app `session()` call
|
||||
|
||||
1.0.4 / 2011-02-05
|
||||
==================
|
||||
|
||||
* Added `qs` dependency to _package.json_
|
||||
* Fixed namespaced `require()`s for latest connect support
|
||||
|
||||
1.0.3 / 2011-01-13
|
||||
==================
|
||||
|
||||
* Remove unsafe characters from JSONP callback names [Ryan Grove]
|
||||
|
||||
1.0.2 / 2011-01-10
|
||||
==================
|
||||
|
||||
* Removed nested require, using `connect.router`
|
||||
|
||||
1.0.1 / 2010-12-29
|
||||
==================
|
||||
|
||||
* Fixed for middleware stacked via `createServer()`
|
||||
previously the `foo` middleware passed to `createServer(foo)`
|
||||
would not have access to Express methods such as `res.send()`
|
||||
or props like `req.query` etc.
|
||||
|
||||
1.0.0 / 2010-11-16
|
||||
==================
|
||||
|
||||
* Added; deduce partial object names from the last segment.
|
||||
For example by default `partial('forum/post', postObject)` will
|
||||
give you the _post_ object, providing a meaningful default.
|
||||
* Added http status code string representation to `res.redirect()` body
|
||||
* Added; `res.redirect()` supporting _text/plain_ and _text/html_ via __Accept__.
|
||||
* Added `req.is()` to aid in content negotiation
|
||||
* Added partial local inheritance [suggested by masylum]. Closes #102
|
||||
providing access to parent template locals.
|
||||
* Added _-s, --session[s]_ flag to express(1) to add session related middleware
|
||||
* Added _--template_ flag to express(1) to specify the
|
||||
template engine to use.
|
||||
* Added _--css_ flag to express(1) to specify the
|
||||
stylesheet engine to use (or just plain css by default).
|
||||
* Added `app.all()` support [thanks aheckmann]
|
||||
* Added partial direct object support.
|
||||
You may now `partial('user', user)` providing the "user" local,
|
||||
vs previously `partial('user', { object: user })`.
|
||||
* Added _route-separation_ example since many people question ways
|
||||
to do this with CommonJS modules. Also view the _blog_ example for
|
||||
an alternative.
|
||||
* Performance; caching view path derived partial object names
|
||||
* Fixed partial local inheritance precedence. [reported by Nick Poulden] Closes #454
|
||||
* Fixed jsonp support; _text/javascript_ as per mailinglist discussion
|
||||
|
||||
1.0.0rc4 / 2010-10-14
|
||||
==================
|
||||
|
||||
* Added _NODE_ENV_ support, _EXPRESS_ENV_ is deprecated and will be removed in 1.0.0
|
||||
* Added route-middleware support (very helpful, see the [docs](http://expressjs.com/guide.html#Route-Middleware))
|
||||
* Added _jsonp callback_ setting to enable/disable jsonp autowrapping [Dav Glass]
|
||||
* Added callback query check on response.send to autowrap JSON objects for simple webservice implementations [Dav Glass]
|
||||
* Added `partial()` support for array-like collections. Closes #434
|
||||
* Added support for swappable querystring parsers
|
||||
* Added session usage docs. Closes #443
|
||||
* Added dynamic helper caching. Closes #439 [suggested by maritz]
|
||||
* Added authentication example
|
||||
* Added basic Range support to `res.sendfile()` (and `res.download()` etc)
|
||||
* Changed; `express(1)` generated app using 2 spaces instead of 4
|
||||
* Default env to "development" again [aheckmann]
|
||||
* Removed _context_ option is no more, use "scope"
|
||||
* Fixed; exposing _./support_ libs to examples so they can run without installs
|
||||
* Fixed mvc example
|
||||
|
||||
1.0.0rc3 / 2010-09-20
|
||||
==================
|
||||
|
||||
* Added confirmation for `express(1)` app generation. Closes #391
|
||||
* Added extending of flash formatters via `app.flashFormatters`
|
||||
* Added flash formatter support. Closes #411
|
||||
* Added streaming support to `res.sendfile()` using `sys.pump()` when >= "stream threshold"
|
||||
* Added _stream threshold_ setting for `res.sendfile()`
|
||||
* Added `res.send()` __HEAD__ support
|
||||
* Added `res.clearCookie()`
|
||||
* Added `res.cookie()`
|
||||
* Added `res.render()` headers option
|
||||
* Added `res.redirect()` response bodies
|
||||
* Added `res.render()` status option support. Closes #425 [thanks aheckmann]
|
||||
* Fixed `res.sendfile()` responding with 403 on malicious path
|
||||
* Fixed `res.download()` bug; when an error occurs remove _Content-Disposition_
|
||||
* Fixed; mounted apps settings now inherit from parent app [aheckmann]
|
||||
* Fixed; stripping Content-Length / Content-Type when 204
|
||||
* Fixed `res.send()` 204. Closes #419
|
||||
* Fixed multiple _Set-Cookie_ headers via `res.header()`. Closes #402
|
||||
* Fixed bug messing with error handlers when `listenFD()` is called instead of `listen()`. [thanks guillermo]
|
||||
|
||||
|
||||
1.0.0rc2 / 2010-08-17
|
||||
==================
|
||||
|
||||
* Added `app.register()` for template engine mapping. Closes #390
|
||||
* Added `res.render()` callback support as second argument (no options)
|
||||
* Added callback support to `res.download()`
|
||||
* Added callback support for `res.sendfile()`
|
||||
* Added support for middleware access via `express.middlewareName()` vs `connect.middlewareName()`
|
||||
* Added "partials" setting to docs
|
||||
* Added default expresso tests to `express(1)` generated app. Closes #384
|
||||
* Fixed `res.sendfile()` error handling, defer via `next()`
|
||||
* Fixed `res.render()` callback when a layout is used [thanks guillermo]
|
||||
* Fixed; `make install` creating ~/.node_libraries when not present
|
||||
* Fixed issue preventing error handlers from being defined anywhere. Closes #387
|
||||
|
||||
1.0.0rc / 2010-07-28
|
||||
==================
|
||||
|
||||
* Added mounted hook. Closes #369
|
||||
* Added connect dependency to _package.json_
|
||||
|
||||
* Removed "reload views" setting and support code
|
||||
development env never caches, production always caches.
|
||||
|
||||
* Removed _param_ in route callbacks, signature is now
|
||||
simply (req, res, next), previously (req, res, params, next).
|
||||
Use _req.params_ for path captures, _req.query_ for GET params.
|
||||
|
||||
* Fixed "home" setting
|
||||
* Fixed middleware/router precedence issue. Closes #366
|
||||
* Fixed; _configure()_ callbacks called immediately. Closes #368
|
||||
|
||||
1.0.0beta2 / 2010-07-23
|
||||
==================
|
||||
|
||||
* Added more examples
|
||||
* Added; exporting `Server` constructor
|
||||
* Added `Server#helpers()` for view locals
|
||||
* Added `Server#dynamicHelpers()` for dynamic view locals. Closes #349
|
||||
* Added support for absolute view paths
|
||||
* Added; _home_ setting defaults to `Server#route` for mounted apps. Closes #363
|
||||
* Added Guillermo Rauch to the contributor list
|
||||
* Added support for "as" for non-collection partials. Closes #341
|
||||
* Fixed _install.sh_, ensuring _~/.node_libraries_ exists. Closes #362 [thanks jf]
|
||||
* Fixed `res.render()` exceptions, now passed to `next()` when no callback is given [thanks guillermo]
|
||||
* Fixed instanceof `Array` checks, now `Array.isArray()`
|
||||
* Fixed express(1) expansion of public dirs. Closes #348
|
||||
* Fixed middleware precedence. Closes #345
|
||||
* Fixed view watcher, now async [thanks aheckmann]
|
||||
|
||||
1.0.0beta / 2010-07-15
|
||||
==================
|
||||
|
||||
* Re-write
|
||||
- much faster
|
||||
- much lighter
|
||||
- Check [ExpressJS.com](http://expressjs.com) for migration guide and updated docs
|
||||
|
||||
0.14.0 / 2010-06-15
|
||||
==================
|
||||
|
||||
* Utilize relative requires
|
||||
* Added Static bufferSize option [aheckmann]
|
||||
* Fixed caching of view and partial subdirectories [aheckmann]
|
||||
* Fixed mime.type() comments now that ".ext" is not supported
|
||||
* Updated haml submodule
|
||||
* Updated class submodule
|
||||
* Removed bin/express
|
||||
|
||||
0.13.0 / 2010-06-01
|
||||
==================
|
||||
|
||||
* Added node v0.1.97 compatibility
|
||||
* Added support for deleting cookies via Request#cookie('key', null)
|
||||
* Updated haml submodule
|
||||
* Fixed not-found page, now using using charset utf-8
|
||||
* Fixed show-exceptions page, now using using charset utf-8
|
||||
* Fixed view support due to fs.readFile Buffers
|
||||
* Changed; mime.type() no longer accepts ".type" due to node extname() changes
|
||||
|
||||
0.12.0 / 2010-05-22
|
||||
==================
|
||||
|
||||
* Added node v0.1.96 compatibility
|
||||
* Added view `helpers` export which act as additional local variables
|
||||
* Updated haml submodule
|
||||
* Changed ETag; removed inode, modified time only
|
||||
* Fixed LF to CRLF for setting multiple cookies
|
||||
* Fixed cookie complation; values are now urlencoded
|
||||
* Fixed cookies parsing; accepts quoted values and url escaped cookies
|
||||
|
||||
0.11.0 / 2010-05-06
|
||||
==================
|
||||
|
||||
* Added support for layouts using different engines
|
||||
- this.render('page.html.haml', { layout: 'super-cool-layout.html.ejs' })
|
||||
- this.render('page.html.haml', { layout: 'foo' }) // assumes 'foo.html.haml'
|
||||
- this.render('page.html.haml', { layout: false }) // no layout
|
||||
* Updated ext submodule
|
||||
* Updated haml submodule
|
||||
* Fixed EJS partial support by passing along the context. Issue #307
|
||||
|
||||
0.10.1 / 2010-05-03
|
||||
==================
|
||||
|
||||
* Fixed binary uploads.
|
||||
|
||||
0.10.0 / 2010-04-30
|
||||
==================
|
||||
|
||||
* Added charset support via Request#charset (automatically assigned to 'UTF-8' when respond()'s
|
||||
encoding is set to 'utf8' or 'utf-8'.
|
||||
* Added "encoding" option to Request#render(). Closes #299
|
||||
* Added "dump exceptions" setting, which is enabled by default.
|
||||
* Added simple ejs template engine support
|
||||
* Added error reponse support for text/plain, application/json. Closes #297
|
||||
* Added callback function param to Request#error()
|
||||
* Added Request#sendHead()
|
||||
* Added Request#stream()
|
||||
* Added support for Request#respond(304, null) for empty response bodies
|
||||
* Added ETag support to Request#sendfile()
|
||||
* Added options to Request#sendfile(), passed to fs.createReadStream()
|
||||
* Added filename arg to Request#download()
|
||||
* Performance enhanced due to pre-reversing plugins so that plugins.reverse() is not called on each request
|
||||
* Performance enhanced by preventing several calls to toLowerCase() in Router#match()
|
||||
* Changed; Request#sendfile() now streams
|
||||
* Changed; Renamed Request#halt() to Request#respond(). Closes #289
|
||||
* Changed; Using sys.inspect() instead of JSON.encode() for error output
|
||||
* Changed; run() returns the http.Server instance. Closes #298
|
||||
* Changed; Defaulting Server#host to null (INADDR_ANY)
|
||||
* Changed; Logger "common" format scale of 0.4f
|
||||
* Removed Logger "request" format
|
||||
* Fixed; Catching ENOENT in view caching, preventing error when "views/partials" is not found
|
||||
* Fixed several issues with http client
|
||||
* Fixed Logger Content-Length output
|
||||
* Fixed bug preventing Opera from retaining the generated session id. Closes #292
|
||||
|
||||
0.9.0 / 2010-04-14
|
||||
==================
|
||||
|
||||
* Added DSL level error() route support
|
||||
* Added DSL level notFound() route support
|
||||
* Added Request#error()
|
||||
* Added Request#notFound()
|
||||
* Added Request#render() callback function. Closes #258
|
||||
* Added "max upload size" setting
|
||||
* Added "magic" variables to collection partials (\_\_index\_\_, \_\_length\_\_, \_\_isFirst\_\_, \_\_isLast\_\_). Closes #254
|
||||
* Added [haml.js](http://github.com/visionmedia/haml.js) submodule; removed haml-js
|
||||
* Added callback function support to Request#halt() as 3rd/4th arg
|
||||
* Added preprocessing of route param wildcards using param(). Closes #251
|
||||
* Added view partial support (with collections etc)
|
||||
* Fixed bug preventing falsey params (such as ?page=0). Closes #286
|
||||
* Fixed setting of multiple cookies. Closes #199
|
||||
* Changed; view naming convention is now NAME.TYPE.ENGINE (for example page.html.haml)
|
||||
* Changed; session cookie is now httpOnly
|
||||
* Changed; Request is no longer global
|
||||
* Changed; Event is no longer global
|
||||
* Changed; "sys" module is no longer global
|
||||
* Changed; moved Request#download to Static plugin where it belongs
|
||||
* Changed; Request instance created before body parsing. Closes #262
|
||||
* Changed; Pre-caching views in memory when "cache view contents" is enabled. Closes #253
|
||||
* Changed; Pre-caching view partials in memory when "cache view partials" is enabled
|
||||
* Updated support to node --version 0.1.90
|
||||
* Updated dependencies
|
||||
* Removed set("session cookie") in favour of use(Session, { cookie: { ... }})
|
||||
* Removed utils.mixin(); use Object#mergeDeep()
|
||||
|
||||
0.8.0 / 2010-03-19
|
||||
==================
|
||||
|
||||
* Added coffeescript example app. Closes #242
|
||||
* Changed; cache api now async friendly. Closes #240
|
||||
* Removed deprecated 'express/static' support. Use 'express/plugins/static'
|
||||
|
||||
0.7.6 / 2010-03-19
|
||||
==================
|
||||
|
||||
* Added Request#isXHR. Closes #229
|
||||
* Added `make install` (for the executable)
|
||||
* Added `express` executable for setting up simple app templates
|
||||
* Added "GET /public/*" to Static plugin, defaulting to <root>/public
|
||||
* Added Static plugin
|
||||
* Fixed; Request#render() only calls cache.get() once
|
||||
* Fixed; Namespacing View caches with "view:"
|
||||
* Fixed; Namespacing Static caches with "static:"
|
||||
* Fixed; Both example apps now use the Static plugin
|
||||
* Fixed set("views"). Closes #239
|
||||
* Fixed missing space for combined log format
|
||||
* Deprecated Request#sendfile() and 'express/static'
|
||||
* Removed Server#running
|
||||
|
||||
0.7.5 / 2010-03-16
|
||||
==================
|
||||
|
||||
* Added Request#flash() support without args, now returns all flashes
|
||||
* Updated ext submodule
|
||||
|
||||
0.7.4 / 2010-03-16
|
||||
==================
|
||||
|
||||
* Fixed session reaper
|
||||
* Changed; class.js replacing js-oo Class implementation (quite a bit faster, no browser cruft)
|
||||
|
||||
0.7.3 / 2010-03-16
|
||||
==================
|
||||
|
||||
* Added package.json
|
||||
* Fixed requiring of haml / sass due to kiwi removal
|
||||
|
||||
0.7.2 / 2010-03-16
|
||||
==================
|
||||
|
||||
* Fixed GIT submodules (HAH!)
|
||||
|
||||
0.7.1 / 2010-03-16
|
||||
==================
|
||||
|
||||
* Changed; Express now using submodules again until a PM is adopted
|
||||
* Changed; chat example using millisecond conversions from ext
|
||||
|
||||
0.7.0 / 2010-03-15
|
||||
==================
|
||||
|
||||
* Added Request#pass() support (finds the next matching route, or the given path)
|
||||
* Added Logger plugin (default "common" format replaces CommonLogger)
|
||||
* Removed Profiler plugin
|
||||
* Removed CommonLogger plugin
|
||||
|
||||
0.6.0 / 2010-03-11
|
||||
==================
|
||||
|
||||
* Added seed.yml for kiwi package management support
|
||||
* Added HTTP client query string support when method is GET. Closes #205
|
||||
|
||||
* Added support for arbitrary view engines.
|
||||
For example "foo.engine.html" will now require('engine'),
|
||||
the exports from this module are cached after the first require().
|
||||
|
||||
* Added async plugin support
|
||||
|
||||
* Removed usage of RESTful route funcs as http client
|
||||
get() etc, use http.get() and friends
|
||||
|
||||
* Removed custom exceptions
|
||||
|
||||
0.5.0 / 2010-03-10
|
||||
==================
|
||||
|
||||
* Added ext dependency (library of js extensions)
|
||||
* Removed extname() / basename() utils. Use path module
|
||||
* Removed toArray() util. Use arguments.values
|
||||
* Removed escapeRegexp() util. Use RegExp.escape()
|
||||
* Removed process.mixin() dependency. Use utils.mixin()
|
||||
* Removed Collection
|
||||
* Removed ElementCollection
|
||||
* Shameless self promotion of ebook "Advanced JavaScript" (http://dev-mag.com) ;)
|
||||
|
||||
0.4.0 / 2010-02-11
|
||||
==================
|
||||
|
||||
* Added flash() example to sample upload app
|
||||
* Added high level restful http client module (express/http)
|
||||
* Changed; RESTful route functions double as HTTP clients. Closes #69
|
||||
* Changed; throwing error when routes are added at runtime
|
||||
* Changed; defaulting render() context to the current Request. Closes #197
|
||||
* Updated haml submodule
|
||||
|
||||
0.3.0 / 2010-02-11
|
||||
==================
|
||||
|
||||
* Updated haml / sass submodules. Closes #200
|
||||
* Added flash message support. Closes #64
|
||||
* Added accepts() now allows multiple args. fixes #117
|
||||
* Added support for plugins to halt. Closes #189
|
||||
* Added alternate layout support. Closes #119
|
||||
* Removed Route#run(). Closes #188
|
||||
* Fixed broken specs due to use(Cookie) missing
|
||||
|
||||
0.2.1 / 2010-02-05
|
||||
==================
|
||||
|
||||
* Added "plot" format option for Profiler (for gnuplot processing)
|
||||
* Added request number to Profiler plugin
|
||||
* Fixed binary encoding for multi-part file uploads, was previously defaulting to UTF8
|
||||
* Fixed issue with routes not firing when not files are present. Closes #184
|
||||
* Fixed process.Promise -> events.Promise
|
||||
|
||||
0.2.0 / 2010-02-03
|
||||
==================
|
||||
|
||||
* Added parseParam() support for name[] etc. (allows for file inputs with "multiple" attr) Closes #180
|
||||
* Added Both Cache and Session option "reapInterval" may be "reapEvery". Closes #174
|
||||
* Added expiration support to cache api with reaper. Closes #133
|
||||
* Added cache Store.Memory#reap()
|
||||
* Added Cache; cache api now uses first class Cache instances
|
||||
* Added abstract session Store. Closes #172
|
||||
* Changed; cache Memory.Store#get() utilizing Collection
|
||||
* Renamed MemoryStore -> Store.Memory
|
||||
* Fixed use() of the same plugin several time will always use latest options. Closes #176
|
||||
|
||||
0.1.0 / 2010-02-03
|
||||
==================
|
||||
|
||||
* Changed; Hooks (before / after) pass request as arg as well as evaluated in their context
|
||||
* Updated node support to 0.1.27 Closes #169
|
||||
* Updated dirname(__filename) -> __dirname
|
||||
* Updated libxmljs support to v0.2.0
|
||||
* Added session support with memory store / reaping
|
||||
* Added quick uid() helper
|
||||
* Added multi-part upload support
|
||||
* Added Sass.js support / submodule
|
||||
* Added production env caching view contents and static files
|
||||
* Added static file caching. Closes #136
|
||||
* Added cache plugin with memory stores
|
||||
* Added support to StaticFile so that it works with non-textual files.
|
||||
* Removed dirname() helper
|
||||
* Removed several globals (now their modules must be required)
|
||||
|
||||
0.0.2 / 2010-01-10
|
||||
==================
|
||||
|
||||
* Added view benchmarks; currently haml vs ejs
|
||||
* Added Request#attachment() specs. Closes #116
|
||||
* Added use of node's parseQuery() util. Closes #123
|
||||
* Added `make init` for submodules
|
||||
* Updated Haml
|
||||
* Updated sample chat app to show messages on load
|
||||
* Updated libxmljs parseString -> parseHtmlString
|
||||
* Fixed `make init` to work with older versions of git
|
||||
* Fixed specs can now run independant specs for those who cant build deps. Closes #127
|
||||
* Fixed issues introduced by the node url module changes. Closes 126.
|
||||
* Fixed two assertions failing due to Collection#keys() returning strings
|
||||
* Fixed faulty Collection#toArray() spec due to keys() returning strings
|
||||
* Fixed `make test` now builds libxmljs.node before testing
|
||||
|
||||
0.0.1 / 2010-01-03
|
||||
==================
|
||||
|
||||
* Initial release
|
22
nodejs/node_modules/express/LICENSE
generated
vendored
22
nodejs/node_modules/express/LICENSE
generated
vendored
@@ -1,22 +0,0 @@
|
||||
(The MIT License)
|
||||
|
||||
Copyright (c) 2009-2011 TJ Holowaychuk <tj@vision-media.ca>
|
||||
|
||||
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:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
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.
|
29
nodejs/node_modules/express/Makefile
generated
vendored
29
nodejs/node_modules/express/Makefile
generated
vendored
@@ -1,29 +0,0 @@
|
||||
|
||||
DOCS = $(shell find docs/*.md)
|
||||
HTMLDOCS = $(DOCS:.md=.html)
|
||||
TESTS = $(shell find test/*.test.js)
|
||||
|
||||
test:
|
||||
@NODE_ENV=test ./node_modules/.bin/expresso $(TESTS)
|
||||
|
||||
docs: $(HTMLDOCS)
|
||||
@ echo "... generating TOC"
|
||||
@./support/toc.js docs/guide.html
|
||||
|
||||
%.html: %.md
|
||||
@echo "... $< -> $@"
|
||||
@markdown $< \
|
||||
| cat docs/layout/head.html - docs/layout/foot.html \
|
||||
> $@
|
||||
|
||||
site:
|
||||
rm -fr /tmp/docs \
|
||||
&& cp -fr docs /tmp/docs \
|
||||
&& git checkout gh-pages \
|
||||
&& cp -fr /tmp/docs/* . \
|
||||
&& echo "done"
|
||||
|
||||
docclean:
|
||||
rm -f docs/*.{1,html}
|
||||
|
||||
.PHONY: site test docs docclean
|
145
nodejs/node_modules/express/Readme.md
generated
vendored
145
nodejs/node_modules/express/Readme.md
generated
vendored
@@ -1,145 +0,0 @@
|
||||
|
||||
# Express
|
||||
|
||||
Insanely fast (and small) server-side JavaScript web development framework
|
||||
built on [node](http://nodejs.org) and [Connect](http://github.com/senchalabs/connect).
|
||||
|
||||
var app = express.createServer();
|
||||
|
||||
app.get('/', function(req, res){
|
||||
res.send('Hello World');
|
||||
});
|
||||
|
||||
app.listen(3000);
|
||||
|
||||
## Installation
|
||||
|
||||
$ npm install express
|
||||
|
||||
or to access the `express(1)` executable install globally:
|
||||
|
||||
$ npm install -g express
|
||||
|
||||
## Quick Start
|
||||
|
||||
The quickest way to get started with express is to utilize the executable `express(1)` to generate an application as shown below:
|
||||
|
||||
Create the app:
|
||||
|
||||
$ npm install -g express
|
||||
$ express /tmp/foo && cd /tmp/foo
|
||||
|
||||
Install dependencies:
|
||||
|
||||
$ npm install -d
|
||||
|
||||
Start the server:
|
||||
|
||||
$ node app.js
|
||||
|
||||
## Features
|
||||
|
||||
* Robust routing
|
||||
* Redirection helpers
|
||||
* Dynamic view helpers
|
||||
* Content negotiation
|
||||
* Focus on high performance
|
||||
* View rendering and partials support
|
||||
* Environment based configuration
|
||||
* Session based flash notifications
|
||||
* Built on [Connect](http://github.com/senchalabs/connect)
|
||||
* High test coverage
|
||||
* Executable for generating applications quickly
|
||||
* Application level view options
|
||||
|
||||
Via Connect:
|
||||
|
||||
* Session support
|
||||
* Cache API
|
||||
* Mime helpers
|
||||
* ETag support
|
||||
* Persistent flash notifications
|
||||
* Cookie support
|
||||
* JSON-RPC
|
||||
* Logging
|
||||
* and _much_ more!
|
||||
|
||||
## Contributors
|
||||
|
||||
The following are the major contributors of Express (in no specific order).
|
||||
|
||||
* TJ Holowaychuk ([visionmedia](http://github.com/visionmedia))
|
||||
* Ciaran Jessup ([ciaranj](http://github.com/ciaranj))
|
||||
* Aaron Heckmann ([aheckmann](http://github.com/aheckmann))
|
||||
* Guillermo Rauch ([guille](http://github.com/guille))
|
||||
|
||||
## More Information
|
||||
|
||||
* #express on freenode
|
||||
* [express-expose](http://github.com/visionmedia/express-expose) expose objects, functions, modules and more to client-side js with ease
|
||||
* [express-configure](http://github.com/visionmedia/express-configuration) async configuration support
|
||||
* [express-messages](http://github.com/visionmedia/express-messages) flash notification rendering helper
|
||||
* [express-namespace](http://github.com/visionmedia/express-namespace) namespaced route support
|
||||
* [express-params](https://github.com/visionmedia/express-params) param pre-condition functions
|
||||
* [express-mongoose](https://github.com/LearnBoost/express-mongoose) plugin for easy rendering of Mongoose async Query results
|
||||
* Follow [tjholowaychuk](http://twitter.com/tjholowaychuk) on twitter for updates
|
||||
* [Google Group](http://groups.google.com/group/express-js) for discussion
|
||||
* Visit the [Wiki](http://github.com/visionmedia/express/wiki)
|
||||
* [日本語ドキュメンテーション](http://hideyukisaito.com/doc/expressjs/) by [hideyukisaito](https://github.com/hideyukisaito)
|
||||
* Screencast - [Introduction](http://bit.ly/eRYu0O)
|
||||
* Screencast - [View Partials](http://bit.ly/dU13Fx)
|
||||
* Screencast - [Route Specific Middleware](http://bit.ly/hX4IaH)
|
||||
* Screencast - [Route Path Placeholder Preconditions](http://bit.ly/eNqmVs)
|
||||
|
||||
## Node Compatibility
|
||||
|
||||
Express 1.x is compatible with node 0.2.x and connect < 1.0.
|
||||
|
||||
Express 2.x is compatible with node 0.4.x or 0.6.x, and connect 1.x
|
||||
|
||||
Express 3.x (master) will be compatible with node 0.6.x and connect 2.x
|
||||
|
||||
## Viewing Examples
|
||||
|
||||
First install the dev dependencies to install all the example / test suite deps:
|
||||
|
||||
$ npm install
|
||||
|
||||
then run whichever tests you want:
|
||||
|
||||
$ node examples/jade/app.js
|
||||
|
||||
## Running Tests
|
||||
|
||||
To run the test suite first invoke the following command within the repo, installing the development dependencies:
|
||||
|
||||
$ npm install
|
||||
|
||||
then run the tests:
|
||||
|
||||
$ make test
|
||||
|
||||
## License
|
||||
|
||||
(The MIT License)
|
||||
|
||||
Copyright (c) 2009-2011 TJ Holowaychuk <tj@vision-media.ca>
|
||||
|
||||
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:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
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.
|
416
nodejs/node_modules/express/bin/express
generated
vendored
416
nodejs/node_modules/express/bin/express
generated
vendored
@@ -1,416 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var fs = require('fs')
|
||||
, os = require('os')
|
||||
, exec = require('child_process').exec
|
||||
, mkdirp = require('mkdirp');
|
||||
|
||||
/**
|
||||
* Framework version.
|
||||
*/
|
||||
|
||||
var version = '2.5.8';
|
||||
|
||||
/**
|
||||
* Add session support.
|
||||
*/
|
||||
|
||||
var sessions = false;
|
||||
|
||||
/**
|
||||
* CSS engine to utilize.
|
||||
*/
|
||||
|
||||
var cssEngine;
|
||||
|
||||
/**
|
||||
* End-of-line code.
|
||||
*/
|
||||
|
||||
var eol = os.platform
|
||||
? ('win32' == os.platform() ? '\r\n' : '\n')
|
||||
: '\n';
|
||||
|
||||
/**
|
||||
* Template engine to utilize.
|
||||
*/
|
||||
|
||||
var templateEngine = 'jade';
|
||||
|
||||
/**
|
||||
* Usage documentation.
|
||||
*/
|
||||
|
||||
var usage = ''
|
||||
+ '\n'
|
||||
+ ' Usage: express [options] [path]\n'
|
||||
+ '\n'
|
||||
+ ' Options:\n'
|
||||
+ ' -s, --sessions add session support\n'
|
||||
+ ' -t, --template <engine> add template <engine> support (jade|ejs). default=jade\n'
|
||||
+ ' -c, --css <engine> add stylesheet <engine> support (stylus). default=plain css\n'
|
||||
+ ' -v, --version output framework version\n'
|
||||
+ ' -h, --help output help information\n'
|
||||
;
|
||||
|
||||
/**
|
||||
* Routes index template.
|
||||
*/
|
||||
|
||||
var index = [
|
||||
''
|
||||
, '/*'
|
||||
, ' * GET home page.'
|
||||
, ' */'
|
||||
, ''
|
||||
, 'exports.index = function(req, res){'
|
||||
, ' res.render(\'index\', { title: \'Express\' })'
|
||||
, '};'
|
||||
].join(eol);
|
||||
|
||||
/**
|
||||
* Jade layout template.
|
||||
*/
|
||||
|
||||
var jadeLayout = [
|
||||
'!!!'
|
||||
, 'html'
|
||||
, ' head'
|
||||
, ' title= title'
|
||||
, ' link(rel=\'stylesheet\', href=\'/stylesheets/style.css\')'
|
||||
, ' body!= body'
|
||||
].join(eol);
|
||||
|
||||
/**
|
||||
* Jade index template.
|
||||
*/
|
||||
|
||||
var jadeIndex = [
|
||||
'h1= title'
|
||||
, 'p Welcome to #{title}'
|
||||
].join(eol);
|
||||
|
||||
/**
|
||||
* EJS layout template.
|
||||
*/
|
||||
|
||||
var ejsLayout = [
|
||||
'<!DOCTYPE html>'
|
||||
, '<html>'
|
||||
, ' <head>'
|
||||
, ' <title><%= title %></title>'
|
||||
, ' <link rel=\'stylesheet\' href=\'/stylesheets/style.css\' />'
|
||||
, ' </head>'
|
||||
, ' <body>'
|
||||
, ' <%- body %>'
|
||||
, ' </body>'
|
||||
, '</html>'
|
||||
].join(eol);
|
||||
|
||||
/**
|
||||
* EJS index template.
|
||||
*/
|
||||
|
||||
var ejsIndex = [
|
||||
'<h1><%= title %></h1>'
|
||||
, '<p>Welcome to <%= title %></p>'
|
||||
].join(eol);
|
||||
|
||||
/**
|
||||
* Default css template.
|
||||
*/
|
||||
|
||||
var css = [
|
||||
'body {'
|
||||
, ' padding: 50px;'
|
||||
, ' font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;'
|
||||
, '}'
|
||||
, ''
|
||||
, 'a {'
|
||||
, ' color: #00B7FF;'
|
||||
, '}'
|
||||
].join(eol);
|
||||
|
||||
/**
|
||||
* Default stylus template.
|
||||
*/
|
||||
|
||||
var stylus = [
|
||||
'body'
|
||||
, ' padding: 50px'
|
||||
, ' font: 14px "Lucida Grande", Helvetica, Arial, sans-serif'
|
||||
, 'a'
|
||||
, ' color: #00B7FF'
|
||||
].join(eol);
|
||||
|
||||
/**
|
||||
* App template.
|
||||
*/
|
||||
|
||||
var app = [
|
||||
''
|
||||
, '/**'
|
||||
, ' * Module dependencies.'
|
||||
, ' */'
|
||||
, ''
|
||||
, 'var express = require(\'express\')'
|
||||
, ' , routes = require(\'./routes\');'
|
||||
, ''
|
||||
, 'var app = module.exports = express.createServer();'
|
||||
, ''
|
||||
, '// Configuration'
|
||||
, ''
|
||||
, 'app.configure(function(){'
|
||||
, ' app.set(\'views\', __dirname + \'/views\');'
|
||||
, ' app.set(\'view engine\', \':TEMPLATE\');'
|
||||
, ' app.use(express.bodyParser());'
|
||||
, ' app.use(express.methodOverride());{sess}{css}'
|
||||
, ' app.use(app.router);'
|
||||
, ' app.use(express.static(__dirname + \'/public\'));'
|
||||
, '});'
|
||||
, ''
|
||||
, 'app.configure(\'development\', function(){'
|
||||
, ' app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));'
|
||||
, '});'
|
||||
, ''
|
||||
, 'app.configure(\'production\', function(){'
|
||||
, ' app.use(express.errorHandler());'
|
||||
, '});'
|
||||
, ''
|
||||
, '// Routes'
|
||||
, ''
|
||||
, 'app.get(\'/\', routes.index);'
|
||||
, ''
|
||||
, 'app.listen(3000);'
|
||||
, 'console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);'
|
||||
, ''
|
||||
].join(eol);
|
||||
|
||||
// Parse arguments
|
||||
|
||||
var args = process.argv.slice(2)
|
||||
, path = '.';
|
||||
|
||||
while (args.length) {
|
||||
var arg = args.shift();
|
||||
switch (arg) {
|
||||
case '-h':
|
||||
case '--help':
|
||||
abort(usage);
|
||||
break;
|
||||
case '-v':
|
||||
case '--version':
|
||||
abort(version);
|
||||
break;
|
||||
case '-s':
|
||||
case '--session':
|
||||
case '--sessions':
|
||||
sessions = true;
|
||||
break;
|
||||
case '-c':
|
||||
case '--css':
|
||||
args.length
|
||||
? (cssEngine = args.shift())
|
||||
: abort('--css requires an argument');
|
||||
break;
|
||||
case '-t':
|
||||
case '--template':
|
||||
args.length
|
||||
? (templateEngine = args.shift())
|
||||
: abort('--template requires an argument');
|
||||
break;
|
||||
default:
|
||||
path = arg;
|
||||
}
|
||||
}
|
||||
|
||||
// Generate application
|
||||
|
||||
(function createApplication(path) {
|
||||
emptyDirectory(path, function(empty){
|
||||
if (empty) {
|
||||
createApplicationAt(path);
|
||||
} else {
|
||||
confirm('destination is not empty, continue? ', function(ok){
|
||||
if (ok) {
|
||||
process.stdin.destroy();
|
||||
createApplicationAt(path);
|
||||
} else {
|
||||
abort('aborting');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
})(path);
|
||||
|
||||
/**
|
||||
* Create application at the given directory `path`.
|
||||
*
|
||||
* @param {String} path
|
||||
*/
|
||||
|
||||
function createApplicationAt(path) {
|
||||
console.log();
|
||||
process.on('exit', function(){
|
||||
console.log();
|
||||
console.log(' dont forget to install dependencies:');
|
||||
console.log(' $ cd %s && npm install', path);
|
||||
console.log();
|
||||
});
|
||||
|
||||
mkdir(path, function(){
|
||||
mkdir(path + '/public');
|
||||
mkdir(path + '/public/javascripts');
|
||||
mkdir(path + '/public/images');
|
||||
mkdir(path + '/public/stylesheets', function(){
|
||||
switch (cssEngine) {
|
||||
case 'stylus':
|
||||
write(path + '/public/stylesheets/style.styl', stylus);
|
||||
break;
|
||||
default:
|
||||
write(path + '/public/stylesheets/style.css', css);
|
||||
}
|
||||
});
|
||||
|
||||
mkdir(path + '/routes', function(){
|
||||
write(path + '/routes/index.js', index);
|
||||
});
|
||||
|
||||
mkdir(path + '/views', function(){
|
||||
switch (templateEngine) {
|
||||
case 'ejs':
|
||||
write(path + '/views/layout.ejs', ejsLayout);
|
||||
write(path + '/views/index.ejs', ejsIndex);
|
||||
break;
|
||||
case 'jade':
|
||||
write(path + '/views/layout.jade', jadeLayout);
|
||||
write(path + '/views/index.jade', jadeIndex);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
// CSS Engine support
|
||||
switch (cssEngine) {
|
||||
case 'stylus':
|
||||
app = app.replace('{css}', eol + ' app.use(require(\'stylus\').middleware({ src: __dirname + \'/public\' }));');
|
||||
break;
|
||||
default:
|
||||
app = app.replace('{css}', '');
|
||||
}
|
||||
|
||||
// Session support
|
||||
app = app.replace('{sess}', sessions
|
||||
? eol + ' app.use(express.cookieParser());' + eol + ' app.use(express.session({ secret: \'your secret here\' }));'
|
||||
: '');
|
||||
|
||||
// Template support
|
||||
app = app.replace(':TEMPLATE', templateEngine);
|
||||
|
||||
// package.json
|
||||
var json = '{' + eol;
|
||||
json += ' "name": "application-name"' + eol;
|
||||
json += ' , "version": "0.0.1"' + eol;
|
||||
json += ' , "private": true' + eol;
|
||||
json += ' , "dependencies": {' + eol;
|
||||
json += ' "express": "' + version + '"' + eol;
|
||||
if (cssEngine) json += ' , "' + cssEngine + '": ">= 0.0.1"' + eol;
|
||||
if (templateEngine) json += ' , "' + templateEngine + '": ">= 0.0.1"' + eol;
|
||||
json += ' }' + eol;
|
||||
json += '}';
|
||||
|
||||
|
||||
write(path + '/package.json', json);
|
||||
write(path + '/app.js', app);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the given directory `path` is empty.
|
||||
*
|
||||
* @param {String} path
|
||||
* @param {Function} fn
|
||||
*/
|
||||
|
||||
function emptyDirectory(path, fn) {
|
||||
fs.readdir(path, function(err, files){
|
||||
if (err && 'ENOENT' != err.code) throw err;
|
||||
fn(!files || !files.length);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* echo str > path.
|
||||
*
|
||||
* @param {String} path
|
||||
* @param {String} str
|
||||
*/
|
||||
|
||||
function write(path, str) {
|
||||
fs.writeFile(path, str);
|
||||
console.log(' \x1b[36mcreate\x1b[0m : ' + path);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prompt confirmation with the given `msg`.
|
||||
*
|
||||
* @param {String} msg
|
||||
* @param {Function} fn
|
||||
*/
|
||||
|
||||
function confirm(msg, fn) {
|
||||
prompt(msg, function(val){
|
||||
fn(/^ *y(es)?/i.test(val));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Prompt input with the given `msg` and callback `fn`.
|
||||
*
|
||||
* @param {String} msg
|
||||
* @param {Function} fn
|
||||
*/
|
||||
|
||||
function prompt(msg, fn) {
|
||||
// prompt
|
||||
if (' ' == msg[msg.length - 1]) {
|
||||
process.stdout.write(msg);
|
||||
} else {
|
||||
console.log(msg);
|
||||
}
|
||||
|
||||
// stdin
|
||||
process.stdin.setEncoding('ascii');
|
||||
process.stdin.once('data', function(data){
|
||||
fn(data);
|
||||
}).resume();
|
||||
}
|
||||
|
||||
/**
|
||||
* Mkdir -p.
|
||||
*
|
||||
* @param {String} path
|
||||
* @param {Function} fn
|
||||
*/
|
||||
|
||||
function mkdir(path, fn) {
|
||||
mkdirp(path, 0755, function(err){
|
||||
if (err) throw err;
|
||||
console.log(' \033[36mcreate\033[0m : ' + path);
|
||||
fn && fn();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Exit with the given `str`.
|
||||
*
|
||||
* @param {String} str
|
||||
*/
|
||||
|
||||
function abort(str) {
|
||||
console.error(str);
|
||||
process.exit(1);
|
||||
}
|
2
nodejs/node_modules/express/index.js
generated
vendored
2
nodejs/node_modules/express/index.js
generated
vendored
@@ -1,2 +0,0 @@
|
||||
|
||||
module.exports = require('./lib/express');
|
79
nodejs/node_modules/express/lib/express.js
generated
vendored
79
nodejs/node_modules/express/lib/express.js
generated
vendored
@@ -1,79 +0,0 @@
|
||||
|
||||
/*!
|
||||
* Express
|
||||
* Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
|
||||
* MIT Licensed
|
||||
*/
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var connect = require('connect')
|
||||
, HTTPSServer = require('./https')
|
||||
, HTTPServer = require('./http')
|
||||
, Route = require('./router/route')
|
||||
|
||||
/**
|
||||
* Re-export connect auto-loaders.
|
||||
*
|
||||
* This prevents the need to `require('connect')` in order
|
||||
* to access core middleware, so for example `express.logger()` instead
|
||||
* of `require('connect').logger()`.
|
||||
*/
|
||||
|
||||
var exports = module.exports = connect.middleware;
|
||||
|
||||
/**
|
||||
* Framework version.
|
||||
*/
|
||||
|
||||
exports.version = '2.5.8';
|
||||
|
||||
/**
|
||||
* Shortcut for `new Server(...)`.
|
||||
*
|
||||
* @param {Function} ...
|
||||
* @return {Server}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
exports.createServer = function(options){
|
||||
if ('object' == typeof options) {
|
||||
return new HTTPSServer(options, Array.prototype.slice.call(arguments, 1));
|
||||
} else {
|
||||
return new HTTPServer(Array.prototype.slice.call(arguments));
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Expose constructors.
|
||||
*/
|
||||
|
||||
exports.HTTPServer = HTTPServer;
|
||||
exports.HTTPSServer = HTTPSServer;
|
||||
exports.Route = Route;
|
||||
|
||||
/**
|
||||
* View extensions.
|
||||
*/
|
||||
|
||||
exports.View =
|
||||
exports.view = require('./view');
|
||||
|
||||
/**
|
||||
* Response extensions.
|
||||
*/
|
||||
|
||||
require('./response');
|
||||
|
||||
/**
|
||||
* Request extensions.
|
||||
*/
|
||||
|
||||
require('./request');
|
||||
|
||||
// Error handler title
|
||||
|
||||
exports.errorHandler.title = 'Express';
|
||||
|
582
nodejs/node_modules/express/lib/http.js
generated
vendored
582
nodejs/node_modules/express/lib/http.js
generated
vendored
@@ -1,582 +0,0 @@
|
||||
/*!
|
||||
* Express - HTTPServer
|
||||
* Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
|
||||
* MIT Licensed
|
||||
*/
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var qs = require('qs')
|
||||
, connect = require('connect')
|
||||
, router = require('./router')
|
||||
, Router = require('./router')
|
||||
, view = require('./view')
|
||||
, toArray = require('./utils').toArray
|
||||
, methods = router.methods.concat('del', 'all')
|
||||
, url = require('url')
|
||||
, utils = connect.utils;
|
||||
|
||||
/**
|
||||
* Expose `HTTPServer`.
|
||||
*/
|
||||
|
||||
exports = module.exports = HTTPServer;
|
||||
|
||||
/**
|
||||
* Server proto.
|
||||
*/
|
||||
|
||||
var app = HTTPServer.prototype;
|
||||
|
||||
/**
|
||||
* Initialize a new `HTTPServer` with optional `middleware`.
|
||||
*
|
||||
* @param {Array} middleware
|
||||
* @api public
|
||||
*/
|
||||
|
||||
function HTTPServer(middleware){
|
||||
connect.HTTPServer.call(this, []);
|
||||
this.init(middleware);
|
||||
};
|
||||
|
||||
/**
|
||||
* Inherit from `connect.HTTPServer`.
|
||||
*/
|
||||
|
||||
app.__proto__ = connect.HTTPServer.prototype;
|
||||
|
||||
/**
|
||||
* Initialize the server.
|
||||
*
|
||||
* @param {Array} middleware
|
||||
* @api private
|
||||
*/
|
||||
|
||||
app.init = function(middleware){
|
||||
var self = this;
|
||||
this.cache = {};
|
||||
this.settings = {};
|
||||
this.redirects = {};
|
||||
this.isCallbacks = {};
|
||||
this._locals = {};
|
||||
this.dynamicViewHelpers = {};
|
||||
this.errorHandlers = [];
|
||||
|
||||
this.set('env', process.env.NODE_ENV || 'development');
|
||||
|
||||
// expose objects to each other
|
||||
this.use(function(req, res, next){
|
||||
req.query = req.query || {};
|
||||
res.setHeader('X-Powered-By', 'Express');
|
||||
req.app = res.app = self;
|
||||
req.res = res;
|
||||
res.req = req;
|
||||
req.next = next;
|
||||
// assign req.query
|
||||
if (req.url.indexOf('?') > 0) {
|
||||
var query = url.parse(req.url).query;
|
||||
req.query = qs.parse(query);
|
||||
}
|
||||
next();
|
||||
});
|
||||
|
||||
// apply middleware
|
||||
if (middleware) middleware.forEach(self.use.bind(self));
|
||||
|
||||
// router
|
||||
this.routes = new Router(this);
|
||||
this.__defineGetter__('router', function(){
|
||||
this.__usedRouter = true;
|
||||
return self.routes.middleware;
|
||||
});
|
||||
|
||||
// default locals
|
||||
this.locals({
|
||||
settings: this.settings
|
||||
, app: this
|
||||
});
|
||||
|
||||
// default development configuration
|
||||
this.configure('development', function(){
|
||||
this.enable('hints');
|
||||
});
|
||||
|
||||
// default production configuration
|
||||
this.configure('production', function(){
|
||||
this.enable('view cache');
|
||||
});
|
||||
|
||||
// register error handlers on "listening"
|
||||
// so that they disregard definition position.
|
||||
this.on('listening', this.registerErrorHandlers.bind(this));
|
||||
|
||||
// route manipulation methods
|
||||
methods.forEach(function(method){
|
||||
self.lookup[method] = function(path){
|
||||
return self.routes.lookup(method, path);
|
||||
};
|
||||
|
||||
self.match[method] = function(path){
|
||||
return self.routes.match(method, path);
|
||||
};
|
||||
|
||||
self.remove[method] = function(path){
|
||||
return self.routes.lookup(method, path).remove();
|
||||
};
|
||||
});
|
||||
|
||||
// del -> delete
|
||||
self.lookup.del = self.lookup.delete;
|
||||
self.match.del = self.match.delete;
|
||||
self.remove.del = self.remove.delete;
|
||||
};
|
||||
|
||||
/**
|
||||
* Remove routes matching the given `path`.
|
||||
*
|
||||
* @param {Route} path
|
||||
* @return {Boolean}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.remove = function(path){
|
||||
return this.routes.lookup('all', path).remove();
|
||||
};
|
||||
|
||||
/**
|
||||
* Lookup routes defined with a path
|
||||
* equivalent to `path`.
|
||||
*
|
||||
* @param {Stirng} path
|
||||
* @return {Array}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.lookup = function(path){
|
||||
return this.routes.lookup('all', path);
|
||||
};
|
||||
|
||||
/**
|
||||
* Lookup routes matching the given `url`.
|
||||
*
|
||||
* @param {Stirng} url
|
||||
* @return {Array}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.match = function(url){
|
||||
return this.routes.match('all', url);
|
||||
};
|
||||
|
||||
/**
|
||||
* When using the vhost() middleware register error handlers.
|
||||
*/
|
||||
|
||||
app.onvhost = function(){
|
||||
this.registerErrorHandlers();
|
||||
};
|
||||
|
||||
/**
|
||||
* Register error handlers.
|
||||
*
|
||||
* @return {Server} for chaining
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.registerErrorHandlers = function(){
|
||||
this.errorHandlers.forEach(function(fn){
|
||||
this.use(function(err, req, res, next){
|
||||
fn.apply(this, arguments);
|
||||
});
|
||||
}, this);
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Proxy `connect.HTTPServer#use()` to apply settings to
|
||||
* mounted applications.
|
||||
*
|
||||
* @param {String|Function|Server} route
|
||||
* @param {Function|Server} middleware
|
||||
* @return {Server} for chaining
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.use = function(route, middleware){
|
||||
var app, base, handle;
|
||||
|
||||
if ('string' != typeof route) {
|
||||
middleware = route, route = '/';
|
||||
}
|
||||
|
||||
// express app
|
||||
if (middleware.handle && middleware.set) app = middleware;
|
||||
|
||||
// restore .app property on req and res
|
||||
if (app) {
|
||||
app.route = route;
|
||||
middleware = function(req, res, next) {
|
||||
var orig = req.app;
|
||||
app.handle(req, res, function(err){
|
||||
req.app = res.app = orig;
|
||||
next(err);
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
connect.HTTPServer.prototype.use.call(this, route, middleware);
|
||||
|
||||
// mounted an app, invoke the hook
|
||||
// and adjust some settings
|
||||
if (app) {
|
||||
base = this.set('basepath') || this.route;
|
||||
if ('/' == base) base = '';
|
||||
base = base + (app.set('basepath') || app.route);
|
||||
app.set('basepath', base);
|
||||
app.parent = this;
|
||||
if (app.__mounted) app.__mounted.call(app, this);
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Assign a callback `fn` which is called
|
||||
* when this `Server` is passed to `Server#use()`.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* var app = express.createServer()
|
||||
* , blog = express.createServer();
|
||||
*
|
||||
* blog.mounted(function(parent){
|
||||
* // parent is app
|
||||
* // "this" is blog
|
||||
* });
|
||||
*
|
||||
* app.use(blog);
|
||||
*
|
||||
* @param {Function} fn
|
||||
* @return {Server} for chaining
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.mounted = function(fn){
|
||||
this.__mounted = fn;
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* See: view.register.
|
||||
*
|
||||
* @return {Server} for chaining
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.register = function(){
|
||||
view.register.apply(this, arguments);
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Register the given view helpers `obj`. This method
|
||||
* can be called several times to apply additional helpers.
|
||||
*
|
||||
* @param {Object} obj
|
||||
* @return {Server} for chaining
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.helpers =
|
||||
app.locals = function(obj){
|
||||
utils.merge(this._locals, obj);
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Register the given dynamic view helpers `obj`. This method
|
||||
* can be called several times to apply additional helpers.
|
||||
*
|
||||
* @param {Object} obj
|
||||
* @return {Server} for chaining
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.dynamicHelpers = function(obj){
|
||||
utils.merge(this.dynamicViewHelpers, obj);
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Map the given param placeholder `name`(s) to the given callback(s).
|
||||
*
|
||||
* Param mapping is used to provide pre-conditions to routes
|
||||
* which us normalized placeholders. This callback has the same
|
||||
* signature as regular middleware, for example below when ":userId"
|
||||
* is used this function will be invoked in an attempt to load the user.
|
||||
*
|
||||
* app.param('userId', function(req, res, next, id){
|
||||
* User.find(id, function(err, user){
|
||||
* if (err) {
|
||||
* next(err);
|
||||
* } else if (user) {
|
||||
* req.user = user;
|
||||
* next();
|
||||
* } else {
|
||||
* next(new Error('failed to load user'));
|
||||
* }
|
||||
* });
|
||||
* });
|
||||
*
|
||||
* Passing a single function allows you to map logic
|
||||
* to the values passed to `app.param()`, for example
|
||||
* this is useful to provide coercion support in a concise manner.
|
||||
*
|
||||
* The following example maps regular expressions to param values
|
||||
* ensuring that they match, otherwise passing control to the next
|
||||
* route:
|
||||
*
|
||||
* app.param(function(name, regexp){
|
||||
* if (regexp instanceof RegExp) {
|
||||
* return function(req, res, next, val){
|
||||
* var captures;
|
||||
* if (captures = regexp.exec(String(val))) {
|
||||
* req.params[name] = captures;
|
||||
* next();
|
||||
* } else {
|
||||
* next('route');
|
||||
* }
|
||||
* }
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* We can now use it as shown below, where "/commit/:commit" expects
|
||||
* that the value for ":commit" is at 5 or more digits. The capture
|
||||
* groups are then available as `req.params.commit` as we defined
|
||||
* in the function above.
|
||||
*
|
||||
* app.param('commit', /^\d{5,}$/);
|
||||
*
|
||||
* For more of this useful functionality take a look
|
||||
* at [express-params](http://github.com/visionmedia/express-params).
|
||||
*
|
||||
* @param {String|Array|Function} name
|
||||
* @param {Function} fn
|
||||
* @return {Server} for chaining
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.param = function(name, fn){
|
||||
var self = this
|
||||
, fns = [].slice.call(arguments, 1);
|
||||
|
||||
// array
|
||||
if (Array.isArray(name)) {
|
||||
name.forEach(function(name){
|
||||
fns.forEach(function(fn){
|
||||
self.param(name, fn);
|
||||
});
|
||||
});
|
||||
// param logic
|
||||
} else if ('function' == typeof name) {
|
||||
this.routes.param(name);
|
||||
// single
|
||||
} else {
|
||||
if (':' == name[0]) name = name.substr(1);
|
||||
fns.forEach(function(fn){
|
||||
self.routes.param(name, fn);
|
||||
});
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Assign a custom exception handler callback `fn`.
|
||||
* These handlers are always _last_ in the middleware stack.
|
||||
*
|
||||
* @param {Function} fn
|
||||
* @return {Server} for chaining
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.error = function(fn){
|
||||
this.errorHandlers.push(fn);
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Register the given callback `fn` for the given `type`.
|
||||
*
|
||||
* @param {String} type
|
||||
* @param {Function} fn
|
||||
* @return {Server} for chaining
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.is = function(type, fn){
|
||||
if (!fn) return this.isCallbacks[type];
|
||||
this.isCallbacks[type] = fn;
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Assign `setting` to `val`, or return `setting`'s value.
|
||||
* Mounted servers inherit their parent server's settings.
|
||||
*
|
||||
* @param {String} setting
|
||||
* @param {String} val
|
||||
* @return {Server|Mixed} for chaining, or the setting value
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.set = function(setting, val){
|
||||
if (val === undefined) {
|
||||
if (this.settings.hasOwnProperty(setting)) {
|
||||
return this.settings[setting];
|
||||
} else if (this.parent) {
|
||||
return this.parent.set(setting);
|
||||
}
|
||||
} else {
|
||||
this.settings[setting] = val;
|
||||
return this;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Check if `setting` is enabled.
|
||||
*
|
||||
* @param {String} setting
|
||||
* @return {Boolean}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.enabled = function(setting){
|
||||
return !!this.set(setting);
|
||||
};
|
||||
|
||||
/**
|
||||
* Check if `setting` is disabled.
|
||||
*
|
||||
* @param {String} setting
|
||||
* @return {Boolean}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.disabled = function(setting){
|
||||
return !this.set(setting);
|
||||
};
|
||||
|
||||
/**
|
||||
* Enable `setting`.
|
||||
*
|
||||
* @param {String} setting
|
||||
* @return {Server} for chaining
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.enable = function(setting){
|
||||
return this.set(setting, true);
|
||||
};
|
||||
|
||||
/**
|
||||
* Disable `setting`.
|
||||
*
|
||||
* @param {String} setting
|
||||
* @return {Server} for chaining
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.disable = function(setting){
|
||||
return this.set(setting, false);
|
||||
};
|
||||
|
||||
/**
|
||||
* Redirect `key` to `url`.
|
||||
*
|
||||
* @param {String} key
|
||||
* @param {String} url
|
||||
* @return {Server} for chaining
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.redirect = function(key, url){
|
||||
this.redirects[key] = url;
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Configure callback for zero or more envs,
|
||||
* when no env is specified that callback will
|
||||
* be invoked for all environments. Any combination
|
||||
* can be used multiple times, in any order desired.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* app.configure(function(){
|
||||
* // executed for all envs
|
||||
* });
|
||||
*
|
||||
* app.configure('stage', function(){
|
||||
* // executed staging env
|
||||
* });
|
||||
*
|
||||
* app.configure('stage', 'production', function(){
|
||||
* // executed for stage and production
|
||||
* });
|
||||
*
|
||||
* @param {String} env...
|
||||
* @param {Function} fn
|
||||
* @return {Server} for chaining
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.configure = function(env, fn){
|
||||
var envs = 'all'
|
||||
, args = toArray(arguments);
|
||||
fn = args.pop();
|
||||
if (args.length) envs = args;
|
||||
if ('all' == envs || ~envs.indexOf(this.settings.env)) fn.call(this);
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Delegate `.VERB(...)` calls to `.route(VERB, ...)`.
|
||||
*/
|
||||
|
||||
methods.forEach(function(method){
|
||||
app[method] = function(path){
|
||||
if (1 == arguments.length) return this.routes.lookup(method, path);
|
||||
var args = [method].concat(toArray(arguments));
|
||||
if (!this.__usedRouter) this.use(this.router);
|
||||
return this.routes._route.apply(this.routes, args);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Special-cased "all" method, applying the given route `path`,
|
||||
* middleware, and callback to _every_ HTTP method.
|
||||
*
|
||||
* @param {String} path
|
||||
* @param {Function} ...
|
||||
* @return {Server} for chaining
|
||||
* @api public
|
||||
*/
|
||||
|
||||
app.all = function(path){
|
||||
var args = arguments;
|
||||
if (1 == args.length) return this.routes.lookup('all', path);
|
||||
methods.forEach(function(method){
|
||||
if ('all' == method || 'del' == method) return;
|
||||
app[method].apply(this, args);
|
||||
}, this);
|
||||
return this;
|
||||
};
|
||||
|
||||
// del -> delete alias
|
||||
|
||||
app.del = app.delete;
|
||||
|
52
nodejs/node_modules/express/lib/https.js
generated
vendored
52
nodejs/node_modules/express/lib/https.js
generated
vendored
@@ -1,52 +0,0 @@
|
||||
|
||||
/*!
|
||||
* Express - HTTPSServer
|
||||
* Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
|
||||
* MIT Licensed
|
||||
*/
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var connect = require('connect')
|
||||
, HTTPServer = require('./http')
|
||||
, https = require('https');
|
||||
|
||||
/**
|
||||
* Expose `HTTPSServer`.
|
||||
*/
|
||||
|
||||
exports = module.exports = HTTPSServer;
|
||||
|
||||
/**
|
||||
* Server proto.
|
||||
*/
|
||||
|
||||
var app = HTTPSServer.prototype;
|
||||
|
||||
/**
|
||||
* Initialize a new `HTTPSServer` with the
|
||||
* given `options`, and optional `middleware`.
|
||||
*
|
||||
* @param {Object} options
|
||||
* @param {Array} middleware
|
||||
* @api public
|
||||
*/
|
||||
|
||||
function HTTPSServer(options, middleware){
|
||||
connect.HTTPSServer.call(this, options, []);
|
||||
this.init(middleware);
|
||||
};
|
||||
|
||||
/**
|
||||
* Inherit from `connect.HTTPSServer`.
|
||||
*/
|
||||
|
||||
app.__proto__ = connect.HTTPSServer.prototype;
|
||||
|
||||
// mixin HTTPServer methods
|
||||
|
||||
Object.keys(HTTPServer.prototype).forEach(function(method){
|
||||
app[method] = HTTPServer.prototype[method];
|
||||
});
|
323
nodejs/node_modules/express/lib/request.js
generated
vendored
323
nodejs/node_modules/express/lib/request.js
generated
vendored
@@ -1,323 +0,0 @@
|
||||
|
||||
/*!
|
||||
* Express - request
|
||||
* Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
|
||||
* MIT Licensed
|
||||
*/
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var http = require('http')
|
||||
, req = http.IncomingMessage.prototype
|
||||
, utils = require('./utils')
|
||||
, parse = require('url').parse
|
||||
, mime = require('mime');
|
||||
|
||||
/**
|
||||
* Default flash formatters.
|
||||
*
|
||||
* @type Object
|
||||
*/
|
||||
|
||||
var flashFormatters = exports.flashFormatters = {
|
||||
s: function(val){
|
||||
return String(val);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Return request header or optional default.
|
||||
*
|
||||
* The `Referrer` header field is special-cased,
|
||||
* both `Referrer` and `Referer` will yield are
|
||||
* interchangeable.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* req.header('Content-Type');
|
||||
* // => "text/plain"
|
||||
*
|
||||
* req.header('content-type');
|
||||
* // => "text/plain"
|
||||
*
|
||||
* req.header('Accept');
|
||||
* // => undefined
|
||||
*
|
||||
* req.header('Accept', 'text/html');
|
||||
* // => "text/html"
|
||||
*
|
||||
* @param {String} name
|
||||
* @param {String} defaultValue
|
||||
* @return {String}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
req.header = function(name, defaultValue){
|
||||
switch (name = name.toLowerCase()) {
|
||||
case 'referer':
|
||||
case 'referrer':
|
||||
return this.headers.referrer
|
||||
|| this.headers.referer
|
||||
|| defaultValue;
|
||||
default:
|
||||
return this.headers[name] || defaultValue;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get `field`'s `param` value, defaulting to ''.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* req.get('content-disposition', 'filename');
|
||||
* // => "something.png"
|
||||
*
|
||||
* @param {String} field
|
||||
* @param {String} param
|
||||
* @return {String}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
req.get = function(field, param){
|
||||
var val = this.header(field);
|
||||
if (!val) return '';
|
||||
var regexp = new RegExp(param + ' *= *(?:"([^"]+)"|([^;]+))', 'i');
|
||||
if (!regexp.exec(val)) return '';
|
||||
return RegExp.$1 || RegExp.$2;
|
||||
};
|
||||
|
||||
/**
|
||||
* Short-hand for `require('url').parse(req.url).pathname`.
|
||||
*
|
||||
* @return {String}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
req.__defineGetter__('path', function(){
|
||||
return parse(this.url).pathname;
|
||||
});
|
||||
|
||||
/**
|
||||
* Check if the _Accept_ header is present, and includes the given `type`.
|
||||
*
|
||||
* When the _Accept_ header is not present `true` is returned. Otherwise
|
||||
* the given `type` is matched by an exact match, and then subtypes. You
|
||||
* may pass the subtype such as "html" which is then converted internally
|
||||
* to "text/html" using the mime lookup table.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* // Accept: text/html
|
||||
* req.accepts('html');
|
||||
* // => true
|
||||
*
|
||||
* // Accept: text/*; application/json
|
||||
* req.accepts('html');
|
||||
* req.accepts('text/html');
|
||||
* req.accepts('text/plain');
|
||||
* req.accepts('application/json');
|
||||
* // => true
|
||||
*
|
||||
* req.accepts('image/png');
|
||||
* req.accepts('png');
|
||||
* // => false
|
||||
*
|
||||
* @param {String} type
|
||||
* @return {Boolean}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
req.accepts = function(type){
|
||||
var accept = this.header('Accept');
|
||||
|
||||
// normalize extensions ".json" -> "json"
|
||||
if (type && '.' == type[0]) type = type.substr(1);
|
||||
|
||||
// when Accept does not exist, or is '*/*' return true
|
||||
if (!accept || '*/*' == accept) {
|
||||
return true;
|
||||
} else if (type) {
|
||||
// allow "html" vs "text/html" etc
|
||||
if (!~type.indexOf('/')) type = mime.lookup(type);
|
||||
|
||||
// check if we have a direct match
|
||||
if (~accept.indexOf(type)) return true;
|
||||
|
||||
// check if we have type/*
|
||||
type = type.split('/')[0] + '/*';
|
||||
return !!~accept.indexOf(type);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Return the value of param `name` when present or `defaultValue`.
|
||||
*
|
||||
* - Checks route placeholders, ex: _/user/:id_
|
||||
* - Checks query string params, ex: ?id=12
|
||||
* - Checks urlencoded body params, ex: id=12
|
||||
*
|
||||
* To utilize urlencoded request bodies, `req.body`
|
||||
* should be an object. This can be done by using
|
||||
* the `connect.bodyParser` middleware.
|
||||
*
|
||||
* @param {String} name
|
||||
* @param {Mixed} defaultValue
|
||||
* @return {String}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
req.param = function(name, defaultValue){
|
||||
// route params like /user/:id
|
||||
if (this.params && this.params.hasOwnProperty(name) && undefined !== this.params[name]) {
|
||||
return this.params[name];
|
||||
}
|
||||
// query string params
|
||||
if (undefined !== this.query[name]) {
|
||||
return this.query[name];
|
||||
}
|
||||
// request body params via connect.bodyParser
|
||||
if (this.body && undefined !== this.body[name]) {
|
||||
return this.body[name];
|
||||
}
|
||||
return defaultValue;
|
||||
};
|
||||
|
||||
/**
|
||||
* Queue flash `msg` of the given `type`.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* req.flash('info', 'email sent');
|
||||
* req.flash('error', 'email delivery failed');
|
||||
* req.flash('info', 'email re-sent');
|
||||
* // => 2
|
||||
*
|
||||
* req.flash('info');
|
||||
* // => ['email sent', 'email re-sent']
|
||||
*
|
||||
* req.flash('info');
|
||||
* // => []
|
||||
*
|
||||
* req.flash();
|
||||
* // => { error: ['email delivery failed'], info: [] }
|
||||
*
|
||||
* Formatting:
|
||||
*
|
||||
* Flash notifications also support arbitrary formatting support.
|
||||
* For example you may pass variable arguments to `req.flash()`
|
||||
* and use the %s specifier to be replaced by the associated argument:
|
||||
*
|
||||
* req.flash('info', 'email has been sent to %s.', userName);
|
||||
*
|
||||
* To add custom formatters use the `exports.flashFormatters` object.
|
||||
*
|
||||
* @param {String} type
|
||||
* @param {String} msg
|
||||
* @return {Array|Object|Number}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
req.flash = function(type, msg){
|
||||
if (this.session === undefined) throw Error('req.flash() requires sessions');
|
||||
var msgs = this.session.flash = this.session.flash || {};
|
||||
if (type && msg) {
|
||||
var i = 2
|
||||
, args = arguments
|
||||
, formatters = this.app.flashFormatters || {};
|
||||
formatters.__proto__ = flashFormatters;
|
||||
msg = utils.miniMarkdown(msg);
|
||||
msg = msg.replace(/%([a-zA-Z])/g, function(_, format){
|
||||
var formatter = formatters[format];
|
||||
if (formatter) return formatter(utils.escape(args[i++]));
|
||||
});
|
||||
return (msgs[type] = msgs[type] || []).push(msg);
|
||||
} else if (type) {
|
||||
var arr = msgs[type];
|
||||
delete msgs[type];
|
||||
return arr || [];
|
||||
} else {
|
||||
this.session.flash = {};
|
||||
return msgs;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Check if the incoming request contains the "Content-Type"
|
||||
* header field, and it contains the give mime `type`.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* // With Content-Type: text/html; charset=utf-8
|
||||
* req.is('html');
|
||||
* req.is('text/html');
|
||||
* // => true
|
||||
*
|
||||
* // When Content-Type is application/json
|
||||
* req.is('json');
|
||||
* req.is('application/json');
|
||||
* // => true
|
||||
*
|
||||
* req.is('html');
|
||||
* // => false
|
||||
*
|
||||
* Ad-hoc callbacks can also be registered with Express, to perform
|
||||
* assertions again the request, for example if we need an expressive
|
||||
* way to check if our incoming request is an image, we can register "an image"
|
||||
* callback:
|
||||
*
|
||||
* app.is('an image', function(req){
|
||||
* return 0 == req.headers['content-type'].indexOf('image');
|
||||
* });
|
||||
*
|
||||
* Now within our route callbacks, we can use to to assert content types
|
||||
* such as "image/jpeg", "image/png", etc.
|
||||
*
|
||||
* app.post('/image/upload', function(req, res, next){
|
||||
* if (req.is('an image')) {
|
||||
* // do something
|
||||
* } else {
|
||||
* next();
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* @param {String} type
|
||||
* @return {Boolean}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
req.is = function(type){
|
||||
var fn = this.app.is(type);
|
||||
if (fn) return fn(this);
|
||||
var ct = this.headers['content-type'];
|
||||
if (!ct) return false;
|
||||
ct = ct.split(';')[0];
|
||||
if (!~type.indexOf('/')) type = mime.lookup(type);
|
||||
if (~type.indexOf('*')) {
|
||||
type = type.split('/');
|
||||
ct = ct.split('/');
|
||||
if ('*' == type[0] && type[1] == ct[1]) return true;
|
||||
if ('*' == type[1] && type[0] == ct[0]) return true;
|
||||
return false;
|
||||
}
|
||||
return !! ~ct.indexOf(type);
|
||||
};
|
||||
|
||||
// Callback for isXMLHttpRequest / xhr
|
||||
|
||||
function isxhr() {
|
||||
return this.header('X-Requested-With', '').toLowerCase() === 'xmlhttprequest';
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the request was an _XMLHttpRequest_.
|
||||
*
|
||||
* @return {Boolean}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
req.__defineGetter__('isXMLHttpRequest', isxhr);
|
||||
req.__defineGetter__('xhr', isxhr);
|
460
nodejs/node_modules/express/lib/response.js
generated
vendored
460
nodejs/node_modules/express/lib/response.js
generated
vendored
@@ -1,460 +0,0 @@
|
||||
|
||||
/*!
|
||||
* Express - response
|
||||
* Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
|
||||
* MIT Licensed
|
||||
*/
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var fs = require('fs')
|
||||
, http = require('http')
|
||||
, path = require('path')
|
||||
, connect = require('connect')
|
||||
, utils = connect.utils
|
||||
, parseRange = require('./utils').parseRange
|
||||
, res = http.ServerResponse.prototype
|
||||
, send = connect.static.send
|
||||
, mime = require('mime')
|
||||
, basename = path.basename
|
||||
, join = path.join;
|
||||
|
||||
/**
|
||||
* Send a response with the given `body` and optional `headers` and `status` code.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* res.send();
|
||||
* res.send(new Buffer('wahoo'));
|
||||
* res.send({ some: 'json' });
|
||||
* res.send('<p>some html</p>');
|
||||
* res.send('Sorry, cant find that', 404);
|
||||
* res.send('text', { 'Content-Type': 'text/plain' }, 201);
|
||||
* res.send(404);
|
||||
*
|
||||
* @param {String|Object|Number|Buffer} body or status
|
||||
* @param {Object|Number} headers or status
|
||||
* @param {Number} status
|
||||
* @return {ServerResponse}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
res.send = function(body, headers, status){
|
||||
// allow status as second arg
|
||||
if ('number' == typeof headers) {
|
||||
status = headers,
|
||||
headers = null;
|
||||
}
|
||||
|
||||
// default status
|
||||
status = status || this.statusCode;
|
||||
|
||||
// allow 0 args as 204
|
||||
if (!arguments.length || undefined === body) status = 204;
|
||||
|
||||
// determine content type
|
||||
switch (typeof body) {
|
||||
case 'number':
|
||||
if (!this.header('Content-Type')) {
|
||||
this.contentType('.txt');
|
||||
}
|
||||
body = http.STATUS_CODES[status = body];
|
||||
break;
|
||||
case 'string':
|
||||
if (!this.header('Content-Type')) {
|
||||
this.charset = this.charset || 'utf-8';
|
||||
this.contentType('.html');
|
||||
}
|
||||
break;
|
||||
case 'boolean':
|
||||
case 'object':
|
||||
if (Buffer.isBuffer(body)) {
|
||||
if (!this.header('Content-Type')) {
|
||||
this.contentType('.bin');
|
||||
}
|
||||
} else {
|
||||
return this.json(body, headers, status);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// populate Content-Length
|
||||
if (undefined !== body && !this.header('Content-Length')) {
|
||||
this.header('Content-Length', Buffer.isBuffer(body)
|
||||
? body.length
|
||||
: Buffer.byteLength(body));
|
||||
}
|
||||
|
||||
// merge headers passed
|
||||
if (headers) {
|
||||
var fields = Object.keys(headers);
|
||||
for (var i = 0, len = fields.length; i < len; ++i) {
|
||||
var field = fields[i];
|
||||
this.header(field, headers[field]);
|
||||
}
|
||||
}
|
||||
|
||||
// strip irrelevant headers
|
||||
if (204 == status || 304 == status) {
|
||||
this.removeHeader('Content-Type');
|
||||
this.removeHeader('Content-Length');
|
||||
body = '';
|
||||
}
|
||||
|
||||
// respond
|
||||
this.statusCode = status;
|
||||
this.end('HEAD' == this.req.method ? null : body);
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Send JSON response with `obj`, optional `headers`, and optional `status`.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* res.json(null);
|
||||
* res.json({ user: 'tj' });
|
||||
* res.json('oh noes!', 500);
|
||||
* res.json('I dont have that', 404);
|
||||
*
|
||||
* @param {Mixed} obj
|
||||
* @param {Object|Number} headers or status
|
||||
* @param {Number} status
|
||||
* @return {ServerResponse}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
res.json = function(obj, headers, status){
|
||||
var body = JSON.stringify(obj)
|
||||
, callback = this.req.query.callback
|
||||
, jsonp = this.app.enabled('jsonp callback');
|
||||
|
||||
this.charset = this.charset || 'utf-8';
|
||||
this.header('Content-Type', 'application/json');
|
||||
|
||||
if (callback && jsonp) {
|
||||
this.header('Content-Type', 'text/javascript');
|
||||
body = callback.replace(/[^\w$.]/g, '') + '(' + body + ');';
|
||||
}
|
||||
|
||||
return this.send(body, headers, status);
|
||||
};
|
||||
|
||||
/**
|
||||
* Set status `code`.
|
||||
*
|
||||
* @param {Number} code
|
||||
* @return {ServerResponse}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
res.status = function(code){
|
||||
this.statusCode = code;
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Transfer the file at the given `path`. Automatically sets
|
||||
* the _Content-Type_ response header field. `next()` is called
|
||||
* when `path` is a directory, or when an error occurs.
|
||||
*
|
||||
* Options:
|
||||
*
|
||||
* - `maxAge` defaulting to 0
|
||||
* - `root` root directory for relative filenames
|
||||
*
|
||||
* @param {String} path
|
||||
* @param {Object|Function} options or fn
|
||||
* @param {Function} fn
|
||||
* @api public
|
||||
*/
|
||||
|
||||
res.sendfile = function(path, options, fn){
|
||||
var next = this.req.next;
|
||||
options = options || {};
|
||||
|
||||
// support function as second arg
|
||||
if ('function' == typeof options) {
|
||||
fn = options;
|
||||
options = {};
|
||||
}
|
||||
|
||||
options.path = encodeURIComponent(path);
|
||||
options.callback = fn;
|
||||
send(this.req, this, next, options);
|
||||
};
|
||||
|
||||
/**
|
||||
* Set _Content-Type_ response header passed through `mime.lookup()`.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* var filename = 'path/to/image.png';
|
||||
* res.contentType(filename);
|
||||
* // res.headers['Content-Type'] is now "image/png"
|
||||
*
|
||||
* res.contentType('.html');
|
||||
* res.contentType('html');
|
||||
* res.contentType('json');
|
||||
* res.contentType('png');
|
||||
*
|
||||
* @param {String} type
|
||||
* @return {String} the resolved mime type
|
||||
* @api public
|
||||
*/
|
||||
|
||||
res.contentType = function(type){
|
||||
return this.header('Content-Type', mime.lookup(type));
|
||||
};
|
||||
|
||||
/**
|
||||
* Set _Content-Disposition_ header to _attachment_ with optional `filename`.
|
||||
*
|
||||
* @param {String} filename
|
||||
* @return {ServerResponse}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
res.attachment = function(filename){
|
||||
if (filename) this.contentType(filename);
|
||||
this.header('Content-Disposition', filename
|
||||
? 'attachment; filename="' + basename(filename) + '"'
|
||||
: 'attachment');
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Transfer the file at the given `path`, with optional
|
||||
* `filename` as an attachment and optional callback `fn(err)`,
|
||||
* and optional `fn2(err)` which is invoked when an error has
|
||||
* occurred after header has been sent.
|
||||
*
|
||||
* @param {String} path
|
||||
* @param {String|Function} filename or fn
|
||||
* @param {Function} fn
|
||||
* @param {Function} fn2
|
||||
* @api public
|
||||
*/
|
||||
|
||||
res.download = function(path, filename, fn, fn2){
|
||||
var self = this;
|
||||
|
||||
// support callback as second arg
|
||||
if ('function' == typeof filename) {
|
||||
fn2 = fn;
|
||||
fn = filename;
|
||||
filename = null;
|
||||
}
|
||||
|
||||
// transfer the file
|
||||
this.attachment(filename || path).sendfile(path, function(err){
|
||||
var sentHeader = self._header;
|
||||
if (err) {
|
||||
if (!sentHeader) self.removeHeader('Content-Disposition');
|
||||
if (sentHeader) {
|
||||
fn2 && fn2(err);
|
||||
} else if (fn) {
|
||||
fn(err);
|
||||
} else {
|
||||
self.req.next(err);
|
||||
}
|
||||
} else if (fn) {
|
||||
fn();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Set or get response header `name` with optional `val`.
|
||||
*
|
||||
* @param {String} name
|
||||
* @param {String} val
|
||||
* @return {ServerResponse} for chaining
|
||||
* @api public
|
||||
*/
|
||||
|
||||
res.header = function(name, val){
|
||||
if (1 == arguments.length) return this.getHeader(name);
|
||||
this.setHeader(name, val);
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Clear cookie `name`.
|
||||
*
|
||||
* @param {String} name
|
||||
* @param {Object} options
|
||||
* @api public
|
||||
*/
|
||||
|
||||
res.clearCookie = function(name, options){
|
||||
var opts = { expires: new Date(1) };
|
||||
this.cookie(name, '', options
|
||||
? utils.merge(options, opts)
|
||||
: opts);
|
||||
};
|
||||
|
||||
/**
|
||||
* Set cookie `name` to `val`, with the given `options`.
|
||||
*
|
||||
* Options:
|
||||
*
|
||||
* - `maxAge` max-age in milliseconds, converted to `expires`
|
||||
* - `path` defaults to the "basepath" setting which is typically "/"
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* // "Remember Me" for 15 minutes
|
||||
* res.cookie('rememberme', '1', { expires: new Date(Date.now() + 900000), httpOnly: true });
|
||||
*
|
||||
* // save as above
|
||||
* res.cookie('rememberme', '1', { maxAge: 900000, httpOnly: true })
|
||||
*
|
||||
* @param {String} name
|
||||
* @param {String} val
|
||||
* @param {Options} options
|
||||
* @api public
|
||||
*/
|
||||
|
||||
res.cookie = function(name, val, options){
|
||||
options = options || {};
|
||||
if ('maxAge' in options) options.expires = new Date(Date.now() + options.maxAge);
|
||||
if (undefined === options.path) options.path = this.app.set('basepath');
|
||||
var cookie = utils.serializeCookie(name, val, options);
|
||||
this.header('Set-Cookie', cookie);
|
||||
};
|
||||
|
||||
/**
|
||||
* Redirect to the given `url` with optional response `status`
|
||||
* defauling to 302.
|
||||
*
|
||||
* The given `url` can also be the name of a mapped url, for
|
||||
* example by default express supports "back" which redirects
|
||||
* to the _Referrer_ or _Referer_ headers or the application's
|
||||
* "basepath" setting. Express also supports "basepath" out of the box,
|
||||
* which can be set via `app.set('basepath', '/blog');`, and defaults
|
||||
* to '/'.
|
||||
*
|
||||
* Redirect Mapping:
|
||||
*
|
||||
* To extend the redirect mapping capabilities that Express provides,
|
||||
* we may use the `app.redirect()` method:
|
||||
*
|
||||
* app.redirect('google', 'http://google.com');
|
||||
*
|
||||
* Now in a route we may call:
|
||||
*
|
||||
* res.redirect('google');
|
||||
*
|
||||
* We may also map dynamic redirects:
|
||||
*
|
||||
* app.redirect('comments', function(req, res){
|
||||
* return '/post/' + req.params.id + '/comments';
|
||||
* });
|
||||
*
|
||||
* So now we may do the following, and the redirect will dynamically adjust to
|
||||
* the context of the request. If we called this route with _GET /post/12_ our
|
||||
* redirect _Location_ would be _/post/12/comments_.
|
||||
*
|
||||
* app.get('/post/:id', function(req, res){
|
||||
* res.redirect('comments');
|
||||
* });
|
||||
*
|
||||
* Unless an absolute `url` is given, the app's mount-point
|
||||
* will be respected. For example if we redirect to `/posts`,
|
||||
* and our app is mounted at `/blog` we will redirect to `/blog/posts`.
|
||||
*
|
||||
* @param {String} url
|
||||
* @param {Number} code
|
||||
* @api public
|
||||
*/
|
||||
|
||||
res.redirect = function(url, status){
|
||||
var app = this.app
|
||||
, req = this.req
|
||||
, base = app.set('basepath') || app.route
|
||||
, status = status || 302
|
||||
, head = 'HEAD' == req.method
|
||||
, body;
|
||||
|
||||
// Setup redirect map
|
||||
var map = {
|
||||
back: req.header('Referrer', base)
|
||||
, home: base
|
||||
};
|
||||
|
||||
// Support custom redirect map
|
||||
map.__proto__ = app.redirects;
|
||||
|
||||
// Attempt mapped redirect
|
||||
var mapped = 'function' == typeof map[url]
|
||||
? map[url](req, this)
|
||||
: map[url];
|
||||
|
||||
// Perform redirect
|
||||
url = mapped || url;
|
||||
|
||||
// Relative
|
||||
if (!~url.indexOf('://')) {
|
||||
// Respect mount-point
|
||||
if ('/' != base && 0 != url.indexOf(base)) url = base + url;
|
||||
|
||||
// Absolute
|
||||
var host = req.headers.host
|
||||
, tls = req.connection.encrypted;
|
||||
url = 'http' + (tls ? 's' : '') + '://' + host + url;
|
||||
}
|
||||
|
||||
// Support text/{plain,html} by default
|
||||
if (req.accepts('html')) {
|
||||
body = '<p>' + http.STATUS_CODES[status] + '. Redirecting to <a href="' + url + '">' + url + '</a></p>';
|
||||
this.header('Content-Type', 'text/html');
|
||||
} else {
|
||||
body = http.STATUS_CODES[status] + '. Redirecting to ' + url;
|
||||
this.header('Content-Type', 'text/plain');
|
||||
}
|
||||
|
||||
// Respond
|
||||
this.statusCode = status;
|
||||
this.header('Location', url);
|
||||
this.end(head ? null : body);
|
||||
};
|
||||
|
||||
/**
|
||||
* Assign the view local variable `name` to `val` or return the
|
||||
* local previously assigned to `name`.
|
||||
*
|
||||
* @param {String} name
|
||||
* @param {Mixed} val
|
||||
* @return {Mixed} val
|
||||
* @api public
|
||||
*/
|
||||
|
||||
res.local = function(name, val){
|
||||
this._locals = this._locals || {};
|
||||
return undefined === val
|
||||
? this._locals[name]
|
||||
: this._locals[name] = val;
|
||||
};
|
||||
|
||||
/**
|
||||
* Assign several locals with the given `obj`,
|
||||
* or return the locals.
|
||||
*
|
||||
* @param {Object} obj
|
||||
* @return {Object|Undefined}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
res.locals =
|
||||
res.helpers = function(obj){
|
||||
if (obj) {
|
||||
for (var key in obj) {
|
||||
this.local(key, obj[key]);
|
||||
}
|
||||
} else {
|
||||
return this._locals;
|
||||
}
|
||||
};
|
53
nodejs/node_modules/express/lib/router/collection.js
generated
vendored
53
nodejs/node_modules/express/lib/router/collection.js
generated
vendored
@@ -1,53 +0,0 @@
|
||||
|
||||
/*!
|
||||
* Express - router - Collection
|
||||
* Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
|
||||
* MIT Licensed
|
||||
*/
|
||||
|
||||
/**
|
||||
* Expose `Collection`.
|
||||
*/
|
||||
|
||||
module.exports = Collection;
|
||||
|
||||
/**
|
||||
* Initialize a new route `Collection`
|
||||
* with the given `router`.
|
||||
*
|
||||
* @param {Router} router
|
||||
* @api private
|
||||
*/
|
||||
|
||||
function Collection(router) {
|
||||
Array.apply(this, arguments);
|
||||
this.router = router;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inherit from `Array.prototype`.
|
||||
*/
|
||||
|
||||
Collection.prototype.__proto__ = Array.prototype;
|
||||
|
||||
/**
|
||||
* Remove the routes in this collection.
|
||||
*
|
||||
* @return {Collection} of routes removed
|
||||
* @api public
|
||||
*/
|
||||
|
||||
Collection.prototype.remove = function(){
|
||||
var router = this.router
|
||||
, len = this.length
|
||||
, ret = new Collection(this.router);
|
||||
|
||||
for (var i = 0; i < len; ++i) {
|
||||
if (router.remove(this[i])) {
|
||||
ret.push(this[i]);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
};
|
||||
|
398
nodejs/node_modules/express/lib/router/index.js
generated
vendored
398
nodejs/node_modules/express/lib/router/index.js
generated
vendored
@@ -1,398 +0,0 @@
|
||||
|
||||
/*!
|
||||
* Express - Router
|
||||
* Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
|
||||
* MIT Licensed
|
||||
*/
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var Route = require('./route')
|
||||
, Collection = require('./collection')
|
||||
, utils = require('../utils')
|
||||
, parse = require('url').parse
|
||||
, toArray = utils.toArray;
|
||||
|
||||
/**
|
||||
* Expose `Router` constructor.
|
||||
*/
|
||||
|
||||
exports = module.exports = Router;
|
||||
|
||||
/**
|
||||
* Expose HTTP methods.
|
||||
*/
|
||||
|
||||
var methods = exports.methods = require('./methods');
|
||||
|
||||
/**
|
||||
* Initialize a new `Router` with the given `app`.
|
||||
*
|
||||
* @param {express.HTTPServer} app
|
||||
* @api private
|
||||
*/
|
||||
|
||||
function Router(app) {
|
||||
var self = this;
|
||||
this.app = app;
|
||||
this.routes = {};
|
||||
this.params = {};
|
||||
this._params = [];
|
||||
|
||||
this.middleware = function(req, res, next){
|
||||
self._dispatch(req, res, next);
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a param callback `fn` for the given `name`.
|
||||
*
|
||||
* @param {String|Function} name
|
||||
* @param {Function} fn
|
||||
* @return {Router} for chaining
|
||||
* @api public
|
||||
*/
|
||||
|
||||
Router.prototype.param = function(name, fn){
|
||||
// param logic
|
||||
if ('function' == typeof name) {
|
||||
this._params.push(name);
|
||||
return;
|
||||
}
|
||||
|
||||
// apply param functions
|
||||
var params = this._params
|
||||
, len = params.length
|
||||
, ret;
|
||||
|
||||
for (var i = 0; i < len; ++i) {
|
||||
if (ret = params[i](name, fn)) {
|
||||
fn = ret;
|
||||
}
|
||||
}
|
||||
|
||||
// ensure we end up with a
|
||||
// middleware function
|
||||
if ('function' != typeof fn) {
|
||||
throw new Error('invalid param() call for ' + name + ', got ' + fn);
|
||||
}
|
||||
|
||||
(this.params[name] = this.params[name] || []).push(fn);
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Return a `Collection` of all routes defined.
|
||||
*
|
||||
* @return {Collection}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
Router.prototype.all = function(){
|
||||
return this.find(function(){
|
||||
return true;
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Remove the given `route`, returns
|
||||
* a bool indicating if the route was present
|
||||
* or not.
|
||||
*
|
||||
* @param {Route} route
|
||||
* @return {Boolean}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
Router.prototype.remove = function(route){
|
||||
var routes = this.routes[route.method]
|
||||
, len = routes.length;
|
||||
|
||||
for (var i = 0; i < len; ++i) {
|
||||
if (route == routes[i]) {
|
||||
routes.splice(i, 1);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Return routes with route paths matching `path`.
|
||||
*
|
||||
* @param {String} method
|
||||
* @param {String} path
|
||||
* @return {Collection}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
Router.prototype.lookup = function(method, path){
|
||||
return this.find(function(route){
|
||||
return path == route.path
|
||||
&& (route.method == method
|
||||
|| method == 'all');
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Return routes with regexps that match the given `url`.
|
||||
*
|
||||
* @param {String} method
|
||||
* @param {String} url
|
||||
* @return {Collection}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
Router.prototype.match = function(method, url){
|
||||
return this.find(function(route){
|
||||
return route.match(url)
|
||||
&& (route.method == method
|
||||
|| method == 'all');
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Find routes based on the return value of `fn`
|
||||
* which is invoked once per route.
|
||||
*
|
||||
* @param {Function} fn
|
||||
* @return {Collection}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
Router.prototype.find = function(fn){
|
||||
var len = methods.length
|
||||
, ret = new Collection(this)
|
||||
, method
|
||||
, routes
|
||||
, route;
|
||||
|
||||
for (var i = 0; i < len; ++i) {
|
||||
method = methods[i];
|
||||
routes = this.routes[method];
|
||||
if (!routes) continue;
|
||||
for (var j = 0, jlen = routes.length; j < jlen; ++j) {
|
||||
route = routes[j];
|
||||
if (fn(route)) ret.push(route);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
};
|
||||
|
||||
/**
|
||||
* Route dispatcher aka the route "middleware".
|
||||
*
|
||||
* @param {IncomingMessage} req
|
||||
* @param {ServerResponse} res
|
||||
* @param {Function} next
|
||||
* @api private
|
||||
*/
|
||||
|
||||
Router.prototype._dispatch = function(req, res, next){
|
||||
var params = this.params
|
||||
, self = this;
|
||||
|
||||
// route dispatch
|
||||
(function pass(i, err){
|
||||
var paramCallbacks
|
||||
, paramIndex = 0
|
||||
, paramVal
|
||||
, route
|
||||
, keys
|
||||
, key
|
||||
, ret;
|
||||
|
||||
// match next route
|
||||
function nextRoute(err) {
|
||||
pass(req._route_index + 1, err);
|
||||
}
|
||||
|
||||
// match route
|
||||
req.route = route = self._match(req, i);
|
||||
|
||||
// implied OPTIONS
|
||||
if (!route && 'OPTIONS' == req.method) return self._options(req, res);
|
||||
|
||||
// no route
|
||||
if (!route) return next(err);
|
||||
|
||||
// we have a route
|
||||
// start at param 0
|
||||
req.params = route.params;
|
||||
keys = route.keys;
|
||||
i = 0;
|
||||
|
||||
// param callbacks
|
||||
function param(err) {
|
||||
paramIndex = 0;
|
||||
key = keys[i++];
|
||||
paramVal = key && req.params[key.name];
|
||||
paramCallbacks = key && params[key.name];
|
||||
|
||||
try {
|
||||
if ('route' == err) {
|
||||
nextRoute();
|
||||
} else if (err) {
|
||||
i = 0;
|
||||
callbacks(err);
|
||||
} else if (paramCallbacks && undefined !== paramVal) {
|
||||
paramCallback();
|
||||
} else if (key) {
|
||||
param();
|
||||
} else {
|
||||
i = 0;
|
||||
callbacks();
|
||||
}
|
||||
} catch (err) {
|
||||
param(err);
|
||||
}
|
||||
};
|
||||
|
||||
param(err);
|
||||
|
||||
// single param callbacks
|
||||
function paramCallback(err) {
|
||||
var fn = paramCallbacks[paramIndex++];
|
||||
if (err || !fn) return param(err);
|
||||
fn(req, res, paramCallback, paramVal, key.name);
|
||||
}
|
||||
|
||||
// invoke route callbacks
|
||||
function callbacks(err) {
|
||||
var fn = route.callbacks[i++];
|
||||
try {
|
||||
if ('route' == err) {
|
||||
nextRoute();
|
||||
} else if (err && fn) {
|
||||
if (fn.length < 4) return callbacks(err);
|
||||
fn(err, req, res, callbacks);
|
||||
} else if (fn) {
|
||||
fn(req, res, callbacks);
|
||||
} else {
|
||||
nextRoute(err);
|
||||
}
|
||||
} catch (err) {
|
||||
callbacks(err);
|
||||
}
|
||||
}
|
||||
})(0);
|
||||
};
|
||||
|
||||
/**
|
||||
* Respond to __OPTIONS__ method.
|
||||
*
|
||||
* @param {IncomingMessage} req
|
||||
* @param {ServerResponse} res
|
||||
* @api private
|
||||
*/
|
||||
|
||||
Router.prototype._options = function(req, res){
|
||||
var path = parse(req.url).pathname
|
||||
, body = this._optionsFor(path).join(',');
|
||||
res.send(body, { Allow: body });
|
||||
};
|
||||
|
||||
/**
|
||||
* Return an array of HTTP verbs or "options" for `path`.
|
||||
*
|
||||
* @param {String} path
|
||||
* @return {Array}
|
||||
* @api private
|
||||
*/
|
||||
|
||||
Router.prototype._optionsFor = function(path){
|
||||
var self = this;
|
||||
return methods.filter(function(method){
|
||||
var routes = self.routes[method];
|
||||
if (!routes || 'options' == method) return;
|
||||
for (var i = 0, len = routes.length; i < len; ++i) {
|
||||
if (routes[i].match(path)) return true;
|
||||
}
|
||||
}).map(function(method){
|
||||
return method.toUpperCase();
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Attempt to match a route for `req`
|
||||
* starting from offset `i`.
|
||||
*
|
||||
* @param {IncomingMessage} req
|
||||
* @param {Number} i
|
||||
* @return {Route}
|
||||
* @api private
|
||||
*/
|
||||
|
||||
Router.prototype._match = function(req, i){
|
||||
var method = req.method.toLowerCase()
|
||||
, url = parse(req.url)
|
||||
, path = url.pathname
|
||||
, routes = this.routes
|
||||
, captures
|
||||
, route
|
||||
, keys;
|
||||
|
||||
// pass HEAD to GET routes
|
||||
if ('head' == method) method = 'get';
|
||||
|
||||
// routes for this method
|
||||
if (routes = routes[method]) {
|
||||
|
||||
// matching routes
|
||||
for (var len = routes.length; i < len; ++i) {
|
||||
route = routes[i];
|
||||
if (captures = route.match(path)) {
|
||||
keys = route.keys;
|
||||
route.params = [];
|
||||
|
||||
// params from capture groups
|
||||
for (var j = 1, jlen = captures.length; j < jlen; ++j) {
|
||||
var key = keys[j-1]
|
||||
, val = 'string' == typeof captures[j]
|
||||
? decodeURIComponent(captures[j])
|
||||
: captures[j];
|
||||
if (key) {
|
||||
route.params[key.name] = val;
|
||||
} else {
|
||||
route.params.push(val);
|
||||
}
|
||||
}
|
||||
|
||||
// all done
|
||||
req._route_index = i;
|
||||
return route;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Route `method`, `path`, and one or more callbacks.
|
||||
*
|
||||
* @param {String} method
|
||||
* @param {String} path
|
||||
* @param {Function} callback...
|
||||
* @return {Router} for chaining
|
||||
* @api private
|
||||
*/
|
||||
|
||||
Router.prototype._route = function(method, path, callbacks){
|
||||
var app = this.app
|
||||
, callbacks = utils.flatten(toArray(arguments, 2));
|
||||
|
||||
// ensure path was given
|
||||
if (!path) throw new Error('app.' + method + '() requires a path');
|
||||
|
||||
// create the route
|
||||
var route = new Route(method, path, callbacks, {
|
||||
sensitive: app.enabled('case sensitive routes')
|
||||
, strict: app.enabled('strict routing')
|
||||
});
|
||||
|
||||
// add it
|
||||
(this.routes[method] = this.routes[method] || [])
|
||||
.push(route);
|
||||
return this;
|
||||
};
|
70
nodejs/node_modules/express/lib/router/methods.js
generated
vendored
70
nodejs/node_modules/express/lib/router/methods.js
generated
vendored
@@ -1,70 +0,0 @@
|
||||
|
||||
/*!
|
||||
* Express - router - methods
|
||||
* Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
|
||||
* MIT Licensed
|
||||
*/
|
||||
|
||||
/**
|
||||
* Hypertext Transfer Protocol -- HTTP/1.1
|
||||
* http://www.ietf.org/rfc/rfc2616.txt
|
||||
*/
|
||||
|
||||
var RFC2616 = ['OPTIONS', 'GET', 'POST', 'PUT', 'DELETE', 'TRACE', 'CONNECT'];
|
||||
|
||||
/**
|
||||
* HTTP Extensions for Distributed Authoring -- WEBDAV
|
||||
* http://www.ietf.org/rfc/rfc2518.txt
|
||||
*/
|
||||
|
||||
var RFC2518 = ['PROPFIND', 'PROPPATCH', 'MKCOL', 'COPY', 'MOVE', 'LOCK', 'UNLOCK'];
|
||||
|
||||
/**
|
||||
* Versioning Extensions to WebDAV
|
||||
* http://www.ietf.org/rfc/rfc3253.txt
|
||||
*/
|
||||
|
||||
var RFC3253 = ['VERSION-CONTROL', 'REPORT', 'CHECKOUT', 'CHECKIN', 'UNCHECKOUT', 'MKWORKSPACE', 'UPDATE', 'LABEL', 'MERGE', 'BASELINE-CONTROL', 'MKACTIVITY'];
|
||||
|
||||
/**
|
||||
* Ordered Collections Protocol (WebDAV)
|
||||
* http://www.ietf.org/rfc/rfc3648.txt
|
||||
*/
|
||||
|
||||
var RFC3648 = ['ORDERPATCH'];
|
||||
|
||||
/**
|
||||
* Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol
|
||||
* http://www.ietf.org/rfc/rfc3744.txt
|
||||
*/
|
||||
|
||||
var RFC3744 = ['ACL'];
|
||||
|
||||
/**
|
||||
* Web Distributed Authoring and Versioning (WebDAV) SEARCH
|
||||
* http://www.ietf.org/rfc/rfc5323.txt
|
||||
*/
|
||||
|
||||
var RFC5323 = ['SEARCH'];
|
||||
|
||||
/**
|
||||
* PATCH Method for HTTP
|
||||
* http://www.ietf.org/rfc/rfc5789.txt
|
||||
*/
|
||||
|
||||
var RFC5789 = ['PATCH'];
|
||||
|
||||
/**
|
||||
* Expose the methods.
|
||||
*/
|
||||
|
||||
module.exports = [].concat(
|
||||
RFC2616
|
||||
, RFC2518
|
||||
, RFC3253
|
||||
, RFC3648
|
||||
, RFC3744
|
||||
, RFC5323
|
||||
, RFC5789).map(function(method){
|
||||
return method.toLowerCase();
|
||||
});
|
88
nodejs/node_modules/express/lib/router/route.js
generated
vendored
88
nodejs/node_modules/express/lib/router/route.js
generated
vendored
@@ -1,88 +0,0 @@
|
||||
|
||||
/*!
|
||||
* Express - router - Route
|
||||
* Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
|
||||
* MIT Licensed
|
||||
*/
|
||||
|
||||
/**
|
||||
* Expose `Route`.
|
||||
*/
|
||||
|
||||
module.exports = Route;
|
||||
|
||||
/**
|
||||
* Initialize `Route` with the given HTTP `method`, `path`,
|
||||
* and an array of `callbacks` and `options`.
|
||||
*
|
||||
* Options:
|
||||
*
|
||||
* - `sensitive` enable case-sensitive routes
|
||||
* - `strict` enable strict matching for trailing slashes
|
||||
*
|
||||
* @param {String} method
|
||||
* @param {String} path
|
||||
* @param {Array} callbacks
|
||||
* @param {Object} options.
|
||||
* @api private
|
||||
*/
|
||||
|
||||
function Route(method, path, callbacks, options) {
|
||||
options = options || {};
|
||||
this.path = path;
|
||||
this.method = method;
|
||||
this.callbacks = callbacks;
|
||||
this.regexp = normalize(path
|
||||
, this.keys = []
|
||||
, options.sensitive
|
||||
, options.strict);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if this route matches `path` and return captures made.
|
||||
*
|
||||
* @param {String} path
|
||||
* @return {Array}
|
||||
* @api private
|
||||
*/
|
||||
|
||||
Route.prototype.match = function(path){
|
||||
return this.regexp.exec(path);
|
||||
};
|
||||
|
||||
/**
|
||||
* Normalize the given path string,
|
||||
* returning a regular expression.
|
||||
*
|
||||
* An empty array should be passed,
|
||||
* which will contain the placeholder
|
||||
* key names. For example "/user/:id" will
|
||||
* then contain ["id"].
|
||||
*
|
||||
* @param {String|RegExp} path
|
||||
* @param {Array} keys
|
||||
* @param {Boolean} sensitive
|
||||
* @param {Boolean} strict
|
||||
* @return {RegExp}
|
||||
* @api private
|
||||
*/
|
||||
|
||||
function normalize(path, keys, sensitive, strict) {
|
||||
if (path instanceof RegExp) return path;
|
||||
path = path
|
||||
.concat(strict ? '' : '/?')
|
||||
.replace(/\/\(/g, '(?:/')
|
||||
.replace(/(\/)?(\.)?:(\w+)(?:(\(.*?\)))?(\?)?/g, function(_, slash, format, key, capture, optional){
|
||||
keys.push({ name: key, optional: !! optional });
|
||||
slash = slash || '';
|
||||
return ''
|
||||
+ (optional ? '' : slash)
|
||||
+ '(?:'
|
||||
+ (optional ? slash : '')
|
||||
+ (format || '') + (capture || (format && '([^/.]+?)' || '([^/]+?)')) + ')'
|
||||
+ (optional || '');
|
||||
})
|
||||
.replace(/([\/.])/g, '\\$1')
|
||||
.replace(/\*/g, '(.*)');
|
||||
return new RegExp('^' + path + '$', sensitive ? '' : 'i');
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user