@nestia/fetcher 2.4.2 → 2.4.3
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/AesPkcs5.js.map +1 -1
- package/lib/EncryptedFetcher.js +6 -6
- package/lib/EncryptedFetcher.js.map +1 -1
- package/lib/HttpError.js.map +1 -1
- package/lib/IConnection.js +0 -1
- package/lib/IConnection.js.map +1 -1
- package/lib/PlainFetcher.d.ts +1 -1
- package/lib/PlainFetcher.js +2 -4
- package/lib/PlainFetcher.js.map +1 -1
- package/lib/internal/FetcherBase.d.ts +1 -1
- package/lib/internal/FetcherBase.js +2 -4
- package/lib/internal/FetcherBase.js.map +1 -1
- package/lib/internal/Singleton.js.map +1 -1
- package/package.json +2 -4
- package/src/AesPkcs5.ts +34 -34
- package/src/EncryptedFetcher.ts +143 -162
- package/src/HttpError.ts +85 -85
- package/src/IConnection.ts +237 -238
- package/src/IEncryptionPassword.ts +29 -29
- package/src/IPropagation.ts +102 -103
- package/src/IRandomGenerator.ts +38 -38
- package/src/PlainFetcher.ts +106 -122
- package/src/Primitive.ts +135 -135
- package/src/Resolved.ts +116 -116
- package/src/index.ts +7 -7
- package/src/internal/FetcherBase.ts +180 -192
- package/src/internal/IFetchRoute.ts +46 -46
- package/src/internal/Singleton.ts +20 -20
package/lib/AesPkcs5.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AesPkcs5.js","sourceRoot":"","sources":["../src/AesPkcs5.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA4B;AAE5B;;;;;;;;;GASG;AACH,IAAiB,QAAQ,CAqCxB;AArCD,WAAiB,QAAQ;
|
|
1
|
+
{"version":3,"file":"AesPkcs5.js","sourceRoot":"","sources":["../src/AesPkcs5.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA4B;AAE5B;;;;;;;;;GASG;AACH,IAAiB,QAAQ,CAqCxB;AArCD,WAAiB,QAAQ;IACvB;;;;;;;OAOG;IACH,SAAgB,OAAO,CAAC,IAAY,EAAE,GAAW,EAAE,EAAU;QAC3D,IAAM,KAAK,GAAW,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC,IAAM,MAAM,GAAkB,gBAAM,CAAC,cAAc,CACjD,cAAO,KAAK,SAAM,EAClB,GAAG,EACH,EAAE,CACH,CAAC;QACF,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxE,CAAC;IARe,gBAAO,UAQtB,CAAA;IAED;;;;;;;OAOG;IACH,SAAgB,OAAO,CAAC,IAAY,EAAE,GAAW,EAAE,EAAU;QAC3D,IAAM,KAAK,GAAW,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC,IAAM,QAAQ,GAAoB,gBAAM,CAAC,gBAAgB,CACvD,cAAO,KAAK,SAAM,EAClB,GAAG,EACH,EAAE,CACH,CAAC;QAEF,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1E,CAAC;IATe,gBAAO,UAStB,CAAA;AACH,CAAC,EArCgB,QAAQ,wBAAR,QAAQ,QAqCxB"}
|
package/lib/EncryptedFetcher.js
CHANGED
|
@@ -79,14 +79,14 @@ var EncryptedFetcher;
|
|
|
79
79
|
encode: ((_c = route.request) === null || _c === void 0 ? void 0 : _c.encrypted) === true
|
|
80
80
|
? function (input, headers) {
|
|
81
81
|
var p = closure("encode")(headers, input);
|
|
82
|
-
return AesPkcs5_1.AesPkcs5.encrypt(JSON.stringify(input), p.key, p.iv);
|
|
82
|
+
return AesPkcs5_1.AesPkcs5.encrypt((stringify !== null && stringify !== void 0 ? stringify : JSON.stringify)(input), p.key, p.iv);
|
|
83
83
|
}
|
|
84
84
|
: function (input) { return input; },
|
|
85
85
|
decode: ((_d = route.response) === null || _d === void 0 ? void 0 : _d.encrypted) === true
|
|
86
86
|
? function (input, headers) {
|
|
87
87
|
var p = closure("decode")(headers, input);
|
|
88
|
-
var
|
|
89
|
-
return
|
|
88
|
+
var s = AesPkcs5_1.AesPkcs5.decrypt(input, p.key, p.iv);
|
|
89
|
+
return s.length ? JSON.parse(s) : s;
|
|
90
90
|
}
|
|
91
91
|
: function (input) { return input; },
|
|
92
92
|
})(connection, route, input, stringify)];
|
|
@@ -118,14 +118,14 @@ var EncryptedFetcher;
|
|
|
118
118
|
encode: ((_c = route.request) === null || _c === void 0 ? void 0 : _c.encrypted) === true
|
|
119
119
|
? function (input, headers) {
|
|
120
120
|
var p = closure("encode")(headers, input);
|
|
121
|
-
return AesPkcs5_1.AesPkcs5.encrypt(JSON.stringify(input), p.key, p.iv);
|
|
121
|
+
return AesPkcs5_1.AesPkcs5.encrypt((stringify !== null && stringify !== void 0 ? stringify : JSON.stringify)(input), p.key, p.iv);
|
|
122
122
|
}
|
|
123
123
|
: function (input) { return input; },
|
|
124
124
|
decode: ((_d = route.response) === null || _d === void 0 ? void 0 : _d.encrypted) === true
|
|
125
125
|
? function (input, headers) {
|
|
126
126
|
var p = closure("decode")(headers, input);
|
|
127
|
-
var
|
|
128
|
-
return
|
|
127
|
+
var s = AesPkcs5_1.AesPkcs5.decrypt(input, p.key, p.iv);
|
|
128
|
+
return s.length ? JSON.parse(s) : s;
|
|
129
129
|
}
|
|
130
130
|
: function (input) { return input; },
|
|
131
131
|
})(connection, route, input, stringify)];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EncryptedFetcher.js","sourceRoot":"","sources":["../src/EncryptedFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAsC;AAKtC,sDAAqD;AAGrD;;;;;;;;;;;;;GAaG;AACH,IAAiB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"EncryptedFetcher.js","sourceRoot":"","sources":["../src/EncryptedFetcher.ts"],"names":[],"mappings":"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"}
|
package/lib/HttpError.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpError.js","sourceRoot":"","sources":["../src/HttpError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;;;;;GAMG;AACH;IAA+B,6BAAK;
|
|
1
|
+
{"version":3,"file":"HttpError.js","sourceRoot":"","sources":["../src/HttpError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;;;;;GAMG;AACH;IAA+B,6BAAK;IAMlC;;;;;;;OAOG;IACH,mBACkB,MAMN,EACM,IAAY,EACZ,MAAc,EACd,OAA0C,EAC1D,OAAe;;QAEf,YAAA,MAAK,YAAC,OAAO,CAAC,SAAC;QAZC,YAAM,GAAN,MAAM,CAMZ;QACM,UAAI,GAAJ,IAAI,CAAQ;QACZ,YAAM,GAAN,MAAM,CAAQ;QACd,aAAO,GAAP,OAAO,CAAmC;QAvB5D;;WAEG;QACK,WAAK,GAAQ,OAAO,CAAC;QAyB3B,uBAAuB;QACvB,IAAM,KAAK,GAAc,WAAW,SAAS,CAAC;QAC9C,IAAI,MAAM,CAAC,cAAc;YAAE,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,KAAK,CAAC,CAAC;;YACxD,KAAY,CAAC,SAAS,GAAG,KAAK,CAAC;;IACvC,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,0BAAM,GAAb;QACE,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO;YACxB,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;YAAC,WAAM,CAAC;gBACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,CAAC;QACH,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC;IACJ,CAAC;IACH,gBAAC;AAAD,CAAC,AA/DD,CAA+B,KAAK,GA+DnC;AA/DY,8BAAS;AA6EtB,IAAM,OAAO,GAAG,EAAS,CAAC"}
|
package/lib/IConnection.js
CHANGED
package/lib/IConnection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IConnection.js","sourceRoot":"","sources":["../src/IConnection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IConnection.js","sourceRoot":"","sources":["../src/IConnection.ts"],"names":[],"mappings":""}
|
package/lib/PlainFetcher.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IConnection } from "./IConnection";
|
|
2
|
+
import { IPropagation } from "./IPropagation";
|
|
2
3
|
import { Primitive } from "./Primitive";
|
|
3
4
|
import { IFetchRoute } from "./internal/IFetchRoute";
|
|
4
|
-
import { IPropagation } from "./IPropagation";
|
|
5
5
|
/**
|
|
6
6
|
* Utility class for `fetch` functions used in `@nestia/sdk`.
|
|
7
7
|
*
|
package/lib/PlainFetcher.js
CHANGED
|
@@ -59,8 +59,7 @@ var PlainFetcher;
|
|
|
59
59
|
var _a, _b;
|
|
60
60
|
return __awaiter(this, void 0, void 0, function () {
|
|
61
61
|
return __generator(this, function (_c) {
|
|
62
|
-
if (((_a = route.request) === null || _a === void 0 ? void 0 : _a.encrypted) === true ||
|
|
63
|
-
((_b = route.response) === null || _b === void 0 ? void 0 : _b.encrypted) === true)
|
|
62
|
+
if (((_a = route.request) === null || _a === void 0 ? void 0 : _a.encrypted) === true || ((_b = route.response) === null || _b === void 0 ? void 0 : _b.encrypted) === true)
|
|
64
63
|
throw new Error("Error on PlainFetcher.fetch(): PlainFetcher doesn't have encryption ability. Use EncryptedFetcher instead.");
|
|
65
64
|
return [2 /*return*/, FetcherBase_1.FetcherBase.fetch({
|
|
66
65
|
className: "PlainFetcher",
|
|
@@ -75,8 +74,7 @@ var PlainFetcher;
|
|
|
75
74
|
var _a, _b;
|
|
76
75
|
return __awaiter(this, void 0, void 0, function () {
|
|
77
76
|
return __generator(this, function (_c) {
|
|
78
|
-
if (((_a = route.request) === null || _a === void 0 ? void 0 : _a.encrypted) === true ||
|
|
79
|
-
((_b = route.response) === null || _b === void 0 ? void 0 : _b.encrypted) === true)
|
|
77
|
+
if (((_a = route.request) === null || _a === void 0 ? void 0 : _a.encrypted) === true || ((_b = route.response) === null || _b === void 0 ? void 0 : _b.encrypted) === true)
|
|
80
78
|
throw new Error("Error on PlainFetcher.propagate(): PlainFetcher doesn't have encryption ability. Use EncryptedFetcher instead.");
|
|
81
79
|
return [2 /*return*/, FetcherBase_1.FetcherBase.propagate({
|
|
82
80
|
className: "PlainFetcher",
|
package/lib/PlainFetcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlainFetcher.js","sourceRoot":"","sources":["../src/PlainFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"PlainFetcher.js","sourceRoot":"","sources":["../src/PlainFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,sDAAqD;AAGrD;;;;;;;;;;;;;;GAcG;AACH,IAAiB,YAAY,CAoF5B;AApFD,WAAiB,YAAY;IAuC3B,SAAsB,KAAK,CACzB,UAAuB,EACvB,KAAwE,EACxE,KAAa,EACb,SAAoC;;;;gBAEpC,IAAI,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,SAAS,MAAK,IAAI,IAAI,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,SAAS,MAAK,IAAI;oBACzE,MAAM,IAAI,KAAK,CACb,4GAA4G,CAC7G,CAAC;gBACJ,sBAAO,yBAAW,CAAC,KAAK,CAAC;wBACvB,SAAS,EAAE,cAAc;wBACzB,MAAM,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,EAAL,CAAK;wBACxB,MAAM,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,EAAL,CAAK;qBACzB,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAC;;;KACzC;IAfqB,kBAAK,QAe1B,CAAA;IAcD,SAAsB,SAAS,CAC7B,UAAuB,EACvB,KAAwE,EACxE,KAAa,EACb,SAAoC;;;;gBAEpC,IAAI,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,SAAS,MAAK,IAAI,IAAI,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,SAAS,MAAK,IAAI;oBACzE,MAAM,IAAI,KAAK,CACb,gHAAgH,CACjH,CAAC;gBACJ,sBAAO,yBAAW,CAAC,SAAS,CAAC;wBAC3B,SAAS,EAAE,cAAc;wBACzB,MAAM,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,EAAL,CAAK;wBACxB,MAAM,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,EAAL,CAAK;qBACzB,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAoB,EAAC;;;KAC5D;IAfqB,sBAAS,YAe9B,CAAA;AACH,CAAC,EApFgB,YAAY,4BAAZ,YAAY,QAoF5B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IConnection } from "../IConnection";
|
|
2
|
+
import { IPropagation } from "../IPropagation";
|
|
2
3
|
import { Primitive } from "../Primitive";
|
|
3
4
|
import { IFetchRoute } from "./IFetchRoute";
|
|
4
|
-
import { IPropagation } from "../IPropagation";
|
|
5
5
|
export declare namespace FetcherBase {
|
|
6
6
|
interface IProps {
|
|
7
7
|
className: string;
|
|
@@ -88,8 +88,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
88
88
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
89
89
|
exports.FetcherBase = void 0;
|
|
90
90
|
var import2_1 = __importDefault(require("import2"));
|
|
91
|
-
var Singleton_1 = require("./Singleton");
|
|
92
91
|
var HttpError_1 = require("../HttpError");
|
|
92
|
+
var Singleton_1 = require("./Singleton");
|
|
93
93
|
var FetcherBase;
|
|
94
94
|
(function (FetcherBase) {
|
|
95
95
|
var _this = this;
|
|
@@ -230,9 +230,7 @@ var FetcherBase;
|
|
|
230
230
|
return [4 /*yield*/, response.text()];
|
|
231
231
|
case 10:
|
|
232
232
|
query = new (_c.apply(URLSearchParams, [void 0, _q.sent()]))();
|
|
233
|
-
result.data = route.parseQuery
|
|
234
|
-
? route.parseQuery(query)
|
|
235
|
-
: query;
|
|
233
|
+
result.data = route.parseQuery ? route.parseQuery(query) : query;
|
|
236
234
|
return [3 /*break*/, 13];
|
|
237
235
|
case 11:
|
|
238
236
|
_d = result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FetcherBase.js","sourceRoot":"","sources":["../../src/internal/FetcherBase.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA8B;
|
|
1
|
+
{"version":3,"file":"FetcherBase.js","sourceRoot":"","sources":["../../src/internal/FetcherBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Singleton.js","sourceRoot":"","sources":["../../src/internal/Singleton.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH;
|
|
1
|
+
{"version":3,"file":"Singleton.js","sourceRoot":"","sources":["../../src/internal/Singleton.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH;IAGE,mBAAoC,QAAiB;QAAjB,aAAQ,GAAR,QAAQ,CAAS;QACnD,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAChC,CAAC;IAEM,uBAAG,GAAV;QACE,IAAI,IAAI,CAAC,MAAM,KAAK,eAAe;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC,MAAW,CAAC;IAC1B,CAAC;IACH,gBAAC;AAAD,CAAC,AAXD,IAWC;AAXY,8BAAS;AAatB;;GAEG;AACH,IAAM,eAAe,GAAG,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestia/fetcher",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.3",
|
|
4
4
|
"description": "Fetcher library of Nestia SDK",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -8,8 +8,7 @@
|
|
|
8
8
|
"build": "rimraf lib && tsc",
|
|
9
9
|
"dev": "npm run build -- --watch",
|
|
10
10
|
"eslint": "eslint src",
|
|
11
|
-
"eslint:fix": "eslint src --fix"
|
|
12
|
-
"prettier": "prettier src --write"
|
|
11
|
+
"eslint:fix": "eslint src --fix"
|
|
13
12
|
},
|
|
14
13
|
"repository": {
|
|
15
14
|
"type": "git",
|
|
@@ -30,7 +29,6 @@
|
|
|
30
29
|
"@types/node": "^18.11.14",
|
|
31
30
|
"@typescript-eslint/eslint-plugin": "^5.46.1",
|
|
32
31
|
"@typescript-eslint/parser": "^5.46.1",
|
|
33
|
-
"prettier": "^2.8.1",
|
|
34
32
|
"rimraf": "^3.0.2",
|
|
35
33
|
"typescript": "^5.3.2"
|
|
36
34
|
},
|
package/src/AesPkcs5.ts
CHANGED
|
@@ -11,40 +11,40 @@ import crypto from "crypto";
|
|
|
11
11
|
* @author Jeongho Nam - https://github.com/samchon
|
|
12
12
|
*/
|
|
13
13
|
export namespace AesPkcs5 {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Encrypt data
|
|
16
|
+
*
|
|
17
|
+
* @param data Target data
|
|
18
|
+
* @param key Key value of the encryption.
|
|
19
|
+
* @param iv Initializer Vector for the encryption
|
|
20
|
+
* @return Encrypted data
|
|
21
|
+
*/
|
|
22
|
+
export function encrypt(data: string, key: string, iv: string): string {
|
|
23
|
+
const bytes: number = key.length * 8;
|
|
24
|
+
const cipher: crypto.Cipher = crypto.createCipheriv(
|
|
25
|
+
`AES-${bytes}-CBC`,
|
|
26
|
+
key,
|
|
27
|
+
iv,
|
|
28
|
+
);
|
|
29
|
+
return cipher.update(data, "utf8", "base64") + cipher.final("base64");
|
|
30
|
+
}
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Decrypt data.
|
|
34
|
+
*
|
|
35
|
+
* @param data Target data
|
|
36
|
+
* @param key Key value of the decryption.
|
|
37
|
+
* @param iv Initializer Vector for the decryption
|
|
38
|
+
* @return Decrypted data.
|
|
39
|
+
*/
|
|
40
|
+
export function decrypt(data: string, key: string, iv: string): string {
|
|
41
|
+
const bytes: number = key.length * 8;
|
|
42
|
+
const decipher: crypto.Decipher = crypto.createDecipheriv(
|
|
43
|
+
`AES-${bytes}-CBC`,
|
|
44
|
+
key,
|
|
45
|
+
iv,
|
|
46
|
+
);
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
return decipher.update(data, "base64", "utf8") + decipher.final("utf8");
|
|
49
|
+
}
|
|
50
50
|
}
|
package/src/EncryptedFetcher.ts
CHANGED
|
@@ -21,174 +21,155 @@ import { IFetchRoute } from "./internal/IFetchRoute";
|
|
|
21
21
|
* @author Jeongho Nam - https://github.com/samchon
|
|
22
22
|
*/
|
|
23
23
|
export namespace EncryptedFetcher {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Fetch function only for `HEAD` method.
|
|
26
|
+
*
|
|
27
|
+
* @param connection Connection information for the remote HTTP server
|
|
28
|
+
* @param route Route information about the target API
|
|
29
|
+
* @return Nothing because of `HEAD` method
|
|
30
|
+
*/
|
|
31
|
+
export function fetch(
|
|
32
|
+
connection: IConnection,
|
|
33
|
+
route: IFetchRoute<"HEAD">,
|
|
34
|
+
): Promise<void>;
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Fetch function only for `GET` method.
|
|
38
|
+
*
|
|
39
|
+
* @param connection Connection information for the remote HTTP server
|
|
40
|
+
* @param route Route information about the target API
|
|
41
|
+
* @return Response body data from the remote API
|
|
42
|
+
*/
|
|
43
|
+
export function fetch<Output>(
|
|
44
|
+
connection: IConnection,
|
|
45
|
+
route: IFetchRoute<"GET">,
|
|
46
|
+
): Promise<Primitive<Output>>;
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Fetch function for the `POST`, `PUT`, `PATCH` and `DELETE` methods.
|
|
50
|
+
*
|
|
51
|
+
* @param connection Connection information for the remote HTTP server
|
|
52
|
+
* @param route Route information about the target API
|
|
53
|
+
* @return Response body data from the remote API
|
|
54
|
+
*/
|
|
55
|
+
export function fetch<Input, Output>(
|
|
56
|
+
connection: IConnection,
|
|
57
|
+
route: IFetchRoute<"POST" | "PUT" | "PATCH" | "DELETE">,
|
|
58
|
+
input?: Input,
|
|
59
|
+
stringify?: (input: Input) => string,
|
|
60
|
+
): Promise<Primitive<Output>>;
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
)
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
connection.encryption as IEncryptionPassword.Closure
|
|
89
|
-
)({
|
|
90
|
-
headers,
|
|
91
|
-
body,
|
|
92
|
-
direction,
|
|
93
|
-
})
|
|
94
|
-
: () => () => connection.encryption as IEncryptionPassword;
|
|
62
|
+
export async function fetch<Input, Output>(
|
|
63
|
+
connection: IConnection,
|
|
64
|
+
route: IFetchRoute<"DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT">,
|
|
65
|
+
input?: Input,
|
|
66
|
+
stringify?: (input: Input) => string,
|
|
67
|
+
): Promise<Primitive<Output>> {
|
|
68
|
+
if (
|
|
69
|
+
(route.request?.encrypted === true || route.response?.encrypted) &&
|
|
70
|
+
connection.encryption === undefined
|
|
71
|
+
)
|
|
72
|
+
throw new Error(
|
|
73
|
+
"Error on EncryptedFetcher.fetch(): the encryption password has not been configured.",
|
|
74
|
+
);
|
|
75
|
+
const closure =
|
|
76
|
+
typeof connection.encryption === "function"
|
|
77
|
+
? (direction: "encode" | "decode") =>
|
|
78
|
+
(
|
|
79
|
+
headers: Record<string, IConnection.HeaderValue | undefined>,
|
|
80
|
+
body: string,
|
|
81
|
+
) =>
|
|
82
|
+
(connection.encryption as IEncryptionPassword.Closure)({
|
|
83
|
+
headers,
|
|
84
|
+
body,
|
|
85
|
+
direction,
|
|
86
|
+
})
|
|
87
|
+
: () => () => connection.encryption as IEncryptionPassword;
|
|
95
88
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
89
|
+
return FetcherBase.fetch({
|
|
90
|
+
className: "EncryptedFetcher",
|
|
91
|
+
encode:
|
|
92
|
+
route.request?.encrypted === true
|
|
93
|
+
? (input, headers) => {
|
|
94
|
+
const p: IEncryptionPassword = closure("encode")(headers, input);
|
|
95
|
+
return AesPkcs5.encrypt(
|
|
96
|
+
(stringify ?? JSON.stringify)(input),
|
|
97
|
+
p.key,
|
|
98
|
+
p.iv,
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
: (input) => input,
|
|
102
|
+
decode:
|
|
103
|
+
route.response?.encrypted === true
|
|
104
|
+
? (input, headers) => {
|
|
105
|
+
const p: IEncryptionPassword = closure("decode")(headers, input);
|
|
106
|
+
const s: string = AesPkcs5.decrypt(input, p.key, p.iv);
|
|
107
|
+
return s.length ? JSON.parse(s) : s;
|
|
108
|
+
}
|
|
109
|
+
: (input) => input,
|
|
110
|
+
})(connection, route, input, stringify);
|
|
111
|
+
}
|
|
119
112
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
113
|
+
export function propagate<Output extends IPropagation<any, any>>(
|
|
114
|
+
connection: IConnection,
|
|
115
|
+
route: IFetchRoute<"GET" | "HEAD">,
|
|
116
|
+
): Promise<Output>;
|
|
124
117
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
stringify?: (input: Input) => string,
|
|
132
|
-
): Promise<Output>;
|
|
118
|
+
export function propagate<Input, Output extends IPropagation<any, any>>(
|
|
119
|
+
connection: IConnection,
|
|
120
|
+
route: IFetchRoute<"DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT">,
|
|
121
|
+
input?: Input,
|
|
122
|
+
stringify?: (input: Input) => string,
|
|
123
|
+
): Promise<Output>;
|
|
133
124
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
body: string,
|
|
161
|
-
) =>
|
|
162
|
-
(
|
|
163
|
-
connection.encryption as IEncryptionPassword.Closure
|
|
164
|
-
)({
|
|
165
|
-
headers,
|
|
166
|
-
body,
|
|
167
|
-
direction,
|
|
168
|
-
})
|
|
169
|
-
: () => () => connection.encryption as IEncryptionPassword;
|
|
125
|
+
export async function propagate<Input, Output extends IPropagation<any, any>>(
|
|
126
|
+
connection: IConnection,
|
|
127
|
+
route: IFetchRoute<"DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT">,
|
|
128
|
+
input?: Input,
|
|
129
|
+
stringify?: (input: Input) => string,
|
|
130
|
+
): Promise<Output> {
|
|
131
|
+
if (
|
|
132
|
+
(route.request?.encrypted === true || route.response?.encrypted) &&
|
|
133
|
+
connection.encryption === undefined
|
|
134
|
+
)
|
|
135
|
+
throw new Error(
|
|
136
|
+
"Error on EncryptedFetcher.propagate(): the encryption password has not been configured.",
|
|
137
|
+
);
|
|
138
|
+
const closure =
|
|
139
|
+
typeof connection.encryption === "function"
|
|
140
|
+
? (direction: "encode" | "decode") =>
|
|
141
|
+
(
|
|
142
|
+
headers: Record<string, IConnection.HeaderValue | undefined>,
|
|
143
|
+
body: string,
|
|
144
|
+
) =>
|
|
145
|
+
(connection.encryption as IEncryptionPassword.Closure)({
|
|
146
|
+
headers,
|
|
147
|
+
body,
|
|
148
|
+
direction,
|
|
149
|
+
})
|
|
150
|
+
: () => () => connection.encryption as IEncryptionPassword;
|
|
170
151
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
152
|
+
return FetcherBase.propagate({
|
|
153
|
+
className: "EncryptedFetcher",
|
|
154
|
+
encode:
|
|
155
|
+
route.request?.encrypted === true
|
|
156
|
+
? (input, headers) => {
|
|
157
|
+
const p: IEncryptionPassword = closure("encode")(headers, input);
|
|
158
|
+
return AesPkcs5.encrypt(
|
|
159
|
+
(stringify ?? JSON.stringify)(input),
|
|
160
|
+
p.key,
|
|
161
|
+
p.iv,
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
: (input) => input,
|
|
165
|
+
decode:
|
|
166
|
+
route.response?.encrypted === true
|
|
167
|
+
? (input, headers) => {
|
|
168
|
+
const p: IEncryptionPassword = closure("decode")(headers, input);
|
|
169
|
+
const s: string = AesPkcs5.decrypt(input, p.key, p.iv);
|
|
170
|
+
return s.length ? JSON.parse(s) : s;
|
|
171
|
+
}
|
|
172
|
+
: (input) => input,
|
|
173
|
+
})(connection, route, input, stringify) as Promise<Output>;
|
|
174
|
+
}
|
|
194
175
|
}
|