decidim 0.25.0.rc1 → 0.25.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.
Potentially problematic release.
This version of decidim might be problematic. Click here for more details.
- checksums.yaml +4 -4
 - data/Rakefile +27 -2
 - data/decidim-core/lib/decidim/webpacker/webpacker.yml +13 -16
 - data/docs/modules/develop/pages/guide_migrate_webpacker_app.adoc +2 -2
 - data/docs/modules/install/pages/manual.adoc +2 -2
 - data/lib/decidim/gem_manager.rb +39 -18
 - data/lib/decidim/version.rb +1 -1
 - data/package-lock.json +1578 -4459
 - data/package.json +10 -6
 - data/packages/browserslist-config/package.json +2 -6
 - data/packages/core/node_modules/uuid/AUTHORS +5 -0
 - data/packages/core/node_modules/uuid/CHANGELOG.md +119 -0
 - data/packages/core/node_modules/uuid/LICENSE.md +21 -0
 - data/packages/core/node_modules/uuid/README.md +276 -0
 - data/packages/core/node_modules/uuid/bin/uuid +65 -0
 - data/packages/core/node_modules/uuid/index.js +8 -0
 - data/packages/core/node_modules/uuid/lib/bytesToUuid.js +26 -0
 - data/packages/core/node_modules/uuid/lib/md5-browser.js +216 -0
 - data/packages/core/node_modules/uuid/lib/md5.js +25 -0
 - data/packages/core/node_modules/uuid/lib/rng-browser.js +34 -0
 - data/packages/core/node_modules/uuid/lib/rng.js +8 -0
 - data/packages/core/node_modules/uuid/lib/sha1-browser.js +89 -0
 - data/packages/core/node_modules/uuid/lib/sha1.js +25 -0
 - data/packages/core/node_modules/uuid/lib/v35.js +57 -0
 - data/packages/core/node_modules/uuid/package.json +49 -0
 - data/packages/core/node_modules/uuid/v1.js +109 -0
 - data/packages/core/node_modules/uuid/v3.js +4 -0
 - data/packages/core/node_modules/uuid/v4.js +29 -0
 - data/packages/core/node_modules/uuid/v5.js +3 -0
 - data/packages/core/package.json +5 -5
 - data/packages/dev/package.json +2 -8
 - data/packages/elections/package.json +1 -5
 - data/packages/eslint-config/package.json +3 -7
 - data/packages/stylelint-config/package.json +2 -6
 - data/packages/webpacker/package.json +4 -9
 - data/packages/webpacker/src/override-config.js +3 -1
 - metadata +64 -46
 - data/packages/all/package.json +0 -22
 
    
        data/package.json
    CHANGED
    
    | 
         @@ -1,7 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            {
         
     | 
| 
       2 
     | 
    
         
            -
              "name": "decidim",
         
     | 
| 
      
 2 
     | 
    
         
            +
              "name": "a-decidim-app",
         
     | 
| 
       3 
3 
     | 
    
         
             
              "description": "The participatory democracy framework",
         
     | 
| 
       4 
     | 
    
         
            -
              "version": "0.25.0-rc1",
         
     | 
| 
       5 
4 
     | 
    
         
             
              "repository": {
         
     | 
| 
       6 
5 
     | 
    
         
             
                "url": "git@github.com:decidim/decidim.git",
         
     | 
| 
       7 
6 
     | 
    
         
             
                "type": "git"
         
     | 
| 
         @@ -9,8 +8,8 @@ 
     | 
|
| 
       9 
8 
     | 
    
         
             
              "author": "Marc Riera <mrc2407@gmail.com>",
         
     | 
| 
       10 
9 
     | 
    
         
             
              "license": "AGPL-3.0",
         
     | 
| 
       11 
10 
     | 
    
         
             
              "engines": {
         
     | 
| 
       12 
     | 
    
         
            -
                "node": "^ 
     | 
| 
       13 
     | 
    
         
            -
                "npm": "^7. 
     | 
| 
      
 11 
     | 
    
         
            +
                "node": "^16.9.1",
         
     | 
| 
      
 12 
     | 
    
         
            +
                "npm": "^7.21.1"
         
     | 
| 
       14 
13 
     | 
    
         
             
              },
         
     | 
| 
       15 
14 
     | 
    
         
             
              "files": [
         
     | 
| 
       16 
15 
     | 
    
         
             
                "packages/**/*"
         
     | 
| 
         @@ -51,10 +50,15 @@ 
     | 
|
| 
       51 
50 
     | 
    
         
             
                "testRegex": "\\.(test|spec)\\.js$"
         
     | 
| 
       52 
51 
     | 
    
         
             
              },
         
     | 
| 
       53 
52 
     | 
    
         
             
              "dependencies": {
         
     | 
| 
       54 
     | 
    
         
            -
                "@decidim/ 
     | 
| 
      
 53 
     | 
    
         
            +
                "@decidim/browserslist-config": "file:packages/browserslist-config",
         
     | 
| 
      
 54 
     | 
    
         
            +
                "@decidim/core": "file:packages/core",
         
     | 
| 
      
 55 
     | 
    
         
            +
                "@decidim/elections": "file:packages/elections",
         
     | 
| 
      
 56 
     | 
    
         
            +
                "@decidim/webpacker": "file:packages/webpacker"
         
     | 
| 
       55 
57 
     | 
    
         
             
              },
         
     | 
| 
       56 
58 
     | 
    
         
             
              "devDependencies": {
         
     | 
| 
       57 
59 
     | 
    
         
             
                "@decidim/dev": "file:packages/dev",
         
     | 
| 
      
 60 
     | 
    
         
            +
                "@decidim/eslint-config": "file:packages/eslint-config",
         
     | 
| 
      
 61 
     | 
    
         
            +
                "@decidim/stylelint-config": "file:packages/stylelint-config",
         
     | 
| 
       58 
62 
     | 
    
         
             
                "babel-jest": "^26.6.3",
         
     | 
| 
       59 
63 
     | 
    
         
             
                "concat-stream": "^2.0.0",
         
     | 
| 
       60 
64 
     | 
    
         
             
                "enzyme": "^3.11.0",
         
     | 
| 
         @@ -64,4 +68,4 @@ 
     | 
|
| 
       64 
68 
     | 
    
         
             
                "react-test-renderer": "^16.0.0",
         
     | 
| 
       65 
69 
     | 
    
         
             
                "yaml-jest": "^1.0.5"
         
     | 
| 
       66 
70 
     | 
    
         
             
              }
         
     | 
| 
       67 
     | 
    
         
            -
            }
         
     | 
| 
      
 71 
     | 
    
         
            +
            }
         
     | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            {
         
     | 
| 
       2 
2 
     | 
    
         
             
              "name": "@decidim/browserslist-config",
         
     | 
| 
       3 
3 
     | 
    
         
             
              "description": "The Browserslist configuration for Decidim",
         
     | 
| 
       4 
     | 
    
         
            -
              "version": "0.25.0 
     | 
| 
      
 4 
     | 
    
         
            +
              "version": "0.25.0",
         
     | 
| 
       5 
5 
     | 
    
         
             
              "repository": {
         
     | 
| 
       6 
6 
     | 
    
         
             
                "url": "git@github.com:decidim/decidim.git",
         
     | 
| 
       7 
7 
     | 
    
         
             
                "type": "git",
         
     | 
| 
         @@ -9,9 +9,5 @@ 
     | 
|
| 
       9 
9 
     | 
    
         
             
              },
         
     | 
| 
       10 
10 
     | 
    
         
             
              "author": "Decidim Contributors",
         
     | 
| 
       11 
11 
     | 
    
         
             
              "license": "AGPL-3.0",
         
     | 
| 
       12 
     | 
    
         
            -
              "engines": {
         
     | 
| 
       13 
     | 
    
         
            -
                "node": "^15.14.0",
         
     | 
| 
       14 
     | 
    
         
            -
                "npm": "^7.7.2"
         
     | 
| 
       15 
     | 
    
         
            -
              },
         
     | 
| 
       16 
12 
     | 
    
         
             
              "main": "index.js"
         
     | 
| 
       17 
     | 
    
         
            -
            }
         
     | 
| 
      
 13 
     | 
    
         
            +
            }
         
     | 
| 
         @@ -0,0 +1,119 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Changelog
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            ## [3.4.0](https://github.com/uuidjs/uuid/compare/v3.3.3...v3.4.0) (2020-01-16)
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            ### Features
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            * rename repository to github:uuidjs/uuid ([#351](https://github.com/uuidjs/uuid/issues/351)) ([e2d7314](https://github.com/uuidjs/uuid/commit/e2d7314)), closes [#338](https://github.com/uuidjs/uuid/issues/338)
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            ### [3.3.3](https://github.com/uuidjs/uuid/compare/v3.3.2...v3.3.3) (2019-08-19)
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            <a name="3.3.2"></a>
         
     | 
| 
      
 15 
     | 
    
         
            +
            ## [3.3.2](https://github.com/uuidjs/uuid/compare/v3.3.1...v3.3.2) (2018-06-28)
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            ### Bug Fixes
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            * typo ([305d877](https://github.com/uuidjs/uuid/commit/305d877))
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            <a name="3.3.1"></a>
         
     | 
| 
      
 25 
     | 
    
         
            +
            ## [3.3.1](https://github.com/uuidjs/uuid/compare/v3.3.0...v3.3.1) (2018-06-28)
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            ### Bug Fixes
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            * fix [#284](https://github.com/uuidjs/uuid/issues/284) by setting function name in try-catch ([f2a60f2](https://github.com/uuidjs/uuid/commit/f2a60f2))
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            <a name="3.3.0"></a>
         
     | 
| 
      
 35 
     | 
    
         
            +
            # [3.3.0](https://github.com/uuidjs/uuid/compare/v3.2.1...v3.3.0) (2018-06-22)
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
            ### Bug Fixes
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            * assignment to readonly property to allow running in strict mode ([#270](https://github.com/uuidjs/uuid/issues/270)) ([d062fdc](https://github.com/uuidjs/uuid/commit/d062fdc))
         
     | 
| 
      
 41 
     | 
    
         
            +
            * fix [#229](https://github.com/uuidjs/uuid/issues/229) ([c9684d4](https://github.com/uuidjs/uuid/commit/c9684d4))
         
     | 
| 
      
 42 
     | 
    
         
            +
            * Get correct version of IE11 crypto ([#274](https://github.com/uuidjs/uuid/issues/274)) ([153d331](https://github.com/uuidjs/uuid/commit/153d331))
         
     | 
| 
      
 43 
     | 
    
         
            +
            * mem issue when generating uuid ([#267](https://github.com/uuidjs/uuid/issues/267)) ([c47702c](https://github.com/uuidjs/uuid/commit/c47702c))
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            ### Features
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
            * enforce Conventional Commit style commit messages ([#282](https://github.com/uuidjs/uuid/issues/282)) ([cc9a182](https://github.com/uuidjs/uuid/commit/cc9a182))
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
            <a name="3.2.1"></a>
         
     | 
| 
      
 51 
     | 
    
         
            +
            ## [3.2.1](https://github.com/uuidjs/uuid/compare/v3.2.0...v3.2.1) (2018-01-16)
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
            ### Bug Fixes
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
            * use msCrypto if available. Fixes [#241](https://github.com/uuidjs/uuid/issues/241) ([#247](https://github.com/uuidjs/uuid/issues/247)) ([1fef18b](https://github.com/uuidjs/uuid/commit/1fef18b))
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
            <a name="3.2.0"></a>
         
     | 
| 
      
 61 
     | 
    
         
            +
            # [3.2.0](https://github.com/uuidjs/uuid/compare/v3.1.0...v3.2.0) (2018-01-16)
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
            ### Bug Fixes
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
            * remove mistakenly added typescript dependency, rollback version (standard-version will auto-increment) ([09fa824](https://github.com/uuidjs/uuid/commit/09fa824))
         
     | 
| 
      
 67 
     | 
    
         
            +
            * use msCrypto if available. Fixes [#241](https://github.com/uuidjs/uuid/issues/241) ([#247](https://github.com/uuidjs/uuid/issues/247)) ([1fef18b](https://github.com/uuidjs/uuid/commit/1fef18b))
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
            ### Features
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
            * Add v3 Support ([#217](https://github.com/uuidjs/uuid/issues/217)) ([d94f726](https://github.com/uuidjs/uuid/commit/d94f726))
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
            # [3.1.0](https://github.com/uuidjs/uuid/compare/v3.1.0...v3.0.1) (2017-06-17)
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
            ### Bug Fixes
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
            * (fix) Add .npmignore file to exclude test/ and other non-essential files from packing. (#183)
         
     | 
| 
      
 80 
     | 
    
         
            +
            * Fix typo (#178)
         
     | 
| 
      
 81 
     | 
    
         
            +
            * Simple typo fix (#165)
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
            ### Features
         
     | 
| 
      
 84 
     | 
    
         
            +
            * v5 support in CLI (#197)
         
     | 
| 
      
 85 
     | 
    
         
            +
            * V5 support (#188)
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
            # 3.0.1 (2016-11-28)
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
            * split uuid versions into separate files
         
     | 
| 
      
 91 
     | 
    
         
            +
             
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
            # 3.0.0 (2016-11-17)
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
            * remove .parse and .unparse
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
            # 2.0.0
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
            * Removed uuid.BufferClass
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
      
 102 
     | 
    
         
            +
             
     | 
| 
      
 103 
     | 
    
         
            +
            # 1.4.0
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
            * Improved module context detection
         
     | 
| 
      
 106 
     | 
    
         
            +
            * Removed public RNG functions
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
             
     | 
| 
      
 109 
     | 
    
         
            +
            # 1.3.2
         
     | 
| 
      
 110 
     | 
    
         
            +
             
     | 
| 
      
 111 
     | 
    
         
            +
            * Improve tests and handling of v1() options (Issue #24)
         
     | 
| 
      
 112 
     | 
    
         
            +
            * Expose RNG option to allow for perf testing with different generators
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
            # 1.3.0
         
     | 
| 
      
 116 
     | 
    
         
            +
             
     | 
| 
      
 117 
     | 
    
         
            +
            * Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)!
         
     | 
| 
      
 118 
     | 
    
         
            +
            * Support for node.js crypto API
         
     | 
| 
      
 119 
     | 
    
         
            +
            * De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code
         
     | 
| 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            The MIT License (MIT)
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            Copyright (c) 2010-2016 Robert Kieffer and other contributors
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Permission is hereby granted, free of charge, to any person obtaining a copy
         
     | 
| 
      
 6 
     | 
    
         
            +
            of this software and associated documentation files (the "Software"), to deal
         
     | 
| 
      
 7 
     | 
    
         
            +
            in the Software without restriction, including without limitation the rights
         
     | 
| 
      
 8 
     | 
    
         
            +
            to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
         
     | 
| 
      
 9 
     | 
    
         
            +
            copies of the Software, and to permit persons to whom the Software is
         
     | 
| 
      
 10 
     | 
    
         
            +
            furnished to do so, subject to the following conditions:
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            The above copyright notice and this permission notice shall be included in all
         
     | 
| 
      
 13 
     | 
    
         
            +
            copies or substantial portions of the Software.
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
         
     | 
| 
      
 16 
     | 
    
         
            +
            IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
         
     | 
| 
      
 17 
     | 
    
         
            +
            FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
         
     | 
| 
      
 18 
     | 
    
         
            +
            AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
         
     | 
| 
      
 19 
     | 
    
         
            +
            LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
         
     | 
| 
      
 20 
     | 
    
         
            +
            OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
         
     | 
| 
      
 21 
     | 
    
         
            +
            SOFTWARE.
         
     | 
| 
         @@ -0,0 +1,276 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <!--
         
     | 
| 
      
 2 
     | 
    
         
            +
              -- This file is auto-generated from README_js.md. Changes should be made there.
         
     | 
| 
      
 3 
     | 
    
         
            +
              -->
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            # uuid [](http://travis-ci.org/kelektiv/node-uuid) #
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            Simple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS.
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            Features:
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            * Support for version 1, 3, 4 and 5 UUIDs
         
     | 
| 
      
 12 
     | 
    
         
            +
            * Cross-platform
         
     | 
| 
      
 13 
     | 
    
         
            +
            * Uses cryptographically-strong random number APIs (when available)
         
     | 
| 
      
 14 
     | 
    
         
            +
            * Zero-dependency, small footprint (... but not [this small](https://gist.github.com/982883))
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            [**Deprecation warning**: The use of `require('uuid')` is deprecated and will not be
         
     | 
| 
      
 17 
     | 
    
         
            +
            supported after version 3.x of this module.  Instead, use `require('uuid/[v1|v3|v4|v5]')` as shown in the examples below.]
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            ## Quickstart - CommonJS (Recommended)
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            ```shell
         
     | 
| 
      
 22 
     | 
    
         
            +
            npm install uuid
         
     | 
| 
      
 23 
     | 
    
         
            +
            ```
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            Then generate your uuid version of choice ...
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            Version 1 (timestamp):
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            ```javascript
         
     | 
| 
      
 30 
     | 
    
         
            +
            const uuidv1 = require('uuid/v1');
         
     | 
| 
      
 31 
     | 
    
         
            +
            uuidv1(); // ⇨ '2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d'
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            ```
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            Version 3 (namespace):
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            ```javascript
         
     | 
| 
      
 38 
     | 
    
         
            +
            const uuidv3 = require('uuid/v3');
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            // ... using predefined DNS namespace (for domain names)
         
     | 
| 
      
 41 
     | 
    
         
            +
            uuidv3('hello.example.com', uuidv3.DNS); // ⇨ '9125a8dc-52ee-365b-a5aa-81b0b3681cf6'
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
            // ... using predefined URL namespace (for, well, URLs)
         
     | 
| 
      
 44 
     | 
    
         
            +
            uuidv3('http://example.com/hello', uuidv3.URL); // ⇨ 'c6235813-3ba4-3801-ae84-e0a6ebb7d138'
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            // ... using a custom namespace
         
     | 
| 
      
 47 
     | 
    
         
            +
            //
         
     | 
| 
      
 48 
     | 
    
         
            +
            // Note: Custom namespaces should be a UUID string specific to your application!
         
     | 
| 
      
 49 
     | 
    
         
            +
            // E.g. the one here was generated using this modules `uuid` CLI.
         
     | 
| 
      
 50 
     | 
    
         
            +
            const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
         
     | 
| 
      
 51 
     | 
    
         
            +
            uuidv3('Hello, World!', MY_NAMESPACE); // ⇨ 'e8b5a51d-11c8-3310-a6ab-367563f20686'
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
            ```
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
            Version 4 (random):
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
            ```javascript
         
     | 
| 
      
 58 
     | 
    
         
            +
            const uuidv4 = require('uuid/v4');
         
     | 
| 
      
 59 
     | 
    
         
            +
            uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
            ```
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
            Version 5 (namespace):
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
            ```javascript
         
     | 
| 
      
 66 
     | 
    
         
            +
            const uuidv5 = require('uuid/v5');
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
            // ... using predefined DNS namespace (for domain names)
         
     | 
| 
      
 69 
     | 
    
         
            +
            uuidv5('hello.example.com', uuidv5.DNS); // ⇨ 'fdda765f-fc57-5604-a269-52a7df8164ec'
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
            // ... using predefined URL namespace (for, well, URLs)
         
     | 
| 
      
 72 
     | 
    
         
            +
            uuidv5('http://example.com/hello', uuidv5.URL); // ⇨ '3bbcee75-cecc-5b56-8031-b6641c1ed1f1'
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
            // ... using a custom namespace
         
     | 
| 
      
 75 
     | 
    
         
            +
            //
         
     | 
| 
      
 76 
     | 
    
         
            +
            // Note: Custom namespaces should be a UUID string specific to your application!
         
     | 
| 
      
 77 
     | 
    
         
            +
            // E.g. the one here was generated using this modules `uuid` CLI.
         
     | 
| 
      
 78 
     | 
    
         
            +
            const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
         
     | 
| 
      
 79 
     | 
    
         
            +
            uuidv5('Hello, World!', MY_NAMESPACE); // ⇨ '630eb68f-e0fa-5ecc-887a-7c7a62614681'
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
            ```
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
            ## API
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
            ### Version 1
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
            ```javascript
         
     | 
| 
      
 88 
     | 
    
         
            +
            const uuidv1 = require('uuid/v1');
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
            // Incantations
         
     | 
| 
      
 91 
     | 
    
         
            +
            uuidv1();
         
     | 
| 
      
 92 
     | 
    
         
            +
            uuidv1(options);
         
     | 
| 
      
 93 
     | 
    
         
            +
            uuidv1(options, buffer, offset);
         
     | 
| 
      
 94 
     | 
    
         
            +
            ```
         
     | 
| 
      
 95 
     | 
    
         
            +
             
     | 
| 
      
 96 
     | 
    
         
            +
            Generate and return a RFC4122 v1 (timestamp-based) UUID.
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
            * `options` - (Object) Optional uuid state to apply. Properties may include:
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
              * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID.  See note 1.
         
     | 
| 
      
 101 
     | 
    
         
            +
              * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence.  Default: An internally maintained clockseq is used.
         
     | 
| 
      
 102 
     | 
    
         
            +
              * `msecs` - (Number) Time in milliseconds since unix Epoch.  Default: The current time is used.
         
     | 
| 
      
 103 
     | 
    
         
            +
              * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2.
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
            * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
         
     | 
| 
      
 106 
     | 
    
         
            +
            * `offset` - (Number) Starting index in `buffer` at which to begin writing.
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
            Returns `buffer`, if specified, otherwise the string form of the UUID
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
            Note: The default [node id](https://tools.ietf.org/html/rfc4122#section-4.1.6) (the last 12 digits in the UUID) is generated once, randomly, on process startup, and then remains unchanged for the duration of the process.
         
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
            Example: Generate string UUID with fully-specified options
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
            ```javascript
         
     | 
| 
      
 115 
     | 
    
         
            +
            const v1options = {
         
     | 
| 
      
 116 
     | 
    
         
            +
              node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
         
     | 
| 
      
 117 
     | 
    
         
            +
              clockseq: 0x1234,
         
     | 
| 
      
 118 
     | 
    
         
            +
              msecs: new Date('2011-11-01').getTime(),
         
     | 
| 
      
 119 
     | 
    
         
            +
              nsecs: 5678
         
     | 
| 
      
 120 
     | 
    
         
            +
            };
         
     | 
| 
      
 121 
     | 
    
         
            +
            uuidv1(v1options); // ⇨ '710b962e-041c-11e1-9234-0123456789ab'
         
     | 
| 
      
 122 
     | 
    
         
            +
             
     | 
| 
      
 123 
     | 
    
         
            +
            ```
         
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
      
 125 
     | 
    
         
            +
            Example: In-place generation of two binary IDs
         
     | 
| 
      
 126 
     | 
    
         
            +
             
     | 
| 
      
 127 
     | 
    
         
            +
            ```javascript
         
     | 
| 
      
 128 
     | 
    
         
            +
            // Generate two ids in an array
         
     | 
| 
      
 129 
     | 
    
         
            +
            const arr = new Array();
         
     | 
| 
      
 130 
     | 
    
         
            +
            uuidv1(null, arr, 0);  // ⇨ 
         
     | 
| 
      
 131 
     | 
    
         
            +
              // [
         
     | 
| 
      
 132 
     | 
    
         
            +
              //    44,  94, 164, 192,  64, 103,
         
     | 
| 
      
 133 
     | 
    
         
            +
              //    17, 233, 146,  52, 155,  29,
         
     | 
| 
      
 134 
     | 
    
         
            +
              //   235,  77,  59, 125
         
     | 
| 
      
 135 
     | 
    
         
            +
              // ]
         
     | 
| 
      
 136 
     | 
    
         
            +
            uuidv1(null, arr, 16); // ⇨ 
         
     | 
| 
      
 137 
     | 
    
         
            +
              // [
         
     | 
| 
      
 138 
     | 
    
         
            +
              //    44, 94, 164, 192,  64, 103, 17, 233,
         
     | 
| 
      
 139 
     | 
    
         
            +
              //   146, 52, 155,  29, 235,  77, 59, 125,
         
     | 
| 
      
 140 
     | 
    
         
            +
              //    44, 94, 164, 193,  64, 103, 17, 233,
         
     | 
| 
      
 141 
     | 
    
         
            +
              //   146, 52, 155,  29, 235,  77, 59, 125
         
     | 
| 
      
 142 
     | 
    
         
            +
              // ]
         
     | 
| 
      
 143 
     | 
    
         
            +
             
     | 
| 
      
 144 
     | 
    
         
            +
            ```
         
     | 
| 
      
 145 
     | 
    
         
            +
             
     | 
| 
      
 146 
     | 
    
         
            +
            ### Version 3
         
     | 
| 
      
 147 
     | 
    
         
            +
             
     | 
| 
      
 148 
     | 
    
         
            +
            ```javascript
         
     | 
| 
      
 149 
     | 
    
         
            +
            const uuidv3 = require('uuid/v3');
         
     | 
| 
      
 150 
     | 
    
         
            +
             
     | 
| 
      
 151 
     | 
    
         
            +
            // Incantations
         
     | 
| 
      
 152 
     | 
    
         
            +
            uuidv3(name, namespace);
         
     | 
| 
      
 153 
     | 
    
         
            +
            uuidv3(name, namespace, buffer);
         
     | 
| 
      
 154 
     | 
    
         
            +
            uuidv3(name, namespace, buffer, offset);
         
     | 
| 
      
 155 
     | 
    
         
            +
            ```
         
     | 
| 
      
 156 
     | 
    
         
            +
             
     | 
| 
      
 157 
     | 
    
         
            +
            Generate and return a RFC4122 v3 UUID.
         
     | 
| 
      
 158 
     | 
    
         
            +
             
     | 
| 
      
 159 
     | 
    
         
            +
            * `name` - (String | Array[]) "name" to create UUID with
         
     | 
| 
      
 160 
     | 
    
         
            +
            * `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values
         
     | 
| 
      
 161 
     | 
    
         
            +
            * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
         
     | 
| 
      
 162 
     | 
    
         
            +
            * `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0
         
     | 
| 
      
 163 
     | 
    
         
            +
             
     | 
| 
      
 164 
     | 
    
         
            +
            Returns `buffer`, if specified, otherwise the string form of the UUID
         
     | 
| 
      
 165 
     | 
    
         
            +
             
     | 
| 
      
 166 
     | 
    
         
            +
            Example:
         
     | 
| 
      
 167 
     | 
    
         
            +
             
     | 
| 
      
 168 
     | 
    
         
            +
            ```javascript
         
     | 
| 
      
 169 
     | 
    
         
            +
            uuidv3('hello world', MY_NAMESPACE);  // ⇨ '042ffd34-d989-321c-ad06-f60826172424'
         
     | 
| 
      
 170 
     | 
    
         
            +
             
     | 
| 
      
 171 
     | 
    
         
            +
            ```
         
     | 
| 
      
 172 
     | 
    
         
            +
             
     | 
| 
      
 173 
     | 
    
         
            +
            ### Version 4
         
     | 
| 
      
 174 
     | 
    
         
            +
             
     | 
| 
      
 175 
     | 
    
         
            +
            ```javascript
         
     | 
| 
      
 176 
     | 
    
         
            +
            const uuidv4 = require('uuid/v4')
         
     | 
| 
      
 177 
     | 
    
         
            +
             
     | 
| 
      
 178 
     | 
    
         
            +
            // Incantations
         
     | 
| 
      
 179 
     | 
    
         
            +
            uuidv4();
         
     | 
| 
      
 180 
     | 
    
         
            +
            uuidv4(options);
         
     | 
| 
      
 181 
     | 
    
         
            +
            uuidv4(options, buffer, offset);
         
     | 
| 
      
 182 
     | 
    
         
            +
            ```
         
     | 
| 
      
 183 
     | 
    
         
            +
             
     | 
| 
      
 184 
     | 
    
         
            +
            Generate and return a RFC4122 v4 UUID.
         
     | 
| 
      
 185 
     | 
    
         
            +
             
     | 
| 
      
 186 
     | 
    
         
            +
            * `options` - (Object) Optional uuid state to apply. Properties may include:
         
     | 
| 
      
 187 
     | 
    
         
            +
              * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values
         
     | 
| 
      
 188 
     | 
    
         
            +
              * `rng` - (Function) Random # generator function that returns an Array[16] of byte values (0-255)
         
     | 
| 
      
 189 
     | 
    
         
            +
            * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
         
     | 
| 
      
 190 
     | 
    
         
            +
            * `offset` - (Number) Starting index in `buffer` at which to begin writing.
         
     | 
| 
      
 191 
     | 
    
         
            +
             
     | 
| 
      
 192 
     | 
    
         
            +
            Returns `buffer`, if specified, otherwise the string form of the UUID
         
     | 
| 
      
 193 
     | 
    
         
            +
             
     | 
| 
      
 194 
     | 
    
         
            +
            Example: Generate string UUID with predefined `random` values
         
     | 
| 
      
 195 
     | 
    
         
            +
             
     | 
| 
      
 196 
     | 
    
         
            +
            ```javascript
         
     | 
| 
      
 197 
     | 
    
         
            +
            const v4options = {
         
     | 
| 
      
 198 
     | 
    
         
            +
              random: [
         
     | 
| 
      
 199 
     | 
    
         
            +
                0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea,
         
     | 
| 
      
 200 
     | 
    
         
            +
                0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36
         
     | 
| 
      
 201 
     | 
    
         
            +
              ]
         
     | 
| 
      
 202 
     | 
    
         
            +
            };
         
     | 
| 
      
 203 
     | 
    
         
            +
            uuidv4(v4options); // ⇨ '109156be-c4fb-41ea-b1b4-efe1671c5836'
         
     | 
| 
      
 204 
     | 
    
         
            +
             
     | 
| 
      
 205 
     | 
    
         
            +
            ```
         
     | 
| 
      
 206 
     | 
    
         
            +
             
     | 
| 
      
 207 
     | 
    
         
            +
            Example: Generate two IDs in a single buffer
         
     | 
| 
      
 208 
     | 
    
         
            +
             
     | 
| 
      
 209 
     | 
    
         
            +
            ```javascript
         
     | 
| 
      
 210 
     | 
    
         
            +
            const buffer = new Array();
         
     | 
| 
      
 211 
     | 
    
         
            +
            uuidv4(null, buffer, 0);  // ⇨ 
         
     | 
| 
      
 212 
     | 
    
         
            +
              // [
         
     | 
| 
      
 213 
     | 
    
         
            +
              //   155, 29, 235,  77,  59,
         
     | 
| 
      
 214 
     | 
    
         
            +
              //   125, 75, 173, 155, 221,
         
     | 
| 
      
 215 
     | 
    
         
            +
              //    43, 13, 123,  61, 203,
         
     | 
| 
      
 216 
     | 
    
         
            +
              //   109
         
     | 
| 
      
 217 
     | 
    
         
            +
              // ]
         
     | 
| 
      
 218 
     | 
    
         
            +
            uuidv4(null, buffer, 16); // ⇨ 
         
     | 
| 
      
 219 
     | 
    
         
            +
              // [
         
     | 
| 
      
 220 
     | 
    
         
            +
              //   155,  29, 235,  77,  59, 125,  75, 173,
         
     | 
| 
      
 221 
     | 
    
         
            +
              //   155, 221,  43,  13, 123,  61, 203, 109,
         
     | 
| 
      
 222 
     | 
    
         
            +
              //    27, 157, 107, 205, 187, 253,  75,  45,
         
     | 
| 
      
 223 
     | 
    
         
            +
              //   155,  93, 171, 141, 251, 189,  75, 237
         
     | 
| 
      
 224 
     | 
    
         
            +
              // ]
         
     | 
| 
      
 225 
     | 
    
         
            +
             
     | 
| 
      
 226 
     | 
    
         
            +
            ```
         
     | 
| 
      
 227 
     | 
    
         
            +
             
     | 
| 
      
 228 
     | 
    
         
            +
            ### Version 5
         
     | 
| 
      
 229 
     | 
    
         
            +
             
     | 
| 
      
 230 
     | 
    
         
            +
            ```javascript
         
     | 
| 
      
 231 
     | 
    
         
            +
            const uuidv5 = require('uuid/v5');
         
     | 
| 
      
 232 
     | 
    
         
            +
             
     | 
| 
      
 233 
     | 
    
         
            +
            // Incantations
         
     | 
| 
      
 234 
     | 
    
         
            +
            uuidv5(name, namespace);
         
     | 
| 
      
 235 
     | 
    
         
            +
            uuidv5(name, namespace, buffer);
         
     | 
| 
      
 236 
     | 
    
         
            +
            uuidv5(name, namespace, buffer, offset);
         
     | 
| 
      
 237 
     | 
    
         
            +
            ```
         
     | 
| 
      
 238 
     | 
    
         
            +
             
     | 
| 
      
 239 
     | 
    
         
            +
            Generate and return a RFC4122 v5 UUID.
         
     | 
| 
      
 240 
     | 
    
         
            +
             
     | 
| 
      
 241 
     | 
    
         
            +
            * `name` - (String | Array[]) "name" to create UUID with
         
     | 
| 
      
 242 
     | 
    
         
            +
            * `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values
         
     | 
| 
      
 243 
     | 
    
         
            +
            * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
         
     | 
| 
      
 244 
     | 
    
         
            +
            * `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0
         
     | 
| 
      
 245 
     | 
    
         
            +
             
     | 
| 
      
 246 
     | 
    
         
            +
            Returns `buffer`, if specified, otherwise the string form of the UUID
         
     | 
| 
      
 247 
     | 
    
         
            +
             
     | 
| 
      
 248 
     | 
    
         
            +
            Example:
         
     | 
| 
      
 249 
     | 
    
         
            +
             
     | 
| 
      
 250 
     | 
    
         
            +
            ```javascript
         
     | 
| 
      
 251 
     | 
    
         
            +
            uuidv5('hello world', MY_NAMESPACE);  // ⇨ '9f282611-e0fd-5650-8953-89c8e342da0b'
         
     | 
| 
      
 252 
     | 
    
         
            +
             
     | 
| 
      
 253 
     | 
    
         
            +
            ```
         
     | 
| 
      
 254 
     | 
    
         
            +
             
     | 
| 
      
 255 
     | 
    
         
            +
            ## Command Line
         
     | 
| 
      
 256 
     | 
    
         
            +
             
     | 
| 
      
 257 
     | 
    
         
            +
            UUIDs can be generated from the command line with the `uuid` command.
         
     | 
| 
      
 258 
     | 
    
         
            +
             
     | 
| 
      
 259 
     | 
    
         
            +
            ```shell
         
     | 
| 
      
 260 
     | 
    
         
            +
            $ uuid
         
     | 
| 
      
 261 
     | 
    
         
            +
            ddeb27fb-d9a0-4624-be4d-4615062daed4
         
     | 
| 
      
 262 
     | 
    
         
            +
             
     | 
| 
      
 263 
     | 
    
         
            +
            $ uuid v1
         
     | 
| 
      
 264 
     | 
    
         
            +
            02d37060-d446-11e7-a9fa-7bdae751ebe1
         
     | 
| 
      
 265 
     | 
    
         
            +
            ```
         
     | 
| 
      
 266 
     | 
    
         
            +
             
     | 
| 
      
 267 
     | 
    
         
            +
            Type `uuid --help` for usage details
         
     | 
| 
      
 268 
     | 
    
         
            +
             
     | 
| 
      
 269 
     | 
    
         
            +
            ## Testing
         
     | 
| 
      
 270 
     | 
    
         
            +
             
     | 
| 
      
 271 
     | 
    
         
            +
            ```shell
         
     | 
| 
      
 272 
     | 
    
         
            +
            npm test
         
     | 
| 
      
 273 
     | 
    
         
            +
            ```
         
     | 
| 
      
 274 
     | 
    
         
            +
             
     | 
| 
      
 275 
     | 
    
         
            +
            ----
         
     | 
| 
      
 276 
     | 
    
         
            +
            Markdown generated from [README_js.md](README_js.md) by [](https://github.com/broofa/runmd)
         
     | 
| 
         @@ -0,0 +1,65 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env node
         
     | 
| 
      
 2 
     | 
    
         
            +
            var assert = require('assert');
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            function usage() {
         
     | 
| 
      
 5 
     | 
    
         
            +
              console.log('Usage:');
         
     | 
| 
      
 6 
     | 
    
         
            +
              console.log('  uuid');
         
     | 
| 
      
 7 
     | 
    
         
            +
              console.log('  uuid v1');
         
     | 
| 
      
 8 
     | 
    
         
            +
              console.log('  uuid v3 <name> <namespace uuid>');
         
     | 
| 
      
 9 
     | 
    
         
            +
              console.log('  uuid v4');
         
     | 
| 
      
 10 
     | 
    
         
            +
              console.log('  uuid v5 <name> <namespace uuid>');
         
     | 
| 
      
 11 
     | 
    
         
            +
              console.log('  uuid --help');
         
     | 
| 
      
 12 
     | 
    
         
            +
              console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC4122');
         
     | 
| 
      
 13 
     | 
    
         
            +
            }
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            var args = process.argv.slice(2);
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            if (args.indexOf('--help') >= 0) {
         
     | 
| 
      
 18 
     | 
    
         
            +
              usage();
         
     | 
| 
      
 19 
     | 
    
         
            +
              process.exit(0);
         
     | 
| 
      
 20 
     | 
    
         
            +
            }
         
     | 
| 
      
 21 
     | 
    
         
            +
            var version = args.shift() || 'v4';
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            switch (version) {
         
     | 
| 
      
 24 
     | 
    
         
            +
              case 'v1':
         
     | 
| 
      
 25 
     | 
    
         
            +
                var uuidV1 = require('../v1');
         
     | 
| 
      
 26 
     | 
    
         
            +
                console.log(uuidV1());
         
     | 
| 
      
 27 
     | 
    
         
            +
                break;
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
              case 'v3':
         
     | 
| 
      
 30 
     | 
    
         
            +
                var uuidV3 = require('../v3');
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                var name = args.shift();
         
     | 
| 
      
 33 
     | 
    
         
            +
                var namespace = args.shift();
         
     | 
| 
      
 34 
     | 
    
         
            +
                assert(name != null, 'v3 name not specified');
         
     | 
| 
      
 35 
     | 
    
         
            +
                assert(namespace != null, 'v3 namespace not specified');
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                if (namespace == 'URL') namespace = uuidV3.URL;
         
     | 
| 
      
 38 
     | 
    
         
            +
                if (namespace == 'DNS') namespace = uuidV3.DNS;
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                console.log(uuidV3(name, namespace));
         
     | 
| 
      
 41 
     | 
    
         
            +
                break;
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
              case 'v4':
         
     | 
| 
      
 44 
     | 
    
         
            +
                var uuidV4 = require('../v4');
         
     | 
| 
      
 45 
     | 
    
         
            +
                console.log(uuidV4());
         
     | 
| 
      
 46 
     | 
    
         
            +
                break;
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
              case 'v5':
         
     | 
| 
      
 49 
     | 
    
         
            +
                var uuidV5 = require('../v5');
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                var name = args.shift();
         
     | 
| 
      
 52 
     | 
    
         
            +
                var namespace = args.shift();
         
     | 
| 
      
 53 
     | 
    
         
            +
                assert(name != null, 'v5 name not specified');
         
     | 
| 
      
 54 
     | 
    
         
            +
                assert(namespace != null, 'v5 namespace not specified');
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                if (namespace == 'URL') namespace = uuidV5.URL;
         
     | 
| 
      
 57 
     | 
    
         
            +
                if (namespace == 'DNS') namespace = uuidV5.DNS;
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                console.log(uuidV5(name, namespace));
         
     | 
| 
      
 60 
     | 
    
         
            +
                break;
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
              default:
         
     | 
| 
      
 63 
     | 
    
         
            +
                usage();
         
     | 
| 
      
 64 
     | 
    
         
            +
                process.exit(1);
         
     | 
| 
      
 65 
     | 
    
         
            +
            }
         
     | 
| 
         @@ -0,0 +1,26 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /**
         
     | 
| 
      
 2 
     | 
    
         
            +
             * Convert array of 16 byte values to UUID string format of the form:
         
     | 
| 
      
 3 
     | 
    
         
            +
             * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
         
     | 
| 
      
 4 
     | 
    
         
            +
             */
         
     | 
| 
      
 5 
     | 
    
         
            +
            var byteToHex = [];
         
     | 
| 
      
 6 
     | 
    
         
            +
            for (var i = 0; i < 256; ++i) {
         
     | 
| 
      
 7 
     | 
    
         
            +
              byteToHex[i] = (i + 0x100).toString(16).substr(1);
         
     | 
| 
      
 8 
     | 
    
         
            +
            }
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            function bytesToUuid(buf, offset) {
         
     | 
| 
      
 11 
     | 
    
         
            +
              var i = offset || 0;
         
     | 
| 
      
 12 
     | 
    
         
            +
              var bth = byteToHex;
         
     | 
| 
      
 13 
     | 
    
         
            +
              // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4
         
     | 
| 
      
 14 
     | 
    
         
            +
              return ([
         
     | 
| 
      
 15 
     | 
    
         
            +
                bth[buf[i++]], bth[buf[i++]],
         
     | 
| 
      
 16 
     | 
    
         
            +
                bth[buf[i++]], bth[buf[i++]], '-',
         
     | 
| 
      
 17 
     | 
    
         
            +
                bth[buf[i++]], bth[buf[i++]], '-',
         
     | 
| 
      
 18 
     | 
    
         
            +
                bth[buf[i++]], bth[buf[i++]], '-',
         
     | 
| 
      
 19 
     | 
    
         
            +
                bth[buf[i++]], bth[buf[i++]], '-',
         
     | 
| 
      
 20 
     | 
    
         
            +
                bth[buf[i++]], bth[buf[i++]],
         
     | 
| 
      
 21 
     | 
    
         
            +
                bth[buf[i++]], bth[buf[i++]],
         
     | 
| 
      
 22 
     | 
    
         
            +
                bth[buf[i++]], bth[buf[i++]]
         
     | 
| 
      
 23 
     | 
    
         
            +
              ]).join('');
         
     | 
| 
      
 24 
     | 
    
         
            +
            }
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            module.exports = bytesToUuid;
         
     |