@vqh2602/mini-app-sdk 1.0.3 → 1.0.5
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/dist/cli/index.js +1 -1
- package/dist/core/client.d.ts +3 -1
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +13 -4
- package/dist/core/client.js.map +1 -1
- package/dist/core/modules/navigation.d.ts +12 -0
- package/dist/core/modules/navigation.d.ts.map +1 -1
- package/dist/core/modules/navigation.js +18 -0
- package/dist/core/modules/navigation.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/transport/adaptive-transport.d.ts +33 -0
- package/dist/transport/adaptive-transport.d.ts.map +1 -0
- package/dist/transport/adaptive-transport.js +92 -0
- package/dist/transport/adaptive-transport.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/native-transport.d.ts.map +1 -1
- package/dist/transport/native-transport.js +62 -2
- package/dist/transport/native-transport.js.map +1 -1
- package/dist/transport/resolver.d.ts.map +1 -1
- package/dist/transport/resolver.js +3 -23
- package/dist/transport/resolver.js.map +1 -1
- package/dist/transport/types.d.ts +1 -1
- package/dist/transport/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -9,7 +9,7 @@ const program = new Command();
|
|
|
9
9
|
program
|
|
10
10
|
.name('miniapp')
|
|
11
11
|
.description('SuperApp Mini App Developer CLI: Create, Dev, Build, and Upload')
|
|
12
|
-
.version('1.0.
|
|
12
|
+
.version('1.0.5');
|
|
13
13
|
program
|
|
14
14
|
.command('create <project-name>')
|
|
15
15
|
.description('Khởi tạo một dự án Mini App mới từ mẫu chuẩn SuperApp')
|
package/dist/core/client.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { MediaModule } from './modules/media.js';
|
|
|
9
9
|
import { LifecycleModule } from './modules/lifecycle.js';
|
|
10
10
|
import { AuthLoginOptions, AuthLoginResult, ConfigAppViewOptions, KeepScreenOptions, MinimizeAppResult, NotificationResult, RequestSendNotificationOptions, SDKInitOptions, SetNavigationBarColorOptions, ToastOptions, UserProfile } from './types/index.js';
|
|
11
11
|
export declare class SuperAppSDK {
|
|
12
|
-
readonly version = "1.0.
|
|
12
|
+
readonly version = "1.0.5";
|
|
13
13
|
readonly transport: ITransport;
|
|
14
14
|
readonly mockEngine?: SDKMockEngine;
|
|
15
15
|
readonly auth: AuthModule;
|
|
@@ -26,6 +26,8 @@ export declare class SuperAppSDK {
|
|
|
26
26
|
getUserProfile(): Promise<UserProfile>;
|
|
27
27
|
showToast(options: ToastOptions | string): Promise<void>;
|
|
28
28
|
vibrate(style?: 'light' | 'medium' | 'heavy'): Promise<void>;
|
|
29
|
+
openNativePage(page: 'profile' | 'form' | string, params?: Record<string, any>): Promise<any>;
|
|
30
|
+
openMiniApp(appId: string, params?: Record<string, any>): Promise<any>;
|
|
29
31
|
closeApp(): Promise<void>;
|
|
30
32
|
minimizeApp(): Promise<MinimizeAppResult>;
|
|
31
33
|
configAppView(options: ConfigAppViewOptions): Promise<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
|
package/dist/core/client.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MockBridgeTransport, TransportResolver } from '../transport/index.js';
|
|
1
|
+
import { AdaptiveBridgeTransport, MockBridgeTransport, TransportResolver } from '../transport/index.js';
|
|
2
2
|
import { SDKMockEngine } from '../mock/index.js';
|
|
3
3
|
import { AuthModule } from './modules/auth.js';
|
|
4
4
|
import { DeviceModule } from './modules/device.js';
|
|
@@ -8,7 +8,7 @@ import { NavigationModule } from './modules/navigation.js';
|
|
|
8
8
|
import { MediaModule } from './modules/media.js';
|
|
9
9
|
import { LifecycleModule } from './modules/lifecycle.js';
|
|
10
10
|
export class SuperAppSDK {
|
|
11
|
-
version = '1.0.
|
|
11
|
+
version = '1.0.5';
|
|
12
12
|
transport;
|
|
13
13
|
mockEngine;
|
|
14
14
|
// Domain modules
|
|
@@ -38,8 +38,11 @@ export class SuperAppSDK {
|
|
|
38
38
|
forceTransport: options.forceTransport,
|
|
39
39
|
mockDispatcher,
|
|
40
40
|
});
|
|
41
|
-
// If MockBridgeTransport was created and we have mockEngine, attach
|
|
42
|
-
if (this.transport instanceof
|
|
41
|
+
// If AdaptiveBridgeTransport or MockBridgeTransport was created and we have mockEngine, attach
|
|
42
|
+
if (this.transport instanceof AdaptiveBridgeTransport && mockDispatcher) {
|
|
43
|
+
this.transport.setMockDispatcher(mockDispatcher);
|
|
44
|
+
}
|
|
45
|
+
else if (this.transport instanceof MockBridgeTransport && mockDispatcher) {
|
|
43
46
|
this.transport.setDispatcher(mockDispatcher);
|
|
44
47
|
}
|
|
45
48
|
this.auth = new AuthModule(this.transport);
|
|
@@ -63,6 +66,12 @@ export class SuperAppSDK {
|
|
|
63
66
|
vibrate(style) {
|
|
64
67
|
return this.device.vibrate(style);
|
|
65
68
|
}
|
|
69
|
+
openNativePage(page, params) {
|
|
70
|
+
return this.navigation.openNativePage(page, params);
|
|
71
|
+
}
|
|
72
|
+
openMiniApp(appId, params) {
|
|
73
|
+
return this.navigation.openMiniApp(appId, params);
|
|
74
|
+
}
|
|
66
75
|
closeApp() {
|
|
67
76
|
return this.navigation.closeApp();
|
|
68
77
|
}
|
package/dist/core/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,mBAAmB,EAAE,iBAAiB,EAAiB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,22 @@ import { MinimizeAppResult } from '../types/index.js';
|
|
|
3
3
|
export declare class NavigationModule {
|
|
4
4
|
private transport;
|
|
5
5
|
constructor(transport: ITransport);
|
|
6
|
+
/**
|
|
7
|
+
* Tự động điều hướng mở màn hình Native của SuperApp (ví dụ: 'profile', 'form')
|
|
8
|
+
*/
|
|
9
|
+
openNativePage(page: 'profile' | 'form' | string, params?: Record<string, any>): Promise<any>;
|
|
10
|
+
/**
|
|
11
|
+
* Điều hướng chuyển sang một Mini App khác trong SuperApp
|
|
12
|
+
*/
|
|
13
|
+
openMiniApp(appId: string, params?: Record<string, any>): Promise<any>;
|
|
6
14
|
/**
|
|
7
15
|
* Đóng Mini App và quay lại màn hình SuperApp chính
|
|
8
16
|
*/
|
|
9
17
|
closeApp(): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Alias cho closeApp()
|
|
20
|
+
*/
|
|
21
|
+
close(): Promise<void>;
|
|
10
22
|
/**
|
|
11
23
|
* Thu nhỏ Mini App vào dạng floating window / background dock
|
|
12
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/core/modules/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,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"}
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/core/modules/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,qBAAa,gBAAgB;IACf,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;IAEzC;;OAEG;IACU,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAI1G;;OAEG;IACU,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAInF;;OAEG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAItD;;OAEG;IACU,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGjD"}
|
|
@@ -3,12 +3,30 @@ export class NavigationModule {
|
|
|
3
3
|
constructor(transport) {
|
|
4
4
|
this.transport = transport;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* Tự động điều hướng mở màn hình Native của SuperApp (ví dụ: 'profile', 'form')
|
|
8
|
+
*/
|
|
9
|
+
async openNativePage(page, params) {
|
|
10
|
+
return this.transport.invoke('navigation.openNativePage', { page, params });
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Điều hướng chuyển sang một Mini App khác trong SuperApp
|
|
14
|
+
*/
|
|
15
|
+
async openMiniApp(appId, params) {
|
|
16
|
+
return this.transport.invoke('navigation.openMiniApp', { appId, params });
|
|
17
|
+
}
|
|
6
18
|
/**
|
|
7
19
|
* Đóng Mini App và quay lại màn hình SuperApp chính
|
|
8
20
|
*/
|
|
9
21
|
async closeApp() {
|
|
10
22
|
await this.transport.invoke('navigation.closeApp');
|
|
11
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Alias cho closeApp()
|
|
26
|
+
*/
|
|
27
|
+
async close() {
|
|
28
|
+
await this.transport.invoke('navigation.close');
|
|
29
|
+
}
|
|
12
30
|
/**
|
|
13
31
|
* Thu nhỏ Mini App vào dạng floating window / background dock
|
|
14
32
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../src/core/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"}
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../src/core/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,cAAc,CAAC,IAAiC,EAAE,MAA4B;QACzF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,2BAA2B,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,MAA4B;QAClE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAClD,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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { superApp, SuperAppSDK } from './core/index.js';
|
|
|
2
2
|
export default superApp;
|
|
3
3
|
export { superApp, SuperAppSDK };
|
|
4
4
|
export * from './core/index.js';
|
|
5
|
-
export { ITransport, NativeBridgeTransport, PostMessageTransport, MockBridgeTransport, TransportResolver, TransportType, BridgeRequest, BridgeResponse, BridgeEventListener, BridgeError, } from './transport/index.js';
|
|
5
|
+
export { ITransport, NativeBridgeTransport, PostMessageTransport, MockBridgeTransport, AdaptiveBridgeTransport, TransportResolver, TransportType, BridgeRequest, BridgeResponse, BridgeEventListener, BridgeError, } from './transport/index.js';
|
|
6
6
|
export { SDKMockEngine, MockStateStore, MOCK_USER_PRESETS, MockUserProfile, MockPaymentOrder, MockDeviceState, MockNetworkCondition, MockLogEntry, } from './mock/index.js';
|
|
7
7
|
export * as transport from './transport/index.js';
|
|
8
8
|
export * as mock from './mock/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAExD,eAAe,QAAQ,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AAGjC,cAAc,iBAAiB,CAAC;AAGhC,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,YAAY,GACb,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAExD,eAAe,QAAQ,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AAGjC,cAAc,iBAAiB,CAAC;AAGhC,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,YAAY,GACb,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ export { superApp, SuperAppSDK };
|
|
|
4
4
|
// Re-export all core modules and types
|
|
5
5
|
export * from './core/index.js';
|
|
6
6
|
// Re-export transport interfaces & classes
|
|
7
|
-
export { NativeBridgeTransport, PostMessageTransport, MockBridgeTransport, TransportResolver, } from './transport/index.js';
|
|
7
|
+
export { NativeBridgeTransport, PostMessageTransport, MockBridgeTransport, AdaptiveBridgeTransport, TransportResolver, } from './transport/index.js';
|
|
8
8
|
// Re-export mock engine classes & presets
|
|
9
9
|
export { SDKMockEngine, MockStateStore, MOCK_USER_PRESETS, } from './mock/index.js';
|
|
10
10
|
// Sub-namespaces
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAExD,eAAe,QAAQ,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AAEjC,uCAAuC;AACvC,cAAc,iBAAiB,CAAC;AAEhC,2CAA2C;AAC3C,OAAO,EAEL,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,GAMlB,MAAM,sBAAsB,CAAC;AAE9B,0CAA0C;AAC1C,OAAO,EACL,aAAa,EACb,cAAc,EACd,iBAAiB,GAMlB,MAAM,iBAAiB,CAAC;AAEzB,iBAAiB;AACjB,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAExD,eAAe,QAAQ,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AAEjC,uCAAuC;AACvC,cAAc,iBAAiB,CAAC;AAEhC,2CAA2C;AAC3C,OAAO,EAEL,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,GAMlB,MAAM,sBAAsB,CAAC;AAE9B,0CAA0C;AAC1C,OAAO,EACL,aAAa,EACb,cAAc,EACd,iBAAiB,GAMlB,MAAM,iBAAiB,CAAC;AAEzB,iBAAiB;AACjB,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ITransport } from './transport.interface.js';
|
|
2
|
+
import { MockDispatcher } from './mock-transport.js';
|
|
3
|
+
import { BridgeEventListener, TransportConfig, TransportType } from './types.js';
|
|
4
|
+
export interface AdaptiveTransportOptions extends TransportConfig {
|
|
5
|
+
mockDispatcher?: MockDispatcher;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* AdaptiveBridgeTransport automatically selects and routes requests to:
|
|
9
|
+
* 1. Native container (SuperApp Flutter WebView via window.FlutterBridge or window.SuperAppBridge)
|
|
10
|
+
* 2. Parent Simulator iframe (Browser Simulator via window.parent.postMessage)
|
|
11
|
+
* 3. Mock Bridge Transport (Local dev, test suites, or standalone browser tabs)
|
|
12
|
+
*
|
|
13
|
+
* It re-evaluates the environment dynamically so that if the native bridge
|
|
14
|
+
* becomes available after script evaluation, calls are seamlessly routed to native.
|
|
15
|
+
*/
|
|
16
|
+
export declare class AdaptiveBridgeTransport implements ITransport {
|
|
17
|
+
private nativeTransport;
|
|
18
|
+
private postmessageTransport;
|
|
19
|
+
private mockTransport;
|
|
20
|
+
private debug;
|
|
21
|
+
constructor(options?: AdaptiveTransportOptions);
|
|
22
|
+
setMockDispatcher(dispatcher: MockDispatcher): void;
|
|
23
|
+
isNativeAvailable(): boolean;
|
|
24
|
+
isSimulatorAvailable(): boolean;
|
|
25
|
+
getType(): TransportType;
|
|
26
|
+
isConnected(): boolean;
|
|
27
|
+
getActiveTransport(): ITransport;
|
|
28
|
+
invoke<T = any>(action: string, payload?: Record<string, any>, timeoutMs?: number): Promise<T>;
|
|
29
|
+
on(event: string, listener: BridgeEventListener): () => void;
|
|
30
|
+
off(event: string, listener: BridgeEventListener): void;
|
|
31
|
+
emit(event: string, payload: any): void;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=adaptive-transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adaptive-transport.d.ts","sourceRoot":"","sources":["../../src/transport/adaptive-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,OAAO,EAAuB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAsB,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAErG,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,YAAW,UAAU;IACxD,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,KAAK,CAAU;gBAEX,OAAO,GAAE,wBAA6B;IAO3C,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI;IAInD,iBAAiB,IAAI,OAAO;IAM5B,oBAAoB,IAAI,OAAO;IAK/B,OAAO,IAAI,aAAa;IAMxB,WAAW,IAAI,OAAO;IAItB,kBAAkB,IAAI,UAAU;IAU1B,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAiBxG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,MAAM,IAAI;IAW5D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAMvD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;CAG/C"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { NativeBridgeTransport } from './native-transport.js';
|
|
2
|
+
import { PostMessageTransport } from './postmessage-transport.js';
|
|
3
|
+
import { MockBridgeTransport } from './mock-transport.js';
|
|
4
|
+
/**
|
|
5
|
+
* AdaptiveBridgeTransport automatically selects and routes requests to:
|
|
6
|
+
* 1. Native container (SuperApp Flutter WebView via window.FlutterBridge or window.SuperAppBridge)
|
|
7
|
+
* 2. Parent Simulator iframe (Browser Simulator via window.parent.postMessage)
|
|
8
|
+
* 3. Mock Bridge Transport (Local dev, test suites, or standalone browser tabs)
|
|
9
|
+
*
|
|
10
|
+
* It re-evaluates the environment dynamically so that if the native bridge
|
|
11
|
+
* becomes available after script evaluation, calls are seamlessly routed to native.
|
|
12
|
+
*/
|
|
13
|
+
export class AdaptiveBridgeTransport {
|
|
14
|
+
nativeTransport;
|
|
15
|
+
postmessageTransport;
|
|
16
|
+
mockTransport;
|
|
17
|
+
debug;
|
|
18
|
+
constructor(options = {}) {
|
|
19
|
+
this.debug = options.debug ?? false;
|
|
20
|
+
this.nativeTransport = new NativeBridgeTransport(options);
|
|
21
|
+
this.postmessageTransport = new PostMessageTransport(options);
|
|
22
|
+
this.mockTransport = new MockBridgeTransport({ ...options, dispatcher: options.mockDispatcher });
|
|
23
|
+
}
|
|
24
|
+
setMockDispatcher(dispatcher) {
|
|
25
|
+
this.mockTransport.setDispatcher(dispatcher);
|
|
26
|
+
}
|
|
27
|
+
isNativeAvailable() {
|
|
28
|
+
if (typeof window === 'undefined')
|
|
29
|
+
return false;
|
|
30
|
+
const win = window;
|
|
31
|
+
return !!(win.FlutterBridge?.postMessage || win.SuperAppBridge?.postMessage);
|
|
32
|
+
}
|
|
33
|
+
isSimulatorAvailable() {
|
|
34
|
+
if (typeof window === 'undefined')
|
|
35
|
+
return false;
|
|
36
|
+
return !!(window.parent && window.parent !== window);
|
|
37
|
+
}
|
|
38
|
+
getType() {
|
|
39
|
+
if (this.isNativeAvailable())
|
|
40
|
+
return 'native';
|
|
41
|
+
if (this.isSimulatorAvailable())
|
|
42
|
+
return 'postmessage';
|
|
43
|
+
return 'mock';
|
|
44
|
+
}
|
|
45
|
+
isConnected() {
|
|
46
|
+
return this.isNativeAvailable() || this.isSimulatorAvailable() || this.mockTransport.isConnected();
|
|
47
|
+
}
|
|
48
|
+
getActiveTransport() {
|
|
49
|
+
if (this.isNativeAvailable()) {
|
|
50
|
+
return this.nativeTransport;
|
|
51
|
+
}
|
|
52
|
+
if (this.isSimulatorAvailable()) {
|
|
53
|
+
return this.postmessageTransport;
|
|
54
|
+
}
|
|
55
|
+
return this.mockTransport;
|
|
56
|
+
}
|
|
57
|
+
async invoke(action, payload = {}, timeoutMs) {
|
|
58
|
+
// If not immediately available, perform a brief micro-poll (up to 100ms)
|
|
59
|
+
// to give Flutter WebView's addJavaScriptChannel time to attach
|
|
60
|
+
if (!this.isNativeAvailable() && !this.isSimulatorAvailable() && typeof window !== 'undefined') {
|
|
61
|
+
for (let i = 0; i < 4; i++) {
|
|
62
|
+
if (this.isNativeAvailable())
|
|
63
|
+
break;
|
|
64
|
+
await new Promise((r) => setTimeout(r, 25));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const active = this.getActiveTransport();
|
|
68
|
+
if (this.debug) {
|
|
69
|
+
console.info(`[AdaptiveBridgeTransport] Routing action "${action}" to transport: [${active.getType()}]`);
|
|
70
|
+
}
|
|
71
|
+
return active.invoke(action, payload, timeoutMs);
|
|
72
|
+
}
|
|
73
|
+
on(event, listener) {
|
|
74
|
+
const unsubNative = this.nativeTransport.on(event, listener);
|
|
75
|
+
const unsubPost = this.postmessageTransport.on(event, listener);
|
|
76
|
+
const unsubMock = this.mockTransport.on(event, listener);
|
|
77
|
+
return () => {
|
|
78
|
+
unsubNative();
|
|
79
|
+
unsubPost();
|
|
80
|
+
unsubMock();
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
off(event, listener) {
|
|
84
|
+
this.nativeTransport.off(event, listener);
|
|
85
|
+
this.postmessageTransport.off(event, listener);
|
|
86
|
+
this.mockTransport.off(event, listener);
|
|
87
|
+
}
|
|
88
|
+
emit(event, payload) {
|
|
89
|
+
this.getActiveTransport().emit(event, payload);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=adaptive-transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adaptive-transport.js","sourceRoot":"","sources":["../../src/transport/adaptive-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,6 @@ export * from './transport.interface.js';
|
|
|
3
3
|
export * from './native-transport.js';
|
|
4
4
|
export * from './postmessage-transport.js';
|
|
5
5
|
export * from './mock-transport.js';
|
|
6
|
+
export * from './adaptive-transport.js';
|
|
6
7
|
export * from './resolver.js';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC"}
|
package/dist/transport/index.js
CHANGED
|
@@ -3,5 +3,6 @@ export * from './transport.interface.js';
|
|
|
3
3
|
export * from './native-transport.js';
|
|
4
4
|
export * from './postmessage-transport.js';
|
|
5
5
|
export * from './mock-transport.js';
|
|
6
|
+
export * from './adaptive-transport.js';
|
|
6
7
|
export * from './resolver.js';
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-transport.d.ts","sourceRoot":"","sources":["../../src/transport/native-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAe,mBAAmB,EAAqD,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIjJ,qBAAa,qBAAsB,YAAW,UAAU;IACtD,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,SAAS,CAAmG;IACpH,OAAO,CAAC,SAAS,CAAoD;gBAEzD,MAAM,GAAE,eAAoB;IAOjC,OAAO,IAAI,aAAa;IAIxB,WAAW,IAAI,OAAO;IAM7B,OAAO,CAAC,sBAAsB;
|
|
1
|
+
{"version":3,"file":"native-transport.d.ts","sourceRoot":"","sources":["../../src/transport/native-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAe,mBAAmB,EAAqD,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIjJ,qBAAa,qBAAsB,YAAW,UAAU;IACtD,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,SAAS,CAAmG;IACpH,OAAO,CAAC,SAAS,CAAoD;gBAEzD,MAAM,GAAE,eAAoB;IAOjC,OAAO,IAAI,aAAa;IAIxB,WAAW,IAAI,OAAO;IAM7B,OAAO,CAAC,sBAAsB;IA6D9B,OAAO,CAAC,oBAAoB;IAyBrB,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IA6ElG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,MAAM,IAAI;IAQ5D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAUvD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;CAe/C"}
|
|
@@ -18,7 +18,7 @@ export class NativeBridgeTransport {
|
|
|
18
18
|
if (typeof window === 'undefined')
|
|
19
19
|
return false;
|
|
20
20
|
const win = window;
|
|
21
|
-
return !!win.FlutterBridge?.postMessage;
|
|
21
|
+
return !!(win.FlutterBridge?.postMessage || win.SuperAppBridge?.postMessage);
|
|
22
22
|
}
|
|
23
23
|
initNativeGlobalBridge() {
|
|
24
24
|
if (typeof window === 'undefined')
|
|
@@ -47,8 +47,42 @@ export class NativeBridgeTransport {
|
|
|
47
47
|
},
|
|
48
48
|
};
|
|
49
49
|
}
|
|
50
|
+
else {
|
|
51
|
+
// win.SuperAppBridge already exists (e.g. from Flutter's bridgePolyfillScript)
|
|
52
|
+
win.SuperAppBridge._callbacks = win.SuperAppBridge._callbacks || {};
|
|
53
|
+
win.SuperAppBridge._listeners = win.SuperAppBridge._listeners || {};
|
|
54
|
+
const prevDispatch = win.SuperAppBridge.dispatchResponse;
|
|
55
|
+
win.SuperAppBridge.dispatchResponse = (res) => {
|
|
56
|
+
this.handleNativeResponse(res);
|
|
57
|
+
if (typeof prevDispatch === 'function' && prevDispatch !== win.SuperAppBridge.dispatchResponse) {
|
|
58
|
+
try {
|
|
59
|
+
prevDispatch.call(win.SuperAppBridge, res);
|
|
60
|
+
}
|
|
61
|
+
catch (_) { }
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
const prevDispatchEvent = win.SuperAppBridge.dispatchEvent;
|
|
65
|
+
win.SuperAppBridge.dispatchEvent = (evt) => {
|
|
66
|
+
this.emit(evt.event, evt.payload);
|
|
67
|
+
if (typeof prevDispatchEvent === 'function' && prevDispatchEvent !== win.SuperAppBridge.dispatchEvent) {
|
|
68
|
+
try {
|
|
69
|
+
prevDispatchEvent.call(win.SuperAppBridge, evt);
|
|
70
|
+
}
|
|
71
|
+
catch (_) { }
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
if (!win.SuperAppBridge.postMessage) {
|
|
75
|
+
win.SuperAppBridge.postMessage = (msg) => {
|
|
76
|
+
if (win.FlutterBridge?.postMessage) {
|
|
77
|
+
win.FlutterBridge.postMessage(typeof msg === 'string' ? msg : JSON.stringify(msg));
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
}
|
|
50
82
|
}
|
|
51
83
|
handleNativeResponse(res) {
|
|
84
|
+
if (!res || !res.id)
|
|
85
|
+
return;
|
|
52
86
|
if (this.debug) {
|
|
53
87
|
console.log(`[NativeBridgeTransport] Response received:`, res);
|
|
54
88
|
}
|
|
@@ -57,6 +91,12 @@ export class NativeBridgeTransport {
|
|
|
57
91
|
return;
|
|
58
92
|
clearTimeout(pending.timer);
|
|
59
93
|
this.callbacks.delete(res.id);
|
|
94
|
+
if (typeof window !== 'undefined') {
|
|
95
|
+
const win = window;
|
|
96
|
+
if (win.SuperAppBridge?._callbacks) {
|
|
97
|
+
delete win.SuperAppBridge._callbacks[res.id];
|
|
98
|
+
}
|
|
99
|
+
}
|
|
60
100
|
if (res.success) {
|
|
61
101
|
pending.resolve(res.data);
|
|
62
102
|
}
|
|
@@ -76,8 +116,15 @@ export class NativeBridgeTransport {
|
|
|
76
116
|
timestamp: Date.now(),
|
|
77
117
|
};
|
|
78
118
|
return new Promise((resolve, reject) => {
|
|
119
|
+
this.initNativeGlobalBridge();
|
|
79
120
|
const timer = setTimeout(() => {
|
|
80
121
|
this.callbacks.delete(id);
|
|
122
|
+
if (typeof window !== 'undefined') {
|
|
123
|
+
const win = window;
|
|
124
|
+
if (win.SuperAppBridge?._callbacks) {
|
|
125
|
+
delete win.SuperAppBridge._callbacks[id];
|
|
126
|
+
}
|
|
127
|
+
}
|
|
81
128
|
const timeoutError = {
|
|
82
129
|
code: 'TIMEOUT',
|
|
83
130
|
message: `Bridge call "${action}" timed out after ${timeout}ms`,
|
|
@@ -93,15 +140,28 @@ export class NativeBridgeTransport {
|
|
|
93
140
|
}
|
|
94
141
|
if (typeof window !== 'undefined') {
|
|
95
142
|
const win = window;
|
|
143
|
+
// Register callback in window.SuperAppBridge._callbacks for seamless polyfill response delivery
|
|
144
|
+
if (win.SuperAppBridge) {
|
|
145
|
+
win.SuperAppBridge._callbacks = win.SuperAppBridge._callbacks || {};
|
|
146
|
+
win.SuperAppBridge._callbacks[id] = (res) => {
|
|
147
|
+
this.handleNativeResponse(res);
|
|
148
|
+
};
|
|
149
|
+
}
|
|
96
150
|
if (win.FlutterBridge?.postMessage) {
|
|
97
151
|
win.FlutterBridge.postMessage(JSON.stringify(request));
|
|
98
152
|
}
|
|
153
|
+
else if (win.SuperAppBridge?.postMessage) {
|
|
154
|
+
win.SuperAppBridge.postMessage(request);
|
|
155
|
+
}
|
|
99
156
|
else {
|
|
100
157
|
clearTimeout(timer);
|
|
101
158
|
this.callbacks.delete(id);
|
|
159
|
+
if (win.SuperAppBridge?._callbacks) {
|
|
160
|
+
delete win.SuperAppBridge._callbacks[id];
|
|
161
|
+
}
|
|
102
162
|
reject({
|
|
103
163
|
code: 'NATIVE_NOT_AVAILABLE',
|
|
104
|
-
message: 'FlutterBridge is not installed on window object',
|
|
164
|
+
message: 'FlutterBridge or SuperAppBridge is not installed on window object',
|
|
105
165
|
});
|
|
106
166
|
}
|
|
107
167
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-transport.js","sourceRoot":"","sources":["../../src/transport/native-transport.ts"],"names":[],"mappings":"AAGA,IAAI,eAAe,GAAG,CAAC,CAAC;AAExB,MAAM,OAAO,qBAAqB;IACxB,KAAK,CAAS;IACd,gBAAgB,CAAS;IACzB,KAAK,CAAU;IACf,SAAS,GAAyF,IAAI,GAAG,EAAE,CAAC;IAC5G,SAAS,GAA0C,IAAI,GAAG,EAAE,CAAC;IAErE,YAAY,SAA0B,EAAE;QACtC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,kBAAkB,CAAC;QAChD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;QACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAEM,OAAO;QACZ,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,WAAW;QAChB,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QAChD,MAAM,GAAG,GAAG,MAAuC,CAAC;QACpD,OAAO,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"native-transport.js","sourceRoot":"","sources":["../../src/transport/native-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/transport/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,OAAO,EAAuB,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/transport/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,OAAO,EAAuB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,qBAAa,iBAAiB;WACd,OAAO,CAAC,OAAO,GAAE,wBAA6B,GAAG,UAAU;CAe1E"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { NativeBridgeTransport } from './native-transport.js';
|
|
2
2
|
import { PostMessageTransport } from './postmessage-transport.js';
|
|
3
3
|
import { MockBridgeTransport } from './mock-transport.js';
|
|
4
|
+
import { AdaptiveBridgeTransport } from './adaptive-transport.js';
|
|
4
5
|
export class TransportResolver {
|
|
5
6
|
static resolve(options = {}) {
|
|
6
7
|
// 1. Explicit override if requested
|
|
@@ -13,29 +14,8 @@ export class TransportResolver {
|
|
|
13
14
|
if (options.forceTransport === 'mock') {
|
|
14
15
|
return new MockBridgeTransport({ ...options, dispatcher: options.mockDispatcher });
|
|
15
16
|
}
|
|
16
|
-
// 2.
|
|
17
|
-
|
|
18
|
-
const win = window;
|
|
19
|
-
// Real SuperApp Flutter WebView environment
|
|
20
|
-
if (win.FlutterBridge?.postMessage) {
|
|
21
|
-
if (options.debug) {
|
|
22
|
-
console.info('[TransportResolver] Detected Native Flutter Bridge container.');
|
|
23
|
-
}
|
|
24
|
-
return new NativeBridgeTransport(options);
|
|
25
|
-
}
|
|
26
|
-
// Inside Simulator Iframe (parent is different window)
|
|
27
|
-
if (window.parent && window.parent !== window) {
|
|
28
|
-
if (options.debug) {
|
|
29
|
-
console.info('[TransportResolver] Detected Browser Simulator parent iframe container.');
|
|
30
|
-
}
|
|
31
|
-
return new PostMessageTransport(options);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
// 3. Fallback: Mock Bridge Transport (for standalone browser tabs, local dev, or testing)
|
|
35
|
-
if (options.debug) {
|
|
36
|
-
console.info('[TransportResolver] Falling back to Mock Bridge Transport.');
|
|
37
|
-
}
|
|
38
|
-
return new MockBridgeTransport({ ...options, dispatcher: options.mockDispatcher });
|
|
17
|
+
// 2. Default: Dynamic Adaptive Bridge Transport that automatically detects and routes calls
|
|
18
|
+
return new AdaptiveBridgeTransport(options);
|
|
39
19
|
}
|
|
40
20
|
}
|
|
41
21
|
//# sourceMappingURL=resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/transport/resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAkB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/transport/resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAkB,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAQlE,MAAM,OAAO,iBAAiB;IACrB,MAAM,CAAC,OAAO,CAAC,UAAoC,EAAE;QAC1D,oCAAoC;QACpC,IAAI,OAAO,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,KAAK,aAAa,EAAE,CAAC;YAC7C,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;YACtC,OAAO,IAAI,mBAAmB,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,4FAA4F;QAC5F,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transport/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,aAAa,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transport/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,aAAa,GAAG,MAAM,GAAG,UAAU,CAAC;AAE3E,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,GAAG;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE;QACd,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;KACpC,CAAC;IACF,cAAc,CAAC,EAAE;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC;QAC1D,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAClD,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;QAChC,gBAAgB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;QAChD,aAAa,EAAE,CAAC,GAAG,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,GAAG,CAAA;SAAE,KAAK,IAAI,CAAC;QAC9D,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;QACxE,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;KAC5E,CAAC;CACH"}
|
package/package.json
CHANGED