Ignore:
Timestamp:
11/25/21 22:08:24 (3 years ago)
Author:
Ema <ema_spirova@…>
Branches:
master
Children:
8d391a1
Parents:
59329aa
Message:

primeNG components

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trip-planner-front/node_modules/uuid/README.md

    r59329aa re29cc2e  
    33  -->
    44
    5 # uuid [![CI](https://github.com/uuidjs/uuid/workflows/CI/badge.svg)](https://github.com/uuidjs/uuid/actions?query=workflow%3ACI) [![Browser](https://github.com/uuidjs/uuid/workflows/Browser/badge.svg)](https://github.com/uuidjs/uuid/actions?query=workflow%3ABrowser)
    6 
    7 For the creation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDs
    8 
    9 - **Complete** - Support for RFC4122 version 1, 3, 4, and 5 UUIDs
    10 - **Cross-platform** - Support for ...
    11   - CommonJS, [ECMAScript Modules](#ecmascript-modules) and [CDN builds](#cdn-builds)
    12   - Node 8, 10, 12, 14
    13   - Chrome, Safari, Firefox, Edge, IE 11 browsers
    14   - Webpack and rollup.js module bundlers
    15   - [React Native / Expo](#react-native--expo)
    16 - **Secure** - Cryptographically-strong random values
    17 - **Small** - Zero-dependency, small footprint, plays nice with "tree shaking" packagers
    18 - **CLI** - Includes the [`uuid` command line](#command-line) utility
    19 
    20 **Upgrading from `uuid@3.x`?** Your code is probably okay, but check out [Upgrading From `uuid@3.x`](#upgrading-from-uuid3x) for details.
    21 
    22 ## Quickstart
    23 
    24 To create a random UUID...
    25 
    26 **1. Install**
     5# uuid [![Build Status](https://secure.travis-ci.org/kelektiv/node-uuid.svg?branch=master)](http://travis-ci.org/kelektiv/node-uuid) #
     6
     7Simple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS.
     8
     9Features:
     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
     17supported 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)
    2720
    2821```shell
     
    3023```
    3124
    32 **2. Create a UUID** (ES6 module syntax)
    33 
    34 ```javascript
    35 import { v4 as uuidv4 } from 'uuid';
    36 uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
    37 ```
    38 
    39 ... or using CommonJS syntax:
    40 
    41 ```javascript
    42 const { v4: uuidv4 } = require('uuid');
     25Then generate your uuid version of choice ...
     26
     27Version 1 (timestamp):
     28
     29```javascript
     30const uuidv1 = require('uuid/v1');
     31uuidv1(); // ⇨ '2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d'
     32
     33```
     34
     35Version 3 (namespace):
     36
     37```javascript
     38const uuidv3 = require('uuid/v3');
     39
     40// ... using predefined DNS namespace (for domain names)
     41uuidv3('hello.example.com', uuidv3.DNS); // ⇨ '9125a8dc-52ee-365b-a5aa-81b0b3681cf6'
     42
     43// ... using predefined URL namespace (for, well, URLs)
     44uuidv3('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.
     50const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
     51uuidv3('Hello, World!', MY_NAMESPACE); // ⇨ 'e8b5a51d-11c8-3310-a6ab-367563f20686'
     52
     53```
     54
     55Version 4 (random):
     56
     57```javascript
     58const uuidv4 = require('uuid/v4');
    4359uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
    44 ```
    45 
    46 For timestamp UUIDs, namespace UUIDs, and other options read on ...
    47 
    48 ## API Summary
    49 
    50 |  |  |  |
    51 | --- | --- | --- |
    52 | [`uuid.NIL`](#uuidnil) | The nil UUID string (all zeros) | New in `uuid@8.3` |
    53 | [`uuid.parse()`](#uuidparsestr) | Convert UUID string to array of bytes | New in `uuid@8.3` |
    54 | [`uuid.stringify()`](#uuidstringifyarr-offset) | Convert array of bytes to UUID string | New in `uuid@8.3` |
    55 | [`uuid.v1()`](#uuidv1options-buffer-offset) | Create a version 1 (timestamp) UUID |  |
    56 | [`uuid.v3()`](#uuidv3name-namespace-buffer-offset) | Create a version 3 (namespace w/ MD5) UUID |  |
    57 | [`uuid.v4()`](#uuidv4options-buffer-offset) | Create a version 4 (random) UUID |  |
    58 | [`uuid.v5()`](#uuidv5name-namespace-buffer-offset) | Create a version 5 (namespace w/ SHA-1) UUID |  |
    59 | [`uuid.validate()`](#uuidvalidatestr) | Test a string to see if it is a valid UUID | New in `uuid@8.3` |
    60 | [`uuid.version()`](#uuidversionstr) | Detect RFC version of a UUID | New in `uuid@8.3` |
     60
     61```
     62
     63Version 5 (namespace):
     64
     65```javascript
     66const uuidv5 = require('uuid/v5');
     67
     68// ... using predefined DNS namespace (for domain names)
     69uuidv5('hello.example.com', uuidv5.DNS); // ⇨ 'fdda765f-fc57-5604-a269-52a7df8164ec'
     70
     71// ... using predefined URL namespace (for, well, URLs)
     72uuidv5('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.
     78const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
     79uuidv5('Hello, World!', MY_NAMESPACE); // ⇨ '630eb68f-e0fa-5ecc-887a-7c7a62614681'
     80
     81```
    6182
    6283## API
    6384
    64 ### uuid.NIL
    65 
    66 The nil UUID string (all zeros).
    67 
    68 Example:
    69 
    70 ```javascript
    71 import { NIL as NIL_UUID } from 'uuid';
    72 
    73 NIL_UUID; // ⇨ '00000000-0000-0000-0000-000000000000'
    74 ```
    75 
    76 ### uuid.parse(str)
    77 
    78 Convert UUID string to array of bytes
    79 
    80 |           |                                          |
    81 | --------- | ---------------------------------------- |
    82 | `str`     | A valid UUID `String`                    |
    83 | _returns_ | `Uint8Array[16]`                         |
    84 | _throws_  | `TypeError` if `str` is not a valid UUID |
    85 
    86 Note: Ordering of values in the byte arrays used by `parse()` and `stringify()` follows the left &Rarr; right order of hex-pairs in UUID strings. As shown in the example below.
    87 
    88 Example:
    89 
    90 ```javascript
    91 import { parse as uuidParse } from 'uuid';
    92 
    93 // Parse a UUID
    94 const bytes = uuidParse('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b');
    95 
    96 // Convert to hex strings to show byte order (for documentation purposes)
    97 [...bytes].map((v) => v.toString(16).padStart(2, '0')); // ⇨
    98   // [
    99   //   '6e', 'c0', 'bd', '7f',
    100   //   '11', 'c0', '43', 'da',
    101   //   '97', '5e', '2a', '8a',
    102   //   'd9', 'eb', 'ae', '0b'
    103   // ]
    104 ```
    105 
    106 ### uuid.stringify(arr[, offset])
    107 
    108 Convert array of bytes to UUID string
    109 
    110 |                |                                                                              |
    111 | -------------- | ---------------------------------------------------------------------------- |
    112 | `arr`          | `Array`-like collection of 16 values (starting from `offset`) between 0-255. |
    113 | [`offset` = 0] | `Number` Starting index in the Array                                         |
    114 | _returns_      | `String`                                                                     |
    115 | _throws_       | `TypeError` if a valid UUID string cannot be generated                       |
    116 
    117 Note: Ordering of values in the byte arrays used by `parse()` and `stringify()` follows the left &Rarr; right order of hex-pairs in UUID strings. As shown in the example below.
    118 
    119 Example:
    120 
    121 ```javascript
    122 import { stringify as uuidStringify } from 'uuid';
    123 
    124 const uuidBytes = [
    125   0x6e,
    126   0xc0,
    127   0xbd,
    128   0x7f,
    129   0x11,
    130   0xc0,
    131   0x43,
    132   0xda,
    133   0x97,
    134   0x5e,
    135   0x2a,
    136   0x8a,
    137   0xd9,
    138   0xeb,
    139   0xae,
    140   0x0b,
    141 ];
    142 
    143 uuidStringify(uuidBytes); // ⇨ '6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'
    144 ```
    145 
    146 ### uuid.v1([options[, buffer[, offset]]])
    147 
    148 Create an RFC version 1 (timestamp) UUID
    149 
    150 |  |  |
    151 | --- | --- |
    152 | [`options`] | `Object` with one or more of the following properties: |
    153 | [`options.node` ] | RFC "node" field as an `Array[6]` of byte values (per 4.1.6) |
    154 | [`options.clockseq`] | RFC "clock sequence" as a `Number` between 0 - 0x3fff |
    155 | [`options.msecs`] | RFC "timestamp" field (`Number` of milliseconds, unix epoch) |
    156 | [`options.nsecs`] | RFC "timestamp" field (`Number` of nanseconds to add to `msecs`, should be 0-10,000) |
    157 | [`options.random`] | `Array` of 16 random bytes (0-255) |
    158 | [`options.rng`] | Alternative to `options.random`, a `Function` that returns an `Array` of 16 random bytes (0-255) |
    159 | [`buffer`] | `Array \| Buffer` If specified, uuid will be written here in byte-form, starting at `offset` |
    160 | [`offset` = 0] | `Number` Index to start writing UUID bytes in `buffer` |
    161 | _returns_ | UUID `String` if no `buffer` is specified, otherwise returns `buffer` |
    162 | _throws_ | `Error` if more than 10M UUIDs/sec are requested |
     85### Version 1
     86
     87```javascript
     88const uuidv1 = require('uuid/v1');
     89
     90// Incantations
     91uuidv1();
     92uuidv1(options);
     93uuidv1(options, buffer, offset);
     94```
     95
     96Generate 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
     108Returns `buffer`, if specified, otherwise the string form of the UUID
    163109
    164110Note: 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.
    165111
    166 Note: `options.random` and `options.rng` are only meaningful on the very first call to `v1()`, where they may be passed to initialize the internal `node` and `clockseq` fields.
    167 
    168 Example:
    169 
    170 ```javascript
    171 import { v1 as uuidv1 } from 'uuid';
    172 
    173 uuidv1(); // ⇨ '2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d'
    174 ```
    175 
    176 Example using `options`:
    177 
    178 ```javascript
    179 import { v1 as uuidv1 } from 'uuid';
    180 
     112Example: Generate string UUID with fully-specified options
     113
     114```javascript
    181115const v1options = {
    182116  node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
    183117  clockseq: 0x1234,
    184118  msecs: new Date('2011-11-01').getTime(),
    185   nsecs: 5678,
     119  nsecs: 5678
    186120};
    187121uuidv1(v1options); // ⇨ '710b962e-041c-11e1-9234-0123456789ab'
    188 ```
    189 
    190 ### uuid.v3(name, namespace[, buffer[, offset]])
    191 
    192 Create an RFC version 3 (namespace w/ MD5) UUID
    193 
    194 API is identical to `v5()`, but uses "v3" instead.
    195 
    196 &#x26a0;&#xfe0f; Note: Per the RFC, "_If backward compatibility is not an issue, SHA-1 [Version 5] is preferred_."
    197 
    198 ### uuid.v4([options[, buffer[, offset]]])
    199 
    200 Create an RFC version 4 (random) UUID
    201 
    202 |  |  |
    203 | --- | --- |
    204 | [`options`] | `Object` with one or more of the following properties: |
    205 | [`options.random`] | `Array` of 16 random bytes (0-255) |
    206 | [`options.rng`] | Alternative to `options.random`, a `Function` that returns an `Array` of 16 random bytes (0-255) |
    207 | [`buffer`] | `Array \| Buffer` If specified, uuid will be written here in byte-form, starting at `offset` |
    208 | [`offset` = 0] | `Number` Index to start writing UUID bytes in `buffer` |
    209 | _returns_ | UUID `String` if no `buffer` is specified, otherwise returns `buffer` |
     122
     123```
     124
     125Example: In-place generation of two binary IDs
     126
     127```javascript
     128// Generate two ids in an array
     129const arr = new Array();
     130uuidv1(null, arr, 0);  // ⇨
     131  // [
     132  //    44,  94, 164, 192,  64, 103,
     133  //    17, 233, 146,  52, 155,  29,
     134  //   235,  77,  59, 125
     135  // ]
     136uuidv1(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
     149const uuidv3 = require('uuid/v3');
     150
     151// Incantations
     152uuidv3(name, namespace);
     153uuidv3(name, namespace, buffer);
     154uuidv3(name, namespace, buffer, offset);
     155```
     156
     157Generate 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
     164Returns `buffer`, if specified, otherwise the string form of the UUID
    210165
    211166Example:
    212167
    213168```javascript
    214 import { v4 as uuidv4 } from 'uuid';
    215 
    216 uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
    217 ```
    218 
    219 Example using predefined `random` values:
    220 
    221 ```javascript
    222 import { v4 as uuidv4 } from 'uuid';
    223 
     169uuidv3('hello world', MY_NAMESPACE);  // ⇨ '042ffd34-d989-321c-ad06-f60826172424'
     170
     171```
     172
     173### Version 4
     174
     175```javascript
     176const uuidv4 = require('uuid/v4')
     177
     178// Incantations
     179uuidv4();
     180uuidv4(options);
     181uuidv4(options, buffer, offset);
     182```
     183
     184Generate 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
     192Returns `buffer`, if specified, otherwise the string form of the UUID
     193
     194Example: Generate string UUID with predefined `random` values
     195
     196```javascript
    224197const v4options = {
    225198  random: [
    226     0x10,
    227     0x91,
    228     0x56,
    229     0xbe,
    230     0xc4,
    231     0xfb,
    232     0xc1,
    233     0xea,
    234     0x71,
    235     0xb4,
    236     0xef,
    237     0xe1,
    238     0x67,
    239     0x1c,
    240     0x58,
    241     0x36,
    242   ],
     199    0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea,
     200    0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36
     201  ]
    243202};
    244203uuidv4(v4options); // ⇨ '109156be-c4fb-41ea-b1b4-efe1671c5836'
    245 ```
    246 
    247 ### uuid.v5(name, namespace[, buffer[, offset]])
    248 
    249 Create an RFC version 5 (namespace w/ SHA-1) UUID
    250 
    251 |  |  |
    252 | --- | --- |
    253 | `name` | `String \| Array` |
    254 | `namespace` | `String \| Array[16]` Namespace UUID |
    255 | [`buffer`] | `Array \| Buffer` If specified, uuid will be written here in byte-form, starting at `offset` |
    256 | [`offset` = 0] | `Number` Index to start writing UUID bytes in `buffer` |
    257 | _returns_ | UUID `String` if no `buffer` is specified, otherwise returns `buffer` |
    258 
    259 Note: The RFC `DNS` and `URL` namespaces are available as `v5.DNS` and `v5.URL`.
    260 
    261 Example with custom namespace:
    262 
    263 ```javascript
    264 import { v5 as uuidv5 } from 'uuid';
    265 
    266 // Define a custom namespace.  Readers, create your own using something like
    267 // https://www.uuidgenerator.net/
    268 const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
    269 
    270 uuidv5('Hello, World!', MY_NAMESPACE); // ⇨ '630eb68f-e0fa-5ecc-887a-7c7a62614681'
    271 ```
    272 
    273 Example with RFC `URL` namespace:
    274 
    275 ```javascript
    276 import { v5 as uuidv5 } from 'uuid';
    277 
    278 uuidv5('https://www.w3.org/', uuidv5.URL); // ⇨ 'c106a26a-21bb-5538-8bf2-57095d1976c1'
    279 ```
    280 
    281 ### uuid.validate(str)
    282 
    283 Test a string to see if it is a valid UUID
    284 
    285 |           |                                                     |
    286 | --------- | --------------------------------------------------- |
    287 | `str`     | `String` to validate                                |
    288 | _returns_ | `true` if string is a valid UUID, `false` otherwise |
     204
     205```
     206
     207Example: Generate two IDs in a single buffer
     208
     209```javascript
     210const buffer = new Array();
     211uuidv4(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  // ]
     218uuidv4(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
     231const uuidv5 = require('uuid/v5');
     232
     233// Incantations
     234uuidv5(name, namespace);
     235uuidv5(name, namespace, buffer);
     236uuidv5(name, namespace, buffer, offset);
     237```
     238
     239Generate 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
     246Returns `buffer`, if specified, otherwise the string form of the UUID
    289247
    290248Example:
    291249
    292250```javascript
    293 import { validate as uuidValidate } from 'uuid';
    294 
    295 uuidValidate('not a UUID'); // ⇨ false
    296 uuidValidate('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'); // ⇨ true
    297 ```
    298 
    299 Using `validate` and `version` together it is possible to do per-version validation, e.g. validate for only v4 UUIds.
    300 
    301 ```javascript
    302 import { version as uuidVersion } from 'uuid';
    303 import { validate as uuidValidate } from 'uuid';
    304 
    305 function uuidValidateV4(uuid) {
    306   return uuidValidate(uuid) && uuidVersion(uuid) === 4;
    307 }
    308 
    309 const v1Uuid = 'd9428888-122b-11e1-b85c-61cd3cbb3210';
    310 const v4Uuid = '109156be-c4fb-41ea-b1b4-efe1671c5836';
    311 
    312 uuidValidateV4(v4Uuid); // ⇨ true
    313 uuidValidateV4(v1Uuid); // ⇨ false
    314 ```
    315 
    316 ### uuid.version(str)
    317 
    318 Detect RFC version of a UUID
    319 
    320 |           |                                          |
    321 | --------- | ---------------------------------------- |
    322 | `str`     | A valid UUID `String`                    |
    323 | _returns_ | `Number` The RFC version of the UUID     |
    324 | _throws_  | `TypeError` if `str` is not a valid UUID |
    325 
    326 Example:
    327 
    328 ```javascript
    329 import { version as uuidVersion } from 'uuid';
    330 
    331 uuidVersion('45637ec4-c85f-11ea-87d0-0242ac130003'); // ⇨ 1
    332 uuidVersion('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'); // ⇨ 4
     251uuidv5('hello world', MY_NAMESPACE);  // ⇨ '9f282611-e0fd-5650-8953-89c8e342da0b'
     252
    333253```
    334254
    335255## Command Line
    336256
    337 UUIDs can be generated from the command line using `uuid`.
     257UUIDs can be generated from the command line with the `uuid` command.
    338258
    339259```shell
    340260$ uuid
    341261ddeb27fb-d9a0-4624-be4d-4615062daed4
    342 ```
    343 
    344 The default is to generate version 4 UUIDS, however the other versions are supported. Type `uuid --help` for details:
     262
     263$ uuid v1
     26402d37060-d446-11e7-a9fa-7bdae751ebe1
     265```
     266
     267Type `uuid --help` for usage details
     268
     269## Testing
    345270
    346271```shell
    347 $ uuid --help
    348 
    349 Usage:
    350   uuid
    351   uuid v1
    352   uuid v3 <name> <namespace uuid>
    353   uuid v4
    354   uuid v5 <name> <namespace uuid>
    355   uuid --help
    356 
    357 Note: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs
    358 defined by RFC4122
    359 ```
    360 
    361 ## ECMAScript Modules
    362 
    363 This library comes with [ECMAScript Modules](https://www.ecma-international.org/ecma-262/6.0/#sec-modules) (ESM) support for Node.js versions that support it ([example](./examples/node-esmodules/)) as well as bundlers like [rollup.js](https://rollupjs.org/guide/en/#tree-shaking) ([example](./examples/browser-rollup/)) and [webpack](https://webpack.js.org/guides/tree-shaking/) ([example](./examples/browser-webpack/)) (targeting both, Node.js and browser environments).
    364 
    365 ```javascript
    366 import { v4 as uuidv4 } from 'uuid';
    367 uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
    368 ```
    369 
    370 To run the examples you must first create a dist build of this library in the module root:
    371 
    372 ```shell
    373 npm run build
    374 ```
    375 
    376 ## CDN Builds
    377 
    378 ### ECMAScript Modules
    379 
    380 To load this module directly into modern browsers that [support loading ECMAScript Modules](https://caniuse.com/#feat=es6-module) you can make use of [jspm](https://jspm.org/):
    381 
    382 ```html
    383 <script type="module">
    384   import { v4 as uuidv4 } from 'https://jspm.dev/uuid';
    385   console.log(uuidv4()); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
    386 </script>
    387 ```
    388 
    389 ### UMD
    390 
    391 To load this module directly into older browsers you can use the [UMD (Universal Module Definition)](https://github.com/umdjs/umd) builds from any of the following CDNs:
    392 
    393 **Using [UNPKG](https://unpkg.com/uuid@latest/dist/umd/)**:
    394 
    395 ```html
    396 <script src="https://unpkg.com/uuid@latest/dist/umd/uuidv4.min.js"></script>
    397 ```
    398 
    399 **Using [jsDelivr](https://cdn.jsdelivr.net/npm/uuid@latest/dist/umd/)**:
    400 
    401 ```html
    402 <script src="https://cdn.jsdelivr.net/npm/uuid@latest/dist/umd/uuidv4.min.js"></script>
    403 ```
    404 
    405 **Using [cdnjs](https://cdnjs.com/libraries/uuid)**:
    406 
    407 ```html
    408 <script src="https://cdnjs.cloudflare.com/ajax/libs/uuid/8.1.0/uuidv4.min.js"></script>
    409 ```
    410 
    411 These CDNs all provide the same [`uuidv4()`](#uuidv4options-buffer-offset) method:
    412 
    413 ```html
    414 <script>
    415   uuidv4(); // ⇨ '55af1e37-0734-46d8-b070-a1e42e4fc392'
    416 </script>
    417 ```
    418 
    419 Methods for the other algorithms ([`uuidv1()`](#uuidv1options-buffer-offset), [`uuidv3()`](#uuidv3name-namespace-buffer-offset) and [`uuidv5()`](#uuidv5name-namespace-buffer-offset)) are available from the files `uuidv1.min.js`, `uuidv3.min.js` and `uuidv5.min.js` respectively.
    420 
    421 ## "getRandomValues() not supported"
    422 
    423 This error occurs in environments where the standard [`crypto.getRandomValues()`](https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues) API is not supported. This issue can be resolved by adding an appropriate polyfill:
    424 
    425 ### React Native / Expo
    426 
    427 1. Install [`react-native-get-random-values`](https://github.com/LinusU/react-native-get-random-values#readme)
    428 1. Import it _before_ `uuid`. Since `uuid` might also appear as a transitive dependency of some other imports it's safest to just import `react-native-get-random-values` as the very first thing in your entry point:
    429 
    430 ```javascript
    431 import 'react-native-get-random-values';
    432 import { v4 as uuidv4 } from 'uuid';
    433 ```
    434 
    435 Note: If you are using Expo, you must be using at least `react-native-get-random-values@1.5.0` and `expo@39.0.0`.
    436 
    437 ### Web Workers / Service Workers (Edge <= 18)
    438 
    439 [In Edge <= 18, Web Crypto is not supported in Web Workers or Service Workers](https://caniuse.com/#feat=cryptography) and we are not aware of a polyfill (let us know if you find one, please).
    440 
    441 ## Upgrading From `uuid@7.x`
    442 
    443 ### Only Named Exports Supported When Using with Node.js ESM
    444 
    445 `uuid@7.x` did not come with native ECMAScript Module (ESM) support for Node.js. Importing it in Node.js ESM consequently imported the CommonJS source with a default export. This library now comes with true Node.js ESM support and only provides named exports.
    446 
    447 Instead of doing:
    448 
    449 ```javascript
    450 import uuid from 'uuid';
    451 uuid.v4();
    452 ```
    453 
    454 you will now have to use the named exports:
    455 
    456 ```javascript
    457 import { v4 as uuidv4 } from 'uuid';
    458 uuidv4();
    459 ```
    460 
    461 ### Deep Requires No Longer Supported
    462 
    463 Deep requires like `require('uuid/v4')` [which have been deprecated in `uuid@7.x`](#deep-requires-now-deprecated) are no longer supported.
    464 
    465 ## Upgrading From `uuid@3.x`
    466 
    467 "_Wait... what happened to `uuid@4.x` - `uuid@6.x`?!?_"
    468 
    469 In order to avoid confusion with RFC [version 4](#uuidv4options-buffer-offset) and [version 5](#uuidv5name-namespace-buffer-offset) UUIDs, and a possible [version 6](http://gh.peabody.io/uuidv6/), releases 4 thru 6 of this module have been skipped.
    470 
    471 ### Deep Requires Now Deprecated
    472 
    473 `uuid@3.x` encouraged the use of deep requires to minimize the bundle size of browser builds:
    474 
    475 ```javascript
    476 const uuidv4 = require('uuid/v4'); // <== NOW DEPRECATED!
    477 uuidv4();
    478 ```
    479 
    480 As of `uuid@7.x` this library now provides ECMAScript modules builds, which allow packagers like Webpack and Rollup to do "tree-shaking" to remove dead code. Instead, use the `import` syntax:
    481 
    482 ```javascript
    483 import { v4 as uuidv4 } from 'uuid';
    484 uuidv4();
    485 ```
    486 
    487 ... or for CommonJS:
    488 
    489 ```javascript
    490 const { v4: uuidv4 } = require('uuid');
    491 uuidv4();
    492 ```
    493 
    494 ### Default Export Removed
    495 
    496 `uuid@3.x` was exporting the Version 4 UUID method as a default export:
    497 
    498 ```javascript
    499 const uuid = require('uuid'); // <== REMOVED!
    500 ```
    501 
    502 This usage pattern was already discouraged in `uuid@3.x` and has been removed in `uuid@7.x`.
     272npm test
     273```
    503274
    504275----
Note: See TracChangeset for help on using the changeset viewer.