@wener/utils 1.1.54 → 1.1.58
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/lib/arrays/arrayFromAsync.js +11 -3
- package/lib/asyncs/AsyncInterval.js +11 -3
- package/lib/asyncs/Promises.js +6 -5
- package/lib/asyncs/createAsyncIterator.js +11 -3
- package/lib/asyncs/createLazyPromise.test.js +11 -3
- package/lib/asyncs/generatorOfStream.js +11 -3
- package/lib/browsers/download.js +11 -3
- package/lib/browsers/getFileFromDataTransfer.js +2 -2
- package/lib/browsers/loaders.js +11 -3
- package/lib/crypto/hashing.js +11 -3
- package/lib/crypto/hashing.test.js +11 -3
- package/lib/crypto/pem/pem.js +1 -1
- package/lib/crypto/randomUUIDv7.js +63 -0
- package/lib/crypto/randomUUIDv7.test.js +79 -0
- package/lib/fetch/createFetchWith.js +12 -4
- package/lib/fetch/dumpRequest.js +12 -4
- package/lib/fetch/dumpRequest.test.js +11 -3
- package/lib/fetch/dumpResponse.js +11 -3
- package/lib/fetch/dumpResponse.test.js +11 -3
- package/lib/index.js +2 -1
- package/lib/io/ArrayBuffers.js +2 -2
- package/lib/io/ByteBuffer.test.js +11 -3
- package/lib/io/dump.js +1 -1
- package/lib/io/parseDataUri.js +11 -3
- package/lib/io/parseDataUri.test.js +31 -11
- package/lib/langs/AsyncCloser.js +11 -3
- package/lib/langs/deepFreeze.js +5 -5
- package/lib/langs/mixin.js +6 -12
- package/lib/langs/mixin.test.js +50 -5
- package/lib/langs/mixin2.js +26 -0
- package/lib/langs/parseBoolean.js +3 -2
- package/lib/langs/shallowEqual.js +5 -5
- package/lib/libs/ms.js +1 -1
- package/lib/maths/clamp.js +5 -84
- package/lib/maths/clamp.test.js +33 -35
- package/lib/maths/createRandom.test.js +271 -29
- package/lib/maths/random.js +176 -154
- package/lib/objects/merge/isMergeableObject.js +1 -1
- package/lib/objects/merge/merge.js +1 -1
- package/lib/objects/merge/merge.test.js +11 -3
- package/lib/objects/set.js +10 -2
- package/lib/objects/set.test.js +2 -2
- package/lib/scripts/getGenerateContext.js +13 -5
- package/lib/server/fetch/createFetchWithProxyByNodeFetch.js +11 -3
- package/lib/server/fetch/createFetchWithProxyByUndici.js +11 -3
- package/lib/server/polyfill/polyfillBrowser.js +11 -3
- package/lib/server/polyfill/polyfillBrowser.test.js +11 -3
- package/lib/server/polyfill/polyfillCrypto.js +11 -3
- package/lib/server/polyfill/polyfillJsDom.js +31 -11
- package/lib/strings/renderTemplate.test.js +2 -2
- package/lib/web/getGlobalThis.js +0 -2
- package/lib/web/getRandomValues.js +5 -11
- package/lib/web/structuredClone.js +2 -2
- package/package.json +10 -6
- package/src/asyncs/Promises.ts +2 -1
- package/src/asyncs/timeout.ts +1 -1
- package/src/crypto/hashing.ts +7 -6
- package/src/crypto/pem/pem.ts +3 -2
- package/src/crypto/randomUUIDv7.test.ts +82 -0
- package/src/crypto/randomUUIDv7.ts +79 -0
- package/src/fetch/dumpRequest.ts +1 -1
- package/src/index.ts +9 -2
- package/src/langs/mixin.test.ts +32 -5
- package/src/langs/mixin.ts +46 -65
- package/src/langs/mixin2.ts +80 -0
- package/src/langs/parseBoolean.ts +18 -1
- package/src/maths/clamp.test.ts +12 -9
- package/src/maths/clamp.ts +10 -16
- package/src/maths/createRandom.test.ts +199 -11
- package/src/maths/random.ts +190 -33
- package/src/objects/set.ts +10 -1
- package/src/types.d.ts +1 -1
- package/src/web/getGlobalThis.ts +1 -2
- package/src/web/getRandomValues.ts +14 -15
- package/tsconfig.json +6 -12
- package/src/schema/README.md +0 -2
|
@@ -77,9 +77,17 @@ function _ts_generator(thisArg, body) {
|
|
|
77
77
|
},
|
|
78
78
|
trys: [],
|
|
79
79
|
ops: []
|
|
80
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
81
|
-
return
|
|
82
|
-
|
|
80
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
81
|
+
return d(g, "next", {
|
|
82
|
+
value: verb(0)
|
|
83
|
+
}), d(g, "throw", {
|
|
84
|
+
value: verb(1)
|
|
85
|
+
}), d(g, "return", {
|
|
86
|
+
value: verb(2)
|
|
87
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
88
|
+
value: function() {
|
|
89
|
+
return this;
|
|
90
|
+
}
|
|
83
91
|
}), g;
|
|
84
92
|
function verb(n) {
|
|
85
93
|
return function(v) {
|
|
@@ -36,9 +36,17 @@ function _ts_generator(thisArg, body) {
|
|
|
36
36
|
},
|
|
37
37
|
trys: [],
|
|
38
38
|
ops: []
|
|
39
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
40
|
-
return
|
|
41
|
-
|
|
39
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
40
|
+
return d(g, "next", {
|
|
41
|
+
value: verb(0)
|
|
42
|
+
}), d(g, "throw", {
|
|
43
|
+
value: verb(1)
|
|
44
|
+
}), d(g, "return", {
|
|
45
|
+
value: verb(2)
|
|
46
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
47
|
+
value: function() {
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
42
50
|
}), g;
|
|
43
51
|
function verb(n) {
|
|
44
52
|
return function(v) {
|
package/lib/asyncs/Promises.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* A collection of utility functions for working with Promises.
|
|
3
|
-
*/ function _class_call_check(instance, Constructor) {
|
|
1
|
+
function _class_call_check(instance, Constructor) {
|
|
4
2
|
if (!(instance instanceof Constructor)) {
|
|
5
3
|
throw new TypeError("Cannot call a class as a function");
|
|
6
4
|
}
|
|
@@ -26,7 +24,9 @@ function _instanceof(left, right) {
|
|
|
26
24
|
return left instanceof right;
|
|
27
25
|
}
|
|
28
26
|
}
|
|
29
|
-
|
|
27
|
+
/**
|
|
28
|
+
* A collection of utility functions for working with Promises.
|
|
29
|
+
*/ export var Promises = /*#__PURE__*/ function() {
|
|
30
30
|
"use strict";
|
|
31
31
|
function Promises() {
|
|
32
32
|
_class_call_check(this, Promises);
|
|
@@ -51,7 +51,8 @@ export var Promises = /*#__PURE__*/ function() {
|
|
|
51
51
|
}
|
|
52
52
|
var resolve;
|
|
53
53
|
var reject;
|
|
54
|
-
// @ts-ignore
|
|
54
|
+
// @ts-ignore -- Polyfill/Fallback for environment without Promise.withResolvers
|
|
55
|
+
// eslint-disable-next-line
|
|
55
56
|
var promise = new Promise(function(res, rej) {
|
|
56
57
|
resolve = res;
|
|
57
58
|
reject = rej;
|
|
@@ -162,9 +162,17 @@ function _ts_generator(thisArg, body) {
|
|
|
162
162
|
},
|
|
163
163
|
trys: [],
|
|
164
164
|
ops: []
|
|
165
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
166
|
-
return
|
|
167
|
-
|
|
165
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
166
|
+
return d(g, "next", {
|
|
167
|
+
value: verb(0)
|
|
168
|
+
}), d(g, "throw", {
|
|
169
|
+
value: verb(1)
|
|
170
|
+
}), d(g, "return", {
|
|
171
|
+
value: verb(2)
|
|
172
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
173
|
+
value: function () {
|
|
174
|
+
return this;
|
|
175
|
+
}
|
|
168
176
|
}), g;
|
|
169
177
|
function verb(n) {
|
|
170
178
|
return function (v) {
|
|
@@ -39,9 +39,17 @@ function _ts_generator(thisArg, body) {
|
|
|
39
39
|
},
|
|
40
40
|
trys: [],
|
|
41
41
|
ops: []
|
|
42
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
43
|
-
return
|
|
44
|
-
|
|
42
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
43
|
+
return d(g, "next", {
|
|
44
|
+
value: verb(0)
|
|
45
|
+
}), d(g, "throw", {
|
|
46
|
+
value: verb(1)
|
|
47
|
+
}), d(g, "return", {
|
|
48
|
+
value: verb(2)
|
|
49
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
50
|
+
value: function () {
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
45
53
|
}), g;
|
|
46
54
|
function verb(n) {
|
|
47
55
|
return function (v) {
|
|
@@ -7,9 +7,17 @@ function _ts_generator(thisArg, body) {
|
|
|
7
7
|
},
|
|
8
8
|
trys: [],
|
|
9
9
|
ops: []
|
|
10
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
11
|
-
return
|
|
12
|
-
|
|
10
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
11
|
+
return d(g, "next", {
|
|
12
|
+
value: verb(0)
|
|
13
|
+
}), d(g, "throw", {
|
|
14
|
+
value: verb(1)
|
|
15
|
+
}), d(g, "return", {
|
|
16
|
+
value: verb(2)
|
|
17
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
18
|
+
value: function() {
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
13
21
|
}), g;
|
|
14
22
|
function verb(n) {
|
|
15
23
|
return function(v) {
|
package/lib/browsers/download.js
CHANGED
|
@@ -43,9 +43,17 @@ function _ts_generator(thisArg, body) {
|
|
|
43
43
|
},
|
|
44
44
|
trys: [],
|
|
45
45
|
ops: []
|
|
46
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
47
|
-
return
|
|
48
|
-
|
|
46
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
47
|
+
return d(g, "next", {
|
|
48
|
+
value: verb(0)
|
|
49
|
+
}), d(g, "throw", {
|
|
50
|
+
value: verb(1)
|
|
51
|
+
}), d(g, "return", {
|
|
52
|
+
value: verb(2)
|
|
53
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
54
|
+
value: function() {
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
49
57
|
}), g;
|
|
50
58
|
function verb(n) {
|
|
51
59
|
return function(v) {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
export function getFileFromDataTransfer(dataTransfer) {
|
|
2
|
+
var _dataTransfer_items;
|
|
2
3
|
if (!dataTransfer) {
|
|
3
4
|
return {};
|
|
4
5
|
}
|
|
5
|
-
var _dataTransfer_items;
|
|
6
6
|
var items = (_dataTransfer_items = dataTransfer.items) !== null && _dataTransfer_items !== void 0 ? _dataTransfer_items : [];
|
|
7
7
|
if (items.length >= 2 && items[0].kind === 'string' && items[1].kind === 'file') {
|
|
8
|
+
var _items__getAsFile;
|
|
8
9
|
var _dataTransfer_files;
|
|
9
10
|
// name, file
|
|
10
11
|
var text = dataTransfer.getData('text');
|
|
11
|
-
var _items__getAsFile;
|
|
12
12
|
var file = (_items__getAsFile = items[1].getAsFile()) !== null && _items__getAsFile !== void 0 ? _items__getAsFile : (_dataTransfer_files = dataTransfer.files) === null || _dataTransfer_files === void 0 ? void 0 : _dataTransfer_files.item(0);
|
|
13
13
|
if (!file) {
|
|
14
14
|
console.error("no file ".concat(text), items[1]);
|
package/lib/browsers/loaders.js
CHANGED
|
@@ -82,9 +82,17 @@ function _ts_generator(thisArg, body) {
|
|
|
82
82
|
},
|
|
83
83
|
trys: [],
|
|
84
84
|
ops: []
|
|
85
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
86
|
-
return
|
|
87
|
-
|
|
85
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
86
|
+
return d(g, "next", {
|
|
87
|
+
value: verb(0)
|
|
88
|
+
}), d(g, "throw", {
|
|
89
|
+
value: verb(1)
|
|
90
|
+
}), d(g, "return", {
|
|
91
|
+
value: verb(2)
|
|
92
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
93
|
+
value: function() {
|
|
94
|
+
return this;
|
|
95
|
+
}
|
|
88
96
|
}), g;
|
|
89
97
|
function verb(n) {
|
|
90
98
|
return function(v) {
|
package/lib/crypto/hashing.js
CHANGED
|
@@ -47,9 +47,17 @@ function _ts_generator(thisArg, body) {
|
|
|
47
47
|
},
|
|
48
48
|
trys: [],
|
|
49
49
|
ops: []
|
|
50
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
51
|
-
return
|
|
52
|
-
|
|
50
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
51
|
+
return d(g, "next", {
|
|
52
|
+
value: verb(0)
|
|
53
|
+
}), d(g, "throw", {
|
|
54
|
+
value: verb(1)
|
|
55
|
+
}), d(g, "return", {
|
|
56
|
+
value: verb(2)
|
|
57
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
58
|
+
value: function () {
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
53
61
|
}), g;
|
|
54
62
|
function verb(n) {
|
|
55
63
|
return function (v) {
|
|
@@ -39,9 +39,17 @@ function _ts_generator(thisArg, body) {
|
|
|
39
39
|
},
|
|
40
40
|
trys: [],
|
|
41
41
|
ops: []
|
|
42
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
43
|
-
return
|
|
44
|
-
|
|
42
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
43
|
+
return d(g, "next", {
|
|
44
|
+
value: verb(0)
|
|
45
|
+
}), d(g, "throw", {
|
|
46
|
+
value: verb(1)
|
|
47
|
+
}), d(g, "return", {
|
|
48
|
+
value: verb(2)
|
|
49
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
50
|
+
value: function () {
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
45
53
|
}), g;
|
|
46
54
|
function verb(n) {
|
|
47
55
|
return function (v) {
|
package/lib/crypto/pem/pem.js
CHANGED
|
@@ -173,7 +173,7 @@ export var PEM = /*#__PURE__*/ function () {
|
|
|
173
173
|
type: type,
|
|
174
174
|
header: header,
|
|
175
175
|
// avoid replaceAll
|
|
176
|
-
bytes: ArrayBuffers.from(b64.replace(/[\r\n]/g, ""), "base64")
|
|
176
|
+
bytes: ArrayBuffers.from(b64.replace(/[\r\n]/g, ""), "base64", Uint8Array)
|
|
177
177
|
},
|
|
178
178
|
head: data.slice(0, match.index || 0),
|
|
179
179
|
tail: data.slice((match.index || 0) + match[0].length)
|
|
@@ -1 +1,64 @@
|
|
|
1
1
|
// https://github.com/LiosK/uuidv7/blob/main/src/index.ts
|
|
2
|
+
// https://www.rfc-editor.org/rfc/rfc9562.html#name-uuid-version-7
|
|
3
|
+
import { getRandomValues } from "../web/getRandomValues.js";
|
|
4
|
+
/**
|
|
5
|
+
* Generate a UUIDv7 string
|
|
6
|
+
*
|
|
7
|
+
* UUIDv7 format (RFC 9562):
|
|
8
|
+
* - 48 bits: Unix timestamp in milliseconds
|
|
9
|
+
* - 4 bits: version (7)
|
|
10
|
+
* - 12 bits: random (rand_a)
|
|
11
|
+
* - 2 bits: variant (10)
|
|
12
|
+
* - 62 bits: random (rand_b)
|
|
13
|
+
*
|
|
14
|
+
* Format: xxxxxxxx-xxxx-7xxx-yxxx-xxxxxxxxxxxx
|
|
15
|
+
* where y is 8, 9, a, or b (variant bits)
|
|
16
|
+
*/ export function randomUUIDv7(timestamp) {
|
|
17
|
+
var ts = timestamp !== null && timestamp !== void 0 ? timestamp : Date.now();
|
|
18
|
+
var bytes = new Uint8Array(16);
|
|
19
|
+
getRandomValues(bytes);
|
|
20
|
+
// timestamp (48 bits)
|
|
21
|
+
bytes[0] = ts / Math.pow(2, 40) & 255;
|
|
22
|
+
bytes[1] = ts / Math.pow(2, 32) & 255;
|
|
23
|
+
bytes[2] = ts / Math.pow(2, 24) & 255;
|
|
24
|
+
bytes[3] = ts / Math.pow(2, 16) & 255;
|
|
25
|
+
bytes[4] = ts / Math.pow(2, 8) & 255;
|
|
26
|
+
bytes[5] = ts & 255;
|
|
27
|
+
// version (4 bits) = 7
|
|
28
|
+
bytes[6] = bytes[6] & 15 | 112;
|
|
29
|
+
// variant (2 bits) = 10
|
|
30
|
+
bytes[8] = bytes[8] & 63 | 128;
|
|
31
|
+
return formatUUID(bytes);
|
|
32
|
+
}
|
|
33
|
+
function formatUUID(bytes) {
|
|
34
|
+
var hex = Array.from(bytes).map(function (b) {
|
|
35
|
+
return b.toString(16).padStart(2, "0");
|
|
36
|
+
}).join("");
|
|
37
|
+
return "".concat(hex.slice(0, 8), "-").concat(hex.slice(8, 12), "-").concat(hex.slice(12, 16), "-").concat(hex.slice(16, 20), "-").concat(hex.slice(20));
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Extract timestamp from UUIDv7
|
|
41
|
+
*/ export function parseUUIDv7Timestamp(uuid) {
|
|
42
|
+
var hex = uuid.replace(/-/g, "");
|
|
43
|
+
if (hex.length !== 32) {
|
|
44
|
+
throw new Error("Invalid UUID format");
|
|
45
|
+
}
|
|
46
|
+
var tsHex = hex.slice(0, 12);
|
|
47
|
+
return parseInt(tsHex, 16);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Check if a string is a valid UUIDv7
|
|
51
|
+
*/ export function isUUIDv7(uuid) {
|
|
52
|
+
if (!uuid)
|
|
53
|
+
return false;
|
|
54
|
+
var match = uuid.match(/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i);
|
|
55
|
+
return match !== null;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Create a UUIDv7 generator with custom options
|
|
59
|
+
*/ export function createRandomUUIDv7() {
|
|
60
|
+
var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _ref_now = _ref.now, now = _ref_now === void 0 ? Date.now : _ref_now;
|
|
61
|
+
return function uuidv7(timestamp) {
|
|
62
|
+
return randomUUIDv7(timestamp !== null && timestamp !== void 0 ? timestamp : now());
|
|
63
|
+
};
|
|
64
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { describe, expect, test } from "vitest";
|
|
2
|
+
import { createRandomUUIDv7, isUUIDv7, parseUUIDv7Timestamp, randomUUIDv7 } from "./randomUUIDv7.js";
|
|
3
|
+
describe("randomUUIDv7", function () {
|
|
4
|
+
test("generates valid UUIDv7", function () {
|
|
5
|
+
var uuid = randomUUIDv7();
|
|
6
|
+
expect(uuid).toMatch(/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i);
|
|
7
|
+
});
|
|
8
|
+
test("generates unique UUIDs", function () {
|
|
9
|
+
var uuids = new Set();
|
|
10
|
+
for (var i = 0; i < 1000; i++) {
|
|
11
|
+
uuids.add(randomUUIDv7());
|
|
12
|
+
}
|
|
13
|
+
expect(uuids.size).toBe(1000);
|
|
14
|
+
});
|
|
15
|
+
test("respects provided timestamp", function () {
|
|
16
|
+
var ts = 1704067200000; // 2024-01-01 00:00:00 UTC
|
|
17
|
+
var uuid = randomUUIDv7(ts);
|
|
18
|
+
var extractedTs = parseUUIDv7Timestamp(uuid);
|
|
19
|
+
expect(extractedTs).toBe(ts);
|
|
20
|
+
});
|
|
21
|
+
test("UUIDs are sortable by time", function () {
|
|
22
|
+
var ts1 = 1704067200000;
|
|
23
|
+
var ts2 = 1704067201000;
|
|
24
|
+
var uuid1 = randomUUIDv7(ts1);
|
|
25
|
+
var uuid2 = randomUUIDv7(ts2);
|
|
26
|
+
expect(uuid1 < uuid2).toBe(true);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
describe("isUUIDv7", function () {
|
|
30
|
+
test("returns true for valid UUIDv7", function () {
|
|
31
|
+
var uuid = randomUUIDv7();
|
|
32
|
+
expect(isUUIDv7(uuid)).toBe(true);
|
|
33
|
+
});
|
|
34
|
+
test("returns false for UUIDv4", function () {
|
|
35
|
+
expect(isUUIDv7("550e8400-e29b-41d4-a716-446655440000")).toBe(false);
|
|
36
|
+
});
|
|
37
|
+
test("returns false for invalid strings", function () {
|
|
38
|
+
expect(isUUIDv7("")).toBe(false);
|
|
39
|
+
expect(isUUIDv7(null)).toBe(false);
|
|
40
|
+
expect(isUUIDv7(undefined)).toBe(false);
|
|
41
|
+
expect(isUUIDv7("not-a-uuid")).toBe(false);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
describe("parseUUIDv7Timestamp", function () {
|
|
45
|
+
test("extracts correct timestamp", function () {
|
|
46
|
+
var ts = Date.now();
|
|
47
|
+
var uuid = randomUUIDv7(ts);
|
|
48
|
+
expect(parseUUIDv7Timestamp(uuid)).toBe(ts);
|
|
49
|
+
});
|
|
50
|
+
test("throws for invalid UUID format", function () {
|
|
51
|
+
expect(function () {
|
|
52
|
+
return parseUUIDv7Timestamp("invalid");
|
|
53
|
+
}).toThrow("Invalid UUID format");
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
describe("createRandomUUIDv7", function () {
|
|
57
|
+
test("creates generator with custom now function", function () {
|
|
58
|
+
var currentTime = 1704067200000;
|
|
59
|
+
var generator = createRandomUUIDv7({
|
|
60
|
+
now: function () {
|
|
61
|
+
return currentTime;
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
var uuid1 = generator();
|
|
65
|
+
expect(parseUUIDv7Timestamp(uuid1)).toBe(currentTime);
|
|
66
|
+
currentTime = 1704067201000;
|
|
67
|
+
var uuid2 = generator();
|
|
68
|
+
expect(parseUUIDv7Timestamp(uuid2)).toBe(currentTime);
|
|
69
|
+
});
|
|
70
|
+
test("generator accepts explicit timestamp override", function () {
|
|
71
|
+
var generator = createRandomUUIDv7({
|
|
72
|
+
now: function () {
|
|
73
|
+
return 1000;
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
var uuid = generator(2000);
|
|
77
|
+
expect(parseUUIDv7Timestamp(uuid)).toBe(2000);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
@@ -39,9 +39,17 @@ function _ts_generator(thisArg, body) {
|
|
|
39
39
|
},
|
|
40
40
|
trys: [],
|
|
41
41
|
ops: []
|
|
42
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
43
|
-
return
|
|
44
|
-
|
|
42
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
43
|
+
return d(g, "next", {
|
|
44
|
+
value: verb(0)
|
|
45
|
+
}), d(g, "throw", {
|
|
46
|
+
value: verb(1)
|
|
47
|
+
}), d(g, "return", {
|
|
48
|
+
value: verb(2)
|
|
49
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
50
|
+
value: function () {
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
45
53
|
}), g;
|
|
46
54
|
function verb(n) {
|
|
47
55
|
return function (v) {
|
|
@@ -138,7 +146,7 @@ export function createFetchWith(param) {
|
|
|
138
146
|
} : _param_onResponse;
|
|
139
147
|
return function (urlOrRequest, init) {
|
|
140
148
|
return _async_to_generator(function () {
|
|
141
|
-
var url, req, nextFetch,
|
|
149
|
+
var _ref, url, req, nextFetch, res, _tmp;
|
|
142
150
|
return _ts_generator(this, function (_state) {
|
|
143
151
|
switch (_state.label) {
|
|
144
152
|
case 0:
|
package/lib/fetch/dumpRequest.js
CHANGED
|
@@ -112,9 +112,17 @@ function _ts_generator(thisArg, body) {
|
|
|
112
112
|
},
|
|
113
113
|
trys: [],
|
|
114
114
|
ops: []
|
|
115
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
116
|
-
return
|
|
117
|
-
|
|
115
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
116
|
+
return d(g, "next", {
|
|
117
|
+
value: verb(0)
|
|
118
|
+
}), d(g, "throw", {
|
|
119
|
+
value: verb(1)
|
|
120
|
+
}), d(g, "return", {
|
|
121
|
+
value: verb(2)
|
|
122
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
123
|
+
value: function () {
|
|
124
|
+
return this;
|
|
125
|
+
}
|
|
118
126
|
}), g;
|
|
119
127
|
function verb(n) {
|
|
120
128
|
return function (v) {
|
|
@@ -246,7 +254,7 @@ export function dumpRequest(_0) {
|
|
|
246
254
|
})
|
|
247
255
|
];
|
|
248
256
|
case 1:
|
|
249
|
-
out
|
|
257
|
+
out = out + _state.sent();
|
|
250
258
|
_state.label = 2;
|
|
251
259
|
case 2:
|
|
252
260
|
log(out);
|
|
@@ -39,9 +39,17 @@ function _ts_generator(thisArg, body) {
|
|
|
39
39
|
},
|
|
40
40
|
trys: [],
|
|
41
41
|
ops: []
|
|
42
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
43
|
-
return
|
|
44
|
-
|
|
42
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
43
|
+
return d(g, "next", {
|
|
44
|
+
value: verb(0)
|
|
45
|
+
}), d(g, "throw", {
|
|
46
|
+
value: verb(1)
|
|
47
|
+
}), d(g, "return", {
|
|
48
|
+
value: verb(2)
|
|
49
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
50
|
+
value: function () {
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
45
53
|
}), g;
|
|
46
54
|
function verb(n) {
|
|
47
55
|
return function (v) {
|
|
@@ -100,9 +100,17 @@ function _ts_generator(thisArg, body) {
|
|
|
100
100
|
},
|
|
101
101
|
trys: [],
|
|
102
102
|
ops: []
|
|
103
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
104
|
-
return
|
|
105
|
-
|
|
103
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
104
|
+
return d(g, "next", {
|
|
105
|
+
value: verb(0)
|
|
106
|
+
}), d(g, "throw", {
|
|
107
|
+
value: verb(1)
|
|
108
|
+
}), d(g, "return", {
|
|
109
|
+
value: verb(2)
|
|
110
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
111
|
+
value: function () {
|
|
112
|
+
return this;
|
|
113
|
+
}
|
|
106
114
|
}), g;
|
|
107
115
|
function verb(n) {
|
|
108
116
|
return function (v) {
|
|
@@ -39,9 +39,17 @@ function _ts_generator(thisArg, body) {
|
|
|
39
39
|
},
|
|
40
40
|
trys: [],
|
|
41
41
|
ops: []
|
|
42
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
43
|
-
return
|
|
44
|
-
|
|
42
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
43
|
+
return d(g, "next", {
|
|
44
|
+
value: verb(0)
|
|
45
|
+
}), d(g, "throw", {
|
|
46
|
+
value: verb(1)
|
|
47
|
+
}), d(g, "return", {
|
|
48
|
+
value: verb(2)
|
|
49
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
50
|
+
value: function () {
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
45
53
|
}), g;
|
|
46
54
|
function verb(n) {
|
|
47
55
|
return function (v) {
|
package/lib/index.js
CHANGED
|
@@ -77,9 +77,10 @@ export { sha1, sha256, sha384, sha512, hmac } from "./crypto/hashing.js";
|
|
|
77
77
|
export { md5 } from "./crypto/md5.js";
|
|
78
78
|
export { hex } from "./crypto/base.js";
|
|
79
79
|
export { isULID, createULID, ulid, parseULID } from "./crypto/ulid.js";
|
|
80
|
+
export { randomUUIDv7, isUUIDv7, parseUUIDv7Timestamp, createRandomUUIDv7 } from "./crypto/randomUUIDv7.js";
|
|
80
81
|
export { PEM } from "./crypto/pem/pem.js";
|
|
81
82
|
// math
|
|
82
|
-
export { createRandom } from "./maths/random.js";
|
|
83
|
+
export { createRandom, resolveRandom } from "./maths/random.js";
|
|
83
84
|
export { clamp } from "./maths/clamp.js";
|
|
84
85
|
// network
|
|
85
86
|
export { createFetchWith, createFetchWithLogging, dumpResponse, dumpRequest, createFetchWithRetry } from "./fetch/index.js";
|
package/lib/io/ArrayBuffers.js
CHANGED
|
@@ -206,8 +206,8 @@ import { isBuffer } from "./isBuffer.js";
|
|
|
206
206
|
return new ArrayBuffer(0);
|
|
207
207
|
}
|
|
208
208
|
var length = buffers.reduce(function (a, b) {
|
|
209
|
-
var
|
|
210
|
-
return a + ((
|
|
209
|
+
var _ref;
|
|
210
|
+
return a + ((_ref = b === null || b === void 0 ? void 0 : b.byteLength) !== null && _ref !== void 0 ? _ref : 0);
|
|
211
211
|
}, 0);
|
|
212
212
|
var r = result ? new Uint8Array(result) : new Uint8Array(length);
|
|
213
213
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
@@ -39,9 +39,17 @@ function _ts_generator(thisArg, body) {
|
|
|
39
39
|
},
|
|
40
40
|
trys: [],
|
|
41
41
|
ops: []
|
|
42
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
43
|
-
return
|
|
44
|
-
|
|
42
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
43
|
+
return d(g, "next", {
|
|
44
|
+
value: verb(0)
|
|
45
|
+
}), d(g, "throw", {
|
|
46
|
+
value: verb(1)
|
|
47
|
+
}), d(g, "return", {
|
|
48
|
+
value: verb(2)
|
|
49
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
50
|
+
value: function () {
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
45
53
|
}), g;
|
|
46
54
|
function verb(n) {
|
|
47
55
|
return function (v) {
|
package/lib/io/dump.js
CHANGED
|
@@ -2,8 +2,8 @@ import { ArrayBuffers } from "./ArrayBuffers.js";
|
|
|
2
2
|
export function toHexDump(data) {
|
|
3
3
|
var _ArrayBuffers_toHex_match;
|
|
4
4
|
return Array.from((_ArrayBuffers_toHex_match = ArrayBuffers.toHex(data).match(/.{1,32}/g)) !== null && _ArrayBuffers_toHex_match !== void 0 ? _ArrayBuffers_toHex_match : []).map(function (v, i) {
|
|
5
|
-
var idxPrefix = "".concat(i.toString(16).padStart(8, "0"), ":");
|
|
6
5
|
var _v_match;
|
|
6
|
+
var idxPrefix = "".concat(i.toString(16).padStart(8, "0"), ":");
|
|
7
7
|
var content = Array.from((_v_match = v.match(/.{4}/g)) !== null && _v_match !== void 0 ? _v_match : []).join(" ");
|
|
8
8
|
var chars = Array.from(new Uint8Array(ArrayBuffers.fromHex(v).buffer)).map(function (v) {
|
|
9
9
|
var c = String.fromCharCode(v);
|
package/lib/io/parseDataUri.js
CHANGED
|
@@ -107,9 +107,17 @@ function _ts_generator(thisArg, body) {
|
|
|
107
107
|
},
|
|
108
108
|
trys: [],
|
|
109
109
|
ops: []
|
|
110
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
111
|
-
return
|
|
112
|
-
|
|
110
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
111
|
+
return d(g, "next", {
|
|
112
|
+
value: verb(0)
|
|
113
|
+
}), d(g, "throw", {
|
|
114
|
+
value: verb(1)
|
|
115
|
+
}), d(g, "return", {
|
|
116
|
+
value: verb(2)
|
|
117
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
118
|
+
value: function () {
|
|
119
|
+
return this;
|
|
120
|
+
}
|
|
113
121
|
}), g;
|
|
114
122
|
function verb(n) {
|
|
115
123
|
return function (v) {
|