summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/uuid
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/uuid')
-rw-r--r--deps/npm/node_modules/uuid/.eslintrc.json5
-rw-r--r--deps/npm/node_modules/uuid/CHANGELOG.md57
-rw-r--r--deps/npm/node_modules/uuid/HISTORY.md27
-rw-r--r--deps/npm/node_modules/uuid/README.md162
-rw-r--r--deps/npm/node_modules/uuid/README_js.md280
-rwxr-xr-xdeps/npm/node_modules/uuid/bin/uuid15
-rw-r--r--deps/npm/node_modules/uuid/lib/md5-browser.js216
-rw-r--r--deps/npm/node_modules/uuid/lib/md5.js25
-rw-r--r--deps/npm/node_modules/uuid/lib/rng-browser.js21
-rw-r--r--deps/npm/node_modules/uuid/lib/rng.js10
-rw-r--r--deps/npm/node_modules/uuid/lib/sha1-browser.js6
-rw-r--r--deps/npm/node_modules/uuid/lib/sha1.js28
-rw-r--r--deps/npm/node_modules/uuid/lib/v35.js53
-rw-r--r--deps/npm/node_modules/uuid/package.json33
-rw-r--r--deps/npm/node_modules/uuid/v1.js37
-rw-r--r--deps/npm/node_modules/uuid/v3.js4
-rw-r--r--deps/npm/node_modules/uuid/v4.js2
-rw-r--r--deps/npm/node_modules/uuid/v5.js45
18 files changed, 850 insertions, 176 deletions
diff --git a/deps/npm/node_modules/uuid/.eslintrc.json b/deps/npm/node_modules/uuid/.eslintrc.json
index 638b0a56fd..734a8e14c7 100644
--- a/deps/npm/node_modules/uuid/.eslintrc.json
+++ b/deps/npm/node_modules/uuid/.eslintrc.json
@@ -7,16 +7,16 @@
"mocha": true
},
"extends": ["eslint:recommended"],
- "installedESLint": true,
"rules": {
"array-bracket-spacing": ["warn", "never"],
"arrow-body-style": ["warn", "as-needed"],
"arrow-parens": ["warn", "as-needed"],
"arrow-spacing": "warn",
- "brace-style": "warn",
+ "brace-style": ["warn", "1tbs"],
"camelcase": "warn",
"comma-spacing": ["warn", {"after": true}],
"dot-notation": "warn",
+ "eqeqeq": ["warn", "smart"],
"indent": ["warn", 2, {
"SwitchCase": 1,
"FunctionDeclaration": {"parameters": 1},
@@ -33,6 +33,7 @@
"no-trailing-spaces": "warn",
"no-undef": "error",
"no-unused-vars": ["warn", {"args": "none"}],
+ "one-var": ["warn", "never"],
"padded-blocks": ["warn", "never"],
"object-curly-spacing": ["warn", "never"],
"quotes": ["warn", "single"],
diff --git a/deps/npm/node_modules/uuid/CHANGELOG.md b/deps/npm/node_modules/uuid/CHANGELOG.md
new file mode 100644
index 0000000000..d9fe59c150
--- /dev/null
+++ b/deps/npm/node_modules/uuid/CHANGELOG.md
@@ -0,0 +1,57 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="3.2.1"></a>
+## [3.2.1](https://github.com/kelektiv/node-uuid/compare/v3.1.0...v3.2.1) (2018-01-16)
+
+
+### Bug Fixes
+
+* use msCrypto if available. Fixes [#241](https://github.com/kelektiv/node-uuid/issues/241) ([#247](https://github.com/kelektiv/node-uuid/issues/247)) ([1fef18b](https://github.com/kelektiv/node-uuid/commit/1fef18b))
+
+
+
+<a name="3.2.0"></a>
+# [3.2.0](https://github.com/kelektiv/node-uuid/compare/v3.1.0...v3.2.0) (2018-01-16)
+
+
+### Bug Fixes
+
+* remove mistakenly added typescript dependency, rollback version (standard-version will auto-increment) ([09fa824](https://github.com/kelektiv/node-uuid/commit/09fa824))
+* use msCrypto if available. Fixes [#241](https://github.com/kelektiv/node-uuid/issues/241) ([#247](https://github.com/kelektiv/node-uuid/issues/247)) ([1fef18b](https://github.com/kelektiv/node-uuid/commit/1fef18b))
+
+
+### Features
+
+* Add v3 Support ([#217](https://github.com/kelektiv/node-uuid/issues/217)) ([d94f726](https://github.com/kelektiv/node-uuid/commit/d94f726))
+
+
+
+# 3.0.1 (2016-11-28)
+
+ * split uuid versions into separate files
+
+# 3.0.0 (2016-11-17)
+
+ * remove .parse and .unparse
+
+# 2.0.0
+
+ * Removed uuid.BufferClass
+
+# 1.4.0
+
+ * Improved module context detection
+ * Removed public RNG functions
+
+# 1.3.2
+
+ * Improve tests and handling of v1() options (Issue #24)
+ * Expose RNG option to allow for perf testing with different generators
+
+# 1.3.0
+
+ * Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)!
+ * Support for node.js crypto API
+ * De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code
diff --git a/deps/npm/node_modules/uuid/HISTORY.md b/deps/npm/node_modules/uuid/HISTORY.md
deleted file mode 100644
index 02daad3f61..0000000000
--- a/deps/npm/node_modules/uuid/HISTORY.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# 3.0.1 (2016-11-28)
-
- * split uuid versions into separate files
-
-# 3.0.0 (2016-11-17)
-
- * remove .parse and .unparse
-
-# 2.0.0
-
- * Removed uuid.BufferClass
-
-# 1.4.0
-
- * Improved module context detection
- * Removed public RNG functions
-
-# 1.3.2
-
- * Improve tests and handling of v1() options (Issue #24)
- * Expose RNG option to allow for perf testing with different generators
-
-# 1.3.0
-
- * Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)!
- * Support for node.js crypto API
- * De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code
diff --git a/deps/npm/node_modules/uuid/README.md b/deps/npm/node_modules/uuid/README.md
index 5adaa8f946..cddaa14469 100644
--- a/deps/npm/node_modules/uuid/README.md
+++ b/deps/npm/node_modules/uuid/README.md
@@ -1,14 +1,21 @@
+<!--
+ -- This file is auto-generated from README_js.md. Changes should be made there.
+ -->
+
# uuid [![Build Status](https://secure.travis-ci.org/kelektiv/node-uuid.svg?branch=master)](http://travis-ci.org/kelektiv/node-uuid) #
Simple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS.
Features:
-* Support for version 1, 4 and 5 UUIDs
+* Support for version 1, 3, 4 and 5 UUIDs
* Cross-platform
* Uses cryptographically-strong random number APIs (when available)
* Zero-dependency, small footprint (... but not [this small](https://gist.github.com/982883))
+[**Deprecation warning**: The use of `require('uuid')` is deprecated and will not be
+supported after version 3.x of this module. Instead, use `require('uuid/[v1|v3|v4|v5]')` as shown in the examples below.]
+
## Quickstart - CommonJS (Recommended)
```shell
@@ -21,14 +28,36 @@ Version 1 (timestamp):
```javascript
const uuidv1 = require('uuid/v1');
-uuidv1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'
+uuidv1(); // ⇨ 'f64f2940-fae4-11e7-8c5f-ef356f279131'
+
+```
+
+Version 3 (namespace):
+
+```javascript
+const uuidv3 = require('uuid/v3');
+
+// ... using predefined DNS namespace (for domain names)
+uuidv3('hello.example.com', uuidv3.DNS); // ⇨ '9125a8dc-52ee-365b-a5aa-81b0b3681cf6'
+
+// ... using predefined URL namespace (for, well, URLs)
+uuidv3('http://example.com/hello', uuidv3.URL); // ⇨ 'c6235813-3ba4-3801-ae84-e0a6ebb7d138'
+
+// ... using a custom namespace
+//
+// Note: Custom namespaces should be a UUID string specific to your application!
+// E.g. the one here was generated using this modules `uuid` CLI.
+const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
+uuidv3('Hello, World!', MY_NAMESPACE); // ⇨ 'e8b5a51d-11c8-3310-a6ab-367563f20686'
+
```
Version 4 (random):
```javascript
const uuidv4 = require('uuid/v4');
-uuidv4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'
+uuidv4(); // ⇨ '416ac246-e7ac-49ff-93b4-f7e94d997e6b'
+
```
Version 5 (namespace):
@@ -37,14 +66,18 @@ Version 5 (namespace):
const uuidv5 = require('uuid/v5');
// ... using predefined DNS namespace (for domain names)
-uuidv5('hello.example.com', uuidv5.DNS)); // -> 'fdda765f-fc57-5604-a269-52a7df8164ec'
+uuidv5('hello.example.com', uuidv5.DNS); // ⇨ 'fdda765f-fc57-5604-a269-52a7df8164ec'
// ... using predefined URL namespace (for, well, URLs)
-uuidv5('http://example.com/hello', uuidv5.URL); // -> '3bbcee75-cecc-5b56-8031-b6641c1ed1f1'
+uuidv5('http://example.com/hello', uuidv5.URL); // ⇨ '3bbcee75-cecc-5b56-8031-b6641c1ed1f1'
// ... using a custom namespace
-const MY_NAMESPACE = '<UUID string you previously generated elsewhere>';
-uuidv5('Hello, World!', MY_NAMESPACE); // -> '90123e1c-7512-523e-bb28-76fab9f2f73d'
+//
+// Note: Custom namespaces should be a UUID string specific to your application!
+// E.g. the one here was generated using this modules `uuid` CLI.
+const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
+uuidv5('Hello, World!', MY_NAMESPACE); // ⇨ '630eb68f-e0fa-5ecc-887a-7c7a62614681'
+
```
## Quickstart - Browser-ready Versions
@@ -60,6 +93,15 @@ uuidv1(); // -> v1 UUID
</script>
```
+For version 3 uuids:
+
+```html
+<script src="http://wzrd.in/standalone/uuid%2Fv3@latest"></script>
+<script>
+uuidv3('http://example.com/hello', uuidv3.URL); // -> v3 UUID
+</script>
+```
+
For version 4 uuids:
```html
@@ -85,7 +127,7 @@ uuidv5('http://example.com/hello', uuidv5.URL); // -> v5 UUID
```javascript
const uuidv1 = require('uuid/v1');
-// Allowed arguments
+// Incantations
uuidv1();
uuidv1(options);
uuidv1(options, buffer, offset);
@@ -97,7 +139,7 @@ Generate and return a RFC4122 v1 (timestamp-based) UUID.
* `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID. See note 1.
* `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used.
- * `msecs` - (Number | Date) Time in milliseconds since unix Epoch. Default: The current time is used.
+ * `msecs` - (Number) Time in milliseconds since unix Epoch. Default: The current time is used.
* `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2.
* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
@@ -110,21 +152,51 @@ Note: The <node> id is generated guaranteed to stay constant for the lifetime of
Example: Generate string UUID with fully-specified options
```javascript
-uuidv1({
+const v1options = {
node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
clockseq: 0x1234,
msecs: new Date('2011-11-01').getTime(),
nsecs: 5678
-}); // -> "710b962e-041c-11e1-9234-0123456789ab"
+};
+uuidv1(v1options); // ⇨ '710b962e-041c-11e1-9234-0123456789ab'
+
```
Example: In-place generation of two binary IDs
```javascript
// Generate two ids in an array
-const arr = new Array(32); // -> []
-uuidv1(null, arr, 0); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15]
-uuidv1(null, arr, 16); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15 02 a3 1c b0 14 32 11 e1 85 58 0b 48 8e 4f c1 15]
+const arr = new Array();
+uuidv1(null, arr, 0); // ⇨ [ 246, 87, 141, 176, 250, 228, 17, 231, 146, 52, 239, 53, 111, 39, 145, 49 ]
+uuidv1(null, arr, 16); // ⇨ [ 246, 87, 141, 176, 250, 228, 17, 231, 146, 52, 239, 53, 111, 39, 145, 49, 246, 87, 180, 192, 250, 228, 17, 231, 146, 52, 239, 53, 111, 39, 145, 49 ]
+
+```
+
+### Version 3
+
+```javascript
+const uuidv3 = require('uuid/v3');
+
+// Incantations
+uuidv3(name, namespace);
+uuidv3(name, namespace, buffer);
+uuidv3(name, namespace, buffer, offset);
+```
+
+Generate and return a RFC4122 v3 UUID.
+
+* `name` - (String | Array[]) "name" to create UUID with
+* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values
+* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
+* `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0
+
+Returns `buffer`, if specified, otherwise the string form of the UUID
+
+Example:
+
+```javascript
+uuidv3('hello world', MY_NAMESPACE); // ⇨ '042ffd34-d989-321c-ad06-f60826172424'
+
```
### Version 4
@@ -132,7 +204,7 @@ uuidv1(null, arr, 16); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15 0
```javascript
const uuidv4 = require('uuid/v4')
-// Allowed arguments
+// Incantations
uuidv4();
uuidv4(options);
uuidv4(options, buffer, offset);
@@ -148,38 +220,40 @@ Generate and return a RFC4122 v4 UUID.
Returns `buffer`, if specified, otherwise the string form of the UUID
-Example: Generate string UUID with fully-specified options
+Example: Generate string UUID with predefined `random` values
```javascript
-uuid.v4({
+const v4options = {
random: [
0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea,
0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36
]
-});
-// -> "109156be-c4fb-41ea-b1b4-efe1671c5836"
+};
+uuidv4(v4options); // ⇨ '109156be-c4fb-41ea-b1b4-efe1671c5836'
+
```
Example: Generate two IDs in a single buffer
```javascript
-const buffer = new Array(32); // (or 'new Buffer' in node.js)
-uuid.v4(null, buffer, 0);
-uuid.v4(null, buffer, 16);
+const buffer = new Array();
+uuidv4(null, buffer, 0); // ⇨ [ 175, 10, 162, 184, 217, 255, 77, 139, 161, 80, 41, 200, 70, 238, 196, 250 ]
+uuidv4(null, buffer, 16); // ⇨ [ 175, 10, 162, 184, 217, 255, 77, 139, 161, 80, 41, 200, 70, 238, 196, 250, 75, 162, 105, 153, 48, 238, 77, 58, 169, 56, 158, 207, 106, 160, 47, 239 ]
+
```
### Version 5
```javascript
-const uuidv5 = require('uuid/v4');
+const uuidv5 = require('uuid/v5');
-// Allowed arguments
+// Incantations
uuidv5(name, namespace);
uuidv5(name, namespace, buffer);
uuidv5(name, namespace, buffer, offset);
```
-Generate and return a RFC4122 v4 UUID.
+Generate and return a RFC4122 v5 UUID.
* `name` - (String | Array[]) "name" to create UUID with
* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values
@@ -191,37 +265,29 @@ Returns `buffer`, if specified, otherwise the string form of the UUID
Example:
```javascript
-// Generate a unique namespace (typically you would do this once, outside of
-// your project, then bake this value into your code)
-const uuidv4 = require('uuid/v4');
-const MY_NAMESPACE = uuidv4(); //
+uuidv5('hello world', MY_NAMESPACE); // ⇨ '9f282611-e0fd-5650-8953-89c8e342da0b'
-// Generate a couple namespace uuids
-const uuidv5 = require('uuid/v5');
-uuidv5('hello', MY_NAMESPACE);
-uuidv5('world', MY_NAMESPACE);
```
-## Testing
+## Command Line
-```shell
-npm test
-```
+UUIDs can be generated from the command line with the `uuid` command.
-## Deprecated / Browser-ready API
+```shell
+$ uuid
+ddeb27fb-d9a0-4624-be4d-4615062daed4
-The API below is available for legacy purposes and is not expected to be available post-3.X
+$ uuid v1
+02d37060-d446-11e7-a9fa-7bdae751ebe1
+```
-```javascript
-const uuid = require('uuid');
+Type `uuid --help` for usage details
-uuid.v1(...); // alias of uuid/v1
-uuid.v4(...); // alias of uuid/v4
-uuid(...); // alias of uuid/v4
+## Testing
-// uuid.v5() is not supported in this API
+```shell
+npm test
```
-## Legacy node-uuid package
-
-The code for the legacy node-uuid package is available in the `node-uuid` branch.
+----
+Markdown generated from [README_js.md](README_js.md) by [![RunMD Logo](http://i.imgur.com/h0FVyzU.png)](https://github.com/broofa/runmd) \ No newline at end of file
diff --git a/deps/npm/node_modules/uuid/README_js.md b/deps/npm/node_modules/uuid/README_js.md
new file mode 100644
index 0000000000..f34453be40
--- /dev/null
+++ b/deps/npm/node_modules/uuid/README_js.md
@@ -0,0 +1,280 @@
+```javascript --hide
+runmd.onRequire = path => path.replace(/^uuid/, './');
+```
+
+# uuid [![Build Status](https://secure.travis-ci.org/kelektiv/node-uuid.svg?branch=master)](http://travis-ci.org/kelektiv/node-uuid) #
+
+Simple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS.
+
+Features:
+
+* Support for version 1, 3, 4 and 5 UUIDs
+* Cross-platform
+* Uses cryptographically-strong random number APIs (when available)
+* Zero-dependency, small footprint (... but not [this small](https://gist.github.com/982883))
+
+[**Deprecation warning**: The use of `require('uuid')` is deprecated and will not be
+supported after version 3.x of this module. Instead, use `require('uuid/[v1|v3|v4|v5]')` as shown in the examples below.]
+
+## Quickstart - CommonJS (Recommended)
+
+```shell
+npm install uuid
+```
+
+Then generate your uuid version of choice ...
+
+Version 1 (timestamp):
+
+```javascript --run v1
+const uuidv1 = require('uuid/v1');
+uuidv1(); // RESULT
+```
+
+Version 3 (namespace):
+
+```javascript --run v3
+const uuidv3 = require('uuid/v3');
+
+// ... using predefined DNS namespace (for domain names)
+uuidv3('hello.example.com', uuidv3.DNS); // RESULT
+
+// ... using predefined URL namespace (for, well, URLs)
+uuidv3('http://example.com/hello', uuidv3.URL); // RESULT
+
+// ... using a custom namespace
+//
+// Note: Custom namespaces should be a UUID string specific to your application!
+// E.g. the one here was generated using this modules `uuid` CLI.
+const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
+uuidv3('Hello, World!', MY_NAMESPACE); // RESULT
+```
+
+Version 4 (random):
+
+```javascript --run v4
+const uuidv4 = require('uuid/v4');
+uuidv4(); // RESULT
+```
+
+Version 5 (namespace):
+
+```javascript --run v5
+const uuidv5 = require('uuid/v5');
+
+// ... using predefined DNS namespace (for domain names)
+uuidv5('hello.example.com', uuidv5.DNS); // RESULT
+
+// ... using predefined URL namespace (for, well, URLs)
+uuidv5('http://example.com/hello', uuidv5.URL); // RESULT
+
+// ... using a custom namespace
+//
+// Note: Custom namespaces should be a UUID string specific to your application!
+// E.g. the one here was generated using this modules `uuid` CLI.
+const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
+uuidv5('Hello, World!', MY_NAMESPACE); // RESULT
+```
+
+## Quickstart - Browser-ready Versions
+
+Browser-ready versions of this module are available via [wzrd.in](https://github.com/jfhbrook/wzrd.in).
+
+For version 1 uuids:
+
+```html
+<script src="http://wzrd.in/standalone/uuid%2Fv1@latest"></script>
+<script>
+uuidv1(); // -> v1 UUID
+</script>
+```
+
+For version 3 uuids:
+
+```html
+<script src="http://wzrd.in/standalone/uuid%2Fv3@latest"></script>
+<script>
+uuidv3('http://example.com/hello', uuidv3.URL); // -> v3 UUID
+</script>
+```
+
+For version 4 uuids:
+
+```html
+<script src="http://wzrd.in/standalone/uuid%2Fv4@latest"></script>
+<script>
+uuidv4(); // -> v4 UUID
+</script>
+```
+
+For version 5 uuids:
+
+```html
+<script src="http://wzrd.in/standalone/uuid%2Fv5@latest"></script>
+<script>
+uuidv5('http://example.com/hello', uuidv5.URL); // -> v5 UUID
+</script>
+```
+
+## API
+
+### Version 1
+
+```javascript
+const uuidv1 = require('uuid/v1');
+
+// Incantations
+uuidv1();
+uuidv1(options);
+uuidv1(options, buffer, offset);
+```
+
+Generate and return a RFC4122 v1 (timestamp-based) UUID.
+
+* `options` - (Object) Optional uuid state to apply. Properties may include:
+
+ * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID. See note 1.
+ * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used.
+ * `msecs` - (Number) Time in milliseconds since unix Epoch. Default: The current time is used.
+ * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2.
+
+* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
+* `offset` - (Number) Starting index in `buffer` at which to begin writing.
+
+Returns `buffer`, if specified, otherwise the string form of the UUID
+
+Note: The <node> id is generated guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.)
+
+Example: Generate string UUID with fully-specified options
+
+```javascript --run v1
+const v1options = {
+ node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
+ clockseq: 0x1234,
+ msecs: new Date('2011-11-01').getTime(),
+ nsecs: 5678
+};
+uuidv1(v1options); // RESULT
+```
+
+Example: In-place generation of two binary IDs
+
+```javascript --run v1
+// Generate two ids in an array
+const arr = new Array();
+uuidv1(null, arr, 0); // RESULT
+uuidv1(null, arr, 16); // RESULT
+```
+
+### Version 3
+
+```javascript
+const uuidv3 = require('uuid/v3');
+
+// Incantations
+uuidv3(name, namespace);
+uuidv3(name, namespace, buffer);
+uuidv3(name, namespace, buffer, offset);
+```
+
+Generate and return a RFC4122 v3 UUID.
+
+* `name` - (String | Array[]) "name" to create UUID with
+* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values
+* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
+* `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0
+
+Returns `buffer`, if specified, otherwise the string form of the UUID
+
+Example:
+
+```javascript --run v3
+uuidv3('hello world', MY_NAMESPACE); // RESULT
+```
+
+### Version 4
+
+```javascript
+const uuidv4 = require('uuid/v4')
+
+// Incantations
+uuidv4();
+uuidv4(options);
+uuidv4(options, buffer, offset);
+```
+
+Generate and return a RFC4122 v4 UUID.
+
+* `options` - (Object) Optional uuid state to apply. Properties may include:
+ * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values
+ * `rng` - (Function) Random # generator function that returns an Array[16] of byte values (0-255)
+* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
+* `offset` - (Number) Starting index in `buffer` at which to begin writing.
+
+Returns `buffer`, if specified, otherwise the string form of the UUID
+
+Example: Generate string UUID with predefined `random` values
+
+```javascript --run v4
+const v4options = {
+ random: [
+ 0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea,
+ 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36
+ ]
+};
+uuidv4(v4options); // RESULT
+```
+
+Example: Generate two IDs in a single buffer
+
+```javascript --run v4
+const buffer = new Array();
+uuidv4(null, buffer, 0); // RESULT
+uuidv4(null, buffer, 16); // RESULT
+```
+
+### Version 5
+
+```javascript
+const uuidv5 = require('uuid/v5');
+
+// Incantations
+uuidv5(name, namespace);
+uuidv5(name, namespace, buffer);
+uuidv5(name, namespace, buffer, offset);
+```
+
+Generate and return a RFC4122 v5 UUID.
+
+* `name` - (String | Array[]) "name" to create UUID with
+* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values
+* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
+* `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0
+
+Returns `buffer`, if specified, otherwise the string form of the UUID
+
+Example:
+
+```javascript --run v5
+uuidv5('hello world', MY_NAMESPACE); // RESULT
+```
+
+## Command Line
+
+UUIDs can be generated from the command line with the `uuid` command.
+
+```shell
+$ uuid
+ddeb27fb-d9a0-4624-be4d-4615062daed4
+
+$ uuid v1
+02d37060-d446-11e7-a9fa-7bdae751ebe1
+```
+
+Type `uuid --help` for usage details
+
+## Testing
+
+```shell
+npm test
+```
diff --git a/deps/npm/node_modules/uuid/bin/uuid b/deps/npm/node_modules/uuid/bin/uuid
index 2fd26d7642..502626e60f 100755
--- a/deps/npm/node_modules/uuid/bin/uuid
+++ b/deps/npm/node_modules/uuid/bin/uuid
@@ -5,6 +5,7 @@ function usage() {
console.log('Usage:');
console.log(' uuid');
console.log(' uuid v1');
+ console.log(' uuid v3 <name> <namespace uuid>');
console.log(' uuid v4');
console.log(' uuid v5 <name> <namespace uuid>');
console.log(' uuid --help');
@@ -25,6 +26,20 @@ switch (version) {
console.log(uuidV1());
break;
+ case 'v3':
+ var uuidV3 = require('../v3');
+
+ var name = args.shift();
+ var namespace = args.shift();
+ assert(name != null, 'v3 name not specified');
+ assert(namespace != null, 'v3 namespace not specified');
+
+ if (namespace == 'URL') namespace = uuidV3.URL;
+ if (namespace == 'DNS') namespace = uuidV3.DNS;
+
+ console.log(uuidV3(name, namespace));
+ break;
+
case 'v4':
var uuidV4 = require('../v4');
console.log(uuidV4());
diff --git a/deps/npm/node_modules/uuid/lib/md5-browser.js b/deps/npm/node_modules/uuid/lib/md5-browser.js
new file mode 100644
index 0000000000..9b3b6c7eff
--- /dev/null
+++ b/deps/npm/node_modules/uuid/lib/md5-browser.js
@@ -0,0 +1,216 @@
+/*
+ * Browser-compatible JavaScript MD5
+ *
+ * Modification of JavaScript MD5
+ * https://github.com/blueimp/JavaScript-MD5
+ *
+ * Copyright 2011, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * https://opensource.org/licenses/MIT
+ *
+ * Based on
+ * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
+ * Digest Algorithm, as defined in RFC 1321.
+ * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for more info.
+ */
+
+'use strict';
+
+function md5(bytes) {
+ if (typeof(bytes) == 'string') {
+ var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape
+ bytes = new Array(msg.length);
+ for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);
+ }
+
+ return md5ToHexEncodedArray(
+ wordsToMd5(
+ bytesToWords(bytes)
+ , bytes.length * 8)
+ );
+}
+
+
+/*
+* Convert an array of little-endian words to an array of bytes
+*/
+function md5ToHexEncodedArray(input) {
+ var i;
+ var x;
+ var output = [];
+ var length32 = input.length * 32;
+ var hexTab = '0123456789abcdef';
+ var hex;
+
+ for (i = 0; i < length32; i += 8) {
+ x = (input[i >> 5] >>> (i % 32)) & 0xFF;
+
+ hex = parseInt(hexTab.charAt((x >>> 4) & 0x0F) + hexTab.charAt(x & 0x0F), 16);
+
+ output.push(hex);
+ }
+ return output;
+}
+
+/*
+* Calculate the MD5 of an array of little-endian words, and a bit length.
+*/
+function wordsToMd5(x, len) {
+ /* append padding */
+ x[len >> 5] |= 0x80 << (len % 32);
+ x[(((len + 64) >>> 9) << 4) + 14] = len;
+
+ var i;
+ var olda;
+ var oldb;
+ var oldc;
+ var oldd;
+ var a = 1732584193;
+ var b = -271733879;
+ var c = -1732584194;
+
+ var d = 271733878;
+
+ for (i = 0; i < x.length; i += 16) {
+ olda = a;
+ oldb = b;
+ oldc = c;
+ oldd = d;
+
+ a = md5ff(a, b, c, d, x[i], 7, -680876936);
+ d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
+ c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
+ b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
+ a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
+ d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
+ c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
+ b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
+ a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
+ d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
+ c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
+ b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
+ a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
+ d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
+ c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
+ b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
+
+ a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
+ d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
+ c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
+ b = md5gg(b, c, d, a, x[i], 20, -373897302);
+ a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
+ d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
+ c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
+ b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
+ a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
+ d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
+ c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
+ b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
+ a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
+ d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
+ c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
+ b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
+
+ a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
+ d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
+ c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
+ b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
+ a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
+ d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
+ c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
+ b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
+ a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
+ d = md5hh(d, a, b, c, x[i], 11, -358537222);
+ c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
+ b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
+ a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
+ d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
+ c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
+ b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
+
+ a = md5ii(a, b, c, d, x[i], 6, -198630844);
+ d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
+ c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
+ b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
+ a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
+ d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
+ c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
+ b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
+ a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
+ d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
+ c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
+ b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
+ a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
+ d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
+ c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
+ b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
+
+ a = safeAdd(a, olda);
+ b = safeAdd(b, oldb);
+ c = safeAdd(c, oldc);
+ d = safeAdd(d, oldd);
+ }
+ return [a, b, c, d];
+}
+
+/*
+* Convert an array bytes to an array of little-endian words
+* Characters >255 have their high-byte silently ignored.
+*/
+function bytesToWords(input) {
+ var i;
+ var output = [];
+ output[(input.length >> 2) - 1] = undefined;
+ for (i = 0; i < output.length; i += 1) {
+ output[i] = 0;
+ }
+ var length8 = input.length * 8;
+ for (i = 0; i < length8; i += 8) {
+ output[i >> 5] |= (input[(i / 8)] & 0xFF) << (i % 32);
+ }
+
+ return output;
+}
+
+/*
+* Add integers, wrapping at 2^32. This uses 16-bit operations internally
+* to work around bugs in some JS interpreters.
+*/
+function safeAdd(x, y) {
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF);
+ var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+ return (msw << 16) | (lsw & 0xFFFF);
+}
+
+/*
+* Bitwise rotate a 32-bit number to the left.
+*/
+function bitRotateLeft(num, cnt) {
+ return (num << cnt) | (num >>> (32 - cnt));
+}
+
+/*
+* These functions implement the four basic operations the algorithm uses.
+*/
+function md5cmn(q, a, b, x, s, t) {
+ return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
+}
+function md5ff(a, b, c, d, x, s, t) {
+ return md5cmn((b & c) | ((~b) & d), a, b, x, s, t);
+}
+function md5gg(a, b, c, d, x, s, t) {
+ return md5cmn((b & d) | (c & (~d)), a, b, x, s, t);
+}
+function md5hh(a, b, c, d, x, s, t) {
+ return md5cmn(b ^ c ^ d, a, b, x, s, t);
+}
+function md5ii(a, b, c, d, x, s, t) {
+ return md5cmn(c ^ (b | (~d)), a, b, x, s, t);
+}
+
+module.exports = md5;
diff --git a/deps/npm/node_modules/uuid/lib/md5.js b/deps/npm/node_modules/uuid/lib/md5.js
new file mode 100644
index 0000000000..7044b872f5
--- /dev/null
+++ b/deps/npm/node_modules/uuid/lib/md5.js
@@ -0,0 +1,25 @@
+'use strict';
+
+var crypto = require('crypto');
+
+function md5(bytes) {
+ if (typeof Buffer.from === 'function') {
+ // Modern Buffer API
+ if (Array.isArray(bytes)) {
+ bytes = Buffer.from(bytes);
+ } else if (typeof bytes === 'string') {
+ bytes = Buffer.from(bytes, 'utf8');
+ }
+ } else {
+ // Pre-v4 Buffer API
+ if (Array.isArray(bytes)) {
+ bytes = new Buffer(bytes);
+ } else if (typeof bytes === 'string') {
+ bytes = new Buffer(bytes, 'utf8');
+ }
+ }
+
+ return crypto.createHash('md5').update(bytes).digest();
+}
+
+module.exports = md5;
diff --git a/deps/npm/node_modules/uuid/lib/rng-browser.js b/deps/npm/node_modules/uuid/lib/rng-browser.js
index ac39b1289b..14d21170d5 100644
--- a/deps/npm/node_modules/uuid/lib/rng-browser.js
+++ b/deps/npm/node_modules/uuid/lib/rng-browser.js
@@ -2,25 +2,26 @@
// browser this is a little complicated due to unknown quality of Math.random()
// and inconsistent support for the `crypto` API. We do the best we can via
// feature-detection
-var rng;
-var crypto = global.crypto || global.msCrypto; // for IE 11
-if (crypto && crypto.getRandomValues) {
+// getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
+var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues.bind(crypto)) ||
+ (typeof(msCrypto) != 'undefined' && msCrypto.getRandomValues.bind(msCrypto));
+if (getRandomValues) {
// WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto
var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef
- rng = function whatwgRNG() {
- crypto.getRandomValues(rnds8);
+
+ module.exports = function whatwgRNG() {
+ getRandomValues(rnds8);
return rnds8;
};
-}
-
-if (!rng) {
+} else {
// Math.random()-based (RNG)
//
// If all else fails, use Math.random(). It's fast, but is of unspecified
// quality.
var rnds = new Array(16);
- rng = function() {
+
+ module.exports = function mathRNG() {
for (var i = 0, r; i < 16; i++) {
if ((i & 0x03) === 0) r = Math.random() * 0x100000000;
rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;
@@ -29,5 +30,3 @@ if (!rng) {
return rnds;
};
}
-
-module.exports = rng;
diff --git a/deps/npm/node_modules/uuid/lib/rng.js b/deps/npm/node_modules/uuid/lib/rng.js
index 4a0182fd68..58f0dc9cfb 100644
--- a/deps/npm/node_modules/uuid/lib/rng.js
+++ b/deps/npm/node_modules/uuid/lib/rng.js
@@ -1,10 +1,8 @@
// Unique ID creation requires a high quality random # generator. In node.js
// this is pretty straight-forward - we use the crypto API.
-var rb = require('crypto').randomBytes;
+var crypto = require('crypto');
-function rng() {
- return rb(16);
-}
-
-module.exports = rng;
+module.exports = function nodeRNG() {
+ return crypto.randomBytes(16);
+};
diff --git a/deps/npm/node_modules/uuid/lib/sha1-browser.js b/deps/npm/node_modules/uuid/lib/sha1-browser.js
index dbc3184208..5758ed75c9 100644
--- a/deps/npm/node_modules/uuid/lib/sha1-browser.js
+++ b/deps/npm/node_modules/uuid/lib/sha1-browser.js
@@ -54,7 +54,11 @@ function sha1(bytes) {
W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);
}
- var a = H[0], b = H[1], c = H[2], d = H[3], e = H[4];
+ var a = H[0];
+ var b = H[1];
+ var c = H[2];
+ var d = H[3];
+ var e = H[4];
for (var t=0; t<80; t++) {
var s = Math.floor(t/20);
diff --git a/deps/npm/node_modules/uuid/lib/sha1.js b/deps/npm/node_modules/uuid/lib/sha1.js
index e8771ce540..0b54b25072 100644
--- a/deps/npm/node_modules/uuid/lib/sha1.js
+++ b/deps/npm/node_modules/uuid/lib/sha1.js
@@ -3,19 +3,23 @@
var crypto = require('crypto');
function sha1(bytes) {
- // support modern Buffer API
- if (typeof Buffer.from === 'function') {
- if (Array.isArray(bytes)) bytes = Buffer.from(bytes);
- else if (typeof bytes === 'string') bytes = Buffer.from(bytes, 'utf8');
- }
+ if (typeof Buffer.from === 'function') {
+ // Modern Buffer API
+ if (Array.isArray(bytes)) {
+ bytes = Buffer.from(bytes);
+ } else if (typeof bytes === 'string') {
+ bytes = Buffer.from(bytes, 'utf8');
+ }
+ } else {
+ // Pre-v4 Buffer API
+ if (Array.isArray(bytes)) {
+ bytes = new Buffer(bytes);
+ } else if (typeof bytes === 'string') {
+ bytes = new Buffer(bytes, 'utf8');
+ }
+ }
- // support pre-v4 Buffer API
- else {
- if (Array.isArray(bytes)) bytes = new Buffer(bytes);
- else if (typeof bytes === 'string') bytes = new Buffer(bytes, 'utf8');
- }
-
- return crypto.createHash('sha1').update(bytes).digest();
+ return crypto.createHash('sha1').update(bytes).digest();
}
module.exports = sha1;
diff --git a/deps/npm/node_modules/uuid/lib/v35.js b/deps/npm/node_modules/uuid/lib/v35.js
new file mode 100644
index 0000000000..842c60ea2b
--- /dev/null
+++ b/deps/npm/node_modules/uuid/lib/v35.js
@@ -0,0 +1,53 @@
+var bytesToUuid = require('./bytesToUuid');
+
+function uuidToBytes(uuid) {
+ // Note: We assume we're being passed a valid uuid string
+ var bytes = [];
+ uuid.replace(/[a-fA-F0-9]{2}/g, function(hex) {
+ bytes.push(parseInt(hex, 16));
+ });
+
+ return bytes;
+}
+
+function stringToBytes(str) {
+ str = unescape(encodeURIComponent(str)); // UTF8 escape
+ var bytes = new Array(str.length);
+ for (var i = 0; i < str.length; i++) {
+ bytes[i] = str.charCodeAt(i);
+ }
+ return bytes;
+}
+
+module.exports = function(name, version, hashfunc) {
+ var generateUUID = function(value, namespace, buf, offset) {
+ var off = buf && offset || 0;
+
+ if (typeof(value) == 'string') value = stringToBytes(value);
+ if (typeof(namespace) == 'string') namespace = uuidToBytes(namespace);
+
+ if (!Array.isArray(value)) throw TypeError('value must be an array of bytes');
+ if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values');
+
+ // Per 4.3
+ var bytes = hashfunc(namespace.concat(value));
+ bytes[6] = (bytes[6] & 0x0f) | version;
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
+
+ if (buf) {
+ for (var idx = 0; idx < 16; ++idx) {
+ buf[off+idx] = bytes[idx];
+ }
+ }
+
+ return buf || bytesToUuid(bytes);
+ };
+
+ generateUUID.name = name;
+
+ // Pre-defined namespaces, per Appendix C
+ generateUUID.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
+ generateUUID.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
+
+ return generateUUID;
+};
diff --git a/deps/npm/node_modules/uuid/package.json b/deps/npm/node_modules/uuid/package.json
index 8aebdb2ed1..7ea5d38da2 100644
--- a/deps/npm/node_modules/uuid/package.json
+++ b/deps/npm/node_modules/uuid/package.json
@@ -1,36 +1,38 @@
{
- "_from": "uuid@3.1.0",
- "_id": "uuid@3.1.0",
+ "_from": "uuid@3.2.1",
+ "_id": "uuid@3.2.1",
"_inBundle": false,
- "_integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==",
+ "_integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==",
"_location": "/uuid",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
- "raw": "uuid@3.1.0",
+ "raw": "uuid@3.2.1",
"name": "uuid",
"escapedName": "uuid",
- "rawSpec": "3.1.0",
+ "rawSpec": "3.2.1",
"saveSpec": null,
- "fetchSpec": "3.1.0"
+ "fetchSpec": "3.2.1"
},
"_requiredBy": [
"#USER",
"/",
+ "/npm-registry-couchapp/couchapp/nano/cloudant-follow/request",
"/request",
"/tap/coveralls/request"
],
- "_resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
- "_shasum": "3dd3d3e790abc24d7b0d3a034ffababe28ebbc04",
- "_spec": "uuid@3.1.0",
+ "_resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
+ "_shasum": "12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14",
+ "_spec": "uuid@3.2.1",
"_where": "/Users/rebecca/code/npm",
"bin": {
"uuid": "./bin/uuid"
},
"browser": {
"./lib/rng.js": "./lib/rng-browser.js",
- "./lib/sha1.js": "./lib/sha1-browser.js"
+ "./lib/sha1.js": "./lib/sha1-browser.js",
+ "./lib/md5.js": "./lib/md5-browser.js"
},
"bugs": {
"url": "https://github.com/kelektiv/node-uuid/issues"
@@ -58,10 +60,14 @@
"email": "shtylman@gmail.com"
}
],
+ "dependencies": {},
"deprecated": false,
"description": "RFC4122 (v1, v4, and v5) UUIDs",
"devDependencies": {
- "mocha": "3.1.2"
+ "eslint": "4.5.0",
+ "mocha": "3.1.2",
+ "runmd": "1.0.1",
+ "standard-version": "4.2.0"
},
"homepage": "https://github.com/kelektiv/node-uuid#readme",
"keywords": [
@@ -76,7 +82,10 @@
"url": "git+https://github.com/kelektiv/node-uuid.git"
},
"scripts": {
+ "md": "runmd --watch --output=README.md README_js.md",
+ "prepare": "runmd --output=README.md README_js.md",
+ "release": "standard-version",
"test": "mocha test/test.js"
},
- "version": "3.1.0"
+ "version": "3.2.1"
}
diff --git a/deps/npm/node_modules/uuid/v1.js b/deps/npm/node_modules/uuid/v1.js
index 613f67e2e8..d84c0f4523 100644
--- a/deps/npm/node_modules/uuid/v1.js
+++ b/deps/npm/node_modules/uuid/v1.js
@@ -6,20 +6,12 @@ var bytesToUuid = require('./lib/bytesToUuid');
// Inspired by https://github.com/LiosK/UUID.js
// and http://docs.python.org/library/uuid.html
-// random #'s we need to init node and clockseq
-var _seedBytes = rng();
-
-// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
-var _nodeId = [
- _seedBytes[0] | 0x01,
- _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5]
-];
-
-// Per 4.2.2, randomize (14 bit) clockseq
-var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff;
+var _nodeId;
+var _clockseq;
// Previous uuid creation time
-var _lastMSecs = 0, _lastNSecs = 0;
+var _lastMSecs = 0;
+var _lastNSecs = 0;
// See https://github.com/broofa/node-uuid for API details
function v1(options, buf, offset) {
@@ -27,9 +19,27 @@ function v1(options, buf, offset) {
var b = buf || [];
options = options || {};
-
+ var node = options.node || _nodeId;
var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;
+ // node and clockseq need to be initialized to random values if they're not
+ // specified. We do this lazily to minimize issues related to insufficient
+ // system entropy. See #189
+ if (node == null || clockseq == null) {
+ var seedBytes = rng();
+ if (node == null) {
+ // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
+ node = _nodeId = [
+ seedBytes[0] | 0x01,
+ seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]
+ ];
+ }
+ if (clockseq == null) {
+ // Per 4.2.2, randomize (14 bit) clockseq
+ clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
+ }
+ }
+
// UUID timestamps are 100 nano-second units since the Gregorian epoch,
// (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
// time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
@@ -89,7 +99,6 @@ function v1(options, buf, offset) {
b[i++] = clockseq & 0xff;
// `node`
- var node = options.node || _nodeId;
for (var n = 0; n < 6; ++n) {
b[i + n] = node[n];
}
diff --git a/deps/npm/node_modules/uuid/v3.js b/deps/npm/node_modules/uuid/v3.js
new file mode 100644
index 0000000000..ee7e14c0f0
--- /dev/null
+++ b/deps/npm/node_modules/uuid/v3.js
@@ -0,0 +1,4 @@
+var v35 = require('./lib/v35.js');
+var md5 = require('./lib/md5');
+
+module.exports = v35('v3', 0x30, md5); \ No newline at end of file
diff --git a/deps/npm/node_modules/uuid/v4.js b/deps/npm/node_modules/uuid/v4.js
index 38b6f76a98..1f07be1c53 100644
--- a/deps/npm/node_modules/uuid/v4.js
+++ b/deps/npm/node_modules/uuid/v4.js
@@ -5,7 +5,7 @@ function v4(options, buf, offset) {
var i = buf && offset || 0;
if (typeof(options) == 'string') {
- buf = options == 'binary' ? new Array(16) : null;
+ buf = options === 'binary' ? new Array(16) : null;
options = null;
}
options = options || {};
diff --git a/deps/npm/node_modules/uuid/v5.js b/deps/npm/node_modules/uuid/v5.js
index 39cc35e7c8..4945baf385 100644
--- a/deps/npm/node_modules/uuid/v5.js
+++ b/deps/npm/node_modules/uuid/v5.js
@@ -1,42 +1,3 @@
-var sha1 = require('./lib/sha1-browser');
-var bytesToUuid = require('./lib/bytesToUuid');
-
-function uuidToBytes(uuid) {
- // Note: We assume we're being passed a valid uuid string
- var bytes = [];
- uuid.replace(/[a-fA-F0-9]{2}/g, function(hex) {
- bytes.push(parseInt(hex, 16));
- });
-
- return bytes;
-}
-
-function stringToBytes(str) {
- str = unescape(encodeURIComponent(str)); // UTF8 escape
- var bytes = new Array(str.length);
- for (var i = 0; i < str.length; i++) {
- bytes[i] = str.charCodeAt(i);
- }
- return bytes;
-}
-
-function v5(name, namespace, buf, offset) {
- if (typeof(name) == 'string') name = stringToBytes(name);
- if (typeof(namespace) == 'string') namespace = uuidToBytes(namespace);
-
- if (!Array.isArray(name)) throw TypeError('name must be an array of bytes');
- if (!Array.isArray(namespace) || namespace.length != 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values');
-
- // Per 4.3
- var bytes = sha1(namespace.concat(name));
- bytes[6] = (bytes[6] & 0x0f) | 0x50;
- bytes[8] = (bytes[8] & 0x3f) | 0x80;
-
- return buf || bytesToUuid(bytes);
-}
-
-// Pre-defined namespaces, per Appendix C
-v5.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
-v5.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
-
-module.exports = v5;
+var v35 = require('./lib/v35.js');
+var sha1 = require('./lib/sha1');
+module.exports = v35('v5', 0x50, sha1);