From 520db27d0972da96275e69418bd173920399439a Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Mon, 26 Nov 2012 02:58:39 +0200 Subject: [PATCH 01/45] Update readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c53142142d..9a3e540502 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 caf441cc2b8f0f78f02f41cfdf16aee2a0bb1818 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Mon, 26 Nov 2012 05:21:19 +0200 Subject: [PATCH 02/45] 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 da85a3fe2b..4ff7023596 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 cfd36d55eaa8089d61a6362ec68b2f390d91a33e Mon Sep 17 00:00:00 2001 From: Roy Goode Date: Tue, 27 Nov 2012 20:50:33 +0000 Subject: [PATCH 03/45] 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 9a3e540502..faaaa06c7b 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 0000000000..cf7f4e63f8 --- /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 0000000000..820a217c32 --- /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 9389c3a3e9e8dc7fd43b2fdfc40d5af886583c45 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Tue, 27 Nov 2012 15:53:04 -0500 Subject: [PATCH 04/45] 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 baae95cbe4..147645aa9c 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 fdbf819c529e75f25937f1c507b9c8c7f6f120cb Mon Sep 17 00:00:00 2001 From: Roy Goode Date: Tue, 27 Nov 2012 20:56:16 +0000 Subject: [PATCH 05/45] Fixed typo in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index faaaa06c7b..a5ed004752 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 fa78b7ab1b7a3f629319e8c1cd6f1893410e2150 Mon Sep 17 00:00:00 2001 From: BreeeZe Date: Tue, 27 Nov 2012 22:12:28 +0100 Subject: [PATCH 06/45] 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 820a217c32..228bf8dec9 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 1df392c35ffaa3e3bc0346914061167b6356d82c Mon Sep 17 00:00:00 2001 From: Will Orr Date: Wed, 28 Nov 2012 21:17:22 -0500 Subject: [PATCH 07/45] 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 0000000000..cf8a18d601 --- /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 42fd31a1ad51faea974cc970fe4c561e01baad17 Mon Sep 17 00:00:00 2001 From: BreeeZe Date: Sat, 1 Dec 2012 21:37:38 +0100 Subject: [PATCH 08/45] 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 2520e9ad41..a99b4683b8 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 13fca9f5cc8c71484a0a4ab028567e7771f88e4e Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Wed, 28 Nov 2012 23:53:11 +0200 Subject: [PATCH 09/45] 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 75de4878bb..16e97a9641 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 22ea294568e0867fb508025f4b47d10b8e988dbc Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Sun, 2 Dec 2012 21:06:26 +0200 Subject: [PATCH 10/45] 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 16e97a9641..3088962eb9 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 4ff7023596..998997b2c9 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 665ec76c446cd7134e60ca565c65a19c02555a81 Mon Sep 17 00:00:00 2001 From: Will Orr Date: Sun, 2 Dec 2012 15:12:35 -0500 Subject: [PATCH 11/45] 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 0000000000..a059a3e6ab --- /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 0d0988ba0471f9da47463b3a0ede39b095e77269 Mon Sep 17 00:00:00 2001 From: Robert S Date: Tue, 4 Dec 2012 00:15:45 -0600 Subject: [PATCH 12/45] 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 0000000000..6799031c75 --- /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 9882c328211f71d1688d14eabc1478f802ebdd14 Mon Sep 17 00:00:00 2001 From: Robert S Date: Tue, 4 Dec 2012 00:21:45 -0600 Subject: [PATCH 13/45] 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 6799031c75..df8958be4c 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 170ed861a3e0c1a5c261e914f566e115fe502286 Mon Sep 17 00:00:00 2001 From: Matt Burland Date: Tue, 4 Dec 2012 10:45:32 -0500 Subject: [PATCH 14/45] 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 0000000000..8695d52ed1 --- /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 febb80a32399473d7fd860eb9cf5068ea571269d Mon Sep 17 00:00:00 2001 From: Dan Ludwig Date: Wed, 5 Dec 2012 16:35:55 -0500 Subject: [PATCH 15/45] 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 3088962eb9..00a316d1c8 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 410843e39665e7240825df242d34e846f866e54d Mon Sep 17 00:00:00 2001 From: Dan Ludwig Date: Thu, 6 Dec 2012 10:49:28 -0500 Subject: [PATCH 16/45] 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 00a316d1c8..63ab3cb093 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 9531dbb7619caefd4735973d6310f1dd88cb171c Mon Sep 17 00:00:00 2001 From: Daz Wilkin Date: Thu, 6 Dec 2012 13:01:12 -0800 Subject: [PATCH 17/45] 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 0000000000..34bb045892 --- /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 9e05f16a4537e7ba82b86a7c657ad212463dedd6 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Fri, 7 Dec 2012 15:20:16 +0200 Subject: [PATCH 18/45] 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 a5ed004752..2fda0ca5dc 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 cf8a18d601..06a969d403 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 0000000000..42a8b69120 --- /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 4a5421a6ee00bdc82cdb698caa355aa4ca83e4d1 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 7 Dec 2012 08:27:00 -0800 Subject: [PATCH 19/45] 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 0000000000..ea8435e813 --- /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 0000000000..bd56e5b75e --- /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 8f8b0a3358b72c683147ca68567bb0e0104c276f Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 7 Dec 2012 08:38:59 -0800 Subject: [PATCH 20/45] 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 0000000000..9df0397d0e --- /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 0000000000..50a234d89d --- /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 53e1c7be6a965a1d4d487633165e3cc2cf23d660 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 7 Dec 2012 08:44:23 -0800 Subject: [PATCH 21/45] 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 ea8435e813..0000000000 --- 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 bd56e5b75e..0000000000 --- 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 16503dbb5f4e5c4c07d567d679dc058b12ab9e87 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Fri, 7 Dec 2012 19:05:55 +0200 Subject: [PATCH 22/45] 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 2fda0ca5dc..a309fbba52 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 50a234d89d..0ca62f7552 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 33c64e434511cff80a886a4d8482f036382a884c Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Fri, 7 Dec 2012 19:14:13 +0200 Subject: [PATCH 23/45] 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 06a969d403..0000000000 --- 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 cb1ba44af7ae16ea43e4f1e81bfd053ef8f2543b Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Fri, 7 Dec 2012 19:14:36 +0200 Subject: [PATCH 24/45] 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 42a8b69120..03aa718a6f 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 cdb485d94275be1592d2dd0772005dd015fec52e Mon Sep 17 00:00:00 2001 From: Stuart Thompson Date: Fri, 7 Dec 2012 15:39:11 -0800 Subject: [PATCH 25/45] 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 d7dcfea839..58633a6efe 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 6f5a02f916106f1e4dfbd215a3723b940edf8e37 Mon Sep 17 00:00:00 2001 From: Stuart Thompson Date: Sun, 9 Dec 2012 09:17:40 -0800 Subject: [PATCH 26/45] 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 63ab3cb093..56efdbcb3f 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 1c4ae5a413b6905a3be1aad616ce785604b93fa7 Mon Sep 17 00:00:00 2001 From: BreeeZe Date: Mon, 10 Dec 2012 11:46:27 +0100 Subject: [PATCH 27/45] 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 a99b4683b8..0598e64e86 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 2d6f98933aab2fbd4c3f5f80103e3baac2abfb03 Mon Sep 17 00:00:00 2001 From: BreeeZe Date: Tue, 11 Dec 2012 22:21:10 +0100 Subject: [PATCH 28/45] 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 0598e64e86..6a40a8112a 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 07a0615ac558433b585725948a313abc2cccac49 Mon Sep 17 00:00:00 2001 From: Tomas Kirda Date: Tue, 11 Dec 2012 17:29:22 -0600 Subject: [PATCH 29/45] 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 56efdbcb3f..88dd976ca8 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 96fa1a3f54efdd79c58242dc24df181fc1672327 Mon Sep 17 00:00:00 2001 From: Emil Ivanov Date: Wed, 12 Dec 2012 10:58:28 +0200 Subject: [PATCH 30/45] 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 0000000000..14529f0c05 --- /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 2926808284f3add8491c1e7a2f31f13462a40680 Mon Sep 17 00:00:00 2001 From: Emil Ivanov Date: Wed, 12 Dec 2012 11:02:44 +0200 Subject: [PATCH 31/45] 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 14529f0c05..90a0271801 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 a14eca6d9df92bc378f9b47b01306efd861c7931 Mon Sep 17 00:00:00 2001 From: Daz Wilkin Date: Thu, 13 Dec 2012 10:56:03 -0800 Subject: [PATCH 32/45] 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 0000000000..950696bc57 --- /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 318db9c30a34f275a9f804532d206bfc953ce2e0 Mon Sep 17 00:00:00 2001 From: Daz Wilkin Date: Thu, 13 Dec 2012 10:57:27 -0800 Subject: [PATCH 33/45] 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 34bb045892..8056271380 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 185e737528cce7b6bd1dfe65d361c78dcb571240 Mon Sep 17 00:00:00 2001 From: BreeeZe Date: Thu, 13 Dec 2012 20:19:04 +0100 Subject: [PATCH 34/45] 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 6a40a8112a..5d9253e445 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 e26a40dabfe2dabe3ee1f7a6ff43192a20f37fea Mon Sep 17 00:00:00 2001 From: BreeeZe Date: Sat, 15 Dec 2012 12:22:12 +0100 Subject: [PATCH 35/45] 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 5d9253e445..fc3137a7db 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 cce2c80831bfe4a849ebe567c553b53ccf1553e3 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Wed, 19 Dec 2012 23:26:17 +0200 Subject: [PATCH 36/45] 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 f1ca8759f5..38346cf1fb 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 9929af1931..2f3e7e23d5 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 675a94fde3be12ec65510cde687ba670b62d7298 Mon Sep 17 00:00:00 2001 From: John Vrbanac Date: Thu, 20 Dec 2012 00:49:17 -0600 Subject: [PATCH 37/45] 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 0000000000..c3ee6e73d5 --- /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 c40d648bd10aa4972aea62e526b543a714d53a4b Mon Sep 17 00:00:00 2001 From: James Manning Date: Thu, 20 Dec 2012 11:02:45 -0500 Subject: [PATCH 38/45] 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 8ba7d08af7..52a9ac751b 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 f002d391cd774007b9576339083347e4cd29e979 Mon Sep 17 00:00:00 2001 From: Dan Ludwig Date: Fri, 21 Dec 2012 12:01:11 -0500 Subject: [PATCH 39/45] 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 293a1c9f46..4ce2cc2d98 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 e7e464a3a9c8a1af5f0f4ee0dd6f58865cf7464b Mon Sep 17 00:00:00 2001 From: Karlkim Suwanmongkol Date: Sat, 22 Dec 2012 01:06:45 -0600 Subject: [PATCH 40/45] 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 9d3c709b6b..88a545e3be 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 c76905da74b59adae69f24b58cbe6e79796146f3 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Sun, 23 Dec 2012 18:05:19 +0200 Subject: [PATCH 41/45] 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 a309fbba52..c6ab088f34 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 0000000000..5cdb87c7c8 --- /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 0000000000..db1bb053a3 --- /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 437c54741fe3ced6ec31f90d2c0284fbf828ec53 Mon Sep 17 00:00:00 2001 From: Boris Yankov Date: Sun, 23 Dec 2012 18:18:58 +0200 Subject: [PATCH 42/45] 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 de6ee58331..bbc848a06c 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 ee524903c6..d3fadb0d38 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 3b84ce931f426c3d7abd8aeaa8cf987a1c372099 Mon Sep 17 00:00:00 2001 From: John Papa Date: Mon, 24 Dec 2012 12:19:11 -0500 Subject: [PATCH 43/45] 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 0000000000..337c0c19ef --- /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 b920d8a7f107420a65d291da96590d4e44178276 Mon Sep 17 00:00:00 2001 From: John Papa Date: Mon, 24 Dec 2012 12:23:00 -0500 Subject: [PATCH 44/45] 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 e4c842ec96..0000000000 --- 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 7e7e8352b7..cc99b28ce8 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 From f039c139724b42d0a9c1a47bedddc3a71698206b Mon Sep 17 00:00:00 2001 From: Damiano Date: Wed, 26 Dec 2012 09:53:25 +0100 Subject: [PATCH 45/45] Globalize - Added GlobalizeMonths interface Added GlobalizeMonths interface to detail months property by replacing the 'any[]' declaration. --- globalize/globalize.d.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/globalize/globalize.d.ts b/globalize/globalize.d.ts index 016b3e0dee..902236ced0 100644 --- a/globalize/globalize.d.ts +++ b/globalize/globalize.d.ts @@ -49,6 +49,11 @@ interface GlobalizeDays { namesShort: string[]; } +interface GlobalizeMonths { + names: string[]; + namesAbbr: string[]; +} + interface GlobalizePatterns { d: string; D: string; @@ -67,7 +72,7 @@ interface GlobalizeCalendar { // ":": string, firstDay: number; days: GlobalizeDays; - months: any[]; + months: GlobalizeMonths; AM: string[]; PM: string[]; eras: GlobalizeEra[];