@vqh2602/mini-app-sdk 1.0.6 → 1.0.8
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/README.md +13 -0
- package/bin/simulator.js +36 -6
- package/dist/cli/commands/create.js +1 -1
- package/dist/cli/commands/dev.d.ts +1 -0
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +3 -2
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/simulator.d.ts +1 -0
- package/dist/cli/commands/simulator.d.ts.map +1 -1
- package/dist/cli/commands/simulator.js +3 -2
- package/dist/cli/commands/simulator.js.map +1 -1
- package/dist/cli/commands/upload.d.ts +3 -0
- package/dist/cli/commands/upload.d.ts.map +1 -1
- package/dist/cli/commands/upload.js +45 -27
- package/dist/cli/commands/upload.js.map +1 -1
- package/dist/cli/index.js +5 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils/auth.d.ts +34 -0
- package/dist/cli/utils/auth.d.ts.map +1 -0
- package/dist/cli/utils/auth.js +99 -0
- package/dist/cli/utils/auth.js.map +1 -0
- package/dist/cli/utils/server.d.ts +15 -1
- package/dist/cli/utils/server.d.ts.map +1 -1
- package/dist/cli/utils/server.js +71 -7
- package/dist/cli/utils/server.js.map +1 -1
- package/dist/core/client.d.ts +148 -16
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +113 -53
- package/dist/core/client.js.map +1 -1
- package/dist/core/index.d.ts +10 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +10 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/modules/auth.d.ts +64 -4
- package/dist/core/modules/auth.d.ts.map +1 -1
- package/dist/core/modules/auth.js +205 -2
- package/dist/core/modules/auth.js.map +1 -1
- package/dist/core/modules/debug.d.ts +14 -0
- package/dist/core/modules/debug.d.ts.map +1 -0
- package/dist/core/modules/debug.js +19 -0
- package/dist/core/modules/debug.js.map +1 -0
- package/dist/core/modules/device.d.ts +4 -1
- package/dist/core/modules/device.d.ts.map +1 -1
- package/dist/core/modules/device.js +4 -1
- package/dist/core/modules/device.js.map +1 -1
- package/dist/core/modules/file.d.ts +38 -0
- package/dist/core/modules/file.d.ts.map +1 -0
- package/dist/core/modules/file.js +25 -0
- package/dist/core/modules/file.js.map +1 -0
- package/dist/core/modules/lifecycle.d.ts +23 -0
- package/dist/core/modules/lifecycle.d.ts.map +1 -1
- package/dist/core/modules/lifecycle.js +30 -0
- package/dist/core/modules/lifecycle.js.map +1 -1
- package/dist/core/modules/media.d.ts +65 -0
- package/dist/core/modules/media.d.ts.map +1 -1
- package/dist/core/modules/media.js +36 -0
- package/dist/core/modules/media.js.map +1 -1
- package/dist/core/modules/navigation.d.ts +3 -3
- package/dist/core/modules/navigation.d.ts.map +1 -1
- package/dist/core/modules/navigation.js +3 -3
- package/dist/core/modules/navigation.js.map +1 -1
- package/dist/core/modules/payment.d.ts +39 -0
- package/dist/core/modules/payment.d.ts.map +1 -0
- package/dist/core/modules/payment.js +25 -0
- package/dist/core/modules/payment.js.map +1 -0
- package/dist/core/modules/permissions.d.ts +28 -0
- package/dist/core/modules/permissions.d.ts.map +1 -0
- package/dist/core/modules/permissions.js +31 -0
- package/dist/core/modules/permissions.js.map +1 -0
- package/dist/core/modules/phone.d.ts +22 -0
- package/dist/core/modules/phone.d.ts.map +1 -0
- package/dist/core/modules/phone.js +31 -0
- package/dist/core/modules/phone.js.map +1 -0
- package/dist/core/modules/storage.d.ts +88 -4
- package/dist/core/modules/storage.d.ts.map +1 -1
- package/dist/core/modules/storage.js +78 -13
- package/dist/core/modules/storage.js.map +1 -1
- package/dist/core/modules/system.d.ts +67 -0
- package/dist/core/modules/system.d.ts.map +1 -0
- package/dist/core/modules/system.js +55 -0
- package/dist/core/modules/system.js.map +1 -0
- package/dist/core/modules/ui.d.ts +40 -9
- package/dist/core/modules/ui.d.ts.map +1 -1
- package/dist/core/modules/ui.js +45 -11
- package/dist/core/modules/ui.js.map +1 -1
- package/dist/core/modules/user.d.ts +18 -0
- package/dist/core/modules/user.d.ts.map +1 -0
- package/dist/core/modules/user.js +19 -0
- package/dist/core/modules/user.js.map +1 -0
- package/dist/core/modules/utility.d.ts +23 -0
- package/dist/core/modules/utility.d.ts.map +1 -0
- package/dist/core/modules/utility.js +19 -0
- package/dist/core/modules/utility.js.map +1 -0
- package/dist/core/types/index.d.ts +66 -8
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/mock/index.d.ts +0 -6
- package/dist/mock/index.d.ts.map +1 -1
- package/dist/mock/index.js +0 -6
- package/dist/mock/index.js.map +1 -1
- package/dist/mock/mock-engine.d.ts +6 -25
- package/dist/mock/mock-engine.d.ts.map +1 -1
- package/dist/mock/mock-engine.js +8 -325
- package/dist/mock/mock-engine.js.map +1 -1
- package/dist/mock/presets.d.ts +2 -2
- package/dist/mock/presets.d.ts.map +1 -1
- package/dist/mock/presets.js +2 -42
- package/dist/mock/presets.js.map +1 -1
- package/dist/mock/store.d.ts +2 -33
- package/dist/mock/store.d.ts.map +1 -1
- package/dist/mock/store.js +2 -130
- package/dist/mock/store.js.map +1 -1
- package/dist/transport/adaptive-transport.d.ts +2 -0
- package/dist/transport/adaptive-transport.d.ts.map +1 -1
- package/dist/transport/adaptive-transport.js +11 -3
- package/dist/transport/adaptive-transport.js.map +1 -1
- package/dist/transport/bridge-hub.d.ts +46 -0
- package/dist/transport/bridge-hub.d.ts.map +1 -0
- package/dist/transport/bridge-hub.js +268 -0
- package/dist/transport/bridge-hub.js.map +1 -0
- package/dist/transport/index.d.ts +1 -0
- package/dist/transport/index.d.ts.map +1 -1
- package/dist/transport/index.js +1 -0
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/mock-transport.d.ts +2 -0
- package/dist/transport/mock-transport.d.ts.map +1 -1
- package/dist/transport/mock-transport.js +6 -0
- package/dist/transport/mock-transport.js.map +1 -1
- package/dist/transport/native-transport.d.ts +7 -6
- package/dist/transport/native-transport.d.ts.map +1 -1
- package/dist/transport/native-transport.js +49 -122
- package/dist/transport/native-transport.js.map +1 -1
- package/dist/transport/postmessage-transport.d.ts +9 -1
- package/dist/transport/postmessage-transport.d.ts.map +1 -1
- package/dist/transport/postmessage-transport.js +216 -14
- package/dist/transport/postmessage-transport.js.map +1 -1
- package/dist/transport/timeout-policy.d.ts +5 -0
- package/dist/transport/timeout-policy.d.ts.map +1 -0
- package/dist/transport/timeout-policy.js +21 -0
- package/dist/transport/timeout-policy.js.map +1 -0
- package/dist/transport/transport.interface.d.ts +2 -0
- package/dist/transport/transport.interface.d.ts.map +1 -1
- package/dist/transport/types.d.ts +4 -1
- package/dist/transport/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/simulator-dist/assets/index-DkSKbR3O.js +120 -0
- package/simulator-dist/index.html +1 -1
- package/dist/mock/handlers/auth.handler.d.ts +0 -24
- package/dist/mock/handlers/auth.handler.d.ts.map +0 -1
- package/dist/mock/handlers/auth.handler.js +0 -106
- package/dist/mock/handlers/auth.handler.js.map +0 -1
- package/dist/mock/handlers/device.handler.d.ts +0 -16
- package/dist/mock/handlers/device.handler.d.ts.map +0 -1
- package/dist/mock/handlers/device.handler.js +0 -53
- package/dist/mock/handlers/device.handler.js.map +0 -1
- package/dist/mock/handlers/media.handler.d.ts +0 -9
- package/dist/mock/handlers/media.handler.d.ts.map +0 -1
- package/dist/mock/handlers/media.handler.js +0 -20
- package/dist/mock/handlers/media.handler.js.map +0 -1
- package/dist/mock/handlers/payment.handler.d.ts +0 -27
- package/dist/mock/handlers/payment.handler.d.ts.map +0 -1
- package/dist/mock/handlers/payment.handler.js +0 -62
- package/dist/mock/handlers/payment.handler.js.map +0 -1
- package/dist/mock/handlers/storage.handler.d.ts +0 -18
- package/dist/mock/handlers/storage.handler.d.ts.map +0 -1
- package/dist/mock/handlers/storage.handler.js +0 -40
- package/dist/mock/handlers/storage.handler.js.map +0 -1
- package/dist/mock/handlers/ui.handler.d.ts +0 -34
- package/dist/mock/handlers/ui.handler.d.ts.map +0 -1
- package/dist/mock/handlers/ui.handler.js +0 -59
- package/dist/mock/handlers/ui.handler.js.map +0 -1
- package/simulator-dist/assets/index-DpHZwm7N.js +0 -199
|
@@ -1,8 +1,58 @@
|
|
|
1
1
|
import { ITransport } from '../../transport/index.js';
|
|
2
|
-
import { AccessTokenResult, AuthLoginOptions, AuthLoginResult, UserProfile } from '../types/index.js';
|
|
2
|
+
import { BiometricStatus, BiometricAuthOptions, BiometricAuthResult, AccessTokenResult, AuthLoginOptions, AuthLoginResult, MiniAppTokenResult, UserProfile } from '../types/index.js';
|
|
3
|
+
export interface PkceEntry {
|
|
4
|
+
verifier: string;
|
|
5
|
+
createdAt: number;
|
|
6
|
+
expiresAt: number;
|
|
7
|
+
timer?: any;
|
|
8
|
+
}
|
|
9
|
+
export interface PkceStoreConfig {
|
|
10
|
+
defaultTtlMs?: number;
|
|
11
|
+
maxPendingSessions?: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* PkceVerifierStore enforces lifecycle constraints on generated PKCE code verifiers:
|
|
15
|
+
* 1. Time-To-Live (TTL): Automatically evicts and cleans up timers after expiry (default: 5 minutes).
|
|
16
|
+
* 2. Capacity bounds: Caps pending verifier sessions (default: max 20) with FIFO eviction of oldest entries.
|
|
17
|
+
* 3. Single-use consumption: Retrieving a verifier immediately burns it from the store.
|
|
18
|
+
* 4. Explicit teardown: Cleans up all pending verifiers on logout, error, or SDK destruction.
|
|
19
|
+
*/
|
|
20
|
+
export declare class PkceVerifierStore {
|
|
21
|
+
private entries;
|
|
22
|
+
private defaultTtlMs;
|
|
23
|
+
private maxPendingSessions;
|
|
24
|
+
constructor(config?: PkceStoreConfig);
|
|
25
|
+
set(authCode: string, verifier: string, ttlMs?: number): void;
|
|
26
|
+
get(authCode: string): string | undefined;
|
|
27
|
+
consume(authCode: string): string | undefined;
|
|
28
|
+
delete(authCode: string): boolean;
|
|
29
|
+
has(authCode: string): boolean;
|
|
30
|
+
size(): number;
|
|
31
|
+
clear(): void;
|
|
32
|
+
private cleanExpired;
|
|
33
|
+
private getOldestKey;
|
|
34
|
+
}
|
|
35
|
+
export declare const pkceStore: PkceVerifierStore;
|
|
3
36
|
export declare class AuthModule {
|
|
4
37
|
private transport;
|
|
5
38
|
constructor(transport: ITransport);
|
|
39
|
+
/** Kiểm tra hỗ trợ phần cứng và sinh trắc học đã thiết lập/được phép dùng. */
|
|
40
|
+
checkBiometrics(): Promise<BiometricStatus>;
|
|
41
|
+
/** Xác thực cục bộ bằng sinh trắc học; yêu cầu phiên SuperApp đang đăng nhập. */
|
|
42
|
+
authenticateBiometric(options?: BiometricAuthOptions): Promise<BiometricAuthResult>;
|
|
43
|
+
requestCode(options?: {
|
|
44
|
+
codeChallenge?: string;
|
|
45
|
+
scopes?: string[];
|
|
46
|
+
}): Promise<{
|
|
47
|
+
authCode: string;
|
|
48
|
+
expiresIn: number;
|
|
49
|
+
appId: string;
|
|
50
|
+
scopes: string[];
|
|
51
|
+
}>;
|
|
52
|
+
exchangeCode(options: {
|
|
53
|
+
authCode: string;
|
|
54
|
+
codeVerifier?: string;
|
|
55
|
+
}): Promise<MiniAppTokenResult>;
|
|
6
56
|
/**
|
|
7
57
|
* Yêu cầu người dùng đăng nhập & cấp quyền truy cập
|
|
8
58
|
*/
|
|
@@ -20,11 +70,21 @@ export declare class AuthModule {
|
|
|
20
70
|
*/
|
|
21
71
|
refreshToken(refreshToken?: string): Promise<AccessTokenResult>;
|
|
22
72
|
/**
|
|
23
|
-
* Đăng xuất phiên làm việc hiện tại
|
|
73
|
+
* Đăng xuất phiên làm việc hiện tại và hủy toàn bộ phiên PKCE đang chờ
|
|
24
74
|
*/
|
|
25
75
|
logout(): Promise<{
|
|
26
|
-
|
|
27
|
-
|
|
76
|
+
status: string;
|
|
77
|
+
timestamp: string;
|
|
28
78
|
}>;
|
|
79
|
+
destroy(): void;
|
|
80
|
+
dispose(): void;
|
|
81
|
+
}
|
|
82
|
+
export declare class AuthBackend {
|
|
83
|
+
private transport;
|
|
84
|
+
constructor(transport: ITransport);
|
|
85
|
+
exchangeCode(authCode: string): Promise<MiniAppTokenResult>;
|
|
86
|
+
refreshToken(refreshToken: string): Promise<MiniAppTokenResult>;
|
|
87
|
+
destroy(): void;
|
|
88
|
+
dispose(): void;
|
|
29
89
|
}
|
|
30
90
|
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/core/modules/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/core/modules/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PkceVerifierStore enforces lifecycle constraints on generated PKCE code verifiers:
|
|
3
|
+
* 1. Time-To-Live (TTL): Automatically evicts and cleans up timers after expiry (default: 5 minutes).
|
|
4
|
+
* 2. Capacity bounds: Caps pending verifier sessions (default: max 20) with FIFO eviction of oldest entries.
|
|
5
|
+
* 3. Single-use consumption: Retrieving a verifier immediately burns it from the store.
|
|
6
|
+
* 4. Explicit teardown: Cleans up all pending verifiers on logout, error, or SDK destruction.
|
|
7
|
+
*/
|
|
8
|
+
export class PkceVerifierStore {
|
|
9
|
+
entries = new Map();
|
|
10
|
+
defaultTtlMs;
|
|
11
|
+
maxPendingSessions;
|
|
12
|
+
constructor(config = {}) {
|
|
13
|
+
this.defaultTtlMs = config.defaultTtlMs ?? 5 * 60 * 1000; // 5 minutes default
|
|
14
|
+
this.maxPendingSessions = config.maxPendingSessions ?? 20; // max 20 pending requests
|
|
15
|
+
}
|
|
16
|
+
set(authCode, verifier, ttlMs) {
|
|
17
|
+
if (!authCode || !verifier)
|
|
18
|
+
return;
|
|
19
|
+
this.cleanExpired();
|
|
20
|
+
// Enforce capacity bounds: evict oldest entry if limit reached
|
|
21
|
+
if (this.entries.size >= this.maxPendingSessions) {
|
|
22
|
+
const oldestKey = this.getOldestKey();
|
|
23
|
+
if (oldestKey) {
|
|
24
|
+
this.delete(oldestKey);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const effectiveTtl = ttlMs && ttlMs > 0 ? ttlMs : this.defaultTtlMs;
|
|
28
|
+
const now = Date.now();
|
|
29
|
+
const expiresAt = now + effectiveTtl;
|
|
30
|
+
const timer = setTimeout(() => {
|
|
31
|
+
this.delete(authCode);
|
|
32
|
+
}, effectiveTtl);
|
|
33
|
+
if (timer && typeof timer === 'object' && typeof timer.unref === 'function') {
|
|
34
|
+
timer.unref();
|
|
35
|
+
}
|
|
36
|
+
this.entries.set(authCode, {
|
|
37
|
+
verifier,
|
|
38
|
+
createdAt: now,
|
|
39
|
+
expiresAt,
|
|
40
|
+
timer,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
get(authCode) {
|
|
44
|
+
const entry = this.entries.get(authCode);
|
|
45
|
+
if (!entry)
|
|
46
|
+
return undefined;
|
|
47
|
+
if (Date.now() > entry.expiresAt) {
|
|
48
|
+
this.delete(authCode);
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
return entry.verifier;
|
|
52
|
+
}
|
|
53
|
+
consume(authCode) {
|
|
54
|
+
const entry = this.entries.get(authCode);
|
|
55
|
+
if (!entry)
|
|
56
|
+
return undefined;
|
|
57
|
+
this.delete(authCode);
|
|
58
|
+
if (Date.now() > entry.expiresAt) {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
return entry.verifier;
|
|
62
|
+
}
|
|
63
|
+
delete(authCode) {
|
|
64
|
+
const entry = this.entries.get(authCode);
|
|
65
|
+
if (!entry)
|
|
66
|
+
return false;
|
|
67
|
+
if (entry.timer) {
|
|
68
|
+
clearTimeout(entry.timer);
|
|
69
|
+
}
|
|
70
|
+
return this.entries.delete(authCode);
|
|
71
|
+
}
|
|
72
|
+
has(authCode) {
|
|
73
|
+
const entry = this.entries.get(authCode);
|
|
74
|
+
if (!entry)
|
|
75
|
+
return false;
|
|
76
|
+
if (Date.now() > entry.expiresAt) {
|
|
77
|
+
this.delete(authCode);
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
size() {
|
|
83
|
+
this.cleanExpired();
|
|
84
|
+
return this.entries.size;
|
|
85
|
+
}
|
|
86
|
+
clear() {
|
|
87
|
+
for (const entry of this.entries.values()) {
|
|
88
|
+
if (entry.timer) {
|
|
89
|
+
clearTimeout(entry.timer);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
this.entries.clear();
|
|
93
|
+
}
|
|
94
|
+
cleanExpired() {
|
|
95
|
+
const now = Date.now();
|
|
96
|
+
for (const [key, entry] of this.entries.entries()) {
|
|
97
|
+
if (now > entry.expiresAt) {
|
|
98
|
+
if (entry.timer)
|
|
99
|
+
clearTimeout(entry.timer);
|
|
100
|
+
this.entries.delete(key);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
getOldestKey() {
|
|
105
|
+
let oldestKey;
|
|
106
|
+
let oldestTime = Infinity;
|
|
107
|
+
for (const [key, entry] of this.entries.entries()) {
|
|
108
|
+
if (entry.createdAt < oldestTime) {
|
|
109
|
+
oldestTime = entry.createdAt;
|
|
110
|
+
oldestKey = key;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return oldestKey;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
export const pkceStore = new PkceVerifierStore();
|
|
117
|
+
function url64(bytes) {
|
|
118
|
+
return btoa(String.fromCharCode(...bytes)).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
|
|
119
|
+
}
|
|
1
120
|
export class AuthModule {
|
|
2
121
|
transport;
|
|
3
122
|
constructor(transport) {
|
|
4
123
|
this.transport = transport;
|
|
5
124
|
}
|
|
125
|
+
/** Kiểm tra hỗ trợ phần cứng và sinh trắc học đã thiết lập/được phép dùng. */
|
|
126
|
+
checkBiometrics() {
|
|
127
|
+
return this.transport.invoke('auth.checkBiometrics');
|
|
128
|
+
}
|
|
129
|
+
/** Xác thực cục bộ bằng sinh trắc học; yêu cầu phiên SuperApp đang đăng nhập. */
|
|
130
|
+
authenticateBiometric(options = {}) {
|
|
131
|
+
return this.transport.invoke('auth.authenticateBiometric', options);
|
|
132
|
+
}
|
|
133
|
+
async requestCode(options = {}) {
|
|
134
|
+
let challenge = options.codeChallenge;
|
|
135
|
+
if (!challenge) {
|
|
136
|
+
const verifier = url64(crypto.getRandomValues(new Uint8Array(32)));
|
|
137
|
+
challenge = url64(new Uint8Array(await crypto.subtle.digest('SHA-256', new TextEncoder().encode(verifier))));
|
|
138
|
+
const result = await this.transport.invoke('auth.requestCode', { codeChallenge: challenge, codeChallengeMethod: 'S256', scopes: options.scopes || ['user.getBasicInfo'] });
|
|
139
|
+
const ttlMs = result.expiresIn && result.expiresIn > 0 && result.expiresIn <= 3600
|
|
140
|
+
? result.expiresIn * 1000
|
|
141
|
+
: undefined;
|
|
142
|
+
pkceStore.set(result.authCode, verifier, ttlMs);
|
|
143
|
+
return result;
|
|
144
|
+
}
|
|
145
|
+
return this.transport.invoke('auth.requestCode', {
|
|
146
|
+
...options,
|
|
147
|
+
codeChallenge: challenge,
|
|
148
|
+
codeChallengeMethod: 'S256',
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
async exchangeCode(options) {
|
|
152
|
+
const codeVerifier = options.codeVerifier || pkceStore.consume(options.authCode);
|
|
153
|
+
if (!codeVerifier) {
|
|
154
|
+
throw { code: 'INVALID_PARAMS', message: 'Request a PKCE auth code first or provide codeVerifier' };
|
|
155
|
+
}
|
|
156
|
+
try {
|
|
157
|
+
const result = await this.transport.invoke('auth.exchangeCode', {
|
|
158
|
+
authCode: options.authCode,
|
|
159
|
+
codeVerifier,
|
|
160
|
+
});
|
|
161
|
+
return result;
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
pkceStore.delete(options.authCode);
|
|
165
|
+
throw error;
|
|
166
|
+
}
|
|
167
|
+
finally {
|
|
168
|
+
pkceStore.delete(options.authCode);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
6
171
|
/**
|
|
7
172
|
* Yêu cầu người dùng đăng nhập & cấp quyền truy cập
|
|
8
173
|
*/
|
|
@@ -28,10 +193,48 @@ export class AuthModule {
|
|
|
28
193
|
return this.transport.invoke('auth.refreshToken', { refreshToken });
|
|
29
194
|
}
|
|
30
195
|
/**
|
|
31
|
-
* Đăng xuất phiên làm việc hiện tại
|
|
196
|
+
* Đăng xuất phiên làm việc hiện tại và hủy toàn bộ phiên PKCE đang chờ
|
|
32
197
|
*/
|
|
33
198
|
async logout() {
|
|
34
|
-
|
|
199
|
+
try {
|
|
200
|
+
return await this.transport.invoke('auth.logout');
|
|
201
|
+
}
|
|
202
|
+
finally {
|
|
203
|
+
pkceStore.clear();
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
destroy() {
|
|
207
|
+
pkceStore.clear();
|
|
208
|
+
}
|
|
209
|
+
dispose() {
|
|
210
|
+
this.destroy();
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
export class AuthBackend {
|
|
214
|
+
transport;
|
|
215
|
+
constructor(transport) {
|
|
216
|
+
this.transport = transport;
|
|
217
|
+
}
|
|
218
|
+
async exchangeCode(authCode) {
|
|
219
|
+
const codeVerifier = pkceStore.consume(authCode);
|
|
220
|
+
if (!codeVerifier)
|
|
221
|
+
throw { code: 'INVALID_PARAMS', message: 'Request a PKCE auth code first' };
|
|
222
|
+
try {
|
|
223
|
+
const result = await this.transport.invoke('auth.exchangeCode', { authCode, codeVerifier });
|
|
224
|
+
return result;
|
|
225
|
+
}
|
|
226
|
+
finally {
|
|
227
|
+
pkceStore.delete(authCode);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
refreshToken(refreshToken) {
|
|
231
|
+
return this.transport.invoke('auth.refreshToken', { refreshToken });
|
|
232
|
+
}
|
|
233
|
+
destroy() {
|
|
234
|
+
pkceStore.clear();
|
|
235
|
+
}
|
|
236
|
+
dispose() {
|
|
237
|
+
this.destroy();
|
|
35
238
|
}
|
|
36
239
|
}
|
|
37
240
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/core/modules/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/core/modules/auth.ts"],"names":[],"mappings":"AAeA;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IACpB,OAAO,GAA2B,IAAI,GAAG,EAAE,CAAC;IAC5C,YAAY,CAAS;IACrB,kBAAkB,CAAS;IAEnC,YAAY,SAA0B,EAAE;QACtC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,oBAAoB;QAC9E,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,0BAA0B;IACvF,CAAC;IAEM,GAAG,CAAC,QAAgB,EAAE,QAAgB,EAAE,KAAc;QAC3D,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEnC,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,+DAA+D;QAC/D,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACtC,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,GAAG,GAAG,YAAY,CAAC;QAErC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC,EAAE,YAAY,CAAC,CAAC;QAEjB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAQ,KAAa,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACpF,KAAa,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;YACzB,QAAQ;YACR,SAAS,EAAE,GAAG;YACd,SAAS;YACT,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAEM,GAAG,CAAC,QAAgB;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IAEM,OAAO,CAAC,QAAgB;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEtB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IAEM,MAAM,CAAC,QAAgB;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAEzB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAEM,GAAG,CAAC,QAAgB;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAEzB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,IAAI;QACT,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAEM,KAAK;QACV,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAEO,YAAY;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC1B,IAAI,KAAK,CAAC,KAAK;oBAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC3C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,SAA6B,CAAC;QAClC,IAAI,UAAU,GAAG,QAAQ,CAAC;QAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,IAAI,KAAK,CAAC,SAAS,GAAG,UAAU,EAAE,CAAC;gBACjC,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC;gBAC7B,SAAS,GAAG,GAAG,CAAC;YAClB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAEjD,SAAS,KAAK,CAAC,KAAiB;IAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACxG,CAAC;AAED,MAAM,OAAO,UAAU;IACD;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;IAE7C,8EAA8E;IACvE,eAAe;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAkB,sBAAsB,CAAC,CAAC;IACxE,CAAC;IAED,iFAAiF;IAC1E,qBAAqB,CAAC,UAAgC,EAAE;QAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAsB,4BAA4B,EAAE,OAAO,CAAC,CAAC;IAC3F,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,UAAyD,EAAE;QAMlF,IAAI,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;QACtC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnE,SAAS,GAAG,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7G,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CACxC,kBAAkB,EAClB,EAAE,aAAa,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAC3G,CAAC;YAEF,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI;gBAChF,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI;gBACzB,CAAC,CAAC,SAAS,CAAC;YAEd,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAChD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,EAAE;YAC/C,GAAG,OAAO;YACV,aAAa,EAAE,SAAS;YACxB,mBAAmB,EAAE,MAAM;SAC5B,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,OAAoD;QAC5E,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,wDAAwD,EAAE,CAAC;QACtG,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAqB,mBAAmB,EAAE;gBAClF,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,YAAY;aACb,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnC,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;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,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAwC,aAAa,CAAC,CAAC;QAC3F,CAAC;gBAAS,CAAC;YACT,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAEM,OAAO;QACZ,SAAS,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;CACF;AAED,MAAM,OAAO,WAAW;IACF;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;IAEtC,KAAK,CAAC,YAAY,CAAC,QAAgB;QACxC,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY;YAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;QAC/F,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAqB,mBAAmB,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;YAChH,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAEM,YAAY,CAAC,YAAoB;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IACtE,CAAC;IAEM,OAAO;QACZ,SAAS,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ITransport } from '../../transport/index.js';
|
|
2
|
+
export declare class DebugModule {
|
|
3
|
+
private transport;
|
|
4
|
+
constructor(transport: ITransport);
|
|
5
|
+
/**
|
|
6
|
+
* Kiểm tra phản hồi echo từ SuperApp Bridge
|
|
7
|
+
*/
|
|
8
|
+
echo(payload: any): Promise<any>;
|
|
9
|
+
/**
|
|
10
|
+
* Giả lập lỗi native để kiểm tra xử lý ngoại lệ
|
|
11
|
+
*/
|
|
12
|
+
simulateFailure(type: string): Promise<any>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=debug.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../src/core/modules/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,qBAAa,WAAW;IACV,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;IAEzC;;OAEG;IACU,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7C;;OAEG;IACU,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAGzD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export class DebugModule {
|
|
2
|
+
transport;
|
|
3
|
+
constructor(transport) {
|
|
4
|
+
this.transport = transport;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Kiểm tra phản hồi echo từ SuperApp Bridge
|
|
8
|
+
*/
|
|
9
|
+
async echo(payload) {
|
|
10
|
+
return this.transport.invoke('debug.echo', payload);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Giả lập lỗi native để kiểm tra xử lý ngoại lệ
|
|
14
|
+
*/
|
|
15
|
+
async simulateFailure(type) {
|
|
16
|
+
return this.transport.invoke('debug.simulateFailure', { type });
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=debug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/core/modules/debug.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IACF;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;IAE7C;;OAEG;IACI,KAAK,CAAC,IAAI,CAAC,OAAY;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,eAAe,CAAC,IAAY;QACvC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;CACF"}
|
|
@@ -3,6 +3,9 @@ import { BatteryInfo, DeviceInfo, KeepScreenOptions, NetworkInfo } from '../type
|
|
|
3
3
|
export declare class DeviceModule {
|
|
4
4
|
private transport;
|
|
5
5
|
constructor(transport: ITransport);
|
|
6
|
+
getContacts(options?: {
|
|
7
|
+
query?: string;
|
|
8
|
+
}): Promise<import('../types/index.js').ContactsResult>;
|
|
6
9
|
/**
|
|
7
10
|
* Lấy mức pin và trạng thái sạc
|
|
8
11
|
*/
|
|
@@ -22,7 +25,7 @@ export declare class DeviceModule {
|
|
|
22
25
|
/**
|
|
23
26
|
* Kích hoạt rung phản hồi xúc giác (Haptic Feedback)
|
|
24
27
|
*/
|
|
25
|
-
vibrate(style?: 'light' | 'medium' | 'heavy'): Promise<
|
|
28
|
+
vibrate(style?: 'light' | 'medium' | 'heavy'): Promise<any>;
|
|
26
29
|
/**
|
|
27
30
|
* Giữ màn hình luôn bật / luôn sáng
|
|
28
31
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/core/modules/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE5F,qBAAa,YAAY;IACX,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/core/modules/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE5F,qBAAa,YAAY;IACX,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;IAClC,WAAW,CAAC,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,OAAO,mBAAmB,EAAE,cAAc,CAAC;IAIzG;;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,GAAG,CAAC;IAIjF;;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"}
|
|
@@ -3,6 +3,9 @@ export class DeviceModule {
|
|
|
3
3
|
constructor(transport) {
|
|
4
4
|
this.transport = transport;
|
|
5
5
|
}
|
|
6
|
+
getContacts(options = {}) {
|
|
7
|
+
return this.transport.invoke('getContacts', options);
|
|
8
|
+
}
|
|
6
9
|
/**
|
|
7
10
|
* Lấy mức pin và trạng thái sạc
|
|
8
11
|
*/
|
|
@@ -31,7 +34,7 @@ export class DeviceModule {
|
|
|
31
34
|
* Kích hoạt rung phản hồi xúc giác (Haptic Feedback)
|
|
32
35
|
*/
|
|
33
36
|
async vibrate(style = 'light') {
|
|
34
|
-
|
|
37
|
+
return this.transport.invoke('device.vibrate', { style });
|
|
35
38
|
}
|
|
36
39
|
/**
|
|
37
40
|
* Giữ màn hình luôn bật / luôn sáng
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../../src/core/modules/device.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,YAAY;IACH;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../../src/core/modules/device.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,YAAY;IACH;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;IACtC,WAAW,CAAC,UAA8B,EAAE;QACjD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACvD,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,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,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,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,38 @@
|
|
|
1
|
+
import { ITransport } from '../../transport/index.js';
|
|
2
|
+
export declare class FileModule {
|
|
3
|
+
private transport;
|
|
4
|
+
constructor(transport: ITransport);
|
|
5
|
+
/**
|
|
6
|
+
* Lưu tệp tin vào bộ nhớ ứng dụng
|
|
7
|
+
*/
|
|
8
|
+
saveFile(options: {
|
|
9
|
+
data: string;
|
|
10
|
+
fileName: string;
|
|
11
|
+
mimeType?: string;
|
|
12
|
+
}): Promise<{
|
|
13
|
+
success: boolean;
|
|
14
|
+
filePath: string;
|
|
15
|
+
}>;
|
|
16
|
+
/**
|
|
17
|
+
* Chọn tệp từ máy (PDF, Docx, Image...)
|
|
18
|
+
*/
|
|
19
|
+
pickFile(options?: {
|
|
20
|
+
allowedExtensions?: string[];
|
|
21
|
+
mimeTypes?: string[];
|
|
22
|
+
}): Promise<{
|
|
23
|
+
name: string;
|
|
24
|
+
size: number;
|
|
25
|
+
uri: string;
|
|
26
|
+
mimeType?: string;
|
|
27
|
+
}>;
|
|
28
|
+
/**
|
|
29
|
+
* Xem trước tệp tài liệu bằng trình đọc native
|
|
30
|
+
*/
|
|
31
|
+
filePreview(options: {
|
|
32
|
+
filePath: string;
|
|
33
|
+
title?: string;
|
|
34
|
+
}): Promise<{
|
|
35
|
+
success: boolean;
|
|
36
|
+
}>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/core/modules/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,qBAAa,UAAU;IACT,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;IAEzC;;OAEG;IACU,QAAQ,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAC7F,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAIF;;OAEG;IACU,QAAQ,CAAC,OAAO,GAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KAAO,GAAG,OAAO,CAAC;QACnG,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAIF;;OAEG;IACU,WAAW,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CAGvG"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export class FileModule {
|
|
2
|
+
transport;
|
|
3
|
+
constructor(transport) {
|
|
4
|
+
this.transport = transport;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Lưu tệp tin vào bộ nhớ ứng dụng
|
|
8
|
+
*/
|
|
9
|
+
async saveFile(options) {
|
|
10
|
+
return this.transport.invoke('saveFile', options);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Chọn tệp từ máy (PDF, Docx, Image...)
|
|
14
|
+
*/
|
|
15
|
+
async pickFile(options = {}) {
|
|
16
|
+
return this.transport.invoke('pickFile', options);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Xem trước tệp tài liệu bằng trình đọc native
|
|
20
|
+
*/
|
|
21
|
+
async filePreview(options) {
|
|
22
|
+
return this.transport.invoke('filePreview', options);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/core/modules/file.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,UAAU;IACD;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;IAE7C;;OAEG;IACI,KAAK,CAAC,QAAQ,CAAC,OAA8D;QAIlF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ,CAAC,UAAkE,EAAE;QAMxF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,WAAW,CAAC,OAA6C;QACpE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;CACF"}
|
|
@@ -3,6 +3,18 @@ export type LifecycleListener = (data?: any) => void;
|
|
|
3
3
|
export declare class LifecycleModule {
|
|
4
4
|
private transport;
|
|
5
5
|
constructor(transport: ITransport);
|
|
6
|
+
/**
|
|
7
|
+
* Đăng ký lắng nghe sự kiện bất kỳ từ SuperApp
|
|
8
|
+
*/
|
|
9
|
+
on(event: string, callback: (payload: any) => void): () => void;
|
|
10
|
+
/**
|
|
11
|
+
* Huỷ lắng nghe sự kiện
|
|
12
|
+
*/
|
|
13
|
+
off(event: string, callback: (payload: any) => void): void;
|
|
14
|
+
/**
|
|
15
|
+
* Phát sự kiện trong Mini App
|
|
16
|
+
*/
|
|
17
|
+
emit(event: string, payload: any): void;
|
|
6
18
|
/**
|
|
7
19
|
* Đăng ký lắng nghe sự kiện khi Mini App hiển thị ra màn hình chính (Foreground)
|
|
8
20
|
*/
|
|
@@ -15,5 +27,16 @@ export declare class LifecycleModule {
|
|
|
15
27
|
* Đăng ký lắng nghe lỗi hệ thống
|
|
16
28
|
*/
|
|
17
29
|
onError(callback: LifecycleListener): () => void;
|
|
30
|
+
/**
|
|
31
|
+
* Lắng nghe sự kiện thay đổi phiên đăng nhập (login / logout)
|
|
32
|
+
*/
|
|
33
|
+
onSessionChanged(callback: (payload: {
|
|
34
|
+
state: 'logged_in' | 'logged_out';
|
|
35
|
+
userId?: string;
|
|
36
|
+
}) => void): () => void;
|
|
37
|
+
/**
|
|
38
|
+
* Lắng nghe trạng thái thanh toán đơn hàng cập nhật
|
|
39
|
+
*/
|
|
40
|
+
onPaymentStatusChanged(callback: (payload: any) => void): () => void;
|
|
18
41
|
}
|
|
19
42
|
//# sourceMappingURL=lifecycle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/core/modules/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,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;
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/core/modules/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,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,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,MAAM,IAAI;IAItE;;OAEG;IACI,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAIjE;;OAEG;IACI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;IAI9C;;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;IAIvD;;OAEG;IACI,gBAAgB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,WAAW,GAAG,YAAY,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAIxH;;OAEG;IACI,sBAAsB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,MAAM,IAAI;CAG5E"}
|
|
@@ -3,6 +3,24 @@ export class LifecycleModule {
|
|
|
3
3
|
constructor(transport) {
|
|
4
4
|
this.transport = transport;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* Đăng ký lắng nghe sự kiện bất kỳ từ SuperApp
|
|
8
|
+
*/
|
|
9
|
+
on(event, callback) {
|
|
10
|
+
return this.transport.on(event, callback);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Huỷ lắng nghe sự kiện
|
|
14
|
+
*/
|
|
15
|
+
off(event, callback) {
|
|
16
|
+
this.transport.off(event, callback);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Phát sự kiện trong Mini App
|
|
20
|
+
*/
|
|
21
|
+
emit(event, payload) {
|
|
22
|
+
this.transport.emit(event, payload);
|
|
23
|
+
}
|
|
6
24
|
/**
|
|
7
25
|
* Đăng ký lắng nghe sự kiện khi Mini App hiển thị ra màn hình chính (Foreground)
|
|
8
26
|
*/
|
|
@@ -21,5 +39,17 @@ export class LifecycleModule {
|
|
|
21
39
|
onError(callback) {
|
|
22
40
|
return this.transport.on('appError', callback);
|
|
23
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Lắng nghe sự kiện thay đổi phiên đăng nhập (login / logout)
|
|
44
|
+
*/
|
|
45
|
+
onSessionChanged(callback) {
|
|
46
|
+
return this.transport.on('auth.sessionChanged', callback);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Lắng nghe trạng thái thanh toán đơn hàng cập nhật
|
|
50
|
+
*/
|
|
51
|
+
onPaymentStatusChanged(callback) {
|
|
52
|
+
return this.transport.on('payment.statusChanged', callback);
|
|
53
|
+
}
|
|
24
54
|
}
|
|
25
55
|
//# sourceMappingURL=lifecycle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../src/core/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"}
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../src/core/modules/lifecycle.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,eAAe;IACN;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;IAE7C;;OAEG;IACI,EAAE,CAAC,KAAa,EAAE,QAAgC;QACvD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,KAAa,EAAE,QAAgC;QACxD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,IAAI,CAAC,KAAa,EAAE,OAAY;QACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,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,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;IAED;;OAEG;IACI,gBAAgB,CAAC,QAAmF;QACzG,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACI,sBAAsB,CAAC,QAAgC;QAC5D,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;CACF"}
|