@muhammedaksam/ayyildiz-node 0.1.1

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 (75) hide show
  1. package/LICENSE.md +20 -0
  2. package/README.md +314 -0
  3. package/dist/AxiosHttpClient.d.ts +16 -0
  4. package/dist/AxiosHttpClient.d.ts.map +1 -0
  5. package/dist/AxiosHttpClient.js +57 -0
  6. package/dist/AxiosHttpClient.js.map +1 -0
  7. package/dist/AyyildizClient.d.ts +35 -0
  8. package/dist/AyyildizClient.d.ts.map +1 -0
  9. package/dist/AyyildizClient.js +61 -0
  10. package/dist/AyyildizClient.js.map +1 -0
  11. package/dist/IHttpClient.d.ts +8 -0
  12. package/dist/IHttpClient.d.ts.map +1 -0
  13. package/dist/IHttpClient.js +3 -0
  14. package/dist/IHttpClient.js.map +1 -0
  15. package/dist/VersionInfo.d.ts +14 -0
  16. package/dist/VersionInfo.d.ts.map +1 -0
  17. package/dist/VersionInfo.js +26 -0
  18. package/dist/VersionInfo.js.map +1 -0
  19. package/dist/__tests__/AyyildizClient.test.d.ts +2 -0
  20. package/dist/__tests__/AyyildizClient.test.d.ts.map +1 -0
  21. package/dist/__tests__/AyyildizClient.test.js +38 -0
  22. package/dist/__tests__/AyyildizClient.test.js.map +1 -0
  23. package/dist/index.d.ts +16 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +31 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/models/SmsConfig.d.ts +7 -0
  28. package/dist/models/SmsConfig.d.ts.map +1 -0
  29. package/dist/models/SmsConfig.js +3 -0
  30. package/dist/models/SmsConfig.js.map +1 -0
  31. package/dist/models/SmsReport.d.ts +18 -0
  32. package/dist/models/SmsReport.d.ts.map +1 -0
  33. package/dist/models/SmsReport.js +3 -0
  34. package/dist/models/SmsReport.js.map +1 -0
  35. package/dist/responses/AccountResponse.d.ts +7 -0
  36. package/dist/responses/AccountResponse.d.ts.map +1 -0
  37. package/dist/responses/AccountResponse.js +32 -0
  38. package/dist/responses/AccountResponse.js.map +1 -0
  39. package/dist/responses/BaseResponse.d.ts +17 -0
  40. package/dist/responses/BaseResponse.d.ts.map +1 -0
  41. package/dist/responses/BaseResponse.js +86 -0
  42. package/dist/responses/BaseResponse.js.map +1 -0
  43. package/dist/responses/IResponse.d.ts +8 -0
  44. package/dist/responses/IResponse.d.ts.map +1 -0
  45. package/dist/responses/IResponse.js +3 -0
  46. package/dist/responses/IResponse.js.map +1 -0
  47. package/dist/responses/ReportResponse.d.ts +7 -0
  48. package/dist/responses/ReportResponse.d.ts.map +1 -0
  49. package/dist/responses/ReportResponse.js +56 -0
  50. package/dist/responses/ReportResponse.js.map +1 -0
  51. package/dist/responses/SenderResponse.d.ts +6 -0
  52. package/dist/responses/SenderResponse.d.ts.map +1 -0
  53. package/dist/responses/SenderResponse.js +25 -0
  54. package/dist/responses/SenderResponse.js.map +1 -0
  55. package/dist/responses/SmsResponse.d.ts +6 -0
  56. package/dist/responses/SmsResponse.d.ts.map +1 -0
  57. package/dist/responses/SmsResponse.js +27 -0
  58. package/dist/responses/SmsResponse.js.map +1 -0
  59. package/dist/services/AccountService.d.ts +15 -0
  60. package/dist/services/AccountService.d.ts.map +1 -0
  61. package/dist/services/AccountService.js +35 -0
  62. package/dist/services/AccountService.js.map +1 -0
  63. package/dist/services/ReportService.d.ts +36 -0
  64. package/dist/services/ReportService.d.ts.map +1 -0
  65. package/dist/services/ReportService.js +94 -0
  66. package/dist/services/ReportService.js.map +1 -0
  67. package/dist/services/SenderService.d.ts +15 -0
  68. package/dist/services/SenderService.d.ts.map +1 -0
  69. package/dist/services/SenderService.js +37 -0
  70. package/dist/services/SenderService.js.map +1 -0
  71. package/dist/services/SmsService.d.ts +61 -0
  72. package/dist/services/SmsService.d.ts.map +1 -0
  73. package/dist/services/SmsService.js +171 -0
  74. package/dist/services/SmsService.js.map +1 -0
  75. package/package.json +62 -0
package/dist/index.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VersionInfo = exports.SmsResponse = exports.SenderResponse = exports.ReportResponse = exports.BaseResponse = exports.AccountResponse = exports.SmsType = exports.SmsService = exports.SenderService = exports.ReportService = exports.AccountService = exports.AyyildizClient = void 0;
4
+ // Main client
5
+ var AyyildizClient_1 = require("./AyyildizClient");
6
+ Object.defineProperty(exports, "AyyildizClient", { enumerable: true, get: function () { return AyyildizClient_1.AyyildizClient; } });
7
+ // Services
8
+ var AccountService_1 = require("./services/AccountService");
9
+ Object.defineProperty(exports, "AccountService", { enumerable: true, get: function () { return AccountService_1.AccountService; } });
10
+ var ReportService_1 = require("./services/ReportService");
11
+ Object.defineProperty(exports, "ReportService", { enumerable: true, get: function () { return ReportService_1.ReportService; } });
12
+ var SenderService_1 = require("./services/SenderService");
13
+ Object.defineProperty(exports, "SenderService", { enumerable: true, get: function () { return SenderService_1.SenderService; } });
14
+ var SmsService_1 = require("./services/SmsService");
15
+ Object.defineProperty(exports, "SmsService", { enumerable: true, get: function () { return SmsService_1.SmsService; } });
16
+ Object.defineProperty(exports, "SmsType", { enumerable: true, get: function () { return SmsService_1.SmsType; } });
17
+ // Responses
18
+ var AccountResponse_1 = require("./responses/AccountResponse");
19
+ Object.defineProperty(exports, "AccountResponse", { enumerable: true, get: function () { return AccountResponse_1.AccountResponse; } });
20
+ var BaseResponse_1 = require("./responses/BaseResponse");
21
+ Object.defineProperty(exports, "BaseResponse", { enumerable: true, get: function () { return BaseResponse_1.BaseResponse; } });
22
+ var ReportResponse_1 = require("./responses/ReportResponse");
23
+ Object.defineProperty(exports, "ReportResponse", { enumerable: true, get: function () { return ReportResponse_1.ReportResponse; } });
24
+ var SenderResponse_1 = require("./responses/SenderResponse");
25
+ Object.defineProperty(exports, "SenderResponse", { enumerable: true, get: function () { return SenderResponse_1.SenderResponse; } });
26
+ var SmsResponse_1 = require("./responses/SmsResponse");
27
+ Object.defineProperty(exports, "SmsResponse", { enumerable: true, get: function () { return SmsResponse_1.SmsResponse; } });
28
+ // Version info
29
+ var VersionInfo_1 = require("./VersionInfo");
30
+ Object.defineProperty(exports, "VersionInfo", { enumerable: true, get: function () { return VersionInfo_1.VersionInfo; } });
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,cAAc;AACd,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAEvB,WAAW;AACX,4DAA2D;AAAlD,gHAAA,cAAc,OAAA;AACvB,0DAAyD;AAAhD,8GAAA,aAAa,OAAA;AACtB,0DAAyD;AAAhD,8GAAA,aAAa,OAAA;AACtB,oDAA4D;AAAnD,wGAAA,UAAU,OAAA;AAAE,qGAAA,OAAO,OAAA;AAE5B,YAAY;AACZ,+DAA8D;AAArD,kHAAA,eAAe,OAAA;AACxB,yDAAwD;AAA/C,4GAAA,YAAY,OAAA;AACrB,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AACvB,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AACvB,uDAAsD;AAA7C,0GAAA,WAAW,OAAA;AAUpB,eAAe;AACf,6CAA4C;AAAnC,0GAAA,WAAW,OAAA"}
@@ -0,0 +1,7 @@
1
+ export interface SmsConfig {
2
+ username: string;
3
+ password: string;
4
+ companyCode: string;
5
+ defaultOriginator?: string;
6
+ }
7
+ //# sourceMappingURL=SmsConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmsConfig.d.ts","sourceRoot":"","sources":["../../src/models/SmsConfig.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=SmsConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmsConfig.js","sourceRoot":"","sources":["../../src/models/SmsConfig.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ export interface SmsReport {
2
+ messageId: string;
3
+ messageTime: string;
4
+ version: string;
5
+ message: string;
6
+ total: number;
7
+ sent: number;
8
+ pending: number;
9
+ systemOut: number;
10
+ timeout: number;
11
+ type: string;
12
+ status: string;
13
+ statusCode: string;
14
+ startDate: string;
15
+ endDate: string;
16
+ originator: string;
17
+ }
18
+ //# sourceMappingURL=SmsReport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmsReport.d.ts","sourceRoot":"","sources":["../../src/models/SmsReport.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=SmsReport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmsReport.js","sourceRoot":"","sources":["../../src/models/SmsReport.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { BaseResponse } from './BaseResponse';
2
+ export declare class AccountResponse extends BaseResponse {
3
+ getCredit(): number | null;
4
+ getExpiryDate(): string | null;
5
+ toJSON(): object;
6
+ }
7
+ //# sourceMappingURL=AccountResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountResponse.d.ts","sourceRoot":"","sources":["../../src/responses/AccountResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,eAAgB,SAAQ,YAAY;IACxC,SAAS,IAAI,MAAM,GAAG,IAAI;IAQ1B,aAAa,IAAI,MAAM,GAAG,IAAI;IAU9B,MAAM,IAAI,MAAM;CAUxB"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AccountResponse = void 0;
4
+ const BaseResponse_1 = require("./BaseResponse");
5
+ class AccountResponse extends BaseResponse_1.BaseResponse {
6
+ getCredit() {
7
+ if (this.rawResponse && /^\d+$/.test(this.rawResponse.trim())) {
8
+ return parseInt(this.rawResponse.trim(), 10);
9
+ }
10
+ return this.data?.credit || null;
11
+ }
12
+ getExpiryDate() {
13
+ // The second line usually contains expiry date in YYYYMMDD format
14
+ const lines = this.rawResponse.split('\n');
15
+ if (lines.length > 1 && /^\d{8}$/.test(lines[1].trim())) {
16
+ return lines[1].trim();
17
+ }
18
+ return this.data?.expiryDate || null;
19
+ }
20
+ toJSON() {
21
+ return {
22
+ success: this.ok(),
23
+ statusCode: this.getStatusCode(),
24
+ message: this.getMessage(),
25
+ credit: this.getCredit(),
26
+ expiryDate: this.getExpiryDate(),
27
+ errorCode: this.getErrorCode()
28
+ };
29
+ }
30
+ }
31
+ exports.AccountResponse = AccountResponse;
32
+ //# sourceMappingURL=AccountResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountResponse.js","sourceRoot":"","sources":["../../src/responses/AccountResponse.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAE9C,MAAa,eAAgB,SAAQ,2BAAY;IACxC,SAAS;QACd,IAAI,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9D,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC;IACnC,CAAC;IAEM,aAAa;QAClB,kEAAkE;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACxD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC;IACvC,CAAC;IAEM,MAAM;QACX,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;YAClB,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE;YAChC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;YACxB,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE;YAChC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;SAC/B,CAAC;IACJ,CAAC;CACF;AA7BD,0CA6BC"}
@@ -0,0 +1,17 @@
1
+ import { IResponse } from './IResponse';
2
+ export declare class BaseResponse implements IResponse {
3
+ protected data: any;
4
+ protected statusCode: number;
5
+ protected rawResponse: string;
6
+ constructor(data: any, statusCode: number);
7
+ protected parseResponse(data: any): any;
8
+ protected customizeData(): void;
9
+ ok(): boolean;
10
+ hasError(): boolean;
11
+ getMessage(): string;
12
+ getErrorMessage(): string;
13
+ getStatusCode(): number;
14
+ getErrorCode(): string;
15
+ toJSON(): object;
16
+ }
17
+ //# sourceMappingURL=BaseResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseResponse.d.ts","sourceRoot":"","sources":["../../src/responses/BaseResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,YAAa,YAAW,SAAS;IAC5C,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC;IACpB,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;gBAElB,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM;IAOzC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG;IAoBvC,SAAS,CAAC,aAAa,IAAI,IAAI;IAIxB,EAAE,IAAI,OAAO;IAIb,QAAQ,IAAI,OAAO;IAQnB,UAAU,IAAI,MAAM;IAOpB,eAAe,IAAI,MAAM;IAqBzB,aAAa,IAAI,MAAM;IAIvB,YAAY,IAAI,MAAM;IAatB,MAAM,IAAI,MAAM;CAQxB"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseResponse = void 0;
4
+ class BaseResponse {
5
+ constructor(data, statusCode) {
6
+ this.rawResponse = typeof data === 'string' ? data : JSON.stringify(data);
7
+ this.statusCode = statusCode;
8
+ this.data = this.parseResponse(data);
9
+ this.customizeData();
10
+ }
11
+ parseResponse(data) {
12
+ // Handle different response formats from Ayyıldız API
13
+ if (typeof data === 'string') {
14
+ // Check if it's an ID response like "ID:123456"
15
+ if (data.startsWith('ID:')) {
16
+ return { id: data.substring(3), success: true };
17
+ }
18
+ // Check for numeric error codes
19
+ if (/^\d{2,3}$/.test(data.trim())) {
20
+ return { errorCode: data.trim(), success: false };
21
+ }
22
+ // Try to parse as XML or other format
23
+ return { message: data, success: this.statusCode === 200 };
24
+ }
25
+ return data;
26
+ }
27
+ customizeData() {
28
+ // Override this method in child classes if needed
29
+ }
30
+ ok() {
31
+ return this.statusCode === 200 && !this.hasError();
32
+ }
33
+ hasError() {
34
+ return (this.data?.errorCode !== undefined ||
35
+ (typeof this.data?.success === 'boolean' && !this.data.success) ||
36
+ /^\d{2,3}$/.test(this.rawResponse.trim()));
37
+ }
38
+ getMessage() {
39
+ if (this.hasError()) {
40
+ return this.getErrorMessage();
41
+ }
42
+ return this.data?.message || this.rawResponse || '';
43
+ }
44
+ getErrorMessage() {
45
+ const errorCode = this.getErrorCode();
46
+ const errorMessages = {
47
+ '00': 'Kullanıcı Bilgileri Boş',
48
+ '01': 'Kullanıcı Bilgileri Hatalı',
49
+ '02': 'Hesap Kapalı',
50
+ '03': 'Kontör Hatası',
51
+ '04': 'Bayi Kodunuz Hatalı',
52
+ '05': 'Originator Bilginiz Hatalı',
53
+ '06': 'Yapılan İşlem İçin Yetkiniz Yok',
54
+ '10': 'Geçersiz IP Adresi',
55
+ '14': 'Mesaj Metni Girilmemiş',
56
+ '15': 'GSM Numarası Girilmemiş',
57
+ '20': 'Rapor Hazır Değil',
58
+ '27': 'Aylık Atım Limitiniz Yetersiz',
59
+ '100': 'XML Hatası'
60
+ };
61
+ return errorMessages[errorCode] || `Bilinmeyen hata kodu: ${errorCode}`;
62
+ }
63
+ getStatusCode() {
64
+ return this.statusCode;
65
+ }
66
+ getErrorCode() {
67
+ if (this.data?.errorCode) {
68
+ return this.data.errorCode;
69
+ }
70
+ // Check if raw response is an error code
71
+ if (/^\d{2,3}$/.test(this.rawResponse.trim())) {
72
+ return this.rawResponse.trim();
73
+ }
74
+ return '';
75
+ }
76
+ toJSON() {
77
+ return {
78
+ success: this.ok(),
79
+ statusCode: this.getStatusCode(),
80
+ message: this.getMessage(),
81
+ errorCode: this.getErrorCode()
82
+ };
83
+ }
84
+ }
85
+ exports.BaseResponse = BaseResponse;
86
+ //# sourceMappingURL=BaseResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseResponse.js","sourceRoot":"","sources":["../../src/responses/BaseResponse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface IResponse {
2
+ ok(): boolean;
3
+ getMessage(): string;
4
+ getStatusCode(): number;
5
+ getErrorCode(): string;
6
+ toJSON(): object;
7
+ }
8
+ //# sourceMappingURL=IResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IResponse.d.ts","sourceRoot":"","sources":["../../src/responses/IResponse.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,EAAE,IAAI,OAAO,CAAC;IACd,UAAU,IAAI,MAAM,CAAC;IACrB,aAAa,IAAI,MAAM,CAAC;IACxB,YAAY,IAAI,MAAM,CAAC;IACvB,MAAM,IAAI,MAAM,CAAC;CAClB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IResponse.js","sourceRoot":"","sources":["../../src/responses/IResponse.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { BaseResponse } from './BaseResponse';
2
+ export declare class ReportResponse extends BaseResponse {
3
+ getReports(): any[];
4
+ private parseDelimitedReport;
5
+ toJSON(): object;
6
+ }
7
+ //# sourceMappingURL=ReportResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportResponse.d.ts","sourceRoot":"","sources":["../../src/responses/ReportResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,cAAe,SAAQ,YAAY;IACvC,UAAU,IAAI,GAAG,EAAE;IAa1B,OAAO,CAAC,oBAAoB;IAgCrB,MAAM,IAAI,MAAM;CASxB"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReportResponse = void 0;
4
+ const BaseResponse_1 = require("./BaseResponse");
5
+ class ReportResponse extends BaseResponse_1.BaseResponse {
6
+ getReports() {
7
+ if (this.data?.reports) {
8
+ return this.data.reports;
9
+ }
10
+ // Parse delimited report data
11
+ if (this.rawResponse && this.rawResponse.includes('||')) {
12
+ return this.parseDelimitedReport(this.rawResponse);
13
+ }
14
+ return [];
15
+ }
16
+ parseDelimitedReport(response) {
17
+ const lines = response.split('\n').filter(line => line.trim());
18
+ const reports = [];
19
+ for (const line of lines) {
20
+ if (line.includes('||')) {
21
+ const parts = line.split('||');
22
+ if (parts.length >= 14) {
23
+ reports.push({
24
+ messageId: parts[0]?.replace(/"/g, ''),
25
+ messageTime: parts[1]?.replace(/"/g, ''),
26
+ version: parts[2]?.replace(/"/g, ''),
27
+ message: parts[3]?.replace(/"/g, ''),
28
+ total: parseInt(parts[4]?.replace(/"/g, '') || '0'),
29
+ sent: parseInt(parts[5]?.replace(/"/g, '') || '0'),
30
+ pending: parseInt(parts[6]?.replace(/"/g, '') || '0'),
31
+ systemOut: parseInt(parts[7]?.replace(/"/g, '') || '0'),
32
+ timeout: parseInt(parts[8]?.replace(/"/g, '') || '0'),
33
+ type: parts[9]?.replace(/"/g, ''),
34
+ status: parts[10]?.replace(/"/g, ''),
35
+ statusCode: parts[11]?.replace(/"/g, ''),
36
+ startDate: parts[12]?.replace(/"/g, ''),
37
+ endDate: parts[13]?.replace(/"/g, ''),
38
+ originator: parts[14]?.replace(/"/g, '')
39
+ });
40
+ }
41
+ }
42
+ }
43
+ return reports;
44
+ }
45
+ toJSON() {
46
+ return {
47
+ success: this.ok(),
48
+ statusCode: this.getStatusCode(),
49
+ message: this.getMessage(),
50
+ reports: this.getReports(),
51
+ errorCode: this.getErrorCode()
52
+ };
53
+ }
54
+ }
55
+ exports.ReportResponse = ReportResponse;
56
+ //# sourceMappingURL=ReportResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportResponse.js","sourceRoot":"","sources":["../../src/responses/ReportResponse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { BaseResponse } from './BaseResponse';
2
+ export declare class SenderResponse extends BaseResponse {
3
+ getSenders(): string[];
4
+ toJSON(): object;
5
+ }
6
+ //# sourceMappingURL=SenderResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SenderResponse.d.ts","sourceRoot":"","sources":["../../src/responses/SenderResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,cAAe,SAAQ,YAAY;IACvC,UAAU,IAAI,MAAM,EAAE;IAWtB,MAAM,IAAI,MAAM;CASxB"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SenderResponse = void 0;
4
+ const BaseResponse_1 = require("./BaseResponse");
5
+ class SenderResponse extends BaseResponse_1.BaseResponse {
6
+ getSenders() {
7
+ const lines = this.rawResponse.split('\n').filter(line => line.trim());
8
+ // First line should be "OK" for success
9
+ if (lines.length > 0 && lines[0].trim() === 'OK') {
10
+ return lines.slice(1);
11
+ }
12
+ return [];
13
+ }
14
+ toJSON() {
15
+ return {
16
+ success: this.ok(),
17
+ statusCode: this.getStatusCode(),
18
+ message: this.getMessage(),
19
+ senders: this.getSenders(),
20
+ errorCode: this.getErrorCode()
21
+ };
22
+ }
23
+ }
24
+ exports.SenderResponse = SenderResponse;
25
+ //# sourceMappingURL=SenderResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SenderResponse.js","sourceRoot":"","sources":["../../src/responses/SenderResponse.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAE9C,MAAa,cAAe,SAAQ,2BAAY;IACvC,UAAU;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEvE,wCAAwC;QACxC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,MAAM;QACX,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;YAClB,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE;YAChC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;SAC/B,CAAC;IACJ,CAAC;CACF;AArBD,wCAqBC"}
@@ -0,0 +1,6 @@
1
+ import { BaseResponse } from './BaseResponse';
2
+ export declare class SmsResponse extends BaseResponse {
3
+ getMessageId(): string | null;
4
+ toJSON(): object;
5
+ }
6
+ //# sourceMappingURL=SmsResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmsResponse.d.ts","sourceRoot":"","sources":["../../src/responses/SmsResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,WAAY,SAAQ,YAAY;IACpC,YAAY,IAAI,MAAM,GAAG,IAAI;IAa7B,MAAM,IAAI,MAAM;CASxB"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SmsResponse = void 0;
4
+ const BaseResponse_1 = require("./BaseResponse");
5
+ class SmsResponse extends BaseResponse_1.BaseResponse {
6
+ getMessageId() {
7
+ if (this.data?.id) {
8
+ return this.data.id;
9
+ }
10
+ // Parse ID from response like "ID:123456"
11
+ if (this.rawResponse && this.rawResponse.startsWith('ID:')) {
12
+ return this.rawResponse.substring(3);
13
+ }
14
+ return null;
15
+ }
16
+ toJSON() {
17
+ return {
18
+ success: this.ok(),
19
+ statusCode: this.getStatusCode(),
20
+ message: this.getMessage(),
21
+ messageId: this.getMessageId(),
22
+ errorCode: this.getErrorCode()
23
+ };
24
+ }
25
+ }
26
+ exports.SmsResponse = SmsResponse;
27
+ //# sourceMappingURL=SmsResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmsResponse.js","sourceRoot":"","sources":["../../src/responses/SmsResponse.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAE9C,MAAa,WAAY,SAAQ,2BAAY;IACpC,YAAY;QACjB,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,CAAC;QAED,0CAA0C;QAC1C,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM;QACX,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;YAClB,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE;YAChC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;YAC9B,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;SAC/B,CAAC;IACJ,CAAC;CACF;AAvBD,kCAuBC"}
@@ -0,0 +1,15 @@
1
+ import { AccountResponse } from '../responses/AccountResponse';
2
+ import { IHttpClient } from '../IHttpClient';
3
+ export declare class AccountService {
4
+ private httpClient;
5
+ private username;
6
+ private password;
7
+ private companyCode;
8
+ constructor(httpClient: IHttpClient, username: string, password: string, companyCode: string);
9
+ /**
10
+ * Query SMS credit balance
11
+ */
12
+ getCredit(): Promise<AccountResponse>;
13
+ private escapeXml;
14
+ }
15
+ //# sourceMappingURL=AccountService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountService.d.ts","sourceRoot":"","sources":["../../src/services/AccountService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,cAAc;IAEvB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,WAAW;gBAHX,UAAU,EAAE,WAAW,EACvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM;IAG7B;;OAEG;IACU,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;IAYlD,OAAO,CAAC,SAAS;CAQlB"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AccountService = void 0;
4
+ const AccountResponse_1 = require("../responses/AccountResponse");
5
+ class AccountService {
6
+ constructor(httpClient, username, password, companyCode) {
7
+ this.httpClient = httpClient;
8
+ this.username = username;
9
+ this.password = password;
10
+ this.companyCode = companyCode;
11
+ }
12
+ /**
13
+ * Query SMS credit balance
14
+ */
15
+ async getCredit() {
16
+ const xmlData = `<?xml version='1.0' encoding='ISO-8859-9'?>
17
+ <Main>
18
+ <UserName>${this.escapeXml(this.username)}</UserName>
19
+ <PassWord>${this.escapeXml(this.password)}</PassWord>
20
+ <CompanyCode>${this.escapeXml(this.companyCode)}</CompanyCode>
21
+ </Main>`;
22
+ const response = await this.httpClient.post('QueryCredit.aspx', xmlData);
23
+ return new AccountResponse_1.AccountResponse(response.getBody(), response.getStatusCode());
24
+ }
25
+ escapeXml(text) {
26
+ return text
27
+ .replace(/&/g, '&amp;')
28
+ .replace(/</g, '&lt;')
29
+ .replace(/>/g, '&gt;')
30
+ .replace(/"/g, '&quot;')
31
+ .replace(/'/g, '&apos;');
32
+ }
33
+ }
34
+ exports.AccountService = AccountService;
35
+ //# sourceMappingURL=AccountService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountService.js","sourceRoot":"","sources":["../../src/services/AccountService.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAG/D,MAAa,cAAc;IACzB,YACU,UAAuB,EACvB,QAAgB,EAChB,QAAgB,EAChB,WAAmB;QAHnB,eAAU,GAAV,UAAU,CAAa;QACvB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,gBAAW,GAAX,WAAW,CAAQ;IAC1B,CAAC;IAEJ;;OAEG;IACI,KAAK,CAAC,SAAS;QACpB,MAAM,OAAO,GAAG;;gBAEJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;mBAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;QAC3C,CAAC;QAEL,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QACzE,OAAO,IAAI,iCAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC3E,CAAC;IAEO,SAAS,CAAC,IAAY;QAC5B,OAAO,IAAI;aACR,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;aACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;aACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;aACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;aACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;CACF;AA/BD,wCA+BC"}
@@ -0,0 +1,36 @@
1
+ import { ReportResponse } from '../responses/ReportResponse';
2
+ import { IHttpClient } from '../IHttpClient';
3
+ export declare class ReportService {
4
+ private httpClient;
5
+ private username;
6
+ private password;
7
+ private companyCode;
8
+ constructor(httpClient: IHttpClient, username: string, password: string, companyCode: string);
9
+ /**
10
+ * Get reports by date range
11
+ * @param startDate Format: YYYYMMDD
12
+ * @param endDate Format: YYYYMMDD
13
+ * @param delimiter Delimiter for parsing response (default: ||)
14
+ */
15
+ getByDateRange(startDate: string, endDate: string, delimiter?: string): Promise<ReportResponse>;
16
+ /**
17
+ * Get detailed report by message GUID
18
+ * @param messageGuid Message GUID from report list
19
+ * @param delimiter Delimiter for parsing response (default: ||)
20
+ */
21
+ getDetailedReport(messageGuid: string, delimiter?: string): Promise<ReportResponse>;
22
+ /**
23
+ * Get report by message ID
24
+ * @param messageId Message ID
25
+ * @param reportType Report type (1: Delivered, 2: Pending, 3: Failed, 4: Timeout)
26
+ * @param delimiter Delimiter for parsing response (default: ||)
27
+ */
28
+ getByMessageId(messageId: string, reportType?: number, delimiter?: string): Promise<ReportResponse>;
29
+ /**
30
+ * Get report in XML format (v2)
31
+ * @param messageId Message ID
32
+ */
33
+ getXmlReport(messageId: string): Promise<ReportResponse>;
34
+ private escapeXml;
35
+ }
36
+ //# sourceMappingURL=ReportService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportService.d.ts","sourceRoot":"","sources":["../../src/services/ReportService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,aAAa;IAEtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,WAAW;gBAHX,UAAU,EAAE,WAAW,EACvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM;IAG7B;;;;;OAKG;IACU,cAAc,CACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAa,GACvB,OAAO,CAAC,cAAc,CAAC;IAgB1B;;;;OAIG;IACU,iBAAiB,CAC5B,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAa,GACvB,OAAO,CAAC,cAAc,CAAC;IAe1B;;;;;OAKG;IACU,cAAc,CACzB,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,GAAE,MAAa,GACvB,OAAO,CAAC,cAAc,CAAC;IAe1B;;;OAGG;IACU,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAarE,OAAO,CAAC,SAAS;CAQlB"}