decidim 0.24.3 → 0.25.0.rc4

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of decidim might be problematic. Click here for more details.

Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +28 -8
  3. data/babel.config.json +30 -0
  4. data/decidim-core/lib/decidim/webpacker/configuration.rb +89 -0
  5. data/decidim-core/lib/decidim/webpacker/postcss.config.js +16 -0
  6. data/decidim-core/lib/decidim/webpacker/runner.rb +24 -0
  7. data/decidim-core/lib/decidim/webpacker/webpack/base.js +6 -0
  8. data/decidim-core/lib/decidim/webpacker/webpack/custom.js +97 -0
  9. data/decidim-core/lib/decidim/webpacker/webpack/development.js +7 -0
  10. data/decidim-core/lib/decidim/webpacker/webpack/production.js +7 -0
  11. data/decidim-core/lib/decidim/webpacker/webpack/test.js +7 -0
  12. data/decidim-core/lib/decidim/webpacker/webpacker.yml +65 -0
  13. data/docs/README.adoc +1 -1
  14. data/docs/modules/configure/pages/initializer.adoc +31 -0
  15. data/docs/modules/customize/assets/images/modified_user_menu.png +0 -0
  16. data/docs/modules/customize/assets/images/original_user_menu.png +0 -0
  17. data/docs/modules/customize/pages/code.adoc +4 -1
  18. data/docs/modules/customize/pages/images.adoc +2 -2
  19. data/docs/modules/customize/pages/javascript.adoc +8 -3
  20. data/docs/modules/customize/pages/menu.adoc +56 -0
  21. data/docs/modules/customize/pages/styles.adoc +6 -3
  22. data/docs/modules/develop/pages/components.adoc +30 -0
  23. data/docs/modules/develop/pages/guide_migrate_webpacker_app.adoc +175 -0
  24. data/docs/modules/develop/pages/guide_migrate_webpacker_module.adoc +121 -0
  25. data/docs/modules/develop/pages/maps.adoc +2 -2
  26. data/docs/modules/develop/pages/newsletter_templates.adoc +1 -1
  27. data/docs/modules/develop/pages/releases.adoc +3 -1
  28. data/docs/modules/develop/pages/testing.adoc +11 -0
  29. data/docs/modules/develop/pages/view_models_aka_cells.adoc +1 -12
  30. data/docs/modules/install/pages/manual.adoc +46 -43
  31. data/docs/modules/services/pages/elections_bulletin_board.adoc +19 -16
  32. data/docs/modules/services/pages/social_providers.adoc +1 -1
  33. data/lib/decidim/gem_manager.rb +39 -18
  34. data/lib/decidim/version.rb +1 -1
  35. data/lib/decidim.rb +0 -4
  36. data/lib/tasks/decidim_tasks.rake +92 -0
  37. data/package-lock.json +36038 -0
  38. data/package.json +71 -0
  39. data/packages/browserslist-config/index.js +7 -0
  40. data/packages/browserslist-config/package.json +13 -0
  41. data/packages/core/node_modules/uuid/AUTHORS +5 -0
  42. data/packages/core/node_modules/uuid/CHANGELOG.md +119 -0
  43. data/packages/core/node_modules/uuid/LICENSE.md +21 -0
  44. data/packages/core/node_modules/uuid/README.md +276 -0
  45. data/packages/core/node_modules/uuid/bin/uuid +65 -0
  46. data/packages/core/node_modules/uuid/index.js +8 -0
  47. data/packages/core/node_modules/uuid/lib/bytesToUuid.js +26 -0
  48. data/packages/core/node_modules/uuid/lib/md5-browser.js +216 -0
  49. data/packages/core/node_modules/uuid/lib/md5.js +25 -0
  50. data/packages/core/node_modules/uuid/lib/rng-browser.js +34 -0
  51. data/packages/core/node_modules/uuid/lib/rng.js +8 -0
  52. data/packages/core/node_modules/uuid/lib/sha1-browser.js +89 -0
  53. data/packages/core/node_modules/uuid/lib/sha1.js +25 -0
  54. data/packages/core/node_modules/uuid/lib/v35.js +57 -0
  55. data/packages/core/node_modules/uuid/package.json +49 -0
  56. data/packages/core/node_modules/uuid/v1.js +109 -0
  57. data/packages/core/node_modules/uuid/v3.js +4 -0
  58. data/packages/core/node_modules/uuid/v4.js +29 -0
  59. data/packages/core/node_modules/uuid/v5.js +3 -0
  60. data/packages/core/package.json +53 -0
  61. data/packages/dev/package.json +15 -0
  62. data/packages/elections/package.json +17 -0
  63. data/packages/eslint-config/index.js +278 -0
  64. data/packages/eslint-config/package.json +24 -0
  65. data/packages/stylelint-config/index.js +160 -0
  66. data/packages/stylelint-config/package.json +16 -0
  67. data/packages/webpacker/index.js +6 -0
  68. data/packages/webpacker/package.json +50 -0
  69. data/packages/webpacker/src/override-config.js +52 -0
  70. metadata +92 -44
data/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "a-decidim-app",
3
+ "description": "The participatory democracy framework",
4
+ "repository": {
5
+ "url": "git@github.com:decidim/decidim.git",
6
+ "type": "git"
7
+ },
8
+ "author": "Marc Riera <mrc2407@gmail.com>",
9
+ "license": "AGPL-3.0",
10
+ "engines": {
11
+ "node": "^16.9.1",
12
+ "npm": "^7.21.1"
13
+ },
14
+ "files": [
15
+ "packages/**/*"
16
+ ],
17
+ "browserslist": [
18
+ "extends @decidim/browserslist-config"
19
+ ],
20
+ "scripts": {
21
+ "lint": "eslint -c .eslintrc.json --no-error-on-unmatched-pattern --ext .js,.jsx decidim-*",
22
+ "stylelint": "stylelint decidim-*/**/*.scss",
23
+ "test": "jest",
24
+ "test:watch": "npm run test -- --watch",
25
+ "test:ci": "npm run lint && npm run test"
26
+ },
27
+ "stylelint": {
28
+ "extends": "@decidim/stylelint-config"
29
+ },
30
+ "jest": {
31
+ "testURL": "https://decidim.dev/",
32
+ "setupFiles": [
33
+ "<rootDir>/decidim-core/spec/js/entry_test.js",
34
+ "raf/polyfill"
35
+ ],
36
+ "moduleFileExtensions": [
37
+ "js"
38
+ ],
39
+ "moduleDirectories": [
40
+ "node_modules",
41
+ "decidim-core/app/packs"
42
+ ],
43
+ "moduleNameMapper": {
44
+ "\\.(scss|css|less)$": "identity-obj-proxy"
45
+ },
46
+ "transform": {
47
+ "\\.yml$": "yaml-jest",
48
+ "\\.js$": "babel-jest"
49
+ },
50
+ "testRegex": "\\.(test|spec)\\.js$"
51
+ },
52
+ "dependencies": {
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"
57
+ },
58
+ "devDependencies": {
59
+ "@decidim/dev": "file:packages/dev",
60
+ "@decidim/eslint-config": "file:packages/eslint-config",
61
+ "@decidim/stylelint-config": "file:packages/stylelint-config",
62
+ "babel-jest": "^26.6.3",
63
+ "concat-stream": "^2.0.0",
64
+ "enzyme": "^3.11.0",
65
+ "enzyme-adapter-react-16": "^1.15.4",
66
+ "jest": "^26.6.3",
67
+ "jest-localstorage-mock": "^2.4.3",
68
+ "react-test-renderer": "^16.0.0",
69
+ "yaml-jest": "^1.0.5"
70
+ }
71
+ }
@@ -0,0 +1,7 @@
1
+ module.exports = [ // eslint-disable-line
2
+ "> 0.5%",
3
+ "last 2 versions",
4
+ "Firefox ESR",
5
+ "IE 11",
6
+ "not dead"
7
+ ]
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "@decidim/browserslist-config",
3
+ "description": "The Browserslist configuration for Decidim",
4
+ "version": "0.25.0-rc4",
5
+ "repository": {
6
+ "url": "git@github.com:decidim/decidim.git",
7
+ "type": "git",
8
+ "directory": "packages/browserslist-config"
9
+ },
10
+ "author": "Decidim Contributors",
11
+ "license": "AGPL-3.0",
12
+ "main": "index.js"
13
+ }
@@ -0,0 +1,5 @@
1
+ Robert Kieffer <robert@broofa.com>
2
+ Christoph Tavan <dev@tavan.de>
3
+ AJ ONeal <coolaj86@gmail.com>
4
+ Vincent Voyer <vincent@zeroload.net>
5
+ Roman Shtylman <shtylman@gmail.com>
@@ -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 [![Build Status](https://secure.travis-ci.org/kelektiv/node-uuid.svg?branch=master)](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 [![RunMD Logo](http://i.imgur.com/h0FVyzU.png)](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,8 @@
1
+ var v1 = require('./v1');
2
+ var v4 = require('./v4');
3
+
4
+ var uuid = v4;
5
+ uuid.v1 = v1;
6
+ uuid.v4 = v4;
7
+
8
+ module.exports = uuid;
@@ -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;