@haskou/value-objects 6.1.0 → 6.1.2
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/dist/value-objects/ids/ShortId.d.ts +0 -1
- package/dist/value-objects/ids/ShortId.d.ts.map +1 -1
- package/dist/value-objects/ids/ShortId.js +6 -6
- package/dist/value-objects/ids/ShortId.js.map +1 -1
- package/dist/value-objects/ids/UUID.d.ts +0 -2
- package/dist/value-objects/ids/UUID.d.ts.map +1 -1
- package/dist/value-objects/ids/UUID.js +2 -20
- package/dist/value-objects/ids/UUID.js.map +1 -1
- package/package.json +3 -2
|
@@ -3,7 +3,6 @@ import { ValueObject } from '../ValueObject';
|
|
|
3
3
|
export declare class ShortId extends ValueObject<string> {
|
|
4
4
|
private static readonly LENGTH;
|
|
5
5
|
private static readonly PATTERN;
|
|
6
|
-
private static randomBytes;
|
|
7
6
|
private static generateObjectIdHex;
|
|
8
7
|
static generate(): ShortId;
|
|
9
8
|
constructor(value: string | StringValueObject);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShortId.d.ts","sourceRoot":"","sources":["../../../src/value-objects/ids/ShortId.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ShortId.d.ts","sourceRoot":"","sources":["../../../src/value-objects/ids/ShortId.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,OAAQ,SAAQ,WAAW,CAAC,MAAM,CAAC;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAM;IACpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAA8C;IAE7E,OAAO,CAAC,MAAM,CAAC,mBAAmB;WAWpB,QAAQ,IAAI,OAAO;gBAIrB,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAS7C,OAAO,CAAC,eAAe;CAOxB"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ShortId = void 0;
|
|
4
4
|
const buffer_1 = require("buffer");
|
|
5
|
+
const uuid_1 = require("uuid");
|
|
5
6
|
const InvalidFormatError_1 = require("../../errors/InvalidFormatError");
|
|
6
7
|
const InvalidLengthError_1 = require("../../errors/InvalidLengthError");
|
|
7
8
|
const patterns_1 = require("../../patterns");
|
|
@@ -10,14 +11,13 @@ const ValueObject_1 = require("../ValueObject");
|
|
|
10
11
|
class ShortId extends ValueObject_1.ValueObject {
|
|
11
12
|
static LENGTH = 24;
|
|
12
13
|
static PATTERN = new RegExp(`[a-zA-Z0-9]{${this.LENGTH}}$`);
|
|
13
|
-
static randomBytes(size) {
|
|
14
|
-
const bytes = new Uint8Array(size);
|
|
15
|
-
globalThis.crypto.getRandomValues(bytes);
|
|
16
|
-
return buffer_1.Buffer.from(bytes);
|
|
17
|
-
}
|
|
18
14
|
static generateObjectIdHex() {
|
|
19
|
-
const
|
|
15
|
+
const random = (0, uuid_1.parse)((0, uuid_1.v4)());
|
|
16
|
+
const bytes = buffer_1.Buffer.alloc(12);
|
|
20
17
|
bytes.writeUInt32BE(Math.floor(Date.now() / 1000), 0);
|
|
18
|
+
// Keep eight fully random bytes, excluding the UUID version/variant bytes.
|
|
19
|
+
bytes.set(random.subarray(0, 6), 4);
|
|
20
|
+
bytes.set(random.subarray(9, 11), 10);
|
|
21
21
|
return bytes.toString('hex');
|
|
22
22
|
}
|
|
23
23
|
static generate() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShortId.js","sourceRoot":"","sources":["../../../src/value-objects/ids/ShortId.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;
|
|
1
|
+
{"version":3,"file":"ShortId.js","sourceRoot":"","sources":["../../../src/value-objects/ids/ShortId.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,+BAA2C;AAE3C,wEAAqE;AACrE,wEAAqE;AACrE,6CAAwC;AACxC,8CAA2C;AAE3C,gDAA6C;AAE7C,MAAa,OAAQ,SAAQ,yBAAmB;IACtC,MAAM,CAAU,MAAM,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAU,OAAO,GAAG,IAAI,MAAM,CAAC,eAAe,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IAErE,MAAM,CAAC,mBAAmB;QAChC,MAAM,MAAM,GAAG,IAAA,YAAK,EAAC,IAAA,SAAM,GAAE,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,eAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/B,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,2EAA2E;QAC3E,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAEtC,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEM,MAAM,CAAC,QAAQ;QACpB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,YAAY,KAAiC;QAC3C,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAExB,IAAI,uBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAEO,eAAe,CAAC,KAAa;QACnC,IAAA,iBAAM,EACJ,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAC/B,IAAI,uCAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CACnD,CAAC;QACF,IAAA,iBAAM,EAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,uCAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;;AAlCH,0BAmCC"}
|
|
@@ -4,8 +4,6 @@ export declare class UUID extends ValueObject<string> {
|
|
|
4
4
|
private static readonly LENGTH;
|
|
5
5
|
private static readonly PATTERN;
|
|
6
6
|
private static readonly SENTINEL_PATTERN;
|
|
7
|
-
private static randomBytes;
|
|
8
|
-
private static fromRandomBytes;
|
|
9
7
|
static generate(): UUID;
|
|
10
8
|
constructor(value: string | StringValueObject);
|
|
11
9
|
private ensureIsUUID;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UUID.d.ts","sourceRoot":"","sources":["../../../src/value-objects/ids/UUID.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,IAAK,SAAQ,WAAW,CAAC,MAAM,CAAC;IAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAM;IACpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CACgD;IAE/E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAC6C;
|
|
1
|
+
{"version":3,"file":"UUID.d.ts","sourceRoot":"","sources":["../../../src/value-objects/ids/UUID.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,IAAK,SAAQ,WAAW,CAAC,MAAM,CAAC;IAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAM;IACpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CACgD;IAE/E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAC6C;WAEvE,QAAQ,IAAI,IAAI;gBAIlB,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAS7C,OAAO,CAAC,YAAY;CAUrB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UUID = void 0;
|
|
4
|
-
const
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
5
|
const InvalidFormatError_1 = require("../../errors/InvalidFormatError");
|
|
6
6
|
const InvalidLengthError_1 = require("../../errors/InvalidLengthError");
|
|
7
7
|
const patterns_1 = require("../../patterns");
|
|
@@ -11,26 +11,8 @@ class UUID extends ValueObject_1.ValueObject {
|
|
|
11
11
|
static LENGTH = 36;
|
|
12
12
|
static PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
13
13
|
static SENTINEL_PATTERN = /^(?:00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;
|
|
14
|
-
static randomBytes(size) {
|
|
15
|
-
const bytes = new Uint8Array(size);
|
|
16
|
-
globalThis.crypto.getRandomValues(bytes);
|
|
17
|
-
return buffer_1.Buffer.from(bytes);
|
|
18
|
-
}
|
|
19
|
-
static fromRandomBytes(bytes) {
|
|
20
|
-
const uuidBytes = buffer_1.Buffer.from(bytes);
|
|
21
|
-
uuidBytes[6] = (uuidBytes[6] % 16) + 64;
|
|
22
|
-
uuidBytes[8] = (uuidBytes[8] % 64) + 128;
|
|
23
|
-
const hex = uuidBytes.toString('hex');
|
|
24
|
-
return [
|
|
25
|
-
hex.slice(0, 8),
|
|
26
|
-
hex.slice(8, 12),
|
|
27
|
-
hex.slice(12, 16),
|
|
28
|
-
hex.slice(16, 20),
|
|
29
|
-
hex.slice(20),
|
|
30
|
-
].join('-');
|
|
31
|
-
}
|
|
32
14
|
static generate() {
|
|
33
|
-
return new UUID(
|
|
15
|
+
return new UUID((0, uuid_1.v4)());
|
|
34
16
|
}
|
|
35
17
|
constructor(value) {
|
|
36
18
|
super(value?.valueOf());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UUID.js","sourceRoot":"","sources":["../../../src/value-objects/ids/UUID.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"UUID.js","sourceRoot":"","sources":["../../../src/value-objects/ids/UUID.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAEpC,wEAAqE;AACrE,wEAAqE;AACrE,6CAAwC;AACxC,8CAA2C;AAE3C,gDAA6C;AAE7C,MAAa,IAAK,SAAQ,yBAAmB;IACnC,MAAM,CAAU,MAAM,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAU,OAAO,GAC7B,4EAA4E,CAAC;IAEvE,MAAM,CAAU,gBAAgB,GACtC,kFAAkF,CAAC;IAE9E,MAAM,CAAC,QAAQ;QACpB,OAAO,IAAI,IAAI,CAAC,IAAA,SAAM,GAAE,CAAC,CAAC;IAC5B,CAAC;IAED,YAAY,KAAiC;QAC3C,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAExB,IAAI,uBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAEO,YAAY,CAAC,KAAa;QAChC,IAAA,iBAAM,EACJ,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAC5B,IAAI,uCAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAChD,CAAC;QACF,IAAA,iBAAM,EACJ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAC7D,IAAI,uCAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CACnC,CAAC;IACJ,CAAC;;AA9BH,oBA+BC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haskou/value-objects",
|
|
3
|
-
"version": "6.1.
|
|
3
|
+
"version": "6.1.2",
|
|
4
4
|
"description": "TypeScript value objects for validated, immutable primitive values and small domain-safe data structures.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -61,7 +61,8 @@
|
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
63
|
"buffer": "^6.0.3",
|
|
64
|
-
"tslib": "^2.8.1"
|
|
64
|
+
"tslib": "^2.8.1",
|
|
65
|
+
"uuid": "^11.1.1"
|
|
65
66
|
},
|
|
66
67
|
"devDependencies": {
|
|
67
68
|
"@haskou/eslint-config": "^0.2.2",
|