uuid 10.0.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/CHANGELOG.md +170 -0
  2. package/README.md +71 -171
  3. package/dist/cjs/_types.d.ts +21 -0
  4. package/dist/cjs/_types.js +3 -0
  5. package/dist/cjs/index.d.ts +14 -0
  6. package/dist/cjs/index.js +32 -0
  7. package/dist/cjs/max.d.ts +2 -0
  8. package/dist/cjs/max.js +4 -0
  9. package/dist/cjs/md5.d.ts +2 -0
  10. package/dist/cjs/md5.js +14 -0
  11. package/dist/cjs/native.d.ts +5 -0
  12. package/dist/cjs/native.js +5 -0
  13. package/dist/cjs/nil.d.ts +2 -0
  14. package/dist/cjs/nil.js +4 -0
  15. package/dist/cjs/package.json +1 -0
  16. package/dist/cjs/parse.d.ts +2 -0
  17. package/dist/cjs/parse.js +12 -0
  18. package/dist/cjs/regex.d.ts +2 -0
  19. package/dist/cjs/regex.js +4 -0
  20. package/dist/cjs/rng.d.ts +1 -0
  21. package/dist/cjs/rng.js +14 -0
  22. package/dist/cjs/sha1.d.ts +2 -0
  23. package/dist/cjs/sha1.js +14 -0
  24. package/dist/cjs/stringify.d.ts +3 -0
  25. package/dist/cjs/stringify.js +39 -0
  26. package/dist/cjs/test/parse.test.d.ts +1 -0
  27. package/dist/cjs/test/parse.test.js +51 -0
  28. package/dist/cjs/test/rng.test.d.ts +1 -0
  29. package/dist/cjs/test/rng.test.js +15 -0
  30. package/dist/cjs/test/stringify.test.d.ts +1 -0
  31. package/dist/cjs/test/stringify.test.js +24 -0
  32. package/dist/cjs/test/test_constants.d.ts +33 -0
  33. package/dist/cjs/test/test_constants.js +92 -0
  34. package/dist/cjs/test/v1.test.d.ts +1 -0
  35. package/dist/cjs/test/v1.test.js +128 -0
  36. package/dist/cjs/test/v35.test.d.ts +1 -0
  37. package/dist/cjs/test/v35.test.js +144 -0
  38. package/dist/cjs/test/v4.test.d.ts +1 -0
  39. package/dist/cjs/test/v4.test.js +61 -0
  40. package/dist/cjs/test/v6.test.d.ts +1 -0
  41. package/dist/cjs/test/v6.test.js +57 -0
  42. package/dist/cjs/test/v7.test.d.ts +1 -0
  43. package/dist/cjs/test/v7.test.js +195 -0
  44. package/dist/cjs/test/validate.test.d.ts +1 -0
  45. package/dist/cjs/test/validate.test.js +14 -0
  46. package/dist/cjs/test/version.test.d.ts +1 -0
  47. package/dist/cjs/test/version.test.js +21 -0
  48. package/dist/cjs/uuid-bin.d.ts +1 -0
  49. package/dist/cjs/uuid-bin.js +73 -0
  50. package/dist/cjs/v1.d.ts +11 -0
  51. package/dist/cjs/v1.js +79 -0
  52. package/dist/cjs/v1ToV6.d.ts +2 -0
  53. package/dist/cjs/v1ToV6.js +14 -0
  54. package/dist/cjs/v3.d.ts +9 -0
  55. package/dist/cjs/v3.js +15 -0
  56. package/dist/cjs/v35.d.ts +7 -0
  57. package/dist/cjs/v35.js +42 -0
  58. package/dist/cjs/v4.d.ts +4 -0
  59. package/dist/cjs/v4.js +24 -0
  60. package/dist/cjs/v5.d.ts +9 -0
  61. package/dist/cjs/v5.js +15 -0
  62. package/dist/cjs/v6.d.ts +4 -0
  63. package/dist/cjs/v6.js +20 -0
  64. package/dist/cjs/v6ToV1.d.ts +2 -0
  65. package/dist/cjs/v6ToV1.js +14 -0
  66. package/dist/cjs/v7.d.ts +9 -0
  67. package/dist/cjs/v7.js +61 -0
  68. package/dist/cjs/validate.d.ts +2 -0
  69. package/dist/cjs/validate.js +8 -0
  70. package/dist/cjs/version.d.ts +2 -0
  71. package/dist/cjs/version.js +11 -0
  72. package/dist/cjs-browser/_types.d.ts +21 -0
  73. package/dist/cjs-browser/_types.js +3 -0
  74. package/dist/{esm-node/index.js → cjs-browser/index.d.ts} +1 -1
  75. package/dist/cjs-browser/index.js +32 -0
  76. package/dist/cjs-browser/max.d.ts +2 -0
  77. package/dist/cjs-browser/max.js +4 -0
  78. package/dist/cjs-browser/md5.d.ts +2 -0
  79. package/dist/cjs-browser/md5.js +138 -0
  80. package/dist/cjs-browser/native.d.ts +4 -0
  81. package/dist/cjs-browser/native.js +5 -0
  82. package/dist/cjs-browser/nil.d.ts +2 -0
  83. package/dist/cjs-browser/nil.js +4 -0
  84. package/dist/cjs-browser/package.json +1 -0
  85. package/dist/cjs-browser/parse.d.ts +2 -0
  86. package/dist/cjs-browser/parse.js +12 -0
  87. package/dist/cjs-browser/regex.d.ts +2 -0
  88. package/dist/cjs-browser/regex.js +4 -0
  89. package/dist/cjs-browser/rng.d.ts +1 -0
  90. package/dist/cjs-browser/rng.js +15 -0
  91. package/dist/cjs-browser/sha1.d.ts +2 -0
  92. package/dist/cjs-browser/sha1.js +73 -0
  93. package/dist/cjs-browser/stringify.d.ts +3 -0
  94. package/dist/cjs-browser/stringify.js +39 -0
  95. package/dist/cjs-browser/test/parse.test.d.ts +1 -0
  96. package/dist/cjs-browser/test/parse.test.js +51 -0
  97. package/dist/cjs-browser/test/rng.test.d.ts +1 -0
  98. package/dist/cjs-browser/test/rng.test.js +15 -0
  99. package/dist/cjs-browser/test/stringify.test.d.ts +1 -0
  100. package/dist/cjs-browser/test/stringify.test.js +24 -0
  101. package/dist/cjs-browser/test/test_constants.d.ts +33 -0
  102. package/dist/cjs-browser/test/test_constants.js +92 -0
  103. package/dist/cjs-browser/test/v1.test.d.ts +1 -0
  104. package/dist/cjs-browser/test/v1.test.js +128 -0
  105. package/dist/cjs-browser/test/v35.test.d.ts +1 -0
  106. package/dist/cjs-browser/test/v35.test.js +144 -0
  107. package/dist/cjs-browser/test/v4.test.d.ts +1 -0
  108. package/dist/cjs-browser/test/v4.test.js +61 -0
  109. package/dist/cjs-browser/test/v6.test.d.ts +1 -0
  110. package/dist/cjs-browser/test/v6.test.js +57 -0
  111. package/dist/cjs-browser/test/v7.test.d.ts +1 -0
  112. package/dist/cjs-browser/test/v7.test.js +195 -0
  113. package/dist/cjs-browser/test/validate.test.d.ts +1 -0
  114. package/dist/cjs-browser/test/validate.test.js +14 -0
  115. package/dist/cjs-browser/test/version.test.d.ts +1 -0
  116. package/dist/cjs-browser/test/version.test.js +21 -0
  117. package/dist/cjs-browser/uuid-bin.d.ts +1 -0
  118. package/dist/cjs-browser/uuid-bin.js +73 -0
  119. package/dist/cjs-browser/v1.d.ts +11 -0
  120. package/dist/cjs-browser/v1.js +79 -0
  121. package/dist/cjs-browser/v1ToV6.d.ts +2 -0
  122. package/dist/cjs-browser/v1ToV6.js +14 -0
  123. package/dist/cjs-browser/v3.d.ts +9 -0
  124. package/dist/cjs-browser/v3.js +15 -0
  125. package/dist/cjs-browser/v35.d.ts +7 -0
  126. package/dist/cjs-browser/v35.js +42 -0
  127. package/dist/cjs-browser/v4.d.ts +4 -0
  128. package/dist/cjs-browser/v4.js +24 -0
  129. package/dist/cjs-browser/v5.d.ts +9 -0
  130. package/dist/cjs-browser/v5.js +15 -0
  131. package/dist/cjs-browser/v6.d.ts +4 -0
  132. package/dist/cjs-browser/v6.js +20 -0
  133. package/dist/cjs-browser/v6ToV1.d.ts +2 -0
  134. package/dist/cjs-browser/v6ToV1.js +14 -0
  135. package/dist/cjs-browser/v7.d.ts +9 -0
  136. package/dist/cjs-browser/v7.js +61 -0
  137. package/dist/cjs-browser/validate.d.ts +2 -0
  138. package/dist/cjs-browser/validate.js +8 -0
  139. package/dist/cjs-browser/version.d.ts +2 -0
  140. package/dist/cjs-browser/version.js +11 -0
  141. package/dist/esm/_types.d.ts +21 -0
  142. package/dist/esm/_types.js +2 -0
  143. package/dist/esm/bin/uuid +2 -0
  144. package/dist/esm/index.d.ts +14 -0
  145. package/dist/esm/index.js +15 -0
  146. package/dist/esm/max.d.ts +2 -0
  147. package/dist/esm/max.js +2 -0
  148. package/dist/esm/md5.d.ts +2 -0
  149. package/dist/esm/md5.js +12 -0
  150. package/dist/esm/native.d.ts +5 -0
  151. package/dist/esm/native.js +3 -0
  152. package/dist/esm/nil.d.ts +2 -0
  153. package/dist/esm/nil.js +2 -0
  154. package/dist/esm/parse.d.ts +2 -0
  155. package/dist/esm/parse.js +10 -0
  156. package/dist/esm/regex.d.ts +2 -0
  157. package/dist/esm/regex.js +2 -0
  158. package/dist/esm/rng.d.ts +1 -0
  159. package/dist/esm/rng.js +11 -0
  160. package/dist/esm/sha1.d.ts +2 -0
  161. package/dist/esm/sha1.js +12 -0
  162. package/dist/esm/stringify.d.ts +3 -0
  163. package/dist/esm/stringify.js +36 -0
  164. package/dist/esm/test/parse.test.d.ts +1 -0
  165. package/dist/esm/test/parse.test.js +49 -0
  166. package/dist/esm/test/rng.test.d.ts +1 -0
  167. package/dist/esm/test/rng.test.js +13 -0
  168. package/dist/esm/test/stringify.test.d.ts +1 -0
  169. package/dist/esm/test/stringify.test.js +22 -0
  170. package/dist/esm/test/test_constants.d.ts +33 -0
  171. package/dist/esm/test/test_constants.js +89 -0
  172. package/dist/esm/test/v1.test.d.ts +1 -0
  173. package/dist/esm/test/v1.test.js +126 -0
  174. package/dist/esm/test/v35.test.d.ts +1 -0
  175. package/dist/esm/test/v35.test.js +142 -0
  176. package/dist/esm/test/v4.test.d.ts +1 -0
  177. package/dist/esm/test/v4.test.js +59 -0
  178. package/dist/esm/test/v6.test.d.ts +1 -0
  179. package/dist/esm/test/v6.test.js +55 -0
  180. package/dist/esm/test/v7.test.d.ts +1 -0
  181. package/dist/esm/test/v7.test.js +193 -0
  182. package/dist/esm/test/validate.test.d.ts +1 -0
  183. package/dist/esm/test/validate.test.js +12 -0
  184. package/dist/esm/test/version.test.d.ts +1 -0
  185. package/dist/esm/test/version.test.js +19 -0
  186. package/dist/esm/uuid-bin.d.ts +1 -0
  187. package/dist/esm/uuid-bin.js +71 -0
  188. package/dist/esm/v1.d.ts +11 -0
  189. package/dist/esm/v1.js +76 -0
  190. package/dist/esm/v1ToV6.d.ts +2 -0
  191. package/dist/esm/v1ToV6.js +11 -0
  192. package/dist/esm/v3.d.ts +9 -0
  193. package/dist/esm/v3.js +10 -0
  194. package/dist/esm/v35.d.ts +7 -0
  195. package/dist/esm/v35.js +37 -0
  196. package/dist/esm/v4.d.ts +4 -0
  197. package/dist/esm/v4.js +22 -0
  198. package/dist/esm/v5.d.ts +9 -0
  199. package/dist/esm/v5.js +10 -0
  200. package/dist/esm/v6.d.ts +4 -0
  201. package/dist/esm/v6.js +18 -0
  202. package/dist/esm/v6ToV1.d.ts +2 -0
  203. package/dist/esm/v6ToV1.js +11 -0
  204. package/dist/esm/v7.d.ts +9 -0
  205. package/dist/esm/v7.js +58 -0
  206. package/dist/esm/validate.d.ts +2 -0
  207. package/dist/esm/validate.js +6 -0
  208. package/dist/esm/version.d.ts +2 -0
  209. package/dist/esm/version.js +9 -0
  210. package/dist/esm-browser/_types.d.ts +21 -0
  211. package/dist/esm-browser/_types.js +2 -0
  212. package/dist/esm-browser/index.d.ts +14 -0
  213. package/dist/esm-browser/index.js +2 -1
  214. package/dist/esm-browser/max.d.ts +2 -0
  215. package/dist/esm-browser/max.js +2 -1
  216. package/dist/esm-browser/md5.d.ts +2 -0
  217. package/dist/esm-browser/md5.js +114 -172
  218. package/dist/esm-browser/native.d.ts +4 -0
  219. package/dist/esm-browser/native.js +3 -4
  220. package/dist/esm-browser/nil.d.ts +2 -0
  221. package/dist/esm-browser/nil.js +2 -1
  222. package/dist/esm-browser/parse.d.ts +2 -0
  223. package/dist/esm-browser/parse.js +7 -34
  224. package/dist/esm-browser/regex.d.ts +2 -0
  225. package/dist/esm-browser/regex.js +2 -1
  226. package/dist/esm-browser/rng.d.ts +1 -0
  227. package/dist/esm-browser/rng.js +9 -14
  228. package/dist/esm-browser/sha1.d.ts +2 -0
  229. package/dist/esm-browser/sha1.js +63 -68
  230. package/dist/esm-browser/stringify.d.ts +3 -0
  231. package/dist/esm-browser/stringify.js +30 -25
  232. package/dist/esm-browser/test/parse.test.d.ts +1 -0
  233. package/dist/esm-browser/test/parse.test.js +49 -0
  234. package/dist/esm-browser/test/rng.test.d.ts +1 -0
  235. package/dist/esm-browser/test/rng.test.js +13 -0
  236. package/dist/esm-browser/test/stringify.test.d.ts +1 -0
  237. package/dist/esm-browser/test/stringify.test.js +22 -0
  238. package/dist/esm-browser/test/test_constants.d.ts +33 -0
  239. package/dist/esm-browser/test/test_constants.js +89 -0
  240. package/dist/esm-browser/test/v1.test.d.ts +1 -0
  241. package/dist/esm-browser/test/v1.test.js +126 -0
  242. package/dist/esm-browser/test/v35.test.d.ts +1 -0
  243. package/dist/esm-browser/test/v35.test.js +142 -0
  244. package/dist/esm-browser/test/v4.test.d.ts +1 -0
  245. package/dist/esm-browser/test/v4.test.js +59 -0
  246. package/dist/esm-browser/test/v6.test.d.ts +1 -0
  247. package/dist/esm-browser/test/v6.test.js +55 -0
  248. package/dist/esm-browser/test/v7.test.d.ts +1 -0
  249. package/dist/esm-browser/test/v7.test.js +193 -0
  250. package/dist/esm-browser/test/validate.test.d.ts +1 -0
  251. package/dist/esm-browser/test/validate.test.js +12 -0
  252. package/dist/esm-browser/test/version.test.d.ts +1 -0
  253. package/dist/esm-browser/test/version.test.js +19 -0
  254. package/dist/esm-browser/uuid-bin.d.ts +1 -0
  255. package/dist/esm-browser/uuid-bin.js +71 -0
  256. package/dist/esm-browser/v1.d.ts +11 -0
  257. package/dist/esm-browser/v1.js +68 -117
  258. package/dist/esm-browser/v1ToV6.d.ts +2 -0
  259. package/dist/esm-browser/v1ToV6.js +7 -16
  260. package/dist/esm-browser/v3.d.ts +9 -0
  261. package/dist/esm-browser/v3.js +9 -3
  262. package/dist/esm-browser/v35.d.ts +7 -0
  263. package/dist/esm-browser/v35.js +29 -47
  264. package/dist/esm-browser/v4.d.ts +4 -0
  265. package/dist/esm-browser/v4.js +16 -19
  266. package/dist/esm-browser/v5.d.ts +9 -0
  267. package/dist/esm-browser/v5.js +9 -3
  268. package/dist/esm-browser/v6.d.ts +4 -0
  269. package/dist/esm-browser/v6.js +14 -32
  270. package/dist/esm-browser/v6ToV1.d.ts +2 -0
  271. package/dist/esm-browser/v6ToV1.js +6 -15
  272. package/dist/esm-browser/v7.d.ts +9 -0
  273. package/dist/esm-browser/v7.js +51 -139
  274. package/dist/esm-browser/validate.d.ts +2 -0
  275. package/dist/esm-browser/validate.js +3 -2
  276. package/dist/esm-browser/version.d.ts +2 -0
  277. package/dist/esm-browser/version.js +6 -5
  278. package/package.json +54 -64
  279. package/wrapper.mjs +1 -1
  280. package/dist/bin/uuid +0 -2
  281. package/dist/commonjs-browser/index.js +0 -104
  282. package/dist/commonjs-browser/max.js +0 -7
  283. package/dist/commonjs-browser/md5.js +0 -200
  284. package/dist/commonjs-browser/native.js +0 -10
  285. package/dist/commonjs-browser/nil.js +0 -7
  286. package/dist/commonjs-browser/parse.js +0 -44
  287. package/dist/commonjs-browser/regex.js +0 -7
  288. package/dist/commonjs-browser/rng.js +0 -23
  289. package/dist/commonjs-browser/sha1.js +0 -82
  290. package/dist/commonjs-browser/stringify.js +0 -38
  291. package/dist/commonjs-browser/v1.js +0 -131
  292. package/dist/commonjs-browser/v1ToV6.js +0 -26
  293. package/dist/commonjs-browser/v3.js +0 -11
  294. package/dist/commonjs-browser/v35.js +0 -63
  295. package/dist/commonjs-browser/v4.js +0 -32
  296. package/dist/commonjs-browser/v5.js +0 -11
  297. package/dist/commonjs-browser/v6.js +0 -42
  298. package/dist/commonjs-browser/v6ToV1.js +0 -26
  299. package/dist/commonjs-browser/v7.js +0 -152
  300. package/dist/commonjs-browser/validate.js +0 -12
  301. package/dist/commonjs-browser/version.js +0 -15
  302. package/dist/esm-node/max.js +0 -1
  303. package/dist/esm-node/md5.js +0 -10
  304. package/dist/esm-node/native.js +0 -4
  305. package/dist/esm-node/nil.js +0 -1
  306. package/dist/esm-node/parse.js +0 -37
  307. package/dist/esm-node/regex.js +0 -1
  308. package/dist/esm-node/rng.js +0 -10
  309. package/dist/esm-node/sha1.js +0 -10
  310. package/dist/esm-node/stringify.js +0 -31
  311. package/dist/esm-node/v1.js +0 -125
  312. package/dist/esm-node/v1ToV6.js +0 -20
  313. package/dist/esm-node/v3.js +0 -4
  314. package/dist/esm-node/v35.js +0 -55
  315. package/dist/esm-node/v4.js +0 -25
  316. package/dist/esm-node/v5.js +0 -4
  317. package/dist/esm-node/v6.js +0 -32
  318. package/dist/esm-node/v6ToV1.js +0 -20
  319. package/dist/esm-node/v7.js +0 -146
  320. package/dist/esm-node/validate.js +0 -5
  321. package/dist/esm-node/version.js +0 -8
  322. package/dist/index.js +0 -104
  323. package/dist/max.js +0 -7
  324. package/dist/md5-browser.js +0 -200
  325. package/dist/md5.js +0 -17
  326. package/dist/native-browser.js +0 -10
  327. package/dist/native.js +0 -11
  328. package/dist/nil.js +0 -7
  329. package/dist/parse.js +0 -44
  330. package/dist/regex.js +0 -7
  331. package/dist/rng-browser.js +0 -23
  332. package/dist/rng.js +0 -17
  333. package/dist/sha1-browser.js +0 -82
  334. package/dist/sha1.js +0 -17
  335. package/dist/stringify.js +0 -38
  336. package/dist/uuid-bin.js +0 -75
  337. package/dist/v1.js +0 -131
  338. package/dist/v1ToV6.js +0 -26
  339. package/dist/v3.js +0 -11
  340. package/dist/v35.js +0 -63
  341. package/dist/v4.js +0 -32
  342. package/dist/v5.js +0 -11
  343. package/dist/v6.js +0 -38
  344. package/dist/v6ToV1.js +0 -26
  345. package/dist/v7.js +0 -152
  346. package/dist/validate.js +0 -12
  347. package/dist/version.js +0 -15
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assert = require("assert");
4
+ const node_test_1 = require("node:test");
5
+ const md5_js_1 = require("../md5.js");
6
+ const sha1_js_1 = require("../sha1.js");
7
+ const v3_js_1 = require("../v3.js");
8
+ const v35_js_1 = require("../v35.js");
9
+ const v5_js_1 = require("../v5.js");
10
+ (0, node_test_1.describe)('v35', () => {
11
+ const HASH_SAMPLES = [
12
+ {
13
+ input: (0, v35_js_1.stringToBytes)(''),
14
+ sha1: 'da39a3ee5e6b4b0d3255bfef95601890afd80709',
15
+ md5: 'd41d8cd98f00b204e9800998ecf8427e',
16
+ },
17
+ {
18
+ input: (0, v35_js_1.stringToBytes)('\t\b\f !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7\u00A8\u00A9\u00AA\u00AB\u00AC\u00AE\u00AF\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u00DE\u00DF\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD\u00FE\u00FF'),
19
+ sha1: 'ca4a426a3d536f14cfd79011e79e10d64de950a0',
20
+ md5: 'e8098ec21950f841731d28749129d3ee',
21
+ },
22
+ {
23
+ input: (0, v35_js_1.stringToBytes)('\u00A5\u0104\u018F\u0256\u02B1o\u0315\u038E\u0409\u0500\u0531\u05E1\u05B6\u0920\u0903\u09A4\u0983\u0A20\u0A02\u0AA0\u0A83\u0B06\u0C05\u0C03\u1401\u16A0'),
24
+ sha1: 'f2753ebc390e5f637e333c2a4179644a93ae9f65',
25
+ md5: '231b309e277b6be8bb3d6c688b7f098b',
26
+ },
27
+ ];
28
+ function hashToHex(hash) {
29
+ const chars = new Array(hash.length);
30
+ for (let i = 0; i < hash.length; i++) {
31
+ chars[i] = hash[i].toString(16).padStart(2, '0');
32
+ }
33
+ return chars.join('');
34
+ }
35
+ HASH_SAMPLES.forEach(function (sample, i) {
36
+ (0, node_test_1.default)(`sha1(node) HASH_SAMPLES[${i}]`, () => {
37
+ assert.equal(hashToHex((0, sha1_js_1.default)(sample.input)), sample.sha1);
38
+ });
39
+ });
40
+ HASH_SAMPLES.forEach(function (sample, i) {
41
+ (0, node_test_1.default)(`md5(node) HASH_SAMPLES[${i}]`, () => {
42
+ assert.equal(hashToHex((0, md5_js_1.default)(sample.input)), sample.md5);
43
+ });
44
+ });
45
+ (0, node_test_1.default)('v3', () => {
46
+ assert.strictEqual((0, v3_js_1.default)('hello.example.com', v3_js_1.default.DNS), '9125a8dc-52ee-365b-a5aa-81b0b3681cf6');
47
+ assert.strictEqual((0, v3_js_1.default)('http://example.com/hello', v3_js_1.default.URL), 'c6235813-3ba4-3801-ae84-e0a6ebb7d138');
48
+ assert.strictEqual((0, v3_js_1.default)('hello', '0f5abcd1-c194-47f3-905b-2df7263a084b'), 'a981a0c2-68b1-35dc-bcfc-296e52ab01ec');
49
+ });
50
+ (0, node_test_1.default)('v3 namespace.toUpperCase', () => {
51
+ assert.strictEqual((0, v3_js_1.default)('hello.example.com', v3_js_1.default.DNS.toUpperCase()), '9125a8dc-52ee-365b-a5aa-81b0b3681cf6');
52
+ assert.strictEqual((0, v3_js_1.default)('http://example.com/hello', v3_js_1.default.URL.toUpperCase()), 'c6235813-3ba4-3801-ae84-e0a6ebb7d138');
53
+ assert.strictEqual((0, v3_js_1.default)('hello', '0f5abcd1-c194-47f3-905b-2df7263a084b'.toUpperCase()), 'a981a0c2-68b1-35dc-bcfc-296e52ab01ec');
54
+ });
55
+ (0, node_test_1.default)('v3 namespace string validation', () => {
56
+ assert.throws(() => {
57
+ (0, v3_js_1.default)('hello.example.com', 'zyxwvuts-rqpo-nmlk-jihg-fedcba000000');
58
+ });
59
+ assert.throws(() => {
60
+ (0, v3_js_1.default)('hello.example.com', 'invalid uuid value');
61
+ });
62
+ assert.ok((0, v3_js_1.default)('hello.example.com', '00000000-0000-0000-0000-000000000000'));
63
+ });
64
+ (0, node_test_1.default)('v3 namespace buffer validation', () => {
65
+ assert.throws(() => {
66
+ (0, v3_js_1.default)('hello.example.com', new Uint8Array(15));
67
+ });
68
+ assert.throws(() => {
69
+ (0, v3_js_1.default)('hello.example.com', new Uint8Array(17));
70
+ });
71
+ assert.ok((0, v3_js_1.default)('hello.example.com', new Uint8Array(16).fill(0)));
72
+ });
73
+ (0, node_test_1.default)('v3 fill buffer', () => {
74
+ let buf = new Uint8Array(16);
75
+ const expectedUuid = Uint8Array.of(0x91, 0x25, 0xa8, 0xdc, 0x52, 0xee, 0x36, 0x5b, 0xa5, 0xaa, 0x81, 0xb0, 0xb3, 0x68, 0x1c, 0xf6);
76
+ const result = (0, v3_js_1.default)('hello.example.com', v3_js_1.default.DNS, buf);
77
+ assert.deepEqual(buf, expectedUuid);
78
+ assert.strictEqual(result, buf);
79
+ buf = new Uint8Array(19).fill(0xaa);
80
+ const expectedBuf = new Uint8Array(19).fill(0xaa);
81
+ expectedBuf.set(expectedUuid, 3);
82
+ (0, v3_js_1.default)('hello.example.com', v3_js_1.default.DNS, buf, 3);
83
+ assert.deepEqual(buf, expectedBuf);
84
+ });
85
+ (0, node_test_1.default)('v3 undefined/null', () => {
86
+ assert.throws(() => (0, v3_js_1.default)());
87
+ assert.throws(() => (0, v3_js_1.default)('hello'));
88
+ assert.throws(() => (0, v3_js_1.default)('hello.example.com', undefined));
89
+ assert.throws(() => (0, v3_js_1.default)('hello.example.com', null, new Uint8Array(16)));
90
+ });
91
+ (0, node_test_1.default)('v5', () => {
92
+ assert.strictEqual((0, v5_js_1.default)('hello.example.com', v5_js_1.default.DNS), 'fdda765f-fc57-5604-a269-52a7df8164ec');
93
+ assert.strictEqual((0, v5_js_1.default)('http://example.com/hello', v5_js_1.default.URL), '3bbcee75-cecc-5b56-8031-b6641c1ed1f1');
94
+ assert.strictEqual((0, v5_js_1.default)('hello', '0f5abcd1-c194-47f3-905b-2df7263a084b'), '90123e1c-7512-523e-bb28-76fab9f2f73d');
95
+ });
96
+ (0, node_test_1.default)('v5 namespace.toUpperCase', () => {
97
+ assert.strictEqual((0, v5_js_1.default)('hello.example.com', v5_js_1.default.DNS.toUpperCase()), 'fdda765f-fc57-5604-a269-52a7df8164ec');
98
+ assert.strictEqual((0, v5_js_1.default)('http://example.com/hello', v5_js_1.default.URL.toUpperCase()), '3bbcee75-cecc-5b56-8031-b6641c1ed1f1');
99
+ assert.strictEqual((0, v5_js_1.default)('hello', '0f5abcd1-c194-47f3-905b-2df7263a084b'.toUpperCase()), '90123e1c-7512-523e-bb28-76fab9f2f73d');
100
+ });
101
+ (0, node_test_1.default)('v5 namespace string validation', () => {
102
+ assert.throws(() => {
103
+ (0, v5_js_1.default)('hello.example.com', 'zyxwvuts-rqpo-nmlk-jihg-fedcba000000');
104
+ });
105
+ assert.throws(() => {
106
+ (0, v5_js_1.default)('hello.example.com', 'invalid uuid value');
107
+ });
108
+ assert.ok((0, v5_js_1.default)('hello.example.com', '00000000-0000-0000-0000-000000000000'));
109
+ });
110
+ (0, node_test_1.default)('v5 namespace buffer validation', () => {
111
+ assert.throws(() => {
112
+ (0, v5_js_1.default)('hello.example.com', new Uint8Array(15));
113
+ });
114
+ assert.throws(() => {
115
+ (0, v5_js_1.default)('hello.example.com', new Uint8Array(17));
116
+ });
117
+ assert.ok((0, v5_js_1.default)('hello.example.com', new Uint8Array(16).fill(0)));
118
+ });
119
+ (0, node_test_1.default)('v5 fill buffer', () => {
120
+ let buf = new Uint8Array(16);
121
+ const expectedUuid = Uint8Array.of(0xfd, 0xda, 0x76, 0x5f, 0xfc, 0x57, 0x56, 0x04, 0xa2, 0x69, 0x52, 0xa7, 0xdf, 0x81, 0x64, 0xec);
122
+ const result = (0, v5_js_1.default)('hello.example.com', v5_js_1.default.DNS, buf);
123
+ assert.deepEqual(buf, expectedUuid);
124
+ assert.strictEqual(result, buf);
125
+ buf = new Uint8Array(19).fill(0xaa);
126
+ const expectedBuf = new Uint8Array(19).fill(0xaa);
127
+ expectedBuf.set(expectedUuid, 3);
128
+ (0, v5_js_1.default)('hello.example.com', v5_js_1.default.DNS, buf, 3);
129
+ assert.deepEqual(buf, expectedBuf);
130
+ });
131
+ (0, node_test_1.default)('v5 undefined/null', () => {
132
+ assert.throws(() => (0, v5_js_1.default)());
133
+ assert.throws(() => (0, v5_js_1.default)('hello'));
134
+ assert.throws(() => (0, v5_js_1.default)('hello.example.com', undefined));
135
+ assert.throws(() => (0, v5_js_1.default)('hello.example.com', null, new Uint8Array(16)));
136
+ });
137
+ (0, node_test_1.default)('v3/v5 constants', () => {
138
+ assert.strictEqual(v3_js_1.default.DNS, '6ba7b810-9dad-11d1-80b4-00c04fd430c8');
139
+ assert.strictEqual(v3_js_1.default.URL, '6ba7b811-9dad-11d1-80b4-00c04fd430c8');
140
+ assert.strictEqual(v5_js_1.default.DNS, '6ba7b810-9dad-11d1-80b4-00c04fd430c8');
141
+ assert.strictEqual(v5_js_1.default.URL, '6ba7b811-9dad-11d1-80b4-00c04fd430c8');
142
+ });
143
+ });
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjM1LnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdC92MzUudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlDQUFpQztBQUNqQyx5Q0FBMkM7QUFDM0Msc0NBQTRCO0FBQzVCLHdDQUE4QjtBQUM5QixvQ0FBMEI7QUFDMUIsc0NBQTBDO0FBQzFDLG9DQUEwQjtBQUUxQixJQUFBLG9CQUFRLEVBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtJQUNuQixNQUFNLFlBQVksR0FBRztRQUNuQjtZQUNFLEtBQUssRUFBRSxJQUFBLHNCQUFhLEVBQUMsRUFBRSxDQUFDO1lBQ3hCLElBQUksRUFBRSwwQ0FBMEM7WUFDaEQsR0FBRyxFQUFFLGtDQUFrQztTQUN4QztRQUdEO1lBQ0UsS0FBSyxFQUFFLElBQUEsc0JBQWEsRUFDbEIsOHBCQUE4cEIsQ0FDL3BCO1lBQ0QsSUFBSSxFQUFFLDBDQUEwQztZQUNoRCxHQUFHLEVBQUUsa0NBQWtDO1NBQ3hDO1FBR0Q7WUFDRSxLQUFLLEVBQUUsSUFBQSxzQkFBYSxFQUNsQix5SkFBeUosQ0FDMUo7WUFDRCxJQUFJLEVBQUUsMENBQTBDO1lBQ2hELEdBQUcsRUFBRSxrQ0FBa0M7U0FDeEM7S0FDRixDQUFDO0lBRUYsU0FBUyxTQUFTLENBQUMsSUFBZ0I7UUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDckMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsT0FBTyxLQUFL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
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assert = require("assert");
4
+ const node_test_1 = require("node:test");
5
+ const native_js_1 = require("../native.js");
6
+ const v4_js_1 = require("../v4.js");
7
+ const randomBytesFixture = Uint8Array.of(0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea, 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36);
8
+ const expectedBytes = Uint8Array.of(16, 145, 86, 190, 196, 251, 65, 234, 177, 180, 239, 225, 103, 28, 88, 54);
9
+ (0, node_test_1.describe)('v4', () => {
10
+ (0, node_test_1.default)('subsequent UUIDs are different', () => {
11
+ const id1 = (0, v4_js_1.default)();
12
+ const id2 = (0, v4_js_1.default)();
13
+ assert.ok(id1 !== id2);
14
+ });
15
+ (0, node_test_1.default)('should uses native randomUUID() if no option is passed', async () => {
16
+ const mock = (await Promise.resolve().then(() => require('node:test'))).default.mock;
17
+ if (!mock) {
18
+ return;
19
+ }
20
+ const mockRandomUUID = mock.method(native_js_1.default, 'randomUUID');
21
+ assert.equal(mockRandomUUID.mock.callCount(), 0);
22
+ (0, v4_js_1.default)();
23
+ assert.equal(mockRandomUUID.mock.callCount(), 1);
24
+ mock.restoreAll();
25
+ });
26
+ (0, node_test_1.default)('should not use native randomUUID() if an option is passed', async () => {
27
+ const mock = (await Promise.resolve().then(() => require('node:test'))).default.mock;
28
+ if (!mock) {
29
+ return;
30
+ }
31
+ const mockRandomUUID = mock.method(native_js_1.default, 'randomUUID');
32
+ assert.equal(mockRandomUUID.mock.callCount(), 0);
33
+ (0, v4_js_1.default)({});
34
+ assert.equal(mockRandomUUID.mock.callCount(), 0);
35
+ mock.restoreAll();
36
+ });
37
+ (0, node_test_1.default)('explicit options.random produces expected result', () => {
38
+ const id = (0, v4_js_1.default)({ random: randomBytesFixture });
39
+ assert.strictEqual(id, '109156be-c4fb-41ea-b1b4-efe1671c5836');
40
+ });
41
+ (0, node_test_1.default)('explicit options.rng produces expected result', () => {
42
+ const id = (0, v4_js_1.default)({ rng: () => randomBytesFixture });
43
+ assert.strictEqual(id, '109156be-c4fb-41ea-b1b4-efe1671c5836');
44
+ });
45
+ (0, node_test_1.default)('fills one UUID into a buffer as expected', () => {
46
+ const buffer = new Uint8Array(16);
47
+ const result = (0, v4_js_1.default)({ random: randomBytesFixture }, buffer);
48
+ assert.deepEqual(buffer, expectedBytes);
49
+ assert.strictEqual(buffer, result);
50
+ });
51
+ (0, node_test_1.default)('fills two UUIDs into a buffer as expected', () => {
52
+ const buffer = new Uint8Array(32);
53
+ (0, v4_js_1.default)({ random: randomBytesFixture }, buffer, 0);
54
+ (0, v4_js_1.default)({ random: randomBytesFixture }, buffer, 16);
55
+ const expectedBuf = new Uint8Array(32);
56
+ expectedBuf.set(expectedBytes);
57
+ expectedBuf.set(expectedBytes, 16);
58
+ assert.deepEqual(buffer, expectedBuf);
59
+ });
60
+ });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjQudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0L3Y0LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBaUM7QUFDakMseUNBQTJDO0FBQzNDLDRDQUFrQztBQUNsQyxvQ0FBMEI7QUFFMUIsTUFBTSxrQkFBa0IsR0FBRyxVQUFVLENBQUMsRUFBRSxDQUN0QyxJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLENBQ0wsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBQ2pDLEVBQUUsRUFDRixHQUFHLEVBQ0gsRUFBRSxFQUNGLEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILEVBQUUsRUFDRixHQUFHLEVBQ0gsR0FBRyxFQUNILEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILEdBQUcsRUFDSCxFQUFFLEVBQ0YsRUFBRSxFQUNGLEVBQUUsQ0FDSCxDQUFDO0FBRUYsSUFBQSxvQkFBUSxFQUFDLElBQUksRUFBRSxHQUFHLEVBQUU7SUFDbEIsSUFBQSxtQkFBSSxFQUFDLGdDQUFnQyxFQUFFLEdBQUcsRUFBRTtRQUMxQyxNQUFNLEdBQUcsR0FBRyxJQUFBLGVBQUUsR0FBRSxDQUFDO1FBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUEsZUFBRSxHQUFFLENBQUM7UUFFakIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFBLG1CQUFJLEVBQUMsd0RBQXdELEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFJeEUsTUFBTSxJQUFJLEdBQUcsQ0FBQywyQ0FB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
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assert = require("assert");
4
+ const node_test_1 = require("node:test");
5
+ const v1ToV6_js_1 = require("../v1ToV6.js");
6
+ const v6_js_1 = require("../v6.js");
7
+ const v6ToV1_js_1 = require("../v6ToV1.js");
8
+ (0, node_test_1.describe)('v6', () => {
9
+ const V1_ID = 'f1207660-21d2-11ef-8c4f-419efbd44d48';
10
+ const V6_ID = '1ef21d2f-1207-6660-8c4f-419efbd44d48';
11
+ const fullOptions = {
12
+ msecs: 0x133b891f705,
13
+ nsecs: 0x1538,
14
+ clockseq: 0x385c,
15
+ node: Uint8Array.of(0x61, 0xcd, 0x3c, 0xbb, 0x32, 0x10),
16
+ };
17
+ const EXPECTED_BYTES = Uint8Array.of(0x1e, 0x11, 0x22, 0xbd, 0x94, 0x28, 0x68, 0x88, 0xb8, 0x5c, 0x61, 0xcd, 0x3c, 0xbb, 0x32, 0x10);
18
+ (0, node_test_1.default)('default behavior', () => {
19
+ const id = (0, v6_js_1.default)();
20
+ assert.ok(/[0-9a-f]{8}-[0-9a-f]{4}-6[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/.test(id), 'id is valid v6 UUID');
21
+ });
22
+ (0, node_test_1.default)('default behavior (binary type)', () => {
23
+ const buffer = new Uint8Array(16);
24
+ const result = (0, v6_js_1.default)(fullOptions, buffer);
25
+ assert.deepEqual(buffer, EXPECTED_BYTES);
26
+ assert.strictEqual(buffer, result);
27
+ });
28
+ (0, node_test_1.default)('all options', () => {
29
+ const id = (0, v6_js_1.default)(fullOptions);
30
+ assert.equal(id, '1e1122bd-9428-6888-b85c-61cd3cbb3210');
31
+ });
32
+ (0, node_test_1.default)('sort by creation time', () => {
33
+ const ids = [];
34
+ for (let i = 0; i < 5; i++) {
35
+ ids.push((0, v6_js_1.default)({ msecs: i * 1000 }));
36
+ }
37
+ assert.deepEqual(ids, ids.slice().sort());
38
+ });
39
+ (0, node_test_1.default)('creating at array offset', () => {
40
+ const buffer = new Uint8Array(32);
41
+ (0, v6_js_1.default)(fullOptions, buffer, 0);
42
+ (0, v6_js_1.default)(fullOptions, buffer, 16);
43
+ const expectedBuf = new Uint8Array(32);
44
+ expectedBuf.set(EXPECTED_BYTES, 0);
45
+ expectedBuf.set(EXPECTED_BYTES, 16);
46
+ assert.deepEqual(buffer, expectedBuf);
47
+ });
48
+ (0, node_test_1.default)('v1 -> v6 conversion', () => {
49
+ const id = (0, v1ToV6_js_1.default)(V1_ID);
50
+ assert.equal(id, V6_ID);
51
+ });
52
+ (0, node_test_1.default)('v6 -> v1 conversion', () => {
53
+ const id = (0, v6ToV1_js_1.default)(V6_ID);
54
+ assert.equal(id, V1_ID);
55
+ });
56
+ });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjYudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0L3Y2LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBaUM7QUFDakMseUNBQTJDO0FBQzNDLDRDQUFrQztBQUNsQyxvQ0FBMEI7QUFDMUIsNENBQWtDO0FBRWxDLElBQUEsb0JBQVEsRUFBQyxJQUFJLEVBQUUsR0FBRyxFQUFFO0lBQ2xCLE1BQU0sS0FBSyxHQUFHLHNDQUFzQyxDQUFDO0lBQ3JELE1BQU0sS0FBSyxHQUFHLHNDQUFzQyxDQUFDO0lBRXJELE1BQU0sV0FBVyxHQUFHO1FBQ2xCLEtBQUssRUFBRSxhQUFhO1FBQ3BCLEtBQUssRUFBRSxNQUFNO1FBQ2IsUUFBUSxFQUFFLE1BQU07UUFDaEIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7S0FDeEQsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBQ2xDLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksQ0FDTCxDQUFDO0lBRUYsSUFBQSxtQkFBSSxFQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtRQUU1QixNQUFNLEVBQUUsR0FBRyxJQUFBLGVBQUUsR0FBRSxDQUFDO1FBQ2hCLE1BQU0sQ0FBQyxFQUFFLENBQ1AscUVBQXFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUU5RSxxQkFBcUIsQ0FDdEIsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBQSxtQkFBSSxFQUFDLGdDQUFnQyxF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
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assert = require("assert");
4
+ const node_test_1 = require("node:test");
5
+ const parse_js_1 = require("../parse.js");
6
+ const stringify_js_1 = require("../stringify.js");
7
+ const v7_js_1 = require("../v7.js");
8
+ const RFC_V7 = '017f22e2-79b0-7cc3-98c4-dc0c0c07398f';
9
+ const RFC_V7_BYTES = (0, parse_js_1.default)('017f22e2-79b0-7cc3-98c4-dc0c0c07398f');
10
+ const RFC_MSECS = 0x17f22e279b0;
11
+ const RFC_SEQ = (0x0cc3 << 20) | (0x98c4dc >> 2);
12
+ const RFC_RANDOM = Uint8Array.of(0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0x0c, 0xc3, 0x18, 0xc4, 0x6c, 0x0c, 0x0c, 0x07, 0x39, 0x8f);
13
+ (0, node_test_1.describe)('v7', () => {
14
+ (0, node_test_1.default)('subsequent UUIDs are different', () => {
15
+ const id1 = (0, v7_js_1.default)();
16
+ const id2 = (0, v7_js_1.default)();
17
+ assert.ok(id1 !== id2);
18
+ });
19
+ (0, node_test_1.default)('explicit options.random and options.msecs produces expected result', () => {
20
+ const id = (0, v7_js_1.default)({
21
+ random: RFC_RANDOM,
22
+ msecs: RFC_MSECS,
23
+ seq: RFC_SEQ,
24
+ });
25
+ assert.strictEqual(id, RFC_V7);
26
+ });
27
+ (0, node_test_1.default)('explicit options.rng produces expected result', () => {
28
+ const id = (0, v7_js_1.default)({
29
+ rng: () => RFC_RANDOM,
30
+ msecs: RFC_MSECS,
31
+ seq: RFC_SEQ,
32
+ });
33
+ assert.strictEqual(id, RFC_V7);
34
+ });
35
+ (0, node_test_1.default)('explicit options.msecs produces expected result', () => {
36
+ const id = (0, v7_js_1.default)({
37
+ msecs: RFC_MSECS,
38
+ });
39
+ assert.strictEqual(id.indexOf('017f22e2'), 0);
40
+ });
41
+ (0, node_test_1.default)('fills one UUID into a buffer as expected', () => {
42
+ const buffer = new Uint8Array(16);
43
+ const result = (0, v7_js_1.default)({
44
+ random: RFC_RANDOM,
45
+ msecs: RFC_MSECS,
46
+ seq: RFC_SEQ,
47
+ }, buffer);
48
+ (0, stringify_js_1.default)(buffer);
49
+ assert.deepEqual(buffer, RFC_V7_BYTES);
50
+ assert.strictEqual(buffer, result);
51
+ });
52
+ (0, node_test_1.default)('fills two UUIDs into a buffer as expected', () => {
53
+ const buffer = new Uint8Array(32);
54
+ (0, v7_js_1.default)({
55
+ random: RFC_RANDOM,
56
+ msecs: RFC_MSECS,
57
+ seq: RFC_SEQ,
58
+ }, buffer, 0);
59
+ (0, v7_js_1.default)({
60
+ random: RFC_RANDOM,
61
+ msecs: RFC_MSECS,
62
+ seq: RFC_SEQ,
63
+ }, buffer, 16);
64
+ const expected = new Uint8Array(32);
65
+ expected.set(RFC_V7_BYTES);
66
+ expected.set(RFC_V7_BYTES, 16);
67
+ assert.deepEqual(buffer, expected);
68
+ });
69
+ (0, node_test_1.default)('lexicographical sorting is preserved', () => {
70
+ let id;
71
+ let prior;
72
+ let msecs = RFC_MSECS;
73
+ for (let i = 0; i < 20000; ++i) {
74
+ if (i % 1500 === 0) {
75
+ msecs += 1;
76
+ }
77
+ id = (0, v7_js_1.default)({ msecs, seq: i });
78
+ if (prior !== undefined) {
79
+ assert.ok(prior < id, `${prior} < ${id}`);
80
+ }
81
+ prior = id;
82
+ }
83
+ });
84
+ (0, node_test_1.default)('can supply seq', () => {
85
+ let seq = 0x12345;
86
+ let uuid = (0, v7_js_1.default)({
87
+ msecs: RFC_MSECS,
88
+ seq,
89
+ });
90
+ assert.strictEqual(uuid.substr(0, 25), '017f22e2-79b0-7000-848d-1');
91
+ seq = 0x6fffffff;
92
+ uuid = (0, v7_js_1.default)({
93
+ msecs: RFC_MSECS,
94
+ seq,
95
+ });
96
+ assert.strictEqual(uuid.substring(0, 25), '017f22e2-79b0-76ff-bfff-f');
97
+ });
98
+ (0, node_test_1.default)('internal seq is reset upon timestamp change', () => {
99
+ (0, v7_js_1.default)({
100
+ msecs: RFC_MSECS,
101
+ seq: 0x6fffffff,
102
+ });
103
+ const uuid = (0, v7_js_1.default)({
104
+ msecs: RFC_MSECS + 1,
105
+ });
106
+ assert.ok(uuid.indexOf('fff') !== 15);
107
+ });
108
+ (0, node_test_1.default)('v7() state transitions', () => {
109
+ const tests = [
110
+ {
111
+ title: 'new time interval',
112
+ state: { msecs: 1, seq: 123 },
113
+ now: 2,
114
+ expected: {
115
+ msecs: 2,
116
+ seq: 0x6c318c4,
117
+ },
118
+ },
119
+ {
120
+ title: 'same time interval',
121
+ state: { msecs: 1, seq: 123 },
122
+ now: 1,
123
+ expected: {
124
+ msecs: 1,
125
+ seq: 124,
126
+ },
127
+ },
128
+ {
129
+ title: 'same time interval (sequence rollover)',
130
+ state: { msecs: 1, seq: 0xffffffff },
131
+ now: 1,
132
+ expected: {
133
+ msecs: 2,
134
+ seq: 0,
135
+ },
136
+ },
137
+ {
138
+ title: 'time regression',
139
+ state: { msecs: 2, seq: 123 },
140
+ now: 1,
141
+ expected: {
142
+ msecs: 2,
143
+ seq: 124,
144
+ },
145
+ },
146
+ {
147
+ title: 'time regression (sequence rollover)',
148
+ state: { msecs: 2, seq: 0xffffffff },
149
+ now: 1,
150
+ expected: {
151
+ msecs: 3,
152
+ seq: 0,
153
+ },
154
+ },
155
+ ];
156
+ for (const { title, state, now, expected } of tests) {
157
+ assert.deepStrictEqual((0, v7_js_1.updateV7State)(state, now, RFC_RANDOM), expected, `Failed: ${title}`);
158
+ }
159
+ });
160
+ (0, node_test_1.default)('flipping bits changes the result', () => {
161
+ const asBigInt = (buf) => buf.reduce((acc, v) => (acc << 8n) | BigInt(v), 0n);
162
+ const asNumber = (bits, data) => Number(BigInt.asUintN(bits, data));
163
+ const flip = (data, n) => data ^ (1n << BigInt(127 - n));
164
+ const optionsFrom = (data) => {
165
+ const ms = asNumber(48, data >> 80n);
166
+ const hi = asNumber(12, data >> 64n);
167
+ const lo = asNumber(20, data >> 42n);
168
+ const r = BigInt.asUintN(42, data);
169
+ return {
170
+ msecs: ms,
171
+ seq: (hi << 20) | lo,
172
+ random: Uint8Array.from([
173
+ ...Array(10).fill(0),
174
+ ...Array(6)
175
+ .fill(0)
176
+ .map((_, i) => asNumber(8, r >> (BigInt(i) * 8n)))
177
+ .reverse(),
178
+ ]),
179
+ };
180
+ };
181
+ const buf = new Uint8Array(16);
182
+ const data = asBigInt((0, v7_js_1.default)({}, buf));
183
+ const id = (0, stringify_js_1.default)(buf);
184
+ const reserved = [48, 49, 50, 51, 64, 65];
185
+ for (let i = 0; i < 128; ++i) {
186
+ if (reserved.includes(i)) {
187
+ continue;
188
+ }
189
+ const flipped = flip(data, i);
190
+ assert.strictEqual(asBigInt((0, v7_js_1.default)(optionsFrom(flipped), buf)).toString(16), flipped.toString(16), `Unequal uuids at bit ${i}`);
191
+ assert.notStrictEqual((0, stringify_js_1.default)(buf), id);
192
+ }
193
+ });
194
+ });
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjcudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0L3Y3LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBaUM7QUFDakMseUNBQTJDO0FBRTNDLDBDQUFnQztBQUNoQyxrREFBd0M7QUFDeEMsb0NBQTZDO0FBSTdDLE1BQU0sTUFBTSxHQUFHLHNDQUFzQyxDQUFDO0FBQ3RELE1BQU0sWUFBWSxHQUFHLElBQUEsa0JBQUssRUFBQyxzQ0FBc0MsQ0FBQyxDQUFDO0FBQ25FLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQztBQUdoQyxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUdqRCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsRUFBRSxDQUM5QixJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLENBQ0wsQ0FBQztBQUVGLElBQUEsb0JBQVEsRUFBQyxJQUFJLEVBQUUsR0FBRyxFQUFFO0lBQ2xCLElBQUEsbUJBQUksRUFBQyxnQ0FBZ0MsRUFBRSxHQUFHLEVBQUU7UUFDMUMsTUFBTSxHQUFHLEdBQUcsSUFBQSxlQUFFLEdBQUUsQ0FBQztRQUNqQixNQUFNLEdBQUcsR0FBRyxJQUFBLGVBQUUsR0FBRSxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBQSxtQkFBSSxFQUFDLG9FQUFvRSxFQUFFLEdBQUcsRUFBRTtRQUM5RSxNQUFNLEVBQUUsR0FBRyxJQUFBLGVBQUUs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
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assert = require("assert");
4
+ const node_test_1 = require("node:test");
5
+ const validate_js_1 = require("../validate.js");
6
+ const test_constants_js_1 = require("./test_constants.js");
7
+ (0, node_test_1.describe)('validate()', () => {
8
+ (0, node_test_1.default)('TESTS cases', () => {
9
+ for (const { value, expectedValidate } of test_constants_js_1.TESTS) {
10
+ assert.strictEqual((0, validate_js_1.default)(value), expectedValidate, `validate(${value}) should be ${expectedValidate}`);
11
+ }
12
+ });
13
+ });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0L3ZhbGlkYXRlLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBaUM7QUFDakMseUNBQTJDO0FBQzNDLGdEQUFzQztBQUN0QywyREFBNEM7QUFFNUMsSUFBQSxvQkFBUSxFQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7SUFDMUIsSUFBQSxtQkFBSSxFQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7UUFDdkIsS0FBSyxNQUFNLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLElBQUkseUJBQUssRUFBRSxDQUFDO1lBQ2hELE1BQU0sQ0FBQyxXQUFXLENBQ2hCLElBQUEscUJBQVEsRUFBQyxLQUFLLENBQUMsRUFDZixnQkFBZ0IsRUFDaEIsWUFBWSxLQUFLLGVBQWUsZ0JBQWdCLEVBQUUsQ0FDbkQsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assert = require("assert");
4
+ const node_test_1 = require("node:test");
5
+ const version_js_1 = require("../version.js");
6
+ const test_constants_js_1 = require("./test_constants.js");
7
+ (0, node_test_1.describe)('version()', () => {
8
+ (0, node_test_1.default)('TESTS cases', () => {
9
+ for (const { value, expectedValidate, expectedVersion } of test_constants_js_1.TESTS) {
10
+ try {
11
+ const actualVersion = (0, version_js_1.default)(value);
12
+ assert.ok(expectedValidate, `version(${value}) should throw`);
13
+ assert.strictEqual(actualVersion, expectedVersion);
14
+ }
15
+ catch {
16
+ assert.ok(!expectedValidate, `version(${value}) threw unexpectedly`);
17
+ }
18
+ }
19
+ });
20
+ });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rlc3QvdmVyc2lvbi50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQWlDO0FBQ2pDLHlDQUEyQztBQUMzQyw4Q0FBb0M7QUFDcEMsMkRBQTRDO0FBRTVDLElBQUEsb0JBQVEsRUFBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO0lBQ3pCLElBQUEsbUJBQUksRUFBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO1FBQ3ZCLEtBQUssTUFBTSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsSUFBSSx5QkFBSyxFQUFFLENBQUM7WUFDakUsSUFBSSxDQUFDO2dCQUVILE1BQU0sYUFBYSxHQUFHLElBQUEsb0JBQU8sRUFBQyxLQUFLLENBQUMsQ0FBQztnQkFFckMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLEtBQUssZ0JBQWdCLENBQUMsQ0FBQztnQkFDOUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFDckQsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxLQUFLLHNCQUFzQixDQUFDLENBQUM7WUFDdkUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assert = require("assert");
4
+ const v1_js_1 = require("./v1.js");
5
+ const v3_js_1 = require("./v3.js");
6
+ const v4_js_1 = require("./v4.js");
7
+ const v5_js_1 = require("./v5.js");
8
+ const v6_js_1 = require("./v6.js");
9
+ const v7_js_1 = require("./v7.js");
10
+ function usage() {
11
+ console.log('Usage:');
12
+ console.log(' uuid');
13
+ console.log(' uuid v1');
14
+ console.log(' uuid v3 <name> <namespace uuid>');
15
+ console.log(' uuid v4');
16
+ console.log(' uuid v5 <name> <namespace uuid>');
17
+ console.log(' uuid v6');
18
+ console.log(' uuid v7');
19
+ console.log(' uuid --help');
20
+ console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC9562');
21
+ }
22
+ const args = process.argv.slice(2);
23
+ if (args.indexOf('--help') >= 0) {
24
+ usage();
25
+ process.exit(0);
26
+ }
27
+ const version = args.shift() || 'v4';
28
+ switch (version) {
29
+ case 'v1':
30
+ console.log((0, v1_js_1.default)());
31
+ break;
32
+ case 'v3': {
33
+ const name = args.shift();
34
+ let namespace = args.shift();
35
+ assert.ok(name != null, 'v3 name not specified');
36
+ assert.ok(namespace != null, 'v3 namespace not specified');
37
+ if (namespace === 'URL') {
38
+ namespace = v3_js_1.default.URL;
39
+ }
40
+ if (namespace === 'DNS') {
41
+ namespace = v3_js_1.default.DNS;
42
+ }
43
+ console.log((0, v3_js_1.default)(name, namespace));
44
+ break;
45
+ }
46
+ case 'v4':
47
+ console.log((0, v4_js_1.default)());
48
+ break;
49
+ case 'v5': {
50
+ const name = args.shift();
51
+ let namespace = args.shift();
52
+ assert.ok(name != null, 'v5 name not specified');
53
+ assert.ok(namespace != null, 'v5 namespace not specified');
54
+ if (namespace === 'URL') {
55
+ namespace = v5_js_1.default.URL;
56
+ }
57
+ if (namespace === 'DNS') {
58
+ namespace = v5_js_1.default.DNS;
59
+ }
60
+ console.log((0, v5_js_1.default)(name, namespace));
61
+ break;
62
+ }
63
+ case 'v6':
64
+ console.log((0, v6_js_1.default)());
65
+ break;
66
+ case 'v7':
67
+ console.log((0, v7_js_1.default)());
68
+ break;
69
+ default:
70
+ usage();
71
+ process.exit(1);
72
+ }
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXVpZC1iaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXVpZC1iaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBaUM7QUFFakMsbUNBQXlCO0FBQ3pCLG1DQUF5QjtBQUN6QixtQ0FBeUI7QUFDekIsbUNBQXlCO0FBQ3pCLG1DQUF5QjtBQUN6QixtQ0FBeUI7QUFFekIsU0FBUyxLQUFLO0lBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBQ2pELE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBQ2pELE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQ1Qsa0dBQWtHLENBQ25HLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFbkMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2hDLEtBQUssRUFBRSxDQUFDO0lBQ1IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQztBQUVyQyxRQUFRLE9BQU8sRUFBRSxDQUFDO0lBQ2hCLEtBQUssSUFBSTtRQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSxlQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ2xCLE1BQU07SUFFUixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDVixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTdCLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxFQUFFLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO1FBRTNELElBQUksU0FBUyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3hCLFNBQVMsR0FBRyxlQUFFLENBQUMsR0FBRyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxJQUFJLFNBQVMsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUN4QixTQUFTLEdBQUcsZUFBRSxDQUFDLEdBQUcsQ0FBQztRQUNyQixDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFBLGVBQUUsRUFBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNqQyxNQUFNO0lBQ1IsQ0FBQztJQUVELEtBQUssSUFBSTtRQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSxlQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ2xCLE1BQU07SUFFUixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDVixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTdCLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxFQUFFLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO1FBRTNELElBQUksU0FBUyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3hCLFNBQVMsR0FBRyxlQUFFLENBQUMsR0FBRyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxJQUFJLFNBQVMsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUN4QixTQUFTLEdBQUcsZUFBRSxDQUFDLEdBQUcsQ0FBQztRQUNyQixDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFBLGVBQUUsRUFBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNqQyxNQUFNO0lBQ1IsQ0FBQztJQUVELEtBQUssSUFBSTtRQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSxlQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ2xCLE1BQU07SUFFUixLQUFLLElBQUk7UUFDUCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUEsZUFBRSxHQUFFLENBQUMsQ0FBQztRQUNsQixNQUFNO0lBRVI7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsQ0FBQyJ9