Commit 8c7622380abee57bc1ee2c4d3983bde555dad282
1 parent
9493e37d
Exists in
master
and in
1 other branch
fix done job
Showing
61 changed files
with
437 additions
and
293 deletions
Show diff stats
endpoints/texto.js
@@ -65,6 +65,7 @@ function init(req, res, Request) { | @@ -65,6 +65,7 @@ function init(req, res, Request) { | ||
65 | 65 | ||
66 | job.on('complete', function() { | 66 | job.on('complete', function() { |
67 | /* Listener que dispara quando a requisição ao core finaliza */ | 67 | /* Listener que dispara quando a requisição ao core finaliza */ |
68 | + // console.log("JOB complete"); | ||
68 | child.on('close', function(code, signal) { | 69 | child.on('close', function(code, signal) { |
69 | // res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.webm' }); | 70 | // res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.webm' }); |
70 | db.update(request_object, 'Completed', function(result) { | 71 | db.update(request_object, 'Completed', function(result) { |
helpers/queue.js
1 | var exec = require('child_process').exec, child; | 1 | var exec = require('child_process').exec, child; |
2 | 2 | ||
3 | -exports.exec_command_line = function (command_line, callback) { | 3 | +exports.exec_command_line = function (command_line, done) { |
4 | 4 | ||
5 | child = exec(command_line, function(err, stdout, stderr) { | 5 | child = exec(command_line, function(err, stdout, stderr) { |
6 | // console.log('Err: ' + err); | 6 | // console.log('Err: ' + err); |
7 | // console.log('STDOUT: ' + stdout); | 7 | // console.log('STDOUT: ' + stdout); |
8 | // console.log('STDERR: ' + stderr); | 8 | // console.log('STDERR: ' + stderr); |
9 | }); | 9 | }); |
10 | - //callback(); | 10 | + //done(); |
11 | // if (child === undefined) { | 11 | // if (child === undefined) { |
12 | // throw "Erro ao conectar com o core"; | 12 | // throw "Erro ao conectar com o core"; |
13 | // } | 13 | // } |
@@ -17,6 +17,18 @@ exports.exec_command_line = function (command_line, callback) { | @@ -17,6 +17,18 @@ exports.exec_command_line = function (command_line, callback) { | ||
17 | child.on('disconnect', function(code, signal) { | 17 | child.on('disconnect', function(code, signal) { |
18 | throw "Disconectado do core"; | 18 | throw "Disconectado do core"; |
19 | }); | 19 | }); |
20 | + | ||
21 | + // tentar com isso descomentado no lugar de chamar o done() direto | ||
22 | + // child.on('close', function(code, signal) { | ||
23 | + // done(); | ||
24 | + // }); | ||
25 | + done(); | ||
20 | return child; | 26 | return child; |
21 | 27 | ||
22 | }; | 28 | }; |
29 | + | ||
30 | +// use to debug | ||
31 | +exports.text = function (text, callback) { | ||
32 | + console.log("Text inside queue_helper: " + text); | ||
33 | + return text; | ||
34 | +}; |
logsystem/errors.log
logsystem/services.log
node_modules/async/.travis.yml
node_modules/async/README.md
@@ -5,8 +5,16 @@ | @@ -5,8 +5,16 @@ | ||
5 | 5 | ||
6 | Async is a utility module which provides straight-forward, powerful functions | 6 | Async is a utility module which provides straight-forward, powerful functions |
7 | for working with asynchronous JavaScript. Although originally designed for | 7 | for working with asynchronous JavaScript. Although originally designed for |
8 | -use with [Node.js](http://nodejs.org), it can also be used directly in the | ||
9 | -browser. Also supports [component](https://github.com/component/component). | 8 | +use with [Node.js](http://nodejs.org) and installable via `npm install async`, |
9 | +it can also be used directly in the browser. | ||
10 | + | ||
11 | +Async is also installable via: | ||
12 | + | ||
13 | +- [bower](http://bower.io/): `bower install async` | ||
14 | +- [component](https://github.com/component/component): `component install | ||
15 | + caolan/async` | ||
16 | +- [jam](http://jamjs.org/): `jam install async` | ||
17 | +- [spm](http://spmjs.io/): `spm install async` | ||
10 | 18 | ||
11 | Async provides around 20 functions that include the usual 'functional' | 19 | Async provides around 20 functions that include the usual 'functional' |
12 | suspects (`map`, `reduce`, `filter`, `each`…) as well as some common patterns | 20 | suspects (`map`, `reduce`, `filter`, `each`…) as well as some common patterns |
@@ -182,7 +190,7 @@ __Arguments__ | @@ -182,7 +190,7 @@ __Arguments__ | ||
182 | * `arr` - An array to iterate over. | 190 | * `arr` - An array to iterate over. |
183 | * `iterator(item, callback)` - A function to apply to each item in `arr`. | 191 | * `iterator(item, callback)` - A function to apply to each item in `arr`. |
184 | The iterator is passed a `callback(err)` which must be called once it has | 192 | The iterator is passed a `callback(err)` which must be called once it has |
185 | - completed. If no error has occured, the `callback` should be run without | 193 | + completed. If no error has occurred, the `callback` should be run without |
186 | arguments or with an explicit `null` argument. | 194 | arguments or with an explicit `null` argument. |
187 | * `callback(err)` - A callback which is called when all `iterator` functions | 195 | * `callback(err)` - A callback which is called when all `iterator` functions |
188 | have finished, or an error occurs. | 196 | have finished, or an error occurs. |
@@ -202,7 +210,7 @@ async.each(openFiles, saveFile, function(err){ | @@ -202,7 +210,7 @@ async.each(openFiles, saveFile, function(err){ | ||
202 | ```js | 210 | ```js |
203 | // assuming openFiles is an array of file names | 211 | // assuming openFiles is an array of file names |
204 | 212 | ||
205 | -async.each(openFiles, function( file, callback) { | 213 | +async.each(openFiles, function(file, callback) { |
206 | 214 | ||
207 | // Perform operation on file here. | 215 | // Perform operation on file here. |
208 | console.log('Processing file ' + file); | 216 | console.log('Processing file ' + file); |
@@ -256,7 +264,7 @@ __Arguments__ | @@ -256,7 +264,7 @@ __Arguments__ | ||
256 | * `limit` - The maximum number of `iterator`s to run at any time. | 264 | * `limit` - The maximum number of `iterator`s to run at any time. |
257 | * `iterator(item, callback)` - A function to apply to each item in `arr`. | 265 | * `iterator(item, callback)` - A function to apply to each item in `arr`. |
258 | The iterator is passed a `callback(err)` which must be called once it has | 266 | The iterator is passed a `callback(err)` which must be called once it has |
259 | - completed. If no error has occured, the callback should be run without | 267 | + completed. If no error has occurred, the callback should be run without |
260 | arguments or with an explicit `null` argument. | 268 | arguments or with an explicit `null` argument. |
261 | * `callback(err)` - A callback which is called when all `iterator` functions | 269 | * `callback(err)` - A callback which is called when all `iterator` functions |
262 | have finished, or an error occurs. | 270 | have finished, or an error occurs. |
@@ -280,7 +288,7 @@ async.eachLimit(documents, 20, requestApi, function(err){ | @@ -280,7 +288,7 @@ async.eachLimit(documents, 20, requestApi, function(err){ | ||
280 | Produces a new array of values by mapping each value in `arr` through | 288 | Produces a new array of values by mapping each value in `arr` through |
281 | the `iterator` function. The `iterator` is called with an item from `arr` and a | 289 | the `iterator` function. The `iterator` is called with an item from `arr` and a |
282 | callback for when it has finished processing. Each of these callback takes 2 arguments: | 290 | callback for when it has finished processing. Each of these callback takes 2 arguments: |
283 | -an `error`, and the transformed item from `arr`. If `iterator` passes an error to this | 291 | +an `error`, and the transformed item from `arr`. If `iterator` passes an error to his |
284 | callback, the main `callback` (for the `map` function) is immediately called with the error. | 292 | callback, the main `callback` (for the `map` function) is immediately called with the error. |
285 | 293 | ||
286 | Note, that since this function applies the `iterator` to each item in parallel, | 294 | Note, that since this function applies the `iterator` to each item in parallel, |
@@ -536,14 +544,14 @@ By modifying the callback parameter the sorting order can be influenced: | @@ -536,14 +544,14 @@ By modifying the callback parameter the sorting order can be influenced: | ||
536 | ```js | 544 | ```js |
537 | //ascending order | 545 | //ascending order |
538 | async.sortBy([1,9,3,5], function(x, callback){ | 546 | async.sortBy([1,9,3,5], function(x, callback){ |
539 | - callback(err, x); | 547 | + callback(null, x); |
540 | }, function(err,result){ | 548 | }, function(err,result){ |
541 | //result callback | 549 | //result callback |
542 | } ); | 550 | } ); |
543 | 551 | ||
544 | //descending order | 552 | //descending order |
545 | async.sortBy([1,9,3,5], function(x, callback){ | 553 | async.sortBy([1,9,3,5], function(x, callback){ |
546 | - callback(err, x*-1); //<- x*-1 instead of x, turns the order around | 554 | + callback(null, x*-1); //<- x*-1 instead of x, turns the order around |
547 | }, function(err,result){ | 555 | }, function(err,result){ |
548 | //result callback | 556 | //result callback |
549 | } ); | 557 | } ); |
@@ -913,19 +921,19 @@ __Example__ | @@ -913,19 +921,19 @@ __Example__ | ||
913 | 921 | ||
914 | ```js | 922 | ```js |
915 | async.waterfall([ | 923 | async.waterfall([ |
916 | - function(callback){ | 924 | + function(callback) { |
917 | callback(null, 'one', 'two'); | 925 | callback(null, 'one', 'two'); |
918 | }, | 926 | }, |
919 | - function(arg1, arg2, callback){ | 927 | + function(arg1, arg2, callback) { |
920 | // arg1 now equals 'one' and arg2 now equals 'two' | 928 | // arg1 now equals 'one' and arg2 now equals 'two' |
921 | callback(null, 'three'); | 929 | callback(null, 'three'); |
922 | }, | 930 | }, |
923 | - function(arg1, callback){ | 931 | + function(arg1, callback) { |
924 | // arg1 now equals 'three' | 932 | // arg1 now equals 'three' |
925 | callback(null, 'done'); | 933 | callback(null, 'done'); |
926 | } | 934 | } |
927 | ], function (err, result) { | 935 | ], function (err, result) { |
928 | - // result now equals 'done' | 936 | + // result now equals 'done' |
929 | }); | 937 | }); |
930 | ``` | 938 | ``` |
931 | 939 | ||
@@ -972,7 +980,8 @@ add1mul3(4, function (err, result) { | @@ -972,7 +980,8 @@ add1mul3(4, function (err, result) { | ||
972 | ### seq(fn1, fn2...) | 980 | ### seq(fn1, fn2...) |
973 | 981 | ||
974 | Version of the compose function that is more natural to read. | 982 | Version of the compose function that is more natural to read. |
975 | -Each following function consumes the return value of the latter function. | 983 | +Each function consumes the return value of the previous function. |
984 | +It is the equivalent of [`compose`](#compose) with the arguments reversed. | ||
976 | 985 | ||
977 | Each function is executed with the `this` binding of the composed function. | 986 | Each function is executed with the `this` binding of the composed function. |
978 | 987 | ||
@@ -989,28 +998,20 @@ __Example__ | @@ -989,28 +998,20 @@ __Example__ | ||
989 | // This example uses `seq` function to avoid overnesting and error | 998 | // This example uses `seq` function to avoid overnesting and error |
990 | // handling clutter. | 999 | // handling clutter. |
991 | app.get('/cats', function(request, response) { | 1000 | app.get('/cats', function(request, response) { |
992 | - function handleError(err, data, callback) { | ||
993 | - if (err) { | ||
994 | - console.error(err); | ||
995 | - response.json({ status: 'error', message: err.message }); | ||
996 | - } | ||
997 | - else { | ||
998 | - callback(data); | ||
999 | - } | ||
1000 | - } | ||
1001 | var User = request.models.User; | 1001 | var User = request.models.User; |
1002 | async.seq( | 1002 | async.seq( |
1003 | _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data)) | 1003 | _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data)) |
1004 | - handleError, | ||
1005 | function(user, fn) { | 1004 | function(user, fn) { |
1006 | user.getCats(fn); // 'getCats' has signature (callback(err, data)) | 1005 | user.getCats(fn); // 'getCats' has signature (callback(err, data)) |
1007 | - }, | ||
1008 | - handleError, | ||
1009 | - function(cats) { | 1006 | + } |
1007 | + )(req.session.user_id, function (err, cats) { | ||
1008 | + if (err) { | ||
1009 | + console.error(err); | ||
1010 | + response.json({ status: 'error', message: err.message }); | ||
1011 | + } else { | ||
1010 | response.json({ status: 'ok', message: 'Cats found', data: cats }); | 1012 | response.json({ status: 'ok', message: 'Cats found', data: cats }); |
1011 | } | 1013 | } |
1012 | - )(req.session.user_id); | ||
1013 | - } | 1014 | + }); |
1014 | }); | 1015 | }); |
1015 | ``` | 1016 | ``` |
1016 | 1017 | ||
@@ -1092,7 +1093,7 @@ methods: | @@ -1092,7 +1093,7 @@ methods: | ||
1092 | * `paused` - a boolean for determining whether the queue is in a paused state | 1093 | * `paused` - a boolean for determining whether the queue is in a paused state |
1093 | * `pause()` - a function that pauses the processing of tasks until `resume()` is called. | 1094 | * `pause()` - a function that pauses the processing of tasks until `resume()` is called. |
1094 | * `resume()` - a function that resumes the processing of queued tasks when the queue is paused. | 1095 | * `resume()` - a function that resumes the processing of queued tasks when the queue is paused. |
1095 | -* `kill()` - a function that empties remaining tasks from the queue forcing it to go idle. | 1096 | +* `kill()` - a function that removes the `drain` callback and empties remaining tasks from the queue forcing it to go idle. |
1096 | 1097 | ||
1097 | __Example__ | 1098 | __Example__ |
1098 | 1099 | ||
@@ -1122,7 +1123,7 @@ q.push({name: 'bar'}, function (err) { | @@ -1122,7 +1123,7 @@ q.push({name: 'bar'}, function (err) { | ||
1122 | // add some items to the queue (batch-wise) | 1123 | // add some items to the queue (batch-wise) |
1123 | 1124 | ||
1124 | q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) { | 1125 | q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) { |
1125 | - console.log('finished processing bar'); | 1126 | + console.log('finished processing item'); |
1126 | }); | 1127 | }); |
1127 | 1128 | ||
1128 | // add some items to the front of the queue | 1129 | // add some items to the front of the queue |
@@ -1349,7 +1350,7 @@ new tasks much easier (and the code more readable). | @@ -1349,7 +1350,7 @@ new tasks much easier (and the code more readable). | ||
1349 | 1350 | ||
1350 | Attempts to get a successful response from `task` no more than `times` times before | 1351 | Attempts to get a successful response from `task` no more than `times` times before |
1351 | returning an error. If the task is successful, the `callback` will be passed the result | 1352 | returning an error. If the task is successful, the `callback` will be passed the result |
1352 | -of the successfull task. If all attemps fail, the callback will be passed the error and | 1353 | +of the successful task. If all attempts fail, the callback will be passed the error and |
1353 | result (if any) of the final attempt. | 1354 | result (if any) of the final attempt. |
1354 | 1355 | ||
1355 | __Arguments__ | 1356 | __Arguments__ |
@@ -1474,7 +1475,7 @@ three | @@ -1474,7 +1475,7 @@ three | ||
1474 | --------------------------------------- | 1475 | --------------------------------------- |
1475 | 1476 | ||
1476 | <a name="nextTick" /> | 1477 | <a name="nextTick" /> |
1477 | -### nextTick(callback) | 1478 | +### nextTick(callback), setImmediate(callback) |
1478 | 1479 | ||
1479 | Calls `callback` on a later loop around the event loop. In Node.js this just | 1480 | Calls `callback` on a later loop around the event loop. In Node.js this just |
1480 | calls `process.nextTick`; in the browser it falls back to `setImmediate(callback)` | 1481 | calls `process.nextTick`; in the browser it falls back to `setImmediate(callback)` |
node_modules/async/component.json
1 | { | 1 | { |
2 | "name": "async", | 2 | "name": "async", |
3 | - "repo": "caolan/async", | ||
4 | "description": "Higher-order functions and common patterns for asynchronous code", | 3 | "description": "Higher-order functions and common patterns for asynchronous code", |
5 | - "version": "0.1.23", | ||
6 | - "keywords": [], | ||
7 | - "dependencies": {}, | ||
8 | - "development": {}, | ||
9 | - "main": "lib/async.js", | ||
10 | - "scripts": [ "lib/async.js" ] | ||
11 | -} | 4 | + "version": "0.9.2", |
5 | + "keywords": [ | ||
6 | + "async", | ||
7 | + "callback", | ||
8 | + "utility", | ||
9 | + "module" | ||
10 | + ], | ||
11 | + "license": "MIT", | ||
12 | + "repository": "caolan/async", | ||
13 | + "scripts": [ | ||
14 | + "lib/async.js" | ||
15 | + ] | ||
16 | +} | ||
12 | \ No newline at end of file | 17 | \ No newline at end of file |
@@ -42,9 +42,6 @@ | @@ -42,9 +42,6 @@ | ||
42 | }; | 42 | }; |
43 | 43 | ||
44 | var _each = function (arr, iterator) { | 44 | var _each = function (arr, iterator) { |
45 | - if (arr.forEach) { | ||
46 | - return arr.forEach(iterator); | ||
47 | - } | ||
48 | for (var i = 0; i < arr.length; i += 1) { | 45 | for (var i = 0; i < arr.length; i += 1) { |
49 | iterator(arr[i], i, arr); | 46 | iterator(arr[i], i, arr); |
50 | } | 47 | } |
@@ -821,23 +818,26 @@ | @@ -821,23 +818,26 @@ | ||
821 | pause: function () { | 818 | pause: function () { |
822 | if (q.paused === true) { return; } | 819 | if (q.paused === true) { return; } |
823 | q.paused = true; | 820 | q.paused = true; |
824 | - q.process(); | ||
825 | }, | 821 | }, |
826 | resume: function () { | 822 | resume: function () { |
827 | if (q.paused === false) { return; } | 823 | if (q.paused === false) { return; } |
828 | q.paused = false; | 824 | q.paused = false; |
829 | - q.process(); | 825 | + // Need to call q.process once per concurrent |
826 | + // worker to preserve full concurrency after pause | ||
827 | + for (var w = 1; w <= q.concurrency; w++) { | ||
828 | + async.setImmediate(q.process); | ||
829 | + } | ||
830 | } | 830 | } |
831 | }; | 831 | }; |
832 | return q; | 832 | return q; |
833 | }; | 833 | }; |
834 | - | 834 | + |
835 | async.priorityQueue = function (worker, concurrency) { | 835 | async.priorityQueue = function (worker, concurrency) { |
836 | - | 836 | + |
837 | function _compareTasks(a, b){ | 837 | function _compareTasks(a, b){ |
838 | return a.priority - b.priority; | 838 | return a.priority - b.priority; |
839 | }; | 839 | }; |
840 | - | 840 | + |
841 | function _binarySearch(sequence, item, compare) { | 841 | function _binarySearch(sequence, item, compare) { |
842 | var beg = -1, | 842 | var beg = -1, |
843 | end = sequence.length - 1; | 843 | end = sequence.length - 1; |
@@ -851,7 +851,7 @@ | @@ -851,7 +851,7 @@ | ||
851 | } | 851 | } |
852 | return beg; | 852 | return beg; |
853 | } | 853 | } |
854 | - | 854 | + |
855 | function _insert(q, data, priority, callback) { | 855 | function _insert(q, data, priority, callback) { |
856 | if (!q.started){ | 856 | if (!q.started){ |
857 | q.started = true; | 857 | q.started = true; |
@@ -873,7 +873,7 @@ | @@ -873,7 +873,7 @@ | ||
873 | priority: priority, | 873 | priority: priority, |
874 | callback: typeof callback === 'function' ? callback : null | 874 | callback: typeof callback === 'function' ? callback : null |
875 | }; | 875 | }; |
876 | - | 876 | + |
877 | q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item); | 877 | q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item); |
878 | 878 | ||
879 | if (q.saturated && q.tasks.length === q.concurrency) { | 879 | if (q.saturated && q.tasks.length === q.concurrency) { |
@@ -882,15 +882,15 @@ | @@ -882,15 +882,15 @@ | ||
882 | async.setImmediate(q.process); | 882 | async.setImmediate(q.process); |
883 | }); | 883 | }); |
884 | } | 884 | } |
885 | - | 885 | + |
886 | // Start with a normal queue | 886 | // Start with a normal queue |
887 | var q = async.queue(worker, concurrency); | 887 | var q = async.queue(worker, concurrency); |
888 | - | 888 | + |
889 | // Override push to accept second parameter representing priority | 889 | // Override push to accept second parameter representing priority |
890 | q.push = function (data, priority, callback) { | 890 | q.push = function (data, priority, callback) { |
891 | _insert(q, data, priority, callback); | 891 | _insert(q, data, priority, callback); |
892 | }; | 892 | }; |
893 | - | 893 | + |
894 | // Remove unshift function | 894 | // Remove unshift function |
895 | delete q.unshift; | 895 | delete q.unshift; |
896 | 896 |
node_modules/async/package.json
1 | { | 1 | { |
2 | "name": "async", | 2 | "name": "async", |
3 | "description": "Higher-order functions and common patterns for asynchronous code", | 3 | "description": "Higher-order functions and common patterns for asynchronous code", |
4 | - "main": "./lib/async", | 4 | + "main": "lib/async.js", |
5 | "author": { | 5 | "author": { |
6 | "name": "Caolan McMahon" | 6 | "name": "Caolan McMahon" |
7 | }, | 7 | }, |
8 | - "version": "0.9.0", | 8 | + "version": "0.9.2", |
9 | + "keywords": [ | ||
10 | + "async", | ||
11 | + "callback", | ||
12 | + "utility", | ||
13 | + "module" | ||
14 | + ], | ||
9 | "repository": { | 15 | "repository": { |
10 | "type": "git", | 16 | "type": "git", |
11 | - "url": "https://github.com/caolan/async.git" | 17 | + "url": "git+https://github.com/caolan/async.git" |
12 | }, | 18 | }, |
13 | "bugs": { | 19 | "bugs": { |
14 | "url": "https://github.com/caolan/async/issues" | 20 | "url": "https://github.com/caolan/async/issues" |
15 | }, | 21 | }, |
16 | - "licenses": [ | ||
17 | - { | ||
18 | - "type": "MIT", | ||
19 | - "url": "https://github.com/caolan/async/raw/master/LICENSE" | ||
20 | - } | ||
21 | - ], | 22 | + "license": "MIT", |
22 | "devDependencies": { | 23 | "devDependencies": { |
23 | "nodeunit": ">0.0.0", | 24 | "nodeunit": ">0.0.0", |
24 | "uglify-js": "1.2.x", | 25 | "uglify-js": "1.2.x", |
25 | - "nodelint": ">0.0.0" | 26 | + "nodelint": ">0.0.0", |
27 | + "lodash": ">=2.4.1" | ||
26 | }, | 28 | }, |
27 | "jam": { | 29 | "jam": { |
28 | "main": "lib/async.js", | 30 | "main": "lib/async.js", |
@@ -30,31 +32,53 @@ | @@ -30,31 +32,53 @@ | ||
30 | "lib/async.js", | 32 | "lib/async.js", |
31 | "README.md", | 33 | "README.md", |
32 | "LICENSE" | 34 | "LICENSE" |
35 | + ], | ||
36 | + "categories": [ | ||
37 | + "Utilities" | ||
33 | ] | 38 | ] |
34 | }, | 39 | }, |
35 | "scripts": { | 40 | "scripts": { |
36 | "test": "nodeunit test/test-async.js" | 41 | "test": "nodeunit test/test-async.js" |
37 | }, | 42 | }, |
38 | - "homepage": "https://github.com/caolan/async", | ||
39 | - "_id": "async@0.9.0", | ||
40 | - "dist": { | ||
41 | - "shasum": "ac3613b1da9bed1b47510bb4651b8931e47146c7", | ||
42 | - "tarball": "http://registry.npmjs.org/async/-/async-0.9.0.tgz" | 43 | + "spm": { |
44 | + "main": "lib/async.js" | ||
43 | }, | 45 | }, |
46 | + "volo": { | ||
47 | + "main": "lib/async.js", | ||
48 | + "ignore": [ | ||
49 | + "**/.*", | ||
50 | + "node_modules", | ||
51 | + "bower_components", | ||
52 | + "test", | ||
53 | + "tests" | ||
54 | + ] | ||
55 | + }, | ||
56 | + "gitHead": "de3a16091d5125384eff4a54deb3998b13c3814c", | ||
57 | + "homepage": "https://github.com/caolan/async#readme", | ||
58 | + "_id": "async@0.9.2", | ||
59 | + "_shasum": "aea74d5e61c1f899613bf64bda66d4c78f2fd17d", | ||
44 | "_from": "async@>=0.9.0 <0.10.0", | 60 | "_from": "async@>=0.9.0 <0.10.0", |
45 | - "_npmVersion": "1.4.3", | 61 | + "_npmVersion": "2.9.0", |
62 | + "_nodeVersion": "2.0.1", | ||
46 | "_npmUser": { | 63 | "_npmUser": { |
47 | - "name": "caolan", | ||
48 | - "email": "caolan.mcmahon@gmail.com" | 64 | + "name": "beaugunderson", |
65 | + "email": "beau@beaugunderson.com" | ||
49 | }, | 66 | }, |
50 | "maintainers": [ | 67 | "maintainers": [ |
51 | { | 68 | { |
52 | "name": "caolan", | 69 | "name": "caolan", |
53 | - "email": "caolan@caolanmcmahon.com" | 70 | + "email": "caolan.mcmahon@gmail.com" |
71 | + }, | ||
72 | + { | ||
73 | + "name": "beaugunderson", | ||
74 | + "email": "beau@beaugunderson.com" | ||
54 | } | 75 | } |
55 | ], | 76 | ], |
77 | + "dist": { | ||
78 | + "shasum": "aea74d5e61c1f899613bf64bda66d4c78f2fd17d", | ||
79 | + "tarball": "http://registry.npmjs.org/async/-/async-0.9.2.tgz" | ||
80 | + }, | ||
56 | "directories": {}, | 81 | "directories": {}, |
57 | - "_shasum": "ac3613b1da9bed1b47510bb4651b8931e47146c7", | ||
58 | - "_resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz", | 82 | + "_resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", |
59 | "readme": "ERROR: No README data found!" | 83 | "readme": "ERROR: No README data found!" |
60 | } | 84 | } |
node_modules/express/node_modules/commander/node_modules/keypress/package.json
@@ -36,5 +36,9 @@ | @@ -36,5 +36,9 @@ | ||
36 | "directories": {}, | 36 | "directories": {}, |
37 | "_shasum": "4a3188d4291b66b4f65edb99f806aa9ae293592a", | 37 | "_shasum": "4a3188d4291b66b4f65edb99f806aa9ae293592a", |
38 | "_resolved": "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz", | 38 | "_resolved": "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz", |
39 | - "_from": "keypress@>=0.1.0 <0.2.0" | 39 | + "_from": "keypress@>=0.1.0 <0.2.0", |
40 | + "bugs": { | ||
41 | + "url": "https://github.com/TooTallNate/keypress/issues" | ||
42 | + }, | ||
43 | + "homepage": "https://github.com/TooTallNate/keypress" | ||
40 | } | 44 | } |
node_modules/express/node_modules/connect/node_modules/bytes/package.json
@@ -45,5 +45,6 @@ | @@ -45,5 +45,6 @@ | ||
45 | ], | 45 | ], |
46 | "directories": {}, | 46 | "directories": {}, |
47 | "_shasum": "78e2e0e28c7f9c7b988ea8aee0db4d5fa9941935", | 47 | "_shasum": "78e2e0e28c7f9c7b988ea8aee0db4d5fa9941935", |
48 | - "_resolved": "https://registry.npmjs.org/bytes/-/bytes-0.3.0.tgz" | 48 | + "_resolved": "https://registry.npmjs.org/bytes/-/bytes-0.3.0.tgz", |
49 | + "readme": "ERROR: No README data found!" | ||
49 | } | 50 | } |
node_modules/express/node_modules/connect/node_modules/compression/node_modules/bytes/package.json
@@ -38,5 +38,6 @@ | @@ -38,5 +38,6 @@ | ||
38 | "directories": {}, | 38 | "directories": {}, |
39 | "_shasum": "555b08abcb063f8975905302523e4cd4ffdfdf31", | 39 | "_shasum": "555b08abcb063f8975905302523e4cd4ffdfdf31", |
40 | "_resolved": "https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz", | 40 | "_resolved": "https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz", |
41 | + "readme": "ERROR: No README data found!", | ||
41 | "scripts": {} | 42 | "scripts": {} |
42 | } | 43 | } |
node_modules/express/node_modules/connect/node_modules/compression/node_modules/negotiator/package.json
@@ -53,5 +53,10 @@ | @@ -53,5 +53,10 @@ | ||
53 | "directories": {}, | 53 | "directories": {}, |
54 | "_shasum": "706d692efeddf574d57ea9fb1ab89a4fa7ee8f60", | 54 | "_shasum": "706d692efeddf574d57ea9fb1ab89a4fa7ee8f60", |
55 | "_resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz", | 55 | "_resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz", |
56 | - "_from": "negotiator@0.3.0" | 56 | + "_from": "negotiator@0.3.0", |
57 | + "bugs": { | ||
58 | + "url": "https://github.com/federomero/negotiator/issues" | ||
59 | + }, | ||
60 | + "readme": "ERROR: No README data found!", | ||
61 | + "homepage": "https://github.com/federomero/negotiator" | ||
57 | } | 62 | } |
node_modules/express/node_modules/connect/node_modules/cookie-parser/node_modules/cookie/package.json
@@ -45,5 +45,10 @@ | @@ -45,5 +45,10 @@ | ||
45 | ], | 45 | ], |
46 | "directories": {}, | 46 | "directories": {}, |
47 | "_shasum": "90eb469ddce905c866de687efc43131d8801f9d0", | 47 | "_shasum": "90eb469ddce905c866de687efc43131d8801f9d0", |
48 | - "_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz" | 48 | + "_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz", |
49 | + "bugs": { | ||
50 | + "url": "https://github.com/shtylman/node-cookie/issues" | ||
51 | + }, | ||
52 | + "readme": "ERROR: No README data found!", | ||
53 | + "homepage": "https://github.com/shtylman/node-cookie" | ||
49 | } | 54 | } |
node_modules/express/node_modules/connect/node_modules/csurf/node_modules/scmp/package.json
@@ -50,5 +50,6 @@ | @@ -50,5 +50,6 @@ | ||
50 | ], | 50 | ], |
51 | "directories": {}, | 51 | "directories": {}, |
52 | "_shasum": "3648df2d7294641e7f78673ffc29681d9bad9073", | 52 | "_shasum": "3648df2d7294641e7f78673ffc29681d9bad9073", |
53 | - "_resolved": "https://registry.npmjs.org/scmp/-/scmp-0.0.3.tgz" | 53 | + "_resolved": "https://registry.npmjs.org/scmp/-/scmp-0.0.3.tgz", |
54 | + "readme": "ERROR: No README data found!" | ||
54 | } | 55 | } |
node_modules/express/node_modules/connect/node_modules/express-session/node_modules/cookie/package.json
@@ -45,5 +45,10 @@ | @@ -45,5 +45,10 @@ | ||
45 | ], | 45 | ], |
46 | "directories": {}, | 46 | "directories": {}, |
47 | "_shasum": "90eb469ddce905c866de687efc43131d8801f9d0", | 47 | "_shasum": "90eb469ddce905c866de687efc43131d8801f9d0", |
48 | - "_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz" | 48 | + "_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz", |
49 | + "bugs": { | ||
50 | + "url": "https://github.com/shtylman/node-cookie/issues" | ||
51 | + }, | ||
52 | + "readme": "ERROR: No README data found!", | ||
53 | + "homepage": "https://github.com/shtylman/node-cookie" | ||
49 | } | 54 | } |
node_modules/express/node_modules/connect/node_modules/express-session/node_modules/debug/package.json
@@ -59,5 +59,6 @@ | @@ -59,5 +59,6 @@ | ||
59 | "directories": {}, | 59 | "directories": {}, |
60 | "_shasum": "06e1ea8082c2cb14e39806e22e2f6f757f92af39", | 60 | "_shasum": "06e1ea8082c2cb14e39806e22e2f6f757f92af39", |
61 | "_resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", | 61 | "_resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", |
62 | - "readme": "ERROR: No README data found!" | 62 | + "readme": "ERROR: No README data found!", |
63 | + "scripts": {} | ||
63 | } | 64 | } |
node_modules/express/node_modules/connect/node_modules/express-session/node_modules/utils-merge/package.json
@@ -30,7 +30,7 @@ | @@ -30,7 +30,7 @@ | ||
30 | "chai": "1.x.x" | 30 | "chai": "1.x.x" |
31 | }, | 31 | }, |
32 | "scripts": { | 32 | "scripts": { |
33 | - "test": "node_modules/.bin/mocha --reporter spec --require test/bootstrap/node test/*.test.js" | 33 | + "test": "mocha --reporter spec --require test/bootstrap/node test/*.test.js" |
34 | }, | 34 | }, |
35 | "engines": { | 35 | "engines": { |
36 | "node": ">= 0.4.0" | 36 | "node": ">= 0.4.0" |
@@ -54,5 +54,7 @@ | @@ -54,5 +54,7 @@ | ||
54 | ], | 54 | ], |
55 | "directories": {}, | 55 | "directories": {}, |
56 | "_shasum": "0294fb922bb9375153541c4f7096231f287c8af8", | 56 | "_shasum": "0294fb922bb9375153541c4f7096231f287c8af8", |
57 | - "_resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" | 57 | + "_resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", |
58 | + "readme": "ERROR: No README data found!", | ||
59 | + "homepage": "https://github.com/jaredhanson/utils-merge" | ||
58 | } | 60 | } |
node_modules/express/node_modules/connect/node_modules/morgan/node_modules/bytes/package.json
@@ -37,5 +37,6 @@ | @@ -37,5 +37,6 @@ | ||
37 | ], | 37 | ], |
38 | "directories": {}, | 38 | "directories": {}, |
39 | "_shasum": "555b08abcb063f8975905302523e4cd4ffdfdf31", | 39 | "_shasum": "555b08abcb063f8975905302523e4cd4ffdfdf31", |
40 | - "_resolved": "https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz" | 40 | + "_resolved": "https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz", |
41 | + "readme": "ERROR: No README data found!" | ||
41 | } | 42 | } |
node_modules/express/node_modules/connect/node_modules/multiparty/node_modules/stream-counter/package.json
@@ -43,5 +43,7 @@ | @@ -43,5 +43,7 @@ | ||
43 | ], | 43 | ], |
44 | "directories": {}, | 44 | "directories": {}, |
45 | "_shasum": "ded266556319c8b0e222812b9cf3b26fa7d947de", | 45 | "_shasum": "ded266556319c8b0e222812b9cf3b26fa7d947de", |
46 | - "_resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz" | 46 | + "_resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz", |
47 | + "readme": "ERROR: No README data found!", | ||
48 | + "homepage": "https://github.com/superjoe30/node-stream-counter" | ||
47 | } | 49 | } |
node_modules/express/node_modules/connect/node_modules/pause/package.json
@@ -27,6 +27,5 @@ | @@ -27,6 +27,5 @@ | ||
27 | "directories": {}, | 27 | "directories": {}, |
28 | "_shasum": "1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d", | 28 | "_shasum": "1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d", |
29 | "_resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", | 29 | "_resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", |
30 | - "_from": "pause@0.0.1", | ||
31 | - "readme": "ERROR: No README data found!" | 30 | + "_from": "pause@0.0.1" |
32 | } | 31 | } |
node_modules/express/node_modules/connect/node_modules/qs/package.json
@@ -49,5 +49,7 @@ | @@ -49,5 +49,7 @@ | ||
49 | ], | 49 | ], |
50 | "directories": {}, | 50 | "directories": {}, |
51 | "_shasum": "6e015098ff51968b8a3c819001d5f2c89bc4b107", | 51 | "_shasum": "6e015098ff51968b8a3c819001d5f2c89bc4b107", |
52 | - "_resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz" | 52 | + "_resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz", |
53 | + "readme": "ERROR: No README data found!", | ||
54 | + "homepage": "https://github.com/visionmedia/node-querystring" | ||
53 | } | 55 | } |
node_modules/express/node_modules/connect/node_modules/raw-body/package.json
@@ -53,5 +53,6 @@ | @@ -53,5 +53,6 @@ | ||
53 | ], | 53 | ], |
54 | "directories": {}, | 54 | "directories": {}, |
55 | "_shasum": "f0b5624388d031f63da07f870c86cb9ccadcb67d", | 55 | "_shasum": "f0b5624388d031f63da07f870c86cb9ccadcb67d", |
56 | - "_resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.4.tgz" | 56 | + "_resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.4.tgz", |
57 | + "readme": "ERROR: No README data found!" | ||
57 | } | 58 | } |
node_modules/express/node_modules/connect/node_modules/serve-index/node_modules/negotiator/package.json
@@ -62,5 +62,6 @@ | @@ -62,5 +62,6 @@ | ||
62 | ], | 62 | ], |
63 | "directories": {}, | 63 | "directories": {}, |
64 | "_shasum": "8c43ea7e4c40ddfe40c3c0234c4ef77500b8fd37", | 64 | "_shasum": "8c43ea7e4c40ddfe40c3c0234c4ef77500b8fd37", |
65 | - "_resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.2.tgz" | 65 | + "_resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.2.tgz", |
66 | + "readme": "ERROR: No README data found!" | ||
66 | } | 67 | } |
node_modules/express/node_modules/connect/node_modules/serve-static/node_modules/parseurl/package.json
@@ -36,5 +36,6 @@ | @@ -36,5 +36,6 @@ | ||
36 | ], | 36 | ], |
37 | "directories": {}, | 37 | "directories": {}, |
38 | "_shasum": "2e57dce6efdd37c3518701030944c22bf388b7b4", | 38 | "_shasum": "2e57dce6efdd37c3518701030944c22bf388b7b4", |
39 | - "_resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.0.1.tgz" | 39 | + "_resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.0.1.tgz", |
40 | + "readme": "ERROR: No README data found!" | ||
40 | } | 41 | } |
node_modules/express/node_modules/connect/node_modules/serve-static/package.json
@@ -66,5 +66,6 @@ | @@ -66,5 +66,6 @@ | ||
66 | ], | 66 | ], |
67 | "directories": {}, | 67 | "directories": {}, |
68 | "_shasum": "454dfa05bb3ddd4e701a8915b83a278aa91c5643", | 68 | "_shasum": "454dfa05bb3ddd4e701a8915b83a278aa91c5643", |
69 | - "_resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.1.0.tgz" | 69 | + "_resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.1.0.tgz", |
70 | + "readme": "ERROR: No README data found!" | ||
70 | } | 71 | } |
node_modules/express/node_modules/connect/node_modules/setimmediate/package.json
@@ -97,5 +97,7 @@ | @@ -97,5 +97,7 @@ | ||
97 | "directories": {}, | 97 | "directories": {}, |
98 | "_shasum": "a9ca56ccbd6a4c3334855f060abcdece5c42ebb7", | 98 | "_shasum": "a9ca56ccbd6a4c3334855f060abcdece5c42ebb7", |
99 | "_resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.1.tgz", | 99 | "_resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.1.tgz", |
100 | - "_from": "setimmediate@1.0.1" | 100 | + "_from": "setimmediate@1.0.1", |
101 | + "readme": "ERROR: No README data found!", | ||
102 | + "homepage": "https://github.com/NobleJS/setImmediate" | ||
101 | } | 103 | } |
node_modules/express/node_modules/cookie-signature/package.json
@@ -44,5 +44,6 @@ | @@ -44,5 +44,6 @@ | ||
44 | ], | 44 | ], |
45 | "directories": {}, | 45 | "directories": {}, |
46 | "_shasum": "91cd997cc51fb641595738c69cda020328f50ff9", | 46 | "_shasum": "91cd997cc51fb641595738c69cda020328f50ff9", |
47 | - "_resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.3.tgz" | 47 | + "_resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.3.tgz", |
48 | + "readme": "ERROR: No README data found!" | ||
48 | } | 49 | } |
node_modules/express/node_modules/cookie/package.json
@@ -49,5 +49,6 @@ | @@ -49,5 +49,6 @@ | ||
49 | ], | 49 | ], |
50 | "directories": {}, | 50 | "directories": {}, |
51 | "_shasum": "72fec3d24e48a3432073d90c12642005061004b1", | 51 | "_shasum": "72fec3d24e48a3432073d90c12642005061004b1", |
52 | - "_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz" | 52 | + "_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz", |
53 | + "readme": "ERROR: No README data found!" | ||
53 | } | 54 | } |
node_modules/express/node_modules/debug/package.json
@@ -56,5 +56,6 @@ | @@ -56,5 +56,6 @@ | ||
56 | ], | 56 | ], |
57 | "directories": {}, | 57 | "directories": {}, |
58 | "_shasum": "20ff4d26f5e422cb68a1bacbbb61039ad8c1c130", | 58 | "_shasum": "20ff4d26f5e422cb68a1bacbbb61039ad8c1c130", |
59 | - "_resolved": "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz" | 59 | + "_resolved": "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz", |
60 | + "readme": "ERROR: No README data found!" | ||
60 | } | 61 | } |
node_modules/express/node_modules/fresh/package.json
@@ -46,5 +46,6 @@ | @@ -46,5 +46,6 @@ | ||
46 | ], | 46 | ], |
47 | "directories": {}, | 47 | "directories": {}, |
48 | "_shasum": "9731dcf5678c7faeb44fb903c4f72df55187fa77", | 48 | "_shasum": "9731dcf5678c7faeb44fb903c4f72df55187fa77", |
49 | - "_resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz" | 49 | + "_resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz", |
50 | + "readme": "ERROR: No README data found!" | ||
50 | } | 51 | } |
node_modules/express/node_modules/merge-descriptors/package.json
@@ -38,5 +38,6 @@ | @@ -38,5 +38,6 @@ | ||
38 | ], | 38 | ], |
39 | "directories": {}, | 39 | "directories": {}, |
40 | "_shasum": "c36a52a781437513c57275f39dd9d317514ac8c7", | 40 | "_shasum": "c36a52a781437513c57275f39dd9d317514ac8c7", |
41 | - "_resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz" | 41 | + "_resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz", |
42 | + "readme": "ERROR: No README data found!" | ||
42 | } | 43 | } |
node_modules/express/node_modules/mkdirp/package.json
@@ -49,5 +49,6 @@ | @@ -49,5 +49,6 @@ | ||
49 | ], | 49 | ], |
50 | "directories": {}, | 50 | "directories": {}, |
51 | "_shasum": "291ac2a2d43a19c478662577b5be846fe83b5923", | 51 | "_shasum": "291ac2a2d43a19c478662577b5be846fe83b5923", |
52 | - "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.4.0.tgz" | 52 | + "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.4.0.tgz", |
53 | + "readme": "ERROR: No README data found!" | ||
53 | } | 54 | } |
node_modules/express/node_modules/range-parser/package.json
@@ -45,5 +45,7 @@ | @@ -45,5 +45,7 @@ | ||
45 | ], | 45 | ], |
46 | "directories": {}, | 46 | "directories": {}, |
47 | "_shasum": "a4b264cfe0be5ce36abe3765ac9c2a248746dbc0", | 47 | "_shasum": "a4b264cfe0be5ce36abe3765ac9c2a248746dbc0", |
48 | - "_resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.0.tgz" | 48 | + "_resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.0.tgz", |
49 | + "readme": "ERROR: No README data found!", | ||
50 | + "homepage": "https://github.com/visionmedia/node-range-parser" | ||
49 | } | 51 | } |
node_modules/express/node_modules/send/node_modules/debug/package.json
@@ -51,5 +51,6 @@ | @@ -51,5 +51,6 @@ | ||
51 | ], | 51 | ], |
52 | "directories": {}, | 52 | "directories": {}, |
53 | "_shasum": "0541ea91f0e503fdf0c5eed418a32550234967f0", | 53 | "_shasum": "0541ea91f0e503fdf0c5eed418a32550234967f0", |
54 | - "_resolved": "https://registry.npmjs.org/debug/-/debug-0.8.0.tgz" | 54 | + "_resolved": "https://registry.npmjs.org/debug/-/debug-0.8.0.tgz", |
55 | + "readme": "ERROR: No README data found!" | ||
55 | } | 56 | } |
node_modules/express/node_modules/send/node_modules/mime/package.json
@@ -51,5 +51,8 @@ | @@ -51,5 +51,8 @@ | ||
51 | ], | 51 | ], |
52 | "directories": {}, | 52 | "directories": {}, |
53 | "_shasum": "58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10", | 53 | "_shasum": "58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10", |
54 | - "_resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" | 54 | + "_resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", |
55 | + "readme": "ERROR: No README data found!", | ||
56 | + "homepage": "https://github.com/broofa/node-mime", | ||
57 | + "scripts": {} | ||
55 | } | 58 | } |
node_modules/express/node_modules/send/package.json
@@ -59,5 +59,6 @@ | @@ -59,5 +59,6 @@ | ||
59 | ], | 59 | ], |
60 | "directories": {}, | 60 | "directories": {}, |
61 | "_shasum": "9718324634806fc75bc4f8f5e51f57d9d66606e7", | 61 | "_shasum": "9718324634806fc75bc4f8f5e51f57d9d66606e7", |
62 | - "_resolved": "https://registry.npmjs.org/send/-/send-0.3.0.tgz" | 62 | + "_resolved": "https://registry.npmjs.org/send/-/send-0.3.0.tgz", |
63 | + "readme": "ERROR: No README data found!" | ||
63 | } | 64 | } |
node_modules/express/package.json
@@ -111,5 +111,6 @@ | @@ -111,5 +111,6 @@ | ||
111 | ], | 111 | ], |
112 | "directories": {}, | 112 | "directories": {}, |
113 | "_shasum": "af440e1ddad078934ec78241420b40bbc56dc2ad", | 113 | "_shasum": "af440e1ddad078934ec78241420b40bbc56dc2ad", |
114 | - "_resolved": "https://registry.npmjs.org/express/-/express-3.5.3.tgz" | 114 | + "_resolved": "https://registry.npmjs.org/express/-/express-3.5.3.tgz", |
115 | + "readme": "ERROR: No README data found!" | ||
115 | } | 116 | } |
node_modules/ip/README.md
@@ -4,7 +4,7 @@ IP address utilities for node.js | @@ -4,7 +4,7 @@ IP address utilities for node.js | ||
4 | ## Usage | 4 | ## Usage |
5 | Get your ip address, compare ip addresses, validate ip addresses, etc. | 5 | Get your ip address, compare ip addresses, validate ip addresses, etc. |
6 | 6 | ||
7 | -``` | 7 | +```js |
8 | var ip = require('ip'); | 8 | var ip = require('ip'); |
9 | 9 | ||
10 | ip.address() // my ip address | 10 | ip.address() // my ip address |
node_modules/ip/lib/ip.js
1 | -var ip = exports, | ||
2 | - Buffer = require('buffer').Buffer, | ||
3 | - os = require('os'); | 1 | +'use strict'; |
2 | + | ||
3 | +var ip = exports; | ||
4 | +var Buffer = require('buffer').Buffer; | ||
5 | +var os = require('os'); | ||
4 | 6 | ||
5 | ip.toBuffer = function toBuffer(ip, buff, offset) { | 7 | ip.toBuffer = function toBuffer(ip, buff, offset) { |
6 | offset = ~~offset; | 8 | offset = ~~offset; |
7 | 9 | ||
8 | var result; | 10 | var result; |
9 | 11 | ||
12 | + if (/^::ffff:(\d{1,3}\.){3,3}\d{1,3}$/.test(ip)) { | ||
13 | + ip = ip.replace(/^::ffff:/, ''); | ||
14 | + } | ||
15 | + | ||
10 | if (/^(\d{1,3}\.){3,3}\d{1,3}$/.test(ip)) { | 16 | if (/^(\d{1,3}\.){3,3}\d{1,3}$/.test(ip)) { |
11 | result = buff || new Buffer(offset + 4); | 17 | result = buff || new Buffer(offset + 4); |
12 | ip.split(/\./g).map(function(byte) { | 18 | ip.split(/\./g).map(function(byte) { |
13 | result[offset++] = parseInt(byte, 10) & 0xff; | 19 | result[offset++] = parseInt(byte, 10) & 0xff; |
14 | }); | 20 | }); |
15 | } else if (/^[a-f0-9:]+$/.test(ip)) { | 21 | } else if (/^[a-f0-9:]+$/.test(ip)) { |
16 | - var s = ip.split(/::/g, 2), | ||
17 | - head = (s[0] || '').split(/:/g, 8), | ||
18 | - tail = (s[1] || '').split(/:/g, 8); | 22 | + var s = ip.split(/::/g, 2); |
23 | + var head = (s[0] || '').split(/:/g, 8); | ||
24 | + var tail = (s[1] || '').split(/:/g, 8); | ||
19 | 25 | ||
20 | if (tail.length === 0) { | 26 | if (tail.length === 0) { |
21 | // xxxx:: | 27 | // xxxx:: |
@@ -65,6 +71,10 @@ ip.toString = function toString(buff, offset, length) { | @@ -65,6 +71,10 @@ ip.toString = function toString(buff, offset, length) { | ||
65 | return result; | 71 | return result; |
66 | }; | 72 | }; |
67 | 73 | ||
74 | +function _normalizeFamily(family) { | ||
75 | + return family ? family.toLowerCase() : 'ipv4'; | ||
76 | +} | ||
77 | + | ||
68 | ip.fromPrefixLen = function fromPrefixLen(prefixlen, family) { | 78 | ip.fromPrefixLen = function fromPrefixLen(prefixlen, family) { |
69 | if (prefixlen > 32) { | 79 | if (prefixlen > 32) { |
70 | family = 'ipv6'; | 80 | family = 'ipv6'; |
@@ -128,14 +138,14 @@ ip.mask = function mask(addr, mask) { | @@ -128,14 +138,14 @@ ip.mask = function mask(addr, mask) { | ||
128 | ip.cidr = function cidr(cidrString) { | 138 | ip.cidr = function cidr(cidrString) { |
129 | var cidrParts = cidrString.split('/'); | 139 | var cidrParts = cidrString.split('/'); |
130 | 140 | ||
131 | - if (cidrParts.length != 2) | 141 | + var addr = cidrParts[0]; |
142 | + if (cidrParts.length !== 2) | ||
132 | throw new Error('invalid CIDR subnet: ' + addr); | 143 | throw new Error('invalid CIDR subnet: ' + addr); |
133 | 144 | ||
134 | - var addr = cidrParts[0]; | ||
135 | var mask = ip.fromPrefixLen(parseInt(cidrParts[1], 10)); | 145 | var mask = ip.fromPrefixLen(parseInt(cidrParts[1], 10)); |
136 | 146 | ||
137 | return ip.mask(addr, mask); | 147 | return ip.mask(addr, mask); |
138 | -} | 148 | +}; |
139 | 149 | ||
140 | ip.subnet = function subnet(addr, mask) { | 150 | ip.subnet = function subnet(addr, mask) { |
141 | var networkAddress = ip.toLong(ip.mask(addr, mask)); | 151 | var networkAddress = ip.toLong(ip.mask(addr, mask)); |
@@ -145,7 +155,7 @@ ip.subnet = function subnet(addr, mask) { | @@ -145,7 +155,7 @@ ip.subnet = function subnet(addr, mask) { | ||
145 | var maskLength = 0; | 155 | var maskLength = 0; |
146 | 156 | ||
147 | for (var i = 0; i < maskBuffer.length; i++) { | 157 | for (var i = 0; i < maskBuffer.length; i++) { |
148 | - if (maskBuffer[i] == 0xff) { | 158 | + if (maskBuffer[i] === 0xff) { |
149 | maskLength += 8; | 159 | maskLength += 8; |
150 | } else { | 160 | } else { |
151 | var octet = maskBuffer[i] & 0xff; | 161 | var octet = maskBuffer[i] & 0xff; |
@@ -173,19 +183,19 @@ ip.subnet = function subnet(addr, mask) { | @@ -173,19 +183,19 @@ ip.subnet = function subnet(addr, mask) { | ||
173 | numberOfAddresses : numberOfAddresses - 2, | 183 | numberOfAddresses : numberOfAddresses - 2, |
174 | length: numberOfAddresses | 184 | length: numberOfAddresses |
175 | }; | 185 | }; |
176 | -} | 186 | +}; |
177 | 187 | ||
178 | ip.cidrSubnet = function cidrSubnet(cidrString) { | 188 | ip.cidrSubnet = function cidrSubnet(cidrString) { |
179 | var cidrParts = cidrString.split('/'); | 189 | var cidrParts = cidrString.split('/'); |
180 | 190 | ||
191 | + var addr = cidrParts[0]; | ||
181 | if (cidrParts.length !== 2) | 192 | if (cidrParts.length !== 2) |
182 | throw new Error('invalid CIDR subnet: ' + addr); | 193 | throw new Error('invalid CIDR subnet: ' + addr); |
183 | 194 | ||
184 | - var addr = cidrParts[0]; | ||
185 | var mask = ip.fromPrefixLen(parseInt(cidrParts[1], 10)); | 195 | var mask = ip.fromPrefixLen(parseInt(cidrParts[1], 10)); |
186 | 196 | ||
187 | return ip.subnet(addr, mask); | 197 | return ip.subnet(addr, mask); |
188 | -} | 198 | +}; |
189 | 199 | ||
190 | ip.not = function not(addr) { | 200 | ip.not = function not(addr) { |
191 | var buff = ip.toBuffer(addr); | 201 | var buff = ip.toBuffer(addr); |
@@ -200,7 +210,7 @@ ip.or = function or(a, b) { | @@ -200,7 +210,7 @@ ip.or = function or(a, b) { | ||
200 | b = ip.toBuffer(b); | 210 | b = ip.toBuffer(b); |
201 | 211 | ||
202 | // same protocol | 212 | // same protocol |
203 | - if (a.length == b.length) { | 213 | + if (a.length === b.length) { |
204 | for (var i = 0; i < a.length; ++i) { | 214 | for (var i = 0; i < a.length; ++i) { |
205 | a[i] |= b[i]; | 215 | a[i] |= b[i]; |
206 | } | 216 | } |
@@ -259,25 +269,26 @@ ip.isEqual = function isEqual(a, b) { | @@ -259,25 +269,26 @@ ip.isEqual = function isEqual(a, b) { | ||
259 | }; | 269 | }; |
260 | 270 | ||
261 | ip.isPrivate = function isPrivate(addr) { | 271 | ip.isPrivate = function isPrivate(addr) { |
262 | - return addr.match(/^10\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/) != null || | ||
263 | - addr.match(/^192\.168\.([0-9]{1,3})\.([0-9]{1,3})/) != null || | ||
264 | - addr.match( | ||
265 | - /^172\.(1[6-9]|2\d|30|31)\.([0-9]{1,3})\.([0-9]{1,3})/) != null || | ||
266 | - addr.match(/^127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/) != null || | ||
267 | - addr.match(/^169\.254\.([0-9]{1,3})\.([0-9]{1,3})/) != null || | ||
268 | - addr.match(/^fc00:/) != null || addr.match(/^fe80:/) != null || | ||
269 | - addr.match(/^::1$/) != null || addr.match(/^::$/) != null; | 272 | + return /^10\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/.test(addr) || |
273 | + /^192\.168\.([0-9]{1,3})\.([0-9]{1,3})/.test(addr) || | ||
274 | + /^172\.(1[6-9]|2\d|30|31)\.([0-9]{1,3})\.([0-9]{1,3})/.test(addr) || | ||
275 | + /^127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/.test(addr) || | ||
276 | + /^169\.254\.([0-9]{1,3})\.([0-9]{1,3})/.test(addr) || | ||
277 | + /^fc00:/.test(addr) || | ||
278 | + /^fe80:/.test(addr) || | ||
279 | + /^::1$/.test(addr) || | ||
280 | + /^::$/.test(addr); | ||
270 | }; | 281 | }; |
271 | 282 | ||
272 | ip.isPublic = function isPublic(addr) { | 283 | ip.isPublic = function isPublic(addr) { |
273 | return !ip.isPrivate(addr); | 284 | return !ip.isPrivate(addr); |
274 | -} | 285 | +}; |
275 | 286 | ||
276 | ip.isLoopback = function isLoopback(addr) { | 287 | ip.isLoopback = function isLoopback(addr) { |
277 | - return /^127\.0\.0\.1$/.test(addr) | ||
278 | - || /^fe80::1$/.test(addr) | ||
279 | - || /^::1$/.test(addr) | ||
280 | - || /^::$/.test(addr); | 288 | + return /^127\.\d+\.\d+\.\d+$/.test(addr) || |
289 | + /^fe80::1$/.test(addr) || | ||
290 | + /^::1$/.test(addr) || | ||
291 | + /^::$/.test(addr); | ||
281 | }; | 292 | }; |
282 | 293 | ||
283 | ip.loopback = function loopback(family) { | 294 | ip.loopback = function loopback(family) { |
@@ -290,9 +301,7 @@ ip.loopback = function loopback(family) { | @@ -290,9 +301,7 @@ ip.loopback = function loopback(family) { | ||
290 | throw new Error('family must be ipv4 or ipv6'); | 301 | throw new Error('family must be ipv4 or ipv6'); |
291 | } | 302 | } |
292 | 303 | ||
293 | - return family === 'ipv4' | ||
294 | - ? '127.0.0.1' | ||
295 | - : 'fe80::1'; | 304 | + return family === 'ipv4' ? '127.0.0.1' : 'fe80::1'; |
296 | }; | 305 | }; |
297 | 306 | ||
298 | // | 307 | // |
@@ -311,8 +320,8 @@ ip.loopback = function loopback(family) { | @@ -311,8 +320,8 @@ ip.loopback = function loopback(family) { | ||
311 | // * undefined: First address with `ipv4` or loopback addres `127.0.0.1`. | 320 | // * undefined: First address with `ipv4` or loopback addres `127.0.0.1`. |
312 | // | 321 | // |
313 | ip.address = function address(name, family) { | 322 | ip.address = function address(name, family) { |
314 | - var interfaces = os.networkInterfaces(), | ||
315 | - all; | 323 | + var interfaces = os.networkInterfaces(); |
324 | + var all; | ||
316 | 325 | ||
317 | // | 326 | // |
318 | // Default to `ipv4` | 327 | // Default to `ipv4` |
@@ -323,11 +332,14 @@ ip.address = function address(name, family) { | @@ -323,11 +332,14 @@ ip.address = function address(name, family) { | ||
323 | // If a specific network interface has been named, | 332 | // If a specific network interface has been named, |
324 | // return the address. | 333 | // return the address. |
325 | // | 334 | // |
326 | - if (name && !~['public', 'private'].indexOf(name)) { | ||
327 | - return interfaces[name].filter(function (details) { | ||
328 | - details.family = details.family.toLowerCase(); | ||
329 | - return details.family === family; | ||
330 | - })[0].address; | 335 | + if (name && name !== 'private' && name !== 'public') { |
336 | + var res = interfaces[name].filter(function(details) { | ||
337 | + var itemFamily = details.family.toLowerCase(); | ||
338 | + return itemFamily === family; | ||
339 | + }); | ||
340 | + if (res.length === 0) | ||
341 | + return undefined; | ||
342 | + return res[0].address; | ||
331 | } | 343 | } |
332 | 344 | ||
333 | var all = Object.keys(interfaces).map(function (nic) { | 345 | var all = Object.keys(interfaces).map(function (nic) { |
@@ -339,42 +351,32 @@ ip.address = function address(name, family) { | @@ -339,42 +351,32 @@ ip.address = function address(name, family) { | ||
339 | details.family = details.family.toLowerCase(); | 351 | details.family = details.family.toLowerCase(); |
340 | if (details.family !== family || ip.isLoopback(details.address)) { | 352 | if (details.family !== family || ip.isLoopback(details.address)) { |
341 | return false; | 353 | return false; |
342 | - } | ||
343 | - else if (!name) { | 354 | + } else if (!name) { |
344 | return true; | 355 | return true; |
345 | } | 356 | } |
346 | 357 | ||
347 | - return name === 'public' | ||
348 | - ? !ip.isPrivate(details.address) | ||
349 | - : ip.isPrivate(details.address) | 358 | + return name === 'public' ? !ip.isPrivate(details.address) : |
359 | + ip.isPrivate(details.address); | ||
350 | }); | 360 | }); |
351 | 361 | ||
352 | - return addresses.length | ||
353 | - ? addresses[0].address | ||
354 | - : undefined; | 362 | + return addresses.length ? addresses[0].address : undefined; |
355 | }).filter(Boolean); | 363 | }).filter(Boolean); |
356 | 364 | ||
357 | - return !all.length | ||
358 | - ? ip.loopback(family) | ||
359 | - : all[0]; | 365 | + return !all.length ? ip.loopback(family) : all[0]; |
360 | }; | 366 | }; |
361 | 367 | ||
362 | -ip.toLong = function toInt(ip){ | ||
363 | - var ipl=0; | ||
364 | - ip.split('.').forEach(function( octet ) { | ||
365 | - ipl<<=8; | ||
366 | - ipl+=parseInt(octet); | 368 | +ip.toLong = function toInt(ip) { |
369 | + var ipl = 0; | ||
370 | + ip.split('.').forEach(function(octet) { | ||
371 | + ipl <<= 8; | ||
372 | + ipl += parseInt(octet); | ||
367 | }); | 373 | }); |
368 | - return(ipl >>>0); | 374 | + return(ipl >>> 0); |
369 | }; | 375 | }; |
370 | 376 | ||
371 | -ip.fromLong = function fromInt(ipl){ | ||
372 | - return ( (ipl>>>24) +'.' + | ||
373 | - (ipl>>16 & 255) +'.' + | ||
374 | - (ipl>>8 & 255) +'.' + | 377 | +ip.fromLong = function fromInt(ipl) { |
378 | + return ((ipl >>> 24) + '.' + | ||
379 | + (ipl >> 16 & 255) + '.' + | ||
380 | + (ipl >> 8 & 255) + '.' + | ||
375 | (ipl & 255) ); | 381 | (ipl & 255) ); |
376 | }; | 382 | }; |
377 | - | ||
378 | -function _normalizeFamily(family) { | ||
379 | - return family ? family.toLowerCase() : 'ipv4'; | ||
380 | -} |
node_modules/ip/package.json
1 | { | 1 | { |
2 | "name": "ip", | 2 | "name": "ip", |
3 | - "version": "0.3.3", | 3 | + "version": "1.0.1", |
4 | "author": { | 4 | "author": { |
5 | "name": "Fedor Indutny", | 5 | "name": "Fedor Indutny", |
6 | "email": "fedor@indutny.com" | 6 | "email": "fedor@indutny.com" |
@@ -12,22 +12,24 @@ | @@ -12,22 +12,24 @@ | ||
12 | }, | 12 | }, |
13 | "main": "lib/ip", | 13 | "main": "lib/ip", |
14 | "devDependencies": { | 14 | "devDependencies": { |
15 | + "jscs": "^2.1.1", | ||
16 | + "jshint": "^2.8.0", | ||
15 | "mocha": "~1.3.2" | 17 | "mocha": "~1.3.2" |
16 | }, | 18 | }, |
17 | "scripts": { | 19 | "scripts": { |
18 | - "test": "mocha --reporter spec test/*-test.js" | 20 | + "test": "jscs lib/*.js test/*.js && jshint lib/*.js && mocha --reporter spec test/*-test.js" |
19 | }, | 21 | }, |
20 | "license": "MIT", | 22 | "license": "MIT", |
21 | - "gitHead": "7798e2d222718087863d8a5a99e3c02f3a30e2b9", | 23 | + "gitHead": "5fa3ae74c70f2af2f3bc1b8784685c5bc004d468", |
22 | "description": "IP address utilities for node.js", | 24 | "description": "IP address utilities for node.js", |
23 | "bugs": { | 25 | "bugs": { |
24 | "url": "https://github.com/indutny/node-ip/issues" | 26 | "url": "https://github.com/indutny/node-ip/issues" |
25 | }, | 27 | }, |
26 | - "_id": "ip@0.3.3", | ||
27 | - "_shasum": "8ee8309e92f0b040d287f72efaca1a21702d3fb4", | 28 | + "_id": "ip@1.0.1", |
29 | + "_shasum": "c7e356cdea225ae71b36d70f2e71a92ba4e42590", | ||
28 | "_from": "ip@latest", | 30 | "_from": "ip@latest", |
29 | - "_npmVersion": "2.9.0", | ||
30 | - "_nodeVersion": "2.0.0", | 31 | + "_npmVersion": "2.14.2", |
32 | + "_nodeVersion": "4.0.0", | ||
31 | "_npmUser": { | 33 | "_npmUser": { |
32 | "name": "indutny", | 34 | "name": "indutny", |
33 | "email": "fedor@indutny.com" | 35 | "email": "fedor@indutny.com" |
@@ -47,9 +49,10 @@ | @@ -47,9 +49,10 @@ | ||
47 | } | 49 | } |
48 | ], | 50 | ], |
49 | "dist": { | 51 | "dist": { |
50 | - "shasum": "8ee8309e92f0b040d287f72efaca1a21702d3fb4", | ||
51 | - "tarball": "http://registry.npmjs.org/ip/-/ip-0.3.3.tgz" | 52 | + "shasum": "c7e356cdea225ae71b36d70f2e71a92ba4e42590", |
53 | + "tarball": "http://registry.npmjs.org/ip/-/ip-1.0.1.tgz" | ||
52 | }, | 54 | }, |
53 | "directories": {}, | 55 | "directories": {}, |
54 | - "_resolved": "https://registry.npmjs.org/ip/-/ip-0.3.3.tgz" | 56 | + "_resolved": "https://registry.npmjs.org/ip/-/ip-1.0.1.tgz", |
57 | + "readme": "ERROR: No README data found!" | ||
55 | } | 58 | } |
node_modules/ip/test/api-test.js
1 | -var ip = require('..'), | ||
2 | - assert = require('assert'), | ||
3 | - net = require('net'), | ||
4 | - os = require('os'); | 1 | +'use strict'; |
2 | + | ||
3 | +var ip = require('..'); | ||
4 | +var assert = require('assert'); | ||
5 | +var net = require('net'); | ||
6 | +var os = require('os'); | ||
5 | 7 | ||
6 | describe('IP library for node.js', function() { | 8 | describe('IP library for node.js', function() { |
7 | describe('toBuffer()/toString() methods', function() { | 9 | describe('toBuffer()/toString() methods', function() { |
@@ -38,6 +40,12 @@ describe('IP library for node.js', function() { | @@ -38,6 +40,12 @@ describe('IP library for node.js', function() { | ||
38 | assert.equal(ip.toString(ip.toBuffer('abcd::dcba', buf, offset), | 40 | assert.equal(ip.toString(ip.toBuffer('abcd::dcba', buf, offset), |
39 | offset, 16), 'abcd::dcba'); | 41 | offset, 16), 'abcd::dcba'); |
40 | }); | 42 | }); |
43 | + | ||
44 | + it('should convert to buffer IPv6 mapped IPv4 address', function() { | ||
45 | + var buf = ip.toBuffer('::ffff:127.0.0.1'); | ||
46 | + assert.equal(buf.toString('hex'), '7f000001'); | ||
47 | + assert.equal(ip.toString(buf), '127.0.0.1'); | ||
48 | + }); | ||
41 | }); | 49 | }); |
42 | 50 | ||
43 | describe('fromPrefixLen() method', function() { | 51 | describe('fromPrefixLen() method', function() { |
@@ -198,6 +206,8 @@ describe('IP library for node.js', function() { | @@ -198,6 +206,8 @@ describe('IP library for node.js', function() { | ||
198 | assert(!ip.isEqual('127.0.0.1', '::7f00:2')); | 206 | assert(!ip.isEqual('127.0.0.1', '::7f00:2')); |
199 | assert(ip.isEqual('127.0.0.1', '::ffff:7f00:1')); | 207 | assert(ip.isEqual('127.0.0.1', '::ffff:7f00:1')); |
200 | assert(!ip.isEqual('127.0.0.1', '::ffaf:7f00:1')); | 208 | assert(!ip.isEqual('127.0.0.1', '::ffaf:7f00:1')); |
209 | + assert(ip.isEqual('::ffff:127.0.0.1', '::ffff:127.0.0.1')); | ||
210 | + assert(ip.isEqual('::ffff:127.0.0.1', '127.0.0.1')); | ||
201 | }); | 211 | }); |
202 | }); | 212 | }); |
203 | 213 | ||
@@ -249,69 +259,75 @@ describe('IP library for node.js', function() { | @@ -249,69 +259,75 @@ describe('IP library for node.js', function() { | ||
249 | }); | 259 | }); |
250 | }); | 260 | }); |
251 | 261 | ||
252 | - describe('loopback() method', function () { | ||
253 | - describe('undefined', function () { | ||
254 | - it('should respond with 127.0.0.1', function () { | 262 | + describe('loopback() method', function() { |
263 | + describe('undefined', function() { | ||
264 | + it('should respond with 127.0.0.1', function() { | ||
255 | assert.equal(ip.loopback(), '127.0.0.1') | 265 | assert.equal(ip.loopback(), '127.0.0.1') |
256 | }); | 266 | }); |
257 | }); | 267 | }); |
258 | 268 | ||
259 | - describe('ipv4', function () { | ||
260 | - it('should respond with 127.0.0.1', function () { | 269 | + describe('ipv4', function() { |
270 | + it('should respond with 127.0.0.1', function() { | ||
261 | assert.equal(ip.loopback('ipv4'), '127.0.0.1') | 271 | assert.equal(ip.loopback('ipv4'), '127.0.0.1') |
262 | }); | 272 | }); |
263 | }); | 273 | }); |
264 | 274 | ||
265 | - describe('ipv6', function () { | ||
266 | - it('should respond with fe80::1', function () { | 275 | + describe('ipv6', function() { |
276 | + it('should respond with fe80::1', function() { | ||
267 | assert.equal(ip.loopback('ipv6'), 'fe80::1') | 277 | assert.equal(ip.loopback('ipv6'), 'fe80::1') |
268 | }); | 278 | }); |
269 | }); | 279 | }); |
270 | }); | 280 | }); |
271 | 281 | ||
272 | - describe('isLoopback() method', function () { | ||
273 | - describe('127.0.0.1', function () { | ||
274 | - it('should respond with true', function () { | 282 | + describe('isLoopback() method', function() { |
283 | + describe('127.0.0.1', function() { | ||
284 | + it('should respond with true', function() { | ||
275 | assert.ok(ip.isLoopback('127.0.0.1')) | 285 | assert.ok(ip.isLoopback('127.0.0.1')) |
276 | }); | 286 | }); |
277 | }); | 287 | }); |
278 | 288 | ||
289 | + describe('127.8.8.8', function () { | ||
290 | + it('should respond with true', function () { | ||
291 | + assert.ok(ip.isLoopback('127.8.8.8')) | ||
292 | + }); | ||
293 | + }); | ||
294 | + | ||
279 | describe('8.8.8.8', function () { | 295 | describe('8.8.8.8', function () { |
280 | it('should respond with false', function () { | 296 | it('should respond with false', function () { |
281 | assert.equal(ip.isLoopback('8.8.8.8'), false); | 297 | assert.equal(ip.isLoopback('8.8.8.8'), false); |
282 | }); | 298 | }); |
283 | }); | 299 | }); |
284 | 300 | ||
285 | - describe('fe80::1', function () { | ||
286 | - it('should respond with true', function () { | 301 | + describe('fe80::1', function() { |
302 | + it('should respond with true', function() { | ||
287 | assert.ok(ip.isLoopback('fe80::1')) | 303 | assert.ok(ip.isLoopback('fe80::1')) |
288 | }); | 304 | }); |
289 | }); | 305 | }); |
290 | 306 | ||
291 | - describe('::1', function () { | ||
292 | - it('should respond with true', function () { | 307 | + describe('::1', function() { |
308 | + it('should respond with true', function() { | ||
293 | assert.ok(ip.isLoopback('::1')) | 309 | assert.ok(ip.isLoopback('::1')) |
294 | }); | 310 | }); |
295 | }); | 311 | }); |
296 | 312 | ||
297 | - describe('::', function () { | ||
298 | - it('should respond with true', function () { | 313 | + describe('::', function() { |
314 | + it('should respond with true', function() { | ||
299 | assert.ok(ip.isLoopback('::')) | 315 | assert.ok(ip.isLoopback('::')) |
300 | }); | 316 | }); |
301 | }); | 317 | }); |
302 | }); | 318 | }); |
303 | 319 | ||
304 | - describe('address() method', function () { | ||
305 | - describe('undefined', function () { | ||
306 | - it('should respond with a private ip', function () { | 320 | + describe('address() method', function() { |
321 | + describe('undefined', function() { | ||
322 | + it('should respond with a private ip', function() { | ||
307 | assert.ok(ip.isPrivate(ip.address())); | 323 | assert.ok(ip.isPrivate(ip.address())); |
308 | }); | 324 | }); |
309 | }); | 325 | }); |
310 | 326 | ||
311 | - describe('private', function () { | ||
312 | - [undefined, 'ipv4', 'ipv6'].forEach(function (family) { | ||
313 | - describe(family, function () { | ||
314 | - it('should respond with a private ip', function () { | 327 | + describe('private', function() { |
328 | + [ undefined, 'ipv4', 'ipv6' ].forEach(function(family) { | ||
329 | + describe(family, function() { | ||
330 | + it('should respond with a private ip', function() { | ||
315 | assert.ok(ip.isPrivate(ip.address('private', family))); | 331 | assert.ok(ip.isPrivate(ip.address('private', family))); |
316 | }); | 332 | }); |
317 | }); | 333 | }); |
@@ -320,34 +336,36 @@ describe('IP library for node.js', function() { | @@ -320,34 +336,36 @@ describe('IP library for node.js', function() { | ||
320 | 336 | ||
321 | var interfaces = os.networkInterfaces(); | 337 | var interfaces = os.networkInterfaces(); |
322 | 338 | ||
323 | - Object.keys(interfaces).forEach(function (nic) { | ||
324 | - describe(nic, function () { | ||
325 | - [undefined, 'ipv4'].forEach(function (family) { | ||
326 | - describe(family, function () { | ||
327 | - it('should respond with an ipv4 address', function () { | ||
328 | - assert.ok(net.isIPv4(ip.address(nic, family))); | 339 | + Object.keys(interfaces).forEach(function(nic) { |
340 | + describe(nic, function() { | ||
341 | + [ undefined, 'ipv4' ].forEach(function(family) { | ||
342 | + describe(family, function() { | ||
343 | + it('should respond with an ipv4 address', function() { | ||
344 | + var addr = ip.address(nic, family); | ||
345 | + assert.ok(!addr || net.isIPv4(addr)); | ||
329 | }); | 346 | }); |
330 | }); | 347 | }); |
331 | }); | 348 | }); |
332 | 349 | ||
333 | - describe('ipv6', function () { | ||
334 | - it('should respond with an ipv6 address', function () { | ||
335 | - assert.ok(net.isIPv6(ip.address(nic, 'ipv6'))); | 350 | + describe('ipv6', function() { |
351 | + it('should respond with an ipv6 address', function() { | ||
352 | + var addr = ip.address(nic, 'ipv6'); | ||
353 | + assert.ok(!addr || net.isIPv6(addr)); | ||
336 | }); | 354 | }); |
337 | }) | 355 | }) |
338 | }); | 356 | }); |
339 | }); | 357 | }); |
340 | }); | 358 | }); |
341 | 359 | ||
342 | - describe('toLong() method', function(){ | ||
343 | - it('should respond with a int', function(){ | 360 | + describe('toLong() method', function() { |
361 | + it('should respond with a int', function() { | ||
344 | assert.equal(ip.toLong('127.0.0.1'), 2130706433); | 362 | assert.equal(ip.toLong('127.0.0.1'), 2130706433); |
345 | assert.equal(ip.toLong('255.255.255.255'), 4294967295); | 363 | assert.equal(ip.toLong('255.255.255.255'), 4294967295); |
346 | }); | 364 | }); |
347 | }); | 365 | }); |
348 | 366 | ||
349 | - describe('fromLong() method', function(){ | ||
350 | - it('should repond with ipv4 address', function(){ | 367 | + describe('fromLong() method', function() { |
368 | + it('should repond with ipv4 address', function() { | ||
351 | assert.equal(ip.fromLong(2130706433), '127.0.0.1'); | 369 | assert.equal(ip.fromLong(2130706433), '127.0.0.1'); |
352 | assert.equal(ip.fromLong(4294967295), '255.255.255.255'); | 370 | assert.equal(ip.fromLong(4294967295), '255.255.255.255'); |
353 | }); | 371 | }); |
node_modules/mkdirp/.npmignore
node_modules/mkdirp/.travis.yml
node_modules/mkdirp/index.js
1 | var path = require('path'); | 1 | var path = require('path'); |
2 | var fs = require('fs'); | 2 | var fs = require('fs'); |
3 | +var _0777 = parseInt('0777', 8); | ||
3 | 4 | ||
4 | module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP; | 5 | module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP; |
5 | 6 | ||
@@ -16,7 +17,7 @@ function mkdirP (p, opts, f, made) { | @@ -16,7 +17,7 @@ function mkdirP (p, opts, f, made) { | ||
16 | var xfs = opts.fs || fs; | 17 | var xfs = opts.fs || fs; |
17 | 18 | ||
18 | if (mode === undefined) { | 19 | if (mode === undefined) { |
19 | - mode = 0777 & (~process.umask()); | 20 | + mode = _0777 & (~process.umask()); |
20 | } | 21 | } |
21 | if (!made) made = null; | 22 | if (!made) made = null; |
22 | 23 | ||
@@ -60,7 +61,7 @@ mkdirP.sync = function sync (p, opts, made) { | @@ -60,7 +61,7 @@ mkdirP.sync = function sync (p, opts, made) { | ||
60 | var xfs = opts.fs || fs; | 61 | var xfs = opts.fs || fs; |
61 | 62 | ||
62 | if (mode === undefined) { | 63 | if (mode === undefined) { |
63 | - mode = 0777 & (~process.umask()); | 64 | + mode = _0777 & (~process.umask()); |
64 | } | 65 | } |
65 | if (!made) made = null; | 66 | if (!made) made = null; |
66 | 67 |
node_modules/mkdirp/node_modules/minimist/package.json
@@ -62,6 +62,5 @@ | @@ -62,6 +62,5 @@ | ||
62 | ], | 62 | ], |
63 | "directories": {}, | 63 | "directories": {}, |
64 | "_shasum": "857fcabfc3397d2625b8228262e86aa7a011b05d", | 64 | "_shasum": "857fcabfc3397d2625b8228262e86aa7a011b05d", |
65 | - "_resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", | ||
66 | - "readme": "ERROR: No README data found!" | 65 | + "_resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" |
67 | } | 66 | } |
node_modules/mkdirp/package.json
1 | { | 1 | { |
2 | "name": "mkdirp", | 2 | "name": "mkdirp", |
3 | "description": "Recursively mkdir, like `mkdir -p`", | 3 | "description": "Recursively mkdir, like `mkdir -p`", |
4 | - "version": "0.5.0", | 4 | + "version": "0.5.1", |
5 | "author": { | 5 | "author": { |
6 | "name": "James Halliday", | 6 | "name": "James Halliday", |
7 | "email": "mail@substack.net", | 7 | "email": "mail@substack.net", |
8 | "url": "http://substack.net" | 8 | "url": "http://substack.net" |
9 | }, | 9 | }, |
10 | - "main": "./index", | 10 | + "main": "index.js", |
11 | "keywords": [ | 11 | "keywords": [ |
12 | "mkdir", | 12 | "mkdir", |
13 | "directory" | 13 | "directory" |
14 | ], | 14 | ], |
15 | "repository": { | 15 | "repository": { |
16 | "type": "git", | 16 | "type": "git", |
17 | - "url": "https://github.com/substack/node-mkdirp.git" | 17 | + "url": "git+https://github.com/substack/node-mkdirp.git" |
18 | }, | 18 | }, |
19 | "scripts": { | 19 | "scripts": { |
20 | "test": "tap test/*.js" | 20 | "test": "tap test/*.js" |
@@ -23,27 +23,30 @@ | @@ -23,27 +23,30 @@ | ||
23 | "minimist": "0.0.8" | 23 | "minimist": "0.0.8" |
24 | }, | 24 | }, |
25 | "devDependencies": { | 25 | "devDependencies": { |
26 | - "tap": "~0.4.0", | ||
27 | - "mock-fs": "~2.2.0" | 26 | + "tap": "1", |
27 | + "mock-fs": "2 >=2.7.0" | ||
28 | }, | 28 | }, |
29 | "bin": { | 29 | "bin": { |
30 | "mkdirp": "bin/cmd.js" | 30 | "mkdirp": "bin/cmd.js" |
31 | }, | 31 | }, |
32 | "license": "MIT", | 32 | "license": "MIT", |
33 | + "gitHead": "d4eff0f06093aed4f387e88e9fc301cb76beedc7", | ||
33 | "bugs": { | 34 | "bugs": { |
34 | "url": "https://github.com/substack/node-mkdirp/issues" | 35 | "url": "https://github.com/substack/node-mkdirp/issues" |
35 | }, | 36 | }, |
36 | - "homepage": "https://github.com/substack/node-mkdirp", | ||
37 | - "_id": "mkdirp@0.5.0", | ||
38 | - "dist": { | ||
39 | - "shasum": "1d73076a6df986cd9344e15e71fcc05a4c9abf12", | ||
40 | - "tarball": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz" | ||
41 | - }, | 37 | + "homepage": "https://github.com/substack/node-mkdirp#readme", |
38 | + "_id": "mkdirp@0.5.1", | ||
39 | + "_shasum": "30057438eac6cf7f8c4767f38648d6697d75c903", | ||
42 | "_from": "mkdirp@>=0.5.0 <0.6.0", | 40 | "_from": "mkdirp@>=0.5.0 <0.6.0", |
43 | - "_npmVersion": "1.4.3", | 41 | + "_npmVersion": "2.9.0", |
42 | + "_nodeVersion": "2.0.0", | ||
44 | "_npmUser": { | 43 | "_npmUser": { |
45 | "name": "substack", | 44 | "name": "substack", |
46 | - "email": "mail@substack.net" | 45 | + "email": "substack@gmail.com" |
46 | + }, | ||
47 | + "dist": { | ||
48 | + "shasum": "30057438eac6cf7f8c4767f38648d6697d75c903", | ||
49 | + "tarball": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" | ||
47 | }, | 50 | }, |
48 | "maintainers": [ | 51 | "maintainers": [ |
49 | { | 52 | { |
@@ -52,7 +55,6 @@ | @@ -52,7 +55,6 @@ | ||
52 | } | 55 | } |
53 | ], | 56 | ], |
54 | "directories": {}, | 57 | "directories": {}, |
55 | - "_shasum": "1d73076a6df986cd9344e15e71fcc05a4c9abf12", | ||
56 | - "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", | 58 | + "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", |
57 | "readme": "ERROR: No README data found!" | 59 | "readme": "ERROR: No README data found!" |
58 | } | 60 | } |
node_modules/mkdirp/test/chmod.js
@@ -2,6 +2,9 @@ var mkdirp = require('../').mkdirp; | @@ -2,6 +2,9 @@ var mkdirp = require('../').mkdirp; | ||
2 | var path = require('path'); | 2 | var path = require('path'); |
3 | var fs = require('fs'); | 3 | var fs = require('fs'); |
4 | var test = require('tap').test; | 4 | var test = require('tap').test; |
5 | +var _0777 = parseInt('0777', 8); | ||
6 | +var _0755 = parseInt('0755', 8); | ||
7 | +var _0744 = parseInt('0744', 8); | ||
5 | 8 | ||
6 | var ps = [ '', 'tmp' ]; | 9 | var ps = [ '', 'tmp' ]; |
7 | 10 | ||
@@ -13,20 +16,20 @@ for (var i = 0; i < 25; i++) { | @@ -13,20 +16,20 @@ for (var i = 0; i < 25; i++) { | ||
13 | var file = ps.join('/'); | 16 | var file = ps.join('/'); |
14 | 17 | ||
15 | test('chmod-pre', function (t) { | 18 | test('chmod-pre', function (t) { |
16 | - var mode = 0744 | 19 | + var mode = _0744 |
17 | mkdirp(file, mode, function (er) { | 20 | mkdirp(file, mode, function (er) { |
18 | t.ifError(er, 'should not error'); | 21 | t.ifError(er, 'should not error'); |
19 | fs.stat(file, function (er, stat) { | 22 | fs.stat(file, function (er, stat) { |
20 | t.ifError(er, 'should exist'); | 23 | t.ifError(er, 'should exist'); |
21 | t.ok(stat && stat.isDirectory(), 'should be directory'); | 24 | t.ok(stat && stat.isDirectory(), 'should be directory'); |
22 | - t.equal(stat && stat.mode & 0777, mode, 'should be 0744'); | 25 | + t.equal(stat && stat.mode & _0777, mode, 'should be 0744'); |
23 | t.end(); | 26 | t.end(); |
24 | }); | 27 | }); |
25 | }); | 28 | }); |
26 | }); | 29 | }); |
27 | 30 | ||
28 | test('chmod', function (t) { | 31 | test('chmod', function (t) { |
29 | - var mode = 0755 | 32 | + var mode = _0755 |
30 | mkdirp(file, mode, function (er) { | 33 | mkdirp(file, mode, function (er) { |
31 | t.ifError(er, 'should not error'); | 34 | t.ifError(er, 'should not error'); |
32 | fs.stat(file, function (er, stat) { | 35 | fs.stat(file, function (er, stat) { |
node_modules/mkdirp/test/clobber.js
@@ -2,6 +2,7 @@ var mkdirp = require('../').mkdirp; | @@ -2,6 +2,7 @@ var mkdirp = require('../').mkdirp; | ||
2 | var path = require('path'); | 2 | var path = require('path'); |
3 | var fs = require('fs'); | 3 | var fs = require('fs'); |
4 | var test = require('tap').test; | 4 | var test = require('tap').test; |
5 | +var _0755 = parseInt('0755', 8); | ||
5 | 6 | ||
6 | var ps = [ '', 'tmp' ]; | 7 | var ps = [ '', 'tmp' ]; |
7 | 8 | ||
@@ -29,7 +30,7 @@ test('clobber-pre', function (t) { | @@ -29,7 +30,7 @@ test('clobber-pre', function (t) { | ||
29 | 30 | ||
30 | test('clobber', function (t) { | 31 | test('clobber', function (t) { |
31 | t.plan(2); | 32 | t.plan(2); |
32 | - mkdirp(file, 0755, function (err) { | 33 | + mkdirp(file, _0755, function (err) { |
33 | t.ok(err); | 34 | t.ok(err); |
34 | t.equal(err.code, 'ENOTDIR'); | 35 | t.equal(err.code, 'ENOTDIR'); |
35 | t.end(); | 36 | t.end(); |
node_modules/mkdirp/test/mkdirp.js
@@ -3,6 +3,8 @@ var path = require('path'); | @@ -3,6 +3,8 @@ var path = require('path'); | ||
3 | var fs = require('fs'); | 3 | var fs = require('fs'); |
4 | var exists = fs.exists || path.exists; | 4 | var exists = fs.exists || path.exists; |
5 | var test = require('tap').test; | 5 | var test = require('tap').test; |
6 | +var _0777 = parseInt('0777', 8); | ||
7 | +var _0755 = parseInt('0755', 8); | ||
6 | 8 | ||
7 | test('woo', function (t) { | 9 | test('woo', function (t) { |
8 | t.plan(5); | 10 | t.plan(5); |
@@ -12,13 +14,13 @@ test('woo', function (t) { | @@ -12,13 +14,13 @@ test('woo', function (t) { | ||
12 | 14 | ||
13 | var file = '/tmp/' + [x,y,z].join('/'); | 15 | var file = '/tmp/' + [x,y,z].join('/'); |
14 | 16 | ||
15 | - mkdirp(file, 0755, function (err) { | 17 | + mkdirp(file, _0755, function (err) { |
16 | t.ifError(err); | 18 | t.ifError(err); |
17 | exists(file, function (ex) { | 19 | exists(file, function (ex) { |
18 | t.ok(ex, 'file created'); | 20 | t.ok(ex, 'file created'); |
19 | fs.stat(file, function (err, stat) { | 21 | fs.stat(file, function (err, stat) { |
20 | t.ifError(err); | 22 | t.ifError(err); |
21 | - t.equal(stat.mode & 0777, 0755); | 23 | + t.equal(stat.mode & _0777, _0755); |
22 | t.ok(stat.isDirectory(), 'target not a directory'); | 24 | t.ok(stat.isDirectory(), 'target not a directory'); |
23 | }) | 25 | }) |
24 | }) | 26 | }) |
node_modules/mkdirp/test/opts_fs.js
@@ -2,6 +2,8 @@ var mkdirp = require('../'); | @@ -2,6 +2,8 @@ var mkdirp = require('../'); | ||
2 | var path = require('path'); | 2 | var path = require('path'); |
3 | var test = require('tap').test; | 3 | var test = require('tap').test; |
4 | var mockfs = require('mock-fs'); | 4 | var mockfs = require('mock-fs'); |
5 | +var _0777 = parseInt('0777', 8); | ||
6 | +var _0755 = parseInt('0755', 8); | ||
5 | 7 | ||
6 | test('opts.fs', function (t) { | 8 | test('opts.fs', function (t) { |
7 | t.plan(5); | 9 | t.plan(5); |
@@ -13,13 +15,13 @@ test('opts.fs', function (t) { | @@ -13,13 +15,13 @@ test('opts.fs', function (t) { | ||
13 | var file = '/beep/boop/' + [x,y,z].join('/'); | 15 | var file = '/beep/boop/' + [x,y,z].join('/'); |
14 | var xfs = mockfs.fs(); | 16 | var xfs = mockfs.fs(); |
15 | 17 | ||
16 | - mkdirp(file, { fs: xfs, mode: 0755 }, function (err) { | 18 | + mkdirp(file, { fs: xfs, mode: _0755 }, function (err) { |
17 | t.ifError(err); | 19 | t.ifError(err); |
18 | xfs.exists(file, function (ex) { | 20 | xfs.exists(file, function (ex) { |
19 | t.ok(ex, 'created file'); | 21 | t.ok(ex, 'created file'); |
20 | xfs.stat(file, function (err, stat) { | 22 | xfs.stat(file, function (err, stat) { |
21 | t.ifError(err); | 23 | t.ifError(err); |
22 | - t.equal(stat.mode & 0777, 0755); | 24 | + t.equal(stat.mode & _0777, _0755); |
23 | t.ok(stat.isDirectory(), 'target not a directory'); | 25 | t.ok(stat.isDirectory(), 'target not a directory'); |
24 | }); | 26 | }); |
25 | }); | 27 | }); |
node_modules/mkdirp/test/opts_fs_sync.js
@@ -2,6 +2,8 @@ var mkdirp = require('../'); | @@ -2,6 +2,8 @@ var mkdirp = require('../'); | ||
2 | var path = require('path'); | 2 | var path = require('path'); |
3 | var test = require('tap').test; | 3 | var test = require('tap').test; |
4 | var mockfs = require('mock-fs'); | 4 | var mockfs = require('mock-fs'); |
5 | +var _0777 = parseInt('0777', 8); | ||
6 | +var _0755 = parseInt('0755', 8); | ||
5 | 7 | ||
6 | test('opts.fs sync', function (t) { | 8 | test('opts.fs sync', function (t) { |
7 | t.plan(4); | 9 | t.plan(4); |
@@ -13,12 +15,12 @@ test('opts.fs sync', function (t) { | @@ -13,12 +15,12 @@ test('opts.fs sync', function (t) { | ||
13 | var file = '/beep/boop/' + [x,y,z].join('/'); | 15 | var file = '/beep/boop/' + [x,y,z].join('/'); |
14 | var xfs = mockfs.fs(); | 16 | var xfs = mockfs.fs(); |
15 | 17 | ||
16 | - mkdirp.sync(file, { fs: xfs, mode: 0755 }); | 18 | + mkdirp.sync(file, { fs: xfs, mode: _0755 }); |
17 | xfs.exists(file, function (ex) { | 19 | xfs.exists(file, function (ex) { |
18 | t.ok(ex, 'created file'); | 20 | t.ok(ex, 'created file'); |
19 | xfs.stat(file, function (err, stat) { | 21 | xfs.stat(file, function (err, stat) { |
20 | t.ifError(err); | 22 | t.ifError(err); |
21 | - t.equal(stat.mode & 0777, 0755); | 23 | + t.equal(stat.mode & _0777, _0755); |
22 | t.ok(stat.isDirectory(), 'target not a directory'); | 24 | t.ok(stat.isDirectory(), 'target not a directory'); |
23 | }); | 25 | }); |
24 | }); | 26 | }); |
node_modules/mkdirp/test/perm.js
@@ -3,18 +3,20 @@ var path = require('path'); | @@ -3,18 +3,20 @@ var path = require('path'); | ||
3 | var fs = require('fs'); | 3 | var fs = require('fs'); |
4 | var exists = fs.exists || path.exists; | 4 | var exists = fs.exists || path.exists; |
5 | var test = require('tap').test; | 5 | var test = require('tap').test; |
6 | +var _0777 = parseInt('0777', 8); | ||
7 | +var _0755 = parseInt('0755', 8); | ||
6 | 8 | ||
7 | test('async perm', function (t) { | 9 | test('async perm', function (t) { |
8 | t.plan(5); | 10 | t.plan(5); |
9 | var file = '/tmp/' + (Math.random() * (1<<30)).toString(16); | 11 | var file = '/tmp/' + (Math.random() * (1<<30)).toString(16); |
10 | 12 | ||
11 | - mkdirp(file, 0755, function (err) { | 13 | + mkdirp(file, _0755, function (err) { |
12 | t.ifError(err); | 14 | t.ifError(err); |
13 | exists(file, function (ex) { | 15 | exists(file, function (ex) { |
14 | t.ok(ex, 'file created'); | 16 | t.ok(ex, 'file created'); |
15 | fs.stat(file, function (err, stat) { | 17 | fs.stat(file, function (err, stat) { |
16 | t.ifError(err); | 18 | t.ifError(err); |
17 | - t.equal(stat.mode & 0777, 0755); | 19 | + t.equal(stat.mode & _0777, _0755); |
18 | t.ok(stat.isDirectory(), 'target not a directory'); | 20 | t.ok(stat.isDirectory(), 'target not a directory'); |
19 | }) | 21 | }) |
20 | }) | 22 | }) |
@@ -22,7 +24,7 @@ test('async perm', function (t) { | @@ -22,7 +24,7 @@ test('async perm', function (t) { | ||
22 | }); | 24 | }); |
23 | 25 | ||
24 | test('async root perm', function (t) { | 26 | test('async root perm', function (t) { |
25 | - mkdirp('/tmp', 0755, function (err) { | 27 | + mkdirp('/tmp', _0755, function (err) { |
26 | if (err) t.fail(err); | 28 | if (err) t.fail(err); |
27 | t.end(); | 29 | t.end(); |
28 | }); | 30 | }); |
node_modules/mkdirp/test/perm_sync.js
@@ -3,17 +3,19 @@ var path = require('path'); | @@ -3,17 +3,19 @@ var path = require('path'); | ||
3 | var fs = require('fs'); | 3 | var fs = require('fs'); |
4 | var exists = fs.exists || path.exists; | 4 | var exists = fs.exists || path.exists; |
5 | var test = require('tap').test; | 5 | var test = require('tap').test; |
6 | +var _0777 = parseInt('0777', 8); | ||
7 | +var _0755 = parseInt('0755', 8); | ||
6 | 8 | ||
7 | test('sync perm', function (t) { | 9 | test('sync perm', function (t) { |
8 | t.plan(4); | 10 | t.plan(4); |
9 | var file = '/tmp/' + (Math.random() * (1<<30)).toString(16) + '.json'; | 11 | var file = '/tmp/' + (Math.random() * (1<<30)).toString(16) + '.json'; |
10 | 12 | ||
11 | - mkdirp.sync(file, 0755); | 13 | + mkdirp.sync(file, _0755); |
12 | exists(file, function (ex) { | 14 | exists(file, function (ex) { |
13 | t.ok(ex, 'file created'); | 15 | t.ok(ex, 'file created'); |
14 | fs.stat(file, function (err, stat) { | 16 | fs.stat(file, function (err, stat) { |
15 | t.ifError(err); | 17 | t.ifError(err); |
16 | - t.equal(stat.mode & 0777, 0755); | 18 | + t.equal(stat.mode & _0777, _0755); |
17 | t.ok(stat.isDirectory(), 'target not a directory'); | 19 | t.ok(stat.isDirectory(), 'target not a directory'); |
18 | }); | 20 | }); |
19 | }); | 21 | }); |
@@ -23,7 +25,7 @@ test('sync root perm', function (t) { | @@ -23,7 +25,7 @@ test('sync root perm', function (t) { | ||
23 | t.plan(3); | 25 | t.plan(3); |
24 | 26 | ||
25 | var file = '/tmp'; | 27 | var file = '/tmp'; |
26 | - mkdirp.sync(file, 0755); | 28 | + mkdirp.sync(file, _0755); |
27 | exists(file, function (ex) { | 29 | exists(file, function (ex) { |
28 | t.ok(ex, 'file created'); | 30 | t.ok(ex, 'file created'); |
29 | fs.stat(file, function (err, stat) { | 31 | fs.stat(file, function (err, stat) { |
node_modules/mkdirp/test/race.js
@@ -3,9 +3,11 @@ var path = require('path'); | @@ -3,9 +3,11 @@ var path = require('path'); | ||
3 | var fs = require('fs'); | 3 | var fs = require('fs'); |
4 | var exists = fs.exists || path.exists; | 4 | var exists = fs.exists || path.exists; |
5 | var test = require('tap').test; | 5 | var test = require('tap').test; |
6 | +var _0777 = parseInt('0777', 8); | ||
7 | +var _0755 = parseInt('0755', 8); | ||
6 | 8 | ||
7 | test('race', function (t) { | 9 | test('race', function (t) { |
8 | - t.plan(6); | 10 | + t.plan(10); |
9 | var ps = [ '', 'tmp' ]; | 11 | var ps = [ '', 'tmp' ]; |
10 | 12 | ||
11 | for (var i = 0; i < 25; i++) { | 13 | for (var i = 0; i < 25; i++) { |
@@ -15,24 +17,19 @@ test('race', function (t) { | @@ -15,24 +17,19 @@ test('race', function (t) { | ||
15 | var file = ps.join('/'); | 17 | var file = ps.join('/'); |
16 | 18 | ||
17 | var res = 2; | 19 | var res = 2; |
18 | - mk(file, function () { | ||
19 | - if (--res === 0) t.end(); | ||
20 | - }); | 20 | + mk(file); |
21 | 21 | ||
22 | - mk(file, function () { | ||
23 | - if (--res === 0) t.end(); | ||
24 | - }); | 22 | + mk(file); |
25 | 23 | ||
26 | function mk (file, cb) { | 24 | function mk (file, cb) { |
27 | - mkdirp(file, 0755, function (err) { | 25 | + mkdirp(file, _0755, function (err) { |
28 | t.ifError(err); | 26 | t.ifError(err); |
29 | exists(file, function (ex) { | 27 | exists(file, function (ex) { |
30 | t.ok(ex, 'file created'); | 28 | t.ok(ex, 'file created'); |
31 | fs.stat(file, function (err, stat) { | 29 | fs.stat(file, function (err, stat) { |
32 | t.ifError(err); | 30 | t.ifError(err); |
33 | - t.equal(stat.mode & 0777, 0755); | 31 | + t.equal(stat.mode & _0777, _0755); |
34 | t.ok(stat.isDirectory(), 'target not a directory'); | 32 | t.ok(stat.isDirectory(), 'target not a directory'); |
35 | - if (cb) cb(); | ||
36 | }); | 33 | }); |
37 | }) | 34 | }) |
38 | }); | 35 | }); |
node_modules/mkdirp/test/rel.js
@@ -3,6 +3,8 @@ var path = require('path'); | @@ -3,6 +3,8 @@ var path = require('path'); | ||
3 | var fs = require('fs'); | 3 | var fs = require('fs'); |
4 | var exists = fs.exists || path.exists; | 4 | var exists = fs.exists || path.exists; |
5 | var test = require('tap').test; | 5 | var test = require('tap').test; |
6 | +var _0777 = parseInt('0777', 8); | ||
7 | +var _0755 = parseInt('0755', 8); | ||
6 | 8 | ||
7 | test('rel', function (t) { | 9 | test('rel', function (t) { |
8 | t.plan(5); | 10 | t.plan(5); |
@@ -15,14 +17,14 @@ test('rel', function (t) { | @@ -15,14 +17,14 @@ test('rel', function (t) { | ||
15 | 17 | ||
16 | var file = [x,y,z].join('/'); | 18 | var file = [x,y,z].join('/'); |
17 | 19 | ||
18 | - mkdirp(file, 0755, function (err) { | 20 | + mkdirp(file, _0755, function (err) { |
19 | t.ifError(err); | 21 | t.ifError(err); |
20 | exists(file, function (ex) { | 22 | exists(file, function (ex) { |
21 | t.ok(ex, 'file created'); | 23 | t.ok(ex, 'file created'); |
22 | fs.stat(file, function (err, stat) { | 24 | fs.stat(file, function (err, stat) { |
23 | t.ifError(err); | 25 | t.ifError(err); |
24 | process.chdir(cwd); | 26 | process.chdir(cwd); |
25 | - t.equal(stat.mode & 0777, 0755); | 27 | + t.equal(stat.mode & _0777, _0755); |
26 | t.ok(stat.isDirectory(), 'target not a directory'); | 28 | t.ok(stat.isDirectory(), 'target not a directory'); |
27 | }) | 29 | }) |
28 | }) | 30 | }) |
node_modules/mkdirp/test/root.js
@@ -2,12 +2,13 @@ var mkdirp = require('../'); | @@ -2,12 +2,13 @@ var mkdirp = require('../'); | ||
2 | var path = require('path'); | 2 | var path = require('path'); |
3 | var fs = require('fs'); | 3 | var fs = require('fs'); |
4 | var test = require('tap').test; | 4 | var test = require('tap').test; |
5 | +var _0755 = parseInt('0755', 8); | ||
5 | 6 | ||
6 | test('root', function (t) { | 7 | test('root', function (t) { |
7 | // '/' on unix, 'c:/' on windows. | 8 | // '/' on unix, 'c:/' on windows. |
8 | var file = path.resolve('/'); | 9 | var file = path.resolve('/'); |
9 | 10 | ||
10 | - mkdirp(file, 0755, function (err) { | 11 | + mkdirp(file, _0755, function (err) { |
11 | if (err) throw err | 12 | if (err) throw err |
12 | fs.stat(file, function (er, stat) { | 13 | fs.stat(file, function (er, stat) { |
13 | if (er) throw er | 14 | if (er) throw er |
node_modules/mkdirp/test/sync.js
@@ -3,6 +3,8 @@ var path = require('path'); | @@ -3,6 +3,8 @@ var path = require('path'); | ||
3 | var fs = require('fs'); | 3 | var fs = require('fs'); |
4 | var exists = fs.exists || path.exists; | 4 | var exists = fs.exists || path.exists; |
5 | var test = require('tap').test; | 5 | var test = require('tap').test; |
6 | +var _0777 = parseInt('0777', 8); | ||
7 | +var _0755 = parseInt('0755', 8); | ||
6 | 8 | ||
7 | test('sync', function (t) { | 9 | test('sync', function (t) { |
8 | t.plan(4); | 10 | t.plan(4); |
@@ -13,7 +15,7 @@ test('sync', function (t) { | @@ -13,7 +15,7 @@ test('sync', function (t) { | ||
13 | var file = '/tmp/' + [x,y,z].join('/'); | 15 | var file = '/tmp/' + [x,y,z].join('/'); |
14 | 16 | ||
15 | try { | 17 | try { |
16 | - mkdirp.sync(file, 0755); | 18 | + mkdirp.sync(file, _0755); |
17 | } catch (err) { | 19 | } catch (err) { |
18 | t.fail(err); | 20 | t.fail(err); |
19 | return t.end(); | 21 | return t.end(); |
@@ -23,7 +25,7 @@ test('sync', function (t) { | @@ -23,7 +25,7 @@ test('sync', function (t) { | ||
23 | t.ok(ex, 'file created'); | 25 | t.ok(ex, 'file created'); |
24 | fs.stat(file, function (err, stat) { | 26 | fs.stat(file, function (err, stat) { |
25 | t.ifError(err); | 27 | t.ifError(err); |
26 | - t.equal(stat.mode & 0777, 0755); | 28 | + t.equal(stat.mode & _0777, _0755); |
27 | t.ok(stat.isDirectory(), 'target not a directory'); | 29 | t.ok(stat.isDirectory(), 'target not a directory'); |
28 | }); | 30 | }); |
29 | }); | 31 | }); |
node_modules/mkdirp/test/umask.js
@@ -3,6 +3,8 @@ var path = require('path'); | @@ -3,6 +3,8 @@ var path = require('path'); | ||
3 | var fs = require('fs'); | 3 | var fs = require('fs'); |
4 | var exists = fs.exists || path.exists; | 4 | var exists = fs.exists || path.exists; |
5 | var test = require('tap').test; | 5 | var test = require('tap').test; |
6 | +var _0777 = parseInt('0777', 8); | ||
7 | +var _0755 = parseInt('0755', 8); | ||
6 | 8 | ||
7 | test('implicit mode from umask', function (t) { | 9 | test('implicit mode from umask', function (t) { |
8 | t.plan(5); | 10 | t.plan(5); |
@@ -18,7 +20,7 @@ test('implicit mode from umask', function (t) { | @@ -18,7 +20,7 @@ test('implicit mode from umask', function (t) { | ||
18 | t.ok(ex, 'file created'); | 20 | t.ok(ex, 'file created'); |
19 | fs.stat(file, function (err, stat) { | 21 | fs.stat(file, function (err, stat) { |
20 | t.ifError(err); | 22 | t.ifError(err); |
21 | - t.equal(stat.mode & 0777, 0777 & (~process.umask())); | 23 | + t.equal(stat.mode & _0777, _0777 & (~process.umask())); |
22 | t.ok(stat.isDirectory(), 'target not a directory'); | 24 | t.ok(stat.isDirectory(), 'target not a directory'); |
23 | }); | 25 | }); |
24 | }) | 26 | }) |
node_modules/mkdirp/test/umask_sync.js
@@ -3,6 +3,8 @@ var path = require('path'); | @@ -3,6 +3,8 @@ var path = require('path'); | ||
3 | var fs = require('fs'); | 3 | var fs = require('fs'); |
4 | var exists = fs.exists || path.exists; | 4 | var exists = fs.exists || path.exists; |
5 | var test = require('tap').test; | 5 | var test = require('tap').test; |
6 | +var _0777 = parseInt('0777', 8); | ||
7 | +var _0755 = parseInt('0755', 8); | ||
6 | 8 | ||
7 | test('umask sync modes', function (t) { | 9 | test('umask sync modes', function (t) { |
8 | t.plan(4); | 10 | t.plan(4); |
@@ -23,7 +25,7 @@ test('umask sync modes', function (t) { | @@ -23,7 +25,7 @@ test('umask sync modes', function (t) { | ||
23 | t.ok(ex, 'file created'); | 25 | t.ok(ex, 'file created'); |
24 | fs.stat(file, function (err, stat) { | 26 | fs.stat(file, function (err, stat) { |
25 | t.ifError(err); | 27 | t.ifError(err); |
26 | - t.equal(stat.mode & 0777, (0777 & (~process.umask()))); | 28 | + t.equal(stat.mode & _0777, (_0777 & (~process.umask()))); |
27 | t.ok(stat.isDirectory(), 'target not a directory'); | 29 | t.ok(stat.isDirectory(), 'target not a directory'); |
28 | }); | 30 | }); |
29 | }); | 31 | }); |
server.js
@@ -21,6 +21,7 @@ var logger = require('./logsystem/main.js'); | @@ -21,6 +21,7 @@ var logger = require('./logsystem/main.js'); | ||
21 | var kue = require('kue'); | 21 | var kue = require('kue'); |
22 | var queue = kue.createQueue(); | 22 | var queue = kue.createQueue(); |
23 | var unirest = require('unirest'); | 23 | var unirest = require('unirest'); |
24 | +var ui = require('kue-ui'); | ||
24 | 25 | ||
25 | var PythonShell = require('python-shell'); | 26 | var PythonShell = require('python-shell'); |
26 | 27 | ||
@@ -30,6 +31,9 @@ var options = { | @@ -30,6 +31,9 @@ var options = { | ||
30 | args: [] | 31 | args: [] |
31 | }; | 32 | }; |
32 | 33 | ||
34 | +app.use('/kue', kue.app); | ||
35 | +// app.use('/kueui', ui.app); | ||
36 | + | ||
33 | app.use(express.static(path.join(__dirname, '/videos'))); | 37 | app.use(express.static(path.join(__dirname, '/videos'))); |
34 | app.use(express.bodyParser({ keepExtensions: true, uploadDir: path.join(__dirname, '/uploads') })); | 38 | app.use(express.bodyParser({ keepExtensions: true, uploadDir: path.join(__dirname, '/uploads') })); |
35 | 39 | ||
@@ -216,18 +220,18 @@ app.listen(properties.port, properties.host, function(){ | @@ -216,18 +220,18 @@ app.listen(properties.port, properties.host, function(){ | ||
216 | 220 | ||
217 | 221 | ||
218 | 222 | ||
219 | -var CronJob = require('cron').CronJob; | ||
220 | -// '* * * * * *' == a cada 1 segundo | ||
221 | -new CronJob('* * * * * *', function() { | ||
222 | - unirest.post('http://localhost:5000/api') | ||
223 | - .header('Accept', 'application/json') | ||
224 | - .send({ "servico": "texto", "transparencia": "opaco", "texto": "texto teste" }) | ||
225 | - .end(function (response) { | ||
226 | - console.log(response.status); | ||
227 | - if(response.status === 200){ | ||
228 | - logger.updateHealth("outros", 1); | ||
229 | - } else { | ||
230 | - logger.updateHealth(); | ||
231 | - } | ||
232 | - }); | ||
233 | -}, null, true); // no lugar do null pode ser uma funcao pra executar quando parar | 223 | +// var CronJob = require('cron').CronJob; |
224 | +// // '* * * * * *' == a cada 1 segundo | ||
225 | +// new CronJob('* 2 * * * *', function() { | ||
226 | +// unirest.post('http://localhost:5000/api') | ||
227 | +// .header('Accept', 'application/json') | ||
228 | +// .send({ "servico": "texto", "transparencia": "opaco", "texto": "texto teste" }) | ||
229 | +// .end(function (response) { | ||
230 | +// console.log(response.status); | ||
231 | +// if(response.status === 200){ | ||
232 | +// logger.updateHealth("outros", 1); | ||
233 | +// } else { | ||
234 | +// logger.updateHealth(); | ||
235 | +// } | ||
236 | +// }); | ||
237 | +// }, null, true); // no lugar do null pode ser uma funcao pra executar quando parar |