@meebon/meebon-crypto 1.3.0 → 1.4.0
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.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RequestHandler } from 'express';
|
|
1
|
+
import { Request, Response, NextFunction, RequestHandler } from 'express';
|
|
2
2
|
import { MeebonCryptoKeyPair } from '../types/global';
|
|
3
3
|
/**
|
|
4
4
|
* Middleware to encrypt response bodies if the request header 'x-require-encryption' is present.
|
|
@@ -38,6 +38,6 @@ declare function encryptionMiddleware({ publicKey }: Omit<MeebonCryptoKeyPair, "
|
|
|
38
38
|
* @param {string} param.privateKey - The private key used for decryption.
|
|
39
39
|
* @returns {RequestHandler} The middleware function.
|
|
40
40
|
*/
|
|
41
|
-
declare function decryptMiddleware({ privateKey }: Omit<MeebonCryptoKeyPair, "publicKey">):
|
|
41
|
+
declare function decryptMiddleware({ privateKey }: Omit<MeebonCryptoKeyPair, "publicKey">): (req: Request, res: Response, next: NextFunction) => void;
|
|
42
42
|
export { encryptionMiddleware, decryptMiddleware };
|
|
43
43
|
//# sourceMappingURL=ExpressEncryptionMiddleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpressEncryptionMiddleware.d.ts","sourceRoot":"","sources":["../lib/ExpressEncryptionMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"ExpressEncryptionMiddleware.d.ts","sourceRoot":"","sources":["../lib/ExpressEncryptionMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAqC,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEzF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,iBAAS,oBAAoB,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC,GAAG,cAAc,CAkBpG;AAID;;;;;;;;;;;;GAYG;AACH,iBAAS,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,IACvE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UAWxD;AAED,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -84,31 +84,23 @@ function encryptionMiddleware({ publicKey }) {
|
|
|
84
84
|
const originalSend = res.send.bind(res);
|
|
85
85
|
const originalJson = res.json.bind(res);
|
|
86
86
|
res.send = function(body) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return originalSend(encryptedBody);
|
|
92
|
-
} else {
|
|
93
|
-
return originalSend(body);
|
|
94
|
-
}
|
|
87
|
+
let bodyString = typeof body === "object" ? JSON.stringify(body) : body.toString();
|
|
88
|
+
const encryptedBody = MeebonCrypto.encryptData(bodyString, publicKey);
|
|
89
|
+
res.set("Content-Type", "text/plain");
|
|
90
|
+
return originalSend(encryptedBody);
|
|
95
91
|
};
|
|
96
92
|
res.json = function(body) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
return originalSend(encryptedBody);
|
|
102
|
-
} else {
|
|
103
|
-
return originalJson(body);
|
|
104
|
-
}
|
|
93
|
+
const bodyString = JSON.stringify(body);
|
|
94
|
+
const encryptedBody = MeebonCrypto.encryptData(bodyString, publicKey);
|
|
95
|
+
res.set("Content-Type", "text/plain");
|
|
96
|
+
return originalSend(encryptedBody);
|
|
105
97
|
};
|
|
106
98
|
next();
|
|
107
99
|
};
|
|
108
100
|
}
|
|
109
101
|
function decryptMiddleware({ privateKey }) {
|
|
110
102
|
return (req, res, next) => {
|
|
111
|
-
if (
|
|
103
|
+
if (typeof req.body === "string") {
|
|
112
104
|
try {
|
|
113
105
|
const decryptedText = MeebonCrypto.decryptData(req.body, privateKey);
|
|
114
106
|
req.body = JSON.parse(decryptedText);
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meebon/meebon-crypto",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "kajalanS <103587022+kajalanS@users.noreply.github.com>",
|
|
6
6
|
"homepage": "https://github.com/KsoftmHub/meebon-crypto?tab=readme-ov-file#getting-started",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"main": "dist/index.js",
|
|
9
9
|
"type": "module",
|
|
10
|
-
"types": "
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
11
|
"directories": {
|
|
12
12
|
"lib": "lib",
|
|
13
13
|
"tests": "tests",
|
package/types/global.d.ts
CHANGED
|
@@ -10,3 +10,11 @@ export interface MeebonCryptoKeyPair {
|
|
|
10
10
|
privateKey: string;
|
|
11
11
|
publicKey: string;
|
|
12
12
|
}
|
|
13
|
+
|
|
14
|
+
export interface IDecryptRequest extends Request {
|
|
15
|
+
decrypt: (data: any) => any;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface IEncryptResponse extends Response {
|
|
19
|
+
encrypt: (data: any) => any;
|
|
20
|
+
}
|