@rn-bridge-tools/expo 0.0.6 → 0.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/dist/WebViewBridge.d.ts +22 -0
- package/dist/WebViewBridge.d.ts.map +1 -0
- package/dist/__tests__/createHandlers.test.d.ts +2 -0
- package/dist/__tests__/createHandlers.test.d.ts.map +1 -0
- package/dist/createHandlers.d.ts +5 -0
- package/dist/createHandlers.d.ts.map +1 -0
- package/dist/handlers/auth.d.ts +6 -0
- package/dist/handlers/auth.d.ts.map +1 -0
- package/dist/handlers/browser.d.ts +6 -0
- package/dist/handlers/browser.d.ts.map +1 -0
- package/dist/handlers/camera.d.ts +6 -0
- package/dist/handlers/camera.d.ts.map +1 -0
- package/dist/handlers/clipboard.d.ts +6 -0
- package/dist/handlers/clipboard.d.ts.map +1 -0
- package/dist/handlers/device.d.ts +7 -0
- package/dist/handlers/device.d.ts.map +1 -0
- package/dist/handlers/file.d.ts +8 -0
- package/dist/handlers/file.d.ts.map +1 -0
- package/dist/handlers/haptic.d.ts +7 -0
- package/dist/handlers/haptic.d.ts.map +1 -0
- package/dist/handlers/iap.d.ts +7 -0
- package/dist/handlers/iap.d.ts.map +1 -0
- package/dist/handlers/keyboard.d.ts +6 -0
- package/dist/handlers/keyboard.d.ts.map +1 -0
- package/dist/handlers/location.d.ts +7 -0
- package/dist/handlers/location.d.ts.map +1 -0
- package/dist/handlers/navigation.d.ts +8 -0
- package/dist/handlers/navigation.d.ts.map +1 -0
- package/dist/handlers/permission.d.ts +7 -0
- package/dist/handlers/permission.d.ts.map +1 -0
- package/dist/handlers/preference.d.ts +8 -0
- package/dist/handlers/preference.d.ts.map +1 -0
- package/dist/handlers/push.d.ts +6 -0
- package/dist/handlers/push.d.ts.map +1 -0
- package/dist/handlers/scanner.d.ts +5 -0
- package/dist/handlers/scanner.d.ts.map +1 -0
- package/dist/handlers/share.d.ts +5 -0
- package/dist/handlers/share.d.ts.map +1 -0
- package/dist/handlers/statusbar.d.ts +7 -0
- package/dist/handlers/statusbar.d.ts.map +1 -0
- package/dist/index.d.ts +22 -113
- package/dist/index.d.ts.map +1 -0
- package/package.json +7 -6
- package/src/WebViewBridge.tsx +58 -0
- package/src/__tests__/createHandlers.test.ts +88 -0
- package/src/createHandlers.ts +67 -0
- package/src/handlers/auth.ts +69 -0
- package/src/handlers/browser.ts +42 -0
- package/src/handlers/camera.ts +97 -0
- package/src/handlers/clipboard.ts +32 -0
- package/src/handlers/device.ts +71 -0
- package/src/handlers/file.ts +126 -0
- package/src/handlers/haptic.ts +56 -0
- package/src/handlers/iap.ts +23 -0
- package/src/handlers/keyboard.ts +20 -0
- package/src/handlers/location.ts +104 -0
- package/src/handlers/navigation.ts +29 -0
- package/src/handlers/permission.ts +107 -0
- package/src/handlers/preference.ts +58 -0
- package/src/handlers/push.ts +47 -0
- package/src/handlers/scanner.ts +31 -0
- package/src/handlers/share.ts +31 -0
- package/src/handlers/statusbar.ts +35 -0
- package/src/index.ts +23 -0
- package/dist/index.js +0 -845
- package/dist/index.js.map +0 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { WebViewProps } from 'react-native-webview';
|
|
3
|
+
import type { BridgeToolsAction, BridgeToolsEvents, BridgeToolsEvent } from '@rn-bridge-tools/core';
|
|
4
|
+
import type { HandlerFn, HandlerMap } from './createHandlers.js';
|
|
5
|
+
export interface WebViewBridgeProps extends Omit<WebViewProps, 'ref'> {
|
|
6
|
+
handlers: HandlerMap;
|
|
7
|
+
customHandlers?: Partial<Record<BridgeToolsAction, HandlerFn>>;
|
|
8
|
+
}
|
|
9
|
+
export interface WebViewBridgeRef {
|
|
10
|
+
emit: <E extends BridgeToolsEvent>(event: E, data: BridgeToolsEvents[E]) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function createBridgeWebView(handlers: HandlerMap, customHandlers?: Partial<Record<BridgeToolsAction, HandlerFn>>): {
|
|
13
|
+
postMessage: <EventName extends string | number | symbol, Args extends EventName extends string | number | symbol ? import("@webview-bridge/react-native").ParserSchema<any>[EventName]["validate"] extends (data: unknown) => unknown ? ReturnType<import("@webview-bridge/react-native").ParserSchema<any>[EventName]["validate"]> : import("@webview-bridge/react-native").Primitive | Record<string, import("@webview-bridge/react-native").Primitive> : never>(eventName: EventName, args: Args, options?: {
|
|
14
|
+
broadcast: boolean;
|
|
15
|
+
}) => void;
|
|
16
|
+
WebView: React.ForwardRefExoticComponent<import("react-native-webview/lib/WebViewTypes.js").IOSWebViewProps & import("react-native-webview/lib/WebViewTypes.js").AndroidWebViewProps & import("react-native-webview/lib/WebViewTypes.js").WindowsWebViewProps & React.RefAttributes<import("@webview-bridge/react-native").BridgeWebView>>;
|
|
17
|
+
linkWebMethod<T>(): {
|
|
18
|
+
current: import("@webview-bridge/react-native").WebMethod<T>;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export declare const WebViewBridge: React.ForwardRefExoticComponent<WebViewBridgeProps & React.RefAttributes<WebViewBridgeRef>>;
|
|
22
|
+
//# sourceMappingURL=WebViewBridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebViewBridge.d.ts","sourceRoot":"","sources":["../src/WebViewBridge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEpG,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;IACnE,QAAQ,EAAE,UAAU,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,CAAC,CAAC,SAAS,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CAClF;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,UAAU,EACpB,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;;;;;;;;EAgB/D;AAED,eAAO,MAAM,aAAa,6FAqBzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createHandlers.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/createHandlers.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { HandlerOptions } from '@rn-bridge-tools/core';
|
|
2
|
+
export type HandlerFn = (payload: never) => Promise<unknown> | unknown;
|
|
3
|
+
export type HandlerMap = Record<string, HandlerFn>;
|
|
4
|
+
export declare function createDefaultHandlers(options?: HandlerOptions): HandlerMap;
|
|
5
|
+
//# sourceMappingURL=createHandlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createHandlers.d.ts","sourceRoot":"","sources":["../src/createHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAmB5D,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AACvE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AA6BnD,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,cAAmB,GAAG,UAAU,CAiB9E"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AuthNamespace } from '@rn-bridge-tools/core';
|
|
2
|
+
export declare const authHandlers: {
|
|
3
|
+
'auth.biometric': (payload: AuthNamespace["auth.biometric"]["request"]) => Promise<AuthNamespace["auth.biometric"]["response"]>;
|
|
4
|
+
'auth.isBiometricAvailable': (_payload: AuthNamespace["auth.isBiometricAvailable"]["request"]) => Promise<AuthNamespace["auth.isBiometricAvailable"]["response"]>;
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/handlers/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAmB3D,eAAO,MAAM,YAAY;gCAEZ,aAAa,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,KAClD,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC;4CAsB3C,aAAa,CAAC,2BAA2B,CAAC,CAAC,SAAS,CAAC,KAC9D,OAAO,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC,UAAU,CAAC,CAAC;CAuBnE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { BrowserNamespace } from '@rn-bridge-tools/core';
|
|
2
|
+
export declare const browserHandlers: {
|
|
3
|
+
'browser.openExternal': (payload: BrowserNamespace["browser.openExternal"]["request"]) => Promise<BrowserNamespace["browser.openExternal"]["response"]>;
|
|
4
|
+
'browser.openInternal': (payload: BrowserNamespace["browser.openInternal"]["request"]) => Promise<BrowserNamespace["browser.openInternal"]["response"]>;
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/handlers/browser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAY9D,eAAO,MAAM,eAAe;sCAEf,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,SAAS,CAAC,KAC3D,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,UAAU,CAAC,CAAC;sCAUrD,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,SAAS,CAAC,KAC3D,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,UAAU,CAAC,CAAC;CAejE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CameraNamespace } from '@rn-bridge-tools/core';
|
|
2
|
+
export declare const cameraHandlers: {
|
|
3
|
+
'camera.take': (payload: CameraNamespace["camera.take"]["request"]) => Promise<CameraNamespace["camera.take"]["response"]>;
|
|
4
|
+
'camera.pickImage': (payload: CameraNamespace["camera.pickImage"]["request"]) => Promise<CameraNamespace["camera.pickImage"]["response"]>;
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=camera.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../src/handlers/camera.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAoC7D,eAAO,MAAM,cAAc;6BAEd,eAAe,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,KACjD,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC;kCA8B3C,eAAe,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KACtD,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC;CA0B5D,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ClipboardNamespace } from '@rn-bridge-tools/core';
|
|
2
|
+
export declare const clipboardHandlers: {
|
|
3
|
+
'clipboard.copy': (payload: ClipboardNamespace["clipboard.copy"]["request"]) => Promise<ClipboardNamespace["clipboard.copy"]["response"]>;
|
|
4
|
+
'clipboard.paste': (_payload: ClipboardNamespace["clipboard.paste"]["request"]) => Promise<ClipboardNamespace["clipboard.paste"]["response"]>;
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=clipboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../src/handlers/clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAShE,eAAO,MAAM,iBAAiB;gCAEjB,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,KACvD,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC;kCAUhD,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,KACzD,OAAO,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAAC;CAQ9D,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DeviceNamespace } from '@rn-bridge-tools/core';
|
|
2
|
+
export declare const deviceHandlers: {
|
|
3
|
+
'device.getInfo': (_payload: DeviceNamespace["device.getInfo"]["request"]) => Promise<DeviceNamespace["device.getInfo"]["response"]>;
|
|
4
|
+
'device.getBattery': (_payload: DeviceNamespace["device.getBattery"]["request"]) => Promise<DeviceNamespace["device.getBattery"]["response"]>;
|
|
5
|
+
'device.getNetwork': (_payload: DeviceNamespace["device.getNetwork"]["request"]) => Promise<DeviceNamespace["device.getNetwork"]["response"]>;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=device.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/handlers/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAY7D,eAAO,MAAM,cAAc;iCAEb,eAAe,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,KACrD,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC;oCAkB7C,eAAe,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,KACxD,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC;oCAmBhD,eAAe,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,KACxD,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC;CAgB7D,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FileNamespace } from '@rn-bridge-tools/core';
|
|
2
|
+
export declare const fileHandlers: {
|
|
3
|
+
'file.download': (payload: FileNamespace["file.download"]["request"]) => Promise<FileNamespace["file.download"]["response"]>;
|
|
4
|
+
'file.read': (payload: FileNamespace["file.read"]["request"]) => Promise<FileNamespace["file.read"]["response"]>;
|
|
5
|
+
'file.write': (payload: FileNamespace["file.write"]["request"]) => Promise<FileNamespace["file.write"]["response"]>;
|
|
6
|
+
'file.pick': (payload: FileNamespace["file.pick"]["request"]) => Promise<FileNamespace["file.pick"]["response"]>;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/handlers/file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAsC3D,eAAO,MAAM,YAAY;+BAEZ,aAAa,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,KACjD,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC;2BAiB3C,aAAa,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,KAC7C,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC;4BAevC,aAAa,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,KAC9C,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC;2BAqBxC,aAAa,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,KAC7C,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC;CA4BnD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { HapticNamespace } from '@rn-bridge-tools/core';
|
|
2
|
+
export declare const hapticHandlers: {
|
|
3
|
+
'haptic.impact': (payload: HapticNamespace["haptic.impact"]["request"]) => Promise<void>;
|
|
4
|
+
'haptic.notification': (payload: HapticNamespace["haptic.notification"]["request"]) => Promise<void>;
|
|
5
|
+
'haptic.selection': () => Promise<void>;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=haptic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"haptic.d.ts","sourceRoot":"","sources":["../../src/handlers/haptic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAY7D,eAAO,MAAM,cAAc;+BAEd,eAAe,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,KACnD,OAAO,CAAC,IAAI,CAAC;qCAgBL,eAAe,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,KACzD,OAAO,CAAC,IAAI,CAAC;8BAec,OAAO,CAAC,IAAI,CAAC;CAQ5C,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { IAPNamespace } from '@rn-bridge-tools/core';
|
|
2
|
+
export declare const iapHandlers: {
|
|
3
|
+
'iap.getProducts': (_payload: IAPNamespace["iap.getProducts"]["request"]) => Promise<IAPNamespace["iap.getProducts"]["response"]>;
|
|
4
|
+
'iap.purchase': (_payload: IAPNamespace["iap.purchase"]["request"]) => Promise<IAPNamespace["iap.purchase"]["response"]>;
|
|
5
|
+
'iap.restore': (_payload: IAPNamespace["iap.restore"]["request"]) => Promise<IAPNamespace["iap.restore"]["response"]>;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=iap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iap.d.ts","sourceRoot":"","sources":["../../src/handlers/iap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,eAAO,MAAM,WAAW;kCAEV,YAAY,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,KACnD,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAAC;+BAO3C,YAAY,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,KAChD,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,CAAC;8BAKxC,YAAY,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,KAC/C,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC;CAGpD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { KeyboardNamespace } from '@rn-bridge-tools/core';
|
|
2
|
+
export declare const keyboardHandlers: {
|
|
3
|
+
'keyboard.dismiss': (_payload: KeyboardNamespace["keyboard.dismiss"]["request"]) => Promise<KeyboardNamespace["keyboard.dismiss"]["response"]>;
|
|
4
|
+
'keyboard.getState': (_payload: KeyboardNamespace["keyboard.getState"]["request"]) => Promise<KeyboardNamespace["keyboard.getState"]["response"]>;
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=keyboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../src/handlers/keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG/D,eAAO,MAAM,gBAAgB;mCAEf,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KACzD,OAAO,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC;oCAMjD,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,KAC1D,OAAO,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC;CAM/D,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { LocationNamespace } from '@rn-bridge-tools/core';
|
|
2
|
+
export declare const locationHandlers: {
|
|
3
|
+
'location.getCurrent': (payload: LocationNamespace["location.getCurrent"]["request"]) => Promise<LocationNamespace["location.getCurrent"]["response"]>;
|
|
4
|
+
'location.watchStart': (payload: LocationNamespace["location.watchStart"]["request"]) => Promise<LocationNamespace["location.watchStart"]["response"]>;
|
|
5
|
+
'location.watchStop': (payload: LocationNamespace["location.watchStop"]["request"]) => Promise<LocationNamespace["location.watchStop"]["response"]>;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=location.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../../src/handlers/location.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAgC/D,eAAO,MAAM,gBAAgB;qCAEhB,iBAAiB,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,KAC3D,OAAO,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC,UAAU,CAAC,CAAC;qCA2BrD,iBAAiB,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,KAC3D,OAAO,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC,UAAU,CAAC,CAAC;oCA8BrD,iBAAiB,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,KAC1D,OAAO,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC,UAAU,CAAC,CAAC;CAShE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { NavigationNamespace } from '@rn-bridge-tools/core';
|
|
2
|
+
export declare const navigationHandlers: {
|
|
3
|
+
'navigation.goBack': (_payload: NavigationNamespace["navigation.goBack"]["request"]) => Promise<NavigationNamespace["navigation.goBack"]["response"]>;
|
|
4
|
+
'navigation.push': (_payload: NavigationNamespace["navigation.push"]["request"]) => Promise<NavigationNamespace["navigation.push"]["response"]>;
|
|
5
|
+
'navigation.close': (_payload: NavigationNamespace["navigation.close"]["request"]) => Promise<NavigationNamespace["navigation.close"]["response"]>;
|
|
6
|
+
'navigation.setSwipeBack': (_payload: NavigationNamespace["navigation.setSwipeBack"]["request"]) => Promise<NavigationNamespace["navigation.setSwipeBack"]["response"]>;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=navigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/handlers/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,eAAO,MAAM,kBAAkB;oCAEjB,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,KAC5D,OAAO,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC;kCAMpD,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,KAC1D,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAAC;mCAMlD,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAC3D,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC;0CAKnD,mBAAmB,CAAC,yBAAyB,CAAC,CAAC,SAAS,CAAC,KAClE,OAAO,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,CAAC,UAAU,CAAC,CAAC;CAGvE,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { PermissionNamespace } from '@rn-bridge-tools/core';
|
|
2
|
+
export declare const permissionHandlers: {
|
|
3
|
+
'permission.check': (payload: PermissionNamespace["permission.check"]["request"]) => Promise<PermissionNamespace["permission.check"]["response"]>;
|
|
4
|
+
'permission.request': (payload: PermissionNamespace["permission.request"]["request"]) => Promise<PermissionNamespace["permission.request"]["response"]>;
|
|
5
|
+
'permission.openSettings': (_payload: PermissionNamespace["permission.openSettings"]["request"]) => Promise<PermissionNamespace["permission.openSettings"]["response"]>;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=permission.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../src/handlers/permission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,uBAAuB,CAAC;AA2DjF,eAAO,MAAM,kBAAkB;kCAElB,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAC1D,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC;oCAiBpD,mBAAmB,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,KAC5D,OAAO,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,CAAC,UAAU,CAAC,CAAC;0CAiBrD,mBAAmB,CAAC,yBAAyB,CAAC,CAAC,SAAS,CAAC,KAClE,OAAO,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,CAAC,UAAU,CAAC,CAAC;CAQvE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PreferenceNamespace } from '@rn-bridge-tools/core';
|
|
2
|
+
export declare const preferenceHandlers: {
|
|
3
|
+
'preference.get': (payload: PreferenceNamespace["preference.get"]["request"]) => Promise<PreferenceNamespace["preference.get"]["response"]>;
|
|
4
|
+
'preference.set': (payload: PreferenceNamespace["preference.set"]["request"]) => Promise<PreferenceNamespace["preference.set"]["response"]>;
|
|
5
|
+
'preference.remove': (payload: PreferenceNamespace["preference.remove"]["request"]) => Promise<PreferenceNamespace["preference.remove"]["response"]>;
|
|
6
|
+
'preference.clear': (_payload: PreferenceNamespace["preference.clear"]["request"]) => Promise<PreferenceNamespace["preference.clear"]["response"]>;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=preference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preference.d.ts","sourceRoot":"","sources":["../../src/handlers/preference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAajE,eAAO,MAAM,kBAAkB;gCAElB,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,KACxD,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC;gCAUlD,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,KACxD,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC;mCAUlD,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,KAC3D,OAAO,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC;mCAUpD,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAC3D,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC;CAQhE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PushNamespace } from '@rn-bridge-tools/core';
|
|
2
|
+
export declare const pushHandlers: {
|
|
3
|
+
'push.getToken': (_payload: PushNamespace["push.getToken"]["request"]) => Promise<PushNamespace["push.getToken"]["response"]>;
|
|
4
|
+
'push.requestPermission': (_payload: PushNamespace["push.requestPermission"]["request"]) => Promise<PushNamespace["push.requestPermission"]["response"]>;
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=push.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/handlers/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAU3D,eAAO,MAAM,YAAY;gCAEX,aAAa,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,KAClD,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC;yCAiB1C,aAAa,CAAC,wBAAwB,CAAC,CAAC,SAAS,CAAC,KAC3D,OAAO,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,UAAU,CAAC,CAAC;CAehE,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ScannerNamespace } from '@rn-bridge-tools/core';
|
|
2
|
+
export declare const scannerHandlers: {
|
|
3
|
+
'scanner.scanQR': (_payload: ScannerNamespace["scanner.scanQR"]["request"]) => Promise<ScannerNamespace["scanner.scanQR"]["response"]>;
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=scanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/handlers/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAU9D,eAAO,MAAM,eAAe;iCAEd,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,KACtD,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC;CAiB3D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../../src/handlers/share.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAS5D,eAAO,MAAM,aAAa;4BAEb,cAAc,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,KAC/C,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC;CAkBrD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { StatusBarNamespace } from '@rn-bridge-tools/core';
|
|
2
|
+
export declare const statusbarHandlers: {
|
|
3
|
+
'statusbar.setStyle': (payload: StatusBarNamespace["statusbar.setStyle"]["request"]) => Promise<StatusBarNamespace["statusbar.setStyle"]["response"]>;
|
|
4
|
+
'statusbar.setBackgroundColor': (payload: StatusBarNamespace["statusbar.setBackgroundColor"]["request"]) => Promise<StatusBarNamespace["statusbar.setBackgroundColor"]["response"]>;
|
|
5
|
+
'statusbar.setHidden': (payload: StatusBarNamespace["statusbar.setHidden"]["request"]) => Promise<StatusBarNamespace["statusbar.setHidden"]["response"]>;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=statusbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statusbar.d.ts","sourceRoot":"","sources":["../../src/handlers/statusbar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,eAAO,MAAM,iBAAiB;oCAEjB,kBAAkB,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,KAC3D,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC,UAAU,CAAC,CAAC;8CAWrD,kBAAkB,CAAC,8BAA8B,CAAC,CAAC,SAAS,CAAC,KACrE,OAAO,CAAC,kBAAkB,CAAC,8BAA8B,CAAC,CAAC,UAAU,CAAC,CAAC;qCAM/D,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,KAC5D,OAAO,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,UAAU,CAAC,CAAC;CASlE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,113 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
declare const locationHandlers: {
|
|
24
|
-
'location.getCurrent': (payload: LocationNamespace["location.getCurrent"]["request"]) => Promise<LocationNamespace["location.getCurrent"]["response"]>;
|
|
25
|
-
'location.watchStart': (payload: LocationNamespace["location.watchStart"]["request"]) => Promise<LocationNamespace["location.watchStart"]["response"]>;
|
|
26
|
-
'location.watchStop': (payload: LocationNamespace["location.watchStop"]["request"]) => Promise<LocationNamespace["location.watchStop"]["response"]>;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
declare const fileHandlers: {
|
|
30
|
-
'file.download': (payload: FileNamespace["file.download"]["request"]) => Promise<FileNamespace["file.download"]["response"]>;
|
|
31
|
-
'file.read': (payload: FileNamespace["file.read"]["request"]) => Promise<FileNamespace["file.read"]["response"]>;
|
|
32
|
-
'file.write': (payload: FileNamespace["file.write"]["request"]) => Promise<FileNamespace["file.write"]["response"]>;
|
|
33
|
-
'file.pick': (payload: FileNamespace["file.pick"]["request"]) => Promise<FileNamespace["file.pick"]["response"]>;
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
declare const shareHandlers: {
|
|
37
|
-
'share.open': (payload: ShareNamespace["share.open"]["request"]) => Promise<ShareNamespace["share.open"]["response"]>;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
declare const deviceHandlers: {
|
|
41
|
-
'device.getInfo': (_payload: DeviceNamespace["device.getInfo"]["request"]) => Promise<DeviceNamespace["device.getInfo"]["response"]>;
|
|
42
|
-
'device.getBattery': (_payload: DeviceNamespace["device.getBattery"]["request"]) => Promise<DeviceNamespace["device.getBattery"]["response"]>;
|
|
43
|
-
'device.getNetwork': (_payload: DeviceNamespace["device.getNetwork"]["request"]) => Promise<DeviceNamespace["device.getNetwork"]["response"]>;
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
declare const statusbarHandlers: {
|
|
47
|
-
'statusbar.setStyle': (payload: StatusBarNamespace["statusbar.setStyle"]["request"]) => Promise<StatusBarNamespace["statusbar.setStyle"]["response"]>;
|
|
48
|
-
'statusbar.setBackgroundColor': (payload: StatusBarNamespace["statusbar.setBackgroundColor"]["request"]) => Promise<StatusBarNamespace["statusbar.setBackgroundColor"]["response"]>;
|
|
49
|
-
'statusbar.setHidden': (payload: StatusBarNamespace["statusbar.setHidden"]["request"]) => Promise<StatusBarNamespace["statusbar.setHidden"]["response"]>;
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
declare const keyboardHandlers: {
|
|
53
|
-
'keyboard.dismiss': (_payload: KeyboardNamespace["keyboard.dismiss"]["request"]) => Promise<KeyboardNamespace["keyboard.dismiss"]["response"]>;
|
|
54
|
-
'keyboard.getState': (_payload: KeyboardNamespace["keyboard.getState"]["request"]) => Promise<KeyboardNamespace["keyboard.getState"]["response"]>;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
declare const hapticHandlers: {
|
|
58
|
-
'haptic.impact': (payload: HapticNamespace["haptic.impact"]["request"]) => Promise<void>;
|
|
59
|
-
'haptic.notification': (payload: HapticNamespace["haptic.notification"]["request"]) => Promise<void>;
|
|
60
|
-
'haptic.selection': () => Promise<void>;
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
declare const clipboardHandlers: {
|
|
64
|
-
'clipboard.copy': (payload: ClipboardNamespace["clipboard.copy"]["request"]) => Promise<ClipboardNamespace["clipboard.copy"]["response"]>;
|
|
65
|
-
'clipboard.paste': (_payload: ClipboardNamespace["clipboard.paste"]["request"]) => Promise<ClipboardNamespace["clipboard.paste"]["response"]>;
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
declare const scannerHandlers: {
|
|
69
|
-
'scanner.scanQR': (_payload: ScannerNamespace["scanner.scanQR"]["request"]) => Promise<ScannerNamespace["scanner.scanQR"]["response"]>;
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
declare const authHandlers: {
|
|
73
|
-
'auth.biometric': (payload: AuthNamespace["auth.biometric"]["request"]) => Promise<AuthNamespace["auth.biometric"]["response"]>;
|
|
74
|
-
'auth.isBiometricAvailable': (_payload: AuthNamespace["auth.isBiometricAvailable"]["request"]) => Promise<AuthNamespace["auth.isBiometricAvailable"]["response"]>;
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
declare const iapHandlers: {
|
|
78
|
-
'iap.getProducts': (_payload: IAPNamespace["iap.getProducts"]["request"]) => Promise<IAPNamespace["iap.getProducts"]["response"]>;
|
|
79
|
-
'iap.purchase': (_payload: IAPNamespace["iap.purchase"]["request"]) => Promise<IAPNamespace["iap.purchase"]["response"]>;
|
|
80
|
-
'iap.restore': (_payload: IAPNamespace["iap.restore"]["request"]) => Promise<IAPNamespace["iap.restore"]["response"]>;
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
declare const pushHandlers: {
|
|
84
|
-
'push.getToken': (_payload: PushNamespace["push.getToken"]["request"]) => Promise<PushNamespace["push.getToken"]["response"]>;
|
|
85
|
-
'push.requestPermission': (_payload: PushNamespace["push.requestPermission"]["request"]) => Promise<PushNamespace["push.requestPermission"]["response"]>;
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
declare const permissionHandlers: {
|
|
89
|
-
'permission.check': (payload: PermissionNamespace["permission.check"]["request"]) => Promise<PermissionNamespace["permission.check"]["response"]>;
|
|
90
|
-
'permission.request': (payload: PermissionNamespace["permission.request"]["request"]) => Promise<PermissionNamespace["permission.request"]["response"]>;
|
|
91
|
-
'permission.openSettings': (_payload: PermissionNamespace["permission.openSettings"]["request"]) => Promise<PermissionNamespace["permission.openSettings"]["response"]>;
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
declare const preferenceHandlers: {
|
|
95
|
-
'preference.get': (payload: PreferenceNamespace["preference.get"]["request"]) => Promise<PreferenceNamespace["preference.get"]["response"]>;
|
|
96
|
-
'preference.set': (payload: PreferenceNamespace["preference.set"]["request"]) => Promise<PreferenceNamespace["preference.set"]["response"]>;
|
|
97
|
-
'preference.remove': (payload: PreferenceNamespace["preference.remove"]["request"]) => Promise<PreferenceNamespace["preference.remove"]["response"]>;
|
|
98
|
-
'preference.clear': (_payload: PreferenceNamespace["preference.clear"]["request"]) => Promise<PreferenceNamespace["preference.clear"]["response"]>;
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
declare const navigationHandlers: {
|
|
102
|
-
'navigation.goBack': (_payload: NavigationNamespace["navigation.goBack"]["request"]) => Promise<NavigationNamespace["navigation.goBack"]["response"]>;
|
|
103
|
-
'navigation.push': (_payload: NavigationNamespace["navigation.push"]["request"]) => Promise<NavigationNamespace["navigation.push"]["response"]>;
|
|
104
|
-
'navigation.close': (_payload: NavigationNamespace["navigation.close"]["request"]) => Promise<NavigationNamespace["navigation.close"]["response"]>;
|
|
105
|
-
'navigation.setSwipeBack': (_payload: NavigationNamespace["navigation.setSwipeBack"]["request"]) => Promise<NavigationNamespace["navigation.setSwipeBack"]["response"]>;
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
declare const browserHandlers: {
|
|
109
|
-
'browser.openExternal': (payload: BrowserNamespace["browser.openExternal"]["request"]) => Promise<BrowserNamespace["browser.openExternal"]["response"]>;
|
|
110
|
-
'browser.openInternal': (payload: BrowserNamespace["browser.openInternal"]["request"]) => Promise<BrowserNamespace["browser.openInternal"]["response"]>;
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
export { type HandlerFn, type HandlerMap, WebViewBridge, type WebViewBridgeProps, type WebViewBridgeRef, authHandlers, browserHandlers, cameraHandlers, clipboardHandlers, createDefaultHandlers, deviceHandlers, fileHandlers, hapticHandlers, iapHandlers, keyboardHandlers, locationHandlers, navigationHandlers, permissionHandlers, preferenceHandlers, pushHandlers, scannerHandlers, shareHandlers, statusbarHandlers };
|
|
1
|
+
export { WebViewBridge, createBridgeWebView } from './WebViewBridge.js';
|
|
2
|
+
export type { WebViewBridgeProps, WebViewBridgeRef } from './WebViewBridge.js';
|
|
3
|
+
export { createDefaultHandlers } from './createHandlers.js';
|
|
4
|
+
export type { HandlerFn, HandlerMap } from './createHandlers.js';
|
|
5
|
+
export { cameraHandlers } from './handlers/camera.js';
|
|
6
|
+
export { locationHandlers } from './handlers/location.js';
|
|
7
|
+
export { fileHandlers } from './handlers/file.js';
|
|
8
|
+
export { shareHandlers } from './handlers/share.js';
|
|
9
|
+
export { deviceHandlers } from './handlers/device.js';
|
|
10
|
+
export { statusbarHandlers } from './handlers/statusbar.js';
|
|
11
|
+
export { keyboardHandlers } from './handlers/keyboard.js';
|
|
12
|
+
export { hapticHandlers } from './handlers/haptic.js';
|
|
13
|
+
export { clipboardHandlers } from './handlers/clipboard.js';
|
|
14
|
+
export { scannerHandlers } from './handlers/scanner.js';
|
|
15
|
+
export { authHandlers } from './handlers/auth.js';
|
|
16
|
+
export { iapHandlers } from './handlers/iap.js';
|
|
17
|
+
export { pushHandlers } from './handlers/push.js';
|
|
18
|
+
export { permissionHandlers } from './handlers/permission.js';
|
|
19
|
+
export { preferenceHandlers } from './handlers/preference.js';
|
|
20
|
+
export { navigationHandlers } from './handlers/navigation.js';
|
|
21
|
+
export { browserHandlers } from './handlers/browser.js';
|
|
22
|
+
//# 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,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACxE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rn-bridge-tools/expo",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"description": "Expo/React Native WebView bridge component and handlers for bridge-tools",
|
|
5
|
-
"main": "./
|
|
5
|
+
"main": "./src/index.ts",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
7
|
"exports": {
|
|
8
8
|
".": {
|
|
9
9
|
"types": "./dist/index.d.ts",
|
|
10
|
-
"default": "./
|
|
10
|
+
"default": "./src/index.ts"
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
"files": [
|
|
14
|
+
"src",
|
|
14
15
|
"dist"
|
|
15
16
|
],
|
|
16
17
|
"dependencies": {
|
|
17
|
-
"@rn-bridge-tools/core": "0.0.
|
|
18
|
+
"@rn-bridge-tools/core": "0.0.8"
|
|
18
19
|
},
|
|
19
20
|
"peerDependencies": {
|
|
20
21
|
"@react-native-async-storage/async-storage": "*",
|
|
@@ -89,8 +90,8 @@
|
|
|
89
90
|
"vitest": "^2.1.0"
|
|
90
91
|
},
|
|
91
92
|
"scripts": {
|
|
92
|
-
"build": "
|
|
93
|
-
"dev": "
|
|
93
|
+
"build": "tsc --declaration --emitDeclarationOnly --outDir dist",
|
|
94
|
+
"dev": "tsc --declaration --emitDeclarationOnly --outDir dist --watch",
|
|
94
95
|
"test": "vitest run",
|
|
95
96
|
"lint": "eslint src/",
|
|
96
97
|
"typecheck": "tsc --noEmit",
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import React, { forwardRef, useImperativeHandle, useRef } from 'react';
|
|
2
|
+
import { bridge, createWebView } from '@webview-bridge/react-native';
|
|
3
|
+
import type { WebViewProps } from 'react-native-webview';
|
|
4
|
+
import type { BridgeToolsAction, BridgeToolsEvents, BridgeToolsEvent } from '@rn-bridge-tools/core';
|
|
5
|
+
|
|
6
|
+
import type { HandlerFn, HandlerMap } from './createHandlers.js';
|
|
7
|
+
|
|
8
|
+
export interface WebViewBridgeProps extends Omit<WebViewProps, 'ref'> {
|
|
9
|
+
handlers: HandlerMap;
|
|
10
|
+
customHandlers?: Partial<Record<BridgeToolsAction, HandlerFn>>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface WebViewBridgeRef {
|
|
14
|
+
emit: <E extends BridgeToolsEvent>(event: E, data: BridgeToolsEvents[E]) => void;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function createBridgeWebView(
|
|
18
|
+
handlers: HandlerMap,
|
|
19
|
+
customHandlers?: Partial<Record<BridgeToolsAction, HandlerFn>>,
|
|
20
|
+
) {
|
|
21
|
+
const allHandlers: Record<string, (...args: unknown[]) => Promise<unknown>> = {};
|
|
22
|
+
|
|
23
|
+
const merged = { ...handlers, ...customHandlers };
|
|
24
|
+
for (const [key, handler] of Object.entries(merged)) {
|
|
25
|
+
if (handler) {
|
|
26
|
+
allHandlers[key] = async (...args: unknown[]) => {
|
|
27
|
+
const payload = args[0] ?? {};
|
|
28
|
+
return (handler as (p: unknown) => Promise<unknown>)(payload);
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const appBridge = bridge(allHandlers);
|
|
34
|
+
return createWebView({ bridge: appBridge });
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export const WebViewBridge = forwardRef<WebViewBridgeRef, WebViewBridgeProps>(
|
|
38
|
+
function WebViewBridge({ handlers, customHandlers, ...webViewProps }, ref) {
|
|
39
|
+
const setupRef = useRef<ReturnType<typeof createBridgeWebView> | null>(null);
|
|
40
|
+
if (!setupRef.current) {
|
|
41
|
+
setupRef.current = createBridgeWebView(handlers, customHandlers);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const { WebView: InternalWebView, postMessage } = setupRef.current;
|
|
45
|
+
|
|
46
|
+
useImperativeHandle(
|
|
47
|
+
ref,
|
|
48
|
+
() => ({
|
|
49
|
+
emit: <E extends BridgeToolsEvent>(event: E, data: BridgeToolsEvents[E]) => {
|
|
50
|
+
postMessage(event, data as never);
|
|
51
|
+
},
|
|
52
|
+
}),
|
|
53
|
+
[postMessage],
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
return <InternalWebView {...webViewProps} />;
|
|
57
|
+
},
|
|
58
|
+
);
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { describe, it, expect, vi } from 'vitest';
|
|
2
|
+
|
|
3
|
+
// Mock react-native modules
|
|
4
|
+
vi.mock('react-native', () => ({
|
|
5
|
+
Platform: { OS: 'ios', Version: '17.0' },
|
|
6
|
+
StatusBar: {
|
|
7
|
+
setBarStyle: vi.fn(),
|
|
8
|
+
setBackgroundColor: vi.fn(),
|
|
9
|
+
setHidden: vi.fn(),
|
|
10
|
+
},
|
|
11
|
+
Keyboard: { dismiss: vi.fn() },
|
|
12
|
+
Linking: { openURL: vi.fn(), openSettings: vi.fn() },
|
|
13
|
+
}));
|
|
14
|
+
|
|
15
|
+
vi.mock('@webview-bridge/react-native', () => ({
|
|
16
|
+
bridge: vi.fn((handlers: Record<string, unknown>) => handlers),
|
|
17
|
+
createWebView: vi.fn(() => ({
|
|
18
|
+
WebView: 'MockWebView',
|
|
19
|
+
postMessage: vi.fn(),
|
|
20
|
+
})),
|
|
21
|
+
}));
|
|
22
|
+
|
|
23
|
+
describe('createDefaultHandlers', () => {
|
|
24
|
+
it('should return handlers for all namespaces', async () => {
|
|
25
|
+
const { createDefaultHandlers } = await import('../createHandlers.js');
|
|
26
|
+
|
|
27
|
+
const handlers = createDefaultHandlers({
|
|
28
|
+
camera: true,
|
|
29
|
+
location: true,
|
|
30
|
+
file: true,
|
|
31
|
+
share: true,
|
|
32
|
+
device: true,
|
|
33
|
+
statusbar: true,
|
|
34
|
+
keyboard: true,
|
|
35
|
+
haptic: true,
|
|
36
|
+
clipboard: true,
|
|
37
|
+
scanner: true,
|
|
38
|
+
auth: true,
|
|
39
|
+
iap: true,
|
|
40
|
+
push: true,
|
|
41
|
+
permission: true,
|
|
42
|
+
preference: true,
|
|
43
|
+
navigation: true,
|
|
44
|
+
browser: true,
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
expect(handlers['camera.take']).toBeDefined();
|
|
48
|
+
expect(handlers['camera.pickImage']).toBeDefined();
|
|
49
|
+
expect(handlers['location.getCurrent']).toBeDefined();
|
|
50
|
+
expect(handlers['location.watchStart']).toBeDefined();
|
|
51
|
+
expect(handlers['location.watchStop']).toBeDefined();
|
|
52
|
+
|
|
53
|
+
const namespaces = [
|
|
54
|
+
'camera', 'location', 'file', 'share', 'device', 'statusbar',
|
|
55
|
+
'keyboard', 'haptic', 'clipboard', 'scanner', 'auth', 'iap',
|
|
56
|
+
'push', 'permission', 'preference', 'navigation', 'browser',
|
|
57
|
+
];
|
|
58
|
+
|
|
59
|
+
for (const ns of namespaces) {
|
|
60
|
+
const nsHandlers = Object.keys(handlers).filter((k) => k.startsWith(`${ns}.`));
|
|
61
|
+
expect(nsHandlers.length).toBeGreaterThan(0);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
it('should return disabled handlers when namespace is false', async () => {
|
|
66
|
+
const { createDefaultHandlers } = await import('../createHandlers.js');
|
|
67
|
+
const handlers = createDefaultHandlers({ camera: false });
|
|
68
|
+
const result = await (handlers['camera.take'] as (p: Record<string, unknown>) => Promise<{ success: boolean; error: string }>)({});
|
|
69
|
+
expect(result.success).toBe(false);
|
|
70
|
+
expect(result.error).toContain('not_enabled');
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it('should return disabled handlers by default', async () => {
|
|
74
|
+
const { createDefaultHandlers } = await import('../createHandlers.js');
|
|
75
|
+
const handlers = createDefaultHandlers();
|
|
76
|
+
const result = await (handlers['camera.take'] as (p: Record<string, unknown>) => Promise<{ success: boolean; error: string }>)({});
|
|
77
|
+
expect(result.success).toBe(false);
|
|
78
|
+
expect(result.error).toContain('not_enabled');
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
describe('@rn-bridge-tools/expo exports', () => {
|
|
83
|
+
it('should export WebViewBridge and createDefaultHandlers', async () => {
|
|
84
|
+
const exports = await import('../index.js');
|
|
85
|
+
expect(exports.WebViewBridge).toBeDefined();
|
|
86
|
+
expect(exports.createDefaultHandlers).toBeDefined();
|
|
87
|
+
});
|
|
88
|
+
});
|