Browse Source

Programa es js que permite la copia de archivos de un folder a otro, de manera local por el momento.

lyxaira.glass 5 years ago
parent
commit
8df8a0d9ff
100 changed files with 7686 additions and 30 deletions
  1. 0
    15
      node_modules/.bin/cordova-browser
  2. 1
    0
      node_modules/.bin/cordova-browser
  3. 0
    15
      node_modules/.bin/create
  4. 1
    0
      node_modules/.bin/create
  5. 2
    0
      node_modules/after/.npmignore
  6. 12
    0
      node_modules/after/.travis.yml
  7. 19
    0
      node_modules/after/LICENCE
  8. 115
    0
      node_modules/after/README.md
  9. 28
    0
      node_modules/after/index.js
  10. 95
    0
      node_modules/after/package.json
  11. 120
    0
      node_modules/after/test/after-test.js
  12. 17
    0
      node_modules/arraybuffer.slice/.npmignore
  13. 18
    0
      node_modules/arraybuffer.slice/LICENCE
  14. 8
    0
      node_modules/arraybuffer.slice/Makefile
  15. 17
    0
      node_modules/arraybuffer.slice/README.md
  16. 29
    0
      node_modules/arraybuffer.slice/index.js
  17. 72
    0
      node_modules/arraybuffer.slice/package.json
  18. 227
    0
      node_modules/arraybuffer.slice/test/slice-buffer.js
  19. 19
    0
      node_modules/asn1/LICENSE
  20. 50
    0
      node_modules/asn1/README.md
  21. 13
    0
      node_modules/asn1/lib/ber/errors.js
  22. 27
    0
      node_modules/asn1/lib/ber/index.js
  23. 262
    0
      node_modules/asn1/lib/ber/reader.js
  24. 36
    0
      node_modules/asn1/lib/ber/types.js
  25. 317
    0
      node_modules/asn1/lib/ber/writer.js
  26. 20
    0
      node_modules/asn1/lib/index.js
  27. 119
    0
      node_modules/asn1/package.json
  28. 2
    0
      node_modules/async-limiter/.eslintignore
  29. 10
    0
      node_modules/async-limiter/.nycrc
  30. 9
    0
      node_modules/async-limiter/.travis.yml
  31. 8
    0
      node_modules/async-limiter/LICENSE
  32. 67
    0
      node_modules/async-limiter/index.js
  33. 102
    0
      node_modules/async-limiter/package.json
  34. 132
    0
      node_modules/async-limiter/readme.md
  35. 3
    0
      node_modules/async/.travis.yml
  36. 19
    0
      node_modules/async/LICENSE
  37. 1633
    0
      node_modules/async/README.md
  38. 11
    0
      node_modules/async/component.json
  39. 1058
    0
      node_modules/async/lib/async.js
  40. 86
    0
      node_modules/async/package.json
  41. 1
    0
      node_modules/backo2/.npmignore
  42. 12
    0
      node_modules/backo2/History.md
  43. 8
    0
      node_modules/backo2/Makefile
  44. 34
    0
      node_modules/backo2/Readme.md
  45. 11
    0
      node_modules/backo2/component.json
  46. 85
    0
      node_modules/backo2/index.js
  47. 70
    0
      node_modules/backo2/package.json
  48. 18
    0
      node_modules/backo2/test/index.js
  49. 3
    0
      node_modules/base64-arraybuffer/.npmignore
  50. 19
    0
      node_modules/base64-arraybuffer/.travis.yml
  51. 22
    0
      node_modules/base64-arraybuffer/LICENSE-MIT
  52. 20
    0
      node_modules/base64-arraybuffer/README.md
  53. 67
    0
      node_modules/base64-arraybuffer/lib/base64-arraybuffer.js
  54. 89
    0
      node_modules/base64-arraybuffer/package.json
  55. 16
    0
      node_modules/base64id/CHANGELOG.md
  56. 22
    0
      node_modules/base64id/LICENSE
  57. 18
    0
      node_modules/base64id/README.md
  58. 103
    0
      node_modules/base64id/lib/base64id.js
  59. 85
    0
      node_modules/base64id/package.json
  60. 13
    0
      node_modules/bcrypt-pbkdf/CONTRIBUTING.md
  61. 66
    0
      node_modules/bcrypt-pbkdf/LICENSE
  62. 45
    0
      node_modules/bcrypt-pbkdf/README.md
  63. 556
    0
      node_modules/bcrypt-pbkdf/index.js
  64. 87
    0
      node_modules/bcrypt-pbkdf/package.json
  65. 4
    0
      node_modules/better-assert/.npmignore
  66. 15
    0
      node_modules/better-assert/History.md
  67. 5
    0
      node_modules/better-assert/Makefile
  68. 61
    0
      node_modules/better-assert/Readme.md
  69. 10
    0
      node_modules/better-assert/example.js
  70. 38
    0
      node_modules/better-assert/index.js
  71. 91
    0
      node_modules/better-assert/package.json
  72. 12
    0
      node_modules/blob/.idea/blob.iml
  73. 5
    0
      node_modules/blob/.idea/inspectionProfiles/profiles_settings.xml
  74. 78
    0
      node_modules/blob/.idea/markdown-navigator.xml
  75. 3
    0
      node_modules/blob/.idea/markdown-navigator/profiles_settings.xml
  76. 8
    0
      node_modules/blob/.idea/modules.xml
  77. 6
    0
      node_modules/blob/.idea/vcs.xml
  78. 390
    0
      node_modules/blob/.idea/workspace.xml
  79. 14
    0
      node_modules/blob/.zuul.yml
  80. 21
    0
      node_modules/blob/LICENSE
  81. 14
    0
      node_modules/blob/Makefile
  82. 21
    0
      node_modules/blob/README.md
  83. 11
    0
      node_modules/blob/component.json
  84. 100
    0
      node_modules/blob/index.js
  85. 85
    0
      node_modules/blob/package.json
  86. 100
    0
      node_modules/blob/test/index.js
  87. 4
    0
      node_modules/callsite/.npmignore
  88. 10
    0
      node_modules/callsite/History.md
  89. 6
    0
      node_modules/callsite/Makefile
  90. 44
    0
      node_modules/callsite/Readme.md
  91. 10
    0
      node_modules/callsite/index.js
  92. 69
    0
      node_modules/callsite/package.json
  93. 4
    0
      node_modules/component-bind/.npmignore
  94. 13
    0
      node_modules/component-bind/History.md
  95. 7
    0
      node_modules/component-bind/Makefile
  96. 64
    0
      node_modules/component-bind/Readme.md
  97. 13
    0
      node_modules/component-bind/component.json
  98. 23
    0
      node_modules/component-bind/index.js
  99. 73
    0
      node_modules/component-bind/package.json
  100. 0
    0
      node_modules/component-emitter/History.md

+ 0
- 15
node_modules/.bin/cordova-browser View File

@@ -1,15 +0,0 @@
1
-#!/bin/sh
2
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
-
4
-case `uname` in
5
-    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
-esac
7
-
8
-if [ -x "$basedir/node" ]; then
9
-  "$basedir/node"  "$basedir/../cordova-browser/bin/create" "$@"
10
-  ret=$?
11
-else 
12
-  node  "$basedir/../cordova-browser/bin/create" "$@"
13
-  ret=$?
14
-fi
15
-exit $ret

+ 1
- 0
node_modules/.bin/cordova-browser View File

@@ -0,0 +1 @@
1
+../cordova-browser/bin/create

+ 0
- 15
node_modules/.bin/create View File

@@ -1,15 +0,0 @@
1
-#!/bin/sh
2
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
-
4
-case `uname` in
5
-    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
-esac
7
-
8
-if [ -x "$basedir/node" ]; then
9
-  "$basedir/node"  "$basedir/../cordova-android/bin/create" "$@"
10
-  ret=$?
11
-else 
12
-  node  "$basedir/../cordova-android/bin/create" "$@"
13
-  ret=$?
14
-fi
15
-exit $ret

+ 1
- 0
node_modules/.bin/create View File

@@ -0,0 +1 @@
1
+../cordova-android/bin/create

+ 2
- 0
node_modules/after/.npmignore View File

@@ -0,0 +1,2 @@
1
+node_modules
2
+.monitor

+ 12
- 0
node_modules/after/.travis.yml View File

@@ -0,0 +1,12 @@
1
+language: node_js
2
+node_js:
3
+  - 0.6
4
+  - 0.8
5
+  - 0.9
6
+  - 0.10
7
+  - 0.12
8
+  - 4.2.4
9
+  - 5.4.1
10
+  - iojs-1
11
+  - iojs-2
12
+  - iojs-3

+ 19
- 0
node_modules/after/LICENCE View File

@@ -0,0 +1,19 @@
1
+Copyright (c) 2011 Raynos.
2
+
3
+Permission is hereby granted, free of charge, to any person obtaining a copy
4
+of this software and associated documentation files (the "Software"), to deal
5
+in the Software without restriction, including without limitation the rights
6
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+copies of the Software, and to permit persons to whom the Software is
8
+furnished to do so, subject to the following conditions:
9
+
10
+The above copyright notice and this permission notice shall be included in
11
+all copies or substantial portions of the Software.
12
+
13
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+THE SOFTWARE.

+ 115
- 0
node_modules/after/README.md View File

@@ -0,0 +1,115 @@
1
+# After [![Build Status][1]][2]
2
+
3
+Invoke callback after n calls
4
+
5
+## Status: production ready
6
+
7
+## Example
8
+
9
+```js
10
+var after = require("after")
11
+var db = require("./db") // some db.
12
+
13
+var updateUser = function (req, res) {
14
+  // use after to run two tasks in parallel,
15
+  // namely get request body and get session
16
+  // then run updateUser with the results
17
+  var next = after(2, updateUser)
18
+  var results = {}
19
+  
20
+  getJSONBody(req, res, function (err, body) {
21
+    if (err) return next(err)
22
+    
23
+    results.body = body
24
+    next(null, results)
25
+  })
26
+  
27
+  getSessionUser(req, res, function (err, user) {
28
+    if (err) return next(err)
29
+    
30
+    results.user = user
31
+    next(null, results)
32
+  })
33
+  
34
+  // now do the thing!
35
+  function updateUser(err, result) {
36
+    if (err) {
37
+      res.statusCode = 500
38
+      return res.end("Unexpected Error")
39
+    }
40
+    
41
+    if (!result.user || result.user.role !== "admin") {
42
+      res.statusCode = 403
43
+      return res.end("Permission Denied")
44
+    }
45
+    
46
+    db.put("users:" + req.params.userId, result.body, function (err) {
47
+      if (err) {
48
+        res.statusCode = 500
49
+        return res.end("Unexpected Error")
50
+      }
51
+      
52
+      res.statusCode = 200
53
+      res.end("Ok")  
54
+    })   
55
+  }
56
+}
57
+```
58
+
59
+## Naive Example
60
+
61
+```js
62
+var after = require("after")
63
+    , next = after(3, logItWorks)
64
+
65
+next()
66
+next()
67
+next() // it works
68
+
69
+function logItWorks() {
70
+    console.log("it works!")
71
+}
72
+```
73
+
74
+## Example with error handling
75
+
76
+```js
77
+var after = require("after")
78
+    , next = after(3, logError)
79
+
80
+next()
81
+next(new Error("oops")) // logs oops
82
+next() // does nothing
83
+
84
+// This callback is only called once.
85
+// If there is an error the callback gets called immediately
86
+// this avoids the situation where errors get lost.
87
+function logError(err) {
88
+    console.log(err)
89
+}
90
+```
91
+
92
+## Installation
93
+
94
+`npm install after`
95
+
96
+## Tests
97
+
98
+`npm test`
99
+
100
+## Contributors
101
+
102
+ - Raynos
103
+ - defunctzombie
104
+
105
+## MIT Licenced
106
+
107
+  [1]: https://secure.travis-ci.org/Raynos/after.png
108
+  [2]: http://travis-ci.org/Raynos/after
109
+  [3]: http://raynos.org/blog/2/Flow-control-in-node.js
110
+  [4]: http://stackoverflow.com/questions/6852059/determining-the-end-of-asynchronous-operations-javascript/6852307#6852307
111
+  [5]: http://stackoverflow.com/questions/6869872/in-javascript-what-are-best-practices-for-executing-multiple-asynchronous-functi/6870031#6870031
112
+  [6]: http://stackoverflow.com/questions/6864397/javascript-performance-long-running-tasks/6889419#6889419
113
+  [7]: http://stackoverflow.com/questions/6597493/synchronous-database-queries-with-node-js/6620091#6620091
114
+  [8]: http://github.com/Raynos/iterators
115
+  [9]: http://github.com/Raynos/composite

+ 28
- 0
node_modules/after/index.js View File

@@ -0,0 +1,28 @@
1
+module.exports = after
2
+
3
+function after(count, callback, err_cb) {
4
+    var bail = false
5
+    err_cb = err_cb || noop
6
+    proxy.count = count
7
+
8
+    return (count === 0) ? callback() : proxy
9
+
10
+    function proxy(err, result) {
11
+        if (proxy.count <= 0) {
12
+            throw new Error('after called too many times')
13
+        }
14
+        --proxy.count
15
+
16
+        // after first error, rest are passed to err_cb
17
+        if (err) {
18
+            bail = true
19
+            callback(err)
20
+            // future error callbacks will go to error handler
21
+            callback = err_cb
22
+        } else if (proxy.count === 0 && !bail) {
23
+            callback(null, result)
24
+        }
25
+    }
26
+}
27
+
28
+function noop() {}

+ 95
- 0
node_modules/after/package.json View File

@@ -0,0 +1,95 @@
1
+{
2
+  "_args": [
3
+    [
4
+      "after@0.8.2",
5
+      "/home/lyxaira/Artesanias/artesanias/node_modules/engine.io-parser"
6
+    ]
7
+  ],
8
+  "_from": "after@0.8.2",
9
+  "_id": "after@0.8.2",
10
+  "_inCache": true,
11
+  "_installable": true,
12
+  "_location": "/after",
13
+  "_nodeVersion": "0.10.32",
14
+  "_npmOperationalInternal": {
15
+    "host": "packages-12-west.internal.npmjs.com",
16
+    "tmp": "tmp/after-0.8.2.tgz_1471308639186_0.9132961586583406"
17
+  },
18
+  "_npmUser": {
19
+    "email": "raynos2@gmail.com",
20
+    "name": "raynos"
21
+  },
22
+  "_npmVersion": "2.15.9",
23
+  "_phantomChildren": {},
24
+  "_requested": {
25
+    "name": "after",
26
+    "raw": "after@0.8.2",
27
+    "rawSpec": "0.8.2",
28
+    "scope": null,
29
+    "spec": "0.8.2",
30
+    "type": "version"
31
+  },
32
+  "_requiredBy": [
33
+    "/engine.io-parser"
34
+  ],
35
+  "_resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
36
+  "_shasum": "fedb394f9f0e02aa9768e702bda23b505fae7e1f",
37
+  "_shrinkwrap": null,
38
+  "_spec": "after@0.8.2",
39
+  "_where": "/home/lyxaira/Artesanias/artesanias/node_modules/engine.io-parser",
40
+  "author": {
41
+    "email": "raynos2@gmail.com",
42
+    "name": "Raynos"
43
+  },
44
+  "bugs": {
45
+    "url": "https://github.com/Raynos/after/issues"
46
+  },
47
+  "contributors": [
48
+    {
49
+      "name": "Raynos",
50
+      "email": "raynos2@gmail.com",
51
+      "url": "http://raynos.org"
52
+    }
53
+  ],
54
+  "dependencies": {},
55
+  "description": "after - tiny flow control",
56
+  "devDependencies": {
57
+    "mocha": "~1.8.1"
58
+  },
59
+  "directories": {},
60
+  "dist": {
61
+    "shasum": "fedb394f9f0e02aa9768e702bda23b505fae7e1f",
62
+    "tarball": "https://registry.npmjs.org/after/-/after-0.8.2.tgz"
63
+  },
64
+  "gitHead": "e8c26046f36962b90e68dc5df33a9672a54b25f5",
65
+  "homepage": "https://github.com/Raynos/after#readme",
66
+  "keywords": [
67
+    "after",
68
+    "arch",
69
+    "control",
70
+    "flow",
71
+    "flowcontrol"
72
+  ],
73
+  "license": "MIT",
74
+  "maintainers": [
75
+    {
76
+      "name": "raynos",
77
+      "email": "raynos2@gmail.com"
78
+    },
79
+    {
80
+      "name": "defunctzombie",
81
+      "email": "shtylman@gmail.com"
82
+    }
83
+  ],
84
+  "name": "after",
85
+  "optionalDependencies": {},
86
+  "readme": "ERROR: No README data found!",
87
+  "repository": {
88
+    "type": "git",
89
+    "url": "git://github.com/Raynos/after.git"
90
+  },
91
+  "scripts": {
92
+    "test": "mocha --ui tdd --reporter spec test/*.js"
93
+  },
94
+  "version": "0.8.2"
95
+}

+ 120
- 0
node_modules/after/test/after-test.js View File

@@ -0,0 +1,120 @@
1
+/*global suite, test*/
2
+
3
+var assert = require("assert")
4
+    , after = require("../")
5
+
6
+test("exists", function () {
7
+    assert(typeof after === "function", "after is not a function")
8
+})
9
+
10
+test("after when called with 0 invokes", function (done) {
11
+    after(0, done)
12
+});
13
+
14
+test("after 1", function (done) {
15
+    var next = after(1, done)
16
+    next()
17
+})
18
+
19
+test("after 5", function (done) {
20
+    var next = after(5, done)
21
+    , i = 5
22
+
23
+    while (i--) {
24
+        next()
25
+    }
26
+})
27
+
28
+test("manipulate count", function (done) {
29
+    var next = after(1, done)
30
+    , i = 5
31
+
32
+    next.count = i
33
+    while (i--) {
34
+        next()
35
+    }
36
+})
37
+
38
+test("after terminates on error", function (done) {
39
+    var next = after(2, function(err) {
40
+        assert.equal(err.message, 'test');
41
+        done();
42
+    })
43
+    next(new Error('test'))
44
+    next(new Error('test2'))
45
+})
46
+
47
+test('gee', function(done) {
48
+    done = after(2, done)
49
+
50
+    function cb(err) {
51
+        assert.equal(err.message, 1);
52
+        done()
53
+    }
54
+
55
+    var next = after(3, cb, function(err) {
56
+        assert.equal(err.message, 2)
57
+        done()
58
+    });
59
+
60
+    next()
61
+    next(new Error(1))
62
+    next(new Error(2))
63
+})
64
+
65
+test('eee', function(done) {
66
+    done = after(3, done)
67
+
68
+    function cb(err) {
69
+        assert.equal(err.message, 1);
70
+        done()
71
+    }
72
+
73
+    var next = after(3, cb, function(err) {
74
+        assert.equal(err.message, 2)
75
+        done()
76
+    });
77
+
78
+    next(new Error(1))
79
+    next(new Error(2))
80
+    next(new Error(2))
81
+})
82
+
83
+test('gge', function(done) {
84
+    function cb(err) {
85
+        assert.equal(err.message, 1);
86
+        done()
87
+    }
88
+
89
+    var next = after(3, cb, function(err) {
90
+        // should not happen
91
+        assert.ok(false);
92
+    });
93
+
94
+    next()
95
+    next()
96
+    next(new Error(1))
97
+})
98
+
99
+test('egg', function(done) {
100
+    function cb(err) {
101
+        assert.equal(err.message, 1);
102
+        done()
103
+    }
104
+
105
+    var next = after(3, cb, function(err) {
106
+        // should not happen
107
+        assert.ok(false);
108
+    });
109
+
110
+    next(new Error(1))
111
+    next()
112
+    next()
113
+})
114
+
115
+test('throws on too many calls', function(done) {
116
+    var next = after(1, done);
117
+    next()
118
+    assert.throws(next, /after called too many times/);
119
+});
120
+

+ 17
- 0
node_modules/arraybuffer.slice/.npmignore View File

@@ -0,0 +1,17 @@
1
+lib-cov
2
+lcov.info
3
+*.seed
4
+*.log
5
+*.csv
6
+*.dat
7
+*.out
8
+*.pid
9
+*.gz
10
+
11
+pids
12
+logs
13
+results
14
+build
15
+.grunt
16
+
17
+node_modules

+ 18
- 0
node_modules/arraybuffer.slice/LICENCE View File

@@ -0,0 +1,18 @@
1
+Copyright (C) 2013 Rase-
2
+
3
+Permission is hereby granted, free of charge, to any person obtaining a copy of
4
+this software and associated documentation files (the "Software"), to deal in
5
+the Software without restriction, including without limitation the rights to
6
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7
+of the Software, and to permit persons to whom the Software is furnished to do
8
+so, subject to the following conditions:
9
+
10
+The above copyright notice and this permission notice shall be included in all
11
+copies or substantial portions of the Software.
12
+
13
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
15
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
16
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 8
- 0
node_modules/arraybuffer.slice/Makefile View File

@@ -0,0 +1,8 @@
1
+
2
+REPORTER = dot
3
+
4
+test:
5
+	@./node_modules/.bin/mocha \
6
+		--reporter $(REPORTER)
7
+
8
+.PHONY: test

+ 17
- 0
node_modules/arraybuffer.slice/README.md View File

@@ -0,0 +1,17 @@
1
+# How to
2
+```javascript
3
+var sliceBuffer = require('arraybuffer.slice');
4
+var ab = (new Int8Array(5)).buffer;
5
+var sliced = sliceBuffer(ab, 1, 3);
6
+sliced = sliceBuffer(ab, 1);
7
+```
8
+
9
+# Licence (MIT)
10
+Copyright (C) 2013 Rase-
11
+
12
+
13
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
14
+
15
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 29
- 0
node_modules/arraybuffer.slice/index.js View File

@@ -0,0 +1,29 @@
1
+/**
2
+ * An abstraction for slicing an arraybuffer even when
3
+ * ArrayBuffer.prototype.slice is not supported
4
+ *
5
+ * @api public
6
+ */
7
+
8
+module.exports = function(arraybuffer, start, end) {
9
+  var bytes = arraybuffer.byteLength;
10
+  start = start || 0;
11
+  end = end || bytes;
12
+
13
+  if (arraybuffer.slice) { return arraybuffer.slice(start, end); }
14
+
15
+  if (start < 0) { start += bytes; }
16
+  if (end < 0) { end += bytes; }
17
+  if (end > bytes) { end = bytes; }
18
+
19
+  if (start >= bytes || start >= end || bytes === 0) {
20
+    return new ArrayBuffer(0);
21
+  }
22
+
23
+  var abv = new Uint8Array(arraybuffer);
24
+  var result = new Uint8Array(end - start);
25
+  for (var i = start, ii = 0; i < end; i++, ii++) {
26
+    result[ii] = abv[i];
27
+  }
28
+  return result.buffer;
29
+};

+ 72
- 0
node_modules/arraybuffer.slice/package.json View File

@@ -0,0 +1,72 @@
1
+{
2
+  "_args": [
3
+    [
4
+      "arraybuffer.slice@~0.0.7",
5
+      "/home/lyxaira/Artesanias/artesanias/node_modules/engine.io-parser"
6
+    ]
7
+  ],
8
+  "_from": "arraybuffer.slice@>=0.0.7 <0.1.0",
9
+  "_id": "arraybuffer.slice@0.0.7",
10
+  "_inCache": true,
11
+  "_installable": true,
12
+  "_location": "/arraybuffer.slice",
13
+  "_nodeVersion": "8.4.0",
14
+  "_npmOperationalInternal": {
15
+    "host": "s3://npm-registry-packages",
16
+    "tmp": "tmp/arraybuffer.slice-0.0.7.tgz_1503998406760_0.431125596864149"
17
+  },
18
+  "_npmUser": {
19
+    "email": "tonykovanen@hotmail.com",
20
+    "name": "rase-"
21
+  },
22
+  "_npmVersion": "5.3.0",
23
+  "_phantomChildren": {},
24
+  "_requested": {
25
+    "name": "arraybuffer.slice",
26
+    "raw": "arraybuffer.slice@~0.0.7",
27
+    "rawSpec": "~0.0.7",
28
+    "scope": null,
29
+    "spec": ">=0.0.7 <0.1.0",
30
+    "type": "range"
31
+  },
32
+  "_requiredBy": [
33
+    "/engine.io-parser"
34
+  ],
35
+  "_resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
36
+  "_shasum": "3bbc4275dd584cc1b10809b89d4e8b63a69e7675",
37
+  "_shrinkwrap": null,
38
+  "_spec": "arraybuffer.slice@~0.0.7",
39
+  "_where": "/home/lyxaira/Artesanias/artesanias/node_modules/engine.io-parser",
40
+  "bugs": {
41
+    "url": "https://github.com/rase-/arraybuffer.slice/issues"
42
+  },
43
+  "dependencies": {},
44
+  "description": "Exports a function for slicing ArrayBuffers (no polyfilling)",
45
+  "devDependencies": {
46
+    "expect.js": "0.2.0",
47
+    "mocha": "1.17.1"
48
+  },
49
+  "directories": {},
50
+  "dist": {
51
+    "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==",
52
+    "shasum": "3bbc4275dd584cc1b10809b89d4e8b63a69e7675",
53
+    "tarball": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz"
54
+  },
55
+  "gitHead": "6779b3ca590f15c0910181bf7ccc51061f7eb7ac",
56
+  "homepage": "https://github.com/rase-/arraybuffer.slice",
57
+  "license": "MIT",
58
+  "maintainers": [
59
+    {
60
+      "name": "rase-",
61
+      "email": "tonykovanen@hotmail.com"
62
+    }
63
+  ],
64
+  "name": "arraybuffer.slice",
65
+  "optionalDependencies": {},
66
+  "readme": "ERROR: No README data found!",
67
+  "repository": {
68
+    "type": "git",
69
+    "url": "git+ssh://git@github.com/rase-/arraybuffer.slice.git"
70
+  },
71
+  "version": "0.0.7"
72
+}

+ 227
- 0
node_modules/arraybuffer.slice/test/slice-buffer.js View File

@@ -0,0 +1,227 @@
1
+/*
2
+ * Test dependencies
3
+ */
4
+
5
+var sliceBuffer = require('../index.js');
6
+var expect = require('expect.js');
7
+
8
+/**
9
+ * Tests
10
+ */
11
+
12
+describe('sliceBuffer', function() {
13
+  describe('using standard slice', function() {
14
+    it('should slice correctly with only start provided', function() {
15
+      var abv = new Uint8Array(10);
16
+      for (var i = 0; i < abv.length; i++) {
17
+        abv[i] = i;
18
+      }
19
+
20
+      var sliced = sliceBuffer(abv.buffer, 3);
21
+      var sabv = new Uint8Array(sliced);
22
+      for (var i = 3, ii = 0; i < abv.length; i++, ii++) {
23
+        expect(abv[i]).to.equal(sabv[ii]);
24
+      }
25
+    });
26
+
27
+    it('should slice correctly with start and end provided', function() {
28
+      var abv = new Uint8Array(10);
29
+      for (var i = 0; i < abv.length; i++) {
30
+        abv[i] = i;
31
+      }
32
+
33
+      var sliced = sliceBuffer(abv.buffer, 3, 8);
34
+      var sabv = new Uint8Array(sliced);
35
+      for (var i = 3, ii = 0; i < 8; i++, ii++) {
36
+        expect(abv[i]).to.equal(sabv[ii]);
37
+      }
38
+    });
39
+
40
+    it('should slice correctly with negative start', function() {
41
+      var abv = new Uint8Array(10);
42
+      for (var i = 0; i < abv.length; i++) {
43
+        abv[i] = i;
44
+      }
45
+
46
+      var sliced = sliceBuffer(abv.buffer, -3);
47
+      var sabv = new Uint8Array(sliced);
48
+      for (var i = abv.length - 3, ii = 0; i < abv.length; i++, ii++) {
49
+        expect(abv[i]).to.equal(sabv[ii]);
50
+      }
51
+    });
52
+
53
+    it('should slice correctly with negative end', function() {
54
+      var abv = new Uint8Array(10);
55
+      for (var i = 0; i < abv.length; i++) {
56
+        abv[i] = i;
57
+      }
58
+
59
+      var sliced = sliceBuffer(abv.buffer, 0, -3);
60
+      var sabv = new Uint8Array(sliced);
61
+      for (var i = 0, ii = 0; i < abv.length - 3; i++, ii++) {
62
+        expect(abv[i]).to.equal(sabv[ii]);
63
+      }
64
+    });
65
+
66
+    it('should slice correctly with negative start and end', function() {
67
+      var abv = new Uint8Array(10);
68
+      for (var i = 0; i < abv.length; i++) {
69
+        abv[i] = i;
70
+      }
71
+
72
+      var sliced = sliceBuffer(abv.buffer, -6, -3);
73
+      var sabv = new Uint8Array(sliced);
74
+      for (var i = abv.length - 6, ii = 0; i < abv.length - 3; i++, ii++) {
75
+        expect(abv[i]).to.equal(sabv[ii]);
76
+      }
77
+    });
78
+
79
+    it('should slice correctly with equal start and end', function() {
80
+      var abv = new Uint8Array(10);
81
+      for (var i = 0; i < abv.length; i++) {
82
+        abv[i] = i;
83
+      }
84
+
85
+      var sliced = sliceBuffer(abv.buffer, 1, 1);
86
+      expect(sliced.byteLength).to.equal(0);
87
+    });
88
+    
89
+    it('should slice correctly when end larger than buffer', function() {
90
+      var abv = new Uint8Array(10);
91
+      for (var i = 0; i < abv.length; i++) {
92
+        abv[i] = i;
93
+      }
94
+
95
+      var sliced = sliceBuffer(abv.buffer, 0, 100);
96
+      expect(new Uint8Array(sliced)).to.eql(abv);
97
+    });
98
+
99
+    it('shoud slice correctly when start larger than end', function() {
100
+      var abv = new Uint8Array(10);
101
+      for (var i = 0; i < abv.length; i++) {
102
+        abv[i] = i;
103
+      }
104
+
105
+      var sliced = sliceBuffer(abv.buffer, 6, 5);
106
+      expect(sliced.byteLength).to.equal(0);
107
+    });
108
+  });
109
+
110
+  describe('using fallback', function() {
111
+    it('should slice correctly with only start provided', function() {
112
+      var abv = new Uint8Array(10);
113
+      for (var i = 0; i < abv.length; i++) {
114
+        abv[i] = i;
115
+      }
116
+      var ab = abv.buffer;
117
+      ab.slice = undefined;
118
+
119
+      var sliced = sliceBuffer(ab, 3);
120
+      var sabv = new Uint8Array(sliced);
121
+      for (var i = 3, ii = 0; i < abv.length; i++, ii++) {
122
+        expect(abv[i]).to.equal(sabv[ii]);
123
+      }
124
+    });
125
+
126
+    it('should slice correctly with start and end provided', function() {
127
+      var abv = new Uint8Array(10);
128
+      for (var i = 0; i < abv.length; i++) {
129
+        abv[i] = i;
130
+      }
131
+      var ab = abv.buffer;
132
+      ab.slice = undefined;
133
+
134
+
135
+      var sliced = sliceBuffer(ab, 3, 8);
136
+      var sabv = new Uint8Array(sliced);
137
+      for (var i = 3, ii = 0; i < 8; i++, ii++) {
138
+        expect(abv[i]).to.equal(sabv[ii]);
139
+      }
140
+    });
141
+
142
+    it('should slice correctly with negative start', function() {
143
+      var abv = new Uint8Array(10);
144
+      for (var i = 0; i < abv.length; i++) {
145
+        abv[i] = i;
146
+      }
147
+      var ab = abv.buffer;
148
+      ab.slice = undefined;
149
+
150
+
151
+      var sliced = sliceBuffer(ab, -3);
152
+      var sabv = new Uint8Array(sliced);
153
+      for (var i = abv.length - 3, ii = 0; i < abv.length; i++, ii++) {
154
+        expect(abv[i]).to.equal(sabv[ii]);
155
+      }
156
+    });
157
+
158
+    it('should slice correctly with negative end', function() {
159
+      var abv = new Uint8Array(10);
160
+      for (var i = 0; i < abv.length; i++) {
161
+        abv[i] = i;
162
+      }
163
+      var ab = abv.buffer;
164
+      ab.slice = undefined;
165
+
166
+      var sliced = sliceBuffer(ab, 0, -3);
167
+      var sabv = new Uint8Array(sliced);
168
+      for (var i = 0, ii = 0; i < abv.length - 3; i++, ii++) {
169
+        expect(abv[i]).to.equal(sabv[ii]);
170
+      }
171
+    });
172
+
173
+    it('should slice correctly with negative start and end', function() {
174
+      var abv = new Uint8Array(10);
175
+      for (var i = 0; i < abv.length; i++) {
176
+        abv[i] = i;
177
+      }
178
+      var ab = abv.buffer;
179
+      ab.slice = undefined;
180
+
181
+      var sliced = sliceBuffer(ab, -6, -3);
182
+      var sabv = new Uint8Array(sliced);
183
+      for (var i = abv.length - 6, ii = 0; i < abv.length - 3; i++, ii++) {
184
+        expect(abv[i]).to.equal(sabv[ii]);
185
+      }
186
+    });
187
+
188
+    it('should slice correctly with equal start and end', function() {
189
+      var abv = new Uint8Array(10);
190
+      for (var i = 0; i < abv.length; i++) {
191
+        abv[i] = i;
192
+      }
193
+      var ab = abv.buffer;
194
+      ab.slice = undefined;
195
+
196
+      var sliced = sliceBuffer(ab, 1, 1);
197
+      expect(sliced.byteLength).to.equal(0);
198
+    });
199
+
200
+    it('should slice correctly when end larger than buffer', function() {
201
+      var abv = new Uint8Array(10);
202
+      for (var i = 0; i < abv.length; i++) {
203
+        abv[i] = i;
204
+      }
205
+      var ab = abv.buffer;
206
+      ab.slice = undefined;
207
+
208
+      var sliced = sliceBuffer(ab, 0, 100);
209
+      var sabv = new Uint8Array(sliced);
210
+      for (var i = 0; i < abv.length; i++) {
211
+        expect(abv[i]).to.equal(sabv[i]);
212
+      }
213
+    });
214
+
215
+    it('shoud slice correctly when start larger than end', function() {
216
+      var abv = new Uint8Array(10);
217
+      for (var i = 0; i < abv.length; i++) {
218
+        abv[i] = i;
219
+      }
220
+      var ab = abv.buffer;
221
+      ab.slice = undefined;
222
+
223
+      var sliced = sliceBuffer(ab, 6, 5);
224
+      expect(sliced.byteLength).to.equal(0);
225
+    });
226
+  });
227
+});

+ 19
- 0
node_modules/asn1/LICENSE View File

@@ -0,0 +1,19 @@
1
+Copyright (c) 2011 Mark Cavage, All rights reserved.
2
+
3
+Permission is hereby granted, free of charge, to any person obtaining a copy
4
+of this software and associated documentation files (the "Software"), to deal
5
+in the Software without restriction, including without limitation the rights
6
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+copies of the Software, and to permit persons to whom the Software is
8
+furnished to do so, subject to the following conditions:
9
+
10
+The above copyright notice and this permission notice shall be included in
11
+all copies or substantial portions of the Software.
12
+
13
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+THE SOFTWARE

+ 50
- 0
node_modules/asn1/README.md View File

@@ -0,0 +1,50 @@
1
+node-asn1 is a library for encoding and decoding ASN.1 datatypes in pure JS.
2
+Currently BER encoding is supported; at some point I'll likely have to do DER.
3
+
4
+## Usage
5
+
6
+Mostly, if you're *actually* needing to read and write ASN.1, you probably don't
7
+need this readme to explain what and why.  If you have no idea what ASN.1 is,
8
+see this: ftp://ftp.rsa.com/pub/pkcs/ascii/layman.asc
9
+
10
+The source is pretty much self-explanatory, and has read/write methods for the
11
+common types out there.
12
+
13
+### Decoding
14
+
15
+The following reads an ASN.1 sequence with a boolean.
16
+
17
+    var Ber = require('asn1').Ber;
18
+
19
+    var reader = new Ber.Reader(Buffer.from([0x30, 0x03, 0x01, 0x01, 0xff]));
20
+
21
+    reader.readSequence();
22
+    console.log('Sequence len: ' + reader.length);
23
+    if (reader.peek() === Ber.Boolean)
24
+      console.log(reader.readBoolean());
25
+
26
+### Encoding
27
+
28
+The following generates the same payload as above.
29
+
30
+    var Ber = require('asn1').Ber;
31
+
32
+    var writer = new Ber.Writer();
33
+
34
+    writer.startSequence();
35
+    writer.writeBoolean(true);
36
+    writer.endSequence();
37
+
38
+    console.log(writer.buffer);
39
+
40
+## Installation
41
+
42
+    npm install asn1
43
+
44
+## License
45
+
46
+MIT.
47
+
48
+## Bugs
49
+
50
+See <https://github.com/joyent/node-asn1/issues>.

+ 13
- 0
node_modules/asn1/lib/ber/errors.js View File

@@ -0,0 +1,13 @@
1
+// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.
2
+
3
+
4
+module.exports = {
5
+
6
+  newInvalidAsn1Error: function (msg) {
7
+    var e = new Error();
8
+    e.name = 'InvalidAsn1Error';
9
+    e.message = msg || '';
10
+    return e;
11
+  }
12
+
13
+};

+ 27
- 0
node_modules/asn1/lib/ber/index.js View File

@@ -0,0 +1,27 @@
1
+// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.
2
+
3
+var errors = require('./errors');
4
+var types = require('./types');
5
+
6
+var Reader = require('./reader');
7
+var Writer = require('./writer');
8
+
9
+
10
+// --- Exports
11
+
12
+module.exports = {
13
+
14
+  Reader: Reader,
15
+
16
+  Writer: Writer
17
+
18
+};
19
+
20
+for (var t in types) {
21
+  if (types.hasOwnProperty(t))
22
+    module.exports[t] = types[t];
23
+}
24
+for (var e in errors) {
25
+  if (errors.hasOwnProperty(e))
26
+    module.exports[e] = errors[e];
27
+}

+ 262
- 0
node_modules/asn1/lib/ber/reader.js View File

@@ -0,0 +1,262 @@
1
+// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.
2
+
3
+var assert = require('assert');
4
+var Buffer = require('safer-buffer').Buffer;
5
+
6
+var ASN1 = require('./types');
7
+var errors = require('./errors');
8
+
9
+
10
+// --- Globals
11
+
12
+var newInvalidAsn1Error = errors.newInvalidAsn1Error;
13
+
14
+
15
+
16
+// --- API
17
+
18
+function Reader(data) {
19
+  if (!data || !Buffer.isBuffer(data))
20
+    throw new TypeError('data must be a node Buffer');
21
+
22
+  this._buf = data;
23
+  this._size = data.length;
24
+
25
+  // These hold the "current" state
26
+  this._len = 0;
27
+  this._offset = 0;
28
+}
29
+
30
+Object.defineProperty(Reader.prototype, 'length', {
31
+  enumerable: true,
32
+  get: function () { return (this._len); }
33
+});
34
+
35
+Object.defineProperty(Reader.prototype, 'offset', {
36
+  enumerable: true,
37
+  get: function () { return (this._offset); }
38
+});
39
+
40
+Object.defineProperty(Reader.prototype, 'remain', {
41
+  get: function () { return (this._size - this._offset); }
42
+});
43
+
44
+Object.defineProperty(Reader.prototype, 'buffer', {
45
+  get: function () { return (this._buf.slice(this._offset)); }
46
+});
47
+
48
+
49
+/**
50
+ * Reads a single byte and advances offset; you can pass in `true` to make this
51
+ * a "peek" operation (i.e., get the byte, but don't advance the offset).
52
+ *
53
+ * @param {Boolean} peek true means don't move offset.
54
+ * @return {Number} the next byte, null if not enough data.
55
+ */
56
+Reader.prototype.readByte = function (peek) {
57
+  if (this._size - this._offset < 1)
58
+    return null;
59
+
60
+  var b = this._buf[this._offset] & 0xff;
61
+
62
+  if (!peek)
63
+    this._offset += 1;
64
+
65
+  return b;
66
+};
67
+
68
+
69
+Reader.prototype.peek = function () {
70
+  return this.readByte(true);
71
+};
72
+
73
+
74
+/**
75
+ * Reads a (potentially) variable length off the BER buffer.  This call is
76
+ * not really meant to be called directly, as callers have to manipulate
77
+ * the internal buffer afterwards.
78
+ *
79
+ * As a result of this call, you can call `Reader.length`, until the
80
+ * next thing called that does a readLength.
81
+ *
82
+ * @return {Number} the amount of offset to advance the buffer.
83
+ * @throws {InvalidAsn1Error} on bad ASN.1
84
+ */
85
+Reader.prototype.readLength = function (offset) {
86
+  if (offset === undefined)
87
+    offset = this._offset;
88
+
89
+  if (offset >= this._size)
90
+    return null;
91
+
92
+  var lenB = this._buf[offset++] & 0xff;
93
+  if (lenB === null)
94
+    return null;
95
+
96
+  if ((lenB & 0x80) === 0x80) {
97
+    lenB &= 0x7f;
98
+
99
+    if (lenB === 0)
100
+      throw newInvalidAsn1Error('Indefinite length not supported');
101
+
102
+    if (lenB > 4)
103
+      throw newInvalidAsn1Error('encoding too long');
104
+
105
+    if (this._size - offset < lenB)
106
+      return null;
107
+
108
+    this._len = 0;
109
+    for (var i = 0; i < lenB; i++)
110
+      this._len = (this._len << 8) + (this._buf[offset++] & 0xff);
111
+
112
+  } else {
113
+    // Wasn't a variable length
114
+    this._len = lenB;
115
+  }
116
+
117
+  return offset;
118
+};
119
+
120
+
121
+/**
122
+ * Parses the next sequence in this BER buffer.
123
+ *
124
+ * To get the length of the sequence, call `Reader.length`.
125
+ *
126
+ * @return {Number} the sequence's tag.
127
+ */
128
+Reader.prototype.readSequence = function (tag) {
129
+  var seq = this.peek();
130
+  if (seq === null)
131
+    return null;
132
+  if (tag !== undefined && tag !== seq)
133
+    throw newInvalidAsn1Error('Expected 0x' + tag.toString(16) +
134
+                              ': got 0x' + seq.toString(16));
135
+
136
+  var o = this.readLength(this._offset + 1); // stored in `length`
137
+  if (o === null)
138
+    return null;
139
+
140
+  this._offset = o;
141
+  return seq;
142
+};
143
+
144
+
145
+Reader.prototype.readInt = function () {
146
+  return this._readTag(ASN1.Integer);
147
+};
148
+
149
+
150
+Reader.prototype.readBoolean = function () {
151
+  return (this._readTag(ASN1.Boolean) === 0 ? false : true);
152
+};
153
+
154
+
155
+Reader.prototype.readEnumeration = function () {
156
+  return this._readTag(ASN1.Enumeration);
157
+};
158
+
159
+
160
+Reader.prototype.readString = function (tag, retbuf) {
161
+  if (!tag)
162
+    tag = ASN1.OctetString;
163
+
164
+  var b = this.peek();
165
+  if (b === null)
166
+    return null;
167
+
168
+  if (b !== tag)
169
+    throw newInvalidAsn1Error('Expected 0x' + tag.toString(16) +
170
+                              ': got 0x' + b.toString(16));
171
+
172
+  var o = this.readLength(this._offset + 1); // stored in `length`
173
+
174
+  if (o === null)
175
+    return null;
176
+
177
+  if (this.length > this._size - o)
178
+    return null;
179
+
180
+  this._offset = o;
181
+
182
+  if (this.length === 0)
183
+    return retbuf ? Buffer.alloc(0) : '';
184
+
185
+  var str = this._buf.slice(this._offset, this._offset + this.length);
186
+  this._offset += this.length;
187
+
188
+  return retbuf ? str : str.toString('utf8');
189
+};
190
+
191
+Reader.prototype.readOID = function (tag) {
192
+  if (!tag)
193
+    tag = ASN1.OID;
194
+
195
+  var b = this.readString(tag, true);
196
+  if (b === null)
197
+    return null;
198
+
199
+  var values = [];
200
+  var value = 0;
201
+
202
+  for (var i = 0; i < b.length; i++) {
203
+    var byte = b[i] & 0xff;
204
+
205
+    value <<= 7;
206
+    value += byte & 0x7f;
207
+    if ((byte & 0x80) === 0) {
208
+      values.push(value);
209
+      value = 0;
210
+    }
211
+  }
212
+
213
+  value = values.shift();
214
+  values.unshift(value % 40);
215
+  values.unshift((value / 40) >> 0);
216
+
217
+  return values.join('.');
218
+};
219
+
220
+
221
+Reader.prototype._readTag = function (tag) {
222
+  assert.ok(tag !== undefined);
223
+
224
+  var b = this.peek();
225
+
226
+  if (b === null)
227
+    return null;
228
+
229
+  if (b !== tag)
230
+    throw newInvalidAsn1Error('Expected 0x' + tag.toString(16) +
231
+                              ': got 0x' + b.toString(16));
232
+
233
+  var o = this.readLength(this._offset + 1); // stored in `length`
234
+  if (o === null)
235
+    return null;
236
+
237
+  if (this.length > 4)
238
+    throw newInvalidAsn1Error('Integer too long: ' + this.length);
239
+
240
+  if (this.length > this._size - o)
241
+    return null;
242
+  this._offset = o;
243
+
244
+  var fb = this._buf[this._offset];
245
+  var value = 0;
246
+
247
+  for (var i = 0; i < this.length; i++) {
248
+    value <<= 8;
249
+    value |= (this._buf[this._offset++] & 0xff);
250
+  }
251
+
252
+  if ((fb & 0x80) === 0x80 && i !== 4)
253
+    value -= (1 << (i * 8));
254
+
255
+  return value >> 0;
256
+};
257
+
258
+
259
+
260
+// --- Exported API
261
+
262
+module.exports = Reader;

+ 36
- 0
node_modules/asn1/lib/ber/types.js View File

@@ -0,0 +1,36 @@
1
+// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.
2
+
3
+
4
+module.exports = {
5
+  EOC: 0,
6
+  Boolean: 1,
7
+  Integer: 2,
8
+  BitString: 3,
9
+  OctetString: 4,
10
+  Null: 5,
11
+  OID: 6,
12
+  ObjectDescriptor: 7,
13
+  External: 8,
14
+  Real: 9, // float
15
+  Enumeration: 10,
16
+  PDV: 11,
17
+  Utf8String: 12,
18
+  RelativeOID: 13,
19
+  Sequence: 16,
20
+  Set: 17,
21
+  NumericString: 18,
22
+  PrintableString: 19,
23
+  T61String: 20,
24
+  VideotexString: 21,
25
+  IA5String: 22,
26
+  UTCTime: 23,
27
+  GeneralizedTime: 24,
28
+  GraphicString: 25,
29
+  VisibleString: 26,
30
+  GeneralString: 28,
31
+  UniversalString: 29,
32
+  CharacterString: 30,
33
+  BMPString: 31,
34
+  Constructor: 32,
35
+  Context: 128
36
+};

+ 317
- 0
node_modules/asn1/lib/ber/writer.js View File

@@ -0,0 +1,317 @@
1
+// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.
2
+
3
+var assert = require('assert');
4
+var Buffer = require('safer-buffer').Buffer;
5
+var ASN1 = require('./types');
6
+var errors = require('./errors');
7
+
8
+
9
+// --- Globals
10
+
11
+var newInvalidAsn1Error = errors.newInvalidAsn1Error;
12
+
13
+var DEFAULT_OPTS = {
14
+  size: 1024,
15
+  growthFactor: 8
16
+};
17
+
18
+
19
+// --- Helpers
20
+
21
+function merge(from, to) {
22
+  assert.ok(from);
23
+  assert.equal(typeof (from), 'object');
24
+  assert.ok(to);
25
+  assert.equal(typeof (to), 'object');
26
+
27
+  var keys = Object.getOwnPropertyNames(from);
28
+  keys.forEach(function (key) {
29
+    if (to[key])
30
+      return;
31
+
32
+    var value = Object.getOwnPropertyDescriptor(from, key);
33
+    Object.defineProperty(to, key, value);
34
+  });
35
+
36
+  return to;
37
+}
38
+
39
+
40
+
41
+// --- API
42
+
43
+function Writer(options) {
44
+  options = merge(DEFAULT_OPTS, options || {});
45
+
46
+  this._buf = Buffer.alloc(options.size || 1024);
47
+  this._size = this._buf.length;
48
+  this._offset = 0;
49
+  this._options = options;
50
+
51
+  // A list of offsets in the buffer where we need to insert
52
+  // sequence tag/len pairs.
53
+  this._seq = [];
54
+}
55
+
56
+Object.defineProperty(Writer.prototype, 'buffer', {
57
+  get: function () {
58
+    if (this._seq.length)
59
+      throw newInvalidAsn1Error(this._seq.length + ' unended sequence(s)');
60
+
61
+    return (this._buf.slice(0, this._offset));
62
+  }
63
+});
64
+
65
+Writer.prototype.writeByte = function (b) {
66
+  if (typeof (b) !== 'number')
67
+    throw new TypeError('argument must be a Number');
68
+
69
+  this._ensure(1);
70
+  this._buf[this._offset++] = b;
71
+};
72
+
73
+
74
+Writer.prototype.writeInt = function (i, tag) {
75
+  if (typeof (i) !== 'number')
76
+    throw new TypeError('argument must be a Number');
77
+  if (typeof (tag) !== 'number')
78
+    tag = ASN1.Integer;
79
+
80
+  var sz = 4;
81
+
82
+  while ((((i & 0xff800000) === 0) || ((i & 0xff800000) === 0xff800000 >> 0)) &&
83
+        (sz > 1)) {
84
+    sz--;
85
+    i <<= 8;
86
+  }
87
+
88
+  if (sz > 4)
89
+    throw newInvalidAsn1Error('BER ints cannot be > 0xffffffff');
90
+
91
+  this._ensure(2 + sz);
92
+  this._buf[this._offset++] = tag;
93
+  this._buf[this._offset++] = sz;
94
+
95
+  while (sz-- > 0) {
96
+    this._buf[this._offset++] = ((i & 0xff000000) >>> 24);
97
+    i <<= 8;
98
+  }
99
+
100
+};
101
+
102
+
103
+Writer.prototype.writeNull = function () {
104
+  this.writeByte(ASN1.Null);
105
+  this.writeByte(0x00);
106
+};
107
+
108
+
109
+Writer.prototype.writeEnumeration = function (i, tag) {
110
+  if (typeof (i) !== 'number')
111
+    throw new TypeError('argument must be a Number');
112
+  if (typeof (tag) !== 'number')
113
+    tag = ASN1.Enumeration;
114
+
115
+  return this.writeInt(i, tag);
116
+};
117
+
118
+
119
+Writer.prototype.writeBoolean = function (b, tag) {
120
+  if (typeof (b) !== 'boolean')
121
+    throw new TypeError('argument must be a Boolean');
122
+  if (typeof (tag) !== 'number')
123
+    tag = ASN1.Boolean;
124
+
125
+  this._ensure(3);
126
+  this._buf[this._offset++] = tag;
127
+  this._buf[this._offset++] = 0x01;
128
+  this._buf[this._offset++] = b ? 0xff : 0x00;
129
+};
130
+
131
+
132
+Writer.prototype.writeString = function (s, tag) {
133
+  if (typeof (s) !== 'string')
134
+    throw new TypeError('argument must be a string (was: ' + typeof (s) + ')');
135
+  if (typeof (tag) !== 'number')
136
+    tag = ASN1.OctetString;
137
+
138
+  var len = Buffer.byteLength(s);
139
+  this.writeByte(tag);
140
+  this.writeLength(len);
141
+  if (len) {
142
+    this._ensure(len);
143
+    this._buf.write(s, this._offset);
144
+    this._offset += len;
145
+  }
146
+};
147
+
148
+
149
+Writer.prototype.writeBuffer = function (buf, tag) {
150
+  if (typeof (tag) !== 'number')
151
+    throw new TypeError('tag must be a number');
152
+  if (!Buffer.isBuffer(buf))
153
+    throw new TypeError('argument must be a buffer');
154
+
155
+  this.writeByte(tag);
156
+  this.writeLength(buf.length);
157
+  this._ensure(buf.length);
158
+  buf.copy(this._buf, this._offset, 0, buf.length);
159
+  this._offset += buf.length;
160
+};
161
+
162
+
163
+Writer.prototype.writeStringArray = function (strings) {
164
+  if ((!strings instanceof Array))
165
+    throw new TypeError('argument must be an Array[String]');
166
+
167
+  var self = this;
168
+  strings.forEach(function (s) {
169
+    self.writeString(s);
170
+  });
171
+};
172
+
173
+// This is really to solve DER cases, but whatever for now
174
+Writer.prototype.writeOID = function (s, tag) {
175
+  if (typeof (s) !== 'string')
176
+    throw new TypeError('argument must be a string');
177
+  if (typeof (tag) !== 'number')
178
+    tag = ASN1.OID;
179
+
180
+  if (!/^([0-9]+\.){3,}[0-9]+$/.test(s))
181
+    throw new Error('argument is not a valid OID string');
182
+
183
+  function encodeOctet(bytes, octet) {
184
+    if (octet < 128) {
185
+        bytes.push(octet);
186
+    } else if (octet < 16384) {
187
+        bytes.push((octet >>> 7) | 0x80);
188
+        bytes.push(octet & 0x7F);
189
+    } else if (octet < 2097152) {
190
+      bytes.push((octet >>> 14) | 0x80);
191
+      bytes.push(((octet >>> 7) | 0x80) & 0xFF);
192
+      bytes.push(octet & 0x7F);
193
+    } else if (octet < 268435456) {
194
+      bytes.push((octet >>> 21) | 0x80);
195
+      bytes.push(((octet >>> 14) | 0x80) & 0xFF);
196
+      bytes.push(((octet >>> 7) | 0x80) & 0xFF);
197
+      bytes.push(octet & 0x7F);
198
+    } else {
199
+      bytes.push(((octet >>> 28) | 0x80) & 0xFF);
200
+      bytes.push(((octet >>> 21) | 0x80) & 0xFF);
201
+      bytes.push(((octet >>> 14) | 0x80) & 0xFF);
202
+      bytes.push(((octet >>> 7) | 0x80) & 0xFF);
203
+      bytes.push(octet & 0x7F);
204
+    }
205
+  }
206
+
207
+  var tmp = s.split('.');
208
+  var bytes = [];
209
+  bytes.push(parseInt(tmp[0], 10) * 40 + parseInt(tmp[1], 10));
210
+  tmp.slice(2).forEach(function (b) {
211
+    encodeOctet(bytes, parseInt(b, 10));
212
+  });
213
+
214
+  var self = this;
215
+  this._ensure(2 + bytes.length);
216
+  this.writeByte(tag);
217
+  this.writeLength(bytes.length);
218
+  bytes.forEach(function (b) {
219
+    self.writeByte(b);
220
+  });
221
+};
222
+
223
+
224
+Writer.prototype.writeLength = function (len) {
225
+  if (typeof (len) !== 'number')
226
+    throw new TypeError('argument must be a Number');
227
+
228
+  this._ensure(4);
229
+
230
+  if (len <= 0x7f) {
231
+    this._buf[this._offset++] = len;
232
+  } else if (len <= 0xff) {
233
+    this._buf[this._offset++] = 0x81;
234
+    this._buf[this._offset++] = len;
235
+  } else if (len <= 0xffff) {
236
+    this._buf[this._offset++] = 0x82;
237
+    this._buf[this._offset++] = len >> 8;
238
+    this._buf[this._offset++] = len;
239
+  } else if (len <= 0xffffff) {
240
+    this._buf[this._offset++] = 0x83;
241
+    this._buf[this._offset++] = len >> 16;
242
+    this._buf[this._offset++] = len >> 8;
243
+    this._buf[this._offset++] = len;
244
+  } else {
245
+    throw newInvalidAsn1Error('Length too long (> 4 bytes)');
246
+  }
247
+};
248
+
249
+Writer.prototype.startSequence = function (tag) {
250
+  if (typeof (tag) !== 'number')
251
+    tag = ASN1.Sequence | ASN1.Constructor;
252
+
253
+  this.writeByte(tag);
254
+  this._seq.push(this._offset);
255
+  this._ensure(3);
256
+  this._offset += 3;
257
+};
258
+
259
+
260
+Writer.prototype.endSequence = function () {
261
+  var seq = this._seq.pop();
262
+  var start = seq + 3;
263
+  var len = this._offset - start;
264
+
265
+  if (len <= 0x7f) {
266
+    this._shift(start, len, -2);
267
+    this._buf[seq] = len;
268
+  } else if (len <= 0xff) {
269
+    this._shift(start, len, -1);
270
+    this._buf[seq] = 0x81;
271
+    this._buf[seq + 1] = len;
272
+  } else if (len <= 0xffff) {
273
+    this._buf[seq] = 0x82;
274
+    this._buf[seq + 1] = len >> 8;
275
+    this._buf[seq + 2] = len;
276
+  } else if (len <= 0xffffff) {
277
+    this._shift(start, len, 1);
278
+    this._buf[seq] = 0x83;
279
+    this._buf[seq + 1] = len >> 16;
280
+    this._buf[seq + 2] = len >> 8;
281
+    this._buf[seq + 3] = len;
282
+  } else {
283
+    throw newInvalidAsn1Error('Sequence too long');
284
+  }
285
+};
286
+
287
+
288
+Writer.prototype._shift = function (start, len, shift) {
289
+  assert.ok(start !== undefined);
290
+  assert.ok(len !== undefined);
291
+  assert.ok(shift);
292
+
293
+  this._buf.copy(this._buf, start + shift, start, start + len);
294
+  this._offset += shift;
295
+};
296
+
297
+Writer.prototype._ensure = function (len) {
298
+  assert.ok(len);
299
+
300
+  if (this._size - this._offset < len) {
301
+    var sz = this._size * this._options.growthFactor;
302
+    if (sz - this._offset < len)
303
+      sz += len;
304
+
305
+    var buf = Buffer.alloc(sz);
306
+
307
+    this._buf.copy(buf, 0, 0, this._offset);
308
+    this._buf = buf;
309
+    this._size = sz;
310
+  }
311
+};
312
+
313
+
314
+
315
+// --- Exported API
316
+
317
+module.exports = Writer;

+ 20
- 0
node_modules/asn1/lib/index.js View File

@@ -0,0 +1,20 @@
1
+// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved.
2
+
3
+// If you have no idea what ASN.1 or BER is, see this:
4
+// ftp://ftp.rsa.com/pub/pkcs/ascii/layman.asc
5
+
6
+var Ber = require('./ber/index');
7
+
8
+
9
+
10
+// --- Exported API
11
+
12
+module.exports = {
13
+
14
+  Ber: Ber,
15
+
16
+  BerReader: Ber.Reader,
17
+
18
+  BerWriter: Ber.Writer
19
+
20
+};

+ 119
- 0
node_modules/asn1/package.json View File

@@ -0,0 +1,119 @@
1
+{
2
+  "_args": [
3
+    [
4
+      "asn1@~0.2.0",
5
+      "/home/lyxaira/Artesanias/artesanias/node_modules/ssh2-streams"
6
+    ]
7
+  ],
8
+  "_from": "asn1@>=0.2.0 <0.3.0",
9
+  "_hasShrinkwrap": false,
10
+  "_id": "asn1@0.2.4",
11
+  "_inCache": true,
12
+  "_installable": true,
13
+  "_location": "/asn1",
14
+  "_nodeVersion": "8.11.3",
15
+  "_npmOperationalInternal": {
16
+    "host": "s3://npm-registry-packages",
17
+    "tmp": "tmp/asn1_0.2.4_1533239008530_0.4258479106965425"
18
+  },
19
+  "_npmUser": {
20
+    "email": "cody.mello@joyent.com",
21
+    "name": "melloc"
22
+  },
23
+  "_npmVersion": "5.6.0",
24
+  "_phantomChildren": {},
25
+  "_requested": {
26
+    "name": "asn1",
27
+    "raw": "asn1@~0.2.0",
28
+    "rawSpec": "~0.2.0",
29
+    "scope": null,
30
+    "spec": ">=0.2.0 <0.3.0",
31
+    "type": "range"
32
+  },
33
+  "_requiredBy": [
34
+    "/ssh2-streams"
35
+  ],
36
+  "_resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
37
+  "_shasum": "8d2475dfab553bb33e77b54e59e880bb8ce23136",
38
+  "_shrinkwrap": null,
39
+  "_spec": "asn1@~0.2.0",
40
+  "_where": "/home/lyxaira/Artesanias/artesanias/node_modules/ssh2-streams",
41
+  "author": {
42
+    "name": "Joyent",
43
+    "url": "joyent.com"
44
+  },
45
+  "bugs": {
46
+    "url": "https://github.com/joyent/node-asn1/issues"
47
+  },
48
+  "contributors": [
49
+    {
50
+      "name": "Mark Cavage",
51
+      "email": "mcavage@gmail.com"
52
+    },
53
+    {
54
+      "name": "David Gwynne",
55
+      "email": "loki@animata.net"
56
+    },
57
+    {
58
+      "name": "Yunong Xiao",
59
+      "email": "yunong@joyent.com"
60
+    },
61
+    {
62
+      "name": "Alex Wilson",
63
+      "email": "alex.wilson@joyent.com"
64
+    }
65
+  ],
66
+  "dependencies": {
67
+    "safer-buffer": "~2.1.0"
68
+  },
69
+  "description": "Contains parsers and serializers for ASN.1 (currently BER only)",
70
+  "devDependencies": {
71
+    "eslint": "2.13.1",
72
+    "eslint-plugin-joyent": "~1.3.0",
73
+    "faucet": "0.0.1",
74
+    "istanbul": "^0.3.6",
75
+    "tape": "^3.5.0"
76
+  },
77
+  "directories": {},
78
+  "dist": {
79
+    "fileCount": 9,
80
+    "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
81
+    "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbY17hCRA9TVsSAnZWagAAIyEQAIzewTkLKyCEwZLZAa+Y\n4gyxLVzRjMv+m6jEs6F5c/WFro6qDfmlGLT4Bjxbbyu65Hbe2x9/6meItAu9\nRfrylo9sziNMM2VotpEXhvxEbB1eLXwJQfQyYespJ66jW4nCYibcuRIyAa9k\nU0sjmdkmc15sct9tVr/6y66s7wk7tPflpbTw5LIiJkPS7l9XUTv4m2pxgKy6\n3iFpWHWCw3qL0lM+fK6akfBRQqUYuRt64b8GOFokOzZ8umyTQNJ0Uf9t6HDG\neN/reQn19ShhMOgHEb+TbzQyZavzLCG6C0cto6axvYDWhFe0HCrEjYlcEAxK\nvJ6k6ZbBegdIGbtufxWx8w/PwSQWDj81zyrdSOGK+Q2exlcBeuKdxzCujr+r\nWVZttUAhd57u71QwsLYdFfiAOGU524NbMNGXYMhYR3cfMSxMj+n4gq9I4duO\nQjMM/Ssngc7j5zL9pBtld9NG5T9R68i+Rx7Bd0FPPA0gs5UyyxIjQBt3vmuC\n7uWEpkOWuN//jrz18oJFS9pzVUxF35eyTLB+leKlLBa+56XSl/B0QrONgaXF\n+V9wRHnMrfTGg98WcehqeoCEkXdrwvMGgssSr0+undAO0Vx3dPufLkwqyPbj\nictqz6YWwonqLcD0jihHcrb0sUz+A1T1aEbdW4iKVrgU1Z+SwjJebdPJtP7r\nnYrv\r\n=Rn3q\r\n-----END PGP SIGNATURE-----\r\n",
82
+    "shasum": "8d2475dfab553bb33e77b54e59e880bb8ce23136",
83
+    "tarball": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
84
+    "unpackedSize": 18040
85
+  },
86
+  "gitHead": "a80f9f24f17a915a8b8634cb72cd55af3f724f6d",
87
+  "homepage": "https://github.com/joyent/node-asn1#readme",
88
+  "license": "MIT",
89
+  "main": "lib/index.js",
90
+  "maintainers": [
91
+    {
92
+      "name": "arekinath",
93
+      "email": "alex@cooperi.net"
94
+    },
95
+    {
96
+      "name": "mcavage",
97
+      "email": "mcavage@gmail.com"
98
+    },
99
+    {
100
+      "name": "melloc",
101
+      "email": "cody.mello@joyent.com"
102
+    },
103
+    {
104
+      "name": "pfmooney",
105
+      "email": "pmooney@pfmooney.com"
106
+    }
107
+  ],
108
+  "name": "asn1",
109
+  "optionalDependencies": {},
110
+  "readme": "ERROR: No README data found!",
111
+  "repository": {
112
+    "type": "git",
113
+    "url": "git://github.com/joyent/node-asn1.git"
114
+  },
115
+  "scripts": {
116
+    "test": "tape ./test/ber/*.test.js"
117
+  },
118
+  "version": "0.2.4"
119
+}

+ 2
- 0
node_modules/async-limiter/.eslintignore View File

@@ -0,0 +1,2 @@
1
+coverage
2
+.nyc_output

+ 10
- 0
node_modules/async-limiter/.nycrc View File

@@ -0,0 +1,10 @@
1
+{
2
+  "check-coverage": false,
3
+  "lines": 99,
4
+  "statements": 99,
5
+  "functions": 99,
6
+  "branches": 99,
7
+  "include": [
8
+     "index.js"
9
+  ]
10
+}

+ 9
- 0
node_modules/async-limiter/.travis.yml View File

@@ -0,0 +1,9 @@
1
+language: node_js
2
+node_js:
3
+  - "6"
4
+  - "8"
5
+  - "10"
6
+  - "node"
7
+script: npm run travis
8
+cache:
9
+  yarn: true

+ 8
- 0
node_modules/async-limiter/LICENSE View File

@@ -0,0 +1,8 @@
1
+The MIT License (MIT)
2
+Copyright (c) 2017 Samuel Reed <samuel.trace.reed@gmail.com>
3
+
4
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
5
+
6
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
7
+
8
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 67
- 0
node_modules/async-limiter/index.js View File

@@ -0,0 +1,67 @@
1
+'use strict';
2
+
3
+function Queue(options) {
4
+  if (!(this instanceof Queue)) {
5
+    return new Queue(options);
6
+  }
7
+
8
+  options = options || {};
9
+  this.concurrency = options.concurrency || Infinity;
10
+  this.pending = 0;
11
+  this.jobs = [];
12
+  this.cbs = [];
13
+  this._done = done.bind(this);
14
+}
15
+
16
+var arrayAddMethods = [
17
+  'push',
18
+  'unshift',
19
+  'splice'
20
+];
21
+
22
+arrayAddMethods.forEach(function(method) {
23
+  Queue.prototype[method] = function() {
24
+    var methodResult = Array.prototype[method].apply(this.jobs, arguments);
25
+    this._run();
26
+    return methodResult;
27
+  };
28
+});
29
+
30
+Object.defineProperty(Queue.prototype, 'length', {
31
+  get: function() {
32
+    return this.pending + this.jobs.length;
33
+  }
34
+});
35
+
36
+Queue.prototype._run = function() {
37
+  if (this.pending === this.concurrency) {
38
+    return;
39
+  }
40
+  if (this.jobs.length) {
41
+    var job = this.jobs.shift();
42
+    this.pending++;
43
+    job(this._done);
44
+    this._run();
45
+  }
46
+
47
+  if (this.pending === 0) {
48
+    while (this.cbs.length !== 0) {
49
+      var cb = this.cbs.pop();
50
+      process.nextTick(cb);
51
+    }
52
+  }
53
+};
54
+
55
+Queue.prototype.onDone = function(cb) {
56
+  if (typeof cb === 'function') {
57
+    this.cbs.push(cb);
58
+    this._run();
59
+  }
60
+};
61
+
62
+function done() {
63
+  this.pending--;
64
+  this._run();
65
+}
66
+
67
+module.exports = Queue;

+ 102
- 0
node_modules/async-limiter/package.json View File

@@ -0,0 +1,102 @@
1
+{
2
+  "_args": [
3
+    [
4
+      "async-limiter@^1.0.0",
5
+      "/home/lyxaira/Artesanias/artesanias/node_modules/ws"
6
+    ]
7
+  ],
8
+  "_from": "async-limiter@>=1.0.0 <2.0.0",
9
+  "_hasShrinkwrap": false,
10
+  "_id": "async-limiter@1.0.1",
11
+  "_inCache": true,
12
+  "_installable": true,
13
+  "_location": "/async-limiter",
14
+  "_nodeVersion": "10.16.0",
15
+  "_npmOperationalInternal": {
16
+    "host": "s3://npm-registry-packages",
17
+    "tmp": "tmp/async-limiter_1.0.1_1564760633070_0.6974331182093105"
18
+  },
19
+  "_npmUser": {
20
+    "email": "samuel.trace.reed@gmail.com",
21
+    "name": "strml"
22
+  },
23
+  "_npmVersion": "6.9.0",
24
+  "_phantomChildren": {},
25
+  "_requested": {
26
+    "name": "async-limiter",
27
+    "raw": "async-limiter@^1.0.0",
28
+    "rawSpec": "^1.0.0",
29
+    "scope": null,
30
+    "spec": ">=1.0.0 <2.0.0",
31
+    "type": "range"
32
+  },
33
+  "_requiredBy": [
34
+    "/engine.io-client/ws",
35
+    "/ws"
36
+  ],
37
+  "_resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
38
+  "_shasum": "dd379e94f0db8310b08291f9d64c3209766617fd",
39
+  "_shrinkwrap": null,
40
+  "_spec": "async-limiter@^1.0.0",
41
+  "_where": "/home/lyxaira/Artesanias/artesanias/node_modules/ws",
42
+  "author": {
43
+    "name": "Samuel Reed"
44
+  },
45
+  "bugs": {
46
+    "url": "https://github.com/strml/async-limiter/issues"
47
+  },
48
+  "dependencies": {},
49
+  "description": "asynchronous function queue with adjustable concurrency",
50
+  "devDependencies": {
51
+    "coveralls": "^3.0.3",
52
+    "eslint": "^5.16.0",
53
+    "eslint-plugin-mocha": "^5.3.0",
54
+    "intelli-espower-loader": "^1.0.1",
55
+    "mocha": "^6.1.4",
56
+    "nyc": "^14.1.1",
57
+    "power-assert": "^1.6.1"
58
+  },
59
+  "directories": {},
60
+  "dist": {
61
+    "fileCount": 7,
62
+    "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
63
+    "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdRFo5CRA9TVsSAnZWagAAE8EP/AoamQTvsA8uUcSUKc4L\nL7rKbbH4m5Cv1Z7qeBXLV3KJHI+dhn/mKU2hOpnXHgks5Az4ELlOX9O1vo9j\nLYtN8ZMGEkMIx+k7OcVexaXLcK9ALliEMNoNy4cIVc+exBS4eKFPmaEx5DmD\nNf+eCG6jkA9WY/kYSmFnus7C0B7d2PMdmtBZKdzWya9PAB5BYEoz3/GYhJZG\nEFYHmWKtMDB6LMSZ0FSXwABV6QXWn5kk3fXaPX1NtMHLw+QCT/sWt+0cOnIE\nak2s8WOry7Fsx5wXQmKbd8854LC+yVT1f7RR7eBhKAlTk74nwfNDr84UBJIr\n+0G0RdgISOzLghtRFu3SqYKynXTjdlycZG9vvcHW9oPGI2ZiC2cHuiqc4+K7\ndYX1HGQICjflTmb+RR0vGNXiy3v6YBWgpItdeziPO2K+0uN6SJr1BidQ8oKI\nd49psu/xNvMhdwOo19+/Bt7n7nT4uzej8K7uQO81BJC0ITeNfaC/z9M/4VOg\nFuixwvvzfs+/RABxzXKZqOMVlAnAb4U/PBcliklyUBeZ62PDkqnBxdrOekf5\nacstUU3K5bAaBV8taKHEa1+tqYUjVEcaolDDKgmO0dxD9FlKAMlhck9ildO7\nnjODiNgcSMUlMmHGUZCEvjSt1YptntzC0DHwxWUjszaR4p0Iz0c0AyOYGH7T\nRewy\r\n=MPQY\r\n-----END PGP SIGNATURE-----\r\n",
64
+    "shasum": "dd379e94f0db8310b08291f9d64c3209766617fd",
65
+    "tarball": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
66
+    "unpackedSize": 6900
67
+  },
68
+  "gitHead": "f3bb66f26e69a5747a6483e32c775a02632020ee",
69
+  "homepage": "https://github.com/strml/async-limiter#readme",
70
+  "keywords": [
71
+    "async",
72
+    "asynchronous",
73
+    "concurrency",
74
+    "concurrent",
75
+    "job",
76
+    "limiter",
77
+    "task",
78
+    "throttle"
79
+  ],
80
+  "license": "MIT",
81
+  "maintainers": [
82
+    {
83
+      "name": "strml",
84
+      "email": "samuel.trace.reed@gmail.com"
85
+    }
86
+  ],
87
+  "name": "async-limiter",
88
+  "optionalDependencies": {},
89
+  "readme": "ERROR: No README data found!",
90
+  "repository": {
91
+    "type": "git",
92
+    "url": "git+https://github.com/strml/async-limiter.git"
93
+  },
94
+  "scripts": {
95
+    "coverage": "nyc npm test && nyc report --reporter=text-lcov | coveralls",
96
+    "example": "node example",
97
+    "lint": "eslint .",
98
+    "test": "mocha --require intelli-espower-loader test/",
99
+    "travis": "npm run lint && npm run test"
100
+  },
101
+  "version": "1.0.1"
102
+}

+ 132
- 0
node_modules/async-limiter/readme.md View File

@@ -0,0 +1,132 @@
1
+# Async-Limiter
2
+
3
+A module for limiting concurrent asynchronous actions in flight. Forked from [queue](https://github.com/jessetane/queue).
4
+
5
+[![npm](http://img.shields.io/npm/v/async-limiter.svg?style=flat-square)](http://www.npmjs.org/async-limiter)
6
+[![tests](https://img.shields.io/travis/STRML/async-limiter.svg?style=flat-square&branch=master)](https://travis-ci.org/STRML/async-limiter)
7
+[![coverage](https://img.shields.io/coveralls/STRML/async-limiter.svg?style=flat-square&branch=master)](https://coveralls.io/r/STRML/async-limiter)
8
+
9
+This module exports a class `Limiter` that implements some of the `Array` API.
10
+Pass async functions (ones that accept a callback or return a promise) to an instance's additive array methods.
11
+
12
+## Motivation
13
+
14
+Certain functions, like `zlib`, have [undesirable behavior](https://github.com/nodejs/node/issues/8871#issuecomment-250915913) when
15
+run at infinite concurrency.
16
+
17
+In this case, it is actually faster, and takes far less memory, to limit concurrency.
18
+
19
+This module should do the absolute minimum work necessary to queue up functions. PRs are welcome that would
20
+make this module faster or lighter, but new functionality is not desired.
21
+
22
+Style should confirm to nodejs/node style.
23
+
24
+## Example
25
+
26
+``` javascript
27
+var Limiter = require('async-limiter')
28
+
29
+var t = new Limiter({concurrency: 2});
30
+var results = []
31
+
32
+// add jobs using the familiar Array API
33
+t.push(function (cb) {
34
+  results.push('two')
35
+  cb()
36
+})
37
+
38
+t.push(
39
+  function (cb) {
40
+    results.push('four')
41
+    cb()
42
+  },
43
+  function (cb) {
44
+    results.push('five')
45
+    cb()
46
+  }
47
+)
48
+
49
+t.unshift(function (cb) {
50
+  results.push('one')
51
+  cb()
52
+})
53
+
54
+t.splice(2, 0, function (cb) {
55
+  results.push('three')
56
+  cb()
57
+})
58
+
59
+// Jobs run automatically. If you want a callback when all are done,
60
+// call 'onDone()'.
61
+t.onDone(function () {
62
+  console.log('all done:', results)
63
+})
64
+```
65
+
66
+## Zlib Example
67
+
68
+```js
69
+const zlib = require('zlib');
70
+const Limiter = require('async-limiter');
71
+
72
+const message = {some: "data"};
73
+const payload = new Buffer(JSON.stringify(message));
74
+
75
+// Try with different concurrency values to see how this actually
76
+// slows significantly with higher concurrency!
77
+//
78
+// 5:        1398.607ms
79
+// 10:       1375.668ms
80
+// Infinity: 4423.300ms
81
+//
82
+const t = new Limiter({concurrency: 5});
83
+function deflate(payload, cb) {
84
+  t.push(function(done) {
85
+    zlib.deflate(payload, function(err, buffer) {
86
+      done();
87
+      cb(err, buffer);
88
+    });
89
+  });
90
+}
91
+
92
+console.time('deflate');
93
+for(let i = 0; i < 30000; ++i) {
94
+  deflate(payload, function (err, buffer) {});
95
+}
96
+t.onDone(function() {
97
+  console.timeEnd('deflate');
98
+});
99
+```
100
+
101
+## Install
102
+
103
+`npm install async-limiter`
104
+
105
+## Test
106
+
107
+`npm test`
108
+
109
+## API
110
+
111
+### `var t = new Limiter([opts])`
112
+Constructor. `opts` may contain inital values for:
113
+* `t.concurrency`
114
+
115
+## Instance methods
116
+
117
+### `t.onDone(fn)`
118
+`fn` will be called once and only once, when the queue is empty.
119
+
120
+## Instance methods mixed in from `Array`
121
+Mozilla has docs on how these methods work [here](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array).
122
+### `t.push(element1, ..., elementN)`
123
+### `t.unshift(element1, ..., elementN)`
124
+### `t.splice(index , howMany[, element1[, ...[, elementN]]])`
125
+
126
+## Properties
127
+### `t.concurrency`
128
+Max number of jobs the queue should process concurrently, defaults to `Infinity`.
129
+
130
+### `t.length`
131
+Jobs pending + jobs to process (readonly).
132
+

+ 3
- 0
node_modules/async/.travis.yml View File

@@ -0,0 +1,3 @@
1
+language: node_js
2
+node_js:
3
+  - "0.10"

+ 19
- 0
node_modules/async/LICENSE View File

@@ -0,0 +1,19 @@
1
+Copyright (c) 2010-2014 Caolan McMahon
2
+
3
+Permission is hereby granted, free of charge, to any person obtaining a copy
4
+of this software and associated documentation files (the "Software"), to deal
5
+in the Software without restriction, including without limitation the rights
6
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+copies of the Software, and to permit persons to whom the Software is
8
+furnished to do so, subject to the following conditions:
9
+
10
+The above copyright notice and this permission notice shall be included in
11
+all copies or substantial portions of the Software.
12
+
13
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+THE SOFTWARE.

+ 1633
- 0
node_modules/async/README.md
File diff suppressed because it is too large
View File


+ 11
- 0
node_modules/async/component.json View File

@@ -0,0 +1,11 @@
1
+{
2
+  "name": "async",
3
+  "repo": "caolan/async",
4
+  "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
+}

+ 1058
- 0
node_modules/async/lib/async.js
File diff suppressed because it is too large
View File


+ 86
- 0
node_modules/async/package.json View File

@@ -0,0 +1,86 @@
1
+{
2
+  "_args": [
3
+    [
4
+      "async@~0.8.0",
5
+      "/home/lyxaira/Artesanias/artesanias/node_modules/ftp-client"
6
+    ]
7
+  ],
8
+  "_from": "async@>=0.8.0 <0.9.0",
9
+  "_id": "async@0.8.0",
10
+  "_inCache": true,
11
+  "_installable": true,
12
+  "_location": "/async",
13
+  "_npmUser": {
14
+    "email": "caolan.mcmahon@gmail.com",
15
+    "name": "caolan"
16
+  },
17
+  "_npmVersion": "1.4.3",
18
+  "_phantomChildren": {},
19
+  "_requested": {
20
+    "name": "async",
21
+    "raw": "async@~0.8.0",
22
+    "rawSpec": "~0.8.0",
23
+    "scope": null,
24
+    "spec": ">=0.8.0 <0.9.0",
25
+    "type": "range"
26
+  },
27
+  "_requiredBy": [
28
+    "/ftp-client"
29
+  ],
30
+  "_resolved": "https://registry.npmjs.org/async/-/async-0.8.0.tgz",
31
+  "_shasum": "ee65ec77298c2ff1456bc4418a052d0f06435112",
32
+  "_shrinkwrap": null,
33
+  "_spec": "async@~0.8.0",
34
+  "_where": "/home/lyxaira/Artesanias/artesanias/node_modules/ftp-client",
35
+  "author": {
36
+    "name": "Caolan McMahon"
37
+  },
38
+  "bugs": {
39
+    "url": "https://github.com/caolan/async/issues"
40
+  },
41
+  "dependencies": {},
42
+  "description": "Higher-order functions and common patterns for asynchronous code",
43
+  "devDependencies": {
44
+    "nodelint": ">0.0.0",
45
+    "nodeunit": ">0.0.0",
46
+    "uglify-js": "1.2.x"
47
+  },
48
+  "directories": {},
49
+  "dist": {
50
+    "shasum": "ee65ec77298c2ff1456bc4418a052d0f06435112",
51
+    "tarball": "https://registry.npmjs.org/async/-/async-0.8.0.tgz"
52
+  },
53
+  "homepage": "https://github.com/caolan/async",
54
+  "jam": {
55
+    "include": [
56
+      "LICENSE",
57
+      "README.md",
58
+      "lib/async.js"
59
+    ],
60
+    "main": "lib/async.js"
61
+  },
62
+  "licenses": [
63
+    {
64
+      "type": "MIT",
65
+      "url": "https://github.com/caolan/async/raw/master/LICENSE"
66
+    }
67
+  ],
68
+  "main": "./lib/async",
69
+  "maintainers": [
70
+    {
71
+      "name": "caolan",
72
+      "email": "caolan@caolanmcmahon.com"
73
+    }
74
+  ],
75
+  "name": "async",
76
+  "optionalDependencies": {},
77
+  "readme": "ERROR: No README data found!",
78
+  "repository": {
79
+    "type": "git",
80
+    "url": "git+https://github.com/caolan/async.git"
81
+  },
82
+  "scripts": {
83
+    "test": "nodeunit test/test-async.js"
84
+  },
85
+  "version": "0.8.0"
86
+}

+ 1
- 0
node_modules/backo2/.npmignore View File

@@ -0,0 +1 @@
1
+node_modules/

+ 12
- 0
node_modules/backo2/History.md View File

@@ -0,0 +1,12 @@
1
+
2
+1.0.1 / 2014-02-17
3
+==================
4
+
5
+ * go away decimal point
6
+ * history
7
+
8
+1.0.0 / 2014-02-17
9
+==================
10
+
11
+ * add jitter option
12
+ * Initial commit

+ 8
- 0
node_modules/backo2/Makefile View File

@@ -0,0 +1,8 @@
1
+
2
+test:
3
+	@./node_modules/.bin/mocha \
4
+		--require should \
5
+		--reporter dot \
6
+		--bail
7
+
8
+.PHONY: test

+ 34
- 0
node_modules/backo2/Readme.md View File

@@ -0,0 +1,34 @@
1
+# backo
2
+
3
+  Simple exponential backoff because the others seem to have weird abstractions.
4
+
5
+## Installation
6
+
7
+```
8
+$ npm install backo
9
+```
10
+
11
+## Options
12
+
13
+ - `min` initial timeout in milliseconds [100]
14
+ - `max` max timeout [10000]
15
+ - `jitter` [0]
16
+ - `factor` [2]
17
+
18
+## Example
19
+
20
+```js
21
+var Backoff = require('backo');
22
+var backoff = new Backoff({ min: 100, max: 20000 });
23
+
24
+setTimeout(function(){
25
+  something.reconnect();
26
+}, backoff.duration());
27
+
28
+// later when something works
29
+backoff.reset()
30
+```
31
+
32
+# License
33
+
34
+  MIT

+ 11
- 0
node_modules/backo2/component.json View File

@@ -0,0 +1,11 @@
1
+{
2
+  "name": "backo",
3
+  "repo": "segmentio/backo",
4
+  "dependencies": {},
5
+  "version": "1.0.1",
6
+  "description": "simple backoff without the weird abstractions",
7
+  "keywords": ["backoff"],
8
+  "license": "MIT",
9
+  "scripts": ["index.js"],
10
+  "main": "index.js"
11
+}

+ 85
- 0
node_modules/backo2/index.js View File

@@ -0,0 +1,85 @@
1
+
2
+/**
3
+ * Expose `Backoff`.
4
+ */
5
+
6
+module.exports = Backoff;
7
+
8
+/**
9
+ * Initialize backoff timer with `opts`.
10
+ *
11
+ * - `min` initial timeout in milliseconds [100]
12
+ * - `max` max timeout [10000]
13
+ * - `jitter` [0]
14
+ * - `factor` [2]
15
+ *
16
+ * @param {Object} opts
17
+ * @api public
18
+ */
19
+
20
+function Backoff(opts) {
21
+  opts = opts || {};
22
+  this.ms = opts.min || 100;
23
+  this.max = opts.max || 10000;
24
+  this.factor = opts.factor || 2;
25
+  this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;
26
+  this.attempts = 0;
27
+}
28
+
29
+/**
30
+ * Return the backoff duration.
31
+ *
32
+ * @return {Number}
33
+ * @api public
34
+ */
35
+
36
+Backoff.prototype.duration = function(){
37
+  var ms = this.ms * Math.pow(this.factor, this.attempts++);
38
+  if (this.jitter) {
39
+    var rand =  Math.random();
40
+    var deviation = Math.floor(rand * this.jitter * ms);
41
+    ms = (Math.floor(rand * 10) & 1) == 0  ? ms - deviation : ms + deviation;
42
+  }
43
+  return Math.min(ms, this.max) | 0;
44
+};
45
+
46
+/**
47
+ * Reset the number of attempts.
48
+ *
49
+ * @api public
50
+ */
51
+
52
+Backoff.prototype.reset = function(){
53
+  this.attempts = 0;
54
+};
55
+
56
+/**
57
+ * Set the minimum duration
58
+ *
59
+ * @api public
60
+ */
61
+
62
+Backoff.prototype.setMin = function(min){
63
+  this.ms = min;
64
+};
65
+
66
+/**
67
+ * Set the maximum duration
68
+ *
69
+ * @api public
70
+ */
71
+
72
+Backoff.prototype.setMax = function(max){
73
+  this.max = max;
74
+};
75
+
76
+/**
77
+ * Set the jitter
78
+ *
79
+ * @api public
80
+ */
81
+
82
+Backoff.prototype.setJitter = function(jitter){
83
+  this.jitter = jitter;
84
+};
85
+

+ 70
- 0
node_modules/backo2/package.json View File

@@ -0,0 +1,70 @@
1
+{
2
+  "_args": [
3
+    [
4
+      "backo2@1.0.2",
5
+      "/home/lyxaira/Artesanias/artesanias/node_modules/socket.io-client"
6
+    ]
7
+  ],
8
+  "_from": "backo2@1.0.2",
9
+  "_id": "backo2@1.0.2",
10
+  "_inCache": true,
11
+  "_installable": true,
12
+  "_location": "/backo2",
13
+  "_npmUser": {
14
+    "email": "mokesmokes@gmail.com",
15
+    "name": "mokesmokes"
16
+  },
17
+  "_npmVersion": "1.4.28",
18
+  "_phantomChildren": {},
19
+  "_requested": {
20
+    "name": "backo2",
21
+    "raw": "backo2@1.0.2",
22
+    "rawSpec": "1.0.2",
23
+    "scope": null,
24
+    "spec": "1.0.2",
25
+    "type": "version"
26
+  },
27
+  "_requiredBy": [
28
+    "/socket.io-client"
29
+  ],
30
+  "_resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
31
+  "_shasum": "31ab1ac8b129363463e35b3ebb69f4dfcfba7947",
32
+  "_shrinkwrap": null,
33
+  "_spec": "backo2@1.0.2",
34
+  "_where": "/home/lyxaira/Artesanias/artesanias/node_modules/socket.io-client",
35
+  "bugs": {
36
+    "url": "https://github.com/mokesmokes/backo/issues"
37
+  },
38
+  "dependencies": {},
39
+  "description": "simple backoff based on segmentio/backo",
40
+  "devDependencies": {
41
+    "mocha": "*",
42
+    "should": "*"
43
+  },
44
+  "directories": {},
45
+  "dist": {
46
+    "shasum": "31ab1ac8b129363463e35b3ebb69f4dfcfba7947",
47
+    "tarball": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz"
48
+  },
49
+  "gitHead": "3e695bade7756fef2295e8883bf3570a06e5d9ec",
50
+  "homepage": "https://github.com/mokesmokes/backo",
51
+  "keywords": [
52
+    "backoff"
53
+  ],
54
+  "license": "MIT",
55
+  "maintainers": [
56
+    {
57
+      "name": "mokesmokes",
58
+      "email": "mokesmokes@gmail.com"
59
+    }
60
+  ],
61
+  "name": "backo2",
62
+  "optionalDependencies": {},
63
+  "readme": "ERROR: No README data found!",
64
+  "repository": {
65
+    "type": "git",
66
+    "url": "git+https://github.com/mokesmokes/backo.git"
67
+  },
68
+  "scripts": {},
69
+  "version": "1.0.2"
70
+}

+ 18
- 0
node_modules/backo2/test/index.js View File

@@ -0,0 +1,18 @@
1
+
2
+var Backoff = require('..');
3
+var assert = require('assert');
4
+
5
+describe('.duration()', function(){
6
+  it('should increase the backoff', function(){
7
+    var b = new Backoff;
8
+
9
+    assert(100 == b.duration());
10
+    assert(200 == b.duration());
11
+    assert(400 == b.duration());
12
+    assert(800 == b.duration());
13
+
14
+    b.reset();
15
+    assert(100 == b.duration());
16
+    assert(200 == b.duration());
17
+  })
18
+})

+ 3
- 0
node_modules/base64-arraybuffer/.npmignore View File

@@ -0,0 +1,3 @@
1
+/node_modules/
2
+Gruntfile.js
3
+/test/

+ 19
- 0
node_modules/base64-arraybuffer/.travis.yml View File

@@ -0,0 +1,19 @@
1
+language: node_js
2
+node_js:
3
+- '0.12'
4
+- iojs-1
5
+- iojs-2
6
+- iojs-3
7
+- '4.1'
8
+before_script:
9
+- npm install
10
+before_install: npm install -g npm@'>=2.13.5'
11
+deploy:
12
+  provider: npm
13
+  email: niklasvh@gmail.com
14
+  api_key:
15
+    secure: oHV9ArprTj5WOk7MP1UF7QMJ70huXw+y7xXb5wF4+V2H8Hyfa5TfE0DiOmqrube1WXTeH1FLgq54shp/sJWi47Hkg/GyeoB5NnsPhYEaJkaON9UG5blML+ODiNVsEnq/1kNBQ8e0+0JItMPLGySKyFmuZ3yflulXKS8O88mfINo=
16
+  on:
17
+    tags: true
18
+    branch: master
19
+    repo: niklasvh/base64-arraybuffer

+ 22
- 0
node_modules/base64-arraybuffer/LICENSE-MIT View File

@@ -0,0 +1,22 @@
1
+Copyright (c) 2012 Niklas von Hertzen
2
+
3
+Permission is hereby granted, free of charge, to any person
4
+obtaining a copy of this software and associated documentation
5
+files (the "Software"), to deal in the Software without
6
+restriction, including without limitation the rights to use,
7
+copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+copies of the Software, and to permit persons to whom the
9
+Software is furnished to do so, subject to the following
10
+conditions:
11
+
12
+The above copyright notice and this permission notice shall be
13
+included in all copies or substantial portions of the Software.
14
+
15
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+OTHER DEALINGS IN THE SOFTWARE.

+ 20
- 0
node_modules/base64-arraybuffer/README.md View File

@@ -0,0 +1,20 @@
1
+# base64-arraybuffer
2
+
3
+[![Build Status](https://travis-ci.org/niklasvh/base64-arraybuffer.png)](https://travis-ci.org/niklasvh/base64-arraybuffer)
4
+[![NPM Downloads](https://img.shields.io/npm/dm/base64-arraybuffer.svg)](https://www.npmjs.org/package/base64-arraybuffer)
5
+[![NPM Version](https://img.shields.io/npm/v/base64-arraybuffer.svg)](https://www.npmjs.org/package/base64-arraybuffer)
6
+
7
+Encode/decode base64 data into ArrayBuffers
8
+
9
+## Getting Started
10
+Install the module with: `npm install base64-arraybuffer`
11
+
12
+## API
13
+The library encodes and decodes base64 to and from ArrayBuffers
14
+
15
+ - __encode(buffer)__ - Encodes `ArrayBuffer` into base64 string
16
+ - __decode(str)__ - Decodes base64 string to `ArrayBuffer`
17
+
18
+## License
19
+Copyright (c) 2012 Niklas von Hertzen
20
+Licensed under the MIT license.

+ 67
- 0
node_modules/base64-arraybuffer/lib/base64-arraybuffer.js View File

@@ -0,0 +1,67 @@
1
+/*
2
+ * base64-arraybuffer
3
+ * https://github.com/niklasvh/base64-arraybuffer
4
+ *
5
+ * Copyright (c) 2012 Niklas von Hertzen
6
+ * Licensed under the MIT license.
7
+ */
8
+(function(){
9
+  "use strict";
10
+
11
+  var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
12
+
13
+  // Use a lookup table to find the index.
14
+  var lookup = new Uint8Array(256);
15
+  for (var i = 0; i < chars.length; i++) {
16
+    lookup[chars.charCodeAt(i)] = i;
17
+  }
18
+
19
+  exports.encode = function(arraybuffer) {
20
+    var bytes = new Uint8Array(arraybuffer),
21
+    i, len = bytes.length, base64 = "";
22
+
23
+    for (i = 0; i < len; i+=3) {
24
+      base64 += chars[bytes[i] >> 2];
25
+      base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];
26
+      base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];
27
+      base64 += chars[bytes[i + 2] & 63];
28
+    }
29
+
30
+    if ((len % 3) === 2) {
31
+      base64 = base64.substring(0, base64.length - 1) + "=";
32
+    } else if (len % 3 === 1) {
33
+      base64 = base64.substring(0, base64.length - 2) + "==";
34
+    }
35
+
36
+    return base64;
37
+  };
38
+
39
+  exports.decode =  function(base64) {
40
+    var bufferLength = base64.length * 0.75,
41
+    len = base64.length, i, p = 0,
42
+    encoded1, encoded2, encoded3, encoded4;
43
+
44
+    if (base64[base64.length - 1] === "=") {
45
+      bufferLength--;
46
+      if (base64[base64.length - 2] === "=") {
47
+        bufferLength--;
48
+      }
49
+    }
50
+
51
+    var arraybuffer = new ArrayBuffer(bufferLength),
52
+    bytes = new Uint8Array(arraybuffer);
53
+
54
+    for (i = 0; i < len; i+=4) {
55
+      encoded1 = lookup[base64.charCodeAt(i)];
56
+      encoded2 = lookup[base64.charCodeAt(i+1)];
57
+      encoded3 = lookup[base64.charCodeAt(i+2)];
58
+      encoded4 = lookup[base64.charCodeAt(i+3)];
59
+
60
+      bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);
61
+      bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);
62
+      bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);
63
+    }
64
+
65
+    return arraybuffer;
66
+  };
67
+})();

+ 89
- 0
node_modules/base64-arraybuffer/package.json View File

@@ -0,0 +1,89 @@
1
+{
2
+  "_args": [
3
+    [
4
+      "base64-arraybuffer@0.1.5",
5
+      "/home/lyxaira/Artesanias/artesanias/node_modules/engine.io-parser"
6
+    ]
7
+  ],
8
+  "_from": "base64-arraybuffer@0.1.5",
9
+  "_id": "base64-arraybuffer@0.1.5",
10
+  "_inCache": true,
11
+  "_installable": true,
12
+  "_location": "/base64-arraybuffer",
13
+  "_nodeVersion": "2.5.0",
14
+  "_npmUser": {
15
+    "email": "niklasvh@gmail.com",
16
+    "name": "niklasvh"
17
+  },
18
+  "_npmVersion": "3.4.0",
19
+  "_phantomChildren": {},
20
+  "_requested": {
21
+    "name": "base64-arraybuffer",
22
+    "raw": "base64-arraybuffer@0.1.5",
23
+    "rawSpec": "0.1.5",
24
+    "scope": null,
25
+    "spec": "0.1.5",
26
+    "type": "version"
27
+  },
28
+  "_requiredBy": [
29
+    "/engine.io-parser",
30
+    "/socket.io-client"
31
+  ],
32
+  "_resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
33
+  "_shasum": "73926771923b5a19747ad666aa5cd4bf9c6e9ce8",
34
+  "_shrinkwrap": null,
35
+  "_spec": "base64-arraybuffer@0.1.5",
36
+  "_where": "/home/lyxaira/Artesanias/artesanias/node_modules/engine.io-parser",
37
+  "author": {
38
+    "email": "niklasvh@gmail.com",
39
+    "name": "Niklas von Hertzen",
40
+    "url": "http://hertzen.com"
41
+  },
42
+  "bugs": {
43
+    "url": "https://github.com/niklasvh/base64-arraybuffer/issues"
44
+  },
45
+  "dependencies": {},
46
+  "description": "Encode/decode base64 data into ArrayBuffers",
47
+  "devDependencies": {
48
+    "grunt": "^0.4.5",
49
+    "grunt-cli": "^0.1.13",
50
+    "grunt-contrib-jshint": "^0.11.2",
51
+    "grunt-contrib-nodeunit": "^0.4.1",
52
+    "grunt-contrib-watch": "^0.6.1"
53
+  },
54
+  "directories": {},
55
+  "dist": {
56
+    "shasum": "73926771923b5a19747ad666aa5cd4bf9c6e9ce8",
57
+    "tarball": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz"
58
+  },
59
+  "engines": {
60
+    "node": ">= 0.6.0"
61
+  },
62
+  "gitHead": "e9457ccb7b140f5ae54a2880c8e9b967ffb03a7d",
63
+  "homepage": "https://github.com/niklasvh/base64-arraybuffer",
64
+  "keywords": [],
65
+  "licenses": [
66
+    {
67
+      "type": "MIT",
68
+      "url": "https://github.com/niklasvh/base64-arraybuffer/blob/master/LICENSE-MIT"
69
+    }
70
+  ],
71
+  "main": "lib/base64-arraybuffer",
72
+  "maintainers": [
73
+    {
74
+      "name": "niklasvh",
75
+      "email": "niklasvh@gmail.com"
76
+    }
77
+  ],
78
+  "name": "base64-arraybuffer",
79
+  "optionalDependencies": {},
80
+  "readme": "ERROR: No README data found!",
81
+  "repository": {
82
+    "type": "git",
83
+    "url": "git+https://github.com/niklasvh/base64-arraybuffer.git"
84
+  },
85
+  "scripts": {
86
+    "test": "grunt nodeunit"
87
+  },
88
+  "version": "0.1.5"
89
+}

+ 16
- 0
node_modules/base64id/CHANGELOG.md View File

@@ -0,0 +1,16 @@
1
+# [2.0.0](https://github.com/faeldt/base64id/compare/1.0.0...2.0.0) (2019-05-27)
2
+
3
+
4
+### Code Refactoring
5
+
6
+* **buffer:** replace deprecated Buffer constructor usage ([#11](https://github.com/faeldt/base64id/issues/11)) ([ccfba54](https://github.com/faeldt/base64id/commit/ccfba54))
7
+
8
+
9
+### BREAKING CHANGES
10
+
11
+* **buffer:** drop support for Node.js ≤ 4.4.x and 5.0.0 - 5.9.x
12
+
13
+See: https://nodejs.org/en/docs/guides/buffer-constructor-deprecation/
14
+
15
+
16
+

+ 22
- 0
node_modules/base64id/LICENSE View File

@@ -0,0 +1,22 @@
1
+(The MIT License)
2
+
3
+Copyright (c) 2012-2016 Kristian Faeldt <faeldt_kristian@cyberagent.co.jp>
4
+
5
+Permission is hereby granted, free of charge, to any person obtaining
6
+a copy of this software and associated documentation files (the
7
+'Software'), to deal in the Software without restriction, including
8
+without limitation the rights to use, copy, modify, merge, publish,
9
+distribute, sublicense, and/or sell copies of the Software, and to
10
+permit persons to whom the Software is furnished to do so, subject to
11
+the following conditions:
12
+
13
+The above copyright notice and this permission notice shall be
14
+included in all copies or substantial portions of the Software.
15
+
16
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
17
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 18
- 0
node_modules/base64id/README.md View File

@@ -0,0 +1,18 @@
1
+base64id
2
+========
3
+
4
+Node.js module that generates a base64 id.
5
+
6
+Uses crypto.randomBytes when available, falls back to unsafe methods for node.js <= 0.4.
7
+
8
+To increase performance, random bytes are buffered to minimize the number of synchronous calls to crypto.randomBytes.
9
+
10
+## Installation
11
+
12
+   $ npm install base64id
13
+
14
+## Usage
15
+
16
+   var base64id = require('base64id');
17
+
18
+   var id = base64id.generateId();

+ 103
- 0
node_modules/base64id/lib/base64id.js View File

@@ -0,0 +1,103 @@
1
+/*!
2
+ * base64id v0.1.0
3
+ */
4
+
5
+/**
6
+ * Module dependencies
7
+ */
8
+
9
+var crypto = require('crypto');
10
+
11
+/**
12
+ * Constructor
13
+ */
14
+
15
+var Base64Id = function() { };
16
+
17
+/**
18
+ * Get random bytes
19
+ *
20
+ * Uses a buffer if available, falls back to crypto.randomBytes
21
+ */
22
+
23
+Base64Id.prototype.getRandomBytes = function(bytes) {
24
+
25
+  var BUFFER_SIZE = 4096
26
+  var self = this;  
27
+  
28
+  bytes = bytes || 12;
29
+
30
+  if (bytes > BUFFER_SIZE) {
31
+    return crypto.randomBytes(bytes);
32
+  }
33
+  
34
+  var bytesInBuffer = parseInt(BUFFER_SIZE/bytes);
35
+  var threshold = parseInt(bytesInBuffer*0.85);
36
+
37
+  if (!threshold) {
38
+    return crypto.randomBytes(bytes);
39
+  }
40
+
41
+  if (this.bytesBufferIndex == null) {
42
+     this.bytesBufferIndex = -1;
43
+  }
44
+
45
+  if (this.bytesBufferIndex == bytesInBuffer) {
46
+    this.bytesBuffer = null;
47
+    this.bytesBufferIndex = -1;
48
+  }
49
+
50
+  // No buffered bytes available or index above threshold
51
+  if (this.bytesBufferIndex == -1 || this.bytesBufferIndex > threshold) {
52
+     
53
+    if (!this.isGeneratingBytes) {
54
+      this.isGeneratingBytes = true;
55
+      crypto.randomBytes(BUFFER_SIZE, function(err, bytes) {
56
+        self.bytesBuffer = bytes;
57
+        self.bytesBufferIndex = 0;
58
+        self.isGeneratingBytes = false;
59
+      }); 
60
+    }
61
+    
62
+    // Fall back to sync call when no buffered bytes are available
63
+    if (this.bytesBufferIndex == -1) {
64
+      return crypto.randomBytes(bytes);
65
+    }
66
+  }
67
+  
68
+  var result = this.bytesBuffer.slice(bytes*this.bytesBufferIndex, bytes*(this.bytesBufferIndex+1)); 
69
+  this.bytesBufferIndex++; 
70
+  
71
+  return result;
72
+}
73
+
74
+/**
75
+ * Generates a base64 id
76
+ *
77
+ * (Original version from socket.io <http://socket.io>)
78
+ */
79
+
80
+Base64Id.prototype.generateId = function () {
81
+  var rand = Buffer.alloc(15); // multiple of 3 for base64
82
+  if (!rand.writeInt32BE) {
83
+    return Math.abs(Math.random() * Math.random() * Date.now() | 0).toString()
84
+      + Math.abs(Math.random() * Math.random() * Date.now() | 0).toString();
85
+  }
86
+  this.sequenceNumber = (this.sequenceNumber + 1) | 0;
87
+  rand.writeInt32BE(this.sequenceNumber, 11);
88
+  if (crypto.randomBytes) {
89
+    this.getRandomBytes(12).copy(rand);
90
+  } else {
91
+    // not secure for node 0.4
92
+    [0, 4, 8].forEach(function(i) {
93
+      rand.writeInt32BE(Math.random() * Math.pow(2, 32) | 0, i);
94
+    });
95
+  }
96
+  return rand.toString('base64').replace(/\//g, '_').replace(/\+/g, '-');
97
+};
98
+
99
+/**
100
+ * Export
101
+ */
102
+
103
+exports = module.exports = new Base64Id();

+ 85
- 0
node_modules/base64id/package.json View File

@@ -0,0 +1,85 @@
1
+{
2
+  "_args": [
3
+    [
4
+      "base64id@2.0.0",
5
+      "/home/lyxaira/Artesanias/artesanias/node_modules/engine.io"
6
+    ]
7
+  ],
8
+  "_from": "base64id@2.0.0",
9
+  "_hasShrinkwrap": false,
10
+  "_id": "base64id@2.0.0",
11
+  "_inCache": true,
12
+  "_installable": true,
13
+  "_location": "/base64id",
14
+  "_nodeVersion": "10.15.0",
15
+  "_npmOperationalInternal": {
16
+    "host": "s3://npm-registry-packages",
17
+    "tmp": "tmp/base64id_2.0.0_1558955564546_0.22740597756235892"
18
+  },
19
+  "_npmUser": {
20
+    "email": "damien.arrachequesne@gmail.com",
21
+    "name": "darrachequesne"
22
+  },
23
+  "_npmVersion": "6.4.1",
24
+  "_phantomChildren": {},
25
+  "_requested": {
26
+    "name": "base64id",
27
+    "raw": "base64id@2.0.0",
28
+    "rawSpec": "2.0.0",
29
+    "scope": null,
30
+    "spec": "2.0.0",
31
+    "type": "version"
32
+  },
33
+  "_requiredBy": [
34
+    "/engine.io"
35
+  ],
36
+  "_resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
37
+  "_shasum": "2770ac6bc47d312af97a8bf9a634342e0cd25cb6",
38
+  "_shrinkwrap": null,
39
+  "_spec": "base64id@2.0.0",
40
+  "_where": "/home/lyxaira/Artesanias/artesanias/node_modules/engine.io",
41
+  "author": {
42
+    "email": "faeldt_kristian@cyberagent.co.jp",
43
+    "name": "Kristian Faeldt"
44
+  },
45
+  "bugs": {
46
+    "url": "https://github.com/faeldt/base64id/issues"
47
+  },
48
+  "dependencies": {},
49
+  "description": "Generates a base64 id",
50
+  "devDependencies": {},
51
+  "directories": {},
52
+  "dist": {
53
+    "fileCount": 5,
54
+    "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
55
+    "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc68YtCRA9TVsSAnZWagAAl+sP/inZ6NZbmHRztjT0W428\nQcUCY3Czu2LU3IF2iXmtGLdzHwU9Kbblm2l1n2iABoWYL1bhV679bIaW4L1F\nnNXQARSk80MoAcuggybnxzwX0aH+Vlqv0yhUUZMTMi6hm12wl90H1r5Q5yYj\npKD/XKcuEedwO5tkr4iF0kR+a9fxIHhtfcKXpIwkHy9PT9NTsgFXN429p11L\n+CShcPhB9ChV/LYnsivy+goK/2uCp/OOvOIcX1REemU71Ivg/7g/q+yJo8YF\n9DwsOvv1yCqVd9WhmshPJxUxem4E6Hm7B6BgLytDFWHFUU25G3t6pIPiINIq\n7aLHlFJsse65HHUg6Lk8mCQlppbU/k//L4dVIkuLxKd96sktl9Y47pWJhWAZ\nQFieq5GXw9y7cRr9wWo9I+an36AFjsyP3b3j2gfSPikAMQ4tmBT/o6vX9MJf\nAXej6QgwVIoktWf736rKy3ieJZpRLOloO7zSc1vg9XNoqIh4OVz70kgXf8iH\nUIt/9fWe6RLG/UivRitdAt3clzg1zxQ8TyxLYGnWwW2CJHPrHM3I68vCfJXz\n0EeoDysxR4cvp4IfVEJ+DZQSi+Sjx5vl+etujVmrbbrz1lTkmcHIegAxlAly\nVJGvfj1Dp4c7dasA5yJezSfLz/hFe/LrzjNrh8wdjk6mE4G3/hvJWsSltB1o\ntyf+\r\n=HpsK\r\n-----END PGP SIGNATURE-----\r\n",
56
+    "shasum": "2770ac6bc47d312af97a8bf9a634342e0cd25cb6",
57
+    "tarball": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
58
+    "unpackedSize": 4692
59
+  },
60
+  "engines": {
61
+    "node": "^4.5.0 || >= 5.9"
62
+  },
63
+  "gitHead": "af13114809291393846a56eddbb1ac2035ae397c",
64
+  "homepage": "https://github.com/faeldt/base64id#readme",
65
+  "license": "MIT",
66
+  "main": "./lib/base64id.js",
67
+  "maintainers": [
68
+    {
69
+      "name": "darrachequesne",
70
+      "email": "damien.arrachequesne@gmail.com"
71
+    },
72
+    {
73
+      "name": "faeldt_kristian",
74
+      "email": "kristian.faeldt@gmail.com"
75
+    }
76
+  ],
77
+  "name": "base64id",
78
+  "optionalDependencies": {},
79
+  "readme": "ERROR: No README data found!",
80
+  "repository": {
81
+    "type": "git",
82
+    "url": "git+https://github.com/faeldt/base64id.git"
83
+  },
84
+  "version": "2.0.0"
85
+}

+ 13
- 0
node_modules/bcrypt-pbkdf/CONTRIBUTING.md View File

@@ -0,0 +1,13 @@
1
+# Contributing
2
+
3
+This repository uses [cr.joyent.us](https://cr.joyent.us) (Gerrit) for new
4
+changes. Anyone can submit changes. To get started, see the [cr.joyent.us user
5
+guide](https://github.com/joyent/joyent-gerrit/blob/master/docs/user/README.md).
6
+This repo does not use GitHub pull requests.
7
+
8
+See the [Joyent Engineering
9
+Guidelines](https://github.com/joyent/eng/blob/master/docs/index.md) for general
10
+best practices expected in this repository.
11
+
12
+If you're changing something non-trivial or user-facing, you may want to submit
13
+an issue first.

+ 66
- 0
node_modules/bcrypt-pbkdf/LICENSE View File

@@ -0,0 +1,66 @@
1
+The Blowfish portions are under the following license:
2
+
3
+Blowfish block cipher for OpenBSD
4
+Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de>
5
+All rights reserved.
6
+
7
+Implementation advice by David Mazieres <dm@lcs.mit.edu>.
8
+
9
+Redistribution and use in source and binary forms, with or without
10
+modification, are permitted provided that the following conditions
11
+are met:
12
+1. Redistributions of source code must retain the above copyright
13
+   notice, this list of conditions and the following disclaimer.
14
+2. Redistributions in binary form must reproduce the above copyright
15
+   notice, this list of conditions and the following disclaimer in the
16
+   documentation and/or other materials provided with the distribution.
17
+3. The name of the author may not be used to endorse or promote products
18
+   derived from this software without specific prior written permission.
19
+
20
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
21
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
22
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
23
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
24
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
29
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+
31
+
32
+
33
+The bcrypt_pbkdf portions are under the following license:
34
+
35
+Copyright (c) 2013 Ted Unangst <tedu@openbsd.org>
36
+
37
+Permission to use, copy, modify, and distribute this software for any
38
+purpose with or without fee is hereby granted, provided that the above
39
+copyright notice and this permission notice appear in all copies.
40
+
41
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
42
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
43
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
44
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
45
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
46
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
47
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
48
+
49
+
50
+
51
+Performance improvements (Javascript-specific):
52
+
53
+Copyright 2016, Joyent Inc
54
+Author: Alex Wilson <alex.wilson@joyent.com>
55
+
56
+Permission to use, copy, modify, and distribute this software for any
57
+purpose with or without fee is hereby granted, provided that the above
58
+copyright notice and this permission notice appear in all copies.
59
+
60
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
61
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
62
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
63
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
64
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
65
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
66
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

+ 45
- 0
node_modules/bcrypt-pbkdf/README.md View File

@@ -0,0 +1,45 @@
1
+Port of the OpenBSD `bcrypt_pbkdf` function to pure Javascript. `npm`-ified
2
+version of [Devi Mandiri's port](https://github.com/devi/tmp/blob/master/js/bcrypt_pbkdf.js),
3
+with some minor performance improvements. The code is copied verbatim (and
4
+un-styled) from Devi's work.
5
+
6
+This product includes software developed by Niels Provos.
7
+
8
+## API
9
+
10
+### `bcrypt_pbkdf.pbkdf(pass, passlen, salt, saltlen, key, keylen, rounds)`
11
+
12
+Derive a cryptographic key of arbitrary length from a given password and salt,
13
+using the OpenBSD `bcrypt_pbkdf` function. This is a combination of Blowfish and
14
+SHA-512.
15
+
16
+See [this article](http://www.tedunangst.com/flak/post/bcrypt-pbkdf) for
17
+further information.
18
+
19
+Parameters:
20
+
21
+ * `pass`, a Uint8Array of length `passlen`
22
+ * `passlen`, an integer Number
23
+ * `salt`, a Uint8Array of length `saltlen`
24
+ * `saltlen`, an integer Number
25
+ * `key`, a Uint8Array of length `keylen`, will be filled with output
26
+ * `keylen`, an integer Number
27
+ * `rounds`, an integer Number, number of rounds of the PBKDF to run
28
+
29
+### `bcrypt_pbkdf.hash(sha2pass, sha2salt, out)`
30
+
31
+Calculate a Blowfish hash, given SHA2-512 output of a password and salt. Used as
32
+part of the inner round function in the PBKDF.
33
+
34
+Parameters:
35
+
36
+ * `sha2pass`, a Uint8Array of length 64
37
+ * `sha2salt`, a Uint8Array of length 64
38
+ * `out`, a Uint8Array of length 32, will be filled with output
39
+
40
+## License
41
+
42
+This source form is a 1:1 port from the OpenBSD `blowfish.c` and `bcrypt_pbkdf.c`.
43
+As a result, it retains the original copyright and license. The two files are
44
+under slightly different (but compatible) licenses, and are here combined in
45
+one file. For each of the full license texts see `LICENSE`.

+ 556
- 0
node_modules/bcrypt-pbkdf/index.js View File

@@ -0,0 +1,556 @@
1
+'use strict';
2
+
3
+var crypto_hash_sha512 = require('tweetnacl').lowlevel.crypto_hash;
4
+
5
+/*
6
+ * This file is a 1:1 port from the OpenBSD blowfish.c and bcrypt_pbkdf.c. As a
7
+ * result, it retains the original copyright and license. The two files are
8
+ * under slightly different (but compatible) licenses, and are here combined in
9
+ * one file.
10
+ *
11
+ * Credit for the actual porting work goes to:
12
+ *  Devi Mandiri <me@devi.web.id>
13
+ */
14
+
15
+/*
16
+ * The Blowfish portions are under the following license:
17
+ *
18
+ * Blowfish block cipher for OpenBSD
19
+ * Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de>
20
+ * All rights reserved.
21
+ *
22
+ * Implementation advice by David Mazieres <dm@lcs.mit.edu>.
23
+ *
24
+ * Redistribution and use in source and binary forms, with or without
25
+ * modification, are permitted provided that the following conditions
26
+ * are met:
27
+ * 1. Redistributions of source code must retain the above copyright
28
+ *    notice, this list of conditions and the following disclaimer.
29
+ * 2. Redistributions in binary form must reproduce the above copyright
30
+ *    notice, this list of conditions and the following disclaimer in the
31
+ *    documentation and/or other materials provided with the distribution.
32
+ * 3. The name of the author may not be used to endorse or promote products
33
+ *    derived from this software without specific prior written permission.
34
+ *
35
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
36
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
38
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
39
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
40
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
41
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
42
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
43
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
44
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
45
+ */
46
+
47
+/*
48
+ * The bcrypt_pbkdf portions are under the following license:
49
+ *
50
+ * Copyright (c) 2013 Ted Unangst <tedu@openbsd.org>
51
+ *
52
+ * Permission to use, copy, modify, and distribute this software for any
53
+ * purpose with or without fee is hereby granted, provided that the above
54
+ * copyright notice and this permission notice appear in all copies.
55
+ *
56
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
57
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
58
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
59
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
60
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
61
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
62
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
63
+ */
64
+
65
+/*
66
+ * Performance improvements (Javascript-specific):
67
+ *
68
+ * Copyright 2016, Joyent Inc
69
+ * Author: Alex Wilson <alex.wilson@joyent.com>
70
+ *
71
+ * Permission to use, copy, modify, and distribute this software for any
72
+ * purpose with or without fee is hereby granted, provided that the above
73
+ * copyright notice and this permission notice appear in all copies.
74
+ *
75
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
76
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
77
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
78
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
79
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
80
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
81
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
82
+ */
83
+
84
+// Ported from OpenBSD bcrypt_pbkdf.c v1.9
85
+
86
+var BLF_J = 0;
87
+
88
+var Blowfish = function() {
89
+  this.S = [
90
+    new Uint32Array([
91
+      0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7,
92
+      0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99,
93
+      0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16,
94
+      0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e,
95
+      0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee,
96
+      0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013,
97
+      0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef,
98
+      0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e,
99
+      0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60,
100
+      0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440,
101
+      0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce,
102
+      0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a,
103
+      0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e,
104
+      0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677,
105
+      0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193,
106
+      0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032,
107
+      0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88,
108
+      0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239,
109
+      0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e,
110
+      0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0,
111
+      0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3,
112
+      0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98,
113
+      0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88,
114
+      0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe,
115
+      0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6,
116
+      0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d,
117
+      0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b,
118
+      0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7,
119
+      0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba,
120
+      0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463,
121
+      0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f,
122
+      0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09,
123
+      0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3,
124
+      0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb,
125
+      0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279,
126
+      0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8,
127
+      0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab,
128
+      0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82,
129
+      0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db,
130
+      0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573,
131
+      0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0,
132
+      0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b,
133
+      0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790,
134
+      0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8,
135
+      0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4,
136
+      0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0,
137
+      0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7,
138
+      0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c,
139
+      0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad,
140
+      0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1,
141
+      0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299,
142
+      0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9,
143
+      0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477,
144
+      0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf,
145
+      0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49,
146
+      0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af,
147
+      0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa,
148
+      0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5,
149
+      0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41,
150
+      0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,
151
+      0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400,
152
+      0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915,
153
+      0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664,
154
+      0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a]),
155
+    new Uint32Array([
156
+      0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623,
157
+      0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266,
158
+      0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1,
159
+      0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e,
160
+      0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6,
161
+      0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,
162
+      0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e,
163
+      0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1,
164
+      0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737,
165
+      0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8,
166
+      0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff,
167
+      0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd,
168
+      0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701,
169
+      0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7,
170
+      0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41,
171
+      0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331,
172
+      0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf,
173
+      0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af,
174
+      0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e,
175
+      0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87,
176
+      0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c,
177
+      0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2,
178
+      0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16,
179
+      0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd,
180
+      0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b,
181
+      0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509,
182
+      0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e,
183
+      0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3,
184
+      0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f,
185
+      0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a,
186
+      0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4,
187
+      0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960,
188
+      0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66,
189
+      0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28,
190
+      0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802,
191
+      0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84,
192
+      0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510,
193
+      0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf,
194
+      0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14,
195
+      0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e,
196
+      0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50,
197
+      0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7,
198
+      0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8,
199
+      0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281,
200
+      0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99,
201
+      0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696,
202
+      0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128,
203
+      0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73,
204
+      0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0,
205
+      0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0,
206
+      0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105,
207
+      0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250,
208
+      0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3,
209
+      0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285,
210
+      0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00,
211
+      0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061,
212
+      0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb,
213
+      0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e,
214
+      0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735,
215
+      0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc,
216
+      0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9,
217
+      0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340,
218
+      0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20,
219
+      0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7]),
220
+    new Uint32Array([
221
+      0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934,
222
+      0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068,
223
+      0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af,
224
+      0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840,
225
+      0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45,
226
+      0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504,
227
+      0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a,
228
+      0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb,
229
+      0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee,
230
+      0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6,
231
+      0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42,
232
+      0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b,
233
+      0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2,
234
+      0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb,
235
+      0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527,
236
+      0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b,
237
+      0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33,
238
+      0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c,
239
+      0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3,
240
+      0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc,
241
+      0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17,
242
+      0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564,
243
+      0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b,
244
+      0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115,
245
+      0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922,
246
+      0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728,
247
+      0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0,
248
+      0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e,
249
+      0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37,
250
+      0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d,
251
+      0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804,
252
+      0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b,
253
+      0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3,
254
+      0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb,
255
+      0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d,
256
+      0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c,
257
+      0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350,
258
+      0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9,
259
+      0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a,
260
+      0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe,
261
+      0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d,
262
+      0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc,
263
+      0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f,
264
+      0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61,
265
+      0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2,
266
+      0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9,
267
+      0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2,
268
+      0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c,
269
+      0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e,
270
+      0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633,
271
+      0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10,
272
+      0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169,
273
+      0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52,
274
+      0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027,
275
+      0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5,
276
+      0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62,
277
+      0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634,
278
+      0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76,
279
+      0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24,
280
+      0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc,
281
+      0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4,
282
+      0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c,
283
+      0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837,
284
+      0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0]),
285
+    new Uint32Array([
286
+      0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b,
287
+      0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe,
288
+      0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b,
289
+      0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4,
290
+      0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8,
291
+      0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6,
292
+      0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304,
293
+      0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22,
294
+      0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4,
295
+      0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6,
296
+      0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9,
297
+      0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59,
298
+      0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593,
299
+      0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51,
300
+      0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28,
301
+      0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c,
302
+      0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b,
303
+      0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28,
304
+      0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c,
305
+      0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd,
306
+      0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a,
307
+      0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319,
308
+      0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb,
309
+      0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f,
310
+      0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991,
311
+      0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32,
312
+      0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680,
313
+      0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166,
314
+      0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae,
315
+      0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb,
316
+      0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5,
317
+      0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47,
318
+      0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370,
319
+      0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d,
320
+      0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84,
321
+      0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048,
322
+      0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8,
323
+      0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd,
324
+      0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9,
325
+      0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7,
326
+      0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38,
327
+      0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f,
328
+      0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c,
329
+      0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525,
330
+      0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1,
331
+      0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442,
332
+      0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964,
333
+      0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e,
334
+      0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8,
335
+      0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d,
336
+      0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f,
337
+      0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299,
338
+      0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02,
339
+      0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc,
340
+      0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614,
341
+      0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a,
342
+      0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6,
343
+      0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b,
344
+      0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0,
345
+      0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060,
346
+      0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e,
347
+      0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9,
348
+      0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f,
349
+      0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6])
350
+    ];
351
+  this.P = new Uint32Array([
352
+    0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,
353
+    0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,
354
+    0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
355
+    0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917,
356
+    0x9216d5d9, 0x8979fb1b]);
357
+};
358
+
359
+function F(S, x8, i) {
360
+  return (((S[0][x8[i+3]] +
361
+            S[1][x8[i+2]]) ^
362
+            S[2][x8[i+1]]) +
363
+            S[3][x8[i]]);
364
+};
365
+
366
+Blowfish.prototype.encipher = function(x, x8) {
367
+  if (x8 === undefined) {
368
+    x8 = new Uint8Array(x.buffer);
369
+    if (x.byteOffset !== 0)
370
+      x8 = x8.subarray(x.byteOffset);
371
+  }
372
+  x[0] ^= this.P[0];
373
+  for (var i = 1; i < 16; i += 2) {
374
+    x[1] ^= F(this.S, x8, 0) ^ this.P[i];
375
+    x[0] ^= F(this.S, x8, 4) ^ this.P[i+1];
376
+  }
377
+  var t = x[0];
378
+  x[0] = x[1] ^ this.P[17];
379
+  x[1] = t;
380
+};
381
+
382
+Blowfish.prototype.decipher = function(x) {
383
+  var x8 = new Uint8Array(x.buffer);
384
+  if (x.byteOffset !== 0)
385
+    x8 = x8.subarray(x.byteOffset);
386
+  x[0] ^= this.P[17];
387
+  for (var i = 16; i > 0; i -= 2) {
388
+    x[1] ^= F(this.S, x8, 0) ^ this.P[i];
389
+    x[0] ^= F(this.S, x8, 4) ^ this.P[i-1];
390
+  }
391
+  var t = x[0];
392
+  x[0] = x[1] ^ this.P[0];
393
+  x[1] = t;
394
+};
395
+
396
+function stream2word(data, databytes){
397
+  var i, temp = 0;
398
+  for (i = 0; i < 4; i++, BLF_J++) {
399
+    if (BLF_J >= databytes) BLF_J = 0;
400
+    temp = (temp << 8) | data[BLF_J];
401
+  }
402
+  return temp;
403
+};
404
+
405
+Blowfish.prototype.expand0state = function(key, keybytes) {
406
+  var d = new Uint32Array(2), i, k;
407
+  var d8 = new Uint8Array(d.buffer);
408
+
409
+  for (i = 0, BLF_J = 0; i < 18; i++) {
410
+    this.P[i] ^= stream2word(key, keybytes);
411
+  }
412
+  BLF_J = 0;
413
+
414
+  for (i = 0; i < 18; i += 2) {
415
+    this.encipher(d, d8);
416
+    this.P[i]   = d[0];
417
+    this.P[i+1] = d[1];
418
+  }
419
+
420
+  for (i = 0; i < 4; i++) {
421
+    for (k = 0; k < 256; k += 2) {
422
+      this.encipher(d, d8);
423
+      this.S[i][k]   = d[0];
424
+      this.S[i][k+1] = d[1];
425
+    }
426
+  }
427
+};
428
+
429
+Blowfish.prototype.expandstate = function(data, databytes, key, keybytes) {
430
+  var d = new Uint32Array(2), i, k;
431
+
432
+  for (i = 0, BLF_J = 0; i < 18; i++) {
433
+    this.P[i] ^= stream2word(key, keybytes);
434
+  }
435
+
436
+  for (i = 0, BLF_J = 0; i < 18; i += 2) {
437
+    d[0] ^= stream2word(data, databytes);
438
+    d[1] ^= stream2word(data, databytes);
439
+    this.encipher(d);
440
+    this.P[i]   = d[0];
441
+    this.P[i+1] = d[1];
442
+  }
443
+
444
+  for (i = 0; i < 4; i++) {
445
+    for (k = 0; k < 256; k += 2) {
446
+      d[0] ^= stream2word(data, databytes);
447
+      d[1] ^= stream2word(data, databytes);
448
+      this.encipher(d);
449
+      this.S[i][k]   = d[0];
450
+      this.S[i][k+1] = d[1];
451
+    }
452
+  }
453
+  BLF_J = 0;
454
+};
455
+
456
+Blowfish.prototype.enc = function(data, blocks) {
457
+  for (var i = 0; i < blocks; i++) {
458
+    this.encipher(data.subarray(i*2));
459
+  }
460
+};
461
+
462
+Blowfish.prototype.dec = function(data, blocks) {
463
+  for (var i = 0; i < blocks; i++) {
464
+    this.decipher(data.subarray(i*2));
465
+  }
466
+};
467
+
468
+var BCRYPT_BLOCKS = 8,
469
+    BCRYPT_HASHSIZE = 32;
470
+
471
+function bcrypt_hash(sha2pass, sha2salt, out) {
472
+  var state = new Blowfish(),
473
+      cdata = new Uint32Array(BCRYPT_BLOCKS), i,
474
+      ciphertext = new Uint8Array([79,120,121,99,104,114,111,109,97,116,105,
475
+            99,66,108,111,119,102,105,115,104,83,119,97,116,68,121,110,97,109,
476
+            105,116,101]); //"OxychromaticBlowfishSwatDynamite"
477
+
478
+  state.expandstate(sha2salt, 64, sha2pass, 64);
479
+  for (i = 0; i < 64; i++) {
480
+    state.expand0state(sha2salt, 64);
481
+    state.expand0state(sha2pass, 64);
482
+  }
483
+
484
+  for (i = 0; i < BCRYPT_BLOCKS; i++)
485
+    cdata[i] = stream2word(ciphertext, ciphertext.byteLength);
486
+  for (i = 0; i < 64; i++)
487
+    state.enc(cdata, cdata.byteLength / 8);
488
+
489
+  for (i = 0; i < BCRYPT_BLOCKS; i++) {
490
+    out[4*i+3] = cdata[i] >>> 24;
491
+    out[4*i+2] = cdata[i] >>> 16;
492
+    out[4*i+1] = cdata[i] >>> 8;
493
+    out[4*i+0] = cdata[i];
494
+  }
495
+};
496
+
497
+function bcrypt_pbkdf(pass, passlen, salt, saltlen, key, keylen, rounds) {
498
+  var sha2pass = new Uint8Array(64),
499
+      sha2salt = new Uint8Array(64),
500
+      out = new Uint8Array(BCRYPT_HASHSIZE),
501
+      tmpout = new Uint8Array(BCRYPT_HASHSIZE),
502
+      countsalt = new Uint8Array(saltlen+4),
503
+      i, j, amt, stride, dest, count,
504
+      origkeylen = keylen;
505
+
506
+  if (rounds < 1)
507
+    return -1;
508
+  if (passlen === 0 || saltlen === 0 || keylen === 0 ||
509
+      keylen > (out.byteLength * out.byteLength) || saltlen > (1<<20))
510
+    return -1;
511
+
512
+  stride = Math.floor((keylen + out.byteLength - 1) / out.byteLength);
513
+  amt = Math.floor((keylen + stride - 1) / stride);
514
+
515
+  for (i = 0; i < saltlen; i++)
516
+    countsalt[i] = salt[i];
517
+
518
+  crypto_hash_sha512(sha2pass, pass, passlen);
519
+
520
+  for (count = 1; keylen > 0; count++) {
521
+    countsalt[saltlen+0] = count >>> 24;
522
+    countsalt[saltlen+1] = count >>> 16;
523
+    countsalt[saltlen+2] = count >>>  8;
524
+    countsalt[saltlen+3] = count;
525
+
526
+    crypto_hash_sha512(sha2salt, countsalt, saltlen + 4);
527
+    bcrypt_hash(sha2pass, sha2salt, tmpout);
528
+    for (i = out.byteLength; i--;)
529
+      out[i] = tmpout[i];
530
+
531
+    for (i = 1; i < rounds; i++) {
532
+      crypto_hash_sha512(sha2salt, tmpout, tmpout.byteLength);
533
+      bcrypt_hash(sha2pass, sha2salt, tmpout);
534
+      for (j = 0; j < out.byteLength; j++)
535
+        out[j] ^= tmpout[j];
536
+    }
537
+
538
+    amt = Math.min(amt, keylen);
539
+    for (i = 0; i < amt; i++) {
540
+      dest = i * stride + (count - 1);
541
+      if (dest >= origkeylen)
542
+        break;
543
+      key[dest] = out[i];
544
+    }
545
+    keylen -= i;
546
+  }
547
+
548
+  return 0;
549
+};
550
+
551
+module.exports = {
552
+      BLOCKS: BCRYPT_BLOCKS,
553
+      HASHSIZE: BCRYPT_HASHSIZE,
554
+      hash: bcrypt_hash,
555
+      pbkdf: bcrypt_pbkdf
556
+};

+ 87
- 0
node_modules/bcrypt-pbkdf/package.json View File

@@ -0,0 +1,87 @@
1
+{
2
+  "_args": [
3
+    [
4
+      "bcrypt-pbkdf@^1.0.2",
5
+      "/home/lyxaira/Artesanias/artesanias/node_modules/ssh2-streams"
6
+    ]
7
+  ],
8
+  "_from": "bcrypt-pbkdf@>=1.0.2 <2.0.0",
9
+  "_hasShrinkwrap": false,
10
+  "_id": "bcrypt-pbkdf@1.0.2",
11
+  "_inCache": true,
12
+  "_installable": true,
13
+  "_location": "/bcrypt-pbkdf",
14
+  "_nodeVersion": "0.12.18",
15
+  "_npmOperationalInternal": {
16
+    "host": "s3://npm-registry-packages",
17
+    "tmp": "tmp/bcrypt-pbkdf_1.0.2_1530232438519_0.6464853720318084"
18
+  },
19
+  "_npmUser": {
20
+    "email": "alex@cooperi.net",
21
+    "name": "arekinath"
22
+  },
23
+  "_npmVersion": "2.15.11",
24
+  "_phantomChildren": {},
25
+  "_requested": {
26
+    "name": "bcrypt-pbkdf",
27
+    "raw": "bcrypt-pbkdf@^1.0.2",
28
+    "rawSpec": "^1.0.2",
29
+    "scope": null,
30
+    "spec": ">=1.0.2 <2.0.0",
31
+    "type": "range"
32
+  },
33
+  "_requiredBy": [
34
+    "/ssh2-streams"
35
+  ],
36
+  "_resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
37
+  "_shasum": "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e",
38
+  "_shrinkwrap": null,
39
+  "_spec": "bcrypt-pbkdf@^1.0.2",
40
+  "_where": "/home/lyxaira/Artesanias/artesanias/node_modules/ssh2-streams",
41
+  "bugs": {
42
+    "url": "https://github.com/joyent/node-bcrypt-pbkdf/issues"
43
+  },
44
+  "dependencies": {
45
+    "tweetnacl": "^0.14.3"
46
+  },
47
+  "description": "Port of the OpenBSD bcrypt_pbkdf function to pure JS",
48
+  "devDependencies": {},
49
+  "directories": {},
50
+  "dist": {
51
+    "fileCount": 5,
52
+    "shasum": "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e",
53
+    "tarball": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
54
+    "unpackedSize": 28994
55
+  },
56
+  "gitHead": "15fa7399a1090ba70d855764f7ace23003bf45f3",
57
+  "homepage": "https://github.com/joyent/node-bcrypt-pbkdf#readme",
58
+  "license": "BSD-3-Clause",
59
+  "main": "index.js",
60
+  "maintainers": [
61
+    {
62
+      "name": "arekinath",
63
+      "email": "alex@cooperi.net"
64
+    },
65
+    {
66
+      "name": "dap",
67
+      "email": "dap@cs.brown.edu"
68
+    },
69
+    {
70
+      "name": "jclulow",
71
+      "email": "josh@sysmgr.org"
72
+    },
73
+    {
74
+      "name": "trentm",
75
+      "email": "trentm@gmail.com"
76
+    }
77
+  ],
78
+  "name": "bcrypt-pbkdf",
79
+  "optionalDependencies": {},
80
+  "readme": "ERROR: No README data found!",
81
+  "repository": {
82
+    "type": "git",
83
+    "url": "git://github.com/joyent/node-bcrypt-pbkdf.git"
84
+  },
85
+  "scripts": {},
86
+  "version": "1.0.2"
87
+}

+ 4
- 0
node_modules/better-assert/.npmignore View File

@@ -0,0 +1,4 @@
1
+support
2
+test
3
+examples
4
+*.sock

+ 15
- 0
node_modules/better-assert/History.md View File

@@ -0,0 +1,15 @@
1
+
2
+1.0.0 / 2013-02-03 
3
+==================
4
+
5
+  * Stop using the removed magic __stack global getter
6
+
7
+0.1.0 / 2012-10-04 
8
+==================
9
+
10
+  * add throwing of AssertionError for test frameworks etc
11
+
12
+0.0.1 / 2010-01-03
13
+==================
14
+
15
+  * Initial release

+ 5
- 0
node_modules/better-assert/Makefile View File

@@ -0,0 +1,5 @@
1
+
2
+test:
3
+	@echo "populate me"
4
+
5
+.PHONY: test

+ 61
- 0
node_modules/better-assert/Readme.md View File

@@ -0,0 +1,61 @@
1
+
2
+# better-assert
3
+
4
+  Better c-style assertions using [callsite](https://github.com/visionmedia/callsite) for
5
+  self-documenting failure messages.
6
+
7
+## Installation
8
+
9
+    $ npm install better-assert
10
+
11
+## Example
12
+
13
+ By default assertions are enabled, however the __NO_ASSERT__ environment variable 
14
+ will deactivate them when truthy.
15
+
16
+```js
17
+var assert = require('better-assert');
18
+
19
+test();
20
+
21
+function test() {
22
+  var user = { name: 'tobi' };
23
+  assert('tobi' == user.name);
24
+  assert('number' == typeof user.age);
25
+}
26
+
27
+AssertionError: 'number' == typeof user.age
28
+    at test (/Users/tj/projects/better-assert/example.js:9:3)
29
+    at Object.<anonymous> (/Users/tj/projects/better-assert/example.js:4:1)
30
+    at Module._compile (module.js:449:26)
31
+    at Object.Module._extensions..js (module.js:467:10)
32
+    at Module.load (module.js:356:32)
33
+    at Function.Module._load (module.js:312:12)
34
+    at Module.runMain (module.js:492:10)
35
+    at process.startup.processNextTick.process._tickCallback (node.js:244:9)
36
+```
37
+
38
+## License 
39
+
40
+(The MIT License)
41
+
42
+Copyright (c) 2012 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
43
+
44
+Permission is hereby granted, free of charge, to any person obtaining
45
+a copy of this software and associated documentation files (the
46
+'Software'), to deal in the Software without restriction, including
47
+without limitation the rights to use, copy, modify, merge, publish,
48
+distribute, sublicense, and/or sell copies of the Software, and to
49
+permit persons to whom the Software is furnished to do so, subject to
50
+the following conditions:
51
+
52
+The above copyright notice and this permission notice shall be
53
+included in all copies or substantial portions of the Software.
54
+
55
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
56
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
57
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
58
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
59
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
60
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
61
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 10
- 0
node_modules/better-assert/example.js View File

@@ -0,0 +1,10 @@
1
+
2
+var assert = require('./');
3
+
4
+test();
5
+
6
+function test() {
7
+  var user = { name: 'tobi' };
8
+  assert('tobi' == user.name);
9
+  assert('number' == typeof user.age);
10
+}

+ 38
- 0
node_modules/better-assert/index.js View File

@@ -0,0 +1,38 @@
1
+/**
2
+ * Module dependencies.
3
+ */
4
+
5
+var AssertionError = require('assert').AssertionError
6
+  , callsite = require('callsite')
7
+  , fs = require('fs')
8
+
9
+/**
10
+ * Expose `assert`.
11
+ */
12
+
13
+module.exports = process.env.NO_ASSERT
14
+  ? function(){}
15
+  : assert;
16
+
17
+/**
18
+ * Assert the given `expr`.
19
+ */
20
+
21
+function assert(expr) {
22
+  if (expr) return;
23
+
24
+  var stack = callsite();
25
+  var call = stack[1];
26
+  var file = call.getFileName();
27
+  var lineno = call.getLineNumber();
28
+  var src = fs.readFileSync(file, 'utf8');
29
+  var line = src.split('\n')[lineno-1];
30
+  var src = line.match(/assert\((.*)\)/)[1];
31
+
32
+  var err = new AssertionError({
33
+    message: src,
34
+    stackStartFunction: stack[0].getFunction()
35
+  });
36
+
37
+  throw err;
38
+}

+ 91
- 0
node_modules/better-assert/package.json View File

@@ -0,0 +1,91 @@
1
+{
2
+  "_args": [
3
+    [
4
+      "better-assert@~1.0.0",
5
+      "/home/lyxaira/Artesanias/artesanias/node_modules/parseqs"
6
+    ]
7
+  ],
8
+  "_from": "better-assert@>=1.0.0 <1.1.0",
9
+  "_id": "better-assert@1.0.2",
10
+  "_inCache": true,
11
+  "_installable": true,
12
+  "_location": "/better-assert",
13
+  "_npmUser": {
14
+    "email": "coolhzb@163.com",
15
+    "name": "tony_ado"
16
+  },
17
+  "_npmVersion": "1.4.9",
18
+  "_phantomChildren": {},
19
+  "_requested": {
20
+    "name": "better-assert",
21
+    "raw": "better-assert@~1.0.0",
22
+    "rawSpec": "~1.0.0",
23
+    "scope": null,
24
+    "spec": ">=1.0.0 <1.1.0",
25
+    "type": "range"
26
+  },
27
+  "_requiredBy": [
28
+    "/parseqs",
29
+    "/parseuri"
30
+  ],
31
+  "_resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
32
+  "_shasum": "40866b9e1b9e0b55b481894311e68faffaebc522",
33
+  "_shrinkwrap": null,
34
+  "_spec": "better-assert@~1.0.0",
35
+  "_where": "/home/lyxaira/Artesanias/artesanias/node_modules/parseqs",
36
+  "author": {
37
+    "email": "tj@vision-media.ca",
38
+    "name": "TJ Holowaychuk"
39
+  },
40
+  "bugs": {
41
+    "url": "https://github.com/visionmedia/better-assert/issues"
42
+  },
43
+  "contributors": [
44
+    {
45
+      "name": "TonyHe",
46
+      "email": "coolhzb@163.com"
47
+    },
48
+    {
49
+      "name": "ForbesLindesay"
50
+    }
51
+  ],
52
+  "dependencies": {
53
+    "callsite": "1.0.0"
54
+  },
55
+  "description": "Better assertions for node, reporting the expr, filename, lineno etc",
56
+  "devDependencies": {},
57
+  "directories": {},
58
+  "dist": {
59
+    "shasum": "40866b9e1b9e0b55b481894311e68faffaebc522",
60
+    "tarball": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz"
61
+  },
62
+  "engines": {
63
+    "node": "*"
64
+  },
65
+  "homepage": "https://github.com/visionmedia/better-assert",
66
+  "keywords": [
67
+    "assert",
68
+    "debug",
69
+    "stack",
70
+    "trace"
71
+  ],
72
+  "main": "index",
73
+  "maintainers": [
74
+    {
75
+      "name": "tjholowaychuk",
76
+      "email": "tj@vision-media.ca"
77
+    },
78
+    {
79
+      "name": "tony_ado",
80
+      "email": "coolhzb@163.com"
81
+    }
82
+  ],
83
+  "name": "better-assert",
84
+  "optionalDependencies": {},
85
+  "readme": "ERROR: No README data found!",
86
+  "repository": {
87
+    "type": "git",
88
+    "url": "git+https://github.com/visionmedia/better-assert.git"
89
+  },
90
+  "version": "1.0.2"
91
+}

+ 12
- 0
node_modules/blob/.idea/blob.iml View File

@@ -0,0 +1,12 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<module type="WEB_MODULE" version="4">
3
+  <component name="NewModuleRootManager">
4
+    <content url="file://$MODULE_DIR$">
5
+      <excludeFolder url="file://$MODULE_DIR$/.tmp" />
6
+      <excludeFolder url="file://$MODULE_DIR$/temp" />
7
+      <excludeFolder url="file://$MODULE_DIR$/tmp" />
8
+    </content>
9
+    <orderEntry type="inheritedJdk" />
10
+    <orderEntry type="sourceFolder" forTests="false" />
11
+  </component>
12
+</module>

+ 5
- 0
node_modules/blob/.idea/inspectionProfiles/profiles_settings.xml View File

@@ -0,0 +1,5 @@
1
+<component name="InspectionProjectProfileManager">
2
+  <settings>
3
+    <option name="PROJECT_PROFILE" />
4
+  </settings>
5
+</component>

+ 78
- 0
node_modules/blob/.idea/markdown-navigator.xml View File

@@ -0,0 +1,78 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="MarkdownProjectSettings" wasCopied="true">
4
+    <PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.0" maxImageWidth="0" showGitHubPageIfSynced="false" allowBrowsingInPreview="false" synchronizePreviewPosition="true" highlightPreviewType="NONE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true" verticallyAlignSourceAndPreviewSyncPosition="true" showSearchHighlightsInPreview="false" showSelectionInPreview="true" openRemoteLinks="true" replaceUnicodeEmoji="false" lastLayoutSetsDefault="false">
5
+      <PanelProvider>
6
+        <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.panel" providerName="Default - Swing" />
7
+      </PanelProvider>
8
+    </PreviewSettings>
9
+    <ParserSettings gitHubSyntaxChange="false" emojiShortcuts="1" emojiImages="0">
10
+      <PegdownExtensions>
11
+        <option name="ABBREVIATIONS" value="false" />
12
+        <option name="ANCHORLINKS" value="true" />
13
+        <option name="ASIDE" value="false" />
14
+        <option name="ATXHEADERSPACE" value="true" />
15
+        <option name="AUTOLINKS" value="true" />
16
+        <option name="DEFINITIONS" value="false" />
17
+        <option name="DEFINITION_BREAK_DOUBLE_BLANK_LINE" value="false" />
18
+        <option name="FENCED_CODE_BLOCKS" value="true" />
19
+        <option name="FOOTNOTES" value="false" />
20
+        <option name="HARDWRAPS" value="false" />
21
+        <option name="HTML_DEEP_PARSER" value="false" />
22
+        <option name="INSERTED" value="false" />
23
+        <option name="QUOTES" value="false" />
24
+        <option name="RELAXEDHRULES" value="true" />
25
+        <option name="SMARTS" value="false" />
26
+        <option name="STRIKETHROUGH" value="true" />
27
+        <option name="SUBSCRIPT" value="false" />
28
+        <option name="SUPERSCRIPT" value="false" />
29
+        <option name="SUPPRESS_HTML_BLOCKS" value="false" />
30
+        <option name="SUPPRESS_INLINE_HTML" value="false" />
31
+        <option name="TABLES" value="true" />
32
+        <option name="TASKLISTITEMS" value="true" />
33
+        <option name="TOC" value="false" />
34
+        <option name="WIKILINKS" value="true" />
35
+      </PegdownExtensions>
36
+      <ParserOptions>
37
+        <option name="ADMONITION_EXT" value="false" />
38
+        <option name="ATTRIBUTES_EXT" value="false" />
39
+        <option name="COMMONMARK_LISTS" value="true" />
40
+        <option name="DUMMY" value="false" />
41
+        <option name="EMOJI_SHORTCUTS" value="true" />
42
+        <option name="ENUMERATED_REFERENCES_EXT" value="false" />
43
+        <option name="FLEXMARK_FRONT_MATTER" value="false" />
44
+        <option name="GFM_LOOSE_BLANK_LINE_AFTER_ITEM_PARA" value="false" />
45
+        <option name="GFM_TABLE_RENDERING" value="true" />
46
+        <option name="GITBOOK_URL_ENCODING" value="false" />
47
+        <option name="GITHUB_LISTS" value="false" />
48
+        <option name="GITHUB_WIKI_LINKS" value="true" />
49
+        <option name="HEADER_ID_NO_DUPED_DASHES" value="false" />
50
+        <option name="JEKYLL_FRONT_MATTER" value="false" />
51
+        <option name="NO_TEXT_ATTRIBUTES" value="false" />
52
+        <option name="PARSE_HTML_ANCHOR_ID" value="false" />
53
+        <option name="SIM_TOC_BLANK_LINE_SPACER" value="true" />
54
+      </ParserOptions>
55
+    </ParserSettings>
56
+    <HtmlSettings headerTopEnabled="false" headerBottomEnabled="false" bodyTopEnabled="false" bodyBottomEnabled="false" embedUrlContent="false" addPageHeader="true" embedImages="false" embedHttpImages="false" imageUriSerials="false">
57
+      <GeneratorProvider>
58
+        <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.generator" providerName="Default Swing HTML Generator" />
59
+      </GeneratorProvider>
60
+      <headerTop />
61
+      <headerBottom />
62
+      <bodyTop />
63
+      <bodyBottom />
64
+    </HtmlSettings>
65
+    <CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssUriSerial="false" isCssTextEnabled="false" isDynamicPageWidth="true">
66
+      <StylesheetProvider>
67
+        <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.css" providerName="Default Swing Stylesheet" />
68
+      </StylesheetProvider>
69
+      <ScriptProviders />
70
+      <cssText />
71
+      <cssUriHistory />
72
+    </CssSettings>
73
+    <HtmlExportSettings updateOnSave="false" parentDir="" targetDir="" cssDir="" scriptDir="" plainHtml="false" imageDir="" copyLinkedImages="false" imageUniquifyType="0" targetExt="" useTargetExt="false" noCssNoScripts="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" linkFormatType="HTTP_ABSOLUTE" />
74
+    <LinkMapSettings>
75
+      <textMaps />
76
+    </LinkMapSettings>
77
+  </component>
78
+</project>

+ 3
- 0
node_modules/blob/.idea/markdown-navigator/profiles_settings.xml View File

@@ -0,0 +1,3 @@
1
+<component name="MarkdownNavigator.ProfileManager">
2
+  <settings default="" pdf-export="" />
3
+</component>

+ 8
- 0
node_modules/blob/.idea/modules.xml View File

@@ -0,0 +1,8 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ProjectModuleManager">
4
+    <modules>
5
+      <module fileurl="file://$PROJECT_DIR$/.idea/blob.iml" filepath="$PROJECT_DIR$/.idea/blob.iml" />
6
+    </modules>
7
+  </component>
8
+</project>

+ 6
- 0
node_modules/blob/.idea/vcs.xml View File

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="VcsDirectoryMappings">
4
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+  </component>
6
+</project>

+ 390
- 0
node_modules/blob/.idea/workspace.xml View File

@@ -0,0 +1,390 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ChangeListManager">
4
+    <list default="true" id="584fee10-991c-4143-af70-57730369b503" name="Default Changelist" comment="" />
5
+    <ignored path="$PROJECT_DIR$/.tmp/" />
6
+    <ignored path="$PROJECT_DIR$/temp/" />
7
+    <ignored path="$PROJECT_DIR$/tmp/" />
8
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
9
+    <option name="SHOW_DIALOG" value="false" />
10
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
11
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
12
+    <option name="LAST_RESOLUTION" value="IGNORE" />
13
+  </component>
14
+  <component name="FUSProjectUsageTrigger">
15
+    <session id="424275792">
16
+      <usages-collector id="statistics.lifecycle.project">
17
+        <counts>
18
+          <entry key="project.open.time.3" value="1" />
19
+          <entry key="project.opened" value="1" />
20
+        </counts>
21
+      </usages-collector>
22
+      <usages-collector id="statistics.file.extensions.open">
23
+        <counts>
24
+          <entry key="Makefile" value="3" />
25
+          <entry key="gitignore" value="3" />
26
+          <entry key="js" value="6" />
27
+          <entry key="json" value="4" />
28
+          <entry key="md" value="3" />
29
+        </counts>
30
+      </usages-collector>
31
+      <usages-collector id="statistics.file.types.open">
32
+        <counts>
33
+          <entry key="Git file" value="3" />
34
+          <entry key="JSON" value="4" />
35
+          <entry key="JavaScript" value="6" />
36
+          <entry key="Markdown" value="3" />
37
+          <entry key="PLAIN_TEXT" value="3" />
38
+        </counts>
39
+      </usages-collector>
40
+      <usages-collector id="statistics.file.extensions.edit">
41
+        <counts>
42
+          <entry key="json" value="9" />
43
+          <entry key="txt" value="34" />
44
+        </counts>
45
+      </usages-collector>
46
+      <usages-collector id="statistics.file.types.edit">
47
+        <counts>
48
+          <entry key="JSON" value="9" />
49
+          <entry key="PLAIN_TEXT" value="34" />
50
+        </counts>
51
+      </usages-collector>
52
+      <usages-collector id="statistics.vcs.git.usages">
53
+        <counts>
54
+          <entry key="git.branch.checkout.local" value="2" />
55
+          <entry key="git.branch.checkout.remote" value="2" />
56
+          <entry key="git.branch.delete.local" value="2" />
57
+          <entry key="git.branch.merge" value="2" />
58
+          <entry key="git.branch.rebase" value="2" />
59
+        </counts>
60
+      </usages-collector>
61
+    </session>
62
+  </component>
63
+  <component name="FileEditorManager">
64
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
65
+      <file pinned="false" current-in-tab="false">
66
+        <entry file="file://$PROJECT_DIR$/index.js">
67
+          <provider selected="true" editor-type-id="text-editor">
68
+            <state relative-caret-position="578">
69
+              <caret line="34" column="3" selection-start-line="34" selection-start-column="3" selection-end-line="34" selection-end-column="3" />
70
+            </state>
71
+          </provider>
72
+        </entry>
73
+      </file>
74
+      <file pinned="false" current-in-tab="true">
75
+        <entry file="file://$PROJECT_DIR$/package.json">
76
+          <provider selected="true" editor-type-id="text-editor">
77
+            <state relative-caret-position="137">
78
+              <caret line="11" column="24" selection-start-line="11" selection-start-column="24" selection-end-line="11" selection-end-column="24" />
79
+            </state>
80
+          </provider>
81
+        </entry>
82
+      </file>
83
+      <file pinned="false" current-in-tab="false">
84
+        <entry file="file://$PROJECT_DIR$/.gitignore">
85
+          <provider selected="true" editor-type-id="text-editor" />
86
+        </entry>
87
+      </file>
88
+      <file pinned="false" current-in-tab="false">
89
+        <entry file="file://$PROJECT_DIR$/Makefile">
90
+          <provider selected="true" editor-type-id="text-editor">
91
+            <state relative-caret-position="136">
92
+              <caret line="8" column="46" selection-start-line="8" selection-start-column="25" selection-end-line="8" selection-end-column="46" />
93
+            </state>
94
+          </provider>
95
+        </entry>
96
+      </file>
97
+      <file pinned="false" current-in-tab="false">
98
+        <entry file="file://$PROJECT_DIR$/test/index.js">
99
+          <provider selected="true" editor-type-id="text-editor">
100
+            <state relative-caret-position="136">
101
+              <caret line="8" column="26" selection-start-line="8" selection-start-column="26" selection-end-line="8" selection-end-column="26" />
102
+            </state>
103
+          </provider>
104
+        </entry>
105
+      </file>
106
+      <file pinned="false" current-in-tab="false">
107
+        <entry file="file://$PROJECT_DIR$/README.md">
108
+          <provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
109
+            <state split_layout="SPLIT">
110
+              <first_editor relative-caret-position="204">
111
+                <caret line="12" selection-start-line="12" selection-end-line="12" />
112
+              </first_editor>
113
+              <second_editor>
114
+                <markdownNavigatorState />
115
+              </second_editor>
116
+            </state>
117
+          </provider>
118
+        </entry>
119
+      </file>
120
+    </leaf>
121
+  </component>
122
+  <component name="FindInProjectRecents">
123
+    <findStrings>
124
+      <find>esprima-six</find>
125
+    </findStrings>
126
+  </component>
127
+  <component name="Git.Settings">
128
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
129
+    <option name="RECENT_BRANCH_BY_REPOSITORY">
130
+      <map>
131
+        <entry key="$PROJECT_DIR$" value="patch-1" />
132
+      </map>
133
+    </option>
134
+    <option name="RESET_MODE" value="KEEP" />
135
+  </component>
136
+  <component name="IdeDocumentHistory">
137
+    <option name="CHANGED_PATHS">
138
+      <list>
139
+        <option value="$PROJECT_DIR$/package.json" />
140
+      </list>
141
+    </option>
142
+  </component>
143
+  <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
144
+  <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER">
145
+    <package-json value="$PROJECT_DIR$/package.json" />
146
+  </component>
147
+  <component name="JsGulpfileManager">
148
+    <detection-done>true</detection-done>
149
+    <sorting>DEFINITION_ORDER</sorting>
150
+  </component>
151
+  <component name="NodeModulesDirectoryManager">
152
+    <handled-path value="$PROJECT_DIR$/node_modules" />
153
+  </component>
154
+  <component name="NodePackageJsonFileManager">
155
+    <packageJsonPaths>
156
+      <path value="$PROJECT_DIR$/package.json" />
157
+    </packageJsonPaths>
158
+  </component>
159
+  <component name="ProjectFrameBounds" extendedState="6">
160
+    <option name="x" value="-9" />
161
+    <option name="width" value="1935" />
162
+    <option name="height" value="1029" />
163
+  </component>
164
+  <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
165
+  <component name="ProjectView">
166
+    <navigator proportions="" version="1">
167
+      <foldersAlwaysOnTop value="true" />
168
+    </navigator>
169
+    <panes>
170
+      <pane id="ProjectPane">
171
+        <subPane>
172
+          <expand>
173
+            <path>
174
+              <item name="blob" type="b2602c69:ProjectViewProjectNode" />
175
+              <item name="blob" type="462c0819:PsiDirectoryNode" />
176
+            </path>
177
+            <path>
178
+              <item name="blob" type="b2602c69:ProjectViewProjectNode" />
179
+              <item name="blob" type="462c0819:PsiDirectoryNode" />
180
+              <item name="test" type="462c0819:PsiDirectoryNode" />
181
+            </path>
182
+          </expand>
183
+          <select />
184
+        </subPane>
185
+      </pane>
186
+      <pane id="Scope" />
187
+    </panes>
188
+  </component>
189
+  <component name="PropertiesComponent">
190
+    <property name="WebServerToolWindowFactoryState" value="false" />
191
+    <property name="nodejs.mocha.mocha_node_package_dir" value="$PROJECT_DIR$/node_modules/mocha" />
192
+    <property name="nodejs_interpreter_path.stuck_in_default_project" value="C:/Program Files/nodejs/node" />
193
+    <property name="nodejs_npm_path_reset_for_default_project" value="true" />
194
+    <property name="nodejs_package_manager_path" value="npm" />
195
+  </component>
196
+  <component name="RunDashboard">
197
+    <option name="ruleStates">
198
+      <list>
199
+        <RuleState>
200
+          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
201
+        </RuleState>
202
+        <RuleState>
203
+          <option name="name" value="StatusDashboardGroupingRule" />
204
+        </RuleState>
205
+      </list>
206
+    </option>
207
+  </component>
208
+  <component name="RunManager" selected="Mocha.blob">
209
+    <configuration name="test" type="js.build_tools.npm" factoryName="npm" temporary="true" nameIsGenerated="true">
210
+      <package-json value="$PROJECT_DIR$/package.json" />
211
+      <command value="run" />
212
+      <scripts>
213
+        <script value="test" />
214
+      </scripts>
215
+      <node-interpreter value="project" />
216
+      <envs />
217
+      <method v="2" />
218
+    </configuration>
219
+    <configuration name="blob" type="mocha-javascript-test-runner" factoryName="Mocha" temporary="true" nameIsGenerated="true">
220
+      <node-interpreter>project</node-interpreter>
221
+      <node-options />
222
+      <working-directory>$PROJECT_DIR$</working-directory>
223
+      <pass-parent-env>true</pass-parent-env>
224
+      <ui>bdd</ui>
225
+      <extra-mocha-options />
226
+      <test-kind>SUITE</test-kind>
227
+      <test-file>$PROJECT_DIR$/test/index.js</test-file>
228
+      <test-names>
229
+        <name value="blob" />
230
+      </test-names>
231
+      <method v="2" />
232
+    </configuration>
233
+    <list>
234
+      <item itemvalue="npm.test" />
235
+      <item itemvalue="Mocha.blob" />
236
+    </list>
237
+    <recent_temporary>
238
+      <list>
239
+        <item itemvalue="Mocha.blob" />
240
+        <item itemvalue="npm.test" />
241
+        <item itemvalue="Mocha.blob" />
242
+        <item itemvalue="npm.test" />
243
+        <item itemvalue="Mocha.blob" />
244
+      </list>
245
+    </recent_temporary>
246
+  </component>
247
+  <component name="SvnConfiguration">
248
+    <configuration />
249
+  </component>
250
+  <component name="TaskManager">
251
+    <task active="true" id="Default" summary="Default task">
252
+      <changelist id="584fee10-991c-4143-af70-57730369b503" name="Default Changelist" comment="" />
253
+      <created>1541010775450</created>
254
+      <option name="number" value="Default" />
255
+      <option name="presentableId" value="Default" />
256
+      <updated>1541010775450</updated>
257
+      <workItem from="1541010778407" duration="2946000" />
258
+    </task>
259
+    <task id="LOCAL-00001" summary="update browserify and zuul to avoid esprima-six issue">
260
+      <created>1541013247794</created>
261
+      <option name="number" value="00001" />
262
+      <option name="presentableId" value="LOCAL-00001" />
263
+      <option name="project" value="LOCAL" />
264
+      <updated>1541013247795</updated>
265
+    </task>
266
+    <option name="localTasksCounter" value="2" />
267
+    <servers />
268
+  </component>
269
+  <component name="TestHistory">
270
+    <history-entry file="blob - 2018.10.31 at 21h 11m 12s.xml">
271
+      <configuration name="blob" configurationId="mocha-javascript-test-runner" />
272
+    </history-entry>
273
+  </component>
274
+  <component name="TimeTrackingManager">
275
+    <option name="totallyTimeSpent" value="2946000" />
276
+  </component>
277
+  <component name="TodoView">
278
+    <todo-panel id="selected-file">
279
+      <is-autoscroll-to-source value="true" />
280
+    </todo-panel>
281
+    <todo-panel id="all">
282
+      <are-packages-shown value="true" />
283
+      <is-autoscroll-to-source value="true" />
284
+    </todo-panel>
285
+  </component>
286
+  <component name="ToolWindowManager">
287
+    <frame x="-7" y="-7" width="1550" height="838" extended-state="6" />
288
+    <layout>
289
+      <window_info id="npm" side_tool="true" />
290
+      <window_info id="Favorites" side_tool="true" />
291
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.24983476" />
292
+      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
293
+      <window_info anchor="bottom" id="Docker" show_stripe_button="false" />
294
+      <window_info anchor="bottom" id="Version Control" visible="true" weight="0.44948757" />
295
+      <window_info anchor="bottom" id="Terminal" weight="0.55051243" />
296
+      <window_info anchor="bottom" id="Event Log" side_tool="true" />
297
+      <window_info anchor="bottom" id="Message" order="0" />
298
+      <window_info anchor="bottom" id="Find" order="1" />
299
+      <window_info anchor="bottom" id="Run" order="2" weight="0.47291362" />
300
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
301
+      <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
302
+      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
303
+      <window_info anchor="bottom" id="TODO" order="6" weight="0.329429" />
304
+      <window_info anchor="right" id="Commander" order="0" weight="0.4" />
305
+      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
306
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
307
+    </layout>
308
+  </component>
309
+  <component name="TypeScriptGeneratedFilesManager">
310
+    <option name="version" value="1" />
311
+  </component>
312
+  <component name="Vcs.Log.Tabs.Properties">
313
+    <option name="TAB_STATES">
314
+      <map>
315
+        <entry key="MAIN">
316
+          <value>
317
+            <State>
318
+              <option name="RECENTLY_FILTERED_USER_GROUPS">
319
+                <collection />
320
+              </option>
321
+              <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
322
+                <collection />
323
+              </option>
324
+              <option name="COLUMN_ORDER">
325
+                <list>
326
+                  <option value="0" />
327
+                  <option value="1" />
328
+                  <option value="2" />
329
+                  <option value="3" />
330
+                </list>
331
+              </option>
332
+            </State>
333
+          </value>
334
+        </entry>
335
+      </map>
336
+    </option>
337
+  </component>
338
+  <component name="VcsContentAnnotationSettings">
339
+    <option name="myLimit" value="2678400000" />
340
+  </component>
341
+  <component name="VcsManagerConfiguration">
342
+    <MESSAGE value="update browserify and zuul to avoid esprima-six issue" />
343
+    <option name="LAST_COMMIT_MESSAGE" value="update browserify and zuul to avoid esprima-six issue" />
344
+  </component>
345
+  <component name="editorHistoryManager">
346
+    <entry file="file://$PROJECT_DIR$/index.js">
347
+      <provider selected="true" editor-type-id="text-editor">
348
+        <state relative-caret-position="578">
349
+          <caret line="34" column="3" selection-start-line="34" selection-start-column="3" selection-end-line="34" selection-end-column="3" />
350
+        </state>
351
+      </provider>
352
+    </entry>
353
+    <entry file="file://$PROJECT_DIR$/.gitignore">
354
+      <provider selected="true" editor-type-id="text-editor" />
355
+    </entry>
356
+    <entry file="file://$PROJECT_DIR$/Makefile">
357
+      <provider selected="true" editor-type-id="text-editor">
358
+        <state relative-caret-position="136">
359
+          <caret line="8" column="46" selection-start-line="8" selection-start-column="25" selection-end-line="8" selection-end-column="46" />
360
+        </state>
361
+      </provider>
362
+    </entry>
363
+    <entry file="file://$PROJECT_DIR$/test/index.js">
364
+      <provider selected="true" editor-type-id="text-editor">
365
+        <state relative-caret-position="136">
366
+          <caret line="8" column="26" selection-start-line="8" selection-start-column="26" selection-end-line="8" selection-end-column="26" />
367
+        </state>
368
+      </provider>
369
+    </entry>
370
+    <entry file="file://$PROJECT_DIR$/README.md">
371
+      <provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
372
+        <state split_layout="SPLIT">
373
+          <first_editor relative-caret-position="204">
374
+            <caret line="12" selection-start-line="12" selection-end-line="12" />
375
+          </first_editor>
376
+          <second_editor>
377
+            <markdownNavigatorState />
378
+          </second_editor>
379
+        </state>
380
+      </provider>
381
+    </entry>
382
+    <entry file="file://$PROJECT_DIR$/package.json">
383
+      <provider selected="true" editor-type-id="text-editor">
384
+        <state relative-caret-position="137">
385
+          <caret line="11" column="24" selection-start-line="11" selection-start-column="24" selection-end-line="11" selection-end-column="24" />
386
+        </state>
387
+      </provider>
388
+    </entry>
389
+  </component>
390
+</project>

+ 14
- 0
node_modules/blob/.zuul.yml View File

@@ -0,0 +1,14 @@
1
+ui: mocha-bdd
2
+browsers:
3
+  - name: chrome
4
+    version: 8..latest
5
+  - name: firefox
6
+    version: 7..latest
7
+  - name: safari
8
+    version: 6..latest
9
+  - name: opera
10
+    version: 12.1..latest
11
+  - name: ie
12
+    version: 10..latest
13
+  - name: android
14
+    version: latest

+ 21
- 0
node_modules/blob/LICENSE View File

@@ -0,0 +1,21 @@
1
+MIT License
2
+
3
+Copyright (C) 2014 Rase-
4
+
5
+Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+this software and associated documentation files (the "Software"), to deal in
7
+the Software without restriction, including without limitation the rights to
8
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+the Software, and to permit persons to whom the Software is furnished to do so,
10
+subject to the following conditions:
11
+
12
+The above copyright notice and this permission notice shall be included in all
13
+copies or substantial portions of the Software.
14
+
15
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+SOFTWARE.

+ 14
- 0
node_modules/blob/Makefile View File

@@ -0,0 +1,14 @@
1
+REPORTER = dot
2
+
3
+build: blob.js
4
+
5
+blob.js:
6
+	@./node_modules/.bin/browserify --standalone blob index.js > blob.js
7
+
8
+test:
9
+	@./node_modules/.bin/zuul -- test/index.js
10
+
11
+clean:
12
+	rm blob.js
13
+
14
+.PHONY: test blob.js

+ 21
- 0
node_modules/blob/README.md View File

@@ -0,0 +1,21 @@
1
+# Blob
2
+
3
+A cross-browser `Blob` that falls back to `BlobBuilder` when appropriate.
4
+If neither is available, it exports `undefined`.
5
+
6
+## Installation
7
+
8
+``` bash
9
+$ npm install blob
10
+```
11
+
12
+## Example
13
+
14
+``` js
15
+var Blob = require('blob');
16
+var b = new Blob(['hi', 'constructing', 'a', 'blob']);
17
+```
18
+
19
+## License
20
+
21
+MIT

+ 11
- 0
node_modules/blob/component.json View File

@@ -0,0 +1,11 @@
1
+{
2
+  "name": "blob",
3
+  "repo": "webmodules/blob",
4
+  "description": "Abstracts out Blob and uses BlobBulder in cases where it is supported with any vendor prefix.",
5
+  "version": "0.0.4",
6
+  "license": "MIT",
7
+  "dependencies": {},
8
+  "scripts": [
9
+    "index.js"
10
+  ]
11
+}

+ 100
- 0
node_modules/blob/index.js View File

@@ -0,0 +1,100 @@
1
+/**
2
+ * Create a blob builder even when vendor prefixes exist
3
+ */
4
+
5
+var BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder :
6
+  typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder :
7
+  typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder :
8
+  typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : 
9
+  false;
10
+
11
+/**
12
+ * Check if Blob constructor is supported
13
+ */
14
+
15
+var blobSupported = (function() {
16
+  try {
17
+    var a = new Blob(['hi']);
18
+    return a.size === 2;
19
+  } catch(e) {
20
+    return false;
21
+  }
22
+})();
23
+
24
+/**
25
+ * Check if Blob constructor supports ArrayBufferViews
26
+ * Fails in Safari 6, so we need to map to ArrayBuffers there.
27
+ */
28
+
29
+var blobSupportsArrayBufferView = blobSupported && (function() {
30
+  try {
31
+    var b = new Blob([new Uint8Array([1,2])]);
32
+    return b.size === 2;
33
+  } catch(e) {
34
+    return false;
35
+  }
36
+})();
37
+
38
+/**
39
+ * Check if BlobBuilder is supported
40
+ */
41
+
42
+var blobBuilderSupported = BlobBuilder
43
+  && BlobBuilder.prototype.append
44
+  && BlobBuilder.prototype.getBlob;
45
+
46
+/**
47
+ * Helper function that maps ArrayBufferViews to ArrayBuffers
48
+ * Used by BlobBuilder constructor and old browsers that didn't
49
+ * support it in the Blob constructor.
50
+ */
51
+
52
+function mapArrayBufferViews(ary) {
53
+  return ary.map(function(chunk) {
54
+    if (chunk.buffer instanceof ArrayBuffer) {
55
+      var buf = chunk.buffer;
56
+
57
+      // if this is a subarray, make a copy so we only
58
+      // include the subarray region from the underlying buffer
59
+      if (chunk.byteLength !== buf.byteLength) {
60
+        var copy = new Uint8Array(chunk.byteLength);
61
+        copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));
62
+        buf = copy.buffer;
63
+      }
64
+
65
+      return buf;
66
+    }
67
+
68
+    return chunk;
69
+  });
70
+}
71
+
72
+function BlobBuilderConstructor(ary, options) {
73
+  options = options || {};
74
+
75
+  var bb = new BlobBuilder();
76
+  mapArrayBufferViews(ary).forEach(function(part) {
77
+    bb.append(part);
78
+  });
79
+
80
+  return (options.type) ? bb.getBlob(options.type) : bb.getBlob();
81
+};
82
+
83
+function BlobConstructor(ary, options) {
84
+  return new Blob(mapArrayBufferViews(ary), options || {});
85
+};
86
+
87
+if (typeof Blob !== 'undefined') {
88
+  BlobBuilderConstructor.prototype = Blob.prototype;
89
+  BlobConstructor.prototype = Blob.prototype;
90
+}
91
+
92
+module.exports = (function() {
93
+  if (blobSupported) {
94
+    return blobSupportsArrayBufferView ? Blob : BlobConstructor;
95
+  } else if (blobBuilderSupported) {
96
+    return BlobBuilderConstructor;
97
+  } else {
98
+    return undefined;
99
+  }
100
+})();

+ 85
- 0
node_modules/blob/package.json View File

@@ -0,0 +1,85 @@
1
+{
2
+  "_args": [
3
+    [
4
+      "blob@0.0.5",
5
+      "/home/lyxaira/Artesanias/artesanias/node_modules/engine.io-parser"
6
+    ]
7
+  ],
8
+  "_from": "blob@0.0.5",
9
+  "_hasShrinkwrap": false,
10
+  "_id": "blob@0.0.5",
11
+  "_inCache": true,
12
+  "_installable": true,
13
+  "_location": "/blob",
14
+  "_nodeVersion": "8.11.3",
15
+  "_npmOperationalInternal": {
16
+    "host": "s3://npm-registry-packages",
17
+    "tmp": "tmp/blob_0.0.5_1541014010809_0.6329557797882384"
18
+  },
19
+  "_npmUser": {
20
+    "email": "amit.portnoy@gmail.com",
21
+    "name": "amitport"
22
+  },
23
+  "_npmVersion": "6.2.0",
24
+  "_phantomChildren": {},
25
+  "_requested": {
26
+    "name": "blob",
27
+    "raw": "blob@0.0.5",
28
+    "rawSpec": "0.0.5",
29
+    "scope": null,
30
+    "spec": "0.0.5",
31
+    "type": "version"
32
+  },
33
+  "_requiredBy": [
34
+    "/engine.io-parser"
35
+  ],
36
+  "_resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
37
+  "_shasum": "d680eeef25f8cd91ad533f5b01eed48e64caf683",
38
+  "_shrinkwrap": null,
39
+  "_spec": "blob@0.0.5",
40
+  "_where": "/home/lyxaira/Artesanias/artesanias/node_modules/engine.io-parser",
41
+  "bugs": {
42
+    "url": "https://github.com/webmodules/blob/issues"
43
+  },
44
+  "dependencies": {},
45
+  "description": "Abstracts out Blob and uses BlobBulder in cases where it is supported with any vendor prefix.",
46
+  "devDependencies": {
47
+    "browserify": "4.2.3",
48
+    "expect.js": "0.2.0",
49
+    "mocha": "1.17.1",
50
+    "zuul": "1.10.2"
51
+  },
52
+  "directories": {},
53
+  "dist": {
54
+    "fileCount": 15,
55
+    "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==",
56
+    "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb2gH7CRA9TVsSAnZWagAA2+8QAIOaj9HrrWfIC+FLmbuo\nJB+vwGPeRC0erCaddsVU4q1B122bdEheKNFPPfNrXTMbHMHASoFoOahrUNiY\nPqj/xRYNgirIyFCpzc9wjk2hLJkNY1C2hftpUwWDdfv1z6ygfIAZXqWkVy42\nqgVloGzU/4WVuL5mOVv6CA8XjovnTkuetDjyR9quBGeNqHBXdXnhs9DvYL1R\npa8IBZa4yqE+MPqJcRwDVqw3knFnQwprrcseWCXg5LFh474ufRIgLIFN/vLz\nf9OgKfUcot8suI1UtRcEFDABBTacQTJGtAPji1XD48tHPKQ401ELU0ZJ6p92\nS5BH4e0bqo6HvTApAs7UoEFDVHASb8Jo1VKXf9BfcO0mJ4g+fSIDuLzxkZoO\nmehRRi07MBF3JvjXKpylgKdCdKwh4lkqBuM1TUCY5WUti/10UGfFNl+jiqDt\nH8B5h7CqXchycCfRBno5v3XzRKZDhZIaaVv7CJVUPyAuAQ6wCIwVQTLrYqci\nXcbmwcEnk1R5JCVDrMEz2Vr3qWR7ANf5tZSk+24M3Nsn23RHEb6Pnp7Bw/TC\nZBd5ftkwSuh3/Vr3BdIoS9chPzqYhXjL+5ejVhjHRT+8KEtHR/C/aFIgEmka\nbskmaWN0DQXGWFUsmBrT97OW8oi46L/2pi/EPeysR810gpfogOSOFcMsZrUB\nMWv6\r\n=SKon\r\n-----END PGP SIGNATURE-----\r\n",
57
+    "shasum": "d680eeef25f8cd91ad533f5b01eed48e64caf683",
58
+    "tarball": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
59
+    "unpackedSize": 30611
60
+  },
61
+  "gitHead": "90ef5685dcd14000ce7a54a005d596633c2726b9",
62
+  "homepage": "https://github.com/webmodules/blob",
63
+  "license": "MIT",
64
+  "maintainers": [
65
+    {
66
+      "name": "amitport",
67
+      "email": "amit.portnoy@gmail.com"
68
+    },
69
+    {
70
+      "name": "rase-",
71
+      "email": "tonykovanen@hotmail.com"
72
+    }
73
+  ],
74
+  "name": "blob",
75
+  "optionalDependencies": {},
76
+  "readme": "ERROR: No README data found!",
77
+  "repository": {
78
+    "type": "git",
79
+    "url": "git://github.com/webmodules/blob.git"
80
+  },
81
+  "scripts": {
82
+    "test": "make test"
83
+  },
84
+  "version": "0.0.5"
85
+}

+ 100
- 0
node_modules/blob/test/index.js View File

@@ -0,0 +1,100 @@
1
+var Blob = require('../');
2
+var expect = require('expect.js');
3
+
4
+describe('blob', function() {
5
+  if (!Blob) {
6
+    it('should not have a blob or a blob builder in the global namespace, or blob should not be a constructor function if the module exports false', function() {
7
+      try {
8
+        var ab = (new Uint8Array(5)).buffer;
9
+        global.Blob([ab]);
10
+        expect().fail('Blob shouldn\'t be constructable');
11
+      } catch (e) {}
12
+
13
+      var BlobBuilder = global.BlobBuilder
14
+        || global.WebKitBlobBuilder
15
+        || global.MSBlobBuilder
16
+        || global.MozBlobBuilder;
17
+      expect(BlobBuilder).to.be(undefined);
18
+    });
19
+  } else {
20
+    it('should encode a proper sized blob when given a string argument', function() {
21
+      var b = new Blob(['hi']);
22
+      expect(b.size).to.be(2);
23
+    });
24
+
25
+    it('should encode a blob with proper size when given two strings as arguments', function() {
26
+      var b = new Blob(['hi', 'hello']);
27
+      expect(b.size).to.be(7);
28
+    });
29
+
30
+    it('should encode arraybuffers with right content', function(done) {
31
+      var ary = new Uint8Array(5);
32
+      for (var i = 0; i < 5; i++) ary[i] = i;
33
+      var b = new Blob([ary.buffer]);
34
+      var fr = new FileReader();
35
+      fr.onload = function() {
36
+        var newAry = new Uint8Array(this.result);
37
+        for (var i = 0; i < 5; i++) expect(newAry[i]).to.be(i);
38
+        done();
39
+      };
40
+      fr.readAsArrayBuffer(b);
41
+    });
42
+
43
+    it('should encode typed arrays with right content', function(done) {
44
+      var ary = new Uint8Array(5);
45
+      for (var i = 0; i < 5; i++) ary[i] = i;
46
+      var b = new Blob([ary]);
47
+      var fr = new FileReader();
48
+      fr.onload = function() {
49
+        var newAry = new Uint8Array(this.result);
50
+        for (var i = 0; i < 5; i++) expect(newAry[i]).to.be(i);
51
+        done();
52
+      };
53
+      fr.readAsArrayBuffer(b);
54
+    });
55
+
56
+    it('should encode sliced typed arrays with right content', function(done) {
57
+      var ary = new Uint8Array(5);
58
+      for (var i = 0; i < 5; i++) ary[i] = i;
59
+      var b = new Blob([ary.subarray(2)]);
60
+      var fr = new FileReader();
61
+      fr.onload = function() {
62
+        var newAry = new Uint8Array(this.result);
63
+        for (var i = 0; i < 3; i++) expect(newAry[i]).to.be(i + 2);
64
+        done();
65
+      };
66
+      fr.readAsArrayBuffer(b);
67
+    });
68
+
69
+    it('should encode with blobs', function(done) {
70
+      var ary = new Uint8Array(5);
71
+      for (var i = 0; i < 5; i++) ary[i] = i;
72
+      var b = new Blob([new Blob([ary.buffer])]);
73
+      var fr = new FileReader();
74
+      fr.onload = function() {
75
+        var newAry = new Uint8Array(this.result);
76
+        for (var i = 0; i < 5; i++) expect(newAry[i]).to.be(i);
77
+        done();
78
+      };
79
+      fr.readAsArrayBuffer(b);
80
+    });
81
+
82
+    it('should enode mixed contents to right size', function() {
83
+      var ary = new Uint8Array(5);
84
+      for (var i = 0; i < 5; i++) ary[i] = i;
85
+      var b = new Blob([ary.buffer, 'hello']);
86
+      expect(b.size).to.be(10);
87
+    });
88
+
89
+    it('should accept mime type', function() {
90
+      var b = new Blob(['hi', 'hello'], { type: 'text/html' });
91
+      expect(b.type).to.be('text/html');
92
+    });
93
+
94
+    it('should be an instance of constructor', function() {
95
+      var b = new Blob(['hi']);
96
+      expect(b).to.be.a(Blob);
97
+      expect(b).to.be.a(global.Blob);
98
+    });
99
+  }
100
+});

+ 4
- 0
node_modules/callsite/.npmignore View File

@@ -0,0 +1,4 @@
1
+support
2
+test
3
+examples
4
+*.sock

+ 10
- 0
node_modules/callsite/History.md View File

@@ -0,0 +1,10 @@
1
+
2
+1.0.0 / 2013-01-24 
3
+==================
4
+
5
+  * remove lame magical getters
6
+
7
+0.0.1 / 2010-01-03
8
+==================
9
+
10
+  * Initial release

+ 6
- 0
node_modules/callsite/Makefile View File

@@ -0,0 +1,6 @@
1
+
2
+test:
3
+	@./node_modules/.bin/mocha \
4
+		--require should
5
+
6
+.PHONY: test

+ 44
- 0
node_modules/callsite/Readme.md View File

@@ -0,0 +1,44 @@
1
+# callstack
2
+
3
+  Access to v8's "raw" `CallSite`s.
4
+
5
+## Installation
6
+
7
+    $ npm install callsite
8
+
9
+## Example
10
+
11
+```js
12
+var stack = require('callsite');
13
+
14
+foo();
15
+
16
+function foo() {
17
+  bar();
18
+}
19
+
20
+function bar() {
21
+  baz();
22
+}
23
+
24
+function baz() {
25
+  console.log();
26
+  stack().forEach(function(site){
27
+    console.log('  \033[36m%s\033[90m in %s:%d\033[0m'
28
+      , site.getFunctionName() || 'anonymous'
29
+      , site.getFileName()
30
+      , site.getLineNumber());
31
+  });
32
+  console.log();
33
+}
34
+```
35
+
36
+## Why?
37
+
38
+  Because you can do weird, stupid, clever, wacky things such as:
39
+
40
+  - [better-assert](https://github.com/visionmedia/better-assert)
41
+
42
+## License
43
+
44
+  MIT

+ 10
- 0
node_modules/callsite/index.js View File

@@ -0,0 +1,10 @@
1
+
2
+module.exports = function(){
3
+  var orig = Error.prepareStackTrace;
4
+  Error.prepareStackTrace = function(_, stack){ return stack; };
5
+  var err = new Error;
6
+  Error.captureStackTrace(err, arguments.callee);
7
+  var stack = err.stack;
8
+  Error.prepareStackTrace = orig;
9
+  return stack;
10
+};

+ 69
- 0
node_modules/callsite/package.json View File

@@ -0,0 +1,69 @@
1
+{
2
+  "_args": [
3
+    [
4
+      "callsite@1.0.0",
5
+      "/home/lyxaira/Artesanias/artesanias/node_modules/better-assert"
6
+    ]
7
+  ],
8
+  "_from": "callsite@1.0.0",
9
+  "_id": "callsite@1.0.0",
10
+  "_inCache": true,
11
+  "_installable": true,
12
+  "_location": "/callsite",
13
+  "_npmUser": {
14
+    "email": "tj@vision-media.ca",
15
+    "name": "tjholowaychuk"
16
+  },
17
+  "_npmVersion": "1.2.2",
18
+  "_phantomChildren": {},
19
+  "_requested": {
20
+    "name": "callsite",
21
+    "raw": "callsite@1.0.0",
22
+    "rawSpec": "1.0.0",
23
+    "scope": null,
24
+    "spec": "1.0.0",
25
+    "type": "version"
26
+  },
27
+  "_requiredBy": [
28
+    "/better-assert"
29
+  ],
30
+  "_resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
31
+  "_shasum": "280398e5d664bd74038b6f0905153e6e8af1bc20",
32
+  "_shrinkwrap": null,
33
+  "_spec": "callsite@1.0.0",
34
+  "_where": "/home/lyxaira/Artesanias/artesanias/node_modules/better-assert",
35
+  "author": {
36
+    "email": "tj@vision-media.ca",
37
+    "name": "TJ Holowaychuk"
38
+  },
39
+  "dependencies": {},
40
+  "description": "access to v8's CallSites",
41
+  "devDependencies": {
42
+    "mocha": "*",
43
+    "should": "*"
44
+  },
45
+  "directories": {},
46
+  "dist": {
47
+    "shasum": "280398e5d664bd74038b6f0905153e6e8af1bc20",
48
+    "tarball": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz"
49
+  },
50
+  "engines": {
51
+    "node": "*"
52
+  },
53
+  "keywords": [
54
+    "line",
55
+    "stack",
56
+    "trace"
57
+  ],
58
+  "main": "index",
59
+  "maintainers": [
60
+    {
61
+      "name": "tjholowaychuk",
62
+      "email": "tj@vision-media.ca"
63
+    }
64
+  ],
65
+  "name": "callsite",
66
+  "optionalDependencies": {},
67
+  "readme": "ERROR: No README data found!",
68
+  "version": "1.0.0"
69
+}

+ 4
- 0
node_modules/component-bind/.npmignore View File

@@ -0,0 +1,4 @@
1
+support
2
+test
3
+examples
4
+*.sock

+ 13
- 0
node_modules/component-bind/History.md View File

@@ -0,0 +1,13 @@
1
+
2
+1.0.0 / 2014-05-27
3
+==================
4
+
5
+  * index: use slice ref (#7, @viatropos)
6
+  * package: rename package to "component-bind"
7
+  * package: add "repository" field (#6, @repoify)
8
+  * package: add "component" section
9
+
10
+0.0.1 / 2010-01-03
11
+==================
12
+
13
+  * Initial release

+ 7
- 0
node_modules/component-bind/Makefile View File

@@ -0,0 +1,7 @@
1
+
2
+test:
3
+	@./node_modules/.bin/mocha \
4
+		--require should \
5
+		--reporter spec
6
+
7
+.PHONY: test

+ 64
- 0
node_modules/component-bind/Readme.md View File

@@ -0,0 +1,64 @@
1
+# bind
2
+
3
+  Function binding utility.
4
+
5
+## Installation
6
+
7
+```
8
+$ component install component/bind
9
+```
10
+
11
+## API
12
+
13
+   - [bind(obj, fn)](#bindobj-fn)
14
+   - [bind(obj, fn, ...)](#bindobj-fn-)
15
+   - [bind(obj, name)](#bindobj-name)
16
+<a name=""></a>
17
+ 
18
+<a name="bindobj-fn"></a>
19
+### bind(obj, fn)
20
+should bind the function to the given object.
21
+
22
+```js
23
+var tobi = { name: 'tobi' };
24
+
25
+function name() {
26
+  return this.name;
27
+}
28
+
29
+var fn = bind(tobi, name);
30
+fn().should.equal('tobi');
31
+```
32
+
33
+<a name="bindobj-fn-"></a>
34
+### bind(obj, fn, ...)
35
+should curry the remaining arguments.
36
+
37
+```js
38
+function add(a, b) {
39
+  return a + b;
40
+}
41
+
42
+bind(null, add)(1, 2).should.equal(3);
43
+bind(null, add, 1)(2).should.equal(3);
44
+bind(null, add, 1, 2)().should.equal(3);
45
+```
46
+
47
+<a name="bindobj-name"></a>
48
+### bind(obj, name)
49
+should bind the method of the given name.
50
+
51
+```js
52
+var tobi = { name: 'tobi' };
53
+
54
+tobi.getName = function() {
55
+  return this.name;
56
+};
57
+
58
+var fn = bind(tobi, 'getName');
59
+fn().should.equal('tobi');
60
+```
61
+
62
+## License 
63
+
64
+  MIT

+ 13
- 0
node_modules/component-bind/component.json View File

@@ -0,0 +1,13 @@
1
+{
2
+  "name": "bind",
3
+  "version": "1.0.0",
4
+  "description": "function binding utility",
5
+  "keywords": [
6
+    "bind",
7
+    "utility"
8
+  ],
9
+  "dependencies": {},
10
+  "scripts": [
11
+    "index.js"
12
+  ]
13
+}

+ 23
- 0
node_modules/component-bind/index.js View File

@@ -0,0 +1,23 @@
1
+/**
2
+ * Slice reference.
3
+ */
4
+
5
+var slice = [].slice;
6
+
7
+/**
8
+ * Bind `obj` to `fn`.
9
+ *
10
+ * @param {Object} obj
11
+ * @param {Function|String} fn or string
12
+ * @return {Function}
13
+ * @api public
14
+ */
15
+
16
+module.exports = function(obj, fn){
17
+  if ('string' == typeof fn) fn = obj[fn];
18
+  if ('function' != typeof fn) throw new Error('bind() requires a function');
19
+  var args = slice.call(arguments, 2);
20
+  return function(){
21
+    return fn.apply(obj, args.concat(slice.call(arguments)));
22
+  }
23
+};

+ 73
- 0
node_modules/component-bind/package.json View File

@@ -0,0 +1,73 @@
1
+{
2
+  "_args": [
3
+    [
4
+      "component-bind@1.0.0",
5
+      "/home/lyxaira/Artesanias/artesanias/node_modules/socket.io-client"
6
+    ]
7
+  ],
8
+  "_from": "component-bind@1.0.0",
9
+  "_id": "component-bind@1.0.0",
10
+  "_inCache": true,
11
+  "_installable": true,
12
+  "_location": "/component-bind",
13
+  "_npmUser": {
14
+    "email": "nathan@tootallnate.net",
15
+    "name": "tootallnate"
16
+  },
17
+  "_npmVersion": "1.4.9",
18
+  "_phantomChildren": {},
19
+  "_requested": {
20
+    "name": "component-bind",
21
+    "raw": "component-bind@1.0.0",
22
+    "rawSpec": "1.0.0",
23
+    "scope": null,
24
+    "spec": "1.0.0",
25
+    "type": "version"
26
+  },
27
+  "_requiredBy": [
28
+    "/socket.io-client"
29
+  ],
30
+  "_resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
31
+  "_shasum": "00c608ab7dcd93897c0009651b1d3a8e1e73bbd1",
32
+  "_shrinkwrap": null,
33
+  "_spec": "component-bind@1.0.0",
34
+  "_where": "/home/lyxaira/Artesanias/artesanias/node_modules/socket.io-client",
35
+  "bugs": {
36
+    "url": "https://github.com/component/bind/issues"
37
+  },
38
+  "component": {
39
+    "scripts": {
40
+      "bind/index.js": "index.js"
41
+    }
42
+  },
43
+  "dependencies": {},
44
+  "description": "function binding utility",
45
+  "devDependencies": {
46
+    "mocha": "*",
47
+    "should": "*"
48
+  },
49
+  "directories": {},
50
+  "dist": {
51
+    "shasum": "00c608ab7dcd93897c0009651b1d3a8e1e73bbd1",
52
+    "tarball": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz"
53
+  },
54
+  "homepage": "https://github.com/component/bind",
55
+  "keywords": [
56
+    "bind",
57
+    "utility"
58
+  ],
59
+  "maintainers": [
60
+    {
61
+      "name": "tootallnate",
62
+      "email": "nathan@tootallnate.net"
63
+    }
64
+  ],
65
+  "name": "component-bind",
66
+  "optionalDependencies": {},
67
+  "readme": "ERROR: No README data found!",
68
+  "repository": {
69
+    "type": "git",
70
+    "url": "git+https://github.com/component/bind.git"
71
+  },
72
+  "version": "1.0.0"
73
+}

+ 0
- 0
node_modules/component-emitter/History.md View File


Some files were not shown because too many files changed in this diff