@bearei/server-common 0.0.218 → 0.0.219
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/access/access.guard.js +5 -5
- package/dist/access/access.guard.js.map +1 -1
- package/dist/external/external.service.js +2 -5
- package/dist/external/external.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/sign/sign.utils.d.ts +5 -3
- package/dist/utils/sign/sign.utils.js +29 -15
- package/dist/utils/sign/sign.utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
export declare const
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
1
|
+
export declare const buildCanonicalString: (object: Record<string, string | number>) => string;
|
|
2
|
+
export declare const createHmacSigner: (secret: string) => (data: Record<string, string>) => string;
|
|
3
|
+
export declare const createHmacVerifier: (secret: string) => (data: Record<string, string>) => (signature: string) => boolean;
|
|
4
|
+
export declare const createHashSigner: (saltRounds?: number) => (data: Record<string, string>) => Promise<string>;
|
|
5
|
+
export declare const verifyHashSignature: (data: Record<string, string> | string) => (hash: string) => Promise<boolean>;
|
|
@@ -23,31 +23,45 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.verifyHashSignature = exports.createHashSigner = exports.createHmacVerifier = exports.createHmacSigner = exports.buildCanonicalString = void 0;
|
|
27
27
|
const bcrypt = __importStar(require("bcrypt"));
|
|
28
|
+
const crypto = __importStar(require("crypto"));
|
|
28
29
|
const exception_1 = require("../../exception");
|
|
29
|
-
const
|
|
30
|
+
const buildCanonicalString = (object) => {
|
|
30
31
|
const signString = Object.entries(object)
|
|
31
32
|
.sort((a, b) => a[0].toLowerCase().localeCompare(b[0].toLowerCase()))
|
|
32
33
|
.reduce((accumulator, [_, value]) => (value ? `${accumulator}&${value}` : accumulator), '');
|
|
33
|
-
|
|
34
|
+
return signString;
|
|
35
|
+
};
|
|
36
|
+
exports.buildCanonicalString = buildCanonicalString;
|
|
37
|
+
const createHmacSigner = (secret) => {
|
|
38
|
+
return (data) => {
|
|
39
|
+
const message = (0, exports.buildCanonicalString)(data);
|
|
40
|
+
return crypto.createHmac('sha256', secret).update(message).digest('hex');
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
exports.createHmacSigner = createHmacSigner;
|
|
44
|
+
const createHmacVerifier = (secret) => {
|
|
45
|
+
const signer = (0, exports.createHmacSigner)(secret);
|
|
46
|
+
return (data) => (signature) => signer(data) === signature;
|
|
47
|
+
};
|
|
48
|
+
exports.createHmacVerifier = createHmacVerifier;
|
|
49
|
+
const createHashSigner = (saltRounds = 10) => async (data) => {
|
|
50
|
+
const str = (0, exports.buildCanonicalString)(data);
|
|
51
|
+
const byteLength = Buffer.byteLength(str, 'utf8');
|
|
52
|
+
if (byteLength > 72) {
|
|
34
53
|
(0, exception_1.throwHTTPException)({
|
|
35
54
|
code: exception_1.HTTP_EXCEPTION_CODE.SIGNATURE_STRING_LENGTH_LIMIT,
|
|
36
|
-
message: '
|
|
55
|
+
message: 'Input string exceeds bcrypt maximum length of 72 bytes.'
|
|
37
56
|
})(exception_1.HTTP_EXCEPTION.BAD_REQUEST);
|
|
38
57
|
}
|
|
39
|
-
return signString;
|
|
40
|
-
};
|
|
41
|
-
exports.buildSignatureString = buildSignatureString;
|
|
42
|
-
const sign = (saltRounds = 10) => async (object) => {
|
|
43
|
-
const sign = (0, exports.buildSignatureString)(object);
|
|
44
58
|
const salt = await bcrypt.genSalt(saltRounds);
|
|
45
|
-
return bcrypt.hash(
|
|
59
|
+
return bcrypt.hash(str, salt);
|
|
46
60
|
};
|
|
47
|
-
exports.
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
return async (hash) => bcrypt.compare(
|
|
61
|
+
exports.createHashSigner = createHashSigner;
|
|
62
|
+
const verifyHashSignature = (data) => {
|
|
63
|
+
const str = typeof data === 'string' ? data : (0, exports.buildCanonicalString)(data);
|
|
64
|
+
return async (hash) => bcrypt.compare(str, hash);
|
|
51
65
|
};
|
|
52
|
-
exports.
|
|
66
|
+
exports.verifyHashSignature = verifyHashSignature;
|
|
53
67
|
//# sourceMappingURL=sign.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign.utils.js","sourceRoot":"","sources":["../../../src/utils/sign/sign.utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgC;AAChC,+CAAuF;AAEhF,MAAM,oBAAoB,GAAG,CAAC,MAAuC,EAAE,EAAE;IAC/E,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;SACpE,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,WAAW,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAA;IAE5F,
|
|
1
|
+
{"version":3,"file":"sign.utils.js","sourceRoot":"","sources":["../../../src/utils/sign/sign.utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgC;AAChC,+CAAgC;AAChC,+CAAuF;AAEhF,MAAM,oBAAoB,GAAG,CAAC,MAAuC,EAAE,EAAE;IAC/E,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;SACpE,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,WAAW,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAA;IAE5F,OAAO,UAAU,CAAA;AAClB,CAAC,CAAA;AANY,QAAA,oBAAoB,wBAMhC;AAEM,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;IAClD,OAAO,CAAC,IAA4B,EAAU,EAAE;QAC/C,MAAM,OAAO,GAAG,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAA;QAE1C,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACzE,CAAC,CAAA;AACF,CAAC,CAAA;AANY,QAAA,gBAAgB,oBAM5B;AAEM,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAE,EAAE;IACpD,MAAM,MAAM,GAAG,IAAA,wBAAgB,EAAC,MAAM,CAAC,CAAA;IAEvC,OAAO,CAAC,IAA4B,EAAE,EAAE,CAAC,CAAC,SAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,CAAA;AAC3F,CAAC,CAAA;AAJY,QAAA,kBAAkB,sBAI9B;AAEM,MAAM,gBAAgB,GAC5B,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE,CACpB,KAAK,EAAE,IAA4B,EAAE,EAAE;IACtC,MAAM,GAAG,GAAG,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAA;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAEjD,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;QACrB,IAAA,8BAAkB,EAAC;YAClB,IAAI,EAAE,+BAAmB,CAAC,6BAA6B;YACvD,OAAO,EAAE,yDAAyD;SAClE,CAAC,CAAC,0BAAc,CAAC,WAAW,CAAC,CAAA;IAC/B,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAE7C,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AAC9B,CAAC,CAAA;AAhBW,QAAA,gBAAgB,oBAgB3B;AAEK,MAAM,mBAAmB,GAAG,CAAC,IAAqC,EAAE,EAAE;IAC5E,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAA;IAExE,OAAO,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACzD,CAAC,CAAA;AAJY,QAAA,mBAAmB,uBAI/B"}
|