Comparing version
@@ -1,2 +0,21 @@ | ||
Copyright (c) 2010-2012 Robert Kieffer | ||
MIT License - http://opensource.org/licenses/mit-license.php | ||
The MIT License (MIT) | ||
Copyright (c) 2010-2012 Robert Kieffer | ||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
{ | ||
"name": "uuid", | ||
"version": "2.0.3", | ||
"description": "Rigorous implementation of RFC4122 (v1 and v4) UUIDs.", | ||
"version": "3.0.0", | ||
"description": "RFC4122 (v1 and v4) generator", | ||
"keywords": [ | ||
@@ -10,17 +10,9 @@ "uuid", | ||
], | ||
"author": "Robert Kieffer <robert@broofa.com>", | ||
"contributors": [ | ||
{ | ||
"name": "Christoph Tavan <dev@tavan.de>", | ||
"github": "https://github.com/ctavan" | ||
}, | ||
{ | ||
"name": "Vincent Voyer <vincent@zeroload.net>", | ||
"github": "https://github.com/vvo" | ||
} | ||
], | ||
"license": "MIT", | ||
"main": "./uuid.js", | ||
"bin": { | ||
"uuid": "./bin/uuid" | ||
}, | ||
"devDependencies": { | ||
"mocha": "1.8.0" | ||
"mocha": "3.1.2" | ||
}, | ||
@@ -31,18 +23,8 @@ "scripts": { | ||
"browser": { | ||
"./rng.js": "./rng-browser.js" | ||
"./lib/rng.js": "./lib/rng-browser.js" | ||
}, | ||
"repository": { | ||
"type": "git", | ||
"url": "https://github.com/defunctzombie/node-uuid.git" | ||
}, | ||
"testling": { | ||
"browsers": [ | ||
"ie6..latest", | ||
"firefox/3.6..latest", | ||
"chrome/22..latest", | ||
"safari/5.1..latest" | ||
], | ||
"harness": "mocha-tdd", | ||
"files": "test/*.js" | ||
"url": "https://github.com/kelektiv/node-uuid.git" | ||
} | ||
} | ||
} |
131
README.md
@@ -1,5 +0,3 @@ | ||
# uuid [](http://travis-ci.org/defunctzombie/node-uuid) # | ||
# uuid [](http://travis-ci.org/kelektiv/node-uuid) # | ||
[](https://ci.testling.com/defunctzombie/node-uuid) | ||
Simple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS. | ||
@@ -10,18 +8,9 @@ | ||
* Generate RFC4122 version 1 or version 4 UUIDs | ||
* Runs in node.js and all browsers. | ||
* Cryptographically strong random # generation on supporting platforms | ||
* 1185 bytes minified and gzip'ed (Want something smaller? Check this [crazy shit](https://gist.github.com/982883) out! ) | ||
* [Annotated source code](http://broofa.github.com/node-uuid/docs/uuid.html) | ||
* Runs in node.js and browsers | ||
* Cryptographically strong random number generation on supporting platforms | ||
* Small footprint (Want something smaller? [Check this out](https://gist.github.com/982883) out!) | ||
## Getting Started | ||
## Quickstart - nodejs | ||
Install it in your browser: | ||
```html | ||
<script src="uuid.js"></script> | ||
``` | ||
Or in node.js: | ||
``` | ||
```shell | ||
npm install uuid | ||
@@ -31,9 +20,19 @@ ``` | ||
```javascript | ||
var uuid = require('uuid'); | ||
const uuid = require('uuid'); | ||
// Generate a v4 (random) id | ||
uuid() // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1' | ||
// Generate a v1 (time-based) id | ||
uuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a' | ||
``` | ||
// Generate a v4 (random) id | ||
uuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1' | ||
## Quickstart - browser | ||
** Not recommende for production or even semi-production use. Use a bundling tool instead (i.e. webpack, browserify, rollup, etc)** | ||
[wzrd.in](https://github.com/jfhbrook/wzrd.in) will serve up any npm module after performing basic bundling and minification. | ||
```html | ||
<script src="https://wzrd.in/standalone/uuid@latest"></script> | ||
``` | ||
@@ -43,2 +42,6 @@ | ||
### uuid(...) | ||
Generate a V4 uuid. See uuid.v4 documentation below. | ||
### uuid.v1([`options` [, `buffer` [, `offset`]]]) | ||
@@ -79,3 +82,3 @@ | ||
// Generate two ids in an array | ||
var arr = new Array(32); // -> [] | ||
const arr = new Array(32); // -> [] | ||
uuid.v1(null, arr, 0); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15] | ||
@@ -118,3 +121,3 @@ uuid.v1(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] | ||
```javascript | ||
var buffer = new Array(32); // (or 'new Buffer' in node.js) | ||
const buffer = new Array(32); // (or 'new Buffer' in node.js) | ||
uuid.v4(null, buffer, 0); | ||
@@ -124,88 +127,10 @@ uuid.v4(null, buffer, 16); | ||
### uuid.parse(id[, buffer[, offset]]) | ||
### uuid.unparse(buffer[, offset]) | ||
Parse and unparse UUIDs | ||
* `id` - (String) UUID(-like) string | ||
* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. Default: A new Array or Buffer is used | ||
* `offset` - (Number) Starting index in `buffer` at which to begin writing. Default: 0 | ||
Example parsing and unparsing a UUID string | ||
```javascript | ||
var bytes = uuid.parse('797ff043-11eb-11e1-80d6-510998755d10'); // -> <Buffer 79 7f f0 43 11 eb 11 e1 80 d6 51 09 98 75 5d 10> | ||
var string = uuid.unparse(bytes); // -> '797ff043-11eb-11e1-80d6-510998755d10' | ||
``` | ||
### uuid.noConflict() | ||
(Browsers only) Set `uuid` property back to it's previous value. | ||
Returns the uuid object. | ||
Example: | ||
```javascript | ||
var myUuid = uuid.noConflict(); | ||
myUuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a' | ||
``` | ||
## Deprecated APIs | ||
Support for the following v1.2 APIs is available in v1.3, but is deprecated and will be removed in the next major version. | ||
### uuid([format [, buffer [, offset]]]) | ||
uuid() has become uuid.v4(), and the `format` argument is now implicit in the `buffer` argument. (i.e. if you specify a buffer, the format is assumed to be binary). | ||
## Testing | ||
In node.js | ||
``` | ||
> cd test | ||
> node test.js | ||
npm test | ||
``` | ||
In Browser | ||
## Legacy node-uuid package | ||
``` | ||
open test/test.html | ||
``` | ||
### Benchmarking | ||
Requires node.js | ||
``` | ||
cd benchmark/ | ||
npm install | ||
node benchmark.js | ||
``` | ||
For a more complete discussion of uuid performance, please see the `benchmark/README.md` file, and the [benchmark wiki](https://github.com/broofa/uuid/wiki/Benchmark) | ||
For browser performance [checkout the JSPerf tests](http://jsperf.com/node-uuid-performance). | ||
## Release notes | ||
### 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 | ||
The code for the legacy node-uuid package is available in the `node-uuid` branch. |
@@ -97,10 +97,1 @@ var assert = require('assert'); | ||
}); | ||
test('parse/unparse', function() { | ||
var id = '00112233445566778899aabbccddeeff'; | ||
assert(uuid.unparse(uuid.parse(id.substr(0,10))) == | ||
'00112233-4400-0000-0000-000000000000', 'Short parse'); | ||
assert(uuid.unparse(uuid.parse('(this is the uuid -> ' + id + id)) == | ||
'00112233-4455-6677-8899-aabbccddeeff', 'Dirty parse'); | ||
}); | ||
44
uuid.js
@@ -1,10 +0,5 @@ | ||
// uuid.js | ||
// | ||
// Copyright (c) 2010-2012 Robert Kieffer | ||
// MIT License - http://opensource.org/licenses/mit-license.php | ||
// Unique ID creation requires a high quality random # generator. We feature | ||
// detect to determine the best RNG source, normalizing to a function that | ||
// returns 128-bits of randomness, since that's what's usually required | ||
var _rng = require('./rng'); | ||
var _rng = require('./lib/rng'); | ||
@@ -14,3 +9,3 @@ // Maps for number <-> hex string conversion | ||
var _hexToByte = {}; | ||
for (var i = 0; i < 256; i++) { | ||
for (var i = 0; i < 256; ++i) { | ||
_byteToHex[i] = (i + 0x100).toString(16).substr(1); | ||
@@ -20,24 +15,5 @@ _hexToByte[_byteToHex[i]] = i; | ||
// **`parse()` - Parse a UUID into it's component bytes** | ||
function parse(s, buf, offset) { | ||
var i = (buf && offset) || 0, ii = 0; | ||
buf = buf || []; | ||
s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) { | ||
if (ii < 16) { // Don't overflow! | ||
buf[i + ii++] = _hexToByte[oct]; | ||
} | ||
}); | ||
// Zero out remaining bytes if string was short | ||
while (ii < 16) { | ||
buf[i + ii++] = 0; | ||
} | ||
return buf; | ||
} | ||
// **`unparse()` - Convert UUID byte array (ala parse()) into a string** | ||
function unparse(buf, offset) { | ||
var i = offset || 0, bth = _byteToHex; | ||
function buff_to_string(buf, offset) { | ||
var i = offset || 0; | ||
var bth = _byteToHex; | ||
return bth[buf[i++]] + bth[buf[i++]] + | ||
@@ -142,7 +118,7 @@ bth[buf[i++]] + bth[buf[i++]] + '-' + | ||
var node = options.node || _nodeId; | ||
for (var n = 0; n < 6; n++) { | ||
for (var n = 0; n < 6; ++n) { | ||
b[i + n] = node[n]; | ||
} | ||
return buf ? buf : unparse(b); | ||
return buf ? buf : buff_to_string(b); | ||
} | ||
@@ -171,3 +147,3 @@ | ||
if (buf) { | ||
for (var ii = 0; ii < 16; ii++) { | ||
for (var ii = 0; ii < 16; ++ii) { | ||
buf[i + ii] = rnds[ii]; | ||
@@ -177,3 +153,3 @@ } | ||
return buf || unparse(rnds); | ||
return buf || buff_to_string(rnds); | ||
} | ||
@@ -185,5 +161,3 @@ | ||
uuid.v4 = v4; | ||
uuid.parse = parse; | ||
uuid.unparse = unparse; | ||
module.exports = uuid; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
No contributors or author data
MaintenancePackage does not specify a list of contributors or an author in package.json.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
0
-100%15805
-52.36%13
-27.78%236
-49.36%2
100%131
-36.41%