├── .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 | [](http://travis-ci.org/marijnh/CodeMirror)
3 | [](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 |
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 | [](http://travis-ci.org/mochajs/mocha) [](https://gitter.im/mochajs/mocha?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
2 |
3 | [](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 |
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 |
--------------------------------------------------------------------------------
/public/images/icons/icon-check.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/public/images/icons/icon-external.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
--------------------------------------------------------------------------------
/public/images/icons/icon-mail.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
--------------------------------------------------------------------------------
/public/images/icons/icon-play.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
--------------------------------------------------------------------------------
/public/images/icons/icon-rss.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
11 |
--------------------------------------------------------------------------------
/public/images/icons/icon-star.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/public/images/icons/icon-submit.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/public/images/icons/icon-twitter.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/public/images/img-console.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/img-feedback.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/logo-mark-dotless.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/public/images/logo-mark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/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 |
4 |
--------------------------------------------------------------------------------
/public/templates/instructions.html:
--------------------------------------------------------------------------------
1 |
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 |
--------------------------------------------------------------------------------