diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 23fbf41c5..224e8a84e 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -85,6 +85,7 @@ This document generated by [dt-contributors-generator](https://github.com/vvakam
* [:link:](bl/bl.d.ts) [BufferList](https://github.com/rvagg/bl) by [Bart van der Schoor](https://github.com/Bartvds)
* [:link:](bufferstream/bufferstream.d.ts) [bufferstream](https://github.com/dodo/node-bufferstream) by [Bart van der Schoor](https://github.com/Bartvds)
* [:link:](business-rules-engine/business-rules-engine.d.ts) [business-rules-engine](https://github.com/rsamec/form) by [Roman Samec](https://github.com/rsamec)
+* [:link:](byline/byline.d.ts) [byline](https://github.com/jahewson/node-byline) by [Stefan Steinhart](https://github.com/reppners)
* [:link:](camljs/camljs.d.ts) [camljs](http://camljs.codeplex.com) by [Andrey Markeev](http://markeev.com)
* [:link:](canvasjs/canvasjs.d.ts) [CanvasJS](http://canvasjs.com) by [Mark Overholt](https://github.com/mover5)
* [:link:](casperjs/casperjs.d.ts) [CasperJS](http://casperjs.org) by [Jed Mao](https://github.com/jedmao)
@@ -293,7 +294,7 @@ This document generated by [dt-contributors-generator](https://github.com/vvakam
* [:link:](ix.js/ix.d.ts) [IxJS 1.0.6 / ix.js](https://github.com/Reactive-Extensions/IxJS) by [Igor Oleinikov](https://github.com/Igorbek)
* [:link:](ix.js/l2o.d.ts) [IxJS 1.0.6 / l2o.js](https://github.com/Reactive-Extensions/IxJS) by [Igor Oleinikov](https://github.com/Igorbek)
* [:link:](jake/jake.d.ts) [jake](https://github.com/mde/jake) by [Kon](http://phyzkit.net)
-* [:link:](jasmine/jasmine.d.ts) [Jasmine](http://pivotal.github.com/jasmine) by [Boris Yankov](https://github.com/borisyankov), [Theodore Brown](https://github.com/theodorejb), [David Pärsson](https://github.com/davidparsson)
+* [:link:](jasmine/jasmine.d.ts) [Jasmine](http://jasmine.github.io) by [Boris Yankov](https://github.com/borisyankov), [Theodore Brown](https://github.com/theodorejb), [David Pärsson](https://github.com/davidparsson)
* [:link:](jasmine-data_driven_tests/jasmine-data_driven_tests.d.ts) [Jasmine Data Driven Tests](https://github.com/gburghardt/jasmine-data_driven_tests) by [Anthony MacKinnon](https://github.com/AnthonyMacKinnon)
* [:link:](jasmine-fixture/jasmine-fixture.d.ts) [Jasmine-fixture](https://github.com/searls/jasmine-fixture) by [Craig Brett](https://github.com/craigbrett17)
* [:link:](jasmine-jquery/jasmine-jquery.d.ts) [Jasmine-JQuery](https://github.com/velesin/jasmine-jquery) by [Gregor Stamac](https://github.com/gstamac)
@@ -516,6 +517,7 @@ This document generated by [dt-contributors-generator](https://github.com/vvakam
* [:link:](xml2js/xml2js.d.ts) [node-xml2js](https://github.com/Leonidas-from-XIV/node-xml2js) by [Michel Salib](https://github.com/michelsalib), [Jason McNeil](https://github.com/jasonrm)
* [:link:](node/node.d.ts) [Node.js](http://nodejs.org) by [Microsoft TypeScript](http://typescriptlang.org), [DefinitelyTyped](https://github.com/borisyankov/DefinitelyTyped)
* [:link:](restify/restify.d.ts) [node.js REST framework](https://github.com/mcavage/node-restify) by [Bret Little](https://github.com/blittle)
+* [:link:](mdns/mdns.d.ts) [node_mdns](https://github.com/agnat/node_mdns) by [Stefan Steinhart](https://github.com/reppners)
* [:link:](node_redis/node_redis.d.ts) [node_redis](https://github.com/mranney/node_redis) by [Boris Yankov](https://github.com/borisyankov)
* [:link:](each/each.d.ts) [NodeEach](http://www.adaltas.com/projects/node-each) by [Michael Zabka](https://github.com/misak113)
* [:link:](nodemailer/nodemailer.d.ts) [Nodemailer](https://github.com/andris9/Nodemailer) by [Vincent Bortone](https://github.com/vbortone)
@@ -579,6 +581,7 @@ This document generated by [dt-contributors-generator](https://github.com/vvakam
* [:link:](qajax/qajax.d.ts) [Qajax](https://github.com/gre/qajax) by [Boltmade](https://github.com/Boltmade)
* [:link:](qunit/qunit.d.ts) [QUnit](http://qunitjs.com) by [Diullei Gomes](https://github.com/diullei)
* [:link:](rabbit.js/rabbit.js.d.ts) [rabbit.js](https://github.com/squaremo/rabbit.js) by [Wonshik Kim](https://github.com/wokim)
+* [:link:](ractive/ractive.d.ts) [Ractive 0.7.0 edge f22ab8ad0a640591b1c263f57e21d1565cb26bf5](http://ractivejs.org) by [Han Lin Yap](http://yap.nu)
* [:link:](raphael/raphael.d.ts) [Raphael](http://raphaeljs.com) by [CheCoxshall](https://github.com/CheCoxshall)
* [:link:](ravenjs/ravenjs.d.ts) [Raven.js](https://github.com/getsentry/raven-js) by [Santi Albo](https://github.com/santialbo)
* [:link:](react/react.d.ts) [React](http://facebook.github.io/react) by [Asana](https://asana.com)
diff --git a/byline/byline-tests.ts b/byline/byline-tests.ts
new file mode 100644
index 000000000..42de3d5d9
--- /dev/null
+++ b/byline/byline-tests.ts
@@ -0,0 +1,47 @@
+/**
+ * Created by stefansteinhart on 31.01.15.
+ */
+
+///
+
+import fs = require( 'fs' );
+import byline = require( 'byline' );
+
+//TODO can this be typed in an ambient way?
+//var stream = byline( fs.createReadStream( 'sample.txt', {encoding: 'utf8'} ) );
+
+var stream = byline.createStream( fs.createReadStream( 'sample.txt', {encoding: 'utf8'} ) );
+
+stream.on('data', function(line:string) {
+ console.log(line);
+});
+
+stream = byline.createStream(stream);
+
+stream.on('data', function(line:string) {
+ console.log(line);
+});
+
+var input = fs.createReadStream('sample.txt');
+stream.pipe(fs.createWriteStream('nolines.txt'));
+
+var lineStream = byline.createStream();
+input.pipe(lineStream);
+
+var output = fs.createWriteStream('test.txt');
+lineStream.pipe(output);
+
+stream.on('readable', function() {
+ var line:string;
+ while (null !== (line = stream.read())) {
+ console.log(line);
+ }
+});
+
+var LineStream = require('byline').LineStream;
+
+var output = fs.createWriteStream('nolines.txt');
+
+var lineStream:byline.LineStream = new LineStream();
+input.pipe(lineStream);
+lineStream.pipe(output);
\ No newline at end of file
diff --git a/byline/byline.d.ts b/byline/byline.d.ts
new file mode 100644
index 000000000..6dac6ad50
--- /dev/null
+++ b/byline/byline.d.ts
@@ -0,0 +1,38 @@
+// Type definitions for byline 4.2.1
+// Project: https://github.com/jahewson/node-byline
+// Definitions by: Stefan Steinhart
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module "byline" {
+ import stream = require("stream");
+
+ export interface LineStreamOptions extends stream.TransformOptions {
+ keepEmptyLines: boolean;
+ }
+
+ export interface LineStream extends stream.Transform {
+ }
+
+ export interface LineStreamCreatable extends LineStream {
+ new (options?:LineStreamOptions):LineStream
+ }
+
+ //TODO is it possible to declare static factory functions without name (directly on the module)
+ //
+ // JS:
+ // // convinience API
+ // module.exports = function(readStream, options) {
+ // return module.exports.createStream(readStream, options);
+ // };
+ //
+ // TS:
+ // ():LineStream; // same as createStream():LineStream
+ // (stream:stream.Stream, options?:LineStreamOptions):LineStream; // same as createStream(stream, options?):LineStream
+
+ export function createStream():LineStream;
+ export function createStream(stream:NodeJS.ReadableStream, options?:LineStreamOptions):LineStream;
+
+ export var LineStream:LineStreamCreatable;
+}
\ No newline at end of file
diff --git a/jquery.validation/jquery.validation-tests.ts b/jquery.validation/jquery.validation-tests.ts
index fcc22d296..5a6a10770 100644
--- a/jquery.validation/jquery.validation-tests.ts
+++ b/jquery.validation/jquery.validation-tests.ts
@@ -187,6 +187,7 @@ function test_methods() {
});
$("#myform").validate().form();
$("#myform").validate().element("#myselect");
+ $("#myform").validate().element($("#myselect"));
var validator = $("#myform").validate();
validator.resetForm();
validator.showErrors({ "firstname": "I know that your firstname is Pete, Pete!" });
diff --git a/jquery.validation/jquery.validation.d.ts b/jquery.validation/jquery.validation.d.ts
index f8b6ca70c..118b19ef6 100644
--- a/jquery.validation/jquery.validation.d.ts
+++ b/jquery.validation/jquery.validation.d.ts
@@ -186,7 +186,7 @@ interface Validator
*
* @param element An element to validate, must be inside the validated form. eg "#myselect"
*/
- element(element: string): boolean;
+ element(element: string|JQuery): boolean;
/**
* Validates the form, returns true if it is valid, false otherwise.
*/
diff --git a/kolite/kolite.d.ts b/kolite/kolite.d.ts
index 6310fcad4..c9535411b 100644
--- a/kolite/kolite.d.ts
+++ b/kolite/kolite.d.ts
@@ -63,13 +63,13 @@ interface KoliteAsyncCommand extends KoliteCommand {
}
interface KoLiteCommandOptions {
- execute?: any;
+ execute(...args: any[]): any;
canExecute?: (isExecuting: boolean) => any;
}
interface KnockoutStatic {
command(options: KoLiteCommandOptions): KoliteCommand;
- asyncCommand(optons: KoLiteCommandOptions): KoliteAsyncCommand;
+ asyncCommand(options: KoLiteCommandOptions): KoliteAsyncCommand;
}
interface KnockoutUtils {
diff --git a/mdns/mdns-tests.ts b/mdns/mdns-tests.ts
new file mode 100644
index 000000000..20a336025
--- /dev/null
+++ b/mdns/mdns-tests.ts
@@ -0,0 +1,84 @@
+/**
+ * Created by stefansteinhart on 30.01.15.
+ */
+
+///
+
+var mdns = require('mdns')
+
+var ad:MDNS.Advertisement = mdns.createAdvertisement(mdns.tcp('http'), 4321);
+
+ad.start();
+
+var browser = mdns.createBrowser(mdns.tcp('http'));
+
+browser.on('serviceUp', function(service:MDNS.Service) {
+ console.log("service up: ", service);
+});
+browser.on('serviceDown', function(service:MDNS.Service) {
+ console.log("service down: ", service);
+});
+
+browser.start();
+
+var r0 = mdns.tcp('http') // string form: _http._tcp
+ , r1 = mdns.udp('osc', 'api-v1') // string form: _osc._udp,_api-v1
+ , r2 = new mdns.ServiceType('http', 'tcp') // string form: _http._tcp
+ , r3 = mdns.makeServiceType('https', 'tcp') // string form: _https._tcp
+ ;
+
+var txt_record = {
+ name: 'bacon'
+ , chunky: true
+ , strips: 5
+};
+var ad:MDNS.Advertisement = mdns.createAdvertisement(mdns.tcp('http'), 4321, {txtRecord: txt_record});
+
+var sequence = [
+ mdns.rst.DNSServiceResolve()
+ , mdns.rst.DNSServiceGetAddrInfo({families: [4] })
+];
+
+var browser = mdns.createBrowser(mdns.tcp('http'), {resolverSequence: sequence});
+
+interface HammerTimeService extends MDNS.Service {
+ hammerTime:Date;
+}
+
+function MCHammer(options:any) {
+ options = options || {};
+ return function MCHammer(service:HammerTimeService, next:()=>void) {
+ console.log('STOP!');
+ setTimeout(function() {
+ console.log('hammertime...');
+ service.hammerTime = new Date();
+ next();
+ }, options.delay || 1000);
+ }
+}
+
+var browser = mdns.createBrowser( mdns.tcp('http')
+ , { networkInterface: mdns.loopbackInterface()});
+
+var ad:MDNS.Advertisement;
+
+function createAdvertisement() {
+ try {
+ ad = mdns.createAdvertisement(mdns.tcp('http'), 1337);
+ ad.on('error', handleError);
+ ad.start();
+ } catch (ex) {
+ handleError(ex);
+ }
+}
+
+function handleError(error:MDNS.DnsSdError) {
+ switch (error.errorCode) {
+ case mdns.kDNSServiceErr_Unknown:
+ console.warn(error);
+ setTimeout(createAdvertisement, 5000);
+ break;
+ default:
+ throw error;
+ }
+}
\ No newline at end of file
diff --git a/mdns/mdns.d.ts b/mdns/mdns.d.ts
new file mode 100755
index 000000000..032d7c5af
--- /dev/null
+++ b/mdns/mdns.d.ts
@@ -0,0 +1,295 @@
+// Type definitions for node_mdns
+// Project: https://github.com/agnat/node_mdns
+// Definitions by: Stefan Steinhart
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module MDNS {
+
+ // --- Error ---
+
+ interface DnsSdError extends Error {
+ errorCode?:number;
+ }
+
+ // --- Ads ---
+
+ interface AdvertisementOptions {
+ name?:string;
+ interfaceIndex?:number;
+ networkInterface?:string;
+ txtRecord?:any;
+ host?:any;
+ domain?:any;
+ flags?:any;
+ context?:any;
+ }
+
+ interface AdvertisementCreatable {
+ new(serviceType:ServiceType, port:number, options?:AdvertisementOptions, callback?:(error:DnsSdError, service:Service)=>void):Advertisement;
+ }
+
+ interface Advertisement extends NodeJS.EventEmitter {
+ start():void;
+ stop():void;
+ }
+
+ // --- Browser ---
+
+ interface BrowserOptions {
+ resolverSequence?:Array<(service:Service, next:()=>void)=>boolean>;
+ interfaceIndex?:number;
+ networkInterface?:string;
+ domain?:any;
+ context?:any;
+ flags?:any;
+ }
+
+ interface Browser extends NodeJS.EventEmitter {
+ start():any;
+ stop():any;
+ }
+
+ interface BrowserStatic {
+ new(serviceType:ServiceType, options?:BrowserOptions):Browser;
+ defaultResolverSequence:Array<(service:Service, next:()=>void)=>boolean>
+ }
+
+ // --- Services ---
+
+ interface Service {
+ addresses:Array;
+ flags:number;
+ fullname:string;
+ host:string;
+ interfaceIndex: number;
+ name?:string;
+ networkInterface:string;
+ port:number;
+ replyDomain:string;
+ type:ServiceType;
+ }
+
+ interface ServiceType {
+ new(serviceTypeIdentifier:string):ServiceType;
+ new(name:string, protocol:string, ...subtypes:string[]):ServiceType;
+ new(serviceTypeIdentifier:Array):ServiceType;
+ new(serviceTypeIdentifier:{name:string; protocol:string; subtypes?:Array}):ServiceType;
+ new(serviceType:ServiceType):ServiceType;
+
+ fullyQualified:boolean;
+ name:string;
+ protocol:string;
+ subtypes:Array;
+
+ toString():string;
+ fromString(serviceTypeIdentifier:string):ServiceType;
+
+ toArray():Array;
+ fromArray(serviceTypeIdentifier:Array):ServiceType;
+
+ fromJSON(serviceTypeIdentifier:{name:string; protocol:string; subtypes?:Array}):ServiceType;
+ fromJSON(serviceType:ServiceType):ServiceType;
+ }
+
+ // interface for extending with custom resolvers
+ interface MDNSResolverSequenceTasks {
+
+ }
+
+ interface DefaultResolverSequenceTasks extends MDNSResolverSequenceTasks {
+ DNSServiceResolve(options?:{flags:any}):(service:Service, next:()=>void)=>boolean;
+ DNSServiceGetAddrInfo(options?:any):(service:Service, next:()=>void)=>boolean;
+ getaddrinfo(options?:any):(service:Service, next:()=>void)=>boolean;
+ makeAddressesUnique():(service:Service, next:()=>void)=>boolean;
+ filterAddresses(fn:(address:string, index?:number, addresses?:Array)=>boolean):void;
+ logService():void;
+ }
+
+ // --- Statics & Classes ---
+
+ var Advertisement:AdvertisementCreatable;
+ var Browser:BrowserStatic;
+ var ServiceType:ServiceType;
+ var rst:DefaultResolverSequenceTasks;
+
+ // static functions
+
+ function tcp(name:string, ...subtypes:string[]):ServiceType;
+
+ function udp(name:string, ...subtypes:string[]):ServiceType;
+
+ function makeServiceType(name:string, protocol:string, ...subtypes:string[]):ServiceType;
+
+ function makeServiceType(serviceTypeIdentifier:string):ServiceType;
+
+ function makeServiceType(serviceTypeIdentifier:Array):ServiceType;
+
+ function makeServiceType(serviceTypeIdentifier:{name:string; protocol:string; subtypes?:Array}):ServiceType;
+
+ function makeServiceType(serviceType:ServiceType):ServiceType;
+
+ function createBrowser(serviceType:ServiceType, options?:BrowserOptions):Browser;
+
+ function createAdvertisement(serviceType:ServiceType, port:number, options?:AdvertisementOptions, callback?:(error:DnsSdError, service:Service)=>void):Advertisement;
+
+ function resolve(service:Service, sequence?:Array<(service:Service, next:()=>void)=>boolean>, callback?:(error:DnsSdError, service:Service)=>void):void;
+
+ function browseThemAll(options:BrowserOptions):Browser;
+
+ function loopbackInterface():any;
+
+ // constants
+
+ var isAvahi:boolean;
+
+ // -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------
+
+ //Constants from dns_sd.h (C-Code of Bonjour -> see https://developer.apple.com/library/mac/documentation/Networking/Reference/DNSServiceDiscovery_CRef/Reference/reference.html)
+
+ var _DNS_SD_H:number;
+
+ var kDNSServiceMaxDomainName:string;
+ var kDNSServiceMaxServiceName:number;
+ var kDNSServiceOutputFlags:any;
+ var kDNSServiceProperty_DaemonVersion:number;
+
+ var kDNSServiceClass_IN:number;
+
+ var kDNSServiceErr_NoError:number;
+ var kDNSServiceErr_Unknown:number;
+ var kDNSServiceErr_NoSuchName:number;
+ var kDNSServiceErr_NoMemory:number;
+ var kDNSServiceErr_BadParam:number;
+ var kDNSServiceErr_BadReference:number;
+ var kDNSServiceErr_BadState:number;
+ var kDNSServiceErr_BadFlags:number;
+ var kDNSServiceErr_Unsupported:number;
+ var kDNSServiceErr_NotInitialized:number;
+ var kDNSServiceErr_AlreadyRegistered:number;
+ var kDNSServiceErr_NameConflict:number;
+ var kDNSServiceErr_Invalid:number;
+ var kDNSServiceErr_Firewall:number;
+ var kDNSServiceErr_Incompatible:number;
+ var kDNSServiceErr_BadInterfaceIndex:number;
+ var kDNSServiceErr_Refused:number;
+ var kDNSServiceErr_NoSuchRecord:number;
+ var kDNSServiceErr_NoAuth:number;
+ var kDNSServiceErr_NoSuchKey:number;
+ var kDNSServiceErr_NATTraversal:number;
+ var kDNSServiceErr_DoubleNAT:number;
+ var kDNSServiceErr_BadTime:number;
+ var kDNSServiceErr_BadSig:number;
+ var kDNSServiceErr_BadKey:number;
+ var kDNSServiceErr_Transient:number;
+ var kDNSServiceErr_ServiceNotRunning:number;
+ var kDNSServiceErr_NATPortMappingUnsupported:number;
+ var kDNSServiceErr_NATPortMappingDisabled:number;
+ var kDNSServiceErr_NoRouter:number;
+ var kDNSServiceErr_PollingMode:number;
+ var kDNSServiceErr_Timeout:number;
+
+ var kDNSServiceType_A:number;
+ var kDNSServiceType_NS:number;
+ var kDNSServiceType_MD:number;
+ var kDNSServiceType_MF:number;
+ var kDNSServiceType_CNAME:number;
+ var kDNSServiceType_SOA:number;
+ var kDNSServiceType_MB:number;
+ var kDNSServiceType_MG:number;
+ var kDNSServiceType_MR:number;
+ var kDNSServiceType_NULL:number;
+ var kDNSServiceType_WKS:number;
+ var kDNSServiceType_PTR:number;
+ var kDNSServiceType_HINFO:number;
+ var kDNSServiceType_MINFO:number;
+ var kDNSServiceType_MX:number;
+ var kDNSServiceType_TXT:number;
+ var kDNSServiceType_RP:number;
+ var kDNSServiceType_AFSDB:number;
+ var kDNSServiceType_X25:number;
+ var kDNSServiceType_ISDN:number;
+ var kDNSServiceType_RT:number;
+ var kDNSServiceType_NSAP:number;
+ var kDNSServiceType_NSAP_PTR:number;
+ var kDNSServiceType_SIG:number;
+ var kDNSServiceType_KEY:number;
+ var kDNSServiceType_PX:number;
+ var kDNSServiceType_GPOS:number;
+ var kDNSServiceType_AAAA:number;
+ var kDNSServiceType_LOC:number;
+ var kDNSServiceType_NXT:number;
+ var kDNSServiceType_EID:number;
+ var kDNSServiceType_NIMLOC:number;
+ var kDNSServiceType_SRV:number;
+ var kDNSServiceType_ATMA:number;
+ var kDNSServiceType_NAPTR:number;
+ var kDNSServiceType_KX:number;
+ var kDNSServiceType_CERT:number;
+ var kDNSServiceType_A6:number;
+ var kDNSServiceType_DNAME:number;
+ var kDNSServiceType_SINK:number;
+ var kDNSServiceType_OPT:number;
+ var kDNSServiceType_APL:number;
+ var kDNSServiceType_DS:number;
+ var kDNSServiceType_SSHFP:number;
+ var kDNSServiceType_IPSECKEY:number;
+ var kDNSServiceType_RRSIG:number;
+ var kDNSServiceType_NSEC:number;
+ var kDNSServiceType_DNSKEY:number;
+ var kDNSServiceType_DHCID:number;
+ var kDNSServiceType_NSEC3:number;
+ var kDNSServiceType_NSEC3PARAM:number;
+ var kDNSServiceType_HIP:number;
+ var kDNSServiceType_SPF:number;
+ var kDNSServiceType_UINFO:number;
+ var kDNSServiceType_UID:number;
+ var kDNSServiceType_GID:number;
+ var kDNSServiceType_UNSPEC:number;
+ var kDNSServiceType_TKEY:number;
+ var kDNSServiceType_TSIG:number;
+ var kDNSServiceType_IXFR:number;
+ var kDNSServiceType_AXFR:number;
+ var kDNSServiceType_MAILB:number;
+ var kDNSServiceType_MAILA:number;
+ var kDNSServiceType_ANY:number;
+
+ var kDNSServiceFlagsMoreComing:number;
+ var kDNSServiceFlagsAdd:number;
+ var kDNSServiceFlagsDefault:number;
+ var kDNSServiceFlagsNoAutoRename:number;
+ var kDNSServiceFlagsShared:number;
+ var kDNSServiceFlagsUnique:number;
+ var kDNSServiceFlagsBrowseDomains:number;
+ var kDNSServiceFlagsRegistrationDomains:number;
+ var kDNSServiceFlagsLongLivedQuery:number;
+ var kDNSServiceFlagsAllowRemoteQuery:number;
+ var kDNSServiceFlagsForceMulticast:number;
+ var kDNSServiceFlagsKnownUnique:number;
+ var kDNSServiceFlagsReturnIntermediates:number;
+ var kDNSServiceFlagsNonBrowsable:number;
+ var kDNSServiceFlagsShareConnection:number;
+ var kDNSServiceFlagsSuppressUnusable:number;
+ var kDNSServiceFlagsWakeOnResolve:number;
+ var kDNSServiceFlagsBackgroundTrafficClass:number;
+ var kDNSServiceFlagsIncludeAWDL:number;
+ var kDNSServiceFlagsValidate:number;
+ var kDNSServiceFlagsSecure:number;
+ var kDNSServiceFlagsInsecure:number;
+ var kDNSServiceFlagsBogus:number;
+ var kDNSServiceFlagsIndeterminate:number;
+ var kDNSServiceFlagsUnicastResponse:number;
+ var kDNSServiceFlagsValidateOptional:number;
+ var kDNSServiceFlagsWakeOnlyService:number;
+
+ var kDNSServiceProtocol_IPv4:number;
+ var kDNSServiceProtocol_IPv6:number;
+ var kDNSServiceProtocol_UDP:number;
+ var kDNSServiceProtocol_TCP:number;
+}
+
+declare module "mdns" {
+
+ export = MDNS;
+}
\ No newline at end of file
diff --git a/ractive/ractive-tests.ts b/ractive/ractive-tests.ts
new file mode 100644
index 000000000..e206d2e26
--- /dev/null
+++ b/ractive/ractive-tests.ts
@@ -0,0 +1,26 @@
+///
+
+function test_transition() {
+ var plugin: Ractive.TransitionPlugin = (t: Ractive.Transition, params: Object) => {
+ // Some stuffs...
+ };
+
+ Ractive.transitions['myTransition'] = plugin;
+}
+
+Ractive.defaults = {
+ template: '',
+ debug: true
+}
+
+var options: Ractive.NewOptions = {
+ template: '',
+};
+
+var r: Ractive.Ractive = new Ractive(options);
+
+r.add('keypath', 1);
+
+var re: Ractive.Static = Ractive.extend(options);
+var component: Ractive.Static = re.extend(options);
+new component(options);
\ No newline at end of file
diff --git a/ractive/ractive.d.ts b/ractive/ractive.d.ts
new file mode 100644
index 000000000..97ceda993
--- /dev/null
+++ b/ractive/ractive.d.ts
@@ -0,0 +1,408 @@
+// Type definitions for Ractive 0.7.0 edge f22ab8ad0a640591b1c263f57e21d1565cb26bf5
+// Project: http://ractivejs.org
+// Definitions by: Han Lin Yap
+// Definitions: https://github.com/codler/Ractive-TypeScript-Definition
+// Version: 0.7.0-1+2015-02-05
+
+declare module Ractive {
+ export interface Node extends HTMLElement {
+ _ractive: any;
+ }
+
+ // It's functionally identical to the ES6 promise (as currently spec'd) except that Promise.race and Promise.cast are not currently implemented.
+ export interface Promise extends Object {
+ // TODO: Implement interface or wait until typescript include native Promise definition.
+ }
+
+ export interface AnimationPromise extends Promise {
+ stop(): void; // TODO: void?
+ }
+
+ export interface AdaptorPlugin extends Object {
+ // TODO:
+ }
+
+ export interface ComponentPlugin extends Static {
+ // TODO:
+ }
+
+ export interface DecoratorPlugin {
+ (node: HTMLElement, ...args: any[]): {
+ // TODO: undocumented GH-429
+ update?: (...args: any[]) => void;
+ teardown: () => void;
+ }
+ }
+
+ export interface EventPlugin extends Function {
+ // TODO:
+ }
+
+ export interface TransitionPlugin {
+ (t: Transition, params: Object): void;
+ }
+
+ export interface AdaptorPlugins {
+ [key: string]: AdaptorPlugin;
+ }
+
+ export interface ComponentPlugins {
+ [key: string]: ComponentPlugin;
+ }
+
+ export interface DecoratorPlugins {
+ [key: string]: DecoratorPlugin;
+ }
+
+ export interface EventPlugins {
+ [key: string]: EventPlugin;
+ }
+
+ export interface TransitionPlugins {
+ [key: string]: TransitionPlugin;
+ }
+
+ export interface Event {
+ context: any;
+ // TODO: unclear in documantation
+ index: Object;
+ keypath: string;
+ node: HTMLElement;
+ original: Event;
+ }
+
+ // Return value in ractive.observe and ractive.on
+ export interface Observe {
+ cancel(): void;
+ }
+
+ // Comes as first parameter in RactiveTransitionPlugin
+ export interface Transition {
+ isIntro: boolean;
+ name: string;
+ node: HTMLElement;
+
+ animateStyle(prop: string, value: any, options: TransitionAnimateOptions, complete: Function): void;
+ animateStyle(props: Object, options: TransitionAnimateOptions, complete: Function): void;
+ // Default false
+ complete(noReset?: boolean): void;
+ getStyle(prop: string): string;
+ getStyle(props: string[]): Object;
+ processParams(params: any, defaults?: Object): Object;
+ resetStyle(): void;
+ setStyle(prop: string, value: any): Transition;
+ setStyle(props: Object): Transition;
+ }
+
+ export interface TransitionAnimateOptions {
+ // TODO: Do it have default value?
+ duration: number;
+ // Any valid CSS timing function
+ // Default 'linear'
+ easing?: string;
+ // TODO: Do it have default value?
+ delay: number;
+ }
+
+ export interface AnimateOptions {
+ duration?: number;
+ easing?: string | Function;
+ // TODO: number as type correct?
+ step?: (t: number, value: number) => void; // TODO: void?
+ // TODO: number as type correct?
+ complate?: (t: number, value: number) => void; // TODO: void?
+ }
+
+ export interface ObserveOptions {
+ // Default Ractive
+ context?: any;
+ // Default false
+ defer?: boolean;
+ // Default true
+ init?: boolean;
+ }
+
+ // Used in Ractive.parse options
+ export interface ParseOptions {
+ preserveWhitespace: boolean;
+ sanitize: any;
+ }
+
+ // Used in Initialisation options
+ export interface SanitizeOptions {
+ elements: string[];
+ // TODO: Undocumented what default value is, but probably false
+ eventAttributes?: boolean;
+ }
+
+ export interface NewOptions {
+ /*
+ * @type List of mixed string or Adaptor
+ */
+ adapt?: any[];
+
+ adaptors?: AdaptorPlugins;
+
+ /**
+ * Default false
+ * @type boolean or any type that option `el` accepts (HTMLElement or String or jQuery-like collection)
+ */
+ append?: any;
+
+ complete?: Function;
+ components?: ComponentPlugins;
+ computed?: Object;
+ // Since 0.5.5
+ // TODO: unclear in documantation
+ css?: string;
+
+ /**
+ * TODO: Question - When is data Array or String?
+ *
+ * @type Object, Array, String or Function
+ */
+ // TODO: undocumented type Function
+ data?: any;
+
+ decorators?: DecoratorPlugins;
+ /**
+ * @type [open, close]
+ */
+ delimiters?: string[];
+
+ easing?: string | Function;
+
+ /**
+ * @type HTMLElement or String or jQuery-like collection
+ */
+ el?: any;
+ // TODO: undocumented in Initialisation options page
+ events?: EventPlugins;
+
+ // TODO: In next release
+ // TODO: undocumented GH-429
+ // interpolate
+
+ // Since 0.5.5
+ // TODO: unclear in documantation
+ interpolators?: { [key: string]: any; };
+
+ // Since 0.6.0
+ onconstruct?: (options: NewOptions) => void; // TODO: void?
+ // Since 0.6.0
+ onchange?: (options: NewOptions) => void; // TODO: void?
+
+ /**
+ * any is same type as template
+ */
+ partials?: { [key: string]: any; };
+ /**
+ * Default false
+ * @type Boolean or RactiveSanitizeOptions
+ */
+ sanitize?: any;
+ /**
+ * Default ['[[', ']]']
+ * @type [open, close]
+ */
+ staticDelimiters?: string[];
+ /**
+ * Default ['[[[', ']]]']
+ * @type [open, close]
+ */
+ staticTripleDelimiters?: string[];
+ /**
+ * @type String or (if preparsing "Ractive.parse") Array or Object
+ */
+ template?: any;
+ transitions?: TransitionPlugins;
+ /**
+ * @type [open, close]
+ */
+ tripleDelimiters?: string[];
+
+ // Default false
+ lazy?: boolean;
+ // Default false
+ magic?: boolean;
+ // Default true
+ modifyArrays?: boolean;
+ // Since 0.5.5
+ // TODO: unclear in documentation
+ // Default false
+ noCSSTransform?: boolean;
+ // Default false
+ noIntro?: boolean;
+ // Default false
+ preserveWhitespace?: boolean;
+ // Since 0.5.5
+ // Default true
+ stripComments?: boolean;
+ // Default true
+ twoway?: boolean;
+
+ }
+
+ export interface ExtendOptions extends NewOptions {
+ /**
+ * @deprecated
+ */
+ beforeInit?: (options: ExtendOptions) => void;
+ /**
+ * @deprecated
+ */
+ init?: (options: ExtendOptions) => void;
+
+ // TODO: undocumented arguments
+ onconstruct?: (options: ExtendOptions) => void; // TODO: void?
+ onrender?: () => void; // TODO: void?
+ // Default false, inherit from Ractive.defaults
+ isolated?: boolean;
+ }
+
+ // See ractive change log "All configuration options, except plugin registries, can be specified on Ractive.defaults and Component.defaults"
+ export interface DefaultsOptions extends ExtendOptions {
+ // TODO: not correctly documented
+ // Default false
+ debug?: boolean;
+ }
+
+ /**
+ * Static members of Ractive
+ */
+ export interface Static {
+ new (options: NewOptions): Ractive;
+
+ extend(options: ExtendOptions): Static;
+
+ parse(template: string, options?: ParseOptions): any;
+
+ // TODO: undocumented
+ adaptors: AdaptorPlugins;
+
+ // TODO: undocumented
+ components: ComponentPlugins;
+
+ defaults: DefaultsOptions;
+
+ // TODO: undocumented
+ decorators: DecoratorPlugins;
+
+ easing: { [key: string]: (x: number) => number; };
+
+ // TODO: undocumented
+ events: EventPlugins;
+
+ // TODO: missing static properties documentation
+ partials: { [key: string]: any; };
+
+ // Undocumented method
+ Promise: Promise;
+
+ // TODO: missing static properties documentation
+ transitions: TransitionPlugins;
+ }
+
+ /**
+ * The Ractive instance members
+ */
+ export interface Ractive {
+ add(keypath: string, number?: number): Promise;
+
+ animate(keypath: string, value: any, options?: AnimateOptions): AnimationPromise;
+
+ animate(map: Object, options?: AnimateOptions): AnimationPromise;
+
+ detach(): DocumentFragment;
+
+ find(selector: string): HTMLElement;
+
+ // live default false
+ findAll(selector: string, options?: { live: boolean }): HTMLElement[];
+
+ // live default false
+ findAllComponents(name: string, options?: { live: boolean }): Ractive[];
+ // TODO: maybe exist, in that case it is undocumented
+ // findAllComponents(): Ractive[]
+
+ findComponent(name?: string): Ractive;
+
+ fire(eventName: string, ...args: any[]): void; // TODO: void?
+
+ get(keypath: string): any;
+ get(): Object; // TODO: undocumented. or do it return function if ractive.data defined as function?
+
+ // TODO: target - Node or String or jQuery (see Valid selectors)
+ // TODO: anchor - Node or String or jQuery
+ insert(target: any, anchor?: any): void; // TODO: void?
+
+ merge(keypath: string, value: any[], options?: { compare: boolean | string | Function }): Promise;
+
+ // callback context Ractive
+ observe(keypath: string, callback: (newValue: any, oldValue: any, keypath: string) => void, options?: ObserveOptions): Observe;
+ observe(map: Object, options?: ObserveOptions): Observe;
+
+ // TODO: check handler type
+ off(eventName?: string, handler?: () => void): Ractive;
+
+ // handler context Ractive
+ on(eventName: string, handler: (event?: Event, ...args: any[]) => void): Observe;
+ // TODO: undocumented
+ on(map: { [eventName: string]: (event?: Event, ...args: any[]) => void }): Observe;
+
+ // Since 0.5.5
+ pop(keypath: string): Promise;
+
+ // Since 0.5.5
+ push(keypath: string, value: any): Promise;
+
+ // TODO: target - Node or String or jQuery (see Valid selectors)
+ render(target: any): void; // TODO: void?
+
+ reset(data?: Object): Promise;
+
+ // Since 0.5.5
+ // TODO: undocumented, mentioned in ractive change log
+ resetTemplate(): void; // TODO: void?
+
+ set(keypath: string, value: any): Promise;
+ set(map: Object): Promise;
+
+ // Since 0.5.5
+ shift(keypath: string): Promise;
+
+ // Since 0.5.5
+ splice(keypath: string, index: number, removeCount: number, ...add: any[]): Promise;
+
+ subtract(keypath: string, number?: number): Promise;
+
+ teardown(): Promise;
+
+ toggle(keypath: string): Promise;
+
+ toHTML(): string;
+
+ // Since 0.5.5
+ unshift(keypath: string, value: any): Promise;
+
+ update(keypath?: string): Promise;
+
+ /**
+ * Update out of sync two-way bindings
+ * @param keypath A string
+ * @param cascade A boolean with default false
+ */
+ updateModel(keypath?: string, cascade?: boolean): Promise;
+
+ // Properties
+
+ nodes: Object;
+ partials: Object;
+ transitions: Object;
+ }
+}
+
+declare module "ractive" {
+ export = Ractive;
+}
+declare var Ractive: Ractive.Static;
diff --git a/sockjs-node/sockjs-node.d.ts b/sockjs-node/sockjs-node.d.ts
index e054fe2eb..c3c32507e 100644
--- a/sockjs-node/sockjs-node.d.ts
+++ b/sockjs-node/sockjs-node.d.ts
@@ -45,6 +45,7 @@ declare module "sockjs" {
prefix: string;
protocol: string;
readyState: number;
+ id: string;
close(code?: string, reason?: string): boolean;
destroy(): void;