@prose-reader/react-native 1.218.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.test.d.ts +1 -0
- package/dist/native/ReactNativeStreamer.d.ts +12 -0
- package/dist/native/ReaderProvider.d.ts +33 -0
- package/dist/native/createArchiveFromExpoFileSystemNext.d.ts +6 -0
- package/dist/native/index.cjs.js +1 -0
- package/dist/native/index.d.ts +7 -0
- package/dist/native/index.es.js +130 -0
- package/dist/native/useCreateReader.d.ts +17 -0
- package/dist/native/useProseBridge.d.ts +2 -0
- package/dist/native/useReader.d.ts +4 -0
- package/dist/native/useReaderState.d.ts +2 -0
- package/dist/shared/index.cjs.js +1 -0
- package/dist/shared/index.d.ts +32 -0
- package/dist/shared/index.es.js +4 -0
- package/dist/shared/useLiveRef.d.ts +1 -0
- package/dist/useLiveRef-CYh-YkID.js +10 -0
- package/dist/useLiveRef-Dg4CKqYn.cjs +1 -0
- package/dist/web/index.cjs.js +1 -0
- package/dist/web/index.d.ts +10 -0
- package/dist/web/index.es.js +28 -0
- package/package.json +45 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Streamer } from '@prose-reader/streamer';
|
|
2
|
+
export declare class ReactNativeStreamer extends Streamer {
|
|
3
|
+
fetchResourceAsData({ key, resourcePath, }: {
|
|
4
|
+
key: string;
|
|
5
|
+
resourcePath: string;
|
|
6
|
+
}): Promise<{
|
|
7
|
+
data: string;
|
|
8
|
+
headers: {
|
|
9
|
+
[k: string]: string;
|
|
10
|
+
};
|
|
11
|
+
}>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useCreateReader } from './useCreateReader';
|
|
2
|
+
export declare const ReaderContext: import('react').Context<{
|
|
3
|
+
webviewBridge: {
|
|
4
|
+
postMessage: <EventName extends keyof import('.').ProsePostMessageSchema, Args extends EventName extends keyof import('.').ProsePostMessageSchema ? import('.').ProsePostMessageSchema[EventName]["validate"] extends (data: unknown) => unknown ? ReturnType<import('.').ProsePostMessageSchema[EventName]["validate"]> : import('@webview-bridge/types').Primitive | Record<string, import('@webview-bridge/types').Primitive> : never>(eventName: EventName, args: Args, options?: {
|
|
5
|
+
broadcast: boolean;
|
|
6
|
+
}) => void;
|
|
7
|
+
WebView: React.ForwardRefExoticComponent<import('react-native-webview/lib/WebViewTypes').IOSWebViewProps & import('react-native-webview/lib/WebViewTypes').AndroidWebViewProps & import('react-native-webview/lib/WebViewTypes').WindowsWebViewProps & React.RefAttributes<import('@webview-bridge/react-native').BridgeWebView>>;
|
|
8
|
+
linkWebMethod<T>(): {
|
|
9
|
+
current: import('@webview-bridge/react-native').WebMethod<T>;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
ReaderWebView: import('react').ForwardRefExoticComponent<import('react-native-webview/lib/WebViewTypes').IOSWebViewProps & import('react-native-webview/lib/WebViewTypes').AndroidWebViewProps & import('react-native-webview/lib/WebViewTypes').WindowsWebViewProps & import('react').RefAttributes<import('@webview-bridge/react-native').BridgeWebView>>;
|
|
13
|
+
appBridge: import('@webview-bridge/types').BridgeStore<import('.').BridgeState & import('.').BridgeMethods>;
|
|
14
|
+
load: (manifest: import('@prose-reader/shared').Manifest) => void;
|
|
15
|
+
} | null | undefined>;
|
|
16
|
+
export declare const useProseReaderContext: () => {
|
|
17
|
+
webviewBridge: {
|
|
18
|
+
postMessage: <EventName extends keyof import('.').ProsePostMessageSchema, Args extends EventName extends keyof import('.').ProsePostMessageSchema ? import('.').ProsePostMessageSchema[EventName]["validate"] extends (data: unknown) => unknown ? ReturnType<import('.').ProsePostMessageSchema[EventName]["validate"]> : import('@webview-bridge/types').Primitive | Record<string, import('@webview-bridge/types').Primitive> : never>(eventName: EventName, args: Args, options?: {
|
|
19
|
+
broadcast: boolean;
|
|
20
|
+
}) => void;
|
|
21
|
+
WebView: React.ForwardRefExoticComponent<import('react-native-webview/lib/WebViewTypes').IOSWebViewProps & import('react-native-webview/lib/WebViewTypes').AndroidWebViewProps & import('react-native-webview/lib/WebViewTypes').WindowsWebViewProps & React.RefAttributes<import('@webview-bridge/react-native').BridgeWebView>>;
|
|
22
|
+
linkWebMethod<T>(): {
|
|
23
|
+
current: import('@webview-bridge/react-native').WebMethod<T>;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
ReaderWebView: import('react').ForwardRefExoticComponent<import('react-native-webview/lib/WebViewTypes').IOSWebViewProps & import('react-native-webview/lib/WebViewTypes').AndroidWebViewProps & import('react-native-webview/lib/WebViewTypes').WindowsWebViewProps & import('react').RefAttributes<import('@webview-bridge/react-native').BridgeWebView>>;
|
|
27
|
+
appBridge: import('@webview-bridge/types').BridgeStore<import('.').BridgeState & import('.').BridgeMethods>;
|
|
28
|
+
load: (manifest: import('@prose-reader/shared').Manifest) => void;
|
|
29
|
+
};
|
|
30
|
+
export declare const ReaderProvider: ({ children, reader, }: {
|
|
31
|
+
children: React.ReactNode;
|
|
32
|
+
reader: ReturnType<typeof useCreateReader>;
|
|
33
|
+
}) => import("react").JSX.Element;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Archive } from '@prose-reader/streamer';
|
|
2
|
+
import { Directory } from 'expo-file-system/next';
|
|
3
|
+
export declare const createArchiveFromExpoFileSystemNext: (directory: Directory, { orderByAlpha, name }?: {
|
|
4
|
+
orderByAlpha?: boolean;
|
|
5
|
+
name?: string;
|
|
6
|
+
}) => Promise<Archive>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@webview-bridge/react-native"),o=require("react"),g=require("../useLiveRef-Dg4CKqYn.cjs"),u=require("@prose-reader/streamer"),v=require("expo-file-system/next"),p=require("react/jsx-runtime"),b=t=>{const e=g.useLiveRef(t),[i]=o.useState(()=>c.bridge(({set:s})=>({pagination:void 0,setPagination:async a=>{s({pagination:a})},context:void 0,setContext:async a=>{s({context:a})},async getResource(a){return e.current.getResource(a)}})));return i},h=c.postMessageSchema({load:{validate:t=>t},turnRight:{validate:()=>{}},turnLeft:{validate:()=>{}}}),x=t=>{const[e,i]=o.useState(void 0),s=b(t),a=e==null?void 0:e.postMessage;o.useEffect(()=>{s&&i(c.createWebView({bridge:s,debug:!0,postMessageSchema:h}))},[s]);const d=o.useCallback(m=>{a==null||a("load",{manifest:m})},[a]);return e?{webviewBridge:e,ReaderWebView:e.WebView,appBridge:s,load:d}:null},y=async(t,{orderByAlpha:e,name:i}={})=>{let s=t.list();e&&(s=s.slice().sort((r,n)=>u.sortByTitleComparator(r.name,n.name)));const a=r=>r.list().reduce((n,l)=>l instanceof v.Directory?[...n,...a(l)]:[...n,l],[]),d=s.reduce((r,n)=>n instanceof v.Directory?[...r,...a(n)]:[...r,n],[]);return{filename:i||"",records:d.map(r=>r instanceof v.Directory?{dir:!0,basename:u.getUriBasename(r.name),uri:r.uri.replace("file://",""),blob:()=>Promise.resolve(new Blob),string:()=>Promise.resolve(""),size:0}:{dir:!1,basename:u.getUriBasename(r.name),uri:r.uri.replace("file://",""),blob:async()=>r.blob(),string:async()=>r.text(),size:r.bytes().length,encodingFormat:r.type??void 0}),close:()=>Promise.resolve()}},R=o.createContext(void 0),f=()=>{const t=o.useContext(R);if(!t)throw new Error("useProseReader must be used within a ProseReaderProvider");return t},P=({children:t,reader:e})=>p.jsx(R.Provider,{value:e,children:t}),S=()=>{const{webviewBridge:t}=f(),{postMessage:e}=t;return{turnRight:()=>{e("turnRight",void 0)},turnLeft:()=>{e("turnLeft",void 0)}}},w=t=>{const{appBridge:e}=f();return c.useBridge(e,t)};class B extends u.Streamer{async fetchResourceAsData({key:e,resourcePath:i}){const s=await super.fetchResource({key:e,resourcePath:i});return{data:await s.text(),headers:Object.fromEntries(s.headers.entries())}}}exports.useLiveRef=g.useLiveRef;exports.ReactNativeStreamer=B;exports.ReaderProvider=P;exports.createArchiveFromExpoFileSystemNext=y;exports.useCreateReader=x;exports.useReader=S;exports.useReaderState=w;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { useCreateReader } from './useCreateReader';
|
|
2
|
+
export { createArchiveFromExpoFileSystemNext } from './createArchiveFromExpoFileSystemNext';
|
|
3
|
+
export * from '../shared';
|
|
4
|
+
export { ReaderProvider } from './ReaderProvider';
|
|
5
|
+
export { useReader } from './useReader';
|
|
6
|
+
export { useReaderState } from './useReaderState';
|
|
7
|
+
export * from './ReactNativeStreamer';
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { bridge as g, postMessageSchema as v, createWebView as b, useBridge as R } from "@webview-bridge/react-native";
|
|
2
|
+
import { useState as l, useEffect as h, useCallback as x, createContext as y, useContext as P } from "react";
|
|
3
|
+
import { u as w } from "../useLiveRef-CYh-YkID.js";
|
|
4
|
+
import { sortByTitleComparator as B, getUriBasename as m, Streamer as C } from "@prose-reader/streamer";
|
|
5
|
+
import { Directory as c } from "expo-file-system/next";
|
|
6
|
+
import { jsx as S } from "react/jsx-runtime";
|
|
7
|
+
const L = (t) => {
|
|
8
|
+
const e = w(t), [a] = l(
|
|
9
|
+
() => g(({ set: s }) => ({
|
|
10
|
+
pagination: void 0,
|
|
11
|
+
setPagination: async (n) => {
|
|
12
|
+
s({ pagination: n });
|
|
13
|
+
},
|
|
14
|
+
context: void 0,
|
|
15
|
+
setContext: async (n) => {
|
|
16
|
+
s({ context: n });
|
|
17
|
+
},
|
|
18
|
+
/**
|
|
19
|
+
* For a given spine item, provide the resource to the webview.
|
|
20
|
+
*/
|
|
21
|
+
async getResource(n) {
|
|
22
|
+
return e.current.getResource(n);
|
|
23
|
+
}
|
|
24
|
+
}))
|
|
25
|
+
);
|
|
26
|
+
return a;
|
|
27
|
+
}, E = v({
|
|
28
|
+
load: {
|
|
29
|
+
validate: (t) => t
|
|
30
|
+
},
|
|
31
|
+
turnRight: {
|
|
32
|
+
validate: () => {
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
turnLeft: {
|
|
36
|
+
validate: () => {
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}), A = (t) => {
|
|
40
|
+
const [e, a] = l(void 0), s = L(t), n = e == null ? void 0 : e.postMessage;
|
|
41
|
+
h(() => {
|
|
42
|
+
s && a(
|
|
43
|
+
b({
|
|
44
|
+
bridge: s,
|
|
45
|
+
debug: !0,
|
|
46
|
+
postMessageSchema: E
|
|
47
|
+
})
|
|
48
|
+
);
|
|
49
|
+
}, [s]);
|
|
50
|
+
const i = x(
|
|
51
|
+
(d) => {
|
|
52
|
+
n == null || n("load", { manifest: d });
|
|
53
|
+
},
|
|
54
|
+
[n]
|
|
55
|
+
);
|
|
56
|
+
return e ? {
|
|
57
|
+
webviewBridge: e,
|
|
58
|
+
ReaderWebView: e.WebView,
|
|
59
|
+
appBridge: s,
|
|
60
|
+
load: i
|
|
61
|
+
} : null;
|
|
62
|
+
}, D = async (t, { orderByAlpha: e, name: a } = {}) => {
|
|
63
|
+
let s = t.list();
|
|
64
|
+
e && (s = s.slice().sort((r, o) => B(r.name, o.name)));
|
|
65
|
+
const n = (r) => r.list().reduce((o, u) => u instanceof c ? [...o, ...n(u)] : [...o, u], []), i = s.reduce((r, o) => o instanceof c ? [...r, ...n(o)] : [...r, o], []);
|
|
66
|
+
return {
|
|
67
|
+
filename: a || "",
|
|
68
|
+
records: i.map((r) => r instanceof c ? {
|
|
69
|
+
dir: !0,
|
|
70
|
+
basename: m(r.name),
|
|
71
|
+
uri: r.uri.replace("file://", ""),
|
|
72
|
+
// @todo fix prose-reader
|
|
73
|
+
blob: () => Promise.resolve(new Blob()),
|
|
74
|
+
string: () => Promise.resolve(""),
|
|
75
|
+
size: 0
|
|
76
|
+
} : {
|
|
77
|
+
dir: !1,
|
|
78
|
+
basename: m(r.name),
|
|
79
|
+
uri: r.uri.replace("file://", ""),
|
|
80
|
+
// @todo fix prose-reader
|
|
81
|
+
blob: async () => r.blob(),
|
|
82
|
+
string: async () => r.text(),
|
|
83
|
+
size: r.bytes().length,
|
|
84
|
+
encodingFormat: r.type ?? void 0
|
|
85
|
+
}),
|
|
86
|
+
close: () => Promise.resolve()
|
|
87
|
+
};
|
|
88
|
+
}, f = y(void 0), p = () => {
|
|
89
|
+
const t = P(f);
|
|
90
|
+
if (!t)
|
|
91
|
+
throw new Error("useProseReader must be used within a ProseReaderProvider");
|
|
92
|
+
return t;
|
|
93
|
+
}, N = ({
|
|
94
|
+
children: t,
|
|
95
|
+
reader: e
|
|
96
|
+
}) => /* @__PURE__ */ S(f.Provider, { value: e, children: t }), O = () => {
|
|
97
|
+
const { webviewBridge: t } = p(), { postMessage: e } = t;
|
|
98
|
+
return {
|
|
99
|
+
turnRight: () => {
|
|
100
|
+
e("turnRight", void 0);
|
|
101
|
+
},
|
|
102
|
+
turnLeft: () => {
|
|
103
|
+
e("turnLeft", void 0);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
}, k = (t) => {
|
|
107
|
+
const { appBridge: e } = p();
|
|
108
|
+
return R(e, t);
|
|
109
|
+
};
|
|
110
|
+
class T extends C {
|
|
111
|
+
async fetchResourceAsData({
|
|
112
|
+
key: e,
|
|
113
|
+
resourcePath: a
|
|
114
|
+
}) {
|
|
115
|
+
const s = await super.fetchResource({ key: e, resourcePath: a });
|
|
116
|
+
return {
|
|
117
|
+
data: await s.text(),
|
|
118
|
+
headers: Object.fromEntries(s.headers.entries())
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
export {
|
|
123
|
+
T as ReactNativeStreamer,
|
|
124
|
+
N as ReaderProvider,
|
|
125
|
+
D as createArchiveFromExpoFileSystemNext,
|
|
126
|
+
A as useCreateReader,
|
|
127
|
+
w as useLiveRef,
|
|
128
|
+
O as useReader,
|
|
129
|
+
k as useReaderState
|
|
130
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Manifest } from '@prose-reader/streamer';
|
|
2
|
+
import { BridgeMethods, ProsePostMessageSchema } from '../shared';
|
|
3
|
+
export declare const appPostMessageSchema: ProsePostMessageSchema;
|
|
4
|
+
export declare const useCreateReader: (options: BridgeMethods) => {
|
|
5
|
+
webviewBridge: {
|
|
6
|
+
postMessage: <EventName extends keyof ProsePostMessageSchema, Args extends EventName extends keyof ProsePostMessageSchema ? ProsePostMessageSchema[EventName]["validate"] extends (data: unknown) => unknown ? ReturnType<ProsePostMessageSchema[EventName]["validate"]> : import('@webview-bridge/types').Primitive | Record<string, import('@webview-bridge/types').Primitive> : never>(eventName: EventName, args: Args, options?: {
|
|
7
|
+
broadcast: boolean;
|
|
8
|
+
}) => void;
|
|
9
|
+
WebView: React.ForwardRefExoticComponent<import('react-native-webview/lib/WebViewTypes').IOSWebViewProps & import('react-native-webview/lib/WebViewTypes').AndroidWebViewProps & import('react-native-webview/lib/WebViewTypes').WindowsWebViewProps & React.RefAttributes<import('@webview-bridge/react-native').BridgeWebView>>;
|
|
10
|
+
linkWebMethod<T>(): {
|
|
11
|
+
current: import('@webview-bridge/react-native').WebMethod<T>;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
ReaderWebView: import('react').ForwardRefExoticComponent<import('react-native-webview/lib/WebViewTypes').IOSWebViewProps & import('react-native-webview/lib/WebViewTypes').AndroidWebViewProps & import('react-native-webview/lib/WebViewTypes').WindowsWebViewProps & import('react').RefAttributes<import('@webview-bridge/react-native').BridgeWebView>>;
|
|
15
|
+
appBridge: import('@webview-bridge/types').BridgeStore<import('.').BridgeState & BridgeMethods>;
|
|
16
|
+
load: (manifest: Manifest) => void;
|
|
17
|
+
} | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../useLiveRef-Dg4CKqYn.cjs");exports.useLiveRef=e.useLiveRef;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ContextState, Manifest, PaginationState, createReader } from '@prose-reader/core';
|
|
2
|
+
import { Bridge, BridgeStore } from '@webview-bridge/react-native';
|
|
3
|
+
type ReaderOptions = Parameters<typeof createReader>[0];
|
|
4
|
+
type RnPaginationState = Omit<PaginationState, "navigationId">;
|
|
5
|
+
type RnContextState = Omit<ContextState, "containerElement" | "rootElement">;
|
|
6
|
+
export interface BridgeState extends Bridge {
|
|
7
|
+
pagination: RnPaginationState | undefined;
|
|
8
|
+
setPagination: (pagination: RnPaginationState) => Promise<void>;
|
|
9
|
+
context: RnContextState | undefined;
|
|
10
|
+
setContext: (context: RnContextState) => Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export type BridgeMethods = {
|
|
13
|
+
getResource: (resource: Parameters<NonNullable<ReaderOptions["getResource"]>>[0]) => Promise<{
|
|
14
|
+
data: string;
|
|
15
|
+
headers?: Record<string, string>;
|
|
16
|
+
}>;
|
|
17
|
+
};
|
|
18
|
+
export type ProseBridgeStore = BridgeStore<BridgeMethods & BridgeState>;
|
|
19
|
+
export type ProsePostMessageSchema = {
|
|
20
|
+
load: {
|
|
21
|
+
validate: (data: unknown) => {
|
|
22
|
+
manifest: Manifest;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
turnRight: {
|
|
26
|
+
validate: () => void;
|
|
27
|
+
};
|
|
28
|
+
turnLeft: {
|
|
29
|
+
validate: () => void;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export { useLiveRef } from './useLiveRef';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useLiveRef: <T>(value: T) => import('react').RefObject<T>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const s=require("react"),t=e=>{const r=s.useRef(e);return s.useEffect(()=>{r.current=e},[e]),r};exports.useLiveRef=t;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@webview-bridge/web"),r=()=>o.linkBridge({onReady:async()=>{}}),s=({bridge:t,reader:e,containerElement:i})=>(t.addEventListener("load",n=>{e.load({containerElement:i,manifest:n.manifest})}),t.addEventListener("turnRight",()=>{e.navigation.turnRight()}),t.addEventListener("turnLeft",()=>{e.navigation.turnLeft()}),e.pagination.state$.subscribe(n=>{t.setPagination(n)}),e.context.state$.subscribe(({containerElement:n,rootElement:c,...a})=>{t.setContext(a)}),e);exports.bridgeReader=s;exports.createReaderBridge=r;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createReader as createReaderCore } from '@prose-reader/core';
|
|
2
|
+
import { ProseBridgeStore, ProsePostMessageSchema } from '../shared';
|
|
3
|
+
type Reader = ReturnType<typeof createReaderCore>;
|
|
4
|
+
export declare const createReaderBridge: () => import('@webview-bridge/web').LinkBridge<import('@webview-bridge/types').ExcludePrimitive<import('../shared').BridgeMethods & import('../shared').BridgeState>, Omit<ProseBridgeStore, "setState">, ProsePostMessageSchema>;
|
|
5
|
+
export declare const bridgeReader: ({ bridge, reader, containerElement, }: {
|
|
6
|
+
reader: Reader;
|
|
7
|
+
bridge: ReturnType<typeof createReaderBridge>;
|
|
8
|
+
containerElement: HTMLElement;
|
|
9
|
+
}) => Reader;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { linkBridge as o } from "@webview-bridge/web";
|
|
2
|
+
const c = () => o({
|
|
3
|
+
onReady: async () => {
|
|
4
|
+
}
|
|
5
|
+
}), u = ({
|
|
6
|
+
bridge: t,
|
|
7
|
+
reader: n,
|
|
8
|
+
containerElement: i
|
|
9
|
+
}) => (t.addEventListener("load", (e) => {
|
|
10
|
+
n.load({
|
|
11
|
+
containerElement: i,
|
|
12
|
+
manifest: e.manifest
|
|
13
|
+
});
|
|
14
|
+
}), t.addEventListener("turnRight", () => {
|
|
15
|
+
n.navigation.turnRight();
|
|
16
|
+
}), t.addEventListener("turnLeft", () => {
|
|
17
|
+
n.navigation.turnLeft();
|
|
18
|
+
}), n.pagination.state$.subscribe((e) => {
|
|
19
|
+
t.setPagination(e);
|
|
20
|
+
}), n.context.state$.subscribe(
|
|
21
|
+
({ containerElement: e, rootElement: s, ...a }) => {
|
|
22
|
+
t.setContext(a);
|
|
23
|
+
}
|
|
24
|
+
), n);
|
|
25
|
+
export {
|
|
26
|
+
u as bridgeReader,
|
|
27
|
+
c as createReaderBridge
|
|
28
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@prose-reader/react-native",
|
|
3
|
+
"version": "1.218.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/native/index.cjs.js",
|
|
6
|
+
"module": "./dist/native/index.es.js",
|
|
7
|
+
"react-native": "./dist/native/index.cjs.js",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/native/index.es.js",
|
|
11
|
+
"require": "./dist/native/index.cjs.js",
|
|
12
|
+
"types": "./dist/native/index.d.ts"
|
|
13
|
+
},
|
|
14
|
+
"./web": {
|
|
15
|
+
"import": "./dist/web/index.es.js",
|
|
16
|
+
"require": "./dist/web/index.cjs.js",
|
|
17
|
+
"types": "./dist/web/index.d.ts"
|
|
18
|
+
},
|
|
19
|
+
"./shared": {
|
|
20
|
+
"import": "./dist/shared/index.es.js",
|
|
21
|
+
"require": "./dist/shared/index.cjs.js",
|
|
22
|
+
"types": "./dist/shared/index.d.ts"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"files": ["/dist"],
|
|
27
|
+
"scripts": {
|
|
28
|
+
"start": "vite build --watch --mode development",
|
|
29
|
+
"build": "vite build",
|
|
30
|
+
"test": "vitest run --coverage"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@webview-bridge/react-native": "^1.7.7"
|
|
34
|
+
},
|
|
35
|
+
"peerDependencies": {
|
|
36
|
+
"@prose-reader/core": "^1.215.0",
|
|
37
|
+
"@prose-reader/shared": "^1.215.0",
|
|
38
|
+
"@prose-reader/streamer": "^1.215.0",
|
|
39
|
+
"@webview-bridge/react-native": "^1.7.7",
|
|
40
|
+
"@webview-bridge/web": "^1.7.7",
|
|
41
|
+
"expo-file-system": "^18.1.10",
|
|
42
|
+
"react": "19.x",
|
|
43
|
+
"rxjs": "*"
|
|
44
|
+
}
|
|
45
|
+
}
|