first commit
This commit is contained in:
2
build/node_modules/timers-browserify/.npmignore
generated
vendored
Normal file
2
build/node_modules/timers-browserify/.npmignore
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
.DS_Store
|
||||
/node_modules
|
||||
58
build/node_modules/timers-browserify/CHANGELOG.md
generated
vendored
Normal file
58
build/node_modules/timers-browserify/CHANGELOG.md
generated
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
# Change Log
|
||||
All notable changes to this project will be documented in this file.
|
||||
This project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
## 1.4.0 - 2015-02-23
|
||||
|
||||
### Added
|
||||
* Link to `timers-browserify-full`, which offers a larger, but much more exact,
|
||||
version of Node's `timers` library
|
||||
|
||||
### Changed
|
||||
* `setTimeout` and `setInterval` return objects with the same API as the Node
|
||||
implementation, instead of just IDs
|
||||
|
||||
### Fixed
|
||||
* `active` implementation actually has an effect, as in Node
|
||||
* Replaced usages of `apply` that break in IE 8
|
||||
|
||||
## 1.3.0 - 2015-02-04
|
||||
|
||||
### Changed
|
||||
* Prefer native versions of `setImmediate` and `clearImmediate` if they exist
|
||||
|
||||
## 1.2.0 - 2015-01-02
|
||||
|
||||
### Changed
|
||||
* Update `process` dependency
|
||||
|
||||
## 1.1.0 - 2014-08-26
|
||||
|
||||
### Added
|
||||
* `clearImmediate` available to undo `setImmediate`
|
||||
|
||||
## 1.0.3 - 2014-06-30
|
||||
|
||||
### Fixed
|
||||
* Resume returning opaque IDs from `setTimeout` and `setInterval`
|
||||
|
||||
## 1.0.2 - 2014-06-30
|
||||
|
||||
### Fixed
|
||||
* Pass `window` explicitly to `setTimeout` and others to resolve an error in
|
||||
Chrome
|
||||
|
||||
## 1.0.1 - 2013-12-28
|
||||
|
||||
### Changed
|
||||
* Replaced `setimmediate` dependency with `process` for the `nextTick` shim
|
||||
|
||||
## 1.0.0 - 2013-12-10
|
||||
|
||||
### Added
|
||||
* Guard against undefined globals like `setTimeout` in some environments
|
||||
|
||||
## 0.0.0 - 2012-05-30
|
||||
|
||||
### Added
|
||||
* Basic functionality for initial release
|
||||
46
build/node_modules/timers-browserify/LICENSE.md
generated
vendored
Normal file
46
build/node_modules/timers-browserify/LICENSE.md
generated
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
# timers-browserify
|
||||
|
||||
This project uses the [MIT](http://jryans.mit-license.org/) license:
|
||||
|
||||
Copyright © 2012 J. Ryan Stinnett <jryans@gmail.com>
|
||||
|
||||
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.
|
||||
|
||||
# lib/node
|
||||
|
||||
The `lib/node` directory borrows files from joyent/node which uses the following license:
|
||||
|
||||
Copyright Joyent, Inc. and other Node contributors. All rights reserved.
|
||||
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.
|
||||
40
build/node_modules/timers-browserify/README.md
generated
vendored
Normal file
40
build/node_modules/timers-browserify/README.md
generated
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
# Overview
|
||||
|
||||
Adds support for the `timers` module to browserify.
|
||||
|
||||
## Wait, isn't it already supported in the browser?
|
||||
|
||||
The public methods of the `timers` module are:
|
||||
|
||||
* `setTimeout(callback, delay, [arg], [...])`
|
||||
* `clearTimeout(timeoutId)`
|
||||
* `setInterval(callback, delay, [arg], [...])`
|
||||
* `clearInterval(intervalId)`
|
||||
|
||||
and indeed, browsers support these already.
|
||||
|
||||
## So, why does this exist?
|
||||
|
||||
The `timers` module also includes some private methods used in other built-in
|
||||
Node.js modules:
|
||||
|
||||
* `enroll(item, delay)`
|
||||
* `unenroll(item)`
|
||||
* `active(item)`
|
||||
|
||||
These are used to efficiently support a large quantity of timers with the same
|
||||
timeouts by creating only a few timers under the covers.
|
||||
|
||||
Node.js also offers the `immediate` APIs, which aren't yet available cross-browser, so we polyfill those:
|
||||
|
||||
* `setImmediate(callback, [arg], [...])`
|
||||
* `clearImmediate(immediateId)`
|
||||
|
||||
## I need lots of timers and want to use linked list timers as Node.js does.
|
||||
|
||||
Linked lists are efficient when you have thousands (millions?) of timers with the same delay.
|
||||
Take a look at [timers-browserify-full](https://www.npmjs.com/package/timers-browserify-full) in this case.
|
||||
|
||||
# License
|
||||
|
||||
[MIT](http://jryans.mit-license.org/)
|
||||
3
build/node_modules/timers-browserify/example/enroll/build.sh
generated
vendored
Executable file
3
build/node_modules/timers-browserify/example/enroll/build.sh
generated
vendored
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
browserify --debug -o js/browserify.js js/main.js
|
||||
8
build/node_modules/timers-browserify/example/enroll/index.html
generated
vendored
Normal file
8
build/node_modules/timers-browserify/example/enroll/index.html
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="text/javascript" src="/js/browserify.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
233
build/node_modules/timers-browserify/example/enroll/js/browserify.js
generated
vendored
Normal file
233
build/node_modules/timers-browserify/example/enroll/js/browserify.js
generated
vendored
Normal file
@@ -0,0 +1,233 @@
|
||||
var require = function (file, cwd) {
|
||||
var resolved = require.resolve(file, cwd || '/');
|
||||
var mod = require.modules[resolved];
|
||||
if (!mod) throw new Error(
|
||||
'Failed to resolve module ' + file + ', tried ' + resolved
|
||||
);
|
||||
var res = mod._cached ? mod._cached : mod();
|
||||
return res;
|
||||
}
|
||||
|
||||
require.paths = [];
|
||||
require.modules = {};
|
||||
require.extensions = [".js",".coffee"];
|
||||
|
||||
require._core = {
|
||||
'assert': true,
|
||||
'events': true,
|
||||
'fs': true,
|
||||
'path': true,
|
||||
'vm': true
|
||||
};
|
||||
|
||||
require.resolve = (function () {
|
||||
return function (x, cwd) {
|
||||
if (!cwd) cwd = '/';
|
||||
|
||||
if (require._core[x]) return x;
|
||||
var path = require.modules.path();
|
||||
cwd = path.resolve('/', cwd);
|
||||
var y = cwd || '/';
|
||||
|
||||
if (x.match(/^(?:\.\.?\/|\/)/)) {
|
||||
var m = loadAsFileSync(path.resolve(y, x))
|
||||
|| loadAsDirectorySync(path.resolve(y, x));
|
||||
if (m) return m;
|
||||
}
|
||||
|
||||
var n = loadNodeModulesSync(x, y);
|
||||
if (n) return n;
|
||||
|
||||
throw new Error("Cannot find module '" + x + "'");
|
||||
|
||||
function loadAsFileSync (x) {
|
||||
if (require.modules[x]) {
|
||||
return x;
|
||||
}
|
||||
|
||||
for (var i = 0; i < require.extensions.length; i++) {
|
||||
var ext = require.extensions[i];
|
||||
if (require.modules[x + ext]) return x + ext;
|
||||
}
|
||||
}
|
||||
|
||||
function loadAsDirectorySync (x) {
|
||||
x = x.replace(/\/+$/, '');
|
||||
var pkgfile = x + '/package.json';
|
||||
if (require.modules[pkgfile]) {
|
||||
var pkg = require.modules[pkgfile]();
|
||||
var b = pkg.browserify;
|
||||
if (typeof b === 'object' && b.main) {
|
||||
var m = loadAsFileSync(path.resolve(x, b.main));
|
||||
if (m) return m;
|
||||
}
|
||||
else if (typeof b === 'string') {
|
||||
var m = loadAsFileSync(path.resolve(x, b));
|
||||
if (m) return m;
|
||||
}
|
||||
else if (pkg.main) {
|
||||
var m = loadAsFileSync(path.resolve(x, pkg.main));
|
||||
if (m) return m;
|
||||
}
|
||||
}
|
||||
|
||||
return loadAsFileSync(x + '/index');
|
||||
}
|
||||
|
||||
function loadNodeModulesSync (x, start) {
|
||||
var dirs = nodeModulesPathsSync(start);
|
||||
for (var i = 0; i < dirs.length; i++) {
|
||||
var dir = dirs[i];
|
||||
var m = loadAsFileSync(dir + '/' + x);
|
||||
if (m) return m;
|
||||
var n = loadAsDirectorySync(dir + '/' + x);
|
||||
if (n) return n;
|
||||
}
|
||||
|
||||
var m = loadAsFileSync(x);
|
||||
if (m) return m;
|
||||
}
|
||||
|
||||
function nodeModulesPathsSync (start) {
|
||||
var parts;
|
||||
if (start === '/') parts = [ '' ];
|
||||
else parts = path.normalize(start).split('/');
|
||||
|
||||
var dirs = [];
|
||||
for (var i = parts.length - 1; i >= 0; i--) {
|
||||
if (parts[i] === 'node_modules') continue;
|
||||
var dir = parts.slice(0, i + 1).join('/') + '/node_modules';
|
||||
dirs.push(dir);
|
||||
}
|
||||
|
||||
return dirs;
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
||||
require.alias = function (from, to) {
|
||||
var path = require.modules.path();
|
||||
var res = null;
|
||||
try {
|
||||
res = require.resolve(from + '/package.json', '/');
|
||||
}
|
||||
catch (err) {
|
||||
res = require.resolve(from, '/');
|
||||
}
|
||||
var basedir = path.dirname(res);
|
||||
|
||||
var keys = (Object.keys || function (obj) {
|
||||
var res = [];
|
||||
for (var key in obj) res.push(key)
|
||||
return res;
|
||||
})(require.modules);
|
||||
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
var key = keys[i];
|
||||
if (key.slice(0, basedir.length + 1) === basedir + '/') {
|
||||
var f = key.slice(basedir.length);
|
||||
require.modules[to + f] = require.modules[basedir + f];
|
||||
}
|
||||
else if (key === basedir) {
|
||||
require.modules[to] = require.modules[basedir];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
require.define = function (filename, fn) {
|
||||
var dirname = require._core[filename]
|
||||
? ''
|
||||
: require.modules.path().dirname(filename)
|
||||
;
|
||||
|
||||
var require_ = function (file) {
|
||||
return require(file, dirname)
|
||||
};
|
||||
require_.resolve = function (name) {
|
||||
return require.resolve(name, dirname);
|
||||
};
|
||||
require_.modules = require.modules;
|
||||
require_.define = require.define;
|
||||
var module_ = { exports : {} };
|
||||
|
||||
require.modules[filename] = function () {
|
||||
require.modules[filename]._cached = module_.exports;
|
||||
fn.call(
|
||||
module_.exports,
|
||||
require_,
|
||||
module_,
|
||||
module_.exports,
|
||||
dirname,
|
||||
filename
|
||||
);
|
||||
require.modules[filename]._cached = module_.exports;
|
||||
return module_.exports;
|
||||
};
|
||||
};
|
||||
|
||||
if (typeof process === 'undefined') process = {};
|
||||
|
||||
if (!process.nextTick) process.nextTick = (function () {
|
||||
var queue = [];
|
||||
var canPost = typeof window !== 'undefined'
|
||||
&& window.postMessage && window.addEventListener
|
||||
;
|
||||
|
||||
if (canPost) {
|
||||
window.addEventListener('message', function (ev) {
|
||||
if (ev.source === window && ev.data === 'browserify-tick') {
|
||||
ev.stopPropagation();
|
||||
if (queue.length > 0) {
|
||||
var fn = queue.shift();
|
||||
fn();
|
||||
}
|
||||
}
|
||||
}, true);
|
||||
}
|
||||
|
||||
return function (fn) {
|
||||
if (canPost) {
|
||||
queue.push(fn);
|
||||
window.postMessage('browserify-tick', '*');
|
||||
}
|
||||
else setTimeout(fn, 0);
|
||||
};
|
||||
})();
|
||||
|
||||
if (!process.title) process.title = 'browser';
|
||||
|
||||
if (!process.binding) process.binding = function (name) {
|
||||
if (name === 'evals') return require('vm')
|
||||
else throw new Error('No such module')
|
||||
};
|
||||
|
||||
if (!process.cwd) process.cwd = function () { return '.' };
|
||||
|
||||
if (!process.env) process.env = {};
|
||||
if (!process.argv) process.argv = [];
|
||||
|
||||
require.define("path", Function(
|
||||
[ 'require', 'module', 'exports', '__dirname', '__filename' ],
|
||||
"function filter (xs, fn) {\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (fn(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length; i >= 0; i--) {\n var last = parts[i];\n if (last == '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// Regex to split a filename into [*, dir, basename, ext]\n// posix version\nvar splitPathRe = /^(.+\\/(?!$)|\\/)?((?:.+?)?(\\.[^.]*)?)$/;\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\nvar resolvedPath = '',\n resolvedAbsolute = false;\n\nfor (var i = arguments.length; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0)\n ? arguments[i]\n : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string' || !path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n}\n\n// At this point the path should be resolved to a full absolute path, but\n// handle relative paths to be safe (might happen when process.cwd() fails)\n\n// Normalize the path\nresolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\nvar isAbsolute = path.charAt(0) === '/',\n trailingSlash = path.slice(-1) === '/';\n\n// Normalize the path\npath = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n \n return (isAbsolute ? '/' : '') + path;\n};\n\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n return p && typeof p === 'string';\n }).join('/'));\n};\n\n\nexports.dirname = function(path) {\n var dir = splitPathRe.exec(path)[1] || '';\n var isWindows = false;\n if (!dir) {\n // No dirname\n return '.';\n } else if (dir.length === 1 ||\n (isWindows && dir.length <= 3 && dir.charAt(1) === ':')) {\n // It is just a slash or a drive letter with a slash\n return dir;\n } else {\n // It is a full dirname, strip trailing slash\n return dir.substring(0, dir.length - 1);\n }\n};\n\n\nexports.basename = function(path, ext) {\n var f = splitPathRe.exec(path)[2] || '';\n // TODO: make this comparison case-insensitive on windows?\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\n\nexports.extname = function(path) {\n return splitPathRe.exec(path)[3] || '';\n};\n\n//@ sourceURL=path"
|
||||
));
|
||||
|
||||
require.define("timers", Function(
|
||||
[ 'require', 'module', 'exports', '__dirname', '__filename' ],
|
||||
"module.exports = require(\"timers-browserify\")\n//@ sourceURL=timers"
|
||||
));
|
||||
|
||||
require.define("/node_modules/timers-browserify/package.json", Function(
|
||||
[ 'require', 'module', 'exports', '__dirname', '__filename' ],
|
||||
"module.exports = {\"main\":\"main.js\"}\n//@ sourceURL=/node_modules/timers-browserify/package.json"
|
||||
));
|
||||
|
||||
require.define("/node_modules/timers-browserify/main.js", Function(
|
||||
[ 'require', 'module', 'exports', '__dirname', '__filename' ],
|
||||
"// DOM APIs, for completeness\n\nexports.setTimeout = setTimeout;\nexports.clearTimeout = clearTimeout;\nexports.setInterval = setInterval;\nexports.clearInterval = clearInterval;\n\n// TODO: Change to more effiecient list approach used in Node.js\n// For now, we just implement the APIs using the primitives above.\n\nexports.enroll = function(item, delay) {\n item._timeoutID = setTimeout(item._onTimeout, delay);\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._timeoutID);\n};\n\nexports.active = function(item) {\n // our naive impl doesn't care (correctness is still preserved)\n};\n\n//@ sourceURL=/node_modules/timers-browserify/main.js"
|
||||
));
|
||||
|
||||
require.define("/main.js", Function(
|
||||
[ 'require', 'module', 'exports', '__dirname', '__filename' ],
|
||||
"var timers = require('timers');\n\nvar obj = {\n _onTimeout: function() {\n console.log('Timer ran for: ' + (new Date().getTime() - obj.now) + ' ms');\n },\n start: function() {\n console.log('Timer should run for 100 ms');\n this.now = new Date().getTime();\n timers.enroll(this, 100);\n }\n};\n\nobj.start();\n\n//@ sourceURL=/main.js"
|
||||
));
|
||||
require("/main.js");
|
||||
14
build/node_modules/timers-browserify/example/enroll/js/main.js
generated
vendored
Normal file
14
build/node_modules/timers-browserify/example/enroll/js/main.js
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
var timers = require('timers');
|
||||
|
||||
var obj = {
|
||||
_onTimeout: function() {
|
||||
console.log('Timer ran for: ' + (new Date().getTime() - obj.now) + ' ms');
|
||||
},
|
||||
start: function() {
|
||||
console.log('Timer should run for 100 ms');
|
||||
this.now = new Date().getTime();
|
||||
timers.enroll(this, 100);
|
||||
}
|
||||
};
|
||||
|
||||
obj.start();
|
||||
11
build/node_modules/timers-browserify/example/enroll/server.js
generated
vendored
Normal file
11
build/node_modules/timers-browserify/example/enroll/server.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
var connect = require('connect');
|
||||
var server = connect.createServer();
|
||||
server.use(connect.static(__dirname));
|
||||
|
||||
var browserify = require('browserify');
|
||||
var bundle = browserify(__dirname + '/js/main.js', { mount: '/js/browserify.js' });
|
||||
server.use(bundle);
|
||||
|
||||
var port = parseInt(process.argv[2] || 8080, 10);
|
||||
server.listen(port);
|
||||
console.log('Listening on :' + port);
|
||||
76
build/node_modules/timers-browserify/main.js
generated
vendored
Normal file
76
build/node_modules/timers-browserify/main.js
generated
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
var nextTick = require('process/browser.js').nextTick;
|
||||
var apply = Function.prototype.apply;
|
||||
var slice = Array.prototype.slice;
|
||||
var immediateIds = {};
|
||||
var nextImmediateId = 0;
|
||||
|
||||
// DOM APIs, for completeness
|
||||
|
||||
exports.setTimeout = function() {
|
||||
return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);
|
||||
};
|
||||
exports.setInterval = function() {
|
||||
return new Timeout(apply.call(setInterval, window, arguments), clearInterval);
|
||||
};
|
||||
exports.clearTimeout =
|
||||
exports.clearInterval = function(timeout) { timeout.close(); };
|
||||
|
||||
function Timeout(id, clearFn) {
|
||||
this._id = id;
|
||||
this._clearFn = clearFn;
|
||||
}
|
||||
Timeout.prototype.unref = Timeout.prototype.ref = function() {};
|
||||
Timeout.prototype.close = function() {
|
||||
this._clearFn.call(window, this._id);
|
||||
};
|
||||
|
||||
// Does not start the time, just sets up the members needed.
|
||||
exports.enroll = function(item, msecs) {
|
||||
clearTimeout(item._idleTimeoutId);
|
||||
item._idleTimeout = msecs;
|
||||
};
|
||||
|
||||
exports.unenroll = function(item) {
|
||||
clearTimeout(item._idleTimeoutId);
|
||||
item._idleTimeout = -1;
|
||||
};
|
||||
|
||||
exports._unrefActive = exports.active = function(item) {
|
||||
clearTimeout(item._idleTimeoutId);
|
||||
|
||||
var msecs = item._idleTimeout;
|
||||
if (msecs >= 0) {
|
||||
item._idleTimeoutId = setTimeout(function onTimeout() {
|
||||
if (item._onTimeout)
|
||||
item._onTimeout();
|
||||
}, msecs);
|
||||
}
|
||||
};
|
||||
|
||||
// That's not how node.js implements it but the exposed api is the same.
|
||||
exports.setImmediate = typeof setImmediate === "function" ? setImmediate : function(fn) {
|
||||
var id = nextImmediateId++;
|
||||
var args = arguments.length < 2 ? false : slice.call(arguments, 1);
|
||||
|
||||
immediateIds[id] = true;
|
||||
|
||||
nextTick(function onNextTick() {
|
||||
if (immediateIds[id]) {
|
||||
// fn.call() is faster so we optimize for the common use-case
|
||||
// @see http://jsperf.com/call-apply-segu
|
||||
if (args) {
|
||||
fn.apply(null, args);
|
||||
} else {
|
||||
fn.call(null);
|
||||
}
|
||||
// Prevent ids from leaking
|
||||
exports.clearImmediate(id);
|
||||
}
|
||||
});
|
||||
|
||||
return id;
|
||||
};
|
||||
|
||||
exports.clearImmediate = typeof clearImmediate === "function" ? clearImmediate : function(id) {
|
||||
delete immediateIds[id];
|
||||
};
|
||||
21
build/node_modules/timers-browserify/node_modules/process/.eslintrc
generated
vendored
Normal file
21
build/node_modules/timers-browserify/node_modules/process/.eslintrc
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
extends: "eslint:recommended",
|
||||
"env": {
|
||||
"node": true,
|
||||
"browser": true,
|
||||
"es6" : true,
|
||||
"mocha": true
|
||||
},
|
||||
"rules": {
|
||||
"indent": [2, 4],
|
||||
"brace-style": [2, "1tbs"],
|
||||
"quotes": [2, "single"],
|
||||
"no-console": 0,
|
||||
"no-shadow": 0,
|
||||
"no-use-before-define": [2, "nofunc"],
|
||||
"no-underscore-dangle": 0,
|
||||
"no-constant-condition": 0,
|
||||
"space-after-function-name": 0,
|
||||
"consistent-return": 0
|
||||
}
|
||||
}
|
||||
22
build/node_modules/timers-browserify/node_modules/process/LICENSE
generated
vendored
Normal file
22
build/node_modules/timers-browserify/node_modules/process/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
(The MIT License)
|
||||
|
||||
Copyright (c) 2013 Roman Shtylman <shtylman@gmail.com>
|
||||
|
||||
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.
|
||||
26
build/node_modules/timers-browserify/node_modules/process/README.md
generated
vendored
Normal file
26
build/node_modules/timers-browserify/node_modules/process/README.md
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
# process
|
||||
|
||||
```require('process');``` just like any other module.
|
||||
|
||||
Works in node.js and browsers via the browser.js shim provided with the module.
|
||||
|
||||
## browser implementation
|
||||
|
||||
The goal of this module is not to be a full-fledged alternative to the builtin process module. This module mostly exists to provide the nextTick functionality and little more. We keep this module lean because it will often be included by default by tools like browserify when it detects a module has used the `process` global.
|
||||
|
||||
It also exposes a "browser" member (i.e. `process.browser`) which is `true` in this implementation but `undefined` in node. This can be used in isomorphic code that adjusts it's behavior depending on which environment it's running in.
|
||||
|
||||
If you are looking to provide other process methods, I suggest you monkey patch them onto the process global in your app. A list of user created patches is below.
|
||||
|
||||
* [hrtime](https://github.com/kumavis/browser-process-hrtime)
|
||||
* [stdout](https://github.com/kumavis/browser-stdout)
|
||||
|
||||
## package manager notes
|
||||
|
||||
If you are writing a bundler to package modules for client side use, make sure you use the ```browser``` field hint in package.json.
|
||||
|
||||
See https://gist.github.com/4339901 for details.
|
||||
|
||||
The [browserify](https://github.com/substack/node-browserify) module will properly handle this field when bundling your files.
|
||||
|
||||
|
||||
184
build/node_modules/timers-browserify/node_modules/process/browser.js
generated
vendored
Normal file
184
build/node_modules/timers-browserify/node_modules/process/browser.js
generated
vendored
Normal file
@@ -0,0 +1,184 @@
|
||||
// shim for using process in browser
|
||||
var process = module.exports = {};
|
||||
|
||||
// cached from whatever global is present so that test runners that stub it
|
||||
// don't break things. But we need to wrap it in a try catch in case it is
|
||||
// wrapped in strict mode code which doesn't define any globals. It's inside a
|
||||
// function because try/catches deoptimize in certain engines.
|
||||
|
||||
var cachedSetTimeout;
|
||||
var cachedClearTimeout;
|
||||
|
||||
function defaultSetTimout() {
|
||||
throw new Error('setTimeout has not been defined');
|
||||
}
|
||||
function defaultClearTimeout () {
|
||||
throw new Error('clearTimeout has not been defined');
|
||||
}
|
||||
(function () {
|
||||
try {
|
||||
if (typeof setTimeout === 'function') {
|
||||
cachedSetTimeout = setTimeout;
|
||||
} else {
|
||||
cachedSetTimeout = defaultSetTimout;
|
||||
}
|
||||
} catch (e) {
|
||||
cachedSetTimeout = defaultSetTimout;
|
||||
}
|
||||
try {
|
||||
if (typeof clearTimeout === 'function') {
|
||||
cachedClearTimeout = clearTimeout;
|
||||
} else {
|
||||
cachedClearTimeout = defaultClearTimeout;
|
||||
}
|
||||
} catch (e) {
|
||||
cachedClearTimeout = defaultClearTimeout;
|
||||
}
|
||||
} ())
|
||||
function runTimeout(fun) {
|
||||
if (cachedSetTimeout === setTimeout) {
|
||||
//normal enviroments in sane situations
|
||||
return setTimeout(fun, 0);
|
||||
}
|
||||
// if setTimeout wasn't available but was latter defined
|
||||
if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
|
||||
cachedSetTimeout = setTimeout;
|
||||
return setTimeout(fun, 0);
|
||||
}
|
||||
try {
|
||||
// when when somebody has screwed with setTimeout but no I.E. maddness
|
||||
return cachedSetTimeout(fun, 0);
|
||||
} catch(e){
|
||||
try {
|
||||
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
||||
return cachedSetTimeout.call(null, fun, 0);
|
||||
} catch(e){
|
||||
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
|
||||
return cachedSetTimeout.call(this, fun, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
function runClearTimeout(marker) {
|
||||
if (cachedClearTimeout === clearTimeout) {
|
||||
//normal enviroments in sane situations
|
||||
return clearTimeout(marker);
|
||||
}
|
||||
// if clearTimeout wasn't available but was latter defined
|
||||
if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
|
||||
cachedClearTimeout = clearTimeout;
|
||||
return clearTimeout(marker);
|
||||
}
|
||||
try {
|
||||
// when when somebody has screwed with setTimeout but no I.E. maddness
|
||||
return cachedClearTimeout(marker);
|
||||
} catch (e){
|
||||
try {
|
||||
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
||||
return cachedClearTimeout.call(null, marker);
|
||||
} catch (e){
|
||||
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
|
||||
// Some versions of I.E. have different rules for clearTimeout vs setTimeout
|
||||
return cachedClearTimeout.call(this, marker);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
var queue = [];
|
||||
var draining = false;
|
||||
var currentQueue;
|
||||
var queueIndex = -1;
|
||||
|
||||
function cleanUpNextTick() {
|
||||
if (!draining || !currentQueue) {
|
||||
return;
|
||||
}
|
||||
draining = false;
|
||||
if (currentQueue.length) {
|
||||
queue = currentQueue.concat(queue);
|
||||
} else {
|
||||
queueIndex = -1;
|
||||
}
|
||||
if (queue.length) {
|
||||
drainQueue();
|
||||
}
|
||||
}
|
||||
|
||||
function drainQueue() {
|
||||
if (draining) {
|
||||
return;
|
||||
}
|
||||
var timeout = runTimeout(cleanUpNextTick);
|
||||
draining = true;
|
||||
|
||||
var len = queue.length;
|
||||
while(len) {
|
||||
currentQueue = queue;
|
||||
queue = [];
|
||||
while (++queueIndex < len) {
|
||||
if (currentQueue) {
|
||||
currentQueue[queueIndex].run();
|
||||
}
|
||||
}
|
||||
queueIndex = -1;
|
||||
len = queue.length;
|
||||
}
|
||||
currentQueue = null;
|
||||
draining = false;
|
||||
runClearTimeout(timeout);
|
||||
}
|
||||
|
||||
process.nextTick = function (fun) {
|
||||
var args = new Array(arguments.length - 1);
|
||||
if (arguments.length > 1) {
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
args[i - 1] = arguments[i];
|
||||
}
|
||||
}
|
||||
queue.push(new Item(fun, args));
|
||||
if (queue.length === 1 && !draining) {
|
||||
runTimeout(drainQueue);
|
||||
}
|
||||
};
|
||||
|
||||
// v8 likes predictible objects
|
||||
function Item(fun, array) {
|
||||
this.fun = fun;
|
||||
this.array = array;
|
||||
}
|
||||
Item.prototype.run = function () {
|
||||
this.fun.apply(null, this.array);
|
||||
};
|
||||
process.title = 'browser';
|
||||
process.browser = true;
|
||||
process.env = {};
|
||||
process.argv = [];
|
||||
process.version = ''; // empty string to avoid regexp issues
|
||||
process.versions = {};
|
||||
|
||||
function noop() {}
|
||||
|
||||
process.on = noop;
|
||||
process.addListener = noop;
|
||||
process.once = noop;
|
||||
process.off = noop;
|
||||
process.removeListener = noop;
|
||||
process.removeAllListeners = noop;
|
||||
process.emit = noop;
|
||||
process.prependListener = noop;
|
||||
process.prependOnceListener = noop;
|
||||
|
||||
process.listeners = function (name) { return [] }
|
||||
|
||||
process.binding = function (name) {
|
||||
throw new Error('process.binding is not supported');
|
||||
};
|
||||
|
||||
process.cwd = function () { return '/' };
|
||||
process.chdir = function (dir) {
|
||||
throw new Error('process.chdir is not supported');
|
||||
};
|
||||
process.umask = function() { return 0; };
|
||||
2
build/node_modules/timers-browserify/node_modules/process/index.js
generated
vendored
Normal file
2
build/node_modules/timers-browserify/node_modules/process/index.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
// for now just expose the builtin process global from node.js
|
||||
module.exports = global.process;
|
||||
59
build/node_modules/timers-browserify/node_modules/process/package.json
generated
vendored
Normal file
59
build/node_modules/timers-browserify/node_modules/process/package.json
generated
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"_from": "process@~0.11.0",
|
||||
"_id": "process@0.11.10",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
|
||||
"_location": "/timers-browserify/process",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "process@~0.11.0",
|
||||
"name": "process",
|
||||
"escapedName": "process",
|
||||
"rawSpec": "~0.11.0",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "~0.11.0"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/timers-browserify"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
|
||||
"_shasum": "7332300e840161bda3e69a1d1d91a7d4bc16f182",
|
||||
"_spec": "process@~0.11.0",
|
||||
"_where": "/Users/asciidisco/Desktop/asciidisco.com/build/node_modules/timers-browserify",
|
||||
"author": {
|
||||
"name": "Roman Shtylman",
|
||||
"email": "shtylman@gmail.com"
|
||||
},
|
||||
"browser": "./browser.js",
|
||||
"bugs": {
|
||||
"url": "https://github.com/shtylman/node-process/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"deprecated": false,
|
||||
"description": "process information for node.js and browsers",
|
||||
"devDependencies": {
|
||||
"mocha": "2.2.1",
|
||||
"zuul": "^3.10.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.6.0"
|
||||
},
|
||||
"homepage": "https://github.com/shtylman/node-process#readme",
|
||||
"keywords": [
|
||||
"process"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "./index.js",
|
||||
"name": "process",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/shtylman/node-process.git"
|
||||
},
|
||||
"scripts": {
|
||||
"browser": "zuul --no-coverage --ui mocha-bdd --local 8080 -- test.js",
|
||||
"test": "mocha test.js"
|
||||
},
|
||||
"version": "0.11.10"
|
||||
}
|
||||
199
build/node_modules/timers-browserify/node_modules/process/test.js
generated
vendored
Normal file
199
build/node_modules/timers-browserify/node_modules/process/test.js
generated
vendored
Normal file
@@ -0,0 +1,199 @@
|
||||
var assert = require('assert');
|
||||
var ourProcess = require('./browser');
|
||||
describe('test against our process', function () {
|
||||
test(ourProcess);
|
||||
});
|
||||
if (!process.browser) {
|
||||
describe('test against node', function () {
|
||||
test(process);
|
||||
});
|
||||
vmtest();
|
||||
}
|
||||
function test (ourProcess) {
|
||||
describe('test arguments', function () {
|
||||
it ('works', function (done) {
|
||||
var order = 0;
|
||||
|
||||
|
||||
ourProcess.nextTick(function (num) {
|
||||
assert.equal(num, order++, 'first one works');
|
||||
ourProcess.nextTick(function (num) {
|
||||
assert.equal(num, order++, 'recursive one is 4th');
|
||||
}, 3);
|
||||
}, 0);
|
||||
ourProcess.nextTick(function (num) {
|
||||
assert.equal(num, order++, 'second one starts');
|
||||
ourProcess.nextTick(function (num) {
|
||||
assert.equal(num, order++, 'this is third');
|
||||
ourProcess.nextTick(function (num) {
|
||||
assert.equal(num, order++, 'this is last');
|
||||
done();
|
||||
}, 5);
|
||||
}, 4);
|
||||
}, 1);
|
||||
ourProcess.nextTick(function (num) {
|
||||
|
||||
assert.equal(num, order++, '3rd schedualed happens after the error');
|
||||
}, 2);
|
||||
});
|
||||
});
|
||||
if (!process.browser) {
|
||||
describe('test errors', function (t) {
|
||||
it ('works', function (done) {
|
||||
var order = 0;
|
||||
process.removeAllListeners('uncaughtException');
|
||||
process.once('uncaughtException', function(err) {
|
||||
assert.equal(2, order++, 'error is third');
|
||||
ourProcess.nextTick(function () {
|
||||
assert.equal(5, order++, 'schedualed in error is last');
|
||||
done();
|
||||
});
|
||||
});
|
||||
ourProcess.nextTick(function () {
|
||||
assert.equal(0, order++, 'first one works');
|
||||
ourProcess.nextTick(function () {
|
||||
assert.equal(4, order++, 'recursive one is 4th');
|
||||
});
|
||||
});
|
||||
ourProcess.nextTick(function () {
|
||||
assert.equal(1, order++, 'second one starts');
|
||||
throw(new Error('an error is thrown'));
|
||||
});
|
||||
ourProcess.nextTick(function () {
|
||||
assert.equal(3, order++, '3rd schedualed happens after the error');
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
describe('rename globals', function (t) {
|
||||
var oldTimeout = setTimeout;
|
||||
var oldClear = clearTimeout;
|
||||
|
||||
it('clearTimeout', function (done){
|
||||
|
||||
var ok = true;
|
||||
clearTimeout = function () {
|
||||
ok = false;
|
||||
}
|
||||
var ran = false;
|
||||
function cleanup() {
|
||||
clearTimeout = oldClear;
|
||||
var err;
|
||||
try {
|
||||
assert.ok(ok, 'fake clearTimeout ran');
|
||||
assert.ok(ran, 'should have run');
|
||||
} catch (e) {
|
||||
err = e;
|
||||
}
|
||||
done(err);
|
||||
}
|
||||
setTimeout(cleanup, 1000);
|
||||
ourProcess.nextTick(function () {
|
||||
ran = true;
|
||||
});
|
||||
});
|
||||
it('just setTimeout', function (done){
|
||||
|
||||
|
||||
setTimeout = function () {
|
||||
setTimeout = oldTimeout;
|
||||
try {
|
||||
assert.ok(false, 'fake setTimeout called')
|
||||
} catch (e) {
|
||||
done(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ourProcess.nextTick(function () {
|
||||
setTimeout = oldTimeout;
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
function vmtest() {
|
||||
var vm = require('vm');
|
||||
var fs = require('fs');
|
||||
var process = fs.readFileSync('./browser.js', {encoding: 'utf8'});
|
||||
|
||||
|
||||
describe('should work in vm in strict mode with no globals', function () {
|
||||
it('should parse', function (done) {
|
||||
var str = '"use strict";var module = {exports:{}};';
|
||||
str += process;
|
||||
str += 'this.works = process.browser;';
|
||||
var script = new vm.Script(str);
|
||||
var context = {
|
||||
works: false
|
||||
};
|
||||
script.runInNewContext(context);
|
||||
assert.ok(context.works);
|
||||
done();
|
||||
});
|
||||
it('setTimeout throws error', function (done) {
|
||||
var str = '"use strict";var module = {exports:{}};';
|
||||
str += process;
|
||||
str += 'try {process.nextTick(function () {})} catch (e){this.works = e;}';
|
||||
var script = new vm.Script(str);
|
||||
var context = {
|
||||
works: false
|
||||
};
|
||||
script.runInNewContext(context);
|
||||
assert.ok(context.works);
|
||||
done();
|
||||
});
|
||||
it('should generally work', function (done) {
|
||||
var str = '"use strict";var module = {exports:{}};';
|
||||
str += process;
|
||||
str += 'process.nextTick(function () {assert.ok(true);done();})';
|
||||
var script = new vm.Script(str);
|
||||
var context = {
|
||||
clearTimeout: clearTimeout,
|
||||
setTimeout: setTimeout,
|
||||
done: done,
|
||||
assert: assert
|
||||
};
|
||||
script.runInNewContext(context);
|
||||
});
|
||||
it('late defs setTimeout', function (done) {
|
||||
var str = '"use strict";var module = {exports:{}};';
|
||||
str += process;
|
||||
str += 'var setTimeout = hiddenSetTimeout;process.nextTick(function () {assert.ok(true);done();})';
|
||||
var script = new vm.Script(str);
|
||||
var context = {
|
||||
clearTimeout: clearTimeout,
|
||||
hiddenSetTimeout: setTimeout,
|
||||
done: done,
|
||||
assert: assert
|
||||
};
|
||||
script.runInNewContext(context);
|
||||
});
|
||||
it('late defs clearTimeout', function (done) {
|
||||
var str = '"use strict";var module = {exports:{}};';
|
||||
str += process;
|
||||
str += 'var clearTimeout = hiddenClearTimeout;process.nextTick(function () {assert.ok(true);done();})';
|
||||
var script = new vm.Script(str);
|
||||
var context = {
|
||||
hiddenClearTimeout: clearTimeout,
|
||||
setTimeout: setTimeout,
|
||||
done: done,
|
||||
assert: assert
|
||||
};
|
||||
script.runInNewContext(context);
|
||||
});
|
||||
it('late defs setTimeout and then redefine', function (done) {
|
||||
var str = '"use strict";var module = {exports:{}};';
|
||||
str += process;
|
||||
str += 'var setTimeout = hiddenSetTimeout;process.nextTick(function () {setTimeout = function (){throw new Error("foo")};hiddenSetTimeout(function(){process.nextTick(function (){assert.ok(true);done();});});});';
|
||||
var script = new vm.Script(str);
|
||||
var context = {
|
||||
clearTimeout: clearTimeout,
|
||||
hiddenSetTimeout: setTimeout,
|
||||
done: done,
|
||||
assert: assert
|
||||
};
|
||||
script.runInNewContext(context);
|
||||
});
|
||||
});
|
||||
}
|
||||
103
build/node_modules/timers-browserify/package.json
generated
vendored
Normal file
103
build/node_modules/timers-browserify/package.json
generated
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
{
|
||||
"_from": "timers-browserify@^1.0.1",
|
||||
"_id": "timers-browserify@1.4.2",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=",
|
||||
"_location": "/timers-browserify",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "timers-browserify@^1.0.1",
|
||||
"name": "timers-browserify",
|
||||
"escapedName": "timers-browserify",
|
||||
"rawSpec": "^1.0.1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "^1.0.1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/browserify"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
|
||||
"_shasum": "c9c58b575be8407375cb5e2462dacee74359f41d",
|
||||
"_spec": "timers-browserify@^1.0.1",
|
||||
"_where": "/Users/asciidisco/Desktop/asciidisco.com/build/node_modules/browserify",
|
||||
"author": {
|
||||
"name": "J. Ryan Stinnett",
|
||||
"email": "jryans@gmail.com",
|
||||
"url": "http://convolv.es/"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/jryans/timers-browserify/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"contributors": [
|
||||
{
|
||||
"name": "Guy Bedford",
|
||||
"email": "guybedford@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Ionut-Cristian Florescu",
|
||||
"email": "ionut.florescu@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "James Halliday",
|
||||
"email": "mail@substack.net"
|
||||
},
|
||||
{
|
||||
"name": "Jan Schär",
|
||||
"email": "jscissr@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Ewald",
|
||||
"email": "johannes.ewald@peerigon.com"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Prins",
|
||||
"email": "jon@blip.tv"
|
||||
},
|
||||
{
|
||||
"name": "Matt Esch",
|
||||
"email": "matt@mattesch.info"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"process": "~0.11.0"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "timers module for browserify",
|
||||
"devDependencies": {
|
||||
"browserify": "~1.10.16",
|
||||
"connect": "~2.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.6.0"
|
||||
},
|
||||
"homepage": "https://github.com/jryans/timers-browserify",
|
||||
"jspm": {
|
||||
"map": {
|
||||
"./main.js": {
|
||||
"node": "@node/timers"
|
||||
}
|
||||
}
|
||||
},
|
||||
"keywords": [
|
||||
"timers",
|
||||
"browserify",
|
||||
"browser"
|
||||
],
|
||||
"licenses": [
|
||||
{
|
||||
"type": "MIT",
|
||||
"url": "https://github.com/jryans/timers-browserify/blob/master/LICENSE.md"
|
||||
}
|
||||
],
|
||||
"main": "main.js",
|
||||
"name": "timers-browserify",
|
||||
"optionalDependencies": {},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/jryans/timers-browserify.git"
|
||||
},
|
||||
"version": "1.4.2"
|
||||
}
|
||||
Reference in New Issue
Block a user