github.com/nektos/act@v0.2.63/pkg/runner/testdata/actions/node12/node_modules/uuid/README.md (about)

     1  <!--
     2    -- This file is auto-generated from README_js.md. Changes should be made there.
     3    -->
     4  
     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**
    27  
    28  ```shell
    29  npm install uuid
    30  ```
    31  
    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');
    43  uuidv4(); // ⇨ '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` |
    61  
    62  ## API
    63  
    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 |
   163  
   164  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.
   165  
   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  
   181  const v1options = {
   182    node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
   183    clockseq: 0x1234,
   184    msecs: new Date('2011-11-01').getTime(),
   185    nsecs: 5678,
   186  };
   187  uuidv1(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` |
   210  
   211  Example:
   212  
   213  ```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  
   224  const v4options = {
   225    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    ],
   243  };
   244  uuidv4(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 |
   289  
   290  Example:
   291  
   292  ```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
   333  ```
   334  
   335  ## Command Line
   336  
   337  UUIDs can be generated from the command line using `uuid`.
   338  
   339  ```shell
   340  $ uuid
   341  ddeb27fb-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:
   345  
   346  ```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`.
   503  
   504  ----
   505  Markdown generated from [README_js.md](README_js.md) by [![RunMD Logo](http://i.imgur.com/h0FVyzU.png)](https://github.com/broofa/runmd)