EinheitenAdderTests + TourTests + New Doc
This commit is contained in:
		
							
								
								
									
										20
									
								
								node_modules/immediate/LICENSE.txt
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								node_modules/immediate/LICENSE.txt
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
Copyright (c) 2012 Barnesandnoble.com, llc, Donavon West, Domenic Denicola, Brian Cavalier
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining
 | 
			
		||||
a copy of this software and associated documentation files (the
 | 
			
		||||
"Software"), to deal in the Software without restriction, including
 | 
			
		||||
without limitation the rights to use, copy, modify, merge, publish,
 | 
			
		||||
distribute, sublicense, and/or sell copies of the Software, and to
 | 
			
		||||
permit persons to whom the Software is furnished to do so, subject to
 | 
			
		||||
the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be
 | 
			
		||||
included in all copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 | 
			
		||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 | 
			
		||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 | 
			
		||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 | 
			
		||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 | 
			
		||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 | 
			
		||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
							
								
								
									
										93
									
								
								node_modules/immediate/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								node_modules/immediate/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,93 @@
 | 
			
		||||
# immediate [](https://travis-ci.org/calvinmetcalf/immediate)
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
npm install immediate --save
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
then
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
var immediate = require("immediate");
 | 
			
		||||
 | 
			
		||||
immediate(function () {
 | 
			
		||||
  // this will run soon
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
immediate(function (arg1, arg2) {
 | 
			
		||||
  // get your args like in iojs
 | 
			
		||||
}, thing1, thing2);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Introduction
 | 
			
		||||
 | 
			
		||||
**immediate** is a microtask library, decended from [NobleJS's setImmediate](https://github.com/NobleJS/setImmediate), but including ideas from [Cujo's When](https://github.com/cujojs/when) and [RSVP][RSVP].
 | 
			
		||||
 | 
			
		||||
immediate takes the tricks from setImmedate and RSVP and combines them with the schedualer inspired (vaugly) by whens.
 | 
			
		||||
 | 
			
		||||
Note versions 2.6.5 and earlier were strictly speaking a 'macrotask' library not a microtask one, [see this for the difference](https://github.com/YuzuJS/setImmediate#macrotasks-and-microtasks), if you need a macrotask library, [I got you covered](https://github.com/calvinmetcalf/macrotask).
 | 
			
		||||
 | 
			
		||||
Several new features were added in versions 3.1.0 and 3.2.0 to maintain parity with
 | 
			
		||||
process.nextTick, but the 3.0.x series is still being kept up to date if you just need
 | 
			
		||||
the small barebones version.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## The Tricks
 | 
			
		||||
 | 
			
		||||
### `process.nextTick`
 | 
			
		||||
 | 
			
		||||
Note that we check for *actual* Node.js environments, not emulated ones like those produced by browserify or similar.
 | 
			
		||||
 | 
			
		||||
### `MutationObserver`
 | 
			
		||||
 | 
			
		||||
This is what [RSVP][RSVP] uses, it's very fast, details on [MDN](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### `MessageChannel`
 | 
			
		||||
 | 
			
		||||
Unfortunately, `postMessage` has completely different semantics inside web workers, and so cannot be used there. So we
 | 
			
		||||
turn to [`MessageChannel`][MessageChannel], which has worse browser support, but does work inside a web worker.
 | 
			
		||||
 | 
			
		||||
### `<script> onreadystatechange`
 | 
			
		||||
 | 
			
		||||
For our last trick, we pull something out to make things fast in Internet Explorer versions 6 through 8: namely,
 | 
			
		||||
creating a `<script>` element and firing our calls in its `onreadystatechange` event. This does execute in a future
 | 
			
		||||
turn of the event loop, and is also faster than `setTimeout(…, 0)`, so hey, why not?
 | 
			
		||||
 | 
			
		||||
## Tricks we don't use
 | 
			
		||||
 | 
			
		||||
### `setImmediate`
 | 
			
		||||
We avoid this process.nextTick in node is better suited to our needs and in Internet Explorer 10 there is a broken version of setImmediate we avoid using this.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
In Node.js, do
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
npm install immediate
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
then
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
var immediate = require("immediate");
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Reference and Reading
 | 
			
		||||
 | 
			
		||||
 * [Efficient Script Yielding W3C Editor's Draft][spec]
 | 
			
		||||
 * [W3C mailing list post introducing the specification][list-post]
 | 
			
		||||
 * [IE Test Drive demo][ie-demo]
 | 
			
		||||
 * [Introductory blog post by Nicholas C. Zakas][ncz]
 | 
			
		||||
 * I wrote a couple blog pots on this, [part 1][my-blog-1] and [part 2][my-blog-2]
 | 
			
		||||
 | 
			
		||||
[RSVP]: https://github.com/tildeio/rsvp.js
 | 
			
		||||
[spec]: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/setImmediate/Overview.html
 | 
			
		||||
[list-post]: http://lists.w3.org/Archives/Public/public-web-perf/2011Jun/0100.html
 | 
			
		||||
[ie-demo]: http://ie.microsoft.com/testdrive/Performance/setImmediateSorting/Default.html
 | 
			
		||||
[ncz]: http://www.nczonline.net/blog/2011/09/19/script-yielding-with-setimmediate/
 | 
			
		||||
[nextTick]: http://nodejs.org/docs/v0.8.16/api/process.html#process_process_nexttick_callback
 | 
			
		||||
[postMessage]: http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#posting-messages
 | 
			
		||||
[MessageChannel]: http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#channel-messaging
 | 
			
		||||
[cross-browser-demo]: http://calvinmetcalf.github.io/setImmediate-shim-demo
 | 
			
		||||
[my-blog-1]:http://calvinmetcalf.com/post/61672207151/setimmediate-etc
 | 
			
		||||
[my-blog-2]:http://calvinmetcalf.com/post/61761231881/javascript-schedulers
 | 
			
		||||
							
								
								
									
										75
									
								
								node_modules/immediate/dist/immediate.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								node_modules/immediate/dist/immediate.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,75 @@
 | 
			
		||||
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.immediate = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
 | 
			
		||||
(function (global){
 | 
			
		||||
'use strict';
 | 
			
		||||
var Mutation = global.MutationObserver || global.WebKitMutationObserver;
 | 
			
		||||
 | 
			
		||||
var scheduleDrain;
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  if (Mutation) {
 | 
			
		||||
    var called = 0;
 | 
			
		||||
    var observer = new Mutation(nextTick);
 | 
			
		||||
    var element = global.document.createTextNode('');
 | 
			
		||||
    observer.observe(element, {
 | 
			
		||||
      characterData: true
 | 
			
		||||
    });
 | 
			
		||||
    scheduleDrain = function () {
 | 
			
		||||
      element.data = (called = ++called % 2);
 | 
			
		||||
    };
 | 
			
		||||
  } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {
 | 
			
		||||
    var channel = new global.MessageChannel();
 | 
			
		||||
    channel.port1.onmessage = nextTick;
 | 
			
		||||
    scheduleDrain = function () {
 | 
			
		||||
      channel.port2.postMessage(0);
 | 
			
		||||
    };
 | 
			
		||||
  } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {
 | 
			
		||||
    scheduleDrain = function () {
 | 
			
		||||
 | 
			
		||||
      // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
 | 
			
		||||
      // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
 | 
			
		||||
      var scriptEl = global.document.createElement('script');
 | 
			
		||||
      scriptEl.onreadystatechange = function () {
 | 
			
		||||
        nextTick();
 | 
			
		||||
 | 
			
		||||
        scriptEl.onreadystatechange = null;
 | 
			
		||||
        scriptEl.parentNode.removeChild(scriptEl);
 | 
			
		||||
        scriptEl = null;
 | 
			
		||||
      };
 | 
			
		||||
      global.document.documentElement.appendChild(scriptEl);
 | 
			
		||||
    };
 | 
			
		||||
  } else {
 | 
			
		||||
    scheduleDrain = function () {
 | 
			
		||||
      setTimeout(nextTick, 0);
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var draining;
 | 
			
		||||
var queue = [];
 | 
			
		||||
//named nextTick for less confusing stack traces
 | 
			
		||||
function nextTick() {
 | 
			
		||||
  draining = true;
 | 
			
		||||
  var i, oldQueue;
 | 
			
		||||
  var len = queue.length;
 | 
			
		||||
  while (len) {
 | 
			
		||||
    oldQueue = queue;
 | 
			
		||||
    queue = [];
 | 
			
		||||
    i = -1;
 | 
			
		||||
    while (++i < len) {
 | 
			
		||||
      oldQueue[i]();
 | 
			
		||||
    }
 | 
			
		||||
    len = queue.length;
 | 
			
		||||
  }
 | 
			
		||||
  draining = false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = immediate;
 | 
			
		||||
function immediate(task) {
 | 
			
		||||
  if (queue.push(task) === 1 && !draining) {
 | 
			
		||||
    scheduleDrain();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
 | 
			
		||||
},{}]},{},[1])(1)
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/immediate/dist/immediate.min.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/immediate/dist/immediate.min.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n;n="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,n.immediate=e()}}(function(){return function e(n,t,o){function r(f,u){if(!t[f]){if(!n[f]){var a="function"==typeof require&&require;if(!u&&a)return a(f,!0);if(i)return i(f,!0);var d=new Error("Cannot find module '"+f+"'");throw d.code="MODULE_NOT_FOUND",d}var s=t[f]={exports:{}};n[f][0].call(s.exports,function(e){var t=n[f][1][e];return r(t?t:e)},s,s.exports,e,n,t,o)}return t[f].exports}for(var i="function"==typeof require&&require,f=0;f<o.length;f++)r(o[f]);return r}({1:[function(e,n,t){(function(e){"use strict";function t(){s=!0;for(var e,n,t=c.length;t;){for(n=c,c=[],e=-1;++e<t;)n[e]();t=c.length}s=!1}function o(e){1!==c.push(e)||s||r()}var r,i=e.MutationObserver||e.WebKitMutationObserver;if(i){var f=0,u=new i(t),a=e.document.createTextNode("");u.observe(a,{characterData:!0}),r=function(){a.data=f=++f%2}}else if(e.setImmediate||"undefined"==typeof e.MessageChannel)r="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var n=e.document.createElement("script");n.onreadystatechange=function(){t(),n.onreadystatechange=null,n.parentNode.removeChild(n),n=null},e.document.documentElement.appendChild(n)}:function(){setTimeout(t,0)};else{var d=new e.MessageChannel;d.port1.onmessage=t,r=function(){d.port2.postMessage(0)}}var s,c=[];n.exports=o}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)});
 | 
			
		||||
							
								
								
									
										69
									
								
								node_modules/immediate/lib/browser.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								node_modules/immediate/lib/browser.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,69 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
var Mutation = global.MutationObserver || global.WebKitMutationObserver;
 | 
			
		||||
 | 
			
		||||
var scheduleDrain;
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  if (Mutation) {
 | 
			
		||||
    var called = 0;
 | 
			
		||||
    var observer = new Mutation(nextTick);
 | 
			
		||||
    var element = global.document.createTextNode('');
 | 
			
		||||
    observer.observe(element, {
 | 
			
		||||
      characterData: true
 | 
			
		||||
    });
 | 
			
		||||
    scheduleDrain = function () {
 | 
			
		||||
      element.data = (called = ++called % 2);
 | 
			
		||||
    };
 | 
			
		||||
  } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {
 | 
			
		||||
    var channel = new global.MessageChannel();
 | 
			
		||||
    channel.port1.onmessage = nextTick;
 | 
			
		||||
    scheduleDrain = function () {
 | 
			
		||||
      channel.port2.postMessage(0);
 | 
			
		||||
    };
 | 
			
		||||
  } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {
 | 
			
		||||
    scheduleDrain = function () {
 | 
			
		||||
 | 
			
		||||
      // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
 | 
			
		||||
      // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
 | 
			
		||||
      var scriptEl = global.document.createElement('script');
 | 
			
		||||
      scriptEl.onreadystatechange = function () {
 | 
			
		||||
        nextTick();
 | 
			
		||||
 | 
			
		||||
        scriptEl.onreadystatechange = null;
 | 
			
		||||
        scriptEl.parentNode.removeChild(scriptEl);
 | 
			
		||||
        scriptEl = null;
 | 
			
		||||
      };
 | 
			
		||||
      global.document.documentElement.appendChild(scriptEl);
 | 
			
		||||
    };
 | 
			
		||||
  } else {
 | 
			
		||||
    scheduleDrain = function () {
 | 
			
		||||
      setTimeout(nextTick, 0);
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var draining;
 | 
			
		||||
var queue = [];
 | 
			
		||||
//named nextTick for less confusing stack traces
 | 
			
		||||
function nextTick() {
 | 
			
		||||
  draining = true;
 | 
			
		||||
  var i, oldQueue;
 | 
			
		||||
  var len = queue.length;
 | 
			
		||||
  while (len) {
 | 
			
		||||
    oldQueue = queue;
 | 
			
		||||
    queue = [];
 | 
			
		||||
    i = -1;
 | 
			
		||||
    while (++i < len) {
 | 
			
		||||
      oldQueue[i]();
 | 
			
		||||
    }
 | 
			
		||||
    len = queue.length;
 | 
			
		||||
  }
 | 
			
		||||
  draining = false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = immediate;
 | 
			
		||||
function immediate(task) {
 | 
			
		||||
  if (queue.push(task) === 1 && !draining) {
 | 
			
		||||
    scheduleDrain();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										73
									
								
								node_modules/immediate/lib/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								node_modules/immediate/lib/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,73 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
var Mutation = global.MutationObserver || global.WebKitMutationObserver;
 | 
			
		||||
 | 
			
		||||
var scheduleDrain;
 | 
			
		||||
 | 
			
		||||
if (process.browser) {
 | 
			
		||||
  if (Mutation) {
 | 
			
		||||
    var called = 0;
 | 
			
		||||
    var observer = new Mutation(nextTick);
 | 
			
		||||
    var element = global.document.createTextNode('');
 | 
			
		||||
    observer.observe(element, {
 | 
			
		||||
      characterData: true
 | 
			
		||||
    });
 | 
			
		||||
    scheduleDrain = function () {
 | 
			
		||||
      element.data = (called = ++called % 2);
 | 
			
		||||
    };
 | 
			
		||||
  } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {
 | 
			
		||||
    var channel = new global.MessageChannel();
 | 
			
		||||
    channel.port1.onmessage = nextTick;
 | 
			
		||||
    scheduleDrain = function () {
 | 
			
		||||
      channel.port2.postMessage(0);
 | 
			
		||||
    };
 | 
			
		||||
  } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {
 | 
			
		||||
    scheduleDrain = function () {
 | 
			
		||||
 | 
			
		||||
      // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
 | 
			
		||||
      // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
 | 
			
		||||
      var scriptEl = global.document.createElement('script');
 | 
			
		||||
      scriptEl.onreadystatechange = function () {
 | 
			
		||||
        nextTick();
 | 
			
		||||
 | 
			
		||||
        scriptEl.onreadystatechange = null;
 | 
			
		||||
        scriptEl.parentNode.removeChild(scriptEl);
 | 
			
		||||
        scriptEl = null;
 | 
			
		||||
      };
 | 
			
		||||
      global.document.documentElement.appendChild(scriptEl);
 | 
			
		||||
    };
 | 
			
		||||
  } else {
 | 
			
		||||
    scheduleDrain = function () {
 | 
			
		||||
      setTimeout(nextTick, 0);
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
} else {
 | 
			
		||||
  scheduleDrain = function () {
 | 
			
		||||
    process.nextTick(nextTick);
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var draining;
 | 
			
		||||
var queue = [];
 | 
			
		||||
//named nextTick for less confusing stack traces
 | 
			
		||||
function nextTick() {
 | 
			
		||||
  draining = true;
 | 
			
		||||
  var i, oldQueue;
 | 
			
		||||
  var len = queue.length;
 | 
			
		||||
  while (len) {
 | 
			
		||||
    oldQueue = queue;
 | 
			
		||||
    queue = [];
 | 
			
		||||
    i = -1;
 | 
			
		||||
    while (++i < len) {
 | 
			
		||||
      oldQueue[i]();
 | 
			
		||||
    }
 | 
			
		||||
    len = queue.length;
 | 
			
		||||
  }
 | 
			
		||||
  draining = false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = immediate;
 | 
			
		||||
function immediate(task) {
 | 
			
		||||
  if (queue.push(task) === 1 && !draining) {
 | 
			
		||||
    scheduleDrain();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										42
									
								
								node_modules/immediate/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								node_modules/immediate/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "immediate",
 | 
			
		||||
  "version": "3.0.6",
 | 
			
		||||
  "description": "A cross browser microtask library",
 | 
			
		||||
  "contributors": [
 | 
			
		||||
    "Domenic Denicola <domenic@domenicdenicola.com> (http://domenicdenicola.com)",
 | 
			
		||||
    "Donavon West <github@donavon.com> (http://donavon.com)",
 | 
			
		||||
    "Yaffle",
 | 
			
		||||
    "Calvin Metcalf <calvin.metcalf@gmail.com>"
 | 
			
		||||
  ],
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
    "url": "git://github.com/calvinmetcalf/immediate.git"
 | 
			
		||||
  },
 | 
			
		||||
  "files": [
 | 
			
		||||
    "lib",
 | 
			
		||||
    "dist"
 | 
			
		||||
  ],
 | 
			
		||||
  "bugs": "https://github.com/calvinmetcalf/immediate/issues",
 | 
			
		||||
  "main": "lib/index.js",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "build": "npm run build-node && npm run build-js && npm run uglify",
 | 
			
		||||
    "build-node": "browserify-transform-cli inline-process-browser unreachable-branch-transform < ./lib/index.js > ./lib/browser.js",
 | 
			
		||||
    "uglify": "uglifyjs dist/immediate.js -mc > dist/immediate.min.js",
 | 
			
		||||
    "build-js": "browserify -s immediate ./lib/browser.js | derequire > dist/immediate.js",
 | 
			
		||||
    "test": "jshint lib/*.js && node test/tests.js"
 | 
			
		||||
  },
 | 
			
		||||
  "browser": {
 | 
			
		||||
    "./lib/index.js": "./lib/browser.js"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "browserify": "^13.0.0",
 | 
			
		||||
    "browserify-transform-cli": "^1.1.1",
 | 
			
		||||
    "derequire": "^2.0.0",
 | 
			
		||||
    "inline-process-browser": "^2.0.0",
 | 
			
		||||
    "jshint": "^2.5.1",
 | 
			
		||||
    "tape": "^4.0.0",
 | 
			
		||||
    "uglify-js": "^2.4.13",
 | 
			
		||||
    "unreachable-branch-transform": "^0.5.1"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user