diff --git a/angularjs/README.md b/angularjs/README.md
index 1692d947c..806a605d5 100644
--- a/angularjs/README.md
+++ b/angularjs/README.md
@@ -35,6 +35,7 @@ To avoid cluttering the list of suggestions as you type in your IDE, all interfa
* `ng.cookies` for **ngCookies**
* `ng.mock` for **ngMock**
* `ng.resource` for **ngResource**
+* `ng.route` for **ngRoute**
* `ng.sanitize` for **ngSanitize**
**ngMockE2E** does not define a new namespace, but rather modifies some of **ng**'s interfaces.
diff --git a/angularjs/angular-1.0-tests.ts b/angularjs/angular-1.0-tests.ts
new file mode 100644
index 000000000..ff3c87f77
--- /dev/null
+++ b/angularjs/angular-1.0-tests.ts
@@ -0,0 +1,219 @@
+///
+
+// issue: https://github.com/borisyankov/DefinitelyTyped/issues/369
+https://github.com/witoldsz/angular-http-auth/blob/master/src/angular-http-auth.js
+/**
+ * @license HTTP Auth Interceptor Module for AngularJS
+ * (c) 2012 Witold Szczerba
+ * License: MIT
+ */
+angular.module('http-auth-interceptor', [])
+
+ .provider('authService', function () {
+ /**
+ * Holds all the requests which failed due to 401 response,
+ * so they can be re-requested in future, once login is completed.
+ */
+ var buffer = [];
+
+ /**
+ * Required by HTTP interceptor.
+ * Function is attached to provider to be invisible for regular users of this service.
+ */
+ this.pushToBuffer = function (config: ng.IRequestConfig, deferred: ng.IDeferred) {
+ buffer.push({
+ config: config,
+ deferred: deferred
+ });
+ }
+
+ this.$get = ['$rootScope', '$injector', function ($rootScope: ng.IScope, $injector: ng.auto.IInjectorService) {
+ var $http: ng.IHttpService; //initialized later because of circular dependency problem
+ function retry(config: ng.IRequestConfig, deferred: ng.IDeferred) {
+ $http = $http || $injector.get('$http');
+ $http(config).then(function (response) {
+ deferred.resolve(response);
+ });
+ }
+ function retryAll() {
+ for (var i = 0; i < buffer.length; ++i) {
+ retry(buffer[i].config, buffer[i].deferred);
+ }
+ buffer = [];
+ }
+
+ return {
+ loginConfirmed: function () {
+ $rootScope.$broadcast('event:auth-loginConfirmed');
+ retryAll();
+ }
+ }
+ }]
+ })
+
+/**
+ * $http interceptor.
+ * On 401 response - it stores the request and broadcasts 'event:angular-auth-loginRequired'.
+ */
+ .config(['$httpProvider', 'authServiceProvider', function ($httpProvider: ng.IHttpProvider, authServiceProvider) {
+
+ var interceptor = ['$rootScope', '$q', function ($rootScope: ng.IScope, $q: ng.IQService) {
+ function success(response: ng.IHttpPromiseCallbackArg) {
+ return response;
+ }
+
+ function error(response: ng.IHttpPromiseCallbackArg) {
+ if (response.status === 401) {
+ var deferred = $q.defer();
+ authServiceProvider.pushToBuffer(response.config, deferred);
+ $rootScope.$broadcast('event:auth-loginRequired');
+ return deferred.promise;
+ }
+ // otherwise
+ return $q.reject(response);
+ }
+
+ return function (promise: ng.IHttpPromise) {
+ return promise.then(success, error);
+ }
+
+ }];
+ $httpProvider.responseInterceptors.push(interceptor);
+ }]);
+
+
+module HttpAndRegularPromiseTests {
+ interface Person {
+ firstName: string;
+ lastName: string;
+ }
+
+ interface ExpectedResponse extends Person { }
+
+ interface SomeControllerScope extends ng.IScope {
+ person: Person;
+ theAnswer: number;
+ letters: string[];
+ }
+
+ var someController: Function = ($scope: SomeControllerScope, $http: ng.IHttpService, $q: ng.IQService) => {
+ $http.get("http://somewhere/some/resource")
+ .success((data: ExpectedResponse) => {
+ $scope.person = data;
+ });
+
+ $http.get("http://somewhere/some/resource")
+ .then((response: ng.IHttpPromiseCallbackArg) => {
+ // typing lost, so something like
+ // var i: number = response.data
+ // would type check
+ $scope.person = response.data;
+ });
+
+ $http.get("http://somewhere/some/resource")
+ .then((response: ng.IHttpPromiseCallbackArg) => {
+ // typing lost, so something like
+ // var i: number = response.data
+ // would NOT type check
+ $scope.person = response.data;
+ });
+
+ var aPromise: ng.IPromise = $q.when({ firstName: "Jack", lastName: "Sparrow" });
+ aPromise.then((person: Person) => {
+ $scope.person = person;
+ });
+
+ var bPromise: ng.IPromise = $q.when(42);
+ bPromise.then((answer: number) => {
+ $scope.theAnswer = answer;
+ });
+
+ var cPromise: ng.IPromise = $q.when(["a", "b", "c"]);
+ cPromise.then((letters: string[]) => {
+ $scope.letters = letters;
+ });
+ }
+
+ // Test that we can pass around a type-checked success/error Promise Callback
+ var anotherController: Function = ($scope: SomeControllerScope, $http:
+ ng.IHttpService, $q: ng.IQService) => {
+
+ var buildFooData: Function = () => 42;
+
+ var doFoo: Function = (callback: ng.IHttpPromiseCallback) => {
+ $http.get('/foo', buildFooData())
+ .success(callback);
+ }
+
+ doFoo((data) => console.log(data));
+ }
+}
+
+// Test for AngularJS Syntax
+
+module My.Namespace {
+ export var x; // need to export something for module to kick in
+}
+
+// IModule Registering Test
+var mod = angular.module('tests', []);
+mod.controller('name', function ($scope: ng.IScope) { })
+mod.controller('name', ['$scope', function ($scope: ng.IScope) { }])
+mod.controller(My.Namespace);
+mod.directive('name', function ($scope: ng.IScope) { })
+mod.directive('name', ['$scope', function ($scope: ng.IScope) { }])
+mod.directive(My.Namespace);
+mod.factory('name', function ($scope: ng.IScope) { })
+mod.factory('name', ['$scope', function ($scope: ng.IScope) { }])
+mod.factory(My.Namespace);
+mod.filter('name', function ($scope: ng.IScope) { })
+mod.filter('name', ['$scope', function ($scope: ng.IScope) { }])
+mod.filter(My.Namespace);
+mod.provider('name', function ($scope: ng.IScope) { })
+mod.provider('name', ['$scope', function ($scope: ng.IScope) { }])
+mod.provider(My.Namespace);
+mod.service('name', function ($scope: ng.IScope) { })
+mod.service('name', ['$scope', function ($scope: ng.IScope) { }])
+mod.service(My.Namespace);
+mod.constant('name', 23);
+mod.constant('name', "23");
+mod.constant(My.Namespace);
+mod.value('name', 23);
+mod.value('name', "23");
+mod.value(My.Namespace);
+
+// Promise signature tests
+var foo: ng.IPromise;
+foo.then((x) => {
+ // x is inferred to be a number
+ return "asdf";
+}).then((x) => {
+ // x is inferred to be string
+ x.length;
+ return 123;
+}).then((x) => {
+ // x is infered to be a number
+ x.toFixed();
+ return;
+}).then((x) => {
+ // x is infered to be void
+ // Typescript will prevent you to actually use x as a local variable
+ // Try object:
+ return { a: 123 };
+}).then((x) => {
+ // Object is inferred here
+ x.a = 123;
+ //Try a promise
+ var y: ng.IPromise;
+ return y;
+}).then((x) => {
+ // x is infered to be a number, which is the resolved value of a promise
+ x.toFixed();
+});
+
+
+// angular.element() tests
+var element = angular.element("div.myApp");
+var scope: ng.IScope = element.scope();
+
+
diff --git a/angularjs/angular-1.0-tests.ts.tscparams b/angularjs/angular-1.0-tests.ts.tscparams
new file mode 100644
index 000000000..e16c76dff
--- /dev/null
+++ b/angularjs/angular-1.0-tests.ts.tscparams
@@ -0,0 +1 @@
+""
diff --git a/angularjs/angular-1.0.d.ts b/angularjs/angular-1.0.d.ts
new file mode 100755
index 000000000..ecb7bd2c9
--- /dev/null
+++ b/angularjs/angular-1.0.d.ts
@@ -0,0 +1,760 @@
+// Type definitions for Angular JS 1.0
+// Project: http://angularjs.org
+// Definitions by: Diego Vilar
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+
+///
+
+declare var angular: ng.IAngularStatic;
+
+// Support for painless dependency injection
+interface Function {
+ $inject:string[];
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// ng module (angular.js)
+///////////////////////////////////////////////////////////////////////////////
+declare module ng {
+
+ // All service providers extend this interface
+ interface IServiceProvider {
+ $get(): any;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // AngularStatic
+ // see http://docs.angularjs.org/api
+ ///////////////////////////////////////////////////////////////////////////
+ interface IAngularStatic {
+ bind(context: any, fn: Function, ...args: any[]): Function;
+ bootstrap(element: string, modules?: any[]): auto.IInjectorService;
+ bootstrap(element: JQuery, modules?: any[]): auto.IInjectorService;
+ bootstrap(element: Element, modules?: any[]): auto.IInjectorService;
+ bootstrap(element: Document, modules?: any[]): auto.IInjectorService;
+ copy(source: any, destination?: any): any;
+ element: IAugmentedJQueryStatic;
+ equals(value1: any, value2: any): boolean;
+ extend(destination: any, ...sources: any[]): any;
+ forEach(obj: any, iterator: (value: any, key: any) => any, context?: any): any;
+ fromJson(json: string): any;
+ identity(arg?: any): any;
+ injector(modules?: any[]): auto.IInjectorService;
+ isArray(value: any): boolean;
+ isDate(value: any): boolean;
+ isDefined(value: any): boolean;
+ isElement(value: any): boolean;
+ isFunction(value: any): boolean;
+ isNumber(value: any): boolean;
+ isObject(value: any): boolean;
+ isString(value: any): boolean;
+ isUndefined(value: any): boolean;
+ lowercase(str: string): string;
+ /** construct your angular application
+ official docs: Interface for configuring angular modules.
+ see: http://docs.angularjs.org/api/angular.Module
+ */
+ module(
+ /** name of your module you want to create */
+ name: string,
+ /** name of modules yours depends on */
+ requires?: string[],
+ configFunction?: any): IModule;
+ noop(...args: any[]): void;
+ toJson(obj: any, pretty?: boolean): string;
+ uppercase(str: string): string;
+ version: {
+ full: string;
+ major: number;
+ minor: number;
+ dot: number;
+ codename: string;
+ };
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Module
+ // see http://docs.angularjs.org/api/angular.Module
+ ///////////////////////////////////////////////////////////////////////////
+ interface IModule {
+ animation(name: string, animationFactory: Function): IModule;
+ animation(name: string, inlineAnnotadedFunction: any[]): IModule;
+ animation(object: Object): IModule;
+ /** configure existing services.
+ Use this method to register work which needs to be performed on module loading
+ */
+ config(configFn: Function): IModule;
+ /** configure existing services.
+ Use this method to register work which needs to be performed on module loading
+ */
+ config(inlineAnnotadedFunction: any[]): IModule;
+ constant(name: string, value: any): IModule;
+ constant(object: Object): IModule;
+ controller(name: string, controllerConstructor: Function): IModule;
+ controller(name: string, inlineAnnotadedConstructor: any[]): IModule;
+ controller(object : Object): IModule;
+ directive(name: string, directiveFactory: (...params:any[])=> IDirective): IModule;
+ directive(name: string, inlineAnnotadedFunction: any[]): IModule;
+ directive(object: Object): IModule;
+ factory(name: string, serviceFactoryFunction: Function): IModule;
+ factory(name: string, inlineAnnotadedFunction: any[]): IModule;
+ factory(object: Object): IModule;
+ filter(name: string, filterFactoryFunction: Function): IModule;
+ filter(name: string, inlineAnnotadedFunction: any[]): IModule;
+ filter(object: Object): IModule;
+ provider(name: string, serviceProviderConstructor: Function): IModule;
+ provider(name: string, inlineAnnotadedConstructor: any[]): IModule;
+ provider(object: Object): IModule;
+ run(initializationFunction: Function): IModule;
+ run(inlineAnnotadedFunction: any[]): IModule;
+ service(name: string, serviceConstructor: Function): IModule;
+ service(name: string, inlineAnnotadedConstructor: any[]): IModule;
+ service(object: Object): IModule;
+ value(name: string, value: any): IModule;
+ value(object: Object): IModule;
+
+ // Properties
+ name: string;
+ requires: string[];
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Attributes
+ // see http://docs.angularjs.org/api/ng.$compile.directive.Attributes
+ ///////////////////////////////////////////////////////////////////////////
+ interface IAttributes {
+ $set(name: string, value: any): void;
+ $observe(name: string, fn:(value?:any)=>any):void;
+ $attr: any;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // FormController
+ // see http://docs.angularjs.org/api/ng.directive:form.FormController
+ ///////////////////////////////////////////////////////////////////////////
+ interface IFormController {
+ $pristine: boolean;
+ $dirty: boolean;
+ $valid: boolean;
+ $invalid: boolean;
+ $error: any;
+ $setDirty(): void;
+ $setPristine(): void;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // NgModelController
+ // see http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController
+ ///////////////////////////////////////////////////////////////////////////
+ interface INgModelController {
+ $render(): void;
+ $setValidity(validationErrorKey: string, isValid: boolean): void;
+ $setViewValue(value: string): void;
+
+ // XXX Not sure about the types here. Documentation states it's a string, but
+ // I've seen it receiving other types throughout the code.
+ // Falling back to any for now.
+ $viewValue: any;
+
+ // XXX Same as avove
+ $modelValue: any;
+
+ $parsers: IModelParser[];
+ $formatters: IModelFormatter[];
+ $error: any;
+ $pristine: boolean;
+ $dirty: boolean;
+ $valid: boolean;
+ $invalid: boolean;
+ }
+
+ interface IModelParser {
+ (value: any): any;
+ }
+
+ interface IModelFormatter {
+ (value: any): any;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Scope
+ // see http://docs.angularjs.org/api/ng.$rootScope.Scope
+ ///////////////////////////////////////////////////////////////////////////
+ interface IScope {
+ $apply(): any;
+ $apply(exp: string): any;
+ $apply(exp: (scope: IScope) => any): any;
+
+ $broadcast(name: string, ...args: any[]): IAngularEvent;
+ $destroy(): void;
+ $digest(): void;
+ $emit(name: string, ...args: any[]): IAngularEvent;
+
+ // Documentation says exp is optional, but actual implementaton counts on it
+ $eval(expression: string): any;
+ $eval(expression: (scope: IScope) => any): any;
+
+ // Documentation says exp is optional, but actual implementaton counts on it
+ $evalAsync(expression: string): void;
+ $evalAsync(expression: (scope: IScope) => any): void;
+
+ // Defaults to false by the implementation checking strategy
+ $new(isolate?: boolean): IScope;
+
+ $on(name: string, listener: (event: IAngularEvent, ...args: any[]) => any): Function;
+
+ $watch(watchExpression: string, listener?: string, objectEquality?: boolean): Function;
+ $watch(watchExpression: string, listener?: (newValue: any, oldValue: any, scope: IScope) => any, objectEquality?: boolean): Function;
+ $watch(watchExpression: (scope: IScope) => any, listener?: string, objectEquality?: boolean): Function;
+ $watch(watchExpression: (scope: IScope) => any, listener?: (newValue: any, oldValue: any, scope: IScope) => any, objectEquality?: boolean): Function;
+
+ $watchCollection(watchExpression: string, listener: (newValue: any, oldValue: any, scope: IScope) => any): Function;
+ $watchCollection(watchExpression: (scope: IScope) => any, listener: (newValue: any, oldValue: any, scope: IScope) => any): Function;
+
+ $parent: IScope;
+
+ $id: number;
+
+ // Hidden members
+ $$isolateBindings: any;
+ $$phase: any;
+ }
+
+ interface IAngularEvent {
+ targetScope: IScope;
+ currentScope: IScope;
+ name: string;
+ preventDefault: Function;
+ defaultPrevented: boolean;
+
+ // Available only events that were $emit-ted
+ stopPropagation?: Function;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // WindowService
+ // see http://docs.angularjs.org/api/ng.$window
+ ///////////////////////////////////////////////////////////////////////////
+ interface IWindowService extends Window {}
+
+ ///////////////////////////////////////////////////////////////////////////
+ // BrowserService
+ // TODO undocumented, so we need to get it from the source code
+ ///////////////////////////////////////////////////////////////////////////
+ interface IBrowserService {}
+
+ ///////////////////////////////////////////////////////////////////////////
+ // TimeoutService
+ // see http://docs.angularjs.org/api/ng.$timeout
+ ///////////////////////////////////////////////////////////////////////////
+ interface ITimeoutService {
+ (func: Function, delay?: number, invokeApply?: boolean): IPromise;
+ cancel(promise: IPromise): boolean;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // FilterService
+ // see http://docs.angularjs.org/api/ng.$filter
+ // see http://docs.angularjs.org/api/ng.$filterProvider
+ ///////////////////////////////////////////////////////////////////////////
+ interface IFilterService {
+ (name: string): Function;
+ }
+
+ interface IFilterProvider extends IServiceProvider {
+ register(name: string, filterFactory: Function): IServiceProvider;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // LocaleService
+ // see http://docs.angularjs.org/api/ng.$locale
+ ///////////////////////////////////////////////////////////////////////////
+ interface ILocaleService {
+ id: string;
+
+ // These are not documented
+ // Check angular's i18n files for exemples
+ NUMBER_FORMATS: ILocaleNumberFormatDescriptor;
+ DATETIME_FORMATS: ILocaleDateTimeFormatDescriptor;
+ pluralCat: (num: any) => string;
+ }
+
+ interface ILocaleNumberFormatDescriptor {
+ DECIMAL_SEP: string;
+ GROUP_SEP: string;
+ PATTERNS: ILocaleNumberPatternDescriptor[];
+ CURRENCY_SYM: string;
+ }
+
+ interface ILocaleNumberPatternDescriptor {
+ minInt: number;
+ minFrac: number;
+ maxFrac: number;
+ posPre: string;
+ posSuf: string;
+ negPre: string;
+ negSuf: string;
+ gSize: number;
+ lgSize: number;
+ }
+
+ interface ILocaleDateTimeFormatDescriptor {
+ MONTH: string[];
+ SHORTMONTH: string[];
+ DAY: string[];
+ SHORTDAY: string[];
+ AMPMS: string[];
+ medium: string;
+ short: string;
+ fullDate: string;
+ longDate: string;
+ mediumDate: string;
+ shortDate: string;
+ mediumTime: string;
+ shortTime: string;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // LogService
+ // see http://docs.angularjs.org/api/ng.$log
+ ///////////////////////////////////////////////////////////////////////////
+ interface ILogService {
+ debug: ILogCall;
+ error: ILogCall;
+ info: ILogCall;
+ log: ILogCall;
+ warn: ILogCall;
+ }
+
+ // We define this as separete interface so we can reopen it later for
+ // the ngMock module.
+ interface ILogCall {
+ (...args: any[]): void;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // ParseService
+ // see http://docs.angularjs.org/api/ng.$parse
+ ///////////////////////////////////////////////////////////////////////////
+ interface IParseService {
+ (expression: string): ICompiledExpression;
+ }
+
+ interface ICompiledExpression {
+ (context: any, locals?: any): any;
+
+ // If value is not provided, undefined is gonna be used since the implementation
+ // does not check the parameter. Let's force a value for consistency. If consumer
+ // whants to undefine it, pass the undefined value explicitly.
+ assign(context: any, value: any): any;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // LocationService
+ // see http://docs.angularjs.org/api/ng.$location
+ // see http://docs.angularjs.org/api/ng.$locationProvider
+ // see http://docs.angularjs.org/guide/dev_guide.services.$location
+ ///////////////////////////////////////////////////////////////////////////
+ interface ILocationService {
+ absUrl(): string;
+ hash(): string;
+ hash(newHash: string): ILocationService;
+ host(): string;
+ path(): string;
+ path(newPath: string): ILocationService;
+ port(): number;
+ protocol(): string;
+ replace(): ILocationService;
+ search(): any;
+ search(parametersMap: any): ILocationService;
+ search(parameter: string, parameterValue: any): ILocationService;
+ url(): string;
+ url(url: string): ILocationService;
+ }
+
+ interface ILocationProvider extends IServiceProvider {
+ hashPrefix(): string;
+ hashPrefix(prefix: string): ILocationProvider;
+ html5Mode(): boolean;
+
+ // Documentation states that parameter is string, but
+ // implementation tests it as boolean, which makes more sense
+ // since this is a toggler
+ html5Mode(active: boolean): ILocationProvider;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // DocumentService
+ // see http://docs.angularjs.org/api/ng.$document
+ ///////////////////////////////////////////////////////////////////////////
+ interface IDocumentService extends Document {}
+
+ ///////////////////////////////////////////////////////////////////////////
+ // ExceptionHandlerService
+ // see http://docs.angularjs.org/api/ng.$exceptionHandler
+ ///////////////////////////////////////////////////////////////////////////
+ interface IExceptionHandlerService {
+ (exception: Error, cause?: string): void;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // RootElementService
+ // see http://docs.angularjs.org/api/ng.$rootElement
+ ///////////////////////////////////////////////////////////////////////////
+ interface IRootElementService extends JQuery {}
+
+ ///////////////////////////////////////////////////////////////////////////
+ // QService
+ // see http://docs.angularjs.org/api/ng.$q
+ ///////////////////////////////////////////////////////////////////////////
+ interface IQService {
+ all(promises: IPromise[]): IPromise;
+ defer(): IDeferred;
+ reject(reason?: any): IPromise;
+ when(value: T): IPromise;
+ }
+
+ interface IPromise {
+ then(successCallback: (promiseValue: T) => IHttpPromise, errorCallback?: (reason: any) => any): IPromise;
+ then(successCallback: (promiseValue: T) => IPromise, errorCallback?: (reason: any) => any): IPromise;
+ then(successCallback: (promiseValue: T) => TResult, errorCallback?: (reason: any) => TResult): IPromise;
+ }
+
+ interface IDeferred {
+ resolve(value?: T): void;
+ reject(reason?: any): void;
+ promise: IPromise;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // AnchorScrollService
+ // see http://docs.angularjs.org/api/ng.$anchorScroll
+ ///////////////////////////////////////////////////////////////////////////
+ interface IAnchorScrollService {
+ (): void;
+ }
+
+ interface IAnchorScrollProvider extends IServiceProvider {
+ disableAutoScrolling(): void;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // CacheFactoryService
+ // see http://docs.angularjs.org/api/ng.$cacheFactory
+ ///////////////////////////////////////////////////////////////////////////
+ interface ICacheFactoryService {
+ // Lets not foce the optionsMap to have the capacity member. Even though
+ // it's the ONLY option considered by the implementation today, a consumer
+ // might find it useful to associate some other options to the cache object.
+ //(cacheId: string, optionsMap?: { capacity: number; }): CacheObject;
+ (cacheId: string, optionsMap?: { capacity: number; }): ICacheObject;
+
+ // Methods bellow are not documented
+ info(): any;
+ get (cacheId: string): ICacheObject;
+ }
+
+ interface ICacheObject {
+ info(): {
+ id: string;
+ size: number;
+
+ // Not garanteed to have, since it's a non-mandatory option
+ //capacity: number;
+ };
+ put(key: string, value?: any): void;
+ get (key: string): any;
+ remove(key: string): void;
+ removeAll(): void;
+ destroy(): void;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // CompileService
+ // see http://docs.angularjs.org/api/ng.$compile
+ // see http://docs.angularjs.org/api/ng.$compileProvider
+ ///////////////////////////////////////////////////////////////////////////
+ interface ICompileService {
+ (element: string, transclude?: ITemplateLinkingFunction, maxPriority?: number): ITemplateLinkingFunction;
+ (element: Element, transclude?: ITemplateLinkingFunction, maxPriority?: number): ITemplateLinkingFunction;
+ (element: JQuery, transclude?: ITemplateLinkingFunction, maxPriority?: number): ITemplateLinkingFunction;
+ }
+
+ interface ICompileProvider extends IServiceProvider {
+ directive(name: string, directiveFactory: Function): ICompileProvider;
+
+ // Undocumented, but it is there...
+ directive(directivesMap: any): ICompileProvider;
+ }
+
+ interface ITemplateLinkingFunction {
+ // Let's hint but not force cloneAttachFn's signature
+ (scope: IScope, cloneAttachFn?: (clonedElement?: JQuery, scope?: IScope) => any): JQuery;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // ControllerService
+ // see http://docs.angularjs.org/api/ng.$controller
+ // see http://docs.angularjs.org/api/ng.$controllerProvider
+ ///////////////////////////////////////////////////////////////////////////
+ interface IControllerService {
+ // Although the documentation doesn't state this, locals are optional
+ (controllerConstructor: Function, locals?: any): any;
+ (controllerName: string, locals?: any): any;
+ }
+
+ interface IControllerProvider extends IServiceProvider {
+ register(name: string, controllerConstructor: Function): void;
+ register(name: string, dependencyAnnotadedConstructor: any[]): void;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // HttpService
+ // see http://docs.angularjs.org/api/ng.$http
+ ///////////////////////////////////////////////////////////////////////////
+ interface IHttpService {
+ // At least moethod and url must be provided...
+ (config: IRequestConfig): IHttpPromise;
+ get (url: string, RequestConfig?: any): IHttpPromise;
+ delete (url: string, RequestConfig?: any): IHttpPromise;
+ head(url: string, RequestConfig?: any): IHttpPromise;
+ jsonp(url: string, RequestConfig?: any): IHttpPromise;
+ post(url: string, data: any, RequestConfig?: any): IHttpPromise;
+ put(url: string, data: any, RequestConfig?: any): IHttpPromise;
+ defaults: IRequestConfig;
+
+ // For debugging, BUT it is documented as public, so...
+ pendingRequests: any[];
+ }
+
+ // This is just for hinting.
+ // Some opetions might not be available depending on the request.
+ // see http://docs.angularjs.org/api/ng.$http#Usage for options explanations
+ interface IRequestConfig {
+ method: string;
+ url: string;
+ params?: any;
+
+ // XXX it has it's own structure... perhaps we should define it in the future
+ headers?: any;
+
+ cache?: any;
+ timeout?: number;
+ withCredentials?: boolean;
+
+ // These accept multiple types, so let's defile them as any
+ data?: any;
+ transformRequest?: any;
+ transformResponse?: any;
+ }
+
+ interface IHttpPromiseCallback {
+ (data: T, status: number, headers: (headerName: string) => string, config: IRequestConfig): void;
+ }
+
+ interface IHttpPromiseCallbackArg {
+ data?: T;
+ status?: number;
+ headers?: (headerName: string) => string;
+ config?: IRequestConfig;
+ }
+
+ interface IHttpPromise extends IPromise {
+ success(callback: IHttpPromiseCallback): IHttpPromise;
+ error(callback: IHttpPromiseCallback): IHttpPromise;
+ then(successCallback: (response: IHttpPromiseCallbackArg) => TResult, errorCallback?: (response: IHttpPromiseCallbackArg) => any): IPromise;
+ then(successCallback: (response: IHttpPromiseCallbackArg) => IPromise, errorCallback?: (response: IHttpPromiseCallbackArg) => any): IPromise;
+ }
+
+ interface IHttpProvider extends IServiceProvider {
+ defaults: IRequestConfig;
+ interceptors: any[];
+ responseInterceptors: any[];
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // HttpBackendService
+ // see http://docs.angularjs.org/api/ng.$httpBackend
+ // You should never need to use this service directly.
+ ///////////////////////////////////////////////////////////////////////////
+ interface IHttpBackendService {
+ // XXX Perhaps define callback signature in the future
+ (method: string, url: string, post?: any, callback?: Function, headers?: any, timeout?: number, withCredentials?: boolean): void;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // InterpolateService
+ // see http://docs.angularjs.org/api/ng.$interpolate
+ // see http://docs.angularjs.org/api/ng.$interpolateProvider
+ ///////////////////////////////////////////////////////////////////////////
+ interface IInterpolateService {
+ (text: string, mustHaveExpression?: boolean): IInterpolationFunction;
+ endSymbol(): string;
+ startSymbol(): string;
+ }
+
+ interface IInterpolationFunction {
+ (context: any): string;
+ }
+
+ interface IInterpolateProvider extends IServiceProvider {
+ startSymbol(): string;
+ startSymbol(value: string): IInterpolateProvider;
+ endSymbol(): string;
+ endSymbol(value: string): IInterpolateProvider;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // RouteParamsService
+ // see http://docs.angularjs.org/api/ng.$routeParams
+ ///////////////////////////////////////////////////////////////////////////
+ interface IRouteParamsService {}
+
+ ///////////////////////////////////////////////////////////////////////////
+ // TemplateCacheService
+ // see http://docs.angularjs.org/api/ng.$templateCache
+ ///////////////////////////////////////////////////////////////////////////
+ interface ITemplateCacheService extends ICacheObject {}
+
+ ///////////////////////////////////////////////////////////////////////////
+ // RootScopeService
+ // see http://docs.angularjs.org/api/ng.$rootScope
+ ///////////////////////////////////////////////////////////////////////////
+ interface IRootScopeService extends IScope {}
+
+ ///////////////////////////////////////////////////////////////////////////
+ // RouteService
+ // see http://docs.angularjs.org/api/ng.$route
+ // see http://docs.angularjs.org/api/ng.$routeProvider
+ ///////////////////////////////////////////////////////////////////////////
+ interface IRouteService {
+ reload(): void;
+ routes: any;
+
+ // May not always be available. For instance, current will not be available
+ // to a controller that was not initialized as a result of a route maching.
+ current?: ICurrentRoute;
+ }
+
+ // see http://docs.angularjs.org/api/ng.$routeProvider#when for options explanations
+ interface IRoute {
+ controller?: any;
+ name?: string;
+ template?: string;
+ templateUrl?: any;
+ resolve?: any;
+ redirectTo?: any;
+ reloadOnSearch?: boolean;
+ }
+
+ // see http://docs.angularjs.org/api/ng.$route#current
+ interface ICurrentRoute extends IRoute {
+ locals: {
+ $scope: IScope;
+ $template: string;
+ };
+
+ params: any;
+ }
+
+ interface IRouteProvider extends IServiceProvider {
+ otherwise(params: any): IRouteProvider;
+ when(path: string, route: IRoute): IRouteProvider;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Directive
+ // see http://docs.angularjs.org/api/ng.$compileProvider#directive
+ // and http://docs.angularjs.org/guide/directive
+ ///////////////////////////////////////////////////////////////////////////
+
+ interface IDirective{
+ priority?: number;
+ template?: any;
+ templateUrl?: any;
+ replace?: boolean;
+ transclude?: any;
+ restrict?: string;
+ scope?: any;
+ link?: Function;
+ compile?: Function;
+ controller?: any;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // angular.element
+ // when calling angular.element, angular returns a jQuery object,
+ // augmented with additional methods like e.g. scope.
+ // see: http://docs.angularjs.org/api/angular.element
+ ///////////////////////////////////////////////////////////////////////////
+ interface IAugmentedJQueryStatic extends JQueryStatic {
+ (selector: string, context?: any): IAugmentedJQuery;
+ (element: Element): IAugmentedJQuery;
+ (object: {}): IAugmentedJQuery;
+ (elementArray: Element[]): IAugmentedJQuery;
+ (object: JQuery): IAugmentedJQuery;
+ (func: Function): IAugmentedJQuery;
+ (array: any[]): IAugmentedJQuery;
+ (): IAugmentedJQuery;
+ }
+
+ interface IAugmentedJQuery extends JQuery {
+ // TODO: events, how to define?
+ //$destroy
+
+ find(selector: string): IAugmentedJQuery;
+ find(element: any): IAugmentedJQuery;
+ find(obj: JQuery): IAugmentedJQuery;
+
+ controller(name: string): any;
+ injector(): any;
+ scope(): IScope;
+
+ inheritedData(key: string, value: any): JQuery;
+ inheritedData(obj: { [key: string]: any; }): JQuery;
+ inheritedData(key?: string): any;
+
+
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // AUTO module (angular.js)
+ ///////////////////////////////////////////////////////////////////////////
+ export module auto {
+
+ ///////////////////////////////////////////////////////////////////////
+ // InjectorService
+ // see http://docs.angularjs.org/api/AUTO.$injector
+ ///////////////////////////////////////////////////////////////////////
+ interface IInjectorService {
+ annotate(fn: Function): string[];
+ annotate(inlineAnnotadedFunction: any[]): string[];
+ get (name: string): any;
+ instantiate(typeConstructor: Function, locals?: any): any;
+ invoke(func: Function, context?: any, locals?: any): any;
+ }
+
+ ///////////////////////////////////////////////////////////////////////
+ // ProvideService
+ // see http://docs.angularjs.org/api/AUTO.$provide
+ ///////////////////////////////////////////////////////////////////////
+ interface IProvideService {
+ // Documentation says it returns the registered instance, but actual
+ // implementation does not return anything.
+ // constant(name: string, value: any): any;
+ constant(name: string, value: any): void;
+
+ decorator(name: string, decorator: Function): void;
+ decorator(name: string, decoratorInline: any[]): void;
+ factory(name: string, serviceFactoryFunction: Function): ng.IServiceProvider;
+ provider(name: string, provider: ng.IServiceProvider): ng.IServiceProvider;
+ provider(name: string, serviceProviderConstructor: Function): ng.IServiceProvider;
+ service(name: string, constructor: Function): ng.IServiceProvider;
+ value(name: string, value: any): ng.IServiceProvider;
+ }
+
+ }
+
+}
diff --git a/angularjs/angular-cookies-1.0.d.ts b/angularjs/angular-cookies-1.0.d.ts
new file mode 100644
index 000000000..4dc2e038e
--- /dev/null
+++ b/angularjs/angular-cookies-1.0.d.ts
@@ -0,0 +1,30 @@
+/// Type definitions for Angular JS 1.0 (ngCookies module)
+// Project: http://angularjs.org
+// Definitions by: Diego Vilar
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+
+///
+
+///////////////////////////////////////////////////////////////////////////////
+// ngCookies module (angular-cookies.js)
+///////////////////////////////////////////////////////////////////////////////
+declare module ng.cookies {
+
+ ///////////////////////////////////////////////////////////////////////////
+ // CookieService
+ // see http://docs.angularjs.org/api/ngCookies.$cookies
+ ///////////////////////////////////////////////////////////////////////////
+ interface ICookiesService {}
+
+ ///////////////////////////////////////////////////////////////////////////
+ // CookieStoreService
+ // see http://docs.angularjs.org/api/ngCookies.$cookieStore
+ ///////////////////////////////////////////////////////////////////////////
+ interface ICookieStoreService {
+ get(key: string): any;
+ put(key: string, value: any): void;
+ remove(key: string): void;
+ }
+
+}
diff --git a/angularjs/angular-cookies.d.ts b/angularjs/angular-cookies.d.ts
index 4dc2e038e..60eebbacb 100644
--- a/angularjs/angular-cookies.d.ts
+++ b/angularjs/angular-cookies.d.ts
@@ -1,4 +1,4 @@
-/// Type definitions for Angular JS 1.0 (ngCookies module)
+/// Type definitions for Angular JS 1.2 (ngCookies module)
// Project: http://angularjs.org
// Definitions by: Diego Vilar
// Definitions: https://github.com/borisyankov/DefinitelyTyped
diff --git a/angularjs/angular-mocks-1.0.d.ts b/angularjs/angular-mocks-1.0.d.ts
new file mode 100644
index 000000000..4d8decbf8
--- /dev/null
+++ b/angularjs/angular-mocks-1.0.d.ts
@@ -0,0 +1,150 @@
+// Type definitions for Angular JS 1.0 (ngMock, ngMockE2E module)
+// Project: http://angularjs.org
+// Definitions by: Diego Vilar
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+
+///
+
+///////////////////////////////////////////////////////////////////////////////
+// functions attached to global object (window)
+///////////////////////////////////////////////////////////////////////////////
+declare var module: (...modules: any[]) => any;
+declare var inject: (...fns: Function[]) => any;
+
+///////////////////////////////////////////////////////////////////////////////
+// ngMock module (angular-mocks.js)
+///////////////////////////////////////////////////////////////////////////////
+declare module ng {
+
+ ///////////////////////////////////////////////////////////////////////////
+ // AngularStatic
+ // We reopen it to add the MockStatic definition
+ ///////////////////////////////////////////////////////////////////////////
+ interface IAngularStatic {
+ mock: IMockStatic;
+ }
+
+ interface IMockStatic {
+ // see http://docs.angularjs.org/api/angular.mock.debug
+ debug(obj: any): string;
+
+ // see http://docs.angularjs.org/api/angular.mock.inject
+ inject(...fns: Function[]): any;
+
+ // see http://docs.angularjs.org/api/angular.mock.module
+ module(...modules: any[]): any;
+
+ // see http://docs.angularjs.org/api/angular.mock.TzDate
+ TzDate(offset: number, timestamp: number): Date;
+ TzDate(offset: number, timestamp: string): Date;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // ExceptionHandlerService
+ // see http://docs.angularjs.org/api/ngMock.$exceptionHandler
+ // see http://docs.angularjs.org/api/ngMock.$exceptionHandlerProvider
+ ///////////////////////////////////////////////////////////////////////////
+ interface IExceptionHandlerProvider extends IServiceProvider {
+ mode(mode: string): void;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // TimeoutService
+ // see http://docs.angularjs.org/api/ngMock.$timeout
+ // Augments the original service
+ ///////////////////////////////////////////////////////////////////////////
+ interface ITimeoutService {
+ flush(): void;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // LogService
+ // see http://docs.angularjs.org/api/ngMock.$log
+ // Augments the original service
+ ///////////////////////////////////////////////////////////////////////////
+ interface ILogService {
+ assertEmpty(): void;
+ reset(): void;
+ }
+
+ interface LogCall {
+ logs: string[];
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // HttpBackendService
+ // see http://docs.angularjs.org/api/ngMock.$httpBackend
+ ///////////////////////////////////////////////////////////////////////////
+ interface IHttpBackendService {
+ flush(count?: number): void;
+ resetExpectations(): void;
+ verifyNoOutstandingExpectation(): void;
+ verifyNoOutstandingRequest(): void;
+
+ expect(method: string, url: string, data?: any, headers?: any): mock.IRequestHandler;
+ expect(method: string, url: RegExp, data?: any, headers?: any): mock.IRequestHandler;
+ expect(method: RegExp, url: string, data?: any, headers?: any): mock.IRequestHandler;
+ expect(method: RegExp, url: RegExp, data?: any, headers?: any): mock.IRequestHandler;
+
+ when(method: string, url: string, data?: string, headers?: any): mock.IRequestHandler;
+ when(method: string, url: RegExp, data?: string, headers?: any): mock.IRequestHandler;
+ when(method: string, url: string, data?: RegExp, headers?: any): mock.IRequestHandler;
+ when(method: string, url: RegExp, data?: RegExp, headers?: any): mock.IRequestHandler;
+ when(method: RegExp, url: string, data?: string, headers?: any): mock.IRequestHandler;
+ when(method: RegExp, url: RegExp, data?: string, headers?: any): mock.IRequestHandler;
+ when(method: RegExp, url: string, data?: RegExp, headers?: any): mock.IRequestHandler;
+ when(method: RegExp, url: RegExp, data?: RegExp, headers?: any): mock.IRequestHandler;
+
+ expectDELETE(url: string, headers?: any): mock.IRequestHandler;
+ expectDELETE(url: RegExp, headers?: any): mock.IRequestHandler;
+ expectGET(url: string, headers?: any): mock.IRequestHandler;
+ expectGET(url: RegExp, headers?: any): mock.IRequestHandler;
+ expectHEAD(url: string, headers?: any): mock.IRequestHandler;
+ expectHEAD(url: RegExp, headers?: any): mock.IRequestHandler;
+ expectJSONP(url: string): mock.IRequestHandler;
+ expectJSONP(url: RegExp): mock.IRequestHandler;
+ expectPATCH(url: string, data?: any, headers?: any): mock.IRequestHandler;
+ expectPATCH(url: RegExp, data?: any, headers?: any): mock.IRequestHandler;
+ expectPOST(url: string, data?: any, headers?: any): mock.IRequestHandler;
+ expectPOST(url: RegExp, data?: any, headers?: any): mock.IRequestHandler;
+ expectPUT(url: string, data?: any, headers?: any): mock.IRequestHandler;
+ expectPUT(url: RegExp, data?: any, headers?: any): mock.IRequestHandler;
+
+ whenDELETE(url: string, headers?: any): mock.IRequestHandler;
+ whenDELETE(url: RegExp, headers?: any): mock.IRequestHandler;
+ whenGET(url: string, headers?: any): mock.IRequestHandler;
+ whenGET(url: RegExp, headers?: any): mock.IRequestHandler;
+ whenHEAD(url: string, headers?: any): mock.IRequestHandler;
+ whenHEAD(url: RegExp, headers?: any): mock.IRequestHandler;
+ whenJSONP(url: string): mock.IRequestHandler;
+ whenJSONP(url: RegExp): mock.IRequestHandler;
+ whenPATCH(url: string, data?: string, headers?: any): mock.IRequestHandler;
+ whenPATCH(url: RegExp, data?: string, headers?: any): mock.IRequestHandler;
+ whenPATCH(url: string, data?: RegExp, headers?: any): mock.IRequestHandler;
+ whenPATCH(url: RegExp, data?: RegExp, headers?: any): mock.IRequestHandler;
+ whenPOST(url: string, data?: string, headers?: any): mock.IRequestHandler;
+ whenPOST(url: RegExp, data?: string, headers?: any): mock.IRequestHandler;
+ whenPOST(url: string, data?: RegExp, headers?: any): mock.IRequestHandler;
+ whenPOST(url: RegExp, data?: RegExp, headers?: any): mock.IRequestHandler;
+ whenPUT(url: string, data?: string, headers?: any): mock.IRequestHandler;
+ whenPUT(url: RegExp, data?: string, headers?: any): mock.IRequestHandler;
+ whenPUT(url: string, data?: RegExp, headers?: any): mock.IRequestHandler;
+ whenPUT(url: RegExp, data?: RegExp, headers?: any): mock.IRequestHandler;
+ }
+
+ export module mock {
+
+ // returned interface by the the mocked HttpBackendService expect/when methods
+ interface IRequestHandler {
+ respond(func: Function): void;
+ respond(status: number, data?: any, headers?: any): void;
+ respond(data: any, headers?: any): void;
+
+ // Available wehn ngMockE2E is loaded
+ passThrough(): void;
+ }
+
+ }
+
+}
diff --git a/angularjs/angular-mocks-tests.ts b/angularjs/angular-mocks-tests.ts
new file mode 100644
index 000000000..b43580f36
--- /dev/null
+++ b/angularjs/angular-mocks-tests.ts
@@ -0,0 +1,288 @@
+///
+
+///////////////////////////////////////
+// IAngularStatic
+///////////////////////////////////////
+var angular: ng.IAngularStatic;
+var mock: ng.IMockStatic;
+
+mock = angular.mock;
+
+
+///////////////////////////////////////
+// IMockStatic
+///////////////////////////////////////
+var date: Date;
+
+mock.dump({ key: 'value' });
+
+mock.inject(
+ function () { return 1; },
+ function () { return 2; }
+ );
+
+mock.module('module1', 'module2');
+mock.module(
+ function () { return 1; },
+ function () { return 2; }
+ );
+mock.module({ module1: function () { return 1; } });
+
+date = mock.TzDate(-7, '2013-1-1T15:00:00Z');
+date = mock.TzDate(-8, 12345678);
+
+
+///////////////////////////////////////
+// IExceptionHandlerProvider
+///////////////////////////////////////
+var exceptionHandlerProvider: ng.IExceptionHandlerProvider;
+
+exceptionHandlerProvider.mode('log');
+
+
+///////////////////////////////////////
+// IExceptionHandlerProvider
+///////////////////////////////////////
+var timeoutService: ng.ITimeoutService;
+
+timeoutService.flush();
+timeoutService.flush(1234);
+timeoutService.flushNext();
+timeoutService.flushNext(1234);
+timeoutService.verifyNoPendingTasks();
+
+
+///////////////////////////////////////
+// ILogService, ILogCall
+///////////////////////////////////////
+var logService: ng.ILogService;
+var logCall: ng.ILogCall;
+var logs: string[];
+
+logService.assertEmpty();
+logService.reset();
+
+logCall = logService.debug;
+logCall = logService.error;
+logCall = logService.info;
+logCall = logService.log;
+logCall = logService.warn;
+
+logs = logCall.logs;
+
+
+///////////////////////////////////////
+// IHttpBackendService
+///////////////////////////////////////
+var httpBackendService: ng.IHttpBackendService;
+var requestHandler: ng.mock.IRequestHandler;
+
+httpBackendService.flush();
+httpBackendService.flush(1234);
+httpBackendService.resetExpectations();
+httpBackendService.verifyNoOutstandingExpectation();
+httpBackendService.verifyNoOutstandingRequest();
+
+requestHandler = httpBackendService.expect('GET', 'http://test.local');
+requestHandler = httpBackendService.expect('GET', 'http://test.local', 'response data');
+requestHandler = httpBackendService.expect('GET', 'http://test.local', 'response data', { header: 'value' });
+requestHandler = httpBackendService.expect('GET', 'http://test.local', 'response data', function (headers: Object): boolean { return true; });
+requestHandler = httpBackendService.expect('GET', 'http://test.local', /response data/);
+requestHandler = httpBackendService.expect('GET', 'http://test.local', /response data/, { header: 'value' });
+requestHandler = httpBackendService.expect('GET', 'http://test.local', /response data/, function (headers: Object): boolean { return true; });
+requestHandler = httpBackendService.expect('GET', 'http://test.local', function (data: string): boolean { return true; });
+requestHandler = httpBackendService.expect('GET', 'http://test.local', function (data: string): boolean { return true; }, { header: 'value' });
+requestHandler = httpBackendService.expect('GET', 'http://test.local', function (data: string): boolean { return true; }, function (headers: Object): boolean { return true; });
+requestHandler = httpBackendService.expect('GET', 'http://test.local', { key: 'value' });
+requestHandler = httpBackendService.expect('GET', 'http://test.local', { key: 'value' }, { header: 'value' });
+requestHandler = httpBackendService.expect('GET', 'http://test.local', { key: 'value' }, function (headers: Object): boolean { return true; });
+requestHandler = httpBackendService.expect('GET', /test.local/);
+requestHandler = httpBackendService.expect('GET', /test.local/, 'response data');
+requestHandler = httpBackendService.expect('GET', /test.local/, 'response data', { header: 'value' });
+requestHandler = httpBackendService.expect('GET', /test.local/, 'response data', function (headers: Object): boolean { return true; });
+requestHandler = httpBackendService.expect('GET', /test.local/, /response data/);
+requestHandler = httpBackendService.expect('GET', /test.local/, /response data/, { header: 'value' });
+requestHandler = httpBackendService.expect('GET', /test.local/, /response data/, function (headers: Object): boolean { return true; });
+requestHandler = httpBackendService.expect('GET', /test.local/, function (data: string): boolean { return true; });
+requestHandler = httpBackendService.expect('GET', /test.local/, function (data: string): boolean { return true; }, { header: 'value' });
+requestHandler = httpBackendService.expect('GET', /test.local/, function (data: string): boolean { return true; }, function (headers: Object): boolean { return true; });
+requestHandler = httpBackendService.expect('GET', /test.local/, { key: 'value' });
+requestHandler = httpBackendService.expect('GET', /test.local/, { key: 'value' }, { header: 'value' });
+requestHandler = httpBackendService.expect('GET', /test.local/, { key: 'value' }, function (headers: Object): boolean { return true; });
+
+requestHandler = httpBackendService.expectDELETE('http://test.local');
+requestHandler = httpBackendService.expectDELETE('http://test.local', { header: 'value' });
+requestHandler = httpBackendService.expectDELETE(/test.local/, { header: 'value' });
+requestHandler = httpBackendService.expectGET('http://test.local');
+requestHandler = httpBackendService.expectGET('http://test.local', { header: 'value' });
+requestHandler = httpBackendService.expectGET(/test.local/, { header: 'value' });
+requestHandler = httpBackendService.expectHEAD('http://test.local');
+requestHandler = httpBackendService.expectHEAD('http://test.local', { header: 'value' });
+requestHandler = httpBackendService.expectHEAD(/test.local/, { header: 'value' });
+requestHandler = httpBackendService.expectJSONP('http://test.local');
+requestHandler = httpBackendService.expectJSONP(/test.local/);
+
+requestHandler = httpBackendService.expectPATCH('http://test.local');
+requestHandler = httpBackendService.expectPATCH('http://test.local', 'response data');
+requestHandler = httpBackendService.expectPATCH('http://test.local', 'response data', { header: 'value' });
+requestHandler = httpBackendService.expectPATCH('http://test.local', /response data/);
+requestHandler = httpBackendService.expectPATCH('http://test.local', /response data/, { header: 'value' });
+requestHandler = httpBackendService.expectPATCH('http://test.local', function (data: string): boolean { return true; });
+requestHandler = httpBackendService.expectPATCH('http://test.local', function (data: string): boolean { return true; }, { header: 'value' });
+requestHandler = httpBackendService.expectPATCH('http://test.local', { key: 'value' });
+requestHandler = httpBackendService.expectPATCH('http://test.local', { key: 'value' }, { header: 'value' });
+requestHandler = httpBackendService.expectPATCH(/test.local/);
+requestHandler = httpBackendService.expectPATCH(/test.local/, 'response data');
+requestHandler = httpBackendService.expectPATCH(/test.local/, 'response data', { header: 'value' });
+requestHandler = httpBackendService.expectPATCH(/test.local/, /response data/);
+requestHandler = httpBackendService.expectPATCH(/test.local/, /response data/, { header: 'value' });
+requestHandler = httpBackendService.expectPATCH(/test.local/, function (data: string): boolean { return true; });
+requestHandler = httpBackendService.expectPATCH(/test.local/, function (data: string): boolean { return true; }, { header: 'value' });
+requestHandler = httpBackendService.expectPATCH(/test.local/, { key: 'value' });
+requestHandler = httpBackendService.expectPATCH(/test.local/, { key: 'value' }, { header: 'value' });
+
+requestHandler = httpBackendService.expectPOST('http://test.local');
+requestHandler = httpBackendService.expectPOST('http://test.local', 'response data');
+requestHandler = httpBackendService.expectPOST('http://test.local', 'response data', { header: 'value' });
+requestHandler = httpBackendService.expectPOST('http://test.local', /response data/);
+requestHandler = httpBackendService.expectPOST('http://test.local', /response data/, { header: 'value' });
+requestHandler = httpBackendService.expectPOST('http://test.local', function (data: string): boolean { return true; });
+requestHandler = httpBackendService.expectPOST('http://test.local', function (data: string): boolean { return true; }, { header: 'value' });
+requestHandler = httpBackendService.expectPOST('http://test.local', { key: 'value' });
+requestHandler = httpBackendService.expectPOST('http://test.local', { key: 'value' }, { header: 'value' });
+requestHandler = httpBackendService.expectPOST(/test.local/);
+requestHandler = httpBackendService.expectPOST(/test.local/, 'response data');
+requestHandler = httpBackendService.expectPOST(/test.local/, 'response data', { header: 'value' });
+requestHandler = httpBackendService.expectPOST(/test.local/, /response data/);
+requestHandler = httpBackendService.expectPOST(/test.local/, /response data/, { header: 'value' });
+requestHandler = httpBackendService.expectPOST(/test.local/, function (data: string): boolean { return true; });
+requestHandler = httpBackendService.expectPOST(/test.local/, function (data: string): boolean { return true; }, { header: 'value' });
+requestHandler = httpBackendService.expectPOST(/test.local/, { key: 'value' });
+requestHandler = httpBackendService.expectPOST(/test.local/, { key: 'value' }, { header: 'value' });
+
+requestHandler = httpBackendService.expectPUT('http://test.local');
+requestHandler = httpBackendService.expectPUT('http://test.local', 'response data');
+requestHandler = httpBackendService.expectPUT('http://test.local', 'response data', { header: 'value' });
+requestHandler = httpBackendService.expectPUT('http://test.local', /response data/);
+requestHandler = httpBackendService.expectPUT('http://test.local', /response data/, { header: 'value' });
+requestHandler = httpBackendService.expectPUT('http://test.local', function (data: string): boolean { return true; });
+requestHandler = httpBackendService.expectPUT('http://test.local', function (data: string): boolean { return true; }, { header: 'value' });
+requestHandler = httpBackendService.expectPUT('http://test.local', { key: 'value' });
+requestHandler = httpBackendService.expectPUT('http://test.local', { key: 'value' }, { header: 'value' });
+requestHandler = httpBackendService.expectPUT(/test.local/);
+requestHandler = httpBackendService.expectPUT(/test.local/, 'response data');
+requestHandler = httpBackendService.expectPUT(/test.local/, 'response data', { header: 'value' });
+requestHandler = httpBackendService.expectPUT(/test.local/, /response data/);
+requestHandler = httpBackendService.expectPUT(/test.local/, /response data/, { header: 'value' });
+requestHandler = httpBackendService.expectPUT(/test.local/, function (data: string): boolean { return true; });
+requestHandler = httpBackendService.expectPUT(/test.local/, function (data: string): boolean { return true; }, { header: 'value' });
+requestHandler = httpBackendService.expectPUT(/test.local/, { key: 'value' });
+requestHandler = httpBackendService.expectPUT(/test.local/, { key: 'value' }, { header: 'value' });
+
+requestHandler = httpBackendService.when('GET', 'http://test.local');
+requestHandler = httpBackendService.when('GET', 'http://test.local', 'response data');
+requestHandler = httpBackendService.when('GET', 'http://test.local', 'response data', { header: 'value' });
+requestHandler = httpBackendService.when('GET', 'http://test.local', 'response data', function (headers: Object): boolean { return true; });
+requestHandler = httpBackendService.when('GET', 'http://test.local', /response data/);
+requestHandler = httpBackendService.when('GET', 'http://test.local', /response data/, { header: 'value' });
+requestHandler = httpBackendService.when('GET', 'http://test.local', /response data/, function (headers: Object): boolean { return true; });
+requestHandler = httpBackendService.when('GET', 'http://test.local', function (data: string): boolean { return true; });
+requestHandler = httpBackendService.when('GET', 'http://test.local', function (data: string): boolean { return true; }, { header: 'value' });
+requestHandler = httpBackendService.when('GET', 'http://test.local', function (data: string): boolean { return true; }, function (headers: Object): boolean { return true; });
+requestHandler = httpBackendService.when('GET', 'http://test.local', { key: 'value' });
+requestHandler = httpBackendService.when('GET', 'http://test.local', { key: 'value' }, { header: 'value' });
+requestHandler = httpBackendService.when('GET', 'http://test.local', { key: 'value' }, function (headers: Object): boolean { return true; });
+requestHandler = httpBackendService.when('GET', /test.local/);
+requestHandler = httpBackendService.when('GET', /test.local/, 'response data');
+requestHandler = httpBackendService.when('GET', /test.local/, 'response data', { header: 'value' });
+requestHandler = httpBackendService.when('GET', /test.local/, 'response data', function (headers: Object): boolean { return true; });
+requestHandler = httpBackendService.when('GET', /test.local/, /response data/);
+requestHandler = httpBackendService.when('GET', /test.local/, /response data/, { header: 'value' });
+requestHandler = httpBackendService.when('GET', /test.local/, /response data/, function (headers: Object): boolean { return true; });
+requestHandler = httpBackendService.when('GET', /test.local/, function (data: string): boolean { return true; });
+requestHandler = httpBackendService.when('GET', /test.local/, function (data: string): boolean { return true; }, { header: 'value' });
+requestHandler = httpBackendService.when('GET', /test.local/, function (data: string): boolean { return true; }, function (headers: Object): boolean { return true; });
+requestHandler = httpBackendService.when('GET', /test.local/, { key: 'value' });
+requestHandler = httpBackendService.when('GET', /test.local/, { key: 'value' }, { header: 'value' });
+requestHandler = httpBackendService.when('GET', /test.local/, { key: 'value' }, function (headers: Object): boolean { return true; });
+
+requestHandler = httpBackendService.whenDELETE('http://test.local');
+requestHandler = httpBackendService.whenDELETE('http://test.local', { header: 'value' });
+requestHandler = httpBackendService.whenDELETE(/test.local/, { header: 'value' });
+requestHandler = httpBackendService.whenGET('http://test.local');
+requestHandler = httpBackendService.whenGET('http://test.local', { header: 'value' });
+requestHandler = httpBackendService.whenGET(/test.local/, { header: 'value' });
+requestHandler = httpBackendService.whenHEAD('http://test.local');
+requestHandler = httpBackendService.whenHEAD('http://test.local', { header: 'value' });
+requestHandler = httpBackendService.whenHEAD(/test.local/, { header: 'value' });
+requestHandler = httpBackendService.whenJSONP('http://test.local');
+requestHandler = httpBackendService.whenJSONP(/test.local/);
+
+requestHandler = httpBackendService.whenPATCH('http://test.local');
+requestHandler = httpBackendService.whenPATCH('http://test.local', 'response data');
+requestHandler = httpBackendService.whenPATCH('http://test.local', 'response data', { header: 'value' });
+requestHandler = httpBackendService.whenPATCH('http://test.local', /response data/);
+requestHandler = httpBackendService.whenPATCH('http://test.local', /response data/, { header: 'value' });
+requestHandler = httpBackendService.whenPATCH('http://test.local', function (data: string): boolean { return true; });
+requestHandler = httpBackendService.whenPATCH('http://test.local', function (data: string): boolean { return true; }, { header: 'value' });
+requestHandler = httpBackendService.whenPATCH('http://test.local', { key: 'value' });
+requestHandler = httpBackendService.whenPATCH('http://test.local', { key: 'value' }, { header: 'value' });
+requestHandler = httpBackendService.whenPATCH(/test.local/);
+requestHandler = httpBackendService.whenPATCH(/test.local/, 'response data');
+requestHandler = httpBackendService.whenPATCH(/test.local/, 'response data', { header: 'value' });
+requestHandler = httpBackendService.whenPATCH(/test.local/, /response data/);
+requestHandler = httpBackendService.whenPATCH(/test.local/, /response data/, { header: 'value' });
+requestHandler = httpBackendService.whenPATCH(/test.local/, function (data: string): boolean { return true; });
+requestHandler = httpBackendService.whenPATCH(/test.local/, function (data: string): boolean { return true; }, { header: 'value' });
+requestHandler = httpBackendService.whenPATCH(/test.local/, { key: 'value' });
+requestHandler = httpBackendService.whenPATCH(/test.local/, { key: 'value' }, { header: 'value' });
+
+requestHandler = httpBackendService.whenPOST('http://test.local');
+requestHandler = httpBackendService.whenPOST('http://test.local', 'response data');
+requestHandler = httpBackendService.whenPOST('http://test.local', 'response data', { header: 'value' });
+requestHandler = httpBackendService.whenPOST('http://test.local', /response data/);
+requestHandler = httpBackendService.whenPOST('http://test.local', /response data/, { header: 'value' });
+requestHandler = httpBackendService.whenPOST('http://test.local', function (data: string): boolean { return true; });
+requestHandler = httpBackendService.whenPOST('http://test.local', function (data: string): boolean { return true; }, { header: 'value' });
+requestHandler = httpBackendService.whenPOST('http://test.local', { key: 'value' });
+requestHandler = httpBackendService.whenPOST('http://test.local', { key: 'value' }, { header: 'value' });
+requestHandler = httpBackendService.whenPOST(/test.local/);
+requestHandler = httpBackendService.whenPOST(/test.local/, 'response data');
+requestHandler = httpBackendService.whenPOST(/test.local/, 'response data', { header: 'value' });
+requestHandler = httpBackendService.whenPOST(/test.local/, /response data/);
+requestHandler = httpBackendService.whenPOST(/test.local/, /response data/, { header: 'value' });
+requestHandler = httpBackendService.whenPOST(/test.local/, function (data: string): boolean { return true; });
+requestHandler = httpBackendService.whenPOST(/test.local/, function (data: string): boolean { return true; }, { header: 'value' });
+requestHandler = httpBackendService.whenPOST(/test.local/, { key: 'value' });
+requestHandler = httpBackendService.whenPOST(/test.local/, { key: 'value' }, { header: 'value' });
+
+requestHandler = httpBackendService.whenPUT('http://test.local');
+requestHandler = httpBackendService.whenPUT('http://test.local', 'response data');
+requestHandler = httpBackendService.whenPUT('http://test.local', 'response data', { header: 'value' });
+requestHandler = httpBackendService.whenPUT('http://test.local', /response data/);
+requestHandler = httpBackendService.whenPUT('http://test.local', /response data/, { header: 'value' });
+requestHandler = httpBackendService.whenPUT('http://test.local', function (data: string): boolean { return true; });
+requestHandler = httpBackendService.whenPUT('http://test.local', function (data: string): boolean { return true; }, { header: 'value' });
+requestHandler = httpBackendService.whenPUT('http://test.local', { key: 'value' });
+requestHandler = httpBackendService.whenPUT('http://test.local', { key: 'value' }, { header: 'value' });
+requestHandler = httpBackendService.whenPUT(/test.local/);
+requestHandler = httpBackendService.whenPUT(/test.local/, 'response data');
+requestHandler = httpBackendService.whenPUT(/test.local/, 'response data', { header: 'value' });
+requestHandler = httpBackendService.whenPUT(/test.local/, /response data/);
+requestHandler = httpBackendService.whenPUT(/test.local/, /response data/, { header: 'value' });
+requestHandler = httpBackendService.whenPUT(/test.local/, function (data: string): boolean { return true; });
+requestHandler = httpBackendService.whenPUT(/test.local/, function (data: string): boolean { return true; }, { header: 'value' });
+requestHandler = httpBackendService.whenPUT(/test.local/, { key: 'value' });
+requestHandler = httpBackendService.whenPUT(/test.local/, { key: 'value' }, { header: 'value' });
+
+
+///////////////////////////////////////
+// IRequestHandler
+///////////////////////////////////////
+requestHandler.passThrough();
+requestHandler.respond(function () { });
+requestHandler.respond({ key: 'value' });
+requestHandler.respond({ key: 'value' }, { header: 'value' });
+requestHandler.respond(404);
+requestHandler.respond(404, { key: 'value' });
+requestHandler.respond(404, { key: 'value' }, { header: 'value' });
diff --git a/angularjs/angular-mocks-tests.ts.tscparams b/angularjs/angular-mocks-tests.ts.tscparams
new file mode 100644
index 000000000..e16c76dff
--- /dev/null
+++ b/angularjs/angular-mocks-tests.ts.tscparams
@@ -0,0 +1 @@
+""
diff --git a/angularjs/angular-mocks.d.ts b/angularjs/angular-mocks.d.ts
index 4d8decbf8..a607422dd 100644
--- a/angularjs/angular-mocks.d.ts
+++ b/angularjs/angular-mocks.d.ts
@@ -1,9 +1,8 @@
-// Type definitions for Angular JS 1.0 (ngMock, ngMockE2E module)
+// Type definitions for Angular JS 1.2 (ngMock, ngMockE2E module)
// Project: http://angularjs.org
// Definitions by: Diego Vilar
// Definitions: https://github.com/borisyankov/DefinitelyTyped
-
///
///////////////////////////////////////////////////////////////////////////////
@@ -26,14 +25,16 @@ declare module ng {
}
interface IMockStatic {
- // see http://docs.angularjs.org/api/angular.mock.debug
- debug(obj: any): string;
-
+ // see http://docs.angularjs.org/api/angular.mock.dump
+ dump(obj: any): string;
+
// see http://docs.angularjs.org/api/angular.mock.inject
inject(...fns: Function[]): any;
-
+
// see http://docs.angularjs.org/api/angular.mock.module
- module(...modules: any[]): any;
+ module(...modules: string[]): any;
+ module(...modules: Function[]): any;
+ module(modules: Object): any;
// see http://docs.angularjs.org/api/angular.mock.TzDate
TzDate(offset: number, timestamp: number): Date;
@@ -55,7 +56,9 @@ declare module ng {
// Augments the original service
///////////////////////////////////////////////////////////////////////////
interface ITimeoutService {
- flush(): void;
+ flush(delay?: number): void;
+ flushNext(expectedDelay?: number): void;
+ verifyNoPendingTasks(): void;
}
///////////////////////////////////////////////////////////////////////////
@@ -68,7 +71,7 @@ declare module ng {
reset(): void;
}
- interface LogCall {
+ interface ILogCall {
logs: string[];
}
@@ -82,62 +85,127 @@ declare module ng {
verifyNoOutstandingExpectation(): void;
verifyNoOutstandingRequest(): void;
- expect(method: string, url: string, data?: any, headers?: any): mock.IRequestHandler;
- expect(method: string, url: RegExp, data?: any, headers?: any): mock.IRequestHandler;
- expect(method: RegExp, url: string, data?: any, headers?: any): mock.IRequestHandler;
- expect(method: RegExp, url: RegExp, data?: any, headers?: any): mock.IRequestHandler;
-
- when(method: string, url: string, data?: string, headers?: any): mock.IRequestHandler;
- when(method: string, url: RegExp, data?: string, headers?: any): mock.IRequestHandler;
- when(method: string, url: string, data?: RegExp, headers?: any): mock.IRequestHandler;
- when(method: string, url: RegExp, data?: RegExp, headers?: any): mock.IRequestHandler;
- when(method: RegExp, url: string, data?: string, headers?: any): mock.IRequestHandler;
- when(method: RegExp, url: RegExp, data?: string, headers?: any): mock.IRequestHandler;
- when(method: RegExp, url: string, data?: RegExp, headers?: any): mock.IRequestHandler;
- when(method: RegExp, url: RegExp, data?: RegExp, headers?: any): mock.IRequestHandler;
-
- expectDELETE(url: string, headers?: any): mock.IRequestHandler;
- expectDELETE(url: RegExp, headers?: any): mock.IRequestHandler;
- expectGET(url: string, headers?: any): mock.IRequestHandler;
- expectGET(url: RegExp, headers?: any): mock.IRequestHandler;
- expectHEAD(url: string, headers?: any): mock.IRequestHandler;
- expectHEAD(url: RegExp, headers?: any): mock.IRequestHandler;
+ expect(method: string, url: string, data?: string, headers?: Object): mock.IRequestHandler;
+ expect(method: string, url: string, data?: string, headers?: (object: Object) => boolean): mock.IRequestHandler;
+ expect(method: string, url: string, data?: RegExp, headers?: Object): mock.IRequestHandler;
+ expect(method: string, url: string, data?: RegExp, headers?: (object: Object) => boolean): mock.IRequestHandler;
+ expect(method: string, url: string, data?: (data: string) => boolean, headers?: Object): mock.IRequestHandler;
+ expect(method: string, url: string, data?: (data: string) => boolean, headers?: (object: Object) => boolean): mock.IRequestHandler;
+ expect(method: string, url: string, data?: Object, headers?: Object): mock.IRequestHandler;
+ expect(method: string, url: string, data?: Object, headers?: (object: Object) => boolean): mock.IRequestHandler;
+ expect(method: string, url: RegExp, data?: string, headers?: Object): mock.IRequestHandler;
+ expect(method: string, url: RegExp, data?: string, headers?: (object: Object) => boolean): mock.IRequestHandler;
+ expect(method: string, url: RegExp, data?: RegExp, headers?: Object): mock.IRequestHandler;
+ expect(method: string, url: RegExp, data?: RegExp, headers?: (object: Object) => boolean): mock.IRequestHandler;
+ expect(method: string, url: RegExp, data?: (data: string) => boolean, headers?: Object): mock.IRequestHandler;
+ expect(method: string, url: RegExp, data?: (data: string) => boolean, headers?: (object: Object) => boolean): mock.IRequestHandler;
+ expect(method: string, url: RegExp, data?: Object, headers?: Object): mock.IRequestHandler;
+ expect(method: string, url: RegExp, data?: Object, headers?: (object: Object) => boolean): mock.IRequestHandler;
+
+ expectDELETE(url: string, headers?: Object): mock.IRequestHandler;
+ expectDELETE(url: RegExp, headers?: Object): mock.IRequestHandler;
+ expectGET(url: string, headers?: Object): mock.IRequestHandler;
+ expectGET(url: RegExp, headers?: Object): mock.IRequestHandler;
+ expectHEAD(url: string, headers?: Object): mock.IRequestHandler;
+ expectHEAD(url: RegExp, headers?: Object): mock.IRequestHandler;
expectJSONP(url: string): mock.IRequestHandler;
expectJSONP(url: RegExp): mock.IRequestHandler;
- expectPATCH(url: string, data?: any, headers?: any): mock.IRequestHandler;
- expectPATCH(url: RegExp, data?: any, headers?: any): mock.IRequestHandler;
- expectPOST(url: string, data?: any, headers?: any): mock.IRequestHandler;
- expectPOST(url: RegExp, data?: any, headers?: any): mock.IRequestHandler;
- expectPUT(url: string, data?: any, headers?: any): mock.IRequestHandler;
- expectPUT(url: RegExp, data?: any, headers?: any): mock.IRequestHandler;
- whenDELETE(url: string, headers?: any): mock.IRequestHandler;
- whenDELETE(url: RegExp, headers?: any): mock.IRequestHandler;
- whenGET(url: string, headers?: any): mock.IRequestHandler;
- whenGET(url: RegExp, headers?: any): mock.IRequestHandler;
- whenHEAD(url: string, headers?: any): mock.IRequestHandler;
- whenHEAD(url: RegExp, headers?: any): mock.IRequestHandler;
+ expectPATCH(url: string, data?: string, headers?: Object): mock.IRequestHandler;
+ expectPATCH(url: string, data?: RegExp, headers?: Object): mock.IRequestHandler;
+ expectPATCH(url: string, data?: (data: string) => boolean, headers?: Object): mock.IRequestHandler;
+ expectPATCH(url: string, data?: Object, headers?: Object): mock.IRequestHandler;
+ expectPATCH(url: RegExp, data?: string, headers?: Object): mock.IRequestHandler;
+ expectPATCH(url: RegExp, data?: RegExp, headers?: Object): mock.IRequestHandler;
+ expectPATCH(url: RegExp, data?: (data: string) => boolean, headers?: Object): mock.IRequestHandler;
+ expectPATCH(url: RegExp, data?: Object, headers?: Object): mock.IRequestHandler;
+
+ expectPOST(url: string, data?: string, headers?: Object): mock.IRequestHandler;
+ expectPOST(url: string, data?: RegExp, headers?: Object): mock.IRequestHandler;
+ expectPOST(url: string, data?: (data: string) => boolean, headers?: Object): mock.IRequestHandler;
+ expectPOST(url: string, data?: Object, headers?: Object): mock.IRequestHandler;
+ expectPOST(url: RegExp, data?: string, headers?: Object): mock.IRequestHandler;
+ expectPOST(url: RegExp, data?: RegExp, headers?: Object): mock.IRequestHandler;
+ expectPOST(url: RegExp, data?: (data: string) => boolean, headers?: Object): mock.IRequestHandler;
+ expectPOST(url: RegExp, data?: Object, headers?: Object): mock.IRequestHandler;
+
+ expectPUT(url: string, data?: string, headers?: Object): mock.IRequestHandler;
+ expectPUT(url: string, data?: RegExp, headers?: Object): mock.IRequestHandler;
+ expectPUT(url: string, data?: (data: string) => boolean, headers?: Object): mock.IRequestHandler;
+ expectPUT(url: string, data?: Object, headers?: Object): mock.IRequestHandler;
+ expectPUT(url: RegExp, data?: string, headers?: Object): mock.IRequestHandler;
+ expectPUT(url: RegExp, data?: RegExp, headers?: Object): mock.IRequestHandler;
+ expectPUT(url: RegExp, data?: (data: string) => boolean, headers?: Object): mock.IRequestHandler;
+ expectPUT(url: RegExp, data?: Object, headers?: Object): mock.IRequestHandler;
+
+ when(method: string, url: string, data?: string, headers?: Object): mock.IRequestHandler;
+ when(method: string, url: string, data?: string, headers?: (object: Object) => boolean): mock.IRequestHandler;
+ when(method: string, url: string, data?: RegExp, headers?: Object): mock.IRequestHandler;
+ when(method: string, url: string, data?: RegExp, headers?: (object: Object) => boolean): mock.IRequestHandler;
+ when(method: string, url: string, data?: (data: string) => boolean, headers?: Object): mock.IRequestHandler;
+ when(method: string, url: string, data?: (data: string) => boolean, headers?: (object: Object) => boolean): mock.IRequestHandler;
+ when(method: string, url: string, data?: Object, headers?: Object): mock.IRequestHandler;
+ when(method: string, url: string, data?: Object, headers?: (object: Object) => boolean): mock.IRequestHandler;
+ when(method: string, url: RegExp, data?: string, headers?: Object): mock.IRequestHandler;
+ when(method: string, url: RegExp, data?: string, headers?: (object: Object) => boolean): mock.IRequestHandler;
+ when(method: string, url: RegExp, data?: RegExp, headers?: Object): mock.IRequestHandler;
+ when(method: string, url: RegExp, data?: RegExp, headers?: (object: Object) => boolean): mock.IRequestHandler;
+ when(method: string, url: RegExp, data?: (data: string) => boolean, headers?: Object): mock.IRequestHandler;
+ when(method: string, url: RegExp, data?: (data: string) => boolean, headers?: (object: Object) => boolean): mock.IRequestHandler;
+ when(method: string, url: RegExp, data?: Object, headers?: Object): mock.IRequestHandler;
+ when(method: string, url: RegExp, data?: Object, headers?: (object: Object) => boolean): mock.IRequestHandler;
+
+ whenDELETE(url: string, headers?: Object): mock.IRequestHandler;
+ whenDELETE(url: string, headers?: (object: Object) => boolean): mock.IRequestHandler;
+ whenDELETE(url: RegExp, headers?: Object): mock.IRequestHandler;
+ whenDELETE(url: RegExp, headers?: (object: Object) => boolean): mock.IRequestHandler;
+
+ whenGET(url: string, headers?: Object): mock.IRequestHandler;
+ whenGET(url: string, headers?: (object: Object) => boolean): mock.IRequestHandler;
+ whenGET(url: RegExp, headers?: Object): mock.IRequestHandler;
+ whenGET(url: RegExp, headers?: (object: Object) => boolean): mock.IRequestHandler;
+
+ whenHEAD(url: string, headers?: Object): mock.IRequestHandler;
+ whenHEAD(url: string, headers?: (object: Object) => boolean): mock.IRequestHandler;
+ whenHEAD(url: RegExp, headers?: Object): mock.IRequestHandler;
+ whenHEAD(url: RegExp, headers?: (object: Object) => boolean): mock.IRequestHandler;
+
whenJSONP(url: string): mock.IRequestHandler;
whenJSONP(url: RegExp): mock.IRequestHandler;
- whenPATCH(url: string, data?: string, headers?: any): mock.IRequestHandler;
- whenPATCH(url: RegExp, data?: string, headers?: any): mock.IRequestHandler;
- whenPATCH(url: string, data?: RegExp, headers?: any): mock.IRequestHandler;
- whenPATCH(url: RegExp, data?: RegExp, headers?: any): mock.IRequestHandler;
- whenPOST(url: string, data?: string, headers?: any): mock.IRequestHandler;
- whenPOST(url: RegExp, data?: string, headers?: any): mock.IRequestHandler;
- whenPOST(url: string, data?: RegExp, headers?: any): mock.IRequestHandler;
- whenPOST(url: RegExp, data?: RegExp, headers?: any): mock.IRequestHandler;
- whenPUT(url: string, data?: string, headers?: any): mock.IRequestHandler;
- whenPUT(url: RegExp, data?: string, headers?: any): mock.IRequestHandler;
- whenPUT(url: string, data?: RegExp, headers?: any): mock.IRequestHandler;
- whenPUT(url: RegExp, data?: RegExp, headers?: any): mock.IRequestHandler;
- }
+
+ whenPATCH(url: string, data?: string, headers?: Object): mock.IRequestHandler;
+ whenPATCH(url: string, data?: RegExp, headers?: Object): mock.IRequestHandler;
+ whenPATCH(url: string, data?: (data: string) => boolean, headers?: Object): mock.IRequestHandler;
+ whenPATCH(url: string, data?: Object, headers?: Object): mock.IRequestHandler;
+ whenPATCH(url: RegExp, data?: string, headers?: Object): mock.IRequestHandler;
+ whenPATCH(url: RegExp, data?: RegExp, headers?: Object): mock.IRequestHandler;
+ whenPATCH(url: RegExp, data?: (data: string) => boolean, headers?: Object): mock.IRequestHandler;
+ whenPATCH(url: RegExp, data?: Object, headers?: Object): mock.IRequestHandler;
+
+ whenPOST(url: string, data?: string, headers?: Object): mock.IRequestHandler;
+ whenPOST(url: string, data?: RegExp, headers?: Object): mock.IRequestHandler;
+ whenPOST(url: string, data?: (data: string) => boolean, headers?: Object): mock.IRequestHandler;
+ whenPOST(url: string, data?: Object, headers?: Object): mock.IRequestHandler;
+ whenPOST(url: RegExp, data?: string, headers?: Object): mock.IRequestHandler;
+ whenPOST(url: RegExp, data?: RegExp, headers?: Object): mock.IRequestHandler;
+ whenPOST(url: RegExp, data?: (data: string) => boolean, headers?: Object): mock.IRequestHandler;
+ whenPOST(url: RegExp, data?: Object, headers?: Object): mock.IRequestHandler;
+
+ whenPUT(url: string, data?: string, headers?: Object): mock.IRequestHandler;
+ whenPUT(url: string, data?: RegExp, headers?: Object): mock.IRequestHandler;
+ whenPUT(url: string, data?: (data: string) => boolean, headers?: Object): mock.IRequestHandler;
+ whenPUT(url: string, data?: Object, headers?: Object): mock.IRequestHandler;
+ whenPUT(url: RegExp, data?: string, headers?: Object): mock.IRequestHandler;
+ whenPUT(url: RegExp, data?: RegExp, headers?: Object): mock.IRequestHandler;
+ whenPUT(url: RegExp, data?: (data: string) => boolean, headers?: Object): mock.IRequestHandler;
+ whenPUT(url: RegExp, data?: Object, headers?: Object): mock.IRequestHandler;
+ }
export module mock {
-
+
// returned interface by the the mocked HttpBackendService expect/when methods
interface IRequestHandler {
- respond(func: Function): void;
+ respond(func: Function): void;
respond(status: number, data?: any, headers?: any): void;
respond(data: any, headers?: any): void;
@@ -145,6 +213,6 @@ declare module ng {
passThrough(): void;
}
- }
+ }
}
diff --git a/angularjs/angular-mocks.d.ts.tscparams b/angularjs/angular-mocks.d.ts.tscparams
new file mode 100644
index 000000000..e16c76dff
--- /dev/null
+++ b/angularjs/angular-mocks.d.ts.tscparams
@@ -0,0 +1 @@
+""
diff --git a/angularjs/angular-resource-1.0.d.ts b/angularjs/angular-resource-1.0.d.ts
new file mode 100644
index 000000000..c66bb341d
--- /dev/null
+++ b/angularjs/angular-resource-1.0.d.ts
@@ -0,0 +1,82 @@
+// Type definitions for Angular JS 1.0 (ngResource module)
+// Project: http://angularjs.org
+// Definitions by: Diego Vilar
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+
+///////////////////////////////////////////////////////////////////////////////
+// ngResource module (angular-resource.js)
+///////////////////////////////////////////////////////////////////////////////
+declare module ng.resource {
+
+ ///////////////////////////////////////////////////////////////////////////
+ // ResourceService
+ // see http://docs.angularjs.org/api/ngResource.$resource
+ // Most part of the following definitions were achieved by analyzing the
+ // actual implementation, since the documentation doesn't seem to cover
+ // that deeply.
+ ///////////////////////////////////////////////////////////////////////////
+ interface IResourceService {
+ (url: string, paramDefaults?: any,
+ /** example: {update: { method: 'PUT' }, delete: deleteDescriptor }
+ where deleteDescriptor : IActionDescriptor */
+ actionDescriptors?: any): IResourceClass;
+ }
+
+ // Just a reference to facilitate describing new actions
+ interface IActionDescriptor {
+ method: string;
+ isArray?: boolean;
+ params?: any;
+ headers?: any;
+ }
+
+ // Baseclass for everyresource with default actions.
+ // If you define your new actions for the resource, you will need
+ // to extend this interface and typecast the ResourceClass to it.
+ interface IResourceClass {
+ get: IActionCall;
+ save: IActionCall;
+ query: IActionCall;
+ remove: IActionCall;
+ delete: IActionCall;
+ }
+
+ // In case of passing the first argument as anything but a function,
+ // it's gonna be considered data if the action method is POST, PUT or
+ // PATCH (in other words, methods with body). Otherwise, it's going
+ // to be considered as parameters to the request.
+ interface IActionCall {
+ (): IResource;
+ (dataOrParams: any): IResource;
+ (dataOrParams: any, success: Function): IResource;
+ (success: Function, error?: Function): IResource;
+ (params: any, data: any, success?: Function, error?: Function): IResource;
+ }
+
+ interface IResource {
+ $save: IActionCall;
+ $remove: IActionCall;
+ $delete: IActionCall;
+
+ // No documented, but they are there, just as any custom action will be
+ $query: IActionCall;
+ $get: IActionCall;
+ }
+
+ /** when creating a resource factory via IModule.factory */
+ interface IResourceServiceFactoryFunction {
+ ($resource: ng.resource.IResourceService): ng.resource.IResourceClass;
+ }
+}
+
+/** extensions to base ng based on using angular-resource */
+declare module ng {
+
+ interface IModule {
+ /** creating a resource service factory */
+ factory(name: string, resourceServiceFactoryFunction: ng.resource.IResourceServiceFactoryFunction): IModule;
+ }
+}
diff --git a/angularjs/angular-resource-tests.ts b/angularjs/angular-resource-tests.ts
new file mode 100644
index 000000000..c2378350d
--- /dev/null
+++ b/angularjs/angular-resource-tests.ts
@@ -0,0 +1,74 @@
+///
+
+///////////////////////////////////////
+// IActionDescriptor
+///////////////////////////////////////
+var actionDescriptor: ng.resource.IActionDescriptor;
+
+actionDescriptor.headers = { header: 'value' };
+actionDescriptor.isArray = true;
+actionDescriptor.method = 'method action';
+actionDescriptor.params = { key: 'value' };
+
+
+///////////////////////////////////////
+// IResourceClass
+///////////////////////////////////////
+var resourceClass: ng.resource.IResourceClass;
+var resource: ng.resource.IResource;
+
+resource = resourceClass.delete();
+resource = resourceClass.delete({ key: 'value' });
+resource = resourceClass.delete({ key: 'value' }, function () { });
+resource = resourceClass.delete(function () { });
+resource = resourceClass.delete(function () { }, function () { });
+resource = resourceClass.delete({ key: 'value' }, { key: 'value' });
+resource = resourceClass.delete({ key: 'value' }, { key: 'value' }, function () { });
+resource = resourceClass.delete({ key: 'value' }, { key: 'value' }, function () { }, function () { });
+
+resource = resourceClass.get();
+resource = resourceClass.get({ key: 'value' });
+resource = resourceClass.get({ key: 'value' }, function () { });
+resource = resourceClass.get(function () { });
+resource = resourceClass.get(function () { }, function () { });
+resource = resourceClass.get({ key: 'value' }, { key: 'value' });
+resource = resourceClass.get({ key: 'value' }, { key: 'value' }, function () { });
+resource = resourceClass.get({ key: 'value' }, { key: 'value' }, function () { }, function () { });
+
+resource = resourceClass.query();
+resource = resourceClass.query({ key: 'value' });
+resource = resourceClass.query({ key: 'value' }, function () { });
+resource = resourceClass.query(function () { });
+resource = resourceClass.query(function () { }, function () { });
+resource = resourceClass.query({ key: 'value' }, { key: 'value' });
+resource = resourceClass.query({ key: 'value' }, { key: 'value' }, function () { });
+resource = resourceClass.query({ key: 'value' }, { key: 'value' }, function () { }, function () { });
+
+resource = resourceClass.remove();
+resource = resourceClass.remove({ key: 'value' });
+resource = resourceClass.remove({ key: 'value' }, function () { });
+resource = resourceClass.remove(function () { });
+resource = resourceClass.remove(function () { }, function () { });
+resource = resourceClass.remove({ key: 'value' }, { key: 'value' });
+resource = resourceClass.remove({ key: 'value' }, { key: 'value' }, function () { });
+resource = resourceClass.remove({ key: 'value' }, { key: 'value' }, function () { }, function () { });
+
+resource = resourceClass.save();
+resource = resourceClass.save({ key: 'value' });
+resource = resourceClass.save({ key: 'value' }, function () { });
+resource = resourceClass.save(function () { });
+resource = resourceClass.save(function () { }, function () { });
+resource = resourceClass.save({ key: 'value' }, { key: 'value' });
+resource = resourceClass.save({ key: 'value' }, { key: 'value' }, function () { });
+resource = resourceClass.save({ key: 'value' }, { key: 'value' }, function () { }, function () { });
+
+
+///////////////////////////////////////
+// IModule
+///////////////////////////////////////
+var mod: ng.IModule;
+var resourceServiceFactoryFunction: ng.resource.IResourceServiceFactoryFunction;
+var resourceService: ng.resource.IResourceService;
+
+resourceServiceFactoryFunction = function (resourceService) { return resourceClass };
+mod = mod.factory('factory name', resourceServiceFactoryFunction);
diff --git a/angularjs/angular-resource.d.ts b/angularjs/angular-resource.d.ts
index c66bb341d..c15a933f8 100644
--- a/angularjs/angular-resource.d.ts
+++ b/angularjs/angular-resource.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Angular JS 1.0 (ngResource module)
+// Type definitions for Angular JS 1.2 (ngResource module)
// Project: http://angularjs.org
// Definitions by: Diego Vilar
// Definitions: https://github.com/borisyankov/DefinitelyTyped
@@ -19,10 +19,10 @@ declare module ng.resource {
// that deeply.
///////////////////////////////////////////////////////////////////////////
interface IResourceService {
- (url: string, paramDefaults?: any,
- /** example: {update: { method: 'PUT' }, delete: deleteDescriptor }
- where deleteDescriptor : IActionDescriptor */
- actionDescriptors?: any): IResourceClass;
+ (url: string, paramDefaults?: any,
+ /** example: {update: { method: 'PUT' }, delete: deleteDescriptor }
+ where deleteDescriptor : IActionDescriptor */
+ actionDescriptors?: any): IResourceClass;
}
// Just a reference to facilitate describing new actions
diff --git a/angularjs/angular-route-tests.ts b/angularjs/angular-route-tests.ts
new file mode 100644
index 000000000..2ebe16a21
--- /dev/null
+++ b/angularjs/angular-route-tests.ts
@@ -0,0 +1,14 @@
+///
+
+/**
+ * @license HTTP Auth Interceptor Module for AngularJS
+ * (c) 2013 Jonathan Park @ Daptiv Solutions Inc
+ * License: MIT
+ */
+
+declare var $routeProvider: ng.route.IRouteProvider;
+$routeProvider
+ .when('/projects/:projectId/dashboard',{
+ controller: ''
+ })
+ .otherwise({redirectTo: '/'});
diff --git a/angularjs/angular-route.d.ts b/angularjs/angular-route.d.ts
new file mode 100644
index 000000000..224adcba7
--- /dev/null
+++ b/angularjs/angular-route.d.ts
@@ -0,0 +1,63 @@
+// Type definitions for Angular JS 1.2 (ngRoute module)
+// Project: http://angularjs.org
+// Definitions by: Jonathan Park
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+
+///////////////////////////////////////////////////////////////////////////////
+// ngRoute module (angular-route.js)
+///////////////////////////////////////////////////////////////////////////////
+declare module ng.route {
+
+ ///////////////////////////////////////////////////////////////////////////
+ // RouteParamsService
+ // see http://docs.angularjs.org/api/ngRoute.$routeParams
+ ///////////////////////////////////////////////////////////////////////////
+ interface IRouteParamsService {}
+
+ ///////////////////////////////////////////////////////////////////////////
+ // RouteService
+ // see http://docs.angularjs.org/api/ngRoute.$route
+ // see http://docs.angularjs.org/api/ngRoute.$routeProvider
+ ///////////////////////////////////////////////////////////////////////////
+ interface IRouteService {
+ reload(): void;
+ routes: any;
+
+ // May not always be available. For instance, current will not be available
+ // to a controller that was not initialized as a result of a route maching.
+ current?: ICurrentRoute;
+ }
+
+ // see http://docs.angularjs.org/api/ngRoute.$routeProvider#when for options explanations
+ interface IRoute {
+ controller?: any;
+ name?: string;
+ template?: string;
+ templateUrl?: any;
+ resolve?: any;
+ redirectTo?: any;
+ reloadOnSearch?: boolean;
+ }
+
+ // see http://docs.angularjs.org/api/ng.$route#current
+ interface ICurrentRoute extends IRoute {
+ locals: {
+ $scope: IScope;
+ $template: string;
+ };
+
+ params: any;
+ }
+
+ interface IRouteProvider extends IServiceProvider {
+ otherwise(params: any): IRouteProvider;
+ /**
+ * This is a description
+ *
+ */
+ when(path: string, route: IRoute): IRouteProvider;
+ }
+}
diff --git a/angularjs/angular-sanitize-1.0.d.ts b/angularjs/angular-sanitize-1.0.d.ts
new file mode 100644
index 000000000..56a3bc2ae
--- /dev/null
+++ b/angularjs/angular-sanitize-1.0.d.ts
@@ -0,0 +1,22 @@
+// Type definitions for Angular JS 1.0 (ngSanitize module)
+// Project: http://angularjs.org
+// Definitions by: Diego Vilar
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+
+///
+
+///////////////////////////////////////////////////////////////////////////////
+// ngSanitize module (angular-sanitize.js)
+///////////////////////////////////////////////////////////////////////////////
+declare module ng.sanitize {
+
+ ///////////////////////////////////////////////////////////////////////////
+ // SanitizeService
+ // see http://docs.angularjs.org/api/ngSanitize.$sanitize
+ ///////////////////////////////////////////////////////////////////////////
+ interface ISanitizeService {
+ (html: string): string;
+ }
+
+}
diff --git a/angularjs/angular-sanitize.d.ts b/angularjs/angular-sanitize.d.ts
index 56a3bc2ae..43576ae3b 100644
--- a/angularjs/angular-sanitize.d.ts
+++ b/angularjs/angular-sanitize.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Angular JS 1.0 (ngSanitize module)
+// Type definitions for Angular JS 1.2 (ngSanitize module)
// Project: http://angularjs.org
// Definitions by: Diego Vilar
// Definitions: https://github.com/borisyankov/DefinitelyTyped
diff --git a/angularjs/angular-scenario-1.0.d.ts b/angularjs/angular-scenario-1.0.d.ts
new file mode 100644
index 000000000..8dd605f7d
--- /dev/null
+++ b/angularjs/angular-scenario-1.0.d.ts
@@ -0,0 +1,155 @@
+// Type definitions for Angular Scenario Testing
+// Project: [http://angularjs.org]
+// Definitions by: [RomanoLindano]
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module angularScenario {
+ export interface AngularModel {
+ scenario: any;
+ }
+
+ export interface RunFunction {
+ (functionToRun: any): any;
+ }
+ export interface RunFunctionWithDescription {
+ (description: string, functionToRun: any): any;
+ }
+
+ export interface PauseFunction {
+ (): any;
+ }
+
+ export interface SleepFunction {
+ (seconds: number): any;
+ }
+
+ export interface Future {
+ }
+
+ export interface testWindow {
+ href(): Future;
+ path(): Future;
+ search(): Future;
+ hash(): Future;
+ }
+
+ export interface testLocation {
+ url(): Future;
+ path(): Future;
+ search(): Future;
+ hash(): Future;
+ }
+
+ export interface Browser {
+ navigateTo(url: string): void;
+ navigateTo(urlDescription: string, urlFunction: () => string): void;
+ reload(): void;
+ window(): testWindow;
+ location(): testLocation;
+ }
+
+ export interface Matchers {
+ toEqual(value: any): void;
+ toBe(value: any): void;
+ toBeDefined(): void;
+ toBeTruthy(): void;
+ toBeFalsy(): void;
+ toMatch(regularExpression: any): void;
+ toBeNull(): void;
+ toContain(value: any): void;
+ toBeLessThan(value: any): void;
+ toBeGreaterThan(value: any): void;
+ }
+
+ export interface CustomMatchers extends Matchers{
+ }
+
+ export interface Expect extends CustomMatchers {
+ not(): angularScenario.CustomMatchers;
+ }
+
+ export interface UsingFunction {
+ (selector: string, selectorDescription?: string): void;
+ }
+
+ export interface BindingFunction {
+ (bracketBindingExpression: string): Future;
+ }
+
+ export interface Input {
+ enter(value: any);
+ check(): any;
+ select(radioButtonValue: any): any;
+ val(): Future;
+ }
+
+ export interface Repeater {
+ count(): Future;
+ row(index: number): Future;
+ column(ngBindingExpression: string): Future;
+ }
+
+ export interface Select {
+ option(value: any): any;
+ option(...listOfValues: any[]): any;
+ }
+
+ export interface Element {
+ count(): Future;
+ click(): any;
+ query(callback: (selectedDOMElements: any[], callbackWhenDone: (objNull: any, futureValue: any) => any) =>any): any;
+ val(): Future;
+ text(): Future;
+ html(): Future;
+ height(): Future;
+ innerHeight(): Future;
+ outerHeight(): Future;
+ width(): Future;
+ innerWidth(): Future;
+ outerWidth(): Future;
+ position(): Future;
+ scrollLeft(): Future;
+ scrollTop(): Future;
+ offset(): Future;
+
+ val(value: any): void;
+ text(value: any): void;
+ html(value: any): void;
+ height(value: any): void;
+ innerHeight(value: any): void;
+ outerHeight(value: any): void;
+ width(value: any): void;
+ innerWidth(value: any): void;
+ outerWidth(value: any): void;
+ position(value: any): void;
+ scrollLeft(value: any): void;
+ scrollTop(value: any): void;
+ offset(value: any): void;
+
+ attr(key: any): Future;
+ prop(key: any): Future;
+ css(key: any): Future;
+
+ attr(key: any, value: any): void;
+ prop(key: any, value: any): void;
+ css(key: any, value: any): void;
+ }
+}
+
+declare var describe: angularScenario.RunFunctionWithDescription;
+declare var xdescribe: angularScenario.RunFunctionWithDescription;
+declare var beforeEach: angularScenario.RunFunction;
+declare var afterEach: angularScenario.RunFunction;
+declare var it: angularScenario.RunFunctionWithDescription;
+declare var xit: angularScenario.RunFunctionWithDescription;
+declare var pause: angularScenario.PauseFunction;
+declare var sleep: angularScenario.SleepFunction;
+declare function browser(): angularScenario.Browser;
+declare function expect(expectation: angularScenario.Future): angularScenario.Expect;
+declare var using: angularScenario.UsingFunction;
+declare var binding: angularScenario.BindingFunction;
+declare function input(ngModelBinding: string): angularScenario.Input;
+declare function repeater(selector: string, repeaterDescription?: string): angularScenario.Repeater;
+declare function select(ngModelBinding: string): angularScenario.Select;
+declare function element(selector: string, elementDescription?: string): angularScenario.Element;
+declare var angular: angularScenario.AngularModel;
diff --git a/angularjs/angular-scenario-1.0.d.ts.tscparams b/angularjs/angular-scenario-1.0.d.ts.tscparams
new file mode 100644
index 000000000..e16c76dff
--- /dev/null
+++ b/angularjs/angular-scenario-1.0.d.ts.tscparams
@@ -0,0 +1 @@
+""
diff --git a/angularjs/angular-tests.ts b/angularjs/angular-tests.ts
index 6a6892f57..bcfe31d16 100644
--- a/angularjs/angular-tests.ts
+++ b/angularjs/angular-tests.ts
@@ -182,6 +182,7 @@ mod.value('name', 23);
mod.value('name', "23");
mod.value(My.Namespace);
+
// Promise signature tests
var foo: ng.IPromise;
foo.then((x) => {
@@ -217,3 +218,17 @@ var element = angular.element("div.myApp");
var scope: ng.IScope = element.scope();
+
+function test_IAttributes(attributes: ng.IAttributes){
+ return attributes;
+}
+
+test_IAttributes({
+ $addClass: function (classVal){},
+ $removeClass: function(classVal){},
+ $set: function(key, value){},
+ $observe: function(name, fn){
+ return fn;
+ },
+ $attr: {}
+});
diff --git a/angularjs/angular.d.ts b/angularjs/angular.d.ts
index 145696286..fe3e986fa 100755
--- a/angularjs/angular.d.ts
+++ b/angularjs/angular.d.ts
@@ -81,11 +81,11 @@ declare module ng {
animation(name: string, animationFactory: Function): IModule;
animation(name: string, inlineAnnotadedFunction: any[]): IModule;
animation(object: Object): IModule;
- /** configure existing services.
+ /** configure existing services.
Use this method to register work which needs to be performed on module loading
*/
config(configFn: Function): IModule;
- /** configure existing services.
+ /** configure existing services.
Use this method to register work which needs to be performed on module loading
*/
config(inlineAnnotadedFunction: any[]): IModule;
@@ -96,7 +96,7 @@ declare module ng {
controller(object : Object): IModule;
directive(name: string, directiveFactory: (...params:any[])=> IDirective): IModule;
directive(name: string, inlineAnnotadedFunction: any[]): IModule;
- directive(object: Object): IModule;
+ directive(object: Object): IModule;
factory(name: string, serviceFactoryFunction: Function): IModule;
factory(name: string, inlineAnnotadedFunction: any[]): IModule;
factory(object: Object): IModule;
@@ -124,9 +124,28 @@ declare module ng {
// see http://docs.angularjs.org/api/ng.$compile.directive.Attributes
///////////////////////////////////////////////////////////////////////////
interface IAttributes {
- $set(name: string, value: any): void;
- $observe(name: string, fn:(value?:any)=>any):void;
- $attr: any;
+ // Adds the CSS class value specified by the classVal parameter to the
+ // element. If animations are enabled then an animation will be triggered
+ // for the class addition.
+ $addClass(classVal: string): void;
+
+ // Removes the CSS class value specified by the classVal parameter from the
+ // element. If animations are enabled then an animation will be triggered for
+ // the class removal.
+ $removeClass(classVal: string): void;
+
+ // Set DOM element attribute value.
+ $set(key: string, value: any): void;
+
+ // Observes an interpolated attribute.
+ // The observer function will be invoked once during the next $digest
+ // following compilation. The observer is then invoked whenever the
+ // interpolated value changes.
+ $observe(name: string, fn:(value?:any)=>any): Function;
+
+ // A map of DOM element attribute names to the normalized name. This is needed
+ // to do reverse lookup from normalized name back to actual name.
+ $attr: Object;
}
///////////////////////////////////////////////////////////////////////////
@@ -212,7 +231,7 @@ declare module ng {
$parent: IScope;
$id: number;
-
+
// Hidden members
$$isolateBindings: any;
$$phase: any;
@@ -602,12 +621,6 @@ declare module ng {
endSymbol(value: string): IInterpolateProvider;
}
- ///////////////////////////////////////////////////////////////////////////
- // RouteParamsService
- // see http://docs.angularjs.org/api/ng.$routeParams
- ///////////////////////////////////////////////////////////////////////////
- interface IRouteParamsService {}
-
///////////////////////////////////////////////////////////////////////////
// TemplateCacheService
// see http://docs.angularjs.org/api/ng.$templateCache
@@ -620,46 +633,6 @@ declare module ng {
///////////////////////////////////////////////////////////////////////////
interface IRootScopeService extends IScope {}
- ///////////////////////////////////////////////////////////////////////////
- // RouteService
- // see http://docs.angularjs.org/api/ng.$route
- // see http://docs.angularjs.org/api/ng.$routeProvider
- ///////////////////////////////////////////////////////////////////////////
- interface IRouteService {
- reload(): void;
- routes: any;
-
- // May not always be available. For instance, current will not be available
- // to a controller that was not initialized as a result of a route maching.
- current?: ICurrentRoute;
- }
-
- // see http://docs.angularjs.org/api/ng.$routeProvider#when for options explanations
- interface IRoute {
- controller?: any;
- name?: string;
- template?: string;
- templateUrl?: any;
- resolve?: any;
- redirectTo?: any;
- reloadOnSearch?: boolean;
- }
-
- // see http://docs.angularjs.org/api/ng.$route#current
- interface ICurrentRoute extends IRoute {
- locals: {
- $scope: IScope;
- $template: string;
- };
-
- params: any;
- }
-
- interface IRouteProvider extends IServiceProvider {
- otherwise(params: any): IRouteProvider;
- when(path: string, route: IRoute): IRouteProvider;
- }
-
///////////////////////////////////////////////////////////////////////////
// Directive
// see http://docs.angularjs.org/api/ng.$compileProvider#directive
@@ -667,16 +640,29 @@ declare module ng {
///////////////////////////////////////////////////////////////////////////
interface IDirective{
+ compile?:
+ (templateElement: any,
+ templateAttributes: IAttributes,
+ transclude: (scope: IScope, cloneLinkingFn: Function) => void
+ ) => any;
+ controller?: (...injectables: any[]) => void;
+ controllerAs?: string;
+ link?:
+ (scope: IScope,
+ instanceElement: any,
+ instanceAttributes: IAttributes,
+ controller: any
+ ) => void;
+ name?: string;
priority?: number;
- template?: any;
- templateUrl?: any;
replace?: boolean;
- transclude?: any;
+ require?: string[];
restrict?: string;
scope?: any;
- link?: Function;
- compile?: Function;
- controller?: any;
+ template?: any;
+ templateUrl?: any;
+ terminal?: boolean;
+ transclude?: any;
}
///////////////////////////////////////////////////////////////////////////