diff --git a/angular-translate/index.d.ts b/angular-translate/index.d.ts
index 19e1962fab..3b911ba313 100644
--- a/angular-translate/index.d.ts
+++ b/angular-translate/index.d.ts
@@ -51,8 +51,8 @@ declare module 'angular' {
cloakClassName(name: string): ITranslateProvider;
fallbackLanguage(langKey?: string): string;
fallbackLanguage(langKey?: string[]): string;
- instant(translationId: string, interpolateParams?: any, interpolationId?: string): string;
- instant(translationId: string[], interpolateParams?: any, interpolationId?: string): { [key: string]: string };
+ instant(translationId: string, interpolateParams?: any, interpolationId?: string, forceLanguage?: string, sanitizeStrategy?: string): string;
+ instant(translationId: string[], interpolateParams?: any, interpolationId?: string, forceLanguage?: string, sanitizeStrategy?: string): { [key: string]: string };
isPostCompilingEnabled(): boolean;
preferredLanguage(langKey?: string): string;
proposedLanguage(): string;
diff --git a/easeljs/index.d.ts b/easeljs/index.d.ts
index a5916a56f2..d47f631728 100644
--- a/easeljs/index.d.ts
+++ b/easeljs/index.d.ts
@@ -735,6 +735,7 @@ declare namespace createjs {
intersection(rect: Rectangle): Rectangle;
intersects(rect: Rectangle): boolean;
isEmpty(): boolean;
+ pad(top: number, left: number, bottom: number, right: number): Rectangle;
setValues(x?: number, y?: number, width?: number, height?: number): Rectangle;
toString(): string;
union(rect: Rectangle): Rectangle;
diff --git a/gapi.auth2/gapi.auth2-tests.ts b/gapi.auth2/gapi.auth2-tests.ts
index 2cfaa49980..621ca6f056 100644
--- a/gapi.auth2/gapi.auth2-tests.ts
+++ b/gapi.auth2/gapi.auth2-tests.ts
@@ -19,6 +19,22 @@ function test_getAuthInstance(){
var auth = gapi.auth2.getAuthInstance();
}
+function test_signIn(){
+ gapi.auth2.getAuthInstance().signIn({
+ scope: 'email profile',
+ prompt: 'content'
+ });
+}
+
+function test_signInOptionsBuild(){
+ var options = new gapi.auth2.SigninOptionsBuilder();
+ options.setAppPackageName('com.example.app');
+ options.setFetchBasicProfile(true);
+ options.setPrompt('select_account');
+ options.setScope('profile').setScope('email');
+ gapi.auth2.getAuthInstance().signIn(options);
+}
+
function test_getAuthResponse(){
var user = gapi.auth2.getAuthInstance().currentUser.get();
var authResponse = user.getAuthResponse();
diff --git a/gapi.auth2/index.d.ts b/gapi.auth2/index.d.ts
index 6037f0238e..6146a87e28 100644
--- a/gapi.auth2/index.d.ts
+++ b/gapi.auth2/index.d.ts
@@ -31,12 +31,7 @@ declare namespace gapi.auth2 {
/**
* Signs in the user using the specified options.
*/
- signIn(options?: {
- app_package_name?: string;
- fetch_basic_profile?: boolean;
- prompt?: boolean;
- scope?: string;
- }, optionBuilder?: SigninOptionsBuilder): any;
+ signIn(options?: SigninOptions | SigninOptionsBuilder): any;
/**
* Signs out all accounts from the application.
@@ -59,12 +54,8 @@ declare namespace gapi.auth2 {
/**
* Attaches the sign-in flow to the specified container's click handler.
*/
- attachClickHandler(container: any, options: {
- app_package_name?: string;
- fetch_basic_profile?: boolean;
- prompt?: boolean;
- scope?: string;
- }, onsuccess: (googleUser: GoogleUser) => any, onfailure: (reason: string) => any): any;
+ attachClickHandler(container: any, options: SigninOptions,
+ onsuccess: (googleUser: GoogleUser) => any, onfailure: (reason: string) => any): any;
}
export interface IsSignedIn{
@@ -93,6 +84,32 @@ declare namespace gapi.auth2 {
listen(listener: (user: GoogleUser) => any): void;
}
+ export interface SigninOptions {
+ /**
+ * The package name of the Android app to install over the air.
+ * See Android app installs from your web site:
+ * https://developers.google.com/identity/sign-in/web/android-app-installs
+ */
+ app_package_name?: string;
+ /**
+ * Fetch users' basic profile information when they sign in.
+ * Adds 'profile', 'email' and 'openid' to the requested scopes.
+ * True if unspecified.
+ */
+ fetch_basic_profile?: boolean;
+ /**
+ * Specifies whether to prompt the user for re-authentication.
+ * See OpenID Connect Request Parameters:
+ * https://openid.net/specs/openid-connect-basic-1_0.html#RequestParameters
+ */
+ prompt?: string;
+ /**
+ * The scopes to request, as a space-delimited string.
+ * Optional if fetch_basic_profile is not set to false.
+ */
+ scope?: string;
+ }
+
export class SigninOptionsBuilder {
setAppPackageName(name: string): any;
setFetchBasicProfile(fetch: boolean): any;
@@ -164,22 +181,12 @@ declare namespace gapi.auth2 {
* When you use GoogleUser.signIn(), the sign-in flow skips the account chooser step.
* See GoogleAuth.signIn().
*/
- signIn(options?: {
- app_package_name?: string;
- fetch_basic_profile?: boolean;
- prompt?: boolean;
- scope?: string;
- }, optionBuilder?: SigninOptionsBuilder): any;
+ signIn(options?: SigninOptions | SigninOptionsBuilder): any;
/**
- *
+ * See GoogleUser.signIn()
*/
- grant(options?: {
- app_package_name?: string;
- fetch_basic_profile?: boolean;
- prompt?: boolean;
- scope?: string;
- }, optionBuilder?: SigninOptionsBuilder): any;
+ grant(options?: SigninOptions | SigninOptionsBuilder): any;
/**
* Get permission from the user to access the specified scopes offline.
diff --git a/jquery.tools/index.d.ts b/jquery.tools/index.d.ts
new file mode 100644
index 0000000000..e511a961fd
--- /dev/null
+++ b/jquery.tools/index.d.ts
@@ -0,0 +1,161 @@
+// Type definitions for jQuery TOOLS 1.2
+// Project: https://github.com/jquerytools/jquerytools
+// Definitions by: Joe Skeen
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+
+///
+
+declare interface JQuery {
+ overlay(opts?: JQueryTools.overlay.OverlayOptions): JQuery;
+ overlay(opts?: JQueryTools.overlay.OverlayOptions): T;
+ data(key: 'overlay'): JQueryTools.overlay.Overlay;
+}
+
+declare interface JQueryStatic {
+ tools: JQueryTools.ToolsStatic;
+}
+
+/** jQuery Tools (http://jquerytools.github.io/documentation/overlay/index.html) */
+declare namespace JQueryTools {
+ interface ToolsStatic {
+ overlay: overlay.OverlayStatic;
+ }
+
+ namespace overlay {
+ interface OverlayStatic {
+ addEffect(effectName: string,
+ effectFn: (this: Overlay, position: CssOptions, done: () => void) => void,
+ closeFn: (this: Overlay, done: () => void) => void): void;
+ }
+
+ interface CssOptions {
+ [key: string]: any;
+ }
+
+ interface OverlayOptions {
+ /**
+ * A jQuery selector for the closing elements inside the overlay. These
+ * can be any elements such as links, buttons or images. If this is not
+ * supplied, a close element is auto-generated. Read more about this in
+ * defining close actions.
+ */
+ close?: JQuery;
+ /**
+ * By default, overlays are closed when the mouse is clicked outside the
+ * overlay area. Setting this property to false suppresses this behaviour
+ * which is suitable for modal dialogs.
+ * @default true
+ */
+ closeOnClick?: boolean;
+ /**
+ * By default, overlays are closed when the ESC keyboard key is pressed.
+ * Setting this property to false suppresses this behaviour.
+ * @default true
+ */
+ closeOnEsc?: boolean;
+ /** The speed to close the overlay, in milliseconds */
+ closeSpeed?: number;
+ /**
+ * The effect to be used when an overlay is opened and closed. This can
+ * dramatically change the behaviour of the overlay. By default this tool
+ * uses an effect called "default" which is a simple show/hide effect.
+ * @default 'default'
+ */
+ effect?: string;
+ /**
+ * since 1.2.0. whether overlay stays in the same position while the screen
+ * is scrolled. This is the default behaviour for all browsers except IE6
+ * and below. IE6 does not support fixed positioning. If this property is
+ * set to false then the overlay is positioned in relationship to the document
+ * so that when the screen is scrolled then the overlay moves along with the document.
+ * @default true
+ */
+ fixed?: boolean;
+ /**
+ * Previously known as expose. Overlay is very often used together with the
+ * Mask Tool. Because of this, the support for this feature has been built
+ * inside the tool. This option accepts the mask configuration. This is either
+ * a simple string specifying the background color of the mask or a more complex
+ * object literal specifying more configuration variables. See an example of an
+ * overlay together with mask. By default masking is disabled.
+ */
+ mask?: string | MaskOptions;
+ /**
+ * Specifies how far from the left-hand edge of the screen the overlay should be
+ * placed. By default the overlay is horizontally centered with the value "center"
+ * but you can also supply a numerical value specifying a distance in pixels.
+ * @default 'center'
+ */
+ left?: 'center' | number;
+ /**
+ * If enabled then the overlay loads immediately after it has been initialized.
+ * @default false
+ */
+ load?: boolean;
+ /**
+ * By default, there can be only one overlay on the page at once. Setting this
+ * property to false allows you to have multiple overlay instances.
+ * @default true
+ */
+ oneInstance?: boolean;
+ /**
+ * The speed of the fade-in animation on the "default" effect. Valid values are
+ * 'slow', 'normal' and 'fast', or you can supply a numerical value (in milliseconds).
+ * By setting this property to 0, the overlay will appear immediately without any animation.
+ * @default 'normal'
+ */
+ speed?: 'slow' | 'normal' | 'fast' | number;
+ /**
+ * The element to be overlayed (if not specified in the rel attribute of the triggering element).
+ */
+ target?: Element;
+ /**
+ * Specifies how far from the top edge of the screen the overlay should be placed.
+ * Acceptable values are an integer number specifying a distance in pixels, a string
+ * (such as '15%') specifying a percentage value or "center" in which case the overlay
+ * is vertically centered. Percentage values work consistently at different screen resolutions.
+ * @default '10%'
+ */
+ top?: string | number;
+
+ /**
+ * before the overlay is displayed. The overlay has already been positioned at the
+ * location from where it will start animating.
+ */
+ onBeforeLoad?: (this: Overlay, event: JQueryEventObject) => void;
+ /** when the overlay has completely been displayed */
+ onLoad?: (this: Overlay, event: JQueryEventObject) => void;
+ /** before the overlay is closed */
+ onBeforeClose?: (this: Overlay, event: JQueryEventObject) => void;
+ /** when the overlay is closed */
+ onClose?: (this: Overlay, event: JQueryEventObject) => void;
+ }
+
+ interface MaskOptions {
+ /** CSS color string (i.e. hex value) */
+ color?: string;
+ /** load speed in milliseconds */
+ loadSpeed?: number;
+ /** Opacity of mask. Between 0 and 1. */
+ opacity?: number;
+ }
+
+ interface Overlay {
+ /** Closes the overlay. */
+ close(): Overlay;
+ /** Returns the closing element(s) as a jQuery object. */
+ getClosers(): JQuery;
+ /** Returns the configuration for the overlay. */
+ getConf(): OverlayOptions;
+ /** Returns the overlayed element as a jQuery object. */
+ getOverlay(): JQuery;
+ /** Returns the triggering element as a jQuery object. */
+ getTrigger(): JQuery;
+ /** Returns `true` if the overlay is opened. */
+ isOpened(): boolean;
+ /** Opens the overlay. */
+ load(): Overlay;
+ }
+ }
+}
diff --git a/jquery.tools/jquery.tools-tests.ts b/jquery.tools/jquery.tools-tests.ts
new file mode 100644
index 0000000000..f8a4e39f90
--- /dev/null
+++ b/jquery.tools/jquery.tools-tests.ts
@@ -0,0 +1,182 @@
+///
+
+/* from documentation at http://jquerytools.github.io/documentation/overlay/index.html */
+
+ $("img[rel]").overlay();
+
+ var triggers = $(".modalInput").overlay({
+
+ // some mask tweaks suitable for modal dialogs
+ mask: {
+ color: '#ebecff',
+ loadSpeed: 200,
+ opacity: 0.9
+ },
+
+ closeOnClick: false
+ });
+
+ var buttons = $("#yesno button").click(function(this: JQuery, e: JQueryEventObject) {
+
+ // get user input
+ var yes = buttons.index(this) === 0;
+
+ // do something with the answer
+ triggers.eq(0).html("You clicked " + (yes ? "yes" : "no"));
+ });
+
+// select one or more elements to be overlay triggers
+$(".my_overlay_trigger").overlay({
+ // one configuration property
+ mask: {
+ color: '#ccc'
+ },
+ // another property
+ top: 50
+ // ... the rest of the configuration properties
+});
+
+$("#prompt form").submit(function(this: JQuery, e: JQueryEventObject) {
+
+ // close the overlay
+ triggers.eq(1).overlay().close();
+ //or more straightforward:
+ triggers.data('overlay').close();
+
+ // get user input
+ var input = $("input", this).val();
+
+ // do something with the answer
+ triggers.eq(1).html(input);
+
+ // do not submit the form
+ return e.preventDefault();
+ });
+
+$.tools.overlay.addEffect('', function() {}, function() {});
+
+/* custom effects */
+$.tools.overlay.addEffect("myEffect", function(position, done) {
+ /*
+ - 'this' variable is a reference to the overlay API
+ - here we use jQuery's fadeIn() method to perform the effect
+ */
+ this.getOverlay().css(position).fadeIn(this.getConf().speed, done);
+ },
+
+ // close function
+ function(done) {
+ // fade out the overlay
+ this.getOverlay().fadeOut(this.getConf().closeSpeed, done);
+ }
+);
+
+$("#apple img[rel]").overlay({effect: 'apple'});
+
+ // select the overlay element - and "make it an overlay"
+ $("#facebox").overlay({
+ // custom top position
+ top: 260,
+ // some mask tweaks suitable for facebox-looking dialogs
+ mask: {
+ // you might also consider a "transparent" color for the mask
+ color: '#fff',
+ // load mask a little faster
+ loadSpeed: 200,
+ // very transparent
+ opacity: 0.5
+ },
+ // disable this for modal dialog-type of overlays
+ closeOnClick: false,
+ // load it immediately after the construction
+ load: true
+});
+
+$(function() {
+
+ // if the function argument is given to overlay,
+ // it is assumed to be the onBeforeLoad event listener
+ $("a[rel]").overlay({
+
+ mask: 'darkred',
+ effect: 'apple',
+
+ onBeforeLoad: function() {
+
+ // grab wrapper element inside content
+ var wrap = this.getOverlay().find(".contentWrap");
+
+ // load the page specified in the trigger
+ wrap.load(this.getTrigger().attr("href"));
+ }
+
+ });
+});
+
+$(function() {
+ // positions for each overlay
+ var positions = [
+ [0, 530],
+ [400, 20],
+ [400, 530],
+ [0, 20]
+ ];
+
+ // setup triggers
+ $("button[rel]").each(function(this: JQuery, i: number) {
+
+ $(this).overlay({
+
+ // common configuration for each overlay
+ oneInstance: false,
+ closeOnClick: false,
+
+ // setup custom finish position
+ top: positions[i][0],
+ left: positions[i][1],
+
+ // use apple effect
+ effect: 'apple'
+
+ });
+ });
+});
+
+// loading animation
+$.tools.overlay.addEffect("drop", function(css, done) {
+
+ // use Overlay API to gain access to crucial elements
+ var conf = this.getConf(),
+ overlay = this.getOverlay();
+
+ // determine initial position for the overlay
+ if (conf.fixed) {
+ css['position'] = 'fixed';
+ } else {
+ css['top'] += $(window).scrollTop();
+ css['left'] += $(window).scrollLeft();
+ css['position'] = 'absolute';
+ }
+
+ // position the overlay and show it
+ overlay.css(css).show();
+
+ // begin animating with our custom easing
+ overlay.animate(
+ { top: '+=55', opacity: 1, width: '+=20'}, 400, 'drop', done
+ );
+
+ /* closing animation */
+}, function(done) {
+ this.getOverlay().animate(
+ {top:'-=55', opacity:0, width:'-=20'}, 300, 'drop',
+ function(this: JQuery) {
+ $(this).hide();
+ done.call(null);
+ });
+});
+
+$("img[rel]").overlay({
+ effect: 'drop',
+ mask: '#789'
+});
diff --git a/jquery.tools/tsconfig.json b/jquery.tools/tsconfig.json
new file mode 100644
index 0000000000..64e79cb10d
--- /dev/null
+++ b/jquery.tools/tsconfig.json
@@ -0,0 +1,23 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "lib": [
+ "es6",
+ "dom"
+ ],
+ "noImplicitAny": true,
+ "noImplicitThis": true,
+ "strictNullChecks": true,
+ "baseUrl": "../",
+ "typeRoots": [
+ "../"
+ ],
+ "types": [],
+ "noEmit": true,
+ "forceConsistentCasingInFileNames": true
+ },
+ "files": [
+ "index.d.ts",
+ "jquery.tools-tests.ts"
+ ]
+}
\ No newline at end of file
diff --git a/jquery.tools/tslint.json b/jquery.tools/tslint.json
new file mode 100644
index 0000000000..377cc837d4
--- /dev/null
+++ b/jquery.tools/tslint.json
@@ -0,0 +1 @@
+{ "extends": "../tslint.json" }
diff --git a/later/index.d.ts b/later/index.d.ts
index c5c2449a00..5dd68ec90a 100644
--- a/later/index.d.ts
+++ b/later/index.d.ts
@@ -142,7 +142,7 @@ declare namespace later {
* For acces to custom time periods created as extension to the later static type
* and modifiers created on the later modifier static type.
*/
- [ timeperiodAndModifierName: string ]: number[];
+ [ timeperiodAndModifierName: string ]: number[] | undefined;
}
interface ParseStatic {
diff --git a/later/tsconfig.json b/later/tsconfig.json
index 78a6cefd34..add4a07667 100644
--- a/later/tsconfig.json
+++ b/later/tsconfig.json
@@ -7,7 +7,7 @@
],
"noImplicitAny": true,
"noImplicitThis": true,
- "strictNullChecks": false,
+ "strictNullChecks": true,
"baseUrl": "../",
"typeRoots": [
"../"
diff --git a/mongoose/index.d.ts b/mongoose/index.d.ts
index 40821b8968..7ef5615436 100644
--- a/mongoose/index.d.ts
+++ b/mongoose/index.d.ts
@@ -2163,6 +2163,11 @@ declare module "mongoose" {
* @param fields the field(s) to unwind
*/
unwind(...fields: string[]): this;
+ /**
+ * Appends new custom $unwind operator(s) to this aggregate pipeline
+ * new in mongodb 3.2
+ */
+ unwind(...opts: { path: string, includeArrayIndex?: string, preserveNullAndEmptyArrays?: boolean }[]): this;
}
/*
diff --git a/mongoose/mongoose-tests.ts b/mongoose/mongoose-tests.ts
index c6dfe20fdc..dc170dccd9 100644
--- a/mongoose/mongoose-tests.ts
+++ b/mongoose/mongoose-tests.ts
@@ -1016,7 +1016,41 @@ aggregate.sort('field -test');
aggregate.then(cb).catch(cb);
aggregate.unwind("tags").unwind('tags');
aggregate.unwind("a", "b", "c").unwind('tag1', 'tag2');
-
+aggregate.unwind(
+ {
+ path: "tags",
+ includeArrayIndex: "idx",
+ preserveNullAndEmptyArrays: true
+ })
+ .unwind({
+ path: "tags",
+ includeArrayIndex: "idx",
+ preserveNullAndEmptyArrays: true
+ });
+aggregate.unwind(
+ {
+ path: "a",
+ includeArrayIndex: "idx",
+ preserveNullAndEmptyArrays: true
+ }, {
+ path: "b",
+ includeArrayIndex: "idx",
+ preserveNullAndEmptyArrays: true
+ }, {
+ path: "c",
+ includeArrayIndex: "idx",
+ preserveNullAndEmptyArrays: true
+ })
+ .unwind({
+ path: "tag1",
+ includeArrayIndex: "idx",
+ preserveNullAndEmptyArrays: true
+ }, {
+ path: "tag2",
+ includeArrayIndex: "idx",
+ preserveNullAndEmptyArrays: true
+ });
+
/*
* section schematype.js
* http://mongoosejs.com/docs/api.html#schematype-js
diff --git a/node-xmpp-client/index.d.ts b/node-xmpp-client/index.d.ts
new file mode 100644
index 0000000000..874df37de7
--- /dev/null
+++ b/node-xmpp-client/index.d.ts
@@ -0,0 +1,71 @@
+// Type definitions for node-xmpp-client 3.1
+// Project: https://github.com/node-xmpp/node-xmpp/tree/master/packages/node-xmpp-client/
+// Definitions by: PJakcson
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.1
+
+export declare class Client {
+ static Stanza: Stanza;
+
+ constructor(options: XmppOptions);
+
+ connect(): void;
+
+ disconnect(): void;
+
+ on(event: string, c: (e: any, d: any) => any): void;
+
+ send(stanza: any): void;
+}
+
+interface Stanza extends Element {
+ // This has to be used for the static class initializer new Client.Stanza(..). If there is a better way feel free to
+ // contribute.
+ // tslint:disable-next-line
+ new(name: string, attr: any): Stanza;
+ from: string;
+ to: string;
+ id: string;
+ type: string;
+}
+
+interface Element {
+ is(name: string, xmlns: string): boolean;
+ getName(): string;
+ getNS(): string;
+ findNS(prefix: string): string;
+ getXmlns(): string;
+ setAttrs(attrs: any): void;
+ getAttrs(): any;
+
+ up(): Element;
+ c(name: string, attrs?: any): Element;
+ cnode(child: Element): Element;
+ t(text: string): Element;
+ remove(el: Element, xmnls: string): Element;
+ attr(attr: any, val: any): any;
+
+ toString(): string;
+ toJSON(): any;
+}
+
+interface XmppOptions {
+ jid: string;
+ password: string;
+ host?: string;
+ port?: number;
+ reconnect?: boolean;
+ autostart?: boolean; // if we start connecting to a given port
+ register?: boolean; // register account before authentication
+ legacySSL?: boolean; // connect to the legacy SSL port, requires at least the host to be specified
+ credentials?: any; // Dictionary (optional) - TLS or SSL key and certificate credentials
+ actAs?: string; // if admin user act on behalf of another user (just user)
+ disallowTLS?: boolean; // prevent upgrading the connection to a secure one via TLS
+ preferred?: string; // Preferred SASL mechanism to use
+ bosh?: Bosh;
+}
+
+interface Bosh {
+ url?: string;
+ prebind?: (error: any, data: any) => void;
+}
diff --git a/node-xmpp-client/node-xmpp-client-tests.ts b/node-xmpp-client/node-xmpp-client-tests.ts
new file mode 100644
index 0000000000..52a54a0453
--- /dev/null
+++ b/node-xmpp-client/node-xmpp-client-tests.ts
@@ -0,0 +1,22 @@
+import {Client} from './index';
+
+let client = new Client({
+ jid: 'user@example.com',
+ password: 'password'
+});
+
+client.connect();
+
+client.on('online', function () {
+});
+
+client.on('stanza', function (stanza) {
+ let _ = stanza;
+});
+
+let stanza = new Client.Stanza('chat', {})
+ .c('show').t('chat').up()
+ .c('status').t('message');
+client.send(stanza);
+
+client.disconnect();
diff --git a/node-xmpp-client/tsconfig.json b/node-xmpp-client/tsconfig.json
new file mode 100644
index 0000000000..c76db9a985
--- /dev/null
+++ b/node-xmpp-client/tsconfig.json
@@ -0,0 +1,22 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "lib": [
+ "es6"
+ ],
+ "noImplicitAny": true,
+ "noImplicitThis": true,
+ "strictNullChecks": true,
+ "baseUrl": "../",
+ "typeRoots": [
+ "../"
+ ],
+ "types": [],
+ "noEmit": true,
+ "forceConsistentCasingInFileNames": true
+ },
+ "files": [
+ "index.d.ts",
+ "node-xmpp-client-tests.ts"
+ ]
+}
diff --git a/node-xmpp-client/tslint.json b/node-xmpp-client/tslint.json
new file mode 100644
index 0000000000..ec365f164b
--- /dev/null
+++ b/node-xmpp-client/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": "../tslint.json"
+}
diff --git a/request/index.d.ts b/request/index.d.ts
index edf31b9a9b..d576c82e3b 100644
--- a/request/index.d.ts
+++ b/request/index.d.ts
@@ -91,6 +91,8 @@ declare namespace request {
qsStringifyOptions?: any;
qsParseOptions?: any;
json?: any;
+ jsonReviver?: (key: string, value: any) => any;
+ jsonReplacer?: (key: string, value: any) => any;
multipart?: RequestPart[] | Multipart;
agent?: http.Agent | https.Agent;
agentOptions?: any;
diff --git a/request/request-tests.ts b/request/request-tests.ts
index b26149533b..1bd81760c8 100644
--- a/request/request-tests.ts
+++ b/request/request-tests.ts
@@ -91,6 +91,12 @@ var options: request.Options = {
aws: aws,
qs: obj,
json: value,
+ jsonReviver: (key: string, value: any) => {
+
+ },
+ jsonReplacer: (key: string, value: any) => {
+
+ },
multipart: value,
agent: new http.Agent(),
agentOptions: value,
diff --git a/rsvp/index.d.ts b/rsvp/index.d.ts
index f4a8fd0a1a..a831944a8f 100644
--- a/rsvp/index.d.ts
+++ b/rsvp/index.d.ts
@@ -1,6 +1,6 @@
-// Type definitions for RSVP 3.0.9
-// Project: github.com/tildeio/rsvp.js 3.0.9
-// Definitions by: Taylor Brown
+// Type definitions for RSVP 3.3.3
+// Project: https://github.com/tildeio/rsvp.js
+// Definitions by: Taylor Brown , Mikael Kohlmyr
// Definitions: https://github.com/borisyankov/DefinitelyTyped
// Some of this file was taken from the type definitions for es6-promise https://github.com/borisyankov/DefinitelyTyped/blob/master/es6-promise/es6-promise.d.ts
@@ -220,8 +220,8 @@ declare module RSVP {
* having to remember the initial order like you would with all().
*
*/
- export function hash(promises: Thenable[]): Promise;
- export function hash(promises: any[]): Promise;
+ export function hash(promises: { [key: string]: Thenable }): Promise<{ [key: string]: T }>;
+ export function hash(promises: { [key: string]: any }): Promise<{ [key: string]: T }>;
/**
`RSVP.map` is similar to JavaScript's native `map` method, except that it
diff --git a/shelljs/index.d.ts b/shelljs/index.d.ts
index 5e812947fd..a8f2196dab 100644
--- a/shelljs/index.d.ts
+++ b/shelljs/index.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for ShellJS v0.6.0
+// Type definitions for ShellJS v0.7.6
// Project: http://shelljs.org
// Definitions by: Niklas Mollenhauer
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
@@ -466,7 +466,7 @@ export interface ExecCallback {
(code: number, stdout: string, stderr: string): any;
}
-export interface ExecOptions {
+export interface ExecOptions extends child.ExecOptions {
silent?: boolean;
async?: boolean;
}
diff --git a/shelljs/shelljs-tests.ts b/shelljs/shelljs-tests.ts
index a78b8e44e1..6c155e5aee 100644
--- a/shelljs/shelljs-tests.ts
+++ b/shelljs/shelljs-tests.ts
@@ -97,7 +97,7 @@ var pid = asyncVersion3.pid;
shell.exec("node --version", { silent: true }, function (code, stdout, stderr) {
var version = stdout;
});
-shell.exec("node --version", { silent: true, async: true }, function (code, stdout, stderr) {
+shell.exec("node --version", { silent: true, async: true, cwd: '/usr/local/bin' }, function (code, stdout, stderr) {
var version = stdout;
});
shell.exec("node --version", function (code, stdout, stderr) {
diff --git a/socket.io/index.d.ts b/socket.io/index.d.ts
index bf46ca1160..2333dc8fe2 100644
--- a/socket.io/index.d.ts
+++ b/socket.io/index.d.ts
@@ -180,7 +180,7 @@ declare namespace SocketIO {
/**
* Closes the server connection
*/
- close():void;
+ close( fn ?: () => void ):void;
/**
* The event fired when we get a new connection
diff --git a/socket.io/socket.io-tests.ts b/socket.io/socket.io-tests.ts
index 442e677751..ea3d97e21f 100644
--- a/socket.io/socket.io-tests.ts
+++ b/socket.io/socket.io-tests.ts
@@ -143,3 +143,14 @@ function testUsingItJustAsACrossBrowserWebSocket() {
socket.on('disconnect', function () { });
});
}
+
+function testClosingServerWithCallback() {
+ var io = socketIO.listen(80);
+ io.close(function() {
+ });
+}
+
+function testClosingServerWithoutCallback() {
+ var io = socketIO.listen(80);
+ io.close();
+}
diff --git a/steed/index.d.ts b/steed/index.d.ts
index ba4b199999..4865c8efa8 100644
--- a/steed/index.d.ts
+++ b/steed/index.d.ts
@@ -3,22 +3,21 @@
// Definitions by: Paul Isache
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
declare namespace steed {
interface Dictionary { [key: string]: T; }
- interface ErrorCallback { (err?: T): void; }
+ type ErrorCallback = (err?: T) => void;
- interface SteedResultCallback { (err: E, result: T): void; }
- interface SteedResultArrayCallback { (err: E, results: T[]): void; }
- interface SteedResultObjectCallback { (err: E, results: Dictionary): void; }
+ type SteedResultCallback = (err: E, result: T) => void;
+ type SteedResultArrayCallback = (err: E, results: T[]) => void;
+ type SteedResultObjectCallback = (err: E, results: Dictionary) => void;
- interface SteedWorker { (task: T, callback: ErrorCallback): void; }
- interface SteedIterator { (item: T, callback: ErrorCallback): void; }
- interface SteedResultIterator { (item: T, callback: SteedResultCallback): void; }
- interface SteedFunction { (callback: (err?: E, result?: T) => void): void; }
+ type SteedWorker = (task: T, callback: ErrorCallback) => void;
+ type SteedIterator = (item: T, callback: ErrorCallback) => void;
+ type SteedResultIterator = (item: T, callback: SteedResultCallback) => void;
+ type SteedFunction = (callback: (err?: E, result?: T) => void) => void;
interface SteedQueue {
- push(task: T | T[], callback?: ErrorCallback | SteedResultCallback): void;
+ push(task: T | T[], callback?: SteedResultCallback): void;
unshift(task: T | T[], callback?: ErrorCallback): void;
pause(): void;
resume(): void;
diff --git a/steed/tslint.json b/steed/tslint.json
new file mode 100644
index 0000000000..f05741c59b
--- /dev/null
+++ b/steed/tslint.json
@@ -0,0 +1,6 @@
+{
+ "extends": "../tslint.json",
+ "rules": {
+ "forbidden-types": false
+ }
+}
diff --git a/web-bluetooth/index.d.ts b/web-bluetooth/index.d.ts
index 219dd65f5e..f30269239c 100644
--- a/web-bluetooth/index.d.ts
+++ b/web-bluetooth/index.d.ts
@@ -17,7 +17,7 @@ interface BluetoothRequestDeviceFilter {
interface RequestDeviceOptions {
filters: BluetoothRequestDeviceFilter[];
- optionalServices?: number[];
+ optionalServices?: BluetoothServiceUUID[];
acceptAllDevices?: boolean;
}
diff --git a/webpack/index.d.ts b/webpack/index.d.ts
index 8b5a4d9938..1a762b29a5 100644
--- a/webpack/index.d.ts
+++ b/webpack/index.d.ts
@@ -759,7 +759,10 @@ declare namespace webpack {
namespace optimize {
class AggressiveMergingPlugin extends Plugin {
- constructor(options: any);
+ constructor(options?: {
+ minSize?: number;
+ maxSize?: number;
+ });
}
class CommonsChunkPlugin extends Plugin {