Nouvelle version, ne nécessitant que la saisie d'un pseudo (plus besoin de créer un compte)
This commit is contained in:
2
.env
2
.env
@@ -1,4 +1,4 @@
|
|||||||
DATABASE = mia
|
DATABASE = mia_dev
|
||||||
DATABASE_HOST = db.thecoredev.fr
|
DATABASE_HOST = db.thecoredev.fr
|
||||||
DATABASE_PORT = 3306
|
DATABASE_PORT = 3306
|
||||||
DATABASE_USER = mia
|
DATABASE_USER = mia
|
||||||
|
|||||||
5
.env.prod
Normal file
5
.env.prod
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
DATABASE = mia
|
||||||
|
DATABASE_HOST = db.thecoredev.fr
|
||||||
|
DATABASE_PORT = 3306
|
||||||
|
DATABASE_USER = mia
|
||||||
|
DATABASE_PASSWORD = CalomOk0t-ISvpw-
|
||||||
95
app.js
95
app.js
@@ -7,6 +7,7 @@ const publicDir = path.join(__dirname, './public')
|
|||||||
const bcrypt = require("bcryptjs")
|
const bcrypt = require("bcryptjs")
|
||||||
const bodyParser = require('body-parser')
|
const bodyParser = require('body-parser')
|
||||||
const dateFormat = require('dateformat');
|
const dateFormat = require('dateformat');
|
||||||
|
const uuid = require('uuid');
|
||||||
|
|
||||||
|
|
||||||
/* Connexion à la BDD MySQL */
|
/* Connexion à la BDD MySQL */
|
||||||
@@ -53,17 +54,34 @@ function comparePassword(plaintextPassword, hash) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function rollback(session, user) {
|
||||||
|
db.query('DELETE from participation WHERE user=? AND session=?', [user, session], (error, result) => {
|
||||||
|
if(error){ console.log(error) }
|
||||||
|
if(result && result.affectedRows > 0) {
|
||||||
|
db.query('DELETE from user WHERE id=?', [user], (error, result) => {
|
||||||
|
if(error){ console.log(error) }
|
||||||
|
if(result && result.affectedRows > 0) {
|
||||||
|
db.query('UPDATE session SET nb_of_participants = nb_of_participants - 1 WHERE ID=?', [session], (error, result) => {
|
||||||
|
if(error){ console.log(error) }
|
||||||
|
if(result && result.affectedRows > 0) {
|
||||||
|
console.log('Rollback effectué');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ******************************************* Arrivée sur la page d'accueil *******************************************
|
// ******************************************* Arrivée sur la page d'accueil *******************************************
|
||||||
app.get("/", (req, res) => {
|
app.get("/", (req, res) => {
|
||||||
let today = dateFormat(new Date(), "yyyymmdd");
|
let today = dateFormat(new Date(), "yyyymmdd");
|
||||||
|
|
||||||
// On récupère la liste des sessions actives
|
// On récupère la liste des sessions actives et pour lesquelles il reste de la place
|
||||||
db.query('SELECT ID, topic, DATE_FORMAT(scheduled_on, "%d/%m/%Y") as "date", DATE_FORMAT(scheduled_on, "%Hh%i") as "heure" FROM session WHERE DATE_FORMAT(scheduled_on, "%Y%m%d") >= ?', [today], async (error, result) => {
|
db.query('SELECT ID, topic, DATE_FORMAT(scheduled_on, "%d/%m/%Y") as "date", DATE_FORMAT(scheduled_on, "%Hh%i") as "heure", IF(nb_of_attended-nb_of_participants=0, true, false) as "maxAtteint" FROM session WHERE DATE_FORMAT(scheduled_on, "%Y%m%d") >= ?', [today], async (error, result) => {
|
||||||
if(error){
|
if(error){ console.log(error); }
|
||||||
console.log(error);
|
if (result && result.length == 0) {
|
||||||
}
|
|
||||||
|
|
||||||
if (result.length == 0) {
|
|
||||||
res.render("login-session", { error: 'Aucune session disponible' });
|
res.render("login-session", { error: 'Aucune session disponible' });
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -132,7 +150,57 @@ app.post("/auth/register", (req, res) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// ******************************************* Connexion sur le compte utilisateur *******************************************
|
|
||||||
|
|
||||||
|
|
||||||
|
// ******************************************* Connexion sur le compte utilisateur (sans sécurité) *******************************************
|
||||||
|
app.post("/auth/check-login-no-security", (req, res) => {
|
||||||
|
let newUser;
|
||||||
|
const { nickname, role, session } = req.body;
|
||||||
|
|
||||||
|
db.query('SELECT ID FROM user WHERE UPPER(nickname)=? AND session=?', [nickname.toUpperCase(), session], (error, result) => {
|
||||||
|
if(error){ console.log(error) }
|
||||||
|
if(result && result.length > 0) {
|
||||||
|
return res.render('login', {
|
||||||
|
error: 'Identifiant déjà utilisé : veuillez en choisir un autre',
|
||||||
|
session: session,
|
||||||
|
role: role
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// On crée l'utilisateur pour traçabilité
|
||||||
|
var newUser = uuid.v4();
|
||||||
|
db.query('INSERT INTO user SET?', {id: newUser, nickname : nickname, session: session}, (error, result) => {
|
||||||
|
if(error){ console.log(error); rollback(session, newUser); }
|
||||||
|
if(result && result.affectedRows > 0) {
|
||||||
|
// On trace la connexion de l'utilisateur à la session...
|
||||||
|
db.query('INSERT INTO participation (user, session, role_during_session) VALUES (?,?,?)', [newUser, session, role], function (error, result) {
|
||||||
|
if(error){ console.log(error); rollback(session, newUser);}
|
||||||
|
if(result.affectedRows > 0) {
|
||||||
|
console.log("1 record inserted");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// ... et on incrémente le nb de participants.
|
||||||
|
db.query('UPDATE session SET nb_of_participants = nb_of_participants + 1 WHERE ID=?', [session], function (error, result) {
|
||||||
|
if (error) { console.log(error); rollback(session, newUser); }
|
||||||
|
console.log("1 record updated");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (role == 'A') {
|
||||||
|
res.redirect('https://slave.thecoredev.fr');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
res.redirect('https://slave.thecoredev.fr');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// ******************************************* Connexion sur le compte utilisateur (mode sécurisé) *******************************************
|
||||||
app.post("/auth/check-login", (req, res) => {
|
app.post("/auth/check-login", (req, res) => {
|
||||||
var userId,
|
var userId,
|
||||||
passwordStocke;
|
passwordStocke;
|
||||||
@@ -141,8 +209,7 @@ app.post("/auth/check-login", (req, res) => {
|
|||||||
if (email == '' && nickname == '') {
|
if (email == '' && nickname == '') {
|
||||||
return res.render('login', {
|
return res.render('login', {
|
||||||
error: 'Veuillez saisir soit votre pseudo, soit une adresse email',
|
error: 'Veuillez saisir soit votre pseudo, soit une adresse email',
|
||||||
"session": session,
|
session: session, role: role
|
||||||
"role": role
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -161,8 +228,8 @@ app.post("/auth/check-login", (req, res) => {
|
|||||||
if( result.length == 0 ) {
|
if( result.length == 0 ) {
|
||||||
return res.render('login', {
|
return res.render('login', {
|
||||||
error: 'Utilisateur inconnu : veuillez créer votre compte via le lien ci-dessus',
|
error: 'Utilisateur inconnu : veuillez créer votre compte via le lien ci-dessus',
|
||||||
"session": session,
|
session: session,
|
||||||
"role": role
|
role: role
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -210,9 +277,9 @@ app.post("/auth/check-session", (req, res) => {
|
|||||||
|
|
||||||
const { session, session_password, role } = req.body
|
const { session, session_password, role } = req.body
|
||||||
let listeSessions;
|
let listeSessions;
|
||||||
|
|
||||||
let today = dateFormat(new Date(), "yyyymmdd");
|
let today = dateFormat(new Date(), "yyyymmdd");
|
||||||
db.query('SELECT ID, topic, DATE_FORMAT(scheduled_on, "%d/%m/%Y") as "date", DATE_FORMAT(scheduled_on, "%Hh%i") as "heure" FROM session WHERE DATE_FORMAT(scheduled_on, "%Y%m%d") >= ?', [today], async (error, result) => {
|
|
||||||
|
db.query('SELECT ID, topic, DATE_FORMAT(scheduled_on, "%d/%m/%Y") as "date", DATE_FORMAT(scheduled_on, "%Hh%i") as "heure", IF(nb_of_attended-nb_of_participants=0, true, false) as "maxAtteint" FROM session WHERE DATE_FORMAT(scheduled_on, "%Y%m%d") >= ?', [today], async (error, result) => {
|
||||||
if(error){
|
if(error){
|
||||||
console.log(error);
|
console.log(error);
|
||||||
}
|
}
|
||||||
|
|||||||
1
node_modules/.bin/uuid
generated
vendored
Symbolic link
1
node_modules/.bin/uuid
generated
vendored
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../uuid/dist/bin/uuid
|
||||||
66
node_modules/.package-lock.json
generated
vendored
66
node_modules/.package-lock.json
generated
vendored
@@ -209,15 +209,6 @@
|
|||||||
"npm": "1.2.8000 || >= 1.4.16"
|
"npm": "1.2.8000 || >= 1.4.16"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/domexception": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
|
|
||||||
"integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==",
|
|
||||||
"optional": true,
|
|
||||||
"dependencies": {
|
|
||||||
"webidl-conversions": "^4.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/dotenv": {
|
"node_modules/dotenv": {
|
||||||
"version": "16.3.1",
|
"version": "16.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz",
|
||||||
@@ -876,6 +867,18 @@
|
|||||||
"node": ">= 0.4.0"
|
"node": ">= 0.4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/uuid": {
|
||||||
|
"version": "9.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
|
||||||
|
"integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
|
||||||
|
"funding": [
|
||||||
|
"https://github.com/sponsors/broofa",
|
||||||
|
"https://github.com/sponsors/ctavan"
|
||||||
|
],
|
||||||
|
"bin": {
|
||||||
|
"uuid": "dist/bin/uuid"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/vary": {
|
"node_modules/vary": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
||||||
@@ -892,55 +895,10 @@
|
|||||||
"foreachasync": "^3.0.0"
|
"foreachasync": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/webidl-conversions": {
|
|
||||||
"version": "4.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
|
|
||||||
"integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"node_modules/wordwrap": {
|
"node_modules/wordwrap": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
|
||||||
"integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="
|
"integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="
|
||||||
},
|
|
||||||
"node_modules/wrtc": {
|
|
||||||
"version": "0.4.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/wrtc/-/wrtc-0.4.7.tgz",
|
|
||||||
"integrity": "sha512-P6Hn7VT4lfSH49HxLHcHhDq+aFf/jd9dPY7lDHeFhZ22N3858EKuwm2jmnlPzpsRGEPaoF6XwkcxY5SYnt4f/g==",
|
|
||||||
"bundleDependencies": [
|
|
||||||
"node-pre-gyp"
|
|
||||||
],
|
|
||||||
"hasInstallScript": true,
|
|
||||||
"dependencies": {
|
|
||||||
"node-pre-gyp": "^0.13.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": "^8.11.2 || >=10.0.0"
|
|
||||||
},
|
|
||||||
"optionalDependencies": {
|
|
||||||
"domexception": "^1.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/ws": {
|
|
||||||
"version": "8.14.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz",
|
|
||||||
"integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==",
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"bufferutil": "^4.0.1",
|
|
||||||
"utf-8-validate": ">=5.0.2"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"bufferutil": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"utf-8-validate": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
21
node_modules/domexception/LICENSE.txt
generated
vendored
21
node_modules/domexception/LICENSE.txt
generated
vendored
@@ -1,21 +0,0 @@
|
|||||||
MIT License
|
|
||||||
|
|
||||||
Copyright © 2017 Domenic Denicola
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
19
node_modules/domexception/README.md
generated
vendored
19
node_modules/domexception/README.md
generated
vendored
@@ -1,19 +0,0 @@
|
|||||||
# DOMException
|
|
||||||
|
|
||||||
This package implements the [`DOMException`](https://heycam.github.io/webidl/#idl-DOMException) class, from web browsers. It exists in service of [jsdom](https://github.com/tmpvar/jsdom) and related packages.
|
|
||||||
|
|
||||||
Example usage:
|
|
||||||
|
|
||||||
```js
|
|
||||||
const DOMException = require("domexception");
|
|
||||||
|
|
||||||
const e1 = new DOMException("Something went wrong", "BadThingsError");
|
|
||||||
console.assert(e1.name === "BadThingsError");
|
|
||||||
console.assert(e1.code === 0);
|
|
||||||
|
|
||||||
const e2 = new DOMException("Another exciting error message", "NoModificationAllowedError");
|
|
||||||
console.assert(e2.name === "NoModificationAllowedError");
|
|
||||||
console.assert(e2.code === 7);
|
|
||||||
|
|
||||||
console.assert(DOMException.INUSE_ATTRIBUTE_ERR === 10);
|
|
||||||
```
|
|
||||||
22
node_modules/domexception/lib/DOMException-impl.js
generated
vendored
22
node_modules/domexception/lib/DOMException-impl.js
generated
vendored
@@ -1,22 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
const legacyErrorCodes = require("./legacy-error-codes.json");
|
|
||||||
const idlUtils = require("./utils.js");
|
|
||||||
|
|
||||||
exports.implementation = class DOMExceptionImpl {
|
|
||||||
constructor([message, name]) {
|
|
||||||
this.name = name;
|
|
||||||
this.message = message;
|
|
||||||
}
|
|
||||||
|
|
||||||
get code() {
|
|
||||||
return legacyErrorCodes[this.name] || 0;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// A proprietary V8 extension that causes the stack property to appear.
|
|
||||||
exports.init = impl => {
|
|
||||||
if (Error.captureStackTrace) {
|
|
||||||
const wrapper = idlUtils.wrapperForImpl(impl);
|
|
||||||
Error.captureStackTrace(wrapper, wrapper.constructor);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
368
node_modules/domexception/lib/DOMException.js
generated
vendored
368
node_modules/domexception/lib/DOMException.js
generated
vendored
@@ -1,368 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
|
|
||||||
const conversions = require("webidl-conversions");
|
|
||||||
const utils = require("./utils.js");
|
|
||||||
|
|
||||||
const impl = utils.implSymbol;
|
|
||||||
|
|
||||||
function DOMException() {
|
|
||||||
const args = [];
|
|
||||||
for (let i = 0; i < arguments.length && i < 2; ++i) {
|
|
||||||
args[i] = arguments[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args[0] !== undefined) {
|
|
||||||
args[0] = conversions["DOMString"](args[0], { context: "Failed to construct 'DOMException': parameter 1" });
|
|
||||||
} else {
|
|
||||||
args[0] = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args[1] !== undefined) {
|
|
||||||
args[1] = conversions["DOMString"](args[1], { context: "Failed to construct 'DOMException': parameter 2" });
|
|
||||||
} else {
|
|
||||||
args[1] = "Error";
|
|
||||||
}
|
|
||||||
|
|
||||||
iface.setup(this, args);
|
|
||||||
}
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "prototype", {
|
|
||||||
value: DOMException.prototype,
|
|
||||||
writable: false,
|
|
||||||
enumerable: false,
|
|
||||||
configurable: false
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException.prototype, "name", {
|
|
||||||
get() {
|
|
||||||
return this[impl]["name"];
|
|
||||||
},
|
|
||||||
|
|
||||||
enumerable: true,
|
|
||||||
configurable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException.prototype, "message", {
|
|
||||||
get() {
|
|
||||||
return this[impl]["message"];
|
|
||||||
},
|
|
||||||
|
|
||||||
enumerable: true,
|
|
||||||
configurable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException.prototype, "code", {
|
|
||||||
get() {
|
|
||||||
return this[impl]["code"];
|
|
||||||
},
|
|
||||||
|
|
||||||
enumerable: true,
|
|
||||||
configurable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "INDEX_SIZE_ERR", {
|
|
||||||
value: 1,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "INDEX_SIZE_ERR", {
|
|
||||||
value: 1,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "DOMSTRING_SIZE_ERR", {
|
|
||||||
value: 2,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "DOMSTRING_SIZE_ERR", {
|
|
||||||
value: 2,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "HIERARCHY_REQUEST_ERR", {
|
|
||||||
value: 3,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "HIERARCHY_REQUEST_ERR", {
|
|
||||||
value: 3,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "WRONG_DOCUMENT_ERR", {
|
|
||||||
value: 4,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "WRONG_DOCUMENT_ERR", {
|
|
||||||
value: 4,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "INVALID_CHARACTER_ERR", {
|
|
||||||
value: 5,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "INVALID_CHARACTER_ERR", {
|
|
||||||
value: 5,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "NO_DATA_ALLOWED_ERR", {
|
|
||||||
value: 6,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "NO_DATA_ALLOWED_ERR", {
|
|
||||||
value: 6,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "NO_MODIFICATION_ALLOWED_ERR", {
|
|
||||||
value: 7,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "NO_MODIFICATION_ALLOWED_ERR", {
|
|
||||||
value: 7,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "NOT_FOUND_ERR", {
|
|
||||||
value: 8,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "NOT_FOUND_ERR", {
|
|
||||||
value: 8,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "NOT_SUPPORTED_ERR", {
|
|
||||||
value: 9,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "NOT_SUPPORTED_ERR", {
|
|
||||||
value: 9,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "INUSE_ATTRIBUTE_ERR", {
|
|
||||||
value: 10,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "INUSE_ATTRIBUTE_ERR", {
|
|
||||||
value: 10,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "INVALID_STATE_ERR", {
|
|
||||||
value: 11,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "INVALID_STATE_ERR", {
|
|
||||||
value: 11,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "SYNTAX_ERR", {
|
|
||||||
value: 12,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "SYNTAX_ERR", {
|
|
||||||
value: 12,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "INVALID_MODIFICATION_ERR", {
|
|
||||||
value: 13,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "INVALID_MODIFICATION_ERR", {
|
|
||||||
value: 13,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "NAMESPACE_ERR", {
|
|
||||||
value: 14,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "NAMESPACE_ERR", {
|
|
||||||
value: 14,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "INVALID_ACCESS_ERR", {
|
|
||||||
value: 15,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "INVALID_ACCESS_ERR", {
|
|
||||||
value: 15,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "VALIDATION_ERR", {
|
|
||||||
value: 16,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "VALIDATION_ERR", {
|
|
||||||
value: 16,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "TYPE_MISMATCH_ERR", {
|
|
||||||
value: 17,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "TYPE_MISMATCH_ERR", {
|
|
||||||
value: 17,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "SECURITY_ERR", {
|
|
||||||
value: 18,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "SECURITY_ERR", {
|
|
||||||
value: 18,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "NETWORK_ERR", {
|
|
||||||
value: 19,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "NETWORK_ERR", {
|
|
||||||
value: 19,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "ABORT_ERR", {
|
|
||||||
value: 20,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "ABORT_ERR", {
|
|
||||||
value: 20,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "URL_MISMATCH_ERR", {
|
|
||||||
value: 21,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "URL_MISMATCH_ERR", {
|
|
||||||
value: 21,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "QUOTA_EXCEEDED_ERR", {
|
|
||||||
value: 22,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "QUOTA_EXCEEDED_ERR", {
|
|
||||||
value: 22,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "TIMEOUT_ERR", {
|
|
||||||
value: 23,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "TIMEOUT_ERR", {
|
|
||||||
value: 23,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "INVALID_NODE_TYPE_ERR", {
|
|
||||||
value: 24,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "INVALID_NODE_TYPE_ERR", {
|
|
||||||
value: 24,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException, "DATA_CLONE_ERR", {
|
|
||||||
value: 25,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(DOMException.prototype, "DATA_CLONE_ERR", {
|
|
||||||
value: 25,
|
|
||||||
enumerable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(DOMException.prototype, Symbol.toStringTag, {
|
|
||||||
value: "DOMException",
|
|
||||||
writable: false,
|
|
||||||
enumerable: false,
|
|
||||||
configurable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
const iface = {
|
|
||||||
mixedInto: [],
|
|
||||||
is(obj) {
|
|
||||||
if (obj) {
|
|
||||||
if (obj[impl] instanceof Impl.implementation) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
for (let i = 0; i < module.exports.mixedInto.length; ++i) {
|
|
||||||
if (obj instanceof module.exports.mixedInto[i]) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
isImpl(obj) {
|
|
||||||
if (obj) {
|
|
||||||
if (obj instanceof Impl.implementation) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
const wrapper = utils.wrapperForImpl(obj);
|
|
||||||
for (let i = 0; i < module.exports.mixedInto.length; ++i) {
|
|
||||||
if (wrapper instanceof module.exports.mixedInto[i]) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
convert(obj, { context = "The provided value" } = {}) {
|
|
||||||
if (module.exports.is(obj)) {
|
|
||||||
return utils.implForWrapper(obj);
|
|
||||||
}
|
|
||||||
throw new TypeError(`${context} is not of type 'DOMException'.`);
|
|
||||||
},
|
|
||||||
|
|
||||||
create(constructorArgs, privateData) {
|
|
||||||
let obj = Object.create(DOMException.prototype);
|
|
||||||
this.setup(obj, constructorArgs, privateData);
|
|
||||||
return obj;
|
|
||||||
},
|
|
||||||
createImpl(constructorArgs, privateData) {
|
|
||||||
let obj = Object.create(DOMException.prototype);
|
|
||||||
this.setup(obj, constructorArgs, privateData);
|
|
||||||
return utils.implForWrapper(obj);
|
|
||||||
},
|
|
||||||
_internalSetup(obj) {},
|
|
||||||
setup(obj, constructorArgs, privateData) {
|
|
||||||
if (!privateData) privateData = {};
|
|
||||||
|
|
||||||
privateData.wrapper = obj;
|
|
||||||
|
|
||||||
this._internalSetup(obj);
|
|
||||||
Object.defineProperty(obj, impl, {
|
|
||||||
value: new Impl.implementation(constructorArgs, privateData),
|
|
||||||
writable: false,
|
|
||||||
enumerable: false,
|
|
||||||
configurable: true
|
|
||||||
});
|
|
||||||
obj[impl][utils.wrapperSymbol] = obj;
|
|
||||||
if (Impl.init) {
|
|
||||||
Impl.init(obj[impl], privateData);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
interface: DOMException,
|
|
||||||
expose: {
|
|
||||||
Window: { DOMException },
|
|
||||||
Worker: { DOMException }
|
|
||||||
}
|
|
||||||
}; // iface
|
|
||||||
module.exports = iface;
|
|
||||||
|
|
||||||
const Impl = require(".//DOMException-impl.js");
|
|
||||||
27
node_modules/domexception/lib/legacy-error-codes.json
generated
vendored
27
node_modules/domexception/lib/legacy-error-codes.json
generated
vendored
@@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
"IndexSizeError": 1,
|
|
||||||
"DOMStringSizeError": 2,
|
|
||||||
"HierarchyRequestError": 3,
|
|
||||||
"WrongDocumentError": 4,
|
|
||||||
"InvalidCharacterError": 5,
|
|
||||||
"NoDataAllowedError": 6,
|
|
||||||
"NoModificationAllowedError": 7,
|
|
||||||
"NotFoundError": 8,
|
|
||||||
"NotSupportedError": 9,
|
|
||||||
"InUseAttributeError": 10,
|
|
||||||
"InvalidStateError": 11,
|
|
||||||
"SyntaxError": 12,
|
|
||||||
"InvalidModificationError": 13,
|
|
||||||
"NamespaceError": 14,
|
|
||||||
"InvalidAccessError": 15,
|
|
||||||
"ValidationError": 16,
|
|
||||||
"TypeMismatchError": 17,
|
|
||||||
"SecurityError": 18,
|
|
||||||
"NetworkError": 19,
|
|
||||||
"AbortError": 20,
|
|
||||||
"URLMismatchError": 21,
|
|
||||||
"QuotaExceededError": 22,
|
|
||||||
"TimeoutError": 23,
|
|
||||||
"InvalidNodeTypeError": 24,
|
|
||||||
"DataCloneError": 25
|
|
||||||
}
|
|
||||||
5
node_modules/domexception/lib/public-api.js
generated
vendored
5
node_modules/domexception/lib/public-api.js
generated
vendored
@@ -1,5 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
|
|
||||||
module.exports = require("./DOMException").interface;
|
|
||||||
|
|
||||||
Object.setPrototypeOf(module.exports.prototype, Error.prototype);
|
|
||||||
86
node_modules/domexception/lib/utils.js
generated
vendored
86
node_modules/domexception/lib/utils.js
generated
vendored
@@ -1,86 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
|
|
||||||
// Returns "Type(value) is Object" in ES terminology.
|
|
||||||
function isObject(value) {
|
|
||||||
return typeof value === "object" && value !== null || typeof value === "function";
|
|
||||||
}
|
|
||||||
|
|
||||||
function getReferenceToBytes(bufferSource) {
|
|
||||||
// Node.js' Buffer does not allow subclassing for now, so we can get away with a prototype object check for perf.
|
|
||||||
if (Object.getPrototypeOf(bufferSource) === Buffer.prototype) {
|
|
||||||
return bufferSource;
|
|
||||||
}
|
|
||||||
if (bufferSource instanceof ArrayBuffer) {
|
|
||||||
return Buffer.from(bufferSource);
|
|
||||||
}
|
|
||||||
return Buffer.from(bufferSource.buffer, bufferSource.byteOffset, bufferSource.byteLength);
|
|
||||||
}
|
|
||||||
|
|
||||||
function getCopyToBytes(bufferSource) {
|
|
||||||
return Buffer.from(getReferenceToBytes(bufferSource));
|
|
||||||
}
|
|
||||||
|
|
||||||
function mixin(target, source) {
|
|
||||||
const keys = Object.getOwnPropertyNames(source);
|
|
||||||
for (let i = 0; i < keys.length; ++i) {
|
|
||||||
if (keys[i] in target) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const wrapperSymbol = Symbol("wrapper");
|
|
||||||
const implSymbol = Symbol("impl");
|
|
||||||
const sameObjectCaches = Symbol("SameObject caches");
|
|
||||||
|
|
||||||
function getSameObject(wrapper, prop, creator) {
|
|
||||||
if (!wrapper[sameObjectCaches]) {
|
|
||||||
wrapper[sameObjectCaches] = Object.create(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (prop in wrapper[sameObjectCaches]) {
|
|
||||||
return wrapper[sameObjectCaches][prop];
|
|
||||||
}
|
|
||||||
|
|
||||||
wrapper[sameObjectCaches][prop] = creator();
|
|
||||||
return wrapper[sameObjectCaches][prop];
|
|
||||||
}
|
|
||||||
|
|
||||||
function wrapperForImpl(impl) {
|
|
||||||
return impl ? impl[wrapperSymbol] : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
function implForWrapper(wrapper) {
|
|
||||||
return wrapper ? wrapper[implSymbol] : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
function tryWrapperForImpl(impl) {
|
|
||||||
const wrapper = wrapperForImpl(impl);
|
|
||||||
return wrapper ? wrapper : impl;
|
|
||||||
}
|
|
||||||
|
|
||||||
function tryImplForWrapper(wrapper) {
|
|
||||||
const impl = implForWrapper(wrapper);
|
|
||||||
return impl ? impl : wrapper;
|
|
||||||
}
|
|
||||||
|
|
||||||
const iterInternalSymbol = Symbol("internal");
|
|
||||||
const IteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));
|
|
||||||
|
|
||||||
module.exports = exports = {
|
|
||||||
isObject,
|
|
||||||
getReferenceToBytes,
|
|
||||||
getCopyToBytes,
|
|
||||||
mixin,
|
|
||||||
wrapperSymbol,
|
|
||||||
implSymbol,
|
|
||||||
getSameObject,
|
|
||||||
wrapperForImpl,
|
|
||||||
implForWrapper,
|
|
||||||
tryWrapperForImpl,
|
|
||||||
tryImplForWrapper,
|
|
||||||
iterInternalSymbol,
|
|
||||||
IteratorPrototype
|
|
||||||
};
|
|
||||||
36
node_modules/domexception/package.json
generated
vendored
36
node_modules/domexception/package.json
generated
vendored
@@ -1,36 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "domexception",
|
|
||||||
"description": "An implementation of the DOMException class from browsers",
|
|
||||||
"keywords": [
|
|
||||||
"dom",
|
|
||||||
"webidl",
|
|
||||||
"web idl",
|
|
||||||
"domexception",
|
|
||||||
"error",
|
|
||||||
"exception"
|
|
||||||
],
|
|
||||||
"version": "1.0.1",
|
|
||||||
"author": "Domenic Denicola <d@domenic.me> (https://domenic.me/)",
|
|
||||||
"license": "MIT",
|
|
||||||
"repository": "jsdom/domexception",
|
|
||||||
"main": "lib/public-api.js",
|
|
||||||
"files": [
|
|
||||||
"lib/"
|
|
||||||
],
|
|
||||||
"scripts": {
|
|
||||||
"prepublish": "node scripts/generate.js",
|
|
||||||
"pretest": "npm run prepublish",
|
|
||||||
"test": "mocha",
|
|
||||||
"lint": "eslint lib"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"webidl-conversions": "^4.0.2"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"eslint": "^4.3.0",
|
|
||||||
"mkdirp": "^0.5.1",
|
|
||||||
"mocha": "^3.5.0",
|
|
||||||
"request": "^2.81.0",
|
|
||||||
"webidl2js": "^7.2.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
274
node_modules/uuid/CHANGELOG.md
generated
vendored
Normal file
274
node_modules/uuid/CHANGELOG.md
generated
vendored
Normal file
@@ -0,0 +1,274 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
## [9.0.1](https://github.com/uuidjs/uuid/compare/v9.0.0...v9.0.1) (2023-09-12)
|
||||||
|
|
||||||
|
### build
|
||||||
|
|
||||||
|
- Fix CI to work with Node.js 20.x
|
||||||
|
|
||||||
|
## [9.0.0](https://github.com/uuidjs/uuid/compare/v8.3.2...v9.0.0) (2022-09-05)
|
||||||
|
|
||||||
|
### ⚠ BREAKING CHANGES
|
||||||
|
|
||||||
|
- Drop Node.js 10.x support. This library always aims at supporting one EOLed LTS release which by this time now is 12.x which has reached EOL 30 Apr 2022.
|
||||||
|
|
||||||
|
- Remove the minified UMD build from the package.
|
||||||
|
|
||||||
|
Minified code is hard to audit and since this is a widely used library it seems more appropriate nowadays to optimize for auditability than to ship a legacy module format that, at best, serves educational purposes nowadays.
|
||||||
|
|
||||||
|
For production browser use cases, users should be using a bundler. For educational purposes, today's online sandboxes like replit.com offer convenient ways to load npm modules, so the use case for UMD through repos like UNPKG or jsDelivr has largely vanished.
|
||||||
|
|
||||||
|
- Drop IE 11 and Safari 10 support. Drop support for browsers that don't correctly implement const/let and default arguments, and no longer transpile the browser build to ES2015.
|
||||||
|
|
||||||
|
This also removes the fallback on msCrypto instead of the crypto API.
|
||||||
|
|
||||||
|
Browser tests are run in the first supported version of each supported browser and in the latest (as of this commit) version available on Browserstack.
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- optimize uuid.v1 by 1.3x uuid.v4 by 4.3x (430%) ([#597](https://github.com/uuidjs/uuid/issues/597)) ([3a033f6](https://github.com/uuidjs/uuid/commit/3a033f6bab6bb3780ece6d645b902548043280bc))
|
||||||
|
- remove UMD build ([#645](https://github.com/uuidjs/uuid/issues/645)) ([e948a0f](https://github.com/uuidjs/uuid/commit/e948a0f22bf22f4619b27bd913885e478e20fe6f)), closes [#620](https://github.com/uuidjs/uuid/issues/620)
|
||||||
|
- use native crypto.randomUUID when available ([#600](https://github.com/uuidjs/uuid/issues/600)) ([c9e076c](https://github.com/uuidjs/uuid/commit/c9e076c852edad7e9a06baaa1d148cf4eda6c6c4))
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- add Jest/jsdom compatibility ([#642](https://github.com/uuidjs/uuid/issues/642)) ([16f9c46](https://github.com/uuidjs/uuid/commit/16f9c469edf46f0786164cdf4dc980743984a6fd))
|
||||||
|
- change default export to named function ([#545](https://github.com/uuidjs/uuid/issues/545)) ([c57bc5a](https://github.com/uuidjs/uuid/commit/c57bc5a9a0653273aa639cda9177ce52efabe42a))
|
||||||
|
- handle error when parameter is not set in v3 and v5 ([#622](https://github.com/uuidjs/uuid/issues/622)) ([fcd7388](https://github.com/uuidjs/uuid/commit/fcd73881692d9fabb63872576ba28e30ff852091))
|
||||||
|
- run npm audit fix ([#644](https://github.com/uuidjs/uuid/issues/644)) ([04686f5](https://github.com/uuidjs/uuid/commit/04686f54c5fed2cfffc1b619f4970c4bb8532353))
|
||||||
|
- upgrading from uuid3 broken link ([#568](https://github.com/uuidjs/uuid/issues/568)) ([1c849da](https://github.com/uuidjs/uuid/commit/1c849da6e164259e72e18636726345b13a7eddd6))
|
||||||
|
|
||||||
|
### build
|
||||||
|
|
||||||
|
- drop Node.js 8.x from babel transpile target ([#603](https://github.com/uuidjs/uuid/issues/603)) ([aa11485](https://github.com/uuidjs/uuid/commit/aa114858260402107ec8a1e1a825dea0a259bcb5))
|
||||||
|
- drop support for legacy browsers (IE11, Safari 10) ([#604](https://github.com/uuidjs/uuid/issues/604)) ([0f433e5](https://github.com/uuidjs/uuid/commit/0f433e5ec444edacd53016de67db021102f36148))
|
||||||
|
|
||||||
|
- drop node 10.x to upgrade dev dependencies ([#653](https://github.com/uuidjs/uuid/issues/653)) ([28a5712](https://github.com/uuidjs/uuid/commit/28a571283f8abda6b9d85e689f95b7d3ee9e282e)), closes [#643](https://github.com/uuidjs/uuid/issues/643)
|
||||||
|
|
||||||
|
### [8.3.2](https://github.com/uuidjs/uuid/compare/v8.3.1...v8.3.2) (2020-12-08)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- lazy load getRandomValues ([#537](https://github.com/uuidjs/uuid/issues/537)) ([16c8f6d](https://github.com/uuidjs/uuid/commit/16c8f6df2f6b09b4d6235602d6a591188320a82e)), closes [#536](https://github.com/uuidjs/uuid/issues/536)
|
||||||
|
|
||||||
|
### [8.3.1](https://github.com/uuidjs/uuid/compare/v8.3.0...v8.3.1) (2020-10-04)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- support expo>=39.0.0 ([#515](https://github.com/uuidjs/uuid/issues/515)) ([c65a0f3](https://github.com/uuidjs/uuid/commit/c65a0f3fa73b901959d638d1e3591dfacdbed867)), closes [#375](https://github.com/uuidjs/uuid/issues/375)
|
||||||
|
|
||||||
|
## [8.3.0](https://github.com/uuidjs/uuid/compare/v8.2.0...v8.3.0) (2020-07-27)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- add parse/stringify/validate/version/NIL APIs ([#479](https://github.com/uuidjs/uuid/issues/479)) ([0e6c10b](https://github.com/uuidjs/uuid/commit/0e6c10ba1bf9517796ff23c052fc0468eedfd5f4)), closes [#475](https://github.com/uuidjs/uuid/issues/475) [#478](https://github.com/uuidjs/uuid/issues/478) [#480](https://github.com/uuidjs/uuid/issues/480) [#481](https://github.com/uuidjs/uuid/issues/481) [#180](https://github.com/uuidjs/uuid/issues/180)
|
||||||
|
|
||||||
|
## [8.2.0](https://github.com/uuidjs/uuid/compare/v8.1.0...v8.2.0) (2020-06-23)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- improve performance of v1 string representation ([#453](https://github.com/uuidjs/uuid/issues/453)) ([0ee0b67](https://github.com/uuidjs/uuid/commit/0ee0b67c37846529c66089880414d29f3ae132d5))
|
||||||
|
- remove deprecated v4 string parameter ([#454](https://github.com/uuidjs/uuid/issues/454)) ([88ce3ca](https://github.com/uuidjs/uuid/commit/88ce3ca0ba046f60856de62c7ce03f7ba98ba46c)), closes [#437](https://github.com/uuidjs/uuid/issues/437)
|
||||||
|
- support jspm ([#473](https://github.com/uuidjs/uuid/issues/473)) ([e9f2587](https://github.com/uuidjs/uuid/commit/e9f2587a92575cac31bc1d4ae944e17c09756659))
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- prepare package exports for webpack 5 ([#468](https://github.com/uuidjs/uuid/issues/468)) ([8d6e6a5](https://github.com/uuidjs/uuid/commit/8d6e6a5f8965ca9575eb4d92e99a43435f4a58a8))
|
||||||
|
|
||||||
|
## [8.1.0](https://github.com/uuidjs/uuid/compare/v8.0.0...v8.1.0) (2020-05-20)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- improve v4 performance by reusing random number array ([#435](https://github.com/uuidjs/uuid/issues/435)) ([bf4af0d](https://github.com/uuidjs/uuid/commit/bf4af0d711b4d2ed03d1f74fd12ad0baa87dc79d))
|
||||||
|
- optimize V8 performance of bytesToUuid ([#434](https://github.com/uuidjs/uuid/issues/434)) ([e156415](https://github.com/uuidjs/uuid/commit/e156415448ec1af2351fa0b6660cfb22581971f2))
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- export package.json required by react-native and bundlers ([#449](https://github.com/uuidjs/uuid/issues/449)) ([be1c8fe](https://github.com/uuidjs/uuid/commit/be1c8fe9a3206c358e0059b52fafd7213aa48a52)), closes [ai/nanoevents#44](https://github.com/ai/nanoevents/issues/44#issuecomment-602010343) [#444](https://github.com/uuidjs/uuid/issues/444)
|
||||||
|
|
||||||
|
## [8.0.0](https://github.com/uuidjs/uuid/compare/v7.0.3...v8.0.0) (2020-04-29)
|
||||||
|
|
||||||
|
### ⚠ BREAKING CHANGES
|
||||||
|
|
||||||
|
- For native ECMAScript Module (ESM) usage in Node.js only named exports are exposed, there is no more default export.
|
||||||
|
|
||||||
|
```diff
|
||||||
|
-import uuid from 'uuid';
|
||||||
|
-console.log(uuid.v4()); // -> 'cd6c3b08-0adc-4f4b-a6ef-36087a1c9869'
|
||||||
|
+import { v4 as uuidv4 } from 'uuid';
|
||||||
|
+uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
|
||||||
|
```
|
||||||
|
|
||||||
|
- Deep requiring specific algorithms of this library like `require('uuid/v4')`, which has been deprecated in `uuid@7`, is no longer supported.
|
||||||
|
|
||||||
|
Instead use the named exports that this module exports.
|
||||||
|
|
||||||
|
For ECMAScript Modules (ESM):
|
||||||
|
|
||||||
|
```diff
|
||||||
|
-import uuidv4 from 'uuid/v4';
|
||||||
|
+import { v4 as uuidv4 } from 'uuid';
|
||||||
|
uuidv4();
|
||||||
|
```
|
||||||
|
|
||||||
|
For CommonJS:
|
||||||
|
|
||||||
|
```diff
|
||||||
|
-const uuidv4 = require('uuid/v4');
|
||||||
|
+const { v4: uuidv4 } = require('uuid');
|
||||||
|
uuidv4();
|
||||||
|
```
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- native Node.js ES Modules (wrapper approach) ([#423](https://github.com/uuidjs/uuid/issues/423)) ([2d9f590](https://github.com/uuidjs/uuid/commit/2d9f590ad9701d692625c07ed62f0a0f91227991)), closes [#245](https://github.com/uuidjs/uuid/issues/245) [#419](https://github.com/uuidjs/uuid/issues/419) [#342](https://github.com/uuidjs/uuid/issues/342)
|
||||||
|
- remove deep requires ([#426](https://github.com/uuidjs/uuid/issues/426)) ([daf72b8](https://github.com/uuidjs/uuid/commit/daf72b84ceb20272a81bb5fbddb05dd95922cbba))
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- add CommonJS syntax example to README quickstart section ([#417](https://github.com/uuidjs/uuid/issues/417)) ([e0ec840](https://github.com/uuidjs/uuid/commit/e0ec8402c7ad44b7ef0453036c612f5db513fda0))
|
||||||
|
|
||||||
|
### [7.0.3](https://github.com/uuidjs/uuid/compare/v7.0.2...v7.0.3) (2020-03-31)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- make deep require deprecation warning work in browsers ([#409](https://github.com/uuidjs/uuid/issues/409)) ([4b71107](https://github.com/uuidjs/uuid/commit/4b71107d8c0d2ef56861ede6403fc9dc35a1e6bf)), closes [#408](https://github.com/uuidjs/uuid/issues/408)
|
||||||
|
|
||||||
|
### [7.0.2](https://github.com/uuidjs/uuid/compare/v7.0.1...v7.0.2) (2020-03-04)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- make access to msCrypto consistent ([#393](https://github.com/uuidjs/uuid/issues/393)) ([8bf2a20](https://github.com/uuidjs/uuid/commit/8bf2a20f3565df743da7215eebdbada9d2df118c))
|
||||||
|
- simplify link in deprecation warning ([#391](https://github.com/uuidjs/uuid/issues/391)) ([bb2c8e4](https://github.com/uuidjs/uuid/commit/bb2c8e4e9f4c5f9c1eaaf3ea59710c633cd90cb7))
|
||||||
|
- update links to match content in readme ([#386](https://github.com/uuidjs/uuid/issues/386)) ([44f2f86](https://github.com/uuidjs/uuid/commit/44f2f86e9d2bbf14ee5f0f00f72a3db1292666d4))
|
||||||
|
|
||||||
|
### [7.0.1](https://github.com/uuidjs/uuid/compare/v7.0.0...v7.0.1) (2020-02-25)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- clean up esm builds for node and browser ([#383](https://github.com/uuidjs/uuid/issues/383)) ([59e6a49](https://github.com/uuidjs/uuid/commit/59e6a49e7ce7b3e8fb0f3ee52b9daae72af467dc))
|
||||||
|
- provide browser versions independent from module system ([#380](https://github.com/uuidjs/uuid/issues/380)) ([4344a22](https://github.com/uuidjs/uuid/commit/4344a22e7aed33be8627eeaaf05360f256a21753)), closes [#378](https://github.com/uuidjs/uuid/issues/378)
|
||||||
|
|
||||||
|
## [7.0.0](https://github.com/uuidjs/uuid/compare/v3.4.0...v7.0.0) (2020-02-24)
|
||||||
|
|
||||||
|
### ⚠ BREAKING CHANGES
|
||||||
|
|
||||||
|
- The default export, which used to be the v4() method but which was already discouraged in v3.x of this library, has been removed.
|
||||||
|
- Explicitly note that deep imports of the different uuid version functions are deprecated and no longer encouraged and that ECMAScript module named imports should be used instead. Emit a deprecation warning for people who deep-require the different algorithm variants.
|
||||||
|
- Remove builtin support for insecure random number generators in the browser. Users who want that will have to supply their own random number generator function.
|
||||||
|
- Remove support for generating v3 and v5 UUIDs in Node.js<4.x
|
||||||
|
- Convert code base to ECMAScript Modules (ESM) and release CommonJS build for node and ESM build for browser bundlers.
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- add UMD build to npm package ([#357](https://github.com/uuidjs/uuid/issues/357)) ([4e75adf](https://github.com/uuidjs/uuid/commit/4e75adf435196f28e3fbbe0185d654b5ded7ca2c)), closes [#345](https://github.com/uuidjs/uuid/issues/345)
|
||||||
|
- add various es module and CommonJS examples ([b238510](https://github.com/uuidjs/uuid/commit/b238510bf352463521f74bab175a3af9b7a42555))
|
||||||
|
- ensure that docs are up-to-date in CI ([ee5e77d](https://github.com/uuidjs/uuid/commit/ee5e77db547474f5a8f23d6c857a6d399209986b))
|
||||||
|
- hybrid CommonJS & ECMAScript modules build ([a3f078f](https://github.com/uuidjs/uuid/commit/a3f078faa0baff69ab41aed08e041f8f9c8993d0))
|
||||||
|
- remove insecure fallback random number generator ([3a5842b](https://github.com/uuidjs/uuid/commit/3a5842b141a6e5de0ae338f391661e6b84b167c9)), closes [#173](https://github.com/uuidjs/uuid/issues/173)
|
||||||
|
- remove support for pre Node.js v4 Buffer API ([#356](https://github.com/uuidjs/uuid/issues/356)) ([b59b5c5](https://github.com/uuidjs/uuid/commit/b59b5c5ecad271c5453f1a156f011671f6d35627))
|
||||||
|
- rename repository to github:uuidjs/uuid ([#351](https://github.com/uuidjs/uuid/issues/351)) ([c37a518](https://github.com/uuidjs/uuid/commit/c37a518e367ac4b6d0aa62dba1bc6ce9e85020f7)), closes [#338](https://github.com/uuidjs/uuid/issues/338)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- add deep-require proxies for local testing and adjust tests ([#365](https://github.com/uuidjs/uuid/issues/365)) ([7fedc79](https://github.com/uuidjs/uuid/commit/7fedc79ac8fda4bfd1c566c7f05ef4ac13b2db48))
|
||||||
|
- add note about removal of default export ([#372](https://github.com/uuidjs/uuid/issues/372)) ([12749b7](https://github.com/uuidjs/uuid/commit/12749b700eb49db8a9759fd306d8be05dbfbd58c)), closes [#370](https://github.com/uuidjs/uuid/issues/370)
|
||||||
|
- deprecated deep requiring of the different algorithm versions ([#361](https://github.com/uuidjs/uuid/issues/361)) ([c0bdf15](https://github.com/uuidjs/uuid/commit/c0bdf15e417639b1aeb0b247b2fb11f7a0a26b23))
|
||||||
|
|
||||||
|
## [3.4.0](https://github.com/uuidjs/uuid/compare/v3.3.3...v3.4.0) (2020-01-16)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- 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)
|
||||||
|
|
||||||
|
## [3.3.3](https://github.com/uuidjs/uuid/compare/v3.3.2...v3.3.3) (2019-08-19)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- no longer run ci tests on node v4
|
||||||
|
- upgrade dependencies
|
||||||
|
|
||||||
|
## [3.3.2](https://github.com/uuidjs/uuid/compare/v3.3.1...v3.3.2) (2018-06-28)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- typo ([305d877](https://github.com/uuidjs/uuid/commit/305d877))
|
||||||
|
|
||||||
|
## [3.3.1](https://github.com/uuidjs/uuid/compare/v3.3.0...v3.3.1) (2018-06-28)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- fix [#284](https://github.com/uuidjs/uuid/issues/284) by setting function name in try-catch ([f2a60f2](https://github.com/uuidjs/uuid/commit/f2a60f2))
|
||||||
|
|
||||||
|
# [3.3.0](https://github.com/uuidjs/uuid/compare/v3.2.1...v3.3.0) (2018-06-22)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- 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))
|
||||||
|
- fix [#229](https://github.com/uuidjs/uuid/issues/229) ([c9684d4](https://github.com/uuidjs/uuid/commit/c9684d4))
|
||||||
|
- Get correct version of IE11 crypto ([#274](https://github.com/uuidjs/uuid/issues/274)) ([153d331](https://github.com/uuidjs/uuid/commit/153d331))
|
||||||
|
- mem issue when generating uuid ([#267](https://github.com/uuidjs/uuid/issues/267)) ([c47702c](https://github.com/uuidjs/uuid/commit/c47702c))
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- enforce Conventional Commit style commit messages ([#282](https://github.com/uuidjs/uuid/issues/282)) ([cc9a182](https://github.com/uuidjs/uuid/commit/cc9a182))
|
||||||
|
|
||||||
|
## [3.2.1](https://github.com/uuidjs/uuid/compare/v3.2.0...v3.2.1) (2018-01-16)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- 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))
|
||||||
|
|
||||||
|
# [3.2.0](https://github.com/uuidjs/uuid/compare/v3.1.0...v3.2.0) (2018-01-16)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- remove mistakenly added typescript dependency, rollback version (standard-version will auto-increment) ([09fa824](https://github.com/uuidjs/uuid/commit/09fa824))
|
||||||
|
- 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))
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- Add v3 Support ([#217](https://github.com/uuidjs/uuid/issues/217)) ([d94f726](https://github.com/uuidjs/uuid/commit/d94f726))
|
||||||
|
|
||||||
|
# [3.1.0](https://github.com/uuidjs/uuid/compare/v3.1.0...v3.0.1) (2017-06-17)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- (fix) Add .npmignore file to exclude test/ and other non-essential files from packing. (#183)
|
||||||
|
- Fix typo (#178)
|
||||||
|
- Simple typo fix (#165)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- v5 support in CLI (#197)
|
||||||
|
- V5 support (#188)
|
||||||
|
|
||||||
|
# 3.0.1 (2016-11-28)
|
||||||
|
|
||||||
|
- split uuid versions into separate files
|
||||||
|
|
||||||
|
# 3.0.0 (2016-11-17)
|
||||||
|
|
||||||
|
- remove .parse and .unparse
|
||||||
|
|
||||||
|
# 2.0.0
|
||||||
|
|
||||||
|
- Removed uuid.BufferClass
|
||||||
|
|
||||||
|
# 1.4.0
|
||||||
|
|
||||||
|
- Improved module context detection
|
||||||
|
- Removed public RNG functions
|
||||||
|
|
||||||
|
# 1.3.2
|
||||||
|
|
||||||
|
- Improve tests and handling of v1() options (Issue #24)
|
||||||
|
- Expose RNG option to allow for perf testing with different generators
|
||||||
|
|
||||||
|
# 1.3.0
|
||||||
|
|
||||||
|
- Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)!
|
||||||
|
- Support for node.js crypto API
|
||||||
|
- De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code
|
||||||
18
node_modules/uuid/CONTRIBUTING.md
generated
vendored
Normal file
18
node_modules/uuid/CONTRIBUTING.md
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Contributing
|
||||||
|
|
||||||
|
Please feel free to file GitHub Issues or propose Pull Requests. We're always happy to discuss improvements to this library!
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
```shell
|
||||||
|
npm test
|
||||||
|
```
|
||||||
|
|
||||||
|
## Releasing
|
||||||
|
|
||||||
|
Releases are supposed to be done from master, version bumping is automated through [`standard-version`](https://github.com/conventional-changelog/standard-version):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
npm run release -- --dry-run # verify output manually
|
||||||
|
npm run release # follow the instructions from the output of this command
|
||||||
|
```
|
||||||
9
node_modules/uuid/LICENSE.md
generated
vendored
Normal file
9
node_modules/uuid/LICENSE.md
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2010-2020 Robert Kieffer and other contributors
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
466
node_modules/uuid/README.md
generated
vendored
Normal file
466
node_modules/uuid/README.md
generated
vendored
Normal file
@@ -0,0 +1,466 @@
|
|||||||
|
<!--
|
||||||
|
-- This file is auto-generated from README_js.md. Changes should be made there.
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
# uuid [](https://github.com/uuidjs/uuid/actions?query=workflow%3ACI) [](https://github.com/uuidjs/uuid/actions?query=workflow%3ABrowser)
|
||||||
|
|
||||||
|
For the creation of [RFC4122](https://www.ietf.org/rfc/rfc4122.txt) UUIDs
|
||||||
|
|
||||||
|
- **Complete** - Support for RFC4122 version 1, 3, 4, and 5 UUIDs
|
||||||
|
- **Cross-platform** - Support for ...
|
||||||
|
- CommonJS, [ECMAScript Modules](#ecmascript-modules) and [CDN builds](#cdn-builds)
|
||||||
|
- NodeJS 12+ ([LTS releases](https://github.com/nodejs/Release))
|
||||||
|
- Chrome, Safari, Firefox, Edge browsers
|
||||||
|
- Webpack and rollup.js module bundlers
|
||||||
|
- [React Native / Expo](#react-native--expo)
|
||||||
|
- **Secure** - Cryptographically-strong random values
|
||||||
|
- **Small** - Zero-dependency, small footprint, plays nice with "tree shaking" packagers
|
||||||
|
- **CLI** - Includes the [`uuid` command line](#command-line) utility
|
||||||
|
|
||||||
|
> **Note** Upgrading from `uuid@3`? Your code is probably okay, but check out [Upgrading From `uuid@3`](#upgrading-from-uuid3) for details.
|
||||||
|
|
||||||
|
> **Note** Only interested in creating a version 4 UUID? You might be able to use [`crypto.randomUUID()`](https://developer.mozilla.org/en-US/docs/Web/API/Crypto/randomUUID), eliminating the need to install this library.
|
||||||
|
|
||||||
|
## Quickstart
|
||||||
|
|
||||||
|
To create a random UUID...
|
||||||
|
|
||||||
|
**1. Install**
|
||||||
|
|
||||||
|
```shell
|
||||||
|
npm install uuid
|
||||||
|
```
|
||||||
|
|
||||||
|
**2. Create a UUID** (ES6 module syntax)
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
|
||||||
|
```
|
||||||
|
|
||||||
|
... or using CommonJS syntax:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
const { v4: uuidv4 } = require('uuid');
|
||||||
|
uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
|
||||||
|
```
|
||||||
|
|
||||||
|
For timestamp UUIDs, namespace UUIDs, and other options read on ...
|
||||||
|
|
||||||
|
## API Summary
|
||||||
|
|
||||||
|
| | | |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| [`uuid.NIL`](#uuidnil) | The nil UUID string (all zeros) | New in `uuid@8.3` |
|
||||||
|
| [`uuid.parse()`](#uuidparsestr) | Convert UUID string to array of bytes | New in `uuid@8.3` |
|
||||||
|
| [`uuid.stringify()`](#uuidstringifyarr-offset) | Convert array of bytes to UUID string | New in `uuid@8.3` |
|
||||||
|
| [`uuid.v1()`](#uuidv1options-buffer-offset) | Create a version 1 (timestamp) UUID | |
|
||||||
|
| [`uuid.v3()`](#uuidv3name-namespace-buffer-offset) | Create a version 3 (namespace w/ MD5) UUID | |
|
||||||
|
| [`uuid.v4()`](#uuidv4options-buffer-offset) | Create a version 4 (random) UUID | |
|
||||||
|
| [`uuid.v5()`](#uuidv5name-namespace-buffer-offset) | Create a version 5 (namespace w/ SHA-1) UUID | |
|
||||||
|
| [`uuid.validate()`](#uuidvalidatestr) | Test a string to see if it is a valid UUID | New in `uuid@8.3` |
|
||||||
|
| [`uuid.version()`](#uuidversionstr) | Detect RFC version of a UUID | New in `uuid@8.3` |
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
### uuid.NIL
|
||||||
|
|
||||||
|
The nil UUID string (all zeros).
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { NIL as NIL_UUID } from 'uuid';
|
||||||
|
|
||||||
|
NIL_UUID; // ⇨ '00000000-0000-0000-0000-000000000000'
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.parse(str)
|
||||||
|
|
||||||
|
Convert UUID string to array of bytes
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| --------- | ---------------------------------------- |
|
||||||
|
| `str` | A valid UUID `String` |
|
||||||
|
| _returns_ | `Uint8Array[16]` |
|
||||||
|
| _throws_ | `TypeError` if `str` is not a valid UUID |
|
||||||
|
|
||||||
|
Note: Ordering of values in the byte arrays used by `parse()` and `stringify()` follows the left ↠ right order of hex-pairs in UUID strings. As shown in the example below.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { parse as uuidParse } from 'uuid';
|
||||||
|
|
||||||
|
// Parse a UUID
|
||||||
|
const bytes = uuidParse('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b');
|
||||||
|
|
||||||
|
// Convert to hex strings to show byte order (for documentation purposes)
|
||||||
|
[...bytes].map((v) => v.toString(16).padStart(2, '0')); // ⇨
|
||||||
|
// [
|
||||||
|
// '6e', 'c0', 'bd', '7f',
|
||||||
|
// '11', 'c0', '43', 'da',
|
||||||
|
// '97', '5e', '2a', '8a',
|
||||||
|
// 'd9', 'eb', 'ae', '0b'
|
||||||
|
// ]
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.stringify(arr[, offset])
|
||||||
|
|
||||||
|
Convert array of bytes to UUID string
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| -------------- | ---------------------------------------------------------------------------- |
|
||||||
|
| `arr` | `Array`-like collection of 16 values (starting from `offset`) between 0-255. |
|
||||||
|
| [`offset` = 0] | `Number` Starting index in the Array |
|
||||||
|
| _returns_ | `String` |
|
||||||
|
| _throws_ | `TypeError` if a valid UUID string cannot be generated |
|
||||||
|
|
||||||
|
Note: Ordering of values in the byte arrays used by `parse()` and `stringify()` follows the left ↠ right order of hex-pairs in UUID strings. As shown in the example below.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { stringify as uuidStringify } from 'uuid';
|
||||||
|
|
||||||
|
const uuidBytes = [
|
||||||
|
0x6e, 0xc0, 0xbd, 0x7f, 0x11, 0xc0, 0x43, 0xda, 0x97, 0x5e, 0x2a, 0x8a, 0xd9, 0xeb, 0xae, 0x0b,
|
||||||
|
];
|
||||||
|
|
||||||
|
uuidStringify(uuidBytes); // ⇨ '6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.v1([options[, buffer[, offset]]])
|
||||||
|
|
||||||
|
Create an RFC version 1 (timestamp) UUID
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| --- | --- |
|
||||||
|
| [`options`] | `Object` with one or more of the following properties: |
|
||||||
|
| [`options.node` ] | RFC "node" field as an `Array[6]` of byte values (per 4.1.6) |
|
||||||
|
| [`options.clockseq`] | RFC "clock sequence" as a `Number` between 0 - 0x3fff |
|
||||||
|
| [`options.msecs`] | RFC "timestamp" field (`Number` of milliseconds, unix epoch) |
|
||||||
|
| [`options.nsecs`] | RFC "timestamp" field (`Number` of nanoseconds to add to `msecs`, should be 0-10,000) |
|
||||||
|
| [`options.random`] | `Array` of 16 random bytes (0-255) |
|
||||||
|
| [`options.rng`] | Alternative to `options.random`, a `Function` that returns an `Array` of 16 random bytes (0-255) |
|
||||||
|
| [`buffer`] | `Array \| Buffer` If specified, uuid will be written here in byte-form, starting at `offset` |
|
||||||
|
| [`offset` = 0] | `Number` Index to start writing UUID bytes in `buffer` |
|
||||||
|
| _returns_ | UUID `String` if no `buffer` is specified, otherwise returns `buffer` |
|
||||||
|
| _throws_ | `Error` if more than 10M UUIDs/sec are requested |
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v1 as uuidv1 } from 'uuid';
|
||||||
|
|
||||||
|
uuidv1(); // ⇨ '2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d'
|
||||||
|
```
|
||||||
|
|
||||||
|
Example using `options`:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v1 as uuidv1 } from 'uuid';
|
||||||
|
|
||||||
|
const v1options = {
|
||||||
|
node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
|
||||||
|
clockseq: 0x1234,
|
||||||
|
msecs: new Date('2011-11-01').getTime(),
|
||||||
|
nsecs: 5678,
|
||||||
|
};
|
||||||
|
uuidv1(v1options); // ⇨ '710b962e-041c-11e1-9234-0123456789ab'
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.v3(name, namespace[, buffer[, offset]])
|
||||||
|
|
||||||
|
Create an RFC version 3 (namespace w/ MD5) UUID
|
||||||
|
|
||||||
|
API is identical to `v5()`, but uses "v3" instead.
|
||||||
|
|
||||||
|
⚠️ Note: Per the RFC, "_If backward compatibility is not an issue, SHA-1 [Version 5] is preferred_."
|
||||||
|
|
||||||
|
### uuid.v4([options[, buffer[, offset]]])
|
||||||
|
|
||||||
|
Create an RFC version 4 (random) UUID
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| --- | --- |
|
||||||
|
| [`options`] | `Object` with one or more of the following properties: |
|
||||||
|
| [`options.random`] | `Array` of 16 random bytes (0-255) |
|
||||||
|
| [`options.rng`] | Alternative to `options.random`, a `Function` that returns an `Array` of 16 random bytes (0-255) |
|
||||||
|
| [`buffer`] | `Array \| Buffer` If specified, uuid will be written here in byte-form, starting at `offset` |
|
||||||
|
| [`offset` = 0] | `Number` Index to start writing UUID bytes in `buffer` |
|
||||||
|
| _returns_ | UUID `String` if no `buffer` is specified, otherwise returns `buffer` |
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
|
||||||
|
uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
|
||||||
|
```
|
||||||
|
|
||||||
|
Example using predefined `random` values:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
|
||||||
|
const v4options = {
|
||||||
|
random: [
|
||||||
|
0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea, 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36,
|
||||||
|
],
|
||||||
|
};
|
||||||
|
uuidv4(v4options); // ⇨ '109156be-c4fb-41ea-b1b4-efe1671c5836'
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.v5(name, namespace[, buffer[, offset]])
|
||||||
|
|
||||||
|
Create an RFC version 5 (namespace w/ SHA-1) UUID
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| --- | --- |
|
||||||
|
| `name` | `String \| Array` |
|
||||||
|
| `namespace` | `String \| Array[16]` Namespace UUID |
|
||||||
|
| [`buffer`] | `Array \| Buffer` If specified, uuid will be written here in byte-form, starting at `offset` |
|
||||||
|
| [`offset` = 0] | `Number` Index to start writing UUID bytes in `buffer` |
|
||||||
|
| _returns_ | UUID `String` if no `buffer` is specified, otherwise returns `buffer` |
|
||||||
|
|
||||||
|
Note: The RFC `DNS` and `URL` namespaces are available as `v5.DNS` and `v5.URL`.
|
||||||
|
|
||||||
|
Example with custom namespace:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v5 as uuidv5 } from 'uuid';
|
||||||
|
|
||||||
|
// Define a custom namespace. Readers, create your own using something like
|
||||||
|
// https://www.uuidgenerator.net/
|
||||||
|
const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
|
||||||
|
|
||||||
|
uuidv5('Hello, World!', MY_NAMESPACE); // ⇨ '630eb68f-e0fa-5ecc-887a-7c7a62614681'
|
||||||
|
```
|
||||||
|
|
||||||
|
Example with RFC `URL` namespace:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v5 as uuidv5 } from 'uuid';
|
||||||
|
|
||||||
|
uuidv5('https://www.w3.org/', uuidv5.URL); // ⇨ 'c106a26a-21bb-5538-8bf2-57095d1976c1'
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.validate(str)
|
||||||
|
|
||||||
|
Test a string to see if it is a valid UUID
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| --------- | --------------------------------------------------- |
|
||||||
|
| `str` | `String` to validate |
|
||||||
|
| _returns_ | `true` if string is a valid UUID, `false` otherwise |
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { validate as uuidValidate } from 'uuid';
|
||||||
|
|
||||||
|
uuidValidate('not a UUID'); // ⇨ false
|
||||||
|
uuidValidate('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'); // ⇨ true
|
||||||
|
```
|
||||||
|
|
||||||
|
Using `validate` and `version` together it is possible to do per-version validation, e.g. validate for only v4 UUIds.
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { version as uuidVersion } from 'uuid';
|
||||||
|
import { validate as uuidValidate } from 'uuid';
|
||||||
|
|
||||||
|
function uuidValidateV4(uuid) {
|
||||||
|
return uuidValidate(uuid) && uuidVersion(uuid) === 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
const v1Uuid = 'd9428888-122b-11e1-b85c-61cd3cbb3210';
|
||||||
|
const v4Uuid = '109156be-c4fb-41ea-b1b4-efe1671c5836';
|
||||||
|
|
||||||
|
uuidValidateV4(v4Uuid); // ⇨ true
|
||||||
|
uuidValidateV4(v1Uuid); // ⇨ false
|
||||||
|
```
|
||||||
|
|
||||||
|
### uuid.version(str)
|
||||||
|
|
||||||
|
Detect RFC version of a UUID
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| --------- | ---------------------------------------- |
|
||||||
|
| `str` | A valid UUID `String` |
|
||||||
|
| _returns_ | `Number` The RFC version of the UUID |
|
||||||
|
| _throws_ | `TypeError` if `str` is not a valid UUID |
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { version as uuidVersion } from 'uuid';
|
||||||
|
|
||||||
|
uuidVersion('45637ec4-c85f-11ea-87d0-0242ac130003'); // ⇨ 1
|
||||||
|
uuidVersion('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'); // ⇨ 4
|
||||||
|
```
|
||||||
|
|
||||||
|
## Command Line
|
||||||
|
|
||||||
|
UUIDs can be generated from the command line using `uuid`.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ npx uuid
|
||||||
|
ddeb27fb-d9a0-4624-be4d-4615062daed4
|
||||||
|
```
|
||||||
|
|
||||||
|
The default is to generate version 4 UUIDS, however the other versions are supported. Type `uuid --help` for details:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ npx uuid --help
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
uuid
|
||||||
|
uuid v1
|
||||||
|
uuid v3 <name> <namespace uuid>
|
||||||
|
uuid v4
|
||||||
|
uuid v5 <name> <namespace uuid>
|
||||||
|
uuid --help
|
||||||
|
|
||||||
|
Note: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs
|
||||||
|
defined by RFC4122
|
||||||
|
```
|
||||||
|
|
||||||
|
## ECMAScript Modules
|
||||||
|
|
||||||
|
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).
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
|
||||||
|
```
|
||||||
|
|
||||||
|
To run the examples you must first create a dist build of this library in the module root:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
## CDN Builds
|
||||||
|
|
||||||
|
### ECMAScript Modules
|
||||||
|
|
||||||
|
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/):
|
||||||
|
|
||||||
|
```html
|
||||||
|
<script type="module">
|
||||||
|
import { v4 as uuidv4 } from 'https://jspm.dev/uuid';
|
||||||
|
console.log(uuidv4()); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
|
||||||
|
</script>
|
||||||
|
```
|
||||||
|
|
||||||
|
### UMD
|
||||||
|
|
||||||
|
As of `uuid@9` [UMD (Universal Module Definition)](https://github.com/umdjs/umd) builds are no longer shipped with this library.
|
||||||
|
|
||||||
|
If you need a UMD build of this library, use a bundler like Webpack or Rollup. Alternatively, refer to the documentation of [`uuid@8.3.2`](https://github.com/uuidjs/uuid/blob/v8.3.2/README.md#umd) which was the last version that shipped UMD builds.
|
||||||
|
|
||||||
|
## Known issues
|
||||||
|
|
||||||
|
### Duplicate UUIDs (Googlebot)
|
||||||
|
|
||||||
|
This module may generate duplicate UUIDs when run in clients with _deterministic_ random number generators, such as [Googlebot crawlers](https://developers.google.com/search/docs/advanced/crawling/overview-google-crawlers). This can cause problems for apps that expect client-generated UUIDs to always be unique. Developers should be prepared for this and have a strategy for dealing with possible collisions, such as:
|
||||||
|
|
||||||
|
- Check for duplicate UUIDs, fail gracefully
|
||||||
|
- Disable write operations for Googlebot clients
|
||||||
|
|
||||||
|
### "getRandomValues() not supported"
|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
|
### React Native / Expo
|
||||||
|
|
||||||
|
1. Install [`react-native-get-random-values`](https://github.com/LinusU/react-native-get-random-values#readme)
|
||||||
|
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:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import 'react-native-get-random-values';
|
||||||
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
```
|
||||||
|
|
||||||
|
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`.
|
||||||
|
|
||||||
|
### Web Workers / Service Workers (Edge <= 18)
|
||||||
|
|
||||||
|
[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).
|
||||||
|
|
||||||
|
### IE 11 (Internet Explorer)
|
||||||
|
|
||||||
|
Support for IE11 and other legacy browsers has been dropped as of `uuid@9`. If you need to support legacy browsers, you can always transpile the uuid module source yourself (e.g. using [Babel](https://babeljs.io/)).
|
||||||
|
|
||||||
|
## Upgrading From `uuid@7`
|
||||||
|
|
||||||
|
### Only Named Exports Supported When Using with Node.js ESM
|
||||||
|
|
||||||
|
`uuid@7` 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.
|
||||||
|
|
||||||
|
Instead of doing:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import uuid from 'uuid';
|
||||||
|
uuid.v4();
|
||||||
|
```
|
||||||
|
|
||||||
|
you will now have to use the named exports:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
uuidv4();
|
||||||
|
```
|
||||||
|
|
||||||
|
### Deep Requires No Longer Supported
|
||||||
|
|
||||||
|
Deep requires like `require('uuid/v4')` [which have been deprecated in `uuid@7`](#deep-requires-now-deprecated) are no longer supported.
|
||||||
|
|
||||||
|
## Upgrading From `uuid@3`
|
||||||
|
|
||||||
|
"_Wait... what happened to `uuid@4` thru `uuid@6`?!?_"
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
### Deep Requires Now Deprecated
|
||||||
|
|
||||||
|
`uuid@3` encouraged the use of deep requires to minimize the bundle size of browser builds:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
const uuidv4 = require('uuid/v4'); // <== NOW DEPRECATED!
|
||||||
|
uuidv4();
|
||||||
|
```
|
||||||
|
|
||||||
|
As of `uuid@7` 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:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
uuidv4();
|
||||||
|
```
|
||||||
|
|
||||||
|
... or for CommonJS:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
const { v4: uuidv4 } = require('uuid');
|
||||||
|
uuidv4();
|
||||||
|
```
|
||||||
|
|
||||||
|
### Default Export Removed
|
||||||
|
|
||||||
|
`uuid@3` was exporting the Version 4 UUID method as a default export:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
const uuid = require('uuid'); // <== REMOVED!
|
||||||
|
```
|
||||||
|
|
||||||
|
This usage pattern was already discouraged in `uuid@3` and has been removed in `uuid@7`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Markdown generated from [README_js.md](README_js.md) by <a href="https://github.com/broofa/runmd"><image height="12px" src="https://camo.githubusercontent.com/5c7c603cd1e6a43370b0a5063d457e0dabb74cf317adc7baba183acb686ee8d0/687474703a2f2f692e696d6775722e636f6d2f634a4b6f3662552e706e67" /></a>
|
||||||
2
node_modules/uuid/dist/bin/uuid
generated
vendored
Executable file
2
node_modules/uuid/dist/bin/uuid
generated
vendored
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
require('../uuid-bin');
|
||||||
79
node_modules/uuid/dist/commonjs-browser/index.js
generated
vendored
Normal file
79
node_modules/uuid/dist/commonjs-browser/index.js
generated
vendored
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "NIL", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function get() {
|
||||||
|
return _nil.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "parse", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function get() {
|
||||||
|
return _parse.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "stringify", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function get() {
|
||||||
|
return _stringify.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "v1", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function get() {
|
||||||
|
return _v.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "v3", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function get() {
|
||||||
|
return _v2.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "v4", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function get() {
|
||||||
|
return _v3.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "v5", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function get() {
|
||||||
|
return _v4.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "validate", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function get() {
|
||||||
|
return _validate.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "version", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function get() {
|
||||||
|
return _version.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var _v = _interopRequireDefault(require("./v1.js"));
|
||||||
|
|
||||||
|
var _v2 = _interopRequireDefault(require("./v3.js"));
|
||||||
|
|
||||||
|
var _v3 = _interopRequireDefault(require("./v4.js"));
|
||||||
|
|
||||||
|
var _v4 = _interopRequireDefault(require("./v5.js"));
|
||||||
|
|
||||||
|
var _nil = _interopRequireDefault(require("./nil.js"));
|
||||||
|
|
||||||
|
var _version = _interopRequireDefault(require("./version.js"));
|
||||||
|
|
||||||
|
var _validate = _interopRequireDefault(require("./validate.js"));
|
||||||
|
|
||||||
|
var _stringify = _interopRequireDefault(require("./stringify.js"));
|
||||||
|
|
||||||
|
var _parse = _interopRequireDefault(require("./parse.js"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
223
node_modules/uuid/dist/commonjs-browser/md5.js
generated
vendored
Normal file
223
node_modules/uuid/dist/commonjs-browser/md5.js
generated
vendored
Normal file
@@ -0,0 +1,223 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Browser-compatible JavaScript MD5
|
||||||
|
*
|
||||||
|
* Modification of JavaScript MD5
|
||||||
|
* https://github.com/blueimp/JavaScript-MD5
|
||||||
|
*
|
||||||
|
* Copyright 2011, Sebastian Tschan
|
||||||
|
* https://blueimp.net
|
||||||
|
*
|
||||||
|
* Licensed under the MIT license:
|
||||||
|
* https://opensource.org/licenses/MIT
|
||||||
|
*
|
||||||
|
* Based on
|
||||||
|
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
|
||||||
|
* Digest Algorithm, as defined in RFC 1321.
|
||||||
|
* Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
|
||||||
|
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
|
||||||
|
* Distributed under the BSD License
|
||||||
|
* See http://pajhome.org.uk/crypt/md5 for more info.
|
||||||
|
*/
|
||||||
|
function md5(bytes) {
|
||||||
|
if (typeof bytes === 'string') {
|
||||||
|
const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape
|
||||||
|
|
||||||
|
bytes = new Uint8Array(msg.length);
|
||||||
|
|
||||||
|
for (let i = 0; i < msg.length; ++i) {
|
||||||
|
bytes[i] = msg.charCodeAt(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Convert an array of little-endian words to an array of bytes
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function md5ToHexEncodedArray(input) {
|
||||||
|
const output = [];
|
||||||
|
const length32 = input.length * 32;
|
||||||
|
const hexTab = '0123456789abcdef';
|
||||||
|
|
||||||
|
for (let i = 0; i < length32; i += 8) {
|
||||||
|
const x = input[i >> 5] >>> i % 32 & 0xff;
|
||||||
|
const hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);
|
||||||
|
output.push(hex);
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Calculate output length with padding and bit length
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function getOutputLength(inputLength8) {
|
||||||
|
return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Calculate the MD5 of an array of little-endian words, and a bit length.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function wordsToMd5(x, len) {
|
||||||
|
/* append padding */
|
||||||
|
x[len >> 5] |= 0x80 << len % 32;
|
||||||
|
x[getOutputLength(len) - 1] = len;
|
||||||
|
let a = 1732584193;
|
||||||
|
let b = -271733879;
|
||||||
|
let c = -1732584194;
|
||||||
|
let d = 271733878;
|
||||||
|
|
||||||
|
for (let i = 0; i < x.length; i += 16) {
|
||||||
|
const olda = a;
|
||||||
|
const oldb = b;
|
||||||
|
const oldc = c;
|
||||||
|
const oldd = d;
|
||||||
|
a = md5ff(a, b, c, d, x[i], 7, -680876936);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
|
||||||
|
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
|
||||||
|
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
|
||||||
|
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
|
||||||
|
b = md5gg(b, c, d, a, x[i], 20, -373897302);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
|
||||||
|
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
|
||||||
|
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
|
||||||
|
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
|
||||||
|
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
|
||||||
|
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
|
||||||
|
d = md5hh(d, a, b, c, x[i], 11, -358537222);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
|
||||||
|
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
|
||||||
|
a = md5ii(a, b, c, d, x[i], 6, -198630844);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
|
||||||
|
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
|
||||||
|
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
|
||||||
|
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
|
||||||
|
a = safeAdd(a, olda);
|
||||||
|
b = safeAdd(b, oldb);
|
||||||
|
c = safeAdd(c, oldc);
|
||||||
|
d = safeAdd(d, oldd);
|
||||||
|
}
|
||||||
|
|
||||||
|
return [a, b, c, d];
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Convert an array bytes to an array of little-endian words
|
||||||
|
* Characters >255 have their high-byte silently ignored.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function bytesToWords(input) {
|
||||||
|
if (input.length === 0) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
const length8 = input.length * 8;
|
||||||
|
const output = new Uint32Array(getOutputLength(length8));
|
||||||
|
|
||||||
|
for (let i = 0; i < length8; i += 8) {
|
||||||
|
output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
|
||||||
|
* to work around bugs in some JS interpreters.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function safeAdd(x, y) {
|
||||||
|
const lsw = (x & 0xffff) + (y & 0xffff);
|
||||||
|
const msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
||||||
|
return msw << 16 | lsw & 0xffff;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Bitwise rotate a 32-bit number to the left.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function bitRotateLeft(num, cnt) {
|
||||||
|
return num << cnt | num >>> 32 - cnt;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* These functions implement the four basic operations the algorithm uses.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function md5cmn(q, a, b, x, s, t) {
|
||||||
|
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
|
||||||
|
}
|
||||||
|
|
||||||
|
function md5ff(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(b & c | ~b & d, a, b, x, s, t);
|
||||||
|
}
|
||||||
|
|
||||||
|
function md5gg(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(b & d | c & ~d, a, b, x, s, t);
|
||||||
|
}
|
||||||
|
|
||||||
|
function md5hh(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(b ^ c ^ d, a, b, x, s, t);
|
||||||
|
}
|
||||||
|
|
||||||
|
function md5ii(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(c ^ (b | ~d), a, b, x, s, t);
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = md5;
|
||||||
|
exports.default = _default;
|
||||||
11
node_modules/uuid/dist/commonjs-browser/native.js
generated
vendored
Normal file
11
node_modules/uuid/dist/commonjs-browser/native.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
|
||||||
|
var _default = {
|
||||||
|
randomUUID
|
||||||
|
};
|
||||||
|
exports.default = _default;
|
||||||
8
node_modules/uuid/dist/commonjs-browser/nil.js
generated
vendored
Normal file
8
node_modules/uuid/dist/commonjs-browser/nil.js
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
var _default = '00000000-0000-0000-0000-000000000000';
|
||||||
|
exports.default = _default;
|
||||||
45
node_modules/uuid/dist/commonjs-browser/parse.js
generated
vendored
Normal file
45
node_modules/uuid/dist/commonjs-browser/parse.js
generated
vendored
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _validate = _interopRequireDefault(require("./validate.js"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function parse(uuid) {
|
||||||
|
if (!(0, _validate.default)(uuid)) {
|
||||||
|
throw TypeError('Invalid UUID');
|
||||||
|
}
|
||||||
|
|
||||||
|
let v;
|
||||||
|
const arr = new Uint8Array(16); // Parse ########-....-....-....-............
|
||||||
|
|
||||||
|
arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
|
||||||
|
arr[1] = v >>> 16 & 0xff;
|
||||||
|
arr[2] = v >>> 8 & 0xff;
|
||||||
|
arr[3] = v & 0xff; // Parse ........-####-....-....-............
|
||||||
|
|
||||||
|
arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
|
||||||
|
arr[5] = v & 0xff; // Parse ........-....-####-....-............
|
||||||
|
|
||||||
|
arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
|
||||||
|
arr[7] = v & 0xff; // Parse ........-....-....-####-............
|
||||||
|
|
||||||
|
arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;
|
||||||
|
arr[9] = v & 0xff; // Parse ........-....-....-....-############
|
||||||
|
// (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes)
|
||||||
|
|
||||||
|
arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;
|
||||||
|
arr[11] = v / 0x100000000 & 0xff;
|
||||||
|
arr[12] = v >>> 24 & 0xff;
|
||||||
|
arr[13] = v >>> 16 & 0xff;
|
||||||
|
arr[14] = v >>> 8 & 0xff;
|
||||||
|
arr[15] = v & 0xff;
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = parse;
|
||||||
|
exports.default = _default;
|
||||||
8
node_modules/uuid/dist/commonjs-browser/regex.js
generated
vendored
Normal file
8
node_modules/uuid/dist/commonjs-browser/regex.js
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
|
||||||
|
exports.default = _default;
|
||||||
25
node_modules/uuid/dist/commonjs-browser/rng.js
generated
vendored
Normal file
25
node_modules/uuid/dist/commonjs-browser/rng.js
generated
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = rng;
|
||||||
|
// Unique ID creation requires a high quality random # generator. In the browser we therefore
|
||||||
|
// require the crypto API and do not support built-in fallback to lower quality random number
|
||||||
|
// generators (like Math.random()).
|
||||||
|
let getRandomValues;
|
||||||
|
const rnds8 = new Uint8Array(16);
|
||||||
|
|
||||||
|
function rng() {
|
||||||
|
// lazy load so that environments that need to polyfill have a chance to do so
|
||||||
|
if (!getRandomValues) {
|
||||||
|
// getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
|
||||||
|
getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
|
||||||
|
|
||||||
|
if (!getRandomValues) {
|
||||||
|
throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return getRandomValues(rnds8);
|
||||||
|
}
|
||||||
104
node_modules/uuid/dist/commonjs-browser/sha1.js
generated
vendored
Normal file
104
node_modules/uuid/dist/commonjs-browser/sha1.js
generated
vendored
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
// Adapted from Chris Veness' SHA1 code at
|
||||||
|
// http://www.movable-type.co.uk/scripts/sha1.html
|
||||||
|
function f(s, x, y, z) {
|
||||||
|
switch (s) {
|
||||||
|
case 0:
|
||||||
|
return x & y ^ ~x & z;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
return x ^ y ^ z;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
return x & y ^ x & z ^ y & z;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
return x ^ y ^ z;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function ROTL(x, n) {
|
||||||
|
return x << n | x >>> 32 - n;
|
||||||
|
}
|
||||||
|
|
||||||
|
function sha1(bytes) {
|
||||||
|
const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];
|
||||||
|
const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];
|
||||||
|
|
||||||
|
if (typeof bytes === 'string') {
|
||||||
|
const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape
|
||||||
|
|
||||||
|
bytes = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < msg.length; ++i) {
|
||||||
|
bytes.push(msg.charCodeAt(i));
|
||||||
|
}
|
||||||
|
} else if (!Array.isArray(bytes)) {
|
||||||
|
// Convert Array-like to Array
|
||||||
|
bytes = Array.prototype.slice.call(bytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
bytes.push(0x80);
|
||||||
|
const l = bytes.length / 4 + 2;
|
||||||
|
const N = Math.ceil(l / 16);
|
||||||
|
const M = new Array(N);
|
||||||
|
|
||||||
|
for (let i = 0; i < N; ++i) {
|
||||||
|
const arr = new Uint32Array(16);
|
||||||
|
|
||||||
|
for (let j = 0; j < 16; ++j) {
|
||||||
|
arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];
|
||||||
|
}
|
||||||
|
|
||||||
|
M[i] = arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);
|
||||||
|
M[N - 1][14] = Math.floor(M[N - 1][14]);
|
||||||
|
M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;
|
||||||
|
|
||||||
|
for (let i = 0; i < N; ++i) {
|
||||||
|
const W = new Uint32Array(80);
|
||||||
|
|
||||||
|
for (let t = 0; t < 16; ++t) {
|
||||||
|
W[t] = M[i][t];
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let t = 16; t < 80; ++t) {
|
||||||
|
W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
let a = H[0];
|
||||||
|
let b = H[1];
|
||||||
|
let c = H[2];
|
||||||
|
let d = H[3];
|
||||||
|
let e = H[4];
|
||||||
|
|
||||||
|
for (let t = 0; t < 80; ++t) {
|
||||||
|
const s = Math.floor(t / 20);
|
||||||
|
const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;
|
||||||
|
e = d;
|
||||||
|
d = c;
|
||||||
|
c = ROTL(b, 30) >>> 0;
|
||||||
|
b = a;
|
||||||
|
a = T;
|
||||||
|
}
|
||||||
|
|
||||||
|
H[0] = H[0] + a >>> 0;
|
||||||
|
H[1] = H[1] + b >>> 0;
|
||||||
|
H[2] = H[2] + c >>> 0;
|
||||||
|
H[3] = H[3] + d >>> 0;
|
||||||
|
H[4] = H[4] + e >>> 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = sha1;
|
||||||
|
exports.default = _default;
|
||||||
44
node_modules/uuid/dist/commonjs-browser/stringify.js
generated
vendored
Normal file
44
node_modules/uuid/dist/commonjs-browser/stringify.js
generated
vendored
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
exports.unsafeStringify = unsafeStringify;
|
||||||
|
|
||||||
|
var _validate = _interopRequireDefault(require("./validate.js"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert array of 16 byte values to UUID string format of the form:
|
||||||
|
* XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
||||||
|
*/
|
||||||
|
const byteToHex = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < 256; ++i) {
|
||||||
|
byteToHex.push((i + 0x100).toString(16).slice(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
function unsafeStringify(arr, offset = 0) {
|
||||||
|
// Note: Be careful editing this code! It's been tuned for performance
|
||||||
|
// and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
|
||||||
|
return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
|
||||||
|
}
|
||||||
|
|
||||||
|
function stringify(arr, offset = 0) {
|
||||||
|
const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one
|
||||||
|
// of the following:
|
||||||
|
// - One or more input array values don't map to a hex octet (leading to
|
||||||
|
// "undefined" in the uuid)
|
||||||
|
// - Invalid input values for the RFC `version` or `variant` fields
|
||||||
|
|
||||||
|
if (!(0, _validate.default)(uuid)) {
|
||||||
|
throw TypeError('Stringified UUID is invalid');
|
||||||
|
}
|
||||||
|
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = stringify;
|
||||||
|
exports.default = _default;
|
||||||
107
node_modules/uuid/dist/commonjs-browser/v1.js
generated
vendored
Normal file
107
node_modules/uuid/dist/commonjs-browser/v1.js
generated
vendored
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _rng = _interopRequireDefault(require("./rng.js"));
|
||||||
|
|
||||||
|
var _stringify = require("./stringify.js");
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
// **`v1()` - Generate time-based UUID**
|
||||||
|
//
|
||||||
|
// Inspired by https://github.com/LiosK/UUID.js
|
||||||
|
// and http://docs.python.org/library/uuid.html
|
||||||
|
let _nodeId;
|
||||||
|
|
||||||
|
let _clockseq; // Previous uuid creation time
|
||||||
|
|
||||||
|
|
||||||
|
let _lastMSecs = 0;
|
||||||
|
let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details
|
||||||
|
|
||||||
|
function v1(options, buf, offset) {
|
||||||
|
let i = buf && offset || 0;
|
||||||
|
const b = buf || new Array(16);
|
||||||
|
options = options || {};
|
||||||
|
let node = options.node || _nodeId;
|
||||||
|
let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not
|
||||||
|
// specified. We do this lazily to minimize issues related to insufficient
|
||||||
|
// system entropy. See #189
|
||||||
|
|
||||||
|
if (node == null || clockseq == null) {
|
||||||
|
const seedBytes = options.random || (options.rng || _rng.default)();
|
||||||
|
|
||||||
|
if (node == null) {
|
||||||
|
// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
|
||||||
|
node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (clockseq == null) {
|
||||||
|
// Per 4.2.2, randomize (14 bit) clockseq
|
||||||
|
clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
|
||||||
|
}
|
||||||
|
} // UUID timestamps are 100 nano-second units since the Gregorian epoch,
|
||||||
|
// (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
|
||||||
|
// time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
|
||||||
|
// (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
|
||||||
|
|
||||||
|
|
||||||
|
let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock
|
||||||
|
// cycle to simulate higher resolution clock
|
||||||
|
|
||||||
|
let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)
|
||||||
|
|
||||||
|
const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression
|
||||||
|
|
||||||
|
if (dt < 0 && options.clockseq === undefined) {
|
||||||
|
clockseq = clockseq + 1 & 0x3fff;
|
||||||
|
} // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
|
||||||
|
// time interval
|
||||||
|
|
||||||
|
|
||||||
|
if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
|
||||||
|
nsecs = 0;
|
||||||
|
} // Per 4.2.1.2 Throw error if too many uuids are requested
|
||||||
|
|
||||||
|
|
||||||
|
if (nsecs >= 10000) {
|
||||||
|
throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
|
||||||
|
}
|
||||||
|
|
||||||
|
_lastMSecs = msecs;
|
||||||
|
_lastNSecs = nsecs;
|
||||||
|
_clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
|
||||||
|
|
||||||
|
msecs += 12219292800000; // `time_low`
|
||||||
|
|
||||||
|
const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
|
||||||
|
b[i++] = tl >>> 24 & 0xff;
|
||||||
|
b[i++] = tl >>> 16 & 0xff;
|
||||||
|
b[i++] = tl >>> 8 & 0xff;
|
||||||
|
b[i++] = tl & 0xff; // `time_mid`
|
||||||
|
|
||||||
|
const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;
|
||||||
|
b[i++] = tmh >>> 8 & 0xff;
|
||||||
|
b[i++] = tmh & 0xff; // `time_high_and_version`
|
||||||
|
|
||||||
|
b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
|
||||||
|
|
||||||
|
b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
|
||||||
|
|
||||||
|
b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`
|
||||||
|
|
||||||
|
b[i++] = clockseq & 0xff; // `node`
|
||||||
|
|
||||||
|
for (let n = 0; n < 6; ++n) {
|
||||||
|
b[i + n] = node[n];
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf || (0, _stringify.unsafeStringify)(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = v1;
|
||||||
|
exports.default = _default;
|
||||||
16
node_modules/uuid/dist/commonjs-browser/v3.js
generated
vendored
Normal file
16
node_modules/uuid/dist/commonjs-browser/v3.js
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _v = _interopRequireDefault(require("./v35.js"));
|
||||||
|
|
||||||
|
var _md = _interopRequireDefault(require("./md5.js"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const v3 = (0, _v.default)('v3', 0x30, _md.default);
|
||||||
|
var _default = v3;
|
||||||
|
exports.default = _default;
|
||||||
80
node_modules/uuid/dist/commonjs-browser/v35.js
generated
vendored
Normal file
80
node_modules/uuid/dist/commonjs-browser/v35.js
generated
vendored
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.URL = exports.DNS = void 0;
|
||||||
|
exports.default = v35;
|
||||||
|
|
||||||
|
var _stringify = require("./stringify.js");
|
||||||
|
|
||||||
|
var _parse = _interopRequireDefault(require("./parse.js"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function stringToBytes(str) {
|
||||||
|
str = unescape(encodeURIComponent(str)); // UTF8 escape
|
||||||
|
|
||||||
|
const bytes = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < str.length; ++i) {
|
||||||
|
bytes.push(str.charCodeAt(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
return bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
|
||||||
|
exports.DNS = DNS;
|
||||||
|
const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
|
||||||
|
exports.URL = URL;
|
||||||
|
|
||||||
|
function v35(name, version, hashfunc) {
|
||||||
|
function generateUUID(value, namespace, buf, offset) {
|
||||||
|
var _namespace;
|
||||||
|
|
||||||
|
if (typeof value === 'string') {
|
||||||
|
value = stringToBytes(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof namespace === 'string') {
|
||||||
|
namespace = (0, _parse.default)(namespace);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {
|
||||||
|
throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');
|
||||||
|
} // Compute hash of namespace and value, Per 4.3
|
||||||
|
// Future: Use spread syntax when supported on all platforms, e.g. `bytes =
|
||||||
|
// hashfunc([...namespace, ... value])`
|
||||||
|
|
||||||
|
|
||||||
|
let bytes = new Uint8Array(16 + value.length);
|
||||||
|
bytes.set(namespace);
|
||||||
|
bytes.set(value, namespace.length);
|
||||||
|
bytes = hashfunc(bytes);
|
||||||
|
bytes[6] = bytes[6] & 0x0f | version;
|
||||||
|
bytes[8] = bytes[8] & 0x3f | 0x80;
|
||||||
|
|
||||||
|
if (buf) {
|
||||||
|
offset = offset || 0;
|
||||||
|
|
||||||
|
for (let i = 0; i < 16; ++i) {
|
||||||
|
buf[offset + i] = bytes[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (0, _stringify.unsafeStringify)(bytes);
|
||||||
|
} // Function#name is not settable on some platforms (#270)
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
generateUUID.name = name; // eslint-disable-next-line no-empty
|
||||||
|
} catch (err) {} // For CommonJS default export support
|
||||||
|
|
||||||
|
|
||||||
|
generateUUID.DNS = DNS;
|
||||||
|
generateUUID.URL = URL;
|
||||||
|
return generateUUID;
|
||||||
|
}
|
||||||
43
node_modules/uuid/dist/commonjs-browser/v4.js
generated
vendored
Normal file
43
node_modules/uuid/dist/commonjs-browser/v4.js
generated
vendored
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _native = _interopRequireDefault(require("./native.js"));
|
||||||
|
|
||||||
|
var _rng = _interopRequireDefault(require("./rng.js"));
|
||||||
|
|
||||||
|
var _stringify = require("./stringify.js");
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function v4(options, buf, offset) {
|
||||||
|
if (_native.default.randomUUID && !buf && !options) {
|
||||||
|
return _native.default.randomUUID();
|
||||||
|
}
|
||||||
|
|
||||||
|
options = options || {};
|
||||||
|
|
||||||
|
const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
|
||||||
|
|
||||||
|
|
||||||
|
rnds[6] = rnds[6] & 0x0f | 0x40;
|
||||||
|
rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
|
||||||
|
|
||||||
|
if (buf) {
|
||||||
|
offset = offset || 0;
|
||||||
|
|
||||||
|
for (let i = 0; i < 16; ++i) {
|
||||||
|
buf[offset + i] = rnds[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (0, _stringify.unsafeStringify)(rnds);
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = v4;
|
||||||
|
exports.default = _default;
|
||||||
16
node_modules/uuid/dist/commonjs-browser/v5.js
generated
vendored
Normal file
16
node_modules/uuid/dist/commonjs-browser/v5.js
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _v = _interopRequireDefault(require("./v35.js"));
|
||||||
|
|
||||||
|
var _sha = _interopRequireDefault(require("./sha1.js"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const v5 = (0, _v.default)('v5', 0x50, _sha.default);
|
||||||
|
var _default = v5;
|
||||||
|
exports.default = _default;
|
||||||
17
node_modules/uuid/dist/commonjs-browser/validate.js
generated
vendored
Normal file
17
node_modules/uuid/dist/commonjs-browser/validate.js
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _regex = _interopRequireDefault(require("./regex.js"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function validate(uuid) {
|
||||||
|
return typeof uuid === 'string' && _regex.default.test(uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = validate;
|
||||||
|
exports.default = _default;
|
||||||
21
node_modules/uuid/dist/commonjs-browser/version.js
generated
vendored
Normal file
21
node_modules/uuid/dist/commonjs-browser/version.js
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _validate = _interopRequireDefault(require("./validate.js"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function version(uuid) {
|
||||||
|
if (!(0, _validate.default)(uuid)) {
|
||||||
|
throw TypeError('Invalid UUID');
|
||||||
|
}
|
||||||
|
|
||||||
|
return parseInt(uuid.slice(14, 15), 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = version;
|
||||||
|
exports.default = _default;
|
||||||
9
node_modules/uuid/dist/esm-browser/index.js
generated
vendored
Normal file
9
node_modules/uuid/dist/esm-browser/index.js
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
export { default as v1 } from './v1.js';
|
||||||
|
export { default as v3 } from './v3.js';
|
||||||
|
export { default as v4 } from './v4.js';
|
||||||
|
export { default as v5 } from './v5.js';
|
||||||
|
export { default as NIL } from './nil.js';
|
||||||
|
export { default as version } from './version.js';
|
||||||
|
export { default as validate } from './validate.js';
|
||||||
|
export { default as stringify } from './stringify.js';
|
||||||
|
export { default as parse } from './parse.js';
|
||||||
215
node_modules/uuid/dist/esm-browser/md5.js
generated
vendored
Normal file
215
node_modules/uuid/dist/esm-browser/md5.js
generated
vendored
Normal file
@@ -0,0 +1,215 @@
|
|||||||
|
/*
|
||||||
|
* Browser-compatible JavaScript MD5
|
||||||
|
*
|
||||||
|
* Modification of JavaScript MD5
|
||||||
|
* https://github.com/blueimp/JavaScript-MD5
|
||||||
|
*
|
||||||
|
* Copyright 2011, Sebastian Tschan
|
||||||
|
* https://blueimp.net
|
||||||
|
*
|
||||||
|
* Licensed under the MIT license:
|
||||||
|
* https://opensource.org/licenses/MIT
|
||||||
|
*
|
||||||
|
* Based on
|
||||||
|
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
|
||||||
|
* Digest Algorithm, as defined in RFC 1321.
|
||||||
|
* Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
|
||||||
|
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
|
||||||
|
* Distributed under the BSD License
|
||||||
|
* See http://pajhome.org.uk/crypt/md5 for more info.
|
||||||
|
*/
|
||||||
|
function md5(bytes) {
|
||||||
|
if (typeof bytes === 'string') {
|
||||||
|
const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape
|
||||||
|
|
||||||
|
bytes = new Uint8Array(msg.length);
|
||||||
|
|
||||||
|
for (let i = 0; i < msg.length; ++i) {
|
||||||
|
bytes[i] = msg.charCodeAt(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Convert an array of little-endian words to an array of bytes
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function md5ToHexEncodedArray(input) {
|
||||||
|
const output = [];
|
||||||
|
const length32 = input.length * 32;
|
||||||
|
const hexTab = '0123456789abcdef';
|
||||||
|
|
||||||
|
for (let i = 0; i < length32; i += 8) {
|
||||||
|
const x = input[i >> 5] >>> i % 32 & 0xff;
|
||||||
|
const hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);
|
||||||
|
output.push(hex);
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Calculate output length with padding and bit length
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function getOutputLength(inputLength8) {
|
||||||
|
return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Calculate the MD5 of an array of little-endian words, and a bit length.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function wordsToMd5(x, len) {
|
||||||
|
/* append padding */
|
||||||
|
x[len >> 5] |= 0x80 << len % 32;
|
||||||
|
x[getOutputLength(len) - 1] = len;
|
||||||
|
let a = 1732584193;
|
||||||
|
let b = -271733879;
|
||||||
|
let c = -1732584194;
|
||||||
|
let d = 271733878;
|
||||||
|
|
||||||
|
for (let i = 0; i < x.length; i += 16) {
|
||||||
|
const olda = a;
|
||||||
|
const oldb = b;
|
||||||
|
const oldc = c;
|
||||||
|
const oldd = d;
|
||||||
|
a = md5ff(a, b, c, d, x[i], 7, -680876936);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
|
||||||
|
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
|
||||||
|
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
|
||||||
|
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
|
||||||
|
b = md5gg(b, c, d, a, x[i], 20, -373897302);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
|
||||||
|
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
|
||||||
|
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
|
||||||
|
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
|
||||||
|
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
|
||||||
|
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
|
||||||
|
d = md5hh(d, a, b, c, x[i], 11, -358537222);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
|
||||||
|
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
|
||||||
|
a = md5ii(a, b, c, d, x[i], 6, -198630844);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
|
||||||
|
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
|
||||||
|
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
|
||||||
|
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
|
||||||
|
a = safeAdd(a, olda);
|
||||||
|
b = safeAdd(b, oldb);
|
||||||
|
c = safeAdd(c, oldc);
|
||||||
|
d = safeAdd(d, oldd);
|
||||||
|
}
|
||||||
|
|
||||||
|
return [a, b, c, d];
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Convert an array bytes to an array of little-endian words
|
||||||
|
* Characters >255 have their high-byte silently ignored.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function bytesToWords(input) {
|
||||||
|
if (input.length === 0) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
const length8 = input.length * 8;
|
||||||
|
const output = new Uint32Array(getOutputLength(length8));
|
||||||
|
|
||||||
|
for (let i = 0; i < length8; i += 8) {
|
||||||
|
output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
|
||||||
|
* to work around bugs in some JS interpreters.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function safeAdd(x, y) {
|
||||||
|
const lsw = (x & 0xffff) + (y & 0xffff);
|
||||||
|
const msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
||||||
|
return msw << 16 | lsw & 0xffff;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Bitwise rotate a 32-bit number to the left.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function bitRotateLeft(num, cnt) {
|
||||||
|
return num << cnt | num >>> 32 - cnt;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* These functions implement the four basic operations the algorithm uses.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function md5cmn(q, a, b, x, s, t) {
|
||||||
|
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
|
||||||
|
}
|
||||||
|
|
||||||
|
function md5ff(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(b & c | ~b & d, a, b, x, s, t);
|
||||||
|
}
|
||||||
|
|
||||||
|
function md5gg(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(b & d | c & ~d, a, b, x, s, t);
|
||||||
|
}
|
||||||
|
|
||||||
|
function md5hh(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(b ^ c ^ d, a, b, x, s, t);
|
||||||
|
}
|
||||||
|
|
||||||
|
function md5ii(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(c ^ (b | ~d), a, b, x, s, t);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default md5;
|
||||||
4
node_modules/uuid/dist/esm-browser/native.js
generated
vendored
Normal file
4
node_modules/uuid/dist/esm-browser/native.js
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
|
||||||
|
export default {
|
||||||
|
randomUUID
|
||||||
|
};
|
||||||
1
node_modules/uuid/dist/esm-browser/nil.js
generated
vendored
Normal file
1
node_modules/uuid/dist/esm-browser/nil.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export default '00000000-0000-0000-0000-000000000000';
|
||||||
35
node_modules/uuid/dist/esm-browser/parse.js
generated
vendored
Normal file
35
node_modules/uuid/dist/esm-browser/parse.js
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
import validate from './validate.js';
|
||||||
|
|
||||||
|
function parse(uuid) {
|
||||||
|
if (!validate(uuid)) {
|
||||||
|
throw TypeError('Invalid UUID');
|
||||||
|
}
|
||||||
|
|
||||||
|
let v;
|
||||||
|
const arr = new Uint8Array(16); // Parse ########-....-....-....-............
|
||||||
|
|
||||||
|
arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
|
||||||
|
arr[1] = v >>> 16 & 0xff;
|
||||||
|
arr[2] = v >>> 8 & 0xff;
|
||||||
|
arr[3] = v & 0xff; // Parse ........-####-....-....-............
|
||||||
|
|
||||||
|
arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
|
||||||
|
arr[5] = v & 0xff; // Parse ........-....-####-....-............
|
||||||
|
|
||||||
|
arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
|
||||||
|
arr[7] = v & 0xff; // Parse ........-....-....-####-............
|
||||||
|
|
||||||
|
arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;
|
||||||
|
arr[9] = v & 0xff; // Parse ........-....-....-....-############
|
||||||
|
// (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes)
|
||||||
|
|
||||||
|
arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;
|
||||||
|
arr[11] = v / 0x100000000 & 0xff;
|
||||||
|
arr[12] = v >>> 24 & 0xff;
|
||||||
|
arr[13] = v >>> 16 & 0xff;
|
||||||
|
arr[14] = v >>> 8 & 0xff;
|
||||||
|
arr[15] = v & 0xff;
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default parse;
|
||||||
1
node_modules/uuid/dist/esm-browser/regex.js
generated
vendored
Normal file
1
node_modules/uuid/dist/esm-browser/regex.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
|
||||||
18
node_modules/uuid/dist/esm-browser/rng.js
generated
vendored
Normal file
18
node_modules/uuid/dist/esm-browser/rng.js
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
// Unique ID creation requires a high quality random # generator. In the browser we therefore
|
||||||
|
// require the crypto API and do not support built-in fallback to lower quality random number
|
||||||
|
// generators (like Math.random()).
|
||||||
|
let getRandomValues;
|
||||||
|
const rnds8 = new Uint8Array(16);
|
||||||
|
export default function rng() {
|
||||||
|
// lazy load so that environments that need to polyfill have a chance to do so
|
||||||
|
if (!getRandomValues) {
|
||||||
|
// getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
|
||||||
|
getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
|
||||||
|
|
||||||
|
if (!getRandomValues) {
|
||||||
|
throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return getRandomValues(rnds8);
|
||||||
|
}
|
||||||
96
node_modules/uuid/dist/esm-browser/sha1.js
generated
vendored
Normal file
96
node_modules/uuid/dist/esm-browser/sha1.js
generated
vendored
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
// Adapted from Chris Veness' SHA1 code at
|
||||||
|
// http://www.movable-type.co.uk/scripts/sha1.html
|
||||||
|
function f(s, x, y, z) {
|
||||||
|
switch (s) {
|
||||||
|
case 0:
|
||||||
|
return x & y ^ ~x & z;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
return x ^ y ^ z;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
return x & y ^ x & z ^ y & z;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
return x ^ y ^ z;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function ROTL(x, n) {
|
||||||
|
return x << n | x >>> 32 - n;
|
||||||
|
}
|
||||||
|
|
||||||
|
function sha1(bytes) {
|
||||||
|
const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];
|
||||||
|
const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];
|
||||||
|
|
||||||
|
if (typeof bytes === 'string') {
|
||||||
|
const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape
|
||||||
|
|
||||||
|
bytes = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < msg.length; ++i) {
|
||||||
|
bytes.push(msg.charCodeAt(i));
|
||||||
|
}
|
||||||
|
} else if (!Array.isArray(bytes)) {
|
||||||
|
// Convert Array-like to Array
|
||||||
|
bytes = Array.prototype.slice.call(bytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
bytes.push(0x80);
|
||||||
|
const l = bytes.length / 4 + 2;
|
||||||
|
const N = Math.ceil(l / 16);
|
||||||
|
const M = new Array(N);
|
||||||
|
|
||||||
|
for (let i = 0; i < N; ++i) {
|
||||||
|
const arr = new Uint32Array(16);
|
||||||
|
|
||||||
|
for (let j = 0; j < 16; ++j) {
|
||||||
|
arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];
|
||||||
|
}
|
||||||
|
|
||||||
|
M[i] = arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);
|
||||||
|
M[N - 1][14] = Math.floor(M[N - 1][14]);
|
||||||
|
M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;
|
||||||
|
|
||||||
|
for (let i = 0; i < N; ++i) {
|
||||||
|
const W = new Uint32Array(80);
|
||||||
|
|
||||||
|
for (let t = 0; t < 16; ++t) {
|
||||||
|
W[t] = M[i][t];
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let t = 16; t < 80; ++t) {
|
||||||
|
W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
let a = H[0];
|
||||||
|
let b = H[1];
|
||||||
|
let c = H[2];
|
||||||
|
let d = H[3];
|
||||||
|
let e = H[4];
|
||||||
|
|
||||||
|
for (let t = 0; t < 80; ++t) {
|
||||||
|
const s = Math.floor(t / 20);
|
||||||
|
const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;
|
||||||
|
e = d;
|
||||||
|
d = c;
|
||||||
|
c = ROTL(b, 30) >>> 0;
|
||||||
|
b = a;
|
||||||
|
a = T;
|
||||||
|
}
|
||||||
|
|
||||||
|
H[0] = H[0] + a >>> 0;
|
||||||
|
H[1] = H[1] + b >>> 0;
|
||||||
|
H[2] = H[2] + c >>> 0;
|
||||||
|
H[3] = H[3] + d >>> 0;
|
||||||
|
H[4] = H[4] + e >>> 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];
|
||||||
|
}
|
||||||
|
|
||||||
|
export default sha1;
|
||||||
33
node_modules/uuid/dist/esm-browser/stringify.js
generated
vendored
Normal file
33
node_modules/uuid/dist/esm-browser/stringify.js
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
import validate from './validate.js';
|
||||||
|
/**
|
||||||
|
* Convert array of 16 byte values to UUID string format of the form:
|
||||||
|
* XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
||||||
|
*/
|
||||||
|
|
||||||
|
const byteToHex = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < 256; ++i) {
|
||||||
|
byteToHex.push((i + 0x100).toString(16).slice(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
export function unsafeStringify(arr, offset = 0) {
|
||||||
|
// Note: Be careful editing this code! It's been tuned for performance
|
||||||
|
// and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
|
||||||
|
return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
|
||||||
|
}
|
||||||
|
|
||||||
|
function stringify(arr, offset = 0) {
|
||||||
|
const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one
|
||||||
|
// of the following:
|
||||||
|
// - One or more input array values don't map to a hex octet (leading to
|
||||||
|
// "undefined" in the uuid)
|
||||||
|
// - Invalid input values for the RFC `version` or `variant` fields
|
||||||
|
|
||||||
|
if (!validate(uuid)) {
|
||||||
|
throw TypeError('Stringified UUID is invalid');
|
||||||
|
}
|
||||||
|
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default stringify;
|
||||||
95
node_modules/uuid/dist/esm-browser/v1.js
generated
vendored
Normal file
95
node_modules/uuid/dist/esm-browser/v1.js
generated
vendored
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
import rng from './rng.js';
|
||||||
|
import { unsafeStringify } from './stringify.js'; // **`v1()` - Generate time-based UUID**
|
||||||
|
//
|
||||||
|
// Inspired by https://github.com/LiosK/UUID.js
|
||||||
|
// and http://docs.python.org/library/uuid.html
|
||||||
|
|
||||||
|
let _nodeId;
|
||||||
|
|
||||||
|
let _clockseq; // Previous uuid creation time
|
||||||
|
|
||||||
|
|
||||||
|
let _lastMSecs = 0;
|
||||||
|
let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details
|
||||||
|
|
||||||
|
function v1(options, buf, offset) {
|
||||||
|
let i = buf && offset || 0;
|
||||||
|
const b = buf || new Array(16);
|
||||||
|
options = options || {};
|
||||||
|
let node = options.node || _nodeId;
|
||||||
|
let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not
|
||||||
|
// specified. We do this lazily to minimize issues related to insufficient
|
||||||
|
// system entropy. See #189
|
||||||
|
|
||||||
|
if (node == null || clockseq == null) {
|
||||||
|
const seedBytes = options.random || (options.rng || rng)();
|
||||||
|
|
||||||
|
if (node == null) {
|
||||||
|
// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
|
||||||
|
node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (clockseq == null) {
|
||||||
|
// Per 4.2.2, randomize (14 bit) clockseq
|
||||||
|
clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
|
||||||
|
}
|
||||||
|
} // UUID timestamps are 100 nano-second units since the Gregorian epoch,
|
||||||
|
// (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
|
||||||
|
// time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
|
||||||
|
// (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
|
||||||
|
|
||||||
|
|
||||||
|
let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock
|
||||||
|
// cycle to simulate higher resolution clock
|
||||||
|
|
||||||
|
let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)
|
||||||
|
|
||||||
|
const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression
|
||||||
|
|
||||||
|
if (dt < 0 && options.clockseq === undefined) {
|
||||||
|
clockseq = clockseq + 1 & 0x3fff;
|
||||||
|
} // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
|
||||||
|
// time interval
|
||||||
|
|
||||||
|
|
||||||
|
if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
|
||||||
|
nsecs = 0;
|
||||||
|
} // Per 4.2.1.2 Throw error if too many uuids are requested
|
||||||
|
|
||||||
|
|
||||||
|
if (nsecs >= 10000) {
|
||||||
|
throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
|
||||||
|
}
|
||||||
|
|
||||||
|
_lastMSecs = msecs;
|
||||||
|
_lastNSecs = nsecs;
|
||||||
|
_clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
|
||||||
|
|
||||||
|
msecs += 12219292800000; // `time_low`
|
||||||
|
|
||||||
|
const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
|
||||||
|
b[i++] = tl >>> 24 & 0xff;
|
||||||
|
b[i++] = tl >>> 16 & 0xff;
|
||||||
|
b[i++] = tl >>> 8 & 0xff;
|
||||||
|
b[i++] = tl & 0xff; // `time_mid`
|
||||||
|
|
||||||
|
const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;
|
||||||
|
b[i++] = tmh >>> 8 & 0xff;
|
||||||
|
b[i++] = tmh & 0xff; // `time_high_and_version`
|
||||||
|
|
||||||
|
b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
|
||||||
|
|
||||||
|
b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
|
||||||
|
|
||||||
|
b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`
|
||||||
|
|
||||||
|
b[i++] = clockseq & 0xff; // `node`
|
||||||
|
|
||||||
|
for (let n = 0; n < 6; ++n) {
|
||||||
|
b[i + n] = node[n];
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf || unsafeStringify(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default v1;
|
||||||
4
node_modules/uuid/dist/esm-browser/v3.js
generated
vendored
Normal file
4
node_modules/uuid/dist/esm-browser/v3.js
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
import v35 from './v35.js';
|
||||||
|
import md5 from './md5.js';
|
||||||
|
const v3 = v35('v3', 0x30, md5);
|
||||||
|
export default v3;
|
||||||
66
node_modules/uuid/dist/esm-browser/v35.js
generated
vendored
Normal file
66
node_modules/uuid/dist/esm-browser/v35.js
generated
vendored
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
import { unsafeStringify } from './stringify.js';
|
||||||
|
import parse from './parse.js';
|
||||||
|
|
||||||
|
function stringToBytes(str) {
|
||||||
|
str = unescape(encodeURIComponent(str)); // UTF8 escape
|
||||||
|
|
||||||
|
const bytes = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < str.length; ++i) {
|
||||||
|
bytes.push(str.charCodeAt(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
return bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
|
||||||
|
export const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
|
||||||
|
export default function v35(name, version, hashfunc) {
|
||||||
|
function generateUUID(value, namespace, buf, offset) {
|
||||||
|
var _namespace;
|
||||||
|
|
||||||
|
if (typeof value === 'string') {
|
||||||
|
value = stringToBytes(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof namespace === 'string') {
|
||||||
|
namespace = parse(namespace);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {
|
||||||
|
throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');
|
||||||
|
} // Compute hash of namespace and value, Per 4.3
|
||||||
|
// Future: Use spread syntax when supported on all platforms, e.g. `bytes =
|
||||||
|
// hashfunc([...namespace, ... value])`
|
||||||
|
|
||||||
|
|
||||||
|
let bytes = new Uint8Array(16 + value.length);
|
||||||
|
bytes.set(namespace);
|
||||||
|
bytes.set(value, namespace.length);
|
||||||
|
bytes = hashfunc(bytes);
|
||||||
|
bytes[6] = bytes[6] & 0x0f | version;
|
||||||
|
bytes[8] = bytes[8] & 0x3f | 0x80;
|
||||||
|
|
||||||
|
if (buf) {
|
||||||
|
offset = offset || 0;
|
||||||
|
|
||||||
|
for (let i = 0; i < 16; ++i) {
|
||||||
|
buf[offset + i] = bytes[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
return unsafeStringify(bytes);
|
||||||
|
} // Function#name is not settable on some platforms (#270)
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
generateUUID.name = name; // eslint-disable-next-line no-empty
|
||||||
|
} catch (err) {} // For CommonJS default export support
|
||||||
|
|
||||||
|
|
||||||
|
generateUUID.DNS = DNS;
|
||||||
|
generateUUID.URL = URL;
|
||||||
|
return generateUUID;
|
||||||
|
}
|
||||||
29
node_modules/uuid/dist/esm-browser/v4.js
generated
vendored
Normal file
29
node_modules/uuid/dist/esm-browser/v4.js
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
import native from './native.js';
|
||||||
|
import rng from './rng.js';
|
||||||
|
import { unsafeStringify } from './stringify.js';
|
||||||
|
|
||||||
|
function v4(options, buf, offset) {
|
||||||
|
if (native.randomUUID && !buf && !options) {
|
||||||
|
return native.randomUUID();
|
||||||
|
}
|
||||||
|
|
||||||
|
options = options || {};
|
||||||
|
const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
|
||||||
|
|
||||||
|
rnds[6] = rnds[6] & 0x0f | 0x40;
|
||||||
|
rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
|
||||||
|
|
||||||
|
if (buf) {
|
||||||
|
offset = offset || 0;
|
||||||
|
|
||||||
|
for (let i = 0; i < 16; ++i) {
|
||||||
|
buf[offset + i] = rnds[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
return unsafeStringify(rnds);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default v4;
|
||||||
4
node_modules/uuid/dist/esm-browser/v5.js
generated
vendored
Normal file
4
node_modules/uuid/dist/esm-browser/v5.js
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
import v35 from './v35.js';
|
||||||
|
import sha1 from './sha1.js';
|
||||||
|
const v5 = v35('v5', 0x50, sha1);
|
||||||
|
export default v5;
|
||||||
7
node_modules/uuid/dist/esm-browser/validate.js
generated
vendored
Normal file
7
node_modules/uuid/dist/esm-browser/validate.js
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import REGEX from './regex.js';
|
||||||
|
|
||||||
|
function validate(uuid) {
|
||||||
|
return typeof uuid === 'string' && REGEX.test(uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default validate;
|
||||||
11
node_modules/uuid/dist/esm-browser/version.js
generated
vendored
Normal file
11
node_modules/uuid/dist/esm-browser/version.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
import validate from './validate.js';
|
||||||
|
|
||||||
|
function version(uuid) {
|
||||||
|
if (!validate(uuid)) {
|
||||||
|
throw TypeError('Invalid UUID');
|
||||||
|
}
|
||||||
|
|
||||||
|
return parseInt(uuid.slice(14, 15), 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default version;
|
||||||
9
node_modules/uuid/dist/esm-node/index.js
generated
vendored
Normal file
9
node_modules/uuid/dist/esm-node/index.js
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
export { default as v1 } from './v1.js';
|
||||||
|
export { default as v3 } from './v3.js';
|
||||||
|
export { default as v4 } from './v4.js';
|
||||||
|
export { default as v5 } from './v5.js';
|
||||||
|
export { default as NIL } from './nil.js';
|
||||||
|
export { default as version } from './version.js';
|
||||||
|
export { default as validate } from './validate.js';
|
||||||
|
export { default as stringify } from './stringify.js';
|
||||||
|
export { default as parse } from './parse.js';
|
||||||
13
node_modules/uuid/dist/esm-node/md5.js
generated
vendored
Normal file
13
node_modules/uuid/dist/esm-node/md5.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import crypto from 'crypto';
|
||||||
|
|
||||||
|
function md5(bytes) {
|
||||||
|
if (Array.isArray(bytes)) {
|
||||||
|
bytes = Buffer.from(bytes);
|
||||||
|
} else if (typeof bytes === 'string') {
|
||||||
|
bytes = Buffer.from(bytes, 'utf8');
|
||||||
|
}
|
||||||
|
|
||||||
|
return crypto.createHash('md5').update(bytes).digest();
|
||||||
|
}
|
||||||
|
|
||||||
|
export default md5;
|
||||||
4
node_modules/uuid/dist/esm-node/native.js
generated
vendored
Normal file
4
node_modules/uuid/dist/esm-node/native.js
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
import crypto from 'crypto';
|
||||||
|
export default {
|
||||||
|
randomUUID: crypto.randomUUID
|
||||||
|
};
|
||||||
1
node_modules/uuid/dist/esm-node/nil.js
generated
vendored
Normal file
1
node_modules/uuid/dist/esm-node/nil.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export default '00000000-0000-0000-0000-000000000000';
|
||||||
35
node_modules/uuid/dist/esm-node/parse.js
generated
vendored
Normal file
35
node_modules/uuid/dist/esm-node/parse.js
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
import validate from './validate.js';
|
||||||
|
|
||||||
|
function parse(uuid) {
|
||||||
|
if (!validate(uuid)) {
|
||||||
|
throw TypeError('Invalid UUID');
|
||||||
|
}
|
||||||
|
|
||||||
|
let v;
|
||||||
|
const arr = new Uint8Array(16); // Parse ########-....-....-....-............
|
||||||
|
|
||||||
|
arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
|
||||||
|
arr[1] = v >>> 16 & 0xff;
|
||||||
|
arr[2] = v >>> 8 & 0xff;
|
||||||
|
arr[3] = v & 0xff; // Parse ........-####-....-....-............
|
||||||
|
|
||||||
|
arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
|
||||||
|
arr[5] = v & 0xff; // Parse ........-....-####-....-............
|
||||||
|
|
||||||
|
arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
|
||||||
|
arr[7] = v & 0xff; // Parse ........-....-....-####-............
|
||||||
|
|
||||||
|
arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;
|
||||||
|
arr[9] = v & 0xff; // Parse ........-....-....-....-############
|
||||||
|
// (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes)
|
||||||
|
|
||||||
|
arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;
|
||||||
|
arr[11] = v / 0x100000000 & 0xff;
|
||||||
|
arr[12] = v >>> 24 & 0xff;
|
||||||
|
arr[13] = v >>> 16 & 0xff;
|
||||||
|
arr[14] = v >>> 8 & 0xff;
|
||||||
|
arr[15] = v & 0xff;
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default parse;
|
||||||
1
node_modules/uuid/dist/esm-node/regex.js
generated
vendored
Normal file
1
node_modules/uuid/dist/esm-node/regex.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
|
||||||
12
node_modules/uuid/dist/esm-node/rng.js
generated
vendored
Normal file
12
node_modules/uuid/dist/esm-node/rng.js
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import crypto from 'crypto';
|
||||||
|
const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate
|
||||||
|
|
||||||
|
let poolPtr = rnds8Pool.length;
|
||||||
|
export default function rng() {
|
||||||
|
if (poolPtr > rnds8Pool.length - 16) {
|
||||||
|
crypto.randomFillSync(rnds8Pool);
|
||||||
|
poolPtr = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return rnds8Pool.slice(poolPtr, poolPtr += 16);
|
||||||
|
}
|
||||||
13
node_modules/uuid/dist/esm-node/sha1.js
generated
vendored
Normal file
13
node_modules/uuid/dist/esm-node/sha1.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import crypto from 'crypto';
|
||||||
|
|
||||||
|
function sha1(bytes) {
|
||||||
|
if (Array.isArray(bytes)) {
|
||||||
|
bytes = Buffer.from(bytes);
|
||||||
|
} else if (typeof bytes === 'string') {
|
||||||
|
bytes = Buffer.from(bytes, 'utf8');
|
||||||
|
}
|
||||||
|
|
||||||
|
return crypto.createHash('sha1').update(bytes).digest();
|
||||||
|
}
|
||||||
|
|
||||||
|
export default sha1;
|
||||||
33
node_modules/uuid/dist/esm-node/stringify.js
generated
vendored
Normal file
33
node_modules/uuid/dist/esm-node/stringify.js
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
import validate from './validate.js';
|
||||||
|
/**
|
||||||
|
* Convert array of 16 byte values to UUID string format of the form:
|
||||||
|
* XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
||||||
|
*/
|
||||||
|
|
||||||
|
const byteToHex = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < 256; ++i) {
|
||||||
|
byteToHex.push((i + 0x100).toString(16).slice(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
export function unsafeStringify(arr, offset = 0) {
|
||||||
|
// Note: Be careful editing this code! It's been tuned for performance
|
||||||
|
// and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
|
||||||
|
return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
|
||||||
|
}
|
||||||
|
|
||||||
|
function stringify(arr, offset = 0) {
|
||||||
|
const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one
|
||||||
|
// of the following:
|
||||||
|
// - One or more input array values don't map to a hex octet (leading to
|
||||||
|
// "undefined" in the uuid)
|
||||||
|
// - Invalid input values for the RFC `version` or `variant` fields
|
||||||
|
|
||||||
|
if (!validate(uuid)) {
|
||||||
|
throw TypeError('Stringified UUID is invalid');
|
||||||
|
}
|
||||||
|
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default stringify;
|
||||||
95
node_modules/uuid/dist/esm-node/v1.js
generated
vendored
Normal file
95
node_modules/uuid/dist/esm-node/v1.js
generated
vendored
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
import rng from './rng.js';
|
||||||
|
import { unsafeStringify } from './stringify.js'; // **`v1()` - Generate time-based UUID**
|
||||||
|
//
|
||||||
|
// Inspired by https://github.com/LiosK/UUID.js
|
||||||
|
// and http://docs.python.org/library/uuid.html
|
||||||
|
|
||||||
|
let _nodeId;
|
||||||
|
|
||||||
|
let _clockseq; // Previous uuid creation time
|
||||||
|
|
||||||
|
|
||||||
|
let _lastMSecs = 0;
|
||||||
|
let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details
|
||||||
|
|
||||||
|
function v1(options, buf, offset) {
|
||||||
|
let i = buf && offset || 0;
|
||||||
|
const b = buf || new Array(16);
|
||||||
|
options = options || {};
|
||||||
|
let node = options.node || _nodeId;
|
||||||
|
let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not
|
||||||
|
// specified. We do this lazily to minimize issues related to insufficient
|
||||||
|
// system entropy. See #189
|
||||||
|
|
||||||
|
if (node == null || clockseq == null) {
|
||||||
|
const seedBytes = options.random || (options.rng || rng)();
|
||||||
|
|
||||||
|
if (node == null) {
|
||||||
|
// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
|
||||||
|
node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (clockseq == null) {
|
||||||
|
// Per 4.2.2, randomize (14 bit) clockseq
|
||||||
|
clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
|
||||||
|
}
|
||||||
|
} // UUID timestamps are 100 nano-second units since the Gregorian epoch,
|
||||||
|
// (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
|
||||||
|
// time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
|
||||||
|
// (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
|
||||||
|
|
||||||
|
|
||||||
|
let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock
|
||||||
|
// cycle to simulate higher resolution clock
|
||||||
|
|
||||||
|
let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)
|
||||||
|
|
||||||
|
const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression
|
||||||
|
|
||||||
|
if (dt < 0 && options.clockseq === undefined) {
|
||||||
|
clockseq = clockseq + 1 & 0x3fff;
|
||||||
|
} // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
|
||||||
|
// time interval
|
||||||
|
|
||||||
|
|
||||||
|
if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
|
||||||
|
nsecs = 0;
|
||||||
|
} // Per 4.2.1.2 Throw error if too many uuids are requested
|
||||||
|
|
||||||
|
|
||||||
|
if (nsecs >= 10000) {
|
||||||
|
throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
|
||||||
|
}
|
||||||
|
|
||||||
|
_lastMSecs = msecs;
|
||||||
|
_lastNSecs = nsecs;
|
||||||
|
_clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
|
||||||
|
|
||||||
|
msecs += 12219292800000; // `time_low`
|
||||||
|
|
||||||
|
const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
|
||||||
|
b[i++] = tl >>> 24 & 0xff;
|
||||||
|
b[i++] = tl >>> 16 & 0xff;
|
||||||
|
b[i++] = tl >>> 8 & 0xff;
|
||||||
|
b[i++] = tl & 0xff; // `time_mid`
|
||||||
|
|
||||||
|
const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;
|
||||||
|
b[i++] = tmh >>> 8 & 0xff;
|
||||||
|
b[i++] = tmh & 0xff; // `time_high_and_version`
|
||||||
|
|
||||||
|
b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
|
||||||
|
|
||||||
|
b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
|
||||||
|
|
||||||
|
b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`
|
||||||
|
|
||||||
|
b[i++] = clockseq & 0xff; // `node`
|
||||||
|
|
||||||
|
for (let n = 0; n < 6; ++n) {
|
||||||
|
b[i + n] = node[n];
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf || unsafeStringify(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default v1;
|
||||||
4
node_modules/uuid/dist/esm-node/v3.js
generated
vendored
Normal file
4
node_modules/uuid/dist/esm-node/v3.js
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
import v35 from './v35.js';
|
||||||
|
import md5 from './md5.js';
|
||||||
|
const v3 = v35('v3', 0x30, md5);
|
||||||
|
export default v3;
|
||||||
66
node_modules/uuid/dist/esm-node/v35.js
generated
vendored
Normal file
66
node_modules/uuid/dist/esm-node/v35.js
generated
vendored
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
import { unsafeStringify } from './stringify.js';
|
||||||
|
import parse from './parse.js';
|
||||||
|
|
||||||
|
function stringToBytes(str) {
|
||||||
|
str = unescape(encodeURIComponent(str)); // UTF8 escape
|
||||||
|
|
||||||
|
const bytes = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < str.length; ++i) {
|
||||||
|
bytes.push(str.charCodeAt(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
return bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
|
||||||
|
export const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
|
||||||
|
export default function v35(name, version, hashfunc) {
|
||||||
|
function generateUUID(value, namespace, buf, offset) {
|
||||||
|
var _namespace;
|
||||||
|
|
||||||
|
if (typeof value === 'string') {
|
||||||
|
value = stringToBytes(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof namespace === 'string') {
|
||||||
|
namespace = parse(namespace);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {
|
||||||
|
throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');
|
||||||
|
} // Compute hash of namespace and value, Per 4.3
|
||||||
|
// Future: Use spread syntax when supported on all platforms, e.g. `bytes =
|
||||||
|
// hashfunc([...namespace, ... value])`
|
||||||
|
|
||||||
|
|
||||||
|
let bytes = new Uint8Array(16 + value.length);
|
||||||
|
bytes.set(namespace);
|
||||||
|
bytes.set(value, namespace.length);
|
||||||
|
bytes = hashfunc(bytes);
|
||||||
|
bytes[6] = bytes[6] & 0x0f | version;
|
||||||
|
bytes[8] = bytes[8] & 0x3f | 0x80;
|
||||||
|
|
||||||
|
if (buf) {
|
||||||
|
offset = offset || 0;
|
||||||
|
|
||||||
|
for (let i = 0; i < 16; ++i) {
|
||||||
|
buf[offset + i] = bytes[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
return unsafeStringify(bytes);
|
||||||
|
} // Function#name is not settable on some platforms (#270)
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
generateUUID.name = name; // eslint-disable-next-line no-empty
|
||||||
|
} catch (err) {} // For CommonJS default export support
|
||||||
|
|
||||||
|
|
||||||
|
generateUUID.DNS = DNS;
|
||||||
|
generateUUID.URL = URL;
|
||||||
|
return generateUUID;
|
||||||
|
}
|
||||||
29
node_modules/uuid/dist/esm-node/v4.js
generated
vendored
Normal file
29
node_modules/uuid/dist/esm-node/v4.js
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
import native from './native.js';
|
||||||
|
import rng from './rng.js';
|
||||||
|
import { unsafeStringify } from './stringify.js';
|
||||||
|
|
||||||
|
function v4(options, buf, offset) {
|
||||||
|
if (native.randomUUID && !buf && !options) {
|
||||||
|
return native.randomUUID();
|
||||||
|
}
|
||||||
|
|
||||||
|
options = options || {};
|
||||||
|
const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
|
||||||
|
|
||||||
|
rnds[6] = rnds[6] & 0x0f | 0x40;
|
||||||
|
rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
|
||||||
|
|
||||||
|
if (buf) {
|
||||||
|
offset = offset || 0;
|
||||||
|
|
||||||
|
for (let i = 0; i < 16; ++i) {
|
||||||
|
buf[offset + i] = rnds[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
return unsafeStringify(rnds);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default v4;
|
||||||
4
node_modules/uuid/dist/esm-node/v5.js
generated
vendored
Normal file
4
node_modules/uuid/dist/esm-node/v5.js
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
import v35 from './v35.js';
|
||||||
|
import sha1 from './sha1.js';
|
||||||
|
const v5 = v35('v5', 0x50, sha1);
|
||||||
|
export default v5;
|
||||||
7
node_modules/uuid/dist/esm-node/validate.js
generated
vendored
Normal file
7
node_modules/uuid/dist/esm-node/validate.js
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import REGEX from './regex.js';
|
||||||
|
|
||||||
|
function validate(uuid) {
|
||||||
|
return typeof uuid === 'string' && REGEX.test(uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default validate;
|
||||||
11
node_modules/uuid/dist/esm-node/version.js
generated
vendored
Normal file
11
node_modules/uuid/dist/esm-node/version.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
import validate from './validate.js';
|
||||||
|
|
||||||
|
function version(uuid) {
|
||||||
|
if (!validate(uuid)) {
|
||||||
|
throw TypeError('Invalid UUID');
|
||||||
|
}
|
||||||
|
|
||||||
|
return parseInt(uuid.slice(14, 15), 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default version;
|
||||||
79
node_modules/uuid/dist/index.js
generated
vendored
Normal file
79
node_modules/uuid/dist/index.js
generated
vendored
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "NIL", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _nil.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "parse", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _parse.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "stringify", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _stringify.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "v1", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _v.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "v3", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _v2.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "v4", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _v3.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "v5", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _v4.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "validate", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _validate.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "version", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _version.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var _v = _interopRequireDefault(require("./v1.js"));
|
||||||
|
|
||||||
|
var _v2 = _interopRequireDefault(require("./v3.js"));
|
||||||
|
|
||||||
|
var _v3 = _interopRequireDefault(require("./v4.js"));
|
||||||
|
|
||||||
|
var _v4 = _interopRequireDefault(require("./v5.js"));
|
||||||
|
|
||||||
|
var _nil = _interopRequireDefault(require("./nil.js"));
|
||||||
|
|
||||||
|
var _version = _interopRequireDefault(require("./version.js"));
|
||||||
|
|
||||||
|
var _validate = _interopRequireDefault(require("./validate.js"));
|
||||||
|
|
||||||
|
var _stringify = _interopRequireDefault(require("./stringify.js"));
|
||||||
|
|
||||||
|
var _parse = _interopRequireDefault(require("./parse.js"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
223
node_modules/uuid/dist/md5-browser.js
generated
vendored
Normal file
223
node_modules/uuid/dist/md5-browser.js
generated
vendored
Normal file
@@ -0,0 +1,223 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Browser-compatible JavaScript MD5
|
||||||
|
*
|
||||||
|
* Modification of JavaScript MD5
|
||||||
|
* https://github.com/blueimp/JavaScript-MD5
|
||||||
|
*
|
||||||
|
* Copyright 2011, Sebastian Tschan
|
||||||
|
* https://blueimp.net
|
||||||
|
*
|
||||||
|
* Licensed under the MIT license:
|
||||||
|
* https://opensource.org/licenses/MIT
|
||||||
|
*
|
||||||
|
* Based on
|
||||||
|
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
|
||||||
|
* Digest Algorithm, as defined in RFC 1321.
|
||||||
|
* Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
|
||||||
|
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
|
||||||
|
* Distributed under the BSD License
|
||||||
|
* See http://pajhome.org.uk/crypt/md5 for more info.
|
||||||
|
*/
|
||||||
|
function md5(bytes) {
|
||||||
|
if (typeof bytes === 'string') {
|
||||||
|
const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape
|
||||||
|
|
||||||
|
bytes = new Uint8Array(msg.length);
|
||||||
|
|
||||||
|
for (let i = 0; i < msg.length; ++i) {
|
||||||
|
bytes[i] = msg.charCodeAt(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Convert an array of little-endian words to an array of bytes
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function md5ToHexEncodedArray(input) {
|
||||||
|
const output = [];
|
||||||
|
const length32 = input.length * 32;
|
||||||
|
const hexTab = '0123456789abcdef';
|
||||||
|
|
||||||
|
for (let i = 0; i < length32; i += 8) {
|
||||||
|
const x = input[i >> 5] >>> i % 32 & 0xff;
|
||||||
|
const hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);
|
||||||
|
output.push(hex);
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Calculate output length with padding and bit length
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function getOutputLength(inputLength8) {
|
||||||
|
return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Calculate the MD5 of an array of little-endian words, and a bit length.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function wordsToMd5(x, len) {
|
||||||
|
/* append padding */
|
||||||
|
x[len >> 5] |= 0x80 << len % 32;
|
||||||
|
x[getOutputLength(len) - 1] = len;
|
||||||
|
let a = 1732584193;
|
||||||
|
let b = -271733879;
|
||||||
|
let c = -1732584194;
|
||||||
|
let d = 271733878;
|
||||||
|
|
||||||
|
for (let i = 0; i < x.length; i += 16) {
|
||||||
|
const olda = a;
|
||||||
|
const oldb = b;
|
||||||
|
const oldc = c;
|
||||||
|
const oldd = d;
|
||||||
|
a = md5ff(a, b, c, d, x[i], 7, -680876936);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
|
||||||
|
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
|
||||||
|
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
|
||||||
|
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
|
||||||
|
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
|
||||||
|
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
|
||||||
|
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
|
||||||
|
b = md5gg(b, c, d, a, x[i], 20, -373897302);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
|
||||||
|
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
|
||||||
|
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
|
||||||
|
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
|
||||||
|
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
|
||||||
|
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
|
||||||
|
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
|
||||||
|
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
|
||||||
|
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
|
||||||
|
d = md5hh(d, a, b, c, x[i], 11, -358537222);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
|
||||||
|
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
|
||||||
|
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
|
||||||
|
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
|
||||||
|
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
|
||||||
|
a = md5ii(a, b, c, d, x[i], 6, -198630844);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
|
||||||
|
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
|
||||||
|
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
|
||||||
|
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
|
||||||
|
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
|
||||||
|
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
|
||||||
|
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
|
||||||
|
a = safeAdd(a, olda);
|
||||||
|
b = safeAdd(b, oldb);
|
||||||
|
c = safeAdd(c, oldc);
|
||||||
|
d = safeAdd(d, oldd);
|
||||||
|
}
|
||||||
|
|
||||||
|
return [a, b, c, d];
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Convert an array bytes to an array of little-endian words
|
||||||
|
* Characters >255 have their high-byte silently ignored.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function bytesToWords(input) {
|
||||||
|
if (input.length === 0) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
const length8 = input.length * 8;
|
||||||
|
const output = new Uint32Array(getOutputLength(length8));
|
||||||
|
|
||||||
|
for (let i = 0; i < length8; i += 8) {
|
||||||
|
output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
|
||||||
|
* to work around bugs in some JS interpreters.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function safeAdd(x, y) {
|
||||||
|
const lsw = (x & 0xffff) + (y & 0xffff);
|
||||||
|
const msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
||||||
|
return msw << 16 | lsw & 0xffff;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Bitwise rotate a 32-bit number to the left.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function bitRotateLeft(num, cnt) {
|
||||||
|
return num << cnt | num >>> 32 - cnt;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* These functions implement the four basic operations the algorithm uses.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function md5cmn(q, a, b, x, s, t) {
|
||||||
|
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
|
||||||
|
}
|
||||||
|
|
||||||
|
function md5ff(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(b & c | ~b & d, a, b, x, s, t);
|
||||||
|
}
|
||||||
|
|
||||||
|
function md5gg(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(b & d | c & ~d, a, b, x, s, t);
|
||||||
|
}
|
||||||
|
|
||||||
|
function md5hh(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(b ^ c ^ d, a, b, x, s, t);
|
||||||
|
}
|
||||||
|
|
||||||
|
function md5ii(a, b, c, d, x, s, t) {
|
||||||
|
return md5cmn(c ^ (b | ~d), a, b, x, s, t);
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = md5;
|
||||||
|
exports.default = _default;
|
||||||
23
node_modules/uuid/dist/md5.js
generated
vendored
Normal file
23
node_modules/uuid/dist/md5.js
generated
vendored
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _crypto = _interopRequireDefault(require("crypto"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function md5(bytes) {
|
||||||
|
if (Array.isArray(bytes)) {
|
||||||
|
bytes = Buffer.from(bytes);
|
||||||
|
} else if (typeof bytes === 'string') {
|
||||||
|
bytes = Buffer.from(bytes, 'utf8');
|
||||||
|
}
|
||||||
|
|
||||||
|
return _crypto.default.createHash('md5').update(bytes).digest();
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = md5;
|
||||||
|
exports.default = _default;
|
||||||
11
node_modules/uuid/dist/native-browser.js
generated
vendored
Normal file
11
node_modules/uuid/dist/native-browser.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
|
||||||
|
var _default = {
|
||||||
|
randomUUID
|
||||||
|
};
|
||||||
|
exports.default = _default;
|
||||||
15
node_modules/uuid/dist/native.js
generated
vendored
Normal file
15
node_modules/uuid/dist/native.js
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _crypto = _interopRequireDefault(require("crypto"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
var _default = {
|
||||||
|
randomUUID: _crypto.default.randomUUID
|
||||||
|
};
|
||||||
|
exports.default = _default;
|
||||||
8
node_modules/uuid/dist/nil.js
generated
vendored
Normal file
8
node_modules/uuid/dist/nil.js
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
var _default = '00000000-0000-0000-0000-000000000000';
|
||||||
|
exports.default = _default;
|
||||||
45
node_modules/uuid/dist/parse.js
generated
vendored
Normal file
45
node_modules/uuid/dist/parse.js
generated
vendored
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _validate = _interopRequireDefault(require("./validate.js"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function parse(uuid) {
|
||||||
|
if (!(0, _validate.default)(uuid)) {
|
||||||
|
throw TypeError('Invalid UUID');
|
||||||
|
}
|
||||||
|
|
||||||
|
let v;
|
||||||
|
const arr = new Uint8Array(16); // Parse ########-....-....-....-............
|
||||||
|
|
||||||
|
arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
|
||||||
|
arr[1] = v >>> 16 & 0xff;
|
||||||
|
arr[2] = v >>> 8 & 0xff;
|
||||||
|
arr[3] = v & 0xff; // Parse ........-####-....-....-............
|
||||||
|
|
||||||
|
arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
|
||||||
|
arr[5] = v & 0xff; // Parse ........-....-####-....-............
|
||||||
|
|
||||||
|
arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
|
||||||
|
arr[7] = v & 0xff; // Parse ........-....-....-####-............
|
||||||
|
|
||||||
|
arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;
|
||||||
|
arr[9] = v & 0xff; // Parse ........-....-....-....-############
|
||||||
|
// (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes)
|
||||||
|
|
||||||
|
arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;
|
||||||
|
arr[11] = v / 0x100000000 & 0xff;
|
||||||
|
arr[12] = v >>> 24 & 0xff;
|
||||||
|
arr[13] = v >>> 16 & 0xff;
|
||||||
|
arr[14] = v >>> 8 & 0xff;
|
||||||
|
arr[15] = v & 0xff;
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = parse;
|
||||||
|
exports.default = _default;
|
||||||
8
node_modules/uuid/dist/regex.js
generated
vendored
Normal file
8
node_modules/uuid/dist/regex.js
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
|
||||||
|
exports.default = _default;
|
||||||
25
node_modules/uuid/dist/rng-browser.js
generated
vendored
Normal file
25
node_modules/uuid/dist/rng-browser.js
generated
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = rng;
|
||||||
|
// Unique ID creation requires a high quality random # generator. In the browser we therefore
|
||||||
|
// require the crypto API and do not support built-in fallback to lower quality random number
|
||||||
|
// generators (like Math.random()).
|
||||||
|
let getRandomValues;
|
||||||
|
const rnds8 = new Uint8Array(16);
|
||||||
|
|
||||||
|
function rng() {
|
||||||
|
// lazy load so that environments that need to polyfill have a chance to do so
|
||||||
|
if (!getRandomValues) {
|
||||||
|
// getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
|
||||||
|
getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
|
||||||
|
|
||||||
|
if (!getRandomValues) {
|
||||||
|
throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return getRandomValues(rnds8);
|
||||||
|
}
|
||||||
24
node_modules/uuid/dist/rng.js
generated
vendored
Normal file
24
node_modules/uuid/dist/rng.js
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = rng;
|
||||||
|
|
||||||
|
var _crypto = _interopRequireDefault(require("crypto"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate
|
||||||
|
|
||||||
|
let poolPtr = rnds8Pool.length;
|
||||||
|
|
||||||
|
function rng() {
|
||||||
|
if (poolPtr > rnds8Pool.length - 16) {
|
||||||
|
_crypto.default.randomFillSync(rnds8Pool);
|
||||||
|
|
||||||
|
poolPtr = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return rnds8Pool.slice(poolPtr, poolPtr += 16);
|
||||||
|
}
|
||||||
104
node_modules/uuid/dist/sha1-browser.js
generated
vendored
Normal file
104
node_modules/uuid/dist/sha1-browser.js
generated
vendored
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
// Adapted from Chris Veness' SHA1 code at
|
||||||
|
// http://www.movable-type.co.uk/scripts/sha1.html
|
||||||
|
function f(s, x, y, z) {
|
||||||
|
switch (s) {
|
||||||
|
case 0:
|
||||||
|
return x & y ^ ~x & z;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
return x ^ y ^ z;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
return x & y ^ x & z ^ y & z;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
return x ^ y ^ z;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function ROTL(x, n) {
|
||||||
|
return x << n | x >>> 32 - n;
|
||||||
|
}
|
||||||
|
|
||||||
|
function sha1(bytes) {
|
||||||
|
const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];
|
||||||
|
const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];
|
||||||
|
|
||||||
|
if (typeof bytes === 'string') {
|
||||||
|
const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape
|
||||||
|
|
||||||
|
bytes = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < msg.length; ++i) {
|
||||||
|
bytes.push(msg.charCodeAt(i));
|
||||||
|
}
|
||||||
|
} else if (!Array.isArray(bytes)) {
|
||||||
|
// Convert Array-like to Array
|
||||||
|
bytes = Array.prototype.slice.call(bytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
bytes.push(0x80);
|
||||||
|
const l = bytes.length / 4 + 2;
|
||||||
|
const N = Math.ceil(l / 16);
|
||||||
|
const M = new Array(N);
|
||||||
|
|
||||||
|
for (let i = 0; i < N; ++i) {
|
||||||
|
const arr = new Uint32Array(16);
|
||||||
|
|
||||||
|
for (let j = 0; j < 16; ++j) {
|
||||||
|
arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];
|
||||||
|
}
|
||||||
|
|
||||||
|
M[i] = arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);
|
||||||
|
M[N - 1][14] = Math.floor(M[N - 1][14]);
|
||||||
|
M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;
|
||||||
|
|
||||||
|
for (let i = 0; i < N; ++i) {
|
||||||
|
const W = new Uint32Array(80);
|
||||||
|
|
||||||
|
for (let t = 0; t < 16; ++t) {
|
||||||
|
W[t] = M[i][t];
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let t = 16; t < 80; ++t) {
|
||||||
|
W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
let a = H[0];
|
||||||
|
let b = H[1];
|
||||||
|
let c = H[2];
|
||||||
|
let d = H[3];
|
||||||
|
let e = H[4];
|
||||||
|
|
||||||
|
for (let t = 0; t < 80; ++t) {
|
||||||
|
const s = Math.floor(t / 20);
|
||||||
|
const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;
|
||||||
|
e = d;
|
||||||
|
d = c;
|
||||||
|
c = ROTL(b, 30) >>> 0;
|
||||||
|
b = a;
|
||||||
|
a = T;
|
||||||
|
}
|
||||||
|
|
||||||
|
H[0] = H[0] + a >>> 0;
|
||||||
|
H[1] = H[1] + b >>> 0;
|
||||||
|
H[2] = H[2] + c >>> 0;
|
||||||
|
H[3] = H[3] + d >>> 0;
|
||||||
|
H[4] = H[4] + e >>> 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = sha1;
|
||||||
|
exports.default = _default;
|
||||||
23
node_modules/uuid/dist/sha1.js
generated
vendored
Normal file
23
node_modules/uuid/dist/sha1.js
generated
vendored
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _crypto = _interopRequireDefault(require("crypto"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function sha1(bytes) {
|
||||||
|
if (Array.isArray(bytes)) {
|
||||||
|
bytes = Buffer.from(bytes);
|
||||||
|
} else if (typeof bytes === 'string') {
|
||||||
|
bytes = Buffer.from(bytes, 'utf8');
|
||||||
|
}
|
||||||
|
|
||||||
|
return _crypto.default.createHash('sha1').update(bytes).digest();
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = sha1;
|
||||||
|
exports.default = _default;
|
||||||
44
node_modules/uuid/dist/stringify.js
generated
vendored
Normal file
44
node_modules/uuid/dist/stringify.js
generated
vendored
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
exports.unsafeStringify = unsafeStringify;
|
||||||
|
|
||||||
|
var _validate = _interopRequireDefault(require("./validate.js"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert array of 16 byte values to UUID string format of the form:
|
||||||
|
* XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
||||||
|
*/
|
||||||
|
const byteToHex = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < 256; ++i) {
|
||||||
|
byteToHex.push((i + 0x100).toString(16).slice(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
function unsafeStringify(arr, offset = 0) {
|
||||||
|
// Note: Be careful editing this code! It's been tuned for performance
|
||||||
|
// and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
|
||||||
|
return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
|
||||||
|
}
|
||||||
|
|
||||||
|
function stringify(arr, offset = 0) {
|
||||||
|
const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one
|
||||||
|
// of the following:
|
||||||
|
// - One or more input array values don't map to a hex octet (leading to
|
||||||
|
// "undefined" in the uuid)
|
||||||
|
// - Invalid input values for the RFC `version` or `variant` fields
|
||||||
|
|
||||||
|
if (!(0, _validate.default)(uuid)) {
|
||||||
|
throw TypeError('Stringified UUID is invalid');
|
||||||
|
}
|
||||||
|
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = stringify;
|
||||||
|
exports.default = _default;
|
||||||
85
node_modules/uuid/dist/uuid-bin.js
generated
vendored
Normal file
85
node_modules/uuid/dist/uuid-bin.js
generated
vendored
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
var _assert = _interopRequireDefault(require("assert"));
|
||||||
|
|
||||||
|
var _v = _interopRequireDefault(require("./v1.js"));
|
||||||
|
|
||||||
|
var _v2 = _interopRequireDefault(require("./v3.js"));
|
||||||
|
|
||||||
|
var _v3 = _interopRequireDefault(require("./v4.js"));
|
||||||
|
|
||||||
|
var _v4 = _interopRequireDefault(require("./v5.js"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function usage() {
|
||||||
|
console.log('Usage:');
|
||||||
|
console.log(' uuid');
|
||||||
|
console.log(' uuid v1');
|
||||||
|
console.log(' uuid v3 <name> <namespace uuid>');
|
||||||
|
console.log(' uuid v4');
|
||||||
|
console.log(' uuid v5 <name> <namespace uuid>');
|
||||||
|
console.log(' uuid --help');
|
||||||
|
console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC4122');
|
||||||
|
}
|
||||||
|
|
||||||
|
const args = process.argv.slice(2);
|
||||||
|
|
||||||
|
if (args.indexOf('--help') >= 0) {
|
||||||
|
usage();
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
const version = args.shift() || 'v4';
|
||||||
|
|
||||||
|
switch (version) {
|
||||||
|
case 'v1':
|
||||||
|
console.log((0, _v.default)());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'v3':
|
||||||
|
{
|
||||||
|
const name = args.shift();
|
||||||
|
let namespace = args.shift();
|
||||||
|
(0, _assert.default)(name != null, 'v3 name not specified');
|
||||||
|
(0, _assert.default)(namespace != null, 'v3 namespace not specified');
|
||||||
|
|
||||||
|
if (namespace === 'URL') {
|
||||||
|
namespace = _v2.default.URL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (namespace === 'DNS') {
|
||||||
|
namespace = _v2.default.DNS;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log((0, _v2.default)(name, namespace));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'v4':
|
||||||
|
console.log((0, _v3.default)());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'v5':
|
||||||
|
{
|
||||||
|
const name = args.shift();
|
||||||
|
let namespace = args.shift();
|
||||||
|
(0, _assert.default)(name != null, 'v5 name not specified');
|
||||||
|
(0, _assert.default)(namespace != null, 'v5 namespace not specified');
|
||||||
|
|
||||||
|
if (namespace === 'URL') {
|
||||||
|
namespace = _v4.default.URL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (namespace === 'DNS') {
|
||||||
|
namespace = _v4.default.DNS;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log((0, _v4.default)(name, namespace));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
usage();
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
107
node_modules/uuid/dist/v1.js
generated
vendored
Normal file
107
node_modules/uuid/dist/v1.js
generated
vendored
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _rng = _interopRequireDefault(require("./rng.js"));
|
||||||
|
|
||||||
|
var _stringify = require("./stringify.js");
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
// **`v1()` - Generate time-based UUID**
|
||||||
|
//
|
||||||
|
// Inspired by https://github.com/LiosK/UUID.js
|
||||||
|
// and http://docs.python.org/library/uuid.html
|
||||||
|
let _nodeId;
|
||||||
|
|
||||||
|
let _clockseq; // Previous uuid creation time
|
||||||
|
|
||||||
|
|
||||||
|
let _lastMSecs = 0;
|
||||||
|
let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details
|
||||||
|
|
||||||
|
function v1(options, buf, offset) {
|
||||||
|
let i = buf && offset || 0;
|
||||||
|
const b = buf || new Array(16);
|
||||||
|
options = options || {};
|
||||||
|
let node = options.node || _nodeId;
|
||||||
|
let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not
|
||||||
|
// specified. We do this lazily to minimize issues related to insufficient
|
||||||
|
// system entropy. See #189
|
||||||
|
|
||||||
|
if (node == null || clockseq == null) {
|
||||||
|
const seedBytes = options.random || (options.rng || _rng.default)();
|
||||||
|
|
||||||
|
if (node == null) {
|
||||||
|
// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
|
||||||
|
node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (clockseq == null) {
|
||||||
|
// Per 4.2.2, randomize (14 bit) clockseq
|
||||||
|
clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
|
||||||
|
}
|
||||||
|
} // UUID timestamps are 100 nano-second units since the Gregorian epoch,
|
||||||
|
// (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
|
||||||
|
// time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
|
||||||
|
// (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
|
||||||
|
|
||||||
|
|
||||||
|
let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock
|
||||||
|
// cycle to simulate higher resolution clock
|
||||||
|
|
||||||
|
let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)
|
||||||
|
|
||||||
|
const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression
|
||||||
|
|
||||||
|
if (dt < 0 && options.clockseq === undefined) {
|
||||||
|
clockseq = clockseq + 1 & 0x3fff;
|
||||||
|
} // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
|
||||||
|
// time interval
|
||||||
|
|
||||||
|
|
||||||
|
if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
|
||||||
|
nsecs = 0;
|
||||||
|
} // Per 4.2.1.2 Throw error if too many uuids are requested
|
||||||
|
|
||||||
|
|
||||||
|
if (nsecs >= 10000) {
|
||||||
|
throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
|
||||||
|
}
|
||||||
|
|
||||||
|
_lastMSecs = msecs;
|
||||||
|
_lastNSecs = nsecs;
|
||||||
|
_clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
|
||||||
|
|
||||||
|
msecs += 12219292800000; // `time_low`
|
||||||
|
|
||||||
|
const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
|
||||||
|
b[i++] = tl >>> 24 & 0xff;
|
||||||
|
b[i++] = tl >>> 16 & 0xff;
|
||||||
|
b[i++] = tl >>> 8 & 0xff;
|
||||||
|
b[i++] = tl & 0xff; // `time_mid`
|
||||||
|
|
||||||
|
const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;
|
||||||
|
b[i++] = tmh >>> 8 & 0xff;
|
||||||
|
b[i++] = tmh & 0xff; // `time_high_and_version`
|
||||||
|
|
||||||
|
b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
|
||||||
|
|
||||||
|
b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
|
||||||
|
|
||||||
|
b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`
|
||||||
|
|
||||||
|
b[i++] = clockseq & 0xff; // `node`
|
||||||
|
|
||||||
|
for (let n = 0; n < 6; ++n) {
|
||||||
|
b[i + n] = node[n];
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf || (0, _stringify.unsafeStringify)(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = v1;
|
||||||
|
exports.default = _default;
|
||||||
16
node_modules/uuid/dist/v3.js
generated
vendored
Normal file
16
node_modules/uuid/dist/v3.js
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _v = _interopRequireDefault(require("./v35.js"));
|
||||||
|
|
||||||
|
var _md = _interopRequireDefault(require("./md5.js"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const v3 = (0, _v.default)('v3', 0x30, _md.default);
|
||||||
|
var _default = v3;
|
||||||
|
exports.default = _default;
|
||||||
80
node_modules/uuid/dist/v35.js
generated
vendored
Normal file
80
node_modules/uuid/dist/v35.js
generated
vendored
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.URL = exports.DNS = void 0;
|
||||||
|
exports.default = v35;
|
||||||
|
|
||||||
|
var _stringify = require("./stringify.js");
|
||||||
|
|
||||||
|
var _parse = _interopRequireDefault(require("./parse.js"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function stringToBytes(str) {
|
||||||
|
str = unescape(encodeURIComponent(str)); // UTF8 escape
|
||||||
|
|
||||||
|
const bytes = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < str.length; ++i) {
|
||||||
|
bytes.push(str.charCodeAt(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
return bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
|
||||||
|
exports.DNS = DNS;
|
||||||
|
const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
|
||||||
|
exports.URL = URL;
|
||||||
|
|
||||||
|
function v35(name, version, hashfunc) {
|
||||||
|
function generateUUID(value, namespace, buf, offset) {
|
||||||
|
var _namespace;
|
||||||
|
|
||||||
|
if (typeof value === 'string') {
|
||||||
|
value = stringToBytes(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof namespace === 'string') {
|
||||||
|
namespace = (0, _parse.default)(namespace);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {
|
||||||
|
throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');
|
||||||
|
} // Compute hash of namespace and value, Per 4.3
|
||||||
|
// Future: Use spread syntax when supported on all platforms, e.g. `bytes =
|
||||||
|
// hashfunc([...namespace, ... value])`
|
||||||
|
|
||||||
|
|
||||||
|
let bytes = new Uint8Array(16 + value.length);
|
||||||
|
bytes.set(namespace);
|
||||||
|
bytes.set(value, namespace.length);
|
||||||
|
bytes = hashfunc(bytes);
|
||||||
|
bytes[6] = bytes[6] & 0x0f | version;
|
||||||
|
bytes[8] = bytes[8] & 0x3f | 0x80;
|
||||||
|
|
||||||
|
if (buf) {
|
||||||
|
offset = offset || 0;
|
||||||
|
|
||||||
|
for (let i = 0; i < 16; ++i) {
|
||||||
|
buf[offset + i] = bytes[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (0, _stringify.unsafeStringify)(bytes);
|
||||||
|
} // Function#name is not settable on some platforms (#270)
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
generateUUID.name = name; // eslint-disable-next-line no-empty
|
||||||
|
} catch (err) {} // For CommonJS default export support
|
||||||
|
|
||||||
|
|
||||||
|
generateUUID.DNS = DNS;
|
||||||
|
generateUUID.URL = URL;
|
||||||
|
return generateUUID;
|
||||||
|
}
|
||||||
43
node_modules/uuid/dist/v4.js
generated
vendored
Normal file
43
node_modules/uuid/dist/v4.js
generated
vendored
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _native = _interopRequireDefault(require("./native.js"));
|
||||||
|
|
||||||
|
var _rng = _interopRequireDefault(require("./rng.js"));
|
||||||
|
|
||||||
|
var _stringify = require("./stringify.js");
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function v4(options, buf, offset) {
|
||||||
|
if (_native.default.randomUUID && !buf && !options) {
|
||||||
|
return _native.default.randomUUID();
|
||||||
|
}
|
||||||
|
|
||||||
|
options = options || {};
|
||||||
|
|
||||||
|
const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
|
||||||
|
|
||||||
|
|
||||||
|
rnds[6] = rnds[6] & 0x0f | 0x40;
|
||||||
|
rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
|
||||||
|
|
||||||
|
if (buf) {
|
||||||
|
offset = offset || 0;
|
||||||
|
|
||||||
|
for (let i = 0; i < 16; ++i) {
|
||||||
|
buf[offset + i] = rnds[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (0, _stringify.unsafeStringify)(rnds);
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = v4;
|
||||||
|
exports.default = _default;
|
||||||
16
node_modules/uuid/dist/v5.js
generated
vendored
Normal file
16
node_modules/uuid/dist/v5.js
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _v = _interopRequireDefault(require("./v35.js"));
|
||||||
|
|
||||||
|
var _sha = _interopRequireDefault(require("./sha1.js"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const v5 = (0, _v.default)('v5', 0x50, _sha.default);
|
||||||
|
var _default = v5;
|
||||||
|
exports.default = _default;
|
||||||
17
node_modules/uuid/dist/validate.js
generated
vendored
Normal file
17
node_modules/uuid/dist/validate.js
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _regex = _interopRequireDefault(require("./regex.js"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function validate(uuid) {
|
||||||
|
return typeof uuid === 'string' && _regex.default.test(uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = validate;
|
||||||
|
exports.default = _default;
|
||||||
21
node_modules/uuid/dist/version.js
generated
vendored
Normal file
21
node_modules/uuid/dist/version.js
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _validate = _interopRequireDefault(require("./validate.js"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function version(uuid) {
|
||||||
|
if (!(0, _validate.default)(uuid)) {
|
||||||
|
throw TypeError('Invalid UUID');
|
||||||
|
}
|
||||||
|
|
||||||
|
return parseInt(uuid.slice(14, 15), 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
var _default = version;
|
||||||
|
exports.default = _default;
|
||||||
135
node_modules/uuid/package.json
generated
vendored
Normal file
135
node_modules/uuid/package.json
generated
vendored
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
{
|
||||||
|
"name": "uuid",
|
||||||
|
"version": "9.0.1",
|
||||||
|
"description": "RFC4122 (v1, v4, and v5) UUIDs",
|
||||||
|
"funding": [
|
||||||
|
"https://github.com/sponsors/broofa",
|
||||||
|
"https://github.com/sponsors/ctavan"
|
||||||
|
],
|
||||||
|
"commitlint": {
|
||||||
|
"extends": [
|
||||||
|
"@commitlint/config-conventional"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"uuid",
|
||||||
|
"guid",
|
||||||
|
"rfc4122"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"bin": {
|
||||||
|
"uuid": "./dist/bin/uuid"
|
||||||
|
},
|
||||||
|
"sideEffects": false,
|
||||||
|
"main": "./dist/index.js",
|
||||||
|
"exports": {
|
||||||
|
".": {
|
||||||
|
"node": {
|
||||||
|
"module": "./dist/esm-node/index.js",
|
||||||
|
"require": "./dist/index.js",
|
||||||
|
"import": "./wrapper.mjs"
|
||||||
|
},
|
||||||
|
"browser": {
|
||||||
|
"import": "./dist/esm-browser/index.js",
|
||||||
|
"require": "./dist/commonjs-browser/index.js"
|
||||||
|
},
|
||||||
|
"default": "./dist/esm-browser/index.js"
|
||||||
|
},
|
||||||
|
"./package.json": "./package.json"
|
||||||
|
},
|
||||||
|
"module": "./dist/esm-node/index.js",
|
||||||
|
"browser": {
|
||||||
|
"./dist/md5.js": "./dist/md5-browser.js",
|
||||||
|
"./dist/native.js": "./dist/native-browser.js",
|
||||||
|
"./dist/rng.js": "./dist/rng-browser.js",
|
||||||
|
"./dist/sha1.js": "./dist/sha1-browser.js",
|
||||||
|
"./dist/esm-node/index.js": "./dist/esm-browser/index.js"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"CHANGELOG.md",
|
||||||
|
"CONTRIBUTING.md",
|
||||||
|
"LICENSE.md",
|
||||||
|
"README.md",
|
||||||
|
"dist",
|
||||||
|
"wrapper.mjs"
|
||||||
|
],
|
||||||
|
"devDependencies": {
|
||||||
|
"@babel/cli": "7.18.10",
|
||||||
|
"@babel/core": "7.18.10",
|
||||||
|
"@babel/eslint-parser": "7.18.9",
|
||||||
|
"@babel/preset-env": "7.18.10",
|
||||||
|
"@commitlint/cli": "17.0.3",
|
||||||
|
"@commitlint/config-conventional": "17.0.3",
|
||||||
|
"bundlewatch": "0.3.3",
|
||||||
|
"eslint": "8.21.0",
|
||||||
|
"eslint-config-prettier": "8.5.0",
|
||||||
|
"eslint-config-standard": "17.0.0",
|
||||||
|
"eslint-plugin-import": "2.26.0",
|
||||||
|
"eslint-plugin-node": "11.1.0",
|
||||||
|
"eslint-plugin-prettier": "4.2.1",
|
||||||
|
"eslint-plugin-promise": "6.0.0",
|
||||||
|
"husky": "8.0.1",
|
||||||
|
"jest": "28.1.3",
|
||||||
|
"lint-staged": "13.0.3",
|
||||||
|
"npm-run-all": "4.1.5",
|
||||||
|
"optional-dev-dependency": "2.0.1",
|
||||||
|
"prettier": "2.7.1",
|
||||||
|
"random-seed": "0.3.0",
|
||||||
|
"runmd": "1.3.9",
|
||||||
|
"standard-version": "9.5.0"
|
||||||
|
},
|
||||||
|
"optionalDevDependencies": {
|
||||||
|
"@wdio/browserstack-service": "7.16.10",
|
||||||
|
"@wdio/cli": "7.16.10",
|
||||||
|
"@wdio/jasmine-framework": "7.16.6",
|
||||||
|
"@wdio/local-runner": "7.16.10",
|
||||||
|
"@wdio/spec-reporter": "7.16.9",
|
||||||
|
"@wdio/static-server-service": "7.16.6"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"examples:browser:webpack:build": "cd examples/browser-webpack && npm install && npm run build",
|
||||||
|
"examples:browser:rollup:build": "cd examples/browser-rollup && npm install && npm run build",
|
||||||
|
"examples:node:commonjs:test": "cd examples/node-commonjs && npm install && npm test",
|
||||||
|
"examples:node:esmodules:test": "cd examples/node-esmodules && npm install && npm test",
|
||||||
|
"examples:node:jest:test": "cd examples/node-jest && npm install && npm test",
|
||||||
|
"prepare": "cd $( git rev-parse --show-toplevel ) && husky install",
|
||||||
|
"lint": "npm run eslint:check && npm run prettier:check",
|
||||||
|
"eslint:check": "eslint src/ test/ examples/ *.js",
|
||||||
|
"eslint:fix": "eslint --fix src/ test/ examples/ *.js",
|
||||||
|
"pretest": "[ -n $CI ] || npm run build",
|
||||||
|
"test": "BABEL_ENV=commonjsNode node --throw-deprecation node_modules/.bin/jest test/unit/",
|
||||||
|
"pretest:browser": "optional-dev-dependency && npm run build && npm-run-all --parallel examples:browser:**",
|
||||||
|
"test:browser": "wdio run ./wdio.conf.js",
|
||||||
|
"pretest:node": "npm run build",
|
||||||
|
"test:node": "npm-run-all --parallel examples:node:**",
|
||||||
|
"test:pack": "./scripts/testpack.sh",
|
||||||
|
"pretest:benchmark": "npm run build",
|
||||||
|
"test:benchmark": "cd examples/benchmark && npm install && npm test",
|
||||||
|
"prettier:check": "prettier --check '**/*.{js,jsx,json,md}'",
|
||||||
|
"prettier:fix": "prettier --write '**/*.{js,jsx,json,md}'",
|
||||||
|
"bundlewatch": "npm run pretest:browser && bundlewatch --config bundlewatch.config.json",
|
||||||
|
"md": "runmd --watch --output=README.md README_js.md",
|
||||||
|
"docs": "( node --version | grep -q 'v18' ) && ( npm run build && npx runmd --output=README.md README_js.md )",
|
||||||
|
"docs:diff": "npm run docs && git diff --quiet README.md",
|
||||||
|
"build": "./scripts/build.sh",
|
||||||
|
"prepack": "npm run build",
|
||||||
|
"release": "standard-version --no-verify"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/uuidjs/uuid.git"
|
||||||
|
},
|
||||||
|
"lint-staged": {
|
||||||
|
"*.{js,jsx,json,md}": [
|
||||||
|
"prettier --write"
|
||||||
|
],
|
||||||
|
"*.{js,jsx}": [
|
||||||
|
"eslint --fix"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"standard-version": {
|
||||||
|
"scripts": {
|
||||||
|
"postchangelog": "prettier --write CHANGELOG.md"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
10
node_modules/uuid/wrapper.mjs
generated
vendored
Normal file
10
node_modules/uuid/wrapper.mjs
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import uuid from './dist/index.js';
|
||||||
|
export const v1 = uuid.v1;
|
||||||
|
export const v3 = uuid.v3;
|
||||||
|
export const v4 = uuid.v4;
|
||||||
|
export const v5 = uuid.v5;
|
||||||
|
export const NIL = uuid.NIL;
|
||||||
|
export const version = uuid.version;
|
||||||
|
export const validate = uuid.validate;
|
||||||
|
export const stringify = uuid.stringify;
|
||||||
|
export const parse = uuid.parse;
|
||||||
12
node_modules/webidl-conversions/LICENSE.md
generated
vendored
12
node_modules/webidl-conversions/LICENSE.md
generated
vendored
@@ -1,12 +0,0 @@
|
|||||||
# The BSD 2-Clause License
|
|
||||||
|
|
||||||
Copyright (c) 2014, Domenic Denicola
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
||||||
|
|
||||||
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
80
node_modules/webidl-conversions/README.md
generated
vendored
80
node_modules/webidl-conversions/README.md
generated
vendored
@@ -1,80 +0,0 @@
|
|||||||
# Web IDL Type Conversions on JavaScript Values
|
|
||||||
|
|
||||||
This package implements, in JavaScript, the algorithms to convert a given JavaScript value according to a given [Web IDL](http://heycam.github.io/webidl/) [type](http://heycam.github.io/webidl/#idl-types).
|
|
||||||
|
|
||||||
The goal is that you should be able to write code like
|
|
||||||
|
|
||||||
```js
|
|
||||||
"use strict";
|
|
||||||
const conversions = require("webidl-conversions");
|
|
||||||
|
|
||||||
function doStuff(x, y) {
|
|
||||||
x = conversions["boolean"](x);
|
|
||||||
y = conversions["unsigned long"](y);
|
|
||||||
// actual algorithm code here
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
and your function `doStuff` will behave the same as a Web IDL operation declared as
|
|
||||||
|
|
||||||
```webidl
|
|
||||||
void doStuff(boolean x, unsigned long y);
|
|
||||||
```
|
|
||||||
|
|
||||||
## API
|
|
||||||
|
|
||||||
This package's main module's default export is an object with a variety of methods, each corresponding to a different Web IDL type. Each method, when invoked on a JavaScript value, will give back the new JavaScript value that results after passing through the Web IDL conversion rules. (See below for more details on what that means.) Alternately, the method could throw an error, if the Web IDL algorithm is specified to do so: for example `conversions["float"](NaN)` [will throw a `TypeError`](http://heycam.github.io/webidl/#es-float).
|
|
||||||
|
|
||||||
Each method also accepts a second, optional, parameter for miscellaneous options. For conversion methods that throw errors, a string option `{ context }` may be provided to provide more information in the error message. (For example, `conversions["float"](NaN, { context: "Argument 1 of Interface's operation" })` will throw an error with message `"Argument 1 of Interface's operation is not a finite floating-point value."`) Specific conversions may also accept other options, the details of which can be found below.
|
|
||||||
|
|
||||||
## Conversions implemented
|
|
||||||
|
|
||||||
Conversions for all of the basic types from the Web IDL specification are implemented:
|
|
||||||
|
|
||||||
- [`any`](https://heycam.github.io/webidl/#es-any)
|
|
||||||
- [`void`](https://heycam.github.io/webidl/#es-void)
|
|
||||||
- [`boolean`](https://heycam.github.io/webidl/#es-boolean)
|
|
||||||
- [Integer types](https://heycam.github.io/webidl/#es-integer-types), which can additionally be provided the boolean options `{ clamp, enforceRange }` as a second parameter
|
|
||||||
- [`float`](https://heycam.github.io/webidl/#es-float), [`unrestricted float`](https://heycam.github.io/webidl/#es-unrestricted-float)
|
|
||||||
- [`double`](https://heycam.github.io/webidl/#es-double), [`unrestricted double`](https://heycam.github.io/webidl/#es-unrestricted-double)
|
|
||||||
- [`DOMString`](https://heycam.github.io/webidl/#es-DOMString), which can additionally be provided the boolean option `{ treatNullAsEmptyString }` as a second parameter
|
|
||||||
- [`ByteString`](https://heycam.github.io/webidl/#es-ByteString), [`USVString`](https://heycam.github.io/webidl/#es-USVString)
|
|
||||||
- [`object`](https://heycam.github.io/webidl/#es-object)
|
|
||||||
- [`Error`](https://heycam.github.io/webidl/#es-Error)
|
|
||||||
- [Buffer source types](https://heycam.github.io/webidl/#es-buffer-source-types)
|
|
||||||
|
|
||||||
Additionally, for convenience, the following derived type definitions are implemented:
|
|
||||||
|
|
||||||
- [`ArrayBufferView`](https://heycam.github.io/webidl/#ArrayBufferView)
|
|
||||||
- [`BufferSource`](https://heycam.github.io/webidl/#BufferSource)
|
|
||||||
- [`DOMTimeStamp`](https://heycam.github.io/webidl/#DOMTimeStamp)
|
|
||||||
- [`Function`](https://heycam.github.io/webidl/#Function)
|
|
||||||
- [`VoidFunction`](https://heycam.github.io/webidl/#VoidFunction) (although it will not censor the return type)
|
|
||||||
|
|
||||||
Derived types, such as nullable types, promise types, sequences, records, etc. are not handled by this library. You may wish to investigate the [webidl2js](https://github.com/jsdom/webidl2js) project.
|
|
||||||
|
|
||||||
### A note on the `long long` types
|
|
||||||
|
|
||||||
The `long long` and `unsigned long long` Web IDL types can hold values that cannot be stored in JavaScript numbers, so the conversion is imperfect. For example, converting the JavaScript number `18446744073709552000` to a Web IDL `long long` is supposed to produce the Web IDL value `-18446744073709551232`. Since we are representing our Web IDL values in JavaScript, we can't represent `-18446744073709551232`, so we instead the best we could do is `-18446744073709552000` as the output.
|
|
||||||
|
|
||||||
This library actually doesn't even get that far. Producing those results would require doing accurate modular arithmetic on 64-bit intermediate values, but JavaScript does not make this easy. We could pull in a big-integer library as a dependency, but in lieu of that, we for now have decided to just produce inaccurate results if you pass in numbers that are not strictly between `Number.MIN_SAFE_INTEGER` and `Number.MAX_SAFE_INTEGER`.
|
|
||||||
|
|
||||||
## Background
|
|
||||||
|
|
||||||
What's actually going on here, conceptually, is pretty weird. Let's try to explain.
|
|
||||||
|
|
||||||
Web IDL, as part of its madness-inducing design, has its own type system. When people write algorithms in web platform specs, they usually operate on Web IDL values, i.e. instances of Web IDL types. For example, if they were specifying the algorithm for our `doStuff` operation above, they would treat `x` as a Web IDL value of [Web IDL type `boolean`](http://heycam.github.io/webidl/#idl-boolean). Crucially, they would _not_ treat `x` as a JavaScript variable whose value is either the JavaScript `true` or `false`. They're instead working in a different type system altogether, with its own rules.
|
|
||||||
|
|
||||||
Separately from its type system, Web IDL defines a ["binding"](http://heycam.github.io/webidl/#ecmascript-binding) of the type system into JavaScript. This contains rules like: when you pass a JavaScript value to the JavaScript method that manifests a given Web IDL operation, how does that get converted into a Web IDL value? For example, a JavaScript `true` passed in the position of a Web IDL `boolean` argument becomes a Web IDL `true`. But, a JavaScript `true` passed in the position of a [Web IDL `unsigned long`](http://heycam.github.io/webidl/#idl-unsigned-long) becomes a Web IDL `1`. And so on.
|
|
||||||
|
|
||||||
Finally, we have the actual implementation code. This is usually C++, although these days [some smart people are using Rust](https://github.com/servo/servo). The implementation, of course, has its own type system. So when they implement the Web IDL algorithms, they don't actually use Web IDL values, since those aren't "real" outside of specs. Instead, implementations apply the Web IDL binding rules in such a way as to convert incoming JavaScript values into C++ values. For example, if code in the browser called `doStuff(true, true)`, then the implementation code would eventually receive a C++ `bool` containing `true` and a C++ `uint32_t` containing `1`.
|
|
||||||
|
|
||||||
The upside of all this is that implementations can abstract all the conversion logic away, letting Web IDL handle it, and focus on implementing the relevant methods in C++ with values of the correct type already provided. That is payoff of Web IDL, in a nutshell.
|
|
||||||
|
|
||||||
And getting to that payoff is the goal of _this_ project—but for JavaScript implementations, instead of C++ ones. That is, this library is designed to make it easier for JavaScript developers to write functions that behave like a given Web IDL operation. So conceptually, the conversion pipeline, which in its general form is JavaScript values ↦ Web IDL values ↦ implementation-language values, in this case becomes JavaScript values ↦ Web IDL values ↦ JavaScript values. And that intermediate step is where all the logic is performed: a JavaScript `true` becomes a Web IDL `1` in an unsigned long context, which then becomes a JavaScript `1`.
|
|
||||||
|
|
||||||
## Don't use this
|
|
||||||
|
|
||||||
Seriously, why would you ever use this? You really shouldn't. Web IDL is … strange, and you shouldn't be emulating its semantics. If you're looking for a generic argument-processing library, you should find one with better rules than those from Web IDL. In general, your JavaScript should not be trying to become more like Web IDL; if anything, we should fix Web IDL to make it more like JavaScript.
|
|
||||||
|
|
||||||
The _only_ people who should use this are those trying to create faithful implementations (or polyfills) of web platform interfaces defined in Web IDL. Its main consumer is the [jsdom](https://github.com/tmpvar/jsdom) project.
|
|
||||||
332
node_modules/webidl-conversions/lib/index.js
generated
vendored
332
node_modules/webidl-conversions/lib/index.js
generated
vendored
@@ -1,332 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
|
|
||||||
function _(message, opts) {
|
|
||||||
return `${opts && opts.context ? opts.context : "Value"} ${message}.`;
|
|
||||||
}
|
|
||||||
|
|
||||||
function type(V) {
|
|
||||||
if (V === null) {
|
|
||||||
return "Null";
|
|
||||||
}
|
|
||||||
switch (typeof V) {
|
|
||||||
case "undefined":
|
|
||||||
return "Undefined";
|
|
||||||
case "boolean":
|
|
||||||
return "Boolean";
|
|
||||||
case "number":
|
|
||||||
return "Number";
|
|
||||||
case "string":
|
|
||||||
return "String";
|
|
||||||
case "symbol":
|
|
||||||
return "Symbol";
|
|
||||||
case "object":
|
|
||||||
// Falls through
|
|
||||||
case "function":
|
|
||||||
// Falls through
|
|
||||||
default:
|
|
||||||
// Per ES spec, typeof returns an implemention-defined value that is not any of the existing ones for
|
|
||||||
// uncallable non-standard exotic objects. Yet Type() which the Web IDL spec depends on returns Object for
|
|
||||||
// such cases. So treat the default case as an object.
|
|
||||||
return "Object";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Round x to the nearest integer, choosing the even integer if it lies halfway between two.
|
|
||||||
function evenRound(x) {
|
|
||||||
// There are four cases for numbers with fractional part being .5:
|
|
||||||
//
|
|
||||||
// case | x | floor(x) | round(x) | expected | x <> 0 | x % 1 | x & 1 | example
|
|
||||||
// 1 | 2n + 0.5 | 2n | 2n + 1 | 2n | > | 0.5 | 0 | 0.5 -> 0
|
|
||||||
// 2 | 2n + 1.5 | 2n + 1 | 2n + 2 | 2n + 2 | > | 0.5 | 1 | 1.5 -> 2
|
|
||||||
// 3 | -2n - 0.5 | -2n - 1 | -2n | -2n | < | -0.5 | 0 | -0.5 -> 0
|
|
||||||
// 4 | -2n - 1.5 | -2n - 2 | -2n - 1 | -2n - 2 | < | -0.5 | 1 | -1.5 -> -2
|
|
||||||
// (where n is a non-negative integer)
|
|
||||||
//
|
|
||||||
// Branch here for cases 1 and 4
|
|
||||||
if ((x > 0 && (x % 1) === +0.5 && (x & 1) === 0) ||
|
|
||||||
(x < 0 && (x % 1) === -0.5 && (x & 1) === 1)) {
|
|
||||||
return censorNegativeZero(Math.floor(x));
|
|
||||||
}
|
|
||||||
|
|
||||||
return censorNegativeZero(Math.round(x));
|
|
||||||
}
|
|
||||||
|
|
||||||
function integerPart(n) {
|
|
||||||
return censorNegativeZero(Math.trunc(n));
|
|
||||||
}
|
|
||||||
|
|
||||||
function sign(x) {
|
|
||||||
return x < 0 ? -1 : 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
function modulo(x, y) {
|
|
||||||
// https://tc39.github.io/ecma262/#eqn-modulo
|
|
||||||
// Note that http://stackoverflow.com/a/4467559/3191 does NOT work for large modulos
|
|
||||||
const signMightNotMatch = x % y;
|
|
||||||
if (sign(y) !== sign(signMightNotMatch)) {
|
|
||||||
return signMightNotMatch + y;
|
|
||||||
}
|
|
||||||
return signMightNotMatch;
|
|
||||||
}
|
|
||||||
|
|
||||||
function censorNegativeZero(x) {
|
|
||||||
return x === 0 ? 0 : x;
|
|
||||||
}
|
|
||||||
|
|
||||||
function createIntegerConversion(bitLength, typeOpts) {
|
|
||||||
const isSigned = !typeOpts.unsigned;
|
|
||||||
|
|
||||||
let lowerBound;
|
|
||||||
let upperBound;
|
|
||||||
if (bitLength === 64) {
|
|
||||||
upperBound = Math.pow(2, 53) - 1;
|
|
||||||
lowerBound = !isSigned ? 0 : -Math.pow(2, 53) + 1;
|
|
||||||
} else if (!isSigned) {
|
|
||||||
lowerBound = 0;
|
|
||||||
upperBound = Math.pow(2, bitLength) - 1;
|
|
||||||
} else {
|
|
||||||
lowerBound = -Math.pow(2, bitLength - 1);
|
|
||||||
upperBound = Math.pow(2, bitLength - 1) - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
const twoToTheBitLength = Math.pow(2, bitLength);
|
|
||||||
const twoToOneLessThanTheBitLength = Math.pow(2, bitLength - 1);
|
|
||||||
|
|
||||||
return (V, opts) => {
|
|
||||||
if (opts === undefined) {
|
|
||||||
opts = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
let x = +V;
|
|
||||||
x = censorNegativeZero(x); // Spec discussion ongoing: https://github.com/heycam/webidl/issues/306
|
|
||||||
|
|
||||||
if (opts.enforceRange) {
|
|
||||||
if (!Number.isFinite(x)) {
|
|
||||||
throw new TypeError(_("is not a finite number", opts));
|
|
||||||
}
|
|
||||||
|
|
||||||
x = integerPart(x);
|
|
||||||
|
|
||||||
if (x < lowerBound || x > upperBound) {
|
|
||||||
throw new TypeError(_(
|
|
||||||
`is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive`, opts));
|
|
||||||
}
|
|
||||||
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Number.isNaN(x) && opts.clamp) {
|
|
||||||
x = Math.min(Math.max(x, lowerBound), upperBound);
|
|
||||||
x = evenRound(x);
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Number.isFinite(x) || x === 0) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
x = integerPart(x);
|
|
||||||
|
|
||||||
// Math.pow(2, 64) is not accurately representable in JavaScript, so try to avoid these per-spec operations if
|
|
||||||
// possible. Hopefully it's an optimization for the non-64-bitLength cases too.
|
|
||||||
if (x >= lowerBound && x <= upperBound) {
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
|
|
||||||
// These will not work great for bitLength of 64, but oh well. See the README for more details.
|
|
||||||
x = modulo(x, twoToTheBitLength);
|
|
||||||
if (isSigned && x >= twoToOneLessThanTheBitLength) {
|
|
||||||
return x - twoToTheBitLength;
|
|
||||||
}
|
|
||||||
return x;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
exports.any = V => {
|
|
||||||
return V;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.void = function () {
|
|
||||||
return undefined;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.boolean = function (val) {
|
|
||||||
return !!val;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.byte = createIntegerConversion(8, { unsigned: false });
|
|
||||||
exports.octet = createIntegerConversion(8, { unsigned: true });
|
|
||||||
|
|
||||||
exports.short = createIntegerConversion(16, { unsigned: false });
|
|
||||||
exports["unsigned short"] = createIntegerConversion(16, { unsigned: true });
|
|
||||||
|
|
||||||
exports.long = createIntegerConversion(32, { unsigned: false });
|
|
||||||
exports["unsigned long"] = createIntegerConversion(32, { unsigned: true });
|
|
||||||
|
|
||||||
exports["long long"] = createIntegerConversion(64, { unsigned: false });
|
|
||||||
exports["unsigned long long"] = createIntegerConversion(64, { unsigned: true });
|
|
||||||
|
|
||||||
exports.double = (V, opts) => {
|
|
||||||
const x = +V;
|
|
||||||
|
|
||||||
if (!Number.isFinite(x)) {
|
|
||||||
throw new TypeError(_("is not a finite floating-point value", opts));
|
|
||||||
}
|
|
||||||
|
|
||||||
return x;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports["unrestricted double"] = V => {
|
|
||||||
const x = +V;
|
|
||||||
|
|
||||||
return x;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.float = (V, opts) => {
|
|
||||||
const x = +V;
|
|
||||||
|
|
||||||
if (!Number.isFinite(x)) {
|
|
||||||
throw new TypeError(_("is not a finite floating-point value", opts));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Object.is(x, -0)) {
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
|
|
||||||
const y = Math.fround(x);
|
|
||||||
|
|
||||||
if (!Number.isFinite(y)) {
|
|
||||||
throw new TypeError(_("is outside the range of a single-precision floating-point value", opts));
|
|
||||||
}
|
|
||||||
|
|
||||||
return y;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports["unrestricted float"] = V => {
|
|
||||||
const x = +V;
|
|
||||||
|
|
||||||
if (isNaN(x)) {
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Object.is(x, -0)) {
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Math.fround(x);
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.DOMString = function (V, opts) {
|
|
||||||
if (opts === undefined) {
|
|
||||||
opts = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
if (opts.treatNullAsEmptyString && V === null) {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof V === "symbol") {
|
|
||||||
throw new TypeError(_("is a symbol, which cannot be converted to a string", opts));
|
|
||||||
}
|
|
||||||
|
|
||||||
return String(V);
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.ByteString = (V, opts) => {
|
|
||||||
const x = exports.DOMString(V, opts);
|
|
||||||
let c;
|
|
||||||
for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {
|
|
||||||
if (c > 255) {
|
|
||||||
throw new TypeError(_("is not a valid ByteString", opts));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return x;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.USVString = (V, opts) => {
|
|
||||||
const S = exports.DOMString(V, opts);
|
|
||||||
const n = S.length;
|
|
||||||
const U = [];
|
|
||||||
for (let i = 0; i < n; ++i) {
|
|
||||||
const c = S.charCodeAt(i);
|
|
||||||
if (c < 0xD800 || c > 0xDFFF) {
|
|
||||||
U.push(String.fromCodePoint(c));
|
|
||||||
} else if (0xDC00 <= c && c <= 0xDFFF) {
|
|
||||||
U.push(String.fromCodePoint(0xFFFD));
|
|
||||||
} else if (i === n - 1) {
|
|
||||||
U.push(String.fromCodePoint(0xFFFD));
|
|
||||||
} else {
|
|
||||||
const d = S.charCodeAt(i + 1);
|
|
||||||
if (0xDC00 <= d && d <= 0xDFFF) {
|
|
||||||
const a = c & 0x3FF;
|
|
||||||
const b = d & 0x3FF;
|
|
||||||
U.push(String.fromCodePoint((2 << 15) + ((2 << 9) * a) + b));
|
|
||||||
++i;
|
|
||||||
} else {
|
|
||||||
U.push(String.fromCodePoint(0xFFFD));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return U.join("");
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.object = (V, opts) => {
|
|
||||||
if (type(V) !== "Object") {
|
|
||||||
throw new TypeError(_("is not an object", opts));
|
|
||||||
}
|
|
||||||
|
|
||||||
return V;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Not exported, but used in Function and VoidFunction.
|
|
||||||
|
|
||||||
// Neither Function nor VoidFunction is defined with [TreatNonObjectAsNull], so
|
|
||||||
// handling for that is omitted.
|
|
||||||
function convertCallbackFunction(V, opts) {
|
|
||||||
if (typeof V !== "function") {
|
|
||||||
throw new TypeError(_("is not a function", opts));
|
|
||||||
}
|
|
||||||
return V;
|
|
||||||
}
|
|
||||||
|
|
||||||
[
|
|
||||||
Error,
|
|
||||||
ArrayBuffer, // The IsDetachedBuffer abstract operation is not exposed in JS
|
|
||||||
DataView, Int8Array, Int16Array, Int32Array, Uint8Array,
|
|
||||||
Uint16Array, Uint32Array, Uint8ClampedArray, Float32Array, Float64Array
|
|
||||||
].forEach(func => {
|
|
||||||
const name = func.name;
|
|
||||||
const article = /^[AEIOU]/.test(name) ? "an" : "a";
|
|
||||||
exports[name] = (V, opts) => {
|
|
||||||
if (!(V instanceof func)) {
|
|
||||||
throw new TypeError(_(`is not ${article} ${name} object`, opts));
|
|
||||||
}
|
|
||||||
|
|
||||||
return V;
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
// Common definitions
|
|
||||||
|
|
||||||
exports.ArrayBufferView = (V, opts) => {
|
|
||||||
if (!ArrayBuffer.isView(V)) {
|
|
||||||
throw new TypeError(_("is not a view on an ArrayBuffer object", opts));
|
|
||||||
}
|
|
||||||
|
|
||||||
return V;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.BufferSource = (V, opts) => {
|
|
||||||
if (!(ArrayBuffer.isView(V) || V instanceof ArrayBuffer)) {
|
|
||||||
throw new TypeError(_("is not an ArrayBuffer object or a view on one", opts));
|
|
||||||
}
|
|
||||||
|
|
||||||
return V;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.DOMTimeStamp = exports["unsigned long long"];
|
|
||||||
|
|
||||||
exports.Function = convertCallbackFunction;
|
|
||||||
|
|
||||||
exports.VoidFunction = convertCallbackFunction;
|
|
||||||
27
node_modules/webidl-conversions/package.json
generated
vendored
27
node_modules/webidl-conversions/package.json
generated
vendored
@@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "webidl-conversions",
|
|
||||||
"version": "4.0.2",
|
|
||||||
"description": "Implements the WebIDL algorithms for converting to and from JavaScript values",
|
|
||||||
"main": "lib/index.js",
|
|
||||||
"scripts": {
|
|
||||||
"lint": "eslint .",
|
|
||||||
"test": "mocha test/*.js",
|
|
||||||
"coverage": "nyc mocha test/*.js"
|
|
||||||
},
|
|
||||||
"repository": "jsdom/webidl-conversions",
|
|
||||||
"keywords": [
|
|
||||||
"webidl",
|
|
||||||
"web",
|
|
||||||
"types"
|
|
||||||
],
|
|
||||||
"files": [
|
|
||||||
"lib/"
|
|
||||||
],
|
|
||||||
"author": "Domenic Denicola <d@domenic.me> (https://domenic.me/)",
|
|
||||||
"license": "BSD-2-Clause",
|
|
||||||
"devDependencies": {
|
|
||||||
"eslint": "^3.15.0",
|
|
||||||
"mocha": "^1.21.4",
|
|
||||||
"nyc": "^10.1.2"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
30
node_modules/wrtc/LICENSE.md
generated
vendored
30
node_modules/wrtc/LICENSE.md
generated
vendored
@@ -1,30 +0,0 @@
|
|||||||
The following license applies to all parts of this software except as documented
|
|
||||||
below.
|
|
||||||
|
|
||||||
```
|
|
||||||
Copyright (c) 2019 The node-webrtc project authors. All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
list of conditions and the following disclaimer.
|
|
||||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
||||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
||||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
||||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
|
||||||
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
||||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
```
|
|
||||||
|
|
||||||
Binary distributions of this software include WebRTC and other third-party
|
|
||||||
libraries. These libraries and licenses are documented in
|
|
||||||
THIRD_PARTY_LICENSES.md.
|
|
||||||
120
node_modules/wrtc/README.md
generated
vendored
120
node_modules/wrtc/README.md
generated
vendored
@@ -1,120 +0,0 @@
|
|||||||
<h1 align="center">
|
|
||||||
<img height="120px" src="https://upload.wikimedia.org/wikipedia/commons/d/d9/Node.js_logo.svg" />
|
|
||||||
<img height="120px" src="https://webrtc.github.io/webrtc-org/assets/images/webrtc-logo-vert-retro-dist.svg" />
|
|
||||||
</h1>
|
|
||||||
|
|
||||||
[](https://www.npmjs.com/package/wrtc) [](https://circleci.com/gh/node-webrtc/node-webrtc) [](https://ci.appveyor.com/project/markandrus/node-webrtc-7bnua)
|
|
||||||
|
|
||||||
node-webrtc is a Node.js Native Addon that provides bindings to [WebRTC M81](https://chromium.googlesource.com/external/webrtc/+/branch-heads/4044). This project aims for spec-compliance and is tested using the W3C's [web-platform-tests](https://github.com/web-platform-tests/wpt) project. A number of [nonstandard APIs](https://github.com/node-webrtc/node-webrtc/blob/v0.4.7/docs/nonstandard-apis.md) for testing are also included.
|
|
||||||
|
|
||||||
Install
|
|
||||||
-------
|
|
||||||
|
|
||||||
```
|
|
||||||
npm install wrtc
|
|
||||||
```
|
|
||||||
|
|
||||||
Installing from NPM downloads a prebuilt binary for your operating system × architecture. Set the `TARGET_ARCH` environment variable to "arm" or "arm64" to download for armv7l or arm64, respectively. Linux and macOS users can also set the `DEBUG` environment variable to download debug builds.
|
|
||||||
|
|
||||||
You can also [build from source](https://github.com/node-webrtc/node-webrtc/blob/v0.4.7/docs/build-from-source.md).
|
|
||||||
|
|
||||||
Supported Platforms
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
The following platforms are confirmed to work with node-webrtc and have prebuilt binaries available. Since node-webrtc targets [N-API version 3](https://nodejs.org/api/n-api.html), there may be additional platforms supported that are not listed here. If your platform is not supported, you may still be able to [build from source](https://github.com/node-webrtc/node-webrtc/blob/v0.4.7/docs/build-from-source.md).
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<td colspan="2" rowspan="2"></td>
|
|
||||||
<th colspan="3">Linux</th>
|
|
||||||
<th>macOS</th>
|
|
||||||
<th>Windows</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>armv7l</th>
|
|
||||||
<th>arm64</th>
|
|
||||||
<th>x64</th>
|
|
||||||
<th>x64</th>
|
|
||||||
<th>x64</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<th rowspan="6">Node</th>
|
|
||||||
<th>8</th>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>10</th>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>11</th>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>12</th>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>13</th>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>14</th>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th rowspan="2">Electron</th>
|
|
||||||
<th>4</th>
|
|
||||||
<td align="center"></td>
|
|
||||||
<td align="center"></td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>5</th>
|
|
||||||
<td align="center"></td>
|
|
||||||
<td align="center"></td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
<td align="center">✓</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
Examples
|
|
||||||
--------
|
|
||||||
|
|
||||||
See [node-webrtc/node-webrtc-examples](https://github.com/node-webrtc/node-webrtc-examples).
|
|
||||||
|
|
||||||
Contributing
|
|
||||||
------------
|
|
||||||
|
|
||||||
Contributions welcome! Please refer to the [wiki](https://github.com/node-webrtc/node-webrtc/wiki/Contributing).
|
|
||||||
1314
node_modules/wrtc/THIRD_PARTY_LICENSES.md
generated
vendored
1314
node_modules/wrtc/THIRD_PARTY_LICENSES.md
generated
vendored
File diff suppressed because it is too large
Load Diff
BIN
node_modules/wrtc/build/Release/wrtc.node
generated
vendored
BIN
node_modules/wrtc/build/Release/wrtc.node
generated
vendored
Binary file not shown.
7
node_modules/wrtc/lib/binding.js
generated
vendored
7
node_modules/wrtc/lib/binding.js
generated
vendored
@@ -1,7 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
try {
|
|
||||||
module.exports = require('../build/Debug/wrtc.node');
|
|
||||||
} catch (error) {
|
|
||||||
module.exports = require('../build/Release/wrtc.node');
|
|
||||||
}
|
|
||||||
18
node_modules/wrtc/lib/browser.js
generated
vendored
18
node_modules/wrtc/lib/browser.js
generated
vendored
@@ -1,18 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
exports.MediaStream = window.MediaStream;
|
|
||||||
exports.MediaStreamTrack = window.MediaStreamTrack;
|
|
||||||
exports.RTCDataChannel = window.RTCDataChannel;
|
|
||||||
exports.RTCDataChannelEvent = window.RTCDataChannelEvent;
|
|
||||||
exports.RTCDtlsTransport = window.RTCDtlsTransport;
|
|
||||||
exports.RTCIceCandidate = window.RTCIceCandidate;
|
|
||||||
exports.RTCIceTransport = window.RTCIceTransport;
|
|
||||||
exports.RTCPeerConnection = window.RTCPeerConnection;
|
|
||||||
exports.RTCPeerConnectionIceEvent = window.RTCPeerConnectionIceEvent;
|
|
||||||
exports.RTCRtpReceiver = window.RTCRtpReceiver;
|
|
||||||
exports.RTCRtpSender = window.RTCRtpSender;
|
|
||||||
exports.RTCRtpTransceiver = window.RTCRtpTransceiver;
|
|
||||||
exports.RTCSctpTransport = window.RTCSctpTransport;
|
|
||||||
exports.RTCSessionDescription = window.RTCSessionDescription;
|
|
||||||
exports.getUserMedia = window.getUserMedia;
|
|
||||||
exports.mediaDevices = navigator.mediaDevices;
|
|
||||||
22
node_modules/wrtc/lib/datachannelevent.js
generated
vendored
22
node_modules/wrtc/lib/datachannelevent.js
generated
vendored
@@ -1,22 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
function RTCDataChannelEvent(type, eventInitDict) {
|
|
||||||
Object.defineProperties(this, {
|
|
||||||
bubbles: {
|
|
||||||
value: false
|
|
||||||
},
|
|
||||||
cancelable: {
|
|
||||||
value: false
|
|
||||||
},
|
|
||||||
type: {
|
|
||||||
value: type,
|
|
||||||
enumerable: true
|
|
||||||
},
|
|
||||||
channel: {
|
|
||||||
value: eventInitDict.channel,
|
|
||||||
enumerable: true
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = RTCDataChannelEvent;
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user