@haskou/value-objects 2.10.0 → 2.10.1
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/UniqueObjectArray.d.ts.map +1 -1
- package/dist/value-objects/ids/ShortId.d.ts +1 -0
- package/dist/value-objects/ids/ShortId.d.ts.map +1 -1
- package/dist/value-objects/ids/ShortId.js +7 -3
- package/dist/value-objects/ids/ShortId.js.map +1 -1
- package/dist/value-objects/ids/UUID.d.ts +1 -0
- package/dist/value-objects/ids/UUID.d.ts.map +1 -1
- package/dist/value-objects/ids/UUID.js +15 -2
- package/dist/value-objects/ids/UUID.js.map +1 -1
- package/package.json +34 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniqueObjectArray.d.ts","sourceRoot":"","sources":["../../src/value-objects/UniqueObjectArray.ts"],"names":[],"mappings":"AAAA,UAAU,cAAc;IACtB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;CACjC;AACD,qBAAa,iBAAiB,
|
|
1
|
+
{"version":3,"file":"UniqueObjectArray.d.ts","sourceRoot":"","sources":["../../src/value-objects/UniqueObjectArray.ts"],"names":[],"mappings":"AAAA,UAAU,cAAc;IACtB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;CACjC;AACD,qBAAa,iBAAiB,CAC5B,CAAC,SAAS,cAAc,CACxB,YAAW,QAAQ,CAAC,CAAC,CAAC;IACtB,OAAO,CAAC,KAAK,CAAW;WAEV,SAAS,CAAC,CAAC,SAAS,cAAc,EAC9C,KAAK,EAAE,CAAC,EAAE,GACT,iBAAiB,CAAC,CAAC,CAAC;IAShB,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO;IAI1B,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO;IAUtB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO;IAYxB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;IAIhC,MAAM,IAAI,MAAM;IAIhB,OAAO,IAAI,CAAC,EAAE;CAGtB"}
|
|
@@ -3,6 +3,7 @@ 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 generateObjectIdHex;
|
|
6
7
|
static generate(): ShortId;
|
|
7
8
|
constructor(value: string | StringValueObject);
|
|
8
9
|
private ensureIsShortId;
|
|
@@ -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":"AAKA,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;WAOpB,QAAQ,IAAI,OAAO;gBAIrB,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAS7C,OAAO,CAAC,eAAe;CAOxB"}
|
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ShortId = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const bson_objectid_1 = tslib_1.__importDefault(require("bson-objectid"));
|
|
6
4
|
const InvalidFormatError_1 = require("../../errors/InvalidFormatError");
|
|
7
5
|
const InvalidLengthError_1 = require("../../errors/InvalidLengthError");
|
|
8
6
|
const patterns_1 = require("../../patterns");
|
|
7
|
+
const CryptoAdapter_1 = require("../crypto/CryptoAdapter");
|
|
9
8
|
const NullObject_1 = require("../NullObject");
|
|
10
9
|
const ValueObject_1 = require("../ValueObject");
|
|
11
10
|
class ShortId extends ValueObject_1.ValueObject {
|
|
12
11
|
static LENGTH = 24;
|
|
13
12
|
static PATTERN = new RegExp(`[a-zA-Z0-9]{${this.LENGTH}}$`);
|
|
13
|
+
static generateObjectIdHex() {
|
|
14
|
+
const bytes = CryptoAdapter_1.CryptoAdapter.randomBytes(12);
|
|
15
|
+
bytes.writeUInt32BE(Math.floor(Date.now() / 1000), 0);
|
|
16
|
+
return bytes.toString('hex');
|
|
17
|
+
}
|
|
14
18
|
static generate() {
|
|
15
|
-
return new ShortId(
|
|
19
|
+
return new ShortId(ShortId.generateObjectIdHex());
|
|
16
20
|
}
|
|
17
21
|
constructor(value) {
|
|
18
22
|
super(value?.valueOf());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShortId.js","sourceRoot":"","sources":["../../../src/value-objects/ids/ShortId.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ShortId.js","sourceRoot":"","sources":["../../../src/value-objects/ids/ShortId.ts"],"names":[],"mappings":";;;AAAA,wEAAqE;AACrE,wEAAqE;AACrE,6CAAwC;AACxC,2DAAwD;AACxD,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,KAAK,GAAG,6BAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC5C,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtD,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;;AA9BH,0BA+BC"}
|
|
@@ -3,6 +3,7 @@ import { ValueObject } from '../ValueObject';
|
|
|
3
3
|
export declare class UUID extends ValueObject<string> {
|
|
4
4
|
private static readonly LENGTH;
|
|
5
5
|
private static readonly PATTERN;
|
|
6
|
+
private static fromRandomBytes;
|
|
6
7
|
static generate(): UUID;
|
|
7
8
|
constructor(value: string | StringValueObject);
|
|
8
9
|
private ensureIsUUID;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UUID.d.ts","sourceRoot":"","sources":["../../../src/value-objects/ids/UUID.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UUID.d.ts","sourceRoot":"","sources":["../../../src/value-objects/ids/UUID.ts"],"names":[],"mappings":"AAKA,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,CAA6C;IAE5E,OAAO,CAAC,MAAM,CAAC,eAAe;WAgBhB,QAAQ,IAAI,IAAI;gBAIlB,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAS7C,OAAO,CAAC,YAAY;CAOrB"}
|
|
@@ -1,17 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UUID = void 0;
|
|
4
|
-
const uuid_1 = require("uuid");
|
|
5
4
|
const InvalidFormatError_1 = require("../../errors/InvalidFormatError");
|
|
6
5
|
const InvalidLengthError_1 = require("../../errors/InvalidLengthError");
|
|
7
6
|
const patterns_1 = require("../../patterns");
|
|
7
|
+
const CryptoAdapter_1 = require("../crypto/CryptoAdapter");
|
|
8
8
|
const NullObject_1 = require("../NullObject");
|
|
9
9
|
const ValueObject_1 = require("../ValueObject");
|
|
10
10
|
class UUID extends ValueObject_1.ValueObject {
|
|
11
11
|
static LENGTH = 36;
|
|
12
12
|
static PATTERN = new RegExp(`^[a-z0-9-]{${this.LENGTH}}$`);
|
|
13
|
+
static fromRandomBytes(bytes) {
|
|
14
|
+
const uuidBytes = Buffer.from(bytes);
|
|
15
|
+
uuidBytes[6] = (uuidBytes[6] % 16) + 64;
|
|
16
|
+
uuidBytes[8] = (uuidBytes[8] % 64) + 128;
|
|
17
|
+
const hex = uuidBytes.toString('hex');
|
|
18
|
+
return [
|
|
19
|
+
hex.slice(0, 8),
|
|
20
|
+
hex.slice(8, 12),
|
|
21
|
+
hex.slice(12, 16),
|
|
22
|
+
hex.slice(16, 20),
|
|
23
|
+
hex.slice(20),
|
|
24
|
+
].join('-');
|
|
25
|
+
}
|
|
13
26
|
static generate() {
|
|
14
|
-
return new UUID((
|
|
27
|
+
return new UUID(UUID.fromRandomBytes(CryptoAdapter_1.CryptoAdapter.randomBytes(16)));
|
|
15
28
|
}
|
|
16
29
|
constructor(value) {
|
|
17
30
|
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,wEAAqE;AACrE,wEAAqE;AACrE,6CAAwC;AACxC,2DAAwD;AACxD,8CAA2C;AAE3C,gDAA6C;AAE7C,MAAa,IAAK,SAAQ,yBAAmB;IACnC,MAAM,CAAU,MAAM,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAU,OAAO,GAAG,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IAEpE,MAAM,CAAC,eAAe,CAAC,KAAa;QAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QACxC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QAEzC,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEtC,OAAO;YACL,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YAChB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;YACjB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;YACjB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;SACd,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,QAAQ;QACpB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,6BAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,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,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,uCAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;;AAvCH,oBAwCC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haskou/value-objects",
|
|
3
|
-
"version": "2.10.
|
|
3
|
+
"version": "2.10.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"require": "./dist/index.js",
|
|
10
|
+
"default": "./dist/index.js"
|
|
11
|
+
},
|
|
12
|
+
"./package.json": "./package.json"
|
|
13
|
+
},
|
|
6
14
|
"files": [
|
|
7
15
|
"dist"
|
|
8
16
|
],
|
|
17
|
+
"sideEffects": false,
|
|
9
18
|
"license": "MIT",
|
|
19
|
+
"engines": {
|
|
20
|
+
"node": ">=20.19.0"
|
|
21
|
+
},
|
|
10
22
|
"publishConfig": {
|
|
11
23
|
"access": "public"
|
|
12
24
|
},
|
|
@@ -22,41 +34,32 @@
|
|
|
22
34
|
"lint": "eslint ./src --ext .ts",
|
|
23
35
|
"lint:fix": "eslint ./src --ext .ts --fix",
|
|
24
36
|
"test": "yarn lint && yarn test:unit",
|
|
25
|
-
"test:unit": "jest --
|
|
37
|
+
"test:unit": "jest --runInBand",
|
|
26
38
|
"test:coverage": "NODE_ENV=test jest --collect-coverage",
|
|
27
|
-
"build": "rm -rf dist/ && tsc"
|
|
28
|
-
"publish:patch": "yarn lint && yarn test:coverage && tsc --declaration --outDir dist && yarn version --patch && yarn publish && git push",
|
|
29
|
-
"publish:minor": "yarn lint && yarn test:coverage && tsc --declaration --outDir dist && yarn version --minor && yarn publish && git push",
|
|
30
|
-
"publish:major": "yarn lint && yarn test:coverage && tsc --declaration --outDir dist && yarn version --major && yarn publish && git push"
|
|
31
|
-
},
|
|
32
|
-
"devDependencies": {
|
|
33
|
-
"@types/jest": "^30.0.0",
|
|
34
|
-
"@types/node": "^24.0.13",
|
|
35
|
-
"@types/uuid": "8",
|
|
36
|
-
"@typescript-eslint/eslint-plugin": "6.20.0",
|
|
37
|
-
"@typescript-eslint/parser": "6.20.0",
|
|
38
|
-
"eslint": "8.57.0",
|
|
39
|
-
"eslint-config-prettier": "^10.1.5",
|
|
40
|
-
"eslint-plugin-perfectionist": "^4.15.0",
|
|
41
|
-
"eslint-plugin-prettier": "^5.5.1",
|
|
42
|
-
"eslint-plugin-sonarjs": "^3.0.4",
|
|
43
|
-
"eslint-plugin-unused-imports": "^4.1.4",
|
|
44
|
-
"faker": "^6.6.6",
|
|
45
|
-
"jest": "^30.0.4",
|
|
46
|
-
"jest-extended": "^6.0.0",
|
|
47
|
-
"jest-runner-tsc": "^1.6.0",
|
|
48
|
-
"prettier": "^3.6.2",
|
|
49
|
-
"prettier-eslint": "^16.4.2",
|
|
50
|
-
"ts-jest": "^29.4.0",
|
|
51
|
-
"ts-node": "^10.9.2",
|
|
52
|
-
"typescript": "^5.8.3"
|
|
39
|
+
"build": "rm -rf dist/ && tsc"
|
|
53
40
|
},
|
|
54
41
|
"dependencies": {
|
|
55
42
|
"@noble/ciphers": "^2.2.0",
|
|
56
|
-
"@noble/curves": "^2.0
|
|
43
|
+
"@noble/curves": "^2.2.0",
|
|
57
44
|
"@noble/hashes": "^2.0.1",
|
|
58
|
-
"bson-objectid": "^2.0.4",
|
|
59
45
|
"buffer": "^6.0.3",
|
|
60
|
-
"
|
|
46
|
+
"tslib": "^2.8.1"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/jest": "^30.0.0",
|
|
50
|
+
"@types/node": "^25.9.3",
|
|
51
|
+
"@typescript-eslint/eslint-plugin": "8.61.0",
|
|
52
|
+
"@typescript-eslint/parser": "8.61.0",
|
|
53
|
+
"eslint": "10.4.1",
|
|
54
|
+
"eslint-config-prettier": "^10.1.8",
|
|
55
|
+
"eslint-plugin-perfectionist": "^5.9.0",
|
|
56
|
+
"eslint-plugin-prettier": "^5.5.6",
|
|
57
|
+
"eslint-plugin-sonarjs": "^4.0.3",
|
|
58
|
+
"eslint-plugin-unused-imports": "^4.4.1",
|
|
59
|
+
"jest": "^30.4.2",
|
|
60
|
+
"jest-extended": "^7.0.0",
|
|
61
|
+
"prettier": "^3.8.4",
|
|
62
|
+
"ts-jest": "^29.4.11",
|
|
63
|
+
"typescript": "^6.0.3"
|
|
61
64
|
}
|
|
62
65
|
}
|