@warriorteam/redai-zalo-sdk 1.23.0 → 1.25.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 CHANGED
@@ -5,6 +5,77 @@ 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.24.0] - 2025-08-29
9
+
10
+ ### 🎯 ENHANCED BUTTON TYPES SYSTEM - Complete TypeScript Support
11
+
12
+ #### 🔧 Comprehensive Button Type System
13
+ - **ADDED**: 5 specific button interfaces với proper TypeScript typing
14
+ - **ADDED**: `OpenUrlButton`, `QueryShowButton`, `QueryHideButton`, `OpenSmsButton`, `OpenPhoneButton`
15
+ - **UNION TYPE**: `PromotionButton` union type cho strict typing
16
+ - **FLEXIBLE INPUT**: `PromotionButtonInput` interface cho easy usage
17
+
18
+ #### ⚙️ Auto-Conversion System
19
+ - **ADDED**: `convertToTypedButton()` helper function
20
+ - **SMART CONVERSION**: Tự động convert từ flexible input sang proper API format
21
+ - **PAYLOAD VALIDATION**: Validate payload format theo từng button type
22
+ - **BACKWARD COMPATIBLE**: Hỗ trợ cả old và new button formats
23
+
24
+ #### 📊 Button Type Specifications
25
+ - **oa.open.url**: `{ url: string }` payload format
26
+ - **oa.query.show**: `string` payload (max 1000 chars) - tin nhắn HIỂN THỊ
27
+ - **oa.query.hide**: `string` payload (max 1000 chars) - tin nhắn ẨN
28
+ - **oa.open.sms**: `{ content: string, phone_code: string }` (content max 160 chars)
29
+ - **oa.open.phone**: `{ phone_code: string }` payload format
30
+
31
+ #### 🛡️ Enhanced Validation & Limits
32
+ - **TITLE LIMIT**: Max 100 characters per button title
33
+ - **PAYLOAD LIMITS**: Specific limits cho từng button type
34
+ - **BUTTON COUNT**: Max 4 buttons per message
35
+ - **TYPE SAFETY**: Full TypeScript support với proper type checking
36
+
37
+ #### 🎨 Developer Experience Improvements
38
+ - **INTELLISENSE**: Full autocomplete support cho button types
39
+ - **TYPE HINTS**: Clear type hints cho payload structures
40
+ - **ERROR PREVENTION**: Compile-time error checking
41
+ - **FLEXIBLE API**: Support both strict typing và flexible input
42
+
43
+ ### 📚 COMPREHENSIVE DOCUMENTATION
44
+
45
+ #### New Documentation
46
+ - **ADDED**: `docs/BUTTON_TYPES_GUIDE.md` - Complete button types reference
47
+ - **DETAILED**: All 5 button types với examples và specifications
48
+ - **BEST PRACTICES**: Guidelines cho button usage và optimization
49
+
50
+ #### Enhanced Documentation
51
+ - **UPDATED**: `docs/PROMOTION_API_V3_MIGRATION.md` - TypeScript support section
52
+ - **UPDATED**: `examples/promotion-examples.ts` - Proper typed examples
53
+ - **TYPE EXAMPLES**: Comprehensive examples cho tất cả button types
54
+
55
+ ### 🔄 Migration & Compatibility
56
+
57
+ #### Backward Compatibility
58
+ - **MAINTAINED**: Existing code continues to work without changes
59
+ - **AUTO-CONVERT**: Old button formats automatically converted
60
+ - **GRADUAL MIGRATION**: Developers có thể migrate từ từ
61
+
62
+ #### TypeScript Migration
63
+ ```typescript
64
+ // Old (still works)
65
+ buttons: Array<{ title: string; type: string; payload: any }>
66
+
67
+ // New (recommended)
68
+ buttons: PromotionButtonInput[]
69
+ ```
70
+
71
+ ### 🎯 USE CASES ENHANCED
72
+ - **E-COMMERCE**: Product purchase buttons với proper URL handling
73
+ - **CUSTOMER SERVICE**: Query buttons cho automated responses
74
+ - **COMMUNICATION**: SMS và phone buttons cho direct contact
75
+ - **ENGAGEMENT**: Mixed button types cho comprehensive user interaction
76
+
77
+ ---
78
+
8
79
  ## [1.23.0] - 2025-08-29
9
80
 
10
81
  ### 🚀 NEW FEATURE - Multiple Users Promotion với Real-time Tracking
package/dist/index.d.ts CHANGED
@@ -15,8 +15,9 @@ export * from "./types/user";
15
15
  export * from "./types/zns";
16
16
  export * from "./types/article";
17
17
  export * from "./types/broadcast";
18
+ export * from "./types/promotion";
18
19
  export * from "./constants/zns.constants";
19
- 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";
20
+ 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, AnonymousTextMessage, AnonymousImageMessage, AnonymousFileMessage, AnonymousStickerMessage, MiniAppMessage, ExtendedMessage, } from "./types/message";
20
21
  export * from "./types/webhook";
21
22
  export { UserGroupMessageEvent, isUserSendGroupTextEvent, isUserSendGroupImageEvent, isUserSendGroupVideoEvent, isUserSendGroupAudioEvent, isUserSendGroupFileEvent, isUserGroupMessageEvent, isOASendTextEvent, isOASendImageEvent, isOASendFileEvent, isOASendStickerEvent, isOASendGifEvent, isOASendGroupTextEvent, isOASendGroupImageEvent, isOASendGroupFileEvent, isOASendGroupStickerEvent, isOASendGroupGifEvent, isFromGroup, isFromPersonal, } from "./utils/type-guards";
22
23
  export { isUserMessageEvent, isGroupMessageEvent, isOAToUserMessageEvent, isOAToGroupMessageEvent, getMessageDirection, } from "./types/webhook";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -33,6 +33,7 @@ __exportStar(require("./types/user"), exports);
33
33
  __exportStar(require("./types/zns"), exports);
34
34
  __exportStar(require("./types/article"), exports);
35
35
  __exportStar(require("./types/broadcast"), exports);
36
+ __exportStar(require("./types/promotion"), exports);
36
37
  // Export ZNS constants and helpers
37
38
  __exportStar(require("./constants/zns.constants"), exports);
38
39
  // Export webhook types (avoiding conflicts with message and group types)
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;AAChC,oDAAkC;AAElC,mCAAmC;AACnC,4DAA0C;AAkC1C,yEAAyE;AACzE,kDAAgC;AAEhC,yEAAyE;AACzE,mDAoB6B;AAlB3B,uHAAA,wBAAwB,OAAA;AACxB,wHAAA,yBAAyB,OAAA;AACzB,wHAAA,yBAAyB,OAAA;AACzB,wHAAA,yBAAyB,OAAA;AACzB,uHAAA,wBAAwB,OAAA;AACxB,sHAAA,uBAAuB,OAAA;AACvB,gHAAA,iBAAiB,OAAA;AACjB,iHAAA,kBAAkB,OAAA;AAClB,gHAAA,iBAAiB,OAAA;AACjB,mHAAA,oBAAoB,OAAA;AACpB,+GAAA,gBAAgB,OAAA;AAChB,qHAAA,sBAAsB,OAAA;AACtB,sHAAA,uBAAuB,OAAA;AACvB,qHAAA,sBAAsB,OAAA;AACtB,wHAAA,yBAAyB,OAAA;AACzB,oHAAA,qBAAqB,OAAA;AACrB,0GAAA,WAAW,OAAA;AACX,6GAAA,cAAc,OAAA;AAEhB,kCAAkC;AAClC,2CAMyB;AALvB,6GAAA,kBAAkB,OAAA;AAClB,8GAAA,mBAAmB,OAAA;AACnB,iHAAA,sBAAsB,OAAA;AACtB,kHAAA,uBAAuB,OAAA;AACvB,8GAAA,mBAAmB,OAAA;AAoFrB,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;AAQ1B,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AAEzB,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;AAChC,oDAAkC;AAClC,oDAAkC;AAElC,mCAAmC;AACnC,4DAA0C;AAkC1C,yEAAyE;AACzE,kDAAgC;AAEhC,yEAAyE;AACzE,mDAoB6B;AAlB3B,uHAAA,wBAAwB,OAAA;AACxB,wHAAA,yBAAyB,OAAA;AACzB,wHAAA,yBAAyB,OAAA;AACzB,wHAAA,yBAAyB,OAAA;AACzB,uHAAA,wBAAwB,OAAA;AACxB,sHAAA,uBAAuB,OAAA;AACvB,gHAAA,iBAAiB,OAAA;AACjB,iHAAA,kBAAkB,OAAA;AAClB,gHAAA,iBAAiB,OAAA;AACjB,mHAAA,oBAAoB,OAAA;AACpB,+GAAA,gBAAgB,OAAA;AAChB,qHAAA,sBAAsB,OAAA;AACtB,sHAAA,uBAAuB,OAAA;AACvB,qHAAA,sBAAsB,OAAA;AACtB,wHAAA,yBAAyB,OAAA;AACzB,oHAAA,qBAAqB,OAAA;AACrB,0GAAA,WAAW,OAAA;AACX,6GAAA,cAAc,OAAA;AAEhB,kCAAkC;AAClC,2CAMyB;AALvB,6GAAA,kBAAkB,OAAA;AAClB,8GAAA,mBAAmB,OAAA;AACnB,iHAAA,sBAAsB,OAAA;AACtB,kHAAA,uBAAuB,OAAA;AACvB,8GAAA,mBAAmB,OAAA;AAoFrB,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;AAQ1B,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AAEzB,wBAAwB;AACxB,uCAAqC;AAA5B,mGAAA,OAAO,OAAA;AAEhB,iBAAiB;AACjB,uCAAgD;AAAvC,mGAAA,OAAO,OAAW"}
@@ -1,5 +1,6 @@
1
1
  import { ZaloClient } from "../clients/zalo-client";
2
- import { SendMessageResponse, PromotionMessage, MessageRecipient, PromotionUserResult, MultiplePromotionProgress, MultiplePromotionResult } from "../types/message";
2
+ import { SendMessageResponse, MessageRecipient } from "../types/message";
3
+ import { PromotionMessage, PromotionUserResult, MultiplePromotionProgress, MultiplePromotionResult, PromotionButtonInput } from "../types/promotion";
3
4
  /**
4
5
  * Service xử lý các API tin nhắn truyền thông/quảng cáo của Zalo Official Account
5
6
  *
@@ -44,6 +45,12 @@ export declare class PromotionService {
44
45
  private readonly client;
45
46
  private readonly promotionApiUrl;
46
47
  constructor(client: ZaloClient);
48
+ /**
49
+ * Convert input button to proper typed button for API
50
+ * @param button Input button with flexible typing
51
+ * @returns Properly typed button for API
52
+ */
53
+ private convertToTypedButton;
47
54
  /**
48
55
  * Gửi tin nhắn truyền thông/quảng cáo
49
56
  * @param accessToken Access token của Official Account
@@ -120,12 +127,7 @@ export declare class PromotionService {
120
127
  value: string;
121
128
  }>;
122
129
  footerText?: string;
123
- buttons: Array<{
124
- title: string;
125
- imageIcon?: string;
126
- type: string;
127
- payload: Record<string, any> | string;
128
- }>;
130
+ buttons: PromotionButtonInput[];
129
131
  language?: "VI" | "EN";
130
132
  }): Promise<SendMessageResponse>;
131
133
  /**
@@ -150,12 +152,7 @@ export declare class PromotionService {
150
152
  value: string;
151
153
  }>;
152
154
  footerText?: string;
153
- buttons: Array<{
154
- title: string;
155
- imageIcon?: string;
156
- type: string;
157
- payload: Record<string, any> | string;
158
- }>;
155
+ buttons: PromotionButtonInput[];
159
156
  language?: "VI" | "EN";
160
157
  }, options?: {
161
158
  mode?: "sequential" | "parallel";
@@ -1 +1 @@
1
- {"version":3,"file":"promotion.service.d.ts","sourceRoot":"","sources":["../../src/services/promotion.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promotion.service.d.ts","sourceRoot":"","sources":["../../src/services/promotion.service.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,53 @@ class PromotionService {
47
47
  this.client = client;
48
48
  this.promotionApiUrl = "https://openapi.zalo.me/v3.0/oa/message/promotion";
49
49
  }
50
+ /**
51
+ * Convert input button to proper typed button for API
52
+ * @param button Input button with flexible typing
53
+ * @returns Properly typed button for API
54
+ */
55
+ convertToTypedButton(button) {
56
+ const baseButton = {
57
+ title: button.title,
58
+ image_icon: button.imageIcon || "",
59
+ type: button.type,
60
+ };
61
+ // Convert payload based on button type using discriminated union
62
+ switch (button.type) {
63
+ case "oa.open.url":
64
+ return {
65
+ ...baseButton,
66
+ payload: { url: button.payload.url }
67
+ };
68
+ case "oa.query.show":
69
+ case "oa.query.hide":
70
+ return {
71
+ ...baseButton,
72
+ payload: button.payload // Already string type
73
+ };
74
+ case "oa.open.sms":
75
+ return {
76
+ ...baseButton,
77
+ payload: {
78
+ content: button.payload.content,
79
+ phone_code: button.payload.phone_code || button.payload.phoneCode || ""
80
+ }
81
+ };
82
+ case "oa.open.phone":
83
+ return {
84
+ ...baseButton,
85
+ payload: typeof button.payload === 'string'
86
+ ? { phone_code: button.payload }
87
+ : { phone_code: button.payload.phone_code || button.payload.phoneCode || "" }
88
+ };
89
+ default:
90
+ // This should never happen with proper typing
91
+ return {
92
+ ...baseButton,
93
+ payload: {}
94
+ };
95
+ }
96
+ }
50
97
  /**
51
98
  * Gửi tin nhắn truyền thông/quảng cáo
52
99
  * @param accessToken Access token của Official Account
@@ -380,12 +427,7 @@ class PromotionService {
380
427
  template_type: "promotion",
381
428
  language: promotionData.language || "VI",
382
429
  elements,
383
- buttons: promotionData.buttons.map(btn => ({
384
- title: btn.title,
385
- image_icon: btn.imageIcon || "",
386
- type: btn.type,
387
- payload: btn.payload,
388
- })),
430
+ buttons: promotionData.buttons.map(btn => this.convertToTypedButton(btn)),
389
431
  },
390
432
  },
391
433
  };
@@ -1 +1 @@
1
- {"version":3,"file":"promotion.service.js","sourceRoot":"","sources":["../../src/services/promotion.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promotion.service.js","sourceRoot":"","sources":["../../src/services/promotion.service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Message related types and interfaces
3
3
  */
4
+ import { PromotionMessage } from "./promotion";
4
5
  /**
5
6
  * Base message interface
6
7
  */
@@ -263,92 +264,6 @@ export interface TransactionMessage extends BaseMessage {
263
264
  };
264
265
  };
265
266
  }
266
- /**
267
- * Promotion message element types for v3.0 API
268
- */
269
- export interface PromotionBannerElement {
270
- type: "banner";
271
- attachment_id?: string;
272
- image_url?: string;
273
- }
274
- export interface PromotionHeaderElement {
275
- type: "header";
276
- content: string;
277
- align?: "left" | "center" | "right";
278
- }
279
- export interface PromotionTextElement {
280
- type: "text";
281
- content: string;
282
- align?: "left" | "center" | "right";
283
- }
284
- export interface PromotionTableElement {
285
- type: "table";
286
- content: Array<{
287
- key: string;
288
- value: string;
289
- }>;
290
- }
291
- export type PromotionElement = PromotionBannerElement | PromotionHeaderElement | PromotionTextElement | PromotionTableElement;
292
- /**
293
- * Promotion message button for v3.0 API
294
- */
295
- export interface PromotionButton {
296
- title: string;
297
- image_icon?: string;
298
- type: string;
299
- payload: Record<string, any> | string;
300
- }
301
- /**
302
- * Promotion message types for v3.0 API
303
- */
304
- export interface PromotionMessage extends BaseMessage {
305
- type: "promotion";
306
- attachment: {
307
- type: "template";
308
- payload: {
309
- template_type: "promotion";
310
- language?: "VI" | "EN";
311
- elements: PromotionElement[];
312
- buttons?: PromotionButton[];
313
- };
314
- };
315
- }
316
- /**
317
- * Result for individual user in multiple promotion sending
318
- */
319
- export interface PromotionUserResult {
320
- userId: string;
321
- success: boolean;
322
- result: SendMessageResponse | null;
323
- error: Error | null;
324
- timestamp: Date;
325
- }
326
- /**
327
- * Progress tracking for multiple promotion sending
328
- */
329
- export interface MultiplePromotionProgress {
330
- total: number;
331
- completed: number;
332
- successful: number;
333
- failed: number;
334
- currentUserId: string | null;
335
- startTime: number;
336
- estimatedTimeRemaining: number | null;
337
- }
338
- /**
339
- * Final result for multiple promotion sending
340
- */
341
- export interface MultiplePromotionResult {
342
- total: number;
343
- successful: number;
344
- failed: number;
345
- results: PromotionUserResult[];
346
- executionTime: number;
347
- mode: "sequential" | "parallel";
348
- startTime: Date;
349
- endTime: Date;
350
- successRate: number;
351
- }
352
267
  /**
353
268
  * Anonymous message types
354
269
  */
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA4LH;;GAEG;AACH,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,wCAAuB,CAAA;IACvB,8BAAa,CAAA;IACb,kCAAiB,CAAA;AACnB,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA8LH;;GAEG;AACH,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,wCAAuB,CAAA;IACvB,8BAAa,CAAA;IACb,kCAAiB,CAAA;AACnB,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB"}
@@ -0,0 +1,186 @@
1
+ import { BaseMessage, SendMessageResponse } from "./message";
2
+ /**
3
+ * Button payload types for different actions
4
+ */
5
+ export interface OpenUrlPayload {
6
+ url: string;
7
+ }
8
+ export interface OpenSmsPayload {
9
+ content: string;
10
+ phone_code: string;
11
+ }
12
+ export interface OpenPhonePayload {
13
+ phone_code: string;
14
+ }
15
+ export type QueryPayload = string;
16
+ export interface OpenSmsPayloadInput {
17
+ content: string;
18
+ phone_code?: string;
19
+ phoneCode?: string;
20
+ }
21
+ export interface OpenPhonePayloadInput {
22
+ phone_code?: string;
23
+ phoneCode?: string;
24
+ }
25
+ /**
26
+ * Promotion message element types for v3.0 API
27
+ */
28
+ export interface PromotionBannerElement {
29
+ type: "banner";
30
+ attachment_id?: string;
31
+ image_url?: string;
32
+ }
33
+ export interface PromotionHeaderElement {
34
+ type: "header";
35
+ content: string;
36
+ align?: "left" | "center" | "right";
37
+ }
38
+ export interface PromotionTextElement {
39
+ type: "text";
40
+ content: string;
41
+ align?: "left" | "center" | "right";
42
+ }
43
+ export interface PromotionTableElement {
44
+ type: "table";
45
+ content: Array<{
46
+ key: string;
47
+ value: string;
48
+ }>;
49
+ }
50
+ export type PromotionElement = PromotionBannerElement | PromotionHeaderElement | PromotionTextElement | PromotionTableElement;
51
+ /**
52
+ * Specific button types with proper payload typing
53
+ */
54
+ export interface OpenUrlButton {
55
+ title: string;
56
+ image_icon?: string;
57
+ type: "oa.open.url";
58
+ payload: OpenUrlPayload;
59
+ }
60
+ export interface QueryShowButton {
61
+ title: string;
62
+ image_icon?: string;
63
+ type: "oa.query.show";
64
+ payload: QueryPayload;
65
+ }
66
+ export interface QueryHideButton {
67
+ title: string;
68
+ image_icon?: string;
69
+ type: "oa.query.hide";
70
+ payload: QueryPayload;
71
+ }
72
+ export interface OpenSmsButton {
73
+ title: string;
74
+ image_icon?: string;
75
+ type: "oa.open.sms";
76
+ payload: OpenSmsPayload;
77
+ }
78
+ export interface OpenPhoneButton {
79
+ title: string;
80
+ image_icon?: string;
81
+ type: "oa.open.phone";
82
+ payload: OpenPhonePayload;
83
+ }
84
+ /**
85
+ * Union type for all supported button types
86
+ */
87
+ export type PromotionButton = OpenUrlButton | QueryShowButton | QueryHideButton | OpenSmsButton | OpenPhoneButton;
88
+ /**
89
+ * Input button interfaces with proper typing (discriminated union)
90
+ */
91
+ export interface PromotionButtonInputOpenUrl {
92
+ title: string;
93
+ imageIcon?: string;
94
+ type: "oa.open.url";
95
+ payload: OpenUrlPayload;
96
+ }
97
+ export interface PromotionButtonInputQueryShow {
98
+ title: string;
99
+ imageIcon?: string;
100
+ type: "oa.query.show";
101
+ payload: QueryPayload;
102
+ }
103
+ export interface PromotionButtonInputQueryHide {
104
+ title: string;
105
+ imageIcon?: string;
106
+ type: "oa.query.hide";
107
+ payload: QueryPayload;
108
+ }
109
+ export interface PromotionButtonInputOpenSms {
110
+ title: string;
111
+ imageIcon?: string;
112
+ type: "oa.open.sms";
113
+ payload: OpenSmsPayloadInput;
114
+ }
115
+ export interface PromotionButtonInputOpenPhone {
116
+ title: string;
117
+ imageIcon?: string;
118
+ type: "oa.open.phone";
119
+ payload: OpenPhonePayloadInput | string;
120
+ }
121
+ /**
122
+ * Union type for all input button types with proper payload typing
123
+ */
124
+ export type PromotionButtonInput = PromotionButtonInputOpenUrl | PromotionButtonInputQueryShow | PromotionButtonInputQueryHide | PromotionButtonInputOpenSms | PromotionButtonInputOpenPhone;
125
+ /**
126
+ * Promotion message types for v3.0 API
127
+ */
128
+ export interface PromotionMessage extends BaseMessage {
129
+ type: "promotion";
130
+ attachment: {
131
+ type: "template";
132
+ payload: {
133
+ template_type: "promotion";
134
+ language?: "VI" | "EN";
135
+ elements: PromotionElement[];
136
+ buttons?: PromotionButton[];
137
+ };
138
+ };
139
+ }
140
+ /**
141
+ * Result for individual user in multiple promotion sending
142
+ */
143
+ export interface PromotionUserResult {
144
+ userId: string;
145
+ success: boolean;
146
+ result: SendMessageResponse | null;
147
+ error: Error | null;
148
+ timestamp: Date;
149
+ }
150
+ /**
151
+ * Progress tracking for multiple promotion sending
152
+ */
153
+ export interface MultiplePromotionProgress {
154
+ total: number;
155
+ completed: number;
156
+ successful: number;
157
+ failed: number;
158
+ currentUserId: string | null;
159
+ startTime: number;
160
+ estimatedTimeRemaining: number | null;
161
+ }
162
+ /**
163
+ * Final result for multiple promotion sending
164
+ */
165
+ export interface MultiplePromotionResult {
166
+ total: number;
167
+ successful: number;
168
+ failed: number;
169
+ results: PromotionUserResult[];
170
+ executionTime: number;
171
+ mode: "sequential" | "parallel";
172
+ startTime: Date;
173
+ endTime: Date;
174
+ successRate: number;
175
+ }
176
+ /**
177
+ * Generic button interface for flexible usage (backward compatibility)
178
+ */
179
+ export interface GenericPromotionButton {
180
+ title: string;
181
+ imageIcon?: string;
182
+ image_icon?: string;
183
+ type: "oa.open.url" | "oa.query.show" | "oa.query.hide" | "oa.open.sms" | "oa.open.phone";
184
+ payload: OpenUrlPayload | QueryPayload | OpenSmsPayload | OpenPhonePayload;
185
+ }
186
+ //# sourceMappingURL=promotion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotion.d.ts","sourceRoot":"","sources":["../../src/types/promotion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=promotion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotion.js","sourceRoot":"","sources":["../../src/types/promotion.ts"],"names":[],"mappings":""}
@@ -0,0 +1,283 @@
1
+ # Button Types Guide - Zalo Promotion API v3.0
2
+
3
+ ## Tổng quan
4
+
5
+ Zalo Promotion API v3.0 hỗ trợ 5 loại button với payload format khác nhau. Mỗi button type có cấu trúc payload riêng biệt và giới hạn cụ thể.
6
+
7
+ ## Button Types được hỗ trợ
8
+
9
+ ### 1. **Open URL Button** (`oa.open.url`)
10
+
11
+ Mở URL trong ứng dụng Zalo khi người dùng bấm vào.
12
+
13
+ ```typescript
14
+ interface OpenUrlButton {
15
+ title: string; // Max 100 characters
16
+ image_icon?: string;
17
+ type: "oa.open.url";
18
+ payload: {
19
+ url: string; // URL to open
20
+ };
21
+ }
22
+ ```
23
+
24
+ **Example:**
25
+ ```typescript
26
+ {
27
+ title: "Mua ngay",
28
+ type: "oa.open.url",
29
+ payload: {
30
+ url: "https://shop.example.com/product/123"
31
+ }
32
+ }
33
+ ```
34
+
35
+ ### 2. **Query Show Button** (`oa.query.show`)
36
+
37
+ Gửi tin nhắn từ user đến OA, tin nhắn **hiển thị** trên chat.
38
+
39
+ ```typescript
40
+ interface QueryShowButton {
41
+ title: string; // Max 100 characters
42
+ image_icon?: string;
43
+ type: "oa.query.show";
44
+ payload: string; // Max 1000 characters
45
+ }
46
+ ```
47
+
48
+ **Example:**
49
+ ```typescript
50
+ {
51
+ title: "Xem thêm sản phẩm",
52
+ type: "oa.query.show",
53
+ payload: "#xem_san_pham"
54
+ }
55
+ ```
56
+
57
+ ### 3. **Query Hide Button** (`oa.query.hide`)
58
+
59
+ Gửi tin nhắn từ user đến OA, tin nhắn **ẩn** trên chat.
60
+
61
+ ```typescript
62
+ interface QueryHideButton {
63
+ title: string; // Max 100 characters
64
+ image_icon?: string;
65
+ type: "oa.query.hide";
66
+ payload: string; // Max 1000 characters
67
+ }
68
+ ```
69
+
70
+ **Example:**
71
+ ```typescript
72
+ {
73
+ title: "Liên hệ tư vấn",
74
+ type: "oa.query.hide",
75
+ payload: "#tu_van"
76
+ }
77
+ ```
78
+
79
+ ### 4. **Open SMS Button** (`oa.open.sms`)
80
+
81
+ Mở ứng dụng SMS với nội dung và số điện thoại có sẵn.
82
+
83
+ ```typescript
84
+ interface OpenSmsButton {
85
+ title: string; // Max 100 characters
86
+ image_icon?: string;
87
+ type: "oa.open.sms";
88
+ payload: {
89
+ content: string; // Max 160 characters
90
+ phone_code: string; // Phone number
91
+ };
92
+ }
93
+ ```
94
+
95
+ **Example:**
96
+ ```typescript
97
+ {
98
+ title: "Gửi SMS",
99
+ type: "oa.open.sms",
100
+ payload: {
101
+ content: "Tôi muốn tư vấn về sản phẩm",
102
+ phone_code: "84919018791"
103
+ }
104
+ }
105
+ ```
106
+
107
+ ### 5. **Open Phone Button** (`oa.open.phone`)
108
+
109
+ Mở ứng dụng gọi điện với số điện thoại có sẵn.
110
+
111
+ ```typescript
112
+ interface OpenPhoneButton {
113
+ title: string; // Max 100 characters
114
+ image_icon?: string;
115
+ type: "oa.open.phone";
116
+ payload: {
117
+ phone_code: string; // Phone number
118
+ };
119
+ }
120
+ ```
121
+
122
+ **Example:**
123
+ ```typescript
124
+ {
125
+ title: "Gọi ngay",
126
+ type: "oa.open.phone",
127
+ payload: {
128
+ phone_code: "84919018791"
129
+ }
130
+ }
131
+ ```
132
+
133
+ ## Union Type cho TypeScript
134
+
135
+ ```typescript
136
+ type PromotionButton =
137
+ | OpenUrlButton
138
+ | QueryShowButton
139
+ | QueryHideButton
140
+ | OpenSmsButton
141
+ | OpenPhoneButton;
142
+ ```
143
+
144
+ ## Flexible Input Interface
145
+
146
+ Để dễ sử dụng, SDK cung cấp interface linh hoạt:
147
+
148
+ ```typescript
149
+ interface PromotionButtonInput {
150
+ title: string; // Max 100 characters
151
+ imageIcon?: string; // camelCase style
152
+ type: "oa.open.url" | "oa.query.show" | "oa.query.hide" | "oa.open.sms" | "oa.open.phone";
153
+ payload: any; // Flexible payload, will be converted internally
154
+ }
155
+ ```
156
+
157
+ ## Cách sử dụng trong SDK
158
+
159
+ ### Basic Usage
160
+
161
+ ```typescript
162
+ const buttons: PromotionButtonInput[] = [
163
+ {
164
+ title: "Mua ngay",
165
+ type: "oa.open.url",
166
+ payload: { url: "https://shop.example.com" }
167
+ },
168
+ {
169
+ title: "Tư vấn",
170
+ type: "oa.query.hide",
171
+ payload: "#tu_van"
172
+ },
173
+ {
174
+ title: "Gọi hotline",
175
+ type: "oa.open.phone",
176
+ payload: { phone_code: "1900123456" }
177
+ }
178
+ ];
179
+
180
+ await promotionService.sendCustomPromotion(
181
+ accessToken,
182
+ { user_id: "user_id" },
183
+ {
184
+ // ... other promotion data
185
+ buttons
186
+ }
187
+ );
188
+ ```
189
+
190
+ ### All Button Types Example
191
+
192
+ ```typescript
193
+ const allButtonTypes: PromotionButtonInput[] = [
194
+ // Open URL
195
+ {
196
+ title: "Mở website",
197
+ type: "oa.open.url",
198
+ payload: { url: "https://example.com" }
199
+ },
200
+
201
+ // Query Show (visible message)
202
+ {
203
+ title: "Xem menu",
204
+ type: "oa.query.show",
205
+ payload: "#menu"
206
+ },
207
+
208
+ // Query Hide (hidden message)
209
+ {
210
+ title: "Liên hệ support",
211
+ type: "oa.query.hide",
212
+ payload: "#support"
213
+ },
214
+
215
+ // Open SMS
216
+ {
217
+ title: "Gửi SMS",
218
+ type: "oa.open.sms",
219
+ payload: {
220
+ content: "Tôi cần hỗ trợ",
221
+ phone_code: "84919018791"
222
+ }
223
+ },
224
+
225
+ // Open Phone
226
+ {
227
+ title: "Gọi điện",
228
+ type: "oa.open.phone",
229
+ payload: { phone_code: "84919018791" }
230
+ }
231
+ ];
232
+ ```
233
+
234
+ ## Giới hạn và Lưu ý
235
+
236
+ ### Giới hạn chung
237
+ - **Tối đa 4 buttons** per message
238
+ - **Title**: Tối đa 100 ký tự
239
+ - **Image icon**: URL, attachment_id, hoặc "default"
240
+
241
+ ### Giới hạn theo type
242
+ - **Query payload**: Tối đa 1000 ký tự
243
+ - **SMS content**: Tối đa 160 ký tự
244
+ - **Phone code**: Format quốc tế (VD: 84919018791)
245
+
246
+ ### Best Practices
247
+
248
+ 1. **Button Order**: Đặt button quan trọng nhất đầu tiên
249
+ 2. **Title Length**: Giữ title ngắn gọn, dễ hiểu
250
+ 3. **Query Payload**: Sử dụng prefix # để dễ phân biệt
251
+ 4. **Phone Format**: Luôn sử dụng mã quốc gia
252
+ 5. **URL Validation**: Đảm bảo URL hợp lệ và accessible
253
+
254
+ ### Error Handling
255
+
256
+ SDK tự động convert và validate button format. Các lỗi thường gặp:
257
+
258
+ - **Invalid type**: Type không được hỗ trợ
259
+ - **Missing payload**: Payload bị thiếu hoặc sai format
260
+ - **Length exceeded**: Title hoặc payload vượt quá giới hạn
261
+ - **Invalid URL**: URL không hợp lệ cho oa.open.url
262
+
263
+ ## Migration từ Generic Button
264
+
265
+ Nếu bạn đang sử dụng generic button format:
266
+
267
+ ```typescript
268
+ // Cũ (vẫn hoạt động)
269
+ {
270
+ title: "Button",
271
+ type: "oa.open.url",
272
+ payload: { url: "https://example.com" }
273
+ }
274
+
275
+ // Mới (recommended)
276
+ {
277
+ title: "Button",
278
+ type: "oa.open.url" as const, // Type assertion for better typing
279
+ payload: { url: "https://example.com" }
280
+ }
281
+ ```
282
+
283
+ SDK sẽ tự động convert và validate tất cả button formats để đảm bảo tương thích với Zalo API v3.0.
@@ -110,11 +110,38 @@ buttons: [{
110
110
 
111
111
  **Payload format theo type:**
112
112
  - `oa.open.url`: `{ url: "https://..." }`
113
- - `oa.query.show`: `"#callback_data"` (string)
114
- - `oa.query.hide`: `"#callback_data"` (string)
115
- - `oa.open.sms`: `{ content: "text", phone_code: "84xxx" }`
113
+ - `oa.query.show`: `"#callback_data"` (string, max 1000 chars)
114
+ - `oa.query.hide`: `"#callback_data"` (string, max 1000 chars)
115
+ - `oa.open.sms`: `{ content: "text", phone_code: "84xxx" }` (content max 160 chars)
116
116
  - `oa.open.phone`: `{ phone_code: "84xxx" }`
117
117
 
118
+ **TypeScript Support:**
119
+ ```typescript
120
+ // Typed button interfaces
121
+ interface OpenUrlButton {
122
+ title: string; // Max 100 characters
123
+ type: "oa.open.url";
124
+ payload: { url: string };
125
+ }
126
+
127
+ interface QueryHideButton {
128
+ title: string; // Max 100 characters
129
+ type: "oa.query.hide";
130
+ payload: string; // Max 1000 characters
131
+ }
132
+
133
+ // Union type for all buttons
134
+ type PromotionButton = OpenUrlButton | QueryShowButton | QueryHideButton | OpenSmsButton | OpenPhoneButton;
135
+
136
+ // Flexible input interface
137
+ interface PromotionButtonInput {
138
+ title: string;
139
+ imageIcon?: string;
140
+ type: "oa.open.url" | "oa.query.show" | "oa.query.hide" | "oa.open.sms" | "oa.open.phone";
141
+ payload: any; // SDK auto-converts to proper format
142
+ }
143
+ ```
144
+
118
145
  ### 🌐 Hỗ trợ đa ngôn ngữ
119
146
 
120
147
  Thêm thuộc tính `language` trong payload:
@@ -1,5 +1,6 @@
1
1
  import { PromotionService } from "../src/services/promotion.service";
2
2
  import { ZaloClient } from "../src/clients/zalo-client";
3
+ import { PromotionButtonInput } from "../src/types/promotion";
3
4
 
4
5
  /**
5
6
  * Examples sử dụng Promotion Service với API v3.0
@@ -39,7 +40,7 @@ export async function sendStandardPromotion() {
39
40
  {
40
41
  title: "Tham khảo chương trình",
41
42
  imageIcon: "",
42
- type: "oa.open.url",
43
+ type: "oa.open.url" as const,
43
44
  payload: {
44
45
  url: "https://oa.zalo.me/home"
45
46
  }
@@ -47,7 +48,7 @@ export async function sendStandardPromotion() {
47
48
  {
48
49
  title: "Liên hệ chăm sóc viên",
49
50
  imageIcon: "aeqg9SYn3nIUYYeWohGI1fYRF3V9f0GHceig8Ckq4WQVcpmWb-9SL8JLPt-6gX0QbTCfSuQv40UEst1imAm53CwFPsQ1jq9MsOnlQe6rIrZOYcrlWBTAKy_UQsV9vnfGozCuOvFfIbN5rcXddFKM4sSYVM0D50I9eWy3",
50
- type: "oa.query.hide",
51
+ type: "oa.query.hide" as const,
51
52
  payload: "#tuvan" // String trực tiếp theo docs
52
53
  }
53
54
  ],
@@ -174,22 +175,22 @@ export async function sendAllButtonTypes() {
174
175
  buttons: [
175
176
  {
176
177
  title: "Mở URL",
177
- type: "oa.open.url",
178
+ type: "oa.open.url" as const,
178
179
  payload: { url: "https://developers.zalo.me/" }
179
180
  },
180
181
  {
181
182
  title: "Query Show",
182
- type: "oa.query.show",
183
+ type: "oa.query.show" as const,
183
184
  payload: "#callback_show"
184
185
  },
185
186
  {
186
187
  title: "Query Hide",
187
- type: "oa.query.hide",
188
+ type: "oa.query.hide" as const,
188
189
  payload: "#callback_hide"
189
190
  },
190
191
  {
191
192
  title: "Gửi SMS",
192
- type: "oa.open.sms",
193
+ type: "oa.open.sms" as const,
193
194
  payload: {
194
195
  content: "Xin chào từ Zalo OA",
195
196
  phone_code: "84919018791"
@@ -197,7 +198,7 @@ export async function sendAllButtonTypes() {
197
198
  },
198
199
  {
199
200
  title: "Gọi điện",
200
- type: "oa.open.phone",
201
+ type: "oa.open.phone" as const,
201
202
  payload: { phone_code: "84919018791" }
202
203
  }
203
204
  ],
@@ -244,12 +245,12 @@ export async function sendPromotionToMultipleUsers() {
244
245
  buttons: [
245
246
  {
246
247
  title: "Mua ngay",
247
- type: "oa.open.url",
248
+ type: "oa.open.url" as const,
248
249
  payload: { url: "https://shop.example.com/sale" }
249
250
  },
250
251
  {
251
252
  title: "Xem thêm ưu đãi",
252
- type: "oa.query.hide",
253
+ type: "oa.query.hide" as const,
253
254
  payload: "#xemthem"
254
255
  }
255
256
  ],
@@ -340,7 +341,7 @@ export async function sendPromotionParallel() {
340
341
  buttons: [
341
342
  {
342
343
  title: "Mua ngay",
343
- type: "oa.open.url",
344
+ type: "oa.open.url" as const,
344
345
  payload: { url: "https://flash-sale.example.com" }
345
346
  }
346
347
  ]
@@ -362,6 +363,112 @@ export async function sendPromotionParallel() {
362
363
  }
363
364
  }
364
365
 
366
+ /**
367
+ * Example 8: Demo proper TypeScript typing với discriminated union
368
+ */
369
+ export async function sendProperTypedButtons() {
370
+ try {
371
+ // TypeScript sẽ enforce đúng payload type cho từng button
372
+ const result = await promotionService.sendCustomPromotion(
373
+ ACCESS_TOKEN,
374
+ { user_id: USER_ID },
375
+ {
376
+ attachmentId: "your_attachment_id",
377
+ headerContent: "🎯 TypeScript Typed Buttons Demo",
378
+ textContent: "Demo các button types với proper TypeScript typing",
379
+ tableData: [
380
+ { key: "Feature", value: "Type Safety" },
381
+ { key: "Support", value: "Full IntelliSense" }
382
+ ],
383
+ buttons: [
384
+ // URL Button - TypeScript enforces { url: string }
385
+ {
386
+ title: "Open Website",
387
+ type: "oa.open.url",
388
+ payload: { url: "https://typescript.example.com" }
389
+ // payload: "invalid" // ❌ TypeScript error!
390
+ },
391
+
392
+ // Query Hide - TypeScript enforces string payload
393
+ {
394
+ title: "Hidden Query",
395
+ type: "oa.query.hide",
396
+ payload: "#hidden_query"
397
+ // payload: { invalid: true } // ❌ TypeScript error!
398
+ },
399
+
400
+ // SMS Button - TypeScript enforces proper structure
401
+ {
402
+ title: "Send SMS",
403
+ type: "oa.open.sms",
404
+ payload: {
405
+ content: "Hello from typed button!",
406
+ phone_code: "84919018791"
407
+ // phoneCode: "84919018791" // ✅ Also supported (camelCase)
408
+ }
409
+ },
410
+
411
+ // Phone Button - Support both object and string
412
+ {
413
+ title: "Call Phone",
414
+ type: "oa.open.phone",
415
+ payload: { phone_code: "84919018791" }
416
+ // payload: "84919018791" // ✅ Also supported (string)
417
+ }
418
+ ],
419
+ language: "VI"
420
+ }
421
+ );
422
+
423
+ console.log("✅ Properly typed buttons sent successfully:", result);
424
+ return result;
425
+ } catch (error) {
426
+ console.error("❌ Failed to send properly typed buttons:", error);
427
+ throw error;
428
+ }
429
+ }
430
+
431
+ /**
432
+ * Example 9: Demo type safety - compile errors
433
+ */
434
+ export function demoTypeSafety() {
435
+ // These examples show TypeScript compile-time errors
436
+
437
+ /* ❌ This will cause TypeScript error:
438
+ const invalidButtons: PromotionButtonInput[] = [
439
+ {
440
+ title: "Invalid URL",
441
+ type: "oa.open.url",
442
+ payload: "just-a-string" // Error: string not assignable to { url: string }
443
+ },
444
+ {
445
+ title: "Invalid SMS",
446
+ type: "oa.open.sms",
447
+ payload: { url: "wrong-property" } // Error: missing content and phone_code
448
+ }
449
+ ];
450
+ */
451
+
452
+ // ✅ Correct typing:
453
+ const validButtons: PromotionButtonInput[] = [
454
+ {
455
+ title: "Valid URL",
456
+ type: "oa.open.url",
457
+ payload: { url: "https://example.com" }
458
+ },
459
+ {
460
+ title: "Valid SMS",
461
+ type: "oa.open.sms",
462
+ payload: {
463
+ content: "Valid message",
464
+ phone_code: "84919018791"
465
+ }
466
+ }
467
+ ];
468
+
469
+ console.log("✅ Valid buttons with proper typing:", validButtons);
470
+ }
471
+
365
472
  /**
366
473
  * Chạy tất cả examples
367
474
  */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@warriorteam/redai-zalo-sdk",
3
- "version": "1.23.0",
4
- "description": "Comprehensive TypeScript/JavaScript SDK for Zalo APIs - Official Account v3.0, ZNS, Consultation Service, Broadcast Service, Group Messaging with List APIs, Social APIs, Enhanced Article Management, Promotion Service v3.0 with Multiple Users Support, and Message Sequence APIs with Real-time Tracking",
3
+ "version": "1.25.0",
4
+ "description": "Comprehensive TypeScript/JavaScript SDK for Zalo APIs - Official Account v3.0, ZNS, 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",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
@@ -63,7 +63,16 @@
63
63
  "sequential-sending",
64
64
  "parallel-sending",
65
65
  "campaign-management",
66
- "error-isolation"
66
+ "error-isolation",
67
+ "button-types",
68
+ "typescript-support",
69
+ "type-safety",
70
+ "auto-conversion",
71
+ "payload-validation",
72
+ "query-buttons",
73
+ "url-buttons",
74
+ "sms-buttons",
75
+ "phone-buttons"
67
76
  ],
68
77
  "author": "RedAI Team",
69
78
  "license": "MIT",