@vqh2602/mini-app-sdk 0.0.0-stage → 1.0.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.
Files changed (46) hide show
  1. package/README.md +57 -2
  2. package/dist/client.d.ts +44 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +94 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/index.d.ts +13 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +14 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/modules/auth.d.ts +30 -0
  11. package/dist/modules/auth.d.ts.map +1 -0
  12. package/dist/modules/auth.js +37 -0
  13. package/dist/modules/auth.js.map +1 -0
  14. package/dist/modules/device.d.ts +34 -0
  15. package/dist/modules/device.d.ts.map +1 -0
  16. package/dist/modules/device.js +46 -0
  17. package/dist/modules/device.js.map +1 -0
  18. package/dist/modules/lifecycle.d.ts +19 -0
  19. package/dist/modules/lifecycle.d.ts.map +1 -0
  20. package/dist/modules/lifecycle.js +25 -0
  21. package/dist/modules/lifecycle.js.map +1 -0
  22. package/dist/modules/media.d.ts +15 -0
  23. package/dist/modules/media.d.ts.map +1 -0
  24. package/dist/modules/media.js +19 -0
  25. package/dist/modules/media.js.map +1 -0
  26. package/dist/modules/navigation.d.ts +19 -0
  27. package/dist/modules/navigation.d.ts.map +1 -0
  28. package/dist/modules/navigation.js +25 -0
  29. package/dist/modules/navigation.js.map +1 -0
  30. package/dist/modules/payment.d.ts +15 -0
  31. package/dist/modules/payment.d.ts.map +1 -0
  32. package/dist/modules/payment.js +25 -0
  33. package/dist/modules/payment.js.map +1 -0
  34. package/dist/modules/storage.d.ts +26 -0
  35. package/dist/modules/storage.d.ts.map +1 -0
  36. package/dist/modules/storage.js +46 -0
  37. package/dist/modules/storage.js.map +1 -0
  38. package/dist/modules/ui.d.ts +46 -0
  39. package/dist/modules/ui.d.ts.map +1 -0
  40. package/dist/modules/ui.js +72 -0
  41. package/dist/modules/ui.js.map +1 -0
  42. package/dist/types/index.d.ts +135 -0
  43. package/dist/types/index.d.ts.map +1 -0
  44. package/dist/types/index.js +2 -0
  45. package/dist/types/index.js.map +1 -0
  46. package/package.json +37 -4
package/README.md CHANGED
@@ -1,3 +1,58 @@
1
- # Temporary Holding Version
1
+ # @vqh2602/mini-app-sdk
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Bộ TypeScript SDK chính thức dành cho các nhà phát triển thứ ba xây dựng ứng dụng nhỏ (Mini App) trên nền tảng SuperApp.
4
+
5
+ ## 🚀 Tính năng nổi bật
6
+
7
+ - **100% TypeScript**: Định kiểu rõ ràng, tự động gợi ý code (IntelliSense) cho mọi hàm và tham số.
8
+ - **Tự động chuyển đổi môi trường**: Chạy mượt mà trên cả Flutter WebView thật, trong iframe Browser Simulator, hay độc lập (Mock Engine tự động).
9
+ - **Hỗ trợ đầy đủ nghiệp vụ SuperApp**:
10
+ - `auth`: Đăng nhập, cấp quyền OAuth, lấy User Profile, quản lý token.
11
+ - `payment`: Tích hợp thanh toán trực tiếp qua ví SuperApp.
12
+ - `device`: Pin, thông tin mạng, rung xúc giác haptic feedback, thông số màn hình.
13
+ - `storage`: Lưu trữ key-value cách ly và an toàn theo từng Mini App.
14
+ - `ui`: Toast thông báo, Alert, Confirm, đổi tiêu đề thanh điều hướng.
15
+ - `media`: Quét QR code camera, chọn ảnh.
16
+ - `lifecycle`: Bắt sự kiện app vào nền (Background) hoặc ra màn hình (Foreground).
17
+
18
+ ## 📦 Cài đặt
19
+
20
+ ```bash
21
+ npm install @vqh2602/mini-app-sdk
22
+ ```
23
+
24
+ ## 💡 Hướng dẫn nhanh (Quickstart)
25
+
26
+ ```typescript
27
+ import superApp from '@vqh2602/mini-app-sdk';
28
+
29
+ // 1. Đăng nhập người dùng
30
+ const authData = await superApp.auth.login({
31
+ scopes: ['user.profile', 'user.phone'],
32
+ });
33
+ console.log('Xin chào:', authData.user.name);
34
+
35
+ // 2. Gọi thanh toán đơn hàng
36
+ try {
37
+ const result = await superApp.payment.requestPayment({
38
+ orderId: 'ORDER_12345',
39
+ amount: 50000,
40
+ description: 'Thanh toán cà phê sữa đá',
41
+ });
42
+
43
+ if (result.status === 'SUCCESS') {
44
+ await superApp.ui.showToast('Thanh toán thành công!');
45
+ }
46
+ } catch (error) {
47
+ await superApp.ui.showToast('Giao dịch thất bại');
48
+ }
49
+
50
+ // 3. Đọc ghi bộ nhớ cục bộ
51
+ await superApp.storage.setItem('user_cart', { items: 2, total: 50000 });
52
+ const cart = await superApp.storage.getItem('user_cart');
53
+
54
+ // 4. Lắng nghe trạng thái ứng dụng
55
+ superApp.lifecycle.onAppShow(() => {
56
+ console.log('Mini App hiển thị trở lại');
57
+ });
58
+ ```
@@ -0,0 +1,44 @@
1
+ import { ITransport, TransportType } from '@vqh2602/sdk-transport';
2
+ import { SDKMockEngine } from '@vqh2602/sdk-mock-engine';
3
+ import { AuthModule } from './modules/auth.js';
4
+ import { DeviceModule } from './modules/device.js';
5
+ import { StorageModule } from './modules/storage.js';
6
+ import { UIModule } from './modules/ui.js';
7
+ import { NavigationModule } from './modules/navigation.js';
8
+ import { MediaModule } from './modules/media.js';
9
+ import { LifecycleModule } from './modules/lifecycle.js';
10
+ import { AuthLoginOptions, AuthLoginResult, ConfigAppViewOptions, KeepScreenOptions, MinimizeAppResult, NotificationResult, RequestSendNotificationOptions, SDKInitOptions, SetNavigationBarColorOptions, ToastOptions, UserProfile } from './types/index.js';
11
+ export declare class SuperAppSDK {
12
+ readonly version = "1.0.0";
13
+ readonly transport: ITransport;
14
+ readonly mockEngine?: SDKMockEngine;
15
+ readonly auth: AuthModule;
16
+ readonly device: DeviceModule;
17
+ readonly storage: StorageModule;
18
+ readonly ui: UIModule;
19
+ readonly navigation: NavigationModule;
20
+ readonly media: MediaModule;
21
+ readonly lifecycle: LifecycleModule;
22
+ constructor(options?: SDKInitOptions & {
23
+ forceTransport?: TransportType;
24
+ });
25
+ login(options?: AuthLoginOptions): Promise<AuthLoginResult>;
26
+ getUserProfile(): Promise<UserProfile>;
27
+ showToast(options: ToastOptions | string): Promise<void>;
28
+ vibrate(style?: 'light' | 'medium' | 'heavy'): Promise<void>;
29
+ closeApp(): Promise<void>;
30
+ minimizeApp(): Promise<MinimizeAppResult>;
31
+ configAppView(options: ConfigAppViewOptions): Promise<any>;
32
+ setNavigationBarTitle(title: string | {
33
+ title: string;
34
+ }): Promise<void>;
35
+ setNavigationBarColor(options: SetNavigationBarColorOptions | string): Promise<void>;
36
+ keepScreen(options?: KeepScreenOptions | boolean): Promise<{
37
+ success: boolean;
38
+ keepScreenOn: boolean;
39
+ }>;
40
+ requestSendNotification(options?: RequestSendNotificationOptions): Promise<NotificationResult>;
41
+ on(event: string, callback: (payload: any) => void): () => void;
42
+ off(event: string, callback: (payload: any) => void): void;
43
+ }
44
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA0C,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC3G,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,8BAA8B,EAC9B,cAAc,EACd,4BAA4B,EAC5B,YAAY,EACZ,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,WAAW;IACtB,SAAgB,OAAO,WAAW;IAClC,SAAgB,SAAS,EAAE,UAAU,CAAC;IACtC,SAAgB,UAAU,CAAC,EAAE,aAAa,CAAC;IAG3C,SAAgB,IAAI,EAAE,UAAU,CAAC;IACjC,SAAgB,MAAM,EAAE,YAAY,CAAC;IACrC,SAAgB,OAAO,EAAE,aAAa,CAAC;IACvC,SAAgB,EAAE,EAAE,QAAQ,CAAC;IAC7B,SAAgB,UAAU,EAAE,gBAAgB,CAAC;IAC7C,SAAgB,KAAK,EAAE,WAAW,CAAC;IACnC,SAAgB,SAAS,EAAE,eAAe,CAAC;gBAE/B,OAAO,GAAE,cAAc,GAAG;QAAE,cAAc,CAAC,EAAE,aAAa,CAAA;KAAO;IAsCtE,KAAK,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAI3D,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAItC,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAIzC,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;IAI1D,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpF,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,CAAC;IAIvG,uBAAuB,CAAC,OAAO,CAAC,EAAE,8BAA8B,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAI9F,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,MAAM,IAAI;IAI/D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;CAGlE"}
package/dist/client.js ADDED
@@ -0,0 +1,94 @@
1
+ import { MockBridgeTransport, TransportResolver } from '@vqh2602/sdk-transport';
2
+ import { SDKMockEngine } from '@vqh2602/sdk-mock-engine';
3
+ import { AuthModule } from './modules/auth.js';
4
+ import { DeviceModule } from './modules/device.js';
5
+ import { StorageModule } from './modules/storage.js';
6
+ import { UIModule } from './modules/ui.js';
7
+ import { NavigationModule } from './modules/navigation.js';
8
+ import { MediaModule } from './modules/media.js';
9
+ import { LifecycleModule } from './modules/lifecycle.js';
10
+ export class SuperAppSDK {
11
+ version = '1.0.0';
12
+ transport;
13
+ mockEngine;
14
+ // Domain modules
15
+ auth;
16
+ device;
17
+ storage;
18
+ ui;
19
+ navigation;
20
+ media;
21
+ lifecycle;
22
+ constructor(options = {}) {
23
+ // If running in pure mock environment, setup local engine
24
+ let mockEngine;
25
+ let mockDispatcher;
26
+ // Detect if need fallback mock dispatcher
27
+ const needsMock = options.forceTransport === 'mock' ||
28
+ (typeof window === 'undefined' || (!window.FlutterBridge && window.parent === window));
29
+ if (needsMock) {
30
+ mockEngine = new SDKMockEngine({ autoApprovePayment: true });
31
+ mockDispatcher = (req) => mockEngine.dispatch(req);
32
+ }
33
+ this.mockEngine = mockEngine;
34
+ this.transport = TransportResolver.resolve({
35
+ appId: options.appId,
36
+ debug: options.debug,
37
+ timeoutMs: options.timeoutMs,
38
+ forceTransport: options.forceTransport,
39
+ mockDispatcher,
40
+ });
41
+ // If MockBridgeTransport was created and we have mockEngine, attach
42
+ if (this.transport instanceof MockBridgeTransport && mockDispatcher) {
43
+ this.transport.setDispatcher(mockDispatcher);
44
+ }
45
+ this.auth = new AuthModule(this.transport);
46
+ this.device = new DeviceModule(this.transport);
47
+ this.storage = new StorageModule(this.transport);
48
+ this.ui = new UIModule(this.transport);
49
+ this.navigation = new NavigationModule(this.transport);
50
+ this.media = new MediaModule(this.transport);
51
+ this.lifecycle = new LifecycleModule(this.transport);
52
+ }
53
+ // Top-level shortcuts
54
+ login(options) {
55
+ return this.auth.login(options);
56
+ }
57
+ getUserProfile() {
58
+ return this.auth.getUserProfile();
59
+ }
60
+ showToast(options) {
61
+ return this.ui.showToast(options);
62
+ }
63
+ vibrate(style) {
64
+ return this.device.vibrate(style);
65
+ }
66
+ closeApp() {
67
+ return this.navigation.closeApp();
68
+ }
69
+ minimizeApp() {
70
+ return this.navigation.minimizeApp();
71
+ }
72
+ configAppView(options) {
73
+ return this.ui.configAppView(options);
74
+ }
75
+ setNavigationBarTitle(title) {
76
+ return this.ui.setNavigationBarTitle(title);
77
+ }
78
+ setNavigationBarColor(options) {
79
+ return this.ui.setNavigationBarColor(options);
80
+ }
81
+ keepScreen(options) {
82
+ return this.device.keepScreen(options);
83
+ }
84
+ requestSendNotification(options) {
85
+ return this.ui.requestSendNotification(options);
86
+ }
87
+ on(event, callback) {
88
+ return this.transport.on(event, callback);
89
+ }
90
+ off(event, callback) {
91
+ this.transport.off(event, callback);
92
+ }
93
+ }
94
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { SuperAppSDK } from './client.js';
2
+ export declare const superApp: SuperAppSDK;
3
+ export default superApp;
4
+ export { SuperAppSDK } from './client.js';
5
+ export * from './types/index.js';
6
+ export * from './modules/auth.js';
7
+ export * from './modules/device.js';
8
+ export * from './modules/storage.js';
9
+ export * from './modules/ui.js';
10
+ export * from './modules/navigation.js';
11
+ export * from './modules/media.js';
12
+ export * from './modules/lifecycle.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,eAAO,MAAM,QAAQ,aAAoB,CAAC;AAC1C,eAAe,QAAQ,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,14 @@
1
+ import { SuperAppSDK } from './client.js';
2
+ // Default singleton instance ready to use
3
+ export const superApp = new SuperAppSDK();
4
+ export default superApp;
5
+ export { SuperAppSDK } from './client.js';
6
+ export * from './types/index.js';
7
+ export * from './modules/auth.js';
8
+ export * from './modules/device.js';
9
+ export * from './modules/storage.js';
10
+ export * from './modules/ui.js';
11
+ export * from './modules/navigation.js';
12
+ export * from './modules/media.js';
13
+ export * from './modules/lifecycle.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,0CAA0C;AAC1C,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;AAC1C,eAAe,QAAQ,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { ITransport } from '@vqh2602/sdk-transport';
2
+ import { AccessTokenResult, AuthLoginOptions, AuthLoginResult, UserProfile } from '../types/index.js';
3
+ export declare class AuthModule {
4
+ private transport;
5
+ constructor(transport: ITransport);
6
+ /**
7
+ * Yêu cầu người dùng đăng nhập & cấp quyền truy cập
8
+ */
9
+ login(options?: AuthLoginOptions): Promise<AuthLoginResult>;
10
+ /**
11
+ * Lấy Access Token hiện tại
12
+ */
13
+ getAccessToken(): Promise<AccessTokenResult>;
14
+ /**
15
+ * Lấy thông tin hồ sơ người dùng
16
+ */
17
+ getUserProfile(): Promise<UserProfile>;
18
+ /**
19
+ * Làm mới Access Token
20
+ */
21
+ refreshToken(refreshToken?: string): Promise<AccessTokenResult>;
22
+ /**
23
+ * Đăng xuất phiên làm việc hiện tại
24
+ */
25
+ logout(): Promise<{
26
+ success: boolean;
27
+ message: string;
28
+ }>;
29
+ }
30
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/modules/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEtG,qBAAa,UAAU;IACT,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;IAEzC;;OAEG;IACU,KAAK,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;IAI5E;;OAEG;IACU,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAIzD;;OAEG;IACU,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAInD;;OAEG;IACU,YAAY,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI5E;;OAEG;IACU,MAAM,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAGtE"}
@@ -0,0 +1,37 @@
1
+ export class AuthModule {
2
+ transport;
3
+ constructor(transport) {
4
+ this.transport = transport;
5
+ }
6
+ /**
7
+ * Yêu cầu người dùng đăng nhập & cấp quyền truy cập
8
+ */
9
+ async login(options = {}) {
10
+ return this.transport.invoke('auth.login', options);
11
+ }
12
+ /**
13
+ * Lấy Access Token hiện tại
14
+ */
15
+ async getAccessToken() {
16
+ return this.transport.invoke('auth.getAccessToken');
17
+ }
18
+ /**
19
+ * Lấy thông tin hồ sơ người dùng
20
+ */
21
+ async getUserProfile() {
22
+ return this.transport.invoke('auth.getUserProfile');
23
+ }
24
+ /**
25
+ * Làm mới Access Token
26
+ */
27
+ async refreshToken(refreshToken) {
28
+ return this.transport.invoke('auth.refreshToken', { refreshToken });
29
+ }
30
+ /**
31
+ * Đăng xuất phiên làm việc hiện tại
32
+ */
33
+ async logout() {
34
+ return this.transport.invoke('auth.logout');
35
+ }
36
+ }
37
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/modules/auth.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,UAAU;IACD;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;IAE7C;;OAEG;IACI,KAAK,CAAC,KAAK,CAAC,UAA4B,EAAE;QAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAkB,YAAY,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,cAAc;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAoB,qBAAqB,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,cAAc;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAc,qBAAqB,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,YAAY,CAAC,YAAqB;QAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAoB,mBAAmB,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IACzF,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,MAAM;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAwC,aAAa,CAAC,CAAC;IACrF,CAAC;CACF"}
@@ -0,0 +1,34 @@
1
+ import { ITransport } from '@vqh2602/sdk-transport';
2
+ import { BatteryInfo, DeviceInfo, KeepScreenOptions, NetworkInfo } from '../types/index.js';
3
+ export declare class DeviceModule {
4
+ private transport;
5
+ constructor(transport: ITransport);
6
+ /**
7
+ * Lấy mức pin và trạng thái sạc
8
+ */
9
+ getBatteryInfo(): Promise<BatteryInfo>;
10
+ /**
11
+ * Lấy trạng thái mạng kết nối (WiFi, 4G, 5G, Offline)
12
+ */
13
+ getNetworkInfo(): Promise<NetworkInfo>;
14
+ /**
15
+ * Lấy thông số thiết bị và màn hình
16
+ */
17
+ getDeviceInfo(): Promise<DeviceInfo>;
18
+ /**
19
+ * Lấy thông số hệ điều hành
20
+ */
21
+ getSystemInfo(): Promise<DeviceInfo>;
22
+ /**
23
+ * Kích hoạt rung phản hồi xúc giác (Haptic Feedback)
24
+ */
25
+ vibrate(style?: 'light' | 'medium' | 'heavy'): Promise<void>;
26
+ /**
27
+ * Giữ màn hình luôn bật / luôn sáng
28
+ */
29
+ keepScreen(options?: KeepScreenOptions | boolean): Promise<{
30
+ success: boolean;
31
+ keepScreenOn: boolean;
32
+ }>;
33
+ }
34
+ //# sourceMappingURL=device.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/modules/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE5F,qBAAa,YAAY;IACX,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;IAEzC;;OAEG;IACU,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAInD;;OAEG;IACU,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAInD;;OAEG;IACU,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAIjD;;OAEG;IACU,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAIjD;;OAEG;IACU,OAAO,CAAC,KAAK,GAAE,OAAO,GAAG,QAAQ,GAAG,OAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlF;;OAEG;IACU,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,CAAC;CAMrH"}
@@ -0,0 +1,46 @@
1
+ export class DeviceModule {
2
+ transport;
3
+ constructor(transport) {
4
+ this.transport = transport;
5
+ }
6
+ /**
7
+ * Lấy mức pin và trạng thái sạc
8
+ */
9
+ async getBatteryInfo() {
10
+ return this.transport.invoke('device.getBatteryInfo');
11
+ }
12
+ /**
13
+ * Lấy trạng thái mạng kết nối (WiFi, 4G, 5G, Offline)
14
+ */
15
+ async getNetworkInfo() {
16
+ return this.transport.invoke('device.getNetworkInfo');
17
+ }
18
+ /**
19
+ * Lấy thông số thiết bị và màn hình
20
+ */
21
+ async getDeviceInfo() {
22
+ return this.transport.invoke('device.getDeviceInfo');
23
+ }
24
+ /**
25
+ * Lấy thông số hệ điều hành
26
+ */
27
+ async getSystemInfo() {
28
+ return this.transport.invoke('device.getSystemInfo');
29
+ }
30
+ /**
31
+ * Kích hoạt rung phản hồi xúc giác (Haptic Feedback)
32
+ */
33
+ async vibrate(style = 'light') {
34
+ await this.transport.invoke('device.vibrate', { style });
35
+ }
36
+ /**
37
+ * Giữ màn hình luôn bật / luôn sáng
38
+ */
39
+ async keepScreen(options) {
40
+ const payload = typeof options === 'boolean'
41
+ ? { keepScreenOn: options }
42
+ : (options || { keepScreenOn: true });
43
+ return this.transport.invoke('device.keepScreen', payload);
44
+ }
45
+ }
46
+ //# sourceMappingURL=device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/modules/device.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,YAAY;IACH;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;IAE7C;;OAEG;IACI,KAAK,CAAC,cAAc;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAc,uBAAuB,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,cAAc;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAc,uBAAuB,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,aAAa;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAa,sBAAsB,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,aAAa;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAa,sBAAsB,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO,CAAC,QAAsC,OAAO;QAChE,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,UAAU,CAAC,OAAqC;QAC3D,MAAM,OAAO,GAAG,OAAO,OAAO,KAAK,SAAS;YAC1C,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE;YAC3B,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAA8C,mBAAmB,EAAE,OAAO,CAAC,CAAC;IAC1G,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import { ITransport } from '@vqh2602/sdk-transport';
2
+ export type LifecycleListener = (data?: any) => void;
3
+ export declare class LifecycleModule {
4
+ private transport;
5
+ constructor(transport: ITransport);
6
+ /**
7
+ * Đăng ký lắng nghe sự kiện khi Mini App hiển thị ra màn hình chính (Foreground)
8
+ */
9
+ onAppShow(callback: LifecycleListener): () => void;
10
+ /**
11
+ * Đăng ký lắng nghe sự kiện khi Mini App bị ẩn xuống nền (Background)
12
+ */
13
+ onAppHide(callback: LifecycleListener): () => void;
14
+ /**
15
+ * Đăng ký lắng nghe lỗi hệ thống
16
+ */
17
+ onError(callback: LifecycleListener): () => void;
18
+ }
19
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/modules/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;AAErD,qBAAa,eAAe;IACd,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;IAEzC;;OAEG;IACI,SAAS,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAIzD;;OAEG;IACI,SAAS,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAIzD;;OAEG;IACI,OAAO,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,IAAI;CAGxD"}
@@ -0,0 +1,25 @@
1
+ export class LifecycleModule {
2
+ transport;
3
+ constructor(transport) {
4
+ this.transport = transport;
5
+ }
6
+ /**
7
+ * Đăng ký lắng nghe sự kiện khi Mini App hiển thị ra màn hình chính (Foreground)
8
+ */
9
+ onAppShow(callback) {
10
+ return this.transport.on('appShow', callback);
11
+ }
12
+ /**
13
+ * Đăng ký lắng nghe sự kiện khi Mini App bị ẩn xuống nền (Background)
14
+ */
15
+ onAppHide(callback) {
16
+ return this.transport.on('appHide', callback);
17
+ }
18
+ /**
19
+ * Đăng ký lắng nghe lỗi hệ thống
20
+ */
21
+ onError(callback) {
22
+ return this.transport.on('appError', callback);
23
+ }
24
+ }
25
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/modules/lifecycle.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,eAAe;IACN;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;IAE7C;;OAEG;IACI,SAAS,CAAC,QAA2B;QAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,QAA2B;QAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,QAA2B;QACxC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ import { ITransport } from '@vqh2602/sdk-transport';
2
+ import { ChooseImageOptions, ChooseImageResult, QRCodeResult } from '../types/index.js';
3
+ export declare class MediaModule {
4
+ private transport;
5
+ constructor(transport: ITransport);
6
+ /**
7
+ * Quét mã QR Code bằng camera của SuperApp
8
+ */
9
+ scanQRCode(prompt?: string): Promise<QRCodeResult>;
10
+ /**
11
+ * Chọn ảnh từ thư viện thiết bị
12
+ */
13
+ chooseImage(options?: ChooseImageOptions): Promise<ChooseImageResult>;
14
+ }
15
+ //# sourceMappingURL=media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/modules/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAExF,qBAAa,WAAW;IACV,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;IAEzC;;OAEG;IACU,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI/D;;OAEG;IACU,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAGvF"}
@@ -0,0 +1,19 @@
1
+ export class MediaModule {
2
+ transport;
3
+ constructor(transport) {
4
+ this.transport = transport;
5
+ }
6
+ /**
7
+ * Quét mã QR Code bằng camera của SuperApp
8
+ */
9
+ async scanQRCode(prompt) {
10
+ return this.transport.invoke('media.scanQRCode', { prompt });
11
+ }
12
+ /**
13
+ * Chọn ảnh từ thư viện thiết bị
14
+ */
15
+ async chooseImage(options = {}) {
16
+ return this.transport.invoke('media.chooseImage', options);
17
+ }
18
+ }
19
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/modules/media.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,WAAW;IACF;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;IAE7C;;OAEG;IACI,KAAK,CAAC,UAAU,CAAC,MAAe;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAe,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,WAAW,CAAC,UAA8B,EAAE;QACvD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAoB,mBAAmB,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import { ITransport } from '@vqh2602/sdk-transport';
2
+ import { MinimizeAppResult } from '../types/index.js';
3
+ export declare class NavigationModule {
4
+ private transport;
5
+ constructor(transport: ITransport);
6
+ /**
7
+ * Đóng Mini App và quay lại màn hình SuperApp chính
8
+ */
9
+ closeApp(): Promise<void>;
10
+ /**
11
+ * Thu nhỏ Mini App vào dạng floating window / background dock
12
+ */
13
+ minimizeApp(): Promise<MinimizeAppResult>;
14
+ /**
15
+ * Mở liên kết trình duyệt ngoài
16
+ */
17
+ openUrl(url: string): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/modules/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,qBAAa,gBAAgB;IACf,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;IAEzC;;OAEG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAItD;;OAEG;IACU,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGjD"}
@@ -0,0 +1,25 @@
1
+ export class NavigationModule {
2
+ transport;
3
+ constructor(transport) {
4
+ this.transport = transport;
5
+ }
6
+ /**
7
+ * Đóng Mini App và quay lại màn hình SuperApp chính
8
+ */
9
+ async closeApp() {
10
+ await this.transport.invoke('navigation.closeApp');
11
+ }
12
+ /**
13
+ * Thu nhỏ Mini App vào dạng floating window / background dock
14
+ */
15
+ async minimizeApp() {
16
+ return this.transport.invoke('navigation.minimizeApp');
17
+ }
18
+ /**
19
+ * Mở liên kết trình duyệt ngoài
20
+ */
21
+ async openUrl(url) {
22
+ await this.transport.invoke('phone.openExternalBrowser', { url });
23
+ }
24
+ }
25
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/modules/navigation.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;IACP;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;IAE7C;;OAEG;IACI,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,WAAW;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAoB,wBAAwB,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO,CAAC,GAAW;QAC9B,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,2BAA2B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACpE,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ import { ITransport } from '@superapp/sdk-transport';
2
+ import { PaymentOptions, PaymentResult } from '../types/index.js';
3
+ export declare class PaymentModule {
4
+ private transport;
5
+ constructor(transport: ITransport);
6
+ /**
7
+ * Gọi cổng thanh toán SuperApp Checkout
8
+ */
9
+ requestPayment(options: PaymentOptions): Promise<PaymentResult>;
10
+ /**
11
+ * Tra cứu trạng thái giao dịch
12
+ */
13
+ checkTransaction(transactionId: string): Promise<PaymentResult>;
14
+ }
15
+ //# sourceMappingURL=payment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../src/modules/payment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElE,qBAAa,aAAa;IACZ,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;IAEzC;;OAEG;IACU,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAU5E;;OAEG;IACU,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CAG7E"}
@@ -0,0 +1,25 @@
1
+ export class PaymentModule {
2
+ transport;
3
+ constructor(transport) {
4
+ this.transport = transport;
5
+ }
6
+ /**
7
+ * Gọi cổng thanh toán SuperApp Checkout
8
+ */
9
+ async requestPayment(options) {
10
+ if (!options.amount || options.amount <= 0) {
11
+ throw new Error('Số tiền thanh toán phải lớn hơn 0');
12
+ }
13
+ if (!options.orderId) {
14
+ throw new Error('Mã đơn hàng (orderId) không được để trống');
15
+ }
16
+ return this.transport.invoke('payment.requestPayment', options);
17
+ }
18
+ /**
19
+ * Tra cứu trạng thái giao dịch
20
+ */
21
+ async checkTransaction(transactionId) {
22
+ return this.transport.invoke('payment.checkTransaction', { transactionId });
23
+ }
24
+ }
25
+ //# sourceMappingURL=payment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.js","sourceRoot":"","sources":["../../src/modules/payment.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;IAE7C;;OAEG;IACI,KAAK,CAAC,cAAc,CAAC,OAAuB;QACjD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAgB,wBAAwB,EAAE,OAAO,CAAC,CAAC;IACjF,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,gBAAgB,CAAC,aAAqB;QACjD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAgB,0BAA0B,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IAC7F,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ import { ITransport } from '@vqh2602/sdk-transport';
2
+ export declare class StorageModule {
3
+ private transport;
4
+ constructor(transport: ITransport);
5
+ /**
6
+ * Lưu trữ dữ liệu cách ly theo Mini App
7
+ */
8
+ setItem(key: string, value: any): Promise<void>;
9
+ /**
10
+ * Lấy dữ liệu đã lưu
11
+ */
12
+ getItem<T = any>(key: string): Promise<T | null>;
13
+ /**
14
+ * Xoá một khoá lưu trữ
15
+ */
16
+ removeItem(key: string): Promise<void>;
17
+ /**
18
+ * Xoá toàn bộ dữ liệu của Mini App
19
+ */
20
+ clear(): Promise<void>;
21
+ /**
22
+ * Lấy toàn bộ cặp key-value
23
+ */
24
+ getAll(): Promise<Record<string, string>>;
25
+ }
26
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/modules/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,qBAAa,aAAa;IACZ,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;IAEzC;;OAEG;IACU,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D;;OAEG;IACU,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAU7D;;OAEG;IACU,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;OAEG;IACU,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAGvD"}
@@ -0,0 +1,46 @@
1
+ export class StorageModule {
2
+ transport;
3
+ constructor(transport) {
4
+ this.transport = transport;
5
+ }
6
+ /**
7
+ * Lưu trữ dữ liệu cách ly theo Mini App
8
+ */
9
+ async setItem(key, value) {
10
+ const serialized = typeof value === 'string' ? value : JSON.stringify(value);
11
+ await this.transport.invoke('storage.setItem', { key, value: serialized });
12
+ }
13
+ /**
14
+ * Lấy dữ liệu đã lưu
15
+ */
16
+ async getItem(key) {
17
+ const res = await this.transport.invoke('storage.getItem', { key });
18
+ if (!res || res.value === null)
19
+ return null;
20
+ try {
21
+ return JSON.parse(res.value);
22
+ }
23
+ catch {
24
+ return res.value;
25
+ }
26
+ }
27
+ /**
28
+ * Xoá một khoá lưu trữ
29
+ */
30
+ async removeItem(key) {
31
+ await this.transport.invoke('storage.removeItem', { key });
32
+ }
33
+ /**
34
+ * Xoá toàn bộ dữ liệu của Mini App
35
+ */
36
+ async clear() {
37
+ await this.transport.invoke('storage.clear');
38
+ }
39
+ /**
40
+ * Lấy toàn bộ cặp key-value
41
+ */
42
+ async getAll() {
43
+ return this.transport.invoke('storage.getAll');
44
+ }
45
+ }
46
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/modules/storage.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;IAE7C;;OAEG;IACI,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,KAAU;QAC1C,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC7E,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO,CAAU,GAAW;QACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAwC,iBAAiB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3G,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC5C,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAM,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,CAAC,KAAqB,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,UAAU,CAAC,GAAW;QACjC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,MAAM;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAyB,gBAAgB,CAAC,CAAC;IACzE,CAAC;CACF"}
@@ -0,0 +1,46 @@
1
+ import { ITransport } from '@vqh2602/sdk-transport';
2
+ import { AlertOptions, ConfigAppViewOptions, ConfirmOptions, NotificationResult, RequestSendNotificationOptions, SetNavigationBarColorOptions, ToastOptions } from '../types/index.js';
3
+ export declare class UIModule {
4
+ private transport;
5
+ constructor(transport: ITransport);
6
+ /**
7
+ * Hiển thị thông báo Toast nhanh
8
+ */
9
+ showToast(options: ToastOptions | string): Promise<void>;
10
+ /**
11
+ * Hiển thị hộp thoại cảnh báo (Alert Dialog)
12
+ */
13
+ showAlert(options: AlertOptions): Promise<void>;
14
+ /**
15
+ * Hiển thị hộp thoại xác nhận (Confirm Dialog)
16
+ */
17
+ showConfirm(options: ConfirmOptions): Promise<boolean>;
18
+ /**
19
+ * Đặt lại tiêu đề trên thanh điều hướng của trang hiện tại
20
+ */
21
+ setNavigationBarTitle(title: string | {
22
+ title: string;
23
+ }): Promise<void>;
24
+ /**
25
+ * Cấu hình hợp nhất giao diện: Ẩn/hiện, tuỳ chỉnh màu sắc, kiểu hiển thị của status bar, action bar, bottom navigation
26
+ * (Thay thế cho setStatusBarStyle, setStatusBarColor, setNavigationBarColor)
27
+ */
28
+ configAppView(options: ConfigAppViewOptions): Promise<any>;
29
+ /**
30
+ * @deprecated Gộp chung vào configAppView({ headerColor: ... })
31
+ */
32
+ setNavigationBarColor(options: SetNavigationBarColorOptions | string): Promise<void>;
33
+ /**
34
+ * @deprecated Gộp chung vào configAppView({ statusBarColor: color })
35
+ */
36
+ setStatusBarColor(color: string): Promise<void>;
37
+ /**
38
+ * @deprecated Gộp chung vào configAppView({ statusBar: style, textColor: ... })
39
+ */
40
+ setStatusBarStyle(style: 'light' | 'dark'): Promise<void>;
41
+ /**
42
+ * Yêu cầu người dùng cho phép ứng dụng gửi thông báo qua Official Account / Mini App Channel
43
+ */
44
+ requestSendNotification(options?: RequestSendNotificationOptions): Promise<NotificationResult>;
45
+ }
46
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/modules/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,8BAA8B,EAC9B,4BAA4B,EAC5B,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,QAAQ;IACP,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;IAEzC;;OAEG;IACU,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE;;OAEG;IACU,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D;;OAEG;IACU,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnE;;OAEG;IACU,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpF;;;OAGG;IACU,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvE;;OAEG;IACU,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjG;;OAEG;IACU,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D;;OAEG;IACU,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE;;OAEG;IACU,uBAAuB,CAAC,OAAO,GAAE,8BAAmC,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAGhH"}
@@ -0,0 +1,72 @@
1
+ export class UIModule {
2
+ transport;
3
+ constructor(transport) {
4
+ this.transport = transport;
5
+ }
6
+ /**
7
+ * Hiển thị thông báo Toast nhanh
8
+ */
9
+ async showToast(options) {
10
+ const payload = typeof options === 'string' ? { message: options } : options;
11
+ await this.transport.invoke('ui.showToast', payload);
12
+ }
13
+ /**
14
+ * Hiển thị hộp thoại cảnh báo (Alert Dialog)
15
+ */
16
+ async showAlert(options) {
17
+ await this.transport.invoke('ui.showAlert', options);
18
+ }
19
+ /**
20
+ * Hiển thị hộp thoại xác nhận (Confirm Dialog)
21
+ */
22
+ async showConfirm(options) {
23
+ const res = await this.transport.invoke('ui.showConfirm', options);
24
+ return !!res?.confirmed;
25
+ }
26
+ /**
27
+ * Đặt lại tiêu đề trên thanh điều hướng của trang hiện tại
28
+ */
29
+ async setNavigationBarTitle(title) {
30
+ const payload = typeof title === 'string' ? { title } : title;
31
+ await this.transport.invoke('ui.setNavigationBarTitle', payload);
32
+ }
33
+ /**
34
+ * Cấu hình hợp nhất giao diện: Ẩn/hiện, tuỳ chỉnh màu sắc, kiểu hiển thị của status bar, action bar, bottom navigation
35
+ * (Thay thế cho setStatusBarStyle, setStatusBarColor, setNavigationBarColor)
36
+ */
37
+ async configAppView(options) {
38
+ return this.transport.invoke('ui.configAppView', options);
39
+ }
40
+ /**
41
+ * @deprecated Gộp chung vào configAppView({ headerColor: ... })
42
+ */
43
+ async setNavigationBarColor(options) {
44
+ const payload = typeof options === 'string'
45
+ ? { headerColor: options }
46
+ : {
47
+ headerColor: options.color,
48
+ textColor: options.textColor,
49
+ statusBarColor: options.statusBarColor,
50
+ };
51
+ await this.configAppView(payload);
52
+ }
53
+ /**
54
+ * @deprecated Gộp chung vào configAppView({ statusBarColor: color })
55
+ */
56
+ async setStatusBarColor(color) {
57
+ await this.configAppView({ statusBarColor: color });
58
+ }
59
+ /**
60
+ * @deprecated Gộp chung vào configAppView({ statusBar: style, textColor: ... })
61
+ */
62
+ async setStatusBarStyle(style) {
63
+ await this.configAppView({ statusBar: style, textColor: style === 'light' ? 'white' : 'black' });
64
+ }
65
+ /**
66
+ * Yêu cầu người dùng cho phép ứng dụng gửi thông báo qua Official Account / Mini App Channel
67
+ */
68
+ async requestSendNotification(options = {}) {
69
+ return this.transport.invoke('ui.requestSendNotification', options);
70
+ }
71
+ }
72
+ //# sourceMappingURL=ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/modules/ui.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,QAAQ;IACC;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;IAE7C;;OAEG;IACI,KAAK,CAAC,SAAS,CAAC,OAA8B;QACnD,MAAM,OAAO,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAC7E,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,SAAS,CAAC,OAAqB;QAC1C,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,WAAW,CAAC,OAAuB;QAC9C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAyB,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC3F,OAAO,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC;IAC1B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,qBAAqB,CAAC,KAAiC;QAClE,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9D,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,aAAa,CAAC,OAA6B;QACtD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,qBAAqB,CAAC,OAA8C;QAC/E,MAAM,OAAO,GAAyB,OAAO,OAAO,KAAK,QAAQ;YAC/D,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE;YAC1B,CAAC,CAAC;gBACE,WAAW,EAAE,OAAO,CAAC,KAAK;gBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;aACvC,CAAC;QACN,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,iBAAiB,CAAC,KAAa;QAC1C,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,iBAAiB,CAAC,KAAuB;QACpD,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACnG,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,uBAAuB,CAAC,UAA0C,EAAE;QAC/E,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAqB,4BAA4B,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;CACF"}
@@ -0,0 +1,135 @@
1
+ export interface UserProfile {
2
+ id: string;
3
+ name: string;
4
+ phone?: string;
5
+ email?: string;
6
+ avatarUrl?: string;
7
+ role?: string;
8
+ isVerified?: boolean;
9
+ }
10
+ export interface AuthLoginOptions {
11
+ scopes?: ('user.profile' | 'user.phone' | 'user.email')[];
12
+ prompt?: boolean;
13
+ }
14
+ export interface AuthLoginResult {
15
+ authCode: string;
16
+ accessToken: string;
17
+ expiresIn: number;
18
+ user: UserProfile;
19
+ }
20
+ export interface AccessTokenResult {
21
+ accessToken: string;
22
+ tokenType: string;
23
+ expiresIn: number;
24
+ }
25
+ export interface BatteryInfo {
26
+ batteryLevel: number;
27
+ isCharging: boolean;
28
+ }
29
+ export interface NetworkInfo {
30
+ isConnected: boolean;
31
+ networkType: string;
32
+ isWifi: boolean;
33
+ isMobile: boolean;
34
+ }
35
+ export interface DeviceInfo {
36
+ model: string;
37
+ platform: string;
38
+ systemName: string;
39
+ systemVersion: string;
40
+ language: string;
41
+ screenWidth: number;
42
+ screenHeight: number;
43
+ pixelRatio: number;
44
+ }
45
+ export interface ToastOptions {
46
+ message: string;
47
+ duration?: number;
48
+ }
49
+ export interface AlertOptions {
50
+ title: string;
51
+ message: string;
52
+ buttonText?: string;
53
+ }
54
+ export interface ConfirmOptions {
55
+ title: string;
56
+ message: string;
57
+ confirmText?: string;
58
+ cancelText?: string;
59
+ }
60
+ export interface QRCodeResult {
61
+ content: string;
62
+ format: string;
63
+ }
64
+ export interface ChooseImageOptions {
65
+ count?: number;
66
+ }
67
+ export interface ChooseImageResult {
68
+ tempFilePaths: string[];
69
+ count: number;
70
+ }
71
+ export interface SDKInitOptions {
72
+ appId?: string;
73
+ timeoutMs?: number;
74
+ debug?: boolean;
75
+ }
76
+ export interface ConfigAppViewOptions {
77
+ headerColor?: string;
78
+ headerTitle?: string;
79
+ textColor?: 'white' | 'black';
80
+ statusBar?: 'transparent' | 'hidden' | 'light' | 'dark';
81
+ statusBarColor?: string;
82
+ actionBarHidden?: boolean;
83
+ hideAndroidBottomNavigationBar?: boolean;
84
+ hasPadding?: boolean;
85
+ hasPaddingTop?: boolean;
86
+ hasPaddingBottom?: boolean;
87
+ safeAreaTop?: boolean;
88
+ safeAreaBottom?: boolean;
89
+ safeArea?: boolean | {
90
+ top?: boolean;
91
+ bottom?: boolean;
92
+ };
93
+ bottomNavColor?: string;
94
+ header?: {
95
+ color?: string;
96
+ title?: string;
97
+ textColor?: 'white' | 'black';
98
+ hidden?: boolean;
99
+ hide?: boolean;
100
+ };
101
+ bottomNav?: {
102
+ color?: string;
103
+ hidden?: boolean;
104
+ hide?: boolean;
105
+ };
106
+ }
107
+ export interface SetNavigationBarColorOptions {
108
+ color: string;
109
+ textColor?: 'white' | 'black';
110
+ statusBarColor?: string;
111
+ }
112
+ export interface KeepScreenOptions {
113
+ keepScreenOn?: boolean;
114
+ }
115
+ export interface RequestSendNotificationOptions {
116
+ templateId?: string;
117
+ reason?: string;
118
+ }
119
+ export interface NotificationResult {
120
+ success: boolean;
121
+ granted: boolean;
122
+ subscriptionId?: string;
123
+ token?: string;
124
+ templateId?: string;
125
+ reason?: string;
126
+ message?: string;
127
+ error?: string;
128
+ }
129
+ export interface MinimizeAppResult {
130
+ success: boolean;
131
+ status: string;
132
+ appId: string;
133
+ timestamp?: number;
134
+ }
135
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,39 @@
1
1
  {
2
2
  "name": "@vqh2602/mini-app-sdk",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.0.0",
4
+ "description": "Official TypeScript SDK for SuperApp Mini App Third-Party Developers",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "default": "./dist/index.js"
14
+ }
15
+ },
16
+ "dependencies": {
17
+ "@vqh2602/sdk-transport": "^1.0.0",
18
+ "@vqh2602/sdk-mock-engine": "^1.0.0"
19
+ },
20
+ "files": [
21
+ "dist"
22
+ ],
23
+ "publishConfig": {
24
+ "access": "public"
25
+ },
26
+ "scripts": {
27
+ "build": "tsc -b",
28
+ "typecheck": "tsc --noEmit"
29
+ },
30
+ "keywords": [
31
+ "superapp",
32
+ "mini-app",
33
+ "sdk",
34
+ "typescript",
35
+ "api"
36
+ ],
37
+ "author": "SuperApp Platform Team",
38
+ "license": "MIT"
39
+ }