diff --git a/autobahn/autobahn.d.ts b/autobahn/autobahn.d.ts
index ceaf21230..6debcca7c 100644
--- a/autobahn/autobahn.d.ts
+++ b/autobahn/autobahn.d.ts
@@ -4,197 +4,266 @@
// Definitions: https://github.com/borisyankov/DefinitelyTyped
///
+///
declare module autobahn {
- export class Session {
- id: number;
- realm: string;
- isOpen: boolean;
- features: any;
- caller_disclose_me: boolean;
- publisher_disclose_me: boolean;
- subscriptions: ISubscription[][];
- registrations: IRegistration[];
+ export class Session {
+ id: number;
+ realm: string;
+ isOpen: boolean;
+ features: any;
+ caller_disclose_me: boolean;
+ publisher_disclose_me: boolean;
+ subscriptions: ISubscription[][];
+ registrations: IRegistration[];
- constructor(transport: ITransport, defer: DeferFactory, challenge: OnChallengeHandler);
+ constructor(transport: ITransport, defer: DeferFactory, challenge: OnChallengeHandler);
- join(realm: string, authmethods: string[], authid: string): void;
+ join(realm: string, authmethods: string[], authid: string): void;
- leave(reason: string, message: string): void;
+ leave(reason: string, message: string): void;
- call(procedure: string, args?: any[], kwargs?: any, options?: ICallOptions): When.Promise;
+ call(procedure: string, args?: any[], kwargs?: any, options?: ICallOptions): When.Promise;
- publish(topic: string, args?: any[], kwargs?: any, options?: IPublishOptions): When.Promise;
+ publish(topic: string, args?: any[], kwargs?: any, options?: IPublishOptions): When.Promise;
- subscribe(topic: string, handler: SubscribeHandler, options?: ISubscribeOptions): When.Promise;
+ subscribe(topic: string, handler: SubscribeHandler, options?: ISubscribeOptions): When.Promise;
- register(procedure: string, endpoint: RegisterEndpoint, options?: IRegisterOptions): When.Promise;
+ register(procedure: string, endpoint: RegisterEndpoint, options?: IRegisterOptions): When.Promise;
- unsubscribe(subscription: ISubscription): When.Promise;
+ unsubscribe(subscription: ISubscription): When.Promise;
- unregister(registration: IRegistration): When.Promise;
+ unregister(registration: IRegistration): When.Promise;
- prefix(prefix: string, uri: string): void;
+ prefix(prefix: string, uri: string): void;
- resolve(curie: string): string;
+ resolve(curie: string): string;
- onjoin: (roleFeatures: any) => void;
- onleave: (reason: string, details: any) => void;
- }
+ onjoin: (roleFeatures: any) => void;
+ onleave: (reason: string, details: any) => void;
+ }
- interface IInvocation {
- caller?: number;
- progress?: boolean;
- procedure: string;
- }
+ interface IInvocation {
+ caller?: number;
+ progress?: boolean;
+ procedure: string;
+ }
- interface IEvent {
- publication: number;
- publisher?: number;
- topic: string;
- }
+ class Invocation implements IInvocation {
+ constructor(caller?: number, progress?: boolean, procedure?: string);
- interface IResult {
- args: any[];
- kwargs: any;
- }
+ procedure: string;
+ }
- interface IError {
- error: string;
- args: any[];
- kwargs: any;
- }
+ interface IEvent {
+ publication: number;
+ publisher?: number;
+ topic: string;
+ }
- type SubscribeHandler = (args?: any[], kwargs?: any, details?: IEvent) => void;
+ class Event implements IEvent {
+ constructor(publication?: number, publisher?: string, topic?: string);
- interface ISubscription {
- topic: string;
- handler: SubscribeHandler;
- options: ISubscribeOptions;
- session: Session;
- id: number;
- active: boolean;
- unsubscribe(): When.Promise;
- }
+ publication: number;
+ topic: string;
+ }
- type RegisterEndpoint = (args?: any[], kwargs?: any, details?: IInvocation) => void;
+ interface IResult {
+ args: any[];
+ kwargs: any;
+ }
- interface IRegistration {
- procedure: string;
- endpoint: RegisterEndpoint;
- options: IRegisterOptions;
- session: Session;
- id: number;
- active: boolean;
- unregister(): When.Promise;
- }
+ class Result implements IResult {
+ constructor(args?: any[], kwargs?: any);
- interface IPublication {
- id: number;
- }
+ args: any[];
+ kwargs: any;
+ }
- interface ICallOptions {
- timeout?: number;
- receive_progress?: boolean;
- disclose_me?: boolean;
- }
+ interface IError {
+ error: string;
+ args: any[];
+ kwargs: any;
+ }
- interface IPublishOptions {
- exclude?: number[];
- eligible?: number[];
- disclose_me? : Boolean;
- }
+ class Error implements IError {
+ constructor(error?: string, args?: any[], kwargs?: any);
- interface ISubscribeOptions {
- match? : string;
- }
+ error: string;
+ args: any[];
+ kwargs: any;
+ }
- interface IRegisterOptions {
- disclose_caller?: boolean;
- }
+ type SubscribeHandler = (args?: any[], kwargs?: any, details?: IEvent) => void;
- export class Connection {
- constructor(options?: IConnectionOptions);
+ interface ISubscription {
+ topic: string;
+ handler: SubscribeHandler;
+ options: ISubscribeOptions;
+ session: Session;
+ id: number;
+ active: boolean;
+ unsubscribe(): When.Promise;
+ }
- open(): void;
+ class Subscription implements ISubscription {
+ constructor(topic? : string, handler?: SubscribeHandler, options?: ISubscribeOptions, session?: Session, id?: number);
- close(reason: string, message: string): void;
+ handler: SubscribeHandler;
- onopen: (session: Session, details: any) => void;
- onclose: (reason: string, details: any) => boolean;
- }
+ unsubscribe(): When.Promise;
- interface ITransportDefinition {
- url?: string;
- protocols?: string[];
- type: string;
- }
+ topic: string;
+ options: ISubscribeOptions;
+ session: Session;
+ id: number;
+ active: boolean;
+ }
- type DeferFactory = () => any;
+ type RegisterEndpoint = (args?: any[], kwargs?: any, details?: IInvocation) => void;
- type OnChallengeHandler = (session: Session, method: string, extra: any) => When.Promise;
+ interface IRegistration {
+ procedure: string;
+ endpoint: RegisterEndpoint;
+ options: IRegisterOptions;
+ session: Session;
+ id: number;
+ active: boolean;
+ unregister(): When.Promise;
+ }
- interface IConnectionOptions {
- use_es6_promises?: boolean;
- // use explicit deferred factory, e.g. jQuery.Deferred or Q.defer
- use_deferred?: DeferFactory;
- transports?: ITransportDefinition[];
- retry_if_unreachable?: boolean;
- max_retries?: number;
- initial_retry_delay?: number;
- max_retry_delay?: number;
- retry_delay_growth?: number;
- retry_delay_jitter?: number;
- url?: string;
- protocols?: string[];
- onchallenge?: (session: Session, method: string, extra: any) => OnChallengeHandler;
- realm?: string;
- authmethods?: string[];
- authid?: string;
- }
+ class Registration implements IRegistration {
+ constructor(procedure?: string, endpoint?: RegisterEndpoint, options?: IRegisterOptions, session?: Session, id?: number);
- interface ICloseEventDetails {
- wasClean: boolean;
- reason: string;
- code: number;
- }
+ endpoint: RegisterEndpoint;
- interface ITransport {
- onopen: () => void;
- onmessage: (message: any[]) => void;
- onclose: (details: ICloseEventDetails) => void;
+ unregister(): When.Promise;
- send(message: any[]): void;
- close(errorCode: number, reason?: string): void;
- }
+ procedure: string;
+ options: IRegisterOptions;
+ session: Session;
+ id: number;
+ active: boolean;
+ }
- interface ITransportFactory {
- //constructor(options: any);
- type: string;
- create(): ITransport;
- }
+ interface IPublication {
+ id: number;
+ }
- interface ITransports {
- register(name: string, factory: any): void;
- isRegistered(name: string): boolean;
- get(name: string): any;
- list(): any[];
- }
+ class Publication implements IPublication {
+ constructor(id: number);
- interface ILog {
- debug(...args: any[]): void;
- }
+ id: number;
+ }
- interface IUtil {
- assert(condition: boolean, message: string): void;
- }
+ interface ICallOptions {
+ timeout?: number;
+ receive_progress?: boolean;
+ disclose_me?: boolean;
+ }
- var util: IUtil;
- var log: ILog;
- var transports: ITransports;
+ interface IPublishOptions {
+ exclude?: number[];
+ eligible?: number[];
+ disclose_me?: Boolean;
+ }
+
+ interface ISubscribeOptions {
+ match?: string;
+ }
+
+ interface IRegisterOptions {
+ disclose_caller?: boolean;
+ }
+
+ export class Connection {
+ constructor(options?: IConnectionOptions);
+
+ open(): void;
+
+ close(reason: string, message: string): void;
+
+ onopen: (session: Session, details: any) => void;
+ onclose: (reason: string, details: any) => boolean;
+ }
+
+ interface ITransportDefinition {
+ url?: string;
+ protocols?: string[];
+ type: string;
+ }
+
+ type DeferFactory = () => JQueryPromise;
+
+ type OnChallengeHandler = (session: Session, method: string, extra: any) => When.Promise;
+
+ interface IConnectionOptions {
+ use_es6_promises?: boolean;
+ // use explicit deferred factory, e.g. jQuery.Deferred or Q.defer
+ use_deferred?: DeferFactory;
+ transports?: ITransportDefinition[];
+ retry_if_unreachable?: boolean;
+ max_retries?: number;
+ initial_retry_delay?: number;
+ max_retry_delay?: number;
+ retry_delay_growth?: number;
+ retry_delay_jitter?: number;
+ url?: string;
+ protocols?: string[];
+ onchallenge?: (session: Session, method: string, extra: any) => OnChallengeHandler;
+ realm?: string;
+ authmethods?: string[];
+ authid?: string;
+ }
+
+ interface ICloseEventDetails {
+ wasClean: boolean;
+ reason: string;
+ code: number;
+ }
+
+ interface ITransport {
+ onopen: () => void;
+ onmessage: (message: any[]) => void;
+ onclose: (details: ICloseEventDetails) => void;
+
+ send(message: any[]): void;
+ close(errorCode: number, reason?: string): void;
+ }
+
+ interface ITransportFactory {
+ // constructor(options: any);
+ type: string;
+ create(): ITransport;
+ }
+
+ interface ITransports {
+ register(name: string, factory: any): void;
+ isRegistered(name: string): boolean;
+ get(name: string): any;
+ list(): string[];
+ }
+
+ interface ILog {
+ debug(...args: any[]): void;
+ }
+
+ interface IUtil {
+ assert(condition: boolean, message: string): void;
+ }
+
+ interface IAuthCra {
+ derive_key(secret: string, salt: string, iterations: number, keylen: number): string;
+ sign(key: string, challenge: string): string;
+ }
+
+ var util: IUtil;
+ var log: ILog;
+ var transports: ITransports;
+ var auth_cra: IAuthCra;
}
declare module "autobahn" {
- export = autobahn;
+ export = autobahn;
}