@waffo/waffo-node 2.0.4 → 2.1.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/dist/index.mjs CHANGED
@@ -1,278 +1,241 @@
1
1
  import * as crypto from 'crypto';
2
2
 
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __esm = (fn, res) => function __init() {
8
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
9
- };
10
- var __export = (target, all) => {
11
- for (var name in all)
12
- __defProp(target, name, { get: all[name], enumerable: true });
13
- };
14
- var __copyProps = (to, from, except, desc) => {
15
- if (from && typeof from === "object" || typeof from === "function") {
16
- for (let key of __getOwnPropNames(from))
17
- if (!__hasOwnProp.call(to, key) && key !== except)
18
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
- }
20
- return to;
21
- };
22
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
-
24
3
  // src/types/config/environment.ts
25
- var Environment, EnvironmentBaseUrl;
26
- var init_environment = __esm({
27
- "src/types/config/environment.ts"() {
28
- Environment = /* @__PURE__ */ ((Environment2) => {
29
- Environment2["SANDBOX"] = "SANDBOX";
30
- Environment2["PRODUCTION"] = "PRODUCTION";
31
- return Environment2;
32
- })(Environment || {});
33
- EnvironmentBaseUrl = {
34
- ["SANDBOX" /* SANDBOX */]: "https://api-sandbox.waffo.com/api/v1",
35
- ["PRODUCTION" /* PRODUCTION */]: "https://api.waffo.com/api/v1"
36
- };
37
- }
38
- });
4
+ var Environment = /* @__PURE__ */ ((Environment2) => {
5
+ Environment2["SANDBOX"] = "SANDBOX";
6
+ Environment2["PRODUCTION"] = "PRODUCTION";
7
+ return Environment2;
8
+ })(Environment || {});
9
+ var EnvironmentBaseUrl = {
10
+ ["SANDBOX" /* SANDBOX */]: "https://api-sandbox.waffo.com/api/v1",
11
+ ["PRODUCTION" /* PRODUCTION */]: "https://api.waffo.com/api/v1"
12
+ };
39
13
 
40
14
  // src/errors/waffo-error.ts
41
- var WaffoError, WaffoErrorCode;
42
- var init_waffo_error = __esm({
43
- "src/errors/waffo-error.ts"() {
44
- WaffoError = class _WaffoError extends Error {
45
- /** Error code identifying the type of error */
46
- errorCode;
47
- /** The underlying error that caused this error, if any */
48
- cause;
49
- /**
50
- * Creates a new WaffoError.
51
- *
52
- * @param errorCode - The error code (e.g., "S0003" for signing failure)
53
- * @param message - Human-readable error message
54
- * @param cause - The underlying error that caused this error
55
- */
56
- constructor(errorCode, message, cause) {
57
- super(message);
58
- this.name = "WaffoError";
59
- this.errorCode = errorCode;
60
- this.cause = cause;
61
- if (Error.captureStackTrace) {
62
- Error.captureStackTrace(this, _WaffoError);
63
- }
64
- }
65
- /**
66
- * Returns a string representation of the error.
67
- */
68
- toString() {
69
- return `[${this.errorCode}] ${this.message}`;
70
- }
71
- };
72
- WaffoErrorCode = {
73
- /** Invalid public key */
74
- INVALID_PUBLIC_KEY: "S0002",
75
- /** Failed to sign data */
76
- SIGN_FAILED: "S0003",
77
- /** Response signature verification failed */
78
- VERIFY_FAILED: "S0004",
79
- /** Request serialization failed */
80
- SERIALIZE_FAILED: "S0005",
81
- /** Unexpected error */
82
- UNEXPECTED: "S0006",
83
- /** Invalid private key */
84
- INVALID_PRIVATE_KEY: "S0007"
85
- };
15
+ var WaffoError = class _WaffoError extends Error {
16
+ /** Error code identifying the type of error */
17
+ errorCode;
18
+ /** The underlying error that caused this error, if any */
19
+ cause;
20
+ /**
21
+ * Creates a new WaffoError.
22
+ *
23
+ * @param errorCode - The error code (e.g., "S0003" for signing failure)
24
+ * @param message - Human-readable error message
25
+ * @param cause - The underlying error that caused this error
26
+ */
27
+ constructor(errorCode, message, cause) {
28
+ super(message);
29
+ this.name = "WaffoError";
30
+ this.errorCode = errorCode;
31
+ this.cause = cause;
32
+ if (Error.captureStackTrace) {
33
+ Error.captureStackTrace(this, _WaffoError);
34
+ }
86
35
  }
87
- });
36
+ /**
37
+ * Returns a string representation of the error.
38
+ */
39
+ toString() {
40
+ return `[${this.errorCode}] ${this.message}`;
41
+ }
42
+ };
43
+ var WaffoErrorCode = {
44
+ /** Invalid public key */
45
+ INVALID_PUBLIC_KEY: "S0002",
46
+ /** Failed to sign data */
47
+ SIGN_FAILED: "S0003",
48
+ /** Response signature verification failed */
49
+ VERIFY_FAILED: "S0004",
50
+ /** Request serialization failed */
51
+ SERIALIZE_FAILED: "S0005",
52
+ /** Unexpected error */
53
+ UNEXPECTED: "S0006",
54
+ /** Invalid private key */
55
+ INVALID_PRIVATE_KEY: "S0007"
56
+ };
88
57
 
89
58
  // src/errors/waffo-unknown-status-error.ts
90
- var WaffoUnknownStatusError;
91
- var init_waffo_unknown_status_error = __esm({
92
- "src/errors/waffo-unknown-status-error.ts"() {
93
- WaffoUnknownStatusError = class _WaffoUnknownStatusError extends Error {
94
- /** Error code for network errors */
95
- static CODE_NETWORK_ERROR = "S0001";
96
- /** Error code for unknown server status */
97
- static CODE_UNKNOWN_STATUS = "E0001";
98
- /** Error code identifying the type of error */
99
- errorCode;
100
- /** The underlying error that caused this error, if any */
101
- cause;
102
- /**
103
- * Creates a new WaffoUnknownStatusError.
104
- *
105
- * @param errorCode - The error code (e.g., "S0001" for network error)
106
- * @param message - Human-readable error message
107
- * @param cause - The underlying error that caused this error
108
- */
109
- constructor(errorCode, message, cause) {
110
- super(message);
111
- this.name = "WaffoUnknownStatusError";
112
- this.errorCode = errorCode;
113
- this.cause = cause;
114
- if (Error.captureStackTrace) {
115
- Error.captureStackTrace(this, _WaffoUnknownStatusError);
116
- }
117
- }
118
- /**
119
- * Returns a string representation of the error.
120
- */
121
- toString() {
122
- return `[${this.errorCode}] ${this.message}`;
123
- }
124
- };
59
+ var WaffoUnknownStatusError = class _WaffoUnknownStatusError extends Error {
60
+ /** Error code for network errors */
61
+ static CODE_NETWORK_ERROR = "S0001";
62
+ /** Error code for unknown server status */
63
+ static CODE_UNKNOWN_STATUS = "E0001";
64
+ /** Error code identifying the type of error */
65
+ errorCode;
66
+ /** The underlying error that caused this error, if any */
67
+ cause;
68
+ /**
69
+ * Creates a new WaffoUnknownStatusError.
70
+ *
71
+ * @param errorCode - The error code (e.g., "S0001" for network error)
72
+ * @param message - Human-readable error message
73
+ * @param cause - The underlying error that caused this error
74
+ */
75
+ constructor(errorCode, message, cause) {
76
+ super(message);
77
+ this.name = "WaffoUnknownStatusError";
78
+ this.errorCode = errorCode;
79
+ this.cause = cause;
80
+ if (Error.captureStackTrace) {
81
+ Error.captureStackTrace(this, _WaffoUnknownStatusError);
82
+ }
83
+ }
84
+ /**
85
+ * Returns a string representation of the error.
86
+ */
87
+ toString() {
88
+ return `[${this.errorCode}] ${this.message}`;
125
89
  }
126
- });
90
+ };
127
91
 
128
- // src/errors/index.ts
129
- var init_errors = __esm({
130
- "src/errors/index.ts"() {
131
- init_waffo_error();
132
- init_waffo_unknown_status_error();
133
- }
134
- });
135
- var RsaUtils;
136
- var init_rsa_utils = __esm({
137
- "src/utils/rsa-utils.ts"() {
138
- init_errors();
139
- ((RsaUtils2) => {
140
- const ALGORITHM = "RSA-SHA256";
141
- const KEY_SIZE = 2048;
142
- function sign(data, base64PrivateKey) {
143
- try {
144
- const privateKeyBuffer = Buffer.from(base64PrivateKey, "base64");
145
- const signer = crypto.createSign(ALGORITHM);
146
- signer.update(data, "utf8");
147
- const signature = signer.sign({
148
- key: privateKeyBuffer,
149
- format: "der",
150
- type: "pkcs8"
151
- });
152
- return signature.toString("base64");
153
- } catch (error) {
154
- throw new WaffoError(
155
- WaffoErrorCode.SIGN_FAILED,
156
- `Failed to sign data: ${error instanceof Error ? error.message : String(error)}`,
157
- error instanceof Error ? error : void 0
158
- );
159
- }
160
- }
161
- RsaUtils2.sign = sign;
162
- function verify(data, base64Signature, base64PublicKey) {
163
- try {
164
- const publicKeyBuffer = Buffer.from(base64PublicKey, "base64");
165
- const signatureBuffer = Buffer.from(base64Signature, "base64");
166
- const verifier = crypto.createVerify(ALGORITHM);
167
- verifier.update(data, "utf8");
168
- return verifier.verify(
169
- {
170
- key: publicKeyBuffer,
171
- format: "der",
172
- type: "spki"
173
- },
174
- signatureBuffer
175
- );
176
- } catch {
177
- return false;
178
- }
179
- }
180
- RsaUtils2.verify = verify;
181
- function validatePrivateKey(base64PrivateKey) {
182
- if (!base64PrivateKey || base64PrivateKey.trim() === "") {
183
- throw new WaffoError(
184
- WaffoErrorCode.INVALID_PRIVATE_KEY,
185
- "Private key is null or empty"
186
- );
187
- }
188
- try {
189
- const keyBuffer = Buffer.from(base64PrivateKey, "base64");
190
- crypto.createPrivateKey({
191
- key: keyBuffer,
192
- format: "der",
193
- type: "pkcs8"
194
- });
195
- } catch (error) {
196
- if (error instanceof WaffoError) throw error;
197
- const message = error instanceof Error ? error.message : String(error);
198
- if (message.includes("bad base64")) {
199
- throw new WaffoError(
200
- WaffoErrorCode.INVALID_PRIVATE_KEY,
201
- "Invalid private key: not valid Base64 encoding",
202
- error instanceof Error ? error : void 0
203
- );
204
- }
205
- throw new WaffoError(
206
- WaffoErrorCode.INVALID_PRIVATE_KEY,
207
- `Invalid private key: ${message}`,
208
- error instanceof Error ? error : void 0
209
- );
210
- }
211
- }
212
- RsaUtils2.validatePrivateKey = validatePrivateKey;
213
- function validatePublicKey(base64PublicKey) {
214
- if (!base64PublicKey || base64PublicKey.trim() === "") {
215
- throw new WaffoError(
216
- WaffoErrorCode.INVALID_PUBLIC_KEY,
217
- "Public key is null or empty"
218
- );
219
- }
220
- try {
221
- const keyBuffer = Buffer.from(base64PublicKey, "base64");
222
- crypto.createPublicKey({
223
- key: keyBuffer,
224
- format: "der",
225
- type: "spki"
226
- });
227
- } catch (error) {
228
- if (error instanceof WaffoError) throw error;
229
- const message = error instanceof Error ? error.message : String(error);
230
- if (message.includes("bad base64")) {
231
- throw new WaffoError(
232
- WaffoErrorCode.INVALID_PUBLIC_KEY,
233
- "Invalid public key: not valid Base64 encoding",
234
- error instanceof Error ? error : void 0
235
- );
236
- }
237
- throw new WaffoError(
238
- WaffoErrorCode.INVALID_PUBLIC_KEY,
239
- `Invalid public key: ${message}`,
240
- error instanceof Error ? error : void 0
241
- );
242
- }
243
- }
244
- RsaUtils2.validatePublicKey = validatePublicKey;
245
- function generateKeyPair() {
246
- try {
247
- const { privateKey, publicKey } = crypto.generateKeyPairSync("rsa", {
248
- modulusLength: KEY_SIZE,
249
- publicKeyEncoding: {
250
- type: "spki",
251
- format: "der"
252
- },
253
- privateKeyEncoding: {
254
- type: "pkcs8",
255
- format: "der"
256
- }
257
- });
258
- return {
259
- privateKey: privateKey.toString("base64"),
260
- publicKey: publicKey.toString("base64")
261
- };
262
- } catch (error) {
263
- throw new WaffoError(
264
- WaffoErrorCode.SIGN_FAILED,
265
- `Failed to generate key pair: ${error instanceof Error ? error.message : String(error)}`,
266
- error instanceof Error ? error : void 0
267
- );
268
- }
92
+ // src/utils/rsa-utils.ts
93
+ var ALGORITHM = "RSA-SHA256";
94
+ var KEY_SIZE = 2048;
95
+ function sign(data, base64PrivateKey) {
96
+ try {
97
+ const privateKeyBuffer = Buffer.from(base64PrivateKey, "base64");
98
+ const signer = crypto.createSign(ALGORITHM);
99
+ signer.update(data, "utf8");
100
+ const signature = signer.sign({
101
+ key: privateKeyBuffer,
102
+ format: "der",
103
+ type: "pkcs8"
104
+ });
105
+ return signature.toString("base64");
106
+ } catch (error) {
107
+ throw new WaffoError(
108
+ WaffoErrorCode.SIGN_FAILED,
109
+ `Failed to sign data: ${error instanceof Error ? error.message : String(error)}`,
110
+ error instanceof Error ? error : void 0
111
+ );
112
+ }
113
+ }
114
+ function verify(data, base64Signature, base64PublicKey) {
115
+ try {
116
+ const publicKeyBuffer = Buffer.from(base64PublicKey, "base64");
117
+ const signatureBuffer = Buffer.from(base64Signature, "base64");
118
+ const verifier = crypto.createVerify(ALGORITHM);
119
+ verifier.update(data, "utf8");
120
+ return verifier.verify(
121
+ {
122
+ key: publicKeyBuffer,
123
+ format: "der",
124
+ type: "spki"
125
+ },
126
+ signatureBuffer
127
+ );
128
+ } catch {
129
+ return false;
130
+ }
131
+ }
132
+ function validatePrivateKey(base64PrivateKey) {
133
+ if (!base64PrivateKey || base64PrivateKey.trim() === "") {
134
+ throw new WaffoError(
135
+ WaffoErrorCode.INVALID_PRIVATE_KEY,
136
+ "Private key is null or empty"
137
+ );
138
+ }
139
+ try {
140
+ const keyBuffer = Buffer.from(base64PrivateKey, "base64");
141
+ crypto.createPrivateKey({
142
+ key: keyBuffer,
143
+ format: "der",
144
+ type: "pkcs8"
145
+ });
146
+ } catch (error) {
147
+ if (error instanceof WaffoError) throw error;
148
+ const message = error instanceof Error ? error.message : String(error);
149
+ if (message.includes("bad base64")) {
150
+ throw new WaffoError(
151
+ WaffoErrorCode.INVALID_PRIVATE_KEY,
152
+ "Invalid private key: not valid Base64 encoding",
153
+ error instanceof Error ? error : void 0
154
+ );
155
+ }
156
+ throw new WaffoError(
157
+ WaffoErrorCode.INVALID_PRIVATE_KEY,
158
+ `Invalid private key: ${message}`,
159
+ error instanceof Error ? error : void 0
160
+ );
161
+ }
162
+ }
163
+ function validatePublicKey(base64PublicKey) {
164
+ if (!base64PublicKey || base64PublicKey.trim() === "") {
165
+ throw new WaffoError(
166
+ WaffoErrorCode.INVALID_PUBLIC_KEY,
167
+ "Public key is null or empty"
168
+ );
169
+ }
170
+ try {
171
+ const keyBuffer = Buffer.from(base64PublicKey, "base64");
172
+ crypto.createPublicKey({
173
+ key: keyBuffer,
174
+ format: "der",
175
+ type: "spki"
176
+ });
177
+ } catch (error) {
178
+ if (error instanceof WaffoError) throw error;
179
+ const message = error instanceof Error ? error.message : String(error);
180
+ if (message.includes("bad base64")) {
181
+ throw new WaffoError(
182
+ WaffoErrorCode.INVALID_PUBLIC_KEY,
183
+ "Invalid public key: not valid Base64 encoding",
184
+ error instanceof Error ? error : void 0
185
+ );
186
+ }
187
+ throw new WaffoError(
188
+ WaffoErrorCode.INVALID_PUBLIC_KEY,
189
+ `Invalid public key: ${message}`,
190
+ error instanceof Error ? error : void 0
191
+ );
192
+ }
193
+ }
194
+ function generateKeyPair() {
195
+ try {
196
+ const { privateKey, publicKey } = crypto.generateKeyPairSync("rsa", {
197
+ modulusLength: KEY_SIZE,
198
+ publicKeyEncoding: {
199
+ type: "spki",
200
+ format: "der"
201
+ },
202
+ privateKeyEncoding: {
203
+ type: "pkcs8",
204
+ format: "der"
269
205
  }
270
- RsaUtils2.generateKeyPair = generateKeyPair;
271
- })(RsaUtils || (RsaUtils = {}));
206
+ });
207
+ return {
208
+ privateKey: privateKey.toString("base64"),
209
+ publicKey: publicKey.toString("base64")
210
+ };
211
+ } catch (error) {
212
+ throw new WaffoError(
213
+ WaffoErrorCode.SIGN_FAILED,
214
+ `Failed to generate key pair: ${error instanceof Error ? error.message : String(error)}`,
215
+ error instanceof Error ? error : void 0
216
+ );
272
217
  }
273
- });
218
+ }
219
+ var RsaUtils = {
220
+ sign,
221
+ verify,
222
+ validatePrivateKey,
223
+ validatePublicKey,
224
+ generateKeyPair
225
+ };
274
226
 
275
227
  // src/types/config/waffo-config.ts
228
+ var WaffoConfigEnvVars = {
229
+ API_KEY: "WAFFO_API_KEY",
230
+ PRIVATE_KEY: "WAFFO_PRIVATE_KEY",
231
+ PUBLIC_KEY: "WAFFO_PUBLIC_KEY",
232
+ MERCHANT_ID: "WAFFO_MERCHANT_ID",
233
+ ENVIRONMENT: "WAFFO_ENVIRONMENT"
234
+ };
235
+ var WaffoConfigDefaults = {
236
+ CONNECT_TIMEOUT: 1e4,
237
+ READ_TIMEOUT: 3e4
238
+ };
276
239
  function createWaffoConfig(config) {
277
240
  if (!config.apiKey) {
278
241
  throw new Error("apiKey is required");
@@ -324,44 +287,6 @@ function fromEnv() {
324
287
  merchantId
325
288
  });
326
289
  }
327
- var WaffoConfigEnvVars, WaffoConfigDefaults;
328
- var init_waffo_config = __esm({
329
- "src/types/config/waffo-config.ts"() {
330
- init_environment();
331
- init_rsa_utils();
332
- WaffoConfigEnvVars = {
333
- API_KEY: "WAFFO_API_KEY",
334
- PRIVATE_KEY: "WAFFO_PRIVATE_KEY",
335
- PUBLIC_KEY: "WAFFO_PUBLIC_KEY",
336
- MERCHANT_ID: "WAFFO_MERCHANT_ID",
337
- ENVIRONMENT: "WAFFO_ENVIRONMENT"
338
- };
339
- WaffoConfigDefaults = {
340
- CONNECT_TIMEOUT: 1e4,
341
- READ_TIMEOUT: 3e4
342
- };
343
- }
344
- });
345
-
346
- // src/types/config/index.ts
347
- var config_exports = {};
348
- __export(config_exports, {
349
- Environment: () => Environment,
350
- EnvironmentBaseUrl: () => EnvironmentBaseUrl,
351
- WaffoConfigDefaults: () => WaffoConfigDefaults,
352
- WaffoConfigEnvVars: () => WaffoConfigEnvVars,
353
- createWaffoConfig: () => createWaffoConfig,
354
- fromEnv: () => fromEnv
355
- });
356
- var init_config = __esm({
357
- "src/types/config/index.ts"() {
358
- init_environment();
359
- init_waffo_config();
360
- }
361
- });
362
-
363
- // src/core/waffo-http-client.ts
364
- init_config();
365
290
 
366
291
  // src/types/api-response.ts
367
292
  var ApiResponse = class _ApiResponse {
@@ -509,9 +434,6 @@ var DefaultHttpTransport = class {
509
434
  };
510
435
 
511
436
  // src/core/waffo-http-client.ts
512
- init_rsa_utils();
513
- init_waffo_error();
514
- init_waffo_unknown_status_error();
515
437
  var HEADER_API_KEY = "x-api-key";
516
438
  var HEADER_SIGNATURE = "x-signature";
517
439
  var HEADER_API_VERSION = "x-api-version";
@@ -519,7 +441,7 @@ var HEADER_SDK_VERSION = "x-sdk-version";
519
441
  var HEADER_CONTENT_TYPE = "content-type";
520
442
  var CONTENT_TYPE_JSON = "application/json";
521
443
  var API_VERSION = "1.0.0";
522
- var SDK_VERSION = "waffo-node/1.0.0";
444
+ var SDK_VERSION = "waffo-node/2.1.0";
523
445
  var WaffoHttpClient = class {
524
446
  baseUrl;
525
447
  apiKey;
@@ -668,7 +590,6 @@ var WaffoHttpClient = class {
668
590
  };
669
591
 
670
592
  // src/core/webhook-handler.ts
671
- init_rsa_utils();
672
593
  var WebhookEventType = /* @__PURE__ */ ((WebhookEventType2) => {
673
594
  WebhookEventType2["PAYMENT_NOTIFICATION"] = "PAYMENT_NOTIFICATION";
674
595
  WebhookEventType2["REFUND_NOTIFICATION"] = "REFUND_NOTIFICATION";
@@ -1183,8 +1104,7 @@ var Waffo = class _Waffo {
1183
1104
  * @returns Waffo SDK instance
1184
1105
  */
1185
1106
  static fromEnv() {
1186
- const { WaffoConfig } = (init_config(), __toCommonJS(config_exports));
1187
- return new _Waffo(WaffoConfig.fromEnv());
1107
+ return new _Waffo(fromEnv());
1188
1108
  }
1189
1109
  /**
1190
1110
  * Returns the order resource for managing payment orders.
@@ -1284,12 +1204,6 @@ var Waffo = class _Waffo {
1284
1204
  }
1285
1205
  };
1286
1206
 
1287
- // src/index.ts
1288
- init_config();
1289
- init_waffo_error();
1290
- init_waffo_unknown_status_error();
1291
- init_rsa_utils();
1292
-
1293
1207
  export { ApiResponse, Environment, EnvironmentBaseUrl, MerchantConfigResource, OrderResource, PayMethodConfigResource, RefundResource, RsaUtils, SubscriptionResource, Waffo, WaffoConfigDefaults, WaffoError, WaffoErrorCode, WaffoHttpClient, WaffoUnknownStatusError, WebhookEventType, WebhookHandler };
1294
1208
  //# sourceMappingURL=index.mjs.map
1295
1209
  //# sourceMappingURL=index.mjs.map