<commit_before>// Type definitions for Angular JS Meteor v0.8.8 (angular.meteor module)
// Project: https://github.com/Urigo/angular-meteor
// Definitions by: <NAME> <https://github.com/pgrm>
// Definitions: https://github.com/borisyankov/DefinitelyTyped

/// <reference path="../meteor/meteor.d.ts" />
/// <reference path="../angularjs/angular.d.ts" />

declare module angular.meteor {
    interface IRootScopeService extends angular.IRootScopeService {
        /**
         * The current logged in user and it's data. it is null if the user is not logged in. A reactive data source.
         */
        currentUser: Meteor.User;
        
        /**
         * True if a login method (such as Meteor.loginWithPassword, Meteor.loginWithFacebook, or Accounts.createUser) is currently in progress. 
         * A reactive data source. Can be use to display animation while user is logging in.
         */
        loggingIn: boolean;
    }
    
    interface IScope extends angular.IScope, IRootScopeService {
        /**
         * A method to get a $scope variable and watch it reactivly
         * 
         * @param scopeVariableName - The name of the scope's variable to bind to
         * @param [objectEquality=false] - Watch the object equality using angular.equals instead of comparing for reference equality, deeper watch but also slower
         */
        getReactively(scopeVariableName: string, objectEquality?: boolean): ReactiveResult;
        
        /**
         * A service which is a wrapper for Meteor.subscribe. It subscribes to a Meteor.publish method in the client and returns a AngularJS promise when ready.
         * Calling $scope.subscribe will automatically stop the subscription when the scope is destroyed.
         * 
         * @param name - Name of the subscription. Matches the name of the server's publish() call.
         * @param publisherArguments - Optional arguments passed to publisher function on server.
         * 
         * @return The promise solved successfully when subscription is ready. The success promise holds the subscription handle.
         */
        subscribe(name: string, ...publisherArguments: any[]): angular.IPromise<Meteor.SubscriptionHandle>;

        /**
         * The helpers method is part of the ReactiveContext, and available on every context and $scope.
         * These method are defined as Object, where each key is the name of the variable that will be available on the context we run, and each value is a function with a return value.
         * Under the hood, each helper starts a new Tracker.autorun. When its reactive dependencies change, the helper is rerun.
         * To trigger a rerun every time an specific Angular variable change, use getReactively](/api/1.3.1/get-reactively) to make your Angular variable reactive inside the helper its used in.
         * Each helper function should return a MongoDB Cursor and the helpers will expose it as a normal array to the context.
         *
         * @param definitions - Object containing `name` => `function` definition, where each name is a string and each function is the helper function. Should return a [MongoDB Cursor](http://docs.meteor.com/#/full/mongo_cursor)
         * @return This method returns this, which the the reactive context, in order to provide the ability to chain the logic.
         */
        helpers(definitions : { [helperName : string] : () => Mongo.Cursor<any> }): IScope;
    }
    
    /**<commit_msg>Adding subscribe method to meteor angular IScope.<commit_after>// Type definitions for Angular JS Meteor v0.8.8 (angular.meteor module)
// Project: https://github.com/Urigo/angular-meteor
// Definitions by: <NAME> <https://github.com/pgrm>
// Definitions: https://github.com/borisyankov/DefinitelyTyped

/// <reference path="../meteor/meteor.d.ts" />
/// <reference path="../angularjs/angular.d.ts" />

declare module angular.meteor {
    interface IRootScopeService extends angular.IRootScopeService {
        /**
         * The current logged in user and it's data. it is null if the user is not logged in. A reactive data source.
         */
        currentUser: Meteor.User;
        
        /**
         * True if a login method (such as Meteor.loginWithPassword, Meteor.loginWithFacebook, or Accounts.createUser) is currently in progress. 
         * A reactive data source. Can be use to display animation while user is logging in.
         */
        loggingIn: boolean;
    }
    
    interface IScope extends angular.IScope, IRootScopeService {
        /**
         * A method to get a $scope variable and watch it reactivly
         * 
         * @param scopeVariableName - The name of the scope's variable to bind to
         * @param [objectEquality=false] - Watch the object equality using angular.equals instead of comparing for reference equality, deeper watch but also slower
         */
        getReactively(scopeVariableName: string, objectEquality?: boolean): ReactiveResult;
        
        /**
         * A service which is a wrapper for Meteor.subscribe. It subscribes to a Meteor.publish method in the client and returns a AngularJS promise when ready.
         * Calling $scope.subscribe will automatically stop the subscription when the scope is destroyed.
         * 
         * @param name - Name of the subscription. Matches the name of the server's publish() call.
         * @param publisherArguments - Optional arguments passed to publisher function on server.
         * 
         * @return The promise solved successfully when subscription is ready. The success promise holds the subscription handle.
         */
        subscribe(name: string, ...publisherArguments: any[]): angular.IPromise<Meteor.SubscriptionHandle>;

        /**
         * The helpers method is part of the ReactiveContext, and available on every context and $scope.
         * These method are defined as Object, where each key is the name of the variable that will be available on the context we run, and each value is a function with a return value.
         * Under the hood, each helper starts a new Tracker.autorun. When its reactive dependencies change, the helper is rerun.
         * To trigger a rerun every time an specific Angular variable change, use getReactively](/api/1.3.1/get-reactively) to make your Angular variable reactive inside the helper its used in.
         * Each helper function should return a MongoDB Cursor and the helpers will expose it as a normal array to the context.
         *
         * @param definitions - Object containing `name` => `function` definition, where each name is a string and each function is the helper function. Should return a [MongoDB Cursor](http://docs.meteor.com/#/full/mongo_cursor)
         * @return This method returns this, which the the reactive context, in order to provide the ability to chain the logic.
         */
        helpers(definitions : { [helperName : string] : () => Mongo.Cursor<any> }): IScope;

        /**
         * This method is a wrapper of Tracker.autorun and shares exactly the same API.
         * The autorun method is part of the ReactiveContext, and available on every context and $scope.
         * The argument of this method is a callback, which will be called each time Autorun will be used.
         * The Autorun will stop automatically when when it's context ($scope) is destroyed.
         * 
         * @param runFunc - The function to run. It receives one argument: the Computation object that will be returned.
         */
        autorun(runFunc : () => void) : Tracker.Computation;
    }
    
    /**
{'fraction_non_alphanumeric': 0.07687236286919831, 'fraction_numerical': 0.0015822784810126582, 'mean_word_length': 2.698196001950268, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 20, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5505693', 'n_tokens_mistral': 1927, 'n_tokens_neox': 1860, 'n_words': 844}