@nocobase/plugin-notification-manager 2.1.0-alpha.4 → 2.1.0-alpha.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +99 -1
- package/dist/client/507.ef831b6db81405ab.js +10 -0
- package/dist/client/89.e5d970c24d7a4d5a.js +10 -0
- package/dist/client/index.js +1 -1
- package/dist/externalVersion.js +8 -7
- package/dist/node_modules/uuid/dist/bin/uuid +2 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/index.js +104 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/max.js +7 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/md5.js +200 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/native.js +10 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/nil.js +7 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/parse.js +44 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/regex.js +7 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/rng.js +23 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/sha1.js +82 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/stringify.js +38 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/v1.js +131 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/v1ToV6.js +26 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/v3.js +11 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/v35.js +63 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/v4.js +32 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/v5.js +11 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/v6.js +42 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/v6ToV1.js +26 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/v7.js +152 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/validate.js +12 -0
- package/dist/node_modules/uuid/dist/commonjs-browser/version.js +15 -0
- package/dist/node_modules/uuid/dist/esm-browser/index.js +14 -0
- package/dist/node_modules/uuid/dist/esm-browser/max.js +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/md5.js +194 -0
- package/dist/node_modules/uuid/dist/esm-browser/native.js +4 -0
- package/dist/node_modules/uuid/dist/esm-browser/nil.js +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/parse.js +37 -0
- package/dist/node_modules/uuid/dist/esm-browser/regex.js +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/rng.js +17 -0
- package/dist/node_modules/uuid/dist/esm-browser/sha1.js +76 -0
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js +31 -0
- package/dist/node_modules/uuid/dist/esm-browser/v1.js +125 -0
- package/dist/node_modules/uuid/dist/esm-browser/v1ToV6.js +20 -0
- package/dist/node_modules/uuid/dist/esm-browser/v3.js +4 -0
- package/dist/node_modules/uuid/dist/esm-browser/v35.js +55 -0
- package/dist/node_modules/uuid/dist/esm-browser/v4.js +25 -0
- package/dist/node_modules/uuid/dist/esm-browser/v5.js +4 -0
- package/dist/node_modules/uuid/dist/esm-browser/v6.js +36 -0
- package/dist/node_modules/uuid/dist/esm-browser/v6ToV1.js +20 -0
- package/dist/node_modules/uuid/dist/esm-browser/v7.js +146 -0
- package/dist/node_modules/uuid/dist/esm-browser/validate.js +5 -0
- package/dist/node_modules/uuid/dist/esm-browser/version.js +8 -0
- package/dist/node_modules/uuid/dist/esm-node/index.js +14 -0
- package/dist/node_modules/uuid/dist/esm-node/max.js +1 -0
- package/dist/node_modules/uuid/dist/esm-node/md5.js +10 -0
- package/dist/node_modules/uuid/dist/esm-node/native.js +4 -0
- package/dist/node_modules/uuid/dist/esm-node/nil.js +1 -0
- package/dist/node_modules/uuid/dist/esm-node/parse.js +37 -0
- package/dist/node_modules/uuid/dist/esm-node/regex.js +1 -0
- package/dist/node_modules/uuid/dist/esm-node/rng.js +10 -0
- package/dist/node_modules/uuid/dist/esm-node/sha1.js +10 -0
- package/dist/node_modules/uuid/dist/esm-node/stringify.js +31 -0
- package/dist/node_modules/uuid/dist/esm-node/v1.js +125 -0
- package/dist/node_modules/uuid/dist/esm-node/v1ToV6.js +20 -0
- package/dist/node_modules/uuid/dist/esm-node/v3.js +4 -0
- package/dist/node_modules/uuid/dist/esm-node/v35.js +55 -0
- package/dist/node_modules/uuid/dist/esm-node/v4.js +25 -0
- package/dist/node_modules/uuid/dist/esm-node/v5.js +4 -0
- package/dist/node_modules/uuid/dist/esm-node/v6.js +32 -0
- package/dist/node_modules/uuid/dist/esm-node/v6ToV1.js +20 -0
- package/dist/node_modules/uuid/dist/esm-node/v7.js +146 -0
- package/dist/node_modules/uuid/dist/esm-node/validate.js +5 -0
- package/dist/node_modules/uuid/dist/esm-node/version.js +8 -0
- package/dist/node_modules/uuid/dist/index.js +1 -0
- package/dist/node_modules/uuid/dist/max.js +7 -0
- package/dist/node_modules/uuid/dist/md5-browser.js +200 -0
- package/dist/node_modules/uuid/dist/md5.js +17 -0
- package/dist/node_modules/uuid/dist/native-browser.js +10 -0
- package/dist/node_modules/uuid/dist/native.js +11 -0
- package/dist/node_modules/uuid/dist/nil.js +7 -0
- package/dist/node_modules/uuid/dist/parse.js +44 -0
- package/dist/node_modules/uuid/dist/regex.js +7 -0
- package/dist/node_modules/uuid/dist/rng-browser.js +23 -0
- package/dist/node_modules/uuid/dist/rng.js +17 -0
- package/dist/node_modules/uuid/dist/sha1-browser.js +82 -0
- package/dist/node_modules/uuid/dist/sha1.js +17 -0
- package/dist/node_modules/uuid/dist/stringify.js +38 -0
- package/dist/node_modules/uuid/dist/uuid-bin.js +75 -0
- package/dist/node_modules/uuid/dist/v1.js +131 -0
- package/dist/node_modules/uuid/dist/v1ToV6.js +26 -0
- package/dist/node_modules/uuid/dist/v3.js +11 -0
- package/dist/node_modules/uuid/dist/v35.js +63 -0
- package/dist/node_modules/uuid/dist/v4.js +32 -0
- package/dist/node_modules/uuid/dist/v5.js +11 -0
- package/dist/node_modules/uuid/dist/v6.js +38 -0
- package/dist/node_modules/uuid/dist/v6ToV1.js +26 -0
- package/dist/node_modules/uuid/dist/v7.js +152 -0
- package/dist/node_modules/uuid/dist/validate.js +12 -0
- package/dist/node_modules/uuid/dist/version.js +15 -0
- package/dist/node_modules/uuid/package.json +1 -0
- package/dist/server/base-notification-channel.d.ts +3 -1
- package/dist/server/manager.d.ts +52 -5
- package/dist/server/manager.js +168 -17
- package/dist/server/plugin.d.ts +49 -2
- package/dist/server/plugin.js +65 -2
- package/dist/server/types.d.ts +7 -3
- package/package.json +3 -2
- package/LICENSE.txt +0 -172
- package/dist/client/035b24990a46d186.js +0 -10
- package/dist/client/b1941306dc0db9f3.js +0 -10
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _v = _interopRequireDefault(require("./v35.js"));
|
|
8
|
+
var _md = _interopRequireDefault(require("./md5.js"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
var v3 = (0, _v.default)('v3', 0x30, _md.default);
|
|
11
|
+
var _default = exports.default = v3;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.URL = exports.DNS = void 0;
|
|
7
|
+
exports.default = v35;
|
|
8
|
+
var _stringify = require("./stringify.js");
|
|
9
|
+
var _parse = _interopRequireDefault(require("./parse.js"));
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
function stringToBytes(str) {
|
|
12
|
+
str = unescape(encodeURIComponent(str)); // UTF8 escape
|
|
13
|
+
|
|
14
|
+
var bytes = [];
|
|
15
|
+
for (var i = 0; i < str.length; ++i) {
|
|
16
|
+
bytes.push(str.charCodeAt(i));
|
|
17
|
+
}
|
|
18
|
+
return bytes;
|
|
19
|
+
}
|
|
20
|
+
var DNS = exports.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
|
|
21
|
+
var URL = exports.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
|
|
22
|
+
function v35(name, version, hashfunc) {
|
|
23
|
+
function generateUUID(value, namespace, buf, offset) {
|
|
24
|
+
var _namespace;
|
|
25
|
+
if (typeof value === 'string') {
|
|
26
|
+
value = stringToBytes(value);
|
|
27
|
+
}
|
|
28
|
+
if (typeof namespace === 'string') {
|
|
29
|
+
namespace = (0, _parse.default)(namespace);
|
|
30
|
+
}
|
|
31
|
+
if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {
|
|
32
|
+
throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Compute hash of namespace and value, Per 4.3
|
|
36
|
+
// Future: Use spread syntax when supported on all platforms, e.g. `bytes =
|
|
37
|
+
// hashfunc([...namespace, ... value])`
|
|
38
|
+
var bytes = new Uint8Array(16 + value.length);
|
|
39
|
+
bytes.set(namespace);
|
|
40
|
+
bytes.set(value, namespace.length);
|
|
41
|
+
bytes = hashfunc(bytes);
|
|
42
|
+
bytes[6] = bytes[6] & 0x0f | version;
|
|
43
|
+
bytes[8] = bytes[8] & 0x3f | 0x80;
|
|
44
|
+
if (buf) {
|
|
45
|
+
offset = offset || 0;
|
|
46
|
+
for (var i = 0; i < 16; ++i) {
|
|
47
|
+
buf[offset + i] = bytes[i];
|
|
48
|
+
}
|
|
49
|
+
return buf;
|
|
50
|
+
}
|
|
51
|
+
return (0, _stringify.unsafeStringify)(bytes);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Function#name is not settable on some platforms (#270)
|
|
55
|
+
try {
|
|
56
|
+
generateUUID.name = name;
|
|
57
|
+
} catch (err) {}
|
|
58
|
+
|
|
59
|
+
// For CommonJS default export support
|
|
60
|
+
generateUUID.DNS = DNS;
|
|
61
|
+
generateUUID.URL = URL;
|
|
62
|
+
return generateUUID;
|
|
63
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _native = _interopRequireDefault(require("./native.js"));
|
|
8
|
+
var _rng = _interopRequireDefault(require("./rng.js"));
|
|
9
|
+
var _stringify = require("./stringify.js");
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
function v4(options, buf, offset) {
|
|
12
|
+
if (_native.default.randomUUID && !buf && !options) {
|
|
13
|
+
return _native.default.randomUUID();
|
|
14
|
+
}
|
|
15
|
+
options = options || {};
|
|
16
|
+
var rnds = options.random || (options.rng || _rng.default)();
|
|
17
|
+
|
|
18
|
+
// Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
|
|
19
|
+
rnds[6] = rnds[6] & 0x0f | 0x40;
|
|
20
|
+
rnds[8] = rnds[8] & 0x3f | 0x80;
|
|
21
|
+
|
|
22
|
+
// Copy bytes to buffer, if provided
|
|
23
|
+
if (buf) {
|
|
24
|
+
offset = offset || 0;
|
|
25
|
+
for (var i = 0; i < 16; ++i) {
|
|
26
|
+
buf[offset + i] = rnds[i];
|
|
27
|
+
}
|
|
28
|
+
return buf;
|
|
29
|
+
}
|
|
30
|
+
return (0, _stringify.unsafeStringify)(rnds);
|
|
31
|
+
}
|
|
32
|
+
var _default = exports.default = v4;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _v = _interopRequireDefault(require("./v35.js"));
|
|
8
|
+
var _sha = _interopRequireDefault(require("./sha1.js"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
var v5 = (0, _v.default)('v5', 0x50, _sha.default);
|
|
11
|
+
var _default = exports.default = v5;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = v6;
|
|
7
|
+
var _stringify = require("./stringify.js");
|
|
8
|
+
var _v = _interopRequireDefault(require("./v1.js"));
|
|
9
|
+
var _v1ToV = _interopRequireDefault(require("./v1ToV6.js"));
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
14
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
15
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @param {object} options
|
|
19
|
+
* @param {Uint8Array=} buf
|
|
20
|
+
* @param {number=} offset
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
function v6(options = {}, buf, offset = 0) {
|
|
24
|
+
// v6 is v1 with different field layout, so we start with a v1 UUID, albeit
|
|
25
|
+
// with slightly different behavior around how the clock_seq and node fields
|
|
26
|
+
// are randomized, which is why we call v1 with _v6: true.
|
|
27
|
+
var bytes = (0, _v.default)(_objectSpread(_objectSpread({}, options), {}, {
|
|
28
|
+
_v6: true
|
|
29
|
+
}), new Uint8Array(16));
|
|
30
|
+
|
|
31
|
+
// Reorder the fields to v6 layout.
|
|
32
|
+
bytes = (0, _v1ToV.default)(bytes);
|
|
33
|
+
|
|
34
|
+
// Return as a byte array if requested
|
|
35
|
+
if (buf) {
|
|
36
|
+
for (var i = 0; i < 16; i++) {
|
|
37
|
+
buf[offset + i] = bytes[i];
|
|
38
|
+
}
|
|
39
|
+
return buf;
|
|
40
|
+
}
|
|
41
|
+
return (0, _stringify.unsafeStringify)(bytes);
|
|
42
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = v6ToV1;
|
|
7
|
+
var _parse = _interopRequireDefault(require("./parse.js"));
|
|
8
|
+
var _stringify = require("./stringify.js");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
/**
|
|
11
|
+
* Convert a v6 UUID to a v1 UUID
|
|
12
|
+
*
|
|
13
|
+
* @param {string|Uint8Array} uuid - The v6 UUID to convert to v6
|
|
14
|
+
* @returns {string|Uint8Array} The v1 UUID as the same type as the `uuid` arg
|
|
15
|
+
* (string or Uint8Array)
|
|
16
|
+
*/
|
|
17
|
+
function v6ToV1(uuid) {
|
|
18
|
+
var v6Bytes = typeof uuid === 'string' ? (0, _parse.default)(uuid) : uuid;
|
|
19
|
+
var v1Bytes = _v6ToV1(v6Bytes);
|
|
20
|
+
return typeof uuid === 'string' ? (0, _stringify.unsafeStringify)(v1Bytes) : v1Bytes;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Do the field transformation needed for v6 -> v1
|
|
24
|
+
function _v6ToV1(v6Bytes) {
|
|
25
|
+
return Uint8Array.of((v6Bytes[3] & 0x0f) << 4 | v6Bytes[4] >> 4 & 0x0f, (v6Bytes[4] & 0x0f) << 4 | (v6Bytes[5] & 0xf0) >> 4, (v6Bytes[5] & 0x0f) << 4 | v6Bytes[6] & 0x0f, v6Bytes[7], (v6Bytes[1] & 0x0f) << 4 | (v6Bytes[2] & 0xf0) >> 4, (v6Bytes[2] & 0x0f) << 4 | (v6Bytes[3] & 0xf0) >> 4, 0x10 | (v6Bytes[0] & 0xf0) >> 4, (v6Bytes[0] & 0x0f) << 4 | (v6Bytes[1] & 0xf0) >> 4, v6Bytes[8], v6Bytes[9], v6Bytes[10], v6Bytes[11], v6Bytes[12], v6Bytes[13], v6Bytes[14], v6Bytes[15]);
|
|
26
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _rng = _interopRequireDefault(require("./rng.js"));
|
|
8
|
+
var _stringify = require("./stringify.js");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
/**
|
|
11
|
+
* UUID V7 - Unix Epoch time-based UUID
|
|
12
|
+
*
|
|
13
|
+
* The IETF has published RFC9562, introducing 3 new UUID versions (6,7,8). This
|
|
14
|
+
* implementation of V7 is based on the accepted, though not yet approved,
|
|
15
|
+
* revisions.
|
|
16
|
+
*
|
|
17
|
+
* RFC 9562:https://www.rfc-editor.org/rfc/rfc9562.html Universally Unique
|
|
18
|
+
* IDentifiers (UUIDs)
|
|
19
|
+
|
|
20
|
+
*
|
|
21
|
+
* Sample V7 value:
|
|
22
|
+
* https://www.rfc-editor.org/rfc/rfc9562.html#name-example-of-a-uuidv7-value
|
|
23
|
+
*
|
|
24
|
+
* Monotonic Bit Layout: RFC rfc9562.6.2 Method 1, Dedicated Counter Bits ref:
|
|
25
|
+
* https://www.rfc-editor.org/rfc/rfc9562.html#section-6.2-5.1
|
|
26
|
+
*
|
|
27
|
+
* 0 1 2 3 0 1 2 3 4 5 6
|
|
28
|
+
* 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
|
29
|
+
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
30
|
+
* | unix_ts_ms |
|
|
31
|
+
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
32
|
+
* | unix_ts_ms | ver | seq_hi |
|
|
33
|
+
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
34
|
+
* |var| seq_low | rand |
|
|
35
|
+
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
36
|
+
* | rand |
|
|
37
|
+
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
38
|
+
*
|
|
39
|
+
* seq is a 31 bit serialized counter; comprised of 12 bit seq_hi and 19 bit
|
|
40
|
+
* seq_low, and randomly initialized upon timestamp change. 31 bit counter size
|
|
41
|
+
* was selected as any bitwise operations in node are done as _signed_ 32 bit
|
|
42
|
+
* ints. we exclude the sign bit.
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
var _seqLow = null;
|
|
46
|
+
var _seqHigh = null;
|
|
47
|
+
var _msecs = 0;
|
|
48
|
+
function v7(options, buf, offset) {
|
|
49
|
+
options = options || {};
|
|
50
|
+
|
|
51
|
+
// initialize buffer and pointer
|
|
52
|
+
var i = buf && offset || 0;
|
|
53
|
+
var b = buf || new Uint8Array(16);
|
|
54
|
+
|
|
55
|
+
// rnds is Uint8Array(16) filled with random bytes
|
|
56
|
+
var rnds = options.random || (options.rng || _rng.default)();
|
|
57
|
+
|
|
58
|
+
// milliseconds since unix epoch, 1970-01-01 00:00
|
|
59
|
+
var msecs = options.msecs !== undefined ? options.msecs : Date.now();
|
|
60
|
+
|
|
61
|
+
// seq is user provided 31 bit counter
|
|
62
|
+
var seq = options.seq !== undefined ? options.seq : null;
|
|
63
|
+
|
|
64
|
+
// initialize local seq high/low parts
|
|
65
|
+
var seqHigh = _seqHigh;
|
|
66
|
+
var seqLow = _seqLow;
|
|
67
|
+
|
|
68
|
+
// check if clock has advanced and user has not provided msecs
|
|
69
|
+
if (msecs > _msecs && options.msecs === undefined) {
|
|
70
|
+
_msecs = msecs;
|
|
71
|
+
|
|
72
|
+
// unless user provided seq, reset seq parts
|
|
73
|
+
if (seq !== null) {
|
|
74
|
+
seqHigh = null;
|
|
75
|
+
seqLow = null;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// if we have a user provided seq
|
|
80
|
+
if (seq !== null) {
|
|
81
|
+
// trim provided seq to 31 bits of value, avoiding overflow
|
|
82
|
+
if (seq > 0x7fffffff) {
|
|
83
|
+
seq = 0x7fffffff;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// split provided seq into high/low parts
|
|
87
|
+
seqHigh = seq >>> 19 & 0xfff;
|
|
88
|
+
seqLow = seq & 0x7ffff;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// randomly initialize seq
|
|
92
|
+
if (seqHigh === null || seqLow === null) {
|
|
93
|
+
seqHigh = rnds[6] & 0x7f;
|
|
94
|
+
seqHigh = seqHigh << 8 | rnds[7];
|
|
95
|
+
seqLow = rnds[8] & 0x3f; // pad for var
|
|
96
|
+
seqLow = seqLow << 8 | rnds[9];
|
|
97
|
+
seqLow = seqLow << 5 | rnds[10] >>> 3;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// increment seq if within msecs window
|
|
101
|
+
if (msecs + 10000 > _msecs && seq === null) {
|
|
102
|
+
if (++seqLow > 0x7ffff) {
|
|
103
|
+
seqLow = 0;
|
|
104
|
+
if (++seqHigh > 0xfff) {
|
|
105
|
+
seqHigh = 0;
|
|
106
|
+
|
|
107
|
+
// increment internal _msecs. this allows us to continue incrementing
|
|
108
|
+
// while staying monotonic. Note, once we hit 10k milliseconds beyond system
|
|
109
|
+
// clock, we will reset breaking monotonicity (after (2^31)*10000 generations)
|
|
110
|
+
_msecs++;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
} else {
|
|
114
|
+
// resetting; we have advanced more than
|
|
115
|
+
// 10k milliseconds beyond system clock
|
|
116
|
+
_msecs = msecs;
|
|
117
|
+
}
|
|
118
|
+
_seqHigh = seqHigh;
|
|
119
|
+
_seqLow = seqLow;
|
|
120
|
+
|
|
121
|
+
// [bytes 0-5] 48 bits of local timestamp
|
|
122
|
+
b[i++] = _msecs / 0x10000000000 & 0xff;
|
|
123
|
+
b[i++] = _msecs / 0x100000000 & 0xff;
|
|
124
|
+
b[i++] = _msecs / 0x1000000 & 0xff;
|
|
125
|
+
b[i++] = _msecs / 0x10000 & 0xff;
|
|
126
|
+
b[i++] = _msecs / 0x100 & 0xff;
|
|
127
|
+
b[i++] = _msecs & 0xff;
|
|
128
|
+
|
|
129
|
+
// [byte 6] - set 4 bits of version (7) with first 4 bits seq_hi
|
|
130
|
+
b[i++] = seqHigh >>> 4 & 0x0f | 0x70;
|
|
131
|
+
|
|
132
|
+
// [byte 7] remaining 8 bits of seq_hi
|
|
133
|
+
b[i++] = seqHigh & 0xff;
|
|
134
|
+
|
|
135
|
+
// [byte 8] - variant (2 bits), first 6 bits seq_low
|
|
136
|
+
b[i++] = seqLow >>> 13 & 0x3f | 0x80;
|
|
137
|
+
|
|
138
|
+
// [byte 9] 8 bits seq_low
|
|
139
|
+
b[i++] = seqLow >>> 5 & 0xff;
|
|
140
|
+
|
|
141
|
+
// [byte 10] remaining 5 bits seq_low, 3 bits random
|
|
142
|
+
b[i++] = seqLow << 3 & 0xff | rnds[10] & 0x07;
|
|
143
|
+
|
|
144
|
+
// [bytes 11-15] always random
|
|
145
|
+
b[i++] = rnds[11];
|
|
146
|
+
b[i++] = rnds[12];
|
|
147
|
+
b[i++] = rnds[13];
|
|
148
|
+
b[i++] = rnds[14];
|
|
149
|
+
b[i++] = rnds[15];
|
|
150
|
+
return buf || (0, _stringify.unsafeStringify)(b);
|
|
151
|
+
}
|
|
152
|
+
var _default = exports.default = v7;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _regex = _interopRequireDefault(require("./regex.js"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
function validate(uuid) {
|
|
10
|
+
return typeof uuid === 'string' && _regex.default.test(uuid);
|
|
11
|
+
}
|
|
12
|
+
var _default = exports.default = validate;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _validate = _interopRequireDefault(require("./validate.js"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
function version(uuid) {
|
|
10
|
+
if (!(0, _validate.default)(uuid)) {
|
|
11
|
+
throw TypeError('Invalid UUID');
|
|
12
|
+
}
|
|
13
|
+
return parseInt(uuid.slice(14, 15), 16);
|
|
14
|
+
}
|
|
15
|
+
var _default = exports.default = version;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { default as MAX } from './max.js';
|
|
2
|
+
export { default as NIL } from './nil.js';
|
|
3
|
+
export { default as parse } from './parse.js';
|
|
4
|
+
export { default as stringify } from './stringify.js';
|
|
5
|
+
export { default as v1 } from './v1.js';
|
|
6
|
+
export { default as v1ToV6 } from './v1ToV6.js';
|
|
7
|
+
export { default as v3 } from './v3.js';
|
|
8
|
+
export { default as v4 } from './v4.js';
|
|
9
|
+
export { default as v5 } from './v5.js';
|
|
10
|
+
export { default as v6 } from './v6.js';
|
|
11
|
+
export { default as v6ToV1 } from './v6ToV1.js';
|
|
12
|
+
export { default as v7 } from './v7.js';
|
|
13
|
+
export { default as validate } from './validate.js';
|
|
14
|
+
export { default as version } from './version.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default 'ffffffff-ffff-ffff-ffff-ffffffffffff';
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Browser-compatible JavaScript MD5
|
|
3
|
+
*
|
|
4
|
+
* Modification of JavaScript MD5
|
|
5
|
+
* https://github.com/blueimp/JavaScript-MD5
|
|
6
|
+
*
|
|
7
|
+
* Copyright 2011, Sebastian Tschan
|
|
8
|
+
* https://blueimp.net
|
|
9
|
+
*
|
|
10
|
+
* Licensed under the MIT license:
|
|
11
|
+
* https://opensource.org/licenses/MIT
|
|
12
|
+
*
|
|
13
|
+
* Based on
|
|
14
|
+
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
|
|
15
|
+
* Digest Algorithm, as defined in RFC 1321.
|
|
16
|
+
* Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
|
|
17
|
+
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
|
|
18
|
+
* Distributed under the BSD License
|
|
19
|
+
* See http://pajhome.org.uk/crypt/md5 for more info.
|
|
20
|
+
*/
|
|
21
|
+
function md5(bytes) {
|
|
22
|
+
if (typeof bytes === 'string') {
|
|
23
|
+
var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape
|
|
24
|
+
|
|
25
|
+
bytes = new Uint8Array(msg.length);
|
|
26
|
+
for (var i = 0; i < msg.length; ++i) {
|
|
27
|
+
bytes[i] = msg.charCodeAt(i);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/*
|
|
34
|
+
* Convert an array of little-endian words to an array of bytes
|
|
35
|
+
*/
|
|
36
|
+
function md5ToHexEncodedArray(input) {
|
|
37
|
+
var output = [];
|
|
38
|
+
var length32 = input.length * 32;
|
|
39
|
+
var hexTab = '0123456789abcdef';
|
|
40
|
+
for (var i = 0; i < length32; i += 8) {
|
|
41
|
+
var x = input[i >> 5] >>> i % 32 & 0xff;
|
|
42
|
+
var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);
|
|
43
|
+
output.push(hex);
|
|
44
|
+
}
|
|
45
|
+
return output;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Calculate output length with padding and bit length
|
|
50
|
+
*/
|
|
51
|
+
function getOutputLength(inputLength8) {
|
|
52
|
+
return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/*
|
|
56
|
+
* Calculate the MD5 of an array of little-endian words, and a bit length.
|
|
57
|
+
*/
|
|
58
|
+
function wordsToMd5(x, len) {
|
|
59
|
+
/* append padding */
|
|
60
|
+
x[len >> 5] |= 0x80 << len % 32;
|
|
61
|
+
x[getOutputLength(len) - 1] = len;
|
|
62
|
+
var a = 1732584193;
|
|
63
|
+
var b = -271733879;
|
|
64
|
+
var c = -1732584194;
|
|
65
|
+
var d = 271733878;
|
|
66
|
+
for (var i = 0; i < x.length; i += 16) {
|
|
67
|
+
var olda = a;
|
|
68
|
+
var oldb = b;
|
|
69
|
+
var oldc = c;
|
|
70
|
+
var oldd = d;
|
|
71
|
+
a = md5ff(a, b, c, d, x[i], 7, -680876936);
|
|
72
|
+
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
|
|
73
|
+
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
|
|
74
|
+
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
|
|
75
|
+
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
|
|
76
|
+
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
|
|
77
|
+
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
|
|
78
|
+
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
|
|
79
|
+
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
|
|
80
|
+
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
|
|
81
|
+
c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
|
|
82
|
+
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
|
|
83
|
+
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
|
|
84
|
+
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
|
|
85
|
+
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
|
|
86
|
+
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
|
|
87
|
+
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
|
|
88
|
+
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
|
|
89
|
+
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
|
|
90
|
+
b = md5gg(b, c, d, a, x[i], 20, -373897302);
|
|
91
|
+
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
|
|
92
|
+
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
|
|
93
|
+
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
|
|
94
|
+
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
|
|
95
|
+
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
|
|
96
|
+
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
|
|
97
|
+
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
|
|
98
|
+
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
|
|
99
|
+
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
|
|
100
|
+
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
|
|
101
|
+
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
|
|
102
|
+
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
|
|
103
|
+
a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
|
|
104
|
+
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
|
|
105
|
+
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
|
|
106
|
+
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
|
|
107
|
+
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
|
|
108
|
+
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
|
|
109
|
+
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
|
|
110
|
+
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
|
|
111
|
+
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
|
|
112
|
+
d = md5hh(d, a, b, c, x[i], 11, -358537222);
|
|
113
|
+
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
|
|
114
|
+
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
|
|
115
|
+
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
|
|
116
|
+
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
|
|
117
|
+
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
|
|
118
|
+
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
|
|
119
|
+
a = md5ii(a, b, c, d, x[i], 6, -198630844);
|
|
120
|
+
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
|
|
121
|
+
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
|
|
122
|
+
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
|
|
123
|
+
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
|
|
124
|
+
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
|
|
125
|
+
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
|
|
126
|
+
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
|
|
127
|
+
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
|
|
128
|
+
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
|
|
129
|
+
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
|
|
130
|
+
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
|
|
131
|
+
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
|
|
132
|
+
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
|
|
133
|
+
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
|
|
134
|
+
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
|
|
135
|
+
a = safeAdd(a, olda);
|
|
136
|
+
b = safeAdd(b, oldb);
|
|
137
|
+
c = safeAdd(c, oldc);
|
|
138
|
+
d = safeAdd(d, oldd);
|
|
139
|
+
}
|
|
140
|
+
return [a, b, c, d];
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/*
|
|
144
|
+
* Convert an array bytes to an array of little-endian words
|
|
145
|
+
* Characters >255 have their high-byte silently ignored.
|
|
146
|
+
*/
|
|
147
|
+
function bytesToWords(input) {
|
|
148
|
+
if (input.length === 0) {
|
|
149
|
+
return [];
|
|
150
|
+
}
|
|
151
|
+
var length8 = input.length * 8;
|
|
152
|
+
var output = new Uint32Array(getOutputLength(length8));
|
|
153
|
+
for (var i = 0; i < length8; i += 8) {
|
|
154
|
+
output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;
|
|
155
|
+
}
|
|
156
|
+
return output;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/*
|
|
160
|
+
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
|
|
161
|
+
* to work around bugs in some JS interpreters.
|
|
162
|
+
*/
|
|
163
|
+
function safeAdd(x, y) {
|
|
164
|
+
var lsw = (x & 0xffff) + (y & 0xffff);
|
|
165
|
+
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
|
166
|
+
return msw << 16 | lsw & 0xffff;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/*
|
|
170
|
+
* Bitwise rotate a 32-bit number to the left.
|
|
171
|
+
*/
|
|
172
|
+
function bitRotateLeft(num, cnt) {
|
|
173
|
+
return num << cnt | num >>> 32 - cnt;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/*
|
|
177
|
+
* These functions implement the four basic operations the algorithm uses.
|
|
178
|
+
*/
|
|
179
|
+
function md5cmn(q, a, b, x, s, t) {
|
|
180
|
+
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
|
|
181
|
+
}
|
|
182
|
+
function md5ff(a, b, c, d, x, s, t) {
|
|
183
|
+
return md5cmn(b & c | ~b & d, a, b, x, s, t);
|
|
184
|
+
}
|
|
185
|
+
function md5gg(a, b, c, d, x, s, t) {
|
|
186
|
+
return md5cmn(b & d | c & ~d, a, b, x, s, t);
|
|
187
|
+
}
|
|
188
|
+
function md5hh(a, b, c, d, x, s, t) {
|
|
189
|
+
return md5cmn(b ^ c ^ d, a, b, x, s, t);
|
|
190
|
+
}
|
|
191
|
+
function md5ii(a, b, c, d, x, s, t) {
|
|
192
|
+
return md5cmn(c ^ (b | ~d), a, b, x, s, t);
|
|
193
|
+
}
|
|
194
|
+
export default md5;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default '00000000-0000-0000-0000-000000000000';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import validate from './validate.js';
|
|
2
|
+
function parse(uuid) {
|
|
3
|
+
if (!validate(uuid)) {
|
|
4
|
+
throw TypeError('Invalid UUID');
|
|
5
|
+
}
|
|
6
|
+
var v;
|
|
7
|
+
var arr = new Uint8Array(16);
|
|
8
|
+
|
|
9
|
+
// Parse ########-....-....-....-............
|
|
10
|
+
arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
|
|
11
|
+
arr[1] = v >>> 16 & 0xff;
|
|
12
|
+
arr[2] = v >>> 8 & 0xff;
|
|
13
|
+
arr[3] = v & 0xff;
|
|
14
|
+
|
|
15
|
+
// Parse ........-####-....-....-............
|
|
16
|
+
arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
|
|
17
|
+
arr[5] = v & 0xff;
|
|
18
|
+
|
|
19
|
+
// Parse ........-....-####-....-............
|
|
20
|
+
arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
|
|
21
|
+
arr[7] = v & 0xff;
|
|
22
|
+
|
|
23
|
+
// Parse ........-....-....-####-............
|
|
24
|
+
arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;
|
|
25
|
+
arr[9] = v & 0xff;
|
|
26
|
+
|
|
27
|
+
// Parse ........-....-....-....-############
|
|
28
|
+
// (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes)
|
|
29
|
+
arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;
|
|
30
|
+
arr[11] = v / 0x100000000 & 0xff;
|
|
31
|
+
arr[12] = v >>> 24 & 0xff;
|
|
32
|
+
arr[13] = v >>> 16 & 0xff;
|
|
33
|
+
arr[14] = v >>> 8 & 0xff;
|
|
34
|
+
arr[15] = v & 0xff;
|
|
35
|
+
return arr;
|
|
36
|
+
}
|
|
37
|
+
export default parse;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Unique ID creation requires a high quality random # generator. In the browser we therefore
|
|
2
|
+
// require the crypto API and do not support built-in fallback to lower quality random number
|
|
3
|
+
// generators (like Math.random()).
|
|
4
|
+
|
|
5
|
+
var getRandomValues;
|
|
6
|
+
var rnds8 = new Uint8Array(16);
|
|
7
|
+
export default function rng() {
|
|
8
|
+
// lazy load so that environments that need to polyfill have a chance to do so
|
|
9
|
+
if (!getRandomValues) {
|
|
10
|
+
// getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
|
|
11
|
+
getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
|
|
12
|
+
if (!getRandomValues) {
|
|
13
|
+
throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return getRandomValues(rnds8);
|
|
17
|
+
}
|