decidim 0.27.4 → 0.27.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (225) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -16
  3. data/docs/modules/install/pages/manual.adoc +1 -1
  4. data/docs/modules/services/pages/maps.adoc +8 -0
  5. data/lib/decidim/version.rb +1 -1
  6. data/package-lock.json +7 -7
  7. data/packages/browserslist-config/package.json +1 -1
  8. data/packages/core/node_modules/uuid/AUTHORS +5 -0
  9. data/packages/core/node_modules/uuid/CHANGELOG.md +119 -0
  10. data/packages/{webpacker/node_modules/brace-expansion/LICENSE → core/node_modules/uuid/LICENSE.md} +2 -2
  11. data/packages/core/node_modules/uuid/README.md +276 -0
  12. data/packages/core/node_modules/uuid/bin/uuid +65 -0
  13. data/packages/core/node_modules/uuid/index.js +8 -0
  14. data/packages/core/node_modules/uuid/lib/bytesToUuid.js +26 -0
  15. data/packages/core/node_modules/uuid/lib/md5-browser.js +216 -0
  16. data/packages/core/node_modules/uuid/lib/md5.js +25 -0
  17. data/packages/core/node_modules/uuid/lib/rng-browser.js +34 -0
  18. data/packages/core/node_modules/uuid/lib/rng.js +8 -0
  19. data/packages/core/node_modules/uuid/lib/sha1-browser.js +89 -0
  20. data/packages/core/node_modules/uuid/lib/sha1.js +25 -0
  21. data/packages/core/node_modules/uuid/lib/v35.js +57 -0
  22. data/packages/core/node_modules/uuid/package.json +49 -0
  23. data/packages/core/node_modules/uuid/v1.js +109 -0
  24. data/packages/core/node_modules/uuid/v3.js +4 -0
  25. data/packages/core/node_modules/uuid/v4.js +29 -0
  26. data/packages/core/node_modules/uuid/v5.js +3 -0
  27. data/packages/core/package-lock.json +347 -3079
  28. data/packages/core/package.json +1 -1
  29. data/packages/dev/package.json +1 -1
  30. data/packages/elections/package.json +1 -1
  31. data/packages/eslint-config/package-lock.json +4797 -0
  32. data/packages/eslint-config/package.json +1 -1
  33. data/packages/stylelint-config/package.json +1 -1
  34. data/packages/webpacker/package.json +1 -1
  35. metadata +63 -234
  36. data/lib/decidim/release_manager.rb.new +0 -43
  37. data/packages/core/node_modules/diff/CONTRIBUTING.md +0 -39
  38. data/packages/core/node_modules/diff/LICENSE +0 -31
  39. data/packages/core/node_modules/diff/README.md +0 -211
  40. data/packages/core/node_modules/diff/dist/diff.js +0 -1627
  41. data/packages/core/node_modules/diff/dist/diff.min.js +0 -38
  42. data/packages/core/node_modules/diff/lib/convert/dmp.js +0 -32
  43. data/packages/core/node_modules/diff/lib/convert/xml.js +0 -42
  44. data/packages/core/node_modules/diff/lib/diff/array.js +0 -45
  45. data/packages/core/node_modules/diff/lib/diff/base.js +0 -307
  46. data/packages/core/node_modules/diff/lib/diff/character.js +0 -37
  47. data/packages/core/node_modules/diff/lib/diff/css.js +0 -41
  48. data/packages/core/node_modules/diff/lib/diff/json.js +0 -163
  49. data/packages/core/node_modules/diff/lib/diff/line.js +0 -89
  50. data/packages/core/node_modules/diff/lib/diff/sentence.js +0 -41
  51. data/packages/core/node_modules/diff/lib/diff/word.js +0 -108
  52. data/packages/core/node_modules/diff/lib/index.es6.js +0 -1561
  53. data/packages/core/node_modules/diff/lib/index.js +0 -216
  54. data/packages/core/node_modules/diff/lib/index.mjs +0 -1561
  55. data/packages/core/node_modules/diff/lib/patch/apply.js +0 -238
  56. data/packages/core/node_modules/diff/lib/patch/create.js +0 -272
  57. data/packages/core/node_modules/diff/lib/patch/merge.js +0 -613
  58. data/packages/core/node_modules/diff/lib/patch/parse.js +0 -167
  59. data/packages/core/node_modules/diff/lib/util/array.js +0 -32
  60. data/packages/core/node_modules/diff/lib/util/distance-iterator.js +0 -57
  61. data/packages/core/node_modules/diff/lib/util/params.js +0 -24
  62. data/packages/core/node_modules/diff/package.json +0 -87
  63. data/packages/core/node_modules/diff/release-notes.md +0 -309
  64. data/packages/core/node_modules/diff/runtime.js +0 -3
  65. data/packages/webpacker/node_modules/argparse/CHANGELOG.md +0 -216
  66. data/packages/webpacker/node_modules/argparse/LICENSE +0 -254
  67. data/packages/webpacker/node_modules/argparse/README.md +0 -84
  68. data/packages/webpacker/node_modules/argparse/argparse.js +0 -3707
  69. data/packages/webpacker/node_modules/argparse/lib/sub.js +0 -67
  70. data/packages/webpacker/node_modules/argparse/lib/textwrap.js +0 -440
  71. data/packages/webpacker/node_modules/argparse/package.json +0 -31
  72. data/packages/webpacker/node_modules/brace-expansion/README.md +0 -135
  73. data/packages/webpacker/node_modules/brace-expansion/index.js +0 -203
  74. data/packages/webpacker/node_modules/brace-expansion/package.json +0 -46
  75. data/packages/webpacker/node_modules/glob/LICENSE +0 -15
  76. data/packages/webpacker/node_modules/glob/README.md +0 -1214
  77. data/packages/webpacker/node_modules/glob/dist/cjs/package.json +0 -4
  78. data/packages/webpacker/node_modules/glob/dist/cjs/src/bin.d.ts +0 -3
  79. data/packages/webpacker/node_modules/glob/dist/cjs/src/bin.d.ts.map +0 -1
  80. data/packages/webpacker/node_modules/glob/dist/cjs/src/bin.js +0 -270
  81. data/packages/webpacker/node_modules/glob/dist/cjs/src/bin.js.map +0 -1
  82. data/packages/webpacker/node_modules/glob/dist/cjs/src/glob.d.ts +0 -344
  83. data/packages/webpacker/node_modules/glob/dist/cjs/src/glob.d.ts.map +0 -1
  84. data/packages/webpacker/node_modules/glob/dist/cjs/src/glob.js +0 -238
  85. data/packages/webpacker/node_modules/glob/dist/cjs/src/glob.js.map +0 -1
  86. data/packages/webpacker/node_modules/glob/dist/cjs/src/has-magic.d.ts +0 -14
  87. data/packages/webpacker/node_modules/glob/dist/cjs/src/has-magic.d.ts.map +0 -1
  88. data/packages/webpacker/node_modules/glob/dist/cjs/src/has-magic.js +0 -27
  89. data/packages/webpacker/node_modules/glob/dist/cjs/src/has-magic.js.map +0 -1
  90. data/packages/webpacker/node_modules/glob/dist/cjs/src/ignore.d.ts +0 -20
  91. data/packages/webpacker/node_modules/glob/dist/cjs/src/ignore.d.ts.map +0 -1
  92. data/packages/webpacker/node_modules/glob/dist/cjs/src/ignore.js +0 -103
  93. data/packages/webpacker/node_modules/glob/dist/cjs/src/ignore.js.map +0 -1
  94. data/packages/webpacker/node_modules/glob/dist/cjs/src/index.d.ts +0 -95
  95. data/packages/webpacker/node_modules/glob/dist/cjs/src/index.d.ts.map +0 -1
  96. data/packages/webpacker/node_modules/glob/dist/cjs/src/index.js +0 -68
  97. data/packages/webpacker/node_modules/glob/dist/cjs/src/index.js.map +0 -1
  98. data/packages/webpacker/node_modules/glob/dist/cjs/src/pattern.d.ts +0 -77
  99. data/packages/webpacker/node_modules/glob/dist/cjs/src/pattern.d.ts.map +0 -1
  100. data/packages/webpacker/node_modules/glob/dist/cjs/src/pattern.js +0 -219
  101. data/packages/webpacker/node_modules/glob/dist/cjs/src/pattern.js.map +0 -1
  102. data/packages/webpacker/node_modules/glob/dist/cjs/src/processor.d.ts +0 -59
  103. data/packages/webpacker/node_modules/glob/dist/cjs/src/processor.d.ts.map +0 -1
  104. data/packages/webpacker/node_modules/glob/dist/cjs/src/processor.js +0 -309
  105. data/packages/webpacker/node_modules/glob/dist/cjs/src/processor.js.map +0 -1
  106. data/packages/webpacker/node_modules/glob/dist/cjs/src/walker.d.ts +0 -96
  107. data/packages/webpacker/node_modules/glob/dist/cjs/src/walker.d.ts.map +0 -1
  108. data/packages/webpacker/node_modules/glob/dist/cjs/src/walker.js +0 -358
  109. data/packages/webpacker/node_modules/glob/dist/cjs/src/walker.js.map +0 -1
  110. data/packages/webpacker/node_modules/glob/dist/mjs/glob.d.ts +0 -344
  111. data/packages/webpacker/node_modules/glob/dist/mjs/glob.d.ts.map +0 -1
  112. data/packages/webpacker/node_modules/glob/dist/mjs/glob.js +0 -234
  113. data/packages/webpacker/node_modules/glob/dist/mjs/glob.js.map +0 -1
  114. data/packages/webpacker/node_modules/glob/dist/mjs/has-magic.d.ts +0 -14
  115. data/packages/webpacker/node_modules/glob/dist/mjs/has-magic.d.ts.map +0 -1
  116. data/packages/webpacker/node_modules/glob/dist/mjs/has-magic.js +0 -23
  117. data/packages/webpacker/node_modules/glob/dist/mjs/has-magic.js.map +0 -1
  118. data/packages/webpacker/node_modules/glob/dist/mjs/ignore.d.ts +0 -20
  119. data/packages/webpacker/node_modules/glob/dist/mjs/ignore.d.ts.map +0 -1
  120. data/packages/webpacker/node_modules/glob/dist/mjs/ignore.js +0 -99
  121. data/packages/webpacker/node_modules/glob/dist/mjs/ignore.js.map +0 -1
  122. data/packages/webpacker/node_modules/glob/dist/mjs/index.d.ts +0 -95
  123. data/packages/webpacker/node_modules/glob/dist/mjs/index.d.ts.map +0 -1
  124. data/packages/webpacker/node_modules/glob/dist/mjs/index.js +0 -56
  125. data/packages/webpacker/node_modules/glob/dist/mjs/index.js.map +0 -1
  126. data/packages/webpacker/node_modules/glob/dist/mjs/package.json +0 -4
  127. data/packages/webpacker/node_modules/glob/dist/mjs/pattern.d.ts +0 -77
  128. data/packages/webpacker/node_modules/glob/dist/mjs/pattern.d.ts.map +0 -1
  129. data/packages/webpacker/node_modules/glob/dist/mjs/pattern.js +0 -215
  130. data/packages/webpacker/node_modules/glob/dist/mjs/pattern.js.map +0 -1
  131. data/packages/webpacker/node_modules/glob/dist/mjs/processor.d.ts +0 -59
  132. data/packages/webpacker/node_modules/glob/dist/mjs/processor.d.ts.map +0 -1
  133. data/packages/webpacker/node_modules/glob/dist/mjs/processor.js +0 -302
  134. data/packages/webpacker/node_modules/glob/dist/mjs/processor.js.map +0 -1
  135. data/packages/webpacker/node_modules/glob/dist/mjs/walker.d.ts +0 -96
  136. data/packages/webpacker/node_modules/glob/dist/mjs/walker.d.ts.map +0 -1
  137. data/packages/webpacker/node_modules/glob/dist/mjs/walker.js +0 -352
  138. data/packages/webpacker/node_modules/glob/dist/mjs/walker.js.map +0 -1
  139. data/packages/webpacker/node_modules/glob/package.json +0 -98
  140. data/packages/webpacker/node_modules/js-yaml/CHANGELOG.md +0 -616
  141. data/packages/webpacker/node_modules/js-yaml/LICENSE +0 -21
  142. data/packages/webpacker/node_modules/js-yaml/README.md +0 -246
  143. data/packages/webpacker/node_modules/js-yaml/bin/js-yaml.js +0 -126
  144. data/packages/webpacker/node_modules/js-yaml/dist/js-yaml.js +0 -3874
  145. data/packages/webpacker/node_modules/js-yaml/dist/js-yaml.min.js +0 -2
  146. data/packages/webpacker/node_modules/js-yaml/dist/js-yaml.mjs +0 -3851
  147. data/packages/webpacker/node_modules/js-yaml/index.js +0 -47
  148. data/packages/webpacker/node_modules/js-yaml/lib/common.js +0 -59
  149. data/packages/webpacker/node_modules/js-yaml/lib/dumper.js +0 -965
  150. data/packages/webpacker/node_modules/js-yaml/lib/exception.js +0 -55
  151. data/packages/webpacker/node_modules/js-yaml/lib/loader.js +0 -1727
  152. data/packages/webpacker/node_modules/js-yaml/lib/schema/core.js +0 -11
  153. data/packages/webpacker/node_modules/js-yaml/lib/schema/default.js +0 -22
  154. data/packages/webpacker/node_modules/js-yaml/lib/schema/failsafe.js +0 -17
  155. data/packages/webpacker/node_modules/js-yaml/lib/schema/json.js +0 -19
  156. data/packages/webpacker/node_modules/js-yaml/lib/schema.js +0 -121
  157. data/packages/webpacker/node_modules/js-yaml/lib/snippet.js +0 -101
  158. data/packages/webpacker/node_modules/js-yaml/lib/type/binary.js +0 -125
  159. data/packages/webpacker/node_modules/js-yaml/lib/type/bool.js +0 -35
  160. data/packages/webpacker/node_modules/js-yaml/lib/type/float.js +0 -97
  161. data/packages/webpacker/node_modules/js-yaml/lib/type/int.js +0 -156
  162. data/packages/webpacker/node_modules/js-yaml/lib/type/map.js +0 -8
  163. data/packages/webpacker/node_modules/js-yaml/lib/type/merge.js +0 -12
  164. data/packages/webpacker/node_modules/js-yaml/lib/type/null.js +0 -35
  165. data/packages/webpacker/node_modules/js-yaml/lib/type/omap.js +0 -44
  166. data/packages/webpacker/node_modules/js-yaml/lib/type/pairs.js +0 -53
  167. data/packages/webpacker/node_modules/js-yaml/lib/type/seq.js +0 -8
  168. data/packages/webpacker/node_modules/js-yaml/lib/type/set.js +0 -29
  169. data/packages/webpacker/node_modules/js-yaml/lib/type/str.js +0 -8
  170. data/packages/webpacker/node_modules/js-yaml/lib/type/timestamp.js +0 -88
  171. data/packages/webpacker/node_modules/js-yaml/lib/type.js +0 -66
  172. data/packages/webpacker/node_modules/js-yaml/package.json +0 -66
  173. data/packages/webpacker/node_modules/minimatch/LICENSE +0 -15
  174. data/packages/webpacker/node_modules/minimatch/README.md +0 -454
  175. data/packages/webpacker/node_modules/minimatch/dist/cjs/assert-valid-pattern.d.ts +0 -2
  176. data/packages/webpacker/node_modules/minimatch/dist/cjs/assert-valid-pattern.d.ts.map +0 -1
  177. data/packages/webpacker/node_modules/minimatch/dist/cjs/assert-valid-pattern.js +0 -14
  178. data/packages/webpacker/node_modules/minimatch/dist/cjs/assert-valid-pattern.js.map +0 -1
  179. data/packages/webpacker/node_modules/minimatch/dist/cjs/ast.d.ts +0 -19
  180. data/packages/webpacker/node_modules/minimatch/dist/cjs/ast.d.ts.map +0 -1
  181. data/packages/webpacker/node_modules/minimatch/dist/cjs/ast.js +0 -589
  182. data/packages/webpacker/node_modules/minimatch/dist/cjs/ast.js.map +0 -1
  183. data/packages/webpacker/node_modules/minimatch/dist/cjs/brace-expressions.d.ts +0 -8
  184. data/packages/webpacker/node_modules/minimatch/dist/cjs/brace-expressions.d.ts.map +0 -1
  185. data/packages/webpacker/node_modules/minimatch/dist/cjs/brace-expressions.js +0 -152
  186. data/packages/webpacker/node_modules/minimatch/dist/cjs/brace-expressions.js.map +0 -1
  187. data/packages/webpacker/node_modules/minimatch/dist/cjs/escape.d.ts +0 -12
  188. data/packages/webpacker/node_modules/minimatch/dist/cjs/escape.d.ts.map +0 -1
  189. data/packages/webpacker/node_modules/minimatch/dist/cjs/escape.js +0 -22
  190. data/packages/webpacker/node_modules/minimatch/dist/cjs/escape.js.map +0 -1
  191. data/packages/webpacker/node_modules/minimatch/dist/cjs/index.d.ts +0 -94
  192. data/packages/webpacker/node_modules/minimatch/dist/cjs/index.d.ts.map +0 -1
  193. data/packages/webpacker/node_modules/minimatch/dist/cjs/index.js +0 -1011
  194. data/packages/webpacker/node_modules/minimatch/dist/cjs/index.js.map +0 -1
  195. data/packages/webpacker/node_modules/minimatch/dist/cjs/package.json +0 -3
  196. data/packages/webpacker/node_modules/minimatch/dist/cjs/unescape.d.ts +0 -17
  197. data/packages/webpacker/node_modules/minimatch/dist/cjs/unescape.d.ts.map +0 -1
  198. data/packages/webpacker/node_modules/minimatch/dist/cjs/unescape.js +0 -24
  199. data/packages/webpacker/node_modules/minimatch/dist/cjs/unescape.js.map +0 -1
  200. data/packages/webpacker/node_modules/minimatch/dist/mjs/assert-valid-pattern.d.ts +0 -2
  201. data/packages/webpacker/node_modules/minimatch/dist/mjs/assert-valid-pattern.d.ts.map +0 -1
  202. data/packages/webpacker/node_modules/minimatch/dist/mjs/assert-valid-pattern.js +0 -10
  203. data/packages/webpacker/node_modules/minimatch/dist/mjs/assert-valid-pattern.js.map +0 -1
  204. data/packages/webpacker/node_modules/minimatch/dist/mjs/ast.d.ts +0 -19
  205. data/packages/webpacker/node_modules/minimatch/dist/mjs/ast.d.ts.map +0 -1
  206. data/packages/webpacker/node_modules/minimatch/dist/mjs/ast.js +0 -585
  207. data/packages/webpacker/node_modules/minimatch/dist/mjs/ast.js.map +0 -1
  208. data/packages/webpacker/node_modules/minimatch/dist/mjs/brace-expressions.d.ts +0 -8
  209. data/packages/webpacker/node_modules/minimatch/dist/mjs/brace-expressions.d.ts.map +0 -1
  210. data/packages/webpacker/node_modules/minimatch/dist/mjs/brace-expressions.js +0 -148
  211. data/packages/webpacker/node_modules/minimatch/dist/mjs/brace-expressions.js.map +0 -1
  212. data/packages/webpacker/node_modules/minimatch/dist/mjs/escape.d.ts +0 -12
  213. data/packages/webpacker/node_modules/minimatch/dist/mjs/escape.d.ts.map +0 -1
  214. data/packages/webpacker/node_modules/minimatch/dist/mjs/escape.js +0 -18
  215. data/packages/webpacker/node_modules/minimatch/dist/mjs/escape.js.map +0 -1
  216. data/packages/webpacker/node_modules/minimatch/dist/mjs/index.d.ts +0 -94
  217. data/packages/webpacker/node_modules/minimatch/dist/mjs/index.d.ts.map +0 -1
  218. data/packages/webpacker/node_modules/minimatch/dist/mjs/index.js +0 -995
  219. data/packages/webpacker/node_modules/minimatch/dist/mjs/index.js.map +0 -1
  220. data/packages/webpacker/node_modules/minimatch/dist/mjs/package.json +0 -3
  221. data/packages/webpacker/node_modules/minimatch/dist/mjs/unescape.d.ts +0 -17
  222. data/packages/webpacker/node_modules/minimatch/dist/mjs/unescape.d.ts.map +0 -1
  223. data/packages/webpacker/node_modules/minimatch/dist/mjs/unescape.js +0 -20
  224. data/packages/webpacker/node_modules/minimatch/dist/mjs/unescape.js.map +0 -1
  225. data/packages/webpacker/node_modules/minimatch/package.json +0 -86
@@ -0,0 +1,216 @@
1
+ /*
2
+ * Browser-compatible JavaScript MD5
3
+ *
4
+ * Modification of JavaScript MD5
5
+ * https://github.com/blueimp/JavaScript-MD5
6
+ *
7
+ * Copyright 2011, Sebastian Tschan
8
+ * https://blueimp.net
9
+ *
10
+ * Licensed under the MIT license:
11
+ * https://opensource.org/licenses/MIT
12
+ *
13
+ * Based on
14
+ * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
15
+ * Digest Algorithm, as defined in RFC 1321.
16
+ * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
17
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
18
+ * Distributed under the BSD License
19
+ * See http://pajhome.org.uk/crypt/md5 for more info.
20
+ */
21
+
22
+ 'use strict';
23
+
24
+ function md5(bytes) {
25
+ if (typeof(bytes) == 'string') {
26
+ var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape
27
+ bytes = new Array(msg.length);
28
+ for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);
29
+ }
30
+
31
+ return md5ToHexEncodedArray(
32
+ wordsToMd5(
33
+ bytesToWords(bytes)
34
+ , bytes.length * 8)
35
+ );
36
+ }
37
+
38
+
39
+ /*
40
+ * Convert an array of little-endian words to an array of bytes
41
+ */
42
+ function md5ToHexEncodedArray(input) {
43
+ var i;
44
+ var x;
45
+ var output = [];
46
+ var length32 = input.length * 32;
47
+ var hexTab = '0123456789abcdef';
48
+ var hex;
49
+
50
+ for (i = 0; i < length32; i += 8) {
51
+ x = (input[i >> 5] >>> (i % 32)) & 0xFF;
52
+
53
+ hex = parseInt(hexTab.charAt((x >>> 4) & 0x0F) + hexTab.charAt(x & 0x0F), 16);
54
+
55
+ output.push(hex);
56
+ }
57
+ return output;
58
+ }
59
+
60
+ /*
61
+ * Calculate the MD5 of an array of little-endian words, and a bit length.
62
+ */
63
+ function wordsToMd5(x, len) {
64
+ /* append padding */
65
+ x[len >> 5] |= 0x80 << (len % 32);
66
+ x[(((len + 64) >>> 9) << 4) + 14] = len;
67
+
68
+ var i;
69
+ var olda;
70
+ var oldb;
71
+ var oldc;
72
+ var oldd;
73
+ var a = 1732584193;
74
+ var b = -271733879;
75
+ var c = -1732584194;
76
+
77
+ var d = 271733878;
78
+
79
+ for (i = 0; i < x.length; i += 16) {
80
+ olda = a;
81
+ oldb = b;
82
+ oldc = c;
83
+ oldd = d;
84
+
85
+ a = md5ff(a, b, c, d, x[i], 7, -680876936);
86
+ d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
87
+ c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
88
+ b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
89
+ a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
90
+ d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
91
+ c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
92
+ b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
93
+ a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
94
+ d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
95
+ c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
96
+ b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
97
+ a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
98
+ d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
99
+ c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
100
+ b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
101
+
102
+ a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
103
+ d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
104
+ c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
105
+ b = md5gg(b, c, d, a, x[i], 20, -373897302);
106
+ a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
107
+ d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
108
+ c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
109
+ b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
110
+ a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
111
+ d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
112
+ c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
113
+ b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
114
+ a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
115
+ d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
116
+ c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
117
+ b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
118
+
119
+ a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
120
+ d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
121
+ c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
122
+ b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
123
+ a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
124
+ d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
125
+ c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
126
+ b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
127
+ a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
128
+ d = md5hh(d, a, b, c, x[i], 11, -358537222);
129
+ c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
130
+ b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
131
+ a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
132
+ d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
133
+ c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
134
+ b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
135
+
136
+ a = md5ii(a, b, c, d, x[i], 6, -198630844);
137
+ d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
138
+ c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
139
+ b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
140
+ a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
141
+ d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
142
+ c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
143
+ b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
144
+ a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
145
+ d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
146
+ c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
147
+ b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
148
+ a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
149
+ d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
150
+ c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
151
+ b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
152
+
153
+ a = safeAdd(a, olda);
154
+ b = safeAdd(b, oldb);
155
+ c = safeAdd(c, oldc);
156
+ d = safeAdd(d, oldd);
157
+ }
158
+ return [a, b, c, d];
159
+ }
160
+
161
+ /*
162
+ * Convert an array bytes to an array of little-endian words
163
+ * Characters >255 have their high-byte silently ignored.
164
+ */
165
+ function bytesToWords(input) {
166
+ var i;
167
+ var output = [];
168
+ output[(input.length >> 2) - 1] = undefined;
169
+ for (i = 0; i < output.length; i += 1) {
170
+ output[i] = 0;
171
+ }
172
+ var length8 = input.length * 8;
173
+ for (i = 0; i < length8; i += 8) {
174
+ output[i >> 5] |= (input[(i / 8)] & 0xFF) << (i % 32);
175
+ }
176
+
177
+ return output;
178
+ }
179
+
180
+ /*
181
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally
182
+ * to work around bugs in some JS interpreters.
183
+ */
184
+ function safeAdd(x, y) {
185
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF);
186
+ var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
187
+ return (msw << 16) | (lsw & 0xFFFF);
188
+ }
189
+
190
+ /*
191
+ * Bitwise rotate a 32-bit number to the left.
192
+ */
193
+ function bitRotateLeft(num, cnt) {
194
+ return (num << cnt) | (num >>> (32 - cnt));
195
+ }
196
+
197
+ /*
198
+ * These functions implement the four basic operations the algorithm uses.
199
+ */
200
+ function md5cmn(q, a, b, x, s, t) {
201
+ return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
202
+ }
203
+ function md5ff(a, b, c, d, x, s, t) {
204
+ return md5cmn((b & c) | ((~b) & d), a, b, x, s, t);
205
+ }
206
+ function md5gg(a, b, c, d, x, s, t) {
207
+ return md5cmn((b & d) | (c & (~d)), a, b, x, s, t);
208
+ }
209
+ function md5hh(a, b, c, d, x, s, t) {
210
+ return md5cmn(b ^ c ^ d, a, b, x, s, t);
211
+ }
212
+ function md5ii(a, b, c, d, x, s, t) {
213
+ return md5cmn(c ^ (b | (~d)), a, b, x, s, t);
214
+ }
215
+
216
+ module.exports = md5;
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ var crypto = require('crypto');
4
+
5
+ function md5(bytes) {
6
+ if (typeof Buffer.from === 'function') {
7
+ // Modern Buffer API
8
+ if (Array.isArray(bytes)) {
9
+ bytes = Buffer.from(bytes);
10
+ } else if (typeof bytes === 'string') {
11
+ bytes = Buffer.from(bytes, 'utf8');
12
+ }
13
+ } else {
14
+ // Pre-v4 Buffer API
15
+ if (Array.isArray(bytes)) {
16
+ bytes = new Buffer(bytes);
17
+ } else if (typeof bytes === 'string') {
18
+ bytes = new Buffer(bytes, 'utf8');
19
+ }
20
+ }
21
+
22
+ return crypto.createHash('md5').update(bytes).digest();
23
+ }
24
+
25
+ module.exports = md5;
@@ -0,0 +1,34 @@
1
+ // Unique ID creation requires a high quality random # generator. In the
2
+ // browser this is a little complicated due to unknown quality of Math.random()
3
+ // and inconsistent support for the `crypto` API. We do the best we can via
4
+ // feature-detection
5
+
6
+ // getRandomValues needs to be invoked in a context where "this" is a Crypto
7
+ // implementation. Also, find the complete implementation of crypto on IE11.
8
+ var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||
9
+ (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));
10
+
11
+ if (getRandomValues) {
12
+ // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto
13
+ var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef
14
+
15
+ module.exports = function whatwgRNG() {
16
+ getRandomValues(rnds8);
17
+ return rnds8;
18
+ };
19
+ } else {
20
+ // Math.random()-based (RNG)
21
+ //
22
+ // If all else fails, use Math.random(). It's fast, but is of unspecified
23
+ // quality.
24
+ var rnds = new Array(16);
25
+
26
+ module.exports = function mathRNG() {
27
+ for (var i = 0, r; i < 16; i++) {
28
+ if ((i & 0x03) === 0) r = Math.random() * 0x100000000;
29
+ rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;
30
+ }
31
+
32
+ return rnds;
33
+ };
34
+ }
@@ -0,0 +1,8 @@
1
+ // Unique ID creation requires a high quality random # generator. In node.js
2
+ // this is pretty straight-forward - we use the crypto API.
3
+
4
+ var crypto = require('crypto');
5
+
6
+ module.exports = function nodeRNG() {
7
+ return crypto.randomBytes(16);
8
+ };
@@ -0,0 +1,89 @@
1
+ // Adapted from Chris Veness' SHA1 code at
2
+ // http://www.movable-type.co.uk/scripts/sha1.html
3
+ 'use strict';
4
+
5
+ function f(s, x, y, z) {
6
+ switch (s) {
7
+ case 0: return (x & y) ^ (~x & z);
8
+ case 1: return x ^ y ^ z;
9
+ case 2: return (x & y) ^ (x & z) ^ (y & z);
10
+ case 3: return x ^ y ^ z;
11
+ }
12
+ }
13
+
14
+ function ROTL(x, n) {
15
+ return (x << n) | (x>>> (32 - n));
16
+ }
17
+
18
+ function sha1(bytes) {
19
+ var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];
20
+ var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];
21
+
22
+ if (typeof(bytes) == 'string') {
23
+ var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape
24
+ bytes = new Array(msg.length);
25
+ for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);
26
+ }
27
+
28
+ bytes.push(0x80);
29
+
30
+ var l = bytes.length/4 + 2;
31
+ var N = Math.ceil(l/16);
32
+ var M = new Array(N);
33
+
34
+ for (var i=0; i<N; i++) {
35
+ M[i] = new Array(16);
36
+ for (var j=0; j<16; j++) {
37
+ M[i][j] =
38
+ bytes[i * 64 + j * 4] << 24 |
39
+ bytes[i * 64 + j * 4 + 1] << 16 |
40
+ bytes[i * 64 + j * 4 + 2] << 8 |
41
+ bytes[i * 64 + j * 4 + 3];
42
+ }
43
+ }
44
+
45
+ M[N - 1][14] = ((bytes.length - 1) * 8) /
46
+ Math.pow(2, 32); M[N - 1][14] = Math.floor(M[N - 1][14]);
47
+ M[N - 1][15] = ((bytes.length - 1) * 8) & 0xffffffff;
48
+
49
+ for (var i=0; i<N; i++) {
50
+ var W = new Array(80);
51
+
52
+ for (var t=0; t<16; t++) W[t] = M[i][t];
53
+ for (var t=16; t<80; t++) {
54
+ W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);
55
+ }
56
+
57
+ var a = H[0];
58
+ var b = H[1];
59
+ var c = H[2];
60
+ var d = H[3];
61
+ var e = H[4];
62
+
63
+ for (var t=0; t<80; t++) {
64
+ var s = Math.floor(t/20);
65
+ var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;
66
+ e = d;
67
+ d = c;
68
+ c = ROTL(b, 30) >>> 0;
69
+ b = a;
70
+ a = T;
71
+ }
72
+
73
+ H[0] = (H[0] + a) >>> 0;
74
+ H[1] = (H[1] + b) >>> 0;
75
+ H[2] = (H[2] + c) >>> 0;
76
+ H[3] = (H[3] + d) >>> 0;
77
+ H[4] = (H[4] + e) >>> 0;
78
+ }
79
+
80
+ return [
81
+ H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff,
82
+ H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff,
83
+ H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff,
84
+ H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff,
85
+ H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff
86
+ ];
87
+ }
88
+
89
+ module.exports = sha1;
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ var crypto = require('crypto');
4
+
5
+ function sha1(bytes) {
6
+ if (typeof Buffer.from === 'function') {
7
+ // Modern Buffer API
8
+ if (Array.isArray(bytes)) {
9
+ bytes = Buffer.from(bytes);
10
+ } else if (typeof bytes === 'string') {
11
+ bytes = Buffer.from(bytes, 'utf8');
12
+ }
13
+ } else {
14
+ // Pre-v4 Buffer API
15
+ if (Array.isArray(bytes)) {
16
+ bytes = new Buffer(bytes);
17
+ } else if (typeof bytes === 'string') {
18
+ bytes = new Buffer(bytes, 'utf8');
19
+ }
20
+ }
21
+
22
+ return crypto.createHash('sha1').update(bytes).digest();
23
+ }
24
+
25
+ module.exports = sha1;
@@ -0,0 +1,57 @@
1
+ var bytesToUuid = require('./bytesToUuid');
2
+
3
+ function uuidToBytes(uuid) {
4
+ // Note: We assume we're being passed a valid uuid string
5
+ var bytes = [];
6
+ uuid.replace(/[a-fA-F0-9]{2}/g, function(hex) {
7
+ bytes.push(parseInt(hex, 16));
8
+ });
9
+
10
+ return bytes;
11
+ }
12
+
13
+ function stringToBytes(str) {
14
+ str = unescape(encodeURIComponent(str)); // UTF8 escape
15
+ var bytes = new Array(str.length);
16
+ for (var i = 0; i < str.length; i++) {
17
+ bytes[i] = str.charCodeAt(i);
18
+ }
19
+ return bytes;
20
+ }
21
+
22
+ module.exports = function(name, version, hashfunc) {
23
+ var generateUUID = function(value, namespace, buf, offset) {
24
+ var off = buf && offset || 0;
25
+
26
+ if (typeof(value) == 'string') value = stringToBytes(value);
27
+ if (typeof(namespace) == 'string') namespace = uuidToBytes(namespace);
28
+
29
+ if (!Array.isArray(value)) throw TypeError('value must be an array of bytes');
30
+ if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values');
31
+
32
+ // Per 4.3
33
+ var bytes = hashfunc(namespace.concat(value));
34
+ bytes[6] = (bytes[6] & 0x0f) | version;
35
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
36
+
37
+ if (buf) {
38
+ for (var idx = 0; idx < 16; ++idx) {
39
+ buf[off+idx] = bytes[idx];
40
+ }
41
+ }
42
+
43
+ return buf || bytesToUuid(bytes);
44
+ };
45
+
46
+ // Function#name is not settable on some platforms (#270)
47
+ try {
48
+ generateUUID.name = name;
49
+ } catch (err) {
50
+ }
51
+
52
+ // Pre-defined namespaces, per Appendix C
53
+ generateUUID.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
54
+ generateUUID.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
55
+
56
+ return generateUUID;
57
+ };
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "uuid",
3
+ "version": "3.4.0",
4
+ "description": "RFC4122 (v1, v4, and v5) UUIDs",
5
+ "commitlint": {
6
+ "extends": [
7
+ "@commitlint/config-conventional"
8
+ ]
9
+ },
10
+ "keywords": [
11
+ "uuid",
12
+ "guid",
13
+ "rfc4122"
14
+ ],
15
+ "license": "MIT",
16
+ "bin": {
17
+ "uuid": "./bin/uuid"
18
+ },
19
+ "devDependencies": {
20
+ "@commitlint/cli": "~8.2.0",
21
+ "@commitlint/config-conventional": "~8.2.0",
22
+ "eslint": "~6.4.0",
23
+ "husky": "~3.0.5",
24
+ "mocha": "6.2.0",
25
+ "runmd": "1.2.1",
26
+ "standard-version": "7.0.0"
27
+ },
28
+ "scripts": {
29
+ "lint": "eslint .",
30
+ "test": "npm run lint && mocha test/test.js",
31
+ "md": "runmd --watch --output=README.md README_js.md",
32
+ "release": "standard-version",
33
+ "prepare": "runmd --output=README.md README_js.md"
34
+ },
35
+ "browser": {
36
+ "./lib/rng.js": "./lib/rng-browser.js",
37
+ "./lib/sha1.js": "./lib/sha1-browser.js",
38
+ "./lib/md5.js": "./lib/md5-browser.js"
39
+ },
40
+ "repository": {
41
+ "type": "git",
42
+ "url": "https://github.com/uuidjs/uuid.git"
43
+ },
44
+ "husky": {
45
+ "hooks": {
46
+ "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
47
+ }
48
+ }
49
+ }
@@ -0,0 +1,109 @@
1
+ var rng = require('./lib/rng');
2
+ var bytesToUuid = require('./lib/bytesToUuid');
3
+
4
+ // **`v1()` - Generate time-based UUID**
5
+ //
6
+ // Inspired by https://github.com/LiosK/UUID.js
7
+ // and http://docs.python.org/library/uuid.html
8
+
9
+ var _nodeId;
10
+ var _clockseq;
11
+
12
+ // Previous uuid creation time
13
+ var _lastMSecs = 0;
14
+ var _lastNSecs = 0;
15
+
16
+ // See https://github.com/uuidjs/uuid for API details
17
+ function v1(options, buf, offset) {
18
+ var i = buf && offset || 0;
19
+ var b = buf || [];
20
+
21
+ options = options || {};
22
+ var node = options.node || _nodeId;
23
+ var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;
24
+
25
+ // node and clockseq need to be initialized to random values if they're not
26
+ // specified. We do this lazily to minimize issues related to insufficient
27
+ // system entropy. See #189
28
+ if (node == null || clockseq == null) {
29
+ var seedBytes = rng();
30
+ if (node == null) {
31
+ // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
32
+ node = _nodeId = [
33
+ seedBytes[0] | 0x01,
34
+ seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]
35
+ ];
36
+ }
37
+ if (clockseq == null) {
38
+ // Per 4.2.2, randomize (14 bit) clockseq
39
+ clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
40
+ }
41
+ }
42
+
43
+ // UUID timestamps are 100 nano-second units since the Gregorian epoch,
44
+ // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
45
+ // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
46
+ // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
47
+ var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();
48
+
49
+ // Per 4.2.1.2, use count of uuid's generated during the current clock
50
+ // cycle to simulate higher resolution clock
51
+ var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;
52
+
53
+ // Time since last uuid creation (in msecs)
54
+ var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;
55
+
56
+ // Per 4.2.1.2, Bump clockseq on clock regression
57
+ if (dt < 0 && options.clockseq === undefined) {
58
+ clockseq = clockseq + 1 & 0x3fff;
59
+ }
60
+
61
+ // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
62
+ // time interval
63
+ if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
64
+ nsecs = 0;
65
+ }
66
+
67
+ // Per 4.2.1.2 Throw error if too many uuids are requested
68
+ if (nsecs >= 10000) {
69
+ throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');
70
+ }
71
+
72
+ _lastMSecs = msecs;
73
+ _lastNSecs = nsecs;
74
+ _clockseq = clockseq;
75
+
76
+ // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
77
+ msecs += 12219292800000;
78
+
79
+ // `time_low`
80
+ var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
81
+ b[i++] = tl >>> 24 & 0xff;
82
+ b[i++] = tl >>> 16 & 0xff;
83
+ b[i++] = tl >>> 8 & 0xff;
84
+ b[i++] = tl & 0xff;
85
+
86
+ // `time_mid`
87
+ var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;
88
+ b[i++] = tmh >>> 8 & 0xff;
89
+ b[i++] = tmh & 0xff;
90
+
91
+ // `time_high_and_version`
92
+ b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
93
+ b[i++] = tmh >>> 16 & 0xff;
94
+
95
+ // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
96
+ b[i++] = clockseq >>> 8 | 0x80;
97
+
98
+ // `clock_seq_low`
99
+ b[i++] = clockseq & 0xff;
100
+
101
+ // `node`
102
+ for (var n = 0; n < 6; ++n) {
103
+ b[i + n] = node[n];
104
+ }
105
+
106
+ return buf ? buf : bytesToUuid(b);
107
+ }
108
+
109
+ module.exports = v1;
@@ -0,0 +1,4 @@
1
+ var v35 = require('./lib/v35.js');
2
+ var md5 = require('./lib/md5');
3
+
4
+ module.exports = v35('v3', 0x30, md5);
@@ -0,0 +1,29 @@
1
+ var rng = require('./lib/rng');
2
+ var bytesToUuid = require('./lib/bytesToUuid');
3
+
4
+ function v4(options, buf, offset) {
5
+ var i = buf && offset || 0;
6
+
7
+ if (typeof(options) == 'string') {
8
+ buf = options === 'binary' ? new Array(16) : null;
9
+ options = null;
10
+ }
11
+ options = options || {};
12
+
13
+ var rnds = options.random || (options.rng || rng)();
14
+
15
+ // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
16
+ rnds[6] = (rnds[6] & 0x0f) | 0x40;
17
+ rnds[8] = (rnds[8] & 0x3f) | 0x80;
18
+
19
+ // Copy bytes to buffer, if provided
20
+ if (buf) {
21
+ for (var ii = 0; ii < 16; ++ii) {
22
+ buf[i + ii] = rnds[ii];
23
+ }
24
+ }
25
+
26
+ return buf || bytesToUuid(rnds);
27
+ }
28
+
29
+ module.exports = v4;
@@ -0,0 +1,3 @@
1
+ var v35 = require('./lib/v35.js');
2
+ var sha1 = require('./lib/sha1');
3
+ module.exports = v35('v5', 0x50, sha1);