From 893b28873510e746c3d16d880d92d1688ccb00a5 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Mon, 26 Nov 2012 02:58:39 +0200 Subject: [PATCH 01/44] Update readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c53142142..9a3e54050 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ Complete * [Foundation](http://foundation.zurb.com/) (by [Boris Yankov](https://github.com/borisyankov)) * [GoogleMaps](https://developers.google.com/maps/) (by [Esben Nepper](https://github.com/eNepper)) * [Handlebars](http://handlebarsjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) +* [Highcharts]http://www.highcharts.com/) (by [damianog](https://github.com/damianog)) * [History.js](https://github.com/balupton/History.js/) (by [Boris Yankov](https://github.com/borisyankov)) * [Humane.js](http://wavded.github.com/humane-js/) (by [John Vrbanac](https://github.com/jmvrbanac)) * [Impress.js](https://github.com/bartaz/impress.js) (by [Boris Yankov](https://github.com/borisyankov)) From 3bf70e9ac29cedd73b7c65156767fa72b77b019c Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Mon, 26 Nov 2012 05:21:19 +0200 Subject: [PATCH 02/44] Add jQuery tests --- jquery/jquery-tests.ts | 76 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/jquery/jquery-tests.ts b/jquery/jquery-tests.ts index da85a3fe2..4ff702359 100644 --- a/jquery/jquery-tests.ts +++ b/jquery/jquery-tests.ts @@ -1756,6 +1756,82 @@ function test_index() { $('div').html('Index: ' + foobar); } +function test_innedHeight() { + var p = $("p:first"); + $("p:last").text("innerHeight:" + p.innerHeight()); +} + +function test_innerWidth() { + var p = $("p:first"); + $("p:last").text("innerWidth:" + p.innerWidth()); +} + +function test_insertAfter() { + $('

Test

').insertAfter('.inner'); + $('h2').insertAfter($('.container')); + $("p").insertAfter("#foo"); +} + +function test_insertBefore() { + $('

Test

').insertBefore('.inner'); + $('h2').insertBefore($('.container')); + $("p").insertBefore("#foo"); +} + +function test_is() { + $("ul").click(function (event) { + var $target = $(event.target); + if ($target.is("li")) { + $target.css("background-color", "red"); + } + }); + $("li").click(function () { + var $li = $(this), + isWithTwo = $li.is(function () { + return $('strong', this).length === 2; + }); + if (isWithTwo) { + $li.css("background-color", "green"); + } else { + $li.css("background-color", "red"); + } + }); + $("div").one('click', function () { + if ($(this).is(":first-child")) { + $("p").text("It's the first div."); + } else if ($(this).is(".blue,.red")) { + $("p").text("It's a blue or red div."); + } else if ($(this).is(":contains('Peter')")) { + $("p").text("It's Peter!"); + } else { + $("p").html("It's nothing special."); + } + $("p").hide().slideDown("slow"); + $(this).css({ "border-style": "inset", cursor: "default" }); + }); + var isFormParent = $("input[type='checkbox']").parent().is("form"); + $("div").text("isFormParent = " + isFormParent); + var isFormParent = $("input[type='checkbox']").parent().is("form"); + $("div").text("isFormParent = " + isFormParent); + var $alt = $("#browsers li:nth-child(2n)").css("background", "#00FFFF"); + $('li').click(function () { + var $li = $(this); + if ($li.is($alt)) { + $li.slideUp(); + } else { + $li.css("background", "red"); + } + }); + var $alt = $("#browsers li:nth-child(2n)").css("background", "#00FFFF"); + $('li').click(function () { + if ($alt.is(this)) { + $(this).slideUp(); + } else { + $(this).css("background", "red"); + } + }); +} + function test_load() { $('#result').load('ajax/test.html'); $('#result').load('ajax/test.html', function () { From 9093cd686ada0713de7211f754edaf48645ee68d Mon Sep 17 00:00:00 2001 From: Roy Goode Date: Tue, 27 Nov 2012 20:50:33 +0000 Subject: [PATCH 03/44] Added jQuery.Cookie definitions and tests --- README.md | 129 ++++++++++++++------------- jquery.cookie/jquery.cookie-tests.ts | 37 ++++++++ jquery.cookie/jquery.cookie.d.ts | 31 +++++++ 3 files changed, 133 insertions(+), 64 deletions(-) create mode 100644 jquery.cookie/jquery.cookie-tests.ts create mode 100644 jquery.cookie/jquery.cookie.d.ts diff --git a/README.md b/README.md index 9a3e54050..faaaa06c7 100644 --- a/README.md +++ b/README.md @@ -1,65 +1,66 @@ -DefinitelyTyped -=============== - -TypeScript type definitions repository for popular JavaScript libraries. - -The project aims to provide *high quality* definitions for the most popular libraries out there. - -Complete --------- -* [AngularJS](http://angularjs.org) (by [Diego Vilar](https://github.com/diegovilar)) ([wiki](https://github.com/borisyankov/DefinitelyTyped/wiki/AngularJS-Definitions-Usage-Notes)) -* [async](https://github.com/caolan/async) (by [Boris Yankov](https://github.com/borisyankov)) -* [Backbone.js](http://backbonejs.org/) (by [Boris Yankov](https://github.com/borisyankov)) -* [Bootstrap](http://twitter.github.com/bootstrap/) (by [Boris Yankov](https://github.com/borisyankov)) -* [bootstrap.datepicker](https://github.com/eternicode/bootstrap-datepicker) (by [Boris Yankov](https://github.com/borisyankov)) -* [Breeze](http://www.breezejs.com/) (by [Boris Yankov](https://github.com/borisyankov)) -* [CodeMirror](http://codemirror.net) (by [François de Campredon](https://github.com/fdecampredon)) -* [Chosen](http://harvesthq.github.com/chosen/) (by [Boris Yankov](https://github.com/borisyankov)) -* [dynatree](http://code.google.com/p/dynatree/) (by [François de Campredon](https://github.com/fdecampredon)) -* [d3.js](http://d3js.org/) (from TypeScript samples) -* [EaselJS](http://www.createjs.com/#!/EaselJS) (by [Pedro Ferreira](https://bitbucket.org/drk4)) -* [ember.js](http://emberjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) -* [Express](http://expressjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) -* [Fancybox](http://fancybox.net/) (by [Boris Yankov](https://github.com/borisyankov)) -* [Foundation](http://foundation.zurb.com/) (by [Boris Yankov](https://github.com/borisyankov)) -* [GoogleMaps](https://developers.google.com/maps/) (by [Esben Nepper](https://github.com/eNepper)) -* [Handlebars](http://handlebarsjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) -* [Highcharts]http://www.highcharts.com/) (by [damianog](https://github.com/damianog)) -* [History.js](https://github.com/balupton/History.js/) (by [Boris Yankov](https://github.com/borisyankov)) -* [Humane.js](http://wavded.github.com/humane-js/) (by [John Vrbanac](https://github.com/jmvrbanac)) -* [Impress.js](https://github.com/bartaz/impress.js) (by [Boris Yankov](https://github.com/borisyankov)) -* [Jasmine](http://pivotal.github.com/jasmine/) (by [Boris Yankov](https://github.com/borisyankov)) -* [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.BBQ](http://benalman.com/projects/jquery-bbq-plugin/) (by [Adam R. Smith](https://github.com/sunetos)) -* [jQuery.Globalize](https://github.com/jquery/globalize) (by [Boris Yankov](https://github.com/borisyankov)) -* [jQuery.Validation](http://bassistance.de/jquery-plugins/jquery-plugin-validation/) (by [Boris Yankov](https://github.com/borisyankov)) -* [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.Mapping](https://github.com/SteveSanderson/knockout.mapping) (by [Boris Yankov](https://github.com/borisyankov)) -* [linq.js](http://linqjs.codeplex.com/) (by [Marcin Najder](https://github.com/marcinnajder)) -* [Modernizr](http://modernizr.com/) (by [Boris Yankov](https://github.com/borisyankov)) -* [Moment.js](https://github.com/timrwood/moment) (by [Michael Lakerveld](https://github.com/Lakerfield)) -* [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-sqlserver](https://github.com/WindowsAzure/node-sqlserver) (by [Boris Yankov](https://github.com/borisyankov)) -* [PhoneGap](http://phonegap.com) (by [Boris Yankov](https://github.com/borisyankov)) -* [PreloadJS](http://www.createjs.com/#!/PreloadJS) (by [Pedro Ferreira](https://bitbucket.org/drk4)) -* [QUnit](http://qunitjs.com/) (by [Diullei Gomes](https://github.com/Diullei)) -* [Raphael](http://raphaeljs.com/) (by [CheCoxshall](https://github.com/CheCoxshall)) -* [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)) -* [SignalR](http://www.asp.net/signalr) (by [Boris Yankov](https://github.com/borisyankov)) -* [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)) -* [Sugar](http://sugarjs.com/) (by [Josh Baldwin](https://github.com/jbaldwin/)) -* [Teechart](http://www.steema.com) (by [Steema](http://www.steema.com)) -* [Toastr](https://github.com/CodeSeven/toastr) (by [Boris Yankov](https://github.com/borisyankov)) -* [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)) -* [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)) +DefinitelyTyped +=============== + +TypeScript type definitions repository for popular JavaScript libraries. + +The project aims to provide *high quality* definitions for the most popular libraries out there. + +Complete +-------- +* [AngularJS](http://angularjs.org) (by [Diego Vilar](https://github.com/diegovilar)) ([wiki](https://github.com/borisyankov/DefinitelyTyped/wiki/AngularJS-Definitions-Usage-Notes)) +* [async](https://github.com/caolan/async) (by [Boris Yankov](https://github.com/borisyankov)) +* [Backbone.js](http://backbonejs.org/) (by [Boris Yankov](https://github.com/borisyankov)) +* [Bootstrap](http://twitter.github.com/bootstrap/) (by [Boris Yankov](https://github.com/borisyankov)) +* [bootstrap.datepicker](https://github.com/eternicode/bootstrap-datepicker) (by [Boris Yankov](https://github.com/borisyankov)) +* [Breeze](http://www.breezejs.com/) (by [Boris Yankov](https://github.com/borisyankov)) +* [CodeMirror](http://codemirror.net) (by [François de Campredon](https://github.com/fdecampredon)) +* [Chosen](http://harvesthq.github.com/chosen/) (by [Boris Yankov](https://github.com/borisyankov)) +* [dynatree](http://code.google.com/p/dynatree/) (by [François de Campredon](https://github.com/fdecampredon)) +* [d3.js](http://d3js.org/) (from TypeScript samples) +* [EaselJS](http://www.createjs.com/#!/EaselJS) (by [Pedro Ferreira](https://bitbucket.org/drk4)) +* [ember.js](http://emberjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) +* [Express](http://expressjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) +* [Fancybox](http://fancybox.net/) (by [Boris Yankov](https://github.com/borisyankov)) +* [Foundation](http://foundation.zurb.com/) (by [Boris Yankov](https://github.com/borisyankov)) +* [GoogleMaps](https://developers.google.com/maps/) (by [Esben Nepper](https://github.com/eNepper)) +* [Handlebars](http://handlebarsjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) +* [Highcharts]http://www.highcharts.com/) (by [damianog](https://github.com/damianog)) +* [History.js](https://github.com/balupton/History.js/) (by [Boris Yankov](https://github.com/borisyankov)) +* [Humane.js](http://wavded.github.com/humane-js/) (by [John Vrbanac](https://github.com/jmvrbanac)) +* [Impress.js](https://github.com/bartaz/impress.js) (by [Boris Yankov](https://github.com/borisyankov)) +* [Jasmine](http://pivotal.github.com/jasmine/) (by [Boris Yankov](https://github.com/borisyankov)) +* [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.BBQ](http://benalman.com/projects/jquery-bbq-plugin/) (by [Adam R. Smith](https://github.com/sunetos)) +* [jQuery.Cookie](https://github.com/carhartl/jquery-cookie) (by [Roy Goode](https://github.com/RoyGoode)) +* [jQuery.Globalize](https://github.com/jquery/globalize) (by [Boris Yankov](https://github.com/borisyankov)) +* [jQuery.Validation](http://bassistance.de/jquery-plugins/jquery-plugin-validation/) (by [Boris Yankov](https://github.com/borisyankov)) +* [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.Mapping](https://github.com/SteveSanderson/knockout.mapping) (by [Boris Yankov](https://github.com/borisyankov)) +* [linq.js](http://linqjs.codeplex.com/) (by [Marcin Najder](https://github.com/marcinnajder)) +* [Modernizr](http://modernizr.com/) (by [Boris Yankov](https://github.com/borisyankov)) +* [Moment.js](https://github.com/timrwood/moment) (by [Michael Lakerveld](https://github.com/Lakerfield)) +* [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-sqlserver](https://github.com/WindowsAzure/node-sqlserver) (by [Boris Yankov](https://github.com/borisyankov)) +* [PhoneGap](http://phonegap.com) (by [Boris Yankov](https://github.com/borisyankov)) +* [PreloadJS](http://www.createjs.com/#!/PreloadJS) (by [Pedro Ferreira](https://bitbucket.org/drk4)) +* [QUnit](http://qunitjs.com/) (by [Diullei Gomes](https://github.com/Diullei)) +* [Raphael](http://raphaeljs.com/) (by [CheCoxshall](https://github.com/CheCoxshall)) +* [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)) +* [SignalR](http://www.asp.net/signalr) (by [Boris Yankov](https://github.com/borisyankov)) +* [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)) +* [Sugar](http://sugarjs.com/) (by [Josh Baldwin](https://github.com/jbaldwin/)) +* [Teechart](http://www.steema.com) (by [Steema](http://www.steema.com)) +* [Toastr](https://github.com/CodeSeven/toastr) (by [Boris Yankov](https://github.com/borisyankov)) +* [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)) +* [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/)) \ No newline at end of file diff --git a/jquery.cookie/jquery.cookie-tests.ts b/jquery.cookie/jquery.cookie-tests.ts new file mode 100644 index 000000000..cf7f4e63f --- /dev/null +++ b/jquery.cookie/jquery.cookie-tests.ts @@ -0,0 +1,37 @@ +/// +/// + +class TestObject { + text: string; + value: number; + + constructor (text: string, value: number) { + this.text = text; + this.value = value; + } +} + +class CookieOptions implements JQueryCookieOptions { + expires: number; + path: string; + domain: string; + secure: bool; +} + +$.cookie("the_cookie", "the_value"); + +console.log($.cookie("the_cookie")); + +var testObject = new TestObject("Hello World", 5); + +var cookieOptions = new CookieOptions(); +cookieOptions.path = "/"; +cookieOptions.domain = "jquery.com"; + +$.cookie.json = true; + +$.cookie("test", testObject, cookieOptions); + +var result = $.cookie("test"); + +console.log(result.text); diff --git a/jquery.cookie/jquery.cookie.d.ts b/jquery.cookie/jquery.cookie.d.ts new file mode 100644 index 000000000..820a217c3 --- /dev/null +++ b/jquery.cookie/jquery.cookie.d.ts @@ -0,0 +1,31 @@ +// Type definitions for jQuery Cookie Plugin 1.3 +// Project: https://github.com/carhartl/jquery-cookie +// Definitions by: Roy Goode +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +interface JQueryCookieOptions { + expires?: number; + path?: string; + domain?: string; + secure?: bool; +} + +interface JQueryCookieStatic { + raw?: bool; + json?: bool; + + (name: string): any; + (name: string, value: string): void; + (name: string, value: string, options: JQueryCookieOptions): void; + (name: string, value: any): void; + (name: string, value: any, options: JQueryCookieOptions): void; +} + +interface JQueryStatic { + cookie?: JQueryCookieStatic; + + removeCookie(name: string): bool; + removeCookie(name: string, options: JQueryCookieOptions): bool; +} \ No newline at end of file From e10c76d56a2292382c5678877a000e6f478422e4 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Tue, 27 Nov 2012 15:53:04 -0500 Subject: [PATCH 04/44] Fixed a typo in node-0.8.d.ts --- node/node-0.8.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/node-0.8.d.ts b/node/node-0.8.d.ts index baae95cbe..147645aa9 100644 --- a/node/node-0.8.d.ts +++ b/node/node-0.8.d.ts @@ -633,7 +633,7 @@ declare module "net" { destroy(): void; pause(): void; resume(): void; - setTimeout(timeout: number, callback?: Function); void; + setTimeout(timeout: number, callback?: Function): void; setNoDelay(noDelay?: bool): void; setKeepAlive(enable?: bool, initialDelay?: number): void; address(): { port: number; family: string; address: string; }; From 1db9a23bff906de7dea24ad0c74198036c233eef Mon Sep 17 00:00:00 2001 From: Roy Goode Date: Tue, 27 Nov 2012 20:56:16 +0000 Subject: [PATCH 05/44] Fixed typo in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index faaaa06c7..a5ed00475 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Complete * [Foundation](http://foundation.zurb.com/) (by [Boris Yankov](https://github.com/borisyankov)) * [GoogleMaps](https://developers.google.com/maps/) (by [Esben Nepper](https://github.com/eNepper)) * [Handlebars](http://handlebarsjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) -* [Highcharts]http://www.highcharts.com/) (by [damianog](https://github.com/damianog)) +* [Highcharts](http://www.highcharts.com/) (by [damianog](https://github.com/damianog)) * [History.js](https://github.com/balupton/History.js/) (by [Boris Yankov](https://github.com/borisyankov)) * [Humane.js](http://wavded.github.com/humane-js/) (by [John Vrbanac](https://github.com/jmvrbanac)) * [Impress.js](https://github.com/bartaz/impress.js) (by [Boris Yankov](https://github.com/borisyankov)) From f0fef408cf6b64a3bf36e9728f7cc13c13bf195d Mon Sep 17 00:00:00 2001 From: BreeeZe Date: Tue, 27 Nov 2012 22:12:28 +0100 Subject: [PATCH 06/44] The expires option can be either a number or a Date object. (https://github.com/carhartl/jquery-cookie#expires) Since there is no option to define both for a property it should be defined as any. --- jquery.cookie/jquery.cookie.d.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jquery.cookie/jquery.cookie.d.ts b/jquery.cookie/jquery.cookie.d.ts index 820a217c3..228bf8dec 100644 --- a/jquery.cookie/jquery.cookie.d.ts +++ b/jquery.cookie/jquery.cookie.d.ts @@ -5,8 +5,9 @@ /// + interface JQueryCookieOptions { - expires?: number; + expires?: any; path?: string; domain?: string; secure?: bool; From 0be80b5a26e1a4fb9734e935bf6dff872de7182c Mon Sep 17 00:00:00 2001 From: Will Orr Date: Wed, 28 Nov 2012 21:17:22 -0500 Subject: [PATCH 07/44] Added socket.io definition file --- socket.io/socket.io-0.9.10.d.ts | 57 +++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 socket.io/socket.io-0.9.10.d.ts diff --git a/socket.io/socket.io-0.9.10.d.ts b/socket.io/socket.io-0.9.10.d.ts new file mode 100644 index 000000000..cf8a18d60 --- /dev/null +++ b/socket.io/socket.io-0.9.10.d.ts @@ -0,0 +1,57 @@ +/// + +declare module "socket.io" { + import http = module('http'); + + export function listen(server: http.Server, options: any, fn: Function): SocketManager; + export function listen(server: http.Server, fn?: Function): SocketManager; + export function listen(port: Number): SocketManager; +} + +interface Socket { + json:any; + log: any; + volatile: any; + broadcast: any; + in(room: string): Socket; + to(room: string): Socket; + join(name: string, fn: Function): Socket; + unjoin(name: string, fn: Function): Socket; + set(key: string, value: any, fn: Function): Socket; + get(key: string, value: any, fn: Function): Socket; + has(key: string, fn: Function): Socket; + del(key: string, fn: Function): Socket; + disconnect(): Socket; + send(data: any, fn: Function): Socket; + emit(ev: any): Socket; +} + +interface SocketNamespace { + clients(room: string): Socket[]; + log: any; + store: any; + json: any; + volatile: any; + in(room: string): SocketNamespace; + on(evt: string, fn: Function): SocketNamespace; + to(room: string): SocketNamespace; + except(id: any): SocketNamespace; + send(data: any): any; + emit(data: any): any; + socket(sid: any, readable: bool): Socket; + authorization(fn: Function); +} + +interface SocketManager { + get(key: any): any; + set(key: any, value: any): SocketManager; + enable(key: any): SocketManager; + disable(key: any): SocketManager; + enabled(key: any): bool; + disabled(key: any): bool; + configure(env: string, fn: Function): SocketManager; + configure(fn: Function): SocketManager; + of(nsp: string): SocketNamespace; + on(ns: string, fn: Function): SocketManager; + sockets: SocketNamespace; +} From f504c4eee42eaa52a7503e569fce06a3d5e70044 Mon Sep 17 00:00:00 2001 From: BreeeZe Date: Sat, 1 Dec 2012 21:37:38 +0100 Subject: [PATCH 08/44] Added missing ko method : "cleanNode" --- knockout/knockout-2.2.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/knockout/knockout-2.2.d.ts b/knockout/knockout-2.2.d.ts index 2520e9ad4..a99b4683b 100644 --- a/knockout/knockout-2.2.d.ts +++ b/knockout/knockout-2.2.d.ts @@ -290,6 +290,7 @@ interface KnockoutStatic { isObservable(instance: any): bool; dataFor(node: any): any; removeNode(node: Element); + cleanNode(node: Element); } declare var ko: KnockoutStatic; \ No newline at end of file From 1e2c8209a787308fca25eb8912883b2fe6806d2c Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Wed, 28 Nov 2012 23:53:11 +0200 Subject: [PATCH 09/44] Add jQuery mousedown overload --- jquery/jquery-1.8.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/jquery/jquery-1.8.d.ts b/jquery/jquery-1.8.d.ts index 75de4878b..16e97a964 100644 --- a/jquery/jquery-1.8.d.ts +++ b/jquery/jquery-1.8.d.ts @@ -512,6 +512,7 @@ interface JQuery { load(eventData?: any, handler?: (eventObject: JQueryEventObject) => any): JQuery; load(handler: (eventObject: JQueryEventObject) => any): JQuery; + mousedown(): JQuery; mousedown(eventData: any, handler: (eventObject: JQueryEventObject) => any): JQuery; mousedown(handler: (eventObject: JQueryEventObject) => any): JQuery; From 48325284b7f65b4e45edc1edb392aa53800dbe99 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Sun, 2 Dec 2012 21:06:26 +0200 Subject: [PATCH 10/44] Add jQuery mouse events overloads and new tests --- jquery/jquery-1.8.d.ts | 6 + jquery/jquery-tests.ts | 397 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 396 insertions(+), 7 deletions(-) diff --git a/jquery/jquery-1.8.d.ts b/jquery/jquery-1.8.d.ts index 16e97a964..3088962eb 100644 --- a/jquery/jquery-1.8.d.ts +++ b/jquery/jquery-1.8.d.ts @@ -519,21 +519,27 @@ interface JQuery { mouseevent(eventData: any, handler: (eventObject: JQueryEventObject) => any): JQuery; mouseevent(handler: (eventObject: JQueryEventObject) => any): JQuery; + mouseenter(): JQuery; mouseenter(eventData: any, handler: (eventObject: JQueryEventObject) => any): JQuery; mouseenter(handler: (eventObject: JQueryEventObject) => any): JQuery; + mouseleave(): JQuery; mouseleave(eventData: any, handler: (eventObject: JQueryEventObject) => any): JQuery; mouseleave(handler: (eventObject: JQueryEventObject) => any): JQuery; + mousemove(): JQuery; mousemove(eventData: any, handler: (eventObject: JQueryEventObject) => any): JQuery; mousemove(handler: (eventObject: JQueryEventObject) => any): JQuery; + mouseout(): JQuery; mouseout(eventData: any, handler: (eventObject: JQueryEventObject) => any): JQuery; mouseout(handler: (eventObject: JQueryEventObject) => any): JQuery; + mouseover(): JQuery; mouseover(eventData: any, handler: (eventObject: JQueryEventObject) => any): JQuery; mouseover(handler: (eventObject: JQueryEventObject) => any): JQuery; + mouseup(): JQuery; mouseup(eventData: any, handler: (eventObject: JQueryEventObject) => any): JQuery; mouseup(handler: (eventObject: JQueryEventObject) => any): JQuery; diff --git a/jquery/jquery-tests.ts b/jquery/jquery-tests.ts index 4ff702359..998997b2c 100644 --- a/jquery/jquery-tests.ts +++ b/jquery/jquery-tests.ts @@ -1832,6 +1832,195 @@ function test_is() { }); } +function test_isArray() { + $("b").append("" + $.isArray([])); +} + +function test_isEmptyObject() { + jQuery.isEmptyObject({}); + jQuery.isEmptyObject({ foo: "bar" }); +} + +function test_isFuction() { + function stub() { }; + var objs: any[] = [ + function () { }, + { x: 15, y: 20 }, + null, + stub, + "function" + ]; + jQuery.each(objs, function (i) { + var isFunc = jQuery.isFunction(objs[i]); + $("span").eq(i).text(isFunc); + }); + $.isFunction(function () { }); +} + +function test_isNumeric() { + $.isNumeric("-10"); + $.isNumeric(16); + $.isNumeric(0xFF); + $.isNumeric("0xFF"); + $.isNumeric("8e5"); + $.isNumeric(3.1415); + $.isNumeric(+10); + $.isNumeric(0144); + $.isNumeric(""); + $.isNumeric({}); + $.isNumeric(NaN); + $.isNumeric(null); + $.isNumeric(true); + $.isNumeric(Infinity); + $.isNumeric(undefined); +} + +function test_isPlainObject() { + $.isPlainObject(document.location); + jQuery.isPlainObject({}); + jQuery.isPlainObject("test"); +} + +function test_isWindow() { + $("b").append("" + $.isWindow(window)); +} + +function test_isXMLDoc() { + jQuery.isXMLDoc(document); + jQuery.isXMLDoc(document.body); +} + +function test_jQuery() { + $('div.foo'); + $('div.foo').click(function () { + $('span', this).addClass('bar'); + }); + $('div.foo').click(function () { + $(this).slideUp(); + }); + $.post('url.xml', function (data) { + var $child = $(data).find('child'); + }); + var foo = { foo: 'bar', hello: 'world' }; + var $foo = $(foo); + var test1 = $foo.prop('foo'); + $foo.prop('foo', 'foobar'); + var test2 = $foo.prop('foo'); + $foo.data('keyName', 'someValue'); + console.log($foo); + $foo.bind('eventName', function () { + console.log('eventName was called'); + }); + $foo.trigger('eventName'); + $foo.triggerHandler('eventName'); + $("div > p").css("border", "1px solid gray"); + $("input:radio", document.forms[0]); + $("div", xml.responseXML); + $(document.body).css("background", "black"); + $(myForm.elements).hide(); + $('

My new text

').appendTo('body'); + $(''); + $(''); + var el = $('1
2
3'); + el = $('1
2
3 >'); + $('', { + type: 'text', + name: 'test' + }).appendTo("body"); + $('').attr({ + name: 'test' + }).appendTo("body"); + $("

Hello

").appendTo("body"); + $("
", { + "class": "test", + text: "Click me!", + click: function () { + $(this).toggleClass("test"); + } + }).appendTo("body"); + jQuery(function ($) { + }); +} + +function test_jquery() { + var a = { what: "A regular JS object" }, + b = $('body'); + if (a.jquery) { + alert(' a is a jQuery object! '); + } + if (b.jquery) { + alert(' b is a jQuery object! '); + } + alert('You are running jQuery version: ' + $.fn.jquery); +} + +function test_keydown() { + $('#target').keydown(function () { + alert('Handler for .keydown() called.'); + }); + $('#other').click(function () { + $('#target').keydown(); + }); + var xTriggered = 0; + $('#target').keydown(function (event) { + if (event.which == 13) { + event.preventDefault(); + } + xTriggered++; + var msg = 'Handler for .keydown() called ' + xTriggered + ' time(s).'; + }); + $('#other').click(function () { + $('#target').keydown(); + }); +} + +function test_keypress() { + $("#target").keypress(function () { + alert("Handler for .keypress() called."); + }); + $('#other').click(function () { + $("#target").keypress(); + }); + $("#other").click(function () { + $("#target").keypress(); + }); +} + +function test_keyup() { + $('#target').keyup(function () { + alert('Handler for .keyup() called.'); + }); + $('#other').click(function () { + $('#target').keyup(); + }); + $('#other').click(function () { + $('#target').keyup(); + }); +} + +function test_last() { + $('li').last().css('background-color', 'red'); + $("p span").last().addClass('highlight'); +} + +function test_length() { + $(document.body).click(function () { + $(document.body).append($("
")); + var n = $("div").length; + $("span").text("There are " + n + " divs." + "Click to add more."); + }).trigger('click'); +} + +/* deprecated +function test_live() { + $(selector).live(events, data, handler); + $(document).delegate(selector, events, data, handler); + $(document).on(events, selector, data, handler); + $("a.offsite").live("click", function () { alert("Goodbye!"); }); + $(document).delegate("a.offsite", "click", function () { alert("Goodbye!"); }); + $(document).on("click", "a.offsite", function () { alert("Goodbye!"); }); +} */ + function test_load() { $('#result').load('ajax/test.html'); $('#result').load('ajax/test.html', function () { @@ -1860,15 +2049,22 @@ function test_loadEvent() { }); } -function test_mouseEvents() { - var i = 0; - $("div.overout").mouseover(function () { - $("p:first", this).text("mouse over"); - $("p:last", this).text(++i); - }).mouseout(function () { - $("p:first", this).text("mouse out"); +function test_mousedown() { + $('#target').mousedown(function () { + alert('Handler for .mousedown() called.'); }); + $('#other').click(function () { + $('#target').mousedown(); + }); +} +function test_mouseenter() { + $('#outer').mouseenter(function () { + $('#log').append('
Handler for .mouseenter() called.
'); + }); + $('#other').click(function () { + $('#outer').mouseenter(); + }); var n = 0; $("div.enterleave").mouseenter(function () { $("p:first", this).text("mouse enter"); @@ -1878,6 +2074,193 @@ function test_mouseEvents() { }); } +function test_mouseleave() { + $('#outer').mouseleave(function () { + $('#log').append('
Handler for .mouseleave() called.
'); + }); + $('#other').click(function () { + $('#outer').mouseleave(); + }); + var i = 0; + $("div.overout").mouseover(function () { + $("p:first", this).text("mouse over"); + }).mouseout(function () { + $("p:first", this).text("mouse out"); + $("p:last", this).text(++i); + }); + var n = 0; + $("div.enterleave").mouseenter(function () { + $("p:first", this).text("mouse enter"); + }).mouseleave(function () { + $("p:first", this).text("mouse leave"); + $("p:last", this).text(++n); + }); +} + +function test_mousemove() { + $("#target").mousemove(function (event) { + var msg = "Handler for .mousemove() called at "; + msg += event.pageX + ", " + event.pageY; + $("#log").append("
" + msg + "
"); + }); + $("#other").click(function () { + $("#target").mousemove(); + }); + $("div").mousemove(function (e) { + var pageCoords = "( " + e.pageX + ", " + e.pageY + " )"; + var clientCoords = "( " + e.clientX + ", " + e.clientY + " )"; + $("span:first").text("( e.pageX, e.pageY ) : " + pageCoords); + $("span:last").text("( e.clientX, e.clientY ) : " + clientCoords); + }); +} + +function test_mouseout() { + $('#outer').mouseout(function () { + $('#log').append('Handler for .mouseout() called.'); + }); + $('#other').click(function () { + $('#outer').mouseout(); + }); + var i = 0; + $("div.overout").mouseout(function () { + $("p:first", this).text("mouse out"); + $("p:last", this).text(++i); + }).mouseover(function () { + $("p:first", this).text("mouse over"); + }); + var n = 0; + $("div.enterleave").bind("mouseenter", function () { + $("p:first", this).text("mouse enter"); + }).bind("mouseleave", function () { + $("p:first", this).text("mouse leave"); + $("p:last", this).text(++n); + }); +} + +function test_mouseup() { + $("p").mouseup(function () { + $(this).append('Mouse up.'); + }).mousedown(function () { + $(this).append('Mouse down.'); + }); + $('#target').mouseup(function () { + alert('Handler for .mouseup() called.'); + }); + $('#other').click(function () { + $('#target').mouseup(); + }); + $("p").mouseup(function () { + $(this).append('Mouse up.'); + }).mousedown(function () { + $(this).append('Mouse down.'); + }); +} + +function test_mouseover() { + $('#outer').mouseover(function () { + $('#log').append('
Handler for .mouseover() called.
'); + }); + $('#other').click(function () { + $('#outer').mouseover(); + }); + var i = 0; + $("div.overout").mouseover(function () { + $("p:first", this).text("mouse over"); + $("p:last", this).text(++i); + }).mouseout(function () { + $("p:first", this).text("mouse out"); + }); + var n = 0; + $("div.enterleave").mouseenter(function () { + n += 1; + $(this).find("span").text("mouse enter x " + n); + }).mouseleave(function () { + $(this).find("span").text("mouse leave"); + }); +} + +function test_makeArray() { + var elems = document.getElementsByTagName("div"); + var arr = jQuery.makeArray(elems); + arr.reverse(); + $(arr).appendTo(document.body); + var obj = $('li'); + var arr = $.makeArray(obj); + jQuery.isArray(arr) === true; +} + +function test_map() { + $(':checkbox').map(function () { + return this.id; + }).get().join(','); + $("p").append($("input").map(function () { + return $(this).val(); + }).get().join(", ")); + var mappedItems = $("li").map(function (index) { + var replacement = $("
  • ").text($(this).text()).get(0); + if (index == 0) { + $(replacement).text($(replacement).text().toUpperCase()); + } else if (index == 1 || index == 3) { + replacement = null; + } else if (index == 2) { + replacement = [replacement, $("
  • ").get(0)]; + $(replacement[0]).append(" - A"); + $(replacement[1]).append("Extra - B"); + } + return replacement; + }); + $("#results").append(mappedItems); + var fakeArray = { "length": 1, 0: "Addy", 1: "Subtracty" }; + var realArray = $.makeArray(fakeArray) + $.map(realArray, function (val, i) { }); + var arr = ["a", "b", "c", "d", "e"]; + $("div").text(arr.join(", ")); + arr = jQuery.map(arr, function (n, i) { + return (n.toUpperCase() + i); + }); + $("p").text(arr.join(", ")); + arr = jQuery.map(arr, function (a) { + return a + a; + }); + $("span").text(arr.join(", ")); + $.map([0, 1, 2], function (n) { + return n + 4; + }); + $.map([0, 1, 2], function (n) { + return n > 0 ? n + 1 : null; + }); + $.map([0, 1, 2], function (n) { + return [n, n + 1]; + }); + var dimensions = { width: 10, height: 15, length: 20 }; + dimensions = $.map(dimensions, function (value, index) { + return value * 2; + }); + var dimensions = { width: 10, height: 15, length: 20 }, + keys = $.map(dimensions, function (value, index) { + return index; + }); + $.map([0, 1, 2, 3], function (a) { + return a * a; + }); + $.map([0, 1, 52, 97], function (a) { + return (a > 50 ? a - 45 : null); + }); + var array = [0, 1, 52, 97]; + array = $.map(array, function (a, index) { + return [a - 45, index]; + }); +} + +function test_merge() { + var oldArray: any[]; + var newArray = $.merge([], oldArray); + $.merge([0, 1, 2], [2, 3, 4]); + var first = ['a', 'b', 'c']; + var second = ['d', 'e', 'f']; + $.merge($.merge([], first), second); +} + function test_prop() { var $input = $(this); $("p").html(".attr('checked'): " + $input.attr('checked') + "
    " From e30c6ad17fa1a033857dcdd6bb21ca6e0406cd7c Mon Sep 17 00:00:00 2001 From: Will Orr Date: Sun, 2 Dec 2012 15:12:35 -0500 Subject: [PATCH 11/44] Added marked v0.2.6 --- marked/marked-0.2.6.d.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 marked/marked-0.2.6.d.ts diff --git a/marked/marked-0.2.6.d.ts b/marked/marked-0.2.6.d.ts new file mode 100644 index 000000000..a059a3e6a --- /dev/null +++ b/marked/marked-0.2.6.d.ts @@ -0,0 +1,14 @@ +declare module "marked" { + export function (src: string, opt?: Options): string; + export function lexer(src: string, opt?: Options): Array; + export function parser(src: string, opt?: Options): string; + export function parse(src: string, opt?: Options): string; + export function setOptions(opt: Options): void; +} + +interface Options { + gfm?: bool; + pedantic?: bool; + sanitize?: bool; + highlight?: bool; +} From 840befbcf01395fd072b8114763090e91273052c Mon Sep 17 00:00:00 2001 From: "Robert S." Date: Tue, 4 Dec 2012 00:15:45 -0600 Subject: [PATCH 12/44] Add GreenSock Definition --- greensock/greensock.d.ts | 318 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 318 insertions(+) create mode 100644 greensock/greensock.d.ts diff --git a/greensock/greensock.d.ts b/greensock/greensock.d.ts new file mode 100644 index 000000000..6799031c7 --- /dev/null +++ b/greensock/greensock.d.ts @@ -0,0 +1,318 @@ +//GreenSock Animation Platform (GSAP) - http://www.greensock.com/get-started-js/ +//JavaScript Docs http://api.greensock.com/js/ + +//com.greensock.core +interface Animation { + data:any; + ticker:any; + timeline:SimpleTimeline; + vars:Object; + + Animation(duration:number, vars?:Object); + delay(value:number):any; + duration(value:number):any; + eventCallback(type:string, callback?:Function, params?:any[], scope?:any):any; + invalidate():any; + kill(vars?:Object, target?:Object):any; + pause(atTime?:any, suppressEvents?:bool):any; + paused(value?:bool):any; + play(from?:any, suppressEvents?:bool):any; + restart(includeDelay?:bool, suppressEvents?:bool):any; + resume(from?:any, suppressEvents?:bool):any; + reverse(from?:any, suppressEvents?:bool):any; + reversed(value?:bool):any; + seek(time:any, suppressEvents?:bool):any; + startTime(value:number):any; + time(value:number, suppressEvents?:bool):any; + timeScale(value:number):any; + totalDuration(value:number):any; + totalTime(time:number, suppressEvents?:bool):any; +} + +interface SimpleTimeline extends Animation { + autoRemoveChildren:bool; + smoothChildTiming:bool; + + insert(tween:any, time:any):any; + render(time:number, suppressEvents?:bool, force?:bool):void; +} + +//com.greensock +interface TimelineLite { + addLabel(label:string, time:number):any; + append(value:any, offset:number):any; + appendMultiple(tweens:any[], offset:number, align:string, stagger:number):any; + call(callback:Function, params?:any[], scope?:any, offset?:number, baseTimeOrLabel?:any):any; + clear(labels?:bool):any; + duration(value:number):any; + exportRoot(vars?:Object, omitDelayedCalls?:bool):TimelineLite; + from(target:Object, duration:number, vars:Object, offset:number, baseTimeOrLabel?:any):any; + fromTo(target:Object, duration:number, fromVars:Object, toVars:Object, offset:number, baseTimeOrLabel?:any):any; + getChildren(nested?:bool, tweens?:bool, timelines?:bool, ignoreBeforeTime?:number):any[]; + getLabelTime(label:string):number; + getTweensOf(target:Object, nested?:bool):any[]; + insert(value:any, timeOrLabel:any):any; + insertMultiple(tweens:any[], timeOrLabel:any, align:string, stagger:number):any; + invalidate():any; + progress(value:number):any; + remove(value:any):any; + removeLabel(label:string):any; + seek(timeOrLabel:any, suppressEvents?:bool):any; + set(target:Object, vars:Object, offset:number, baseTimeOrLabel?:any):any; + shiftChildren(amount:number, adjustLabels?:bool, ignoreBeforeTime?:number):any; + staggerFrom(targets:Object[], duration:number, vars:Object, stagger:number, offset:number, baseTimeOrLabel?:any, onCompleteAll?:Function, onCompleteAllParams?:any[], onCompleteAllScope?:any):any; + staggerFromTo(targets:Object[], duration:number, fromVars:Object, toVars:Object, stagger:number, offset:number, baseTimeOrLabel?:any, onCompleteAll?:Function, onCompleteAllParams?:any[], onCompleteAllScope?:any):any; + staggerTo(targets:Object[], duration:number, vars:Object, stagger:number, offset:number, baseTimeOrLabel?:any, onCompleteAll?:Function, onCompleteAllParams?:any[], onCompleteAllScope?:any):any; + stop():any; + to(target:Object, duration:number, vars:Object, offset:number, baseTimeOrLabel?:any):any; + totalDuration(value:number):any; + usesFrames():bool; +} + +interface TimelineMax { + addCallback(callback:Function, timeOrLabel:any, params?:any[], scope?:any):TimelineMax; + currentLabel(value?:string):any; + getActive(nested?:bool, tweens?:bool, timelines?:bool):any[]; + getLabelAfter(time:number):string; + getLabelBefore(time:number):string; + getLabelsArray():any[]; + invalidate():any; + progress(value:number):any; + removeCallback(callback:Function, timeOrLabel?:any):TimelineMax; + repeat(value:number):any; + repeatDelay(value:number):any; + time(value:number, suppressEvents?:bool):any; + totalDuration(value:number):any; + totalProgress(value:number):any; + tweenFromTo(fromTimeOrLabel:any, toTimeOrLabel:any, vars?:Object):TweenLite; + tweenTo(timeOrLabel:any, vars?:Object):TweenLite; + yoyo(value?:bool):any; +} + +interface TweenLite extends Animation { + defaultEase:Ease; + defaultOverwrite:string; + target:Object; + ticker:any; + + delayedCall(delay:number, callback:Function, params?:any[], scope?:any, useFrames?:bool):TweenLite; + from(target:Object, duration:number, vars:Object):TweenLite; + fromTo(target:Object, duration:number, fromVars:Object, toVars:Object):TweenLite; + getTweensOf(target:Object):any[]; + invalidate():any; + killDelayedCallsTo(func:Function):void; + killTweensOf(target:Object, vars?:Object):void; + set(target:Object, vars:Object):TweenLite; + to(target:Object, duration:number, vars:Object):TweenLite; +} + +interface TweenMax extends TweenLite { + delayedCall(delay:number, callback:Function, params?:any[], scope?:any, useFrames?:bool):TweenMax; + from(target:Object, duration:number, vars:Object):TweenMax; + fromTo(target:Object, duration:number, fromVars:Object, toVars:Object):TweenMax; + getAllTweens(includeTimelines?:bool):any[]; + getTweensOf(target:Object):any[]; + invalidate():any; + isTweening(target:Object):bool; + killAll(complete?:bool, tweens?:bool, delayedCalls?:bool, timelines?:bool):void; + killChildTweensOf(parent:any, complete?:bool):void; + killDelayedCallsTo(func:Function):void; + killTweensOf(target:Object, vars?:Object):void; + pauseAll(tweens?:bool, delayedCalls?:bool, timelines?:bool):void; + progress(value:number):any; + repeat(value:number):any; + repeatDelay(value:number):any; + resumeAll(tweens?:bool, delayedCalls?:bool, timelines?:bool):void; + set(target:Object, vars:Object):TweenMax; + staggerFrom(targets:Object[], duration:number, vars:Object, stagger:number, onCompleteAll?:Function, onCompleteAllParams?:any[], onCompleteAllScope?:any):any[]; + staggerFromTo(targets:Object[], duration:number, fromVars:Object, toVars:Object, stagger:number, onCompleteAll?:Function, onCompleteAllParams?:any[], onCompleteAllScope?:any):any[]; + staggerTo(targets:Object[], duration:number, vars:Object, stagger:number, onCompleteAll?:Function, onCompleteAllParams?:any[], onCompleteAllScope?:any):any[]; + time(value:number, suppressEvents?:bool):any; + to(target:Object, duration:number, vars:Object):TweenMax; + totalDuration(value:number):any; + totalProgress(value:number):any; + updateTo(vars:Object, resetDuration?:bool):any; + yoyo(value?:bool):any; +} + +//com.greensock.easing +interface Back { + easeIn; + easeInOut; + easeOut; +} +interface Bounce { + easeIn; + easeInOut; + easeOut; +} +interface Circ { + easeIn; + easeInOut; + easeOut; +} +interface Cubic { + easeIn:Ease; + easeInOut:Ease; + easeOut:Ease; +} +interface Ease { + getRatio(p:number):number; +} +interface EaseLookup { + find(name:string):Ease; +} +interface Elastic { + easeIn; + easeInOut; + easeOut; +} +interface Expo { + easeIn; + easeInOut; + easeOut; +} +interface Linear { + ease:Linear; + easeIn:Linear; + easeInOut:Linear; + easeNone:Linear; + easeOut:Linear; +} +interface Power0 { + easeIn:Ease; + easeInOut:Ease; + easeOut:Ease; +} +interface Power1 { + easeIn:Ease; + easeInOut:Ease; + easeOut:Ease; +} +interface Power2 { + easeIn:Ease; + easeInOut:Ease; + easeOut:Ease; +} +interface Power3 { + easeIn:Ease; + easeInOut:Ease; + easeOut:Ease; +} +interface Power4 { + easeIn:Ease; + easeInOut:Ease; + easeOut:Ease; +} +interface Quad { + easeIn:Ease; + easeInOut:Ease; + easeOut:Ease; +} +interface Quart { + easeIn:Ease; + easeInOut:Ease; + easeOut:Ease; +} +interface Quint { + easeIn:Ease; + easeInOut:Ease; + easeOut:Ease; +} +interface Sine { + easeIn; + easeInOut; + easeOut; +} +interface SlowMo { + ease:SlowMo; + + SlowMo(linearRatio:number, power:number, yoyoMode:bool); + config(linearRatio:number, power:number, yoyoMode:bool):SlowMo; + getRatio(p:number):number; +} +interface SteppedEase { + config(steps:number):SteppedEase; + getRatio(p:number):number; +} +interface Strong { + easeIn:Ease; + easeInOut:Ease; + easeOut:Ease; +} + +//com.greensock.plugins +interface BezierPlugin extends TweenPlugin { + bezierThrough(values:any[], curviness?:number, quadratic?:bool, correlate?:string, prepend?:Object, calcDifs?:bool):Object; + cubicToQuadratic(a:number, b:number, c:number, d:number):any[]; + quadraticToCubic(a:number, b:number, c:number):Object; +} +interface ColorPropsPlugin extends TweenPlugin { + +} +interface CSSPlugin extends TweenPlugin { + +} +interface CSSRulePlugin extends TweenPlugin { + getRule(selector:string):Object; +} +interface EaselPlugin extends TweenPlugin { + +} +interface RaphaelPlugin extends TweenPlugin { + +} +interface RoundPropsPlugin extends TweenPlugin { + +} +interface ScrollToPlugin extends TweenPlugin { + +} +interface TweenPlugin { + activate(plugins:any[]):bool; +} + + +//com.greensock.core +declare var Animation:Animation; +declare var SimpleTimeline:SimpleTimeline; + +//com.greensock +declare var TimelineLite:TimelineLite; +declare var TimelineMax:TimelineMax; +declare var TweenLite:TweenLite; +declare var TweenMax:TweenMax; + +//com.greensock.easing +declare var Back:Back; +declare var Bounce:Bounce; +declare var Circ:Circ; +declare var Cubic:Cubic; +declare var Ease:Ease; +declare var EaseLookup:EaseLookup; +declare var Elastic:Elastic; +declare var Expo:Expo; +declare var Linear:Linear; +declare var Power0:Power0; +declare var Power1:Power1; +declare var Power2:Power2; +declare var Power3:Power3; +declare var Power4:Power4; +declare var Quad:Quad; +declare var Quart:Quart; +declare var Quint:Quint; +declare var Sine:Sine; +declare var SlowMo:SlowMo; +declare var SteppedEase:SteppedEase; +declare var Strong:Strong; + +//com.greensock.plugins +declare var BezierPlugin:BezierPlugin; +declare var ColorPropsPlugin:ColorPropsPlugin; +declare var CSSPlugin:CSSPlugin; +declare var CSSRulePlugin:CSSRulePlugin; +declare var EaselPlugin:EaselPlugin; +declare var RaphaelPlugin:RaphaelPlugin; +declare var RoundPropsPlugin:RoundPropsPlugin; +declare var ScrollToPlugin:ScrollToPlugin; +declare var TweenPlugin:TweenPlugin; \ No newline at end of file From 351ab5a99370d7893274bca411b40f704ef9f130 Mon Sep 17 00:00:00 2001 From: "Robert S." Date: Tue, 4 Dec 2012 00:21:45 -0600 Subject: [PATCH 13/44] Add GreenSock Definition --- greensock/greensock.d.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/greensock/greensock.d.ts b/greensock/greensock.d.ts index 6799031c7..df8958be4 100644 --- a/greensock/greensock.d.ts +++ b/greensock/greensock.d.ts @@ -1,5 +1,6 @@ -//GreenSock Animation Platform (GSAP) - http://www.greensock.com/get-started-js/ -//JavaScript Docs http://api.greensock.com/js/ +// GreenSock Animation Platform (GSAP) - http://www.greensock.com/get-started-js/ +// JavaScript Docs http://api.greensock.com/js/ +// Version 1.0 //com.greensock.core interface Animation { From 2c11ca9d4651efd621a05aff06c15be76151acff Mon Sep 17 00:00:00 2001 From: Matt Burland Date: Tue, 4 Dec 2012 10:45:32 -0500 Subject: [PATCH 14/44] Adding flot definitions --- flot/jquery.flot.d.ts | 215 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 215 insertions(+) create mode 100644 flot/jquery.flot.d.ts diff --git a/flot/jquery.flot.d.ts b/flot/jquery.flot.d.ts new file mode 100644 index 000000000..8695d52ed --- /dev/null +++ b/flot/jquery.flot.d.ts @@ -0,0 +1,215 @@ +/// + +module jquery.flot { + interface plotOptions { + colors?: any[]; + series?: seriesOptions; + legend?: legendOptions; + xaxis?: axisOptions; + yaxis?: axisOptions; + xaxes?: axisOptions[]; + yaxes?: axisOptions[]; + grid?: gridOptions; + interfaction?: interaction; + hooks?: hooks; + } + + interface hooks { + processOptions: { (plot: plot, options: plotOptions): void; } []; + processRawData: { (plot: plot, series: dataSeries, data: any[], datapoints: datapoints): void; }[]; + processDatapoints: { (plot: plot, series: dataSeries, datapoints: datapoints): void; }[]; + processOffset: { (plot: plot, offset: canvasPoint): void; }[]; + drawBackground: { (plot: plot, context: CanvasRenderingContext2D): void; }[]; + drawSeries: { (plot: plot, context: CanvasRenderingContext2D, series: dataSeries): void; }[]; + draw: { (plot: plot, context: CanvasRenderingContext2D): void; }[]; + bindEvents: { (plot: plot, eventHolder: JQuery): void; }[]; + drawOverlay: { (plot: plot, context: CanvasRenderingContext2D): void; }[]; + shutdown: { (plot: plot, eventHolder: JQuery): void; }[]; + } + + interface interaction { + redrawOverlayInterval?: number; + } + + interface gridOptions { + show?: bool; + aboveData?: bool; + color?: any; // color + backgroundColor?: any; //color/gradient or null + margin?: any; // number or margin object + labelMargin?: number; + axisMargin?: number; + markings?: any; //array of markings or (fn: axes -> array of markings) + borderWidth: number; + borderColor?: any; // color or null + minBorderMargin?: number; // or null + clickable?: bool; + hoverable?: bool; + autoHighlight?: bool; + mouseActiveRadius?: number; + tickColor?: any; + markingsColor?: any; + markingsLineWidth?: number; + } + + interface legendOptions { + show?: bool; + labelFormatter?: (label: string, series: any) => string; // null or (fn: string, series object -> string) + labelBoxBorderColor?: any; //color + noColumns?: number; + position?: string; //"ne" or "nw" or "se" or "sw" + margin?: any; //number of pixels or [x margin, y margin] + backgroundColor?: any; //null or color + backgroundOpacity?: number; // between 0 and 1 + container?: JQuery; // null or jQuery object/DOM element/jQuery expression + sorted?: any; //null/false, true, "ascending", "descending" or a comparator + } + + interface seriesOptions { + color?: number; + label?: string; + lines?: linesOptions; + bars?: barsOptions; + points?: pointsOptions; + xaxis?: number; + yaxis?: number; + clickable?: bool; + hoverable?: bool; + shadowSize?: number; + highlightColor?: any; + } + + interface dataSeries extends seriesOptions { + data: any[]; + } + + interface axisOptions { + show?: bool; // null or true/false + position?: string; // "bottom" or "top" or "left" or "right" + + color?: any; // null or color spec + tickColor?: any; // null or color spec + font?: any; // null or font spec object + + min?: number; + max?: number; + autoscaleMargin?: number; + + transform?: (v: number) => number; // null or fn: number -> number + inverseTransform?: (v: number) => number; // null or fn: number -> number + + ticks?: any; // null or number or ticks array or (fn: axis -> ticks array) + tickSize?: any; // number or array + minTickSize?: any; // number or array + tickFormatter?: (t: number) => string; // (fn: number, object -> string) or string + tickDecimals?: number; + + labelWidth?: number; + labelHeight?: number; + reserveSpace?: bool; + + tickLength?: number; + + alignTicksWithAxis?: number; + } + + interface seriesTypeBase { + show?: bool; + lineWidth?: number; + fill?: any; //boolean or number + fillColor?: any; //null or color/gradient + } + + interface linesOptions extends seriesTypeBase { + steps?: bool; + } + + interface barsOptions extends seriesTypeBase { + barWidth?: number; + align?: string; + horizontal?: bool; + } + + interface pointsOptions extends seriesTypeBase { + radius?: number; + symbol?: any; + } + + interface gradient { + colors: any[]; + } + + interface item { + datapoint: number[]; // the point, e.g. [0, 2] + dataIndex: number; // the index of the point in the data array + series: dataSeries; //the series object + seriesIndex: number; //the index of the series + pageX: number; + pageY: number; //the global screen coordinates of the point + } + + interface datapoints { + points: number[]; + pointsize: number; + format: datapointFormat[]; + } + + interface datapointFormat { + x?: bool; + y?: bool; + number: bool; + required: bool; + defaultValue?: number; + } + + interface point { + x: number; + y: number; + } + + interface canvasPoint { + top: number; + left: number; + bottom?: number; + right?: number; + } + + interface axes { + xaxis: axis; + yaxis: axis; + x2axis?: axis; + y2axis?: axis; + } + + interface axis extends axisOptions { + p2c(point):canvasPoint; + c2p(canvasPoint):point; + } + + interface plot { + highlight(series: dataSeries, datapoint: item); + unhightlight(); + unhighlight(series: dataSeries, datapoint: item); + setData(data: any); + setupGrid(); + draw(); + triggerRedrawOverlay(); + width(); + height(); + offset(); + pointOffset(point: point); + resize(); + shutdown(); + getData(): dataSeries[]; + getAxes(): axes; + getPlaceholder(): JQuery; + getCanvas(): HTMLCanvasElement; + getPlotOffset(): canvasPoint; + getOptions(): plotOptions; + } +} + +interface JQueryStatic { + plot(placeholder: JQuery, data: jquery.flot.dataSeries[], options?: jquery.flot.plotOptions): jquery.flot.plot; + plot(placeholder: JQuery, data: any[], options?: jquery.flot.plotOptions): jquery.flot.plot; +} From 1731696e416fa3ad55ef2381412f9b0801bbf2cc Mon Sep 17 00:00:00 2001 From: Dan Ludwig Date: Wed, 5 Dec 2012 16:35:55 -0500 Subject: [PATCH 15/44] Remove trailing whitespace in jquery/jquery-1.8.d.ts. --- jquery/jquery-1.8.d.ts | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/jquery/jquery-1.8.d.ts b/jquery/jquery-1.8.d.ts index 3088962eb..00a316d1c 100644 --- a/jquery/jquery-1.8.d.ts +++ b/jquery/jquery-1.8.d.ts @@ -1,14 +1,14 @@ /* ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. +Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - +License at http://www.apache.org/licenses/LICENSE-2.0 + THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ @@ -16,7 +16,7 @@ and limitations under the License. // Typing for the jQuery library, version 1.7.x /* - Interface for the AJAX setting that will configure the AJAX request + Interface for the AJAX setting that will configure the AJAX request */ interface JQueryAjaxSettings { accepts?: any; @@ -252,7 +252,7 @@ interface JQueryStatic { INTERNALS **********/ error(message: any); - + /************* MISCELLANEOUS **************/ @@ -293,7 +293,7 @@ interface JQueryStatic { makeArray(obj: any): any[]; map(array: any[], callback: (elementOfArray: any, indexInArray: any) =>any): JQuery; - + merge(first: any[], second: any[]): any[]; noop(): any; @@ -376,7 +376,7 @@ interface JQuery { ****/ css(propertyName: string, value?: any): any; css(propertyName: any, value?: any): any; - + height(): number; height(value: number): JQuery; height(value: string): JQuery; @@ -583,7 +583,7 @@ interface JQuery { /********* INTERNALS **********/ - + context: Element; jquery: string; @@ -626,11 +626,11 @@ interface JQuery { replaceAll(target: any): JQuery; replaceWith(func: any): JQuery; - + text(): string; text(textString: any): JQuery; text(textString: (index: number, text: string) => string): JQuery; - + toArray(): any[]; unwrap(): JQuery; @@ -647,9 +647,9 @@ interface JQuery { MISCELLANEOUS **************/ each(func: (index: any, elem: Element) => any); - + get(index?: number): any; - + index(): number; index(selector: string): number; index(element: any): number; @@ -709,7 +709,7 @@ interface JQuery { map(callback: (index: any, domElement: Element) =>any): JQuery; next(selector?: string): JQuery; - + nextAll(selector?: string): JQuery; nextUntil(selector?: string, filter?: string): JQuery; @@ -743,7 +743,7 @@ interface JQuery { /********* UTILITIES **********/ - + queue(queueName?: string): any[]; queue(queueName: string, newQueueOrCallback: any): JQuery; queue(newQueueOrCallback: any): JQuery; From e4bd0e59e077b9fc4464399164a84bc266805926 Mon Sep 17 00:00:00 2001 From: Dan Ludwig Date: Thu, 6 Dec 2012 10:49:28 -0500 Subject: [PATCH 16/44] Overload jQuery val() function to accept argument of type number. Otherwise, it is necessary to call .toString() on the number when passing. --- jquery/jquery-1.8.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/jquery/jquery-1.8.d.ts b/jquery/jquery-1.8.d.ts index 00a316d1c..63ab3cb09 100644 --- a/jquery/jquery-1.8.d.ts +++ b/jquery/jquery-1.8.d.ts @@ -369,6 +369,7 @@ interface JQuery { val(): any; val(value: string[]): JQuery; val(value: string): JQuery; + val(value: number): JQuery; val(func: (index: any, value: any) => any): JQuery; /*** From fb13c206f2782e735edfc0380ce35c17e3339b3f Mon Sep 17 00:00:00 2001 From: Daz Wilkin Date: Thu, 6 Dec 2012 13:01:12 -0800 Subject: [PATCH 17/44] YouTube API First attempt at creating a TypeScript definition file. This is only a partial implementation. Unsure about the use of the module to scope the interfaces. --- youtube/youtube.d.ts | 112 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 youtube/youtube.d.ts diff --git a/youtube/youtube.d.ts b/youtube/youtube.d.ts new file mode 100644 index 000000000..34bb04589 --- /dev/null +++ b/youtube/youtube.d.ts @@ -0,0 +1,112 @@ +// Type definitions for YouTube [No version numbering] +// Project: https://developers.google.com/youtube/ +// Definitions by: Daz Wilkin +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// I'm a TypeScript noob so please be gentle! + +module Google.YT { + interface Event { + (event: any): void; + } + interface Events { + onReady?: Event; + onPlayback?: Event; + onStateChange?: Event; + } + interface PlayerVars { + autohide?: number; + autoplay?: number; + cc_load_policy?: any; + color?: any; + playerpiid?: string; + showinfo?: number; + theme?: any; + } + interface PlayerOptions { + width: number; + height: number; + videoId: string; + playerVars: PlayerVars; + events: Events; + } + interface LoadVideoByTestId { + videoId: string; + startSeconds: number; + endSeconds: number; + suggestedQuality: string; + } + interface Player { + // Constructor + new (string, playerOptions:PlayerOptions): any; + + // Queueing functions + //loadVideoById:(videoId: string, startSeconds: number, suggestedQuality: string)=> void; + loadVideoById:(LoadVideoByTestId)=> void; + + // Properties + size; + + // Playing + playVideo: () =>void; + pauseVideo: () =>void; + stopVideo: () =>void; + seekTo: (seconds:number, allowSeekAhead:bool) =>void; + clearVideo: () =>void; + + // Playlist + nextVideo: () =>void; + previousVideo: () =>void; + playVideoAt:(index: number) =>void; + + // Volume + mute: () =>void; + unMute: () =>void; + isMuted: () =>bool; + setVolume: (volume: number) =>void; + getVolume: () =>number; + + // Sizing + setSize: (width: number, height: number) =>any; + + // Playback + getPlaybackRate: () =>number; + setPlaybackRate: (suggestedRate:number) =>void; + getAvailablePlaybackRates(): number[]; + + // Behavior + setLoop: (loopPlaylists: bool) =>void; + setShuffle: (shufflePlaylist: bool) =>void; + + // Status + getVideoLoadedFraction: () =>number; + getPlayerState: () =>number; + getCurrentTime:()=> number; + getVideoStartBytes:()=>number; + getVideoBytesLoaded: () =>number; + getVideoBytesTotal: () =>number; + + // Information + getDuration: () =>number; + getVideoUrl: () =>string; + getVideoEmbedCode: () =>string; + + // Playlist + getPlaylist: () =>any[]; + getPlaylistIndex:()=>number; + + // Event Listener + addEventListener: (event: string, listener: string) =>void; + + } +} +interface YT { + Player: Google.YT.Player; + PlayerState: { + BUFFERING: number; + CUED: number; + ENDED: number; + PAUSED: number; + PLAYING: number; + }; +} From 402d45818ceac33e46779eed062ecee269a717a9 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Fri, 7 Dec 2012 15:20:16 +0200 Subject: [PATCH 18/44] Rename and update version information for socket.io --- README.md | 132 +++++++++--------- marked/{marked-0.2.6.d.ts => marked-0.2.d.ts} | 0 socket.io/socket.io-0.9.10.d.ts | 120 ++++++++-------- socket.io/socket.io-0.9.d.ts | 57 ++++++++ 4 files changed, 187 insertions(+), 122 deletions(-) rename marked/{marked-0.2.6.d.ts => marked-0.2.d.ts} (100%) create mode 100644 socket.io/socket.io-0.9.d.ts diff --git a/README.md b/README.md index a5ed00475..2fda0ca5d 100644 --- a/README.md +++ b/README.md @@ -1,66 +1,68 @@ -DefinitelyTyped -=============== - -TypeScript type definitions repository for popular JavaScript libraries. - -The project aims to provide *high quality* definitions for the most popular libraries out there. - -Complete --------- -* [AngularJS](http://angularjs.org) (by [Diego Vilar](https://github.com/diegovilar)) ([wiki](https://github.com/borisyankov/DefinitelyTyped/wiki/AngularJS-Definitions-Usage-Notes)) -* [async](https://github.com/caolan/async) (by [Boris Yankov](https://github.com/borisyankov)) -* [Backbone.js](http://backbonejs.org/) (by [Boris Yankov](https://github.com/borisyankov)) -* [Bootstrap](http://twitter.github.com/bootstrap/) (by [Boris Yankov](https://github.com/borisyankov)) -* [bootstrap.datepicker](https://github.com/eternicode/bootstrap-datepicker) (by [Boris Yankov](https://github.com/borisyankov)) -* [Breeze](http://www.breezejs.com/) (by [Boris Yankov](https://github.com/borisyankov)) -* [CodeMirror](http://codemirror.net) (by [François de Campredon](https://github.com/fdecampredon)) -* [Chosen](http://harvesthq.github.com/chosen/) (by [Boris Yankov](https://github.com/borisyankov)) -* [dynatree](http://code.google.com/p/dynatree/) (by [François de Campredon](https://github.com/fdecampredon)) -* [d3.js](http://d3js.org/) (from TypeScript samples) -* [EaselJS](http://www.createjs.com/#!/EaselJS) (by [Pedro Ferreira](https://bitbucket.org/drk4)) -* [ember.js](http://emberjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) -* [Express](http://expressjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) -* [Fancybox](http://fancybox.net/) (by [Boris Yankov](https://github.com/borisyankov)) -* [Foundation](http://foundation.zurb.com/) (by [Boris Yankov](https://github.com/borisyankov)) -* [GoogleMaps](https://developers.google.com/maps/) (by [Esben Nepper](https://github.com/eNepper)) -* [Handlebars](http://handlebarsjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) -* [Highcharts](http://www.highcharts.com/) (by [damianog](https://github.com/damianog)) -* [History.js](https://github.com/balupton/History.js/) (by [Boris Yankov](https://github.com/borisyankov)) -* [Humane.js](http://wavded.github.com/humane-js/) (by [John Vrbanac](https://github.com/jmvrbanac)) -* [Impress.js](https://github.com/bartaz/impress.js) (by [Boris Yankov](https://github.com/borisyankov)) -* [Jasmine](http://pivotal.github.com/jasmine/) (by [Boris Yankov](https://github.com/borisyankov)) -* [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.BBQ](http://benalman.com/projects/jquery-bbq-plugin/) (by [Adam R. Smith](https://github.com/sunetos)) -* [jQuery.Cookie](https://github.com/carhartl/jquery-cookie) (by [Roy Goode](https://github.com/RoyGoode)) -* [jQuery.Globalize](https://github.com/jquery/globalize) (by [Boris Yankov](https://github.com/borisyankov)) -* [jQuery.Validation](http://bassistance.de/jquery-plugins/jquery-plugin-validation/) (by [Boris Yankov](https://github.com/borisyankov)) -* [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.Mapping](https://github.com/SteveSanderson/knockout.mapping) (by [Boris Yankov](https://github.com/borisyankov)) -* [linq.js](http://linqjs.codeplex.com/) (by [Marcin Najder](https://github.com/marcinnajder)) -* [Modernizr](http://modernizr.com/) (by [Boris Yankov](https://github.com/borisyankov)) -* [Moment.js](https://github.com/timrwood/moment) (by [Michael Lakerveld](https://github.com/Lakerfield)) -* [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-sqlserver](https://github.com/WindowsAzure/node-sqlserver) (by [Boris Yankov](https://github.com/borisyankov)) -* [PhoneGap](http://phonegap.com) (by [Boris Yankov](https://github.com/borisyankov)) -* [PreloadJS](http://www.createjs.com/#!/PreloadJS) (by [Pedro Ferreira](https://bitbucket.org/drk4)) -* [QUnit](http://qunitjs.com/) (by [Diullei Gomes](https://github.com/Diullei)) -* [Raphael](http://raphaeljs.com/) (by [CheCoxshall](https://github.com/CheCoxshall)) -* [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)) -* [SignalR](http://www.asp.net/signalr) (by [Boris Yankov](https://github.com/borisyankov)) -* [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)) -* [Sugar](http://sugarjs.com/) (by [Josh Baldwin](https://github.com/jbaldwin/)) -* [Teechart](http://www.steema.com) (by [Steema](http://www.steema.com)) -* [Toastr](https://github.com/CodeSeven/toastr) (by [Boris Yankov](https://github.com/borisyankov)) -* [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)) -* [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)) +DefinitelyTyped +=============== + +TypeScript type definitions repository for popular JavaScript libraries. + +The project aims to provide *high quality* definitions for the most popular libraries out there. + +Complete +-------- +* [AngularJS](http://angularjs.org) (by [Diego Vilar](https://github.com/diegovilar)) ([wiki](https://github.com/borisyankov/DefinitelyTyped/wiki/AngularJS-Definitions-Usage-Notes)) +* [async](https://github.com/caolan/async) (by [Boris Yankov](https://github.com/borisyankov)) +* [Backbone.js](http://backbonejs.org/) (by [Boris Yankov](https://github.com/borisyankov)) +* [Bootstrap](http://twitter.github.com/bootstrap/) (by [Boris Yankov](https://github.com/borisyankov)) +* [bootstrap.datepicker](https://github.com/eternicode/bootstrap-datepicker) (by [Boris Yankov](https://github.com/borisyankov)) +* [Breeze](http://www.breezejs.com/) (by [Boris Yankov](https://github.com/borisyankov)) +* [CodeMirror](http://codemirror.net) (by [François de Campredon](https://github.com/fdecampredon)) +* [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)) +* [dynatree](http://code.google.com/p/dynatree/) (by [François de Campredon](https://github.com/fdecampredon)) +* [d3.js](http://d3js.org/) (from TypeScript samples) +* [EaselJS](http://www.createjs.com/#!/EaselJS) (by [Pedro Ferreira](https://bitbucket.org/drk4)) +* [ember.js](http://emberjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) +* [Express](http://expressjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) +* [Fancybox](http://fancybox.net/) (by [Boris Yankov](https://github.com/borisyankov)) +* [Foundation](http://foundation.zurb.com/) (by [Boris Yankov](https://github.com/borisyankov)) +* [GoogleMaps](https://developers.google.com/maps/) (by [Esben Nepper](https://github.com/eNepper)) +* [Handlebars](http://handlebarsjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) +* [Highcharts](http://www.highcharts.com/) (by [damianog](https://github.com/damianog)) +* [History.js](https://github.com/balupton/History.js/) (by [Boris Yankov](https://github.com/borisyankov)) +* [Humane.js](http://wavded.github.com/humane-js/) (by [John Vrbanac](https://github.com/jmvrbanac)) +* [Impress.js](https://github.com/bartaz/impress.js) (by [Boris Yankov](https://github.com/borisyankov)) +* [Jasmine](http://pivotal.github.com/jasmine/) (by [Boris Yankov](https://github.com/borisyankov)) +* [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.BBQ](http://benalman.com/projects/jquery-bbq-plugin/) (by [Adam R. Smith](https://github.com/sunetos)) +* [jQuery.Cookie](https://github.com/carhartl/jquery-cookie) (by [Roy Goode](https://github.com/RoyGoode)) +* [jQuery.Globalize](https://github.com/jquery/globalize) (by [Boris Yankov](https://github.com/borisyankov)) +* [jQuery.Validation](http://bassistance.de/jquery-plugins/jquery-plugin-validation/) (by [Boris Yankov](https://github.com/borisyankov)) +* [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.Mapping](https://github.com/SteveSanderson/knockout.mapping) (by [Boris Yankov](https://github.com/borisyankov)) +* [linq.js](http://linqjs.codeplex.com/) (by [Marcin Najder](https://github.com/marcinnajder)) +* [Modernizr](http://modernizr.com/) (by [Boris Yankov](https://github.com/borisyankov)) +* [Moment.js](https://github.com/timrwood/moment) (by [Michael Lakerveld](https://github.com/Lakerfield)) +* [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-sqlserver](https://github.com/WindowsAzure/node-sqlserver) (by [Boris Yankov](https://github.com/borisyankov)) +* [PhoneGap](http://phonegap.com) (by [Boris Yankov](https://github.com/borisyankov)) +* [PreloadJS](http://www.createjs.com/#!/PreloadJS) (by [Pedro Ferreira](https://bitbucket.org/drk4)) +* [QUnit](http://qunitjs.com/) (by [Diullei Gomes](https://github.com/Diullei)) +* [Raphael](http://raphaeljs.com/) (by [CheCoxshall](https://github.com/CheCoxshall)) +* [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)) +* [SignalR](http://www.asp.net/signalr) (by [Boris Yankov](https://github.com/borisyankov)) +* [socket.io](http://socket.io) (by [William Orr](https://github.com/worr)) +* [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)) +* [Sugar](http://sugarjs.com/) (by [Josh Baldwin](https://github.com/jbaldwin/)) +* [Teechart](http://www.steema.com) (by [Steema](http://www.steema.com)) +* [Toastr](https://github.com/CodeSeven/toastr) (by [Boris Yankov](https://github.com/borisyankov)) +* [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)) +* [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/)) \ No newline at end of file diff --git a/marked/marked-0.2.6.d.ts b/marked/marked-0.2.d.ts similarity index 100% rename from marked/marked-0.2.6.d.ts rename to marked/marked-0.2.d.ts diff --git a/socket.io/socket.io-0.9.10.d.ts b/socket.io/socket.io-0.9.10.d.ts index cf8a18d60..06a969d40 100644 --- a/socket.io/socket.io-0.9.10.d.ts +++ b/socket.io/socket.io-0.9.10.d.ts @@ -1,57 +1,63 @@ -/// - -declare module "socket.io" { - import http = module('http'); - - export function listen(server: http.Server, options: any, fn: Function): SocketManager; - export function listen(server: http.Server, fn?: Function): SocketManager; - export function listen(port: Number): SocketManager; -} - -interface Socket { - json:any; - log: any; - volatile: any; - broadcast: any; - in(room: string): Socket; - to(room: string): Socket; - join(name: string, fn: Function): Socket; - unjoin(name: string, fn: Function): Socket; - set(key: string, value: any, fn: Function): Socket; - get(key: string, value: any, fn: Function): Socket; - has(key: string, fn: Function): Socket; - del(key: string, fn: Function): Socket; - disconnect(): Socket; - send(data: any, fn: Function): Socket; - emit(ev: any): Socket; -} - -interface SocketNamespace { - clients(room: string): Socket[]; - log: any; - store: any; - json: any; - volatile: any; - in(room: string): SocketNamespace; - on(evt: string, fn: Function): SocketNamespace; - to(room: string): SocketNamespace; - except(id: any): SocketNamespace; - send(data: any): any; - emit(data: any): any; - socket(sid: any, readable: bool): Socket; - authorization(fn: Function); -} - -interface SocketManager { - get(key: any): any; - set(key: any, value: any): SocketManager; - enable(key: any): SocketManager; - disable(key: any): SocketManager; - enabled(key: any): bool; - disabled(key: any): bool; - configure(env: string, fn: Function): SocketManager; - configure(fn: Function): SocketManager; - of(nsp: string): SocketNamespace; - on(ns: string, fn: Function): SocketManager; - sockets: SocketNamespace; -} +// Type definitions for Chrome extension development. +// Project: http://developer.chrome.com/extensions/ +// Definitions by: William Orr +// Definitions: https://github.com/borisyankov/DefinitelyTyped + + +/// + +declare module "socket.io" { + import http = module('http'); + + export function listen(server: http.Server, options: any, fn: Function): SocketManager; + export function listen(server: http.Server, fn?: Function): SocketManager; + export function listen(port: Number): SocketManager; +} + +interface Socket { + json:any; + log: any; + volatile: any; + broadcast: any; + in(room: string): Socket; + to(room: string): Socket; + join(name: string, fn: Function): Socket; + unjoin(name: string, fn: Function): Socket; + set(key: string, value: any, fn: Function): Socket; + get(key: string, value: any, fn: Function): Socket; + has(key: string, fn: Function): Socket; + del(key: string, fn: Function): Socket; + disconnect(): Socket; + send(data: any, fn: Function): Socket; + emit(ev: any): Socket; +} + +interface SocketNamespace { + clients(room: string): Socket[]; + log: any; + store: any; + json: any; + volatile: any; + in(room: string): SocketNamespace; + on(evt: string, fn: Function): SocketNamespace; + to(room: string): SocketNamespace; + except(id: any): SocketNamespace; + send(data: any): any; + emit(data: any): any; + socket(sid: any, readable: bool): Socket; + authorization(fn: Function); +} + +interface SocketManager { + get(key: any): any; + set(key: any, value: any): SocketManager; + enable(key: any): SocketManager; + disable(key: any): SocketManager; + enabled(key: any): bool; + disabled(key: any): bool; + configure(env: string, fn: Function): SocketManager; + configure(fn: Function): SocketManager; + of(nsp: string): SocketNamespace; + on(ns: string, fn: Function): SocketManager; + sockets: SocketNamespace; +} diff --git a/socket.io/socket.io-0.9.d.ts b/socket.io/socket.io-0.9.d.ts new file mode 100644 index 000000000..42a8b6912 --- /dev/null +++ b/socket.io/socket.io-0.9.d.ts @@ -0,0 +1,57 @@ +/// + +declare module "socket.io" { + import http = module('http'); + + export function listen(server: http.Server, options: any, fn: Function): SocketManager; + export function listen(server: http.Server, fn?: Function): SocketManager; + export function listen(port: Number): SocketManager; +} + +interface Socket { + json:any; + log: any; + volatile: any; + broadcast: any; + in(room: string): Socket; + to(room: string): Socket; + join(name: string, fn: Function): Socket; + unjoin(name: string, fn: Function): Socket; + set(key: string, value: any, fn: Function): Socket; + get(key: string, value: any, fn: Function): Socket; + has(key: string, fn: Function): Socket; + del(key: string, fn: Function): Socket; + disconnect(): Socket; + send(data: any, fn: Function): Socket; + emit(ev: any): Socket; +} + +interface SocketNamespace { + clients(room: string): Socket[]; + log: any; + store: any; + json: any; + volatile: any; + in(room: string): SocketNamespace; + on(evt: string, fn: Function): SocketNamespace; + to(room: string): SocketNamespace; + except(id: any): SocketNamespace; + send(data: any): any; + emit(data: any): any; + socket(sid: any, readable: bool): Socket; + authorization(fn: Function); +} + +interface SocketManager { + get(key: any): any; + set(key: any, value: any): SocketManager; + enable(key: any): SocketManager; + disable(key: any): SocketManager; + enabled(key: any): bool; + disabled(key: any): bool; + configure(env: string, fn: Function): SocketManager; + configure(fn: Function): SocketManager; + of(nsp: string): SocketNamespace; + on(ns: string, fn: Function): SocketManager; + sockets: SocketNamespace; +} From 5e600b6c05edf1c6f584fb92259aa7f2fb6eeb33 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 7 Dec 2012 08:27:00 -0800 Subject: [PATCH 19/44] New definitions for jquery-transit --- jquery-transit/jquery-transit-tests.ts | 93 ++++++++++++++++++++++++++ jquery-transit/jquery-transit.d.ts | 25 +++++++ 2 files changed, 118 insertions(+) create mode 100644 jquery-transit/jquery-transit-tests.ts create mode 100644 jquery-transit/jquery-transit.d.ts diff --git a/jquery-transit/jquery-transit-tests.ts b/jquery-transit/jquery-transit-tests.ts new file mode 100644 index 000000000..ea8435e81 --- /dev/null +++ b/jquery-transit/jquery-transit-tests.ts @@ -0,0 +1,93 @@ +/// +/// + + +class TransitOptions implements JQueryTransitOptions { + opacity: number; + duration: number; + delay: number; + easing: string; + complete: () => void; + scale: any; +} + +$(document).ready(function () { + test_opacity(); + test_scale(); + test_duration(); + // Wait for all tests to complete and report results + setTimeout(Assert.Results, 2000); +}); + +class Assert { + static totalTests: number = 0; + static passedTests: number = 0; + + static Results() { + console.log('Tests succeeded - ' + passedTests + '/' + totalTests + '; Tests failed - ' + (totalTests - passedTests) + '/' + totalTests); + } + + static AssertionFailed(actual: any, expected: any, test: string) { + console.log((test || '') + ' assertion failed -- expected ' + expected.toString() + '; actual ' + actual.toString()); + } + + static Equal(actual: any, expected: any, test?: string) { + totalTests++; + if (actual === expected) { + passedTests++; + return; + } + AssertionFailed(actual, expected, test); + } + + static NotEqual(actual: any, expected: any, test?: string) { + totalTests++; + if (actual !== expected) { + passedTests++; + return; + } + AssertionFailed(actual, expected, test); + } +} + +function test_signatures() { + var TestObject = $('
    '); + var options = new TransitOptions(); + options.opacity = 50; + options.duration = 250; + + TestObject.css("scale", 2); + + TestObject.transition(options); + TestObject.transition(options, 500); + TestObject.transition(options, 'in'); + TestObject.transition(options, function () { var test: bool = true; }); + TestObject.transition(options, 500, 'out'); + TestObject.transition(options, 500, 'in-out', function () { var test: bool = true; }); +} + +function test_opacity() { + var TestObject = $('
    '); + TestObject.css('opacity', 25); + Assert.Equal(TestObject.attr('style'), 'opacity: 25;', 'Opacity pre-transition test'); + TestObject.transition({ opacity: 75, duration: 1, complete: function () { Assert.Equal(TestObject.attr('style'), 'opacity: 75;', 'Opacity transition test'); } }); +} + +function test_scale() { + var TestObject = $('
    '); + TestObject.css('scale', 0.5); + Assert.Equal(TestObject.attr('style'), 'transform: scale(0.5, 0.5);', 'Scale pre-transition test'); + TestObject.transition({ scale: 2, duration: 1, complete: function () { Assert.Equal(TestObject.attr('style'), 'transform: scale(2, 2);', 'Scale transition test'); } }); + TestObject.css('scale', [0.5, 1.0]); + Assert.Equal(TestObject.attr('style'), 'transform: scale(0.5, 1);', 'Scale pre-transition test'); + TestObject.transition({ scale: [2, 3], duration: 1, complete: function () { Assert.Equal(TestObject.attr('style'), 'transform: scale(2, 3);', 'Scale transition test'); } }); +} + +function test_duration() { + var TestObject = $('
    '); + TestObject.css('opacity', 25); + Assert.Equal(TestObject.attr('style'), 'opacity: 25;', 'Duration pre-transition test'); + TestObject.transition({ opacity: 75, duration: 1000, complete: function () { Assert.Equal(TestObject.attr('style'), 'opacity: 75;', 'Duration post-transition test'); } }); + // Test the transitions state partway through and assert that we're not to our final state yet. + setTimeout(function () { Assert.NotEqual(TestObject.attr('style'), 'opacity: 75;', 'Duration intra-transition test'); }, 300); +} diff --git a/jquery-transit/jquery-transit.d.ts b/jquery-transit/jquery-transit.d.ts new file mode 100644 index 000000000..bd56e5b75 --- /dev/null +++ b/jquery-transit/jquery-transit.d.ts @@ -0,0 +1,25 @@ +// Type definitions for jQuery-transit.js + +/// + +// Transit ////////////////////////////////////////////////// + +interface JQueryTransitOptions { + opacity?: number; + duration?: number; + delay?: number; + easing?: string; + complete?: () => void; + scale?: any; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +interface JQuery { + transition(options: JQueryTransitOptions): JQuery; + transition(options: JQueryTransitOptions, duration: number): JQuery; + transition(options: JQueryTransitOptions, easing: string): JQuery; + transition(options: JQueryTransitOptions, duration: number, easing: string): JQuery; + transition(options: JQueryTransitOptions, complete: () => void): JQuery; + transition(options: JQueryTransitOptions, duration: number, easing: string, complete: () => void): JQuery; +} From 6fd085117fb6f669ff0cf34812a054f34056318f Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 7 Dec 2012 08:38:59 -0800 Subject: [PATCH 20/44] Rename to conform to new convention --- jquery.transit/jquery.transit-tests.ts | 93 ++++++++++++++++++++++++++ jquery.transit/jquery.transit.d.ts | 25 +++++++ 2 files changed, 118 insertions(+) create mode 100644 jquery.transit/jquery.transit-tests.ts create mode 100644 jquery.transit/jquery.transit.d.ts diff --git a/jquery.transit/jquery.transit-tests.ts b/jquery.transit/jquery.transit-tests.ts new file mode 100644 index 000000000..9df0397d0 --- /dev/null +++ b/jquery.transit/jquery.transit-tests.ts @@ -0,0 +1,93 @@ +/// +/// + + +class TransitOptions implements JQueryTransitOptions { + opacity: number; + duration: number; + delay: number; + easing: string; + complete: () => void; + scale: any; +} + +$(document).ready(function () { + test_opacity(); + test_scale(); + test_duration(); + // Wait for all tests to complete and report results + setTimeout(Assert.Results, 2000); +}); + +class Assert { + static totalTests: number = 0; + static passedTests: number = 0; + + static Results() { + console.log('Tests succeeded - ' + passedTests + '/' + totalTests + '; Tests failed - ' + (totalTests - passedTests) + '/' + totalTests); + } + + static AssertionFailed(actual: any, expected: any, test: string) { + console.log((test || '') + ' assertion failed -- expected ' + expected.toString() + '; actual ' + actual.toString()); + } + + static Equal(actual: any, expected: any, test?: string) { + totalTests++; + if (actual === expected) { + passedTests++; + return; + } + AssertionFailed(actual, expected, test); + } + + static NotEqual(actual: any, expected: any, test?: string) { + totalTests++; + if (actual !== expected) { + passedTests++; + return; + } + AssertionFailed(actual, expected, test); + } +} + +function test_signatures() { + var TestObject = $('
    '); + var options = new TransitOptions(); + options.opacity = 50; + options.duration = 250; + + TestObject.css("scale", 2); + + TestObject.transition(options); + TestObject.transition(options, 500); + TestObject.transition(options, 'in'); + TestObject.transition(options, function () { var test: bool = true; }); + TestObject.transition(options, 500, 'out'); + TestObject.transition(options, 500, 'in-out', function () { var test: bool = true; }); +} + +function test_opacity() { + var TestObject = $('
    '); + TestObject.css('opacity', 25); + Assert.Equal(TestObject.attr('style'), 'opacity: 25;', 'Opacity pre-transition test'); + TestObject.transition({ opacity: 75, duration: 1, complete: function () { Assert.Equal(TestObject.attr('style'), 'opacity: 75;', 'Opacity transition test'); } }); +} + +function test_scale() { + var TestObject = $('
    '); + TestObject.css('scale', 0.5); + Assert.Equal(TestObject.attr('style'), 'transform: scale(0.5, 0.5);', 'Scale pre-transition test'); + TestObject.transition({ scale: 2, duration: 1, complete: function () { Assert.Equal(TestObject.attr('style'), 'transform: scale(2, 2);', 'Scale transition test'); } }); + TestObject.css('scale', [0.5, 1.0]); + Assert.Equal(TestObject.attr('style'), 'transform: scale(0.5, 1);', 'Scale pre-transition test'); + TestObject.transition({ scale: [2, 3], duration: 1, complete: function () { Assert.Equal(TestObject.attr('style'), 'transform: scale(2, 3);', 'Scale transition test'); } }); +} + +function test_duration() { + var TestObject = $('
    '); + TestObject.css('opacity', 25); + Assert.Equal(TestObject.attr('style'), 'opacity: 25;', 'Duration pre-transition test'); + TestObject.transition({ opacity: 75, duration: 1000, complete: function () { Assert.Equal(TestObject.attr('style'), 'opacity: 75;', 'Duration post-transition test'); } }); + // Test the transitions state partway through and assert that we're not to our final state yet. + setTimeout(function () { Assert.NotEqual(TestObject.attr('style'), 'opacity: 75;', 'Duration intra-transition test'); }, 300); +} diff --git a/jquery.transit/jquery.transit.d.ts b/jquery.transit/jquery.transit.d.ts new file mode 100644 index 000000000..50a234d89 --- /dev/null +++ b/jquery.transit/jquery.transit.d.ts @@ -0,0 +1,25 @@ +// Type definitions for jQuery.transit.js + +/// + +// Transit ////////////////////////////////////////////////// + +interface JQueryTransitOptions { + opacity?: number; + duration?: number; + delay?: number; + easing?: string; + complete?: () => void; + scale?: any; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +interface JQuery { + transition(options: JQueryTransitOptions): JQuery; + transition(options: JQueryTransitOptions, duration: number): JQuery; + transition(options: JQueryTransitOptions, easing: string): JQuery; + transition(options: JQueryTransitOptions, duration: number, easing: string): JQuery; + transition(options: JQueryTransitOptions, complete: () => void): JQuery; + transition(options: JQueryTransitOptions, duration: number, easing: string, complete: () => void): JQuery; +} From 96de1f39802ee3bccb8e5a2058c092cab7115cf4 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 7 Dec 2012 08:44:23 -0800 Subject: [PATCH 21/44] Removing old naming convention folder --- jquery-transit/jquery-transit-tests.ts | 93 -------------------------- jquery-transit/jquery-transit.d.ts | 25 ------- 2 files changed, 118 deletions(-) delete mode 100644 jquery-transit/jquery-transit-tests.ts delete mode 100644 jquery-transit/jquery-transit.d.ts diff --git a/jquery-transit/jquery-transit-tests.ts b/jquery-transit/jquery-transit-tests.ts deleted file mode 100644 index ea8435e81..000000000 --- a/jquery-transit/jquery-transit-tests.ts +++ /dev/null @@ -1,93 +0,0 @@ -/// -/// - - -class TransitOptions implements JQueryTransitOptions { - opacity: number; - duration: number; - delay: number; - easing: string; - complete: () => void; - scale: any; -} - -$(document).ready(function () { - test_opacity(); - test_scale(); - test_duration(); - // Wait for all tests to complete and report results - setTimeout(Assert.Results, 2000); -}); - -class Assert { - static totalTests: number = 0; - static passedTests: number = 0; - - static Results() { - console.log('Tests succeeded - ' + passedTests + '/' + totalTests + '; Tests failed - ' + (totalTests - passedTests) + '/' + totalTests); - } - - static AssertionFailed(actual: any, expected: any, test: string) { - console.log((test || '') + ' assertion failed -- expected ' + expected.toString() + '; actual ' + actual.toString()); - } - - static Equal(actual: any, expected: any, test?: string) { - totalTests++; - if (actual === expected) { - passedTests++; - return; - } - AssertionFailed(actual, expected, test); - } - - static NotEqual(actual: any, expected: any, test?: string) { - totalTests++; - if (actual !== expected) { - passedTests++; - return; - } - AssertionFailed(actual, expected, test); - } -} - -function test_signatures() { - var TestObject = $('
    '); - var options = new TransitOptions(); - options.opacity = 50; - options.duration = 250; - - TestObject.css("scale", 2); - - TestObject.transition(options); - TestObject.transition(options, 500); - TestObject.transition(options, 'in'); - TestObject.transition(options, function () { var test: bool = true; }); - TestObject.transition(options, 500, 'out'); - TestObject.transition(options, 500, 'in-out', function () { var test: bool = true; }); -} - -function test_opacity() { - var TestObject = $('
    '); - TestObject.css('opacity', 25); - Assert.Equal(TestObject.attr('style'), 'opacity: 25;', 'Opacity pre-transition test'); - TestObject.transition({ opacity: 75, duration: 1, complete: function () { Assert.Equal(TestObject.attr('style'), 'opacity: 75;', 'Opacity transition test'); } }); -} - -function test_scale() { - var TestObject = $('
    '); - TestObject.css('scale', 0.5); - Assert.Equal(TestObject.attr('style'), 'transform: scale(0.5, 0.5);', 'Scale pre-transition test'); - TestObject.transition({ scale: 2, duration: 1, complete: function () { Assert.Equal(TestObject.attr('style'), 'transform: scale(2, 2);', 'Scale transition test'); } }); - TestObject.css('scale', [0.5, 1.0]); - Assert.Equal(TestObject.attr('style'), 'transform: scale(0.5, 1);', 'Scale pre-transition test'); - TestObject.transition({ scale: [2, 3], duration: 1, complete: function () { Assert.Equal(TestObject.attr('style'), 'transform: scale(2, 3);', 'Scale transition test'); } }); -} - -function test_duration() { - var TestObject = $('
    '); - TestObject.css('opacity', 25); - Assert.Equal(TestObject.attr('style'), 'opacity: 25;', 'Duration pre-transition test'); - TestObject.transition({ opacity: 75, duration: 1000, complete: function () { Assert.Equal(TestObject.attr('style'), 'opacity: 75;', 'Duration post-transition test'); } }); - // Test the transitions state partway through and assert that we're not to our final state yet. - setTimeout(function () { Assert.NotEqual(TestObject.attr('style'), 'opacity: 75;', 'Duration intra-transition test'); }, 300); -} diff --git a/jquery-transit/jquery-transit.d.ts b/jquery-transit/jquery-transit.d.ts deleted file mode 100644 index bd56e5b75..000000000 --- a/jquery-transit/jquery-transit.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -// Type definitions for jQuery-transit.js - -/// - -// Transit ////////////////////////////////////////////////// - -interface JQueryTransitOptions { - opacity?: number; - duration?: number; - delay?: number; - easing?: string; - complete?: () => void; - scale?: any; -} - -//////////////////////////////////////////////////////////////////////////////////////////////////// - -interface JQuery { - transition(options: JQueryTransitOptions): JQuery; - transition(options: JQueryTransitOptions, duration: number): JQuery; - transition(options: JQueryTransitOptions, easing: string): JQuery; - transition(options: JQueryTransitOptions, duration: number, easing: string): JQuery; - transition(options: JQueryTransitOptions, complete: () => void): JQuery; - transition(options: JQueryTransitOptions, duration: number, easing: string, complete: () => void): JQuery; -} From bcfb14e80847b6b160fb79884f54ba6fa2d0f75c Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Fri, 7 Dec 2012 19:05:55 +0200 Subject: [PATCH 22/44] Update jquery.transit filename and readme --- README.md | 1 + ...y.transit.d.ts => jquery.transit-0.1.d.ts} | 50 +++++++++---------- 2 files changed, 26 insertions(+), 25 deletions(-) rename jquery.transit/{jquery.transit.d.ts => jquery.transit-0.1.d.ts} (97%) diff --git a/README.md b/README.md index 2fda0ca5d..a309fbba5 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ Complete * [jQuery.BBQ](http://benalman.com/projects/jquery-bbq-plugin/) (by [Adam R. Smith](https://github.com/sunetos)) * [jQuery.Cookie](https://github.com/carhartl/jquery-cookie) (by [Roy Goode](https://github.com/RoyGoode)) * [jQuery.Globalize](https://github.com/jquery/globalize) (by [Boris Yankov](https://github.com/borisyankov)) +* [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)) * [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)) diff --git a/jquery.transit/jquery.transit.d.ts b/jquery.transit/jquery.transit-0.1.d.ts similarity index 97% rename from jquery.transit/jquery.transit.d.ts rename to jquery.transit/jquery.transit-0.1.d.ts index 50a234d89..0ca62f755 100644 --- a/jquery.transit/jquery.transit.d.ts +++ b/jquery.transit/jquery.transit-0.1.d.ts @@ -1,25 +1,25 @@ -// Type definitions for jQuery.transit.js - -/// - -// Transit ////////////////////////////////////////////////// - -interface JQueryTransitOptions { - opacity?: number; - duration?: number; - delay?: number; - easing?: string; - complete?: () => void; - scale?: any; -} - -//////////////////////////////////////////////////////////////////////////////////////////////////// - -interface JQuery { - transition(options: JQueryTransitOptions): JQuery; - transition(options: JQueryTransitOptions, duration: number): JQuery; - transition(options: JQueryTransitOptions, easing: string): JQuery; - transition(options: JQueryTransitOptions, duration: number, easing: string): JQuery; - transition(options: JQueryTransitOptions, complete: () => void): JQuery; - transition(options: JQueryTransitOptions, duration: number, easing: string, complete: () => void): JQuery; -} +// Type definitions for jQuery.transit.js + +/// + +// Transit ////////////////////////////////////////////////// + +interface JQueryTransitOptions { + opacity?: number; + duration?: number; + delay?: number; + easing?: string; + complete?: () => void; + scale?: any; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +interface JQuery { + transition(options: JQueryTransitOptions): JQuery; + transition(options: JQueryTransitOptions, duration: number): JQuery; + transition(options: JQueryTransitOptions, easing: string): JQuery; + transition(options: JQueryTransitOptions, duration: number, easing: string): JQuery; + transition(options: JQueryTransitOptions, complete: () => void): JQuery; + transition(options: JQueryTransitOptions, duration: number, easing: string, complete: () => void): JQuery; +} From 9bca26376baeac3d48d61d37b165bf02f6943835 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Fri, 7 Dec 2012 19:14:13 +0200 Subject: [PATCH 23/44] Update socket.io --- socket.io/socket.io-0.9.10.d.ts | 63 --------------------------------- 1 file changed, 63 deletions(-) delete mode 100644 socket.io/socket.io-0.9.10.d.ts diff --git a/socket.io/socket.io-0.9.10.d.ts b/socket.io/socket.io-0.9.10.d.ts deleted file mode 100644 index 06a969d40..000000000 --- a/socket.io/socket.io-0.9.10.d.ts +++ /dev/null @@ -1,63 +0,0 @@ -// Type definitions for Chrome extension development. -// Project: http://developer.chrome.com/extensions/ -// Definitions by: William Orr -// Definitions: https://github.com/borisyankov/DefinitelyTyped - - -/// - -declare module "socket.io" { - import http = module('http'); - - export function listen(server: http.Server, options: any, fn: Function): SocketManager; - export function listen(server: http.Server, fn?: Function): SocketManager; - export function listen(port: Number): SocketManager; -} - -interface Socket { - json:any; - log: any; - volatile: any; - broadcast: any; - in(room: string): Socket; - to(room: string): Socket; - join(name: string, fn: Function): Socket; - unjoin(name: string, fn: Function): Socket; - set(key: string, value: any, fn: Function): Socket; - get(key: string, value: any, fn: Function): Socket; - has(key: string, fn: Function): Socket; - del(key: string, fn: Function): Socket; - disconnect(): Socket; - send(data: any, fn: Function): Socket; - emit(ev: any): Socket; -} - -interface SocketNamespace { - clients(room: string): Socket[]; - log: any; - store: any; - json: any; - volatile: any; - in(room: string): SocketNamespace; - on(evt: string, fn: Function): SocketNamespace; - to(room: string): SocketNamespace; - except(id: any): SocketNamespace; - send(data: any): any; - emit(data: any): any; - socket(sid: any, readable: bool): Socket; - authorization(fn: Function); -} - -interface SocketManager { - get(key: any): any; - set(key: any, value: any): SocketManager; - enable(key: any): SocketManager; - disable(key: any): SocketManager; - enabled(key: any): bool; - disabled(key: any): bool; - configure(env: string, fn: Function): SocketManager; - configure(fn: Function): SocketManager; - of(nsp: string): SocketNamespace; - on(ns: string, fn: Function): SocketManager; - sockets: SocketNamespace; -} From 0e64515389455124fd61cecb275d5a456ebb42be Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Fri, 7 Dec 2012 19:14:36 +0200 Subject: [PATCH 24/44] Update socket.io meta info --- socket.io/socket.io-0.9.d.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/socket.io/socket.io-0.9.d.ts b/socket.io/socket.io-0.9.d.ts index 42a8b6912..03aa718a6 100644 --- a/socket.io/socket.io-0.9.d.ts +++ b/socket.io/socket.io-0.9.d.ts @@ -1,4 +1,10 @@ -/// +// Type definitions for socket.io +// Project: http://socket.io/ +// Definitions by: William Orr +// Definitions: https://github.com/borisyankov/DefinitelyTyped + + +/// declare module "socket.io" { import http = module('http'); From 040418a3648238eb253ebe50d1ccc4db37a1b0aa Mon Sep 17 00:00:00 2001 From: Stuart Thompson Date: Fri, 7 Dec 2012 15:39:11 -0800 Subject: [PATCH 25/44] Backbone.Router now extends Events The Backbone.Router class did not previously extend Events in the definition file. This caused the TypeScript compiler to raise an error when calling one of the Events methods (such as on()) on an instance of a router. This change allows instances of classes derived from Backbone.Router to call methods on the Events class that are inherited by the router. --- backbone/backbone-0.9.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backbone/backbone-0.9.d.ts b/backbone/backbone-0.9.d.ts index d7dcfea83..58633a6ef 100644 --- a/backbone/backbone-0.9.d.ts +++ b/backbone/backbone-0.9.d.ts @@ -180,7 +180,7 @@ declare module Backbone { zip(...model: Model[]): Model[]; } - export class Router { + export class Router extends Events { static extend(properties: any, classProperties?: any): any; // do not use, prefer TypeScript's extend functionality From 9409f60b27c6c200df59483dc06da21ea139623b Mon Sep 17 00:00:00 2001 From: Stuart Thompson Date: Sun, 9 Dec 2012 09:17:40 -0800 Subject: [PATCH 26/44] Adds unload to the list of function definitions. Previously unload was omitted from the declarations file. --- jquery/jquery-1.8.d.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/jquery/jquery-1.8.d.ts b/jquery/jquery-1.8.d.ts index 63ab3cb09..56efdbcb3 100644 --- a/jquery/jquery-1.8.d.ts +++ b/jquery/jquery-1.8.d.ts @@ -581,6 +581,9 @@ interface JQuery { undelegate(selector: any, events: any): JQuery; undelegate(namespace: string): JQuery; + unload(eventData?: any, handler?: (eventObject: JQueryEventObject) => any): JQuery; + unload(handler: (eventObject: JQueryEventObject) => any): JQuery; + /********* INTERNALS **********/ From 9c0146b01dacf91c6e3d850cc29f4a0e3c35239f Mon Sep 17 00:00:00 2001 From: BreeeZe Date: Mon, 10 Dec 2012 11:46:27 +0100 Subject: [PATCH 27/44] Added missing method "ko.applyBindingsToNode" to knockout --- knockout/knockout-2.2.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/knockout/knockout-2.2.d.ts b/knockout/knockout-2.2.d.ts index a99b4683b..0598e64e8 100644 --- a/knockout/knockout-2.2.d.ts +++ b/knockout/knockout-2.2.d.ts @@ -277,6 +277,7 @@ interface KnockoutStatic { applyBindings(viewModel: any, rootNode?: any): void; applyBindingsToDescendants(viewModel: any, rootNode: any): void; + applyBindingsToNode(node: Element, options: any, viewModel: any): void; subscribable: KnockoutSubscribableStatic; observable: KnockoutObservableStatic; From 45a825465e1fd98ca1f862c14985b496113ee915 Mon Sep 17 00:00:00 2001 From: BreeeZe Date: Tue, 11 Dec 2012 22:21:10 +0100 Subject: [PATCH 28/44] Added missing util method "isComputed" --- knockout/knockout-2.2.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/knockout/knockout-2.2.d.ts b/knockout/knockout-2.2.d.ts index 0598e64e8..6a40a8112 100644 --- a/knockout/knockout-2.2.d.ts +++ b/knockout/knockout-2.2.d.ts @@ -289,6 +289,7 @@ interface KnockoutStatic { toJSON(viewModel: any, replacer?: Function, space?: any): string; toJS(viewModel: any): any; isObservable(instance: any): bool; + isComputed(instance: any): bool; dataFor(node: any): any; removeNode(node: Element); cleanNode(node: Element); From 1416fa0cb8639739141b1b8d85cb7314cf3f8902 Mon Sep 17 00:00:00 2001 From: Tomas Kirda Date: Tue, 11 Dec 2012 17:29:22 -0600 Subject: [PATCH 29/44] Change return type for map. --- jquery/jquery-1.8.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jquery/jquery-1.8.d.ts b/jquery/jquery-1.8.d.ts index 56efdbcb3..88dd976ca 100644 --- a/jquery/jquery-1.8.d.ts +++ b/jquery/jquery-1.8.d.ts @@ -292,7 +292,7 @@ interface JQueryStatic { makeArray(obj: any): any[]; - map(array: any[], callback: (elementOfArray: any, indexInArray: any) =>any): JQuery; + map(array: any[], callback: (elementOfArray: any, indexInArray: any) =>any): any[]; merge(first: any[], second: any[]): any[]; From 55146899fc0327140bd6f920ed793f5643b4fc82 Mon Sep 17 00:00:00 2001 From: Emil Ivanov Date: Wed, 12 Dec 2012 10:58:28 +0200 Subject: [PATCH 30/44] Added SockJS definition See https://github.com/sockjs/sockjs-client Created manually by inspecting the various parameters and return values. There are seperate events, since, although SockJS exposes a Websocket-like interface, it's not 100% same. --- sockjs/sockjs.d.ts | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 sockjs/sockjs.d.ts diff --git a/sockjs/sockjs.d.ts b/sockjs/sockjs.d.ts new file mode 100644 index 000000000..14529f0c0 --- /dev/null +++ b/sockjs/sockjs.d.ts @@ -0,0 +1,40 @@ +interface SockJSSimpleEvent { + type: string; + toString(): string; +} + +interface SJSOpenEvent extends SockJSSimpleEvent {} + +interface SJSCloseEvent extends SockJSSimpleEvent { + code: number; + reason: string; + wasClean: bool; +} + +interface SJSMessageEvent extends SockJSSimpleEvent { + data: string; +} + +interface SockJS extends EventTarget { + protocol: string; + readyState: number; + onopen: (ev: SJSOpenEvent) => any; + onmessage: (ev: SJSMessageEvent) => any; + onclose: (ev: SJSCloseEvent) => any; + send(data: any): void; + close(code?: number, reason?: string): void; + OPEN: number; + CLOSING: number; + CONNECTING: number; + CLOSED: number; +} + +declare var SockJS: { + prototype: SockJS; + new (url: string, options?: { + debug: bool; + devel: bool; + protocols_whitelist: string[]; + }): SockJS; + +} \ No newline at end of file From e30a04c0b137bdd3c42265b5558645fb775a5ca2 Mon Sep 17 00:00:00 2001 From: Emil Ivanov Date: Wed, 12 Dec 2012 11:02:44 +0200 Subject: [PATCH 31/44] Added comment headers and version --- sockjs/{sockjs.d.ts => sockjs-0.3.d.ts} | 5 +++++ 1 file changed, 5 insertions(+) rename sockjs/{sockjs.d.ts => sockjs-0.3.d.ts} (80%) diff --git a/sockjs/sockjs.d.ts b/sockjs/sockjs-0.3.d.ts similarity index 80% rename from sockjs/sockjs.d.ts rename to sockjs/sockjs-0.3.d.ts index 14529f0c0..90a027180 100644 --- a/sockjs/sockjs.d.ts +++ b/sockjs/sockjs-0.3.d.ts @@ -1,3 +1,8 @@ +// Type definitions for SockJS 0.3.x +// Project: https://github.com/sockjs/sockjs-client +// Definitions by: Emil Ivanov +// DefinitelyTyped: https://github.com/borisyankov/DefinitelyTyped + interface SockJSSimpleEvent { type: string; toString(): string; From bf3ea4b65c5ba56e7d9a13394c6f4d192a83f247 Mon Sep 17 00:00:00 2001 From: Daz Wilkin Date: Thu, 13 Dec 2012 10:56:03 -0800 Subject: [PATCH 32/44] Vimeo Froogaloop API --- vimeo/froogaloop-2.d.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 vimeo/froogaloop-2.d.ts diff --git a/vimeo/froogaloop-2.d.ts b/vimeo/froogaloop-2.d.ts new file mode 100644 index 000000000..950696bc5 --- /dev/null +++ b/vimeo/froogaloop-2.d.ts @@ -0,0 +1,26 @@ +// Type definitions for YouTube [No version numbering] +// Project: http://developer.vimeo.com/player/js-api +// Definitions by: Daz Wilkin +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +interface VimeoParams { + name:string; + value:any; +} +interface VimeoPlayerAPI { + (method: string): any; + (method: string, callback: (value: any, player_id: any) =>void ): any; + (method: string, value: any): any; + (method: string, value: VimeoParams[]): any; +} +interface VimeoPlayer { + api: VimeoPlayerAPI; + addEvent(eventName: string, callback: (e: any) =>void ): any; + removeEvent(eventName: string): void; + postMessage(method: string, params:VimeoParams[], target): void; + onMessagReceived(event); + storeCallback(eventName: string, callback, target_id: string); + getCallback(eventName: string, target_id: string); + removeCallback(eventName: string, target_id: string); + getDomainFromUrl(url: string): string; +} \ No newline at end of file From df0dd60fb067e20d9480b49cd7154005dbf7e12e Mon Sep 17 00:00:00 2001 From: Daz Wilkin Date: Thu, 13 Dec 2012 10:57:27 -0800 Subject: [PATCH 33/44] YouTube API: added exports --- youtube/youtube.d.ts | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/youtube/youtube.d.ts b/youtube/youtube.d.ts index 34bb04589..805627138 100644 --- a/youtube/youtube.d.ts +++ b/youtube/youtube.d.ts @@ -9,21 +9,40 @@ module Google.YT { interface Event { (event: any): void; } - interface Events { + export interface Events { onReady?: Event; onPlayback?: Event; onStateChange?: Event; } - interface PlayerVars { + export enum ListType { + search, + user_uploads, + playlist, + } + export interface PlayerVars { autohide?: number; autoplay?: number; cc_load_policy?: any; - color?: any; + color?: string; + controls?: number; + disablekb?: number; + enablejsapi?: number; + end?: number; + fs?: number; + iv_load_policy?: number; + list?: string; + listType?: ListType; + loop?; + modestbranding?: number; + origin?; playerpiid?: string; + playlist?; + rel?: number; showinfo?: number; - theme?: any; + start?: number; + theme?: string; } - interface PlayerOptions { + export interface PlayerOptions { width: number; height: number; videoId: string; @@ -36,7 +55,8 @@ module Google.YT { endSeconds: number; suggestedQuality: string; } - interface Player { + export interface Player { + // Constructor new (string, playerOptions:PlayerOptions): any; @@ -109,4 +129,4 @@ interface YT { PAUSED: number; PLAYING: number; }; -} +} \ No newline at end of file From de50ebadb3e3827644581eb764f1ae4657f54c1b Mon Sep 17 00:00:00 2001 From: BreeeZe Date: Thu, 13 Dec 2012 20:19:04 +0100 Subject: [PATCH 34/44] Added 'ieVersion' , 'isIe6' and 'isIe7' to Knockout utils definition. --- knockout/knockout-2.2.d.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/knockout/knockout-2.2.d.ts b/knockout/knockout-2.2.d.ts index 6a40a8112..5d9253e44 100644 --- a/knockout/knockout-2.2.d.ts +++ b/knockout/knockout-2.2.d.ts @@ -264,6 +264,10 @@ interface KnockoutUtils { stringifyJson(data: any, replacer: Function, space: string): string; postJson(urlOrForm: any, data: any, options: any): void; + ieVersion: number; + isIe6: bool; + isIe7: bool; + domNodeDisposal; } From 32010b4764a5f7dbb994e33712f2329f25ab1023 Mon Sep 17 00:00:00 2001 From: BreeeZe Date: Sat, 15 Dec 2012 12:22:12 +0100 Subject: [PATCH 35/44] Added missing method 'replace' to KnockoutObservableArrayFunctions --- knockout/knockout-2.2.d.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/knockout/knockout-2.2.d.ts b/knockout/knockout-2.2.d.ts index 5d9253e44..fc3137a7d 100644 --- a/knockout/knockout-2.2.d.ts +++ b/knockout/knockout-2.2.d.ts @@ -36,6 +36,8 @@ interface KnockoutObservableArrayFunctions extends KnockoutObservableFunctions { sort(compareFunction): void; // Ko specific + replace(oldItem: any, newItem: any): void; + remove(item): any[]; removeAll(items: any[]): any[]; removeAll(): any[]; From 7c4f7ba0dfb48b16d877df3da245fceeebe0f5f7 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Wed, 19 Dec 2012 23:26:17 +0200 Subject: [PATCH 36/44] Add modules to breeze.js definitions --- breeze/breeze-0.65.d.ts | 1149 ++++++++++++++++++++------------------- breeze/breeze-tests.ts | 435 +++++++-------- 2 files changed, 796 insertions(+), 788 deletions(-) diff --git a/breeze/breeze-0.65.d.ts b/breeze/breeze-0.65.d.ts index f1ca8759f..38346cf1f 100644 --- a/breeze/breeze-0.65.d.ts +++ b/breeze/breeze-0.65.d.ts @@ -4,579 +4,584 @@ // Definitions: https://github.com/borisyankov/DefinitelyTyped +declare module BreezeCore { -interface Entity { - entityAspect: EntityAspect; - entityType: EntityType; + interface ErrorCallback { + (error: Error): void; + } + + class Enum { + constructor (name: string, methodObj?: any); + + addSymbol(propertiesObj?: any): EnumSymbol; + contains(object: any): bool; + fromName(name: string): EnumSymbol; + getNames(): string[]; + getSymbols(): EnumSymbol[]; + static isSymbol(object: any): bool; + seal(): void; + } + + class EnumSymbol { + parentEnum: Enum; + + getName(): string; + toString(): string; + } + + class Event { + constructor (name: string, publisher: any, defaultErrorCallback?: ErrorCallback); + + static enable(eventName: string, target: any): void; + static enable(eventName: string, target: any, isEnabled: bool): void; + static enable(eventName: string, target: any, isEnabled: Function): void; + + static isEnabled(eventName: string, target: any): bool; + publish(data: any, publishAsync?: bool, errorCallback?: ErrorCallback): void; + publishAsync(data: any, errorCallback?: ErrorCallback): void; + subscribe(callback?: (data: any) => void ): number; + unsubscribe(unsubKey: number): bool; + } } -interface ErrorCallback { - (error: Error): void; -} - -class AutoGeneratedKeyType { - static Identity: AutoGeneratedKeyType; - static KeyGenerator: AutoGeneratedKeyType; - static None: AutoGeneratedKeyType; -} - -interface DataPropertyOptions { - name?: string; - nameOnServer?: string; - dataType?: DataType; - isNullable?: bool; - isPartOfKey?: bool; - isUnmapped?: bool; - concurrencyMode?: string; - maxLength?: number; - fixedLength?: bool; - validators?: Validator[]; -} - -class DataProperty { - concurrencyMode: string; - dataType: DataType; - defaultValue: any; - fixedLength: bool; - isNullable: bool; - isPartOfKey: bool; - isUnmapped: bool; - maxLength: number; - name: string; - parentEntityType: EntityType; - relatedNavigationProperty: NavigationProperty; - validators: Validator[]; - - constructor (config: DataPropertyOptions); -} - -class DataType { - static Binary: DataType; - static Boolean: DataType; - static Byte: DataType; - static DateTime: DataType; - static Decimal: DataType; - static Double: DataType; - static Guid: DataType; - static Int16: DataType; - static Int32: DataType; - static Int64: DataType; - static Single: DataType; - static String: DataType; - static Undefined: DataType; - - defaultValue: any; - isNumeric: bool; - - static toDataType(typeName: string): DataType; -} - -class EntityAction { - static AcceptChanges: EntityAction; - static Attach: EntityAction; - static AttachOnImport: EntityAction; - static AttachOnQuery: EntityAction; - static Clear: EntityAction; - static Detach: EntityAction; - static EntityStateChange: EntityAction; - static MergeOnImport: EntityAction; - static MergeOnSave: EntityAction; - static MergeOnQuery: EntityAction; - static PropertyChange: EntityAction; - static RejectChanges: EntityAction; -} - -class EntityAspect { - entity: Entity; - entityManager: EntityManager; - entityState: EntityState; - isBeingSaved: bool; - originalValues: any; - - propertyChanged: BreezeEvent; - validationErrorsChanged: BreezeEvent; - - acceptChanges(): void; - addValidationError(validationError: ValidationError): void; - getKey(forceRefresh?: bool): EntityKey; - - getValidationErrors(): ValidationError[]; - getValidationErrors(property: string): ValidationError[]; - getValidationErrors(property: DataProperty): ValidationError[]; - getValidationErrors(property: NavigationProperty): ValidationError[]; - - loadNavigationProperty(navigationProperty: string, callback?: Function, errorCallback?: Function): Promise; - loadNavigationProperty(navigationProperty: NavigationProperty, callback?: Function, errorCallback?: Function): Promise; - - rejectChanges(): void; - - removeValidationError(validator: Validator): void; - removeValidationError(validator: Validator, property: DataProperty): void; - removeValidationError(validator: Validator, property: NavigationProperty): void; - - setDeleted(): void; - setModified(): void; - setUnchanged(): void; - validateEntity(): bool; - - validateProperty(property: string, context?: any): bool; - validateProperty(property: DataProperty, context?: any): bool; - validateProperty(property: NavigationProperty, context?: any): bool; -} - -class EntityKey { - constructor (entityType: EntityType, keyValue: any); - constructor (entityType: EntityType, keyValues: any[]); - - equals(entityKey: EntityKey): bool; - static equals(k1: EntityKey, k2: EntityKey): bool; -} - -interface EntityManagerOptions { - serviceName?: string; - metadataStore?: MetadataStore; - queryOptions?: QueryOptions; - saveOptions?: SaveOptions; - validationOptions?: ValidationOptions; - keyGeneratorCtor?: Function; - remoteAccessImplementation?: RemoteAccessImplementation; -} - -interface RemoteAccessImplementation { -} - -interface ExecuteQuerySuccessCallback { - (data: { results: Entity[]; query: EntityQuery; XHR: XMLHttpRequest; }): void; -} - -interface ExecuteQueryErrorCallback { - (error: { query: EntityQuery; XHR: XMLHttpRequest; }): void; -} - -interface SaveChangesSuccessCallback { - (saveResult: { entities: Entity[]; keyMappings: any; XHR: XMLHttpRequest; }): void; -} - -interface SaveChangesErrorCallback { - (error: { XHR: XMLHttpRequest; }): void; -} - -interface EntityManagerProperties { - serviceName?: string; - queryOptions?: QueryOptions; - saveOptions?: SaveOptions; - validationOptions?: ValidationOptions; - remoteAccessImplementation?: RemoteAccessImplementation; - keyGeneratorCtor?: Function; -} - -class EntityManager { - keyGeneratorCtor: Function; - metadataStore: MetadataStore; - queryOptions: QueryOptions; - remoteAccessImplementation: RemoteAccessImplementation; - saveOptions: SaveOptions; - serviceName: string; - validationOptions: ValidationOptions; - - entityChanged: BreezeEvent; - //hasChanges: BreezeEvent; - - constructor (config?: EntityManagerOptions); - constructor (config?: string); - - addEntity(entity: Entity): Entity; - attachEntity(entity: Entity, entityState?: EntityState): Entity; - clear(): void; - createEmptyCopy(): EntityManager; - detachEntity(entity: Entity): bool; - - executeQuery(query: string, callback?: ExecuteQuerySuccessCallback, errorCallback?: ExecuteQueryErrorCallback): Promise; - executeQuery(query: EntityQuery, callback?: ExecuteQuerySuccessCallback, errorCallback?: ExecuteQueryErrorCallback): Promise; - - executeQueryLocally(query: EntityQuery): Entity[]; - exportEntities(entities?: Entity[]): string; - fetchMetadata(callback?: (schema: any) => void , errorCallback?: ErrorCallback): Promise; - findEntityByKey(entityKey: EntityKey): Entity; - generateTempKeyValue(entity: Entity): any; - getChanges(): Entity[]; - - getChanges(entityType: EntityType): Entity[]; - getChanges(entityTypes: EntityType[]): Entity[]; - - getEntities(entityTypes: EntityType, entityState?: EntityState): Entity[]; - getEntities(entityTypes?: EntityType[], entityState?: EntityState): Entity[]; - getEntities(entityType?: EntityType, entityStates?: EntityState[]): Entity[]; - getEntities(entityTypes?: EntityType[], entityStates?: EntityState[]): Entity[]; - - hasChanges(): bool; - hasChanges(entityType: EntityType): bool; - hasChanges(entityTypes: EntityType[]): bool; - - static importEntities(exportedString: string, config?: { mergeStrategy?: MergeStrategy; }): EntityManager; - importEntities(exportedString: string, config?: { mergeStrategy?: MergeStrategy; }): EntityManager; - - rejectChanges(): Entity[]; - saveChanges(entities?: Entity[], saveOptions?: SaveOptions, callback?: SaveChangesSuccessCallback, errorCallback?: SaveChangesErrorCallback): Promise; - setProperties(config: EntityManagerProperties): void; -} - -class EntityQuery { - entityManager: EntityManager; - orderByClause: OrderByClause; - queryOptions: QueryOptions; - resourceName: string; - skipCount: number; - takeCount: number; - wherePredicate: Predicate; - - constructor (resourceName?: string); - - execute(callback?: ExecuteQuerySuccessCallback, errorCallback?: ExecuteQueryErrorCallback): Promise; - executeLocally(): Entity[]; - expand(propertyPaths: string): EntityQuery; - static from(resourceName: string): EntityQuery; - from(resourceName: string): EntityQuery; - static fromEntities(entity: Entity): EntityQuery; - static fromEntities(entities: Entity[]): EntityQuery; - static fromEntityKey(entityKey: EntityKey): EntityQuery; - static fromEntityNavigation(entity: Entity, navigationProperty: NavigationProperty): EntityQuery; - orderBy(propertyPaths: string): EntityQuery; - orderByDesc(propertyPaths: string): EntityQuery; - select(propertyPaths: string): EntityQuery; - skip(count: number): EntityQuery; - take(count: number): EntityQuery; - top(count: number): EntityQuery; - - using(obj: EntityManager): EntityQuery; - using(obj: MergeStrategy): EntityQuery; - //using(obj: FetchStrategy): EntityQuery; !!! same signature as MergeStrategy - - where(predicate: Predicate): EntityQuery; - where(property: string, operator: string, value: any): EntityQuery; - where(property: string, operator: FilterQueryOp, value: any): EntityQuery; - where(predicate: FilterQueryOp): EntityQuery; -} - -interface OrderByClause { -} - -class EntityState { - static Added: EntityState; - static Deleted: EntityState; - static Detached: EntityState; - static Modified: EntityState; - static Unchanged: EntityState; - - isAdded(): bool; - isAddedModifiedOrDeleted(): bool; - isDeleted(): bool; - isDetached(): bool; - isModified(): bool; - isUnchanged(): bool; - isUnchangedOrModified(): bool; -} - -class EntityType { - autoGeneratedKeyType: AutoGeneratedKeyType; - concurrencyProperties: DataProperty[]; - dataProperties: DataProperty[]; - defaultResourceName: string; - foreignKeyProperties: DataProperty[]; - keyProperties: DataProperty[]; - metadataStore: MetadataStore; - name: string; - namespace: string; - navigationProperties: NavigationProperty[]; - shortName: string; - unmappedProperties: DataProperty[]; - validators: Validator[]; - - constructor (config: MetadataStore); - constructor (config: EntityTypeOptions); - - addProperty(property: DataProperty): void; - addProperty(property: NavigationProperty): void; - addValidator(validator: Validator, property?: any): void; - createEntity(): Entity; - getDataProperty(propertyName: string): DataProperty; - getEntityCtor(): Function; - getNavigationProperty(propertyName: string): NavigationProperty; - getProperties(): any; - getProperty(propertyPath: string, throwIfNotFound?: bool): any; - getPropertyNames(): string[]; - setProperties(config: EntityTypeProperties): void; - toString(): string; -} - -interface EntityTypeOptions { - metadataStore?: MetadataStore; - serviceName?: string; - shortName?: string; - namespace?: string; - defaultResourceName?: string; -} - -interface EntityTypeProperties { - autogeneratedKeyType?: AutoGeneratedKeyType; - defaultResourceName?: string; -} - -class Enum { - constructor (name: string, methodObj?: any); - - addSymbol(propertiesObj?: any): EnumSymbol; - contains(object: any): bool; - fromName(name: string): EnumSymbol; - getNames(): string[]; - getSymbols(): EnumSymbol[]; - static isSymbol(object: any): bool; - seal(): void; -} - -class EnumSymbol { - parentEnum: Enum; - - getName(): string; - toString(): string; -} - -class BreezeEvent { - constructor (name: string, publisher: any, defaultErrorCallback?: ErrorCallback); - - static enable(eventName: string, target: any): void; - static enable(eventName: string, target: any, isEnabled: bool): void; - static enable(eventName: string, target: any, isEnabled: Function): void; - - static isEnabled(eventName: string, target: any): bool; - publish(data: any, publishAsync?: bool, errorCallback?: ErrorCallback): void; - publishAsync(data: any, errorCallback?: ErrorCallback): void; - subscribe(callback?: (data: any) => void ): number; - unsubscribe(unsubKey: number): bool; -} - -class FetchStrategy { - static FromLocalCache: MergeStrategy; - static FromServer: MergeStrategy; -} - -class FilterQueryOp { - static Contains: FilterQueryOp; - static EndsWith: FilterQueryOp; - static Equals: FilterQueryOp; - static GreaterThan: FilterQueryOp; - static GreaterThanOrEqual: FilterQueryOp; - static LessThan: FilterQueryOp; - static LessThanOrEqual: FilterQueryOp; - static NotEquals: FilterQueryOp; - static StartsWith: FilterQueryOp; -} - -class LocalQueryComparisonOptions { - static caseInsensitiveSQL: LocalQueryComparisonOptions; - static defaultInstance: LocalQueryComparisonOptions; - - constructor (config: { name?: string; isCaseSensitive?: bool; usesSql92CompliantStringComparison?: bool; }); - - setAsDefault(): void; -} - -class MergeStrategy { - static OverwriteChanges: MergeStrategy; - static PreserveChanges: MergeStrategy; -} - -class MetadataStore { - namingConvention: NamingConvention; - - constructor (config?: MetadataStoreOptions); - - exportMetadata(): string; - fetchMetadata(serviceName: string, remoteAccessImplementation?: RemoteAccessImplementation, callback?: (data) => void , errorCallback?: ErrorCallback): Promise; - getEntityType(entityTypeName: string, okIfNotFound?: bool): EntityType; - getEntityTypes(): EntityType[]; - hasMetadataFor(serviceName: string): bool; - static importMetadata(exportedString: string): MetadataStore; - importMetadata(exportedString: string): MetadataStore; - isEmpty(): bool; - registerEntityTypeCtor(entityTypeName: string, entityCtor: Function, initializationFn?: (entity: Entity) =>void ): void; - trackUnmappedType(entityCtor: Function, interceptor?: Function); -} - -interface MetadataStoreOptions { - namingConvention?: NamingConvention; - localQueryComparisonOptions?: LocalQueryComparisonOptions; -} - -class NamingConvention { - static camelCase: NamingConvention; - static defaultInstance: NamingConvention; - static none: NamingConvention; - - constructor (config: NamingConventionOptions); - - clientPropertyNameToServer(clientPropertyName: string): string; - clientPropertyNameToServer(clientPropertyName: string, property: DataProperty): string; - clientPropertyNameToServer(clientPropertyName: string, property: NavigationProperty): string; - - serverPropertyNameToClient(serverPropertyName: string): string; - serverPropertyNameToClient(serverPropertyName: string, property: DataProperty): string; - serverPropertyNameToClient(serverPropertyName: string, property: NavigationProperty): string; - - setAsDefault(); -} - -interface NamingConventionOptions { - serverPropertyNameToClient?: Function; - clientPropertyNameToServer?: Function; -} - -class NavigationProperty { - associationName: string; - entityType: EntityType; - foreignKeyNames: string[]; - inverse: NavigationProperty; - isDataProperty: bool; - isNavigationProperty: bool; - isScalar: bool; - name: string; - parentEntityType: EntityType; - relatedDataProperties: DataProperty[]; - validators: Validator[]; - - constructor (config: NavigationPropertyOptions); -} - -interface NavigationPropertyOptions { - name?: string; - nameOnServer?: string; - entityTypeName: string; - isScalar?: bool; - associationName?: string; - foreignKeyNames?: string[]; - foreignKeyNamesOnServer?: string[]; - validators?: Validator[]; -} - -class Predicate { - constructor (property: string, operator: string, value: any); - constructor (property: string, operator: FilterQueryOp, value: any); - - and: PredicateMethod; - static and: PredicateMethod; - - static create: PredicateMethod; - - static isPredicate(o: any): bool; - - static not(predicate: Predicate): Predicate; - not(): Predicate; - - static or: PredicateMethod; - or: PredicateMethod; - - toFunction(): Function; - toString(): string; - validate(entityType: EntityType): bool; -} - -interface PredicateMethod { - (predicates: Predicate[]): Predicate; - (...predicates: Predicate[]): Predicate; - (property: string, operator: string, value: any): Predicate; - (property: string, operator: FilterQueryOp, value: any): Predicate; -} - -class Promise { - fail(errorCallback: Function): Promise; - fin(finallyCallback: Function): Promise; - then(callback: Function): Promise; -} - -class QueryOptions { - static defaultInstance: QueryOptions; - fetchStrategy: FetchStrategy; - mergeStrategy: MergeStrategy; - - constructor (config?: QueryOptionsConfiguration); - - setAsDefault(): void; - using(config: QueryOptionsConfiguration): QueryOptions; - using(config: MergeStrategy): QueryOptions; - // using(config: FetchStrategy): QueryOptions; !!! same signature as MergeStrategy -} - -interface QueryOptionsConfiguration { - fetchStrategy?: FetchStrategy; - mergeStrategy?: MergeStrategy; -} - -class SaveOptions { - allowConcurrentSaves: bool; - static defaultInstance: SaveOptions; - - constructor (config?: { allowConcurrentSaves?: bool; }); - - setAsDefault(): SaveOptions; -} - -class ValidationError { - context: any; - errorMessage: string; - property: any; // DataProperty | NavigationProperty - validator: Validator; - - constructor (validator: Validator, context: any, errorMessage: string); -} - -class ValidationOptions { - static defaultInstance: ValidationOptions; - validateOnAttach: bool; - validateOnPropertyChange: bool; - validateOnQuery: bool; - validateOnSave: bool; - - constructor (config?: ValidationOptionsConfiguration); - - setAsDefault(): ValidationOptions; - using(config: ValidationOptionsConfiguration): ValidationOptions; -} - -interface ValidationOptionsConfiguration { - validateOnAttach?: bool; - validateOnSave?: bool; - validateOnQuery?: bool; - validateOnPropertyChange?: bool; -} - -class Validator { - static messageTemplates: any; - - constructor (name: string, validatorFn: ValidatorFunction, context?: any); - - static bool(): Validator; - static byte(): Validator; - static date(): Validator; - getMessage(): string; - static guid(): Validator; - static int16(): Validator; - static int32(): Validator; - static int64(): Validator; - static maxLength(context: { maxLength: number; }): Validator; - static number(): Validator; - static required(): Validator; - static string(): Validator; - static stringLength(context: { maxLength: number; minLength: number; }): Validator; -} - -interface ValidatorFunction { - (value: any, context: ValidatorFunctionContext): void; -} - -interface ValidatorFunctionContext { - value: any; - validatorName: string; - displayName: string; - messageTemplate: string; - message?: string; +declare module Breeze { + + interface Entity { + entityAspect: EntityAspect; + entityType: EntityType; + } + + class AutoGeneratedKeyType { + static Identity: AutoGeneratedKeyType; + static KeyGenerator: AutoGeneratedKeyType; + static None: AutoGeneratedKeyType; + } + + interface DataPropertyOptions { + name?: string; + nameOnServer?: string; + dataType?: DataType; + isNullable?: bool; + isPartOfKey?: bool; + isUnmapped?: bool; + concurrencyMode?: string; + maxLength?: number; + fixedLength?: bool; + validators?: Validator[]; + } + + class DataProperty { + concurrencyMode: string; + dataType: DataType; + defaultValue: any; + fixedLength: bool; + isNullable: bool; + isPartOfKey: bool; + isUnmapped: bool; + maxLength: number; + name: string; + parentEntityType: EntityType; + relatedNavigationProperty: NavigationProperty; + validators: Validator[]; + + constructor (config: DataPropertyOptions); + } + + class DataType { + static Binary: DataType; + static Boolean: DataType; + static Byte: DataType; + static DateTime: DataType; + static Decimal: DataType; + static Double: DataType; + static Guid: DataType; + static Int16: DataType; + static Int32: DataType; + static Int64: DataType; + static Single: DataType; + static String: DataType; + static Undefined: DataType; + + defaultValue: any; + isNumeric: bool; + + static toDataType(typeName: string): DataType; + } + + class EntityAction { + static AcceptChanges: EntityAction; + static Attach: EntityAction; + static AttachOnImport: EntityAction; + static AttachOnQuery: EntityAction; + static Clear: EntityAction; + static Detach: EntityAction; + static EntityStateChange: EntityAction; + static MergeOnImport: EntityAction; + static MergeOnSave: EntityAction; + static MergeOnQuery: EntityAction; + static PropertyChange: EntityAction; + static RejectChanges: EntityAction; + } + + class EntityAspect { + entity: Entity; + entityManager: EntityManager; + entityState: EntityState; + isBeingSaved: bool; + originalValues: any; + + propertyChanged: BreezeCore.Event; + validationErrorsChanged: BreezeCore.Event; + + acceptChanges(): void; + addValidationError(validationError: ValidationError): void; + getKey(forceRefresh?: bool): EntityKey; + + getValidationErrors(): ValidationError[]; + getValidationErrors(property: string): ValidationError[]; + getValidationErrors(property: DataProperty): ValidationError[]; + getValidationErrors(property: NavigationProperty): ValidationError[]; + + loadNavigationProperty(navigationProperty: string, callback?: Function, errorCallback?: Function): Promise; + loadNavigationProperty(navigationProperty: NavigationProperty, callback?: Function, errorCallback?: Function): Promise; + + rejectChanges(): void; + + removeValidationError(validator: Validator): void; + removeValidationError(validator: Validator, property: DataProperty): void; + removeValidationError(validator: Validator, property: NavigationProperty): void; + + setDeleted(): void; + setModified(): void; + setUnchanged(): void; + validateEntity(): bool; + + validateProperty(property: string, context?: any): bool; + validateProperty(property: DataProperty, context?: any): bool; + validateProperty(property: NavigationProperty, context?: any): bool; + } + + class EntityKey { + constructor (entityType: EntityType, keyValue: any); + constructor (entityType: EntityType, keyValues: any[]); + + equals(entityKey: EntityKey): bool; + static equals(k1: EntityKey, k2: EntityKey): bool; + } + + interface EntityManagerOptions { + serviceName?: string; + metadataStore?: MetadataStore; + queryOptions?: QueryOptions; + saveOptions?: SaveOptions; + validationOptions?: ValidationOptions; + keyGeneratorCtor?: Function; + remoteAccessImplementation?: RemoteAccessImplementation; + } + + interface RemoteAccessImplementation { + } + + interface ExecuteQuerySuccessCallback { + (data: { results: Entity[]; query: EntityQuery; XHR: XMLHttpRequest; }): void; + } + + interface ExecuteQueryErrorCallback { + (error: { query: EntityQuery; XHR: XMLHttpRequest; }): void; + } + + interface SaveChangesSuccessCallback { + (saveResult: { entities: Entity[]; keyMappings: any; XHR: XMLHttpRequest; }): void; + } + + interface SaveChangesErrorCallback { + (error: { XHR: XMLHttpRequest; }): void; + } + + interface EntityManagerProperties { + serviceName?: string; + queryOptions?: QueryOptions; + saveOptions?: SaveOptions; + validationOptions?: ValidationOptions; + remoteAccessImplementation?: RemoteAccessImplementation; + keyGeneratorCtor?: Function; + } + + class EntityManager { + keyGeneratorCtor: Function; + metadataStore: MetadataStore; + queryOptions: QueryOptions; + remoteAccessImplementation: RemoteAccessImplementation; + saveOptions: SaveOptions; + serviceName: string; + validationOptions: ValidationOptions; + + entityChanged: BreezeCore.Event; + //hasChanges: BreezeCore.Event; + + constructor (config?: EntityManagerOptions); + constructor (config?: string); + + addEntity(entity: Entity): Entity; + attachEntity(entity: Entity, entityState?: EntityState): Entity; + clear(): void; + createEmptyCopy(): EntityManager; + detachEntity(entity: Entity): bool; + + executeQuery(query: string, callback?: ExecuteQuerySuccessCallback, errorCallback?: ExecuteQueryErrorCallback): Promise; + executeQuery(query: EntityQuery, callback?: ExecuteQuerySuccessCallback, errorCallback?: ExecuteQueryErrorCallback): Promise; + + executeQueryLocally(query: EntityQuery): Entity[]; + exportEntities(entities?: Entity[]): string; + fetchMetadata(callback?: (schema: any) => void , errorCallback?: BreezeCore.ErrorCallback): Promise; + findEntityByKey(entityKey: EntityKey): Entity; + generateTempKeyValue(entity: Entity): any; + getChanges(): Entity[]; + + getChanges(entityType: EntityType): Entity[]; + getChanges(entityTypes: EntityType[]): Entity[]; + + getEntities(entityTypes: EntityType, entityState?: EntityState): Entity[]; + getEntities(entityTypes?: EntityType[], entityState?: EntityState): Entity[]; + getEntities(entityType?: EntityType, entityStates?: EntityState[]): Entity[]; + getEntities(entityTypes?: EntityType[], entityStates?: EntityState[]): Entity[]; + + hasChanges(): bool; + hasChanges(entityType: EntityType): bool; + hasChanges(entityTypes: EntityType[]): bool; + + static importEntities(exportedString: string, config?: { mergeStrategy?: MergeStrategy; }): EntityManager; + importEntities(exportedString: string, config?: { mergeStrategy?: MergeStrategy; }): EntityManager; + + rejectChanges(): Entity[]; + saveChanges(entities?: Entity[], saveOptions?: SaveOptions, callback?: SaveChangesSuccessCallback, errorCallback?: SaveChangesErrorCallback): Promise; + setProperties(config: EntityManagerProperties): void; + } + + class EntityQuery { + entityManager: EntityManager; + orderByClause: OrderByClause; + queryOptions: QueryOptions; + resourceName: string; + skipCount: number; + takeCount: number; + wherePredicate: Predicate; + + constructor (resourceName?: string); + + execute(callback?: ExecuteQuerySuccessCallback, errorCallback?: ExecuteQueryErrorCallback): Promise; + executeLocally(): Entity[]; + expand(propertyPaths: string): EntityQuery; + static from(resourceName: string): EntityQuery; + from(resourceName: string): EntityQuery; + static fromEntities(entity: Entity): EntityQuery; + static fromEntities(entities: Entity[]): EntityQuery; + static fromEntityKey(entityKey: EntityKey): EntityQuery; + static fromEntityNavigation(entity: Entity, navigationProperty: NavigationProperty): EntityQuery; + orderBy(propertyPaths: string): EntityQuery; + orderByDesc(propertyPaths: string): EntityQuery; + select(propertyPaths: string): EntityQuery; + skip(count: number): EntityQuery; + take(count: number): EntityQuery; + top(count: number): EntityQuery; + + using(obj: EntityManager): EntityQuery; + using(obj: MergeStrategy): EntityQuery; + //using(obj: FetchStrategy): EntityQuery; !!! same signature as MergeStrategy + + where(predicate: Predicate): EntityQuery; + where(property: string, operator: string, value: any): EntityQuery; + where(property: string, operator: FilterQueryOp, value: any): EntityQuery; + where(predicate: FilterQueryOp): EntityQuery; + } + + interface OrderByClause { + } + + class EntityState { + static Added: EntityState; + static Deleted: EntityState; + static Detached: EntityState; + static Modified: EntityState; + static Unchanged: EntityState; + + isAdded(): bool; + isAddedModifiedOrDeleted(): bool; + isDeleted(): bool; + isDetached(): bool; + isModified(): bool; + isUnchanged(): bool; + isUnchangedOrModified(): bool; + } + + class EntityType { + autoGeneratedKeyType: AutoGeneratedKeyType; + concurrencyProperties: DataProperty[]; + dataProperties: DataProperty[]; + defaultResourceName: string; + foreignKeyProperties: DataProperty[]; + keyProperties: DataProperty[]; + metadataStore: MetadataStore; + name: string; + namespace: string; + navigationProperties: NavigationProperty[]; + shortName: string; + unmappedProperties: DataProperty[]; + validators: Validator[]; + + constructor (config: MetadataStore); + constructor (config: EntityTypeOptions); + + addProperty(property: DataProperty): void; + addProperty(property: NavigationProperty): void; + addValidator(validator: Validator, property?: any): void; + createEntity(): Entity; + getDataProperty(propertyName: string): DataProperty; + getEntityCtor(): Function; + getNavigationProperty(propertyName: string): NavigationProperty; + getProperties(): any; + getProperty(propertyPath: string, throwIfNotFound?: bool): any; + getPropertyNames(): string[]; + setProperties(config: EntityTypeProperties): void; + toString(): string; + } + + interface EntityTypeOptions { + metadataStore?: MetadataStore; + serviceName?: string; + shortName?: string; + namespace?: string; + defaultResourceName?: string; + } + + interface EntityTypeProperties { + autogeneratedKeyType?: AutoGeneratedKeyType; + defaultResourceName?: string; + } + + class FetchStrategy { + static FromLocalCache: MergeStrategy; + static FromServer: MergeStrategy; + } + + class FilterQueryOp { + static Contains: FilterQueryOp; + static EndsWith: FilterQueryOp; + static Equals: FilterQueryOp; + static GreaterThan: FilterQueryOp; + static GreaterThanOrEqual: FilterQueryOp; + static LessThan: FilterQueryOp; + static LessThanOrEqual: FilterQueryOp; + static NotEquals: FilterQueryOp; + static StartsWith: FilterQueryOp; + } + + class LocalQueryComparisonOptions { + static caseInsensitiveSQL: LocalQueryComparisonOptions; + static defaultInstance: LocalQueryComparisonOptions; + + constructor (config: { name?: string; isCaseSensitive?: bool; usesSql92CompliantStringComparison?: bool; }); + + setAsDefault(): void; + } + + class MergeStrategy { + static OverwriteChanges: MergeStrategy; + static PreserveChanges: MergeStrategy; + } + + class MetadataStore { + namingConvention: NamingConvention; + + constructor (config?: MetadataStoreOptions); + + exportMetadata(): string; + fetchMetadata(serviceName: string, remoteAccessImplementation?: RemoteAccessImplementation, callback?: (data) => void , errorCallback?: BreezeCore.ErrorCallback): Promise; + getEntityType(entityTypeName: string, okIfNotFound?: bool): EntityType; + getEntityTypes(): EntityType[]; + hasMetadataFor(serviceName: string): bool; + static importMetadata(exportedString: string): MetadataStore; + importMetadata(exportedString: string): MetadataStore; + isEmpty(): bool; + registerEntityTypeCtor(entityTypeName: string, entityCtor: Function, initializationFn?: (entity: Entity) =>void ): void; + trackUnmappedType(entityCtor: Function, interceptor?: Function); + } + + interface MetadataStoreOptions { + namingConvention?: NamingConvention; + localQueryComparisonOptions?: LocalQueryComparisonOptions; + } + + class NamingConvention { + static camelCase: NamingConvention; + static defaultInstance: NamingConvention; + static none: NamingConvention; + + constructor (config: NamingConventionOptions); + + clientPropertyNameToServer(clientPropertyName: string): string; + clientPropertyNameToServer(clientPropertyName: string, property: DataProperty): string; + clientPropertyNameToServer(clientPropertyName: string, property: NavigationProperty): string; + + serverPropertyNameToClient(serverPropertyName: string): string; + serverPropertyNameToClient(serverPropertyName: string, property: DataProperty): string; + serverPropertyNameToClient(serverPropertyName: string, property: NavigationProperty): string; + + setAsDefault(); + } + + interface NamingConventionOptions { + serverPropertyNameToClient?: Function; + clientPropertyNameToServer?: Function; + } + + class NavigationProperty { + associationName: string; + entityType: EntityType; + foreignKeyNames: string[]; + inverse: NavigationProperty; + isDataProperty: bool; + isNavigationProperty: bool; + isScalar: bool; + name: string; + parentEntityType: EntityType; + relatedDataProperties: DataProperty[]; + validators: Validator[]; + + constructor (config: NavigationPropertyOptions); + } + + interface NavigationPropertyOptions { + name?: string; + nameOnServer?: string; + entityTypeName: string; + isScalar?: bool; + associationName?: string; + foreignKeyNames?: string[]; + foreignKeyNamesOnServer?: string[]; + validators?: Validator[]; + } + + class Predicate { + constructor (property: string, operator: string, value: any); + constructor (property: string, operator: FilterQueryOp, value: any); + + and: PredicateMethod; + static and: PredicateMethod; + + static create: PredicateMethod; + + static isPredicate(o: any): bool; + + static not(predicate: Predicate): Predicate; + not(): Predicate; + + static or: PredicateMethod; + or: PredicateMethod; + + toFunction(): Function; + toString(): string; + validate(entityType: EntityType): bool; + } + + interface PredicateMethod { + (predicates: Predicate[]): Predicate; + (...predicates: Predicate[]): Predicate; + (property: string, operator: string, value: any): Predicate; + (property: string, operator: FilterQueryOp, value: any): Predicate; + } + + class Promise { + fail(errorCallback: Function): Promise; + fin(finallyCallback: Function): Promise; + then(callback: Function): Promise; + } + + class QueryOptions { + static defaultInstance: QueryOptions; + fetchStrategy: FetchStrategy; + mergeStrategy: MergeStrategy; + + constructor (config?: QueryOptionsConfiguration); + + setAsDefault(): void; + using(config: QueryOptionsConfiguration): QueryOptions; + using(config: MergeStrategy): QueryOptions; + // using(config: FetchStrategy): QueryOptions; !!! same signature as MergeStrategy + } + + interface QueryOptionsConfiguration { + fetchStrategy?: FetchStrategy; + mergeStrategy?: MergeStrategy; + } + + class SaveOptions { + allowConcurrentSaves: bool; + static defaultInstance: SaveOptions; + + constructor (config?: { allowConcurrentSaves?: bool; }); + + setAsDefault(): SaveOptions; + } + + class ValidationError { + context: any; + errorMessage: string; + property: any; // DataProperty | NavigationProperty + validator: Validator; + + constructor (validator: Validator, context: any, errorMessage: string); + } + + class ValidationOptions { + static defaultInstance: ValidationOptions; + validateOnAttach: bool; + validateOnPropertyChange: bool; + validateOnQuery: bool; + validateOnSave: bool; + + constructor (config?: ValidationOptionsConfiguration); + + setAsDefault(): ValidationOptions; + using(config: ValidationOptionsConfiguration): ValidationOptions; + } + + interface ValidationOptionsConfiguration { + validateOnAttach?: bool; + validateOnSave?: bool; + validateOnQuery?: bool; + validateOnPropertyChange?: bool; + } + + class Validator { + static messageTemplates: any; + + constructor (name: string, validatorFn: ValidatorFunction, context?: any); + + static bool(): Validator; + static byte(): Validator; + static date(): Validator; + getMessage(): string; + static guid(): Validator; + static int16(): Validator; + static int32(): Validator; + static int64(): Validator; + static maxLength(context: { maxLength: number; }): Validator; + static number(): Validator; + static required(): Validator; + static string(): Validator; + static stringLength(context: { maxLength: number; minLength: number; }): Validator; + } + + interface ValidatorFunction { + (value: any, context: ValidatorFunctionContext): void; + } + + interface ValidatorFunctionContext { + value: any; + validatorName: string; + displayName: string; + messageTemplate: string; + message?: string; + } } \ No newline at end of file diff --git a/breeze/breeze-tests.ts b/breeze/breeze-tests.ts index 9929af193..2f3e7e23d 100644 --- a/breeze/breeze-tests.ts +++ b/breeze/breeze-tests.ts @@ -1,18 +1,21 @@ /// +import breeze = module(Breeze); +import core = module(BreezeCore); + function test_dataProperty() { - var lastNameProp = new DataProperty({ + var lastNameProp = new breeze.DataProperty({ name: "lastName", - dataType: DataType.String, + dataType: breeze.DataType.String, isNullable: true, maxLength: 20 }); - var personEntityType: EntityType; + var personEntityType: breeze.EntityType; personEntityType.addProperty(lastNameProp); } function test_entityAspect() { - var order: Entity; + var order: breeze.Entity; order.entityAspect.acceptChanges(); var entityKey = order.entityAspect.getKey(); var valErrors = order.entityAspect.getValidationErrors(); @@ -50,34 +53,34 @@ function test_entityAspect() { } function test_entityKey() { - var em1: EntityManager; - var employee1: Entity; + var em1: breeze.EntityManager; + var employee1: breeze.Entity; var empType = em1.metadataStore.getEntityType("Employee"); - var entityKey = new EntityKey(empType, 1); + var entityKey = new breeze.EntityKey(empType, 1); var empKey = employee1.entityAspect.getKey(); var empTerrType = em1.metadataStore.getEntityType("EmployeeTerritory"); - var empTerrKey = new EntityKey(empTerrType, [1, 77]); + var empTerrKey = new breeze.EntityKey(empTerrType, [1, 77]); var empType = em1.metadataStore.getEntityType("Employee"); - var empKey1 = new EntityKey(empType, 1); + var empKey1 = new breeze.EntityKey(empType, 1); var empKey2 = employee1.entityAspect.getKey(); if (empKey1.equals(empKey2)) { } - if (EntityKey.equals(empKey1, empKey2)) { } + if (breeze.EntityKey.equals(empKey1, empKey2)) { } } function test_metadataStore() { - var ms = new MetadataStore(); - var entityManager = new EntityManager({ + var ms = new breeze.MetadataStore(); + var entityManager = new breeze.EntityManager({ serviceName: "api/NorthwindIBModel", metadataStore: ms }); - var em1: EntityManager; + var em1: breeze.EntityManager; em1.setProperties({ metadataStore: ms }); var metadataAsString = ms.exportMetadata(); window.localStorage.setItem("metadata", metadataAsString); var metadataFromStorage = window.localStorage.getItem("metadata"); - var newMetadataStore = new MetadataStore(); + var newMetadataStore = new breeze.MetadataStore(); newMetadataStore.importMetadata(metadataFromStorage); - var ms = new MetadataStore(); + var ms = new breeze.MetadataStore(); ms.fetchMetadata("api/NorthwindIBModel") .then(function (rawMetadata) { }) .fail(function (exception) { }); @@ -88,11 +91,11 @@ function test_metadataStore() { var metadataAsString = ms.exportMetadata(); window.localStorage.setItem("metadata", metadataAsString); var metadataFromStorage = window.localStorage.getItem("metadata"); - var newMetadataStore = MetadataStore.importMetadata(metadataFromStorage); + var newMetadataStore = breeze.MetadataStore.importMetadata(metadataFromStorage); var metadataAsString = ms.exportMetadata(); window.localStorage.setItem("metadata", metadataAsString); var metadataFromStorage = window.localStorage.getItem("metadata"); - var newMetadataStore = new MetadataStore(); + var newMetadataStore = new breeze.MetadataStore(); newMetadataStore.importMetadata(metadataFromStorage); if (em1.metadataStore.isEmpty()) { } var Customer = function () { @@ -102,27 +105,27 @@ function test_metadataStore() { } function test_entityManager() { - var entityManager = new EntityManager("api/NorthwindIBModel"); - var entityManager = new EntityManager({ serviceName: "api/NorthwindIBModel" }); - var metadataStore = new MetadataStore(); - var entityManager = new EntityManager({ + var entityManager = new breeze.EntityManager("api/NorthwindIBModel"); + var entityManager = new breeze.EntityManager({ serviceName: "api/NorthwindIBModel" }); + var metadataStore = new breeze.MetadataStore(); + var entityManager = new breeze.EntityManager({ serviceName: "api/NorthwindIBModel", metadataStore: metadataStore }); - return new QueryOptions({ + return new breeze.QueryOptions({ mergeStrategy: null, fetchStrategy: this.fetchStrategy }); - var queryOptions = new QueryOptions({ - mergeStrategy: MergeStrategy.OverwriteChanges, - fetchStrategy: FetchStrategy.FromServer + var queryOptions = new breeze.QueryOptions({ + mergeStrategy: breeze.MergeStrategy.OverwriteChanges, + fetchStrategy: breeze.FetchStrategy.FromServer }); - var validationOptions = new ValidationOptions({ + var validationOptions = new breeze.ValidationOptions({ validateOnAttach: true, validateOnSave: true, validateOnQuery: false }); - var entityManager = new EntityManager({ + var entityManager = new breeze.EntityManager({ serviceName: "api/NorthwindIBModel", queryOptions: queryOptions, validationOptions: validationOptions @@ -130,38 +133,38 @@ function test_entityManager() { var custType = em1.metadataStore.getEntityType("Customer"); var cust1 = custType.createEntity(); em1.addEntity(cust1); - em1.attachEntity(cust1, EntityState.Added); + em1.attachEntity(cust1, breeze.EntityState.Added); em1.clear(); var em2 = em1.createEmptyCopy(); em1.detachEntity(cust1); var serviceName: string; - var em = new EntityManager(serviceName); - var query = new EntityQuery("Orders"); + var em = new breeze.EntityManager(serviceName); + var query = new breeze.EntityQuery("Orders"); em.executeQuery(query) .then(function (data) { var orders = data.results; }).fail(function (err) { }); - var em = new EntityManager(serviceName); - var query = new EntityQuery("Orders"); + var em = new breeze.EntityManager(serviceName); + var query = new breeze.EntityQuery("Orders"); em.executeQuery(query, function (data) { var orders = data.results; }, function (err) { }); - var em = new EntityManager(serviceName); - var query = new EntityQuery("Orders").using(em); + var em = new breeze.EntityManager(serviceName); + var query = new breeze.EntityQuery("Orders").using(em); query.execute() .then(function (data) { var orders = data.results; }).fail(function (err) { }); - var em = new EntityManager(serviceName); - var query = new EntityQuery("Orders"); + var em = new breeze.EntityManager(serviceName); + var query = new breeze.EntityQuery("Orders"); var orders = em.executeQueryLocally(query); - var em = new EntityManager(serviceName); - var query = new EntityQuery("Orders").using(FetchStrategy.FromLocalCache); + var em = new breeze.EntityManager(serviceName); + var query = new breeze.EntityQuery("Orders").using(breeze.FetchStrategy.FromLocalCache); em.executeQuery(query) .then(function (data) { var orders = data.results; @@ -170,15 +173,15 @@ function test_entityManager() { var bundle = em1.exportEntities(); window.localStorage.setItem("myEntityManager", bundle); var bundleFromStorage = window.localStorage.getItem("myEntityManager"); - var em2 = new EntityManager({ + var em2 = new breeze.EntityManager({ serviceName: em1.serviceName, metadataStore: em1.metadataStore }); em2.importEntities(bundleFromStorage); - var entitiesToExport: Entity[]; + var entitiesToExport: breeze.Entity[]; var bundle = em1.exportEntities(entitiesToExport); - em2.importEntities(bundle, { mergeStrategy: MergeStrategy.PreserveChanges }); - var em1 = new EntityManager("api/NorthwindIBModel"); + em2.importEntities(bundle, { mergeStrategy: breeze.MergeStrategy.PreserveChanges }); + var em1 = new breeze.EntityManager("api/NorthwindIBModel"); em1.fetchMetadata() .then(function () { var metadataStore = em1.metadataStore; @@ -186,7 +189,7 @@ function test_entityManager() { .fail(function (exception) { }); var employeeType = em1.metadataStore.getEntityType("Employee"); - var employeeKey = new EntityKey(employeeType, 1); + var employeeKey = new breeze.EntityKey(employeeType, 1); var employee = em1.findEntityByKey(employeeKey); var custType = em1.metadataStore.getEntityType("Customer"); var custumer = custType.createEntity(); @@ -209,7 +212,7 @@ function test_entityManager() { var customersAndOrders = em1.getChanges([custType, orderType]); var custType = em1.metadataStore.getEntityType("Customer"); var orderType = em1.metadataStore.getEntityType("Order"); - var addedCustomersAndOrders = em1.getEntities([custType, orderType], EntityState.Added); + var addedCustomersAndOrders = em1.getEntities([custType, orderType], breeze.EntityState.Added); if (em1.hasChanges()) { } var custType = em1.metadataStore.getEntityType("Customer"); if (em1.hasChanges(custType)) { } @@ -219,22 +222,22 @@ function test_entityManager() { var bundle = em1.exportEntities(); window.localStorage.setItem("myEntityManager", bundle); var bundleFromStorage = window.localStorage.getItem("myEntityManager"); - var em2 = EntityManager.importEntities(bundleFromStorage); + var em2 = breeze.EntityManager.importEntities(bundleFromStorage); var bundle = em1.exportEntities(); - var em2 = new EntityManager({ + var em2 = new breeze.EntityManager({ serviceName: em1.serviceName, metadataStore: em1.metadataStore }); em2.importEntities(bundle); var bundle = em1.exportEntities(); - em2.importEntities(bundle, { mergeStrategy: MergeStrategy.PreserveChanges }); + em2.importEntities(bundle, { mergeStrategy: breeze.MergeStrategy.PreserveChanges }); em.saveChanges().then(function (saveResult) { var savedEntities = saveResult.entities; var keyMappings = saveResult.keyMappings; }).fail(function (e) { }); - var saveOptions = new SaveOptions({ allowConcurrentSaves: true }); - var entitiesToSave: Entity[]; + var saveOptions = new breeze.SaveOptions({ allowConcurrentSaves: true }); + var entitiesToSave: breeze.Entity[]; em.saveChanges(entitiesToSave, saveOptions).then(function (saveResult) { var savedEntities = saveResult.entities; var keyMappings = saveResult.keyMappings; @@ -249,12 +252,12 @@ function test_entityManager() { em1.setProperties({ serviceName: "api/foo", }); - var em = new EntityManager({ serviceName: "api/NorthwindIBModel" }); + var em = new breeze.EntityManager({ serviceName: "api/NorthwindIBModel" }); em.entityChanged.subscribe(function (changeArgs) { var action = changeArgs.entityAction; var entity = changeArgs.entity; }); - var em = new EntityManager({ serviceName: "api/NorthwindIBModel" }); + var em = new breeze.EntityManager({ serviceName: "api/NorthwindIBModel" }); em.hasChanges.subscribe(function (args) { var hasChanges = args.hasChanges; var entityManager = args.entityManager; @@ -262,146 +265,146 @@ function test_entityManager() { } function test_entityQuery() { - var query = new EntityQuery("Customers"); - var query = new EntityQuery("Customers") + var query = new breeze.EntityQuery("Customers"); + var query = new breeze.EntityQuery("Customers") .where("CompanyName", "startsWith", "C") .orderBy("Region"); var serviceName: string; - var em = new EntityManager(serviceName); - var query = new EntityQuery("Orders").using(em); + var em = new breeze.EntityManager(serviceName); + var query = new breeze.EntityQuery("Orders").using(em); query.execute() .then(function (data) { }) .fail(function (err) { }); - var em = new EntityManager(serviceName); - var query = new EntityQuery("Orders").using(em); + var em = new breeze.EntityManager(serviceName); + var query = new breeze.EntityQuery("Orders").using(em); query.execute( function (data) { var orders = data.results; }, function (err) { }); - var em = new EntityManager(serviceName); - var query = new EntityQuery("Orders"); + var em = new breeze.EntityManager(serviceName); + var query = new breeze.EntityQuery("Orders"); em.executeQuery(query) .then(function (data) { var orders = data.results; }).fail(function (err) { }); - var query = new EntityQuery("Orders").using(em); + var query = new breeze.EntityQuery("Orders").using(em); var orders = query.executeLocally(); - var query = new EntityQuery("Customers") + var query = new breeze.EntityQuery("Customers") .where("CompanyName", "startsWith", "C") .expand("Orders"); - var query = new EntityQuery("Orders") + var query = new breeze.EntityQuery("Orders") .expand("Customer, Employee"); - var query = new EntityQuery("Orders") + var query = new breeze.EntityQuery("Orders") .expand("Customer, OrderDetails, OrderDetails.Product"); - var query = EntityQuery.from("Customers"); - var query = new EntityQuery("Customers"); - var query = new EntityQuery().from("Customers"); - var customer: Entity; - var customers: Entity[]; - var customersQuery = EntityQuery.fromEntities(customers); - var customersQuery = EntityQuery.fromEntities(customers) - .where("Region", FilterQueryOp.NotEquals, null); - var customerQuery = EntityQuery.fromEntities(customer); - var metadataStore: MetadataStore; + var query = breeze.EntityQuery.from("Customers"); + var query = new breeze.EntityQuery("Customers"); + var query = new breeze.EntityQuery().from("Customers"); + var customer: breeze.Entity; + var customers: breeze.Entity[]; + var customersQuery = breeze.EntityQuery.fromEntities(customers); + var customersQuery = breeze.EntityQuery.fromEntities(customers) + .where("Region", breeze.FilterQueryOp.NotEquals, null); + var customerQuery = breeze.EntityQuery.fromEntities(customer); + var metadataStore: breeze.MetadataStore; var empType = metadataStore.getEntityType("Employee"); - var entityKey = new EntityKey(empType, 1); - var query = EntityQuery.fromEntityKey(entityKey); - var employee: Entity; + var entityKey = new breeze.EntityKey(empType, 1); + var query = breeze.EntityQuery.fromEntityKey(entityKey); + var employee: breeze.Entity; var entityKey = employee.entityAspect.getKey(); - var query = EntityQuery.fromEntityKey(entityKey); + var query = breeze.EntityQuery.fromEntityKey(entityKey); var ordersNavProp = employee.entityType.getProperty("Orders"); - var query = EntityQuery.fromEntityNavigation(employee, ordersNavProp); - var query = new EntityQuery("Customers") + var query = breeze.EntityQuery.fromEntityNavigation(employee, ordersNavProp); + var query = new breeze.EntityQuery("Customers") .orderBy("CompanyName"); - var query = new EntityQuery("Customers") + var query = new breeze.EntityQuery("Customers") .orderBy("Region, CompanyName"); - var query = new EntityQuery("Products") + var query = new breeze.EntityQuery("Products") .orderBy("Category.CategoryName"); - var query = new EntityQuery("Customers") + var query = new breeze.EntityQuery("Customers") .orderBy("CompanyName desc"); - var query = new EntityQuery("Customers") + var query = new breeze.EntityQuery("Customers") .orderBy("Region desc, CompanyName desc"); - var query = new EntityQuery("Customers") + var query = new breeze.EntityQuery("Customers") .orderByDesc("CompanyName"); - var query = new EntityQuery("Customers") + var query = new breeze.EntityQuery("Customers") .where("CompanyName", "startsWith", "C") .select("CompanyName"); - var query = new EntityQuery("Customers") + var query = new breeze.EntityQuery("Customers") .where("CompanyName", "startsWith", "C") .select("Orders"); - var query = new EntityQuery("Customers") + var query = new breeze.EntityQuery("Customers") .where("CompanyName", "startsWith", "C") .select("CompanyName, Orders"); - var query = new EntityQuery("Orders") + var query = new breeze.EntityQuery("Orders") .where("Customer.CompanyName", "startsWith", "C") .select("Customer.CompanyName, Customer, OrderDate"); - var query = new EntityQuery("Customers") + var query = new breeze.EntityQuery("Customers") .where("CompanyName", "startsWith", "C") .skip(5); - var query = new EntityQuery("Customers") + var query = new breeze.EntityQuery("Customers") .take(5); - var query = new EntityQuery("Customers") + var query = new breeze.EntityQuery("Customers") .top(5); - var em = new EntityManager(serviceName); - var query = new EntityQuery("Orders") + var em = new breeze.EntityManager(serviceName); + var query = new breeze.EntityQuery("Orders") .using(em); - var em = new EntityManager(serviceName); - var query = new EntityQuery("Orders") - .using(MergeStrategy.PreserveChanges); - var em = new EntityManager(serviceName); - var query = new EntityQuery("Orders") - .using(FetchStrategy.FromLocalCache); - var query = new EntityQuery("Customers") + var em = new breeze.EntityManager(serviceName); + var query = new breeze.EntityQuery("Orders") + .using(breeze.MergeStrategy.PreserveChanges); + var em = new breeze.EntityManager(serviceName); + var query = new breeze.EntityQuery("Orders") + .using(breeze.FetchStrategy.FromLocalCache); + var query = new breeze.EntityQuery("Customers") .where("CompanyName", "startsWith", "C"); - var query = new EntityQuery("Customers") - .where("CompanyName", FilterQueryOp.StartsWith, "C"); - var pred = new Predicate("CompanyName", FilterQueryOp.StartsWith, "C"); - var query = new EntityQuery("Customers") + var query = new breeze.EntityQuery("Customers") + .where("CompanyName", breeze.FilterQueryOp.StartsWith, "C"); + var pred = new breeze.Predicate("CompanyName", breeze.FilterQueryOp.StartsWith, "C"); + var query = new breeze.EntityQuery("Customers") .where(pred); - var pred = Predicate.create("CompanyName", "startswith", "C").and("Region", FilterQueryOp.Equals, null); - var query = new EntityQuery("Customers") + var pred = breeze.Predicate.create("CompanyName", "startswith", "C").and("Region", breeze.FilterQueryOp.Equals, null); + var query = new breeze.EntityQuery("Customers") .where(pred); - var query = new EntityQuery("Products") + var query = new breeze.EntityQuery("Products") .where("Category.CategoryName", "startswith", "S"); - var query = new EntityQuery("Customers") + var query = new breeze.EntityQuery("Customers") .where("toLower(CompanyName)", "startsWith", "c"); - var query = new EntityQuery("Customers") - .where("toUpper(substring(CompanyName, 1, 2))", FilterQueryOp.Equals, "OM"); + var query = new breeze.EntityQuery("Customers") + .where("toUpper(substring(CompanyName, 1, 2))", breeze.FilterQueryOp.Equals, "OM"); } function test_entityState() { - var anEntity: Entity; + var anEntity: breeze.Entity; var es = anEntity.entityAspect.entityState; return es.isAdded(); - return es === EntityState.Added; + return es === breeze.EntityState.Added; var es = anEntity.entityAspect.entityState; return es.isAddedModifiedOrDeleted(); - return es === EntityState.Added || es === EntityState.Modified || es === EntityState.Deleted; + return es === breeze.EntityState.Added || es === breeze.EntityState.Modified || es === breeze.EntityState.Deleted; var es = anEntity.entityAspect.entityState; return es.isDeleted(); - return es === EntityState.Deleted; + return es === breeze.EntityState.Deleted; var es = anEntity.entityAspect.entityState; return es.isDetached(); - return es === EntityState.Detached; + return es === breeze.EntityState.Detached; var es = anEntity.entityAspect.entityState; return es.isModified(); - return es === EntityState.Modified; + return es === breeze.EntityState.Modified; var es = anEntity.entityAspect.entityState; return es.isUnchanged(); - return es === EntityState.Unchanged; + return es === breeze.EntityState.Unchanged; var es = anEntity.entityAspect.entityState; return es.isUnchangedOrModified(); - return es === EntityState.Unchanged || es === EntityState.Modified; + return es === breeze.EntityState.Unchanged || es === breeze.EntityState.Modified; } function test_entityType() { - var myMetadataStore: MetadataStore; - var myEntityType: EntityType; - var dataProperty1, dataProperty2, navigationProperty1: DataProperty; - var em1: EntityManager; - var entityManager = new EntityType({ + var myMetadataStore: breeze.MetadataStore; + var myEntityType: breeze.EntityType; + var dataProperty1, dataProperty2, navigationProperty1: breeze.DataProperty; + var em1: breeze.EntityManager; + var entityManager = new breeze.EntityType({ metadataStore: myMetadataStore, serviceName: "api/NorthwindIBModel", name: "person", @@ -416,11 +419,11 @@ function test_entityType() { if (v == null) return true; return (core.stringStartsWith(v, "US")); }; - var countryValidator = new Validator("countryIsUS", valFn, + var countryValidator = new breeze.Validator("countryIsUS", valFn, { displayName: "Country", messageTemplate: "'%displayName%' must start with 'US'" }); custType.addValidator(countryValidator, countryProp); countryProp.validators.push(countryValidator); - var someEntityLevelValidator: Validator; + var someEntityLevelValidator: breeze.Validator; custType.addValidator(someEntityLevelValidator); custType.validators.push(someEntityLevelValidator); var custType = em1.metadataStore.getEntityType("Customer"); @@ -440,7 +443,7 @@ function test_entityType() { var arrayOfPropNames = custType.getPropertyNames(); var custType = em1.metadataStore.getEntityType("Customer"); custType.setProperties({ - autoGeneratedKeyType: AutoGeneratedKeyType.Identity, + autoGeneratedKeyType: breeze.AutoGeneratedKeyType.Identity, defaultResourceName: "CustomersAndIncludedOrders" }); } @@ -452,14 +455,14 @@ function test_enum() { return DayOfWeek.getSymbols()[nextIndex]; } }; - var DayOfWeek = new Enum("DayOfWeek", prototype); + var DayOfWeek = new core.Enum("DayOfWeek", prototype); DayOfWeek.Monday = DayOfWeek.addSymbol({ dayIndex: 0 }); var symbol = DayOfWeek.Friday; if (DayOfWeek.contains(symbol)) { } var dayOfWeek = DayOfWeek.from("Thursday"); var symbols = DayOfWeek.getNames(); var symbols = DayOfWeek.getSymbols(); - if (Enum.isSymbol(DayOfWeek.Wednesday)) { }; + if (core.Enum.isSymbol(DayOfWeek.Wednesday)) { }; DayOfWeek.seal(); var name = DayOfWeek.Monday.getName(); var name = DayOfWeek.Monday.toString(); @@ -471,7 +474,7 @@ function test_enum() { return DayOfWeek.getSymbols()[nextIndex]; } }; - var DayOfWeek = new Enum("DayOfWeek", prototype); + var DayOfWeek = new core.Enum("DayOfWeek", prototype); DayOfWeek.Monday = DayOfWeek.addSymbol({ dayIndex: 0 }); DayOfWeek.Tuesday = DayOfWeek.addSymbol({ dayIndex: 1 }); DayOfWeek.Wednesday = DayOfWeek.addSymbol({ dayIndex: 2 }); @@ -484,8 +487,8 @@ function test_enum() { DayOfWeek.Sunday.nextDay() === DayOfWeek.Monday; DayOfWeek.Tuesday.isWeekend === undefined; DayOfWeek.Saturday.isWeekend == true; - DayOfWeek instanceof Enum; - Enum.isSymbol(DayOfWeek.Wednesday); + DayOfWeek instanceof core.Enum; + core.Enum.isSymbol(DayOfWeek.Wednesday); DayOfWeek.contains(DayOfWeek.Thursday); DayOfWeek.Tuesday.parentEnum == DayOfWeek; DayOfWeek.getSymbols().length === 7; @@ -493,17 +496,17 @@ function test_enum() { } function test_event() { - var myEntityManager: EntityManager; - var myEntity, person: Entity; - var salaryEvent = new BreezeEvent("salaryEvent", person); - BreezeEvent.enable("propertyChanged", myEntityManager, false); - BreezeEvent.enable("propertyChanged", myEntityManager, true); - BreezeEvent.enable("propertyChanged", myEntity.entityAspect, false); - BreezeEvent.enable("propertyChanged", myEntity.entityAspect, null); - BreezeEvent.enable("validationErrorsChanged", myEntityManager, function (em) { + var myEntityManager: breeze.EntityManager; + var myEntity, person: breeze.Entity; + var salaryEvent = new core.Event("salaryEvent", person); + core.Event.enable("propertyChanged", myEntityManager, false); + core.Event.enable("propertyChanged", myEntityManager, true); + core.Event.enable("propertyChanged", myEntity.entityAspect, false); + core.Event.enable("propertyChanged", myEntity.entityAspect, null); + core.Event.enable("validationErrorsChanged", myEntityManager, function (em) { return em.customTag === "blue"; }); - BreezeEvent.isEnabled("propertyChanged", myEntityManager); + core.Event.isEnabled("propertyChanged", myEntityManager); salaryEvent.publish({ eventType: "payRaise", amount: 100 }); salaryEvent.publish({ eventType: "payRaise", amount: 100 }, true); salaryEvent.publish({ eventType: "payRaise", amount: 100 }, true, function (error) { }); @@ -512,7 +515,7 @@ function test_event() { salaryEvent.subscribe(function (eventArgs) { if (eventArgs.eventType === "payRaise") { } }); - var order: Entity; + var order: breeze.Entity; order.entityAspect.propertyChanged.subscribe(function (pcEvent) { if (pcEvent.propertyName === "OrderDate") { } }); @@ -521,15 +524,15 @@ function test_event() { } function test_localQueryComparisonOptions() { - var lqco = new LocalQueryComparisonOptions({ + var lqco = new breeze.LocalQueryComparisonOptions({ name: "caseSensitive-nonSQL", isCaseSensitive: true, usesSql92CompliantStringComparison: false }); lqco.setAsDefault(); - var ms = new MetadataStore({ localQueryComparisonOptions: lqco }); - var em = new EntityManager({ metadataStore: ms }); - var lqco = new LocalQueryComparisonOptions({ + var ms = new breeze.MetadataStore({ localQueryComparisonOptions: lqco }); + var em = new breeze.EntityManager({ metadataStore: ms }); + var lqco = new breeze.LocalQueryComparisonOptions({ isCaseSensitive: false, usesSql92CompliantStringComparison: true }); @@ -537,7 +540,7 @@ function test_localQueryComparisonOptions() { } function test_namingConventions() { - var namingConv = new NamingConvention({ + var namingConv = new breeze.NamingConvention({ serverPropertyNameToClient: function (serverPropertyName) { return serverPropertyName.substr(0, 1).toLowerCase() + serverPropertyName.substr(1); }, @@ -545,9 +548,9 @@ function test_namingConventions() { return clientPropertyName.substr(0, 1).toUpperCase() + clientPropertyName.substr(1); } }); - var ms = new MetadataStore({ namingConvention: namingConv }); - var em = new EntityManager({ metadataStore: ms }); - var namingConv = new NamingConvention({ + var ms = new breeze.MetadataStore({ namingConvention: namingConv }); + var em = new breeze.EntityManager({ metadataStore: ms }); + var namingConv = new breeze.NamingConvention({ serverPropertyNameToClient: function (serverPropertyName) { return serverPropertyName.substr(0, 1).toLowerCase() + serverPropertyName.substr(1); }, @@ -559,103 +562,103 @@ function test_namingConventions() { } function test_navigationProperty() { - var homeAddressProp = new NavigationProperty({ + var homeAddressProp = new breeze.NavigationProperty({ name: "homeAddress", entityTypeName: "Address:#myNamespace", isScalar: true, associationName: "address_person", foreignKeyNames: ["homeAddressId"] }); - var homeAddressIdProp = new DataProperty({ + var homeAddressIdProp = new breeze.DataProperty({ name: "homeAddressId", - dataType: DataType.Int32 + dataType: breeze.DataType.Int32 }); - var personEntityType: EntityType; + var personEntityType: breeze.EntityType; personEntityType.addProperty(homeAddressProp); personEntityType.addProperty(homeAddressIdProp); } function test_predicate() { - var p1 = new Predicate("CompanyName", "StartsWith", "B"); - var query = new EntityQuery("Customers").where(p1); - var p2 = new Predicate("Region", FilterQueryOp.Equals, null); - var query = new EntityQuery("Customers").where(p2); + var p1 = new breeze.Predicate("CompanyName", "StartsWith", "B"); + var query = new breeze.EntityQuery("Customers").where(p1); + var p2 = new breeze.Predicate("Region", breeze.FilterQueryOp.Equals, null); + var query = new breeze.EntityQuery("Customers").where(p2); var dt = new Date(88, 9, 12); - var p1 = Predicate.create("OrderDate", "ne", dt); - var p2 = Predicate.create("ShipCity", "startsWith", "C"); - var p3 = Predicate.create("Freight", ">", 100); + var p1 = breeze.Predicate.create("OrderDate", "ne", dt); + var p2 = breeze.Predicate.create("ShipCity", "startsWith", "C"); + var p3 = breeze.Predicate.create("Freight", ">", 100); var newPred = p1.and(p2, p3); var preds = [p2, p3]; var newPred = p1.and(preds); - var p4 = Predicate.create("ShipCity", "startswith", "F") + var p4 = breeze.Predicate.create("ShipCity", "startswith", "F") .and("Size", "gt", 2000); var dt = new Date(88, 9, 12); - var p1 = Predicate.create("OrderDate", "ne", dt); - var p2 = Predicate.create("ShipCity", "startsWith", "C"); - var p3 = Predicate.create("Freight", ">", 100); - var newPred = Predicate.and(p1, p2, p3); + var p1 = breeze.Predicate.create("OrderDate", "ne", dt); + var p2 = breeze.Predicate.create("ShipCity", "startsWith", "C"); + var p3 = breeze.Predicate.create("Freight", ">", 100); + var newPred = breeze.Predicate.and(p1, p2, p3); var preds = [p1, p2, p3]; - var newPred = Predicate.and(preds); - var p1 = Predicate.create("Freight", "gt", 100); + var newPred = breeze.Predicate.and(preds); + var p1 = breeze.Predicate.create("Freight", "gt", 100); var predArgs: any[] = ["Freight", "gt", 100]; - var p1 = Predicate.create(predArgs); - var p1 = new Predicate("Freight", "gt", 100); - var p1 = new Predicate("CompanyName", "StartsWith", "B"); - if (Predicate.isPredicate(p1)) { } - var p1 = Predicate.create("Freight", "gt", 100); - var not_p1 = Predicate.not(p1); + var p1 = breeze.Predicate.create(predArgs); + var p1 = new breeze.Predicate("Freight", "gt", 100); + var p1 = new breeze.Predicate("CompanyName", "StartsWith", "B"); + if (breeze.Predicate.isPredicate(p1)) { } + var p1 = breeze.Predicate.create("Freight", "gt", 100); + var not_p1 = breeze.Predicate.not(p1); var not_p1 = p1.not(); - var not_p1 = Predicate.create("Freight", "le", 100); + var not_p1 = breeze.Predicate.create("Freight", "le", 100); var dt = new Date(88, 9, 12); - var p1 = Predicate.create("OrderDate", "ne", dt); - var p2 = Predicate.create("ShipCity", "startsWith", "C"); - var p3 = Predicate.create("Freight", ">", 100); - var newPred = Predicate.or(p1, p2, p3); + var p1 = breeze.Predicate.create("OrderDate", "ne", dt); + var p2 = breeze.Predicate.create("ShipCity", "startsWith", "C"); + var p3 = breeze.Predicate.create("Freight", ">", 100); + var newPred = breeze.Predicate.or(p1, p2, p3); var preds = [p1, p2, p3]; - var newPred = Predicate.or(preds); + var newPred = breeze.Predicate.or(preds); var dt = new Date(88, 9, 12); - var p1 = Predicate.create("OrderDate", "ne", dt); - var p2 = Predicate.create("ShipCity", "startsWith", "C"); - var p3 = Predicate.create("Freight", ">", 100); + var p1 = breeze.Predicate.create("OrderDate", "ne", dt); + var p2 = breeze.Predicate.create("ShipCity", "startsWith", "C"); + var p3 = breeze.Predicate.create("Freight", ">", 100); var newPred = p1.and(p2, p3); var preds = [p2, p3]; var newPred = p1.and(preds); - var p4 = Predicate.create("ShipCity", "startswith", "F") + var p4 = breeze.Predicate.create("ShipCity", "startswith", "F") .or("Size", "gt", 2000); } function test_queryOptions() { - var em1: EntityManager; - var newQo = new QueryOptions({ mergeStrategy: MergeStrategy.OverwriteChanges }); + var em1: breeze.EntityManager; + var newQo = new breeze.QueryOptions({ mergeStrategy: breeze.MergeStrategy.OverwriteChanges }); em1.setProperties({ queryOptions: newQo }); - var newQo = new QueryOptions({ mergeStrategy: MergeStrategy.OverwriteChanges }); + var newQo = new breeze.QueryOptions({ mergeStrategy: breeze.MergeStrategy.OverwriteChanges }); newQo.setAsDefault(); - var queryOptions = em1.defaultQueryOptions.using(MergeStrategy.PreserveChanges); - var queryOptions = em1.defaultQueryOptions.using(FetchStrategy.FromLocalCache); - var queryOptions = em1.defaultQueryOptions.using({ mergeStrategy: OverwriteChanges }); + var queryOptions = em1.defaultQueryOptions.using(breeze.MergeStrategy.PreserveChanges); + var queryOptions = em1.defaultQueryOptions.using(breeze.FetchStrategy.FromLocalCache); + var queryOptions = em1.defaultQueryOptions.using({ mergeStrategy: breeze.MergeStrategy.OverwriteChanges }); } function test_validationOptions() { - var newVo = new ValidationOptions({ validateOnSave: false, validateOnAttach: false }); - var em1: EntityManager; + var newVo = new breeze.ValidationOptions({ validateOnSave: false, validateOnAttach: false }); + var em1: breeze.EntityManager; em1.setProperties({ validationOptions: newVo }); - var validationOptions = new ValidationOptions() + var validationOptions = new breeze.ValidationOptions() var newOptions = validationOptions.using({ validateOnQuery: true, validateOnSave: false }); newOptions.setAsDefault(); - var validationOptions = new ValidationOptions(); + var validationOptions = new breeze.ValidationOptions(); var newOptions = validationOptions.using({ validateOnQuery: true, validateOnSave: false }); } function test_validator() { var valFn = function (v) { if (v == null) return true; - return (core.stringStartsWith(v, "US")); + return (stringStartsWith(v, "US")); }; - var countryValidator = new Validator("countryIsUS", valFn, { + var countryValidator = new breeze.Validator("countryIsUS", valFn, { displayName: "Country", messageTemplate: "'%displayName%' must start with 'US'" }); - var metadataStore: MetadataStore; + var metadataStore: breeze.MetadataStore; var custType = metadataStore.getEntityType("Customer"); var countryProp = custType.getProperty("Country"); prop.validators.push(countryValidator); @@ -670,9 +673,9 @@ function test_validator() { } return true; }; - var zipCodeValidator = new Validator("zipCodeValidator", valFn, + var zipCodeValidator = new breeze.Validator("zipCodeValidator", valFn, { messageTemplate: "For the US, this is not a valid PostalCode" }); - var em1: EntityManager; + var em1: breeze.EntityManager; var custType = em1.metadataStore.getEntityType("Customer"); custType.validators.push(zipCodeValidator); var numericRangeValidator = function (context) { @@ -683,7 +686,7 @@ function test_validator() { if (ctx.max != null && v > ctx.max) return false; return true; }; - return new Validator("numericRange", valFn, { + return new breeze.Validator("numericRange", valFn, { messageTemplate: "'%displayName%' must be an integer between the values of %min% and %max%", min: context.min, max: context.max @@ -692,44 +695,44 @@ function test_validator() { freightProperty.validators.push(numericRangeValidator({ min: 100, max: 500 })); var productType = em1.metadataStore.getEntityType("Product"); var discontinuedProperty = productType.getProperty("Discontinued"); - discontinuedProperty.validators.push(Validator.bool()); + discontinuedProperty.validators.push(breeze.Validator.bool()); var orderType = em1.metadataStore.getEntityType("Order"); var freightProperty = orderType.getProperty("Freight"); - regionProperty.validators.push(Validator.byte()); + regionProperty.validators.push(breeze.Validator.byte()); var orderType = em1.metadataStore.getEntityType("Order"); var orderDateProperty = orderType.getProperty("OrderDate"); - orderDateProperty.validators.push(Validator.date()); - var v0 = Validator.maxLength({ maxLength: 5, displayName: "City" }); + orderDateProperty.validators.push(breeze.Validator.date()); + var v0 = breeze.Validator.maxLength({ maxLength: 5, displayName: "City" }); v0.validate("adasdfasdf"); var errMessage = v0.getMessage(); var custType = em1.metadataStore.getEntityType("Customer"); var customerIdProperty = custType.getProperty("CustomerID"); - customerIdProperty.validators.push(Validator.guid()); + customerIdProperty.validators.push(breeze.Validator.guid()); var orderType = em1.metadataStore.getEntityType("Order"); var freightProperty = orderType.getProperty("Freight"); - freightProperty.validators.push(Validator.int16()); + freightProperty.validators.push(breeze.Validator.int16()); var orderType = em1.metadataStore.getEntityType("Order"); var freightProperty = orderType.getProperty("Freight"); - freightProperty.validators.push(Validator.int32()); + freightProperty.validators.push(breeze.Validator.int32()); var orderType = em1.metadataStore.getEntityType("Order"); var freightProperty = orderType.getProperty("Freight"); - freightProperty.validators.push(Validator.int64()); + freightProperty.validators.push(breeze.Validator.int64()); var custType = em1.metadataStore.getEntityType("Customer"); var regionProperty = custType.getProperty("Region"); - regionProperty.validators.push(Validator.maxLength({ maxLength: 5 })); + regionProperty.validators.push(breeze.Validator.maxLength({ maxLength: 5 })); var orderType = em1.metadataStore.getEntityType("Order"); var freightProperty = orderType.getProperty("Freight"); - freightProperty.validators.push(Validator.number()); + freightProperty.validators.push(breeze.Validator.number()); var custType = em1.metadataStore.getEntityType("Customer"); var regionProperty = custType.getProperty("Region"); - regionProperty.validators.push(Validator.required()); + regionProperty.validators.push(breeze.Validator.required()); var custType = em1.metadataStore.getEntityType("Customer"); var regionProperty = custType.getProperty("Region"); - regionProperty.validators.push(Validator.string()); + regionProperty.validators.push(breeze.Validator.string()); var custType = em1.metadataStore.getEntityType("Customer"); var regionProperty = custType.getProperty("Region"); - regionProperty.validators.push(Validator.stringLength({ minLength: 2, maxLength: 5 })); - var validator = Validator.maxLength({ maxLength: 5, displayName: "City" }); + regionProperty.validators.push(breeze.Validator.stringLength({ minLength: 2, maxLength: 5 })); + var validator = breeze.Validator.maxLength({ maxLength: 5, displayName: "City" }); var result = validator.validate("asdf"); ok(result === null); result = validator.validate("adasdfasdf"); @@ -738,10 +741,10 @@ function test_validator() { var sameValidator = result.validator; var valFn = function (v) { if (v == null) return true; - return (core.stringStartsWith(v, "US")); + return (stringStartsWith(v, "US")); }; - var countryValidator = new Validator("countryIsUS", valFn, { displayName: "Country" }); - Validator.messageTemplates["countryIsUS", "'%displayName%' must start with 'US'"); + var countryValidator = new breeze.Validator("countryIsUS", valFn, { displayName: "Country" }); + breeze.Validator.messageTemplates["countryIsUS", "'%displayName%' must start with 'US'"); } function test_demo() { From 64aa1bd3835afccb0a17f636d973c68aaa566eed Mon Sep 17 00:00:00 2001 From: John Vrbanac Date: Thu, 20 Dec 2012 00:49:17 -0600 Subject: [PATCH 37/44] Adding MIT license --- LICENSE | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..c3ee6e73d --- /dev/null +++ b/LICENSE @@ -0,0 +1,8 @@ +This project is licensed under the MIT license. +Copyrights are respective of each contributor listed at the beginning of each definition file. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. From ae4e55ab1a33d5dd55170578e00f78f308d7fe24 Mon Sep 17 00:00:00 2001 From: James Manning Date: Thu, 20 Dec 2012 11:02:45 -0500 Subject: [PATCH 38/44] Need to 'declare' the Spinner class MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In TypeScript 0.8.1.1, a 'declare' is needed in front of the 'class Spinner', since without it the compiler attempts to compile it as an actual class definition, and fails with: Message: Overload declaration lacks definition Line number: 27 Column number: 5 Source error:  Line 26: class Spinner { Line 27:     constructor (options?: SpinnerOptions); -------------^ Line 28:     spin(target?: any); The test in the typescript codebase that confirms this is intentional behavior is in tests/compiler/class.ts http://typescript.codeplex.com/SourceControl/changeset/view/2bee84410e02#tests/compiler/class.ts **** describe('Testing function signatures inside classes', function () {    it('Regression test - was previously giving runtime error', function () {        var code = "class A { a(completed: () => any): void; }";        Harness.Compiler.compileString(code, 'fnsig-inside-classes', function (result) {            assert.compilerWarning(result, 1, 10, 'Overload declaration lacks definition');            assert.equal(result.errors.length, 1);        });    }); }); **** The compiler code that implements the check is in src/compiler/signatures.ts http://typescript.codeplex.com/SourceControl/changeset/view/2bee84410e02#src/compiler/signatures.ts **** if (!hasConstruct && !this.definitionSignature && this.signatures[i].declAST && this.signatures[i].declAST.isOverload && !hasFlag(this.signatures[i].declAST.fncFlags, FncFlags.Ambient)) {     checker.errorReporter.simpleError(this.signatures[i].declAST, "Overload declaration lacks definition"); } **** By adding the 'declare', we tell the TypeScript compiler that this is just intending to expose the API of the class, not the actual implementation. --- spin/spin-1.2.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spin/spin-1.2.d.ts b/spin/spin-1.2.d.ts index 8ba7d08af..52a9ac751 100644 --- a/spin/spin-1.2.d.ts +++ b/spin/spin-1.2.d.ts @@ -23,10 +23,10 @@ interface SpinnerOptions { } -class Spinner { +declare class Spinner { constructor (options?: SpinnerOptions); spin(target?: any); stop(); lines(el, o); opacity(el, i, val); -} \ No newline at end of file +} From 804f74e8dbc338eaa49bc3d5bd7222e157745eec Mon Sep 17 00:00:00 2001 From: Dan Ludwig Date: Fri, 21 Dec 2012 12:01:11 -0500 Subject: [PATCH 39/44] Update jQuery UI DialogOptions.width property type from number to any. Example usage: $('#el').dialog({width: 'auto'}); --- jqueryui/jqueryui-1.9.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jqueryui/jqueryui-1.9.d.ts b/jqueryui/jqueryui-1.9.d.ts index 293a1c9f4..4ce2cc2d9 100644 --- a/jqueryui/jqueryui-1.9.d.ts +++ b/jqueryui/jqueryui-1.9.d.ts @@ -182,7 +182,7 @@ interface DialogOptions { show?: any; // number, string or object stack?: bool; title?: string; - width?: number; + width?: any; // number or string zIndex?: number; } From 040d43ad886ee669fc770de2f56dc0e3faafb248 Mon Sep 17 00:00:00 2001 From: Karlkim Suwanmongkol Date: Sat, 22 Dec 2012 01:06:45 -0600 Subject: [PATCH 40/44] Fix [key: any] issue in raphael-2.1.d.ts This is similar to old jquery definition issue mentioned in http://stackoverflow.com/questions/13630578/why-does-the-jquery-d-ts-typescript-definition-file-throw-a-compile-error We should update Raphael definition as well. --- raphael/raphael-2.1.d.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/raphael/raphael-2.1.d.ts b/raphael/raphael-2.1.d.ts index 9d3c709b6..88a545e3b 100644 --- a/raphael/raphael-2.1.d.ts +++ b/raphael/raphael-2.1.d.ts @@ -23,12 +23,12 @@ interface RaphaelFont { } interface RaphaelElement { - animate(params: { [key: any]: any; }, ms: number, easing?: string, callback?: Function): RaphaelElement; + animate(params: { [key: string]: any; }, ms: number, easing?: string, callback?: Function): RaphaelElement; animate(animation: RaphaelAnimation): RaphaelElement; animateWith(el: RaphaelElement, anim: RaphaelAnimation, params: any, ms: number, easing?: string, callback?: Function): RaphaelElement; animateWith(el: RaphaelElement, anim: RaphaelAnimation, animation: RaphaelAnimation): RaphaelElement; attr(attrName: string, value: any): RaphaelElement; - attr(params: { [key: any]: any; }): RaphaelElement; + attr(params: { [key: string]: any; }): RaphaelElement; attr(attrName: string): any; attr(attrNames: string[]): any[]; click(handler: Function): RaphaelElement; @@ -110,12 +110,12 @@ interface RraphaelSet { length: number; [key: number]: RaphaelElement; - animate(params: { [key: any]: any; }, ms: number, easing?: string, callback?: Function): RaphaelElement; + animate(params: { [key: string]: any; }, ms: number, easing?: string, callback?: Function): RaphaelElement; animate(animation: RaphaelAnimation): RaphaelElement; animateWith(el: RaphaelElement, anim: RaphaelAnimation, params: any, ms: number, easing?: string, callback?: Function): RaphaelElement; animateWith(el: RaphaelElement, anim: RaphaelAnimation, animation: RaphaelAnimation): RaphaelElement; attr(attrName: string, value: any): RaphaelElement; - attr(params: { [key: any]: any; }): RaphaelElement; + attr(params: { [key: string]: any; }): RaphaelElement; attr(attrName: string): any; attr(attrNames: string[]): any[]; click(handler: Function): RaphaelElement; From 6b738d15beff56fb0166014855192a775ece86e5 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Sun, 23 Dec 2012 18:05:19 +0200 Subject: [PATCH 41/44] Add hammer.js --- README.md | 1 + hammerjs/hammerjs-0.6.d.ts | 73 ++++++++++++++++++++++++++++++++++++++ hammerjs/hammerjs-tests.ts | 32 +++++++++++++++++ 3 files changed, 106 insertions(+) create mode 100644 hammerjs/hammerjs-0.6.d.ts create mode 100644 hammerjs/hammerjs-tests.ts diff --git a/README.md b/README.md index a309fbba5..c6ab088f3 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ Complete * [Foundation](http://foundation.zurb.com/) (by [Boris Yankov](https://github.com/borisyankov)) * [GoogleMaps](https://developers.google.com/maps/) (by [Esben Nepper](https://github.com/eNepper)) * [Handlebars](http://handlebarsjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) +* [Hammer.js](http://eightmedia.github.com/hammer.js/) (by [Boris Yankov](https://github.com/borisyankov)) * [Highcharts](http://www.highcharts.com/) (by [damianog](https://github.com/damianog)) * [History.js](https://github.com/balupton/History.js/) (by [Boris Yankov](https://github.com/borisyankov)) * [Humane.js](http://wavded.github.com/humane-js/) (by [John Vrbanac](https://github.com/jmvrbanac)) diff --git a/hammerjs/hammerjs-0.6.d.ts b/hammerjs/hammerjs-0.6.d.ts new file mode 100644 index 000000000..5cdb87c7c --- /dev/null +++ b/hammerjs/hammerjs-0.6.d.ts @@ -0,0 +1,73 @@ +// Type definitions for Hammer.js 0.6 +// Project: http://eightmedia.github.com/hammer.js/ +// Definitions by: Boris Yankov +// Definitions: https://github.com/borisyankov/DefinitelyTyped + + +/// + +interface HammerOptions { + prevent_default?: bool; + css_hacks?: bool; + swipe?: bool; + swipe_time?: number; + swipe_min_distance?: number; + drag?: bool; + drag_vertical?: bool; + drag_horizontal?: bool; + drag_min_distance?: number; + transform?: bool; + scale_treshold?: number; + rotation_treshold?: number; + tap?: bool; + tap_double?: bool; + tap_max_interval?: number; + tap_max_distance?: number; + tap_double_distance?: number; + hold?: bool; + hold_timeout?: number; +} + +interface HammerPoint { + x: number; + y: number; +} + +interface HammerEvent { + originalEvent: Event; + position: HammerPoint; + touches: HammerPoint[]; +} + +interface HammertTransformEvent extends HammerEvent { + scale: number; + rotation: number; +} + +interface HammerDirectionEvent extends HammerEvent { + angle: number; + direction: string; + distance: number; + distanceX: number; + distanceY: number; +} + +class Hammer { + constructor (element: any, options?: HammerOptions); + + ondragstart: (event: HammerDirectionEvent) => void; + ondrag: (event: HammerDirectionEvent) => void; + ondragend: (event: HammerDirectionEvent) => void; + onswipe: (event: HammerDirectionEvent) => void; + ontap: (event: HammerEvent) => void; + ondoubletap: (event: HammerEvent) => void; + onhold: (event: HammerEvent) => void; + ontransformstart: (event: HammertTransformEvent) => void; + ontransform: (event: HammertTransformEvent) => void; + ontransformend: (event: HammertTransformEvent) => void; + onrelease: (event: HammerEvent) => void; +} + +interface JQuery { + hammer(options?: HammerOptions): JQuery; +} \ No newline at end of file diff --git a/hammerjs/hammerjs-tests.ts b/hammerjs/hammerjs-tests.ts new file mode 100644 index 000000000..db1bb053a --- /dev/null +++ b/hammerjs/hammerjs-tests.ts @@ -0,0 +1,32 @@ +/// +/// + +var hammer = new Hammer(document.getElementById("container")); +hammer.ondragstart = function (ev) { }; +hammer.ondrag = function (ev) { }; +hammer.ondragend = function (ev) { }; +hammer.onswipe = function (ev) { }; + +hammer.ontap = function (ev) { }; +hammer.ondoubletap = function (ev) { }; +hammer.onhold = function (ev) { }; + +hammer.ontransformstart = function (ev) { }; +hammer.ontransform = function (ev) { }; +hammer.ontransformend = function (ev) { }; + +hammer.onrelease = function (ev) { }; + +$("#element") + .hammer({ + // Options + }) + .bind("tap", function (ev) { + console.log(ev); + }); + +$("#container").hammer({ + prevent_default: false, + drag_vertical: false +}).bind("hold tap doubletap transformstart transform transformend dragstart drag dragend release swipe", function (ev) { +}); \ No newline at end of file From 1f337f87425f0f3ce596eb29f3c720f573add9c4 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Sun, 23 Dec 2012 18:18:58 +0200 Subject: [PATCH 42/44] Fix underscore map method --- underscore/underscore-1.4.d.ts | 2 +- underscore/underscore-typed-1.4.d.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/underscore/underscore-1.4.d.ts b/underscore/underscore-1.4.d.ts index de6ee5833..bbc848a06 100644 --- a/underscore/underscore-1.4.d.ts +++ b/underscore/underscore-1.4.d.ts @@ -1,4 +1,4 @@ -// Type definitions for Underscore 1.4.1 +// Type definitions for Underscore 1.4 // Project: http://underscorejs.org/ // Definitions by: Boris Yankov // Definitions: https://github.com/borisyankov/DefinitelyTyped diff --git a/underscore/underscore-typed-1.4.d.ts b/underscore/underscore-typed-1.4.d.ts index ee524903c..d3fadb0d3 100644 --- a/underscore/underscore-typed-1.4.d.ts +++ b/underscore/underscore-typed-1.4.d.ts @@ -73,7 +73,7 @@ interface Underscore { map( obj: Object, iterator: (value: any, key?: string, object?: Object) => any, - context?: any): void; + context?: any): any[]; /** * Alias for 'map'. @@ -93,7 +93,7 @@ interface Underscore { collect( obj: Object, iterator: (value: any, key?: string, object?: Object) => any, - context?: any): void; + context?: any): any[]; /** * Also known as inject and foldl, reduce boils down a list of values into a single value. From c1171b9da80c2623d2ba563b1dc3d20f75d98a8a Mon Sep 17 00:00:00 2001 From: John Papa Date: Mon, 24 Dec 2012 12:19:11 -0500 Subject: [PATCH 43/44] updated for v1.2 --- toastr/toastr-1.2.d.ts | 47 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 toastr/toastr-1.2.d.ts diff --git a/toastr/toastr-1.2.d.ts b/toastr/toastr-1.2.d.ts new file mode 100644 index 000000000..337c0c19e --- /dev/null +++ b/toastr/toastr-1.2.d.ts @@ -0,0 +1,47 @@ +/// +// Type definitions for Toastr 1.0 +// Project: https://github.com/CodeSeven/toastr +// Definitions by: Boris Yankov +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +interface ToastrOptions { + tapToDismiss?: bool; + toastClass?: string; + containerId?: string; + debug?: bool; + fadeIn?: number; + fadeOut?: number; + extendedTimeOut?: number; + iconClasses?: { + error: string; + info: string; + success: string; + warning: string; + }; + iconClass?: string; + positionClass?: string; + timeOut?: number; + titleClass?: string; + messageClass?: string; + + onclick?: () => void; +} + +interface ToastrDisplayMethod { + (message: string): JQuery; + (message: string, title: string): JQuery; + (message: string, title: string, overrides: ToastrOptions): JQuery; +} + +interface Toastr { + clear(): void; + clear(toast: JQuery): void; + error: ToastrDisplayMethod; + info: ToastrDisplayMethod; + options: ToastrOptions; + success: ToastrDisplayMethod; + warning: ToastrDisplayMethod; + version: string; +} + +declare var toastr: Toastr; \ No newline at end of file From e856597aac995c95c0178045f75d5bd1b4101eea Mon Sep 17 00:00:00 2001 From: John Papa Date: Mon, 24 Dec 2012 12:23:00 -0500 Subject: [PATCH 44/44] updated tests --- toastr/toastr-1.0.d.ts | 48 ------------------------------------------ toastr/toastr-tests.ts | 24 +++++++++++++-------- 2 files changed, 15 insertions(+), 57 deletions(-) delete mode 100644 toastr/toastr-1.0.d.ts diff --git a/toastr/toastr-1.0.d.ts b/toastr/toastr-1.0.d.ts deleted file mode 100644 index e4c842ec9..000000000 --- a/toastr/toastr-1.0.d.ts +++ /dev/null @@ -1,48 +0,0 @@ -// Type definitions for Toastr 1.0 -// Project: https://github.com/CodeSeven/toastr -// Definitions by: Boris Yankov -// Definitions: https://github.com/borisyankov/DefinitelyTyped - - -/// - -interface ToastrOptions { - tapToDismiss?: bool; - toastClass?: string; - containerId?: string; - debug?: bool; - fadeIn?: number; - fadeOut?: number; - extendedTimeOut?: number; - iconClasses?: { - error: string; - info: string; - success: string; - warning: string; - }; - iconClass?: string; - positionClass?: string; - timeOut?: number; - titleClass?: string; - messageClass?: string; - - onclick?: () => void; -} - -interface ToastrDisplayMethod { - (message: string): JQuery; - (message: string, title: string): JQuery; - (message: string, title: string, overrides: ToastrOptions): JQuery; -} - -interface Toastr { - options: ToastrOptions; - - clear(): void; - info: ToastrDisplayMethod; - warning: ToastrDisplayMethod; - success: ToastrDisplayMethod; - error: ToastrDisplayMethod; -} - -declare var toastr: Toastr; diff --git a/toastr/toastr-tests.ts b/toastr/toastr-tests.ts index 7e7e8352b..cc99b28ce 100644 --- a/toastr/toastr-tests.ts +++ b/toastr/toastr-tests.ts @@ -1,17 +1,18 @@ -/// +/// function test_basic() { - toastr.info('Are you the 6 fingered man?'); - toastr.warning('My name is Inigo Montoya. You Killed my father, prepare to die!'); - toastr.success('Have fun storming the castle!', 'Miracle Max Says'); - toastr.error('I do not think that word means what you tink it means.', 'Inconceivable!'); - toastr.clear(); + var t = []; + t.push(toastr.info('Are you the 6 fingered man?')); + t.push(toastr.warning('My name is Inigo Montoya. You Killed my father, prepare to die!')); + t.push(toastr.success('Have fun storming the castle!', 'Miracle Max Says')); + t.push(toastr.error('I do not think that word means what you think it means.', 'Inconceivable!')); + toastr.clear(t[0]); // clear 1 + toastr.clear(); // clear all var msg = 'Do you think Rodents of Unusual Size really exist?'; var title = 'Fireswamp Legends'; var overrides = { timeOut: 250 }; toastr.warning(msg, title, overrides); - toastr.options.onclick = function () { } } @@ -55,6 +56,11 @@ function test_fromdemo() { alert('Surprise! you clicked me. i was toast #' + toastIndex + '. You could perform an action here.') }) } - - }); + }); + $('#clearlasttoast').click(function() { + toastr.clear($toastlast); + }); + $('#cleartoasts').click(function () { + toastr.clear(); + }); } \ No newline at end of file