@maxkabechani/mtn-momo-sdk 0.2.2 → 1.0.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.
Files changed (101) hide show
  1. package/MIGRATION.md +79 -0
  2. package/README.md +68 -5
  3. package/lib/cjs/auth.d.ts +2 -2
  4. package/lib/cjs/auth.d.ts.map +1 -1
  5. package/lib/cjs/auth.js +31 -11
  6. package/lib/cjs/auth.js.map +1 -1
  7. package/lib/cjs/cli.js +5 -2
  8. package/lib/cjs/cli.js.map +1 -1
  9. package/lib/cjs/client.d.ts +3 -3
  10. package/lib/cjs/client.d.ts.map +1 -1
  11. package/lib/cjs/client.js +15 -7
  12. package/lib/cjs/client.js.map +1 -1
  13. package/lib/cjs/collections.d.ts +6 -5
  14. package/lib/cjs/collections.d.ts.map +1 -1
  15. package/lib/cjs/collections.js +45 -25
  16. package/lib/cjs/collections.js.map +1 -1
  17. package/lib/cjs/common.d.ts +13 -4
  18. package/lib/cjs/common.d.ts.map +1 -1
  19. package/lib/cjs/common.js.map +1 -1
  20. package/lib/cjs/disbursements.d.ts +7 -10
  21. package/lib/cjs/disbursements.d.ts.map +1 -1
  22. package/lib/cjs/disbursements.js +46 -31
  23. package/lib/cjs/disbursements.js.map +1 -1
  24. package/lib/cjs/errors.d.ts +15 -6
  25. package/lib/cjs/errors.d.ts.map +1 -1
  26. package/lib/cjs/errors.js +33 -23
  27. package/lib/cjs/errors.js.map +1 -1
  28. package/lib/cjs/httpClient.d.ts +50 -17
  29. package/lib/cjs/httpClient.d.ts.map +1 -1
  30. package/lib/cjs/httpClient.js +276 -78
  31. package/lib/cjs/httpClient.js.map +1 -1
  32. package/lib/cjs/index.d.ts +12 -11
  33. package/lib/cjs/index.d.ts.map +1 -1
  34. package/lib/cjs/index.js +30 -28
  35. package/lib/cjs/index.js.map +1 -1
  36. package/lib/cjs/remittance.d.ts +5 -5
  37. package/lib/cjs/remittance.d.ts.map +1 -1
  38. package/lib/cjs/remittance.js +58 -41
  39. package/lib/cjs/remittance.js.map +1 -1
  40. package/lib/cjs/security.d.ts +32 -0
  41. package/lib/cjs/security.d.ts.map +1 -0
  42. package/lib/cjs/security.js +253 -0
  43. package/lib/cjs/security.js.map +1 -0
  44. package/lib/cjs/users.d.ts +5 -3
  45. package/lib/cjs/users.d.ts.map +1 -1
  46. package/lib/cjs/users.js +17 -6
  47. package/lib/cjs/users.js.map +1 -1
  48. package/lib/cjs/validate.d.ts +7 -7
  49. package/lib/cjs/validate.d.ts.map +1 -1
  50. package/lib/cjs/validate.js +67 -84
  51. package/lib/cjs/validate.js.map +1 -1
  52. package/lib/esm/auth.d.ts +2 -2
  53. package/lib/esm/auth.d.ts.map +1 -1
  54. package/lib/esm/auth.js +28 -8
  55. package/lib/esm/auth.js.map +1 -1
  56. package/lib/esm/cli.js +5 -2
  57. package/lib/esm/cli.js.map +1 -1
  58. package/lib/esm/client.d.ts +3 -3
  59. package/lib/esm/client.d.ts.map +1 -1
  60. package/lib/esm/client.js +14 -6
  61. package/lib/esm/client.js.map +1 -1
  62. package/lib/esm/collections.d.ts +6 -5
  63. package/lib/esm/collections.d.ts.map +1 -1
  64. package/lib/esm/collections.js +38 -18
  65. package/lib/esm/collections.js.map +1 -1
  66. package/lib/esm/common.d.ts +13 -4
  67. package/lib/esm/common.d.ts.map +1 -1
  68. package/lib/esm/common.js.map +1 -1
  69. package/lib/esm/disbursements.d.ts +7 -10
  70. package/lib/esm/disbursements.d.ts.map +1 -1
  71. package/lib/esm/disbursements.js +34 -19
  72. package/lib/esm/disbursements.js.map +1 -1
  73. package/lib/esm/errors.d.ts +15 -6
  74. package/lib/esm/errors.d.ts.map +1 -1
  75. package/lib/esm/errors.js +16 -6
  76. package/lib/esm/errors.js.map +1 -1
  77. package/lib/esm/httpClient.d.ts +50 -17
  78. package/lib/esm/httpClient.d.ts.map +1 -1
  79. package/lib/esm/httpClient.js +271 -77
  80. package/lib/esm/httpClient.js.map +1 -1
  81. package/lib/esm/index.d.ts +12 -11
  82. package/lib/esm/index.d.ts.map +1 -1
  83. package/lib/esm/index.js +12 -11
  84. package/lib/esm/index.js.map +1 -1
  85. package/lib/esm/remittance.d.ts +5 -5
  86. package/lib/esm/remittance.d.ts.map +1 -1
  87. package/lib/esm/remittance.js +52 -35
  88. package/lib/esm/remittance.js.map +1 -1
  89. package/lib/esm/security.d.ts +32 -0
  90. package/lib/esm/security.d.ts.map +1 -0
  91. package/lib/esm/security.js +234 -0
  92. package/lib/esm/security.js.map +1 -0
  93. package/lib/esm/users.d.ts +5 -3
  94. package/lib/esm/users.d.ts.map +1 -1
  95. package/lib/esm/users.js +17 -6
  96. package/lib/esm/users.js.map +1 -1
  97. package/lib/esm/validate.d.ts +7 -7
  98. package/lib/esm/validate.d.ts.map +1 -1
  99. package/lib/esm/validate.js +66 -84
  100. package/lib/esm/validate.js.map +1 -1
  101. package/package.json +23 -5
@@ -1,14 +1,14 @@
1
- import type { PaymentRequest } from "./collections";
2
- import type { WithdrawalRequest, DepositRequest, RefundRequest } from "./common";
3
- import type { GlobalConfig, ProductConfig, SubscriptionConfig, UserConfig } from "./common";
4
- import type { TransferRequest } from "./disbursements";
5
- export declare function validateRequestToPay(paymentRequest: PaymentRequest): Promise<void>;
1
+ import type { PaymentRequest } from "./collections.js";
2
+ import { type CashTransferRequest, type DepositRequest, type GlobalConfig, type ProductConfig, type RefundRequest, type SubscriptionConfig, type UserConfig, type WithdrawalRequest } from "./common.js";
3
+ import type { TransferRequest } from "./disbursements.js";
4
+ export declare function validateRequestToPay(request: PaymentRequest): Promise<void>;
6
5
  export declare function validateWithdrawalRequest(request: WithdrawalRequest): Promise<void>;
7
6
  export declare function validateDepositRequest(request: DepositRequest): Promise<void>;
8
7
  export declare function validateRefundRequest(request: RefundRequest): Promise<void>;
9
- export declare function validateTransfer(payoutRequest: TransferRequest): Promise<void>;
8
+ export declare function validateTransfer(request: TransferRequest): Promise<void>;
9
+ export declare function validateCashTransferRequest(request: CashTransferRequest): Promise<void>;
10
10
  export declare function validateGlobalConfig(config: GlobalConfig): void;
11
11
  export declare function validateProductConfig(config: ProductConfig): void;
12
12
  export declare function validateSubscriptionConfig(config: SubscriptionConfig): void;
13
- export declare function validateUserConfig({ userId, userSecret }: UserConfig): void;
13
+ export declare function validateUserConfig(config: UserConfig): void;
14
14
  //# sourceMappingURL=validate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEjF,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,UAAU,EACX,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAWnF;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAW7E;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAU3E;AAED,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,eAAe,GAC7B,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAY/D;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAGjE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAI3E;AAED,wBAAgB,kBAAkB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,UAAU,GAAG,IAAI,CAQ3E"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAgB1D,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAM9E;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAW/D;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAGjE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAE3E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAI3D"}
@@ -5,107 +5,90 @@ exports.validateWithdrawalRequest = validateWithdrawalRequest;
5
5
  exports.validateDepositRequest = validateDepositRequest;
6
6
  exports.validateRefundRequest = validateRefundRequest;
7
7
  exports.validateTransfer = validateTransfer;
8
+ exports.validateCashTransferRequest = validateCashTransferRequest;
8
9
  exports.validateGlobalConfig = validateGlobalConfig;
9
10
  exports.validateProductConfig = validateProductConfig;
10
11
  exports.validateSubscriptionConfig = validateSubscriptionConfig;
11
12
  exports.validateUserConfig = validateUserConfig;
12
- const assert_1 = require("assert");
13
- const common_1 = require("./common");
14
- function validateRequestToPay(paymentRequest) {
15
- const { amount, currency, payer } = paymentRequest || {};
16
- return Promise.resolve().then(() => {
17
- (0, assert_1.strictEqual)(isTruthy(amount), true, "amount is required");
18
- (0, assert_1.strictEqual)(isNumeric(amount), true, "amount must be a number");
19
- (0, assert_1.strictEqual)(isTruthy(currency), true, "currency is required");
20
- (0, assert_1.strictEqual)(isTruthy(payer), true, "payer is required");
21
- (0, assert_1.strictEqual)(isTruthy(payer.partyId), true, "payer.partyId is required");
22
- (0, assert_1.strictEqual)(isTruthy(payer.partyIdType), true, "payer.partyIdType is required");
23
- (0, assert_1.strictEqual)(isString(currency), true, "currency must be a string");
24
- });
13
+ const common_js_1 = require("./common.js");
14
+ const security_js_1 = require("./security.js");
15
+ function requireString(value, name) {
16
+ if (typeof value !== "string" || value.length === 0) {
17
+ throw new TypeError(`${name} is required`);
18
+ }
19
+ }
20
+ async function validateRequestToPay(request) {
21
+ const { amount, currency, payer, referenceId } = request || {};
22
+ (0, security_js_1.validateFinancialAmount)(amount);
23
+ (0, security_js_1.validateCurrency)(currency);
24
+ (0, security_js_1.validateParty)(payer, "payer");
25
+ if (referenceId !== undefined)
26
+ (0, security_js_1.requireUuidV4)(referenceId);
27
+ }
28
+ async function validateWithdrawalRequest(request) {
29
+ const { amount, currency, payee, referenceId } = request || {};
30
+ (0, security_js_1.validateFinancialAmount)(amount);
31
+ (0, security_js_1.validateCurrency)(currency);
32
+ (0, security_js_1.validateParty)(payee, "payee");
33
+ if (referenceId !== undefined)
34
+ (0, security_js_1.requireUuidV4)(referenceId);
25
35
  }
26
- function validateWithdrawalRequest(request) {
27
- const { amount, currency, payee } = request || {};
28
- return Promise.resolve().then(() => {
29
- (0, assert_1.strictEqual)(isTruthy(amount), true, "amount is required");
30
- (0, assert_1.strictEqual)(isNumeric(amount), true, "amount must be a number");
31
- (0, assert_1.strictEqual)(isTruthy(currency), true, "currency is required");
32
- (0, assert_1.strictEqual)(isTruthy(payee), true, "payee is required");
33
- (0, assert_1.strictEqual)(isTruthy(payee?.partyId), true, "payee.partyId is required");
34
- (0, assert_1.strictEqual)(isTruthy(payee?.partyIdType), true, "payee.partyIdType is required");
35
- (0, assert_1.strictEqual)(isString(currency), true, "currency must be a string");
36
- });
36
+ async function validateDepositRequest(request) {
37
+ const { amount, currency, payee, referenceId } = request || {};
38
+ (0, security_js_1.validateFinancialAmount)(amount);
39
+ (0, security_js_1.validateCurrency)(currency);
40
+ (0, security_js_1.validateParty)(payee, "payee");
41
+ if (referenceId !== undefined)
42
+ (0, security_js_1.requireUuidV4)(referenceId);
37
43
  }
38
- function validateDepositRequest(request) {
39
- const { amount, currency, payee } = request || {};
40
- return Promise.resolve().then(() => {
41
- (0, assert_1.strictEqual)(isTruthy(amount), true, "amount is required");
42
- (0, assert_1.strictEqual)(isNumeric(amount), true, "amount must be a number");
43
- (0, assert_1.strictEqual)(isTruthy(currency), true, "currency is required");
44
- (0, assert_1.strictEqual)(isTruthy(payee), true, "payee is required");
45
- (0, assert_1.strictEqual)(isTruthy(payee?.partyId), true, "payee.partyId is required");
46
- (0, assert_1.strictEqual)(isTruthy(payee?.partyIdType), true, "payee.partyIdType is required");
47
- (0, assert_1.strictEqual)(isString(currency), true, "currency must be a string");
48
- });
44
+ async function validateRefundRequest(request) {
45
+ const { amount, currency, referenceIdToRefund, referenceId } = request || {};
46
+ (0, security_js_1.pathUuid)(referenceIdToRefund, "referenceIdToRefund");
47
+ (0, security_js_1.validateFinancialAmount)(amount);
48
+ (0, security_js_1.validateCurrency)(currency);
49
+ if (referenceId !== undefined)
50
+ (0, security_js_1.requireUuidV4)(referenceId);
49
51
  }
50
- function validateRefundRequest(request) {
51
- const { amount, currency, referenceIdToRefund } = request || {};
52
- return Promise.resolve().then(() => {
53
- (0, assert_1.strictEqual)(isTruthy(referenceIdToRefund), true, "referenceIdToRefund is required");
54
- (0, assert_1.strictEqual)(isUuid4(referenceIdToRefund), true, "referenceIdToRefund must be a valid uuid v4");
55
- (0, assert_1.strictEqual)(isTruthy(amount), true, "amount is required");
56
- (0, assert_1.strictEqual)(isNumeric(amount), true, "amount must be a number");
57
- (0, assert_1.strictEqual)(isTruthy(currency), true, "currency is required");
58
- (0, assert_1.strictEqual)(isString(currency), true, "currency must be a string");
59
- });
52
+ async function validateTransfer(request) {
53
+ const { amount, currency, payee, referenceId } = request || {};
54
+ (0, security_js_1.validateFinancialAmount)(amount);
55
+ (0, security_js_1.validateCurrency)(currency);
56
+ (0, security_js_1.validateParty)(payee, "payee");
57
+ if (referenceId !== undefined)
58
+ (0, security_js_1.requireUuidV4)(referenceId);
60
59
  }
61
- function validateTransfer(payoutRequest) {
62
- const { amount, currency, payee, referenceId } = payoutRequest || {};
63
- return Promise.resolve().then(() => {
64
- (0, assert_1.strictEqual)(isTruthy(referenceId), true, "referenceId is required");
65
- (0, assert_1.strictEqual)(isUuid4(referenceId), true, "referenceId must be a valid uuid v4");
66
- (0, assert_1.strictEqual)(isTruthy(amount), true, "amount is required");
67
- (0, assert_1.strictEqual)(isNumeric(amount), true, "amount must be a number");
68
- (0, assert_1.strictEqual)(isTruthy(currency), true, "currency is required");
69
- (0, assert_1.strictEqual)(isTruthy(payee), true, "payee is required");
70
- (0, assert_1.strictEqual)(isTruthy(payee.partyId), true, "payee.partyId is required");
71
- (0, assert_1.strictEqual)(isTruthy(payee.partyIdType), true, "payee.partyIdType is required");
72
- (0, assert_1.strictEqual)(isString(currency), true, "amount must be a string");
73
- });
60
+ async function validateCashTransferRequest(request) {
61
+ const { amount, currency, payee, referenceId } = request || {};
62
+ (0, security_js_1.validateFinancialAmount)(amount);
63
+ (0, security_js_1.validateCurrency)(currency);
64
+ (0, security_js_1.validateParty)(payee, "payee");
65
+ if (referenceId !== undefined)
66
+ (0, security_js_1.requireUuidV4)(referenceId);
67
+ if (request.originalAmount !== undefined) {
68
+ (0, security_js_1.validateFinancialAmount)(request.originalAmount, "originalAmount");
69
+ }
70
+ if (request.originalCurrency !== undefined) {
71
+ (0, security_js_1.validateCurrency)(request.originalCurrency);
72
+ }
74
73
  }
75
74
  function validateGlobalConfig(config) {
76
- const { callbackHost, baseUrl, environment } = config;
77
- (0, assert_1.strictEqual)(isTruthy(callbackHost), true, "callbackHost is required");
78
- if (environment && environment !== common_1.Environment.SANDBOX) {
79
- (0, assert_1.strictEqual)(isTruthy(baseUrl), true, "baseUrl is required if environment is not sandbox");
80
- (0, assert_1.strictEqual)(isString(baseUrl), true, "baseUrl must be a string");
75
+ requireString(config?.callbackHost, "callbackHost");
76
+ if (config.environment === common_js_1.Environment.PRODUCTION &&
77
+ config.baseUrl === undefined) {
78
+ throw new TypeError("baseUrl is required if environment is not sandbox");
81
79
  }
80
+ (0, security_js_1.validateGlobalSecurityConfig)(config);
82
81
  }
83
82
  function validateProductConfig(config) {
84
83
  validateSubscriptionConfig(config);
85
84
  validateUserConfig(config);
86
85
  }
87
86
  function validateSubscriptionConfig(config) {
88
- const { primaryKey } = config;
89
- (0, assert_1.strictEqual)(isTruthy(primaryKey), true, "primaryKey is required");
90
- (0, assert_1.strictEqual)(isString(primaryKey), true, "primaryKey must be a string");
91
- }
92
- function validateUserConfig({ userId, userSecret }) {
93
- (0, assert_1.strictEqual)(isTruthy(userId), true, "userId is required");
94
- (0, assert_1.strictEqual)(isString(userId), true, "userId must be a string");
95
- (0, assert_1.strictEqual)(isTruthy(userSecret), true, "userSecret is required");
96
- (0, assert_1.strictEqual)(isString(userSecret), true, "userSecret must be a string");
97
- (0, assert_1.strictEqual)(isUuid4(userId), true, "userId must be a valid uuid v4");
98
- }
99
- function isNumeric(value) {
100
- return !isNaN(parseInt(value, 10));
101
- }
102
- function isTruthy(value) {
103
- return !!value;
104
- }
105
- function isString(value) {
106
- return typeof value === "string";
87
+ requireString(config?.primaryKey, "primaryKey");
107
88
  }
108
- function isUuid4(value) {
109
- return /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i.test(value);
89
+ function validateUserConfig(config) {
90
+ requireString(config?.userId, "userId");
91
+ requireString(config?.userSecret, "userSecret");
92
+ (0, security_js_1.requireUuidV4)(config.userId, "userId");
110
93
  }
111
94
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":";;AA4BA,oDAQC;AAED,8DAQC;AAED,wDAQC;AAED,sDAQC;AAED,4CAMC;AAED,kEAeC;AAED,oDAWC;AAED,sDAGC;AAED,gEAEC;AAED,gDAIC;AAtHD,2CAUqB;AAErB,+CAOuB;AAEvB,SAAS,aAAa,CAAC,KAAc,EAAE,IAAY;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,OAAuB;IAEvB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC/D,IAAA,qCAAuB,EAAC,MAAM,CAAC,CAAC;IAChC,IAAA,8BAAgB,EAAC,QAAQ,CAAC,CAAC;IAC3B,IAAA,2BAAa,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,WAAW,KAAK,SAAS;QAAE,IAAA,2BAAa,EAAC,WAAW,CAAC,CAAC;AAC5D,CAAC;AAEM,KAAK,UAAU,yBAAyB,CAC7C,OAA0B;IAE1B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC/D,IAAA,qCAAuB,EAAC,MAAM,CAAC,CAAC;IAChC,IAAA,8BAAgB,EAAC,QAAQ,CAAC,CAAC;IAC3B,IAAA,2BAAa,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,WAAW,KAAK,SAAS;QAAE,IAAA,2BAAa,EAAC,WAAW,CAAC,CAAC;AAC5D,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,OAAuB;IAEvB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC/D,IAAA,qCAAuB,EAAC,MAAM,CAAC,CAAC;IAChC,IAAA,8BAAgB,EAAC,QAAQ,CAAC,CAAC;IAC3B,IAAA,2BAAa,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,WAAW,KAAK,SAAS;QAAE,IAAA,2BAAa,EAAC,WAAW,CAAC,CAAC;AAC5D,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,OAAsB;IAEtB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,EAAE,WAAW,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC7E,IAAA,sBAAQ,EAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC;IACrD,IAAA,qCAAuB,EAAC,MAAM,CAAC,CAAC;IAChC,IAAA,8BAAgB,EAAC,QAAQ,CAAC,CAAC;IAC3B,IAAI,WAAW,KAAK,SAAS;QAAE,IAAA,2BAAa,EAAC,WAAW,CAAC,CAAC;AAC5D,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,OAAwB;IAC7D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC/D,IAAA,qCAAuB,EAAC,MAAM,CAAC,CAAC;IAChC,IAAA,8BAAgB,EAAC,QAAQ,CAAC,CAAC;IAC3B,IAAA,2BAAa,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,WAAW,KAAK,SAAS;QAAE,IAAA,2BAAa,EAAC,WAAW,CAAC,CAAC;AAC5D,CAAC;AAEM,KAAK,UAAU,2BAA2B,CAC/C,OAA4B;IAE5B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC/D,IAAA,qCAAuB,EAAC,MAAM,CAAC,CAAC;IAChC,IAAA,8BAAgB,EAAC,QAAQ,CAAC,CAAC;IAC3B,IAAA,2BAAa,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,WAAW,KAAK,SAAS;QAAE,IAAA,2BAAa,EAAC,WAAW,CAAC,CAAC;IAE1D,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACzC,IAAA,qCAAuB,EAAC,OAAO,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC3C,IAAA,8BAAgB,EAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAgB,oBAAoB,CAAC,MAAoB;IACvD,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAEpD,IACE,MAAM,CAAC,WAAW,KAAK,uBAAW,CAAC,UAAU;QAC7C,MAAM,CAAC,OAAO,KAAK,SAAS,EAC5B,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;IAC3E,CAAC;IAED,IAAA,0CAA4B,EAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,SAAgB,qBAAqB,CAAC,MAAqB;IACzD,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,SAAgB,0BAA0B,CAAC,MAA0B;IACnE,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,kBAAkB,CAAC,MAAkB;IACnD,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxC,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAChD,IAAA,2BAAa,EAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC"}
package/lib/esm/auth.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { HttpClient } from "./httpClient";
2
- import type { AccessToken, Config, UserConfig } from "./common";
1
+ import type { HttpClient } from "./httpClient.js";
2
+ import type { AccessToken, Config, UserConfig } from "./common.js";
3
3
  export type TokenRefresher = () => Promise<string>;
4
4
  export interface AuthorizerOptions {
5
5
  grant_type?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,UAAU,GAAG,CACvB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,iBAAiB,EAC3B,MAAM,CAAC,EAAE,UAAU,KAChB,OAAO,CAAC,WAAW,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAS1F,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,UAAU,EACrB,MAAM,EAAE,MAAM,GACb,cAAc,CAmChB;AASD,eAAO,MAAM,oBAAoB,EAAE,UAalC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,UAapC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,UAajC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAI/D"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGnE,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,UAAU,GAAG,CACvB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,iBAAiB,EAC3B,MAAM,CAAC,EAAE,UAAU,KAChB,OAAO,CAAC,WAAW,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAS1F,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,UAAU,EACrB,MAAM,EAAE,MAAM,GACb,cAAc,CA8DhB;AASD,eAAO,MAAM,oBAAoB,EAAE,UAalC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,UAapC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,UAajC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAI/D"}
package/lib/esm/auth.js CHANGED
@@ -1,19 +1,35 @@
1
- import { createClient } from "./client";
1
+ import { createClient } from "./client.js";
2
+ import { validateAccessToken } from "./security.js";
2
3
  export function createTokenRefresher(authorize, config) {
3
4
  let credentials;
4
- return () => {
5
+ let inFlight;
6
+ return async () => {
7
+ if (!isExpired(credentials)) {
8
+ return credentials.accessToken;
9
+ }
10
+ if (inFlight) {
11
+ return inFlight;
12
+ }
5
13
  if (isExpired(credentials)) {
6
14
  const isRefreshTokenValid = credentials?.refreshToken && !isRefreshExpired(credentials);
7
15
  const options = isRefreshTokenValid
8
- ? { grant_type: 'refresh_token', refresh_token: credentials.refreshToken }
9
- : { grant_type: 'client_credentials' };
10
- return authorize(config, options)
16
+ ? {
17
+ grant_type: "refresh_token",
18
+ refresh_token: credentials.refreshToken,
19
+ }
20
+ : { grant_type: "client_credentials" };
21
+ inFlight = authorize(config, options)
11
22
  .then((tokenData) => {
12
- const { access_token, expires_in, refresh_token, refresh_token_expired_in } = tokenData;
23
+ const { access_token, expires_in, refresh_token, refresh_token_expired_in, } = tokenData;
24
+ validateAccessToken(access_token, "access_token");
25
+ if (!Number.isFinite(expires_in)) {
26
+ throw new TypeError("expires_in must be a finite number");
27
+ }
13
28
  const expires = Date.now() + expires_in * 1000 - 60000;
14
29
  let refreshExpires;
15
30
  if (refresh_token_expired_in) {
16
- refreshExpires = Date.now() + refresh_token_expired_in * 1000 - 60000;
31
+ refreshExpires =
32
+ Date.now() + refresh_token_expired_in * 1000 - 60000;
17
33
  }
18
34
  return {
19
35
  accessToken: access_token,
@@ -25,9 +41,13 @@ export function createTokenRefresher(authorize, config) {
25
41
  .then((freshCredentials) => {
26
42
  credentials = freshCredentials;
27
43
  return credentials.accessToken;
44
+ })
45
+ .finally(() => {
46
+ inFlight = undefined;
28
47
  });
48
+ return inFlight;
29
49
  }
30
- return Promise.resolve(credentials.accessToken);
50
+ return credentials.accessToken;
31
51
  };
32
52
  }
33
53
  function isRefreshExpired(credentials) {
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
package/lib/esm/cli.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { program } from "commander";
3
- import * as momo from "./index";
3
+ import * as momo from "./index.js";
4
4
  const version = process.env.npm_package_version || "0.0.0";
5
5
  program
6
6
  .version(version)
@@ -26,6 +26,9 @@ users
26
26
  });
27
27
  })
28
28
  .catch((error) => {
29
- console.log(error);
29
+ const name = error instanceof Error ? error.name : "Error";
30
+ const message = error instanceof Error ? error.message : "Request failed";
31
+ console.error(`${name}: ${message}`);
32
+ process.exitCode = 1;
30
33
  });
31
34
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAIhC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC;AAE3D,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;KAC7C,MAAM,CAAC,uBAAuB,EAAE,aAAa,CAAC;KAC9C,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAA0C,CAAC;AAEvE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;IACzC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,GAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAEzE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAE9D,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AAExD,KAAK;KACF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;KACpB,IAAI,CAAC,CAAC,MAAc,EAAE,EAAE;IACvB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,WAAwB,EAAE,EAAE;QAC3D,OAAO,CAAC,GAAG,CACT,0BAA0B,EAC1B,SAAS,CAAC;YACR,UAAU,EAAE,WAAW,CAAC,MAAM;YAC9B,MAAM;SACP,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,KAAmB,EAAE,EAAE;IAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAGnC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC;AAE3D,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;KAC7C,MAAM,CAAC,uBAAuB,EAAE,aAAa,CAAC;KAC9C,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAA0C,CAAC;AAEvE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;IACzC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,GAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAEzE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAE9D,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AAExD,KAAK;KACF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;KACpB,IAAI,CAAC,CAAC,MAAc,EAAE,EAAE;IACvB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,WAAwB,EAAE,EAAE;QAC3D,OAAO,CAAC,GAAG,CACT,0BAA0B,EAC1B,SAAS,CAAC;YACR,UAAU,EAAE,WAAW,CAAC,MAAM;YAC9B,MAAM;SACP,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACxB,MAAM,IAAI,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3D,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAC1E,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
- import { HttpClient } from "./httpClient";
2
- import type { TokenRefresher } from "./auth";
3
- import type { GlobalConfig, SubscriptionConfig } from "./common";
1
+ import { HttpClient } from "./httpClient.js";
2
+ import type { TokenRefresher } from "./auth.js";
3
+ import { type GlobalConfig, type SubscriptionConfig } from "./common.js";
4
4
  export declare function createClient(config: SubscriptionConfig & GlobalConfig, client?: HttpClient): HttpClient;
5
5
  export declare function createAuthClient(refresh: TokenRefresher, client: HttpClient): HttpClient;
6
6
  export declare function withErrorHandling(client: HttpClient): HttpClient;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,cAAc,CAAC;AAK5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEjE,wBAAgB,YAAY,CAC1B,MAAM,EAAE,kBAAkB,GAAG,YAAY,EACzC,MAAM,GAAE,UAA+B,GACtC,UAAU,CAUZ;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,UAAU,GACjB,UAAU,CAYZ;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAOhE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,iBAAiB,CAAC;AAK/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAOrB,wBAAgB,YAAY,CAC1B,MAAM,EAAE,kBAAkB,GAAG,YAAY,EACzC,MAAM,GAAE,UAA+B,GACtC,UAAU,CAgBZ;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,UAAU,GACjB,UAAU,CAiBZ;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAYhE"}
package/lib/esm/client.js CHANGED
@@ -1,9 +1,14 @@
1
- import { HttpClient, createHttpClient } from "./httpClient";
2
- import { handleError } from "./errors";
1
+ import { HttpClient, createHttpClient } from "./httpClient.js";
2
+ import { handleError } from "./errors.js";
3
+ import { Environment, } from "./common.js";
4
+ import { DEFAULT_MAX_RESPONSE_BYTES, DEFAULT_TIMEOUT_MS, normalizeBaseUrl, } from "./security.js";
3
5
  export function createClient(config, client = createHttpClient()) {
4
6
  if (config.baseUrl) {
5
- client.defaults.baseURL = config.baseUrl;
7
+ client.defaults.baseURL = normalizeBaseUrl(config.baseUrl, config.environment ?? Environment.SANDBOX);
6
8
  }
9
+ client.defaults.timeout = config.timeoutMs ?? DEFAULT_TIMEOUT_MS;
10
+ client.defaults.maxResponseBytes =
11
+ config.maxResponseBytes ?? DEFAULT_MAX_RESPONSE_BYTES;
7
12
  client.defaults.headers.common["Ocp-Apim-Subscription-Key"] =
8
13
  config.primaryKey;
9
14
  client.defaults.headers.common["X-Target-Environment"] =
@@ -12,15 +17,18 @@ export function createClient(config, client = createHttpClient()) {
12
17
  }
13
18
  export function createAuthClient(refresh, client) {
14
19
  client.interceptors.request.use(async (request) => {
15
- const accessToken = await refresh();
16
20
  request.headers = request.headers || {};
17
- request.headers["Authorization"] = `Bearer ${accessToken}`;
21
+ const hasExplicitAuthorization = Object.keys(request.headers).some((name) => name.toLowerCase() === "authorization");
22
+ if (!hasExplicitAuthorization) {
23
+ const accessToken = await refresh();
24
+ request.headers["Authorization"] = `Bearer ${accessToken}`;
25
+ }
18
26
  return request;
19
27
  });
20
28
  return client;
21
29
  }
22
30
  export function withErrorHandling(client) {
23
- client.interceptors.response.use((response) => response, (error) => Promise.reject(handleError(error)));
31
+ client.interceptors.response.use((response) => response, (error) => Promise.reject(handleError(error instanceof Error ? error : new Error(String(error)))));
24
32
  return client;
25
33
  }
26
34
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAG5D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAKvC,MAAM,UAAU,YAAY,CAC1B,MAAyC,EACzC,SAAqB,gBAAgB,EAAE;IAEvC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC3C,CAAC;IACD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAAC;QACzD,MAAM,CAAC,UAAU,CAAC;IACpB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC;QACpD,MAAM,CAAC,WAAW,IAAI,SAAS,CAAC;IAElC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAAuB,EACvB,MAAkB;IAElB,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAC7B,KAAK,EAAE,OAA8B,EAAE,EAAE;QACvC,MAAM,WAAW,GAAG,MAAM,OAAO,EAAE,CAAC;QACpC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACxC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,WAAW,EAAE,CAAC;QAE3D,OAAO,OAAO,CAAC;IACjB,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAkB;IAClD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAC9B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACtB,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAC9C,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EACL,WAAW,GAGZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,MAAM,UAAU,YAAY,CAC1B,MAAyC,EACzC,SAAqB,gBAAgB,EAAE;IAEvC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,gBAAgB,CACxC,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,WAAW,IAAI,WAAW,CAAC,OAAO,CAC1C,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,IAAI,kBAAkB,CAAC;IACjE,MAAM,CAAC,QAAQ,CAAC,gBAAgB;QAC9B,MAAM,CAAC,gBAAgB,IAAI,0BAA0B,CAAC;IACxD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAAC;QACzD,MAAM,CAAC,UAAU,CAAC;IACpB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC;QACpD,MAAM,CAAC,WAAW,IAAI,SAAS,CAAC;IAElC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAAuB,EACvB,MAAkB;IAElB,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAC7B,KAAK,EAAE,OAA8B,EAAE,EAAE;QACvC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACxC,MAAM,wBAAwB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAChE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,eAAe,CACjD,CAAC;QACF,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,MAAM,OAAO,EAAE,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,WAAW,EAAE,CAAC;QAC7D,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAkB;IAClD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAC9B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACtB,CAAC,KAAK,EAAE,EAAE,CACR,OAAO,CAAC,MAAM,CACZ,WAAW,CACT,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CACF,CACJ,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,6 +1,7 @@
1
- import type { HttpClient } from "./httpClient";
2
- import { type Balance, type BasicUserInfo, type BcAuthorizeRequest, type BcAuthorizeResponse, type Config, type ConsentKycResponse, type DeliveryNotification, FailureReason, type OAuth2TokenRequest, type OAuth2TokenResponse, type Party, PartyIdType, TransactionStatus, type Withdrawal, type WithdrawalRequest } from "./common";
3
- export interface PaymentRequest {
1
+ import type { HttpClient } from "./httpClient.js";
2
+ import { type Balance, type BasicUserInfo, type BcAuthorizeRequest, type BcAuthorizeResponse, type Config, type ConsentKycResponse, type DeliveryNotification, FailureReason, type OAuth2TokenRequest, type OAuth2TokenResponse, type Party, PartyIdType, TransactionStatus, type Withdrawal, type WithdrawalRequest } from "./common.js";
3
+ import { type FinancialOperationOptions } from "./security.js";
4
+ export interface PaymentRequest extends FinancialOperationOptions {
4
5
  /**
5
6
  * Amount that will be debited from the payer account
6
7
  */
@@ -90,7 +91,7 @@ export default class Collections {
90
91
  *
91
92
  * @param paymentRequest
92
93
  */
93
- requestToPay({ callbackUrl, ...paymentRequest }: PaymentRequest): Promise<string>;
94
+ requestToPay(request: PaymentRequest): Promise<string>;
94
95
  /**
95
96
  * This method is used to retrieve transaction information. You can invoke it
96
97
  * at intervals until your transaction fails or succeeds.
@@ -178,7 +179,7 @@ export default class Collections {
178
179
  *
179
180
  * @returns A promise that resolves to the user's information and KYC consent details
180
181
  */
181
- getUserInfoWithConsent(): Promise<ConsentKycResponse>;
182
+ getUserInfoWithConsent(consentToken: string): Promise<ConsentKycResponse>;
182
183
  /**
183
184
  * Create an OAuth2 token for consent-based access.
184
185
  *
@@ -1 +1 @@
1
- {"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../src/collections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../src/collections.ts"],"names":[],"mappings":"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"}