├── .gitignore ├── .nvmrc ├── Procfile ├── README.md ├── bin └── www ├── bower.json ├── bower_components ├── abecedary │ ├── .bower.json │ ├── .gitignore │ ├── Gruntfile.js │ ├── bower.json │ ├── build │ │ └── build.js │ ├── component.json │ ├── dist │ │ ├── abecedary.js │ │ ├── iframe.html │ │ ├── reporter.js │ │ └── vendor.js │ ├── example │ │ ├── Makefile │ │ ├── build │ │ │ ├── build.css │ │ │ ├── build.js │ │ │ └── demos │ │ │ │ ├── javascript-logging.js │ │ │ │ └── javascript.js │ │ ├── component.json │ │ ├── index.html │ │ └── lib │ │ │ ├── boot │ │ │ ├── component.json │ │ │ ├── index.css │ │ │ └── index.js │ │ │ ├── javascript-logging │ │ │ ├── Gruntfile.js │ │ │ ├── answer.html │ │ │ ├── answer.js │ │ │ ├── code.html │ │ │ ├── code.js │ │ │ ├── component.json │ │ │ ├── iframe.html │ │ │ ├── iframe.js │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ ├── tests.html │ │ │ └── tests.js │ │ │ └── javascript │ │ │ ├── Gruntfile.js │ │ │ ├── answer.html │ │ │ ├── answer.js │ │ │ ├── code.html │ │ │ ├── code.js │ │ │ ├── component.json │ │ │ ├── iframe.html │ │ │ ├── iframe.js │ │ │ ├── index.html │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ ├── tests.html │ │ │ └── tests.js │ ├── index.html │ ├── index.js │ ├── lib │ │ ├── component.js │ │ ├── runner.js │ │ └── test.js │ ├── package.json │ ├── readme.md │ └── test │ │ ├── test.html │ │ └── test.js ├── angular-animate │ ├── .bower.json │ ├── README.md │ ├── angular-animate.js │ ├── angular-animate.min.js │ ├── angular-animate.min.js.map │ ├── bower.json │ ├── index.js │ └── package.json ├── angular-cookies │ ├── .bower.json │ ├── README.md │ ├── angular-cookies.js │ ├── angular-cookies.min.js │ ├── angular-cookies.min.js.map │ ├── bower.json │ ├── index.js │ └── package.json ├── angular-resource │ ├── .bower.json │ ├── README.md │ ├── angular-resource.js │ ├── angular-resource.min.js │ ├── angular-resource.min.js.map │ ├── bower.json │ ├── index.js │ └── package.json ├── angular │ ├── .bower.json │ ├── README.md │ ├── angular-csp.css │ ├── angular.js │ ├── angular.min.js │ ├── angular.min.js.gzip │ ├── angular.min.js.map │ ├── bower.json │ ├── index.js │ └── package.json ├── autosize │ ├── .bower.json │ ├── .gitignore │ ├── bower.json │ ├── build.js │ ├── changelog.md │ ├── dist │ │ ├── autosize.js │ │ └── autosize.min.js │ ├── example │ │ └── index.html │ ├── package.json │ ├── readme.md │ └── src │ │ └── autosize.js ├── bootstrap │ ├── .bower.json │ ├── Gruntfile.js │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── dist │ │ ├── css │ │ │ ├── bootstrap-theme.css │ │ │ ├── bootstrap-theme.css.map │ │ │ ├── bootstrap-theme.min.css │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.css.map │ │ │ └── bootstrap.min.css │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ └── js │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.min.js │ │ │ └── npm.js │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ ├── grunt │ │ ├── .jshintrc │ │ ├── bs-commonjs-generator.js │ │ ├── bs-glyphicons-data-generator.js │ │ ├── bs-lessdoc-parser.js │ │ ├── bs-raw-files-generator.js │ │ ├── configBridge.json │ │ └── sauce_browsers.yml │ ├── js │ │ ├── .jscsrc │ │ ├── .jshintrc │ │ ├── affix.js │ │ ├── alert.js │ │ ├── button.js │ │ ├── carousel.js │ │ ├── collapse.js │ │ ├── dropdown.js │ │ ├── modal.js │ │ ├── popover.js │ │ ├── scrollspy.js │ │ ├── tab.js │ │ ├── tooltip.js │ │ └── transition.js │ ├── less │ │ ├── .csscomb.json │ │ ├── .csslintrc │ │ ├── alerts.less │ │ ├── badges.less │ │ ├── bootstrap.less │ │ ├── breadcrumbs.less │ │ ├── button-groups.less │ │ ├── buttons.less │ │ ├── carousel.less │ │ ├── close.less │ │ ├── code.less │ │ ├── component-animations.less │ │ ├── dropdowns.less │ │ ├── forms.less │ │ ├── glyphicons.less │ │ ├── grid.less │ │ ├── input-groups.less │ │ ├── jumbotron.less │ │ ├── labels.less │ │ ├── list-group.less │ │ ├── media.less │ │ ├── mixins.less │ │ ├── mixins │ │ │ ├── alerts.less │ │ │ ├── background-variant.less │ │ │ ├── border-radius.less │ │ │ ├── buttons.less │ │ │ ├── center-block.less │ │ │ ├── clearfix.less │ │ │ ├── forms.less │ │ │ ├── gradients.less │ │ │ ├── grid-framework.less │ │ │ ├── grid.less │ │ │ ├── hide-text.less │ │ │ ├── image.less │ │ │ ├── labels.less │ │ │ ├── list-group.less │ │ │ ├── nav-divider.less │ │ │ ├── nav-vertical-align.less │ │ │ ├── opacity.less │ │ │ ├── pagination.less │ │ │ ├── panels.less │ │ │ ├── progress-bar.less │ │ │ ├── reset-filter.less │ │ │ ├── resize.less │ │ │ ├── responsive-visibility.less │ │ │ ├── size.less │ │ │ ├── tab-focus.less │ │ │ ├── table-row.less │ │ │ ├── text-emphasis.less │ │ │ ├── text-overflow.less │ │ │ └── vendor-prefixes.less │ │ ├── modals.less │ │ ├── navbar.less │ │ ├── navs.less │ │ ├── normalize.less │ │ ├── pager.less │ │ ├── pagination.less │ │ ├── panels.less │ │ ├── popovers.less │ │ ├── print.less │ │ ├── progress-bars.less │ │ ├── responsive-embed.less │ │ ├── responsive-utilities.less │ │ ├── scaffolding.less │ │ ├── tables.less │ │ ├── theme.less │ │ ├── thumbnails.less │ │ ├── tooltip.less │ │ ├── type.less │ │ ├── utilities.less │ │ ├── variables.less │ │ └── wells.less │ ├── package.js │ └── package.json ├── codemirror │ ├── .bower.json │ ├── AUTHORS │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── README.md │ ├── addon │ │ ├── comment │ │ │ ├── comment.js │ │ │ └── continuecomment.js │ │ ├── dialog │ │ │ ├── dialog.css │ │ │ └── dialog.js │ │ ├── display │ │ │ ├── fullscreen.css │ │ │ ├── fullscreen.js │ │ │ └── placeholder.js │ │ ├── edit │ │ │ ├── closebrackets.js │ │ │ ├── closetag.js │ │ │ ├── continuelist.js │ │ │ ├── matchbrackets.js │ │ │ ├── matchtags.js │ │ │ └── trailingspace.js │ │ ├── fold │ │ │ ├── brace-fold.js │ │ │ ├── comment-fold.js │ │ │ ├── foldcode.js │ │ │ ├── foldgutter.js │ │ │ ├── indent-fold.js │ │ │ └── xml-fold.js │ │ ├── hint │ │ │ ├── anyword-hint.js │ │ │ ├── html-hint.js │ │ │ ├── javascript-hint.js │ │ │ ├── pig-hint.js │ │ │ ├── python-hint.js │ │ │ ├── show-hint.css │ │ │ ├── show-hint.js │ │ │ └── xml-hint.js │ │ ├── lint │ │ │ ├── coffeescript-lint.js │ │ │ ├── javascript-lint.js │ │ │ ├── json-lint.js │ │ │ ├── lint.css │ │ │ └── lint.js │ │ ├── merge │ │ │ ├── dep │ │ │ │ └── diff_match_patch.js │ │ │ ├── merge.css │ │ │ └── merge.js │ │ ├── mode │ │ │ ├── loadmode.js │ │ │ ├── multiplex.js │ │ │ ├── multiplex_test.js │ │ │ └── overlay.js │ │ ├── runmode │ │ │ ├── colorize.js │ │ │ ├── runmode-standalone.js │ │ │ ├── runmode.js │ │ │ └── runmode.node.js │ │ ├── scroll │ │ │ └── scrollpastend.js │ │ ├── search │ │ │ ├── match-highlighter.js │ │ │ ├── search.js │ │ │ └── searchcursor.js │ │ ├── selection │ │ │ ├── active-line.js │ │ │ └── mark-selection.js │ │ └── tern │ │ │ ├── tern.css │ │ │ ├── tern.js │ │ │ └── worker.js │ ├── bower.json │ ├── keymap │ │ ├── emacs.js │ │ ├── extra.js │ │ └── vim.js │ ├── lib │ │ ├── codemirror.css │ │ └── codemirror.js │ ├── mode │ │ ├── apl │ │ │ └── apl.js │ │ ├── asterisk │ │ │ └── asterisk.js │ │ ├── clike │ │ │ ├── clike.js │ │ │ └── scala.html │ │ ├── clojure │ │ │ └── clojure.js │ │ ├── cobol │ │ │ └── cobol.js │ │ ├── coffeescript │ │ │ └── coffeescript.js │ │ ├── commonlisp │ │ │ └── commonlisp.js │ │ ├── css │ │ │ ├── css.js │ │ │ ├── scss.html │ │ │ ├── scss_test.js │ │ │ └── test.js │ │ ├── d │ │ │ └── d.js │ │ ├── diff │ │ │ └── diff.js │ │ ├── ecl │ │ │ └── ecl.js │ │ ├── erlang │ │ │ └── erlang.js │ │ ├── gas │ │ │ └── gas.js │ │ ├── gfm │ │ │ ├── gfm.js │ │ │ └── test.js │ │ ├── go │ │ │ └── go.js │ │ ├── groovy │ │ │ └── groovy.js │ │ ├── haml │ │ │ ├── haml.js │ │ │ └── test.js │ │ ├── haskell │ │ │ └── haskell.js │ │ ├── haxe │ │ │ └── haxe.js │ │ ├── htmlembedded │ │ │ └── htmlembedded.js │ │ ├── htmlmixed │ │ │ └── htmlmixed.js │ │ ├── http │ │ │ └── http.js │ │ ├── jade │ │ │ └── jade.js │ │ ├── javascript │ │ │ ├── javascript.js │ │ │ ├── test.js │ │ │ └── typescript.html │ │ ├── jinja2 │ │ │ └── jinja2.js │ │ ├── less │ │ │ └── less.js │ │ ├── livescript │ │ │ ├── livescript.js │ │ │ └── livescript.ls │ │ ├── lua │ │ │ └── lua.js │ │ ├── markdown │ │ │ ├── markdown.js │ │ │ └── test.js │ │ ├── meta.js │ │ ├── mirc │ │ │ └── mirc.js │ │ ├── nginx │ │ │ └── nginx.js │ │ ├── ntriples │ │ │ └── ntriples.js │ │ ├── ocaml │ │ │ └── ocaml.js │ │ ├── pascal │ │ │ └── pascal.js │ │ ├── perl │ │ │ └── perl.js │ │ ├── php │ │ │ └── php.js │ │ ├── pig │ │ │ └── pig.js │ │ ├── properties │ │ │ └── properties.js │ │ ├── python │ │ │ └── python.js │ │ ├── q │ │ │ └── q.js │ │ ├── r │ │ │ └── r.js │ │ ├── rpm │ │ │ ├── changes │ │ │ │ └── changes.js │ │ │ └── spec │ │ │ │ ├── spec.css │ │ │ │ └── spec.js │ │ ├── rst │ │ │ └── rst.js │ │ ├── ruby │ │ │ └── ruby.js │ │ ├── rust │ │ │ └── rust.js │ │ ├── sass │ │ │ └── sass.js │ │ ├── scheme │ │ │ └── scheme.js │ │ ├── shell │ │ │ └── shell.js │ │ ├── sieve │ │ │ └── sieve.js │ │ ├── smalltalk │ │ │ └── smalltalk.js │ │ ├── smarty │ │ │ └── smarty.js │ │ ├── smartymixed │ │ │ └── smartymixed.js │ │ ├── sparql │ │ │ └── sparql.js │ │ ├── sql │ │ │ └── sql.js │ │ ├── stex │ │ │ ├── stex.js │ │ │ └── test.js │ │ ├── tcl │ │ │ └── tcl.js │ │ ├── tiddlywiki │ │ │ ├── tiddlywiki.css │ │ │ └── tiddlywiki.js │ │ ├── tiki │ │ │ ├── tiki.css │ │ │ └── tiki.js │ │ ├── turtle │ │ │ └── turtle.js │ │ ├── vb │ │ │ └── vb.js │ │ ├── vbscript │ │ │ └── vbscript.js │ │ ├── velocity │ │ │ └── velocity.js │ │ ├── verilog │ │ │ └── verilog.js │ │ ├── xml │ │ │ └── xml.js │ │ ├── xquery │ │ │ ├── test.js │ │ │ └── xquery.js │ │ ├── yaml │ │ │ └── yaml.js │ │ └── z80 │ │ │ └── z80.js │ └── theme │ │ ├── 3024-day.css │ │ ├── 3024-night.css │ │ ├── ambiance-mobile.css │ │ ├── ambiance.css │ │ ├── base16-dark.css │ │ ├── base16-light.css │ │ ├── blackboard.css │ │ ├── cobalt.css │ │ ├── eclipse.css │ │ ├── elegant.css │ │ ├── erlang-dark.css │ │ ├── lesser-dark.css │ │ ├── midnight.css │ │ ├── monokai.css │ │ ├── neat.css │ │ ├── night.css │ │ ├── paraiso-dark.css │ │ ├── paraiso-light.css │ │ ├── rubyblue.css │ │ ├── solarized.css │ │ ├── the-matrix.css │ │ ├── tomorrow-night-eighties.css │ │ ├── twilight.css │ │ ├── vibrant-ink.css │ │ ├── xq-dark.css │ │ └── xq-light.css ├── cs_console │ ├── .bower.json │ ├── .gitignore │ ├── CHANGE_LOG.md │ ├── Gemfile │ ├── Gemfile.lock │ ├── LICENSE │ ├── README.md │ ├── Version │ ├── app │ │ ├── javascripts │ │ │ └── cs_console.coffee │ │ ├── stylesheets │ │ │ └── application.css │ │ └── vendor │ │ │ ├── javascripts │ │ │ ├── ansi_to_html.coffee │ │ │ ├── codemirror.js │ │ │ └── codemirror │ │ │ │ └── mode │ │ │ │ ├── apl │ │ │ │ ├── apl.js │ │ │ │ └── index.html │ │ │ │ ├── asterisk │ │ │ │ ├── asterisk.js │ │ │ │ └── index.html │ │ │ │ ├── clike │ │ │ │ ├── clike.js │ │ │ │ ├── index.html │ │ │ │ └── scala.html │ │ │ │ ├── clojure │ │ │ │ ├── clojure.js │ │ │ │ └── index.html │ │ │ │ ├── coffeescript │ │ │ │ ├── LICENSE │ │ │ │ ├── coffeescript.js │ │ │ │ └── index.html │ │ │ │ ├── commonlisp │ │ │ │ ├── commonlisp.js │ │ │ │ └── index.html │ │ │ │ ├── css │ │ │ │ ├── css.js │ │ │ │ ├── index.html │ │ │ │ └── scss.html │ │ │ │ ├── d │ │ │ │ ├── d.js │ │ │ │ └── index.html │ │ │ │ ├── diff │ │ │ │ ├── diff.js │ │ │ │ └── index.html │ │ │ │ ├── ecl │ │ │ │ ├── ecl.js │ │ │ │ └── index.html │ │ │ │ ├── erlang │ │ │ │ ├── erlang.js │ │ │ │ └── index.html │ │ │ │ ├── go │ │ │ │ ├── go.js │ │ │ │ └── index.html │ │ │ │ ├── groovy │ │ │ │ ├── groovy.js │ │ │ │ └── index.html │ │ │ │ ├── haskell │ │ │ │ ├── haskell.js │ │ │ │ └── index.html │ │ │ │ ├── haxe │ │ │ │ ├── haxe.js │ │ │ │ └── index.html │ │ │ │ ├── htmlembedded │ │ │ │ ├── htmlembedded.js │ │ │ │ └── index.html │ │ │ │ ├── htmlmixed │ │ │ │ ├── htmlmixed.js │ │ │ │ └── index.html │ │ │ │ ├── http │ │ │ │ ├── http.js │ │ │ │ └── index.html │ │ │ │ ├── javascript │ │ │ │ ├── index.html │ │ │ │ ├── javascript.js │ │ │ │ └── typescript.html │ │ │ │ ├── jinja2 │ │ │ │ ├── index.html │ │ │ │ └── jinja2.js │ │ │ │ ├── less │ │ │ │ ├── index.html │ │ │ │ └── less.js │ │ │ │ ├── livescript │ │ │ │ ├── LICENSE │ │ │ │ ├── index.html │ │ │ │ ├── livescript.js │ │ │ │ └── livescript.ls │ │ │ │ ├── lua │ │ │ │ ├── index.html │ │ │ │ └── lua.js │ │ │ │ ├── markdown │ │ │ │ ├── index.html │ │ │ │ └── markdown.js │ │ │ │ ├── meta.js │ │ │ │ ├── mirc │ │ │ │ ├── index.html │ │ │ │ └── mirc.js │ │ │ │ ├── ntriples │ │ │ │ ├── index.html │ │ │ │ └── ntriples.js │ │ │ │ ├── ocaml │ │ │ │ ├── index.html │ │ │ │ └── ocaml.js │ │ │ │ ├── pascal │ │ │ │ ├── LICENSE │ │ │ │ ├── index.html │ │ │ │ └── pascal.js │ │ │ │ ├── perl │ │ │ │ ├── LICENSE │ │ │ │ ├── index.html │ │ │ │ └── perl.js │ │ │ │ ├── php │ │ │ │ ├── index.html │ │ │ │ └── php.js │ │ │ │ ├── pig │ │ │ │ ├── index.html │ │ │ │ └── pig.js │ │ │ │ ├── properties │ │ │ │ ├── index.html │ │ │ │ └── properties.js │ │ │ │ ├── python │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── index.html │ │ │ │ └── python.js │ │ │ │ ├── q │ │ │ │ ├── index.html │ │ │ │ └── q.js │ │ │ │ ├── r │ │ │ │ ├── LICENSE │ │ │ │ ├── index.html │ │ │ │ └── r.js │ │ │ │ ├── rpm │ │ │ │ ├── changes │ │ │ │ │ ├── changes.js │ │ │ │ │ └── index.html │ │ │ │ └── spec │ │ │ │ │ ├── index.html │ │ │ │ │ ├── spec.css │ │ │ │ │ └── spec.js │ │ │ │ ├── rst │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── index.html │ │ │ │ └── rst.js │ │ │ │ ├── ruby │ │ │ │ ├── LICENSE │ │ │ │ ├── index.html │ │ │ │ └── ruby.js │ │ │ │ ├── rust │ │ │ │ ├── index.html │ │ │ │ └── rust.js │ │ │ │ ├── sass │ │ │ │ ├── index.html │ │ │ │ └── sass.js │ │ │ │ ├── scheme │ │ │ │ ├── index.html │ │ │ │ └── scheme.js │ │ │ │ ├── shell │ │ │ │ ├── index.html │ │ │ │ └── shell.js │ │ │ │ ├── sieve │ │ │ │ ├── LICENSE │ │ │ │ ├── index.html │ │ │ │ └── sieve.js │ │ │ │ ├── smalltalk │ │ │ │ ├── index.html │ │ │ │ └── smalltalk.js │ │ │ │ ├── smarty │ │ │ │ ├── index.html │ │ │ │ └── smarty.js │ │ │ │ ├── sparql │ │ │ │ ├── index.html │ │ │ │ └── sparql.js │ │ │ │ ├── sql │ │ │ │ ├── index.html │ │ │ │ └── sql.js │ │ │ │ ├── stex │ │ │ │ ├── index.html │ │ │ │ └── stex.js │ │ │ │ ├── tcl │ │ │ │ ├── index.html │ │ │ │ └── tcl.js │ │ │ │ ├── tiddlywiki │ │ │ │ ├── index.html │ │ │ │ ├── tiddlywiki.css │ │ │ │ └── tiddlywiki.js │ │ │ │ ├── tiki │ │ │ │ ├── index.html │ │ │ │ ├── tiki.css │ │ │ │ └── tiki.js │ │ │ │ ├── turtle │ │ │ │ ├── index.html │ │ │ │ └── turtle.js │ │ │ │ ├── vb │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── index.html │ │ │ │ └── vb.js │ │ │ │ ├── vbscript │ │ │ │ ├── index.html │ │ │ │ └── vbscript.js │ │ │ │ ├── velocity │ │ │ │ ├── index.html │ │ │ │ └── velocity.js │ │ │ │ ├── verilog │ │ │ │ ├── index.html │ │ │ │ └── verilog.js │ │ │ │ ├── xml │ │ │ │ ├── index.html │ │ │ │ └── xml.js │ │ │ │ ├── xquery │ │ │ │ ├── LICENSE │ │ │ │ ├── index.html │ │ │ │ └── xquery.js │ │ │ │ ├── yaml │ │ │ │ ├── index.html │ │ │ │ └── yaml.js │ │ │ │ └── z80 │ │ │ │ ├── index.html │ │ │ │ └── z80.js │ │ │ └── stylesheets │ │ │ ├── codemirror.css │ │ │ └── codemirror │ │ │ └── theme │ │ │ ├── ambiance.css │ │ │ ├── blackboard.css │ │ │ ├── cobalt.css │ │ │ ├── eclipse.css │ │ │ ├── elegant.css │ │ │ ├── erlang-dark.css │ │ │ ├── ios.css │ │ │ ├── lesser-dark.css │ │ │ ├── monokai.css │ │ │ ├── neat.css │ │ │ ├── night.css │ │ │ ├── rubyblue.css │ │ │ ├── vibrant-ink.css │ │ │ └── xq-dark.css │ ├── bin │ │ ├── .gitkeep │ │ └── cs_console │ ├── config.ru │ ├── demo_app │ │ ├── cs_console.css │ │ ├── cs_console.js │ │ └── demo.html │ ├── dist │ │ └── cs_console.js │ ├── tasks │ │ ├── cli.rb │ │ ├── recipes.rb │ │ └── recipes │ │ │ ├── all.rb │ │ │ ├── demo.rb │ │ │ ├── no_cm.rb │ │ │ └── test.rb │ └── test │ │ ├── constructor_options_test.js │ │ ├── public_api_test.coffee │ │ ├── resources │ │ ├── app │ │ │ └── vendor │ │ │ │ └── javascripts │ │ │ │ └── ansi_to_html.js │ │ ├── compiled_tests.js │ │ ├── cs_console.css │ │ ├── cs_console.js │ │ ├── favicon.ico │ │ ├── qunit.css │ │ ├── qunit.js │ │ └── test_helper.js │ │ └── test.html ├── jquery │ ├── .bower.json │ ├── MIT-LICENSE.txt │ ├── bower.json │ ├── dist │ │ ├── jquery.js │ │ ├── jquery.min.js │ │ └── jquery.min.map │ └── src │ │ ├── ajax.js │ │ ├── ajax │ │ ├── jsonp.js │ │ ├── load.js │ │ ├── parseJSON.js │ │ ├── parseXML.js │ │ ├── script.js │ │ ├── var │ │ │ ├── nonce.js │ │ │ └── rquery.js │ │ └── xhr.js │ │ ├── attributes.js │ │ ├── attributes │ │ ├── attr.js │ │ ├── classes.js │ │ ├── prop.js │ │ ├── support.js │ │ └── val.js │ │ ├── callbacks.js │ │ ├── core.js │ │ ├── core │ │ ├── access.js │ │ ├── init.js │ │ ├── parseHTML.js │ │ ├── ready.js │ │ └── var │ │ │ └── rsingleTag.js │ │ ├── css.js │ │ ├── css │ │ ├── addGetHookIf.js │ │ ├── curCSS.js │ │ ├── defaultDisplay.js │ │ ├── hiddenVisibleSelectors.js │ │ ├── support.js │ │ ├── swap.js │ │ └── var │ │ │ ├── cssExpand.js │ │ │ ├── getStyles.js │ │ │ ├── isHidden.js │ │ │ ├── rmargin.js │ │ │ └── rnumnonpx.js │ │ ├── data.js │ │ ├── data │ │ ├── Data.js │ │ ├── accepts.js │ │ └── var │ │ │ ├── data_priv.js │ │ │ └── data_user.js │ │ ├── deferred.js │ │ ├── deprecated.js │ │ ├── dimensions.js │ │ ├── effects.js │ │ ├── effects │ │ ├── Tween.js │ │ └── animatedSelector.js │ │ ├── event.js │ │ ├── event │ │ ├── ajax.js │ │ ├── alias.js │ │ └── support.js │ │ ├── exports │ │ ├── amd.js │ │ └── global.js │ │ ├── intro.js │ │ ├── jquery.js │ │ ├── manipulation.js │ │ ├── manipulation │ │ ├── _evalUrl.js │ │ ├── support.js │ │ └── var │ │ │ └── rcheckableType.js │ │ ├── offset.js │ │ ├── outro.js │ │ ├── queue.js │ │ ├── queue │ │ └── delay.js │ │ ├── selector-native.js │ │ ├── selector-sizzle.js │ │ ├── selector.js │ │ ├── serialize.js │ │ ├── sizzle │ │ └── dist │ │ │ ├── sizzle.js │ │ │ ├── sizzle.min.js │ │ │ └── sizzle.min.map │ │ ├── traversing.js │ │ ├── traversing │ │ ├── findFilter.js │ │ └── var │ │ │ └── rneedsContext.js │ │ ├── var │ │ ├── arr.js │ │ ├── class2type.js │ │ ├── concat.js │ │ ├── hasOwn.js │ │ ├── indexOf.js │ │ ├── pnum.js │ │ ├── push.js │ │ ├── rnotwhite.js │ │ ├── slice.js │ │ ├── strundefined.js │ │ ├── support.js │ │ └── toString.js │ │ └── wrap.js ├── lodash │ ├── .bower.json │ ├── LICENSE.txt │ ├── bower.json │ ├── lodash.js │ └── lodash.min.js ├── marked │ ├── .bower.json │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── bin │ │ └── marked │ ├── bower.json │ ├── component.json │ ├── doc │ │ ├── broken.md │ │ └── todo.md │ ├── index.js │ ├── lib │ │ └── marked.js │ ├── man │ │ └── marked.1 │ ├── marked.min.js │ └── package.json └── mocha │ ├── .bower.json │ ├── .editorconfig │ ├── .mailmap │ ├── CONTRIBUTING.md │ ├── HISTORY.md │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── media │ └── logo.svg │ ├── mocha.css │ └── mocha.js ├── client ├── javascriptcom │ ├── app.js │ ├── directives │ │ ├── challenge.directive.js │ │ ├── console.directive.js │ │ ├── course.directive.js │ │ ├── instructions.directive.js │ │ ├── safeHtml.directive.js │ │ └── tooltip.directive.js │ ├── filters │ │ ├── markdown.filter.js │ │ └── stateify.filter.js │ ├── resources │ │ ├── challenge.resource.js │ │ └── course.resource.js │ ├── services │ │ ├── command.factory.js │ │ ├── commandFactory.factory.js │ │ ├── commandReport.factory.js │ │ ├── commands │ │ │ └── javascriptCommand.factory.js │ │ ├── executor.factory.js │ │ ├── jsChallengeProgress.factory.js │ │ ├── jsCourseState.factory.js │ │ └── jsSuccessCloud.factory.js │ └── vendor │ │ ├── abecedary.js │ │ ├── cs_console.js │ │ ├── jquery.js │ │ ├── lodash.js │ │ └── marked.js ├── javascripts │ ├── application.js │ └── components │ │ ├── classes │ │ ├── dispatcher.js │ │ └── formValidator.js │ │ ├── dispatcher │ │ ├── course.js │ │ ├── feedback.js │ │ ├── home.js │ │ ├── news.js │ │ └── news │ │ │ ├── new.js │ │ │ └── show.js │ │ ├── modules │ │ ├── console.js │ │ ├── counter.js │ │ ├── createComment.js │ │ ├── editComment.js │ │ ├── loadStories.js │ │ ├── saveProgress.js │ │ ├── toggle.js │ │ └── video.js │ │ └── services │ │ ├── expel.js │ │ └── injectSvg.js └── stylesheets │ ├── application.sass │ ├── components │ ├── _bucket.sass │ ├── _button.sass │ ├── _card.sass │ ├── _cell.sass │ ├── _form.sass │ ├── _grid.sass │ ├── _handle.sass │ ├── _list.sass │ ├── _pillar.sass │ ├── _row.sass │ ├── _sector.sass │ ├── _split.sass │ ├── _thumb.sass │ ├── _underline.sass │ └── _well.sass │ ├── foundation │ ├── _base.sass │ ├── _config.sass │ ├── _helpers.sass │ ├── _reset.scss │ └── _tools.sass │ ├── structures │ ├── _alert.sass │ ├── _completionList.sass │ ├── _console.sass │ ├── _course.sass │ ├── _courseLayout.sass │ ├── _emblem.sass │ ├── _errorHero.sass │ ├── _externalLink.sass │ ├── _footer.sass │ ├── _header.sass │ ├── _heading.sass │ ├── _hero.sass │ ├── _icon.sass │ ├── _inlineCode.sass │ ├── _inlineConsole.sass │ ├── _label.sass │ ├── _layout.sass │ ├── _link.sass │ ├── _message.sass │ ├── _newsletter.sass │ ├── _preloader.sass │ ├── _select.sass │ ├── _state.sass │ └── _video.sass │ └── vendor │ ├── _codemirror-theme.scss │ ├── _codemirror.scss │ └── _tooltip.sass ├── courses ├── helper │ └── index.js └── intro │ ├── 1_string.js │ ├── 2_functions.js │ ├── 3_string_function_parameter.js │ ├── 4_variables.js │ ├── 5_variable_value.js │ ├── 6_numbers.js │ ├── 7_combining_numbers.js │ ├── 8_combining_strings.js │ └── index.js ├── gulpfile.js ├── npm-shrinkwrap.json ├── package.json ├── public ├── downloads │ ├── JavaScript.com Asset Downloads │ │ ├── logo-light.eps │ │ ├── logo-light.png │ │ ├── logo-mark.eps │ │ ├── logo-mark.png │ │ ├── logo.eps │ │ └── logo.png │ └── package.zip ├── iframe.html ├── images │ ├── badge-try-javascript.svg │ ├── brand │ │ ├── logo-light.svg │ │ ├── logo-mark.svg │ │ └── logo.svg │ ├── favicon.ico │ ├── fb.png │ ├── icons │ │ ├── icon-calendar.svg │ │ ├── icon-check.svg │ │ ├── icon-external.svg │ │ ├── icon-mail.svg │ │ ├── icon-play.svg │ │ ├── icon-rss.svg │ │ ├── icon-star.svg │ │ ├── icon-submit.svg │ │ ├── icon-twitter.svg │ │ └── icons.svg │ ├── img-404-hero.svg │ ├── img-about.svg │ ├── img-authentication.svg │ ├── img-console.svg │ ├── img-feedback.svg │ ├── img-guidelines.svg │ ├── img-hero.svg │ ├── img-news.svg │ ├── img-newsletter.svg │ ├── img-try-javascript.svg │ ├── logo-mark-dotless.svg │ ├── logo-mark.svg │ ├── logo-monochrome.svg │ ├── logo.svg │ └── resources │ │ ├── img-codecademy.jpg │ │ ├── img-eloquent-js.jpg │ │ ├── img-js-books.png │ │ ├── img-js-for-cats.jpg │ │ ├── img-jsrt.jpg │ │ ├── img-mdn.jpg │ │ ├── img-pluralsight.jpg │ │ ├── img-try-jquery.jpg │ │ ├── img-try-js.jpg │ │ └── img-you-dont-know-js.jpg ├── javascripts │ ├── abecedary-javascript-com.js │ ├── application.js │ ├── course.js │ ├── vendor-course.js │ └── vendor.js ├── stylesheets │ └── application.css └── templates │ ├── challenge.html │ ├── console.html │ ├── course.html │ └── instructions.html ├── server ├── app.js ├── config.js ├── controllers │ ├── about.js │ ├── assets.js │ ├── courses.js │ ├── feedback.js │ ├── guidelines.js │ ├── index.js │ ├── learn.js │ ├── news.js │ ├── notFound.js │ ├── resources.js │ ├── routes.js │ ├── sessions.js │ ├── styleguide.js │ └── users.js ├── models │ ├── articles.js │ └── users.js ├── services │ ├── authenticator.js │ ├── course.js │ ├── dbConnection.js │ ├── npm-debug.log │ └── slug-generator.js └── views │ ├── 404.jade │ ├── about │ └── index.jade │ ├── assets │ └── index.jade │ ├── error.jade │ ├── feedback │ ├── index.jade │ └── success.jade │ ├── guidelines │ └── index.jade │ ├── index.jade │ ├── layouts │ ├── _head.jade │ ├── layout-bleed.jade │ ├── layout-course.jade │ └── layout.jade │ ├── learn │ └── index.jade │ ├── news │ ├── _data_separator.jade │ ├── index.jade │ ├── new.jade │ ├── npm-debug.log │ └── show.jade │ ├── npm-debug.log │ ├── partials │ ├── _flash.jade │ ├── _footer.jade │ ├── _header.jade │ ├── _hero_console.jade │ ├── _hero_img.jade │ ├── _icon.jade │ └── _newsletter_form.jade │ ├── resources │ ├── _resource.jade │ └── index.jade │ ├── styleguide │ └── index.jade │ └── users │ └── sign_in.jade └── setup.sh /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/* 2 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 4.2.1 2 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: npm start 2 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "JavaScript.com", 3 | "version": "0.0.0", 4 | "homepage": "https://github.com/codeschool/JavaScript.com", 5 | "authors": [ 6 | "Code School" 7 | ], 8 | "license": "MIT", 9 | "private": true, 10 | "ignore": [ 11 | "**/.*", 12 | "node_modules", 13 | "bower_components", 14 | "test", 15 | "tests" 16 | ], 17 | "dependencies": { 18 | "abecedary": "~0.0.5", 19 | "angular": "1.4.0-beta.6", 20 | "angular-animate": "1.4.0-beta.6", 21 | "angular-cookies": "1.4.0-beta.6", 22 | "angular-resource": "1.4.0-beta.6", 23 | "autosize": "~3.0.6", 24 | "bootstrap": "~3.3.4", 25 | "codemirror": "~3.16.0", 26 | "cs_console": "https://github.com/renz45/cs_console/archive/master.zip", 27 | "jquery": "~2.1.3", 28 | "lodash": "~3.5.0", 29 | "marked": "~0.3.3", 30 | "mocha": "~2.2.1" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /bower_components/abecedary/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "abecedary", 3 | "version": "0.0.5", 4 | "main": "dist/abecedary.js", 5 | "ignore": [ 6 | "**/*.txt" 7 | ], 8 | "dependencies": {}, 9 | "devDependencies": {}, 10 | "homepage": "https://github.com/codeschool/abecedary", 11 | "_release": "0.0.5", 12 | "_resolution": { 13 | "type": "version", 14 | "tag": "v0.0.5", 15 | "commit": "cece490a13f9ff769c9e22dbc9cf5e22dc571cbf" 16 | }, 17 | "_source": "git://github.com/codeschool/abecedary.git", 18 | "_target": "~0.0.5", 19 | "_originalSource": "abecedary" 20 | } -------------------------------------------------------------------------------- /bower_components/abecedary/.gitignore: -------------------------------------------------------------------------------- 1 | components/ 2 | node_modules/ 3 | example/lib/*/node_modules/ 4 | example/build/sandbox_vendor.js -------------------------------------------------------------------------------- /bower_components/abecedary/Gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | grunt.initConfig({ 3 | shell: { 4 | browserify: { 5 | command: 'browserify -s Abecedary -t decomponentify -t brfs index.js > dist/abecedary.js' 6 | } 7 | }, 8 | watch: { 9 | scripts: { 10 | files: ['index.js', 'lib/runner.js'], 11 | tasks: ['default'] 12 | } 13 | } 14 | }); 15 | 16 | grunt.loadNpmTasks('grunt-contrib-watch'); 17 | grunt.loadNpmTasks('grunt-shell'); 18 | 19 | grunt.registerTask('default', ['shell:browserify']); 20 | grunt.registerTask('w', ['watch']); 21 | }; 22 | -------------------------------------------------------------------------------- /bower_components/abecedary/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "abecedary", 3 | "version": "0.0.4", 4 | "main": "dist/abecedary.js", 5 | "ignore": [ 6 | "**/*.txt" 7 | ], 8 | "dependencies": { }, 9 | "devDependencies": { } 10 | } 11 | -------------------------------------------------------------------------------- /bower_components/abecedary/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "abecedary", 3 | "repo": "codeschool/abecedary", 4 | "description": "Crossdomain JavaScript test runner for Mocha.", 5 | "version": "0.0.5", 6 | "keywords": ["mocha", "stuff.js", "iframe", "test"], 7 | "dependencies": { }, 8 | "development": { 9 | "visionmedia/mocha": "*", 10 | "component/emitter": "*", 11 | "then/promise": "*", 12 | "segmentio/extend": "*", 13 | "adamfortuna/stuff.js": "*" 14 | }, 15 | "license": "MIT", 16 | "main": "dist/abecedary.js", 17 | "scripts": [ 18 | "dist/abecedary.js" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /bower_components/abecedary/example/Makefile: -------------------------------------------------------------------------------- 1 | SRC = $(wildcard lib/**/*.js) 2 | CSS = $(wildcard lib/**/*.css) 3 | HTML = $(wildcard lib/**/*.html) 4 | COMPONENTJSON = $(wildcard lib/*/component.json) 5 | TEMPLATES = $(HTML:.html=.js) 6 | 7 | build: components $(SRC) $(CSS) $(TEMPLATES) 8 | @echo building 9 | @component build 10 | 11 | components: component.json $(COMPONENTJSON) 12 | @echo installing 13 | @component install 14 | 15 | %.js: %.html 16 | @echo converting 17 | @component convert $< 18 | 19 | minify: 20 | @component build --use component-minify 21 | 22 | clean: 23 | @echo cleaning 24 | rm -fr build components $(TEMPLATES) 25 | 26 | .PHONY: clean minify 27 | -------------------------------------------------------------------------------- /bower_components/abecedary/example/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "demo", 3 | "description": "Abecedary demo", 4 | "version": "0.0.1", 5 | "keywords": [], 6 | "paths": ["lib"], 7 | "local": ["boot"] 8 | } 9 | -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/boot/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "boot", 3 | "description": "Abecedary demo", 4 | "version": "0.0.1", 5 | "keywords": [], 6 | "dependencies": { 7 | "amasad/codemirror": "*", 8 | "benatkin/codemirror-mode-javascript": "*", 9 | "component/debounce": "*", 10 | "component/dom": "*", 11 | "brighthas/bootstrap" : "*", 12 | "segmentio/extend": "*", 13 | "codeschool/abecedary": "*" 14 | }, 15 | "license": "AAL", 16 | "main": "index.js", 17 | "local": [ 18 | "javascript", 19 | "javascript-logging" 20 | ], 21 | "scripts": [ 22 | "index.js" 23 | ], 24 | "styles": [ 25 | "index.css" 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript-logging/Gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | grunt.initConfig({ 3 | shell: { 4 | browserify: { 5 | command: 'browserify -r sinon -r chai -r javascript-sandbox -r jshint -o ../../build/sandbox_vendor.js' 6 | } 7 | }, 8 | concat: { 9 | '../../build/demos/javascript-logging.js': ['../../build/sandbox_vendor.js', 'node_modules/mocha/mocha.js', , '../../../dist/reporter.js'] 10 | }, 11 | watch: { 12 | scripts: { 13 | files: ['node_modules/abecedary/dist/reporter.js'], 14 | tasks: ['default'] 15 | } 16 | } 17 | }); 18 | 19 | // Load the npm installed tasks 20 | grunt.loadNpmTasks('grunt-contrib-concat'); 21 | grunt.loadNpmTasks('grunt-shell'); 22 | grunt.loadNpmTasks('grunt-contrib-watch'); 23 | 24 | // The default tasks to run when you type: grunt 25 | grunt.registerTask('default', ['shell:browserify', 'concat']); 26 | }; 27 | -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript-logging/answer.html: -------------------------------------------------------------------------------- 1 | console.log("Hello, World!"); -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript-logging/answer.js: -------------------------------------------------------------------------------- 1 | module.exports = 'console.log("Hello, World!");'; -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript-logging/code.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/bower_components/abecedary/example/lib/javascript-logging/code.html -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript-logging/code.js: -------------------------------------------------------------------------------- 1 | module.exports = ''; -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript-logging/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "javascript-logging", 3 | "description": "Demo using JavaScript with console.log.", 4 | "keywords": [], 5 | "dependencies": { }, 6 | "license": "AAL", 7 | "main": "index.js", 8 | "scripts": [ 9 | "index.js", 10 | "code.js", 11 | "tests.js", 12 | "answer.js", 13 | "iframe.js" 14 | ] 15 | } -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript-logging/iframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Abecedary Tests 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript-logging/iframe.js: -------------------------------------------------------------------------------- 1 | module.exports = '\n\n \n Abecedary Tests\n \n \n \n \n'; -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript-logging/index.js: -------------------------------------------------------------------------------- 1 | var iframeTemplate = require('./iframe'); 2 | var code = require('./code'); 3 | var tests = require('./tests'); 4 | var answer = require('./answer'); 5 | 6 | module.exports = { 7 | name: "Sample JavaScript Challenge With Logging", 8 | iframe: iframeTemplate, 9 | code: code, 10 | tests: tests, 11 | answer: answer, 12 | syntax: 'javascript', 13 | question: "Log the message `Hello, World!` to the console.", 14 | options: { 15 | bail: true 16 | } 17 | } -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript-logging/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "javascript", 3 | "description": "", 4 | "main": "abecedary-javascript.js", 5 | "author": "Code School", 6 | "license": "AAL", 7 | "dependencies": { 8 | "abecedary": "https://github.com/codeschool/abecedary/tarball/master", 9 | "mocha": "~1.17.0", 10 | "sinon": "https://github.com/cjohansen/Sinon.JS/tarball/browserify", 11 | "chai": "~1.8.1", 12 | "javascript-sandbox": "https://github.com/codeschool/javascript-sandbox/tarball/master", 13 | "jshint": "~2.4.3" 14 | }, 15 | "devDependencies": { 16 | "grunt": "~0.4.2", 17 | "grunt-shell": "~0.6.4", 18 | "grunt-contrib-concat": "~0.3.0", 19 | "grunt-contrib-watch": "~0.5.3" 20 | } 21 | } -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript-logging/tests.html: -------------------------------------------------------------------------------- 1 | var assert = require('chai').assert, 2 | sinon = require('sinon'), 3 | Sandbox = require('javascript-sandbox'), 4 | jshint = require('jshint').JSHINT; 5 | 6 | describe('console.log', function() { 7 | var sandbox, consoleLogStub; 8 | 9 | beforeEach(function() { 10 | try { 11 | consoleLogStub = sinon.spy(); 12 | sandbox = new Sandbox({ 13 | variables: { 14 | 'console.log': consoleLogStub 15 | } 16 | }); 17 | sandbox.evaluate(code); 18 | } catch(e) {} 19 | }); 20 | 21 | afterEach(function() { 22 | try { 23 | sandbox.destroy(); 24 | } catch(e) {} 25 | }); 26 | 27 | details('console.log', function() { 28 | return consoleLogStub.args; 29 | }); 30 | 31 | it("Looks like there's a syntax error in your code.", function() { 32 | if(!jshint(code)) { throw jshint.errors[0]; } 33 | }); 34 | 35 | it("Did not call `console.log`, passing in a message.", function() { 36 | assert(consoleLogStub.callCount > 0); 37 | }); 38 | 39 | it("Did not pass in the message `Hello, World!` to `console.log`.", function() { 40 | assert(consoleLogStub.calledWith('Hello, World!')); 41 | }); 42 | }); -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript-logging/tests.js: -------------------------------------------------------------------------------- 1 | module.exports = 'var assert = require(\'chai\').assert,\n sinon = require(\'sinon\'),\n Sandbox = require(\'javascript-sandbox\'),\n jshint = require(\'jshint\').JSHINT;\n\ndescribe(\'console.log\', function() {\n var sandbox, consoleLogStub;\n\n beforeEach(function() {\n try {\n consoleLogStub = sinon.spy();\n sandbox = new Sandbox({\n variables: {\n \'console.log\': consoleLogStub\n }\n });\n sandbox.evaluate(code);\n } catch(e) {}\n });\n \n afterEach(function() {\n try {\n sandbox.destroy();\n } catch(e) {}\n });\n\n details(\'console.log\', function() {\n return consoleLogStub.args;\n });\n\n it("Looks like there\'s a syntax error in your code.", function() {\n if(!jshint(code)) { throw jshint.errors[0]; }\n });\n\n it("Did not call `console.log`, passing in a message.", function() {\n assert(consoleLogStub.callCount > 0);\n });\n\n it("Did not pass in the message `Hello, World!` to `console.log`.", function() {\n assert(consoleLogStub.calledWith(\'Hello, World!\'));\n });\n});'; -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript/Gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | grunt.initConfig({ 3 | shell: { 4 | browserify: { 5 | command: 'browserify -r chai -r javascript-sandbox -r jshint -o ../../build/sandbox_vendor.js' 6 | } 7 | }, 8 | concat: { 9 | '../../build/demos/javascript.js': ['../../build/sandbox_vendor.js', 'node_modules/mocha/mocha.js', '../../../dist/reporter.js'] 10 | } 11 | }); 12 | 13 | // Load the npm installed tasks 14 | grunt.loadNpmTasks('grunt-contrib-concat'); 15 | grunt.loadNpmTasks('grunt-shell'); 16 | 17 | // The default tasks to run when you type: grunt 18 | grunt.registerTask('default', ['shell:browserify', 'concat']); 19 | }; 20 | -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript/answer.html: -------------------------------------------------------------------------------- 1 | function add(one, two) { 2 | return one + two; 3 | } -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript/answer.js: -------------------------------------------------------------------------------- 1 | module.exports = 'function add(one, two) {\n return one + two;\n}'; -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript/code.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/bower_components/abecedary/example/lib/javascript/code.html -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript/code.js: -------------------------------------------------------------------------------- 1 | module.exports = ''; -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "javascript", 3 | "description": "Demo using JavaScript", 4 | "keywords": [], 5 | "dependencies": { }, 6 | "license": "AAL", 7 | "main": "index.js", 8 | "scripts": [ 9 | "index.js", 10 | "code.js", 11 | "tests.js", 12 | "answer.js", 13 | "iframe.js" 14 | ] 15 | } -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript/iframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Abecedary Tests 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript/iframe.js: -------------------------------------------------------------------------------- 1 | module.exports = '\n\n \n Abecedary Tests\n \n \n \n \n'; -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript/index.html: -------------------------------------------------------------------------------- 1 | var iframeTemplate = require('./iframe'); 2 | var code = require('./code'); 3 | var tests = require('./tests'); 4 | var answer = require('./answer'); 5 | 6 | module.exports = { 7 | iframe: iframeTemplate, 8 | code: code, 9 | tests: tests, 10 | answer: answer 11 | } -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript/index.js: -------------------------------------------------------------------------------- 1 | var iframeTemplate = require('./iframe'); 2 | var code = require('./code'); 3 | var tests = require('./tests'); 4 | var answer = require('./answer'); 5 | 6 | module.exports = { 7 | name: "Sample JavaScript Challenge", 8 | iframe: iframeTemplate, 9 | code: code, 10 | tests: tests, 11 | answer: answer, 12 | syntax: 'javascript', 13 | question: "Write an add function that adds two numbers and returns the result.", 14 | options: { 15 | bail: true 16 | } 17 | } -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "javascript", 3 | "description": "", 4 | "main": "abecedary-javascript.js", 5 | "author": "Code School", 6 | "license": "AAL", 7 | "dependencies": { 8 | "abecedary": "https://github.com/codeschool/abecedary/tarball/master", 9 | "mocha": "~1.17.0", 10 | "chai": "~1.8.1", 11 | "javascript-sandbox": "https://github.com/codeschool/javascript-sandbox/tarball/master", 12 | "jshint": "~2.4.3" 13 | }, 14 | "devDependencies": { 15 | "grunt": "~0.4.2", 16 | "grunt-shell": "~0.6.4", 17 | "grunt-contrib-concat": "~0.3.0" 18 | } 19 | } -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript/tests.html: -------------------------------------------------------------------------------- 1 | var assert = require('chai').assert, 2 | Sandbox = require('javascript-sandbox'), 3 | jshint = require('jshint').JSHINT; 4 | 5 | describe('add', function() { 6 | var sandbox; 7 | 8 | beforeEach(function() { 9 | try { 10 | sandbox = new Sandbox(); 11 | sandbox.evaluate(code); 12 | } catch(e) {} 13 | }); 14 | 15 | afterEach(function() { 16 | sandbox.destroy(); 17 | }); 18 | 19 | it("Looks like there's a syntax error in your code.", function() { 20 | if(!jshint(code)) { throw jshint.errors[0]; } 21 | }); 22 | 23 | it('Be sure to define a function named `add`.', function() { 24 | assert(typeof sandbox.get('add') === 'function'); 25 | }); 26 | 27 | it('Your `add` function should take in two arguments.', function() { 28 | assert(sandbox.get('add').length === 2); 29 | }); 30 | 31 | it('`add` should return the result of adding the two arguments.', function() { 32 | var result = sandbox.exec(function() { return this.add(40,2) }); 33 | assert(result === 42); 34 | }); 35 | }); -------------------------------------------------------------------------------- /bower_components/abecedary/example/lib/javascript/tests.js: -------------------------------------------------------------------------------- 1 | module.exports = 'var assert = require(\'chai\').assert,\n Sandbox = require(\'javascript-sandbox\'),\n jshint = require(\'jshint\').JSHINT;\n\ndescribe(\'add\', function() {\n var sandbox;\n\n beforeEach(function() {\n try {\n sandbox = new Sandbox();\n sandbox.evaluate(code);\n } catch(e) {}\n });\n \n afterEach(function() {\n sandbox.destroy();\n });\n\n it("Looks like there\'s a syntax error in your code.", function() {\n if(!jshint(code)) { throw jshint.errors[0]; }\n });\n\n it(\'Be sure to define a function named `add`.\', function() {\n assert(typeof sandbox.get(\'add\') === \'function\');\n });\n\n it(\'Your `add` function should take in two arguments.\', function() {\n assert(sandbox.get(\'add\').length === 2);\n });\n \n it(\'`add` should return the result of adding the two arguments.\', function() {\n var result = sandbox.exec(function() { return this.add(40,2) });\n assert(result === 42);\n });\n});'; -------------------------------------------------------------------------------- /bower_components/abecedary/index.html: -------------------------------------------------------------------------------- 1 | Go see the Example. -------------------------------------------------------------------------------- /bower_components/abecedary/lib/runner.js: -------------------------------------------------------------------------------- 1 | // This runs the code in the stuff.js iframe 2 | // There is some error handling in here in case the tests themselves throw an erorr 3 | 4 | module.exports = function(code, tests) { 5 | return [ 6 | 'try {', 7 | ' window.code = JSON.parse('+JSON.stringify(JSON.stringify(code))+');', 8 | ' mocha.suite.suites.splice(0, mocha.suite.suites.length)', 9 | '', 10 | '// Begin Tests', 11 | tests, 12 | '// End Tests', 13 | '', 14 | ' window.mocha.run();', 15 | '} catch(e) {', 16 | ' rethrow(e, JSON.parse('+JSON.stringify(JSON.stringify(tests))+'), 6);', 17 | '}', 18 | true 19 | ].join('\n'); 20 | } 21 | -------------------------------------------------------------------------------- /bower_components/abecedary/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "abecedary", 3 | "version": "0.0.5", 4 | "description": "Crossdomain JavaScript test runner for Mocha.", 5 | "author": "Adam Fortuna", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/codeschool/abecedary.git" 9 | }, 10 | "main": "index.js", 11 | "license": "AAL", 12 | "dependencies": {}, 13 | "devDependencies": { 14 | "brfs": "^1.2.0", 15 | "browserify": "3.32.0", 16 | "chai": "~1.8.1", 17 | "decomponentify": "~0.0.3", 18 | "grunt": "~0.4.2", 19 | "grunt-contrib-watch": "~0.5.3", 20 | "grunt-shell": "~0.6.4", 21 | "mocha": "~1.17.0", 22 | "sinon": "~1.7.3" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /bower_components/abecedary/test/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Mocha Tests 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /bower_components/abecedary/test/test.js: -------------------------------------------------------------------------------- 1 | var Sandbox = require('abecedary'); 2 | var assert = chai.assert; 3 | 4 | describe("Abecedary", function() { 5 | var sandbox; 6 | }); -------------------------------------------------------------------------------- /bower_components/angular-animate/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.4.0-beta.6", 4 | "main": "./angular-animate.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.0-beta.6" 8 | }, 9 | "homepage": "https://github.com/angular/bower-angular-animate", 10 | "_release": "1.4.0-beta.6", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "v1.4.0-beta.6", 14 | "commit": "9152fe45d40f89909656d22712900485ce56859a" 15 | }, 16 | "_source": "git://github.com/angular/bower-angular-animate.git", 17 | "_target": "1.4.0-beta.6", 18 | "_originalSource": "angular-animate" 19 | } -------------------------------------------------------------------------------- /bower_components/angular-animate/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.4.0-beta.6", 4 | "main": "./angular-animate.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.0-beta.6" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /bower_components/angular-animate/index.js: -------------------------------------------------------------------------------- 1 | require('./angular-animate'); 2 | module.exports = 'ngAnimate'; 3 | -------------------------------------------------------------------------------- /bower_components/angular-animate/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.4.0-beta.6", 4 | "description": "AngularJS module for animations", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "animation", 18 | "client-side" 19 | ], 20 | "author": "Angular Core Team ", 21 | "license": "MIT", 22 | "bugs": { 23 | "url": "https://github.com/angular/angular.js/issues" 24 | }, 25 | "homepage": "http://angularjs.org" 26 | } 27 | -------------------------------------------------------------------------------- /bower_components/angular-cookies/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-cookies", 3 | "version": "1.4.0-beta.6", 4 | "main": "./angular-cookies.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.0-beta.6" 8 | }, 9 | "homepage": "https://github.com/angular/bower-angular-cookies", 10 | "_release": "1.4.0-beta.6", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "v1.4.0-beta.6", 14 | "commit": "04bb418231b2c6dbeb2a73336bb4699ba94e90c5" 15 | }, 16 | "_source": "git://github.com/angular/bower-angular-cookies.git", 17 | "_target": "1.4.0-beta.6", 18 | "_originalSource": "angular-cookies" 19 | } -------------------------------------------------------------------------------- /bower_components/angular-cookies/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-cookies", 3 | "version": "1.4.0-beta.6", 4 | "main": "./angular-cookies.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.0-beta.6" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /bower_components/angular-cookies/index.js: -------------------------------------------------------------------------------- 1 | require('./angular-cookies'); 2 | module.exports = 'ngCookies'; 3 | -------------------------------------------------------------------------------- /bower_components/angular-cookies/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-cookies", 3 | "version": "1.4.0-beta.6", 4 | "description": "AngularJS module for cookies", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "cookies", 18 | "client-side" 19 | ], 20 | "author": "Angular Core Team ", 21 | "license": "MIT", 22 | "bugs": { 23 | "url": "https://github.com/angular/angular.js/issues" 24 | }, 25 | "homepage": "http://angularjs.org" 26 | } 27 | -------------------------------------------------------------------------------- /bower_components/angular-resource/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-resource", 3 | "version": "1.4.0-beta.6", 4 | "main": "./angular-resource.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.0-beta.6" 8 | }, 9 | "homepage": "https://github.com/angular/bower-angular-resource", 10 | "_release": "1.4.0-beta.6", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "v1.4.0-beta.6", 14 | "commit": "c0e964128bda203e9757f5dade4b039567403a01" 15 | }, 16 | "_source": "git://github.com/angular/bower-angular-resource.git", 17 | "_target": "1.4.0-beta.6", 18 | "_originalSource": "angular-resource" 19 | } -------------------------------------------------------------------------------- /bower_components/angular-resource/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-resource", 3 | "version": "1.4.0-beta.6", 4 | "main": "./angular-resource.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.0-beta.6" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /bower_components/angular-resource/index.js: -------------------------------------------------------------------------------- 1 | require('./angular-resource'); 2 | module.exports = 'ngResource'; 3 | -------------------------------------------------------------------------------- /bower_components/angular-resource/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-resource", 3 | "version": "1.4.0-beta.6", 4 | "description": "AngularJS module for interacting with RESTful server-side data sources", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "rest", 18 | "client-side" 19 | ], 20 | "author": "Angular Core Team ", 21 | "license": "MIT", 22 | "bugs": { 23 | "url": "https://github.com/angular/angular.js/issues" 24 | }, 25 | "homepage": "http://angularjs.org" 26 | } 27 | -------------------------------------------------------------------------------- /bower_components/angular/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.4.0-beta.6", 4 | "main": "./angular.js", 5 | "ignore": [], 6 | "dependencies": {}, 7 | "homepage": "https://github.com/angular/bower-angular", 8 | "_release": "1.4.0-beta.6", 9 | "_resolution": { 10 | "type": "version", 11 | "tag": "v1.4.0-beta.6", 12 | "commit": "e75198837e87a1ef5ebc8d90e3b47b228869f7c5" 13 | }, 14 | "_source": "git://github.com/angular/bower-angular.git", 15 | "_target": "1.4.0-beta.6", 16 | "_originalSource": "angular" 17 | } -------------------------------------------------------------------------------- /bower_components/angular/angular-csp.css: -------------------------------------------------------------------------------- 1 | /* Include this file in your html if you are using the CSP mode. */ 2 | 3 | @charset "UTF-8"; 4 | 5 | [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], 6 | .ng-cloak, .x-ng-cloak, 7 | .ng-hide:not(.ng-hide-animate) { 8 | display: none !important; 9 | } 10 | 11 | ng\:form { 12 | display: block; 13 | } 14 | -------------------------------------------------------------------------------- /bower_components/angular/angular.min.js.gzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/bower_components/angular/angular.min.js.gzip -------------------------------------------------------------------------------- /bower_components/angular/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.4.0-beta.6", 4 | "main": "./angular.js", 5 | "ignore": [], 6 | "dependencies": { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /bower_components/angular/index.js: -------------------------------------------------------------------------------- 1 | require('./angular'); 2 | module.exports = angular; 3 | -------------------------------------------------------------------------------- /bower_components/angular/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.4.0-beta.6", 4 | "description": "HTML enhanced for web apps", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "client-side" 18 | ], 19 | "author": "Angular Core Team ", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/angular/angular.js/issues" 23 | }, 24 | "homepage": "http://angularjs.org" 25 | } 26 | -------------------------------------------------------------------------------- /bower_components/autosize/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "autosize", 3 | "description": "Autosize is a small, stand-alone script to automatically adjust textarea height to fit text.", 4 | "dependencies": {}, 5 | "keywords": [ 6 | "textarea", 7 | "form", 8 | "ui" 9 | ], 10 | "authors": [ 11 | { 12 | "name": "Jack Moore", 13 | "url": "http://www.jacklmoore.com", 14 | "email": "hello@jacklmoore.com" 15 | } 16 | ], 17 | "license": "MIT", 18 | "homepage": "http://www.jacklmoore.com/autosize", 19 | "ignore": [], 20 | "repository": { 21 | "type": "git", 22 | "url": "http://github.com/jackmoore/autosize.git" 23 | }, 24 | "main": "dist/autosize.js", 25 | "moduleType": [ 26 | "amd", 27 | "node" 28 | ], 29 | "version": "3.0.6", 30 | "_release": "3.0.6", 31 | "_resolution": { 32 | "type": "version", 33 | "tag": "3.0.6", 34 | "commit": "e515a2fa78c7eb1b5fe59a389fc2e19c37d4613f" 35 | }, 36 | "_source": "git://github.com/jackmoore/autosize.git", 37 | "_target": "~3.0.6", 38 | "_originalSource": "autosize" 39 | } -------------------------------------------------------------------------------- /bower_components/autosize/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/* 2 | test/* -------------------------------------------------------------------------------- /bower_components/autosize/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "autosize", 3 | "description": "Autosize is a small, stand-alone script to automatically adjust textarea height to fit text.", 4 | "dependencies": {}, 5 | "keywords": [ 6 | "textarea", 7 | "form", 8 | "ui" 9 | ], 10 | "authors": [ 11 | { 12 | "name": "Jack Moore", 13 | "url": "http://www.jacklmoore.com", 14 | "email": "hello@jacklmoore.com" 15 | } 16 | ], 17 | "license": "MIT", 18 | "homepage": "http://www.jacklmoore.com/autosize", 19 | "ignore": [], 20 | "repository": { 21 | "type": "git", 22 | "url": "http://github.com/jackmoore/autosize.git" 23 | }, 24 | "main": "dist/autosize.js", 25 | "moduleType": [ 26 | "amd", 27 | "node" 28 | ] 29 | } -------------------------------------------------------------------------------- /bower_components/autosize/readme.md: -------------------------------------------------------------------------------- 1 | ## Summary 2 | 3 | Autosize is a small, stand-alone script to automatically adjust textarea height to fit text. 4 | 5 | #### Demo 6 | 7 | Full documentation and a demo can be found at [jacklmoore.com/autosize](http://jacklmoore.com/autosize) 8 | 9 | #### Install via NPM 10 | ```bash 11 | npm install autosize 12 | ``` 13 | #### Install via Bower 14 | ```bash 15 | bower install autosize 16 | ``` 17 | 18 | #### Browser compatibility 19 | 20 | Chrome | Firefox | IE | Safari | iOS Safari | Android | Opera Mini 21 | ------ | --------|----|--------|------------|---------|------------ 22 | yes | yes | 9 | yes | yes | 4 | ? 23 | 24 | #### Usage 25 | 26 | The autosize function accepts a single textarea element, or an array or array-like object (such as a NodeList or jQuery collection) of textarea elements. 27 | 28 | ```javascript 29 | // from a NodeList 30 | autosize(document.querySelectorAll('textarea')); 31 | 32 | // from a single Node 33 | autosize(document.querySelector('textarea')); 34 | 35 | // from a jQuery collection 36 | autosize($('textarea')); 37 | ``` 38 | 39 | Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php) -------------------------------------------------------------------------------- /bower_components/bootstrap/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2011-2015 Twitter, Inc 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /bower_components/bootstrap/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap", 3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", 4 | "version": "3.3.4", 5 | "keywords": [ 6 | "css", 7 | "js", 8 | "less", 9 | "mobile-first", 10 | "responsive", 11 | "front-end", 12 | "framework", 13 | "web" 14 | ], 15 | "homepage": "http://getbootstrap.com", 16 | "main": [ 17 | "less/bootstrap.less", 18 | "dist/css/bootstrap.css", 19 | "dist/js/bootstrap.js", 20 | "dist/fonts/glyphicons-halflings-regular.eot", 21 | "dist/fonts/glyphicons-halflings-regular.svg", 22 | "dist/fonts/glyphicons-halflings-regular.ttf", 23 | "dist/fonts/glyphicons-halflings-regular.woff", 24 | "dist/fonts/glyphicons-halflings-regular.woff2" 25 | ], 26 | "ignore": [ 27 | "/.*", 28 | "_config.yml", 29 | "CNAME", 30 | "composer.json", 31 | "CONTRIBUTING.md", 32 | "docs", 33 | "js/tests", 34 | "test-infra" 35 | ], 36 | "dependencies": { 37 | "jquery": ">= 1.9.1" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /bower_components/bootstrap/dist/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /bower_components/bootstrap/grunt/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends" : "../js/.jshintrc", 3 | "asi" : false, 4 | "browser" : false, 5 | "es3" : false, 6 | "node" : true 7 | } 8 | -------------------------------------------------------------------------------- /bower_components/bootstrap/grunt/bs-commonjs-generator.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var fs = require('fs'); 3 | var path = require('path'); 4 | 5 | var COMMONJS_BANNER = '// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\n'; 6 | 7 | module.exports = function generateCommonJSModule(grunt, srcFiles, destFilepath) { 8 | var destDir = path.dirname(destFilepath); 9 | 10 | function srcPathToDestRequire(srcFilepath) { 11 | var requirePath = path.relative(destDir, srcFilepath).replace(/\\/g, '/'); 12 | return 'require(\'' + requirePath + '\')'; 13 | } 14 | 15 | var moduleOutputJs = COMMONJS_BANNER + srcFiles.map(srcPathToDestRequire).join('\n'); 16 | try { 17 | fs.writeFileSync(destFilepath, moduleOutputJs); 18 | } 19 | catch (err) { 20 | grunt.fail.warn(err); 21 | } 22 | grunt.log.writeln('File ' + destFilepath.cyan + ' created.'); 23 | }; 24 | -------------------------------------------------------------------------------- /bower_components/bootstrap/js/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "asi" : true, 3 | "browser" : true, 4 | "eqeqeq" : false, 5 | "eqnull" : true, 6 | "es3" : true, 7 | "expr" : true, 8 | "jquery" : true, 9 | "latedef" : true, 10 | "laxbreak" : true, 11 | "nonbsp" : true, 12 | "strict" : true, 13 | "undef" : true, 14 | "unused" : true 15 | } 16 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/.csslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "adjoining-classes": false, 3 | "box-sizing": false, 4 | "box-model": false, 5 | "compatible-vendor-prefixes": false, 6 | "floats": false, 7 | "font-sizes": false, 8 | "gradients": false, 9 | "important": false, 10 | "known-properties": false, 11 | "outline-none": false, 12 | "qualified-headings": false, 13 | "regex-selectors": false, 14 | "shorthand": false, 15 | "text-indent": false, 16 | "unique-headings": false, 17 | "universal-selector": false, 18 | "unqualified-attributes": false 19 | } 20 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; 8 | margin-bottom: @line-height-computed; 9 | list-style: none; 10 | background-color: @breadcrumb-bg; 11 | border-radius: @border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: @breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: @breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: (@font-size-base * 1.5); 9 | font-weight: @close-font-weight; 10 | line-height: 1; 11 | color: @close-color; 12 | text-shadow: @close-text-shadow; 13 | .opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: @close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | .opacity(.5); 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 27 | button& { 28 | padding: 0; 29 | cursor: pointer; 30 | background: transparent; 31 | border: 0; 32 | -webkit-appearance: none; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | 21 | &.in { display: block; } 22 | tr&.in { display: table-row; } 23 | tbody&.in { display: table-row-group; } 24 | } 25 | 26 | .collapsing { 27 | position: relative; 28 | height: 0; 29 | overflow: hidden; 30 | .transition-property(~"height, visibility"); 31 | .transition-duration(.35s); 32 | .transition-timing-function(ease); 33 | } 34 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/jumbotron.less: -------------------------------------------------------------------------------- 1 | // 2 | // Jumbotron 3 | // -------------------------------------------------- 4 | 5 | 6 | .jumbotron { 7 | padding: @jumbotron-padding (@jumbotron-padding / 2); 8 | margin-bottom: @jumbotron-padding; 9 | color: @jumbotron-color; 10 | background-color: @jumbotron-bg; 11 | 12 | h1, 13 | .h1 { 14 | color: @jumbotron-heading-color; 15 | } 16 | 17 | p { 18 | margin-bottom: (@jumbotron-padding / 2); 19 | font-size: @jumbotron-font-size; 20 | font-weight: 200; 21 | } 22 | 23 | > hr { 24 | border-top-color: darken(@jumbotron-bg, 10%); 25 | } 26 | 27 | .container &, 28 | .container-fluid & { 29 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container 30 | } 31 | 32 | .container { 33 | max-width: 100%; 34 | } 35 | 36 | @media screen and (min-width: @screen-sm-min) { 37 | padding: (@jumbotron-padding * 1.6) 0; 38 | 39 | .container &, 40 | .container-fluid & { 41 | padding-left: (@jumbotron-padding * 2); 42 | padding-right: (@jumbotron-padding * 2); 43 | } 44 | 45 | h1, 46 | .h1 { 47 | font-size: (@font-size-base * 4.5); 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/media.less: -------------------------------------------------------------------------------- 1 | .media { 2 | // Proper spacing between instances of .media 3 | margin-top: 15px; 4 | 5 | &:first-child { 6 | margin-top: 0; 7 | } 8 | } 9 | 10 | .media, 11 | .media-body { 12 | zoom: 1; 13 | overflow: hidden; 14 | } 15 | 16 | .media-body { 17 | width: 10000px; 18 | } 19 | 20 | .media-object { 21 | display: block; 22 | } 23 | 24 | .media-right, 25 | .media > .pull-right { 26 | padding-left: 10px; 27 | } 28 | 29 | .media-left, 30 | .media > .pull-left { 31 | padding-right: 10px; 32 | } 33 | 34 | .media-left, 35 | .media-right, 36 | .media-body { 37 | display: table-cell; 38 | vertical-align: top; 39 | } 40 | 41 | .media-middle { 42 | vertical-align: middle; 43 | } 44 | 45 | .media-bottom { 46 | vertical-align: bottom; 47 | } 48 | 49 | // Reset margins on headings for tighter default spacing 50 | .media-heading { 51 | margin-top: 0; 52 | margin-bottom: 5px; 53 | } 54 | 55 | // Media list variation 56 | // 57 | // Undo default ul/ol styles 58 | .media-list { 59 | padding-left: 0; 60 | list-style: none; 61 | } 62 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/alerts.less: -------------------------------------------------------------------------------- 1 | // Alerts 2 | 3 | .alert-variant(@background; @border; @text-color) { 4 | background-color: @background; 5 | border-color: @border; 6 | color: @text-color; 7 | 8 | hr { 9 | border-top-color: darken(@border, 5%); 10 | } 11 | .alert-link { 12 | color: darken(@text-color, 10%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/background-variant.less: -------------------------------------------------------------------------------- 1 | // Contextual backgrounds 2 | 3 | .bg-variant(@color) { 4 | background-color: @color; 5 | a&:hover { 6 | background-color: darken(@color, 10%); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/border-radius.less: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | .border-top-radius(@radius) { 4 | border-top-right-radius: @radius; 5 | border-top-left-radius: @radius; 6 | } 7 | .border-right-radius(@radius) { 8 | border-bottom-right-radius: @radius; 9 | border-top-right-radius: @radius; 10 | } 11 | .border-bottom-radius(@radius) { 12 | border-bottom-right-radius: @radius; 13 | border-bottom-left-radius: @radius; 14 | } 15 | .border-left-radius(@radius) { 16 | border-bottom-left-radius: @radius; 17 | border-top-left-radius: @radius; 18 | } 19 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/center-block.less: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | .center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/clearfix.less: -------------------------------------------------------------------------------- 1 | // Clearfix 2 | // 3 | // For modern browsers 4 | // 1. The space content is one way to avoid an Opera bug when the 5 | // contenteditable attribute is included anywhere else in the document. 6 | // Otherwise it causes space to appear at the top and bottom of elements 7 | // that are clearfixed. 8 | // 2. The use of `table` rather than `block` is only necessary if using 9 | // `:before` to contain the top-margins of child elements. 10 | // 11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/ 12 | 13 | .clearfix() { 14 | &:before, 15 | &:after { 16 | content: " "; // 1 17 | display: table; // 2 18 | } 19 | &:after { 20 | clear: both; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/hide-text.less: -------------------------------------------------------------------------------- 1 | // CSS image replacement 2 | // 3 | // Heads up! v3 launched with with only `.hide-text()`, but per our pattern for 4 | // mixins being reused as classes with the same name, this doesn't hold up. As 5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. 6 | // 7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 8 | 9 | // Deprecated as of v3.0.1 (will be removed in v4) 10 | .hide-text() { 11 | font: ~"0/0" a; 12 | color: transparent; 13 | text-shadow: none; 14 | background-color: transparent; 15 | border: 0; 16 | } 17 | 18 | // New mixin to use as of v3.0.1 19 | .text-hide() { 20 | .hide-text(); 21 | } 22 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/image.less: -------------------------------------------------------------------------------- 1 | // Image Mixins 2 | // - Responsive image 3 | // - Retina image 4 | 5 | 6 | // Responsive image 7 | // 8 | // Keep images from scaling beyond the width of their parents. 9 | .img-responsive(@display: block) { 10 | display: @display; 11 | max-width: 100%; // Part 1: Set a maximum relative to the parent 12 | height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching 13 | } 14 | 15 | 16 | // Retina image 17 | // 18 | // Short retina mixin for setting background-image and -size. Note that the 19 | // spelling of `min--moz-device-pixel-ratio` is intentional. 20 | .img-retina(@file-1x; @file-2x; @width-1x; @height-1x) { 21 | background-image: url("@{file-1x}"); 22 | 23 | @media 24 | only screen and (-webkit-min-device-pixel-ratio: 2), 25 | only screen and ( min--moz-device-pixel-ratio: 2), 26 | only screen and ( -o-min-device-pixel-ratio: 2/1), 27 | only screen and ( min-device-pixel-ratio: 2), 28 | only screen and ( min-resolution: 192dpi), 29 | only screen and ( min-resolution: 2dppx) { 30 | background-image: url("@{file-2x}"); 31 | background-size: @width-1x @height-1x; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/labels.less: -------------------------------------------------------------------------------- 1 | // Labels 2 | 3 | .label-variant(@color) { 4 | background-color: @color; 5 | 6 | &[href] { 7 | &:hover, 8 | &:focus { 9 | background-color: darken(@color, 10%); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/list-group.less: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | .list-group-item-variant(@state; @background; @color) { 4 | .list-group-item-@{state} { 5 | color: @color; 6 | background-color: @background; 7 | 8 | a& { 9 | color: @color; 10 | 11 | .list-group-item-heading { 12 | color: inherit; 13 | } 14 | 15 | &:hover, 16 | &:focus { 17 | color: @color; 18 | background-color: darken(@background, 5%); 19 | } 20 | &.active, 21 | &.active:hover, 22 | &.active:focus { 23 | color: #fff; 24 | background-color: @color; 25 | border-color: @color; 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/nav-divider.less: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | .nav-divider(@color: #e5e5e5) { 6 | height: 1px; 7 | margin: ((@line-height-computed / 2) - 1) 0; 8 | overflow: hidden; 9 | background-color: @color; 10 | } 11 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/nav-vertical-align.less: -------------------------------------------------------------------------------- 1 | // Navbar vertical align 2 | // 3 | // Vertically center elements in the navbar. 4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. 5 | 6 | .navbar-vertical-align(@element-height) { 7 | margin-top: ((@navbar-height - @element-height) / 2); 8 | margin-bottom: ((@navbar-height - @element-height) / 2); 9 | } 10 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/opacity.less: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | .opacity(@opacity) { 4 | opacity: @opacity; 5 | // IE8 filter 6 | @opacity-ie: (@opacity * 100); 7 | filter: ~"alpha(opacity=@{opacity-ie})"; 8 | } 9 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/pagination.less: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) { 4 | > li { 5 | > a, 6 | > span { 7 | padding: @padding-vertical @padding-horizontal; 8 | font-size: @font-size; 9 | } 10 | &:first-child { 11 | > a, 12 | > span { 13 | .border-left-radius(@border-radius); 14 | } 15 | } 16 | &:last-child { 17 | > a, 18 | > span { 19 | .border-right-radius(@border-radius); 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/panels.less: -------------------------------------------------------------------------------- 1 | // Panels 2 | 3 | .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) { 4 | border-color: @border; 5 | 6 | & > .panel-heading { 7 | color: @heading-text-color; 8 | background-color: @heading-bg-color; 9 | border-color: @heading-border; 10 | 11 | + .panel-collapse > .panel-body { 12 | border-top-color: @border; 13 | } 14 | .badge { 15 | color: @heading-bg-color; 16 | background-color: @heading-text-color; 17 | } 18 | } 19 | & > .panel-footer { 20 | + .panel-collapse > .panel-body { 21 | border-bottom-color: @border; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/progress-bar.less: -------------------------------------------------------------------------------- 1 | // Progress bars 2 | 3 | .progress-bar-variant(@color) { 4 | background-color: @color; 5 | 6 | // Deprecated parent class requirement as of v3.2.0 7 | .progress-striped & { 8 | #gradient > .striped(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/reset-filter.less: -------------------------------------------------------------------------------- 1 | // Reset filters for IE 2 | // 3 | // When you need to remove a gradient background, do not forget to use this to reset 4 | // the IE filter for IE9 and below. 5 | 6 | .reset-filter() { 7 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); 8 | } 9 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/resize.less: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | .resizable(@direction) { 4 | resize: @direction; // Options: horizontal, vertical, both 5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 6 | } 7 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/responsive-visibility.less: -------------------------------------------------------------------------------- 1 | // Responsive utilities 2 | 3 | // 4 | // More easily include all the states for responsive-utilities.less. 5 | .responsive-visibility() { 6 | display: block !important; 7 | table& { display: table; } 8 | tr& { display: table-row !important; } 9 | th&, 10 | td& { display: table-cell !important; } 11 | } 12 | 13 | .responsive-invisibility() { 14 | display: none !important; 15 | } 16 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/size.less: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | .size(@width; @height) { 4 | width: @width; 5 | height: @height; 6 | } 7 | 8 | .square(@size) { 9 | .size(@size; @size); 10 | } 11 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/tab-focus.less: -------------------------------------------------------------------------------- 1 | // WebKit-style focus 2 | 3 | .tab-focus() { 4 | // Default 5 | outline: thin dotted; 6 | // WebKit 7 | outline: 5px auto -webkit-focus-ring-color; 8 | outline-offset: -2px; 9 | } 10 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/table-row.less: -------------------------------------------------------------------------------- 1 | // Tables 2 | 3 | .table-row-variant(@state; @background) { 4 | // Exact selectors below required to override `.table-striped` and prevent 5 | // inheritance to nested tables. 6 | .table > thead > tr, 7 | .table > tbody > tr, 8 | .table > tfoot > tr { 9 | > td.@{state}, 10 | > th.@{state}, 11 | &.@{state} > td, 12 | &.@{state} > th { 13 | background-color: @background; 14 | } 15 | } 16 | 17 | // Hover states for `.table-hover` 18 | // Note: this is not available for cells or rows within `thead` or `tfoot`. 19 | .table-hover > tbody > tr { 20 | > td.@{state}:hover, 21 | > th.@{state}:hover, 22 | &.@{state}:hover > td, 23 | &:hover > .@{state}, 24 | &.@{state}:hover > th { 25 | background-color: darken(@background, 5%); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/text-emphasis.less: -------------------------------------------------------------------------------- 1 | // Typography 2 | 3 | .text-emphasis-variant(@color) { 4 | color: @color; 5 | a&:hover { 6 | color: darken(@color, 10%); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/mixins/text-overflow.less: -------------------------------------------------------------------------------- 1 | // Text overflow 2 | // Requires inline-block or block for proper styling 3 | 4 | .text-overflow() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/pager.less: -------------------------------------------------------------------------------- 1 | // 2 | // Pager pagination 3 | // -------------------------------------------------- 4 | 5 | 6 | .pager { 7 | padding-left: 0; 8 | margin: @line-height-computed 0; 9 | list-style: none; 10 | text-align: center; 11 | &:extend(.clearfix all); 12 | li { 13 | display: inline; 14 | > a, 15 | > span { 16 | display: inline-block; 17 | padding: 5px 14px; 18 | background-color: @pager-bg; 19 | border: 1px solid @pager-border; 20 | border-radius: @pager-border-radius; 21 | } 22 | 23 | > a:hover, 24 | > a:focus { 25 | text-decoration: none; 26 | background-color: @pager-hover-bg; 27 | } 28 | } 29 | 30 | .next { 31 | > a, 32 | > span { 33 | float: right; 34 | } 35 | } 36 | 37 | .previous { 38 | > a, 39 | > span { 40 | float: left; 41 | } 42 | } 43 | 44 | .disabled { 45 | > a, 46 | > a:hover, 47 | > a:focus, 48 | > span { 49 | color: @pager-disabled-color; 50 | background-color: @pager-bg; 51 | cursor: @cursor-disabled; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/responsive-embed.less: -------------------------------------------------------------------------------- 1 | // Embeds responsive 2 | // 3 | // Credit: Nicolas Gallagher and SUIT CSS. 4 | 5 | .embed-responsive { 6 | position: relative; 7 | display: block; 8 | height: 0; 9 | padding: 0; 10 | overflow: hidden; 11 | 12 | .embed-responsive-item, 13 | iframe, 14 | embed, 15 | object, 16 | video { 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | height: 100%; 22 | width: 100%; 23 | border: 0; 24 | } 25 | } 26 | 27 | // Modifier class for 16:9 aspect ratio 28 | .embed-responsive-16by9 { 29 | padding-bottom: 56.25%; 30 | } 31 | 32 | // Modifier class for 4:3 aspect ratio 33 | .embed-responsive-4by3 { 34 | padding-bottom: 75%; 35 | } 36 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/thumbnails.less: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Mixin and adjust the regular image class 7 | .thumbnail { 8 | display: block; 9 | padding: @thumbnail-padding; 10 | margin-bottom: @line-height-computed; 11 | line-height: @line-height-base; 12 | background-color: @thumbnail-bg; 13 | border: 1px solid @thumbnail-border; 14 | border-radius: @thumbnail-border-radius; 15 | .transition(border .2s ease-in-out); 16 | 17 | > img, 18 | a > img { 19 | &:extend(.img-responsive); 20 | margin-left: auto; 21 | margin-right: auto; 22 | } 23 | 24 | // Add a hover state for linked versions only 25 | a&:hover, 26 | a&:focus, 27 | a&.active { 28 | border-color: @link-color; 29 | } 30 | 31 | // Image captions 32 | .caption { 33 | padding: @thumbnail-caption-padding; 34 | color: @thumbnail-caption-color; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Floats 7 | // ------------------------- 8 | 9 | .clearfix { 10 | .clearfix(); 11 | } 12 | .center-block { 13 | .center-block(); 14 | } 15 | .pull-right { 16 | float: right !important; 17 | } 18 | .pull-left { 19 | float: left !important; 20 | } 21 | 22 | 23 | // Toggling content 24 | // ------------------------- 25 | 26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 27 | .hide { 28 | display: none !important; 29 | } 30 | .show { 31 | display: block !important; 32 | } 33 | .invisible { 34 | visibility: hidden; 35 | } 36 | .text-hide { 37 | .text-hide(); 38 | } 39 | 40 | 41 | // Hide from screenreaders and browsers 42 | // 43 | // Credit: HTML5 Boilerplate 44 | 45 | .hidden { 46 | display: none !important; 47 | } 48 | 49 | 50 | // For Affix plugin 51 | // ------------------------- 52 | 53 | .affix { 54 | position: fixed; 55 | } 56 | -------------------------------------------------------------------------------- /bower_components/bootstrap/less/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @well-bg; 12 | border: 1px solid @well-border; 13 | border-radius: @border-radius-base; 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-lg { 23 | padding: 24px; 24 | border-radius: @border-radius-large; 25 | } 26 | .well-sm { 27 | padding: 9px; 28 | border-radius: @border-radius-small; 29 | } 30 | -------------------------------------------------------------------------------- /bower_components/bootstrap/package.js: -------------------------------------------------------------------------------- 1 | // package metadata file for Meteor.js 2 | 3 | Package.describe({ 4 | name: 'twbs:bootstrap', // http://atmospherejs.com/twbs/bootstrap 5 | summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.', 6 | version: '3.3.4', 7 | git: 'https://github.com/twbs/bootstrap.git' 8 | }); 9 | 10 | Package.onUse(function (api) { 11 | api.versionsFrom('METEOR@1.0'); 12 | api.use('jquery', 'client'); 13 | api.addFiles([ 14 | 'dist/fonts/glyphicons-halflings-regular.eot', 15 | 'dist/fonts/glyphicons-halflings-regular.svg', 16 | 'dist/fonts/glyphicons-halflings-regular.ttf', 17 | 'dist/fonts/glyphicons-halflings-regular.woff', 18 | 'dist/fonts/glyphicons-halflings-regular.woff2', 19 | 'dist/css/bootstrap.css', 20 | 'dist/js/bootstrap.js', 21 | ], 'client'); 22 | }); 23 | -------------------------------------------------------------------------------- /bower_components/codemirror/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CodeMirror", 3 | "version": "3.16.0", 4 | "main": [ 5 | "lib/codemirror.js", 6 | "lib/codemirror.css" 7 | ], 8 | "ignore": [ 9 | "**/.*", 10 | "node_modules", 11 | "components", 12 | "bin", 13 | "demo", 14 | "doc", 15 | "test", 16 | "index.html", 17 | "package.json" 18 | ], 19 | "homepage": "https://github.com/marijnh/CodeMirror", 20 | "_release": "3.16.0", 21 | "_resolution": { 22 | "type": "version", 23 | "tag": "3.16.0", 24 | "commit": "633bd90072a034782ac2f6ef2ce97910c6bf03a7" 25 | }, 26 | "_source": "git://github.com/marijnh/CodeMirror.git", 27 | "_target": "~3.16.0", 28 | "_originalSource": "codemirror" 29 | } -------------------------------------------------------------------------------- /bower_components/codemirror/README.md: -------------------------------------------------------------------------------- 1 | # CodeMirror 2 | [![Build Status](https://secure.travis-ci.org/marijnh/CodeMirror.png?branch=master)](http://travis-ci.org/marijnh/CodeMirror) 3 | [![NPM version](https://badge.fury.io/js/codemirror.png)](http://badge.fury.io/js/codemirror) 4 | 5 | CodeMirror is a JavaScript component that provides a code editor in 6 | the browser. When a mode is available for the language you are coding 7 | in, it will color your code, and optionally help with indentation. 8 | 9 | The project page is http://codemirror.net 10 | The manual is at http://codemirror.net/doc/manual.html 11 | The contributing guidelines are in [CONTRIBUTING.md](https://github.com/marijnh/CodeMirror/blob/master/CONTRIBUTING.md) 12 | -------------------------------------------------------------------------------- /bower_components/codemirror/addon/dialog/dialog.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-dialog { 2 | position: absolute; 3 | left: 0; right: 0; 4 | background: white; 5 | z-index: 15; 6 | padding: .1em .8em; 7 | overflow: hidden; 8 | color: #333; 9 | } 10 | 11 | .CodeMirror-dialog-top { 12 | border-bottom: 1px solid #eee; 13 | top: 0; 14 | } 15 | 16 | .CodeMirror-dialog-bottom { 17 | border-top: 1px solid #eee; 18 | bottom: 0; 19 | } 20 | 21 | .CodeMirror-dialog input { 22 | border: none; 23 | outline: none; 24 | background: transparent; 25 | width: 20em; 26 | color: inherit; 27 | font-family: monospace; 28 | } 29 | 30 | .CodeMirror-dialog button { 31 | font-size: 70%; 32 | } 33 | -------------------------------------------------------------------------------- /bower_components/codemirror/addon/display/fullscreen.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-fullscreen { 2 | position: fixed; 3 | top: 0; left: 0; right: 0; bottom: 0; 4 | height: auto; 5 | z-index: 9999; 6 | } 7 | -------------------------------------------------------------------------------- /bower_components/codemirror/addon/display/fullscreen.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | "use strict"; 3 | 4 | CodeMirror.defineOption("fullScreen", false, function(cm, val, old) { 5 | if (old == CodeMirror.Init) old = false; 6 | if (!old == !val) return; 7 | if (val) setFullscreen(cm); 8 | else setNormal(cm); 9 | }); 10 | 11 | function setFullscreen(cm) { 12 | var wrap = cm.getWrapperElement(); 13 | cm.state.fullScreenRestore = {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset, 14 | width: wrap.style.width, height: wrap.style.height}; 15 | wrap.style.width = wrap.style.height = ""; 16 | wrap.className += " CodeMirror-fullscreen"; 17 | document.documentElement.style.overflow = "hidden"; 18 | cm.refresh(); 19 | } 20 | 21 | function setNormal(cm) { 22 | var wrap = cm.getWrapperElement(); 23 | wrap.className = wrap.className.replace(/\s*CodeMirror-fullscreen\b/, ""); 24 | document.documentElement.style.overflow = ""; 25 | var info = cm.state.fullScreenRestore; 26 | wrap.style.width = info.width; wrap.style.height = info.height; 27 | window.scrollTo(info.scrollLeft, info.scrollTop); 28 | cm.refresh(); 29 | } 30 | })(); 31 | -------------------------------------------------------------------------------- /bower_components/codemirror/addon/edit/continuelist.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 'use strict'; 3 | 4 | var listRE = /^(\s*)([*+-]|(\d+)\.)(\s*)/, 5 | unorderedBullets = '*+-'; 6 | 7 | CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) { 8 | var pos = cm.getCursor(), 9 | inList = cm.getStateAfter(pos.line).list, 10 | match; 11 | 12 | if (!inList || !(match = cm.getLine(pos.line).match(listRE))) { 13 | cm.execCommand('newlineAndIndent'); 14 | return; 15 | } 16 | 17 | var indent = match[1], after = match[4]; 18 | var bullet = unorderedBullets.indexOf(match[2]) >= 0 19 | ? match[2] 20 | : (parseInt(match[3], 10) + 1) + '.'; 21 | 22 | cm.replaceSelection('\n' + indent + bullet + after, 'end'); 23 | }; 24 | 25 | }()); 26 | -------------------------------------------------------------------------------- /bower_components/codemirror/addon/edit/trailingspace.js: -------------------------------------------------------------------------------- 1 | CodeMirror.defineOption("showTrailingSpace", false, function(cm, val, prev) { 2 | if (prev == CodeMirror.Init) prev = false; 3 | if (prev && !val) 4 | cm.removeOverlay("trailingspace"); 5 | else if (!prev && val) 6 | cm.addOverlay({ 7 | token: function(stream) { 8 | for (var l = stream.string.length, i = l; i && /\s/.test(stream.string.charAt(i - 1)); --i) {} 9 | if (i > stream.pos) { stream.pos = i; return null; } 10 | stream.pos = l; 11 | return "trailingspace"; 12 | }, 13 | name: "trailingspace" 14 | }); 15 | }); 16 | -------------------------------------------------------------------------------- /bower_components/codemirror/addon/fold/indent-fold.js: -------------------------------------------------------------------------------- 1 | CodeMirror.registerHelper("fold", "indent", function(cm, start) { 2 | var tabSize = cm.getOption("tabSize"), firstLine = cm.getLine(start.line); 3 | var myIndent = CodeMirror.countColumn(firstLine, null, tabSize); 4 | for (var i = start.line + 1, end = cm.lineCount(); i < end; ++i) { 5 | var curLine = cm.getLine(i); 6 | if (CodeMirror.countColumn(curLine, null, tabSize) < myIndent && 7 | CodeMirror.countColumn(cm.getLine(i-1), null, tabSize) > myIndent) 8 | return {from: CodeMirror.Pos(start.line, firstLine.length), 9 | to: CodeMirror.Pos(i, curLine.length)}; 10 | } 11 | }); 12 | CodeMirror.indentRangeFinder = CodeMirror.fold.indent; // deprecated 13 | -------------------------------------------------------------------------------- /bower_components/codemirror/addon/hint/show-hint.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-hints { 2 | position: absolute; 3 | z-index: 10; 4 | overflow: hidden; 5 | list-style: none; 6 | 7 | margin: 0; 8 | padding: 2px; 9 | 10 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 11 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 12 | box-shadow: 2px 3px 5px rgba(0,0,0,.2); 13 | border-radius: 3px; 14 | border: 1px solid silver; 15 | 16 | background: white; 17 | font-size: 90%; 18 | font-family: monospace; 19 | 20 | max-height: 20em; 21 | overflow-y: auto; 22 | } 23 | 24 | .CodeMirror-hint { 25 | margin: 0; 26 | padding: 0 4px; 27 | border-radius: 2px; 28 | max-width: 19em; 29 | overflow: hidden; 30 | white-space: pre; 31 | color: black; 32 | cursor: pointer; 33 | } 34 | 35 | .CodeMirror-hint-active { 36 | background: #08f; 37 | color: white; 38 | } 39 | -------------------------------------------------------------------------------- /bower_components/codemirror/addon/lint/coffeescript-lint.js: -------------------------------------------------------------------------------- 1 | // Depends on coffeelint.js from http://www.coffeelint.org/js/coffeelint.js 2 | 3 | CodeMirror.registerHelper("lint", "coffeescript", function(text) { 4 | var found = []; 5 | var parseError = function(err) { 6 | var loc = err.lineNumber; 7 | found.push({from: CodeMirror.Pos(loc-1, 0), 8 | to: CodeMirror.Pos(loc, 0), 9 | severity: err.level, 10 | message: err.message}); 11 | }; 12 | try { 13 | var res = coffeelint.lint(text); 14 | for(var i = 0; i < res.length; i++) { 15 | parseError(res[i]); 16 | } 17 | } catch(e) { 18 | found.push({from: CodeMirror.Pos(e.location.first_line, 0), 19 | to: CodeMirror.Pos(e.location.last_line, e.location.last_column), 20 | severity: 'error', 21 | message: e.message}); 22 | } 23 | return found; 24 | }); 25 | CodeMirror.coffeeValidator = CodeMirror.lint.coffeescript; // deprecated 26 | -------------------------------------------------------------------------------- /bower_components/codemirror/addon/lint/json-lint.js: -------------------------------------------------------------------------------- 1 | // Depends on jsonlint.js from https://github.com/zaach/jsonlint 2 | 3 | CodeMirror.registerHelper("lint", "json", function(text) { 4 | var found = []; 5 | jsonlint.parseError = function(str, hash) { 6 | var loc = hash.loc; 7 | found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column), 8 | to: CodeMirror.Pos(loc.last_line - 1, loc.last_column), 9 | message: str}); 10 | }; 11 | try { jsonlint.parse(text); } 12 | catch(e) {} 13 | return found; 14 | }); 15 | CodeMirror.jsonValidator = CodeMirror.lint.json; // deprecated 16 | -------------------------------------------------------------------------------- /bower_components/codemirror/addon/mode/multiplex_test.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | CodeMirror.defineMode("markdown_with_stex", function(){ 3 | var inner = CodeMirror.getMode({}, "stex"); 4 | var outer = CodeMirror.getMode({}, "markdown"); 5 | 6 | var innerOptions = { 7 | open: '$', 8 | close: '$', 9 | mode: inner, 10 | delimStyle: 'delim', 11 | innerStyle: 'inner' 12 | }; 13 | 14 | return CodeMirror.multiplexingMode(outer, innerOptions); 15 | }); 16 | 17 | var mode = CodeMirror.getMode({}, "markdown_with_stex"); 18 | 19 | function MT(name) { 20 | test.mode( 21 | name, 22 | mode, 23 | Array.prototype.slice.call(arguments, 1), 24 | 'multiplexing'); 25 | } 26 | 27 | MT( 28 | "stexInsideMarkdown", 29 | "[strong **Equation:**] [delim $][inner&tag \\pi][delim $]"); 30 | })(); 31 | -------------------------------------------------------------------------------- /bower_components/codemirror/addon/runmode/colorize.js: -------------------------------------------------------------------------------- 1 | CodeMirror.colorize = (function() { 2 | 3 | var isBlock = /^(p|li|div|h\\d|pre|blockquote|td)$/; 4 | 5 | function textContent(node, out) { 6 | if (node.nodeType == 3) return out.push(node.nodeValue); 7 | for (var ch = node.firstChild; ch; ch = ch.nextSibling) { 8 | textContent(ch, out); 9 | if (isBlock.test(node.nodeType)) out.push("\n"); 10 | } 11 | } 12 | 13 | return function(collection, defaultMode) { 14 | if (!collection) collection = document.body.getElementsByTagName("pre"); 15 | 16 | for (var i = 0; i < collection.length; ++i) { 17 | var node = collection[i]; 18 | var mode = node.getAttribute("data-lang") || defaultMode; 19 | if (!mode) continue; 20 | 21 | var text = []; 22 | textContent(node, text); 23 | node.innerHTML = ""; 24 | CodeMirror.runMode(text.join(""), mode, node); 25 | 26 | node.className += " cm-s-default"; 27 | } 28 | }; 29 | })(); 30 | -------------------------------------------------------------------------------- /bower_components/codemirror/addon/scroll/scrollpastend.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | "use strict"; 3 | 4 | CodeMirror.defineOption("scrollPastEnd", false, function(cm, val, old) { 5 | if (old && old != CodeMirror.Init) { 6 | cm.off("change", onChange); 7 | cm.display.lineSpace.parentNode.style.paddingBottom = ""; 8 | cm.state.scrollPastEndPadding = null; 9 | } 10 | if (val) { 11 | cm.on("change", onChange); 12 | updateBottomMargin(cm); 13 | } 14 | }); 15 | 16 | function onChange(cm, change) { 17 | if (CodeMirror.changeEnd(change).line == cm.lastLine()) 18 | updateBottomMargin(cm); 19 | } 20 | 21 | function updateBottomMargin(cm) { 22 | var padding = ""; 23 | if (cm.lineCount() > 1) { 24 | var totalH = cm.display.scroller.clientHeight - 30, 25 | lastLineH = cm.getLineHandle(cm.lastLine()).height; 26 | padding = (totalH - lastLineH) + "px"; 27 | } 28 | if (cm.state.scrollPastEndPadding != padding) { 29 | cm.state.scrollPastEndPadding = padding; 30 | cm.display.lineSpace.parentNode.style.paddingBottom = padding; 31 | cm.setSize(); 32 | } 33 | } 34 | })(); 35 | -------------------------------------------------------------------------------- /bower_components/codemirror/addon/tern/worker.js: -------------------------------------------------------------------------------- 1 | var server; 2 | 3 | this.onmessage = function(e) { 4 | var data = e.data; 5 | switch (data.type) { 6 | case "init": return startServer(data.defs, data.plugins, data.scripts); 7 | case "add": return server.addFile(data.name, data.text); 8 | case "del": return server.delFile(data.name); 9 | case "req": return server.request(data.body, function(err, reqData) { 10 | postMessage({id: data.id, body: reqData, err: err && String(err)}); 11 | }); 12 | case "getFile": 13 | var c = pending[data.id]; 14 | delete pending[data.id]; 15 | return c(data.err, data.text); 16 | default: throw new Error("Unknown message type: " + data.type); 17 | } 18 | }; 19 | 20 | var nextId = 0, pending = {}; 21 | function getFile(file, c) { 22 | postMessage({type: "getFile", name: file, id: ++nextId}); 23 | pending[nextId] = c; 24 | } 25 | 26 | function startServer(defs, plugins, scripts) { 27 | if (scripts) importScripts.apply(null, scripts); 28 | 29 | server = new tern.Server({ 30 | getFile: getFile, 31 | async: true, 32 | defs: defs, 33 | plugins: plugins 34 | }); 35 | } 36 | 37 | var console = { 38 | log: function(v) { postMessage({type: "debug", message: v}); } 39 | }; 40 | -------------------------------------------------------------------------------- /bower_components/codemirror/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CodeMirror", 3 | "version": "3.16.0", 4 | "main": ["lib/codemirror.js", "lib/codemirror.css"], 5 | "ignore": [ 6 | "**/.*", 7 | "node_modules", 8 | "components", 9 | "bin", 10 | "demo", 11 | "doc", 12 | "test", 13 | "index.html", 14 | "package.json" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /bower_components/codemirror/mode/diff/diff.js: -------------------------------------------------------------------------------- 1 | CodeMirror.defineMode("diff", function() { 2 | 3 | var TOKEN_NAMES = { 4 | '+': 'positive', 5 | '-': 'negative', 6 | '@': 'meta' 7 | }; 8 | 9 | return { 10 | token: function(stream) { 11 | var tw_pos = stream.string.search(/[\t ]+?$/); 12 | 13 | if (!stream.sol() || tw_pos === 0) { 14 | stream.skipToEnd(); 15 | return ("error " + ( 16 | TOKEN_NAMES[stream.string.charAt(0)] || '')).replace(/ $/, ''); 17 | } 18 | 19 | var token_name = TOKEN_NAMES[stream.peek()] || stream.skipToEnd(); 20 | 21 | if (tw_pos === -1) { 22 | stream.skipToEnd(); 23 | } else { 24 | stream.pos = tw_pos; 25 | } 26 | 27 | return token_name; 28 | } 29 | }; 30 | }); 31 | 32 | CodeMirror.defineMIME("text/x-diff", "diff"); 33 | -------------------------------------------------------------------------------- /bower_components/codemirror/mode/javascript/test.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var mode = CodeMirror.getMode({indentUnit: 2}, "javascript"); 3 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } 4 | 5 | MT("locals", 6 | "[keyword function] [variable foo]([def a], [def b]) { [keyword var] [def c] = [number 10]; [keyword return] [variable-2 a] + [variable-2 c] + [variable d]; }"); 7 | 8 | MT("comma-and-binop", 9 | "[keyword function](){ [keyword var] [def x] = [number 1] + [number 2], [def y]; }"); 10 | })(); 11 | -------------------------------------------------------------------------------- /bower_components/codemirror/mode/rpm/changes/changes.js: -------------------------------------------------------------------------------- 1 | CodeMirror.defineMode("changes", function() { 2 | var headerSeperator = /^-+$/; 3 | var headerLine = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /; 4 | var simpleEmail = /^[\w+.-]+@[\w.-]+/; 5 | 6 | return { 7 | token: function(stream) { 8 | if (stream.sol()) { 9 | if (stream.match(headerSeperator)) { return 'tag'; } 10 | if (stream.match(headerLine)) { return 'tag'; } 11 | } 12 | if (stream.match(simpleEmail)) { return 'string'; } 13 | stream.next(); 14 | return null; 15 | } 16 | }; 17 | }); 18 | 19 | CodeMirror.defineMIME("text/x-rpm-changes", "changes"); 20 | -------------------------------------------------------------------------------- /bower_components/codemirror/mode/rpm/spec/spec.css: -------------------------------------------------------------------------------- 1 | .cm-s-default span.cm-preamble {color: #b26818; font-weight: bold;} 2 | .cm-s-default span.cm-macro {color: #b218b2;} 3 | .cm-s-default span.cm-section {color: green; font-weight: bold;} 4 | .cm-s-default span.cm-script {color: red;} 5 | .cm-s-default span.cm-issue {color: yellow;} 6 | -------------------------------------------------------------------------------- /bower_components/codemirror/mode/tiddlywiki/tiddlywiki.css: -------------------------------------------------------------------------------- 1 | span.cm-underlined { 2 | text-decoration: underline; 3 | } 4 | span.cm-strikethrough { 5 | text-decoration: line-through; 6 | } 7 | span.cm-brace { 8 | color: #170; 9 | font-weight: bold; 10 | } 11 | span.cm-table { 12 | color: blue; 13 | font-weight: bold; 14 | } 15 | -------------------------------------------------------------------------------- /bower_components/codemirror/mode/tiki/tiki.css: -------------------------------------------------------------------------------- 1 | .cm-tw-syntaxerror { 2 | color: #FFF; 3 | background-color: #900; 4 | } 5 | 6 | .cm-tw-deleted { 7 | text-decoration: line-through; 8 | } 9 | 10 | .cm-tw-header5 { 11 | font-weight: bold; 12 | } 13 | .cm-tw-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/ 14 | padding-left: 10px; 15 | } 16 | 17 | .cm-tw-box { 18 | border-top-width: 0px ! important; 19 | border-style: solid; 20 | border-width: 1px; 21 | border-color: inherit; 22 | } 23 | 24 | .cm-tw-underline { 25 | text-decoration: underline; 26 | } -------------------------------------------------------------------------------- /bower_components/codemirror/theme/ambiance-mobile.css: -------------------------------------------------------------------------------- 1 | .cm-s-ambiance.CodeMirror { 2 | -webkit-box-shadow: none; 3 | -moz-box-shadow: none; 4 | box-shadow: none; 5 | } 6 | -------------------------------------------------------------------------------- /bower_components/codemirror/theme/elegant.css: -------------------------------------------------------------------------------- 1 | .cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom {color: #762;} 2 | .cm-s-elegant span.cm-comment {color: #262; font-style: italic; line-height: 1em;} 3 | .cm-s-elegant span.cm-meta {color: #555; font-style: italic; line-height: 1em;} 4 | .cm-s-elegant span.cm-variable {color: black;} 5 | .cm-s-elegant span.cm-variable-2 {color: #b11;} 6 | .cm-s-elegant span.cm-qualifier {color: #555;} 7 | .cm-s-elegant span.cm-keyword {color: #730;} 8 | .cm-s-elegant span.cm-builtin {color: #30a;} 9 | .cm-s-elegant span.cm-error {background-color: #fdd;} 10 | .cm-s-elegant span.cm-link {color: #762;} 11 | 12 | .cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff !important;} 13 | .cm-s-elegant .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 14 | -------------------------------------------------------------------------------- /bower_components/codemirror/theme/neat.css: -------------------------------------------------------------------------------- 1 | .cm-s-neat span.cm-comment { color: #a86; } 2 | .cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; } 3 | .cm-s-neat span.cm-string { color: #a22; } 4 | .cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; } 5 | .cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; } 6 | .cm-s-neat span.cm-variable { color: black; } 7 | .cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; } 8 | .cm-s-neat span.cm-meta {color: #555;} 9 | .cm-s-neat span.cm-link { color: #3a3; } 10 | 11 | .cm-s-neat .CodeMirror-activeline-background {background: #e8f2ff !important;} 12 | .cm-s-neat .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 13 | -------------------------------------------------------------------------------- /bower_components/cs_console/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cs_console", 3 | "_cacheHeaders": { 4 | "ETag": "\"8e3d2722e53a8605641e755bb6b71810da145c30\"", 5 | "Content-Type": "application/zip", 6 | "Content-Disposition": "attachment; filename=cs_console-master.zip" 7 | }, 8 | "_release": "e-tag:8e3d2722e", 9 | "_source": "https://github.com/renz45/cs_console/archive/master.zip", 10 | "_target": "*", 11 | "_originalSource": "https://github.com/renz45/cs_console/archive/master.zip" 12 | } -------------------------------------------------------------------------------- /bower_components/cs_console/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | tmp/ 3 | compiled/ -------------------------------------------------------------------------------- /bower_components/cs_console/CHANGE_LOG.md: -------------------------------------------------------------------------------- 1 | * 1.1.1 - Remove the code highlighting from the welcome message 2 | 3 | * 1.1.0 - Remove `
` elements in favor of `

` so that spacing is easier to control with css -------------------------------------------------------------------------------- /bower_components/cs_console/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | group :development do 4 | gem 'coffee-script' 5 | gem 'compass' 6 | gem 'rake-pipeline' 7 | gem 'rake-pipeline-web-filters' 8 | gem 'sass' 9 | gem 'thor' 10 | gem 'pry' 11 | gem 'activesupport' 12 | gem 'i18n' 13 | end 14 | -------------------------------------------------------------------------------- /bower_components/cs_console/Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | activesupport (3.0.0) 5 | chunky_png (1.2.8) 6 | coderay (1.0.9) 7 | coffee-script (2.2.0) 8 | coffee-script-source 9 | execjs 10 | coffee-script-source (1.6.2) 11 | compass (0.12.2) 12 | chunky_png (~> 1.2) 13 | fssm (>= 0.2.7) 14 | sass (~> 3.1) 15 | execjs (1.4.0) 16 | multi_json (~> 1.0) 17 | fssm (0.2.10) 18 | i18n (0.6.4) 19 | json (1.8.0) 20 | method_source (0.8.1) 21 | multi_json (1.7.3) 22 | pry (0.9.12.2) 23 | coderay (~> 1.0.5) 24 | method_source (~> 0.8) 25 | slop (~> 3.4) 26 | rack (1.5.2) 27 | rake (0.9.6) 28 | rake-pipeline (0.7.0) 29 | json 30 | rake (~> 0.9.0) 31 | thor 32 | rake-pipeline-web-filters (0.7.0) 33 | rack 34 | rake-pipeline (~> 0.6) 35 | sass (3.2.9) 36 | slop (3.4.5) 37 | thor (0.18.1) 38 | 39 | PLATFORMS 40 | ruby 41 | 42 | DEPENDENCIES 43 | activesupport 44 | coffee-script 45 | compass 46 | i18n 47 | pry 48 | rake-pipeline 49 | rake-pipeline-web-filters 50 | sass 51 | thor 52 | -------------------------------------------------------------------------------- /bower_components/cs_console/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 Adam Rensel, Code School LLC 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /bower_components/cs_console/Version: -------------------------------------------------------------------------------- 1 | 1.1.1 -------------------------------------------------------------------------------- /bower_components/cs_console/app/stylesheets/application.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/bower_components/cs_console/app/stylesheets/application.css -------------------------------------------------------------------------------- /bower_components/cs_console/app/vendor/javascripts/codemirror/mode/diff/diff.js: -------------------------------------------------------------------------------- 1 | CodeMirror.defineMode("diff", function() { 2 | 3 | var TOKEN_NAMES = { 4 | '+': 'positive', 5 | '-': 'negative', 6 | '@': 'meta' 7 | }; 8 | 9 | return { 10 | token: function(stream) { 11 | var tw_pos = stream.string.search(/[\t ]+?$/); 12 | 13 | if (!stream.sol() || tw_pos === 0) { 14 | stream.skipToEnd(); 15 | return ("error " + ( 16 | TOKEN_NAMES[stream.string.charAt(0)] || '')).replace(/ $/, ''); 17 | } 18 | 19 | var token_name = TOKEN_NAMES[stream.peek()] || stream.skipToEnd(); 20 | 21 | if (tw_pos === -1) { 22 | stream.skipToEnd(); 23 | } else { 24 | stream.pos = tw_pos; 25 | } 26 | 27 | return token_name; 28 | } 29 | }; 30 | }); 31 | 32 | CodeMirror.defineMIME("text/x-diff", "diff"); 33 | -------------------------------------------------------------------------------- /bower_components/cs_console/app/vendor/javascripts/codemirror/mode/ntriples/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeMirror: NTriples mode 6 | 7 | 8 | 9 | 10 | 15 | 16 | 17 |

CodeMirror: NTriples mode

18 |
19 | 26 |
27 | 28 | 31 |

MIME types defined: text/n-triples.

32 | 33 | 34 | -------------------------------------------------------------------------------- /bower_components/cs_console/app/vendor/javascripts/codemirror/mode/pascal/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011 souceLair 2 | 3 | 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: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | 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. 8 | -------------------------------------------------------------------------------- /bower_components/cs_console/app/vendor/javascripts/codemirror/mode/perl/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2011 by Sabaca under the MIT license. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /bower_components/cs_console/app/vendor/javascripts/codemirror/mode/python/LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2010 Timothy Farrell 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /bower_components/cs_console/app/vendor/javascripts/codemirror/mode/rpm/changes/changes.js: -------------------------------------------------------------------------------- 1 | CodeMirror.defineMode("changes", function() { 2 | var headerSeperator = /^-+$/; 3 | var headerLine = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /; 4 | var simpleEmail = /^[\w+.-]+@[\w.-]+/; 5 | 6 | return { 7 | token: function(stream) { 8 | if (stream.sol()) { 9 | if (stream.match(headerSeperator)) { return 'tag'; } 10 | if (stream.match(headerLine)) { return 'tag'; } 11 | } 12 | if (stream.match(simpleEmail)) { return 'string'; } 13 | stream.next(); 14 | return null; 15 | } 16 | }; 17 | }); 18 | 19 | CodeMirror.defineMIME("text/x-rpm-changes", "changes"); 20 | -------------------------------------------------------------------------------- /bower_components/cs_console/app/vendor/javascripts/codemirror/mode/rpm/spec/spec.css: -------------------------------------------------------------------------------- 1 | .cm-s-default span.cm-preamble {color: #b26818; font-weight: bold;} 2 | .cm-s-default span.cm-macro {color: #b218b2;} 3 | .cm-s-default span.cm-section {color: green; font-weight: bold;} 4 | .cm-s-default span.cm-script {color: red;} 5 | .cm-s-default span.cm-issue {color: yellow;} 6 | -------------------------------------------------------------------------------- /bower_components/cs_console/app/vendor/javascripts/codemirror/mode/rst/LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2013 Hasan Karahan 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /bower_components/cs_console/app/vendor/javascripts/codemirror/mode/sieve/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2012 Thomas Schmid 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /bower_components/cs_console/app/vendor/javascripts/codemirror/mode/tiddlywiki/tiddlywiki.css: -------------------------------------------------------------------------------- 1 | span.cm-underlined { 2 | text-decoration: underline; 3 | } 4 | span.cm-strikethrough { 5 | text-decoration: line-through; 6 | } 7 | span.cm-brace { 8 | color: #170; 9 | font-weight: bold; 10 | } 11 | span.cm-table { 12 | color: blue; 13 | font-weight: bold; 14 | } 15 | -------------------------------------------------------------------------------- /bower_components/cs_console/app/vendor/javascripts/codemirror/mode/tiki/tiki.css: -------------------------------------------------------------------------------- 1 | .cm-tw-syntaxerror { 2 | color: #FFF; 3 | background-color: #900; 4 | } 5 | 6 | .cm-tw-deleted { 7 | text-decoration: line-through; 8 | } 9 | 10 | .cm-tw-header5 { 11 | font-weight: bold; 12 | } 13 | .cm-tw-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/ 14 | padding-left: 10px; 15 | } 16 | 17 | .cm-tw-box { 18 | border-top-width: 0px ! important; 19 | border-style: solid; 20 | border-width: 1px; 21 | border-color: inherit; 22 | } 23 | 24 | .cm-tw-underline { 25 | text-decoration: underline; 26 | } -------------------------------------------------------------------------------- /bower_components/cs_console/app/vendor/javascripts/codemirror/mode/vbscript/vbscript.js: -------------------------------------------------------------------------------- 1 | CodeMirror.defineMode("vbscript", function() { 2 | var regexVBScriptKeyword = /^(?:Call|Case|CDate|Clear|CInt|CLng|Const|CStr|Description|Dim|Do|Each|Else|ElseIf|End|Err|Error|Exit|False|For|Function|If|LCase|Loop|LTrim|Next|Nothing|Now|Number|On|Preserve|Quit|ReDim|Resume|RTrim|Select|Set|Sub|Then|To|Trim|True|UBound|UCase|Until|VbCr|VbCrLf|VbLf|VbTab)$/im; 3 | 4 | return { 5 | token: function(stream) { 6 | if (stream.eatSpace()) return null; 7 | var ch = stream.next(); 8 | if (ch == "'") { 9 | stream.skipToEnd(); 10 | return "comment"; 11 | } 12 | if (ch == '"') { 13 | stream.skipTo('"'); 14 | return "string"; 15 | } 16 | 17 | if (/\w/.test(ch)) { 18 | stream.eatWhile(/\w/); 19 | if (regexVBScriptKeyword.test(stream.current())) return "keyword"; 20 | } 21 | return null; 22 | } 23 | }; 24 | }); 25 | 26 | CodeMirror.defineMIME("text/vbscript", "vbscript"); 27 | -------------------------------------------------------------------------------- /bower_components/cs_console/app/vendor/javascripts/codemirror/mode/xquery/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2011 by MarkLogic Corporation 2 | Author: Mike Brevoort 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. -------------------------------------------------------------------------------- /bower_components/cs_console/app/vendor/stylesheets/codemirror/theme/cobalt.css: -------------------------------------------------------------------------------- 1 | .cm-s-cobalt { background: #002240; color: white; } 2 | .cm-s-cobalt div.CodeMirror-selected { background: #b36539 !important; } 3 | .cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; } 4 | .cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; } 5 | .cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white !important; } 6 | 7 | .cm-s-cobalt span.cm-comment { color: #08f; } 8 | .cm-s-cobalt span.cm-atom { color: #845dc4; } 9 | .cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; } 10 | .cm-s-cobalt span.cm-keyword { color: #ffee80; } 11 | .cm-s-cobalt span.cm-string { color: #3ad900; } 12 | .cm-s-cobalt span.cm-meta { color: #ff9d00; } 13 | .cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; } 14 | .cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def { color: white; } 15 | .cm-s-cobalt span.cm-error { color: #9d1e15; } 16 | .cm-s-cobalt span.cm-bracket { color: #d8d8d8; } 17 | .cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; } 18 | .cm-s-cobalt span.cm-link { color: #845dc4; } 19 | -------------------------------------------------------------------------------- /bower_components/cs_console/app/vendor/stylesheets/codemirror/theme/eclipse.css: -------------------------------------------------------------------------------- 1 | .cm-s-eclipse span.cm-meta {color: #FF1717;} 2 | .cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; } 3 | .cm-s-eclipse span.cm-atom {color: #219;} 4 | .cm-s-eclipse span.cm-number {color: #164;} 5 | .cm-s-eclipse span.cm-def {color: #00f;} 6 | .cm-s-eclipse span.cm-variable {color: black;} 7 | .cm-s-eclipse span.cm-variable-2 {color: #0000C0;} 8 | .cm-s-eclipse span.cm-variable-3 {color: #0000C0;} 9 | .cm-s-eclipse span.cm-property {color: black;} 10 | .cm-s-eclipse span.cm-operator {color: black;} 11 | .cm-s-eclipse span.cm-comment {color: #3F7F5F;} 12 | .cm-s-eclipse span.cm-string {color: #2A00FF;} 13 | .cm-s-eclipse span.cm-string-2 {color: #f50;} 14 | .cm-s-eclipse span.cm-error {color: #f00;} 15 | .cm-s-eclipse span.cm-qualifier {color: #555;} 16 | .cm-s-eclipse span.cm-builtin {color: #30a;} 17 | .cm-s-eclipse span.cm-bracket {color: #cc7;} 18 | .cm-s-eclipse span.cm-tag {color: #170;} 19 | .cm-s-eclipse span.cm-attribute {color: #00c;} 20 | .cm-s-eclipse span.cm-link {color: #219;} 21 | 22 | .cm-s-eclipse .CodeMirror-matchingbracket { 23 | border:1px solid grey; 24 | color:black !important;; 25 | } 26 | -------------------------------------------------------------------------------- /bower_components/cs_console/app/vendor/stylesheets/codemirror/theme/elegant.css: -------------------------------------------------------------------------------- 1 | .cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom {color: #762;} 2 | .cm-s-elegant span.cm-comment {color: #262; font-style: italic; line-height: 1em;} 3 | .cm-s-elegant span.cm-meta {color: #555; font-style: italic; line-height: 1em;} 4 | .cm-s-elegant span.cm-variable {color: black;} 5 | .cm-s-elegant span.cm-variable-2 {color: #b11;} 6 | .cm-s-elegant span.cm-qualifier {color: #555;} 7 | .cm-s-elegant span.cm-keyword {color: #730;} 8 | .cm-s-elegant span.cm-builtin {color: #30a;} 9 | .cm-s-elegant span.cm-error {background-color: #fdd;} 10 | .cm-s-elegant span.cm-link {color: #762;} 11 | -------------------------------------------------------------------------------- /bower_components/cs_console/app/vendor/stylesheets/codemirror/theme/neat.css: -------------------------------------------------------------------------------- 1 | .cm-s-neat span.cm-comment { color: #a86; } 2 | .cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; } 3 | .cm-s-neat span.cm-string { color: #a22; } 4 | .cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; } 5 | .cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; } 6 | .cm-s-neat span.cm-variable { color: black; } 7 | .cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; } 8 | .cm-s-neat span.cm-meta {color: #555;} 9 | .cm-s-neat span.cm-link { color: #3a3; } 10 | -------------------------------------------------------------------------------- /bower_components/cs_console/bin/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/bower_components/cs_console/bin/.gitkeep -------------------------------------------------------------------------------- /bower_components/cs_console/bin/cs_console: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require_relative "../tasks/cli" 4 | CSConsole::CLI.start 5 | -------------------------------------------------------------------------------- /bower_components/cs_console/config.ru: -------------------------------------------------------------------------------- 1 | require File.expand_path('./tasks/recipes/test') 2 | require File.expand_path('./tasks/recipes/demo') 3 | require "rake-pipeline" 4 | require 'rake-pipeline-web-filters' 5 | 6 | run Proc.new { |env| 7 | # Extract the requested path from the request 8 | path = Rack::Utils.unescape(env['PATH_INFO']) 9 | 10 | # Only compile the assets when the test.html is requested, this is a bit crude 11 | # but it speeds up page loads a lot for tests 12 | if path =~ /test\.html/ 13 | # use Rack::Static, urls: ["/resources"], root: "test" 14 | Rake::Pipeline::Project.new.build(&CSConsole::Recipes::Test.build).invoke 15 | FileUtils.rm_rf(File.expand_path('./tmp')) 16 | elsif path =~ /demo\.html/ 17 | # use Rack::Static, urls: ["/demo_app"], root: "demo_app" 18 | Rake::Pipeline::Project.new.build(&CSConsole::Recipes::Demo.build).invoke 19 | FileUtils.rm_rf(File.expand_path('./tmp')) 20 | end 21 | 22 | mime_types = { 23 | '.js' => 'javascript', 24 | '.css' => 'css', 25 | '.html' => 'html' 26 | } 27 | 28 | mime = mime_types[File.extname(path)] || 'text' 29 | 30 | [200, {'Content-Type' => "text/#{mime}"}, File.open("./#{File.expand_path(path)}", 'r') ] 31 | } 32 | -------------------------------------------------------------------------------- /bower_components/cs_console/tasks/recipes.rb: -------------------------------------------------------------------------------- 1 | require 'active_support/all' 2 | 3 | module CSConsole 4 | class Recipes 5 | def self.list 6 | [ 7 | :all, 8 | :no_cm 9 | ] 10 | end 11 | 12 | def self.get_recipe(recipe) 13 | begin 14 | "CSConsole::Recipes::#{recipe.to_s.camelize}".constantize 15 | rescue 16 | raise StandardError, "The recipe #{recipe} does not exist" 17 | end 18 | end 19 | end 20 | end 21 | 22 | # Must stay at the bottom 23 | CSConsole::Recipes.list.each do |recipe| 24 | require_relative "./recipes/#{recipe.to_s}.rb" 25 | end 26 | -------------------------------------------------------------------------------- /bower_components/cs_console/test/resources/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/bower_components/cs_console/test/resources/favicon.ico -------------------------------------------------------------------------------- /bower_components/cs_console/test/resources/test_helper.js: -------------------------------------------------------------------------------- 1 | /* 2 | This file contains any helper methods used in tests. Any external test files 3 | should be loaded after this file and be self executing functions 4 | */ 5 | 6 | createConsole = function(options){ 7 | var el = document.getElementById('console'); 8 | el.className = 'console' 9 | el.innerHTML = '' 10 | 11 | options = options ? options : {} 12 | 13 | return new CSConsole(el,{ 14 | prompt: options.prompt, 15 | historyLabel: options.historyLabel, 16 | syntax: options.syntax, 17 | welcomeMessage: options.welcomeMessage, 18 | autoFocus: options.autoFocus, 19 | commandValidate: options.commandValidate, 20 | commandHandle: options.commandHandle 21 | }); 22 | } 23 | 24 | -------------------------------------------------------------------------------- /bower_components/cs_console/test/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | QUnit Example 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 |
17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /bower_components/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "version": "2.1.4", 4 | "main": "dist/jquery.js", 5 | "license": "MIT", 6 | "ignore": [ 7 | "**/.*", 8 | "build", 9 | "dist/cdn", 10 | "speed", 11 | "test", 12 | "*.md", 13 | "AUTHORS.txt", 14 | "Gruntfile.js", 15 | "package.json" 16 | ], 17 | "devDependencies": { 18 | "sizzle": "2.1.1-jquery.2.1.2", 19 | "requirejs": "2.1.10", 20 | "qunit": "1.14.0", 21 | "sinon": "1.8.1" 22 | }, 23 | "keywords": [ 24 | "jquery", 25 | "javascript", 26 | "library" 27 | ], 28 | "homepage": "https://github.com/jquery/jquery", 29 | "_release": "2.1.4", 30 | "_resolution": { 31 | "type": "version", 32 | "tag": "2.1.4", 33 | "commit": "7751e69b615c6eca6f783a81e292a55725af6b85" 34 | }, 35 | "_source": "git://github.com/jquery/jquery.git", 36 | "_target": "~2.1.3", 37 | "_originalSource": "jquery" 38 | } -------------------------------------------------------------------------------- /bower_components/jquery/MIT-LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright 2014 jQuery Foundation and other contributors 2 | http://jquery.com/ 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining 5 | a copy of this software and associated documentation files (the 6 | "Software"), to deal in the Software without restriction, including 7 | without limitation the rights to use, copy, modify, merge, publish, 8 | distribute, sublicense, and/or sell copies of the Software, and to 9 | permit persons to whom the Software is furnished to do so, subject to 10 | the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 19 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 20 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 21 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /bower_components/jquery/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "version": "2.1.4", 4 | "main": "dist/jquery.js", 5 | "license": "MIT", 6 | "ignore": [ 7 | "**/.*", 8 | "build", 9 | "dist/cdn", 10 | "speed", 11 | "test", 12 | "*.md", 13 | "AUTHORS.txt", 14 | "Gruntfile.js", 15 | "package.json" 16 | ], 17 | "devDependencies": { 18 | "sizzle": "2.1.1-jquery.2.1.2", 19 | "requirejs": "2.1.10", 20 | "qunit": "1.14.0", 21 | "sinon": "1.8.1" 22 | }, 23 | "keywords": [ 24 | "jquery", 25 | "javascript", 26 | "library" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /bower_components/jquery/src/ajax/parseJSON.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Support: Android 2.3 6 | // Workaround failure to string-cast null input 7 | jQuery.parseJSON = function( data ) { 8 | return JSON.parse( data + "" ); 9 | }; 10 | 11 | return jQuery.parseJSON; 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /bower_components/jquery/src/ajax/parseXML.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Cross-browser xml parsing 6 | jQuery.parseXML = function( data ) { 7 | var xml, tmp; 8 | if ( !data || typeof data !== "string" ) { 9 | return null; 10 | } 11 | 12 | // Support: IE9 13 | try { 14 | tmp = new DOMParser(); 15 | xml = tmp.parseFromString( data, "text/xml" ); 16 | } catch ( e ) { 17 | xml = undefined; 18 | } 19 | 20 | if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { 21 | jQuery.error( "Invalid XML: " + data ); 22 | } 23 | return xml; 24 | }; 25 | 26 | return jQuery.parseXML; 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /bower_components/jquery/src/ajax/var/nonce.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core" 3 | ], function( jQuery ) { 4 | return jQuery.now(); 5 | }); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/ajax/var/rquery.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/\?/); 3 | }); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/attributes.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./attributes/attr", 4 | "./attributes/prop", 5 | "./attributes/classes", 6 | "./attributes/val" 7 | ], function( jQuery ) { 8 | 9 | // Return jQuery for attributes-only inclusion 10 | return jQuery; 11 | }); 12 | -------------------------------------------------------------------------------- /bower_components/jquery/src/attributes/support.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../var/support" 3 | ], function( support ) { 4 | 5 | (function() { 6 | var input = document.createElement( "input" ), 7 | select = document.createElement( "select" ), 8 | opt = select.appendChild( document.createElement( "option" ) ); 9 | 10 | input.type = "checkbox"; 11 | 12 | // Support: iOS<=5.1, Android<=4.2+ 13 | // Default value for a checkbox should be "on" 14 | support.checkOn = input.value !== ""; 15 | 16 | // Support: IE<=11+ 17 | // Must access selectedIndex to make default options select 18 | support.optSelected = opt.selected; 19 | 20 | // Support: Android<=2.3 21 | // Options inside disabled selects are incorrectly marked as disabled 22 | select.disabled = true; 23 | support.optDisabled = !opt.disabled; 24 | 25 | // Support: IE<=11+ 26 | // An input loses its value after becoming a radio 27 | input = document.createElement( "input" ); 28 | input.value = "t"; 29 | input.type = "radio"; 30 | support.radioValue = input.value === "t"; 31 | })(); 32 | 33 | return support; 34 | 35 | }); 36 | -------------------------------------------------------------------------------- /bower_components/jquery/src/core/parseHTML.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "./var/rsingleTag", 4 | "../manipulation" // buildFragment 5 | ], function( jQuery, rsingleTag ) { 6 | 7 | // data: string of html 8 | // context (optional): If specified, the fragment will be created in this context, defaults to document 9 | // keepScripts (optional): If true, will include scripts passed in the html string 10 | jQuery.parseHTML = function( data, context, keepScripts ) { 11 | if ( !data || typeof data !== "string" ) { 12 | return null; 13 | } 14 | if ( typeof context === "boolean" ) { 15 | keepScripts = context; 16 | context = false; 17 | } 18 | context = context || document; 19 | 20 | var parsed = rsingleTag.exec( data ), 21 | scripts = !keepScripts && []; 22 | 23 | // Single tag 24 | if ( parsed ) { 25 | return [ context.createElement( parsed[1] ) ]; 26 | } 27 | 28 | parsed = jQuery.buildFragment( [ data ], context, scripts ); 29 | 30 | if ( scripts && scripts.length ) { 31 | jQuery( scripts ).remove(); 32 | } 33 | 34 | return jQuery.merge( [], parsed.childNodes ); 35 | }; 36 | 37 | return jQuery.parseHTML; 38 | 39 | }); 40 | -------------------------------------------------------------------------------- /bower_components/jquery/src/core/var/rsingleTag.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // Match a standalone tag 3 | return (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); 4 | }); 5 | -------------------------------------------------------------------------------- /bower_components/jquery/src/css/addGetHookIf.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | 3 | function addGetHookIf( conditionFn, hookFn ) { 4 | // Define the hook, we'll check on the first run if it's really needed. 5 | return { 6 | get: function() { 7 | if ( conditionFn() ) { 8 | // Hook not needed (or it's not possible to use it due 9 | // to missing dependency), remove it. 10 | delete this.get; 11 | return; 12 | } 13 | 14 | // Hook needed; redefine it so that the support test is not executed again. 15 | return (this.get = hookFn).apply( this, arguments ); 16 | } 17 | }; 18 | } 19 | 20 | return addGetHookIf; 21 | 22 | }); 23 | -------------------------------------------------------------------------------- /bower_components/jquery/src/css/hiddenVisibleSelectors.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../selector" 4 | ], function( jQuery ) { 5 | 6 | jQuery.expr.filters.hidden = function( elem ) { 7 | // Support: Opera <= 12.12 8 | // Opera reports offsetWidths and offsetHeights less than zero on some elements 9 | return elem.offsetWidth <= 0 && elem.offsetHeight <= 0; 10 | }; 11 | jQuery.expr.filters.visible = function( elem ) { 12 | return !jQuery.expr.filters.hidden( elem ); 13 | }; 14 | 15 | }); 16 | -------------------------------------------------------------------------------- /bower_components/jquery/src/css/swap.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // A method for quickly swapping in/out CSS properties to get correct calculations. 6 | jQuery.swap = function( elem, options, callback, args ) { 7 | var ret, name, 8 | old = {}; 9 | 10 | // Remember the old values, and insert the new ones 11 | for ( name in options ) { 12 | old[ name ] = elem.style[ name ]; 13 | elem.style[ name ] = options[ name ]; 14 | } 15 | 16 | ret = callback.apply( elem, args || [] ); 17 | 18 | // Revert the old values 19 | for ( name in options ) { 20 | elem.style[ name ] = old[ name ]; 21 | } 22 | 23 | return ret; 24 | }; 25 | 26 | return jQuery.swap; 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /bower_components/jquery/src/css/var/cssExpand.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return [ "Top", "Right", "Bottom", "Left" ]; 3 | }); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/css/var/getStyles.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return function( elem ) { 3 | // Support: IE<=11+, Firefox<=30+ (#15098, #14150) 4 | // IE throws on elements created in popups 5 | // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" 6 | if ( elem.ownerDocument.defaultView.opener ) { 7 | return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); 8 | } 9 | 10 | return window.getComputedStyle( elem, null ); 11 | }; 12 | }); 13 | -------------------------------------------------------------------------------- /bower_components/jquery/src/css/var/isHidden.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core", 3 | "../../selector" 4 | // css is assumed 5 | ], function( jQuery ) { 6 | 7 | return function( elem, el ) { 8 | // isHidden might be called from jQuery#filter function; 9 | // in that case, element will be second argument 10 | elem = el || elem; 11 | return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); 12 | }; 13 | }); 14 | -------------------------------------------------------------------------------- /bower_components/jquery/src/css/var/rmargin.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/^margin/); 3 | }); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/css/var/rnumnonpx.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../var/pnum" 3 | ], function( pnum ) { 4 | return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); 5 | }); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/data/accepts.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | /** 6 | * Determines whether an object can have data 7 | */ 8 | jQuery.acceptData = function( owner ) { 9 | // Accepts only: 10 | // - Node 11 | // - Node.ELEMENT_NODE 12 | // - Node.DOCUMENT_NODE 13 | // - Object 14 | // - Any 15 | /* jshint -W018 */ 16 | return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); 17 | }; 18 | 19 | return jQuery.acceptData; 20 | }); 21 | -------------------------------------------------------------------------------- /bower_components/jquery/src/data/var/data_priv.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../Data" 3 | ], function( Data ) { 4 | return new Data(); 5 | }); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/data/var/data_user.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../Data" 3 | ], function( Data ) { 4 | return new Data(); 5 | }); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/deprecated.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./traversing" 4 | ], function( jQuery ) { 5 | 6 | // The number of elements contained in the matched element set 7 | jQuery.fn.size = function() { 8 | return this.length; 9 | }; 10 | 11 | jQuery.fn.andSelf = jQuery.fn.addBack; 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /bower_components/jquery/src/effects/animatedSelector.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../selector", 4 | "../effects" 5 | ], function( jQuery ) { 6 | 7 | jQuery.expr.filters.animated = function( elem ) { 8 | return jQuery.grep(jQuery.timers, function( fn ) { 9 | return elem === fn.elem; 10 | }).length; 11 | }; 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /bower_components/jquery/src/event/ajax.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../event" 4 | ], function( jQuery ) { 5 | 6 | // Attach a bunch of functions for handling common AJAX events 7 | jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { 8 | jQuery.fn[ type ] = function( fn ) { 9 | return this.on( type, fn ); 10 | }; 11 | }); 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /bower_components/jquery/src/event/support.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../var/support" 3 | ], function( support ) { 4 | 5 | support.focusinBubbles = "onfocusin" in window; 6 | 7 | return support; 8 | 9 | }); 10 | -------------------------------------------------------------------------------- /bower_components/jquery/src/exports/amd.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Register as a named AMD module, since jQuery can be concatenated with other 6 | // files that may use define, but not via a proper concatenation script that 7 | // understands anonymous AMD modules. A named AMD is safest and most robust 8 | // way to register. Lowercase jquery is used because AMD module names are 9 | // derived from file names, and jQuery is normally delivered in a lowercase 10 | // file name. Do this after creating the global so that if an AMD module wants 11 | // to call noConflict to hide this version of jQuery, it will work. 12 | 13 | // Note that for maximum portability, libraries that are not jQuery should 14 | // declare themselves as anonymous modules, and avoid setting a global if an 15 | // AMD loader is present. jQuery is a special case. For more information, see 16 | // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon 17 | 18 | if ( typeof define === "function" && define.amd ) { 19 | define( "jquery", [], function() { 20 | return jQuery; 21 | }); 22 | } 23 | 24 | }); 25 | -------------------------------------------------------------------------------- /bower_components/jquery/src/exports/global.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../var/strundefined" 4 | ], function( jQuery, strundefined ) { 5 | 6 | var 7 | // Map over jQuery in case of overwrite 8 | _jQuery = window.jQuery, 9 | 10 | // Map over the $ in case of overwrite 11 | _$ = window.$; 12 | 13 | jQuery.noConflict = function( deep ) { 14 | if ( window.$ === jQuery ) { 15 | window.$ = _$; 16 | } 17 | 18 | if ( deep && window.jQuery === jQuery ) { 19 | window.jQuery = _jQuery; 20 | } 21 | 22 | return jQuery; 23 | }; 24 | 25 | // Expose jQuery and $ identifiers, even in AMD 26 | // (#7102#comment:10, https://github.com/jquery/jquery/pull/557) 27 | // and CommonJS for browser emulators (#13566) 28 | if ( typeof noGlobal === strundefined ) { 29 | window.jQuery = window.$ = jQuery; 30 | } 31 | 32 | }); 33 | -------------------------------------------------------------------------------- /bower_components/jquery/src/jquery.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./selector", 4 | "./traversing", 5 | "./callbacks", 6 | "./deferred", 7 | "./core/ready", 8 | "./data", 9 | "./queue", 10 | "./queue/delay", 11 | "./attributes", 12 | "./event", 13 | "./event/alias", 14 | "./manipulation", 15 | "./manipulation/_evalUrl", 16 | "./wrap", 17 | "./css", 18 | "./css/hiddenVisibleSelectors", 19 | "./serialize", 20 | "./ajax", 21 | "./ajax/xhr", 22 | "./ajax/script", 23 | "./ajax/jsonp", 24 | "./ajax/load", 25 | "./event/ajax", 26 | "./effects", 27 | "./effects/animatedSelector", 28 | "./offset", 29 | "./dimensions", 30 | "./deprecated", 31 | "./exports/amd", 32 | "./exports/global" 33 | ], function( jQuery ) { 34 | 35 | return jQuery; 36 | 37 | }); 38 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/_evalUrl.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../ajax" 3 | ], function( jQuery ) { 4 | 5 | jQuery._evalUrl = function( url ) { 6 | return jQuery.ajax({ 7 | url: url, 8 | type: "GET", 9 | dataType: "script", 10 | async: false, 11 | global: false, 12 | "throws": true 13 | }); 14 | }; 15 | 16 | return jQuery._evalUrl; 17 | 18 | }); 19 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/support.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../var/support" 3 | ], function( support ) { 4 | 5 | (function() { 6 | var fragment = document.createDocumentFragment(), 7 | div = fragment.appendChild( document.createElement( "div" ) ), 8 | input = document.createElement( "input" ); 9 | 10 | // Support: Safari<=5.1 11 | // Check state lost if the name is set (#11217) 12 | // Support: Windows Web Apps (WWA) 13 | // `name` and `type` must use .setAttribute for WWA (#14901) 14 | input.setAttribute( "type", "radio" ); 15 | input.setAttribute( "checked", "checked" ); 16 | input.setAttribute( "name", "t" ); 17 | 18 | div.appendChild( input ); 19 | 20 | // Support: Safari<=5.1, Android<4.2 21 | // Older WebKit doesn't clone checked state correctly in fragments 22 | support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; 23 | 24 | // Support: IE<=11+ 25 | // Make sure textarea (and checkbox) defaultValue is properly cloned 26 | div.innerHTML = ""; 27 | support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; 28 | })(); 29 | 30 | return support; 31 | 32 | }); 33 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/var/rcheckableType.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/^(?:checkbox|radio)$/i); 3 | }); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/outro.js: -------------------------------------------------------------------------------- 1 | })); 2 | -------------------------------------------------------------------------------- /bower_components/jquery/src/queue/delay.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../queue", 4 | "../effects" // Delay is optional because of this dependency 5 | ], function( jQuery ) { 6 | 7 | // Based off of the plugin by Clint Helfers, with permission. 8 | // http://blindsignals.com/index.php/2009/07/jquery-delay/ 9 | jQuery.fn.delay = function( time, type ) { 10 | time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; 11 | type = type || "fx"; 12 | 13 | return this.queue( type, function( next, hooks ) { 14 | var timeout = setTimeout( next, time ); 15 | hooks.stop = function() { 16 | clearTimeout( timeout ); 17 | }; 18 | }); 19 | }; 20 | 21 | return jQuery.fn.delay; 22 | }); 23 | -------------------------------------------------------------------------------- /bower_components/jquery/src/selector-sizzle.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "sizzle" 4 | ], function( jQuery, Sizzle ) { 5 | 6 | jQuery.find = Sizzle; 7 | jQuery.expr = Sizzle.selectors; 8 | jQuery.expr[":"] = jQuery.expr.pseudos; 9 | jQuery.unique = Sizzle.uniqueSort; 10 | jQuery.text = Sizzle.getText; 11 | jQuery.isXMLDoc = Sizzle.isXML; 12 | jQuery.contains = Sizzle.contains; 13 | 14 | }); 15 | -------------------------------------------------------------------------------- /bower_components/jquery/src/selector.js: -------------------------------------------------------------------------------- 1 | define([ "./selector-sizzle" ]); 2 | -------------------------------------------------------------------------------- /bower_components/jquery/src/traversing/var/rneedsContext.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core", 3 | "../../selector" 4 | ], function( jQuery ) { 5 | return jQuery.expr.match.needsContext; 6 | }); 7 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/arr.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return []; 3 | }); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/class2type.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // [[Class]] -> type pairs 3 | return {}; 4 | }); 5 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/concat.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.concat; 5 | }); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/hasOwn.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.hasOwnProperty; 5 | }); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/indexOf.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.indexOf; 5 | }); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/pnum.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; 3 | }); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/push.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.push; 5 | }); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/rnotwhite.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/\S+/g); 3 | }); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/slice.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.slice; 5 | }); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/strundefined.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return typeof undefined; 3 | }); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/support.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // All support tests are defined in their respective modules. 3 | return {}; 4 | }); 5 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/toString.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.toString; 5 | }); 6 | -------------------------------------------------------------------------------- /bower_components/lodash/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lodash", 3 | "version": "3.5.0", 4 | "main": "lodash.js", 5 | "ignore": [ 6 | ".*", 7 | "*.custom.*", 8 | "*.log", 9 | "*.map", 10 | "*.md", 11 | "lodash.src.js", 12 | "component.json", 13 | "package.json", 14 | "doc", 15 | "node_modules", 16 | "perf", 17 | "test", 18 | "vendor" 19 | ], 20 | "homepage": "https://github.com/lodash/lodash", 21 | "_release": "3.5.0", 22 | "_resolution": { 23 | "type": "version", 24 | "tag": "3.5.0", 25 | "commit": "a3d504123969a4c783c2ecb6737d55b6da1c83c6" 26 | }, 27 | "_source": "git://github.com/lodash/lodash.git", 28 | "_target": "~3.5.0", 29 | "_originalSource": "lodash" 30 | } -------------------------------------------------------------------------------- /bower_components/lodash/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lodash", 3 | "version": "3.5.0", 4 | "main": "lodash.js", 5 | "ignore": [ 6 | ".*", 7 | "*.custom.*", 8 | "*.log", 9 | "*.map", 10 | "*.md", 11 | "lodash.src.js", 12 | "component.json", 13 | "package.json", 14 | "doc", 15 | "node_modules", 16 | "perf", 17 | "test", 18 | "vendor" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /bower_components/marked/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "marked", 3 | "version": "0.3.3", 4 | "homepage": "https://github.com/chjj/marked", 5 | "authors": [ 6 | "Christopher Jeffrey " 7 | ], 8 | "description": "A markdown parser built for speed", 9 | "keywords": [ 10 | "markdown", 11 | "markup", 12 | "html" 13 | ], 14 | "main": "lib/marked.js", 15 | "license": "MIT", 16 | "ignore": [ 17 | "**/.*", 18 | "node_modules", 19 | "bower_components", 20 | "app/bower_components", 21 | "test", 22 | "tests" 23 | ], 24 | "_release": "0.3.3", 25 | "_resolution": { 26 | "type": "version", 27 | "tag": "v0.3.3", 28 | "commit": "2b5802f258c5e23e48366f2377fbb4c807f47658" 29 | }, 30 | "_source": "git://github.com/chjj/marked.git", 31 | "_target": "~0.3.3", 32 | "_originalSource": "marked" 33 | } -------------------------------------------------------------------------------- /bower_components/marked/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2014, Christopher Jeffrey (https://github.com/chjj/) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /bower_components/marked/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | @cp lib/marked.js marked.js 3 | @uglifyjs --comments '/\*[^\0]+?Copyright[^\0]+?\*/' -o marked.min.js lib/marked.js 4 | 5 | clean: 6 | @rm marked.js 7 | @rm marked.min.js 8 | 9 | bench: 10 | @node test --bench 11 | 12 | .PHONY: clean all 13 | -------------------------------------------------------------------------------- /bower_components/marked/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "marked", 3 | "version": "0.3.2", 4 | "homepage": "https://github.com/chjj/marked", 5 | "authors": [ 6 | "Christopher Jeffrey " 7 | ], 8 | "description": "A markdown parser built for speed", 9 | "keywords": [ 10 | "markdown", 11 | "markup", 12 | "html" 13 | ], 14 | "main": "lib/marked.js", 15 | "license": "MIT", 16 | "ignore": [ 17 | "**/.*", 18 | "node_modules", 19 | "bower_components", 20 | "app/bower_components", 21 | "test", 22 | "tests" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /bower_components/marked/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "marked", 3 | "version": "0.3.2", 4 | "repo": "chjj/marked", 5 | "description": "A markdown parser built for speed", 6 | "keywords": ["markdown", "markup", "html"], 7 | "scripts": ["lib/marked.js"], 8 | "main": "lib/marked.js", 9 | "license": "MIT" 10 | } 11 | -------------------------------------------------------------------------------- /bower_components/marked/doc/todo.md: -------------------------------------------------------------------------------- 1 | # Todo 2 | 3 | -------------------------------------------------------------------------------- /bower_components/marked/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/marked'); 2 | -------------------------------------------------------------------------------- /bower_components/marked/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "marked", 3 | "description": "A markdown parser built for speed", 4 | "author": "Christopher Jeffrey", 5 | "version": "0.3.3", 6 | "main": "./lib/marked.js", 7 | "bin": "./bin/marked", 8 | "man": "./man/marked.1", 9 | "preferGlobal": true, 10 | "repository": "git://github.com/chjj/marked.git", 11 | "homepage": "https://github.com/chjj/marked", 12 | "bugs": { "url": "http://github.com/chjj/marked/issues" }, 13 | "license": "MIT", 14 | "keywords": ["markdown", "markup", "html"], 15 | "tags": ["markdown", "markup", "html"], 16 | "devDependencies": { 17 | "markdown": "*", 18 | "showdown": "*", 19 | "robotskirt": "*" 20 | }, 21 | "scripts": { "test": "node test", "bench": "node test --bench" } 22 | } 23 | -------------------------------------------------------------------------------- /bower_components/mocha/.editorconfig: -------------------------------------------------------------------------------- 1 | # This file is for unifying the coding style for different editors and IDEs 2 | # editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | end_of_line = lf 8 | charset = utf-8 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | indent_style = space 12 | indent_size = 2 13 | 14 | [Makefile] 15 | indent_style = tab 16 | 17 | [*.md] 18 | trim_trailing_whitespace = false 19 | -------------------------------------------------------------------------------- /bower_components/mocha/.mailmap: -------------------------------------------------------------------------------- 1 | TJ Holowaychuk -------------------------------------------------------------------------------- /bower_components/mocha/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2011-2015 TJ Holowaychuk 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /bower_components/mocha/README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://api.travis-ci.org/mochajs/mocha.svg?branch=master)](http://travis-ci.org/mochajs/mocha) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mochajs/mocha?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) 2 | 3 | [![Mocha test framework](http://f.cl.ly/items/3l1k0n2A1U3M1I1L210p/Screen%20Shot%202012-02-24%20at%202.21.43%20PM.png)](http://mochajs.org) 4 | 5 | Mocha is a simple, flexible, fun JavaScript test framework for node.js and the browser. For more information view the [documentation](http://mochajs.org). 6 | 7 | ## Links 8 | 9 | - [Google Group](http://groups.google.com/group/mochajs) 10 | - [Wiki](https://github.com/mochajs/mocha/wiki) 11 | - Mocha [Extensions and reporters](https://github.com/mochajs/mocha/wiki) 12 | -------------------------------------------------------------------------------- /bower_components/mocha/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mocha", 3 | "version": "2.2.4", 4 | "homepage": "http://mocha.github.io/mocha", 5 | "description": "simple, flexible, fun test framework", 6 | "authors": [ 7 | "TJ Holowaychuk ", 8 | "Joshua Appelman ", 9 | "Oleg Gaidarenko ", 10 | "Christoffer Hallas ", 11 | "Christopher Hiller ", 12 | "Travis Jeffery ", 13 | "Johnathan Ong ", 14 | "Guillermo Rauch " 15 | ], 16 | "repository": { 17 | "type": "git", 18 | "url": "git://github.com/mochajs/mocha.git" 19 | }, 20 | "main": [ 21 | "mocha.js", 22 | "mocha.css" 23 | ], 24 | "ignore": [ 25 | "bin", 26 | "editors", 27 | "images", 28 | "lib", 29 | "support", 30 | "test", 31 | ".gitignore", 32 | ".npmignore", 33 | ".travis.yml", 34 | "component.json", 35 | "index.js", 36 | "Makefile", 37 | "package.json" 38 | ], 39 | "keywords": [ 40 | "mocha", 41 | "test", 42 | "bdd", 43 | "tdd", 44 | "tap" 45 | ], 46 | "license": "MIT" 47 | } -------------------------------------------------------------------------------- /bower_components/mocha/media/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | mocha 7 | 8 | -------------------------------------------------------------------------------- /client/javascriptcom/app.js: -------------------------------------------------------------------------------- 1 | angular.module('javascriptcom', ['ngResource', 'ngAnimate', 'ngCookies']) 2 | .config(['$httpProvider', function config($httpProvider) { 3 | $httpProvider.defaults.cache = true; 4 | }]); 5 | -------------------------------------------------------------------------------- /client/javascriptcom/directives/challenge.directive.js: -------------------------------------------------------------------------------- 1 | angular.module('javascriptcom').directive('jsChallenge', function() { 2 | return { 3 | templateUrl: 'templates/challenge.html', 4 | replace: true, 5 | scope: { 6 | challenge: '=' 7 | }, 8 | bindToController: true, 9 | controllerAs: 'ctrl', 10 | controller: function jsChallengeController() { 11 | } 12 | }; 13 | }); 14 | -------------------------------------------------------------------------------- /client/javascriptcom/directives/safeHtml.directive.js: -------------------------------------------------------------------------------- 1 | angular.module('javascriptcom').directive('jsSafeHtml', ['$sce', function($sce) { 2 | return { 3 | restrict: 'A', 4 | scope: { 5 | jsSafeHtml: "@" 6 | }, 7 | template: "
", 8 | link: function(scope, element, attrs) { 9 | var unregister = scope.$watch('jsSafeHtml', setHtml); 10 | 11 | function setHtml(value) { 12 | if(!value) { return; } 13 | scope.safeHtml = $sce.trustAsHtml(value.replace(/^\s+|\s+$/g, '')); 14 | unregister(); 15 | } 16 | } 17 | }; 18 | }]); 19 | -------------------------------------------------------------------------------- /client/javascriptcom/directives/tooltip.directive.js: -------------------------------------------------------------------------------- 1 | angular.module('javascriptcom').directive('tooltip', function() { 2 | return { 3 | restrict: 'A', 4 | scope: { 5 | tooltip: '@' 6 | }, 7 | link: function(scope, element, attrs) { 8 | $(element).tooltip({ 9 | animation: false, 10 | container: 'body', 11 | trigger: 'hover', 12 | placement: 'bottom', 13 | title: function() { 14 | return scope.tooltip; 15 | }, 16 | viewport: { 17 | selector: 'body', 18 | padding: 10 19 | } 20 | }); 21 | } 22 | }; 23 | }); 24 | -------------------------------------------------------------------------------- /client/javascriptcom/filters/markdown.filter.js: -------------------------------------------------------------------------------- 1 | angular.module('javascriptcom').filter('markdown', ['marked', function(marked) { 2 | return function(text) { 3 | return marked(text); 4 | }; 5 | }]); 6 | -------------------------------------------------------------------------------- /client/javascriptcom/filters/stateify.filter.js: -------------------------------------------------------------------------------- 1 | angular.module('javascriptcom').filter('stateify', ['$interpolate', function($interpolate) { 2 | return function(text, scope) { 3 | return $interpolate(text)(scope); 4 | }; 5 | }]); 6 | -------------------------------------------------------------------------------- /client/javascriptcom/resources/challenge.resource.js: -------------------------------------------------------------------------------- 1 | angular.module('javascriptcom').factory('jsCourseChallengeResource', function($resource) { 2 | return $resource('/courses/:course/challenges.json', {}, {}); 3 | }); 4 | -------------------------------------------------------------------------------- /client/javascriptcom/resources/course.resource.js: -------------------------------------------------------------------------------- 1 | angular.module('javascriptcom').factory('jsCourseResource', function($resource) { 2 | return $resource('/courses/:course.json', {}, {}); 3 | }); 4 | -------------------------------------------------------------------------------- /client/javascriptcom/services/commandFactory.factory.js: -------------------------------------------------------------------------------- 1 | // Maps a specific command to a specific handler. 2 | // If none are found, runs as JavaScript. 3 | 4 | angular.module('javascriptcom').factory('jsCommandFactory', ['_', 'jsJavaScriptCommand', function(_, jsJavaScriptCommand) { 5 | var matchers = [ 6 | { 7 | pattern: /[.|\s]*/, 8 | handler: jsJavaScriptCommand 9 | } 10 | ]; 11 | 12 | function jsCommandFactory(command) { 13 | return _.find(matchers, function(m) { 14 | return command.match(m.pattern); 15 | }).handler; 16 | } 17 | 18 | return jsCommandFactory; 19 | }]); 20 | -------------------------------------------------------------------------------- /client/javascriptcom/services/executor.factory.js: -------------------------------------------------------------------------------- 1 | angular.module('javascriptcom').factory('jsExecutor', ['Abecedary', function(Abecedary) { 2 | var iframeTemplate = [ 3 | '', 4 | '', 5 | ' ', 6 | ' Abecedary Tests', 7 | ' ', 8 | ' ', 9 | ' ', 10 | ' ', 11 | '' 12 | ].join('\n'); 13 | var sandbox = new Abecedary('/iframe.html', iframeTemplate); 14 | return sandbox; 15 | }]); 16 | -------------------------------------------------------------------------------- /client/javascriptcom/services/jsCourseState.factory.js: -------------------------------------------------------------------------------- 1 | angular.module('javascriptcom').factory('jsCourseState', ['_', function(_) { 2 | return { 3 | state: {}, 4 | update: function(newState) { 5 | this.state = _.merge(this.state, newState) 6 | } 7 | }; 8 | }]); 9 | -------------------------------------------------------------------------------- /client/javascriptcom/services/jsSuccessCloud.factory.js: -------------------------------------------------------------------------------- 1 | angular.module('javascriptcom').factory('jsSuccessCloud', ['jsChallengeProgress', function(jsChallengeProgress) { 2 | return { 3 | trigger: function() { 4 | var iconMarkup = '', delay,scale, xOffset, zIndex; 5 | 6 | for (var i = 0; i < 12; i++) { 7 | xOffset = _.random(18, 82) 8 | scale = _.random(0.5, 1.4) 9 | zIndex = scale < 1 ? -1 : 1; 10 | delay = _.random(0, 0.5) 11 | 12 | iconMarkup += "
"; 13 | } 14 | 15 | $('body').append("

Success!

" + iconMarkup + "
"); 16 | 17 | setTimeout(function() { 18 | $('.js-message').remove(); 19 | }, 2000); 20 | } 21 | } 22 | }]); 23 | -------------------------------------------------------------------------------- /client/javascriptcom/vendor/abecedary.js: -------------------------------------------------------------------------------- 1 | angular.module('javascriptcom').factory('Abecedary', ['$window', 2 | function Abecedary($window) { 3 | return $window.Abecedary; 4 | } 5 | ]); 6 | -------------------------------------------------------------------------------- /client/javascriptcom/vendor/cs_console.js: -------------------------------------------------------------------------------- 1 | angular.module('javascriptcom').factory('CSConsole', ['$window', 2 | function CSConsole($window) { 3 | return $window.CSConsole; 4 | } 5 | ]); 6 | -------------------------------------------------------------------------------- /client/javascriptcom/vendor/jquery.js: -------------------------------------------------------------------------------- 1 | angular.module('javascriptcom').factory('$', ['$window', 2 | function jQuery($window) { 3 | return $window.$; 4 | } 5 | ]); 6 | -------------------------------------------------------------------------------- /client/javascriptcom/vendor/lodash.js: -------------------------------------------------------------------------------- 1 | angular.module('javascriptcom').factory('_', ['$window', 2 | function lodash($window) { 3 | return $window._; 4 | } 5 | ]); 6 | -------------------------------------------------------------------------------- /client/javascriptcom/vendor/marked.js: -------------------------------------------------------------------------------- 1 | angular.module('javascriptcom').factory('marked', ['$window', 2 | function marked($window) { 3 | return $window.marked; 4 | } 5 | ]); 6 | -------------------------------------------------------------------------------- /client/javascripts/components/dispatcher/course.js: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // Course 4 | // -> Dispatch events 5 | // 6 | // ************************************* 7 | 8 | JS.Pages.Course = function() { 9 | 10 | // ------------------------------------- 11 | // Modules 12 | // ------------------------------------- 13 | 14 | JS.Modules.Toggle.init({ 15 | $element : $('.js-courseLayout-toggle'), 16 | proximity : $('.js-courseLayout'), 17 | toggleClass : 'is-active' 18 | }); 19 | 20 | // ------------------------------------- 21 | // Local 22 | // ------------------------------------- 23 | 24 | // ----- Preloading ----- // 25 | 26 | $('.js-courseLayout').addClass('is-loaded'); 27 | $('.js-preload').addClass('is-hidden'); 28 | 29 | }; 30 | -------------------------------------------------------------------------------- /client/javascripts/components/dispatcher/feedback.js: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // Feedback 4 | // -> Dispatch events 5 | // 6 | // ************************************* 7 | 8 | JS.Pages.Feedback = function() { 9 | 10 | // ------------------------------------- 11 | // Classes 12 | // ------------------------------------- 13 | 14 | new JS.Classes.FormValidator(); 15 | 16 | // ------------------------------------- 17 | // Modules 18 | // ------------------------------------- 19 | 20 | JS.Modules.SaveProgress.init(); 21 | 22 | // ------------------------------------- 23 | // Vendor 24 | // ------------------------------------- 25 | 26 | autosize($(JS.Globals.Vendor.autosizeQuery)); 27 | 28 | }; 29 | -------------------------------------------------------------------------------- /client/javascripts/components/dispatcher/home.js: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // Home 4 | // -> Dispatch events 5 | // 6 | // ************************************* 7 | 8 | JS.Pages.Home = function() { 9 | 10 | // ------------------------------------- 11 | // Modules 12 | // ------------------------------------- 13 | 14 | JS.Modules.Console.init(); 15 | JS.Modules.Video.init({ vendor: true, ytVideo: true }); 16 | 17 | // ------------------------------------- 18 | // Services 19 | // ------------------------------------- 20 | 21 | JS.Services.expel({ 22 | $toggle : $('.js-alert-close'), 23 | elementNode : '.js-alert' 24 | }); 25 | 26 | // ------------------------------------- 27 | // Local 28 | // ------------------------------------- 29 | 30 | $('.js-inlineConsole-btn').on('click', function(event) { 31 | var name = $('.js-inlineConsole-input').val().replace(/['";]/g, ''); 32 | 33 | document.cookie = JS.Globals.userNameCookie + '=' + name; 34 | }); 35 | 36 | }; 37 | -------------------------------------------------------------------------------- /client/javascripts/components/dispatcher/news.js: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // News 4 | // -> Dispatch events 5 | // 6 | // ************************************* 7 | 8 | JS.Pages.News = function() { 9 | 10 | // ------------------------------------- 11 | // Classes 12 | // ------------------------------------- 13 | 14 | new JS.Classes.FormValidator(); 15 | 16 | // ------------------------------------- 17 | // Modules 18 | // ------------------------------------- 19 | 20 | JS.Modules.LoadStories.init(); 21 | JS.Modules.SaveProgress.init(); 22 | 23 | // ------------------------------------- 24 | // Services 25 | // ------------------------------------- 26 | 27 | JS.Services.expel({ 28 | $toggle : $('.js-alert-close'), 29 | elementNode : '.js-alert' 30 | }); 31 | 32 | // ------------------------------------- 33 | // Vendor 34 | // ------------------------------------- 35 | 36 | autosize($(JS.Globals.Vendor.autosizeQuery)); 37 | 38 | }; 39 | -------------------------------------------------------------------------------- /client/javascripts/components/dispatcher/news/new.js: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // News New 4 | // -> Dispatch events 5 | // 6 | // ************************************* 7 | 8 | JS.Pages.News.New = function() { 9 | 10 | // ------------------------------------- 11 | // Modules 12 | // ------------------------------------- 13 | 14 | JS.Modules.Counter.init({ 15 | onMaxExceeded: function(settings) { 16 | $('.js-counter-message-max').removeClass('is-hidden'); 17 | $('.js-counter-message-min').addClass('is-hidden'); 18 | }, 19 | onConditionsMet: function(settings){ 20 | $('.js-counter-message-min').addClass('is-hidden'); 21 | $('.js-counter-message-max').addClass('is-hidden'); 22 | } 23 | }); 24 | 25 | }; 26 | -------------------------------------------------------------------------------- /client/javascripts/components/dispatcher/news/show.js: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // News Show 4 | // -> Dispatch events 5 | // 6 | // ************************************* 7 | 8 | JS.Pages.News.Show = function() { 9 | 10 | // ------------------------------------- 11 | // Modules 12 | // ------------------------------------- 13 | 14 | JS.Modules.CreateComment.init(); 15 | JS.Modules.EditComment.init(); 16 | 17 | }; 18 | -------------------------------------------------------------------------------- /client/javascripts/components/services/expel.js: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // Expel 4 | // -> Pest control 5 | // 6 | // ************************************* 7 | // 8 | // @param $toggle { jQuery object } 9 | // @param elementNode { string } 10 | // 11 | // ************************************* 12 | 13 | JS.Services.expel = function(options) { 14 | var settings = $.extend({ 15 | $toggle : $('.js-expel-toggle'), 16 | elementNode : '.js-expel', 17 | expelClass : 'is-dismissed' 18 | }, options); 19 | 20 | settings.$toggle.on('click', function(event) { 21 | event.preventDefault(); 22 | 23 | var element = $(this); 24 | 25 | element 26 | .closest(settings.elementNode) 27 | .addClass(settings.expelClass); 28 | 29 | setTimeout(function() { 30 | element 31 | .closest(settings.elementNode) 32 | .remove(); 33 | }, 500); 34 | }); 35 | }; 36 | 37 | // ------------------------------------- 38 | // Usage 39 | // ------------------------------------- 40 | // 41 | // JS.Services.expel(); 42 | // 43 | -------------------------------------------------------------------------------- /client/javascripts/components/services/injectSvg.js: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // Inject SVG 4 | // -> Asynchronously append an SVG 5 | // 6 | // ************************************* 7 | // 8 | // @param assetPath { string } 9 | // 10 | // ************************************* 11 | 12 | JS.injectSvg = function (options) { 13 | var settings = $.extend({ 14 | assetPath : null 15 | }, options); 16 | 17 | $.get(settings.assetPath, function (data) { 18 | var $element = $(new XMLSerializer().serializeToString(data.documentElement)); 19 | 20 | $element.css({ display : 'none' }).appendTo('body'); 21 | }); 22 | } 23 | 24 | // ------------------------------------- 25 | // Usage 26 | // ------------------------------------- 27 | // 28 | // JS.injectSvg({ assetPath : '/path/to/file.svg' }); 29 | // 30 | -------------------------------------------------------------------------------- /client/stylesheets/components/_card.sass: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // Card 4 | // -> Individual style containers 5 | // 6 | // ------------------------------------- 7 | // Template (Haml) 8 | // ------------------------------------- 9 | // 10 | // .card[l] 11 | // / ... 12 | // 13 | // ************************************* 14 | 15 | .card 16 | background: $card-background 17 | border-radius: $b-borderRadius-l 18 | padding: $b-space 19 | position: relative 20 | 21 | // ------------------------------------- 22 | // Modifiers 23 | // ------------------------------------- 24 | 25 | // ----- Sizes ----- // 26 | 27 | .card--l 28 | padding: $b-space-l 29 | -------------------------------------------------------------------------------- /client/stylesheets/components/_cell.sass: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // Cell 4 | // -> Width-limiting blocks 5 | // 6 | // ------------------------------------- 7 | // Template (Haml) 8 | // ------------------------------------- 9 | // 10 | // .cell[s] 11 | // / ... 12 | // 13 | // ************************************* 14 | 15 | .cell 16 | margin-left: auto 17 | margin-right: auto 18 | max-width: $b-maxWidth-l 19 | position: relative 20 | 21 | // ------------------------------------- 22 | // Modifiers 23 | // ------------------------------------- 24 | 25 | // ----- Sizes ----- // 26 | 27 | .cell--m 28 | max-width: $b-maxWidth 29 | 30 | .cell--s 31 | max-width: $b-maxWidth-s 32 | -------------------------------------------------------------------------------- /client/stylesheets/components/_handle.sass: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // Handle 4 | // -> Positioning context 5 | // 6 | // ------------------------------------- 7 | // Template (Haml) 8 | // ------------------------------------- 9 | // 10 | // .has-handle 11 | // 12 | // .handle 13 | // 14 | // ************************************* 15 | 16 | .handle 17 | left: 50% 18 | position: absolute 19 | top: 50% 20 | transform: translate(-50%, -50%) 21 | 22 | // ------------------------------------- 23 | // Context 24 | // ------------------------------------- 25 | 26 | .has-handle 27 | position: relative 28 | -------------------------------------------------------------------------------- /client/stylesheets/components/_pillar.sass: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // Pillar 4 | // -> Vertically capped container 5 | // 6 | // ------------------------------------- 7 | // Template (Haml) 8 | // ------------------------------------- 9 | // 10 | // .pillar 11 | // / ... 12 | // 13 | // ************************************* 14 | 15 | .pillar 16 | border-bottom: $b-border 17 | border-top: $b-border 18 | padding-bottom: $b-space 19 | padding-top: $b-space 20 | 21 | // ------------------------------------- 22 | // Modifiers 23 | // ------------------------------------- 24 | 25 | // ----- Weights ----- // 26 | 27 | // Thin 28 | 29 | .pillar--thin 30 | border-bottom: $b-border-s 31 | border-top: $b-border-s 32 | 33 | // Thick 34 | 35 | .pillar--thick 36 | border-bottom: $b-border-l 37 | border-top: $b-border-l 38 | 39 | // ----- Sizes ----- // 40 | 41 | // Large 42 | 43 | .pillar--l 44 | padding-bottom: $b-space-l 45 | padding-top: $b-space-l 46 | -------------------------------------------------------------------------------- /client/stylesheets/components/_row.sass: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // Row 4 | // -> Width-spanning blocks 5 | // 6 | // ------------------------------------- 7 | // Template (Haml) 8 | // ------------------------------------- 9 | // 10 | // .row[a|b] 11 | // / ... 12 | // 13 | // ************************************* 14 | 15 | .row 16 | overflow: hidden 17 | padding: 0 $b-space-s 18 | 19 | +respond-to($g-s) 20 | padding: 0 $b-space 21 | 22 | // ------------------------------------- 23 | // Modifiers 24 | // ------------------------------------- 25 | 26 | // ----- Theme ----- // 27 | 28 | // Primary 29 | 30 | .row--a 31 | background: $c-highlight 32 | 33 | // Secondary 34 | 35 | .row--b 36 | background: $c-subdue 37 | -------------------------------------------------------------------------------- /client/stylesheets/components/_thumb.sass: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // Thumb 4 | // -> Media element 5 | // CodePen: http://codepen.io/drewbarontini/pen/acGmE 6 | // 7 | // ------------------------------------- 8 | // Template (Haml) 9 | // ------------------------------------- 10 | // 11 | // %img.thumb[m] 12 | // 13 | // ************************************* 14 | 15 | .thumb 16 | border-radius: 50% 17 | display: block 18 | 19 | // ------------------------------------- 20 | // Modifiers 21 | // ------------------------------------- 22 | 23 | .thumb--m 24 | border-radius: $b-borderRadius 25 | -------------------------------------------------------------------------------- /client/stylesheets/structures/_emblem.sass: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // Emblem 4 | // -> Fixed badge 5 | // 6 | // ------------------------------------- 7 | // Template (Haml) 8 | // ------------------------------------- 9 | // 10 | // .emblem 11 | // .emblem-item 12 | // 13 | // ************************************* 14 | 15 | .emblem 16 | position: relative 17 | 18 | // ------------------------------------- 19 | // Scaffolding 20 | // ------------------------------------- 21 | 22 | // ----- Content ----- // 23 | 24 | .emblem-content 25 | padding-top: $b-space-l 26 | 27 | +respond-to($g-m) 28 | padding-top: $b-space 29 | 30 | // ----- Item ----- // 31 | 32 | .emblem-item 33 | border-radius: 50% 34 | border: $b-borderWidth-xl $b-borderStyle $c-text-invert 35 | left: 50% 36 | position: absolute 37 | top: -2em // FIXME: Magic number! 38 | transform: translateX(-50%) 39 | -------------------------------------------------------------------------------- /client/stylesheets/structures/_externalLink.sass: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // External Link 4 | // -> Non-contextual hypertext 5 | // 6 | // ------------------------------------- 7 | // Template (Haml) 8 | // ------------------------------------- 9 | // 10 | // .externalLink 11 | // .externalLink-icon 12 | // 13 | // ************************************* 14 | 15 | .externalLink 16 | 17 | +state 18 | 19 | .externalLink-icon 20 | opacity: 0.5 21 | transform: translateX(#{$b-space-xs}) 22 | 23 | // ------------------------------------- 24 | // Scaffolding 25 | // ------------------------------------- 26 | 27 | .externalLink-icon 28 | display: inline-block 29 | opacity: 0 30 | position: relative 31 | top: - em(4px) // FIXME: Magic number! 32 | transition: $b-transition 33 | -------------------------------------------------------------------------------- /client/stylesheets/structures/_header.sass: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // Header 4 | // -> Primary brand and navigation 5 | // 6 | // ------------------------------------- 7 | // Template (Haml) 8 | // ------------------------------------- 9 | // 10 | // .header 11 | // 12 | // %a.header-link 13 | // 14 | // ************************************* 15 | 16 | .header 17 | background: $header-background 18 | height: $site-header-height 19 | 20 | +respond-to($g-m) 21 | height: $site-header-height-l 22 | 23 | // ------------------------------------- 24 | // Scaffolding 25 | // ------------------------------------- 26 | 27 | // ----- Link ----- // 28 | 29 | .header-link 30 | border-bottom: $b-borderWidth $b-borderStyle transparent 31 | color: $c-text-invert 32 | font-family: $b-fontFamily-heading 33 | margin-right: $b-space 34 | 35 | +respond-to($g-m) 36 | margin-right: $b-space-l 37 | 38 | +state('is-active') 39 | border-bottom-color: $c-text-invert 40 | color: $c-text-invert 41 | 42 | &:last-child 43 | margin-right: 0 44 | -------------------------------------------------------------------------------- /client/stylesheets/structures/_icon.sass: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // Icon 4 | // -> Single-color vector 5 | // 6 | // ------------------------------------- 7 | // Template (Haml) 8 | // ------------------------------------- 9 | // 10 | // %svg.icon 11 | // 12 | // ************************************* 13 | 14 | .icon 15 | fill: currentColor 16 | max-width: none 17 | -------------------------------------------------------------------------------- /client/stylesheets/structures/_inlineCode.sass: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // Inline Code 4 | // -> Decorated snippet 5 | // 6 | // ------------------------------------- 7 | // Template (Haml) 8 | // ------------------------------------- 9 | // 10 | // %code.inlineCode[btn] 11 | // .inlineCode-icon 12 | // 13 | // ************************************* 14 | 15 | .inlineCode 16 | background: none 17 | border-radius: 4px 18 | border: 1px solid $c-highlight 19 | display: inline-block 20 | padding-left: 0.5ch 21 | padding-right: 0.5ch 22 | 23 | // ------------------------------------- 24 | // Modifiers 25 | // ------------------------------------- 26 | 27 | // ----- Button ----- // 28 | 29 | .inlineCode--btn 30 | +action 31 | border: 2px solid $c-highlight 32 | padding: $b-space-xs $b-space 33 | text-align: left 34 | transition: $b-transition 35 | white-space: normal 36 | 37 | +state 38 | background-color: $c-highlight 39 | color: $c-text-invert 40 | 41 | // ------------------------------------- 42 | // Scaffolding 43 | // ------------------------------------- 44 | 45 | // ----- Icon ----- // 46 | 47 | .inlineCode-icon 48 | margin-right: $b-space-xs 49 | opacity: 0.67 50 | -------------------------------------------------------------------------------- /client/stylesheets/structures/_label.sass: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // Label 4 | // -> Supplementary text 5 | // 6 | // ------------------------------------- 7 | // Template (Haml) 8 | // ------------------------------------- 9 | // 10 | // .label 11 | // 12 | // ************************************* 13 | 14 | .label 15 | color: $c-subdue 16 | display: block 17 | font-family: $b-fontFamily-heading 18 | font-weight: $b-fontWeight-semibold 19 | margin-bottom: 0 20 | 21 | // ------------------------------------- 22 | // Modifiers 23 | // ------------------------------------- 24 | 25 | // ----- Highlight ----- // 26 | 27 | .label--highlight 28 | color: $c-highlight 29 | 30 | // ----- Subdued ----- // 31 | 32 | .label--subdued 33 | color: $c-subdue 34 | 35 | // ------------------------------------- 36 | // State 37 | // ------------------------------------- 38 | 39 | // ----- Success ----- // 40 | 41 | .label.is-success 42 | color: $c-success 43 | 44 | &::before 45 | content: '✓' 46 | padding-right: $b-space-xs 47 | -------------------------------------------------------------------------------- /client/stylesheets/structures/_link.sass: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // Link 4 | // -> Actionable text 5 | // CodePen: http://codepen.io/drewbarontini/pen/qEJNPv 6 | // 7 | // ------------------------------------- 8 | // Template (Haml) 9 | // ------------------------------------- 10 | // 11 | // .link[bordered inverted|muted] 12 | // 13 | // ************************************* 14 | 15 | .link 16 | @extend %a 17 | 18 | // ------------------------------------- 19 | // Modifiers 20 | // ------------------------------------- 21 | 22 | // ----- Bordered ----- // 23 | 24 | .link--bordered 25 | border-bottom: $link-border currentColor 26 | 27 | // ----- Inverted ----- // 28 | 29 | .link--inverted 30 | color: $link--inverted-color 31 | 32 | +state 33 | color: $link--inverted--state-color 34 | 35 | // ----- State ----- // 36 | 37 | // Error 38 | 39 | .link--error 40 | color: $c-error 41 | 42 | +state 43 | color: shade($c-error, 10%) 44 | -------------------------------------------------------------------------------- /client/stylesheets/structures/_state.sass: -------------------------------------------------------------------------------- 1 | // ************************************* 2 | // 3 | // State 4 | // -> Global application state 5 | // 6 | // ------------------------------------- 7 | // Template (Haml) 8 | // ------------------------------------- 9 | // 10 | // (hidden) 11 | // 12 | // ************************************* 13 | 14 | // ------------------------------------- 15 | // Added 16 | // ------------------------------------- 17 | 18 | .is-added 19 | animation: flash 0.6s linear 20 | animation-fill-mode: forwards 21 | 22 | // ------------------------------------- 23 | // Hidden 24 | // ------------------------------------- 25 | 26 | .is-hidden 27 | display: none 28 | -------------------------------------------------------------------------------- /courses/intro/index.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs'); 2 | var path = require('path'); 3 | 4 | challenges = [ 5 | '1_string', 6 | '2_functions', 7 | '3_string_function_parameter', 8 | '4_variables', 9 | '5_variable_value', 10 | '6_numbers', 11 | '7_combining_numbers', 12 | '8_combining_strings' 13 | ]; 14 | 15 | module.exports = challenges.map(function(challenge) { 16 | return require(path.join(__dirname, challenge + '.js')); 17 | }); 18 | -------------------------------------------------------------------------------- /public/downloads/JavaScript.com Asset Downloads/logo-light.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/downloads/JavaScript.com Asset Downloads/logo-light.eps -------------------------------------------------------------------------------- /public/downloads/JavaScript.com Asset Downloads/logo-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/downloads/JavaScript.com Asset Downloads/logo-light.png -------------------------------------------------------------------------------- /public/downloads/JavaScript.com Asset Downloads/logo-mark.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/downloads/JavaScript.com Asset Downloads/logo-mark.eps -------------------------------------------------------------------------------- /public/downloads/JavaScript.com Asset Downloads/logo-mark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/downloads/JavaScript.com Asset Downloads/logo-mark.png -------------------------------------------------------------------------------- /public/downloads/JavaScript.com Asset Downloads/logo.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/downloads/JavaScript.com Asset Downloads/logo.eps -------------------------------------------------------------------------------- /public/downloads/JavaScript.com Asset Downloads/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/downloads/JavaScript.com Asset Downloads/logo.png -------------------------------------------------------------------------------- /public/downloads/package.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/downloads/package.zip -------------------------------------------------------------------------------- /public/images/brand/logo-mark.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/images/favicon.ico -------------------------------------------------------------------------------- /public/images/fb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/images/fb.png -------------------------------------------------------------------------------- /public/images/icons/icon-calendar.svg: -------------------------------------------------------------------------------- 1 | Imported LayersCreated with Sketch. -------------------------------------------------------------------------------- /public/images/icons/icon-check.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Imported Layers Copy 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/images/icons/icon-external.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /public/images/icons/icon-mail.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /public/images/icons/icon-play.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public/images/icons/icon-rss.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /public/images/icons/icon-star.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | icon-star 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/images/icons/icon-submit.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | icon-submit 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/images/icons/icon-twitter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/images/img-console.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/img-feedback.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/logo-mark-dotless.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public/images/logo-mark.svg: -------------------------------------------------------------------------------- 1 | Artboard 1Created with Sketch. -------------------------------------------------------------------------------- /public/images/logo-monochrome.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/resources/img-codecademy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/images/resources/img-codecademy.jpg -------------------------------------------------------------------------------- /public/images/resources/img-eloquent-js.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/images/resources/img-eloquent-js.jpg -------------------------------------------------------------------------------- /public/images/resources/img-js-books.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/images/resources/img-js-books.png -------------------------------------------------------------------------------- /public/images/resources/img-js-for-cats.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/images/resources/img-js-for-cats.jpg -------------------------------------------------------------------------------- /public/images/resources/img-jsrt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/images/resources/img-jsrt.jpg -------------------------------------------------------------------------------- /public/images/resources/img-mdn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/images/resources/img-mdn.jpg -------------------------------------------------------------------------------- /public/images/resources/img-pluralsight.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/images/resources/img-pluralsight.jpg -------------------------------------------------------------------------------- /public/images/resources/img-try-jquery.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/images/resources/img-try-jquery.jpg -------------------------------------------------------------------------------- /public/images/resources/img-try-js.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/images/resources/img-try-js.jpg -------------------------------------------------------------------------------- /public/images/resources/img-you-dont-know-js.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeschool/WatchUsBuild-ConvertSQLAppToMongoDB/81dfd25a880427f838a2976d835d25b6a761722b/public/images/resources/img-you-dont-know-js.jpg -------------------------------------------------------------------------------- /public/templates/challenge.html: -------------------------------------------------------------------------------- 1 |
2 |

{{::ctrl.challenge.id}}. {{::ctrl.challenge.title}}

3 | 4 | 5 |
6 | -------------------------------------------------------------------------------- /public/templates/console.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | -------------------------------------------------------------------------------- /public/templates/instructions.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | -------------------------------------------------------------------------------- /server/config.js: -------------------------------------------------------------------------------- 1 | // Set baseURL depending on enviornment 2 | var env = process.env.NODE_ENV; 3 | if (env === 'production') { 4 | baseURL = "https://www.javascript.com/"; 5 | }else if(env === 'staging'){ 6 | baseURL = "http://javascript.preschool.io/"; 7 | }else{ 8 | baseURL = "http://localhost:3000/"; 9 | } 10 | -------------------------------------------------------------------------------- /server/controllers/about.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | 4 | /* GET /about page */ 5 | router.get('/', function(req, res) { 6 | res.render('about/index'); 7 | }); 8 | 9 | module.exports = router; 10 | -------------------------------------------------------------------------------- /server/controllers/assets.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | 4 | /* GET /assets page */ 5 | router.get('/', function(req, res) { 6 | res.render('assets/index'); 7 | }); 8 | 9 | module.exports = router; 10 | -------------------------------------------------------------------------------- /server/controllers/courses.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | var path = require('path'); 4 | var Course = require(path.join(__dirname, '..', 'services', 'course')); 5 | 6 | router 7 | .get('/list.json', function(req, res) { 8 | res.json(Course.all()); 9 | }) 10 | .get('/:id.json', function(req, res) { 11 | var course = Course.find(req.params.id); 12 | 13 | if (course.error) { 14 | res.status(404).json(course); 15 | } else { 16 | res.json(course); 17 | } 18 | }) 19 | .get('/:id/challenges.json', function(req, res) { 20 | var course = Course.find(req.params.id); 21 | 22 | if (course.error) { 23 | res.status(404).json(course); 24 | } else { 25 | course.challenges[0].active = true; 26 | course.challenges[0].started = true; 27 | res.json(course.challenges); 28 | } 29 | }); 30 | 31 | module.exports = router; 32 | -------------------------------------------------------------------------------- /server/controllers/feedback.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | 4 | /* GET /feedback page */ 5 | router.get('/', function(req, res) { 6 | res.render('feedback/index'); 7 | }); 8 | 9 | /* GET /feedback/success page */ 10 | router.get('/success', function(req, res) { 11 | res.render('feedback/success'); 12 | }); 13 | 14 | module.exports = router; 15 | -------------------------------------------------------------------------------- /server/controllers/guidelines.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | 4 | /* GET /brand page */ 5 | router.get('/', function(req, res) { 6 | res.render('guidelines/index'); 7 | }); 8 | 9 | module.exports = router; 10 | -------------------------------------------------------------------------------- /server/controllers/index.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | var bodyParser = require('body-parser'); 4 | var parseForm = bodyParser.urlencoded({ extended: false }); 5 | 6 | /* GET home page. */ 7 | router. 8 | get('/', function(req, res, next) { 9 | res.render('index'); 10 | }); 11 | 12 | module.exports = router; 13 | -------------------------------------------------------------------------------- /server/controllers/learn.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | 4 | /* GET /learn page */ 5 | router.get('/', function(req, res) { 6 | res.render('learn/index'); 7 | }); 8 | 9 | module.exports = router; 10 | -------------------------------------------------------------------------------- /server/controllers/notFound.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | 4 | /* GET /notFound page */ 5 | router.get('/', function(req, res) { 6 | res.render('notFound/index'); 7 | }); 8 | 9 | module.exports = router; 10 | -------------------------------------------------------------------------------- /server/controllers/resources.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | 4 | /* GET /resources page */ 5 | router.get('/', function(req, res) { 6 | res.render('resources/index'); 7 | }); 8 | 9 | module.exports = router; 10 | -------------------------------------------------------------------------------- /server/controllers/sessions.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var passport = require('passport'); 3 | var router = express.Router(); 4 | 5 | router. 6 | get('/auth/github', passport.authenticate('github'), function(req, res){ 7 | // Request gets send to Github 8 | }) 9 | .get('/auth/github/callback', passport.authenticate('github', { failureRedirect: '/news/new' }), function(req, res) { 10 | // Callback that we set in Github 11 | res.redirect('/'); 12 | // res.redirect(req.session.returnTo || '/news'); 13 | }) 14 | 15 | module.exports = router; 16 | -------------------------------------------------------------------------------- /server/controllers/styleguide.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | 4 | /* GET /styleguide page */ 5 | router.get('/', function(req, res) { 6 | res.render('styleguide/index'); 7 | }); 8 | 9 | module.exports = router; 10 | -------------------------------------------------------------------------------- /server/controllers/users.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | 4 | router 5 | .get('/signout', function(req, res){ 6 | req.logout(); 7 | res.redirect('/news'); 8 | }) 9 | 10 | .get('/sign_in', function(req, res) { 11 | res.render('users/sign_in'); 12 | }); 13 | 14 | module.exports = router; 15 | -------------------------------------------------------------------------------- /server/services/course.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs'); 2 | var path = require('path'); 3 | 4 | var Course = { 5 | all() { 6 | return fs.readdirSync(path.join(__dirname, '..', '..', 'courses')); 7 | }, 8 | find(id) { 9 | if (this.all().indexOf(id) > -1) { 10 | return { 11 | name: id, 12 | challenges: require(path.join(__dirname, '..', '..', 'courses', id, 'index.js')) 13 | }; 14 | } else { 15 | return { error: `invalid course ${id}` }; 16 | } 17 | } 18 | } 19 | 20 | module.exports = Course; 21 | -------------------------------------------------------------------------------- /server/services/dbConnection.js: -------------------------------------------------------------------------------- 1 | var mongo = require('mongodb'); 2 | var mongoClient = mongo.MongoClient; 3 | 4 | exports.connect = function() { 5 | if(mongo.DB) { return mongo.DB } 6 | mongoClient.connect('mongodb://localhost:27017/jscom', function(err, db) { 7 | if(err){ 8 | console.log("Problem with mongo, help!"); 9 | process.exit(1) 10 | }else{ 11 | console.log("Yay, mongo!") 12 | mongo.DB = db 13 | } 14 | }); 15 | } 16 | -------------------------------------------------------------------------------- /server/services/slug-generator.js: -------------------------------------------------------------------------------- 1 | var slug = require('slug'); 2 | var shortid = require('shortid'); 3 | 4 | function createSlug(title) { 5 | var slugTitle = slug(title) + "-" + shortid.generate(); 6 | return slugTitle.toLowerCase(); 7 | }; 8 | 9 | module.exports = {createSlug: createSlug}; 10 | -------------------------------------------------------------------------------- /server/views/404.jade: -------------------------------------------------------------------------------- 1 | block current_nav 2 | - current_page = '404' 3 | 4 | extends /views/layouts/layout 5 | 6 | block content 7 | 8 | section.row.errorHero 9 | 10 | include /../public/images/img-404-hero.svg 11 | 12 | .cell.well.well--l.well--m--xl.tac.tci 13 | 14 | h1.h.h--l Oh, hey there. 15 | 16 | p.tsxl Looks like the page you're looking for isn't here. Why not enjoy the view? 17 | 18 | a.btn.btn--a--bordered.btn--l(href='/') Go Back Home 19 | -------------------------------------------------------------------------------- /server/views/error.jade: -------------------------------------------------------------------------------- 1 | extends /views/layouts/layout 2 | 3 | block content 4 | 5 | .row 6 | .well.well--l.cell 7 | 8 | h1.h.h--1= message 9 | 10 | if error.status 11 | p= error.status 12 | 13 | pre= error.stack 14 | -------------------------------------------------------------------------------- /server/views/feedback/success.jade: -------------------------------------------------------------------------------- 1 | block current_nav 2 | - current_page = 'Feedback' 3 | 4 | block layout_variables 5 | - pageTitle = 'Feedback' 6 | 7 | extends /views/layouts/layout 8 | 9 | block content 10 | 11 | section.row 12 | .cell.cell--s.well.well--l.well--m--xl 13 | 14 | .tac 15 | img.mbm(src='/images/img-feedback.svg' alt='Feedback' width='112') 16 | h1.h.h--1 Success! 17 | p Thanks for your feedback! We'll get back to you as soon as possible. 18 | a.btn(href='/') Head Back Home 19 | -------------------------------------------------------------------------------- /server/views/layouts/layout-bleed.jade: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang='en') 3 | 4 | block layout_variables 5 | include /views/layouts/_head 6 | 7 | - dispatcher = dispatcher ? dispatcher : '' 8 | body.js-dispatcher(data-dispatcher-page=dispatcher) 9 | 10 | - headerPartial = { bleed: true } 11 | include /views/partials/_header 12 | 13 | main(role='main') 14 | block content 15 | 16 | include /views/partials/_footer 17 | 18 | script(src='/javascripts/vendor.js') 19 | script(src='/javascripts/application.js') 20 | -------------------------------------------------------------------------------- /server/views/layouts/layout.jade: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang='en') 3 | 4 | block layout_variables 5 | include /views/layouts/_head 6 | 7 | - dispatcher = dispatcher ? dispatcher : '' 8 | body.js-dispatcher(data-dispatcher-page=dispatcher) 9 | 10 | include /views/partials/_header 11 | 12 | main(role='main') 13 | block content 14 | 15 | include /views/partials/_footer 16 | 17 | script(src='/javascripts/vendor.js') 18 | script(src='/javascripts/application.js') 19 | 20 | block inline_javascript 21 | -------------------------------------------------------------------------------- /server/views/learn/index.jade: -------------------------------------------------------------------------------- 1 | block layout_variables 2 | - dispatcher = 'course' 3 | - pageTitle = 'JavaScript Tutorial' 4 | - metaDescription = 'Start learning JavaScript right in your browser and then check out free resources to continue learning.' 5 | - headPartial = { fixedViewport: true } 6 | 7 | extends /views/layouts/layout-course 8 | 9 | block content 10 | div(ng-app='javascriptcom') 11 | js-course(course='intro') 12 | -------------------------------------------------------------------------------- /server/views/news/_data_separator.jade: -------------------------------------------------------------------------------- 1 | li.list-item.list-item--header.bdrbl.pbs 2 | span.mrs.por.pot2n 3 | - iconPartial = { name: 'calendar', size: 16 } 4 | include /views/partials/_icon 5 | span= dateText 6 | -------------------------------------------------------------------------------- /server/views/partials/_flash.jade: -------------------------------------------------------------------------------- 1 | while message = flash.shift() 2 | .alert.in.js-alert(class='alert--' + message.type) 3 | a.alert-msg-close.js-alert-close(href='#') × 4 | p.alert-msg= message.message 5 | -------------------------------------------------------------------------------- /server/views/partials/_header.jade: -------------------------------------------------------------------------------- 1 | - headerPartial = headerPartial || {} 2 | - headerPartial.bleed = headerPartial.bleed || false 3 | - menu = { 'News' : '/news', 'Resources' : '/resources' } 4 | 5 | block current_nav 6 | 7 | header.row.header(class=(headerPartial.bleed ? 'bc-regent' : '' ) role='banner') 8 | .cell.well.well--s.well--m--m 9 | 10 | .split.split--middle 11 | .split-item 12 | .split-cell 13 | a.dib(href='/') 14 | img.dn--m(src='/images/logo-mark.svg' alt='JavaScript.com' width='54') 15 | img.dn.db--m(src='/images/logo.svg' alt='JavaScript.com' width='275') 16 | nav.split-cell(role='navigation') 17 | each url, title in menu 18 | if current_page == title 19 | a.underline.header-link.is-active(href=url class=(headerPartial.bleed ? 'underline--alt' : '' ))= title 20 | else 21 | a.underline.header-link(href=url class=(headerPartial.bleed ? 'underline--alt' : '' ))= title 22 | -------------------------------------------------------------------------------- /server/views/partials/_hero_console.jade: -------------------------------------------------------------------------------- 1 | .card.emblem.inlineConsole-card.hero-card.pal--m.tac 2 | img.emblem-item(src='/images/img-console.svg' alt='' width='72') 3 | 4 | .emblem-content 5 | h3.h.h--2.h--light Ready to try JavaScript? 6 | 7 | p.tfh.tss 8 | | Begin learning here by typing in your first name surrounded by 9 | | quotation marks, and ending with a semicolon. For example, you 10 | | could type the name 11 | code.inlineCode "Gregg"; 12 | | and then hit 13 | kbd.inlineCode enter 14 | | . 15 | 16 | form.inlineConsole.js-inlineConsole(action='') 17 | span.inlineConsole-icon.inlineConsole-icon--caret 18 | span.inlineConsole-icon.inlineConsole-icon--check 19 | input.form-input.inlineConsole-input.js-inlineConsole-input(type='text') 20 | a.btn.inlineConsole-btn.js-inlineConsole-btn(href='/try') Next Challenge 21 | -------------------------------------------------------------------------------- /server/views/partials/_hero_img.jade: -------------------------------------------------------------------------------- 1 | .hero-img.hero-img--clouds 2 | 3 | include /public/images/img-hero-cloud.svg 4 | 5 | .hero-img 6 | 7 | include /public/images/img-hero.svg 8 | -------------------------------------------------------------------------------- /server/views/partials/_icon.jade: -------------------------------------------------------------------------------- 1 | - iconPartial = iconPartial || { } 2 | - iconPartial.className = iconPartial.className || undefined 3 | - iconPartial.name = iconPartial.name || undefined 4 | - iconPartial.size = iconPartial.size || 40 5 | - iconPartial.width = iconPartial.width || iconPartial.size 6 | - iconPartial.height = iconPartial.height || iconPartial.size 7 | 8 | span.srt= iconPartial.name 9 | 10 | svg.icon( class=iconPartial.className width=iconPartial.width height=iconPartial.height ) 11 | use( 'xlink:href'='#icon-#{iconPartial.name}' ) 12 | -------------------------------------------------------------------------------- /server/views/partials/_newsletter_form.jade: -------------------------------------------------------------------------------- 1 | .newsletter.js-newsletter 2 | form.form.newsletter-form.mtm.js-newsletter-form 3 | fieldset.form-field.form-field--inline.mbf 4 | .g.g--xs 5 | .g-b.g-b--s--3of5 6 | 7 | input.form-input.form-input--inline.mbs.mbf--m(type='email' name='email' placeholder='Email Address' required) 8 | p.mbf.mts.tce.tsxs.is-hidden.js-newsletter-error 9 | 10 | .g-b.g-b--s--2of5 11 | 12 | input.btn.btn--b.form-btn(type='submit' value='Sign Up' href="#") 13 | -------------------------------------------------------------------------------- /server/views/resources/_resource.jade: -------------------------------------------------------------------------------- 1 | - item = item || {} 2 | - item.title = item.title || 'Placeholder Title' 3 | - item.url = item.url || '#' 4 | - item.media = item.media || 'https://placehold.it/220x120' 5 | - item.description = item.description || '' 6 | 7 | li.list-item 8 | article.g 9 | .g-b.g-b--s--2of5.g-b--m--1of3 10 | a(href="#{item.url}") 11 | img.thumb.thumb--m(src="#{item.media}" alt="#{item.title}") 12 | .g-b.g-b--s--3of5.g-b--m--2of3.mtm.mtf--s 13 | h2.h.h--3 14 | a.externalLink.tct.twb(href="#{item.url}") 15 | = item.title 16 | - iconPartial = { name: 'external', className: 'externalLink-icon', size: 16 } 17 | include /views/partials/_icon 18 | 19 | p.mbf= item.description 20 | -------------------------------------------------------------------------------- /server/views/users/sign_in.jade: -------------------------------------------------------------------------------- 1 | block layout_variables 2 | - pageTitle = 'Users' 3 | - metaDescription = 'The latest news from the JavaScript community and the fine folks at 5 Minutes of JavaScript.' 4 | - dispatcher = 'users:authenticate' 5 | 6 | extends /views/layouts/layout 7 | 8 | block content 9 | 10 | section.row 11 | .cell.cell--s.well.well--xl 12 | 13 | img.db.mbl.mhc(src='/images/img-authentication.svg' alt='' width='221') 14 | 15 | .tac 16 | h1.h.h--1 Authenticate 17 | p To create a post, sign in with GitHub by clicking the button below. 18 | a.btn.btn--a(href='/sessions/auth/github') Sign In with GitHub 19 | -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- 1 | # How do we only run this if the javascriptcom database doesn't exist? 2 | 3 | if psql javascriptcom -c '\q' 2>&1 4 | then 5 | # The database exists 6 | echo "javascriptcom database already loaded" 7 | else 8 | createdb javascriptcom 9 | ./node_modules/node-pg-migrate/bin/pg-migrate up 10 | fi 11 | 12 | echo "installing bower assets" 13 | npm run bower install 14 | 15 | echo "compiling assets" 16 | npm run gulp build 17 | --------------------------------------------------------------------------------