@warriorteam/redai-zalo-sdk 1.29.0 → 1.31.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/CHANGELOG.md +140 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/services/consultation.service.d.ts +114 -147
- package/dist/services/consultation.service.d.ts.map +1 -1
- package/dist/services/consultation.service.js +370 -0
- package/dist/services/consultation.service.js.map +1 -1
- package/dist/services/purchase.service.d.ts +209 -0
- package/dist/services/purchase.service.d.ts.map +1 -0
- package/dist/services/purchase.service.js +417 -0
- package/dist/services/purchase.service.js.map +1 -0
- package/dist/types/consultation.d.ts +253 -0
- package/dist/types/consultation.d.ts.map +1 -0
- package/dist/types/consultation.js +13 -0
- package/dist/types/consultation.js.map +1 -0
- package/dist/types/purchase.d.ts +268 -0
- package/dist/types/purchase.d.ts.map +1 -0
- package/dist/types/purchase.js +137 -0
- package/dist/types/purchase.js.map +1 -0
- package/dist/zalo-sdk.d.ts +2 -0
- package/dist/zalo-sdk.d.ts.map +1 -1
- package/dist/zalo-sdk.js +2 -0
- package/dist/zalo-sdk.js.map +1 -1
- package/examples/consultation-template-example.ts +324 -0
- package/package.json +16 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purchase.js","sourceRoot":"","sources":["../../src/types/purchase.ts"],"names":[],"mappings":"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"}
|
package/dist/zalo-sdk.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ import { PromotionService } from "./services/promotion.service";
|
|
|
15
15
|
import { GeneralMessageService } from "./services/general-message.service";
|
|
16
16
|
import { MessageManagementService } from "./services/message-management.service";
|
|
17
17
|
import { BroadcastService } from "./services/broadcast.service";
|
|
18
|
+
import { PurchaseService } from "./services/purchase.service";
|
|
18
19
|
import { ZaloSDKConfig } from "./types/common";
|
|
19
20
|
import { AccessToken, SocialUserInfo } from "./types/auth";
|
|
20
21
|
import { OAInfo, MessageQuota } from "./types/oa";
|
|
@@ -40,6 +41,7 @@ export declare class ZaloSDK {
|
|
|
40
41
|
readonly generalMessage: GeneralMessageService;
|
|
41
42
|
readonly messageManagement: MessageManagementService;
|
|
42
43
|
readonly broadcast: BroadcastService;
|
|
44
|
+
readonly purchase: PurchaseService;
|
|
43
45
|
readonly config: Required<ZaloSDKConfig>;
|
|
44
46
|
constructor(config: ZaloSDKConfig);
|
|
45
47
|
/**
|
package/dist/zalo-sdk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zalo-sdk.d.ts","sourceRoot":"","sources":["../src/zalo-sdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,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,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EACL,aAAa,EAId,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EAGX,cAAc,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAG3E;;GAEG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAGhC,SAAgB,IAAI,EAAE,WAAW,CAAC;IAClC,SAAgB,EAAE,EAAE,SAAS,CAAC;IAE9B,SAAgB,IAAI,EAAE,WAAW,CAAC;IAElC,SAAgB,GAAG,EAAE,UAAU,CAAC;IAChC,SAAgB,YAAY,EAAE,mBAAmB,CAAC;IAClD,SAAgB,eAAe,EAAE,sBAAsB,CAAC;IACxD,SAAgB,OAAO,EAAE,cAAc,CAAC;IACxC,SAAgB,WAAW,EAAE,kBAAkB,CAAC;IAGhD,SAAgB,YAAY,EAAE,mBAAmB,CAAC;IAClD,SAAgB,WAAW,EAAE,kBAAkB,CAAC;IAChD,SAAgB,SAAS,EAAE,gBAAgB,CAAC;IAC5C,SAAgB,cAAc,EAAE,qBAAqB,CAAC;IACtD,SAAgB,iBAAiB,EAAE,wBAAwB,CAAC;IAC5D,SAAgB,SAAS,EAAE,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"zalo-sdk.d.ts","sourceRoot":"","sources":["../src/zalo-sdk.ts"],"names":[],"mappings":"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"}
|
package/dist/zalo-sdk.js
CHANGED
|
@@ -22,6 +22,7 @@ const promotion_service_1 = require("./services/promotion.service");
|
|
|
22
22
|
const general_message_service_1 = require("./services/general-message.service");
|
|
23
23
|
const message_management_service_1 = require("./services/message-management.service");
|
|
24
24
|
const broadcast_service_1 = require("./services/broadcast.service");
|
|
25
|
+
const purchase_service_1 = require("./services/purchase.service");
|
|
25
26
|
const common_1 = require("./types/common");
|
|
26
27
|
// import { WebhookHandlers } from "./types/webhook";
|
|
27
28
|
/**
|
|
@@ -69,6 +70,7 @@ class ZaloSDK {
|
|
|
69
70
|
this.generalMessage = new general_message_service_1.GeneralMessageService(this.client);
|
|
70
71
|
this.messageManagement = new message_management_service_1.MessageManagementService(this.client);
|
|
71
72
|
this.broadcast = new broadcast_service_1.BroadcastService(this.client);
|
|
73
|
+
this.purchase = new purchase_service_1.PurchaseService(this.client);
|
|
72
74
|
this.logger.info("Zalo SDK initialized", {
|
|
73
75
|
appId: this.config.appId,
|
|
74
76
|
debug: this.config.debug,
|
package/dist/zalo-sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zalo-sdk.js","sourceRoot":"","sources":["../src/zalo-sdk.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uDAAmD;AACnD,0DAAsD;AACtD,sDAAkD;AAClD,mGAAmG;AACnG,0DAAsD;AACtD,+DAA+D;AAC/D,wDAAoD;AACpD,4EAAuE;AACvE,kFAA6E;AAC7E,gEAA4D;AAC5D,0EAAqE;AAErE,mBAAmB;AACnB,0EAAsE;AACtE,wEAAoE;AACpE,oEAAgE;AAChE,gFAA2E;AAC3E,sFAAiF;AACjF,oEAAgE;AAChE,2CAKwB;AAUxB,qDAAqD;AAErD;;GAEG;AACH,MAAa,OAAO;
|
|
1
|
+
{"version":3,"file":"zalo-sdk.js","sourceRoot":"","sources":["../src/zalo-sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ví dụ sử dụng ConsultationService.sendTemplateMessage()
|
|
3
|
+
* Gửi tin nhắn template tổng quát với elements và buttons
|
|
4
|
+
*
|
|
5
|
+
* API Endpoint: https://openapi.zalo.me/v3.0/oa/message/cs
|
|
6
|
+
* Method: POST
|
|
7
|
+
* Content-Type: application/json
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import {
|
|
11
|
+
ConsultationService,
|
|
12
|
+
TemplateElement,
|
|
13
|
+
TemplateButton,
|
|
14
|
+
TemplateAction
|
|
15
|
+
} from '../src/services/consultation.service';
|
|
16
|
+
import { ZaloClient } from '../src/clients/zalo-client';
|
|
17
|
+
|
|
18
|
+
// Khởi tạo service
|
|
19
|
+
const zaloClient = new ZaloClient();
|
|
20
|
+
const consultationService = new ConsultationService(zaloClient);
|
|
21
|
+
|
|
22
|
+
const ACCESS_TOKEN = "your_access_token_here";
|
|
23
|
+
const USER_ID = "2468458835296117922";
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Ví dụ 1: Template request_user_info cơ bản
|
|
27
|
+
*/
|
|
28
|
+
async function example1_BasicRequestUserInfo() {
|
|
29
|
+
try {
|
|
30
|
+
// Tạo elements (tối đa 5 phần tử)
|
|
31
|
+
const elements: TemplateElement[] = [
|
|
32
|
+
// Element đầu tiên PHẢI có subtitle
|
|
33
|
+
consultationService.createTemplateElement(
|
|
34
|
+
"OA Chatbot (Testing)",
|
|
35
|
+
"Đang yêu cầu thông tin từ bạn",
|
|
36
|
+
"https://developers.zalo.me/web/static/zalo.png",
|
|
37
|
+
consultationService.createUrlAction("https://developers.zalo.me/")
|
|
38
|
+
),
|
|
39
|
+
// Các element sau có thể không có subtitle
|
|
40
|
+
consultationService.createTemplateElement(
|
|
41
|
+
"Liên hệ hỗ trợ",
|
|
42
|
+
undefined, // không có subtitle
|
|
43
|
+
"https://developers.zalo.me/web/static/zalo.png",
|
|
44
|
+
consultationService.createPhoneAction("84919018791")
|
|
45
|
+
)
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
// Tạo buttons (tối đa 5 phần tử)
|
|
49
|
+
const buttons: TemplateButton[] = [
|
|
50
|
+
consultationService.createUrlButton("OPEN URL", "https://developers.zalo.me/"),
|
|
51
|
+
consultationService.createQueryShowButton("QUERY SHOW", "#callback_data"),
|
|
52
|
+
consultationService.createQueryHideButton("QUERY HIDE", "#callback_data"),
|
|
53
|
+
consultationService.createSmsButton("OPEN SMS", "84919018791", "alo"),
|
|
54
|
+
consultationService.createPhoneButton("OPEN PHONE", "84919018791")
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
// Gửi template message
|
|
58
|
+
const result = await consultationService.sendTemplateMessage(
|
|
59
|
+
ACCESS_TOKEN,
|
|
60
|
+
USER_ID,
|
|
61
|
+
"request_user_info",
|
|
62
|
+
elements,
|
|
63
|
+
buttons
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
console.log("✅ Template message sent successfully:", result);
|
|
67
|
+
return result;
|
|
68
|
+
|
|
69
|
+
} catch (error) {
|
|
70
|
+
console.error("❌ Error sending template message:", error);
|
|
71
|
+
throw error;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Ví dụ 2: Template đơn giản chỉ có 1 element và 2 buttons
|
|
77
|
+
*/
|
|
78
|
+
async function example2_SimpleTemplate() {
|
|
79
|
+
try {
|
|
80
|
+
// Chỉ 1 element
|
|
81
|
+
const elements: TemplateElement[] = [
|
|
82
|
+
{
|
|
83
|
+
title: "Chào mừng bạn đến với dịch vụ của chúng tôi!",
|
|
84
|
+
subtitle: "Chúng tôi có thể hỗ trợ gì cho bạn?",
|
|
85
|
+
image_url: "https://example.com/welcome.png"
|
|
86
|
+
}
|
|
87
|
+
];
|
|
88
|
+
|
|
89
|
+
// 2 buttons đơn giản
|
|
90
|
+
const buttons: TemplateButton[] = [
|
|
91
|
+
consultationService.createQueryShowButton("Tư vấn sản phẩm", "product_consultation"),
|
|
92
|
+
consultationService.createPhoneButton("Gọi hotline", "84919018791")
|
|
93
|
+
];
|
|
94
|
+
|
|
95
|
+
const result = await consultationService.sendTemplateMessage(
|
|
96
|
+
ACCESS_TOKEN,
|
|
97
|
+
USER_ID,
|
|
98
|
+
"request_user_info",
|
|
99
|
+
elements,
|
|
100
|
+
buttons
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
console.log("✅ Simple template sent successfully:", result);
|
|
104
|
+
return result;
|
|
105
|
+
|
|
106
|
+
} catch (error) {
|
|
107
|
+
console.error("❌ Error sending simple template:", error);
|
|
108
|
+
throw error;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Ví dụ 3: Template không có buttons (chỉ elements)
|
|
114
|
+
*/
|
|
115
|
+
async function example3_ElementsOnly() {
|
|
116
|
+
try {
|
|
117
|
+
const elements: TemplateElement[] = [
|
|
118
|
+
{
|
|
119
|
+
title: "Thông báo quan trọng",
|
|
120
|
+
subtitle: "Hệ thống sẽ bảo trì từ 2:00 - 4:00 sáng ngày mai",
|
|
121
|
+
image_url: "https://example.com/maintenance.png",
|
|
122
|
+
default_action: {
|
|
123
|
+
type: "oa.open.url",
|
|
124
|
+
url: "https://example.com/maintenance-info"
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
title: "Liên hệ hỗ trợ khẩn cấp",
|
|
129
|
+
// Không có subtitle cho element thứ 2
|
|
130
|
+
default_action: {
|
|
131
|
+
type: "oa.open.phone",
|
|
132
|
+
payload: { phone_code: "84919018791" }
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
];
|
|
136
|
+
|
|
137
|
+
// Không có buttons
|
|
138
|
+
const result = await consultationService.sendTemplateMessage(
|
|
139
|
+
ACCESS_TOKEN,
|
|
140
|
+
USER_ID,
|
|
141
|
+
"request_user_info",
|
|
142
|
+
elements
|
|
143
|
+
// buttons parameter bỏ qua
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
console.log("✅ Elements-only template sent successfully:", result);
|
|
147
|
+
return result;
|
|
148
|
+
|
|
149
|
+
} catch (error) {
|
|
150
|
+
console.error("❌ Error sending elements-only template:", error);
|
|
151
|
+
throw error;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Ví dụ 4: Template với tất cả loại buttons
|
|
157
|
+
*/
|
|
158
|
+
async function example4_AllButtonTypes() {
|
|
159
|
+
try {
|
|
160
|
+
const elements: TemplateElement[] = [
|
|
161
|
+
{
|
|
162
|
+
title: "Trung tâm hỗ trợ khách hàng",
|
|
163
|
+
subtitle: "Chọn hình thức liên hệ phù hợp với bạn",
|
|
164
|
+
image_url: "https://example.com/support.png"
|
|
165
|
+
}
|
|
166
|
+
];
|
|
167
|
+
|
|
168
|
+
const buttons: TemplateButton[] = [
|
|
169
|
+
// URL button
|
|
170
|
+
{
|
|
171
|
+
title: "Xem FAQ",
|
|
172
|
+
type: "oa.open.url",
|
|
173
|
+
payload: { url: "https://example.com/faq" }
|
|
174
|
+
},
|
|
175
|
+
// Query show button
|
|
176
|
+
{
|
|
177
|
+
title: "Chat với tư vấn viên",
|
|
178
|
+
type: "oa.query.show",
|
|
179
|
+
payload: "start_chat_with_agent"
|
|
180
|
+
},
|
|
181
|
+
// Query hide button
|
|
182
|
+
{
|
|
183
|
+
title: "Gửi phản hồi",
|
|
184
|
+
type: "oa.query.hide",
|
|
185
|
+
payload: "send_feedback"
|
|
186
|
+
},
|
|
187
|
+
// SMS button
|
|
188
|
+
{
|
|
189
|
+
title: "Gửi SMS hỗ trợ",
|
|
190
|
+
type: "oa.open.sms",
|
|
191
|
+
payload: {
|
|
192
|
+
phone_code: "84919018791",
|
|
193
|
+
content: "Tôi cần hỗ trợ"
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
// Phone button
|
|
197
|
+
{
|
|
198
|
+
title: "Gọi hotline",
|
|
199
|
+
type: "oa.open.phone",
|
|
200
|
+
payload: { phone_code: "84919018791" }
|
|
201
|
+
}
|
|
202
|
+
];
|
|
203
|
+
|
|
204
|
+
const result = await consultationService.sendTemplateMessage(
|
|
205
|
+
ACCESS_TOKEN,
|
|
206
|
+
USER_ID,
|
|
207
|
+
"request_user_info",
|
|
208
|
+
elements,
|
|
209
|
+
buttons
|
|
210
|
+
);
|
|
211
|
+
|
|
212
|
+
console.log("✅ All button types template sent successfully:", result);
|
|
213
|
+
return result;
|
|
214
|
+
|
|
215
|
+
} catch (error) {
|
|
216
|
+
console.error("❌ Error sending all button types template:", error);
|
|
217
|
+
throw error;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Ví dụ 5: Template với validation errors (để test)
|
|
223
|
+
*/
|
|
224
|
+
async function example5_ValidationErrors() {
|
|
225
|
+
try {
|
|
226
|
+
// Element với title quá dài (> 100 ký tự)
|
|
227
|
+
const invalidElements: TemplateElement[] = [
|
|
228
|
+
{
|
|
229
|
+
title: "A".repeat(101), // 101 ký tự - sẽ báo lỗi
|
|
230
|
+
subtitle: "This will cause validation error"
|
|
231
|
+
}
|
|
232
|
+
];
|
|
233
|
+
|
|
234
|
+
await consultationService.sendTemplateMessage(
|
|
235
|
+
ACCESS_TOKEN,
|
|
236
|
+
USER_ID,
|
|
237
|
+
"request_user_info",
|
|
238
|
+
invalidElements
|
|
239
|
+
);
|
|
240
|
+
|
|
241
|
+
} catch (error) {
|
|
242
|
+
console.log("✅ Expected validation error caught:", error.message);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
try {
|
|
246
|
+
// Element đầu tiên không có subtitle
|
|
247
|
+
const invalidElements2: TemplateElement[] = [
|
|
248
|
+
{
|
|
249
|
+
title: "Valid title",
|
|
250
|
+
// Thiếu subtitle cho element đầu tiên - sẽ báo lỗi
|
|
251
|
+
}
|
|
252
|
+
];
|
|
253
|
+
|
|
254
|
+
await consultationService.sendTemplateMessage(
|
|
255
|
+
ACCESS_TOKEN,
|
|
256
|
+
USER_ID,
|
|
257
|
+
"request_user_info",
|
|
258
|
+
invalidElements2
|
|
259
|
+
);
|
|
260
|
+
|
|
261
|
+
} catch (error) {
|
|
262
|
+
console.log("✅ Expected validation error caught:", error.message);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
try {
|
|
266
|
+
// Quá nhiều elements (> 5)
|
|
267
|
+
const tooManyElements: TemplateElement[] = Array(6).fill(null).map((_, i) => ({
|
|
268
|
+
title: `Element ${i + 1}`,
|
|
269
|
+
subtitle: i === 0 ? "Required subtitle for first element" : undefined
|
|
270
|
+
}));
|
|
271
|
+
|
|
272
|
+
await consultationService.sendTemplateMessage(
|
|
273
|
+
ACCESS_TOKEN,
|
|
274
|
+
USER_ID,
|
|
275
|
+
"request_user_info",
|
|
276
|
+
tooManyElements
|
|
277
|
+
);
|
|
278
|
+
|
|
279
|
+
} catch (error) {
|
|
280
|
+
console.log("✅ Expected validation error caught:", error.message);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// Chạy các ví dụ
|
|
285
|
+
async function runExamples() {
|
|
286
|
+
console.log("🚀 Running Consultation Template Examples...\n");
|
|
287
|
+
|
|
288
|
+
try {
|
|
289
|
+
await example1_BasicRequestUserInfo();
|
|
290
|
+
console.log("\n");
|
|
291
|
+
|
|
292
|
+
await example2_SimpleTemplate();
|
|
293
|
+
console.log("\n");
|
|
294
|
+
|
|
295
|
+
await example3_ElementsOnly();
|
|
296
|
+
console.log("\n");
|
|
297
|
+
|
|
298
|
+
await example4_AllButtonTypes();
|
|
299
|
+
console.log("\n");
|
|
300
|
+
|
|
301
|
+
await example5_ValidationErrors();
|
|
302
|
+
console.log("\n");
|
|
303
|
+
|
|
304
|
+
console.log("✅ All examples completed!");
|
|
305
|
+
|
|
306
|
+
} catch (error) {
|
|
307
|
+
console.error("❌ Example failed:", error);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
// Export để có thể import và sử dụng
|
|
312
|
+
export {
|
|
313
|
+
example1_BasicRequestUserInfo,
|
|
314
|
+
example2_SimpleTemplate,
|
|
315
|
+
example3_ElementsOnly,
|
|
316
|
+
example4_AllButtonTypes,
|
|
317
|
+
example5_ValidationErrors,
|
|
318
|
+
runExamples
|
|
319
|
+
};
|
|
320
|
+
|
|
321
|
+
// Chạy nếu file được execute trực tiếp
|
|
322
|
+
if (require.main === module) {
|
|
323
|
+
runExamples();
|
|
324
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@warriorteam/redai-zalo-sdk",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Comprehensive TypeScript/JavaScript SDK for Zalo APIs - Official Account v3.0, ZNS with Full Type Safety, Consultation Service, Broadcast Service, Group Messaging with List APIs, Social APIs, Enhanced Article Management, Promotion Service v3.0 with Multiple Users Support, Complete Button Types System, and Message Sequence APIs with Real-time Tracking",
|
|
3
|
+
"version": "1.31.0",
|
|
4
|
+
"description": "Comprehensive TypeScript/JavaScript SDK for Zalo APIs - Official Account v3.0, ZNS with Full Type Safety, Consultation Service, Broadcast Service, Group Messaging with List APIs, Social APIs, Enhanced Article Management, Promotion Service v3.0 with Multiple Users Support, Complete Button Types System, Purchase API with Order Management, and Message Sequence APIs with Real-time Tracking",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
@@ -77,7 +77,20 @@
|
|
|
77
77
|
"component-types",
|
|
78
78
|
"template-validation",
|
|
79
79
|
"strict-typing",
|
|
80
|
-
"compile-time-validation"
|
|
80
|
+
"compile-time-validation",
|
|
81
|
+
"purchase-api",
|
|
82
|
+
"order-management",
|
|
83
|
+
"payment-confirmation",
|
|
84
|
+
"product-catalog",
|
|
85
|
+
"subscription-orders",
|
|
86
|
+
"gmf-orders",
|
|
87
|
+
"transaction-quota",
|
|
88
|
+
"batch-orders",
|
|
89
|
+
"combo-packages",
|
|
90
|
+
"product-recommendations",
|
|
91
|
+
"oa-subscription",
|
|
92
|
+
"group-message-framework",
|
|
93
|
+
"quota-management"
|
|
81
94
|
],
|
|
82
95
|
"author": "RedAI Team",
|
|
83
96
|
"license": "MIT",
|