@smartsoft001/revolut 2.189.0 → 2.190.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.
package/README.md CHANGED
@@ -28,3 +28,18 @@ Methods:
28
28
  <td>Refund handling (unsupported, the returned promise always rejects)</td>
29
29
  </tr>
30
30
  </table>
31
+
32
+ ## ⚠️ Errors
33
+
34
+ A failed Revolut call is never rethrown as the raw axios error, because that error carries the
35
+ merchant secret key as `Authorization: Bearer`. `create` and `getStatus` log one line through the
36
+ NestJS `Logger` and throw a plain `Error` with no `cause`, `config` or `response`:
37
+
38
+ - `Revolut order creation failed (HTTP {status})`
39
+ - `Revolut status lookup failed (HTTP {status})`
40
+
41
+ The ` (HTTP {status})` suffix is present only when Revolut answered, so `401` and `5xx` stay
42
+ distinguishable. `refund` sends nothing and still rejects with `Revolut does not support refund`.
43
+
44
+ Migration: code that read `e.response` from these errors must read the message instead. The
45
+ `error` history entries written by `setError` for these failures no longer carry a `status`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartsoft001/revolut",
3
- "version": "2.189.0",
3
+ "version": "2.190.0",
4
4
  "type": "commonjs",
5
5
  "main": "./src/index.js",
6
6
  "typings": "./src/index.d.ts",
@@ -22,7 +22,7 @@
22
22
  "@nestjs/axios": "^4.0.1",
23
23
  "@nestjs/common": "^11.1.5",
24
24
  "@nestjs/core": "^11.2.1",
25
- "@smartsoft001/trans-domain": "2.189.0",
25
+ "@smartsoft001/trans-domain": "2.190.0",
26
26
  "rxjs": "^7.8.1"
27
27
  },
28
28
  "types": "./src/index.d.ts"
@@ -8,6 +8,32 @@ const common_1 = require("@nestjs/common");
8
8
  const core_1 = require("@nestjs/core");
9
9
  const rxjs_1 = require("rxjs");
10
10
  const revolut_config_1 = require("./revolut.config");
11
+ function httpStatusOf(e) {
12
+ if (typeof e === 'object' &&
13
+ e !== null &&
14
+ 'response' in e &&
15
+ typeof e.response === 'object' &&
16
+ e.response !== null &&
17
+ 'status' in e.response &&
18
+ typeof e.response.status === 'number') {
19
+ return e.response.status;
20
+ }
21
+ return undefined;
22
+ }
23
+ /**
24
+ * HTTP errors retain the request, and every Revolut request carries the
25
+ * long-lived merchant secret key as `Authorization: Bearer <token>`. Neither
26
+ * the raw error nor its message may reach a log or an upstream handler, so
27
+ * only the operation and the HTTP status survive.
28
+ */
29
+ function revolutFailure(operation, e) {
30
+ const status = httpStatusOf(e);
31
+ const message = status === undefined
32
+ ? `Revolut ${operation} failed`
33
+ : `Revolut ${operation} failed (HTTP ${status})`;
34
+ common_1.Logger.error(message, RevolutService.name);
35
+ return new Error(message);
36
+ }
11
37
  let RevolutService = RevolutService_1 = class RevolutService {
12
38
  httpService;
13
39
  moduleRef;
@@ -35,10 +61,16 @@ let RevolutService = RevolutService_1 = class RevolutService {
35
61
  phone: obj.contactPhone,
36
62
  };
37
63
  }
38
- const response = await (0, rxjs_1.firstValueFrom)(this.httpService.post(this.getBaseUrl(config) + '/api/orders', data, {
39
- headers: this.getHeaders(config),
40
- maxRedirects: 0,
41
- }));
64
+ let response;
65
+ try {
66
+ response = await (0, rxjs_1.firstValueFrom)(this.httpService.post(this.getBaseUrl(config) + '/api/orders', data, {
67
+ headers: this.getHeaders(config),
68
+ maxRedirects: 0,
69
+ }));
70
+ }
71
+ catch (e) {
72
+ throw revolutFailure('order creation', e);
73
+ }
42
74
  return {
43
75
  redirectUrl: response.data.checkout_url,
44
76
  responseData: response.data,
@@ -52,12 +84,18 @@ let RevolutService = RevolutService_1 = class RevolutService {
52
84
  if (!historyItem) {
53
85
  throw new Error('Transaction without start status');
54
86
  }
55
- const response = await (0, rxjs_1.firstValueFrom)(this.httpService.get(this.getBaseUrl(config) +
56
- '/api/orders/' +
57
- historyItem.data.responseData.id, {
58
- headers: this.getHeaders(config),
59
- maxRedirects: 0,
60
- }));
87
+ let response;
88
+ try {
89
+ response = await (0, rxjs_1.firstValueFrom)(this.httpService.get(this.getBaseUrl(config) +
90
+ '/api/orders/' +
91
+ historyItem.data.responseData.id, {
92
+ headers: this.getHeaders(config),
93
+ maxRedirects: 0,
94
+ }));
95
+ }
96
+ catch (e) {
97
+ throw revolutFailure('status lookup', e);
98
+ }
61
99
  return {
62
100
  data: response.data,
63
101
  status: this.getStatusFromExternal(response.data['state']),
@@ -1 +1 @@
1
- {"version":3,"file":"revolut.service.js","sourceRoot":"","sources":["../../../../../../packages/shared/revolut/src/lib/revolut.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"revolut.service.js","sourceRoot":"","sources":["../../../../../../packages/shared/revolut/src/lib/revolut.service.ts"],"names":[],"mappings":"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"}