@warriorteam/redai-zalo-sdk 1.8.1 → 1.9.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.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,106 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.9.1] - 2025-01-11
9
+
10
+ ### 🔧 FIXED
11
+
12
+ #### Group Management API Response Structure
13
+ - **FIXED**: `GroupCreateResult` interface to match Zalo API response 100%
14
+ - **CHANGED**: Response structure from flat object to proper wrapper with `data`, `error`, `message`
15
+ - **ADDED**: `GroupCreateData` interface for the actual group data
16
+ - **ADDED**: `extractGroupData()` helper method to extract data from response
17
+
18
+ #### Response Structure Corrections
19
+ - **FIXED**: Field names to match Zalo API exactly:
20
+ - `group_name` → `name`
21
+ - `member_count` → `total_member`
22
+ - Added missing fields: `group_link`, `group_description`, `status`
23
+ - Removed non-existent field: `created_time`
24
+
25
+ ### 📋 Migration Guide
26
+
27
+ **Before (v1.9.0) - BROKEN:**
28
+ ```typescript
29
+ const result = await groupService.createGroup(token, groupData);
30
+ // result.group_name ❌ Field doesn't exist
31
+ // result.member_count ❌ Field doesn't exist
32
+ ```
33
+
34
+ **After (v1.9.1) - CORRECT:**
35
+ ```typescript
36
+ const result = await groupService.createGroup(token, groupData);
37
+ // Full response: result.data, result.error, result.message
38
+ const groupData = result.data; // or use extractGroupData(result)
39
+ // groupData.name ✅ Correct field name
40
+ // groupData.total_member ✅ Correct field name
41
+ // groupData.group_link ✅ Available
42
+ // groupData.status ✅ Available
43
+ ```
44
+
45
+ ## [1.9.0] - 2025-01-11
46
+
47
+ ### 🚨 BREAKING CHANGES
48
+
49
+ #### ZNS Template API Complete Restructure
50
+ - **FIXED**: `ZNSUpdateTemplateRequest` interface to match Zalo API docs 100%
51
+ - **FIXED**: `ZNSCreateTemplateRequest` interface to match Zalo API docs 100%
52
+ - **CHANGED**: Field names from camelCase to snake_case (e.g., `templateId` → `template_id`)
53
+ - **ADDED**: Required fields: `template_type`, `tag`, `layout`, `tracking_id`
54
+ - **REMOVED**: Non-existent fields: `templateContent`, `timeout`, `previewUrl`
55
+ - **FIXED**: `params` structure to match Zalo API specification
56
+
57
+ #### New ZNS Template Structure
58
+ - **ADDED**: `ZNSTemplateLayout` interface with proper header/body/footer components
59
+ - **ADDED**: `ZNSLayoutComponent` interface supporting all Zalo component types
60
+ - **ADDED**: `ZNSTemplateParam` interface with correct param type structure
61
+ - **ADDED**: `ZNSTemplateCreateEditResponse` interface for API responses
62
+
63
+ #### New Enums and Constants
64
+ - **ADDED**: `ZNSTemplateType` enum (1-5 for different template types)
65
+ - **ADDED**: `ZNSTemplateTag` enum ("1"-"3" for Transaction/Customer Care/Promotion)
66
+ - **ADDED**: `ZNSButtonType` enum (1-8 for different button types)
67
+ - **ADDED**: `ZNSParamType` enum ("1"-"15" for different parameter types)
68
+ - **ADDED**: `ZNS_TEMPLATE_TYPES`, `ZNS_TEMPLATE_TAGS`, `ZNS_BUTTON_TYPES`, `ZNS_PARAM_TYPES` constants
69
+ - **ADDED**: `ZNSValidation` helper functions for validation
70
+
71
+ ### 📋 Migration Guide
72
+
73
+ **Before (v1.8.1) - BROKEN:**
74
+ ```typescript
75
+ const templateData: ZNSUpdateTemplateRequest = {
76
+ templateId: "123",
77
+ templateName: "Test",
78
+ templateContent: "Hello", // ❌ Field doesn't exist in Zalo API
79
+ templateTag: "1" // ❌ Wrong field name
80
+ };
81
+ ```
82
+
83
+ **After (v1.9.0) - CORRECT:**
84
+ ```typescript
85
+ const templateData: ZNSUpdateTemplateRequest = {
86
+ template_id: "123",
87
+ template_name: "Test Template",
88
+ template_type: ZNSTemplateType.CUSTOM,
89
+ tag: ZNSTemplateTag.TRANSACTION,
90
+ layout: {
91
+ body: {
92
+ components: [
93
+ { TITLE: { value: "Hello World" } }
94
+ ]
95
+ }
96
+ },
97
+ tracking_id: "track_001"
98
+ };
99
+ ```
100
+
101
+ ### 🔧 Technical Details
102
+
103
+ - **API Compliance**: Now 100% matches official Zalo API documentation
104
+ - **Validation**: Added comprehensive validation functions
105
+ - **Type Safety**: Improved TypeScript types with proper enums
106
+ - **Constants**: Added helper constants for easier development
107
+
8
108
  ## [1.8.1] - 2025-01-10
9
109
 
10
110
  ### 🔧 FIXED
package/README.md CHANGED
@@ -29,6 +29,45 @@ A comprehensive TypeScript/JavaScript SDK for Zalo APIs, providing easy-to-use i
29
29
  npm install @warriorteam/redai-zalo-sdk
30
30
  ```
31
31
 
32
+ ## 🚨 Version 1.9.0 - Breaking Changes
33
+
34
+ **ZNS Template API has been completely restructured to match Zalo API 100%**
35
+
36
+ ### What Changed:
37
+ - ✅ **Fixed**: All ZNS template interfaces now match official Zalo API docs
38
+ - ✅ **Added**: Proper `layout` structure with header/body/footer components
39
+ - ✅ **Added**: Complete enum support for template types, tags, buttons, and params
40
+ - ✅ **Added**: Validation helpers and constants
41
+ - ❌ **Removed**: Non-existent fields like `templateContent`, `timeout`, `previewUrl`
42
+ - 🔄 **Changed**: Field names from camelCase to snake_case (e.g., `templateId` → `template_id`)
43
+
44
+ ### Migration Required:
45
+ ```typescript
46
+ // ❌ Before v1.9.0 (BROKEN)
47
+ const templateData = {
48
+ templateId: "123",
49
+ templateContent: "Hello" // Field doesn't exist in Zalo API
50
+ };
51
+
52
+ // ✅ After v1.9.0 (CORRECT)
53
+ import { ZNSTemplateType, ZNSTemplateTag } from '@warriorteam/redai-zalo-sdk';
54
+
55
+ const templateData = {
56
+ template_id: "123",
57
+ template_name: "My Template",
58
+ template_type: ZNSTemplateType.CUSTOM,
59
+ tag: ZNSTemplateTag.TRANSACTION,
60
+ layout: {
61
+ body: {
62
+ components: [{ TITLE: { value: "Hello" } }]
63
+ }
64
+ },
65
+ tracking_id: "track_001"
66
+ };
67
+ ```
68
+
69
+ See [CHANGELOG.md](./CHANGELOG.md) for complete migration guide.
70
+
32
71
  ## 📚 Documentation
33
72
 
34
73
  ### 🚀 Getting Started
@@ -0,0 +1,205 @@
1
+ /**
2
+ * ZNS Constants - Các hằng số theo chuẩn Zalo API
3
+ */
4
+ import { ZNSTemplateType, ZNSTemplateTag, ZNSButtonType, ZNSParamType } from '../types/zns';
5
+ /**
6
+ * Template Type mapping với description
7
+ */
8
+ export declare const ZNS_TEMPLATE_TYPES: {
9
+ readonly 1: {
10
+ readonly value: ZNSTemplateType.CUSTOM;
11
+ readonly name: "ZNS tùy chỉnh";
12
+ readonly description: "Template tùy chỉnh cho các mục đích khác nhau";
13
+ };
14
+ readonly 2: {
15
+ readonly value: ZNSTemplateType.AUTHENTICATION;
16
+ readonly name: "ZNS xác thực";
17
+ readonly description: "Template cho việc xác thực OTP, mã PIN";
18
+ };
19
+ readonly 3: {
20
+ readonly value: ZNSTemplateType.PAYMENT_REQUEST;
21
+ readonly name: "ZNS yêu cầu thanh toán";
22
+ readonly description: "Template yêu cầu thanh toán";
23
+ };
24
+ readonly 4: {
25
+ readonly value: ZNSTemplateType.VOUCHER;
26
+ readonly name: "ZNS voucher";
27
+ readonly description: "Template gửi voucher, khuyến mãi";
28
+ };
29
+ readonly 5: {
30
+ readonly value: ZNSTemplateType.SERVICE_RATING;
31
+ readonly name: "ZNS đánh giá dịch vụ";
32
+ readonly description: "Template yêu cầu đánh giá dịch vụ";
33
+ };
34
+ };
35
+ /**
36
+ * Template Tag mapping với description
37
+ */
38
+ export declare const ZNS_TEMPLATE_TAGS: {
39
+ readonly "1": {
40
+ readonly value: ZNSTemplateTag.TRANSACTION;
41
+ readonly name: "Transaction";
42
+ readonly description: "Giao dịch, thanh toán";
43
+ };
44
+ readonly "2": {
45
+ readonly value: ZNSTemplateTag.CUSTOMER_CARE;
46
+ readonly name: "Customer Care";
47
+ readonly description: "Chăm sóc khách hàng";
48
+ };
49
+ readonly "3": {
50
+ readonly value: ZNSTemplateTag.PROMOTION;
51
+ readonly name: "Promotion";
52
+ readonly description: "Khuyến mãi, quảng cáo";
53
+ };
54
+ };
55
+ /**
56
+ * Button Type mapping với description
57
+ */
58
+ export declare const ZNS_BUTTON_TYPES: {
59
+ readonly 1: {
60
+ readonly value: ZNSButtonType.URL;
61
+ readonly name: "URL";
62
+ readonly description: "Mở đường link";
63
+ };
64
+ readonly 2: {
65
+ readonly value: ZNSButtonType.PHONE;
66
+ readonly name: "Phone";
67
+ readonly description: "Gọi điện thoại";
68
+ };
69
+ readonly 3: {
70
+ readonly value: ZNSButtonType.SMS;
71
+ readonly name: "SMS";
72
+ readonly description: "Gửi tin nhắn SMS";
73
+ };
74
+ readonly 4: {
75
+ readonly value: ZNSButtonType.APP;
76
+ readonly name: "App";
77
+ readonly description: "Mở ứng dụng";
78
+ };
79
+ readonly 5: {
80
+ readonly value: ZNSButtonType.DEEPLINK;
81
+ readonly name: "Deeplink";
82
+ readonly description: "Mở deeplink";
83
+ };
84
+ readonly 6: {
85
+ readonly value: ZNSButtonType.MAP;
86
+ readonly name: "Map";
87
+ readonly description: "Mở bản đồ";
88
+ };
89
+ readonly 7: {
90
+ readonly value: ZNSButtonType.CALENDAR;
91
+ readonly name: "Calendar";
92
+ readonly description: "Thêm vào lịch";
93
+ };
94
+ readonly 8: {
95
+ readonly value: ZNSButtonType.COPY;
96
+ readonly name: "Copy";
97
+ readonly description: "Sao chép nội dung";
98
+ };
99
+ };
100
+ /**
101
+ * Parameter Type mapping với description và max length
102
+ */
103
+ export declare const ZNS_PARAM_TYPES: {
104
+ readonly "1": {
105
+ readonly value: ZNSParamType.CUSTOMER_NAME;
106
+ readonly name: "Tên khách hàng";
107
+ readonly maxLength: 30;
108
+ };
109
+ readonly "2": {
110
+ readonly value: ZNSParamType.PHONE_NUMBER;
111
+ readonly name: "Số điện thoại";
112
+ readonly maxLength: 15;
113
+ };
114
+ readonly "3": {
115
+ readonly value: ZNSParamType.ADDRESS;
116
+ readonly name: "Địa chỉ";
117
+ readonly maxLength: 200;
118
+ };
119
+ readonly "4": {
120
+ readonly value: ZNSParamType.CODE;
121
+ readonly name: "Mã số";
122
+ readonly maxLength: 30;
123
+ };
124
+ readonly "5": {
125
+ readonly value: ZNSParamType.CUSTOM_LABEL;
126
+ readonly name: "Nhãn tùy chỉnh";
127
+ readonly maxLength: 30;
128
+ };
129
+ readonly "6": {
130
+ readonly value: ZNSParamType.TRANSACTION_STATUS;
131
+ readonly name: "Trạng thái giao dịch";
132
+ readonly maxLength: 30;
133
+ };
134
+ readonly "7": {
135
+ readonly value: ZNSParamType.CONTACT_INFO;
136
+ readonly name: "Thông tin liên hệ";
137
+ readonly maxLength: 50;
138
+ };
139
+ readonly "8": {
140
+ readonly value: ZNSParamType.GENDER_TITLE;
141
+ readonly name: "Giới tính / Danh xưng";
142
+ readonly maxLength: 5;
143
+ };
144
+ readonly "9": {
145
+ readonly value: ZNSParamType.PRODUCT_BRAND;
146
+ readonly name: "Tên sản phẩm / Thương hiệu";
147
+ readonly maxLength: 200;
148
+ };
149
+ readonly "10": {
150
+ readonly value: ZNSParamType.QUANTITY_AMOUNT;
151
+ readonly name: "Số lượng / Số tiền";
152
+ readonly maxLength: 20;
153
+ };
154
+ readonly "11": {
155
+ readonly value: ZNSParamType.TIME;
156
+ readonly name: "Thời gian";
157
+ readonly maxLength: 20;
158
+ };
159
+ readonly "12": {
160
+ readonly value: ZNSParamType.OTP;
161
+ readonly name: "OTP";
162
+ readonly maxLength: 10;
163
+ };
164
+ readonly "13": {
165
+ readonly value: ZNSParamType.URL;
166
+ readonly name: "URL";
167
+ readonly maxLength: 200;
168
+ };
169
+ readonly "14": {
170
+ readonly value: ZNSParamType.CURRENCY;
171
+ readonly name: "Tiền tệ (VNĐ)";
172
+ readonly maxLength: 12;
173
+ };
174
+ readonly "15": {
175
+ readonly value: ZNSParamType.BANK_TRANSFER_NOTE;
176
+ readonly name: "Bank transfer note";
177
+ readonly maxLength: 90;
178
+ };
179
+ };
180
+ /**
181
+ * Template Type và Tag compatibility matrix
182
+ */
183
+ export declare const ZNS_TEMPLATE_TAG_COMPATIBILITY: Record<ZNSTemplateType, ZNSTemplateTag[]>;
184
+ /**
185
+ * Validation functions
186
+ */
187
+ export declare const ZNSValidation: {
188
+ /**
189
+ * Kiểm tra template name hợp lệ
190
+ */
191
+ readonly isValidTemplateName: (name: string) => boolean;
192
+ /**
193
+ * Kiểm tra note hợp lệ
194
+ */
195
+ readonly isValidNote: (note: string) => boolean;
196
+ /**
197
+ * Kiểm tra tag có tương thích với template type không
198
+ */
199
+ readonly isTagCompatibleWithType: (templateType: ZNSTemplateType, tag: ZNSTemplateTag) => boolean;
200
+ /**
201
+ * Kiểm tra param value có hợp lệ với type không
202
+ */
203
+ readonly isValidParamValue: (paramType: ZNSParamType, value: string) => boolean;
204
+ };
205
+ //# sourceMappingURL=zns.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zns.constants.d.ts","sourceRoot":"","sources":["../../src/constants/zns.constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,YAAY,EACb,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BrB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAgBpB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCnB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4ElB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,eAAe,EAAE,cAAc,EAAE,CAoBpF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa;IACxB;;OAEG;yCACyB,MAAM,KAAG,OAAO;IAI5C;;OAEG;iCACiB,MAAM,KAAG,OAAO;IAIpC;;OAEG;qDACqC,eAAe,OAAO,cAAc,KAAG,OAAO;IAKtF;;OAEG;4CAC4B,YAAY,SAAS,MAAM,KAAG,OAAO;CAI5D,CAAC"}
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ /**
3
+ * ZNS Constants - Các hằng số theo chuẩn Zalo API
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ZNSValidation = exports.ZNS_TEMPLATE_TAG_COMPATIBILITY = exports.ZNS_PARAM_TYPES = exports.ZNS_BUTTON_TYPES = exports.ZNS_TEMPLATE_TAGS = exports.ZNS_TEMPLATE_TYPES = void 0;
7
+ const zns_1 = require("../types/zns");
8
+ /**
9
+ * Template Type mapping với description
10
+ */
11
+ exports.ZNS_TEMPLATE_TYPES = {
12
+ [zns_1.ZNSTemplateType.CUSTOM]: {
13
+ value: zns_1.ZNSTemplateType.CUSTOM,
14
+ name: 'ZNS tùy chỉnh',
15
+ description: 'Template tùy chỉnh cho các mục đích khác nhau'
16
+ },
17
+ [zns_1.ZNSTemplateType.AUTHENTICATION]: {
18
+ value: zns_1.ZNSTemplateType.AUTHENTICATION,
19
+ name: 'ZNS xác thực',
20
+ description: 'Template cho việc xác thực OTP, mã PIN'
21
+ },
22
+ [zns_1.ZNSTemplateType.PAYMENT_REQUEST]: {
23
+ value: zns_1.ZNSTemplateType.PAYMENT_REQUEST,
24
+ name: 'ZNS yêu cầu thanh toán',
25
+ description: 'Template yêu cầu thanh toán'
26
+ },
27
+ [zns_1.ZNSTemplateType.VOUCHER]: {
28
+ value: zns_1.ZNSTemplateType.VOUCHER,
29
+ name: 'ZNS voucher',
30
+ description: 'Template gửi voucher, khuyến mãi'
31
+ },
32
+ [zns_1.ZNSTemplateType.SERVICE_RATING]: {
33
+ value: zns_1.ZNSTemplateType.SERVICE_RATING,
34
+ name: 'ZNS đánh giá dịch vụ',
35
+ description: 'Template yêu cầu đánh giá dịch vụ'
36
+ }
37
+ };
38
+ /**
39
+ * Template Tag mapping với description
40
+ */
41
+ exports.ZNS_TEMPLATE_TAGS = {
42
+ [zns_1.ZNSTemplateTag.TRANSACTION]: {
43
+ value: zns_1.ZNSTemplateTag.TRANSACTION,
44
+ name: 'Transaction',
45
+ description: 'Giao dịch, thanh toán'
46
+ },
47
+ [zns_1.ZNSTemplateTag.CUSTOMER_CARE]: {
48
+ value: zns_1.ZNSTemplateTag.CUSTOMER_CARE,
49
+ name: 'Customer Care',
50
+ description: 'Chăm sóc khách hàng'
51
+ },
52
+ [zns_1.ZNSTemplateTag.PROMOTION]: {
53
+ value: zns_1.ZNSTemplateTag.PROMOTION,
54
+ name: 'Promotion',
55
+ description: 'Khuyến mãi, quảng cáo'
56
+ }
57
+ };
58
+ /**
59
+ * Button Type mapping với description
60
+ */
61
+ exports.ZNS_BUTTON_TYPES = {
62
+ [zns_1.ZNSButtonType.URL]: {
63
+ value: zns_1.ZNSButtonType.URL,
64
+ name: 'URL',
65
+ description: 'Mở đường link'
66
+ },
67
+ [zns_1.ZNSButtonType.PHONE]: {
68
+ value: zns_1.ZNSButtonType.PHONE,
69
+ name: 'Phone',
70
+ description: 'Gọi điện thoại'
71
+ },
72
+ [zns_1.ZNSButtonType.SMS]: {
73
+ value: zns_1.ZNSButtonType.SMS,
74
+ name: 'SMS',
75
+ description: 'Gửi tin nhắn SMS'
76
+ },
77
+ [zns_1.ZNSButtonType.APP]: {
78
+ value: zns_1.ZNSButtonType.APP,
79
+ name: 'App',
80
+ description: 'Mở ứng dụng'
81
+ },
82
+ [zns_1.ZNSButtonType.DEEPLINK]: {
83
+ value: zns_1.ZNSButtonType.DEEPLINK,
84
+ name: 'Deeplink',
85
+ description: 'Mở deeplink'
86
+ },
87
+ [zns_1.ZNSButtonType.MAP]: {
88
+ value: zns_1.ZNSButtonType.MAP,
89
+ name: 'Map',
90
+ description: 'Mở bản đồ'
91
+ },
92
+ [zns_1.ZNSButtonType.CALENDAR]: {
93
+ value: zns_1.ZNSButtonType.CALENDAR,
94
+ name: 'Calendar',
95
+ description: 'Thêm vào lịch'
96
+ },
97
+ [zns_1.ZNSButtonType.COPY]: {
98
+ value: zns_1.ZNSButtonType.COPY,
99
+ name: 'Copy',
100
+ description: 'Sao chép nội dung'
101
+ }
102
+ };
103
+ /**
104
+ * Parameter Type mapping với description và max length
105
+ */
106
+ exports.ZNS_PARAM_TYPES = {
107
+ [zns_1.ZNSParamType.CUSTOMER_NAME]: {
108
+ value: zns_1.ZNSParamType.CUSTOMER_NAME,
109
+ name: 'Tên khách hàng',
110
+ maxLength: 30
111
+ },
112
+ [zns_1.ZNSParamType.PHONE_NUMBER]: {
113
+ value: zns_1.ZNSParamType.PHONE_NUMBER,
114
+ name: 'Số điện thoại',
115
+ maxLength: 15
116
+ },
117
+ [zns_1.ZNSParamType.ADDRESS]: {
118
+ value: zns_1.ZNSParamType.ADDRESS,
119
+ name: 'Địa chỉ',
120
+ maxLength: 200
121
+ },
122
+ [zns_1.ZNSParamType.CODE]: {
123
+ value: zns_1.ZNSParamType.CODE,
124
+ name: 'Mã số',
125
+ maxLength: 30
126
+ },
127
+ [zns_1.ZNSParamType.CUSTOM_LABEL]: {
128
+ value: zns_1.ZNSParamType.CUSTOM_LABEL,
129
+ name: 'Nhãn tùy chỉnh',
130
+ maxLength: 30
131
+ },
132
+ [zns_1.ZNSParamType.TRANSACTION_STATUS]: {
133
+ value: zns_1.ZNSParamType.TRANSACTION_STATUS,
134
+ name: 'Trạng thái giao dịch',
135
+ maxLength: 30
136
+ },
137
+ [zns_1.ZNSParamType.CONTACT_INFO]: {
138
+ value: zns_1.ZNSParamType.CONTACT_INFO,
139
+ name: 'Thông tin liên hệ',
140
+ maxLength: 50
141
+ },
142
+ [zns_1.ZNSParamType.GENDER_TITLE]: {
143
+ value: zns_1.ZNSParamType.GENDER_TITLE,
144
+ name: 'Giới tính / Danh xưng',
145
+ maxLength: 5
146
+ },
147
+ [zns_1.ZNSParamType.PRODUCT_BRAND]: {
148
+ value: zns_1.ZNSParamType.PRODUCT_BRAND,
149
+ name: 'Tên sản phẩm / Thương hiệu',
150
+ maxLength: 200
151
+ },
152
+ [zns_1.ZNSParamType.QUANTITY_AMOUNT]: {
153
+ value: zns_1.ZNSParamType.QUANTITY_AMOUNT,
154
+ name: 'Số lượng / Số tiền',
155
+ maxLength: 20
156
+ },
157
+ [zns_1.ZNSParamType.TIME]: {
158
+ value: zns_1.ZNSParamType.TIME,
159
+ name: 'Thời gian',
160
+ maxLength: 20
161
+ },
162
+ [zns_1.ZNSParamType.OTP]: {
163
+ value: zns_1.ZNSParamType.OTP,
164
+ name: 'OTP',
165
+ maxLength: 10
166
+ },
167
+ [zns_1.ZNSParamType.URL]: {
168
+ value: zns_1.ZNSParamType.URL,
169
+ name: 'URL',
170
+ maxLength: 200
171
+ },
172
+ [zns_1.ZNSParamType.CURRENCY]: {
173
+ value: zns_1.ZNSParamType.CURRENCY,
174
+ name: 'Tiền tệ (VNĐ)',
175
+ maxLength: 12
176
+ },
177
+ [zns_1.ZNSParamType.BANK_TRANSFER_NOTE]: {
178
+ value: zns_1.ZNSParamType.BANK_TRANSFER_NOTE,
179
+ name: 'Bank transfer note',
180
+ maxLength: 90
181
+ }
182
+ };
183
+ /**
184
+ * Template Type và Tag compatibility matrix
185
+ */
186
+ exports.ZNS_TEMPLATE_TAG_COMPATIBILITY = {
187
+ [zns_1.ZNSTemplateType.CUSTOM]: [
188
+ zns_1.ZNSTemplateTag.TRANSACTION,
189
+ zns_1.ZNSTemplateTag.CUSTOMER_CARE,
190
+ zns_1.ZNSTemplateTag.PROMOTION
191
+ ],
192
+ [zns_1.ZNSTemplateType.AUTHENTICATION]: [
193
+ zns_1.ZNSTemplateTag.TRANSACTION
194
+ ],
195
+ [zns_1.ZNSTemplateType.PAYMENT_REQUEST]: [
196
+ zns_1.ZNSTemplateTag.TRANSACTION
197
+ ],
198
+ [zns_1.ZNSTemplateType.VOUCHER]: [
199
+ zns_1.ZNSTemplateTag.TRANSACTION,
200
+ zns_1.ZNSTemplateTag.CUSTOMER_CARE,
201
+ zns_1.ZNSTemplateTag.PROMOTION
202
+ ],
203
+ [zns_1.ZNSTemplateType.SERVICE_RATING]: [
204
+ zns_1.ZNSTemplateTag.CUSTOMER_CARE
205
+ ]
206
+ };
207
+ /**
208
+ * Validation functions
209
+ */
210
+ exports.ZNSValidation = {
211
+ /**
212
+ * Kiểm tra template name hợp lệ
213
+ */
214
+ isValidTemplateName: (name) => {
215
+ return name.length >= 10 && name.length <= 60;
216
+ },
217
+ /**
218
+ * Kiểm tra note hợp lệ
219
+ */
220
+ isValidNote: (note) => {
221
+ return note.length >= 1 && note.length <= 400;
222
+ },
223
+ /**
224
+ * Kiểm tra tag có tương thích với template type không
225
+ */
226
+ isTagCompatibleWithType: (templateType, tag) => {
227
+ const compatibleTags = exports.ZNS_TEMPLATE_TAG_COMPATIBILITY[templateType];
228
+ return compatibleTags ? compatibleTags.includes(tag) : false;
229
+ },
230
+ /**
231
+ * Kiểm tra param value có hợp lệ với type không
232
+ */
233
+ isValidParamValue: (paramType, value) => {
234
+ const typeInfo = exports.ZNS_PARAM_TYPES[paramType];
235
+ return typeInfo ? value.length <= typeInfo.maxLength : false;
236
+ }
237
+ };
238
+ //# sourceMappingURL=zns.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zns.constants.js","sourceRoot":"","sources":["../../src/constants/zns.constants.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -14,6 +14,7 @@ export * from "./types/oa";
14
14
  export * from "./types/user";
15
15
  export * from "./types/zns";
16
16
  export * from "./types/article";
17
+ export * from "./constants/zns.constants";
17
18
  export type { BaseMessage, TextMessage, ImageMessage, FileMessage, StickerMessage, TemplateMessage as MessageTemplateMessage, ReactionMessage as MessageReactionMessage, Message, MessageRecipient, SendMessageRequest, SendMessageResponse, UploadFileResponse, MessageStatus, MessageEvent, ConsultationTextMessage, ConsultationImageMessage, ConsultationFileMessage, ConsultationStickerMessage, ConsultationQuoteMessage, ConsultationRequestInfoMessage, TransactionMessage, PromotionMessage, AnonymousTextMessage, AnonymousImageMessage, AnonymousFileMessage, AnonymousStickerMessage, MiniAppMessage, ExtendedMessage, } from "./types/message";
18
19
  export * from "./types/webhook";
19
20
  export type { GroupMessage, GroupTextMessage, GroupImageMessage, GroupFileMessage, GroupStickerMessage, GroupMentionMessage, GroupMessageResult, GroupInfo as GroupManagementInfo, GroupMember, GroupMemberList, GroupSettings, GroupJoinRequest, GroupJoinRequestList, GroupInvitation, GroupActivity, GroupActivityList, GroupStatistics, GroupMessageTemplate, GroupMessageSchedule, GroupBroadcast, GroupPermission, GroupWebhookEvent as GroupManagementWebhookEvent, GroupApiResponse, GroupCreateResponse, GroupUpdateResponse, GroupDeleteResponse, GroupMemberActionResponse, GroupCreateRequest, GroupCreateResult, GroupUpdateRequest, GroupAvatarUpdateRequest, GroupMemberInviteRequest, GroupMemberActionRequest, GroupAdminActionRequest, GroupDeleteRequest, GroupPendingMember, GroupQuota, GroupQuotaAsset, GroupRecentChat, GroupConversationMessage, GroupsOfOAResponse, GroupDetailResponse, GroupPendingMembersResponse, GroupAcceptPendingMembersRequest, GroupAcceptPendingMembersResponse, GroupRemoveMembersRequest, GroupRemoveMembersResponse, GroupMembersResponse, GroupQuotaMessageRequest, GroupQuotaMessageResponse, } from "./types/group";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAGhC,YAAY,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,IAAI,sBAAsB,EACzC,eAAe,IAAI,sBAAsB,EACzC,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,EACxB,8BAA8B,EAC9B,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAGzB,cAAc,iBAAiB,CAAC;AAGhC,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,IAAI,mBAAmB,EAChC,WAAW,EACX,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,iBAAiB,IAAI,2BAA2B,EAChD,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,gCAAgC,EAChC,iCAAiC,EACjC,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,WAAW,IAAI,qBAAqB,EACpC,QAAQ,IAAI,kBAAkB,EAC9B,OAAO,EACP,WAAW,EACX,QAAQ,EACR,eAAe,EACf,aAAa,EACb,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,UAAU,EACV,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EAClB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -32,6 +32,8 @@ __exportStar(require("./types/oa"), exports);
32
32
  __exportStar(require("./types/user"), exports);
33
33
  __exportStar(require("./types/zns"), exports);
34
34
  __exportStar(require("./types/article"), exports);
35
+ // Export ZNS constants and helpers
36
+ __exportStar(require("./constants/zns.constants"), exports);
35
37
  // Export webhook types (avoiding conflicts with message and group types)
36
38
  __exportStar(require("./types/webhook"), exports);
37
39
  // Export clients
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;AAEH,eAAe;AACf,iDAA+B;AAC/B,+CAA6B;AAC7B,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,kDAAgC;AAkChC,yEAAyE;AACzE,kDAAgC;AA8EhC,iBAAiB;AACjB,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AACnB,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AAEnB,kBAAkB;AAClB,wDAAsD;AAA7C,2GAAA,WAAW,OAAA;AACpB,oDAAkD;AAAzC,uGAAA,SAAS,OAAA;AAClB,2GAA2G;AAC3G,wDAAsD;AAA7C,2GAAA,WAAW,OAAA;AACpB,+DAA+D;AAC/D,sDAAoD;AAA3C,yGAAA,UAAU,OAAA;AACnB,0EAAuE;AAA9D,4HAAA,mBAAmB,OAAA;AAC5B,gFAA6E;AAApE,kIAAA,sBAAsB,OAAA;AAC/B,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,wEAAqE;AAA5D,0HAAA,kBAAkB,OAAA;AAE3B,iDAAiD;AACjD,wEAAsE;AAA7D,2HAAA,mBAAmB,OAAA;AAC5B,sEAAoE;AAA3D,yHAAA,kBAAkB,OAAA;AAC3B,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,8EAA2E;AAAlE,gIAAA,qBAAqB,OAAA;AAC9B,oFAQ+C;AAP7C,sIAAA,wBAAwB,OAAA;AAS1B,wBAAwB;AACxB,uCAAqC;AAA5B,mGAAA,OAAO,OAAA;AAEhB,iBAAiB;AACjB,uCAAgD;AAAvC,mGAAA,OAAO,OAAW"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;AAEH,eAAe;AACf,iDAA+B;AAC/B,+CAA6B;AAC7B,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,kDAAgC;AAEhC,mCAAmC;AACnC,4DAA0C;AAkC1C,yEAAyE;AACzE,kDAAgC;AA8EhC,iBAAiB;AACjB,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AACnB,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AAEnB,kBAAkB;AAClB,wDAAsD;AAA7C,2GAAA,WAAW,OAAA;AACpB,oDAAkD;AAAzC,uGAAA,SAAS,OAAA;AAClB,2GAA2G;AAC3G,wDAAsD;AAA7C,2GAAA,WAAW,OAAA;AACpB,+DAA+D;AAC/D,sDAAoD;AAA3C,yGAAA,UAAU,OAAA;AACnB,0EAAuE;AAA9D,4HAAA,mBAAmB,OAAA;AAC5B,gFAA6E;AAApE,kIAAA,sBAAsB,OAAA;AAC/B,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,wEAAqE;AAA5D,0HAAA,kBAAkB,OAAA;AAE3B,iDAAiD;AACjD,wEAAsE;AAA7D,2HAAA,mBAAmB,OAAA;AAC5B,sEAAoE;AAA3D,yHAAA,kBAAkB,OAAA;AAC3B,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,8EAA2E;AAAlE,gIAAA,qBAAqB,OAAA;AAC9B,oFAQ+C;AAP7C,sIAAA,wBAAwB,OAAA;AAS1B,wBAAwB;AACxB,uCAAqC;AAA5B,mGAAA,OAAO,OAAA;AAEhB,iBAAiB;AACjB,uCAAgD;AAAvC,mGAAA,OAAO,OAAW"}
@@ -1,5 +1,5 @@
1
1
  import { ZaloClient } from "../clients/zalo-client";
2
- import { GroupCreateRequest, GroupCreateResult, GroupUpdateRequest, GroupAvatarUpdateRequest, GroupMemberInviteRequest, GroupAdminActionRequest, GroupQuota, GroupRecentChat, GroupConversationMessage, GroupDetailResponse, GroupPendingMembersResponse, GroupAcceptPendingMembersResponse, GroupRemoveMembersResponse, GroupMembersResponse, GroupQuotaMessageResponse } from "../types/group";
2
+ import { GroupCreateRequest, GroupCreateResult, GroupCreateData, GroupUpdateRequest, GroupAvatarUpdateRequest, GroupMemberInviteRequest, GroupAdminActionRequest, GroupQuota, GroupRecentChat, GroupConversationMessage, GroupDetailResponse, GroupPendingMembersResponse, GroupAcceptPendingMembersResponse, GroupRemoveMembersResponse, GroupMembersResponse, GroupQuotaMessageResponse } from "../types/group";
3
3
  import { GMFProductType, QuotaType } from "../types/oa";
4
4
  /**
5
5
  * Service for handling Zalo Official Account Group Management Framework (GMF) APIs
@@ -45,8 +45,16 @@ export declare class GroupManagementService {
45
45
  * @param accessToken OA access token
46
46
  * @param groupData Group information to create
47
47
  * @returns Created group information
48
+ *
49
+ * API: POST https://openapi.zalo.me/v3.0/oa/group/creategroupwithoa
48
50
  */
49
51
  createGroup(accessToken: string, groupData: GroupCreateRequest): Promise<GroupCreateResult>;
52
+ /**
53
+ * Helper method to extract group data from create response
54
+ * @param response Full API response
55
+ * @returns Group data only
56
+ */
57
+ extractGroupData(response: GroupCreateResult): GroupCreateData;
50
58
  /**
51
59
  * Get detailed group information
52
60
  * @param accessToken OA access token