ibm-cloud-sdk-core 4.1.1 → 4.1.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/CHANGELOG.md +14 -0
- package/es/lib/cookie-support.js +15 -10
- package/lib/cookie-support.js +10 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [4.1.3](https://github.com/IBM/node-sdk-core/compare/v4.1.2...v4.1.3) (2023-10-19)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* bump @babel/traverse to avoid CVE-2023-45133 ([#253](https://github.com/IBM/node-sdk-core/issues/253)) ([c95f5b2](https://github.com/IBM/node-sdk-core/commit/c95f5b23f3a74e00d53142520f6c9d408e298b6b))
|
|
7
|
+
|
|
8
|
+
## [4.1.2](https://github.com/IBM/node-sdk-core/compare/v4.1.1...v4.1.2) (2023-09-27)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* harden checks for cookies in error responses ([#252](https://github.com/IBM/node-sdk-core/issues/252)) ([36f7bfe](https://github.com/IBM/node-sdk-core/commit/36f7bfeb80cde1ea8b159659a8a0a8c5b4cf6ea1))
|
|
14
|
+
|
|
1
15
|
## [4.1.1](https://github.com/IBM/node-sdk-core/compare/v4.1.0...v4.1.1) (2023-09-20)
|
|
2
16
|
|
|
3
17
|
|
package/es/lib/cookie-support.js
CHANGED
|
@@ -29,7 +29,7 @@ import logger from './logger';
|
|
|
29
29
|
const internalCreateCookieInterceptor = (cookieJar) => {
|
|
30
30
|
/**
|
|
31
31
|
* This is called by Axios when a request is about to be sent in order to
|
|
32
|
-
*
|
|
32
|
+
* set the "cookie" header in the request.
|
|
33
33
|
*
|
|
34
34
|
* @param config the Axios request config
|
|
35
35
|
* @returns the request config
|
|
@@ -65,29 +65,34 @@ const internalCreateCookieInterceptor = (cookieJar) => {
|
|
|
65
65
|
function responseInterceptor(response) {
|
|
66
66
|
return __awaiter(this, void 0, void 0, function* () {
|
|
67
67
|
logger.debug('CookieInterceptor: intercepting response to check for set-cookie headers.');
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
68
|
+
if (response && response.headers) {
|
|
69
|
+
const cookies = response.headers['set-cookie'];
|
|
70
|
+
if (cookies) {
|
|
71
|
+
logger.debug(`CookieInterceptor: setting cookies in jar for URL ${response.config.url}.`);
|
|
72
|
+
// Write cookies sequentially by chaining the promises in a reduce
|
|
73
|
+
yield cookies.reduce((cookiePromise, cookie) => cookiePromise.then(() => cookieJar.setCookie(cookie, response.config.url)), Promise.resolve(null));
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
logger.debug('CookieInterceptor: no set-cookie headers.');
|
|
77
|
+
}
|
|
73
78
|
}
|
|
74
79
|
else {
|
|
75
|
-
logger.debug('CookieInterceptor: no
|
|
80
|
+
logger.debug('CookieInterceptor: no response headers.');
|
|
76
81
|
}
|
|
77
82
|
return response;
|
|
78
83
|
});
|
|
79
84
|
}
|
|
80
85
|
/**
|
|
81
86
|
* This is called by Axios when a non-2xx response has been received.
|
|
82
|
-
* We'll simply
|
|
83
|
-
* do the same cookie
|
|
87
|
+
* We'll simply delegate to the "responseInterceptor" method since we want to
|
|
88
|
+
* do the same cookie handling as for a success response.
|
|
84
89
|
* @param error the Axios error object that describes the non-2xx response
|
|
85
90
|
* @returns the error object
|
|
86
91
|
*/
|
|
87
92
|
function responseRejected(error) {
|
|
88
93
|
return __awaiter(this, void 0, void 0, function* () {
|
|
89
94
|
logger.debug('CookieIntercepter: intercepting error response');
|
|
90
|
-
if (isAxiosError(error)) {
|
|
95
|
+
if (isAxiosError(error) && error.response) {
|
|
91
96
|
logger.debug('CookieIntercepter: delegating to responseInterceptor()');
|
|
92
97
|
yield responseInterceptor(error.response);
|
|
93
98
|
}
|
package/lib/cookie-support.js
CHANGED
|
@@ -62,7 +62,7 @@ var logger_1 = __importDefault(require("./logger"));
|
|
|
62
62
|
var internalCreateCookieInterceptor = function (cookieJar) {
|
|
63
63
|
/**
|
|
64
64
|
* This is called by Axios when a request is about to be sent in order to
|
|
65
|
-
*
|
|
65
|
+
* set the "cookie" header in the request.
|
|
66
66
|
*
|
|
67
67
|
* @param config the Axios request config
|
|
68
68
|
* @returns the request config
|
|
@@ -110,6 +110,7 @@ var internalCreateCookieInterceptor = function (cookieJar) {
|
|
|
110
110
|
switch (_a.label) {
|
|
111
111
|
case 0:
|
|
112
112
|
logger_1.default.debug('CookieInterceptor: intercepting response to check for set-cookie headers.');
|
|
113
|
+
if (!(response && response.headers)) return [3 /*break*/, 4];
|
|
113
114
|
cookies = response.headers['set-cookie'];
|
|
114
115
|
if (!cookies) return [3 /*break*/, 2];
|
|
115
116
|
logger_1.default.debug("CookieInterceptor: setting cookies in jar for URL ".concat(response.config.url, "."));
|
|
@@ -124,15 +125,19 @@ var internalCreateCookieInterceptor = function (cookieJar) {
|
|
|
124
125
|
case 2:
|
|
125
126
|
logger_1.default.debug('CookieInterceptor: no set-cookie headers.');
|
|
126
127
|
_a.label = 3;
|
|
127
|
-
case 3: return [
|
|
128
|
+
case 3: return [3 /*break*/, 5];
|
|
129
|
+
case 4:
|
|
130
|
+
logger_1.default.debug('CookieInterceptor: no response headers.');
|
|
131
|
+
_a.label = 5;
|
|
132
|
+
case 5: return [2 /*return*/, response];
|
|
128
133
|
}
|
|
129
134
|
});
|
|
130
135
|
});
|
|
131
136
|
}
|
|
132
137
|
/**
|
|
133
138
|
* This is called by Axios when a non-2xx response has been received.
|
|
134
|
-
* We'll simply
|
|
135
|
-
* do the same cookie
|
|
139
|
+
* We'll simply delegate to the "responseInterceptor" method since we want to
|
|
140
|
+
* do the same cookie handling as for a success response.
|
|
136
141
|
* @param error the Axios error object that describes the non-2xx response
|
|
137
142
|
* @returns the error object
|
|
138
143
|
*/
|
|
@@ -142,7 +147,7 @@ var internalCreateCookieInterceptor = function (cookieJar) {
|
|
|
142
147
|
switch (_a.label) {
|
|
143
148
|
case 0:
|
|
144
149
|
logger_1.default.debug('CookieIntercepter: intercepting error response');
|
|
145
|
-
if (!(0, axios_1.isAxiosError)(error)) return [3 /*break*/, 2];
|
|
150
|
+
if (!((0, axios_1.isAxiosError)(error) && error.response)) return [3 /*break*/, 2];
|
|
146
151
|
logger_1.default.debug('CookieIntercepter: delegating to responseInterceptor()');
|
|
147
152
|
return [4 /*yield*/, responseInterceptor(error.response)];
|
|
148
153
|
case 1:
|