vulcan 0.2.5 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +1 -80
- data/lib/vulcan/cli.rb +12 -33
- data/lib/vulcan/version.rb +1 -1
- data/server/bin/make +3 -1
- data/server/lib/spawner.js +4 -9
- data/server/node_modules/connect-form/node_modules/formidable/Readme.md +2 -13
- data/server/node_modules/connect-form/node_modules/formidable/lib/incoming_form.js +7 -19
- data/server/node_modules/connect-form/node_modules/formidable/lib/multipart_parser.js +1 -12
- data/server/node_modules/connect-form/node_modules/formidable/package.json +1 -1
- data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http +10 -0
- data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http +9 -0
- data/server/node_modules/connect-form/node_modules/formidable/test/legacy/simple/test-multipart-parser.js +1 -1
- data/server/node_modules/cradle/lib/cradle.js +1 -0
- data/server/node_modules/cradle/node_modules/vows/LICENSE +20 -0
- data/server/node_modules/cradle/node_modules/vows/Makefile +7 -0
- data/server/node_modules/cradle/node_modules/vows/README.md +39 -0
- data/server/node_modules/cradle/node_modules/vows/bin/vows +515 -0
- data/server/node_modules/cradle/node_modules/vows/lib/assert/error.js +27 -0
- data/server/node_modules/cradle/node_modules/vows/lib/assert/macros.js +215 -0
- data/server/node_modules/cradle/node_modules/vows/lib/assert/utils.js +77 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows.js +193 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/console.js +131 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/context.js +55 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/file.js +29 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/fragments/coverage-foot.html +2 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/fragments/coverage-head.html +61 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-html.js +54 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-json.js +54 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-plain.js +38 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/extras.js +28 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/dot-matrix.js +67 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/json.js +16 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/silent.js +8 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/spec.js +44 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/watch.js +39 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/xunit.js +90 -0
- data/server/node_modules/cradle/node_modules/vows/lib/vows/suite.js +319 -0
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/LICENSE +20 -0
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/Makefile +4 -0
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/README.md +72 -0
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/lib/eyes.js +233 -0
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/package.json +14 -0
- data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/test/eyes-test.js +55 -0
- data/server/node_modules/cradle/node_modules/vows/package.json +14 -0
- data/server/node_modules/cradle/node_modules/vows/test/assert-test.js +135 -0
- data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/failing.js +18 -0
- data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/log.js +18 -0
- data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/passing.js +17 -0
- data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/stderr.js +18 -0
- data/server/node_modules/cradle/node_modules/vows/test/isolate-test.js +140 -0
- data/server/node_modules/cradle/node_modules/vows/test/testInherit.js +133 -0
- data/server/node_modules/cradle/node_modules/vows/test/vows-error-test.js +51 -0
- data/server/node_modules/cradle/node_modules/vows/test/vows-test.js +374 -0
- data/server/node_modules/cradle/package.json +3 -3
- data/server/node_modules/cradle/test/cache-test.js +7 -6
- data/server/node_modules/cradle/test/cradle-test.js +5 -4
- data/server/node_modules/cradle/test/response-test.js +6 -5
- data/server/node_modules/express/History.md +1 -53
- data/server/node_modules/express/Makefile +9 -3
- data/server/node_modules/express/Readme.md +1 -3
- data/server/node_modules/express/bin/express +66 -65
- data/server/node_modules/express/lib/express.js +1 -1
- data/server/node_modules/express/lib/request.js +9 -23
- data/server/node_modules/express/lib/response.js +2 -3
- data/server/node_modules/express/lib/utils.js +0 -13
- data/server/node_modules/express/lib/view.js +16 -19
- data/server/node_modules/express/lib/view/view.js +1 -2
- data/server/node_modules/express/node_modules/connect/lib/connect.js +1 -1
- data/server/node_modules/express/node_modules/connect/lib/http.js +0 -2
- data/server/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js +31 -135
- data/server/node_modules/express/node_modules/connect/lib/middleware/limit.js +1 -5
- data/server/node_modules/express/node_modules/connect/lib/middleware/session.js +2 -2
- data/server/node_modules/express/node_modules/connect/lib/middleware/static.js +21 -26
- data/server/node_modules/express/node_modules/connect/lib/middleware/staticCache.js +38 -91
- data/server/node_modules/express/node_modules/connect/lib/middleware/vhost.js +1 -1
- data/server/node_modules/express/node_modules/connect/lib/utils.js +4 -11
- data/server/node_modules/express/node_modules/connect/package.json +6 -7
- data/server/node_modules/express/node_modules/connect/test.js +31 -44
- data/server/node_modules/express/node_modules/mime/index.js +1 -0
- data/server/node_modules/express/node_modules/mime/mime.js +3 -3
- data/server/node_modules/express/node_modules/mime/{types/mime.types → mime.types} +0 -0
- data/server/node_modules/express/node_modules/mime/{types/node.types → node.types} +0 -17
- data/server/node_modules/express/node_modules/mime/package.json +10 -21
- data/server/node_modules/express/node_modules/mime/test.js +3 -2
- data/server/node_modules/express/node_modules/qs/History.md +0 -11
- data/server/node_modules/express/node_modules/qs/Makefile +3 -1
- data/server/node_modules/express/node_modules/qs/Readme.md +4 -2
- data/server/node_modules/express/node_modules/qs/lib/querystring.js +74 -100
- data/server/node_modules/express/node_modules/qs/package.json +2 -9
- data/server/node_modules/express/node_modules/qs/support/expresso/History.md +128 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/Makefile +53 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/Readme.md +61 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/bin/expresso +856 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/docs/api.html +1080 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/docs/index.html +377 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/docs/index.md +290 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/docs/layout/foot.html +3 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/docs/layout/head.html +42 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/lib/bar.js +4 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/lib/foo.js +16 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/package.json +12 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/test/assert.test.js +91 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/test/async.test.js +12 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/test/bar.test.js +13 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/test/foo.test.js +14 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/test/http.test.js +146 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/test/serial/async.test.js +39 -0
- data/server/node_modules/express/node_modules/qs/support/expresso/test/serial/http.test.js +48 -0
- data/server/node_modules/express/node_modules/qs/support/should/History.md +22 -0
- data/server/node_modules/express/node_modules/qs/support/should/Makefile +6 -0
- data/server/node_modules/express/node_modules/qs/support/should/Readme.md +248 -0
- data/server/node_modules/express/node_modules/qs/support/should/examples/runner.js +53 -0
- data/server/node_modules/express/node_modules/qs/support/should/index.js +2 -0
- data/server/node_modules/express/node_modules/qs/support/should/lib/eql.js +91 -0
- data/server/node_modules/express/node_modules/qs/support/should/lib/should.js +548 -0
- data/server/node_modules/express/node_modules/qs/support/should/package.json +8 -0
- data/server/node_modules/express/node_modules/qs/support/should/test/should.test.js +358 -0
- data/server/node_modules/express/node_modules/qs/test/{parse.js → parse.test.js} +2 -1
- data/server/node_modules/express/node_modules/qs/test/{stringify.js → stringify.test.js} +0 -0
- data/server/node_modules/express/package.json +8 -9
- data/server/node_modules/node-uuid/README.md +67 -166
- data/server/node_modules/node-uuid/package.json +3 -5
- data/server/node_modules/node-uuid/{benchmark → test}/benchmark-native.c +0 -0
- data/server/node_modules/node-uuid/test/benchmark.js +27 -0
- data/server/node_modules/node-uuid/test/test.html +0 -3
- data/server/node_modules/node-uuid/test/test.js +57 -214
- data/server/node_modules/node-uuid/uuid.js +56 -225
- data/server/node_modules/restler/README.md +7 -20
- data/server/node_modules/restler/bin/restler +1 -1
- data/server/node_modules/restler/lib/multipartform.js +8 -9
- data/server/node_modules/restler/lib/restler.js +22 -64
- data/server/node_modules/restler/package.json +2 -2
- data/server/node_modules/restler/test/restler.js +2 -22
- data/server/node_modules/restler/test/test_helper.js +1 -20
- data/server/package.json +10 -10
- data/server/web.js +7 -30
- metadata +96 -89
- data/server/node_modules/connect-form/node_modules/formidable/test/fixture/file/plain.txt +0 -1
- data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/no-filename/generic.http +0 -13
- data/server/node_modules/connect-form/node_modules/formidable/test/fixture/js/no-filename.js +0 -3
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/Makefile +0 -14
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/Readme.md +0 -286
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/TODO +0 -3
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/benchmark/bench-multipart-parser.js +0 -70
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/example/post.js +0 -43
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/example/upload.js +0 -48
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/index.js +0 -1
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/file.js +0 -61
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js +0 -377
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/index.js +0 -3
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/multipart_parser.js +0 -312
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/querystring_parser.js +0 -25
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/util.js +0 -6
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/package.json +0 -22
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/common.js +0 -19
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/file/funkyfilename.txt +0 -1
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/file/plain.txt +0 -1
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/no-filename/generic.http +0 -13
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/info.md +0 -3
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http +0 -26
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-firefox-3.6.http +0 -24
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-safari-5.http +0 -23
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http +0 -24
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-7.http +0 -22
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-8.http +0 -22
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-safari-5.http +0 -22
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/js/no-filename.js +0 -3
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/js/special-chars-in-filename.js +0 -21
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/multi_video.upload +0 -0
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/multipart.js +0 -72
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/integration/test-fixtures.js +0 -89
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/common.js +0 -24
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/integration/test-multipart-parser.js +0 -80
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-file.js +0 -104
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-incoming-form.js +0 -715
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-multipart-parser.js +0 -50
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-querystring-parser.js +0 -45
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/system/test-multi-video-upload.js +0 -72
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/run.js +0 -2
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/unit/test-incoming-form.js +0 -63
- data/server/node_modules/express/node_modules/connect/node_modules/formidable/tool/record.js +0 -47
- data/server/node_modules/express/node_modules/mkdirp/LICENSE +0 -21
- data/server/node_modules/express/node_modules/mkdirp/README.markdown +0 -21
- data/server/node_modules/express/node_modules/mkdirp/examples/pow.js +0 -6
- data/server/node_modules/express/node_modules/mkdirp/examples/pow.js.orig +0 -6
- data/server/node_modules/express/node_modules/mkdirp/examples/pow.js.rej +0 -19
- data/server/node_modules/express/node_modules/mkdirp/index.js +0 -20
- data/server/node_modules/express/node_modules/mkdirp/package.json +0 -23
- data/server/node_modules/express/node_modules/mkdirp/test/mkdirp.js +0 -28
- data/server/node_modules/express/node_modules/mkdirp/test/race.js +0 -41
- data/server/node_modules/express/node_modules/mkdirp/test/rel.js +0 -32
- data/server/node_modules/express/node_modules/qs/test/mocha.opts +0 -2
- data/server/node_modules/express/testing/foo/app.js +0 -35
- data/server/node_modules/express/testing/foo/package.json +0 -9
- data/server/node_modules/express/testing/foo/public/stylesheets/style.css +0 -8
- data/server/node_modules/express/testing/foo/routes/index.js +0 -10
- data/server/node_modules/express/testing/foo/views/index.jade +0 -2
- data/server/node_modules/express/testing/foo/views/layout.jade +0 -6
- data/server/node_modules/express/testing/index.js +0 -43
- data/server/node_modules/express/testing/public/test.txt +0 -2971
- data/server/node_modules/express/testing/views/page.html +0 -1
- data/server/node_modules/express/testing/views/page.jade +0 -3
- data/server/node_modules/express/testing/views/test.md +0 -1
- data/server/node_modules/express/testing/views/user/index.jade +0 -1
- data/server/node_modules/express/testing/views/user/list.jade +0 -1
- data/server/node_modules/node-uuid/benchmark/README.md +0 -53
- data/server/node_modules/node-uuid/benchmark/bench.gnu +0 -174
- data/server/node_modules/node-uuid/benchmark/bench.sh +0 -34
- data/server/node_modules/node-uuid/benchmark/benchmark.js +0 -84
- data/server/node_modules/node-uuid/test/benchmark-native +0 -0
- data/server/node_modules/node-uuid/test/compare_v1.js +0 -63
@@ -1,14 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name" : "node-uuid",
|
3
|
-
"description" : "
|
3
|
+
"description" : "Simple, fast generation of RFC4122(v4) UUIDs.",
|
4
4
|
"url" : "http://github.com/broofa/node-uuid",
|
5
5
|
"keywords" : ["uuid", "guid", "rfc4122"],
|
6
6
|
"author" : "Robert Kieffer <robert@broofa.com>",
|
7
|
-
"contributors" : [
|
8
|
-
{"name": "Christoph Tavan <dev@tavan.de>", "github": "https://github.com/ctavan"}
|
9
|
-
],
|
7
|
+
"contributors" : [],
|
10
8
|
"dependencies" : [],
|
11
9
|
"lib" : ".",
|
12
10
|
"main" : "./uuid.js",
|
13
|
-
"version" : "1.
|
11
|
+
"version" : "1.2.0"
|
14
12
|
}
|
File without changes
|
@@ -0,0 +1,27 @@
|
|
1
|
+
var nodeuuid = require('../uuid'),
|
2
|
+
uuidjs = require('uuid').generate,
|
3
|
+
N = 5e5;
|
4
|
+
|
5
|
+
function rate(msg, t) {
|
6
|
+
console.log(msg + ': ' +
|
7
|
+
(N / (Date.now() - t) * 1e3 | 0) +
|
8
|
+
' uuids/second');
|
9
|
+
}
|
10
|
+
|
11
|
+
// node-uuid - string form
|
12
|
+
for (var i = 0, t = Date.now(); i < N; i++) nodeuuid();
|
13
|
+
rate('nodeuuid()', t);
|
14
|
+
|
15
|
+
for (var i = 0, t = Date.now(); i < N; i++) nodeuuid('binary');
|
16
|
+
rate('nodeuuid(\'binary\')', t);
|
17
|
+
|
18
|
+
var buffer = new nodeuuid.BufferClass(16);
|
19
|
+
for (var i = 0, t = Date.now(); i < N; i++) nodeuuid('binary', buffer);
|
20
|
+
rate('nodeuuid(\'binary\', buffer)', t);
|
21
|
+
|
22
|
+
// node-uuid - string form
|
23
|
+
for (var i = 0, t = Date.now(); i < N; i++) uuidjs();
|
24
|
+
rate('uuidjs()', t);
|
25
|
+
|
26
|
+
for (var i = 0, t = Date.now(); i < N; i++) uuidjs('binary');
|
27
|
+
rate('uuidjs(\'binary\')', t);
|
@@ -1,240 +1,83 @@
|
|
1
|
-
if (
|
2
|
-
// node.js
|
1
|
+
if (typeof(uuid) == 'undefined') {
|
3
2
|
uuid = require('../uuid');
|
4
3
|
}
|
5
4
|
|
6
|
-
|
7
|
-
|
8
|
-
//
|
9
|
-
|
10
|
-
function _log(msg, type) {
|
11
|
-
type = type || 'log';
|
5
|
+
var UUID_FORMAT = /[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89a-fAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}/;
|
6
|
+
var N = 1e5;
|
12
7
|
|
8
|
+
function log(msg) {
|
13
9
|
if (typeof(document) != 'undefined') {
|
14
|
-
document.write('<div
|
10
|
+
document.write('<div>' + msg + '</div>');
|
15
11
|
}
|
16
12
|
if (typeof(console) != 'undefined') {
|
17
|
-
|
18
|
-
log: '\033[30m',
|
19
|
-
warn: '\033[33m',
|
20
|
-
error: '\033[31m'
|
21
|
-
}
|
22
|
-
console[type](color[type] + msg + color.log);
|
23
|
-
}
|
24
|
-
}
|
25
|
-
|
26
|
-
function log(msg) {_log(msg, 'log');}
|
27
|
-
function warn(msg) {_log(msg, 'warn');}
|
28
|
-
function error(msg) {_log(msg, 'error');}
|
29
|
-
|
30
|
-
function assert(res, msg) {
|
31
|
-
if (!res) {
|
32
|
-
error('FAIL: ' + msg);
|
33
|
-
} else {
|
34
|
-
log('Pass: ' + msg);
|
13
|
+
console.log(msg);
|
35
14
|
}
|
36
15
|
}
|
37
16
|
|
38
|
-
|
39
|
-
|
40
|
-
//
|
41
|
-
|
42
|
-
// Verify ordering of v1 ids created with explicit times
|
43
|
-
var TIME = 1321644961388; // 2011-11-18 11:36:01.388-08:00
|
44
|
-
|
45
|
-
function compare(name, ids) {
|
46
|
-
ids = ids.map(function(id) {
|
47
|
-
return id.split('-').reverse().join('-');
|
48
|
-
}).sort();
|
49
|
-
var sorted = ([].concat(ids)).sort();
|
50
|
-
|
51
|
-
assert(sorted.toString() == ids.toString(), name + ' have expected order');
|
52
|
-
}
|
53
|
-
|
54
|
-
// Verify ordering of v1 ids created using default behavior
|
55
|
-
compare('uuids with current time', [
|
56
|
-
uuid.v1(),
|
57
|
-
uuid.v1(),
|
58
|
-
uuid.v1(),
|
59
|
-
uuid.v1(),
|
60
|
-
uuid.v1()
|
61
|
-
]);
|
62
|
-
|
63
|
-
// Verify ordering of v1 ids created with explicit times
|
64
|
-
compare('uuids with time option', [
|
65
|
-
uuid.v1({msecs: TIME - 10*3600*1000}),
|
66
|
-
uuid.v1({msecs: TIME - 1}),
|
67
|
-
uuid.v1({msecs: TIME}),
|
68
|
-
uuid.v1({msecs: TIME + 1}),
|
69
|
-
uuid.v1({msecs: TIME + 28*24*3600*1000}),
|
70
|
-
]);
|
71
|
-
|
72
|
-
assert(
|
73
|
-
uuid.v1({msecs: TIME}) != uuid.v1({msecs: TIME}),
|
74
|
-
'IDs created at same msec are different'
|
75
|
-
);
|
76
|
-
|
77
|
-
// Verify throw if too many ids created
|
78
|
-
var thrown = false;
|
79
|
-
try {
|
80
|
-
uuid.v1({msecs: TIME, nsecs: 10000});
|
81
|
-
} catch (e) {
|
82
|
-
thrown = true;
|
17
|
+
function rate(msg, t) {
|
18
|
+
log(msg + ': ' + (N / (Date.now() - t) * 1e3 | 0) + ' uuids/second');
|
83
19
|
}
|
84
|
-
assert(thrown, 'Exception thrown when > 10K ids created in 1 ms');
|
85
|
-
|
86
|
-
// Verify clock regression bumps clockseq
|
87
|
-
var uidt = uuid.v1({msecs: TIME});
|
88
|
-
var uidtb = uuid.v1({msecs: TIME - 1});
|
89
|
-
assert(
|
90
|
-
parseInt(uidtb.split('-')[3], 16) - parseInt(uidt.split('-')[3], 16) === 1,
|
91
|
-
'Clock regression by msec increments the clockseq'
|
92
|
-
);
|
93
|
-
|
94
|
-
// Verify clock regression bumps clockseq
|
95
|
-
var uidtn = uuid.v1({msecs: TIME, nsecs: 10});
|
96
|
-
var uidtnb = uuid.v1({msecs: TIME, nsecs: 9});
|
97
|
-
assert(
|
98
|
-
parseInt(uidtnb.split('-')[3], 16) - parseInt(uidtn.split('-')[3], 16) === 1,
|
99
|
-
'Clock regression by nsec increments the clockseq'
|
100
|
-
);
|
101
|
-
|
102
|
-
// Verify explicit options produce expected id
|
103
|
-
var id = uuid.v1({
|
104
|
-
msecs: 1321651533573,
|
105
|
-
nsecs: 5432,
|
106
|
-
clockseq: 0x385c,
|
107
|
-
node: [ 0x61, 0xcd, 0x3c, 0xbb, 0x32, 0x10 ]
|
108
|
-
});
|
109
|
-
assert(id == 'd9428888-122b-11e1-b85c-61cd3cbb3210', 'Explicit options produce expected id');
|
110
20
|
|
111
|
-
// Verify adjacent ids across a msec boundary are 1 time unit apart
|
112
|
-
var u0 = uuid.v1({msecs: TIME, nsecs: 9999});
|
113
|
-
var u1 = uuid.v1({msecs: TIME + 1, nsecs: 0});
|
114
|
-
|
115
|
-
var before = u0.split('-')[0], after = u1.split('-')[0];
|
116
|
-
var dt = parseInt(after, 16) - parseInt(before, 16);
|
117
|
-
assert(dt === 1, 'Ids spanning 1ms boundary are 100ns apart');
|
118
|
-
|
119
|
-
//
|
120
|
-
// Test parse/unparse
|
121
|
-
//
|
122
|
-
|
123
|
-
id = '00112233445566778899aabbccddeeff';
|
124
|
-
assert(uuid.unparse(uuid.parse(id.substr(0,10))) ==
|
125
|
-
'00112233-4400-0000-0000-000000000000', 'Short parse');
|
126
|
-
assert(uuid.unparse(uuid.parse('(this is the uuid -> ' + id + id)) ==
|
127
|
-
'00112233-4455-6677-8899-aabbccddeeff', 'Dirty parse');
|
128
|
-
|
129
|
-
//
|
130
21
|
// Perf tests
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
22
|
+
log('- - - Performance Data - - -');
|
23
|
+
for (var i = 0, t = Date.now(); i < N; i++) uuid();
|
24
|
+
rate('uuid()', t);
|
25
|
+
for (var i = 0, t = Date.now(); i < N; i++) uuid('binary');
|
26
|
+
rate('uuid(\'binary\')', t);
|
27
|
+
var buf = new uuid.BufferClass(16);
|
28
|
+
for (var i = 0, t = Date.now(); i < N; i++) uuid('binary', buf);
|
29
|
+
rate('uuid(\'binary\', buffer)', t);
|
30
|
+
|
31
|
+
var counts = {}, max = 0;
|
32
|
+
|
33
|
+
var b = new uuid.BufferClass(16);
|
34
|
+
for (var i = 0; i < N; i++) {
|
35
|
+
id = uuid();
|
36
|
+
if (!UUID_FORMAT.test(id)) {
|
37
|
+
throw Error(id + ' is not a valid UUID string');
|
38
|
+
}
|
137
39
|
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
};
|
40
|
+
if (id != uuid.unparse(uuid.parse(id))) {
|
41
|
+
throw Error(id + ' does not parse/unparse');
|
42
|
+
}
|
142
43
|
|
143
|
-
|
44
|
+
// Count digits for our randomness check
|
45
|
+
var digits = id.replace(/-/g, '').split('');
|
46
|
+
for (var j = digits.length-1; j >= 0; j--) {
|
47
|
+
var c = digits[j];
|
48
|
+
max = Math.max(max, counts[c] = (counts[c] || 0) + 1);
|
49
|
+
}
|
50
|
+
}
|
144
51
|
|
145
52
|
// Get %'age an actual value differs from the ideal value
|
146
53
|
function divergence(actual, ideal) {
|
147
54
|
return Math.round(100*100*(actual - ideal)/ideal)/100;
|
148
55
|
}
|
149
56
|
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
var
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
if (id != uuid.unparse(uuid.parse(id))) {
|
167
|
-
assert(fail, id + ' is not a valid id');
|
168
|
-
}
|
169
|
-
|
170
|
-
// Count digits for our randomness check
|
171
|
-
if (version == 'v4') {
|
172
|
-
var digits = id.replace(/-/g, '').split('');
|
173
|
-
for (var j = digits.length-1; j >= 0; j--) {
|
174
|
-
var c = digits[j];
|
175
|
-
max = Math.max(max, counts[c] = (counts[c] || 0) + 1);
|
176
|
-
}
|
177
|
-
}
|
178
|
-
}
|
179
|
-
|
180
|
-
// Check randomness for v4 UUIDs
|
181
|
-
if (version == 'v4') {
|
182
|
-
// Limit that we get worried about randomness. (Purely empirical choice, this!)
|
183
|
-
var limit = 2*100*Math.sqrt(1/N);
|
184
|
-
|
185
|
-
log('\nChecking v4 randomness. Distribution of Hex Digits (% deviation from ideal)');
|
186
|
-
|
187
|
-
for (var i = 0; i < 16; i++) {
|
188
|
-
var c = i.toString(16);
|
189
|
-
var bar = '', n = counts[c], p = Math.round(n/max*100|0);
|
190
|
-
|
191
|
-
// 1-3,5-8, and D-F: 1:16 odds over 30 digits
|
192
|
-
var ideal = N*30/16;
|
193
|
-
if (i == 4) {
|
194
|
-
// 4: 1:1 odds on 1 digit, plus 1:16 odds on 30 digits
|
195
|
-
ideal = N*(1 + 30/16);
|
196
|
-
} else if (i >= 8 && i <= 11) {
|
197
|
-
// 8-B: 1:4 odds on 1 digit, plus 1:16 odds on 30 digits
|
198
|
-
ideal = N*(1/4 + 30/16);
|
199
|
-
} else {
|
200
|
-
// Otherwise: 1:16 odds on 30 digits
|
201
|
-
ideal = N*30/16;
|
202
|
-
}
|
203
|
-
var d = divergence(n, ideal);
|
204
|
-
|
205
|
-
// Draw bar using UTF squares (just for grins)
|
206
|
-
var s = n/max*50 | 0;
|
207
|
-
while (s--) bar += '=';
|
208
|
-
|
209
|
-
assert(Math.abs(d) < limit, c + ' |' + bar + '| ' + counts[c] + ' (' + d + '% < ' + limit + '%)');
|
210
|
-
}
|
211
|
-
}
|
212
|
-
}
|
213
|
-
|
214
|
-
// Perf tests
|
215
|
-
for (var version in generators) {
|
216
|
-
log('\nPerformance testing ' + version + ' UUIDs');
|
217
|
-
var generator = generators[version];
|
218
|
-
var buf = new uuid.BufferClass(16);
|
219
|
-
|
220
|
-
if (version == 'v4') {
|
221
|
-
['mathRNG', 'whatwgRNG', 'nodeRNG'].forEach(function(rng) {
|
222
|
-
if (uuid[rng]) {
|
223
|
-
var options = {rng: uuid[rng]};
|
224
|
-
for (var i = 0, t = Date.now(); i < N; i++) generator(options);
|
225
|
-
rate('uuid.' + version + '() with ' + rng, t);
|
226
|
-
} else {
|
227
|
-
log('uuid.' + version + '() with ' + rng + ': not defined');
|
228
|
-
}
|
229
|
-
});
|
57
|
+
log('<br />- - - Distribution of Hex Digits (% deviation from ideal) - - -');
|
58
|
+
|
59
|
+
// Check randomness
|
60
|
+
for (var i = 0; i < 16; i++) {
|
61
|
+
var c = i.toString(16);
|
62
|
+
var bar = '', n = counts[c], p = Math.round(n/max*100|0);
|
63
|
+
|
64
|
+
// 1-3,5-8, and D-F: 1:16 odds over 30 digits
|
65
|
+
var ideal = N*30/16;
|
66
|
+
if (i == 4) {
|
67
|
+
// 4: 1:1 odds on 1 digit, plus 1:16 odds on 30 digits
|
68
|
+
ideal = N*(1 + 30/16);
|
69
|
+
} else if (i >= 8 && i <= 11) {
|
70
|
+
// 8-B: 1:4 odds on 1 digit, plus 1:16 odds on 30 digits
|
71
|
+
ideal = N*(1/4 + 30/16);
|
230
72
|
} else {
|
231
|
-
|
232
|
-
|
73
|
+
// Otherwise: 1:16 odds on 30 digits
|
74
|
+
ideal = N*30/16;
|
233
75
|
}
|
76
|
+
var d = divergence(n, ideal);
|
234
77
|
|
235
|
-
|
236
|
-
|
78
|
+
// Draw bar using UTF squares (just for grins)
|
79
|
+
var s = n/max*50 | 0;
|
80
|
+
while (s--) bar += '=';
|
237
81
|
|
238
|
-
|
239
|
-
rate('uuid.' + version + '(\'binary\', buffer)', t);
|
82
|
+
log(c + ' |' + bar + '| ' + counts[c] + ' (' + d + '%)');
|
240
83
|
}
|
@@ -1,249 +1,80 @@
|
|
1
|
-
// node-uuid/uuid.js
|
2
|
-
//
|
3
|
-
// Copyright (c) 2010 Robert Kieffer
|
4
|
-
// Dual licensed under the MIT and GPL licenses.
|
5
|
-
// Documentation and details at https://github.com/broofa/node-uuid
|
6
1
|
(function() {
|
7
|
-
|
2
|
+
/*
|
3
|
+
* Generate a RFC4122(v4) UUID
|
4
|
+
*
|
5
|
+
* Documentation at https://github.com/broofa/node-uuid
|
6
|
+
*/
|
8
7
|
|
9
|
-
//
|
10
|
-
// Math.random() does not guarantee "cryptographic quality". So we feature
|
11
|
-
// detect for more robust APIs, normalizing each method to return 128-bits
|
12
|
-
// (16 bytes) of random data.
|
13
|
-
var mathRNG, nodeRNG, whatwgRNG;
|
14
|
-
|
15
|
-
// Math.random()-based RNG. All platforms, very fast, unknown quality
|
16
|
-
var _rndBytes = new Array(16);
|
17
|
-
mathRNG = function() {
|
18
|
-
var r, b = _rndBytes, i = 0;
|
19
|
-
|
20
|
-
for (var i = 0, r; i < 16; i++) {
|
21
|
-
if ((i & 0x03) == 0) r = Math.random() * 0x100000000;
|
22
|
-
b[i] = r >>> ((i & 0x03) << 3) & 0xff;
|
23
|
-
}
|
24
|
-
|
25
|
-
return b;
|
26
|
-
}
|
27
|
-
|
28
|
-
// WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto
|
29
|
-
// WebKit only (currently), moderately fast, high quality
|
30
|
-
if (_global.crypto && crypto.getRandomValues) {
|
31
|
-
var _rnds = new Uint32Array(4);
|
32
|
-
whatwgRNG = function() {
|
33
|
-
crypto.getRandomValues(_rnds);
|
34
|
-
|
35
|
-
for (var c = 0 ; c < 16; c++) {
|
36
|
-
_rndBytes[c] = _rnds[c >> 2] >>> ((c & 0x03) * 8) & 0xff;
|
37
|
-
}
|
38
|
-
return _rndBytes;
|
39
|
-
}
|
40
|
-
}
|
41
|
-
|
42
|
-
// Node.js crypto-based RNG - http://nodejs.org/docs/v0.6.2/api/crypto.html
|
43
|
-
// Node.js only, moderately fast, high quality
|
44
|
-
try {
|
45
|
-
var _rb = require('crypto').randomBytes;
|
46
|
-
nodeRNG = _rb && function() {
|
47
|
-
return _rb(16);
|
48
|
-
};
|
49
|
-
} catch (e) {}
|
50
|
-
|
51
|
-
// Select RNG with best quality
|
52
|
-
var _rng = nodeRNG || whatwgRNG || mathRNG;
|
53
|
-
|
54
|
-
// Buffer class to use
|
8
|
+
// Use node.js Buffer class if available, otherwise use the Array class
|
55
9
|
var BufferClass = typeof(Buffer) == 'function' ? Buffer : Array;
|
56
10
|
|
57
|
-
//
|
58
|
-
var
|
59
|
-
|
11
|
+
// Buffer used for generating string uuids
|
12
|
+
var _buf = new BufferClass(16);
|
13
|
+
|
14
|
+
// Cache number <-> hex string for octet values
|
15
|
+
var toString = [];
|
16
|
+
var toNumber = {};
|
60
17
|
for (var i = 0; i < 256; i++) {
|
61
|
-
|
62
|
-
|
18
|
+
toString[i] = (i + 0x100).toString(16).substr(1);
|
19
|
+
toNumber[toString[i]] = i;
|
63
20
|
}
|
64
21
|
|
65
|
-
|
66
|
-
|
67
|
-
var i =
|
68
|
-
|
69
|
-
|
70
|
-
s.toLowerCase().replace(/[0-9a-f]{2}/g, function(byte) {
|
71
|
-
if (ii < 16) { // Don't overflow!
|
72
|
-
buf[i + ii++] = _hexToByte[byte];
|
73
|
-
}
|
22
|
+
function parse(s) {
|
23
|
+
var buf = new BufferClass(16);
|
24
|
+
var i = 0, ton = toNumber;
|
25
|
+
s.toLowerCase().replace(/[0-9a-f][0-9a-f]/g, function(octet) {
|
26
|
+
buf[i++] = toNumber[octet];
|
74
27
|
});
|
75
|
-
|
76
|
-
// Zero out remaining bytes if string was short
|
77
|
-
while (ii < 16) {
|
78
|
-
buf[i + ii++] = 0;
|
79
|
-
}
|
80
|
-
|
81
28
|
return buf;
|
82
29
|
}
|
83
30
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
bth[buf[i++]] + bth[buf[i++]] +
|
93
|
-
bth[buf[i++]] + bth[buf[i++]] +
|
94
|
-
bth[buf[i++]] + bth[buf[i++]];
|
31
|
+
function unparse(buf) {
|
32
|
+
var tos = toString, b = buf;
|
33
|
+
return tos[b[0]] + tos[b[1]] + tos[b[2]] + tos[b[3]] + '-' +
|
34
|
+
tos[b[4]] + tos[b[5]] + '-' +
|
35
|
+
tos[b[6]] + tos[b[7]] + '-' +
|
36
|
+
tos[b[8]] + tos[b[9]] + '-' +
|
37
|
+
tos[b[10]] + tos[b[11]] + tos[b[12]] +
|
38
|
+
tos[b[13]] + tos[b[14]] + tos[b[15]];
|
95
39
|
}
|
96
40
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
// and http://docs.python.org/library/uuid.html
|
101
|
-
|
102
|
-
// random #'s we need to init node and clockseq
|
103
|
-
var _seedBytes = _rng();
|
104
|
-
|
105
|
-
// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
|
106
|
-
var _nodeId = [
|
107
|
-
_seedBytes[0] | 0x01,
|
108
|
-
_seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5]
|
109
|
-
];
|
110
|
-
|
111
|
-
// Per 4.2.2, randomize (14 bit) clockseq
|
112
|
-
var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff;
|
113
|
-
|
114
|
-
// Previous uuid creation time
|
115
|
-
var _lastMSecs = 0, _lastNSecs = 0;
|
116
|
-
|
117
|
-
// See https://github.com/broofa/node-uuid for API details
|
118
|
-
function v1(options, buf, offset) {
|
41
|
+
var b32 = 0x100000000, ff = 0xff;
|
42
|
+
function uuid(fmt, buf, offset) {
|
43
|
+
var b = fmt != 'binary' ? _buf : (buf ? buf : new BufferClass(16));
|
119
44
|
var i = buf && offset || 0;
|
120
|
-
var b = buf || [];
|
121
|
-
|
122
|
-
options = options || {};
|
123
|
-
|
124
|
-
var clockseq = options.clockseq != null ? options.clockseq : _clockseq;
|
125
|
-
|
126
|
-
// UUID timestamps are 100 nano-second units since the Gregorian epoch,
|
127
|
-
// (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
|
128
|
-
// time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
|
129
|
-
// (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
|
130
|
-
var msecs = options.msecs != null ? options.msecs : new Date().getTime();
|
131
|
-
|
132
|
-
// Per 4.2.1.2, use count of uuid's generated during the current clock
|
133
|
-
// cycle to simulate higher resolution clock
|
134
|
-
var nsecs = options.nsecs != null ? options.nsecs : _lastNSecs + 1;
|
135
|
-
|
136
|
-
// Time since last uuid creation (in msecs)
|
137
|
-
var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;
|
138
45
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
46
|
+
var r = Math.random()*b32;
|
47
|
+
b[i++] = r & ff;
|
48
|
+
b[i++] = r>>>8 & ff;
|
49
|
+
b[i++] = r>>>16 & ff;
|
50
|
+
b[i++] = r>>>24 & ff;
|
51
|
+
r = Math.random()*b32;
|
52
|
+
b[i++] = r & ff;
|
53
|
+
b[i++] = r>>>8 & ff;
|
54
|
+
b[i++] = r>>>16 & 0x0f | 0x40; // See RFC4122 sect. 4.1.3
|
55
|
+
b[i++] = r>>>24 & ff;
|
56
|
+
r = Math.random()*b32;
|
57
|
+
b[i++] = r & 0x3f | 0x80; // See RFC4122 sect. 4.4
|
58
|
+
b[i++] = r>>>8 & ff;
|
59
|
+
b[i++] = r>>>16 & ff;
|
60
|
+
b[i++] = r>>>24 & ff;
|
61
|
+
r = Math.random()*b32;
|
62
|
+
b[i++] = r & ff;
|
63
|
+
b[i++] = r>>>8 & ff;
|
64
|
+
b[i++] = r>>>16 & ff;
|
65
|
+
b[i++] = r>>>24 & ff;
|
66
|
+
|
67
|
+
return fmt === undefined ? unparse(b) : b;
|
68
|
+
};
|
143
69
|
|
144
|
-
// Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
|
145
|
-
// time interval
|
146
|
-
if ((dt < 0 || msecs > _lastMSecs) && options.nsecs == null) {
|
147
|
-
nsecs = 0;
|
148
|
-
}
|
149
|
-
|
150
|
-
// Per 4.2.1.2 Throw error if too many uuids are requested
|
151
|
-
if (nsecs >= 10000) {
|
152
|
-
throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');
|
153
|
-
}
|
154
|
-
|
155
|
-
_lastMSecs = msecs;
|
156
|
-
_lastNSecs = nsecs;
|
157
|
-
_clockseq = clockseq;
|
158
|
-
|
159
|
-
// Per 4.1.4 - Convert from unix epoch to Gregorian epoch
|
160
|
-
msecs += 12219292800000;
|
161
|
-
|
162
|
-
// `time_low`
|
163
|
-
var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
|
164
|
-
b[i++] = tl >>> 24 & 0xff;
|
165
|
-
b[i++] = tl >>> 16 & 0xff;
|
166
|
-
b[i++] = tl >>> 8 & 0xff;
|
167
|
-
b[i++] = tl & 0xff;
|
168
|
-
|
169
|
-
// `time_mid`
|
170
|
-
var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;
|
171
|
-
b[i++] = tmh >>> 8 & 0xff;
|
172
|
-
b[i++] = tmh & 0xff;
|
173
|
-
|
174
|
-
// `time_high_and_version`
|
175
|
-
b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
|
176
|
-
b[i++] = tmh >>> 16 & 0xff;
|
177
|
-
|
178
|
-
// `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
|
179
|
-
b[i++] = clockseq >>> 8 | 0x80;
|
180
|
-
|
181
|
-
// `clock_seq_low`
|
182
|
-
b[i++] = clockseq & 0xff;
|
183
|
-
|
184
|
-
// `node`
|
185
|
-
var node = options.node || _nodeId;
|
186
|
-
for (var n = 0; n < 6; n++) {
|
187
|
-
b[i + n] = node[n];
|
188
|
-
}
|
189
|
-
|
190
|
-
return buf ? buf : unparse(b);
|
191
|
-
}
|
192
|
-
|
193
|
-
// **`v4()` - Generate random UUID**
|
194
|
-
|
195
|
-
// See https://github.com/broofa/node-uuid for API details
|
196
|
-
function v4(options, buf, offset) {
|
197
|
-
// Deprecated - 'format' argument, as supported in v1.2
|
198
|
-
var i = buf && offset || 0;
|
199
|
-
|
200
|
-
if (typeof(options) == 'string') {
|
201
|
-
buf = options == 'binary' ? new BufferClass(16) : null;
|
202
|
-
options = null;
|
203
|
-
}
|
204
|
-
options = options || {};
|
205
|
-
|
206
|
-
var rnds = options.random || (options.rng || _rng)();
|
207
|
-
|
208
|
-
// Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
|
209
|
-
rnds[6] = (rnds[6] & 0x0f) | 0x40;
|
210
|
-
rnds[8] = (rnds[8] & 0x3f) | 0x80;
|
211
|
-
|
212
|
-
// Copy bytes to buffer, if provided
|
213
|
-
if (buf) {
|
214
|
-
for (var ii = 0; ii < 16; ii++) {
|
215
|
-
buf[i + ii] = rnds[ii];
|
216
|
-
}
|
217
|
-
}
|
218
|
-
|
219
|
-
return buf || unparse(rnds);
|
220
|
-
}
|
221
|
-
|
222
|
-
// Export public API
|
223
|
-
var uuid = v4;
|
224
|
-
uuid.v1 = v1;
|
225
|
-
uuid.v4 = v4;
|
226
70
|
uuid.parse = parse;
|
227
71
|
uuid.unparse = unparse;
|
228
72
|
uuid.BufferClass = BufferClass;
|
229
73
|
|
230
|
-
// Export RNG options
|
231
|
-
uuid.mathRNG = mathRNG;
|
232
|
-
uuid.nodeRNG = nodeRNG;
|
233
|
-
uuid.whatwgRNG = whatwgRNG;
|
234
|
-
|
235
74
|
if (typeof(module) != 'undefined') {
|
236
|
-
// Play nice with node.js
|
237
75
|
module.exports = uuid;
|
238
76
|
} else {
|
239
|
-
//
|
240
|
-
|
241
|
-
|
242
|
-
// **`noConflict()` - (browser only) to reset global 'uuid' var**
|
243
|
-
uuid.noConflict = function() {
|
244
|
-
_global.uuid = _previousRoot;
|
245
|
-
return uuid;
|
246
|
-
}
|
247
|
-
_global.uuid = uuid;
|
77
|
+
// In browser? Set as top-level function
|
78
|
+
this.uuid = uuid;
|
248
79
|
}
|
249
|
-
}()
|
80
|
+
})();
|