@prose-reader/react-native 1.301.0 → 1.304.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/native/ReaderProvider.d.ts +1 -1
- package/dist/native/index.cjs.js +1 -1
- package/dist/native/index.es.js +101 -129
- package/dist/shared/index.cjs.js +1 -1
- package/dist/shared/index.es.js +2 -4
- package/dist/shared-C6TEX07M.cjs +1 -0
- package/dist/shared-iVT9o4xR.js +10 -0
- package/dist/web/index.cjs.js +1 -1
- package/dist/web/index.es.js +18 -26
- package/package.json +3 -3
- package/dist/useLiveRef-CYh-YkID.js +0 -10
- package/dist/useLiveRef-Dg4CKqYn.cjs +0 -1
|
@@ -30,4 +30,4 @@ export declare const useProseReaderContext: () => {
|
|
|
30
30
|
export declare const ReaderProvider: ({ children, reader, }: {
|
|
31
31
|
children: React.ReactNode;
|
|
32
32
|
reader: ReturnType<typeof useCreateReader>;
|
|
33
|
-
}) => import("react").JSX.Element;
|
|
33
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
package/dist/native/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../shared-C6TEX07M.cjs");let t=require("@webview-bridge/react-native"),n=require("react"),r=require("@prose-reader/streamer"),i=require("expo-file-system/next"),a=require("react/jsx-runtime");var o=r=>{let i=e.t(r),[a]=(0,n.useState)(()=>(0,t.bridge)(({set:e})=>({pagination:void 0,setPagination:async t=>{e({pagination:t})},context:void 0,setContext:async t=>{e({context:t})},async getResource(e){return i.current.getResource(e)}})));return a},s=(0,t.postMessageSchema)({load:{validate:e=>e},turnRight:{validate:()=>{}},turnLeft:{validate:()=>{}}}),c=e=>{let[r,i]=(0,n.useState)(void 0),a=o(e),c=r?.postMessage;(0,n.useEffect)(()=>{a&&i((0,t.createWebView)({bridge:a,debug:!0,postMessageSchema:s}))},[a]);let l=(0,n.useCallback)(e=>{c?.(`load`,{manifest:e})},[c]);return r?{webviewBridge:r,ReaderWebView:r.WebView,appBridge:a,load:l}:null},l=async(e,{orderByAlpha:t,name:n}={})=>{let a=e.list();t&&(a=a.slice().sort((e,t)=>(0,r.sortByTitleComparator)(e.name,t.name)));let o=e=>e.list().reduce((e,t)=>t instanceof i.Directory?[...e,...o(t)]:[...e,t],[]),s=a.reduce((e,t)=>t instanceof i.Directory?[...e,...o(t)]:[...e,t],[]);return{filename:n||``,records:s.map(e=>e instanceof i.Directory?{dir:!0,basename:(0,r.getUriBasename)(e.name),uri:e.uri.replace(`file://`,``),blob:()=>Promise.resolve(new Blob),string:()=>Promise.resolve(``),size:0}:{dir:!1,basename:(0,r.getUriBasename)(e.name),uri:e.uri.replace(`file://`,``),blob:async()=>new Blob([await e.arrayBuffer()]),string:async()=>e.text(),size:e.info().size??0,encodingFormat:e.type??void 0}),close:()=>Promise.resolve()}},u=(0,n.createContext)(void 0),d=()=>{let e=(0,n.useContext)(u);if(!e)throw Error(`useProseReader must be used within a ProseReaderProvider`);return e},f=({children:e,reader:t})=>(0,a.jsx)(u.Provider,{value:t,children:e}),p=()=>{let{webviewBridge:e}=d(),{postMessage:t}=e;return{turnRight:()=>{t(`turnRight`,void 0)},turnLeft:()=>{t(`turnLeft`,void 0)}}},m=e=>{let{appBridge:n}=d();return(0,t.useBridge)(n,e)},h=class extends r.Streamer{async fetchResourceAsData({key:e,resourcePath:t}){let n=await super.fetchResource({key:e,resourcePath:t});return{data:await n.text(),headers:Object.fromEntries(n.headers.entries())}}};exports.ReactNativeStreamer=h,exports.ReaderProvider=f,exports.createArchiveFromExpoFileSystemNext=l,exports.useCreateReader=c,exports.useLiveRef=e.t,exports.useReader=p,exports.useReaderState=m;
|
package/dist/native/index.es.js
CHANGED
|
@@ -1,130 +1,102 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { Directory as
|
|
6
|
-
import { jsx as
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
},
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
t("turnRight", void 0);
|
|
101
|
-
},
|
|
102
|
-
turnLeft: () => {
|
|
103
|
-
t("turnLeft", void 0);
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
}, k = (e) => {
|
|
107
|
-
const { appBridge: t } = p();
|
|
108
|
-
return R(t, e);
|
|
109
|
-
};
|
|
110
|
-
class T extends C {
|
|
111
|
-
async fetchResourceAsData({
|
|
112
|
-
key: t,
|
|
113
|
-
resourcePath: a
|
|
114
|
-
}) {
|
|
115
|
-
const s = await super.fetchResource({ key: t, 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
|
-
y as useLiveRef,
|
|
128
|
-
O as useReader,
|
|
129
|
-
k as useReaderState
|
|
1
|
+
import { t as e } from "../shared-iVT9o4xR.js";
|
|
2
|
+
import { bridge as t, createWebView as n, postMessageSchema as r, useBridge as i } from "@webview-bridge/react-native";
|
|
3
|
+
import { createContext as a, useCallback as o, useContext as s, useEffect as c, useState as l } from "react";
|
|
4
|
+
import { Streamer as u, getUriBasename as d, sortByTitleComparator as f } from "@prose-reader/streamer";
|
|
5
|
+
import { Directory as p } from "expo-file-system/next";
|
|
6
|
+
import { jsx as m } from "react/jsx-runtime";
|
|
7
|
+
//#region src/native/useProseBridge.ts
|
|
8
|
+
var h = (n) => {
|
|
9
|
+
let r = e(n), [i] = l(() => t(({ set: e }) => ({
|
|
10
|
+
pagination: void 0,
|
|
11
|
+
setPagination: async (t) => {
|
|
12
|
+
e({ pagination: t });
|
|
13
|
+
},
|
|
14
|
+
context: void 0,
|
|
15
|
+
setContext: async (t) => {
|
|
16
|
+
e({ context: t });
|
|
17
|
+
},
|
|
18
|
+
async getResource(e) {
|
|
19
|
+
return r.current.getResource(e);
|
|
20
|
+
}
|
|
21
|
+
})));
|
|
22
|
+
return i;
|
|
23
|
+
}, g = r({
|
|
24
|
+
load: { validate: (e) => e },
|
|
25
|
+
turnRight: { validate: () => {} },
|
|
26
|
+
turnLeft: { validate: () => {} }
|
|
27
|
+
}), _ = (e) => {
|
|
28
|
+
let [t, r] = l(void 0), i = h(e), a = t?.postMessage;
|
|
29
|
+
c(() => {
|
|
30
|
+
i && r(n({
|
|
31
|
+
bridge: i,
|
|
32
|
+
debug: !0,
|
|
33
|
+
postMessageSchema: g
|
|
34
|
+
}));
|
|
35
|
+
}, [i]);
|
|
36
|
+
let s = o((e) => {
|
|
37
|
+
a?.("load", { manifest: e });
|
|
38
|
+
}, [a]);
|
|
39
|
+
return t ? {
|
|
40
|
+
webviewBridge: t,
|
|
41
|
+
ReaderWebView: t.WebView,
|
|
42
|
+
appBridge: i,
|
|
43
|
+
load: s
|
|
44
|
+
} : null;
|
|
45
|
+
}, v = async (e, { orderByAlpha: t, name: n } = {}) => {
|
|
46
|
+
let r = e.list();
|
|
47
|
+
t && (r = r.slice().sort((e, t) => f(e.name, t.name)));
|
|
48
|
+
let i = (e) => e.list().reduce((e, t) => t instanceof p ? [...e, ...i(t)] : [...e, t], []), a = r.reduce((e, t) => t instanceof p ? [...e, ...i(t)] : [...e, t], []);
|
|
49
|
+
return {
|
|
50
|
+
filename: n || "",
|
|
51
|
+
records: a.map((e) => e instanceof p ? {
|
|
52
|
+
dir: !0,
|
|
53
|
+
basename: d(e.name),
|
|
54
|
+
uri: e.uri.replace("file://", ""),
|
|
55
|
+
blob: () => Promise.resolve(new Blob()),
|
|
56
|
+
string: () => Promise.resolve(""),
|
|
57
|
+
size: 0
|
|
58
|
+
} : {
|
|
59
|
+
dir: !1,
|
|
60
|
+
basename: d(e.name),
|
|
61
|
+
uri: e.uri.replace("file://", ""),
|
|
62
|
+
blob: async () => new Blob([await e.arrayBuffer()]),
|
|
63
|
+
string: async () => e.text(),
|
|
64
|
+
size: e.info().size ?? 0,
|
|
65
|
+
encodingFormat: e.type ?? void 0
|
|
66
|
+
}),
|
|
67
|
+
close: () => Promise.resolve()
|
|
68
|
+
};
|
|
69
|
+
}, y = a(void 0), b = () => {
|
|
70
|
+
let e = s(y);
|
|
71
|
+
if (!e) throw Error("useProseReader must be used within a ProseReaderProvider");
|
|
72
|
+
return e;
|
|
73
|
+
}, x = ({ children: e, reader: t }) => /* @__PURE__ */ m(y.Provider, {
|
|
74
|
+
value: t,
|
|
75
|
+
children: e
|
|
76
|
+
}), S = () => {
|
|
77
|
+
let { webviewBridge: e } = b(), { postMessage: t } = e;
|
|
78
|
+
return {
|
|
79
|
+
turnRight: () => {
|
|
80
|
+
t("turnRight", void 0);
|
|
81
|
+
},
|
|
82
|
+
turnLeft: () => {
|
|
83
|
+
t("turnLeft", void 0);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
}, C = (e) => {
|
|
87
|
+
let { appBridge: t } = b();
|
|
88
|
+
return i(t, e);
|
|
89
|
+
}, w = class extends u {
|
|
90
|
+
async fetchResourceAsData({ key: e, resourcePath: t }) {
|
|
91
|
+
let n = await super.fetchResource({
|
|
92
|
+
key: e,
|
|
93
|
+
resourcePath: t
|
|
94
|
+
});
|
|
95
|
+
return {
|
|
96
|
+
data: await n.text(),
|
|
97
|
+
headers: Object.fromEntries(n.headers.entries())
|
|
98
|
+
};
|
|
99
|
+
}
|
|
130
100
|
};
|
|
101
|
+
//#endregion
|
|
102
|
+
export { w as ReactNativeStreamer, x as ReaderProvider, v as createArchiveFromExpoFileSystemNext, _ as useCreateReader, e as useLiveRef, S as useReader, C as useReaderState };
|
package/dist/shared/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../shared-C6TEX07M.cjs");exports.useLiveRef=e.t;
|
package/dist/shared/index.es.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e=require("react");var t=t=>{let n=(0,e.useRef)(t);return(0,e.useEffect)(()=>{n.current=t},[t]),n};Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return t}});
|
package/dist/web/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@webview-bridge/web");var t=()=>(0,e.linkBridge)({onReady:async()=>{}}),n=({bridge:e,reader:t,containerElement:n})=>(e.addEventListener(`load`,e=>{t.load({containerElement:n,manifest:e.manifest})}),e.addEventListener(`turnRight`,()=>{t.navigation.turnRight()}),e.addEventListener(`turnLeft`,()=>{t.navigation.turnLeft()}),t.pagination.state$.subscribe(t=>{e.setPagination(t)}),t.context.subscribe(({rootElement:t,...n})=>{e.setContext(n)}),t);exports.bridgeReader=n,exports.createReaderBridge=t;
|
package/dist/web/index.es.js
CHANGED
|
@@ -1,26 +1,18 @@
|
|
|
1
|
-
import { linkBridge as
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}), t.
|
|
15
|
-
|
|
16
|
-
}), t
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
t.setPagination(e);
|
|
20
|
-
}), n.context.subscribe(({ rootElement: e, ...o }) => {
|
|
21
|
-
t.setContext(o);
|
|
22
|
-
}), n);
|
|
23
|
-
export {
|
|
24
|
-
c as bridgeReader,
|
|
25
|
-
r as createReaderBridge
|
|
26
|
-
};
|
|
1
|
+
import { linkBridge as e } from "@webview-bridge/web";
|
|
2
|
+
//#region src/web/index.ts
|
|
3
|
+
var t = () => e({ onReady: async () => {} }), n = ({ bridge: e, reader: t, containerElement: n }) => (e.addEventListener("load", (e) => {
|
|
4
|
+
t.load({
|
|
5
|
+
containerElement: n,
|
|
6
|
+
manifest: e.manifest
|
|
7
|
+
});
|
|
8
|
+
}), e.addEventListener("turnRight", () => {
|
|
9
|
+
t.navigation.turnRight();
|
|
10
|
+
}), e.addEventListener("turnLeft", () => {
|
|
11
|
+
t.navigation.turnLeft();
|
|
12
|
+
}), t.pagination.state$.subscribe((t) => {
|
|
13
|
+
e.setPagination(t);
|
|
14
|
+
}), t.context.subscribe(({ rootElement: t, ...n }) => {
|
|
15
|
+
e.setContext(n);
|
|
16
|
+
}), t);
|
|
17
|
+
//#endregion
|
|
18
|
+
export { n as bridgeReader, t as createReaderBridge };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prose-reader/react-native",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.304.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/native/index.cjs.js",
|
|
6
6
|
"module": "./dist/native/index.es.js",
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
"@prose-reader/streamer": "^1.215.0",
|
|
38
38
|
"@webview-bridge/react-native": "^1.7.7",
|
|
39
39
|
"@webview-bridge/web": "^1.7.7",
|
|
40
|
-
"expo-file-system": "^
|
|
40
|
+
"expo-file-system": "^56.0.7",
|
|
41
41
|
"react": "19.x",
|
|
42
42
|
"rxjs": "*"
|
|
43
43
|
},
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "1f4e4822d4d74fc2f6025409133db0f4f7f152af"
|
|
45
45
|
}
|
|
@@ -1 +0,0 @@
|
|
|
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;
|