| @@ -0,0 +1,34 @@ | ||
| ////////////////////////////////////////////////////////////////////////// | ||
| // // | ||
| // This is a generated file. You can view the original // | ||
| // source in your browser if your browser supports source maps. // | ||
| // Source maps are supported by all recent versions of Chrome, Safari, // | ||
| // and Firefox, and by Internet Explorer 11. // | ||
| // // | ||
| ////////////////////////////////////////////////////////////////////////// | ||
|
|
||
|
|
||
| (function () { | ||
|
|
||
| /* Imports */ | ||
| var Meteor = Package.meteor.Meteor; | ||
|
|
||
| (function(){ | ||
|
|
||
| /////////////////////////////////////////////////////////////////////// | ||
| // // | ||
| // packages/npm-bcrypt/packages/npm-bcrypt.js // | ||
| // // | ||
| /////////////////////////////////////////////////////////////////////// | ||
| // | ||
| // 1 | ||
| /////////////////////////////////////////////////////////////////////// | ||
|
|
||
| }).call(this); | ||
|
|
||
|
|
||
| /* Exports */ | ||
| if (typeof Package === 'undefined') Package = {}; | ||
| Package['npm-bcrypt'] = {}; | ||
|
|
||
| })(); |
| @@ -0,0 +1,137 @@ | ||
| ////////////////////////////////////////////////////////////////////////// | ||
| // // | ||
| // This is a generated file. You can view the original // | ||
| // source in your browser if your browser supports source maps. // | ||
| // Source maps are supported by all recent versions of Chrome, Safari, // | ||
| // and Firefox, and by Internet Explorer 11. // | ||
| // // | ||
| ////////////////////////////////////////////////////////////////////////// | ||
|
|
||
|
|
||
| (function () { | ||
|
|
||
| /* Imports */ | ||
| var Meteor = Package.meteor.Meteor; | ||
| var Tracker = Package.tracker.Tracker; | ||
| var Deps = Package.tracker.Deps; | ||
|
|
||
| /* Package-scope variables */ | ||
| var ReactiveVar; | ||
|
|
||
| (function(){ | ||
|
|
||
| ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| // // | ||
| // packages/reactive-var/reactive-var.js // | ||
| // // | ||
| ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| // | ||
| /* // 1 | ||
| * ## [new] ReactiveVar(initialValue, [equalsFunc]) // 2 | ||
| * // 3 | ||
| * A ReactiveVar holds a single value that can be get and set, // 4 | ||
| * such that calling `set` will invalidate any Computations that // 5 | ||
| * called `get`, according to the usual contract for reactive // 6 | ||
| * data sources. // 7 | ||
| * // 8 | ||
| * A ReactiveVar is much like a Session variable -- compare `foo.get()` // 9 | ||
| * to `Session.get("foo")` -- but it doesn't have a global name and isn't // 10 | ||
| * automatically migrated across hot code pushes. Also, while Session // 11 | ||
| * variables can only hold JSON or EJSON, ReactiveVars can hold any value. // 12 | ||
| * // 13 | ||
| * An important property of ReactiveVars, which is sometimes the reason // 14 | ||
| * to use one, is that setting the value to the same value as before has // 15 | ||
| * no effect, meaning ReactiveVars can be used to absorb extra // 16 | ||
| * invalidations that wouldn't serve a purpose. However, by default, // 17 | ||
| * ReactiveVars are extremely conservative about what changes they // 18 | ||
| * absorb. Calling `set` with an object argument will *always* trigger // 19 | ||
| * invalidations, because even if the new value is `===` the old value, // 20 | ||
| * the object may have been mutated. You can change the default behavior // 21 | ||
| * by passing a function of two arguments, `oldValue` and `newValue`, // 22 | ||
| * to the constructor as `equalsFunc`. // 23 | ||
| * // 24 | ||
| * This class is extremely basic right now, but the idea is to evolve // 25 | ||
| * it into the ReactiveVar of Geoff's Lickable Forms proposal. // 26 | ||
| */ // 27 | ||
| // 28 | ||
| /** // 29 | ||
| * @class // 30 | ||
| * @instanceName reactiveVar // 31 | ||
| * @summary Constructor for a ReactiveVar, which represents a single reactive variable. // 32 | ||
| * @locus Client // 33 | ||
| * @param {Any} initialValue The initial value to set. `equalsFunc` is ignored when setting the initial value. | ||
| * @param {Function} [equalsFunc] Optional. A function of two arguments, called on the old value and the new value whenever the ReactiveVar is set. If it returns true, no set is performed. If omitted, the default `equalsFunc` returns true if its arguments are `===` and are of type number, boolean, string, undefined, or null. | ||
| */ // 36 | ||
| ReactiveVar = function (initialValue, equalsFunc) { // 37 | ||
| if (! (this instanceof ReactiveVar)) // 38 | ||
| // called without `new` // 39 | ||
| return new ReactiveVar(initialValue, equalsFunc); // 40 | ||
| // 41 | ||
| this.curValue = initialValue; // 42 | ||
| this.equalsFunc = equalsFunc; // 43 | ||
| this.dep = new Tracker.Dependency; // 44 | ||
| }; // 45 | ||
| // 46 | ||
| ReactiveVar._isEqual = function (oldValue, newValue) { // 47 | ||
| var a = oldValue, b = newValue; // 48 | ||
| // Two values are "equal" here if they are `===` and are // 49 | ||
| // number, boolean, string, undefined, or null. // 50 | ||
| if (a !== b) // 51 | ||
| return false; // 52 | ||
| else // 53 | ||
| return ((!a) || (typeof a === 'number') || (typeof a === 'boolean') || // 54 | ||
| (typeof a === 'string')); // 55 | ||
| }; // 56 | ||
| // 57 | ||
| /** // 58 | ||
| * @summary Returns the current value of the ReactiveVar, establishing a reactive dependency. // 59 | ||
| * @locus Client // 60 | ||
| */ // 61 | ||
| ReactiveVar.prototype.get = function () { // 62 | ||
| if (Tracker.active) // 63 | ||
| this.dep.depend(); // 64 | ||
| // 65 | ||
| return this.curValue; // 66 | ||
| }; // 67 | ||
| // 68 | ||
| /** // 69 | ||
| * @summary Sets the current value of the ReactiveVar, invalidating the Computations that called `get` if `newValue` is different from the old value. | ||
| * @locus Client // 71 | ||
| * @param {Any} newValue // 72 | ||
| */ // 73 | ||
| ReactiveVar.prototype.set = function (newValue) { // 74 | ||
| var oldValue = this.curValue; // 75 | ||
| // 76 | ||
| if ((this.equalsFunc || ReactiveVar._isEqual)(oldValue, newValue)) // 77 | ||
| // value is same as last time // 78 | ||
| return; // 79 | ||
| // 80 | ||
| this.curValue = newValue; // 81 | ||
| this.dep.changed(); // 82 | ||
| }; // 83 | ||
| // 84 | ||
| ReactiveVar.prototype.toString = function () { // 85 | ||
| return 'ReactiveVar{' + this.get() + '}'; // 86 | ||
| }; // 87 | ||
| // 88 | ||
| ReactiveVar.prototype._numListeners = function() { // 89 | ||
| // Tests want to know. // 90 | ||
| // Accesses a private field of Tracker.Dependency. // 91 | ||
| var count = 0; // 92 | ||
| for (var id in this.dep._dependentsById) // 93 | ||
| count++; // 94 | ||
| return count; // 95 | ||
| }; // 96 | ||
| // 97 | ||
| ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
|
|
||
| }).call(this); | ||
|
|
||
|
|
||
| /* Exports */ | ||
| if (typeof Package === 'undefined') Package = {}; | ||
| Package['reactive-var'] = { | ||
| ReactiveVar: ReactiveVar | ||
| }; | ||
|
|
||
| })(); |
| @@ -0,0 +1,105 @@ | ||
| ////////////////////////////////////////////////////////////////////////// | ||
| // // | ||
| // This is a generated file. You can view the original // | ||
| // source in your browser if your browser supports source maps. // | ||
| // Source maps are supported by all recent versions of Chrome, Safari, // | ||
| // and Firefox, and by Internet Explorer 11. // | ||
| // // | ||
| ////////////////////////////////////////////////////////////////////////// | ||
|
|
||
|
|
||
| (function () { | ||
|
|
||
| /* Imports */ | ||
| var Meteor = Package.meteor.Meteor; | ||
| var _ = Package.underscore._; | ||
| var Random = Package.random.Random; | ||
|
|
||
| /* Package-scope variables */ | ||
| var Retry; | ||
|
|
||
| (function(){ | ||
|
|
||
| ///////////////////////////////////////////////////////////////////////////// | ||
| // // | ||
| // packages/retry/retry.js // | ||
| // // | ||
| ///////////////////////////////////////////////////////////////////////////// | ||
| // | ||
| // Retry logic with an exponential backoff. // 1 | ||
| // // 2 | ||
| // options: // 3 | ||
| // baseTimeout: time for initial reconnect attempt (ms). // 4 | ||
| // exponent: exponential factor to increase timeout each attempt. // 5 | ||
| // maxTimeout: maximum time between retries (ms). // 6 | ||
| // minCount: how many times to reconnect "instantly". // 7 | ||
| // minTimeout: time to wait for the first `minCount` retries (ms). // 8 | ||
| // fuzz: factor to randomize retry times by (to avoid retry storms). // 9 | ||
| // 10 | ||
| Retry = function (options) { // 11 | ||
| var self = this; // 12 | ||
| _.extend(self, _.defaults(_.clone(options || {}), { // 13 | ||
| baseTimeout: 1000, // 1 second // 14 | ||
| exponent: 2.2, // 15 | ||
| // The default is high-ish to ensure a server can recover from a // 16 | ||
| // failure caused by load. // 17 | ||
| maxTimeout: 5 * 60000, // 5 minutes // 18 | ||
| minTimeout: 10, // 19 | ||
| minCount: 2, // 20 | ||
| fuzz: 0.5 // +- 25% // 21 | ||
| })); // 22 | ||
| self.retryTimer = null; // 23 | ||
| }; // 24 | ||
| // 25 | ||
| _.extend(Retry.prototype, { // 26 | ||
| // 27 | ||
| // Reset a pending retry, if any. // 28 | ||
| clear: function () { // 29 | ||
| var self = this; // 30 | ||
| if (self.retryTimer) // 31 | ||
| clearTimeout(self.retryTimer); // 32 | ||
| self.retryTimer = null; // 33 | ||
| }, // 34 | ||
| // 35 | ||
| // Calculate how long to wait in milliseconds to retry, based on the // 36 | ||
| // `count` of which retry this is. // 37 | ||
| _timeout: function (count) { // 38 | ||
| var self = this; // 39 | ||
| // 40 | ||
| if (count < self.minCount) // 41 | ||
| return self.minTimeout; // 42 | ||
| // 43 | ||
| var timeout = Math.min( // 44 | ||
| self.maxTimeout, // 45 | ||
| self.baseTimeout * Math.pow(self.exponent, count)); // 46 | ||
| // fuzz the timeout randomly, to avoid reconnect storms when a // 47 | ||
| // server goes down. // 48 | ||
| timeout = timeout * ((Random.fraction() * self.fuzz) + // 49 | ||
| (1 - self.fuzz/2)); // 50 | ||
| return timeout; // 51 | ||
| }, // 52 | ||
| // 53 | ||
| // Call `fn` after a delay, based on the `count` of which retry this is. | ||
| retryLater: function (count, fn) { // 55 | ||
| var self = this; // 56 | ||
| var timeout = self._timeout(count); // 57 | ||
| if (self.retryTimer) // 58 | ||
| clearTimeout(self.retryTimer); // 59 | ||
| self.retryTimer = Meteor.setTimeout(fn, timeout); // 60 | ||
| return timeout; // 61 | ||
| } // 62 | ||
| // 63 | ||
| }); // 64 | ||
| // 65 | ||
| ///////////////////////////////////////////////////////////////////////////// | ||
|
|
||
| }).call(this); | ||
|
|
||
|
|
||
| /* Exports */ | ||
| if (typeof Package === 'undefined') Package = {}; | ||
| Package.retry = { | ||
| Retry: Retry | ||
| }; | ||
|
|
||
| })(); |
| @@ -0,0 +1,73 @@ | ||
| ////////////////////////////////////////////////////////////////////////// | ||
| // // | ||
| // This is a generated file. You can view the original // | ||
| // source in your browser if your browser supports source maps. // | ||
| // Source maps are supported by all recent versions of Chrome, Safari, // | ||
| // and Firefox, and by Internet Explorer 11. // | ||
| // // | ||
| ////////////////////////////////////////////////////////////////////////// | ||
|
|
||
|
|
||
| (function () { | ||
|
|
||
| /* Imports */ | ||
| var Meteor = Package.meteor.Meteor; | ||
| var Accounts = Package['accounts-base'].Accounts; | ||
| var AccountsClient = Package['accounts-base'].AccountsClient; | ||
| var Mongo = Package.mongo.Mongo; | ||
|
|
||
| /* Package-scope variables */ | ||
| var ServiceConfiguration; | ||
|
|
||
| (function(){ | ||
|
|
||
| //////////////////////////////////////////////////////////////////////////////////////// | ||
| // // | ||
| // packages/service-configuration/service_configuration_common.js // | ||
| // // | ||
| //////////////////////////////////////////////////////////////////////////////////////// | ||
| // | ||
| if (typeof ServiceConfiguration === 'undefined') { // 1 | ||
| ServiceConfiguration = {}; // 2 | ||
| } // 3 | ||
| // 4 | ||
| // 5 | ||
| // Table containing documents with configuration options for each // 6 | ||
| // login service // 7 | ||
| ServiceConfiguration.configurations = new Mongo.Collection( // 8 | ||
| "meteor_accounts_loginServiceConfiguration", { // 9 | ||
| _preventAutopublish: true, // 10 | ||
| connection: Meteor.isClient ? Accounts.connection : Meteor.connection // 11 | ||
| }); // 12 | ||
| // Leave this collection open in insecure mode. In theory, someone could // 13 | ||
| // hijack your oauth connect requests to a different endpoint or appId, // 14 | ||
| // but you did ask for 'insecure'. The advantage is that it is much // 15 | ||
| // easier to write a configuration wizard that works only in insecure // 16 | ||
| // mode. // 17 | ||
| // 18 | ||
| // 19 | ||
| // Thrown when trying to use a login service which is not configured // 20 | ||
| ServiceConfiguration.ConfigError = function (serviceName) { // 21 | ||
| if (Meteor.isClient && !Accounts.loginServicesConfigured()) { // 22 | ||
| this.message = "Login service configuration not yet loaded"; // 23 | ||
| } else if (serviceName) { // 24 | ||
| this.message = "Service " + serviceName + " not configured"; // 25 | ||
| } else { // 26 | ||
| this.message = "Service not configured"; // 27 | ||
| } // 28 | ||
| }; // 29 | ||
| ServiceConfiguration.ConfigError.prototype = new Error(); // 30 | ||
| ServiceConfiguration.ConfigError.prototype.name = 'ServiceConfiguration.ConfigError'; | ||
| // 32 | ||
| //////////////////////////////////////////////////////////////////////////////////////// | ||
|
|
||
| }).call(this); | ||
|
|
||
|
|
||
| /* Exports */ | ||
| if (typeof Package === 'undefined') Package = {}; | ||
| Package['service-configuration'] = { | ||
| ServiceConfiguration: ServiceConfiguration | ||
| }; | ||
|
|
||
| })(); |
| @@ -0,0 +1,93 @@ | ||
| ////////////////////////////////////////////////////////////////////////// | ||
| // // | ||
| // This is a generated file. You can view the original // | ||
| // source in your browser if your browser supports source maps. // | ||
| // Source maps are supported by all recent versions of Chrome, Safari, // | ||
| // and Firefox, and by Internet Explorer 11. // | ||
| // // | ||
| ////////////////////////////////////////////////////////////////////////// | ||
|
|
||
|
|
||
| (function () { | ||
|
|
||
| /* Imports */ | ||
| var Meteor = Package.meteor.Meteor; | ||
| var _ = Package.underscore._; | ||
| var ReactiveDict = Package['reactive-dict'].ReactiveDict; | ||
| var EJSON = Package.ejson.EJSON; | ||
|
|
||
| /* Package-scope variables */ | ||
| var Session; | ||
|
|
||
| (function(){ | ||
|
|
||
| ///////////////////////////////////////////////////////////////////////////////// | ||
| // // | ||
| // packages/session/session.js // | ||
| // // | ||
| ///////////////////////////////////////////////////////////////////////////////// | ||
| // | ||
| Session = new ReactiveDict('session'); // 1 | ||
| // 2 | ||
| // Documentation here is really awkward because the methods are defined // 3 | ||
| // elsewhere // 4 | ||
| // 5 | ||
| /** // 6 | ||
| * @memberOf Session // 7 | ||
| * @method set // 8 | ||
| * @summary Set a variable in the session. Notify any listeners that the value | ||
| * has changed (eg: redraw templates, and rerun any // 10 | ||
| * [`Tracker.autorun`](#tracker_autorun) computations, that called // 11 | ||
| * [`Session.get`](#session_get) on this `key`.) // 12 | ||
| * @locus Client // 13 | ||
| * @param {String} key The key to set, eg, `selectedItem` // 14 | ||
| * @param {EJSONable | undefined} value The new value for `key` // 15 | ||
| */ // 16 | ||
| // 17 | ||
| /** // 18 | ||
| * @memberOf Session // 19 | ||
| * @method setDefault // 20 | ||
| * @summary Set a variable in the session if it hasn't been set before. // 21 | ||
| * Otherwise works exactly the same as [`Session.set`](#session_set). // 22 | ||
| * @locus Client // 23 | ||
| * @param {String} key The key to set, eg, `selectedItem` // 24 | ||
| * @param {EJSONable | undefined} value The new value for `key` // 25 | ||
| */ // 26 | ||
| // 27 | ||
| /** // 28 | ||
| * @memberOf Session // 29 | ||
| * @method get // 30 | ||
| * @summary Get the value of a session variable. If inside a [reactive // 31 | ||
| * computation](#reactivity), invalidate the computation the next time the // 32 | ||
| * value of the variable is changed by [`Session.set`](#session_set). This // 33 | ||
| * returns a clone of the session value, so if it's an object or an array, // 34 | ||
| * mutating the returned value has no effect on the value stored in the // 35 | ||
| * session. // 36 | ||
| * @locus Client // 37 | ||
| * @param {String} key The name of the session variable to return // 38 | ||
| */ // 39 | ||
| // 40 | ||
| /** // 41 | ||
| * @memberOf Session // 42 | ||
| * @method equals // 43 | ||
| * @summary Test if a session variable is equal to a value. If inside a // 44 | ||
| * [reactive computation](#reactivity), invalidate the computation the next // 45 | ||
| * time the variable changes to or from the value. // 46 | ||
| * @locus Client // 47 | ||
| * @param {String} key The name of the session variable to test // 48 | ||
| * @param {String | Number | Boolean | null | undefined} value The value to // 49 | ||
| * test against // 50 | ||
| */ // 51 | ||
| // 52 | ||
| ///////////////////////////////////////////////////////////////////////////////// | ||
|
|
||
| }).call(this); | ||
|
|
||
|
|
||
| /* Exports */ | ||
| if (typeof Package === 'undefined') Package = {}; | ||
| Package.session = { | ||
| Session: Session | ||
| }; | ||
|
|
||
| })(); |