From 5eed003b881fc380f3c2f54ba18db67617bb3ba8 Mon Sep 17 00:00:00 2001 From: tacri Date: Wed, 11 Mar 2015 10:15:36 -0700 Subject: [PATCH 01/21] update gulp to create zip file --- Web/.bowerrc | 3 + Web/bin/www | 2 +- Web/bower.json | 4 +- .../knockout/build/fragments/amd-post.js | 1 - .../knockout/build/fragments/amd-pre.js | 13 ----- .../knockout/build/fragments/extern-post.js | 1 - .../knockout/build/fragments/extern-pre.js | 8 --- .../build/fragments/source-references.js | 55 ------------------ .../knockout/build/knockout-raw.js | 34 ----------- Web/gulpfile.js | 28 ++++++++- Web/{app.js => main.js} | 35 +++++------ Web/package.json | 11 +++- Web/public/javascripts/externalLib.js | 6 ++ .../socket.io/.bower.json | 3 +- .../socket.io/.gitignore | 1 + .../socket.io/.npmignore | 0 .../socket.io/.travis.yml | 0 .../socket.io/History.md | 0 .../socket.io/LICENSE | 0 .../socket.io/Makefile | 0 .../socket.io/Readme.md | 0 .../socket.io/examples/chat/README.md | 0 .../socket.io/examples/chat/index.js | 0 .../socket.io/examples/chat/package.json | 0 .../socket.io/examples/chat/public/index.html | 0 .../socket.io/examples/chat/public/main.js | 0 .../socket.io/examples/chat/public/style.css | 0 .../socket.io/index.js | 0 .../socket.io/lib/client.js | 0 .../socket.io/lib/index.js | 0 .../socket.io/lib/namespace.js | 0 .../socket.io/lib/socket.js | 0 .../socket.io/package.json | 0 .../socket.io/test/fixtures/big.jpg | Bin .../socket.io/test/fixtures/big.json | 0 .../socket.io/test/socket.io.js | 0 .../socket.io/test/support/doge.jpg | Bin .../vendor}/bootstrap/.bower.json | 3 +- .../vendor}/bootstrap/Gruntfile.js | 0 .../vendor}/bootstrap/LICENSE | 0 .../vendor}/bootstrap/README.md | 0 .../vendor}/bootstrap/bower.json | 0 .../bootstrap/dist/css/bootstrap-theme.css | 0 .../dist/css/bootstrap-theme.css.map | 0 .../dist/css/bootstrap-theme.min.css | 0 .../vendor}/bootstrap/dist/css/bootstrap.css | 0 .../bootstrap/dist/css/bootstrap.css.map | 0 .../bootstrap/dist/css/bootstrap.min.css | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../vendor}/bootstrap/dist/js/bootstrap.js | 0 .../bootstrap/dist/js/bootstrap.min.js | 0 .../vendor}/bootstrap/dist/js/npm.js | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../vendor}/bootstrap/grunt/.jshintrc | 0 .../bootstrap/grunt/bs-commonjs-generator.js | 0 .../grunt/bs-glyphicons-data-generator.js | 0 .../bootstrap/grunt/bs-lessdoc-parser.js | 0 .../bootstrap/grunt/bs-raw-files-generator.js | 0 .../vendor}/bootstrap/grunt/configBridge.json | 0 .../bootstrap/grunt/sauce_browsers.yml | 0 .../vendor}/bootstrap/js/.jscsrc | 0 .../vendor}/bootstrap/js/.jshintrc | 0 .../vendor}/bootstrap/js/affix.js | 0 .../vendor}/bootstrap/js/alert.js | 0 .../vendor}/bootstrap/js/button.js | 0 .../vendor}/bootstrap/js/carousel.js | 0 .../vendor}/bootstrap/js/collapse.js | 0 .../vendor}/bootstrap/js/dropdown.js | 0 .../vendor}/bootstrap/js/modal.js | 0 .../vendor}/bootstrap/js/popover.js | 0 .../vendor}/bootstrap/js/scrollspy.js | 0 .../vendor}/bootstrap/js/tab.js | 0 .../vendor}/bootstrap/js/tooltip.js | 0 .../vendor}/bootstrap/js/transition.js | 0 .../vendor}/bootstrap/less/.csscomb.json | 0 .../vendor}/bootstrap/less/.csslintrc | 0 .../vendor}/bootstrap/less/alerts.less | 0 .../vendor}/bootstrap/less/badges.less | 0 .../vendor}/bootstrap/less/bootstrap.less | 0 .../vendor}/bootstrap/less/breadcrumbs.less | 0 .../vendor}/bootstrap/less/button-groups.less | 0 .../vendor}/bootstrap/less/buttons.less | 0 .../vendor}/bootstrap/less/carousel.less | 0 .../vendor}/bootstrap/less/close.less | 0 .../vendor}/bootstrap/less/code.less | 0 .../bootstrap/less/component-animations.less | 0 .../vendor}/bootstrap/less/dropdowns.less | 0 .../vendor}/bootstrap/less/forms.less | 0 .../vendor}/bootstrap/less/glyphicons.less | 0 .../vendor}/bootstrap/less/grid.less | 0 .../vendor}/bootstrap/less/input-groups.less | 0 .../vendor}/bootstrap/less/jumbotron.less | 0 .../vendor}/bootstrap/less/labels.less | 0 .../vendor}/bootstrap/less/list-group.less | 0 .../vendor}/bootstrap/less/media.less | 0 .../vendor}/bootstrap/less/mixins.less | 0 .../vendor}/bootstrap/less/mixins/alerts.less | 0 .../less/mixins/background-variant.less | 0 .../bootstrap/less/mixins/border-radius.less | 0 .../bootstrap/less/mixins/buttons.less | 0 .../bootstrap/less/mixins/center-block.less | 0 .../bootstrap/less/mixins/clearfix.less | 0 .../vendor}/bootstrap/less/mixins/forms.less | 0 .../bootstrap/less/mixins/gradients.less | 0 .../bootstrap/less/mixins/grid-framework.less | 0 .../vendor}/bootstrap/less/mixins/grid.less | 0 .../bootstrap/less/mixins/hide-text.less | 0 .../vendor}/bootstrap/less/mixins/image.less | 0 .../vendor}/bootstrap/less/mixins/labels.less | 0 .../bootstrap/less/mixins/list-group.less | 0 .../bootstrap/less/mixins/nav-divider.less | 0 .../less/mixins/nav-vertical-align.less | 0 .../bootstrap/less/mixins/opacity.less | 0 .../bootstrap/less/mixins/pagination.less | 0 .../vendor}/bootstrap/less/mixins/panels.less | 0 .../bootstrap/less/mixins/progress-bar.less | 0 .../bootstrap/less/mixins/reset-filter.less | 0 .../vendor}/bootstrap/less/mixins/resize.less | 0 .../less/mixins/responsive-visibility.less | 0 .../vendor}/bootstrap/less/mixins/size.less | 0 .../bootstrap/less/mixins/tab-focus.less | 0 .../bootstrap/less/mixins/table-row.less | 0 .../bootstrap/less/mixins/text-emphasis.less | 0 .../bootstrap/less/mixins/text-overflow.less | 0 .../less/mixins/vendor-prefixes.less | 0 .../vendor}/bootstrap/less/modals.less | 0 .../vendor}/bootstrap/less/navbar.less | 0 .../vendor}/bootstrap/less/navs.less | 0 .../vendor}/bootstrap/less/normalize.less | 0 .../vendor}/bootstrap/less/pager.less | 0 .../vendor}/bootstrap/less/pagination.less | 0 .../vendor}/bootstrap/less/panels.less | 0 .../vendor}/bootstrap/less/popovers.less | 0 .../vendor}/bootstrap/less/print.less | 0 .../vendor}/bootstrap/less/progress-bars.less | 0 .../bootstrap/less/responsive-embed.less | 0 .../bootstrap/less/responsive-utilities.less | 0 .../vendor}/bootstrap/less/scaffolding.less | 0 .../vendor}/bootstrap/less/tables.less | 0 .../vendor}/bootstrap/less/theme.less | 0 .../vendor}/bootstrap/less/thumbnails.less | 0 .../vendor}/bootstrap/less/tooltip.less | 0 .../vendor}/bootstrap/less/type.less | 0 .../vendor}/bootstrap/less/utilities.less | 0 .../vendor}/bootstrap/less/variables.less | 0 .../vendor}/bootstrap/less/wells.less | 0 .../vendor}/bootstrap/package.json | 0 .../vendor}/jquery/.bower.json | 2 +- .../vendor}/jquery/MIT-LICENSE.txt | 0 .../vendor}/jquery/bower.json | 0 .../vendor}/jquery/dist/jquery.js | 0 .../vendor}/jquery/dist/jquery.min.js | 0 .../vendor}/jquery/dist/jquery.min.map | 0 .../vendor}/jquery/src/ajax.js | 0 .../vendor}/jquery/src/ajax/jsonp.js | 0 .../vendor}/jquery/src/ajax/load.js | 0 .../vendor}/jquery/src/ajax/parseJSON.js | 0 .../vendor}/jquery/src/ajax/parseXML.js | 0 .../vendor}/jquery/src/ajax/script.js | 0 .../vendor}/jquery/src/ajax/var/nonce.js | 0 .../vendor}/jquery/src/ajax/var/rquery.js | 0 .../vendor}/jquery/src/ajax/xhr.js | 0 .../vendor}/jquery/src/attributes.js | 0 .../vendor}/jquery/src/attributes/attr.js | 0 .../vendor}/jquery/src/attributes/classes.js | 0 .../vendor}/jquery/src/attributes/prop.js | 0 .../vendor}/jquery/src/attributes/support.js | 0 .../vendor}/jquery/src/attributes/val.js | 0 .../vendor}/jquery/src/callbacks.js | 0 .../vendor}/jquery/src/core.js | 0 .../vendor}/jquery/src/core/access.js | 0 .../vendor}/jquery/src/core/init.js | 0 .../vendor}/jquery/src/core/parseHTML.js | 0 .../vendor}/jquery/src/core/ready.js | 0 .../vendor}/jquery/src/core/var/rsingleTag.js | 0 .../vendor}/jquery/src/css.js | 0 .../vendor}/jquery/src/css/addGetHookIf.js | 0 .../vendor}/jquery/src/css/curCSS.js | 0 .../vendor}/jquery/src/css/defaultDisplay.js | 0 .../jquery/src/css/hiddenVisibleSelectors.js | 0 .../vendor}/jquery/src/css/support.js | 0 .../vendor}/jquery/src/css/swap.js | 0 .../vendor}/jquery/src/css/var/cssExpand.js | 0 .../vendor}/jquery/src/css/var/getStyles.js | 0 .../vendor}/jquery/src/css/var/isHidden.js | 0 .../vendor}/jquery/src/css/var/rmargin.js | 0 .../vendor}/jquery/src/css/var/rnumnonpx.js | 0 .../vendor}/jquery/src/data.js | 0 .../vendor}/jquery/src/data/Data.js | 0 .../vendor}/jquery/src/data/accepts.js | 0 .../vendor}/jquery/src/data/var/data_priv.js | 0 .../vendor}/jquery/src/data/var/data_user.js | 0 .../vendor}/jquery/src/deferred.js | 0 .../vendor}/jquery/src/deprecated.js | 0 .../vendor}/jquery/src/dimensions.js | 0 .../vendor}/jquery/src/effects.js | 0 .../vendor}/jquery/src/effects/Tween.js | 0 .../jquery/src/effects/animatedSelector.js | 0 .../vendor}/jquery/src/event.js | 0 .../vendor}/jquery/src/event/ajax.js | 0 .../vendor}/jquery/src/event/alias.js | 0 .../vendor}/jquery/src/event/support.js | 0 .../vendor}/jquery/src/exports/amd.js | 0 .../vendor}/jquery/src/exports/global.js | 0 .../vendor}/jquery/src/intro.js | 0 .../vendor}/jquery/src/jquery.js | 0 .../vendor}/jquery/src/manipulation.js | 0 .../jquery/src/manipulation/_evalUrl.js | 0 .../jquery/src/manipulation/support.js | 0 .../src/manipulation/var/rcheckableType.js | 0 .../vendor}/jquery/src/offset.js | 0 .../vendor}/jquery/src/outro.js | 0 .../vendor}/jquery/src/queue.js | 0 .../vendor}/jquery/src/queue/delay.js | 0 .../vendor}/jquery/src/selector-native.js | 0 .../vendor}/jquery/src/selector-sizzle.js | 0 .../vendor}/jquery/src/selector.js | 0 .../vendor}/jquery/src/serialize.js | 0 .../vendor}/jquery/src/sizzle/dist/sizzle.js | 0 .../jquery/src/sizzle/dist/sizzle.min.js | 0 .../jquery/src/sizzle/dist/sizzle.min.map | 0 .../vendor}/jquery/src/traversing.js | 0 .../jquery/src/traversing/findFilter.js | 0 .../src/traversing/var/rneedsContext.js | 0 .../vendor}/jquery/src/var/arr.js | 0 .../vendor}/jquery/src/var/class2type.js | 0 .../vendor}/jquery/src/var/concat.js | 0 .../vendor}/jquery/src/var/hasOwn.js | 0 .../vendor}/jquery/src/var/indexOf.js | 0 .../vendor}/jquery/src/var/pnum.js | 0 .../vendor}/jquery/src/var/push.js | 0 .../vendor}/jquery/src/var/rnotwhite.js | 0 .../vendor}/jquery/src/var/slice.js | 0 .../vendor}/jquery/src/var/strundefined.js | 0 .../vendor}/jquery/src/var/support.js | 0 .../vendor}/jquery/src/var/toString.js | 0 .../vendor}/jquery/src/wrap.js | 0 .../vendor}/knockout/.bower.json | 3 +- .../vendor}/knockout/Gruntfile.js | 0 .../vendor}/knockout/LICENSE | 0 .../vendor}/knockout/README.md | 0 .../vendor}/knockout/bower.json | 0 .../vendor}/knockout/dist/knockout.debug.js | 0 .../vendor}/knockout/dist/knockout.js | 0 .../vendor}/knockout/package.json | 0 .../src/binding/bindingAttributeSyntax.js | 0 .../knockout/src/binding/bindingProvider.js | 0 .../src/binding/defaultBindings/attr.js | 0 .../src/binding/defaultBindings/checked.js | 0 .../src/binding/defaultBindings/click.js | 0 .../src/binding/defaultBindings/css.js | 0 .../binding/defaultBindings/enableDisable.js | 0 .../src/binding/defaultBindings/event.js | 0 .../src/binding/defaultBindings/foreach.js | 0 .../src/binding/defaultBindings/hasfocus.js | 0 .../src/binding/defaultBindings/html.js | 0 .../binding/defaultBindings/ifIfnotWith.js | 0 .../src/binding/defaultBindings/options.js | 0 .../defaultBindings/selectedOptions.js | 0 .../src/binding/defaultBindings/style.js | 0 .../src/binding/defaultBindings/submit.js | 0 .../src/binding/defaultBindings/text.js | 0 .../src/binding/defaultBindings/textInput.js | 0 .../src/binding/defaultBindings/uniqueName.js | 0 .../src/binding/defaultBindings/value.js | 0 .../src/binding/defaultBindings/visible.js | 0 .../editDetection/arrayToDomNodeChildren.js | 0 .../binding/editDetection/compareArrays.js | 0 .../src/binding/expressionRewriting.js | 0 .../knockout/src/binding/selectExtensions.js | 0 .../src/components/componentBinding.js | 0 .../knockout/src/components/customElements.js | 0 .../knockout/src/components/defaultLoader.js | 0 .../knockout/src/components/loaderRegistry.js | 0 .../src/google-closure-compiler-utils.js | 0 .../vendor}/knockout/src/memoization.js | 0 .../vendor}/knockout/src/namespace.js | 0 .../src/subscribables/dependencyDetection.js | 0 .../src/subscribables/dependentObservable.js | 0 .../knockout/src/subscribables/extenders.js | 0 .../src/subscribables/mappingHelpers.js | 0 .../knockout/src/subscribables/observable.js | 0 .../observableArray.changeTracking.js | 0 .../src/subscribables/observableArray.js | 0 .../src/subscribables/subscribable.js | 0 .../jquery.tmpl/jqueryTmplTemplateEngine.js | 0 .../templating/native/nativeTemplateEngine.js | 0 .../knockout/src/templating/templateEngine.js | 0 .../src/templating/templateRewriting.js | 0 .../src/templating/templateSources.js | 0 .../knockout/src/templating/templating.js | 0 .../vendor}/knockout/src/utils.domData.js | 0 .../knockout/src/utils.domManipulation.js | 0 .../knockout/src/utils.domNodeDisposal.js | 0 .../vendor}/knockout/src/utils.js | 0 .../vendor}/knockout/src/version.js | 0 .../vendor}/knockout/src/virtualElements.js | 0 .../vendor}/requirejs/.bower.json | 3 +- .../vendor}/requirejs/README.md | 0 .../vendor}/requirejs/bower.json | 0 .../vendor}/requirejs/require.js | 0 Web/routes/index.js | 1 + Web/views/index.ejs | 1 + 311 files changed, 74 insertions(+), 144 deletions(-) create mode 100644 Web/.bowerrc delete mode 100644 Web/bower_components/knockout/build/fragments/amd-post.js delete mode 100644 Web/bower_components/knockout/build/fragments/amd-pre.js delete mode 100644 Web/bower_components/knockout/build/fragments/extern-post.js delete mode 100644 Web/bower_components/knockout/build/fragments/extern-pre.js delete mode 100644 Web/bower_components/knockout/build/fragments/source-references.js delete mode 100644 Web/bower_components/knockout/build/knockout-raw.js rename Web/{app.js => main.js} (71%) create mode 100644 Web/public/javascripts/externalLib.js rename Web/{bower_components => public}/socket.io/.bower.json (86%) rename Web/{bower_components => public}/socket.io/.gitignore (89%) rename Web/{bower_components => public}/socket.io/.npmignore (100%) rename Web/{bower_components => public}/socket.io/.travis.yml (100%) rename Web/{bower_components => public}/socket.io/History.md (100%) rename Web/{bower_components => public}/socket.io/LICENSE (100%) rename Web/{bower_components => public}/socket.io/Makefile (100%) rename Web/{bower_components => public}/socket.io/Readme.md (100%) rename Web/{bower_components => public}/socket.io/examples/chat/README.md (100%) rename Web/{bower_components => public}/socket.io/examples/chat/index.js (100%) rename Web/{bower_components => public}/socket.io/examples/chat/package.json (100%) rename Web/{bower_components => public}/socket.io/examples/chat/public/index.html (100%) rename Web/{bower_components => public}/socket.io/examples/chat/public/main.js (100%) rename Web/{bower_components => public}/socket.io/examples/chat/public/style.css (100%) rename Web/{bower_components => public}/socket.io/index.js (100%) rename Web/{bower_components => public}/socket.io/lib/client.js (100%) rename Web/{bower_components => public}/socket.io/lib/index.js (100%) rename Web/{bower_components => public}/socket.io/lib/namespace.js (100%) rename Web/{bower_components => public}/socket.io/lib/socket.js (100%) rename Web/{bower_components => public}/socket.io/package.json (100%) rename Web/{bower_components => public}/socket.io/test/fixtures/big.jpg (100%) rename Web/{bower_components => public}/socket.io/test/fixtures/big.json (100%) rename Web/{bower_components => public}/socket.io/test/socket.io.js (100%) rename Web/{bower_components => public}/socket.io/test/support/doge.jpg (100%) rename Web/{bower_components => public/vendor}/bootstrap/.bower.json (95%) rename Web/{bower_components => public/vendor}/bootstrap/Gruntfile.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/LICENSE (100%) rename Web/{bower_components => public/vendor}/bootstrap/README.md (100%) rename Web/{bower_components => public/vendor}/bootstrap/bower.json (100%) rename Web/{bower_components => public/vendor}/bootstrap/dist/css/bootstrap-theme.css (100%) rename Web/{bower_components => public/vendor}/bootstrap/dist/css/bootstrap-theme.css.map (100%) rename Web/{bower_components => public/vendor}/bootstrap/dist/css/bootstrap-theme.min.css (100%) rename Web/{bower_components => public/vendor}/bootstrap/dist/css/bootstrap.css (100%) rename Web/{bower_components => public/vendor}/bootstrap/dist/css/bootstrap.css.map (100%) rename Web/{bower_components => public/vendor}/bootstrap/dist/css/bootstrap.min.css (100%) rename Web/{bower_components => public/vendor}/bootstrap/dist/fonts/glyphicons-halflings-regular.eot (100%) rename Web/{bower_components => public/vendor}/bootstrap/dist/fonts/glyphicons-halflings-regular.svg (100%) rename Web/{bower_components => public/vendor}/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf (100%) rename Web/{bower_components => public/vendor}/bootstrap/dist/fonts/glyphicons-halflings-regular.woff (100%) rename Web/{bower_components => public/vendor}/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 (100%) rename Web/{bower_components => public/vendor}/bootstrap/dist/js/bootstrap.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/dist/js/bootstrap.min.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/dist/js/npm.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/fonts/glyphicons-halflings-regular.eot (100%) rename Web/{bower_components => public/vendor}/bootstrap/fonts/glyphicons-halflings-regular.svg (100%) rename Web/{bower_components => public/vendor}/bootstrap/fonts/glyphicons-halflings-regular.ttf (100%) rename Web/{bower_components => public/vendor}/bootstrap/fonts/glyphicons-halflings-regular.woff (100%) rename Web/{bower_components => public/vendor}/bootstrap/fonts/glyphicons-halflings-regular.woff2 (100%) rename Web/{bower_components => public/vendor}/bootstrap/grunt/.jshintrc (100%) rename Web/{bower_components => public/vendor}/bootstrap/grunt/bs-commonjs-generator.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/grunt/bs-glyphicons-data-generator.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/grunt/bs-lessdoc-parser.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/grunt/bs-raw-files-generator.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/grunt/configBridge.json (100%) rename Web/{bower_components => public/vendor}/bootstrap/grunt/sauce_browsers.yml (100%) rename Web/{bower_components => public/vendor}/bootstrap/js/.jscsrc (100%) rename Web/{bower_components => public/vendor}/bootstrap/js/.jshintrc (100%) rename Web/{bower_components => public/vendor}/bootstrap/js/affix.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/js/alert.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/js/button.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/js/carousel.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/js/collapse.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/js/dropdown.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/js/modal.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/js/popover.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/js/scrollspy.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/js/tab.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/js/tooltip.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/js/transition.js (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/.csscomb.json (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/.csslintrc (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/alerts.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/badges.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/bootstrap.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/breadcrumbs.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/button-groups.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/buttons.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/carousel.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/close.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/code.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/component-animations.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/dropdowns.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/forms.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/glyphicons.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/grid.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/input-groups.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/jumbotron.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/labels.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/list-group.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/media.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/alerts.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/background-variant.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/border-radius.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/buttons.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/center-block.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/clearfix.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/forms.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/gradients.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/grid-framework.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/grid.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/hide-text.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/image.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/labels.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/list-group.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/nav-divider.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/nav-vertical-align.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/opacity.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/pagination.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/panels.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/progress-bar.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/reset-filter.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/resize.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/responsive-visibility.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/size.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/tab-focus.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/table-row.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/text-emphasis.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/text-overflow.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/mixins/vendor-prefixes.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/modals.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/navbar.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/navs.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/normalize.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/pager.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/pagination.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/panels.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/popovers.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/print.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/progress-bars.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/responsive-embed.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/responsive-utilities.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/scaffolding.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/tables.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/theme.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/thumbnails.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/tooltip.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/type.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/utilities.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/variables.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/less/wells.less (100%) rename Web/{bower_components => public/vendor}/bootstrap/package.json (100%) rename Web/{bower_components => public/vendor}/jquery/.bower.json (96%) rename Web/{bower_components => public/vendor}/jquery/MIT-LICENSE.txt (100%) rename Web/{bower_components => public/vendor}/jquery/bower.json (100%) rename Web/{bower_components => public/vendor}/jquery/dist/jquery.js (100%) rename Web/{bower_components => public/vendor}/jquery/dist/jquery.min.js (100%) rename Web/{bower_components => public/vendor}/jquery/dist/jquery.min.map (100%) rename Web/{bower_components => public/vendor}/jquery/src/ajax.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/ajax/jsonp.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/ajax/load.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/ajax/parseJSON.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/ajax/parseXML.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/ajax/script.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/ajax/var/nonce.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/ajax/var/rquery.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/ajax/xhr.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/attributes.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/attributes/attr.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/attributes/classes.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/attributes/prop.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/attributes/support.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/attributes/val.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/callbacks.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/core.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/core/access.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/core/init.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/core/parseHTML.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/core/ready.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/core/var/rsingleTag.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/css.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/css/addGetHookIf.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/css/curCSS.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/css/defaultDisplay.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/css/hiddenVisibleSelectors.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/css/support.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/css/swap.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/css/var/cssExpand.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/css/var/getStyles.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/css/var/isHidden.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/css/var/rmargin.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/css/var/rnumnonpx.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/data.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/data/Data.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/data/accepts.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/data/var/data_priv.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/data/var/data_user.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/deferred.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/deprecated.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/dimensions.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/effects.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/effects/Tween.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/effects/animatedSelector.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/event.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/event/ajax.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/event/alias.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/event/support.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/exports/amd.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/exports/global.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/intro.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/jquery.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/manipulation.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/manipulation/_evalUrl.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/manipulation/support.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/manipulation/var/rcheckableType.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/offset.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/outro.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/queue.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/queue/delay.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/selector-native.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/selector-sizzle.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/selector.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/serialize.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/sizzle/dist/sizzle.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/sizzle/dist/sizzle.min.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/sizzle/dist/sizzle.min.map (100%) rename Web/{bower_components => public/vendor}/jquery/src/traversing.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/traversing/findFilter.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/traversing/var/rneedsContext.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/var/arr.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/var/class2type.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/var/concat.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/var/hasOwn.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/var/indexOf.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/var/pnum.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/var/push.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/var/rnotwhite.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/var/slice.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/var/strundefined.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/var/support.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/var/toString.js (100%) rename Web/{bower_components => public/vendor}/jquery/src/wrap.js (100%) rename Web/{bower_components => public/vendor}/knockout/.bower.json (93%) rename Web/{bower_components => public/vendor}/knockout/Gruntfile.js (100%) rename Web/{bower_components => public/vendor}/knockout/LICENSE (100%) rename Web/{bower_components => public/vendor}/knockout/README.md (100%) rename Web/{bower_components => public/vendor}/knockout/bower.json (100%) rename Web/{bower_components => public/vendor}/knockout/dist/knockout.debug.js (100%) rename Web/{bower_components => public/vendor}/knockout/dist/knockout.js (100%) rename Web/{bower_components => public/vendor}/knockout/package.json (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/bindingAttributeSyntax.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/bindingProvider.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/attr.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/checked.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/click.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/css.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/enableDisable.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/event.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/foreach.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/hasfocus.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/html.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/ifIfnotWith.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/options.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/selectedOptions.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/style.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/submit.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/text.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/textInput.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/uniqueName.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/value.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/defaultBindings/visible.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/editDetection/arrayToDomNodeChildren.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/editDetection/compareArrays.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/expressionRewriting.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/binding/selectExtensions.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/components/componentBinding.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/components/customElements.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/components/defaultLoader.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/components/loaderRegistry.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/google-closure-compiler-utils.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/memoization.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/namespace.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/subscribables/dependencyDetection.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/subscribables/dependentObservable.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/subscribables/extenders.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/subscribables/mappingHelpers.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/subscribables/observable.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/subscribables/observableArray.changeTracking.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/subscribables/observableArray.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/subscribables/subscribable.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/templating/jquery.tmpl/jqueryTmplTemplateEngine.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/templating/native/nativeTemplateEngine.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/templating/templateEngine.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/templating/templateRewriting.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/templating/templateSources.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/templating/templating.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/utils.domData.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/utils.domManipulation.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/utils.domNodeDisposal.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/utils.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/version.js (100%) rename Web/{bower_components => public/vendor}/knockout/src/virtualElements.js (100%) rename Web/{bower_components => public/vendor}/requirejs/.bower.json (90%) rename Web/{bower_components => public/vendor}/requirejs/README.md (100%) rename Web/{bower_components => public/vendor}/requirejs/bower.json (100%) rename Web/{bower_components => public/vendor}/requirejs/require.js (100%) diff --git a/Web/.bowerrc b/Web/.bowerrc new file mode 100644 index 0000000..5cdff74 --- /dev/null +++ b/Web/.bowerrc @@ -0,0 +1,3 @@ +{ + "directory": "public/vendor" +} \ No newline at end of file diff --git a/Web/bin/www b/Web/bin/www index 8f616b6..37298fb 100644 --- a/Web/bin/www +++ b/Web/bin/www @@ -4,7 +4,7 @@ * Module dependencies. */ -var app = require('../app'); +var app = require('../main'); var debug = require('debug')('Web:server'); var http = require('http'); diff --git a/Web/bower.json b/Web/bower.json index 67b752a..f77207a 100644 --- a/Web/bower.json +++ b/Web/bower.json @@ -10,7 +10,6 @@ "ignore": [ "**/.*", "node_modules", - "bower_components", "test", "tests" ], @@ -18,7 +17,6 @@ "requirejs": "~2.1.16", "bootstrap": "~3.3.2", "knockout": "~3.3.0", - "jquery": "~2.1.3", - "socket.io": "~1.3.5" + "jquery": "~2.1.3" } } diff --git a/Web/bower_components/knockout/build/fragments/amd-post.js b/Web/bower_components/knockout/build/fragments/amd-post.js deleted file mode 100644 index be4600a..0000000 --- a/Web/bower_components/knockout/build/fragments/amd-post.js +++ /dev/null @@ -1 +0,0 @@ -})); diff --git a/Web/bower_components/knockout/build/fragments/amd-pre.js b/Web/bower_components/knockout/build/fragments/amd-pre.js deleted file mode 100644 index fb42ab7..0000000 --- a/Web/bower_components/knockout/build/fragments/amd-pre.js +++ /dev/null @@ -1,13 +0,0 @@ -(function(factory) { - // Support three module loading scenarios - if (typeof define === 'function' && define['amd']) { - // [1] AMD anonymous module - define(['exports', 'require'], factory); - } else if (typeof require === 'function' && typeof exports === 'object' && typeof module === 'object') { - // [2] CommonJS/Node.js - factory(module['exports'] || exports); // module.exports is for Node.js - } else { - // [3] No module loader (plain "); - }; - - var buildFolderPath = getPathToScriptTagSrc(debugFileName); - window.knockoutDebugCallback = function (scriptUrls) { - for (var i = 0; i < scriptUrls.length; i++) - referenceScript(buildFolderPath + scriptUrls[i]); - }; - referenceScript(buildFolderPath + sourcesReferenceFile); -})(); diff --git a/Web/gulpfile.js b/Web/gulpfile.js index 9d24ff5..9758a68 100644 --- a/Web/gulpfile.js +++ b/Web/gulpfile.js @@ -1,6 +1,7 @@ var gulp = require('gulp'), tsc = require('gulp-tsc'), seq = require('run-sequence'), + //mainBowerFiles = require('main-bower-files'), del = require('del'); var paths = { @@ -12,6 +13,26 @@ var paths = { } }; +var plugins = require("gulp-load-plugins")({ + pattern: ['gulp-*', 'gulp.*', 'main-bower-files'], + replaceString: /\bgulp[\-.]/ +}); + +gulp.task('buildExternalLib', function () { + gulp.src(plugins.mainBowerFiles()) + .pipe(plugins.filter('*.js')) + .pipe(plugins.concat('externalLib.js')) + .pipe(plugins.uglify()) + .pipe(gulp.dest(paths.ts.dest)); +}); + +gulp.task('zip', function () { + var appFiles = ['views/**/*','public/**/*','routes/**/*', 'bin/**/*', 'app.js', 'package.json']; + return gulp.src(appFiles, {base: "."}) + .pipe(plugins.zip('vineCache.zip')) + .pipe(gulp.dest('deployment')); +}); + // Default gulp.task('default', ['build']); @@ -32,9 +53,14 @@ gulp.task('build', function () { .pipe(gulp.dest(paths.ts.dest)); }); +// Rebuild - Clean & Build +gulp.task('deploy', function (cb) { + seq('rebuild', 'zip', cb); +}); + // Rebuild - Clean & Build gulp.task('rebuild', function (cb) { - seq('clean', 'build', cb); + seq('clean', 'build', 'buildExternalLib', cb); }); // Watch diff --git a/Web/app.js b/Web/main.js similarity index 71% rename from Web/app.js rename to Web/main.js index 9b916a7..96fa8b4 100644 --- a/Web/app.js +++ b/Web/main.js @@ -1,4 +1,4 @@ -var express = require('express'); +var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); @@ -10,6 +10,7 @@ var users = require('./routes/users'); var app = express(); + // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); @@ -26,10 +27,10 @@ app.use('/', routes); app.use('/users', users); // catch 404 and forward to error handler -app.use(function(req, res, next) { - var err = new Error('Not Found'); - err.status = 404; - next(err); +app.use(function (req, res, next) { + var err = new Error('Not Found'); + err.status = 404; + next(err); }); // error handlers @@ -37,23 +38,23 @@ app.use(function(req, res, next) { // development error handler // will print stacktrace if (app.get('env') === 'development') { - app.use(function(err, req, res, next) { - res.status(err.status || 500); - res.render('error', { - message: err.message, - error: err + app.use(function (err, req, res, next) { + res.status(err.status || 500); + res.render('error', { + message: err.message, + error: err + }); }); - }); } // production error handler // no stacktraces leaked to user -app.use(function(err, req, res, next) { - res.status(err.status || 500); - res.render('error', { - message: err.message, - error: {} - }); +app.use(function (err, req, res, next) { + res.status(err.status || 500); + res.render('error', { + message: err.message, + error: {} + }); }); diff --git a/Web/package.json b/Web/package.json index b809893..60a4f01 100644 --- a/Web/package.json +++ b/Web/package.json @@ -12,15 +12,24 @@ "ejs": "~2.3.1", "express": "~4.12.2", "morgan": "~1.5.1", - "serve-favicon": "~2.2.0" + "serve-favicon": "~2.2.0", + "socket.io": "^1.3.5" }, "devDependencies": { "bower": "^1.3.12", + "concat": "^1.0.0", "del": "^1.1.1", + "filter": "^0.1.1", "gulp": "^3.8.11", + "gulp-concat": "^2.5.2", + "gulp-filter": "^2.0.2", + "gulp-load-plugins": "^0.8.1", "gulp-onejs-build": "^2.0.3", "gulp-tsc": "^0.9.2", + "gulp-uglify": "^1.1.0", "gulp-util": "^3.0.4", + "gulp-zip": "^2.0.3", + "main-bower-files": "^2.5.0", "run-sequence": "^1.0.2", "typescript": "^1.4.1" } diff --git a/Web/public/javascripts/externalLib.js b/Web/public/javascripts/externalLib.js new file mode 100644 index 0000000..77a6973 --- /dev/null +++ b/Web/public/javascripts/externalLib.js @@ -0,0 +1,6 @@ +var requirejs,require,define;if(function(global){function isFunction(e){return"[object Function]"===ostring.call(e)}function isArray(e){return"[object Array]"===ostring.call(e)}function each(e,t){if(e){var n;for(n=0;n-1&&(!e[n]||!t(e[n],n,e));n-=1);}}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var n;for(n in e)if(hasProp(e,n)&&t(e[n],n))break}function mixin(e,t,n,i){return t&&eachProp(t,function(t,r){(n||!hasProp(e,r))&&(!i||"object"!=typeof t||!t||isArray(t)||isFunction(t)||t instanceof RegExp?e[r]=t:(e[r]||(e[r]={}),mixin(e[r],t,n,i)))}),e}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=global;return each(e.split("."),function(e){t=t[e]}),t}function makeError(e,t,n,i){var r=new Error(t+"\nhttp://requirejs.org/docs/errors.html#"+e);return r.requireType=e,r.requireModules=i,n&&(r.originalError=n),r}function newContext(e){function t(e){var t,n;for(t=0;t0&&(e.splice(t-1,2),t-=2)}}function n(e,n,i){var r,o,a,s,u,l,c,f,p,d,h,g,m=n&&n.split("/"),v=C.map,y=v&&v["*"];if(e&&(e=e.split("/"),c=e.length-1,C.nodeIdCompat&&jsSuffixRegExp.test(e[c])&&(e[c]=e[c].replace(jsSuffixRegExp,"")),"."===e[0].charAt(0)&&m&&(g=m.slice(0,m.length-1),e=g.concat(e)),t(e),e=e.join("/")),i&&v&&(m||y)){a=e.split("/");e:for(s=a.length;s>0;s-=1){if(l=a.slice(0,s).join("/"),m)for(u=m.length;u>0;u-=1)if(o=getOwn(v,m.slice(0,u).join("/")),o&&(o=getOwn(o,l))){f=o,p=s;break e}!d&&y&&getOwn(y,l)&&(d=getOwn(y,l),h=s)}!f&&d&&(f=d,p=h),f&&(a.splice(0,p,f),e=a.join("/"))}return r=getOwn(C.pkgs,e),r?r:e}function i(e){isBrowser&&each(scripts(),function(t){return t.getAttribute("data-requiremodule")===e&&t.getAttribute("data-requirecontext")===x.contextName?(t.parentNode.removeChild(t),!0):void 0})}function r(e){var t=getOwn(C.paths,e);return t&&isArray(t)&&t.length>1?(t.shift(),x.require.undef(e),x.makeRequire(null,{skipMap:!0})([e]),!0):void 0}function o(e){var t,n=e?e.indexOf("!"):-1;return n>-1&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function a(e,t,i,r){var a,s,u,l,c=null,f=t?t.name:null,p=e,d=!0,h="";return e||(d=!1,e="_@r"+(j+=1)),l=o(e),c=l[0],e=l[1],c&&(c=n(c,f,r),s=getOwn(D,c)),e&&(c?h=s&&s.normalize?s.normalize(e,function(e){return n(e,f,r)}):-1===e.indexOf("!")?n(e,f,r):e:(h=n(e,f,r),l=o(h),c=l[0],h=l[1],i=!0,a=x.nameToUrl(h))),u=!c||s||i?"":"_unnormalized"+(O+=1),{prefix:c,name:h,parentMap:t,unnormalized:!!u,url:a,originalName:p,isDefine:d,id:(c?c+"!"+h:h)+u}}function s(e){var t=e.id,n=getOwn(E,t);return n||(n=E[t]=new x.Module(e)),n}function u(e,t,n){var i=e.id,r=getOwn(E,i);!hasProp(D,i)||r&&!r.defineEmitComplete?(r=s(e),r.error&&"error"===t?n(r.error):r.on(t,n)):"defined"===t&&n(D[i])}function l(e,t){var n=e.requireModules,i=!1;t?t(e):(each(n,function(t){var n=getOwn(E,t);n&&(n.error=e,n.events.error&&(i=!0,n.emit("error",e)))}),i||req.onError(e))}function c(){globalDefQueue.length&&(apsp.apply(N,[N.length,0].concat(globalDefQueue)),globalDefQueue=[])}function f(e){delete E[e],delete k[e]}function p(e,t,n){var i=e.map.id;e.error?e.emit("error",e.error):(t[i]=!0,each(e.depMaps,function(i,r){var o=i.id,a=getOwn(E,o);!a||e.depMatched[r]||n[o]||(getOwn(t,o)?(e.defineDep(r,D[o]),e.check()):p(a,t,n))}),n[i]=!0)}function d(){var e,t,n=1e3*C.waitSeconds,o=n&&x.startTime+n<(new Date).getTime(),a=[],s=[],u=!1,c=!0;if(!y){if(y=!0,eachProp(k,function(e){var n=e.map,l=n.id;if(e.enabled&&(n.isDefine||s.push(e),!e.error))if(!e.inited&&o)r(l)?(t=!0,u=!0):(a.push(l),i(l));else if(!e.inited&&e.fetched&&n.isDefine&&(u=!0,!n.prefix))return c=!1}),o&&a.length)return e=makeError("timeout","Load timeout for modules: "+a,null,a),e.contextName=x.contextName,l(e);c&&each(s,function(e){p(e,{},{})}),o&&!t||!u||!isBrowser&&!isWebWorker||T||(T=setTimeout(function(){T=0,d()},50)),y=!1}}function h(e){hasProp(D,e[0])||s(a(e[0],null,!0)).init(e[1],e[2])}function g(e,t,n,i){e.detachEvent&&!isOpera?i&&e.detachEvent(i,t):e.removeEventListener(n,t,!1)}function m(e){var t=e.currentTarget||e.srcElement;return g(t,x.onScriptLoad,"load","onreadystatechange"),g(t,x.onScriptError,"error"),{node:t,id:t&&t.getAttribute("data-requiremodule")}}function v(){var e;for(c();N.length;){if(e=N.shift(),null===e[0])return l(makeError("mismatch","Mismatched anonymous define() module: "+e[e.length-1]));h(e)}}var y,b,x,w,T,C={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},E={},k={},S={},N=[],D={},$={},A={},j=1,O=1;return w={require:function(e){return e.require?e.require:e.require=x.makeRequire(e.map)},exports:function(e){return e.usingExports=!0,e.map.isDefine?e.exports?D[e.map.id]=e.exports:e.exports=D[e.map.id]={}:void 0},module:function(e){return e.module?e.module:e.module={id:e.map.id,uri:e.map.url,config:function(){return getOwn(C.config,e.map.id)||{}},exports:e.exports||(e.exports={})}}},b=function(e){this.events=getOwn(S,e.id)||{},this.map=e,this.shim=getOwn(C.shim,e.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},b.prototype={init:function(e,t,n,i){i=i||{},this.inited||(this.factory=t,n?this.on("error",n):this.events.error&&(n=bind(this,function(e){this.emit("error",e)})),this.depMaps=e&&e.slice(0),this.errback=n,this.inited=!0,this.ignore=i.ignore,i.enabled||this.enabled?this.enable():this.check())},defineDep:function(e,t){this.depMatched[e]||(this.depMatched[e]=!0,this.depCount-=1,this.depExports[e]=t)},fetch:function(){if(!this.fetched){this.fetched=!0,x.startTime=(new Date).getTime();var e=this.map;return this.shim?void x.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return e.prefix?this.callPlugin():this.load()})):e.prefix?this.callPlugin():this.load()}},load:function(){var e=this.map.url;$[e]||($[e]=!0,x.load(this.map.id,e))},check:function(){if(this.enabled&&!this.enabling){var e,t,n=this.map.id,i=this.depExports,r=this.exports,o=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(o)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{r=x.execCb(n,o,i,r)}catch(a){e=a}else r=x.execCb(n,o,i,r);if(this.map.isDefine&&void 0===r&&(t=this.module,t?r=t.exports:this.usingExports&&(r=this.exports)),e)return e.requireMap=this.map,e.requireModules=this.map.isDefine?[this.map.id]:null,e.requireType=this.map.isDefine?"define":"require",l(this.error=e)}else r=o;this.exports=r,this.map.isDefine&&!this.ignore&&(D[n]=r,req.onResourceLoad&&req.onResourceLoad(x,this.map,this.depMaps)),f(n),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var e=this.map,t=e.id,i=a(e.prefix);this.depMaps.push(i),u(i,"defined",bind(this,function(i){var r,o,c,p=getOwn(A,this.map.id),d=this.map.name,h=this.map.parentMap?this.map.parentMap.name:null,g=x.makeRequire(e.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(i.normalize&&(d=i.normalize(d,function(e){return n(e,h,!0)})||""),o=a(e.prefix+"!"+d,this.map.parentMap),u(o,"defined",bind(this,function(e){this.init([],function(){return e},null,{enabled:!0,ignore:!0})})),c=getOwn(E,o.id),void(c&&(this.depMaps.push(o),this.events.error&&c.on("error",bind(this,function(e){this.emit("error",e)})),c.enable()))):p?(this.map.url=x.nameToUrl(p),void this.load()):(r=bind(this,function(e){this.init([],function(){return e},null,{enabled:!0})}),r.error=bind(this,function(e){this.inited=!0,this.error=e,e.requireModules=[t],eachProp(E,function(e){0===e.map.id.indexOf(t+"_unnormalized")&&f(e.map.id)}),l(e)}),r.fromText=bind(this,function(n,i){var o=e.name,u=a(o),c=useInteractive;i&&(n=i),c&&(useInteractive=!1),s(u),hasProp(C.config,t)&&(C.config[o]=C.config[t]);try{req.exec(n)}catch(f){return l(makeError("fromtexteval","fromText eval for "+t+" failed: "+f,f,[t]))}c&&(useInteractive=!0),this.depMaps.push(u),x.completeLoad(o),g([o],r)}),void i.load(e.name,g,r,C))})),x.enable(i,this),this.pluginMaps[i.id]=i},enable:function(){k[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(e,t){var n,i,r;if("string"==typeof e){if(e=a(e,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[t]=e,r=getOwn(w,e.id))return void(this.depExports[t]=r(this));this.depCount+=1,u(e,"defined",bind(this,function(e){this.defineDep(t,e),this.check()})),this.errback?u(e,"error",bind(this,this.errback)):this.events.error&&u(e,"error",bind(this,function(e){this.emit("error",e)}))}n=e.id,i=E[n],hasProp(w,n)||!i||i.enabled||x.enable(e,this)})),eachProp(this.pluginMaps,bind(this,function(e){var t=getOwn(E,e.id);t&&!t.enabled&&x.enable(e,this)})),this.enabling=!1,this.check()},on:function(e,t){var n=this.events[e];n||(n=this.events[e]=[]),n.push(t)},emit:function(e,t){each(this.events[e],function(e){e(t)}),"error"===e&&delete this.events[e]}},x={config:C,contextName:e,registry:E,defined:D,urlFetched:$,defQueue:N,Module:b,makeModuleMap:a,nextTick:req.nextTick,onError:l,configure:function(e){e.baseUrl&&"/"!==e.baseUrl.charAt(e.baseUrl.length-1)&&(e.baseUrl+="/");var t=C.shim,n={paths:!0,bundles:!0,config:!0,map:!0};eachProp(e,function(e,t){n[t]?(C[t]||(C[t]={}),mixin(C[t],e,!0,!0)):C[t]=e}),e.bundles&&eachProp(e.bundles,function(e,t){each(e,function(e){e!==t&&(A[e]=t)})}),e.shim&&(eachProp(e.shim,function(e,n){isArray(e)&&(e={deps:e}),!e.exports&&!e.init||e.exportsFn||(e.exportsFn=x.makeShimExports(e)),t[n]=e}),C.shim=t),e.packages&&each(e.packages,function(e){var t,n;e="string"==typeof e?{name:e}:e,n=e.name,t=e.location,t&&(C.paths[n]=e.location),C.pkgs[n]=e.name+"/"+(e.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(E,function(e,t){e.inited||e.map.unnormalized||(e.map=a(t))}),(e.deps||e.callback)&&x.require(e.deps||[],e.callback)},makeShimExports:function(e){function t(){var t;return e.init&&(t=e.init.apply(global,arguments)),t||e.exports&&getGlobal(e.exports)}return t},makeRequire:function(t,r){function o(n,i,u){var c,f,p;return r.enableBuildCallback&&i&&isFunction(i)&&(i.__requireJsBuild=!0),"string"==typeof n?isFunction(i)?l(makeError("requireargs","Invalid require call"),u):t&&hasProp(w,n)?w[n](E[t.id]):req.get?req.get(x,n,t,o):(f=a(n,t,!1,!0),c=f.id,hasProp(D,c)?D[c]:l(makeError("notloaded",'Module name "'+c+'" has not been loaded yet for context: '+e+(t?"":". Use require([])")))):(v(),x.nextTick(function(){v(),p=s(a(null,t)),p.skipMap=r.skipMap,p.init(n,i,u,{enabled:!0}),d()}),o)}return r=r||{},mixin(o,{isBrowser:isBrowser,toUrl:function(e){var i,r=e.lastIndexOf("."),o=e.split("/")[0],a="."===o||".."===o;return-1!==r&&(!a||r>1)&&(i=e.substring(r,e.length),e=e.substring(0,r)),x.nameToUrl(n(e,t&&t.id,!0),i,!0)},defined:function(e){return hasProp(D,a(e,t,!1,!0).id)},specified:function(e){return e=a(e,t,!1,!0).id,hasProp(D,e)||hasProp(E,e)}}),t||(o.undef=function(e){c();var n=a(e,t,!0),r=getOwn(E,e);i(e),delete D[e],delete $[n.url],delete S[e],eachReverse(N,function(t,n){t[0]===e&&N.splice(n,1)}),r&&(r.events.defined&&(S[e]=r.events),f(e))}),o},enable:function(e){var t=getOwn(E,e.id);t&&s(e).enable()},completeLoad:function(e){var t,n,i,o=getOwn(C.shim,e)||{},a=o.exports;for(c();N.length;){if(n=N.shift(),null===n[0]){if(n[0]=e,t)break;t=!0}else n[0]===e&&(t=!0);h(n)}if(i=getOwn(E,e),!t&&!hasProp(D,e)&&i&&!i.inited){if(!(!C.enforceDefine||a&&getGlobal(a)))return r(e)?void 0:l(makeError("nodefine","No define call for "+e,null,[e]));h([e,o.deps||[],o.exportsFn])}d()},nameToUrl:function(e,t,n){var i,r,o,a,s,u,l,c=getOwn(C.pkgs,e);if(c&&(e=c),l=getOwn(A,e))return x.nameToUrl(l,t,n);if(req.jsExtRegExp.test(e))s=e+(t||"");else{for(i=C.paths,r=e.split("/"),o=r.length;o>0;o-=1)if(a=r.slice(0,o).join("/"),u=getOwn(i,a)){isArray(u)&&(u=u[0]),r.splice(0,o,u);break}s=r.join("/"),s+=t||(/^data\:|\?/.test(s)||n?"":".js"),s=("/"===s.charAt(0)||s.match(/^[\w\+\.\-]+:/)?"":C.baseUrl)+s}return C.urlArgs?s+((-1===s.indexOf("?")?"?":"&")+C.urlArgs):s},load:function(e,t){req.load(x,e,t)},execCb:function(e,t,n,i){return t.apply(i,n)},onScriptLoad:function(e){if("load"===e.type||readyRegExp.test((e.currentTarget||e.srcElement).readyState)){interactiveScript=null;var t=m(e);x.completeLoad(t.id)}},onScriptError:function(e){var t=m(e);return r(t.id)?void 0:l(makeError("scripterror","Script error for: "+t.id,e,[t.id]))}},x.require=x.makeRequire(),x}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState?interactiveScript:(eachReverse(scripts(),function(e){return"interactive"===e.readyState?interactiveScript=e:void 0}),interactiveScript)}var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.1.16",commentRegExp=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,ap=Array.prototype,apsp=ap.splice,isBrowser=!("undefined"==typeof window||"undefined"==typeof navigator||!window.document),isWebWorker=!isBrowser&&"undefined"!=typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;if("undefined"==typeof define){if("undefined"!=typeof requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}"undefined"==typeof require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(e,t,n,i){var r,o,a=defContextName;return isArray(e)||"string"==typeof e||(o=e,isArray(t)?(e=t,t=n,n=i):e=[]),o&&o.context&&(a=o.context),r=getOwn(contexts,a),r||(r=contexts[a]=req.s.newContext(a)),o&&r.configure(o),r.require(e,t,n)},req.config=function(e){return req(e)},req.nextTick="undefined"!=typeof setTimeout?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(e){req[e]=function(){var t=contexts[defContextName];return t.require[e].apply(t,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e){var t=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return t.type=e.scriptType||"text/javascript",t.charset="utf-8",t.async=!0,t},req.load=function(e,t,n){var i,r=e&&e.config||{};if(isBrowser)return i=req.createNode(r,t,n),i.setAttribute("data-requirecontext",e.contextName),i.setAttribute("data-requiremodule",t),!i.attachEvent||i.attachEvent.toString&&i.attachEvent.toString().indexOf("[native code")<0||isOpera?(i.addEventListener("load",e.onScriptLoad,!1),i.addEventListener("error",e.onScriptError,!1)):(useInteractive=!0,i.attachEvent("onreadystatechange",e.onScriptLoad)),i.src=n,currentlyAddingScript=i,baseElement?head.insertBefore(i,baseElement):head.appendChild(i),currentlyAddingScript=null,i;if(isWebWorker)try{importScripts(n),e.completeLoad(t)}catch(o){e.onError(makeError("importscripts","importScripts failed for "+t+" at "+n,o,[t]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){return head||(head=e.parentNode),dataMain=e.getAttribute("data-main"),dataMain?(mainScript=dataMain,cfg.baseUrl||(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0):void 0}),define=function(e,t,n){var i,r;"string"!=typeof e&&(n=t,t=e,e=null),isArray(t)||(n=t,t=null),!t&&isFunction(n)&&(t=[],n.length&&(n.toString().replace(commentRegExp,"").replace(cjsRequireRegExp,function(e,n){t.push(n)}),t=(1===n.length?["require"]:["require","exports","module"]).concat(t))),useInteractive&&(i=currentlyAddingScript||getInteractiveScript(),i&&(e||(e=i.getAttribute("data-requiremodule")),r=contexts[i.getAttribute("data-requirecontext")])),(r?r.defQueue:globalDefQueue).push([e,t,n])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}}(this),function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=e.length,n=Z.type(e);return"function"===n||Z.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function i(e,t,n){if(Z.isFunction(t))return Z.grep(e,function(e,i){return!!t.call(e,i,e)!==n});if(t.nodeType)return Z.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return Z.filter(t,e,n);t=Z.filter(t,e)}return Z.grep(e,function(e){return V.call(t,e)>=0!==n})}function r(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function o(e){var t=ht[e]={};return Z.each(e.match(dt)||[],function(e,n){t[n]=!0}),t}function a(){Y.removeEventListener("DOMContentLoaded",a,!1),e.removeEventListener("load",a,!1),Z.ready()}function s(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=Z.expando+s.uid++}function u(e,t,n){var i;if(void 0===n&&1===e.nodeType)if(i="data-"+t.replace(xt,"-$1").toLowerCase(),n=e.getAttribute(i),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:bt.test(n)?Z.parseJSON(n):n}catch(r){}yt.set(e,t,n)}else n=void 0;return n}function l(){return!0}function c(){return!1}function f(){try{return Y.activeElement}catch(e){}}function p(e,t){return Z.nodeName(e,"table")&&Z.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function d(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function h(e){var t=Lt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function g(e,t){for(var n=0,i=e.length;i>n;n++)vt.set(e[n],"globalEval",!t||vt.get(t[n],"globalEval"))}function m(e,t){var n,i,r,o,a,s,u,l;if(1===t.nodeType){if(vt.hasData(e)&&(o=vt.access(e),a=vt.set(t,o),l=o.events)){delete a.handle,a.events={};for(r in l)for(n=0,i=l[r].length;i>n;n++)Z.event.add(t,r,l[r][n])}yt.hasData(e)&&(s=yt.access(e),u=Z.extend({},s),yt.set(t,u))}}function v(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&Z.nodeName(e,t)?Z.merge([e],n):n}function y(e,t){var n=t.nodeName.toLowerCase();"input"===n&&Et.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}function b(t,n){var i,r=Z(n.createElement(t)).appendTo(n.body),o=e.getDefaultComputedStyle&&(i=e.getDefaultComputedStyle(r[0]))?i.display:Z.css(r[0],"display");return r.detach(),o}function x(e){var t=Y,n=Bt[e];return n||(n=b(e,t),"none"!==n&&n||(_t=(_t||Z("