diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 13053ce7f..3b48e7874 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1 +1 @@
-Please see the [contribution guide](https://github.com/borisyankov/DefinitelyTyped/wiki/How-to-contribute) for information on how to contribute to this project.
+Please see the [contribution guide](http://definitelytyped.org/guides/contributing.html) at [definitelytyped.org](http://definitelytyped.org/guides/contributing.html) for information on how to contribute to DefinitelyTyped.
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
new file mode 100644
index 000000000..d68e3061c
--- /dev/null
+++ b/CONTRIBUTORS.md
@@ -0,0 +1,293 @@
+# Contributors
+
+This is a non-exhaustive list of definitions and their creators. If you created a definition but are not listed then feel free to send a pull request on this file with your name and url.
+
+All definitions files include a header with the author and editors, so at some point this list will be auto-generated.
+
+* [accounting.js](http://josscrowcroft.github.io/accounting.js/) (by [Sergey Gerasimov](https://github.com/gerich-home))
+* [Ace Cloud9 Editor](http://ace.ajax.org/) (by [Diullei Gomes](https://github.com/Diullei))
+* [Add To Home Screen](http://cubiq.org/add-to-home-screen) (by [James Wilkins](http://www.codeplex.com/site/users/view/jamesnw))
+* [AmCharts](http://www.amcharts.com/) (by [Covobonomo](https://github.com/covobonomo/))
+* [AngularFire](https://www.firebase.com/docs/angular/reference.html) (by [Dénes Harmath](https://github.com/thSoft))
+* [AngularJS](http://angularjs.org) (by [Diego Vilar](https://github.com/diegovilar)) ([wiki](https://github.com/borisyankov/DefinitelyTyped/wiki/AngularJS-Definitions-Usage-Notes))
+* [AngularUI](http://angular-ui.github.io/) (by [Michel Salib](https://github.com/michelsalib))
+* [Angular Protractor](https://github.com/angular/protractor) (by [Bill Armstrong](https://github.com/BillArmstrong))
+* [Angular Translate](http://pascalprecht.github.io/angular-translate/) (by [Michel Salib](https://github.com/michelsalib))
+* [Angular UI Bootstrap](http://angular-ui.github.io/bootstrap) (by [Brian Surowiec](https://github.com/xt0rted))
+* [AppFramework](http://app-framework-software.intel.com/) (by [Kyo Ago](https://github.com/kyo-ago))
+* [Arbiter](http://arbiterjs.com/) (by [Arash Shakery](https://github.com/arash16))
+* [asciify](https://github.com/olizilla/asciify) (by [Alan](http://alan.norbauer.com))
+* [assert](https://github.com/Jxck/assert) (by [vvakame](https://github.com/vvakame))
+* [async](https://github.com/caolan/async) (by [Boris Yankov](https://github.com/borisyankov))
+* [Atom](https://atom.io/) (by [vvakame](https://github.com/vvakame))
+* [Backbone.js](http://backbonejs.org/) (by [Boris Yankov](https://github.com/borisyankov))
+* [Backbone Relational](http://backbonerelational.org/) (by [Eirik Hoem](https://github.com/eirikhm))
+* [BigInteger](https://github.com/peterolson/BigInteger.js) (by [Ingo Bürk](https://github.com/Airblader))
+* [BigScreen](http://brad.is/coding/BigScreen/) (by [Douglas Eichelberger](https://github.com/dduugg))
+* [Bluebird](https://github.com/petkaantonov/bluebird) (by [Bart van der Schoor](https://github.com/Bartvds))
+* [Bootbox](https://github.com/makeusabrew/bootbox) (by [Vincent Bortone](https://github.com/vbortone/))
+* [Bootstrap](http://twitter.github.com/bootstrap/) (by [Boris Yankov](https://github.com/borisyankov))
+* [bootstrap-notify](https://github.com/Nijikokun/bootstrap-notify) (by [Blake Niemyjski](https://github.com/niemyjski))
+* [bootstrap.datepicker](https://github.com/eternicode/bootstrap-datepicker) (by [Boris Yankov](https://github.com/borisyankov))
+* [Box2DWeb](http://code.google.com/p/box2dweb/) (by [Josh Baldwin](https://github.com/jbaldwin/))
+* [Breeze](http://www.breezejs.com/) (by [Boris Yankov](https://github.com/borisyankov))
+* [Browser Harness](https://github.com/scriby/browser-harness) (by [Chris Scribner](https://github.com/scriby))
+* [CasperJS](http://casperjs.org) (by [Jed Hunsaker](https://github.com/jedhunsaker))
+* [Cheerio](https://github.com/MatthewMueller/cheerio) (by [Bret Little](https://github.com/blittle))
+* [Chosen](http://harvesthq.github.com/chosen/) (by [Boris Yankov](https://github.com/borisyankov))
+* [Chrome](http://developer.chrome.com/extensions/) (by [Matthew Kimber](https://github.com/matthewkimber) and [otiai10](https://github.com/otiai10))
+* [Chrome App](http://developer.chrome.com/apps/) (by [Adam Lay](https://github.com/AdamLay))
+* [CKEditor](https://github.com/ckeditor/ckeditor-dev) (by [Ondrej Sevcik](https://github.com/ondrejsevcik))
+* [Clone](https://github.com/pvorb/node-clone) (by [Kieran Simpson](https://github.com/kierans))
+* [CodeMirror](http://codemirror.net) (by [François de Campredon](https://github.com/fdecampredon))
+* [Commander](http://github.com/visionmedia/commander.js) (by [Marcelo Dezem](https://github.com/mdezem))
+* [configstore](http://github.com/yeoman/configstore) (by [Bart van der Schoor](https://github.com/Bartvds))
+* [Cordova](http://cordova.apache.org) (by [Microsoft Open Technologies, Inc.](http://msopentech.com/))
+* [Couchbase / Couchnode](https://github.com/couchbase/couchnode) (by [Basarat Ali Syed](https://github.com/basarat))
+* [Crossfilter](https://github.com/square/crossfilter) (by [Schmulik Raskin](https://github.com/schmuli))
+* [crypto-js](https://code.google.com/p/crypto-js/) (by [Gia Bảo @ Sân Đình](https://github.com/giabao)). @see [cryptojs.d.ts repo](https://github.com/giabao/cryptojs.d.ts)
+* [d3.js](http://d3js.org/) (from TypeScript samples)
+* [dhtmlxGantt](http://dhtmlx.com/docs/products/dhtmlxGantt) (by [Maksim Kozhukh](http://github.com/mkozhukh))
+* [dhtmlxScheduler](http://dhtmlx.com/docs/products/dhtmlxScheduler) (by [Maksim Kozhukh](http://github.com/mkozhukh))
+* [diff](https://github.com/kpdecker/jsdiff) (by [vvakame](http://github.com/vvakame))
+* [Dock Spawn](http://dockspawn.com) (by [Drew Noakes](https://drewnoakes.com))
+* [docCookies](https://developer.mozilla.org/en-US/docs/Web/API/document.cookie) (by [Jon Egerton](https://github.com/jonegerton))
+* [domo](http://domo-js.com/) (by [Steve Fenton](https://github.com/Steve-Fenton))
+* [doT](https://github.com/olado/doT) (by [ZombieHunter](https://github.com/ZombieHunter))
+* [dust](http://linkedin.github.com/dustjs) (by [Marcelo Dezem](https://github.com/mdezem))
+* [EaselJS](http://www.createjs.com/#!/EaselJS) (by [Pedro Ferreira](https://bitbucket.org/drk4))
+* [EasyStar](http://easystarjs.com/) (by [Magnus Gustafsson](https://github.com/Borundin))
+* [ember.js](http://emberjs.com/) (by [Boris Yankov](https://github.com/borisyankov))
+* [emissary](https://github.com/atom/emissary) (by [vvakame](https://github.com/vvakame))
+* [EpicEditor](http://epiceditor.com/) (by [Boris Yankov](https://github.com/borisyankov))
+* [ES6-Promises](https://github.com/jakearchibald/ES6-Promises) (by [François de Campredon](https://github.com/fdecampredon/))
+* [expect.js](https://github.com/LearnBoost/expect.js) (by [Teppei Sato](https://github.com/teppeis))
+* [expectations](https://github.com/spmason/expectations) (by [vvakame](https://github.com/vvakame))
+* [Express](http://expressjs.com/) (by [Boris Yankov](https://github.com/borisyankov))
+* [Ext JS](http://www.sencha.com/products/extjs/) (by [Brian Kotek](https://github.com/brian428))
+* [Fabric.js](http://fabricjs.com/) (by [Oliver Klemencic](https://github.com/oklemencic/))
+* [Fancybox](http://fancybox.net/) (by [Boris Yankov](https://github.com/borisyankov))
+* [File API: Directories and System](http://www.w3.org/TR/file-system-api/) (by [Kon](http://phyzkit.net/))
+* [File API: Writer](http://www.w3.org/TR/file-writer-api/) (by [Kon](http://phyzkit.net/))
+* [Finite State Machine](https://github.com/jakesgordon/javascript-state-machine) (by [Boris Yankov](https://github.com/borisyankov))
+* [Firebase](https://www.firebase.com/docs/javascript/firebase) (by [Vincent Bortone](https://github.com/vbortone))
+* [Firefox](https://developer.mozilla.org/en-US/docs/Web/API) (by [vvakame](https://github.com/vvakame))
+* [FlexSlider](http://www.woothemes.com/flexslider/) (by [Diullei Gomes](https://github.com/Diullei))
+* [Flight by Twitter](http://flightjs.github.com/flight/) (by [Jonathan Hedrén](https://github.com/jonathanhedren))
+* [Foundation](http://foundation.zurb.com/) (by [Boris Yankov](https://github.com/borisyankov))
+* [FPSMeter](http://darsa.in/fpsmeter/) (by [Aaron Lampros](https://github.com/alampros))
+* [FullCalendar](http://arshaw.com/fullcalendar/) (by [Neil Stalker](https://github.com/nestalk))
+* [Gamepad](http://www.w3.org/TR/gamepad/) (by [Kon](http://phyzkit.net/))
+* [Giraffe](https://github.com/barc/backbone.giraffe) (by [Matt McCray](https://github.com/darthapo))
+* [glDatePicker](http://glad.github.com/glDatePicker/) (by [Dániel Tar](https://github.com/qcz))
+* [Glob](https://github.com/isaacs/node-glob) (by [vvakame](https://github.com/vvakame))
+* [GoJS](http://gojs.net/) (by [Barbara Duckworth](https://github.com/barbara42))
+* [Greasemonkey](http://www.greasespot.net/) (by [Kota Saito](https://github.com/kotas))
+* [GreenSock Animation Platform (GSAP)](http://www.greensock.com/get-started-js/) (by [Robert S.](https://github.com/codeBelt))
+* [Grunt JS](http://gruntjs.com/) (by [Jeff May](https://github.com/jeffmay), [Basarat Ali Syed](https://github.com/basarat) and [San Chen](https://github.com/bigsan))
+* [Google API Client](https://code.google.com/p/google-api-javascript-client/) (by [Frank M](https://github.com/sgtfrankieboy))
+* [Google App Engine Channel API](https://developers.google.com/appengine/docs/java/channel/javascript) (by [vvakame](https://github.com/vvakame))
+* [GoogleMaps](https://developers.google.com/maps/) (by [Esben Nepper](https://github.com/eNepper))
+* [GoogleMaps InfoBubble](http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobubble/) (by [Johan Nilsson](https://github.com/dashue))
+* [Google Geolocation](https://code.google.com/p/geo-location-javascript/) (by [Vincent Bortone](https://github.com/vbortone))
+* [Google Page Speed Online API](https://developers.google.com/speed/pagespeed/) (by [Frank M](https://github.com/sgtfrankieboy))
+* [Google Translate API](https://developers.google.com/translate/) (by [Frank M](https://github.com/sgtfrankieboy))
+* [Google Url Shortener](https://developers.google.com/url-shortener/) (by [Frank M](https://github.com/sgtfrankieboy))
+* [Hammer.js](http://eightmedia.github.com/hammer.js/) (by [Boris Yankov](https://github.com/borisyankov))
+* [Handlebars](http://handlebarsjs.com/) (by [Boris Yankov](https://github.com/borisyankov))
+* [HashSet](http://www.timdown.co.uk/jshashtable/jshashset.html) (by [Sergey Gerasimov](https://github.com/gerich-home))
+* [Hashtable](http://www.timdown.co.uk/jshashtable/) (by [Sergey Gerasimov](https://github.com/gerich-home))
+* [HelloJS](http://adodson.com/hello.js) (by [Pavel Zika](https://github.com/PavelPZ))
+* [Highcharts](http://www.highcharts.com/) (by [damianog](https://github.com/damianog))
+* [Highland](http://highlandjs.org/) (by [Bart van der Schoor](https://github.com/Bartvds/))
+* [highlight.js](https://github.com/isagalaev/highlight.js) (by [Niklas Mollenhauer](https://github.com/nikeee))
+* [History.js](https://github.com/browserstate/history.js) (by [Boris Yankov](https://github.com/borisyankov))
+* [Html2Canvas.js](https://github.com/niklasvh/html2canvas/) (by [Richard Hepburn](https://github.com/rwhepburn))
+* [Humane.js](http://wavded.github.com/humane-js/) (by [John Vrbanac](https://github.com/jmvrbanac))
+* [i18next](http://i18next.com/) (by [Maarten Docter](https://github.com/mdocter))
+* [iCheck](http://damirfoy.com/iCheck/) (by [Dániel Tar](https://github.com/qcz))
+* [Impress.js](https://github.com/bartaz/impress.js) (by [Boris Yankov](https://github.com/borisyankov))
+* [iScroll](http://cubiq.org/iscroll-4) (by [Boris Yankov](https://github.com/borisyankov) and [Christiaan Rakowski](https://github.com/csrakowski))
+* [IxJS (Interactive extensions)](https://github.com/Reactive-Extensions/IxJS) (by [Igor Oleinikov](https://github.com/Igorbek))
+* [jake](https://github.com/mde/jake) (by [Kon](http://phyzkit.net/))
+* [Jasmine](http://pivotal.github.com/jasmine/) (by [Boris Yankov](https://github.com/borisyankov))
+* [Jasmine-jQuery](https://github.com/velesin/jasmine-jquery) (by [Gregor Stamac](https://github.com/gstamac))
+* [JointJS](http://www.jointjs.com/) (by [Aidan Reel](http://github.com/areel))
+* [jQRangeSlider](http://ghusse.github.com/jQRangeSlider) (by [Dániel Tar](https://github.com/qcz))
+* [jQuery](http://jquery.com/) (from TypeScript samples)
+* [jQuery Mobile](http://jquerymobile.com) (by [Boris Yankov](https://github.com/borisyankov))
+* [jQuery UI](http://jqueryui.com/) (by [Boris Yankov](https://github.com/borisyankov))
+* [jQuery.Address](https://github.com/asual/jquery-address) (by [Martin Duparc](https://github.com/martinduparc/))
+* [jQuery.areYouSure](https://github.com/codedance/jquery.AreYouSure) (by [Jon Egerton](https://github.com/jonegerton))
+* [jQuery.autosize](http://www.jacklmoore.com/autosize/) (by [Jack Moore](http://www.jacklmoore.com/))
+* [jQuery.BBQ](http://benalman.com/projects/jquery-bbq-plugin/) (by [Adam R. Smith](https://github.com/sunetos))
+* [jQuery.CLEditor](http://premiumsoftware.net/CLEditor) (by [Jeffery Grajkowski](https://github.com/pushplay))
+* [jQuery.clientSideLogging](https://github.com/remybach/jQuery.clientSideLogging/) (by [Diullei Gomes](https://github.com/diullei/))
+* [jQuery.Colorbox](http://www.jacklmoore.com/colorbox/) (by [Gidon Junge](https://github.com/gjunge))
+* [jQuery.contextMenu](http://medialize.github.com/jQuery-contextMenu/) (by [Natan Vivo](https://github.com/nvivo/))
+* [jQuery.Cookie](https://github.com/carhartl/jquery-cookie) (by [Roy Goode](https://github.com/RoyGoode))
+* [jQuery.Cycle](http://jquery.malsup.com/cycle/) (by [François Guillot](http://fguillot.developpez.com/))
+* [jQuery.Cycle2](http://jquery.malsup.com/cycle2/) (by [Donny Nadolny](https://github.com/dnadolny))
+* [jQuery.dataTables](http://www.datatables.net) (by [Armin Sander](https://github.com/pragmatrix))
+* [jQuery.datetimepicker](http://trentrichardson.com/examples/timepicker/) (by [Doug McDonald](https://github.com/dougajmcdonald))
+* [jQuery.dynatree](http://code.google.com/p/dynatree/) (by [François de Campredon](https://github.com/fdecampredon))
+* [jQuery.Flot](http://www.flotcharts.org/) (by [Matt Burland](https://github.com/burlandm))
+* [jQuery.form](http://malsup.com/jquery/form/) (by [François Guillot](http://fguillot.developpez.com/))
+* [jQuery.Globalize](https://github.com/jquery/globalize) (by [Boris Yankov](https://github.com/borisyankov))
+* [jQuery.gridster](http://gridster.net) (by [Josh Baldwin](https://github.com/jbaldwin/gridster.d.ts))
+* [jQuery.jNotify](http://jnotify.codeplex.com) (by [James Curran](https://github.com/jamescurran/))
+* [jQuery.joyride](http://zurb.com/playground/jquery-joyride-feature-tour-plugin) (by [Vincent Bortone](https://github.com/vbortone))
+* [jQuery.jSignature](https://github.com/willowsystems/jSignature) (by [Patrick Magee](https://github.com/pjmagee))
+* [jQuery.noty](http://needim.github.io/noty/) (by [Aaron King](https://github.com/kingdango/))
+* [jQuery.pickadate](https://github.com/amsul/pickadate.js) (by [Theodore Brown](https://github.com/theodorejb))
+* [jQuery.payment](http://needim.github.io/noty/) (by [Eric J. Smith](https://github.com/ejsmith/))
+* [jQuery.pnotify](http://sciactive.github.io/pnotify/ (by [David Sichau](https://github.com/DavidSichau/))
+* [jQuery.scrollTo](https://github.com/flesler/jquery.scrollTo) (by [Neil Stalker](https://github.com/nestalk/))
+* [jQuery.simplePagination](https://github.com/flaviusmatis/simplePagination.js) (by [Natan Vivo](https://github.com/nvivo/))
+* [jquery.superLink](http://james.padolsey.com/demos/plugins/jQuery/superLink/superlink.jquery.js) (by [Blake Niemyjski](https://github.com/niemyjski))
+* [jQuery.timeago](http://timeago.yarp.com/) (by [François Guillot](http://fguillot.developpez.com/))
+* [jQuery.Timepicker](http://fgelinas.com/code/timepicker/) (by [Anwar Javed](https://github.com/anwarjaved))
+* [jQuery.Timer](http://jchavannes.com/jquery-timer/demo) (by [Joshua Strobl](https://github.com/JoshStrobl))
+* [jQuery.TinyCarousel](http://baijs.nl/tinycarousel/) (by [Christiaan Rakowski](https://github.com/csrakowski))
+* [jQuery.TinyScrollbar](http://baijs.nl/tinyscrollbar/) (by [Christiaan Rakowski](https://github.com/csrakowski))
+* [jQuery.tooltipster](https://github.com/iamceege/tooltipster) (by [Patrick Magee](https://github.com/pjmagee))
+* [jQuery.Transit](http://ricostacruz.com/jquery.transit/) (by [MrBigDog2U](https://github.com/MrBigDog2U))
+* [jQuery.Validation](http://bassistance.de/jquery-plugins/jquery-plugin-validation/) (by [Boris Yankov](https://github.com/borisyankov))
+* [jQuery.Watermark](http://jquery-watermark.googlecode.com) (by [Anwar Javed](https://github.com/anwarjaved))
+* [jQuery.base64](https://github.com/yatt/jquery.base64) (by [Shinya Mochizuki](https://github.com/enrapt-mochizuki))
+* [js-git](https://github.com/creationix/js-git) (by [Bart van der Schoor](https://github.com/Bartvds))
+* [js-yaml](https://github.com/nodeca/js-yaml) (by [Bart van der Schoor](https://github.com/Bartvds/))
+* [jScrollPane](http://jscrollpane.kelvinluck.com) (by [Dániel Tar](https://github.com/qcz))
+* [JSDeferred](http://cho45.stfuawsc.com/jsdeferred/) (by [Daisuke Mino](https://github.com/minodisk))
+* [JSONEditorOnline](https://github.com/josdejong/jsoneditoronline) (by [Vincent Bortone](https://github.com/vbortone/))
+* [JSON-Pointer](https://www.npmjs.org/package/json-pointer) (by [Bart van der Schoor](https://github.com/Bartvds))
+* [JsRender](http://www.jsviews.com/#jsrender) (by [Kensuke MATSUZAKI](https://github.com/zakki))
+* [jStorage](http://www.jstorage.info/) (by [Danil Flores](https://github.com/dflor003/))
+* [JWPlayer](http://developer.longtailvideo.com/trac/) (by [Martin Duparc](https://github.com/martinduparc/))
+* [KeyboardJS](https://github.com/RobertWHurst/KeyboardJS) (by [Vincent Bortone](https://github.com/vbortone/))
+* [KineticJS](http://kineticjs.com/) (by [Basarat Ali Syed](https://github.com/basarat))
+* [Knockback](http://kmalakoff.github.com/knockback/) (by [Marcel Binot](https://github.com/docgit))
+* [Knockout.js](http://knockoutjs.com/) (by [Boris Yankov](https://github.com/borisyankov))
+* [Knockout.DeferredUpdates](https://github.com/mbest/knockout-deferred-updates) (by [Sebastián Galiano](https://github.com/sgaliano))
+* [Knockout.ES5](https://github.com/SteveSanderson/knockout-es5) (by [Sebastián Galiano](https://github.com/sgaliano))
+* [Knockout.Mapper](https://github.com/LucasLorentz/knockout.mapper) (by [Brandon Meyer](https://github.com/BMeyerKC))
+* [Knockout.Mapping](https://github.com/SteveSanderson/knockout.mapping) (by [Boris Yankov](https://github.com/borisyankov))
+* [Knockout.Postbox](https://github.com/rniemeyer/knockout-postbox) (by [Judah Gabriel Himango](https://github.com/JudahGabriel))
+* [Knockout.Rx](https://github.com/Igorbek/knockout.rx) (by [Igor Oleinikov](https://github.com/Igorbek))
+* [Knockout.Validation](https://github.com/ericmbarnard/Knockout-Validation) (by [Dan Ludwig](https://github.com/danludwig))
+* [Knockout.Viewmodel](http://coderenaissance.github.com/knockout.viewmodel/) (by [Oisin Grehan](https://github.com/oising))
+* [ko.editables](http://romanych.github.com/ko.editables/) (by [Oisin Grehan](https://github.com/oising))
+* [KoLite](https://github.com/CodeSeven/kolite) (by [Boris Yankov](https://github.com/borisyankov))
+* [Lazy.js](http://danieltao.com/lazy.js/) (by [Bart van der Schoor](https://github.com/Bartvds))
+* [Leaflet](https://github.com/Leaflet/Leaflet) (by [Vladimir](https://github.com/rgripper))
+* [Libxmljs](https://github.com/polotek/libxmljs) (by [François de Campredon](https://github.com/fdecampredon))
+* [ladda](https://github.com/hakimel/Ladda) (by [Danil Flores](https://github.com/dflor003))
+* [Levelup](https://github.com/rvagg/node-levelup) (by [Bret Little](https://github.com/blittle))
+* [linq.js](http://linqjs.codeplex.com/) (by [Marcin Najder](https://github.com/marcinnajder))
+* [Livestamp.js](https://github.com/mattbradley/livestampjs) (by [Vincent Bortone](https://github.com/vbortone))
+* [localForage](https://github.com/mozilla/localForage) (by [david pichsenmeister](https://github.com/3x14159265))
+* [Lodash](http://lodash.com/) (by [Brian Zengel](https://github.com/bczengel))
+* [Logg](https://github.com/dpup/node-logg) (by [Bret Little](https://github.com/blittle))
+* [Marked](https://github.com/chjj/marked) (by [William Orr](https://github.com/worr))
+* [mCustomScrollbar](https://github.com/malihu/malihu-custom-scrollbar-plugin) (by [Sarah Williams](https://github.com/flurg))
+* [Meteor](https://www.meteor.com) (by [Dave Allen](https://github.com/fullflavedave))
+* [Microsoft Live Connect](http://msdn.microsoft.com/en-us/library/live/hh243643.aspx) (by [John Vilk](https://github.com/jvilk))
+* [Minimatch](https://github.com/isaacs/minimatch) (by [vvakame](https://github.com/vvakame))
+* [minimist](https://github.com/substack/minimist) (by [Bart van der Schoor](https://github.com/Bartvds))
+* [mixto](https://github.com/atom/mixto) (by [vvakame](https://github.com/vvakame))
+* [Modernizr](http://modernizr.com/) (by [Boris Yankov](https://github.com/borisyankov) and [Theodore Brown](https://github.com/theodorejb/))
+* [Moment.js](https://github.com/timrwood/moment) (by [Michael Lakerveld](https://github.com/Lakerfield))
+* [MongoDB](http://mongodb.github.io/node-mongodb-native/) (from TypeScript samples, updated by [Niklas Mollenhauer](https://github.com/nikeee))
+* [Mousetrap](http://craig.is/killing/mice) (by [Dániel Tar](https://github.com/qcz))
+* [msgpack.js](https://github.com/uupaa/msgpack.js) (by [Shinya Mochizuki](https://github.com/enrapt-mochizuki))
+* [Mustache.js](https://github.com/janl/mustache.js) (by [Boris Yankov](https://github.com/borisyankov))
+* [Node.js](http://nodejs.org/) (from TypeScript samples)
+* [node_redis](https://github.com/mranney/node_redis) (by [Boris Yankov](https://github.com/borisyankov))
+* [node-ffi](https://github.com/rbranson/node-ffi) (by [Paul Loyd](https://github.com/loyd))
+* [node-git](https://github.com/christkv/node-git) (by [vvakame](https://github.com/vvakame))
+* [node_zeromq](https://github.com/JustinTulloss/zeromq.node) (by [Dave McKeown](https://github.com/davemckeown))
+* [node-sqlserver](https://github.com/WindowsAzure/node-sqlserver) (by [Boris Yankov](https://github.com/borisyankov))
+* [notify.js](https://github.com/alexgibson/notify.js) (by [soundTricker](https://github.com/soundTricker))
+* [NProgress](https://github.com/rstacruz/nprogress) (by [Judah Gabriel Himango](https://github.com/judahgabriel))
+* [Numeral.js](https://github.com/adamwdraper/Numeral-js) (by [Vincent Bortone](https://github.com/vbortone/))
+* [OpenLayers](https://github.com/openlayers/openlayers) (by [Ilya Bolkhovsky](https://github.com/bolhovsky/))
+* [Passport](http://passportjs.org/) (by [Hiroki Horiuchi](https://github.com/horiuchi/))
+* [pathwatcher](http://atom.github.io/node-pathwatcher/) (by [vvakame](https://github.com/vvakame))
+* [Parallel.js](https://github.com/adambom/parallel.js) (by [Josh Baldwin](https://github.com/jbaldwin))
+* [Parsimmon](https://github.com/jayferd/parsimmon) (by [Bart van der Schoor](https://github.com/Bartvds))
+* [PDF.js](https://github.com/mozilla/pdf.js) (by [Josh Baldwin](https://github.com/jbaldwin))
+* [PEG.js](http://pegjs.majda.cz/) (by [vvakame](https://github.com/vvakame))
+* [Persona](http://www.mozilla.org/en-US/persona) (by [James Frasca](https://github.com/Nycto))
+* [PhantomJS](http://phantomjs.org) (by [Jed Hunsaker](https://github.com/jedhunsaker))
+* [PhoneGap](http://phonegap.com) (by [Boris Yankov](https://github.com/borisyankov))
+* [PixiJS](https://github.com/GoodBoyDigital/pixi.js) (by [Pedro Casaubon](https://github.com/xperiments))
+* [Platform](https://github.com/bestiejs/platform.js) (by [Jake Hickman](https://github.com/JakeH))
+* [PouchDB](http://pouchdb.com) (by [Bill Sears](https://github.com/MrBigDog2U/))
+* [PreloadJS](http://www.createjs.com/#!/PreloadJS) (by [Pedro Ferreira](https://bitbucket.org/drk4))
+* [Q](https://github.com/kriskowal/q) (by Barrie Nemetchek, Andrew Gaspar)
+* [Q-io](https://github.com/kriskowal/q-io) (by [Bart van der Schoor](https://github.com/Bartvds))
+* [QUnit](http://qunitjs.com/) (by [Diullei Gomes](https://github.com/Diullei))
+* [Raven.js](https://github.com/getsentry/raven-js) (by [Santi Albo](https://github.com/santialbo))
+* [Rickshaw](http://code.shutterstock.com/rickshaw/) (by [Blake Niemyjski](https://github.com/niemyjski))
+* [Riot.js](https://github.com/moot/riotjs) (by [vvakame](https://github.com/vvakame))
+* [Restify](https://github.com/mcavage/node-restify) (by [Bret Little](https://github.com/blittle))
+* [Royalslider](http://dimsemenov.com/plugins/royal-slider/) (by [Christiaan Rakowski](https://github.com/csrakowski))
+* [Rx.js](http://rx.codeplex.com/) (by [gsino](http://www.codeplex.com/site/users/view/gsino), [Igor Oleinikov](https://github.com/Igorbek), [Carl de Billy](http://carl.debilly.net/), [zoetrope](https://github.com/zoetrope))
+* [Raphael](http://raphaeljs.com/) (by [CheCoxshall](https://github.com/CheCoxshall))
+* [Restangular](https://github.com/mgonto/restangular/) (by [Boris Yankov](https://github.com/borisyankov))
+* [require.js](http://requirejs.org/) (by [Josh Baldwin](https://github.com/jbaldwin/))
+* [Sammy.js](http://sammyjs.org/) (by [Boris Yankov](https://github.com/borisyankov))
+* [Select2](http://ivaynberg.github.com/select2/) (by [Boris Yankov](https://github.com/borisyankov))
+* [Selenium WebDriverJS](https://code.google.com/p/selenium/) (by [Bill Armstrong](https://github.com/BillArmstrong))
+* [Semver](https://github.com/isaacs/node-semver) (by [Bart van der Schoor](https://github.com/Bartvds))
+* [Sencha Touch](http://www.sencha.com/products/touch/) (by [Brian Kotek](https://github.com/brian428))
+* [SharePoint](http://sptypescript.codeplex.com) (by [Stanislav Vyshchepan](http://gandjustas.blogspot.ru) and [Andrey Markeev](http://markeev.com))
+* [SignalR](http://www.asp.net/signalr) (by [Boris Yankov](https://github.com/borisyankov))
+* [simple-cw-node](https://github.com/astronaughts/simple-cw-node) (by [vvakame](https://github.com/vvakame))
+* [Sinon](http://sinonjs.org/) (by [William Sears](https://github.com/mrbigdog2u))
+* [SlickGrid](https://github.com/mleibman/SlickGrid) (by [Josh Baldwin](https://github.com/jbaldwin))
+* [smoothie](https://github.com/joewalnes/smoothie) (by [Mike H. Hawley](https://github.com/mikehhawley) and [Drew Noakes](https://drewnoakes.com))
+* [socket.io](http://socket.io) (by [William Orr](https://github.com/worr))
+* [socket.io-client](http://socket.io) (by [Maido Kaara](https://github.com/v3rm0n))
+* [SockJS](https://github.com/sockjs/sockjs-client) (by [Emil Ivanov](https://github.com/vladev))
+* [SoundJS](http://www.createjs.com/#!/SoundJS) (by [Pedro Ferreira](https://bitbucket.org/drk4))
+* [Spin](http://fgnass.github.com/spin.js/) (by [Boris Yankov](https://github.com/borisyankov))
+* [stripe](https://stripe.com/) (by [Eric J. Smith](https://github.com/ejsmith/))
+* [Store.js](https://github.com/marcuswestin/store.js/) (by [Vincent Bortone](https://github.com/vbortone))
+* [Sugar](http://sugarjs.com/) (by [Josh Baldwin](https://github.com/jbaldwin/))
+* [Swiper](http://www.idangero.us/sliders/swiper) (by [Sebastián Galiano](https://github.com/sgaliano))
+* [SwipeView](http://cubiq.org/swipeview) (by [Boris Yankov](https://github.com/borisyankov))
+* [TV4](https://github.com/geraintluff/tv4) (by [Bart van der Schoor](https://github.com/Bartvds))
+* [Tags Manager](http://welldonethings.com/tags/manager) (by [Vincent Bortone](https://github.com/vbortone))
+* [Teechart](http://www.steema.com) (by [Steema](http://www.steema.com))
+* [three.js](http://mrdoob.github.com/three.js/) (by [Kon](http://phyzkit.net/))
+* [Toastr](https://github.com/CodeSeven/toastr) (by [Boris Yankov](https://github.com/borisyankov))
+* [trunk8](https://github.com/rviscomi/trunk8) (by [Blake Niemyjski](https://github.com/niemyjski))
+* [TweenJS](http://www.createjs.com/#!/TweenJS) (by [Pedro Ferreira](https://bitbucket.org/drk4))
+* [tween.js](https://github.com/sole/tween.js/) (by [Adam R. Smith](https://github.com/sunetos))
+* [twitter-bootstrap-wizard](https://github.com/VinceG/twitter-bootstrap-wizard) (by [Blake Niemyjski](https://github.com/niemyjski))
+* [Twitter Typeahead](http://twitter.github.io/typeahead.js) (by [Ivaylo Gochkov](https://github.com/igochkov))
+* [Ubuntu Unity Web API](https://launchpad.net/libunity-webapps) (by [John Vrbanac](https://github.com/jmvrbanac))
+* [Underscore.js](http://underscorejs.org/) (by [Boris Yankov](https://github.com/borisyankov))
+* [Underscore.js (Typed)](http://underscorejs.org/) (by [Josh Baldwin](https://github.com/jbaldwin/))
+* [Underscore-ko.js](https://github.com/kamranayub/UnderscoreKO) (by [Maurits Elbers](https://github.com/MagicMau))
+* [universal-analytics](https://github.com/peaksandpies/universal-analytics) (by [Bart van der Schoor](https://github.com/Bartvds))
+* [update-notifier](https://github.com/yeoman/update-notifier) (by [vvakame](https://github.com/vvakame))
+* [uri-templates](https://github.com/geraintluff/uri-templates) (by [Bart van der Schoor](https://github.com/Bartvds))
+* [urlrouter](https://github.com/fengmk2/urlrouter) (by [Carlos Ballesteros Velasco](https://github.com/soywiz))
+* [UUID.js](https://github.com/LiosK/UUID.js) (by [Jason Jarrett](https://github.com/staxmanade))
+* [Valerie](https://github.com/davewatts/valerie) (by [Howard Richards](https://github.com/conficient))
+* [Viewporter](https://github.com/zynga/viewporter) (by [Boris Yankov](https://github.com/borisyankov))
+* [Vimeo](http://developer.vimeo.com/player/js-api) (by [Daz Wilkin](https://github.com/DazWilkin/))
+* [WebRTC](http://dev.w3.org/2011/webrtc/editor/webrtc.html) (by [Ken Smith](https://github.com/smithkl42))
+* [websocket](https://github.com/Worlize/WebSocket-Node) (by [Paul Loyd](https://github.com/loyd))
+* [WinJS](http://msdn.microsoft.com/en-us/library/windows/apps/br229773.aspx) (from TypeScript samples)
+* [WinRT](http://msdn.microsoft.com/en-us/library/windows/apps/br211377.aspx) (from TypeScript samples)
+* [ws](http://einaros.github.io/ws/) (by [Paul Loyd](https://github.com/loyd))
+* [XRegExp](http://xregexp.com/) (by [Bart van der Schoor](https://github.com/Bartvds))
+* [YouTube](https://developers.google.com/youtube/) (by [Daz Wilkin](https://github.com/DazWilkin/))
+* [YouTube Analytics API](https://developers.google.com/youtube/analytics/) (by [Frank M](https://github.com/sgtfrankieboy))
+* [YouTube Data API](https://developers.google.com/youtube/v3/) (by [Frank M](https://github.com/sgtfrankieboy/))
+* [Zepto.js](http://zeptojs.com/) (by [Josh Baldwin](https://github.com/jbaldwin))
+* [Zynga Scroller](https://github.com/zynga/scroller) (by [Boris Yankov](https://github.com/borisyankov))
+* [ZeroClipboard](https://github.com/jonrohan/ZeroClipboard) (by [Eric J. Smith](https://github.com/ejsmith))
diff --git a/README.md b/README.md
index 0e8ca78c5..479e04cc8 100755
--- a/README.md
+++ b/README.md
@@ -1,315 +1,41 @@
-DefinitelyTyped [](https://travis-ci.org/borisyankov/DefinitelyTyped)
-===============
+# DefinitelyTyped [](https://travis-ci.org/borisyankov/DefinitelyTyped)
-The repository for *high quality* TypeScript type definitions.
+> The repository for *high quality* TypeScript type definitions.
+
+For more information see the [definitelytyped.org](http://definitelytyped.org) website.
+
+## Usage
-Usage
------
Include a line like this:
-```
+```typescript
///
```
-[TypeScript Directory: tools, libraries, projects and learning resources](https://github.com/DefinitelyTyped/typescript-directory)
+## Contributions
-Contributor Guidelines
-----------------------
+DefinitelyTyped only works because of contributions by users like you!
-See the section: [How to contribute](https://github.com/borisyankov/DefinitelyTyped/wiki/How-to-contribute)
+Please see the [contribution guide](http://definitelytyped.org/guides/contributing.html) on how to contribute to DefinitelyTyped.
-Other means to get the definitions
-----------------------------------
+## How to get the definitions
+
+* Directly from the Github repos
* [NuGet packages](http://nuget.org/packages?q=DefinitelyTyped)
-* [TypeScript Definition package manager](https://github.com/DefinitelyTyped/tsd)
+* [TypeScript Definition manager](https://github.com/DefinitelyTyped/tsd)
-List of Definitions
--------------------
-* [accounting.js](http://josscrowcroft.github.io/accounting.js/) (by [Sergey Gerasimov](https://github.com/gerich-home))
-* [Ace Cloud9 Editor](http://ace.ajax.org/) (by [Diullei Gomes](https://github.com/Diullei))
-* [Add To Home Screen] (http://cubiq.org/add-to-home-screen) (by [James Wilkins] (http://www.codeplex.com/site/users/view/jamesnw))
-* [AmCharts](http://www.amcharts.com/) (by [Covobonomo](https://github.com/covobonomo/))
-* [AngularFire](https://www.firebase.com/docs/angular/reference.html) (by [Dénes Harmath](https://github.com/thSoft))
-* [AngularJS](http://angularjs.org) (by [Diego Vilar](https://github.com/diegovilar)) ([wiki](https://github.com/borisyankov/DefinitelyTyped/wiki/AngularJS-Definitions-Usage-Notes))
-* [AngularUI](http://angular-ui.github.io/) (by [Michel Salib](https://github.com/michelsalib))
-* [Angular Protractor](https://github.com/angular/protractor) (by [Bill Armstrong](https://github.com/BillArmstrong))
-* [Angular Translate](http://pascalprecht.github.io/angular-translate/) (by [Michel Salib](https://github.com/michelsalib))
-* [Angular UI Bootstrap](http://angular-ui.github.io/bootstrap) (by [Brian Surowiec](https://github.com/xt0rted))
-* [AppFramework](http://app-framework-software.intel.com/) (by [Kyo Ago](https://github.com/kyo-ago))
-* [Arbiter](http://arbiterjs.com/) (by [Arash Shakery](https://github.com/arash16))
-* [asciify](https://github.com/olizilla/asciify) (by [Alan](http://alan.norbauer.com))
-* [assert](https://github.com/Jxck/assert) (by [vvakame](https://github.com/vvakame))
-* [async](https://github.com/caolan/async) (by [Boris Yankov](https://github.com/borisyankov))
-* [Atom](https://atom.io/) (by [vvakame](https://github.com/vvakame))
-* [Backbone.js](http://backbonejs.org/) (by [Boris Yankov](https://github.com/borisyankov))
-* [Backbone Relational](http://backbonerelational.org/) (by [Eirik Hoem](https://github.com/eirikhm))
-* [BigScreen](http://brad.is/coding/BigScreen/) (by [Douglas Eichelberger](https://github.com/dduugg))
-* [Bluebird](https://github.com/petkaantonov/bluebird) (by [Bart van der Schoor](https://github.com/Bartvds))
-* [Bootbox](https://github.com/makeusabrew/bootbox) (by [Vincent Bortone](https://github.com/vbortone/))
-* [Bootstrap](http://twitter.github.com/bootstrap/) (by [Boris Yankov](https://github.com/borisyankov))
-* [bootstrap-notify](https://github.com/Nijikokun/bootstrap-notify) (by [Blake Niemyjski](https://github.com/niemyjski))
-* [bootstrap.datepicker](https://github.com/eternicode/bootstrap-datepicker) (by [Boris Yankov](https://github.com/borisyankov))
-* [Box2DWeb](http://code.google.com/p/box2dweb/) (by [Josh Baldwin](https://github.com/jbaldwin/))
-* [Breeze](http://www.breezejs.com/) (by [Boris Yankov](https://github.com/borisyankov))
-* [Browser Harness](https://github.com/scriby/browser-harness) (by [Chris Scribner](https://github.com/scriby))
-* [CasperJS](http://casperjs.org) (by [Jed Hunsaker](https://github.com/jedhunsaker))
-* [Cheerio](https://github.com/MatthewMueller/cheerio) (by [Bret Little](https://github.com/blittle))
-* [Chosen](http://harvesthq.github.com/chosen/) (by [Boris Yankov](https://github.com/borisyankov))
-* [Chrome](http://developer.chrome.com/extensions/) (by [Matthew Kimber](https://github.com/matthewkimber) and [otiai10](https://github.com/otiai10))
-* [Chrome App](http://developer.chrome.com/apps/) (by [Adam Lay](https://github.com/AdamLay))
-* [CKEditor](https://github.com/ckeditor/ckeditor-dev) (by [Ondrej Sevcik](https://github.com/ondrejsevcik))
-* [Clone](https://github.com/pvorb/node-clone) (by [Kieran Simpson](https://github.com/kierans))
-* [CodeMirror](http://codemirror.net) (by [François de Campredon](https://github.com/fdecampredon))
-* [Commander](http://github.com/visionmedia/commander.js) (by [Marcelo Dezem](https://github.com/mdezem))
-* [configstore](http://github.com/yeoman/configstore) (by [Bart van der Schoor](https://github.com/Bartvds))
-* [Cordova](http://cordova.apache.org) (by [Microsoft Open Technologies, Inc.](http://msopentech.com/))
-* [Couchbase / Couchnode](https://github.com/couchbase/couchnode) (by [Basarat Ali Syed](https://github.com/basarat))
-* [Crossfilter](https://github.com/square/crossfilter) (by [Schmulik Raskin](https://github.com/schmuli))
-* [crypto-js](https://code.google.com/p/crypto-js/) (by [Gia Bảo @ Sân Đình](https://github.com/giabao)). @see [cryptojs.d.ts repo](https://github.com/giabao/cryptojs.d.ts)
-* [d3.js](http://d3js.org/) (from TypeScript samples)
-* [dhtmlxGantt](http://dhtmlx.com/docs/products/dhtmlxGantt) (by [Maksim Kozhukh](http://github.com/mkozhukh))
-* [dhtmlxScheduler](http://dhtmlx.com/docs/products/dhtmlxScheduler) (by [Maksim Kozhukh](http://github.com/mkozhukh))
-* [diff](https://github.com/kpdecker/jsdiff) (by [vvakame](http://github.com/vvakame))
-* [Dock Spawn](http://dockspawn.com) (by [Drew Noakes](https://drewnoakes.com))
-* [docCookies](https://developer.mozilla.org/en-US/docs/Web/API/document.cookie) (by [Jon Egerton](https://github.com/jonegerton))
-* [domo](http://domo-js.com/) (by [Steve Fenton](https://github.com/Steve-Fenton))
-* [doT](https://github.com/olado/doT) (by [ZombieHunter](https://github.com/ZombieHunter))
-* [dust](http://linkedin.github.com/dustjs) (by [Marcelo Dezem](https://github.com/mdezem))
-* [EaselJS](http://www.createjs.com/#!/EaselJS) (by [Pedro Ferreira](https://bitbucket.org/drk4))
-* [EasyStar](http://easystarjs.com/) (by [Magnus Gustafsson](https://github.com/Borundin))
-* [ember.js](http://emberjs.com/) (by [Boris Yankov](https://github.com/borisyankov))
-* [emissary](https://github.com/atom/emissary) (by [vvakame](https://github.com/vvakame))
-* [EpicEditor](http://epiceditor.com/) (by [Boris Yankov](https://github.com/borisyankov))
-* [ES6-Promises](https://github.com/jakearchibald/ES6-Promises) (by [François de Campredon](https://github.com/fdecampredon/))
-* [expect.js](https://github.com/LearnBoost/expect.js) (by [Teppei Sato](https://github.com/teppeis))
-* [expectations](https://github.com/spmason/expectations) (by [vvakame](https://github.com/vvakame))
-* [Express](http://expressjs.com/) (by [Boris Yankov](https://github.com/borisyankov))
-* [Ext JS](http://www.sencha.com/products/extjs/) (by [Brian Kotek](https://github.com/brian428))
-* [Fabric.js](http://fabricjs.com/) (by [Oliver Klemencic](https://github.com/oklemencic/))
-* [Fancybox](http://fancybox.net/) (by [Boris Yankov](https://github.com/borisyankov))
-* [File API: Directories and System](http://www.w3.org/TR/file-system-api/) (by [Kon](http://phyzkit.net/))
-* [File API: Writer](http://www.w3.org/TR/file-writer-api/) (by [Kon](http://phyzkit.net/))
-* [Finite State Machine](https://github.com/jakesgordon/javascript-state-machine) (by [Boris Yankov](https://github.com/borisyankov))
-* [Firebase](https://www.firebase.com/docs/javascript/firebase) (by [Vincent Bortone](https://github.com/vbortone))
-* [Firefox](https://developer.mozilla.org/en-US/docs/Web/API) (by [vvakame](https://github.com/vvakame))
-* [FlexSlider](http://www.woothemes.com/flexslider/) (by [Diullei Gomes](https://github.com/Diullei))
-* [Flight by Twitter](http://flightjs.github.com/flight/) (by [Jonathan Hedrén](https://github.com/jonathanhedren))
-* [Foundation](http://foundation.zurb.com/) (by [Boris Yankov](https://github.com/borisyankov))
-* [FPSMeter](http://darsa.in/fpsmeter/) (by [Aaron Lampros](https://github.com/alampros))
-* [FullCalendar](http://arshaw.com/fullcalendar/) (by [Neil Stalker](https://github.com/nestalk))
-* [Gamepad](http://www.w3.org/TR/gamepad/) (by [Kon](http://phyzkit.net/))
-* [Giraffe](https://github.com/barc/backbone.giraffe) (by [Matt McCray](https://github.com/darthapo))
-* [glDatePicker](http://glad.github.com/glDatePicker/) (by [Dániel Tar](https://github.com/qcz))
-* [GoJS](http://gojs.net/) (by [Barbara Duckworth](https://github.com/barbara42))
-* [Greasemonkey](http://www.greasespot.net/) (by [Kota Saito](https://github.com/kotas))
-* [GreenSock Animation Platform (GSAP)](http://www.greensock.com/get-started-js/) (by [Robert S.](https://github.com/codeBelt))
-* [Grunt JS](http://gruntjs.com/) (by [Jeff May](https://github.com/jeffmay), [Basarat Ali Syed](https://github.com/basarat) and [San Chen](https://github.com/bigsan))
-* [Google API Client](https://code.google.com/p/google-api-javascript-client/) (by [Frank M](https://github.com/sgtfrankieboy))
-* [Google App Engine Channel API](https://developers.google.com/appengine/docs/java/channel/javascript) (by [vvakame](https://github.com/vvakame))
-* [GoogleMaps](https://developers.google.com/maps/) (by [Esben Nepper](https://github.com/eNepper))
-* [GoogleMaps InfoBubble](http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobubble/) (by [Johan Nilsson](https://github.com/dashue))
-* [Google Geolocation](https://code.google.com/p/geo-location-javascript/) (by [Vincent Bortone](https://github.com/vbortone))
-* [Google Page Speed Online API](https://developers.google.com/speed/pagespeed/) (by [Frank M](https://github.com/sgtfrankieboy))
-* [Google Translate API](https://developers.google.com/translate/) (by [Frank M](https://github.com/sgtfrankieboy))
-* [Google Url Shortener](https://developers.google.com/url-shortener/) (by [Frank M](https://github.com/sgtfrankieboy))
-* [Hammer.js](http://eightmedia.github.com/hammer.js/) (by [Boris Yankov](https://github.com/borisyankov))
-* [Handlebars](http://handlebarsjs.com/) (by [Boris Yankov](https://github.com/borisyankov))
-* [HashSet](http://www.timdown.co.uk/jshashtable/jshashset.html) (by [Sergey Gerasimov](https://github.com/gerich-home))
-* [Hashtable](http://www.timdown.co.uk/jshashtable/) (by [Sergey Gerasimov](https://github.com/gerich-home))
-* [HelloJS](http://adodson.com/hello.js) (by [Pavel Zika](https://github.com/PavelPZ))
-* [Highcharts](http://www.highcharts.com/) (by [damianog](https://github.com/damianog))
-* [Highland](http://highlandjs.org/) (by [Bart van der Schoor](https://github.com/Bartvds/))
-* [highlight.js](https://github.com/isagalaev/highlight.js) (by [Niklas Mollenhauer](https://github.com/nikeee))
-* [History.js](https://github.com/browserstate/history.js) (by [Boris Yankov](https://github.com/borisyankov))
-* [Html2Canvas.js](https://github.com/niklasvh/html2canvas/) (by [Richard Hepburn](https://github.com/rwhepburn))
-* [Humane.js](http://wavded.github.com/humane-js/) (by [John Vrbanac](https://github.com/jmvrbanac))
-* [i18next](http://i18next.com/) (by [Maarten Docter](https://github.com/mdocter))
-* [iCheck](http://damirfoy.com/iCheck/) (by [Dániel Tar](https://github.com/qcz))
-* [Impress.js](https://github.com/bartaz/impress.js) (by [Boris Yankov](https://github.com/borisyankov))
-* [iScroll](http://cubiq.org/iscroll-4) (by [Boris Yankov](https://github.com/borisyankov) and [Christiaan Rakowski](https://github.com/csrakowski))
-* [IxJS (Interactive extensions)](https://github.com/Reactive-Extensions/IxJS) (by [Igor Oleinikov](https://github.com/Igorbek))
-* [jake](https://github.com/mde/jake) (by [Kon](http://phyzkit.net/))
-* [Jasmine](http://pivotal.github.com/jasmine/) (by [Boris Yankov](https://github.com/borisyankov))
-* [Jasmine-jQuery](https://github.com/velesin/jasmine-jquery) (by [Gregor Stamac](https://github.com/gstamac))
-* [JointJS](http://www.jointjs.com/) (by [Aidan Reel](http://github.com/areel))
-* [jQRangeSlider](http://ghusse.github.com/jQRangeSlider) (by [Dániel Tar](https://github.com/qcz))
-* [jQuery](http://jquery.com/) (from TypeScript samples)
-* [jQuery Mobile](http://jquerymobile.com) (by [Boris Yankov](https://github.com/borisyankov))
-* [jQuery UI](http://jqueryui.com/) (by [Boris Yankov](https://github.com/borisyankov))
-* [jQuery.Address](https://github.com/asual/jquery-address) (by [Martin Duparc](https://github.com/martinduparc/))
-* [jQuery.areYouSure](https://github.com/codedance/jquery.AreYouSure) (by [Jon Egerton](https://github.com/jonegerton))
-* [jQuery.autosize](http://www.jacklmoore.com/autosize/) (by [Jack Moore](http://www.jacklmoore.com/))
-* [jQuery.BBQ](http://benalman.com/projects/jquery-bbq-plugin/) (by [Adam R. Smith](https://github.com/sunetos))
-* [jQuery.CLEditor](http://premiumsoftware.net/CLEditor) (by [Jeffery Grajkowski](https://github.com/pushplay))
-* [jQuery.clientSideLogging](https://github.com/remybach/jQuery.clientSideLogging/) (by [Diullei Gomes](https://github.com/diullei/))
-* [jQuery.Colorbox](http://www.jacklmoore.com/colorbox/) (by [Gidon Junge](https://github.com/gjunge))
-* [jQuery.contextMenu](http://medialize.github.com/jQuery-contextMenu/) (by [Natan Vivo](https://github.com/nvivo/))
-* [jQuery.Cookie](https://github.com/carhartl/jquery-cookie) (by [Roy Goode](https://github.com/RoyGoode))
-* [jQuery.Cycle](http://jquery.malsup.com/cycle/) (by [François Guillot](http://fguillot.developpez.com/))
-* [jQuery.Cycle2](http://jquery.malsup.com/cycle2/) (by [Donny Nadolny](https://github.com/dnadolny))
-* [jQuery.dataTables](http://www.datatables.net) (by [Armin Sander](https://github.com/pragmatrix))
-* [jQuery.datetimepicker](http://trentrichardson.com/examples/timepicker/) (by [Doug McDonald](https://github.com/dougajmcdonald))
-* [jQuery.dynatree](http://code.google.com/p/dynatree/) (by [François de Campredon](https://github.com/fdecampredon))
-* [jQuery.Flot](http://www.flotcharts.org/) (by [Matt Burland](https://github.com/burlandm))
-* [jQuery.form](http://malsup.com/jquery/form/) (by [François Guillot](http://fguillot.developpez.com/))
-* [jQuery.Globalize](https://github.com/jquery/globalize) (by [Boris Yankov](https://github.com/borisyankov))
-* [jQuery.gridster](http://gridster.net) (by [Josh Baldwin](https://github.com/jbaldwin/gridster.d.ts))
-* [jQuery.jNotify](http://jnotify.codeplex.com) (by [James Curran](https://github.com/jamescurran/))
-* [jQuery.joyride](http://zurb.com/playground/jquery-joyride-feature-tour-plugin) (by [Vincent Bortone](https://github.com/vbortone))
-* [jQuery.jSignature] (https://github.com/willowsystems/jSignature) (by [Patrick Magee](https://github.com/pjmagee))
-* [jQuery.noty](http://needim.github.io/noty/) (by [Aaron King](https://github.com/kingdango/))
-* [jQuery.pickadate](https://github.com/amsul/pickadate.js) (by [Theodore Brown](https://github.com/theodorejb))
-* [jQuery.payment](http://needim.github.io/noty/) (by [Eric J. Smith](https://github.com/ejsmith/))
-* [jQuery.pnotify](http://sciactive.github.io/pnotify/ (by [David Sichau](https://github.com/DavidSichau/))
-* [jQuery.scrollTo](https://github.com/flesler/jquery.scrollTo) (by [Neil Stalker](https://github.com/nestalk/))
-* [jQuery.simplePagination](https://github.com/flaviusmatis/simplePagination.js) (by [Natan Vivo](https://github.com/nvivo/))
-* [jquery.superLink](http://james.padolsey.com/demos/plugins/jQuery/superLink/superlink.jquery.js) (by [Blake Niemyjski](https://github.com/niemyjski))
-* [jQuery.timeago](http://timeago.yarp.com/) (by [François Guillot](http://fguillot.developpez.com/))
-* [jQuery.Timepicker](http://fgelinas.com/code/timepicker/) (by [Anwar Javed](https://github.com/anwarjaved))
-* [jQuery.Timer](http://jchavannes.com/jquery-timer/demo) (by [Joshua Strobl](https://github.com/JoshStrobl))
-* [jQuery.TinyCarousel](http://baijs.nl/tinycarousel/) (by [Christiaan Rakowski](https://github.com/csrakowski))
-* [jQuery.TinyScrollbar](http://baijs.nl/tinyscrollbar/) (by [Christiaan Rakowski](https://github.com/csrakowski))
-* [jQuery.tooltipster] (https://github.com/iamceege/tooltipster) (by [Patrick Magee](https://github.com/pjmagee))
-* [jQuery.Transit](http://ricostacruz.com/jquery.transit/) (by [MrBigDog2U](https://github.com/MrBigDog2U))
-* [jQuery.Validation](http://bassistance.de/jquery-plugins/jquery-plugin-validation/) (by [Boris Yankov](https://github.com/borisyankov))
-* [jQuery.Watermark](http://jquery-watermark.googlecode.com) (by [Anwar Javed](https://github.com/anwarjaved))
-* [jQuery.base64](https://github.com/yatt/jquery.base64) (by [Shinya Mochizuki](https://github.com/enrapt-mochizuki))
-* [js-git](https://github.com/creationix/js-git) (by [Bart van der Schoor](https://github.com/Bartvds))
-* [js-yaml](https://github.com/nodeca/js-yaml) (by [Bart van der Schoor](https://github.com/Bartvds/))
-* [jScrollPane](http://jscrollpane.kelvinluck.com) (by [Dániel Tar](https://github.com/qcz))
-* [JSDeferred](http://cho45.stfuawsc.com/jsdeferred/) (by [Daisuke Mino](https://github.com/minodisk))
-* [JSONEditorOnline](https://github.com/josdejong/jsoneditoronline) (by [Vincent Bortone](https://github.com/vbortone/))
-* [JSON-Pointer](https://www.npmjs.org/package/json-pointer) (by [Bart van der Schoor](https://github.com/Bartvds))
-* [JsRender](http://www.jsviews.com/#jsrender) (by [Kensuke MATSUZAKI](https://github.com/zakki))
-* [jStorage](http://www.jstorage.info/) (by [Danil Flores](https://github.com/dflor003/))
-* [JWPlayer](http://developer.longtailvideo.com/trac/) (by [Martin Duparc](https://github.com/martinduparc/))
-* [KeyboardJS](https://github.com/RobertWHurst/KeyboardJS) (by [Vincent Bortone](https://github.com/vbortone/))
-* [KineticJS](http://kineticjs.com/) (by [Basarat Ali Syed](https://github.com/basarat))
-* [Knockback](http://kmalakoff.github.com/knockback/) (by [Marcel Binot](https://github.com/docgit))
-* [Knockout.js](http://knockoutjs.com/) (by [Boris Yankov](https://github.com/borisyankov))
-* [Knockout.DeferredUpdates](https://github.com/mbest/knockout-deferred-updates) (by [Sebastián Galiano](https://github.com/sgaliano))
-* [Knockout.ES5](https://github.com/SteveSanderson/knockout-es5) (by [Sebastián Galiano](https://github.com/sgaliano))
-* [Knockout.Mapper](https://github.com/LucasLorentz/knockout.mapper) (by [Brandon Meyer](https://github.com/BMeyerKC))
-* [Knockout.Mapping](https://github.com/SteveSanderson/knockout.mapping) (by [Boris Yankov](https://github.com/borisyankov))
-* [Knockout.Postbox](https://github.com/rniemeyer/knockout-postbox) (by [Judah Gabriel Himango](https://github.com/JudahGabriel))
-* [Knockout.Rx](https://github.com/Igorbek/knockout.rx) (by [Igor Oleinikov](https://github.com/Igorbek))
-* [Knockout.Validation](https://github.com/ericmbarnard/Knockout-Validation) (by [Dan Ludwig](https://github.com/danludwig))
-* [Knockout.Viewmodel](http://coderenaissance.github.com/knockout.viewmodel/) (by [Oisin Grehan](https://github.com/oising))
-* [ko.editables](http://romanych.github.com/ko.editables/) (by [Oisin Grehan](https://github.com/oising))
-* [KoLite](https://github.com/CodeSeven/kolite) (by [Boris Yankov](https://github.com/borisyankov))
-* [Lazy.js](http://danieltao.com/lazy.js/) (by [Bart van der Schoor](https://github.com/Bartvds))
-* [Leaflet](https://github.com/Leaflet/Leaflet) (by [Vladimir](https://github.com/rgripper))
-* [Libxmljs](https://github.com/polotek/libxmljs) (by [François de Campredon](https://github.com/fdecampredon))
-* [ladda](https://github.com/hakimel/Ladda) (by [Danil Flores](https://github.com/dflor003))
-* [Levelup](https://github.com/rvagg/node-levelup) (by [Bret Little](https://github.com/blittle))
-* [linq.js](http://linqjs.codeplex.com/) (by [Marcin Najder](https://github.com/marcinnajder))
-* [Livestamp.js](https://github.com/mattbradley/livestampjs) (by [Vincent Bortone](https://github.com/vbortone))
-* [localForage](https://github.com/mozilla/localForage) (by [david pichsenmeister](https://github.com/3x14159265))
-* [Lodash](http://lodash.com/) (by [Brian Zengel](https://github.com/bczengel))
-* [Logg](https://github.com/dpup/node-logg) (by [Bret Little](https://github.com/blittle))
-* [Marked](https://github.com/chjj/marked) (by [William Orr](https://github.com/worr))
-* [mCustomScrollbar](https://github.com/malihu/malihu-custom-scrollbar-plugin) (by [Sarah Williams](https://github.com/flurg))
-* [Meteor](https://www.meteor.com) (by [Dave Allen](https://github.com/fullflavedave))
-* [Microsoft Live Connect](http://msdn.microsoft.com/en-us/library/live/hh243643.aspx) (by [John Vilk](https://github.com/jvilk))
-* [minimist](https://github.com/substack/minimist) (by [Bart van der Schoor](https://github.com/Bartvds))
-* [mixto](https://github.com/atom/mixto) (by [vvakame](https://github.com/vvakame))
-* [Modernizr](http://modernizr.com/) (by [Boris Yankov](https://github.com/borisyankov) and [Theodore Brown](https://github.com/theodorejb/))
-* [Moment.js](https://github.com/timrwood/moment) (by [Michael Lakerveld](https://github.com/Lakerfield))
-* [MongoDB](http://mongodb.github.io/node-mongodb-native/) (from TypeScript samples, updated by [Niklas Mollenhauer](https://github.com/nikeee))
-* [Mousetrap](http://craig.is/killing/mice) (by [Dániel Tar](https://github.com/qcz))
-* [msgpack.js](https://github.com/uupaa/msgpack.js) (by [Shinya Mochizuki](https://github.com/enrapt-mochizuki))
-* [Mustache.js](https://github.com/janl/mustache.js) (by [Boris Yankov](https://github.com/borisyankov))
-* [Node.js](http://nodejs.org/) (from TypeScript samples)
-* [node_redis](https://github.com/mranney/node_redis) (by [Boris Yankov](https://github.com/borisyankov))
-* [node-ffi](https://github.com/rbranson/node-ffi) (by [Paul Loyd](https://github.com/loyd))
-* [node-git](https://github.com/christkv/node-git) (by [vvakame](https://github.com/vvakame))
-* [node_zeromq](https://github.com/JustinTulloss/zeromq.node) (by [Dave McKeown](https://github.com/davemckeown))
-* [node-sqlserver](https://github.com/WindowsAzure/node-sqlserver) (by [Boris Yankov](https://github.com/borisyankov))
-* [notify.js](https://github.com/alexgibson/notify.js) (by [soundTricker](https://github.com/soundTricker))
-* [NProgress](https://github.com/rstacruz/nprogress) (by [Judah Gabriel Himango](https://github.com/judahgabriel))
-* [Numeral.js](https://github.com/adamwdraper/Numeral-js) (by [Vincent Bortone](https://github.com/vbortone/))
-* [OpenLayers](https://github.com/openlayers/openlayers) (by [Ilya Bolkhovsky](https://github.com/bolhovsky/))
-* [Passport](http://passportjs.org/) (by [Hiroki Horiuchi](https://github.com/horiuchi/))
-* [pathwatcher](http://atom.github.io/node-pathwatcher/) (by [vvakame](https://github.com/vvakame))
-* [Parallel.js](https://github.com/adambom/parallel.js) (by [Josh Baldwin](https://github.com/jbaldwin))
-* [Parsimmon](https://github.com/jayferd/parsimmon) (by [Bart van der Schoor](https://github.com/Bartvds))
-* [PDF.js](https://github.com/mozilla/pdf.js) (by [Josh Baldwin](https://github.com/jbaldwin))
-* [PEG.js](http://pegjs.majda.cz/) (by [vvakame](https://github.com/vvakame))
-* [Persona](http://www.mozilla.org/en-US/persona) (by [James Frasca](https://github.com/Nycto))
-* [PhantomJS](http://phantomjs.org) (by [Jed Hunsaker](https://github.com/jedhunsaker))
-* [PhoneGap](http://phonegap.com) (by [Boris Yankov](https://github.com/borisyankov))
-* [PixiJS](https://github.com/GoodBoyDigital/pixi.js) (by [Pedro Casaubon](https://github.com/xperiments))
-* [Platform](https://github.com/bestiejs/platform.js) (by [Jake Hickman](https://github.com/JakeH))
-* [PouchDB](http://pouchdb.com) (by [Bill Sears](https://github.com/MrBigDog2U/))
-* [PreloadJS](http://www.createjs.com/#!/PreloadJS) (by [Pedro Ferreira](https://bitbucket.org/drk4))
-* [Q](https://github.com/kriskowal/q) (by Barrie Nemetchek, Andrew Gaspar)
-* [Q-io](https://github.com/kriskowal/q-io) (by [Bart van der Schoor](https://github.com/Bartvds))
-* [QUnit](http://qunitjs.com/) (by [Diullei Gomes](https://github.com/Diullei))
-* [Raven.js](https://github.com/getsentry/raven-js) (by [Santi Albo](https://github.com/santialbo))
-* [Rickshaw](http://code.shutterstock.com/rickshaw/) (by [Blake Niemyjski](https://github.com/niemyjski))
-* [Riot.js](https://github.com/moot/riotjs) (by [vvakame](https://github.com/vvakame))
-* [Restify](https://github.com/mcavage/node-restify) (by [Bret Little](https://github.com/blittle))
-* [Royalslider](http://dimsemenov.com/plugins/royal-slider/) (by [Christiaan Rakowski](https://github.com/csrakowski))
-* [Rx.js](http://rx.codeplex.com/) (by [gsino](http://www.codeplex.com/site/users/view/gsino), [Igor Oleinikov](https://github.com/Igorbek), [Carl de Billy](http://carl.debilly.net/), [zoetrope](https://github.com/zoetrope))
-* [Raphael](http://raphaeljs.com/) (by [CheCoxshall](https://github.com/CheCoxshall))
-* [Restangular](https://github.com/mgonto/restangular/) (by [Boris Yankov](https://github.com/borisyankov))
-* [require.js](http://requirejs.org/) (by [Josh Baldwin](https://github.com/jbaldwin/))
-* [Sammy.js](http://sammyjs.org/) (by [Boris Yankov](https://github.com/borisyankov))
-* [Select2](http://ivaynberg.github.com/select2/) (by [Boris Yankov](https://github.com/borisyankov))
-* [Selenium WebDriverJS](https://code.google.com/p/selenium/) (by [Bill Armstrong](https://github.com/BillArmstrong))
-* [Semver](https://github.com/isaacs/node-semver) (by [Bart van der Schoor](https://github.com/Bartvds))
-* [Sencha Touch](http://www.sencha.com/products/touch/) (by [Brian Kotek](https://github.com/brian428))
-* [SharePoint](http://sptypescript.codeplex.com) (by [Stanislav Vyshchepan](http://gandjustas.blogspot.ru) and [Andrey Markeev](http://markeev.com))
-* [SignalR](http://www.asp.net/signalr) (by [Boris Yankov](https://github.com/borisyankov))
-* [simple-cw-node](https://github.com/astronaughts/simple-cw-node) (by [vvakame](https://github.com/vvakame))
-* [Sinon](http://sinonjs.org/) (by [William Sears](https://github.com/mrbigdog2u))
-* [SlickGrid](https://github.com/mleibman/SlickGrid) (by [Josh Baldwin](https://github.com/jbaldwin))
-* [smoothie](https://github.com/joewalnes/smoothie) (by [Mike H. Hawley](https://github.com/mikehhawley) and [Drew Noakes](https://drewnoakes.com))
-* [socket.io](http://socket.io) (by [William Orr](https://github.com/worr))
-* [socket.io-client](http://socket.io) (by [Maido Kaara](https://github.com/v3rm0n))
-* [SockJS](https://github.com/sockjs/sockjs-client) (by [Emil Ivanov](https://github.com/vladev))
-* [SoundJS](http://www.createjs.com/#!/SoundJS) (by [Pedro Ferreira](https://bitbucket.org/drk4))
-* [Spin](http://fgnass.github.com/spin.js/) (by [Boris Yankov](https://github.com/borisyankov))
-* [stripe](https://stripe.com/) (by [Eric J. Smith](https://github.com/ejsmith/))
-* [Store.js](https://github.com/marcuswestin/store.js/) (by [Vincent Bortone](https://github.com/vbortone))
-* [Sugar](http://sugarjs.com/) (by [Josh Baldwin](https://github.com/jbaldwin/))
-* [Swiper](http://www.idangero.us/sliders/swiper) (by [Sebastián Galiano](https://github.com/sgaliano))
-* [SwipeView](http://cubiq.org/swipeview) (by [Boris Yankov](https://github.com/borisyankov))
-* [TV4](https://github.com/geraintluff/tv4) (by [Bart van der Schoor](https://github.com/Bartvds))
-* [Tags Manager](http://welldonethings.com/tags/manager) (by [Vincent Bortone](https://github.com/vbortone))
-* [Teechart](http://www.steema.com) (by [Steema](http://www.steema.com))
-* [three.js](http://mrdoob.github.com/three.js/) (by [Kon](http://phyzkit.net/))
-* [Toastr](https://github.com/CodeSeven/toastr) (by [Boris Yankov](https://github.com/borisyankov))
-* [trunk8](https://github.com/rviscomi/trunk8) (by [Blake Niemyjski](https://github.com/niemyjski))
-* [TweenJS](http://www.createjs.com/#!/TweenJS) (by [Pedro Ferreira](https://bitbucket.org/drk4))
-* [tween.js](https://github.com/sole/tween.js/) (by [Adam R. Smith](https://github.com/sunetos))
-* [twitter-bootstrap-wizard](https://github.com/VinceG/twitter-bootstrap-wizard) (by [Blake Niemyjski](https://github.com/niemyjski))
-* [Twitter Typeahead](http://twitter.github.io/typeahead.js) (by [Ivaylo Gochkov](https://github.com/igochkov))
-* [Ubuntu Unity Web API](https://launchpad.net/libunity-webapps) (by [John Vrbanac](https://github.com/jmvrbanac))
-* [Underscore.js](http://underscorejs.org/) (by [Boris Yankov](https://github.com/borisyankov))
-* [Underscore.js (Typed)](http://underscorejs.org/) (by [Josh Baldwin](https://github.com/jbaldwin/))
-* [Underscore-ko.js](https://github.com/kamranayub/UnderscoreKO) (by [Maurits Elbers](https://github.com/MagicMau))
-* [universal-analytics](https://github.com/peaksandpies/universal-analytics) (by [Bart van der Schoor](https://github.com/Bartvds))
-* [update-notifier](https://github.com/yeoman/update-notifier) (by [vvakame](https://github.com/vvakame))
-* [uri-templates](https://github.com/geraintluff/uri-templates) (by [Bart van der Schoor](https://github.com/Bartvds))
-* [urlrouter](https://github.com/fengmk2/urlrouter) (by [Carlos Ballesteros Velasco](https://github.com/soywiz))
-* [UUID.js](https://github.com/LiosK/UUID.js) (by [Jason Jarrett](https://github.com/staxmanade))
-* [Valerie](https://github.com/davewatts/valerie) (by [Howard Richards](https://github.com/conficient))
-* [Viewporter](https://github.com/zynga/viewporter) (by [Boris Yankov](https://github.com/borisyankov))
-* [Vimeo](http://developer.vimeo.com/player/js-api) (by [Daz Wilkin](https://github.com/DazWilkin/))
-* [WebRTC](http://dev.w3.org/2011/webrtc/editor/webrtc.html) (by [Ken Smith](https://github.com/smithkl42))
-* [websocket](https://github.com/Worlize/WebSocket-Node) (by [Paul Loyd](https://github.com/loyd))
-* [WinJS](http://msdn.microsoft.com/en-us/library/windows/apps/br229773.aspx) (from TypeScript samples)
-* [WinRT](http://msdn.microsoft.com/en-us/library/windows/apps/br211377.aspx) (from TypeScript samples)
-* [ws](http://einaros.github.io/ws/) (by [Paul Loyd](https://github.com/loyd))
-* [XRegExp](http://xregexp.com/) (by [Bart van der Schoor](https://github.com/Bartvds))
-* [YouTube](https://developers.google.com/youtube/) (by [Daz Wilkin](https://github.com/DazWilkin/))
-* [YouTube Analytics API](https://developers.google.com/youtube/analytics/) (by [Frank M](https://github.com/sgtfrankieboy))
-* [YouTube Data API](https://developers.google.com/youtube/v3/) (by [Frank M](https://github.com/sgtfrankieboy/))
-* [Zepto.js](http://zeptojs.com/) (by [Josh Baldwin](https://github.com/jbaldwin))
-* [Zynga Scroller](https://github.com/zynga/scroller) (by [Boris Yankov](https://github.com/borisyankov))
-* [ZeroClipboard](https://github.com/jonrohan/ZeroClipboard) (by [Eric J. Smith](https://github.com/ejsmith))
+## List of definitions
-Requested Definitions
----------------------
-Here is an updated list of [definitions people have requested](https://github.com/borisyankov/DefinitelyTyped/issues?labels=Definition%3ARequest)
+* See [CONTRIBUTORS.md](CONTRIBUTORS.md)
+
+## Requested definitions
+
+Here is an updated list of [definitions people have requested](https://github.com/borisyankov/DefinitelyTyped/issues?labels=Definition%3ARequest).
+
+## Licence
+
+This project is licensed under the MIT license.
+
+Copyrights on the definition files are respective of each contributor listed at the beginning of each definition file.
+
+[](https://github.com/igrigorik/ga-beacon)
\ No newline at end of file
diff --git a/big-integer/big-integer-tests.ts b/big-integer/big-integer-tests.ts
new file mode 100644
index 000000000..3b9fb8745
--- /dev/null
+++ b/big-integer/big-integer-tests.ts
@@ -0,0 +1,114 @@
+///
+
+// constructor tests
+var noArgument = bigInt(),
+ numberArgument = bigInt( 93 ),
+ stringArgument = bigInt( "75643564363473453456342378564387956906736546456235345" ),
+ bigIntArgument = bigInt( noArgument );
+
+// method tests
+var x = bigInt(),
+ isBigInteger: BigInteger,
+ isNumber: number,
+ isBoolean: boolean,
+ isString: string,
+ isDivmod: {
+ quotient: BigInteger;
+ remainder: BigInteger;
+ };
+
+isBigInteger = x.abs();
+
+isBigInteger = x.add( 0 );
+isBigInteger = x.add( x );
+isBigInteger = x.add( "100" );
+
+isBigInteger = x.compare( 0 );
+isBigInteger = x.compare( x );
+isBigInteger = x.compare( "100" );
+
+isBigInteger = x.compareAbs( 0 );
+isBigInteger = x.compareAbs( x );
+isBigInteger = x.compareAbs( "100" );
+
+isBigInteger = x.divide( 0 );
+isBigInteger = x.divide( x );
+isBigInteger = x.divide( "100" );
+
+isDivmod = x.divmod( 0 );
+isDivmod = x.divmod( x );
+isDivmod = x.divmod( "100" );
+
+isBoolean = x.equals( 0 );
+isBoolean = x.equals( x );
+isBoolean = x.equals( "100" );
+
+isBoolean = x.greater( 0 );
+isBoolean = x.greater( x );
+isBoolean = x.greater( "100" );
+
+isBoolean = x.greaterOrEquals( 0 );
+isBoolean = x.greaterOrEquals( x );
+isBoolean = x.greaterOrEquals( "100" );
+
+isBoolean = x.isEven();
+
+isBoolean = x.isNegative();
+
+isBoolean = x.isOdd();
+
+isBoolean = x.isPositive();
+
+isBoolean = x.lesser( 0 );
+isBoolean = x.lesser( x );
+isBoolean = x.lesser( "100" );
+
+isBoolean = x.lesserOrEquals( 0 );
+isBoolean = x.lesserOrEquals( x );
+isBoolean = x.lesserOrEquals( "100" );
+
+isBigInteger = x.minus( 0 );
+isBigInteger = x.minus( x );
+isBigInteger = x.minus( "100" );
+
+isBigInteger = x.mod( 0 );
+isBigInteger = x.mod( x );
+isBigInteger = x.mod( "100" );
+
+isBigInteger = x.multiply( 0 );
+isBigInteger = x.multiply( x );
+isBigInteger = x.multiply( "100" );
+
+isBigInteger = x.next();
+
+isBoolean = x.notEquals( 0 );
+isBoolean = x.notEquals( x );
+isBoolean = x.notEquals( "100" );
+
+isBigInteger = x.over( 0 );
+isBigInteger = x.over( x );
+isBigInteger = x.over( "100" );
+
+isBigInteger = x.plus( 0 );
+isBigInteger = x.plus( x );
+isBigInteger = x.plus( "100" );
+
+isBigInteger = x.pow( 0 );
+isBigInteger = x.pow( x );
+isBigInteger = x.pow( "100" );
+
+isBigInteger = x.prev();
+
+isBigInteger = x.subtract( 0 );
+isBigInteger = x.subtract( x );
+isBigInteger = x.subtract( "100" );
+
+isBigInteger = x.times( 0 );
+isBigInteger = x.times( x );
+isBigInteger = x.times( "100" );
+
+isNumber = x.toJSNumber();
+
+isString = x.toString();
+
+isNumber = x.valueOf();
\ No newline at end of file
diff --git a/big-integer/big-integer.d.ts b/big-integer/big-integer.d.ts
new file mode 100644
index 000000000..dfadc4962
--- /dev/null
+++ b/big-integer/big-integer.d.ts
@@ -0,0 +1,202 @@
+// Type definitions for BigInteger.js
+// Project: https://github.com/peterolson/BigInteger.js
+// Definitions by: Ingo Bürk
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+interface BigInteger {
+ /** Returns the absolute value of a bigInt. */
+ abs(): BigInteger;
+
+ /** Performs addition */
+ add( number: number ): BigInteger;
+ /** Performs addition */
+ add( number: BigInteger ): BigInteger;
+ /** Performs addition */
+ add( number: string ): BigInteger;
+
+ /** Alias for the add method. */
+ plus( number: number ): BigInteger;
+ /** Alias for the add method. */
+ plus( number: BigInteger ): BigInteger;
+ /** Alias for the add method. */
+ plus( number: string ): BigInteger;
+
+ /** Alias for the subtract method. */
+ minus( number: number ): BigInteger;
+ /** Alias for the subtract method. */
+ minus( number: BigInteger ): BigInteger;
+ /** Alias for the subtract method. */
+ minus( number: string ): BigInteger;
+
+ /** Performs subtraction. */
+ subtract( number: number ): BigInteger;
+ /** Performs subtraction. */
+ subtract( number: BigInteger ): BigInteger;
+ /** Performs subtraction. */
+ subtract( number: string ): BigInteger;
+
+ /** Performs multiplication. */
+ multiply( number: number ): BigInteger;
+ /** Performs multiplication. */
+ multiply( number: BigInteger ): BigInteger;
+ /** Performs multiplication. */
+ multiply( number: string ): BigInteger;
+
+ /** Alias for the multiply method. */
+ times( number: number ): BigInteger;
+ /** Alias for the multiply method. */
+ times( number: BigInteger ): BigInteger;
+ /** Alias for the multiply method. */
+ times( number: string ): BigInteger;
+
+ /** Performs integer division, disregarding the remainder. */
+ divide( number: number ): BigInteger;
+ /** Performs integer division, disregarding the remainder. */
+ divide( number: BigInteger ): BigInteger;
+ /** Performs integer division, disregarding the remainder. */
+ divide( number: string ): BigInteger;
+
+ /** Alias for the divide method. */
+ over( number: number ): BigInteger;
+ /** Alias for the divide method. */
+ over( number: BigInteger ): BigInteger;
+ /** Alias for the divide method. */
+ over( number: string ): BigInteger;
+
+ /** Performs exponentiation. If the exponent is less than 0, pow returns 0. bigInt.zero.pow(0) returns 1. */
+ pow( number: number ): BigInteger;
+ /** Performs exponentiation. If the exponent is less than 0, pow returns 0. bigInt.zero.pow(0) returns 1. */
+ pow( number: BigInteger ): BigInteger;
+ /** Performs exponentiation. If the exponent is less than 0, pow returns 0. bigInt.zero.pow(0) returns 1. */
+ pow( number: string ): BigInteger;
+
+ /** Adds one to the number. */
+ next(): BigInteger;
+
+ /** Subtracts one from the number. */
+ prev(): BigInteger;
+
+ /** Performs division and returns the remainder, disregarding the quotient. The sign of the remainder will match the sign of the dividend. */
+ mod( number: number ): BigInteger;
+ /** Performs division and returns the remainder, disregarding the quotient. The sign of the remainder will match the sign of the dividend. */
+ mod( number: BigInteger ): BigInteger;
+ /** Performs division and returns the remainder, disregarding the quotient. The sign of the remainder will match the sign of the dividend. */
+ mod( number: string ): BigInteger;
+
+ /** Performs division and returns an object with two properties: quotient and remainder. The sign of the remainder will match the sign of the dividend. */
+ divmod( number: number ): { quotient: BigInteger; remainder: BigInteger };
+ /** Performs division and returns an object with two properties: quotient and remainder. The sign of the remainder will match the sign of the dividend. */
+ divmod( number: BigInteger ): { quotient: BigInteger; remainder: BigInteger };
+ /** Performs division and returns an object with two properties: quotient and remainder. The sign of the remainder will match the sign of the dividend. */
+ divmod( number: string ): { quotient: BigInteger; remainder: BigInteger };
+
+ /** Checks if the first number is greater than the second. */
+ greater( number: number ): boolean;
+ /** Checks if the first number is greater than the second. */
+ greater( number: BigInteger ): boolean;
+ /** Checks if the first number is greater than the second. */
+ greater( number: string ): boolean;
+
+ /** Checks if the first number is greater than or equal to the second. */
+ greaterOrEquals( number: number ): boolean;
+ /** Checks if the first number is greater than or equal to the second. */
+ greaterOrEquals( number: BigInteger ): boolean;
+ /** Checks if the first number is greater than or equal to the second. */
+ greaterOrEquals( number: string ): boolean;
+
+ /** Checks if the first number is lesser than the second. */
+ lesser( number: number ): boolean;
+ /** Checks if the first number is lesser than the second. */
+ lesser( number: BigInteger ): boolean;
+ /** Checks if the first number is lesser than the second. */
+ lesser( number: string ): boolean;
+
+ /** Checks if the first number is less than or equal to the second. */
+ lesserOrEquals( number: number ): boolean;
+ /** Checks if the first number is less than or equal to the second. */
+ lesserOrEquals( number: BigInteger ): boolean;
+ /** Checks if the first number is less than or equal to the second. */
+ lesserOrEquals( number: string ): boolean;
+
+ /** Returns true if the number is even, false otherwise. */
+ isEven(): boolean;
+
+ /** Returns true if the number is odd, false otherwise. */
+ isOdd(): boolean;
+
+ /** Return true if the number is positive, false otherwise. Returns true for 0 and false for -0. */
+ isPositive(): boolean;
+
+ /** Returns true if the number is negative, false otherwise. Returns false for 0 and true for -0. */
+ isNegative(): boolean;
+
+ /**
+ * Performs a comparison between two numbers. If the numbers are equal, it returns 0.
+ * If the first number is greater, it returns 1. If the first number is lesser, it returns -1.
+ */
+ compare( number: number ): BigInteger;
+ /**
+ * Performs a comparison between two numbers. If the numbers are equal, it returns 0.
+ * If the first number is greater, it returns 1. If the first number is lesser, it returns -1.
+ */
+ compare( number: BigInteger ): BigInteger;
+ /**
+ * Performs a comparison between two numbers. If the numbers are equal, it returns 0.
+ * If the first number is greater, it returns 1. If the first number is lesser, it returns -1.
+ */
+ compare( number: string ): BigInteger;
+
+ /** Performs a comparison between the absolute value of two numbers. */
+ compareAbs( number: number ): BigInteger;
+ /** Performs a comparison between the absolute value of two numbers. */
+ compareAbs( number: BigInteger ): BigInteger;
+ /** Performs a comparison between the absolute value of two numbers. */
+ compareAbs( number: string ): BigInteger;
+
+ /** Checks if two numbers are equal. */
+ equals( number: number ): boolean;
+ /** Checks if two numbers are equal. */
+ equals( number: BigInteger ): boolean;
+ /** Checks if two numbers are equal. */
+ equals( number: string ): boolean;
+
+ /** Checks if two numbers are not equal. */
+ notEquals( number: number ): boolean;
+ /** Checks if two numbers are not equal. */
+ notEquals( number: BigInteger ): boolean;
+ /** Checks if two numbers are not equal. */
+ notEquals( number: string ): boolean;
+
+ /** Converts a bigInt into a native Javascript number. Loses precision for numbers outside the range. */
+ toJSNumber(): number;
+
+ /** Converts a bigInt to a string. */
+ toString(): string;
+
+ /** Converts a bigInt to a native Javascript number. This override allows you to use native arithmetic operators without explicit conversion. */
+ valueOf(): number;
+}
+
+interface BigIntegerStatic {
+ /** Equivalent to bigInt(1) */
+ one: BigInteger;
+ /** Equivalent to bigInt(0) */
+ zero: BigInteger;
+ /** Equivalent to bigInt(-1) */
+ minusOne: BigInteger;
+
+ /** Equivalent to bigInt(0) */
+ (): BigInteger;
+ /** Parse a Javascript number into a bigInt */
+ ( number: number ): BigInteger;
+ /** Parse a string into a bigInt */
+ ( string: string ): BigInteger;
+ /** no-op */
+ ( bigInt: BigInteger ): BigInteger;
+}
+
+declare var bigInt: BigIntegerStatic;
+
+declare module "big-integer" {
+ export = bigInt;
+}
\ No newline at end of file
diff --git a/colors/colors.d.ts b/colors/colors.d.ts
index c87112d7c..e6056b354 100644
--- a/colors/colors.d.ts
+++ b/colors/colors.d.ts
@@ -3,6 +3,10 @@
// Definitions by: Bart van der Schoor
// Definitions: https://github.com/borisyankov/DefinitelyTyped
+declare module "colors" {
+ export function setTheme(theme:any):any;
+}
+
interface String {
bold:string;
italic:string;
diff --git a/domready/domready.d.ts b/domready/domready.d.ts
index c951f9397..14ba14011 100644
--- a/domready/domready.d.ts
+++ b/domready/domready.d.ts
@@ -3,4 +3,8 @@
// Definitions by: Christian Holm Nielsen
// Definitions: https://github.com/borisyankov/DefinitelyTyped
-declare function domready(callback: () => any) : void;
\ No newline at end of file
+declare function domready(callback: () => any) : void;
+
+declare module "domready" {
+ export = domready;
+}
diff --git a/glob/glob-tests.ts b/glob/glob-tests.ts
new file mode 100644
index 000000000..af5ecf6d0
--- /dev/null
+++ b/glob/glob-tests.ts
@@ -0,0 +1,24 @@
+///
+
+import glob = require("glob");
+var Glob = glob.Glob;
+
+(()=> {
+ var pattern = "test/a/**/[cg]/../[cg]";
+ console.log(pattern);
+
+ var mg = new Glob(pattern, {mark: true, sync: true}, function (er, matches) {
+ console.log("matches", matches)
+ });
+ console.log("after")
+})();
+
+(()=> {
+ var pattern = "{./*/*,/*,/usr/local/*}";
+ console.log(pattern);
+
+ var mg = new Glob(pattern, {mark: true}, function (er, matches) {
+ console.log("matches", matches)
+ });
+ console.log("after")
+})();
diff --git a/glob/glob.d.ts b/glob/glob.d.ts
new file mode 100644
index 000000000..46ab16e0a
--- /dev/null
+++ b/glob/glob.d.ts
@@ -0,0 +1,70 @@
+// Type definitions for Glob
+// Project: https://github.com/isaacs/node-glob
+// Definitions by: vvakame
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+///
+
+declare module "glob" {
+
+ import events = require("events");
+ import minimatch = require("minimatch");
+
+ function G(pattern:string, cb:(err:Error, matches:string[])=>void):void;
+
+ function G(pattern:string, options:G.IOptions, cb:(err:Error, matches:string[])=>void):void;
+
+ module G {
+ function sync(pattern:string, options?:IOptions):string[];
+
+ var Glob:IGlobStatic;
+
+ interface IOptions extends minimatch.IOptions {
+ sync?: boolean;
+ nomount?: boolean;
+ matchBase?:any;
+ noglobstar?:any;
+ strict?: boolean;
+ dot?:boolean;
+ mark?:boolean;
+ nounique?:boolean;
+ nonull?:boolean;
+ nosort?:boolean;
+ nocase?:boolean;
+ stat?:boolean;
+ debug?:boolean;
+ globDebug?:boolean;
+ silent?:boolean;
+ }
+
+ interface IGlobStatic extends events.EventEmitter {
+ new (pattern:string, cb?:(err:Error, matches:string[])=>void):IGlob;
+ new (pattern:string, options:any, cb?:(err:Error, matches:string[])=>void):IGlob;
+ }
+
+ interface IGlob {
+ EOF:any;
+ paused:boolean;
+ maxDepth:number;
+ maxLength:number;
+ cache:any;
+ statCache:any;
+ changedCwd:boolean;
+ cwd: string;
+ root: string;
+ error: any;
+ aborted: boolean;
+ minimatch: minimatch.IMinimatch;
+ matches:string[];
+
+ log(...args:any[]):void;
+ abort():void;
+ pause():void;
+ resume():void;
+ emitMatch(m:any):void;
+ }
+ }
+
+export = G;
+}
diff --git a/googlemaps/google.maps.d.ts b/googlemaps/google.maps.d.ts
index 86a446508..27275f098 100644
--- a/googlemaps/google.maps.d.ts
+++ b/googlemaps/google.maps.d.ts
@@ -1356,9 +1356,9 @@ declare module google.maps {
}
export interface AutocompleteOptions {
- bounds: LatLngBounds;
- componentRestrictions: ComponentRestrictions;
- types: string[];
+ bounds?: LatLngBounds;
+ componentRestrictions?: ComponentRestrictions;
+ types?: string[];
}
export interface ComponentRestrictions {
diff --git a/jake/jake.d.ts b/jake/jake.d.ts
index 2afaee338..330aac324 100644
--- a/jake/jake.d.ts
+++ b/jake/jake.d.ts
@@ -214,6 +214,7 @@ declare module jake{
setMaxListeners(n: number): void;
listeners(event: string): Function[];
emit(event: string, ...args: any[]): boolean;
+ value: any;
}
export class DirectoryTask{
diff --git a/jasmine/jasmine.d.ts b/jasmine/jasmine.d.ts
index 794538ec5..d8132b4bc 100644
--- a/jasmine/jasmine.d.ts
+++ b/jasmine/jasmine.d.ts
@@ -5,13 +5,13 @@
declare function describe(description: string, specDefinitions: () => void): void;
-declare function ddescribe(description: string, specDefinitions: () => void): void;
+declare function ddescribe(description: string, specDefinitions: () => void): void;
declare function xdescribe(description: string, specDefinitions: () => void): void;
declare function it(expectation: string, assertion?: () => void): void;
declare function it(expectation: string, assertion?: (done: () => void) => void): void;
-declare function iit(expectation: string, assertion?: () => void): void;
-declare function iit(expectation: string, assertion?: (done: () => void) => void): void;
+declare function iit(expectation: string, assertion?: () => void): void;
+declare function iit(expectation: string, assertion?: (done: () => void) => void): void;
declare function xit(expectation: string, assertion?: () => void): void;
declare function xit(expectation: string, assertion?: (done: () => void) => void): void;
@@ -98,13 +98,13 @@ declare module jasmine {
addReporter(reporter: Reporter): void;
execute(): void;
describe(description: string, specDefinitions: () => void): Suite;
- ddescribe(description: string, specDefinitions: () => void): Suite;
+ ddescribe(description: string, specDefinitions: () => void): Suite;
beforeEach(beforeEachFunction: () => void): void;
currentRunner(): Runner;
afterEach(afterEachFunction: () => void): void;
xdescribe(desc: string, specDefinitions: () => void): XSuite;
it(description: string, func: () => void): Spec;
- iit(description: string, func: () => void): Spec;
+ iit(description: string, func: () => void): Spec;
xit(desc: string, func: () => void): XSpec;
compareRegExps_(a: RegExp, b: RegExp, mismatchKeys: string[], mismatchValues: string[]): boolean;
compareObjects_(a: any, b: any, mismatchKeys: string[], mismatchValues: string[]): boolean;
@@ -354,7 +354,7 @@ declare module jasmine {
identity: string;
and: SpyAnd;
- calls: any;
+ calls: Calls;
mostRecentCall: { args: any[]; };
argsForCall: any[];
wasCalled: boolean;
@@ -367,13 +367,32 @@ declare module jasmine {
/** By chaining the spy with and.returnValue, all calls to the function will return a specific value. */
returnValue(val: any): void;
/** By chaining the spy with and.callFake, all calls to the spy will delegate to the supplied function. */
- callFake(fn: Function): void;
+ callFake(fn: Function): void;
/** By chaining the spy with and.throwError, all calls to the spy will throw the specified value. */
throwError(msg: string): void;
/** When a calling strategy is used for a spy, the original stubbing behavior can be returned at any time with and.stub. */
stub(): void;
}
+ interface Calls {
+ /** By chaining the spy with calls.any(), will return false if the spy has not been called at all, and then true once at least one call happens. **/
+ any(): boolean;
+ /** By chaining the spy with calls.count(), will return the number of times the spy was called **/
+ count(): number;
+ /** By chaining the spy with calls.argsFor(), will return the arguments passed to call number index **/
+ argsFor(index: number): any[];
+ /** By chaining the spy with calls.allArgs(), will return the arguments to all calls **/
+ allArgs(): any[];
+ /** By chaining the spy with calls.all(), will return the context (the this) and arguments passed all calls **/
+ all(): any;
+ /** By chaining the spy with calls.mostRecent(), will return the context (the this) and arguments for the most recent call **/
+ mostRecent(): any;
+ /** By chaining the spy with calls.first(), will return the context (the this) and arguments for the first call **/
+ first(): any;
+ /** By chaining the spy with calls.reset(), will clears all tracking for a spy **/
+ reset(): void;
+ }
+
interface Util {
inherit(childClass: Function, parentClass: Function): any;
formatException(e: any): any;
diff --git a/joi/joi-tests.ts b/joi/joi-tests.ts
new file mode 100644
index 000000000..45a46dcd0
--- /dev/null
+++ b/joi/joi-tests.ts
@@ -0,0 +1,403 @@
+///
+///
+
+import Joi = require('joi');
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+var x: any = null;
+var value: any = null;
+var num: number = 0;
+var str: string = '';
+var bool: boolean = false;
+var exp: RegExp = null;
+var obj: Object = null;
+var date: Date = null;
+var bin: NodeBuffer = null;
+var err: Error = null;
+var func: Function = null;
+
+var anyArr: any[] = [];
+var numArr: number[] = [];
+var strArr: string[] = [];
+var boolArr: boolean[] = [];
+var expArr: RegExp[] = [];
+var objArr: Object[] = [];
+var bufArr: NodeBuffer[] = [];
+var errArr: Error[] = [];
+var funcArr: Function[] = [];
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+var validOpts: Joi.ValidationOptions = null;
+
+validOpts = {abortEarly: bool};
+validOpts = {convert: bool};
+validOpts = {allowUnknown: bool};
+validOpts = {skipFunctions: bool};
+validOpts = {stripUnknown: bool};
+validOpts = {language: bool};
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+var renOpts: Joi.RenameOptions = null;
+
+renOpts = {alias: bool};
+renOpts = {multiple: bool};
+renOpts = {override: bool};
+
+var validErr: Joi.ValidationError = null;
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+var schema: Joi.Schema = null;
+
+var anySchema: Joi.AnySchema = null;
+var numSchema: Joi.NumberSchema = null;
+var strSchema: Joi.StringSchema = null;
+var arrSchema: Joi.ArraySchema = null;
+var boolSchema: Joi.BooleanSchema = null;
+var binSchema: Joi.BinarySchema = null;
+var dateSchema: Joi.DateSchema = null;
+var funcSchema: Joi.FunctionSchema = null;
+var objSchema: Joi.ObjectSchema = null;
+
+var schemaArr: Joi.Schema[] = [];
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+schema = anySchema;
+schema = numSchema;
+schema = strSchema;
+schema = arrSchema;
+schema = boolSchema;
+schema = binSchema;
+schema = dateSchema;
+schema = funcSchema;
+schema = objSchema;
+
+anySchema = anySchema;
+anySchema = numSchema;
+anySchema = strSchema;
+anySchema = arrSchema;
+anySchema = boolSchema;
+anySchema = binSchema;
+anySchema = dateSchema;
+anySchema = funcSchema;
+anySchema = objSchema;
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+var schemaMap: Joi.SchemaMap = null;
+
+schemaMap = {
+ a: numSchema,
+ b: strSchema
+};
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+anySchema = Joi.any();
+
+anySchema.validate(x, (err: Joi.ValidationError, value: any) => {
+
+});
+
+module common {
+ anySchema = anySchema.allow(x);
+ anySchema = anySchema.valid(x);
+ anySchema = anySchema.invalid(x);
+ anySchema = anySchema.default(x);
+
+ anySchema = anySchema.required();
+ anySchema = anySchema.optional();
+
+ anySchema = anySchema.description(str);
+ anySchema = anySchema.notes(str);
+ anySchema = anySchema.notes(strArr);
+ anySchema = anySchema.tags(str);
+ anySchema = anySchema.tags(strArr);
+
+ anySchema = anySchema.options(validOpts);
+ anySchema = anySchema.strict();
+}
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+arrSchema = Joi.array();
+
+arrSchema = arrSchema.min(num);
+arrSchema = arrSchema.max(num);
+arrSchema = arrSchema.length(num);
+
+arrSchema = arrSchema.includes(numSchema);
+arrSchema = arrSchema.includes(numSchema, strSchema);
+arrSchema = arrSchema.includes([numSchema, strSchema]);
+
+arrSchema = arrSchema.excludes(numSchema);
+arrSchema = arrSchema.excludes(numSchema, strSchema);
+arrSchema = arrSchema.excludes([numSchema, strSchema]);
+
+// - - - - - - - -
+
+module common {
+ arrSchema = arrSchema.allow(anyArr);
+ arrSchema = arrSchema.valid(anyArr);
+ arrSchema = arrSchema.invalid(anyArr);
+ arrSchema = arrSchema.default(anyArr);
+
+ arrSchema = arrSchema.required();
+ arrSchema = arrSchema.optional();
+
+ arrSchema = arrSchema.description(str);
+ arrSchema = arrSchema.notes(str);
+ arrSchema = arrSchema.notes(strArr);
+ arrSchema = arrSchema.tags(str);
+ arrSchema = arrSchema.tags(strArr);
+
+ arrSchema = arrSchema.options(validOpts);
+ arrSchema = arrSchema.strict();
+}
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+boolSchema = Joi.bool();
+boolSchema = Joi.boolean();
+
+module common {
+ boolSchema = boolSchema.allow(bool);
+ boolSchema = boolSchema.valid(bool);
+ boolSchema = boolSchema.invalid(bool);
+ boolSchema = boolSchema.default(bool);
+
+ boolSchema = boolSchema.required();
+ boolSchema = boolSchema.optional();
+
+ boolSchema = boolSchema.description(str);
+ boolSchema = boolSchema.notes(str);
+ boolSchema = boolSchema.notes(strArr);
+ boolSchema = boolSchema.tags(str);
+ boolSchema = boolSchema.tags(strArr);
+
+ boolSchema = boolSchema.options(validOpts);
+ boolSchema = boolSchema.strict();
+}
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+binSchema = Joi.binary();
+
+binSchema = binSchema.min(num);
+binSchema = binSchema.max(num);
+binSchema = binSchema.length(num);
+
+module common {
+ binSchema = binSchema.allow(bin);
+ binSchema = binSchema.valid(bin);
+ binSchema = binSchema.invalid(bin);
+ binSchema = binSchema.default(bin);
+
+ binSchema = binSchema.required();
+ binSchema = binSchema.optional();
+
+ binSchema = binSchema.description(str);
+ binSchema = binSchema.notes(str);
+ binSchema = binSchema.notes(strArr);
+ binSchema = binSchema.tags(str);
+ binSchema = binSchema.tags(strArr);
+
+ binSchema = binSchema.options(validOpts);
+ binSchema = binSchema.strict();
+}
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+dateSchema = Joi.date();
+
+dateSchema = dateSchema.min(date);
+dateSchema = dateSchema.max(date);
+
+dateSchema = dateSchema.min(str);
+dateSchema = dateSchema.max(str);
+
+dateSchema = dateSchema.min(num);
+dateSchema = dateSchema.max(num);
+
+module common {
+ dateSchema = dateSchema.allow(date);
+ dateSchema = dateSchema.valid(date);
+ dateSchema = dateSchema.invalid(date);
+ dateSchema = dateSchema.default(date);
+
+ dateSchema = dateSchema.allow(num);
+ dateSchema = dateSchema.valid(num);
+ dateSchema = dateSchema.invalid(num);
+ dateSchema = dateSchema.default(num);
+
+ dateSchema = dateSchema.allow(str);
+ dateSchema = dateSchema.valid(str);
+ dateSchema = dateSchema.invalid(str);
+ dateSchema = dateSchema.default(str);
+
+ dateSchema = dateSchema.required();
+ dateSchema = dateSchema.optional();
+
+ dateSchema = dateSchema.description(str);
+ dateSchema = dateSchema.notes(str);
+ dateSchema = dateSchema.notes(strArr);
+ dateSchema = dateSchema.tags(str);
+ dateSchema = dateSchema.tags(strArr);
+
+ dateSchema = dateSchema.options(validOpts);
+ dateSchema = dateSchema.strict();
+}
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+funcSchema = Joi.func();
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+numSchema = Joi.number();
+
+numSchema = numSchema.min(num);
+numSchema = numSchema.max(num);
+numSchema = numSchema.integer();
+
+module common {
+ numSchema = numSchema.allow(num);
+ numSchema = numSchema.valid(num);
+ numSchema = numSchema.invalid(num);
+ numSchema = numSchema.default(num);
+
+ numSchema = numSchema.required();
+ numSchema = numSchema.optional();
+
+ numSchema = numSchema.description(str);
+ numSchema = numSchema.notes(str);
+ numSchema = numSchema.notes(strArr);
+ numSchema = numSchema.tags(str);
+ numSchema = numSchema.tags(strArr);
+
+ numSchema = numSchema.options(validOpts);
+ numSchema = numSchema.strict();
+}
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+objSchema = Joi.object();
+objSchema = Joi.object(schemaMap);
+
+objSchema = objSchema.keys();
+objSchema = objSchema.keys(schemaMap);
+
+objSchema = objSchema.min(num);
+objSchema = objSchema.max(num);
+objSchema = objSchema.length(num);
+
+objSchema = objSchema.with(str, str);
+objSchema = objSchema.with(str, strArr);
+
+objSchema = objSchema.without(str, str);
+objSchema = objSchema.without(str, strArr);
+
+objSchema = objSchema.xor(str, str, str);
+objSchema = objSchema.xor(strArr);
+
+objSchema = objSchema.or(str, str, str);
+objSchema = objSchema.or(strArr);
+
+objSchema = objSchema.rename(str, str);
+objSchema = objSchema.rename(str, str, renOpts);
+
+module common {
+ objSchema = objSchema.allow(obj);
+ objSchema = objSchema.valid(obj);
+ objSchema = objSchema.invalid(obj);
+ objSchema = objSchema.default(obj);
+
+ objSchema = objSchema.required();
+ objSchema = objSchema.optional();
+
+ objSchema = objSchema.description(str);
+ objSchema = objSchema.notes(str);
+ objSchema = objSchema.notes(strArr);
+ objSchema = objSchema.tags(str);
+ objSchema = objSchema.tags(strArr);
+
+ objSchema = objSchema.options(validOpts);
+ objSchema = objSchema.strict();
+}
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+strSchema = Joi.string();
+
+strSchema = strSchema.insensitive();
+strSchema = strSchema.min(num);
+strSchema = strSchema.max(num);
+strSchema = strSchema.length(num);
+strSchema = strSchema.regex(exp);
+strSchema = strSchema.alphanum();
+strSchema = strSchema.token();
+strSchema = strSchema.email();
+strSchema = strSchema.guid();
+strSchema = strSchema.isoDate();
+
+module common {
+ strSchema = strSchema.allow(x);
+ strSchema = strSchema.allow(x, x);
+ strSchema = strSchema.allow(anyArr);
+
+ strSchema = strSchema.valid(x);
+ strSchema = strSchema.valid(x, x);
+ strSchema = strSchema.valid(anyArr);
+
+ strSchema = strSchema.invalid(x);
+ strSchema = strSchema.invalid(x, x);
+ strSchema = strSchema.invalid(anyArr);
+
+ strSchema = strSchema.required();
+
+ strSchema = strSchema.optional();
+
+ strSchema = strSchema.description(str);
+
+ strSchema = strSchema.notes(str);
+ strSchema = strSchema.notes(strArr);
+
+ strSchema = strSchema.tags(str);
+ strSchema = strSchema.tags(strArr);
+
+ strSchema = strSchema.options(validOpts);
+ strSchema = strSchema.strict();
+ strSchema = strSchema.default(x);
+}
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+schema = Joi.alternatives(schemaArr);
+schema = Joi.alternatives(schema, anySchema, boolSchema);
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+Joi.validate(value, schema);
+Joi.validate(value, schema, validOpts);
+Joi.validate(value, schema, validOpts, (err, value) => {
+ x = value;
+ str = err.message;
+ str = err.details[0].path;
+ str = err.details[0].message;
+ str = err.details[0].type;
+});
+// variant
+Joi.validate(num, schema, validOpts, (err, value) => {
+ num = value;
+});
+
+// plain opts
+Joi.validate(value, {});
+
+// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+schema = Joi.compile(obj);
diff --git a/joi/joi.d.ts b/joi/joi.d.ts
new file mode 100644
index 000000000..344738e89
--- /dev/null
+++ b/joi/joi.d.ts
@@ -0,0 +1,377 @@
+// Type definitions for joi v3.1.0
+// Project: https://github.com/spumko/joi
+// Definitions by: Bart van der Schoor
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module 'joi' {
+
+ export interface ValidationOptions {
+ // when true, stops validation on the first error, otherwise returns all the errors found. Defaults to true.
+ abortEarly?: boolean;
+ // when true, attempts to cast values to the required types (e.g. a string to a number). Defaults to true.
+ convert?: boolean;
+ // when true, allows object to contain unknown keys which are ignored. Defaults to false.
+ allowUnknown?: boolean;
+ // when true, ignores unknown keys with a function value. Defaults to false.
+ skipFunctions?: boolean;
+ // when true, unknown keys are deleted (only when value is an object). Defaults to false.
+ stripUnknown?: boolean;
+ // overrides individual error messages. Defaults to no override ({}).
+ language?: Object
+ }
+
+ export interface RenameOptions {
+ // if true, does not delete the old key name, keeping both the new and old keys in place. Defaults to false.
+ alias?: boolean;
+ // if true, allows renaming multiple keys to the same destination where the last rename wins. Defaults to false.
+ multiple?: boolean;
+ // if true, allows renaming a key over an existing key. Defaults to false.
+ override?: boolean;
+ }
+
+ export interface ValidationError {
+ message: string;
+ details: ValidationErrorItem[];
+ simple (): string;
+ annotated (): string;
+ }
+
+ export interface ValidationErrorItem {
+ message: string;
+ type: string;
+ path: string;
+ options?: ValidationOptions;
+ }
+
+ export interface SchemaMap {
+ [key: string]: Schema;
+ }
+
+ export interface Schema extends AnySchema {
+ }
+
+ export interface AnySchema> {
+
+ validate(value: U, options?: ValidationOptions, callback?: (err: ValidationError, value: U) => void): void;
+
+ /**
+ * Whitelists a value
+ */
+ allow(value: any, ...values : any[]): T;
+ allow(values: any[]): T;
+
+ /**
+ * Adds the provided values into the allowed whitelist and marks them as the only valid values allowed.
+ */
+ valid(value: any, ...values : any[]): T;
+ valid(values: any[]): T;
+
+ /**
+ * Blacklists a value
+ */
+ invalid(value: any, ...values : any[]): T;
+ invalid(values: any[]): T;
+
+ /**
+ * Marks a key as required which will not allow undefined as value. All keys are optional by default.
+ */
+ required(): T;
+
+ /**
+ * Marks a key as optional which will allow undefined as values. Used to annotate the schema for readability as all keys are optional by default.
+ */
+ optional(): T;
+
+ /**
+ * Annotates the key
+ */
+ description(desc: string): T;
+
+ /**
+ * Annotates the key
+ */
+ notes(notes: string): T;
+ notes(notes: string[]): T;
+
+ /**
+ * Annotates the key
+ */
+ tags(notes: string): T;
+ tags(notes: string[]): T;
+
+ /**
+ * Overrides the global validate() options for the current key and any sub-key
+ */
+ options(options: ValidationOptions): T;
+
+ /**
+ * Sets the options.convert options to false which prevent type casting for the current key and any child keys.
+ */
+ strict(): T;
+
+ /**
+ * Sets a default value if the original value is undefined
+ */
+ default(value: any): T;
+ }
+
+ export interface BooleanSchema extends AnySchema {
+
+ }
+
+ export interface NumberSchema extends AnySchema {
+ /**
+ * Specifies the minimum value.
+ */
+ min(limit: number): NumberSchema;
+
+ /**
+ * Specifies the maximum value.
+ */
+ max(limit: number): NumberSchema;
+
+ /**
+ * Requires the number to be an integer (no floating point).
+ */
+ integer(): NumberSchema;
+ }
+
+ export interface StringSchema extends AnySchema {
+ /**
+ * Allows the value to match any whitelist of blacklist item in a case insensitive comparison.
+ */
+ insensitive(): StringSchema;
+
+ /**
+ * Specifies the minimum number string characters.
+ */
+ min(limit: number): StringSchema;
+
+ /**
+ * Specifies the maximum number of string characters.
+ */
+ max(limit: number): StringSchema;
+
+ /**
+ * Specifies the exact string length required
+ */
+ length(limit: number): StringSchema;
+
+ /**
+ * Defines a regular expression rule.
+ */
+ regex(pattern: RegExp): StringSchema;
+
+ /**
+ * Requires the string value to only contain a-z, A-Z, and 0-9.
+ */
+ alphanum(): StringSchema;
+
+ /**
+ * Requires the string value to only contain a-z, A-Z, 0-9, and underscore _.
+ */
+ token(): StringSchema;
+
+ /**
+ * Requires the string value to be a valid email address.
+ */
+ email(): StringSchema;
+
+ /**
+ * Requires the string value to be a valid GUID.
+ */
+ guid(): StringSchema;
+
+ /**
+ * Requires the string value to be in valid ISO 8601 date format.
+ */
+ isoDate(): StringSchema;
+
+ }
+
+ export interface ArraySchema extends AnySchema {
+ /**
+ * List the types allowed for the array value
+ */
+ includes(type: Schema, ...types: Schema[]): ArraySchema;
+ includes(types: Schema[]): ArraySchema;
+
+ /**
+ * List the types forbidden for the array values.
+ */
+ excludes(type: Schema, ...types: Schema[]): ArraySchema;
+ excludes(types: Schema[]): ArraySchema;
+
+ /**
+ * Specifies the minimum number of items in the array.
+ */
+ min(limit: number): ArraySchema;
+
+ /**
+ * Specifies the maximum number of items in the array.
+ */
+ max(limit: number): ArraySchema;
+
+ /**
+ * Specifies the exact number of items in the array.
+ */
+ length(limit: number): ArraySchema;
+
+ }
+
+ export interface ObjectSchema extends AnySchema {
+ /**
+ * Sets the allowed object keys.
+ */
+ keys(schema?: SchemaMap): ObjectSchema;
+
+ /**
+ * Specifies the minimum number of keys in the object.
+ */
+ min(limit: number): ObjectSchema;
+
+ /**
+ * Specifies the maximum number of keys in the object.
+ */
+ max(limit: number): ObjectSchema;
+
+ /**
+ * Specifies the exact number of keys in the object.
+ */
+ length(limit: number): ObjectSchema;
+
+ /**
+ * Requires the presence of other keys whenever the specified key is present.
+ */
+ with(key: string, peers: string): ObjectSchema;
+ with(key: string, peers: string[]): ObjectSchema;
+
+ /**
+ * Forbids the presence of other keys whenever the specified is present.
+ */
+ without(key: string, peers: string): ObjectSchema;
+ without(key: string, peers: string[]): ObjectSchema;
+
+ /**
+ * Defines an exclusive relationship between a set of keys. one of them is required but not at the same time where:
+ */
+ xor(peer1: string, peer2: string, ...peers: string[]): ObjectSchema;
+ xor(peers: string[]): ObjectSchema;
+
+ /**
+ * Defines a relationship between keys where one of the peers is required (and more than one is allowed).
+ */
+ or(peer1: string, peer2: string, ...peers: string[]): ObjectSchema;
+ or(peers: string[]): ObjectSchema;
+
+ /**
+ * Renames a key to another name (deletes the renamed key).
+ */
+ rename(from: string, to: string, options?: RenameOptions): ObjectSchema;
+ }
+
+ export interface BinarySchema extends AnySchema {
+ /**
+ * Specifies the minimum length of the buffer.
+ */
+ min(limit: number): BinarySchema;
+
+ /**
+ * Specifies the maximum length of the buffer.
+ */
+ max(limit: number): BinarySchema;
+
+ /**
+ * Specifies the exact length of the buffer:
+ */
+ length(limit: number): BinarySchema;
+ }
+
+ export interface DateSchema extends AnySchema {
+
+ /**
+ * Specifies the oldest date allowed.
+ */
+ min(date: Date): DateSchema;
+ min(date: number): DateSchema;
+ min(date: string): DateSchema;
+
+ /**
+ * Specifies the latest date allowed.
+ */
+ max(date: Date): DateSchema;
+ max(date: number): DateSchema;
+ max(date: string): DateSchema;
+ }
+
+ export interface FunctionSchema extends AnySchema {
+
+ }
+
+ // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
+
+ /**
+ * Generates a schema object that matches any data type.
+ */
+ export function any(): Schema;
+
+ /**
+ * Generates a schema object that matches an array data type.
+ */
+ export function array(): ArraySchema;
+
+ /**
+ * Generates a schema object that matches a boolean data type (as well as the strings 'true', 'false', 'yes', and 'no'). Can also be called via bool().
+ */
+ export function bool(): BooleanSchema;
+
+ export function boolean(): BooleanSchema;
+
+ /**
+ * Generates a schema object that matches a Buffer data type (as well as the strings which will be converted to Buffers).
+ */
+ export function binary(): BinarySchema;
+
+ /**
+ * Generates a schema object that matches a date type (as well as a JavaScript date string or number of milliseconds).
+ */
+ export function date(): DateSchema;
+
+ /**
+ * Generates a schema object that matches a function type.
+ */
+ export function func(): FunctionSchema;
+
+ /**
+ * Generates a schema object that matches a number data type (as well as strings that can be converted to numbers).
+ */
+ export function number(): NumberSchema;
+
+ /**
+ * Generates a schema object that matches an object data type (as well as JSON strings that parsed into objects).
+ */
+ export function object(schema?: SchemaMap): ObjectSchema;
+
+ /**
+ * Generates a schema object that matches a string data type. Note that empty strings are not allowed by default and must be enabled with allow('').
+ */
+ export function string(): StringSchema;
+
+ /**
+ * Generates a type that will match one of the provided alternative schemas
+ */
+ export function alternatives(types: Schema[]): Schema;
+ export function alternatives(type1: Schema, type2: Schema, ...types: Schema[]): Schema;
+
+ /**
+ * Validates a value using the given schema and options.
+ */
+ export function validate(value: T, schema: Schema, options?: ValidationOptions, callback?: (err: ValidationError, value: T) => void): void;
+ export function validate(value: T, schema: Object, options?: ValidationOptions, callback?: (err: ValidationError, value: T) => void): void;
+
+ /**
+ * Converts literal schema definition to joi schema object (or returns the same back if already a joi schema object).
+ */
+ export function compile(schema: Object): Schema;
+
+}
diff --git a/jqueryui/jqueryui-tests.ts b/jqueryui/jqueryui-tests.ts
index c922ec161..136bb2c96 100644
--- a/jqueryui/jqueryui-tests.ts
+++ b/jqueryui/jqueryui-tests.ts
@@ -1270,6 +1270,51 @@ function test_datepicker() {
// setter
var $set: JQuery = $(".selector").datepicker("option", "calculateWeek", myWeekCalc);
}
+
+ function changeMonth() {
+ $(".selector").datepicker({ changeMonth: true });
+
+ var changeMonth: boolean = $(".selector").datepicker("option", "changeMonth");
+
+ // setter
+ var $set: JQuery = $(".selector").datepicker("option", "changeMonth", true);
+ }
+
+ function changeYear() {
+ $(".selector").datepicker({ changeYear: true });
+
+ var changeYear: boolean = $(".selector").datepicker("option", "changeYear");
+
+ // setter
+ var $set: JQuery = $(".selector").datepicker("option", "changeYear", true);
+ }
+
+ function closeText() {
+ $(".selector").datepicker({ closeText: "Close" });
+
+ var closeText: string = $(".selector").datepicker("option", "closeText");
+
+ // setter
+ var $set: JQuery = $(".selector").datepicker("option", "closeText", "Close");
+ }
+
+ function constrainInput() {
+ $(".selector").datepicker({ constrainInput: false });
+
+ var constrainInput: boolean = $(".selector").datepicker("option", "constrainInput");
+
+ // setter
+ var $set: JQuery = $(".selector").datepicker("option", "constrainInput", false);
+ }
+
+ function currentText() {
+ $(".selector").datepicker({ currentText: "Now" });
+
+ var currentText: string = $(".selector").datepicker("option", "currentText");
+
+ // setter
+ var $set: JQuery = $(".selector").datepicker("option", "currentText", "Now");
+ }
}
diff --git a/jqueryui/jqueryui.d.ts b/jqueryui/jqueryui.d.ts
index 083df7b46..57f10c08e 100644
--- a/jqueryui/jqueryui.d.ts
+++ b/jqueryui/jqueryui.d.ts
@@ -1287,10 +1287,89 @@ interface JQuery {
* @param methodName 'option'
* @param optionName 'buttonText'
* @param calculateWeekValue A function to calculate the week of the year for a given date. The default implementation uses the ISO 8601 definition: weeks start on a Monday; the first week of the year contains the first Thursday of the year.
-
*/
datepicker(methodName: 'option', optionName: 'calculateWeek', calculateWeekValue: (date: Date) => string): JQuery;
+ /**
+ * Get the changeMonth option, after initialization
+ *
+ * @param methodName 'option'
+ * @param optionName 'buttonText'
+ */
+ datepicker(methodName: 'option', optionName: 'changeMonth'): boolean;
+ /**
+ * Set the changeMonth option, after initialization
+ *
+ * @param methodName 'option'
+ * @param optionName 'buttonText'
+ * @param changeMonthValue Whether the month should be rendered as a dropdown instead of text.
+ */
+ datepicker(methodName: 'option', optionName: 'changeMonth', changeMonthValue: boolean): JQuery;
+
+ /**
+ * Get the changeYear option, after initialization
+ *
+ * @param methodName 'option'
+ * @param optionName 'buttonText'
+ */
+ datepicker(methodName: 'option', optionName: 'changeYear'): boolean;
+ /**
+ * Set the changeYear option, after initialization
+ *
+ * @param methodName 'option'
+ * @param optionName 'buttonText'
+ * @param changeYearValue Whether the year should be rendered as a dropdown instead of text. Use the yearRange option to control which years are made available for selection.
+ */
+ datepicker(methodName: 'option', optionName: 'changeYear', changeYearValue: boolean): JQuery;
+
+ /**
+ * Get the closeText option, after initialization
+ *
+ * @param methodName 'option'
+ * @param optionName 'buttonText'
+ */
+ datepicker(methodName: 'option', optionName: 'closeText'): string;
+ /**
+ * Set the closeText option, after initialization
+ *
+ * @param methodName 'option'
+ * @param optionName 'buttonText'
+ * @param closeTextValue The text to display for the close link. Use the showButtonPanel option to display this button.
+ */
+ datepicker(methodName: 'option', optionName: 'closeText', closeTextValue: string): JQuery;
+
+ /**
+ * Get the constrainInput option, after initialization
+ *
+ * @param methodName 'option'
+ * @param optionName 'buttonText'
+ */
+ datepicker(methodName: 'option', optionName: 'constrainInput'): boolean;
+ /**
+ * Set the constrainInput option, after initialization
+ *
+ * @param methodName 'option'
+ * @param optionName 'buttonText'
+ * @param constrainInputValue When true, entry in the input field is constrained to those characters allowed by the current dateFormat option.
+ */
+ datepicker(methodName: 'option', optionName: 'constrainInput', constrainInputValue: boolean): JQuery;
+
+ /**
+ * Get the currentText option, after initialization
+ *
+ * @param methodName 'option'
+ * @param optionName 'buttonText'
+ */
+ datepicker(methodName: 'option', optionName: 'currentText'): string;
+ /**
+ * Set the currentText option, after initialization
+ *
+ * @param methodName 'option'
+ * @param optionName 'buttonText'
+ * @param currentTextValue The text to display for the current day link. Use the showButtonPanel option to display this button.
+ */
+ datepicker(methodName: 'option', optionName: 'currentText', currentTextValue: string): JQuery;
+
/**
* Gets the value currently associated with the specified optionName.
*
diff --git a/minimatch/minimatch-tests.ts b/minimatch/minimatch-tests.ts
new file mode 100644
index 000000000..a9f4f7e92
--- /dev/null
+++ b/minimatch/minimatch-tests.ts
@@ -0,0 +1,13 @@
+///
+
+import mm = require("minimatch");
+
+var pattern = "**/*.ts";
+var options = {
+ debug: true
+};
+var m = new mm.Minimatch(pattern, options);
+var r = m.makeRe();
+
+var f = ["test.ts"];
+mm.match(f, pattern, options);
diff --git a/minimatch/minimatch.d.ts b/minimatch/minimatch.d.ts
new file mode 100644
index 000000000..baf246394
--- /dev/null
+++ b/minimatch/minimatch.d.ts
@@ -0,0 +1,46 @@
+// Type definitions for Minimatch
+// Project: https://github.com/isaacs/minimatch
+// Definitions by: vvakame
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module "minimatch" {
+
+ function M(target:string, pattern:string, options?:M.IOptions):void;
+
+ module M {
+ function match(filenames:string[], pattern:string, options:IOptions):string[];
+
+ var Minimatch:IMinimatchStatic;
+
+ interface IOptions {
+ debug?:boolean;
+ nobrace?:boolean;
+ noglobstar?:boolean;
+ dot?:boolean;
+ noext?:boolean;
+ nocase?:boolean;
+ nonull?:boolean;
+ matchBase?:boolean;
+ nocomment?:boolean;
+ nonegate?:boolean;
+ flipNegate?:boolean;
+ }
+
+ interface IMinimatchStatic {
+ new (pattern:string, options:IOptions):IMinimatch;
+ }
+
+ interface IMinimatch {
+ debug():void;
+ make():void;
+ parseNegate():void;
+ braceExpand(pattern:string, options:IOptions):void;
+ parse(pattern:string, isSub?:boolean):void;
+ makeRe():any; // regexp or boolean
+ match(file:string, pattern:string, options:IOptions):boolean;
+ matchOne(file:string, pattern:string, partial:any):boolean;
+ }
+ }
+
+ export = M;
+}
diff --git a/moment/moment-external-tests.ts b/moment/moment-external-tests.ts
index 9c6116892..2fbdbb6e7 100644
--- a/moment/moment-external-tests.ts
+++ b/moment/moment-external-tests.ts
@@ -210,6 +210,12 @@ moment.duration(500).asSeconds();
moment.duration().minutes();
moment.duration().asMinutes();
+var adur = moment.duration(3, 'd');
+var bdur = moment.duration(2, 'd');
+adur.subtract(bdur).days();
+adur.subtract(1).days();
+adur.subtract(1, 'd').days();
+
// Defining a custom language:
moment.lang('en', {
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
diff --git a/moment/moment-tests.ts b/moment/moment-tests.ts
index 68a718a33..1c8b7c82c 100644
--- a/moment/moment-tests.ts
+++ b/moment/moment-tests.ts
@@ -208,6 +208,12 @@ moment.duration(500).asSeconds();
moment.duration().minutes();
moment.duration().asMinutes();
+var adur = moment.duration(3, 'd');
+var bdur = moment.duration(2, 'd');
+adur.subtract(bdur).days();
+adur.subtract(1).days();
+adur.subtract(1, 'd').days();
+
// Defining a custom language:
moment.lang('en', {
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
diff --git a/moment/moment.d.ts b/moment/moment.d.ts
index cfc19100b..f997026fd 100644
--- a/moment/moment.d.ts
+++ b/moment/moment.d.ts
@@ -50,6 +50,9 @@ interface Duration {
years(): number;
asYears(): number;
+ subtract(n: number, p: string): Duration;
+ subtract(n: number): Duration;
+ subtract(d: Duration): Duration;
}
interface Moment {
diff --git a/node/node.d.ts b/node/node.d.ts
index 42398496e..34862f4b7 100644
--- a/node/node.d.ts
+++ b/node/node.d.ts
@@ -1031,9 +1031,9 @@ declare module "crypto" {
update(data: any, input_encoding?: string, output_encoding?: string): string;
final(output_encoding?: string): string;
setAutoPadding(auto_padding: boolean): void;
- createDecipher(algorithm: string, password: any): Decipher;
- createDecipheriv(algorithm: string, key: any, iv: any): Decipher;
}
+ export function createDecipher(algorithm: string, password: any): Decipher;
+ export function createDecipheriv(algorithm: string, key: any, iv: any): Decipher;
interface Decipher {
update(data: any, input_encoding?: string, output_encoding?: string): void;
final(output_encoding?: string): string;
@@ -1063,6 +1063,7 @@ declare module "crypto" {
}
export function getDiffieHellman(group_name: string): DiffieHellman;
export function pbkdf2(password: string, salt: string, iterations: number, keylen: number, callback: (err: Error, derivedKey: string) => any): void;
+ export function pbkdf2Sync(password: string, salt: string, iterations: number, keylen: number) : NodeBuffer;
export function randomBytes(size: number): NodeBuffer;
export function randomBytes(size: number, callback: (err: Error, buf: NodeBuffer) =>void ): void;
export function pseudoRandomBytes(size: number): NodeBuffer;
diff --git a/passport-facebook/passport-facebook-test.ts b/passport-facebook/passport-facebook-test.ts
new file mode 100644
index 000000000..b35770479
--- /dev/null
+++ b/passport-facebook/passport-facebook-test.ts
@@ -0,0 +1,25 @@
+/**
+ * Created by jcabresos on 4/19/2014.
+ */
+import passport = require('passport');
+import facebook = require('passport-facebook');
+
+// just some test model
+var User = {
+ findOrCreate(id:string, provider:string, callback:(err:any, user:any) => void): void {
+ callback(null, {username:'james'});
+ }
+}
+
+passport.use(new facebook.Strategy({
+ clientID: process.env.PASSPORT_FACEBOOK_CLIENT_ID,
+ clientSecret: process.env.PASSPORT_FACEBOOK_CLIENT_SECRET,
+ callbackURL: process.env.PASSPORT_FACEBOOK_CALLBACK_URL
+ },
+ function(accessToken:string, refreshToken:string, profile:facebook.Profile, done:(error:any, user?:any) => void) {
+ User.findOrCreate(profile.id, profile.provider, function(err, user) {
+ if (err) { return done(err); }
+ done(null, user);
+ });
+ })
+);
\ No newline at end of file
diff --git a/passport-facebook/passport-facebook.d.ts b/passport-facebook/passport-facebook.d.ts
new file mode 100644
index 000000000..47c9b68bb
--- /dev/null
+++ b/passport-facebook/passport-facebook.d.ts
@@ -0,0 +1,27 @@
+// Type definitions for passport-facebook 1.0.3
+// Project: https://github.com/jaredhanson/passport-facebook
+// Definitions by: James Roland Cabresos
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module 'passport-facebook' {
+
+ import passport = require('passport');
+ import express = require('express');
+
+ interface Profile {
+ id:string;
+ provider:string;
+ displayName:string;
+ name:{familyName:string; givenName:string; middleName:string};
+ profileUrl:string;
+ }
+
+ class Strategy implements passport.Strategy{
+ constructor(options:{clientID:string; clientSecret:string; callbackURL:string},
+ verify:(accessToken:string, refreshToken:string, profile:Profile, done:(error:any, user?:any) => void) => void);
+ name: string;
+ authenticate:(req: express.Request, options?: Object) => void;
+ }
+}
\ No newline at end of file
diff --git a/pdf/pdf-tests.ts b/pdf/pdf-tests.ts
index 90542b503..615730780 100644
--- a/pdf/pdf-tests.ts
+++ b/pdf/pdf-tests.ts
@@ -3,9 +3,18 @@
//
// Fetch the PDF document from the URL using promises
//
+var pdfDoc: PDFDocumentProxy;
+var pageNum: number;
+
PDFJS.getDocument('helloworld.pdf').then(function (pdf) {
// Using promise to fetch the page
- pdf.getPage(1).then(function (page) {
+ pdfDoc = pdf;
+ pageNum = 1;
+ renderPage(pageNum);
+});
+
+function renderPage(pageNum: number) {
+ pdfDoc.getPage(pageNum).then(function (page) {
var scale = 1.5;
var viewport = page.getViewport(scale);
@@ -26,4 +35,11 @@ PDFJS.getDocument('helloworld.pdf').then(function (pdf) {
};
page.render(renderContext);
});
-});
+}
+
+function goNext() {
+ if (pdfDoc && pageNum < pdfDoc.numPages) {
+ ++pageNum;
+ renderPage(pageNum);
+ }
+}
diff --git a/pdf/pdf.d.ts b/pdf/pdf.d.ts
index bd66604f4..94733c3e3 100644
--- a/pdf/pdf.d.ts
+++ b/pdf/pdf.d.ts
@@ -74,12 +74,12 @@ interface PDFDocumentProxy {
/**
* Total number of pages the PDF contains.
**/
- numPages(): number;
+ numPages: number;
/**
* A unique ID to identify a PDF. Not guaranteed to be unique. [jbaldwin: haha what]
**/
- fingerprint(): string;
+ fingerprint: string;
/**
* True if embedded document fonts are in use. Will be set during rendering of the pages.
diff --git a/space-pen/space-pen.d.ts b/space-pen/space-pen.d.ts
index 64d032155..6921786f0 100644
--- a/space-pen/space-pen.d.ts
+++ b/space-pen/space-pen.d.ts
@@ -1,3 +1,8 @@
+// Type definitions for SpacePen
+// Project: https://github.com/atom/space-pen
+// Definitions by: vvakame
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
///
// http://atom.github.io/space-pen/
diff --git a/underscore/underscore-tests.ts b/underscore/underscore-tests.ts
index d3eb87f6a..8e0162b58 100644
--- a/underscore/underscore-tests.ts
+++ b/underscore/underscore-tests.ts
@@ -3,10 +3,10 @@
declare var $;
_.each([1, 2, 3], (num) => alert(num.toString()));
-_.each({ one: 1, two: 2, three: 3 }, (value) => alert(value.toString()));
+_.each({ one: 1, two: 2, three: 3 }, (value, key) => alert(value.toString()));
_.map([1, 2, 3], (num) => num * 3);
-_.map({ one: 1, two: 2, three: 3 }, (value: number, key?: string) => value * 3);
+_.map({ one: 1, two: 2, three: 3 }, (value, key) => value * 3);
//var sum = _.reduce([1, 2, 3], (memo, num) => memo + num, 0); // https://typescript.codeplex.com/workitem/1960
var sum = _.reduce([1, 2, 3], (memo, num) => memo + num, 0);
@@ -16,18 +16,20 @@ var list = [[0, 1], [2, 3], [4, 5]];
//var flat = _.reduceRight(list, (a, b) => a.concat(b), []); // https://typescript.codeplex.com/workitem/1960
var flat = _.reduceRight(list, (a, b) => a.concat(b), []);
-var even = _.find([1, 2, 3, 4, 5, 6], (num) => num % 2 == 0);
+var even = _.find([1, 2, 3, 4, 5, 6], (num) => num % 2 == 0);
-var evens = _.filter([1, 2, 3, 4, 5, 6], (num) => num % 2 == 0);
+var firstCapitalLetter = _.find({ a: 'a', b: 'B', c: 'C', d: 'd' }, l => l === l.toUpperCase());
+
+var evens = _.filter([1, 2, 3, 4, 5, 6], (num) => num % 2 == 0);
+
+var capitalLetters = _.filter({ a: 'a', b: 'B', c: 'C', d: 'd' }, l => l === l.toUpperCase());
var listOfPlays = [{ title: "Cymbeline", author: "Shakespeare", year: 1611 }, { title: "The Tempest", author: "Shakespeare", year: 1611 }, { title: "Other", author: "Not Shakespeare", year: 2012 }];
_.where(listOfPlays, { author: "Shakespeare", year: 1611 });
-var odds = _.reject([1, 2, 3, 4, 5, 6], (num) => num % 2 == 0);
+var odds = _.reject([1, 2, 3, 4, 5, 6], (num) => num % 2 == 0);
-//_.every([true, 1, null, 'yes'], _.identity); // https://typescript.codeplex.com/workitem/1960
-_.every([true, 1, null, 'yes'], _.identity);
-_.every<{}>([true, 1, null, 'yes']);
+_.every([true, 1, null, 'yes'], _.identity);
_.any([null, 0, 'yes', false]);
@@ -49,7 +51,7 @@ _.sortBy([1, 2, 3, 4, 5, 6], (num) => Math.sin(num));
_([1.3, 2.1, 2.4]).groupBy((e) => Math.floor(e));
-_.groupBy([1.3, 2.1, 2.4], (num: number) => Math.floor(num).toString());
+_.groupBy([1.3, 2.1, 2.4], (num) => Math.floor(num).toString());
_.groupBy(['one', 'two', 'three'], 'length');
_.indexBy(stooges, 'age')['40'].age;
@@ -59,7 +61,7 @@ _(stooges)
.indexBy('age')
.value()['40'].age;
-_.countBy([1, 2, 3, 4, 5], (num) => (num % 2 == 0) ? 'even' : 'odd');
+_.countBy([1, 2, 3, 4, 5], (num) => (num % 2 == 0) ? 'even' : 'odd');
_.shuffle([1, 2, 3, 4, 5, 6]);
@@ -67,6 +69,17 @@ _.shuffle([1, 2, 3, 4, 5, 6]);
_.size({ one: 1, two: 2, three: 3 });
+_.partition([0, 1, 2, 3, 4, 5], (num)=>{return num % 2 ==0});
+
+interface Family {
+ name: string;
+ relation : string;
+}
+var isUncleMoe = _.matches({name : 'moe', relation : 'uncle'});
+_.filter([{name: 'larry', relation : 'father'}, {name : 'moe', relation : 'uncle'}], isUncleMoe);
+
+
+
///////////////////////////////////////////////////////////////////////////////////////
_.first([5, 4, 3, 2, 1]);
@@ -76,19 +89,19 @@ _.rest([5, 4, 3, 2, 1]);
_.compact([0, 1, false, 2, '', 3]);
_.flatten([1, 2, 3, 4]);
-_.flatten([1, [2]]);
+_.flatten([1, [2]]);
// typescript doesn't like the elements being different
-_.flatten([1, [2], [3, [[4]]]]);
-_.flatten([1, [2], [3, [[4]]]], true);
+_.flatten([1, [2], [3, [[4]]]]);
+_.flatten([1, [2], [3, [[4]]]], true);
_.without([1, 2, 1, 0, 3, 1, 4], 0, 1);
_.union([1, 2, 3], [101, 2, 1, 10], [2, 1]);
_.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]);
_.difference([1, 2, 3, 4, 5], [5, 2, 10]);
_.uniq([1, 2, 1, 3, 1, 4]);
_.zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]);
-var r = _.object<{ [key: string]: number }>(['moe', 'larry', 'curly'], [30, 40, 50]);
-_.object([['moe', 30], ['larry', 40], ['curly', 50]]);
+var r = _.object(['moe', 'larry', 'curly'], [30, 40, 50]);
+_.object([['moe', 30], ['larry', 40], ['curly', 50]]);
_.indexOf([1, 2, 3], 2);
_.lastIndexOf([1, 2, 3, 1, 2, 3], 2);
_.sortedIndex([10, 20, 30, 40, 50], 35);
@@ -172,18 +185,15 @@ _.clone(['i', 'am', 'an', 'object!']);
_([1, 2, 3, 4])
.chain()
- .filter((num: number) => {
- return num % 2 == 0;
- }).tap(alert)
- .map((num: number) => {
- return num * num;
- })
+ .filter((num) => { return num % 2 == 0; })
+ .tap(alert)
+ .map((num) => { return num * num; })
.value();
_.chain([1, 2, 3, 200])
- .filter(function (num: number) { return num % 2 == 0; })
+ .filter((num) => { return num % 2 == 0; })
.tap(alert)
- .map(function (num: number) { return num * num })
+ .map((num) => { return num * num; })
.value();
_.has({ a: 1, b: 2, c: 3 }, "b");
@@ -204,6 +214,8 @@ _.isArray([1, 2, 3]);
_.isObject({});
_.isObject(1);
+_.property('name')(moe);
+
// (() => { return _.isArguments(arguments); })(1, 2, 3);
_.isArguments([1, 2, 3]);
@@ -235,13 +247,18 @@ _.isUndefined((window).missingVariable);
///////////////////////////////////////////////////////////////////////////////////////
+var UncleMoe = {name: 'moe'};
+_.constant(UncleMoe)();
+
+typeof _.now() === "number";
+
var underscore = _.noConflict();
var moe2 = { name: 'moe' };
moe2 === _.identity(moe);
var genie;
-var r2 = _.times(3, (n) => { return n * n });
+var r2 = _.times(3, (n) => { return n * n });
_(3).times(function (n) { genie.grantWishNumber(n); });
_.random(0, 100);
@@ -283,29 +300,27 @@ _(['test', 'test']).pick(['test2', 'test2']);
//////////////// Chain Tests
function chain_tests() {
// https://typescript.codeplex.com/workitem/1960
- var numArray: number[] = _.chain([1, 2, 3, 4, 5, 6, 7, 8])
+ var numArray = _.chain([1, 2, 3, 4, 5, 6, 7, 8])
.filter(num => num % 2 == 0)
.map(num => num * num)
.value();
- var strArray: string[] = _([1, 2, 3, 4])
+ var strArray = _([1, 2, 3, 4])
.chain()
.filter(num => num % 2 == 0)
.tap(alert)
.map(num => "string" + num)
.value();
- var n : number = _.chain([1, 2, 3, 200])
+ var n = _.chain([1, 2, 3, 200])
.filter(num => num % 2 == 0)
.tap(alert)
.map(num => num * num)
.max()
.value();
- //If using alternate definition of map (~ line 2200), .value returns any
- // because.map matches _Chain as opposed to _ChainOfArrays , which breaks typing on flatten
- var hoverOverValueShouldBeNumberNotAny : number = _([1, 2, 3]).chain()
- .map(num=> [num, num + 1])
+ var hoverOverValueShouldBeNumberNotAny = _([1, 2, 3]).chain()
+ .map(num => [num, num + 1])
.flatten()
.find(num => num % 2 == 0)
.value();
diff --git a/underscore/underscore.d.ts b/underscore/underscore.d.ts
index 9e44c0c63..cc9a3e6e9 100644
--- a/underscore/underscore.d.ts
+++ b/underscore/underscore.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Underscore 1.5.2
+// Type definitions for Underscore 1.6.0
// Project: http://underscorejs.org/
// Definitions by: Boris Yankov
// Definitions by: Josh Baldwin
@@ -23,7 +23,7 @@ declare module _ {
/**
* underscore.js template settings, set templateSettings or pass as an argument
- * to 'template()' to overide defaults.
+ * to 'template()' to override defaults.
**/
interface TemplateSettings {
/**
@@ -200,7 +200,7 @@ interface UnderscoreStatic {
/**
* The right-associative version of reduce. Delegates to the JavaScript 1.8 version of
- * reduceRight, if it exists. Foldr is not as useful in JavaScript as it would be in a
+ * reduceRight, if it exists. `foldr` is not as useful in JavaScript as it would be in a
* language with lazy evaluation.
* @param list Reduces the elements of this array.
* @param iterator Reduce iterator function for each element in `list`.
@@ -233,7 +233,15 @@ interface UnderscoreStatic {
* @return The first acceptable found element in `list`, if nothing is found undefined/null is returned.
**/
find(
- list: _.Collection,
+ list: _.List,
+ iterator: _.ListIterator,
+ context?: any): T;
+
+ /**
+ * @see _.find
+ **/
+ find(
+ list: _.Dictionary,
iterator: _.ListIterator,
context?: any): T;
@@ -254,7 +262,15 @@ interface UnderscoreStatic {
* @return The filtered list of elements.
**/
filter(
- list: _.Collection,
+ list: _.List,
+ iterator: _.ListIterator,
+ context?: any): T[];
+
+ /**
+ * @see _.filter
+ **/
+ filter(
+ list: _.Dictionary,
iterator: _.ListIterator,
context?: any): T[];
@@ -297,7 +313,15 @@ interface UnderscoreStatic {
* @return The rejected list of elements.
**/
reject(
- list: _.Collection,
+ list: _.List,
+ iterator: _.ListIterator,
+ context?: any): T[];
+
+ /**
+ * @see _.reject
+ **/
+ reject(
+ list: _.Dictionary,
iterator: _.ListIterator,
context?: any): T[];
@@ -497,7 +521,7 @@ interface UnderscoreStatic {
* @return An object with the group names as properties where each property contains the number of elements in that group.
**/
countBy(
- list: _.Collection,
+ list: _.List,
iterator?: _.ListIterator,
context?: any): _.Dictionary;
@@ -506,7 +530,7 @@ interface UnderscoreStatic {
* @param iterator Function name
**/
countBy(
- list: _.Collection,
+ list: _.Dictionary,
iterator: string,
context?: any): _.Dictionary;
@@ -543,6 +567,19 @@ interface UnderscoreStatic {
* @return Number of values in `list`.
**/
size(list: _.Collection): number;
+
+ /**
+ * Split array into two arrays:
+ * one whose elements all satisfy predicate and one whose elements all do not satisfy predicate.
+ * @param array Array to split in two
+ * @param iterator Filter iterator function for each element in `array`.
+ * @param context `this` object in `iterator`, optional.
+ * @return Array where Array[0] are the elements in `array` that satisfies the predicate, and Array[1] the elements that did not.
+ **/
+ partition(
+ array: Array,
+ iterator: _.ListIterator,
+ context?: any): T[][];
/*********
* Arrays *
@@ -590,7 +627,7 @@ interface UnderscoreStatic {
/**
* Returns everything but the last entry of the array. Especially useful on the arguments object.
* Pass n to exclude the last n elements from the result.
- * @param array Retreive all elements except the last `n`.
+ * @param array Retrieve all elements except the last `n`.
* @param n Leaves this many elements behind, optional.
* @return Returns everything but the last `n` elements of `array`.
**/
@@ -698,7 +735,7 @@ interface UnderscoreStatic {
* advance that the array is sorted, passing true for isSorted will run a much faster algorithm. If
* you want to compute unique items based on a transformation, pass an iterator function.
* @param array Array to remove duplicates from.
- * @param isSorted True if `array` is already sorted, optiona, default = false.
+ * @param isSorted True if `array` is already sorted, optional, default = false.
* @param iterator Transform the elements of `array` before comparisons for uniqueness.
* @param context 'this' object in `iterator`, optional.
* @return Copy of `array` where all elements are unique.
@@ -804,7 +841,7 @@ interface UnderscoreStatic {
* @param array The array to search for the last index of `value`.
* @param value The value to search for within `array`.
* @param from The starting index for the search, optional.
- * @return The index of the last occurance of `value` within `array`.
+ * @return The index of the last occurrence of `value` within `array`.
**/
lastIndexOf(
array: _.List,
@@ -905,7 +942,7 @@ interface UnderscoreStatic {
/**
* Much like setTimeout, invokes function after wait milliseconds. If you pass the optional arguments,
* they will be forwarded on to the function when it is invoked.
- * @param fn Function to delay `waitMS` amount of ms.
+ * @param func Function to delay `waitMS` amount of ms.
* @param wait The amount of milliseconds to delay `fn`.
* @arguments Additional arguments to pass to `fn`.
**/
@@ -941,7 +978,7 @@ interface UnderscoreStatic {
* if you call it again any number of times during the wait period, as soon as that period is over.
* If you'd like to disable the leading-edge call, pass {leading: false}, and if you'd like to disable
* the execution on the trailing-edge, pass {trailing: false}.
- * @param fn Function to throttle `waitMS` ms.
+ * @param func Function to throttle `waitMS` ms.
* @param wait The number of milliseconds to wait before `fn` can be invoked again.
* @param options Allows for disabling execution of the throttled function on either the leading or trailing edge.
* @return `fn` with a throttle of `wait`.
@@ -1017,14 +1054,14 @@ interface UnderscoreStatic {
/**
* Retrieve all the names of the object's properties.
- * @param object Retreive the key or property names from this object.
+ * @param object Retrieve the key or property names from this object.
* @return List of all the property names on `object`.
**/
keys(object: any): string[];
/**
* Return all of the values of the object's properties.
- * @param object Retreive the values of all the properties on this object.
+ * @param object Retrieve the values of all the properties on this object.
* @return List of all the values on `object`.
**/
values(object: any): any[];
@@ -1134,6 +1171,20 @@ interface UnderscoreStatic {
**/
has(object: any, key: string): boolean;
+ /**
+ * Returns a function that will itself return the key property of any passed-in object
+ * @param key Property of the object
+ * @return Function which accept an object an returns the value of key in that object
+ **/
+ property(key: string): (object: Object)=> any;
+
+ /**
+ * Returns a predicate function that will tell you if a passed in object contains all of the key/value properties present in attrs.
+ * @param attrs Object with key values pair
+ * @return Predicate function
+ **/
+ matches(attrs: T): _.ListIterator;
+
/**
* Performs an optimized deep comparison between the two objects,
* to determine if they should be considered equal.
@@ -1270,6 +1321,13 @@ interface UnderscoreStatic {
**/
identity(value: T): T;
+ /**
+ * Creates a function that returns the same value that is used as the argument of _.constant
+ * @param value Identity of this object.
+ * @return Function that return value.
+ **/
+ constant(value: T): () => T;
+
/**
* Invokes the given iterator function n times.
* Each invocation of iterator is called with an index argument
@@ -1353,6 +1411,11 @@ interface UnderscoreStatic {
**/
templateSettings: _.TemplateSettings;
+ /**
+ * Returns an integer timestamp for the current time, using the fastest method available in the runtime. Useful for implementing timing/animation functions.
+ **/
+ now(): number;
+
/* **********
* Chaining *
*********** */
@@ -2194,9 +2257,7 @@ interface _Chain {
* Wrapped type `any[]`.
* @see _.map
**/
- map(iterator: (value: T, index: number, list: T[]) => TArray[], context?: any): _ChainOfArrays;
- //Not sure why this won't work, might be a TypeScript error?
- //map(iterator: _.ListIterator, context?: any): _ChainOfArrays;
+ map(iterator: _.ListIterator, context?: any): _ChainOfArrays;
/**
* Wrapped type `any[]`.
@@ -2208,9 +2269,7 @@ interface _Chain {
* Wrapped type `any[]`.
* @see _.map
**/
- map(iterator: (element: T, key: string, list: any) => TArray[], context?: any): _ChainOfArrays;
- //Not sure why this won't work, might be a TypeScript error?
- //map(iterator: _.ObjectIterator, context?: any): _ChainOfArrays;
+ map(iterator: _.ObjectIterator, context?: any): _ChainOfArrays;
/**
* Wrapped type `any[]`.