@prose-reader/react-native 1.305.0 → 1.307.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.
@@ -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;
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],[]);return(0,r.createArchive)({filename:n,records:a.reduce((e,t)=>t instanceof i.Directory?[...e,...o(t)]:[...e,t],[]).map(e=>e instanceof i.Directory?{dir:!0,basename:(0,r.getUriBasename)(e.name),uri:e.uri.replace(`file://`,``)}:{dir:!1,basename:(0,r.getUriBasename)(e.name),uri:e.uri.replace(`file://`,``),size:e.info().size??0,encodingFormat:e.type??void 0,...(0,r.blobFileAccessors)(async()=>new Blob([await e.arrayBuffer()]))}),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;
@@ -1,11 +1,11 @@
1
1
  import { t as e } from "../shared-iVT9o4xR.js";
2
2
  import { bridge as t, createWebView as n, postMessageSchema as r, useBridge as i } from "@webview-bridge/react-native";
3
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";
4
+ import { Streamer as u, blobFileAccessors as d, createArchive as f, getUriBasename as p, sortByTitleComparator as m } from "@prose-reader/streamer";
5
+ import { Directory as h } from "expo-file-system/next";
6
+ import { jsx as g } from "react/jsx-runtime";
7
7
  //#region src/native/useProseBridge.ts
8
- var h = (n) => {
8
+ var _ = (n) => {
9
9
  let r = e(n), [i] = l(() => t(({ set: e }) => ({
10
10
  pagination: void 0,
11
11
  setPagination: async (t) => {
@@ -20,17 +20,17 @@ var h = (n) => {
20
20
  }
21
21
  })));
22
22
  return i;
23
- }, g = r({
23
+ }, v = r({
24
24
  load: { validate: (e) => e },
25
25
  turnRight: { validate: () => {} },
26
26
  turnLeft: { validate: () => {} }
27
- }), _ = (e) => {
28
- let [t, r] = l(void 0), i = h(e), a = t?.postMessage;
27
+ }), y = (e) => {
28
+ let [t, r] = l(void 0), i = _(e), a = t?.postMessage;
29
29
  c(() => {
30
30
  i && r(n({
31
31
  bridge: i,
32
32
  debug: !0,
33
- postMessageSchema: g
33
+ postMessageSchema: v
34
34
  }));
35
35
  }, [i]);
36
36
  let s = o((e) => {
@@ -42,39 +42,35 @@ var h = (n) => {
42
42
  appBridge: i,
43
43
  load: s
44
44
  } : null;
45
- }, v = async (e, { orderByAlpha: t, name: n } = {}) => {
45
+ }, b = async (e, { orderByAlpha: t, name: n } = {}) => {
46
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 ? {
47
+ t && (r = r.slice().sort((e, t) => m(e.name, t.name)));
48
+ let i = (e) => e.list().reduce((e, t) => t instanceof h ? [...e, ...i(t)] : [...e, t], []);
49
+ return f({
50
+ filename: n,
51
+ records: r.reduce((e, t) => t instanceof h ? [...e, ...i(t)] : [...e, t], []).map((e) => e instanceof h ? {
52
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
53
+ basename: p(e.name),
54
+ uri: e.uri.replace("file://", "")
58
55
  } : {
59
56
  dir: !1,
60
- basename: d(e.name),
57
+ basename: p(e.name),
61
58
  uri: e.uri.replace("file://", ""),
62
- blob: async () => new Blob([await e.arrayBuffer()]),
63
- string: async () => e.text(),
64
59
  size: e.info().size ?? 0,
65
- encodingFormat: e.type ?? void 0
60
+ encodingFormat: e.type ?? void 0,
61
+ ...d(async () => new Blob([await e.arrayBuffer()]))
66
62
  }),
67
63
  close: () => Promise.resolve()
68
- };
69
- }, y = a(void 0), b = () => {
70
- let e = s(y);
64
+ });
65
+ }, x = a(void 0), S = () => {
66
+ let e = s(x);
71
67
  if (!e) throw Error("useProseReader must be used within a ProseReaderProvider");
72
68
  return e;
73
- }, x = ({ children: e, reader: t }) => /* @__PURE__ */ m(y.Provider, {
69
+ }, C = ({ children: e, reader: t }) => /* @__PURE__ */ g(x.Provider, {
74
70
  value: t,
75
71
  children: e
76
- }), S = () => {
77
- let { webviewBridge: e } = b(), { postMessage: t } = e;
72
+ }), w = () => {
73
+ let { webviewBridge: e } = S(), { postMessage: t } = e;
78
74
  return {
79
75
  turnRight: () => {
80
76
  t("turnRight", void 0);
@@ -83,10 +79,10 @@ var h = (n) => {
83
79
  t("turnLeft", void 0);
84
80
  }
85
81
  };
86
- }, C = (e) => {
87
- let { appBridge: t } = b();
82
+ }, T = (e) => {
83
+ let { appBridge: t } = S();
88
84
  return i(t, e);
89
- }, w = class extends u {
85
+ }, E = class extends u {
90
86
  async fetchResourceAsData({ key: e, resourcePath: t }) {
91
87
  let n = await super.fetchResource({
92
88
  key: e,
@@ -99,4 +95,4 @@ var h = (n) => {
99
95
  }
100
96
  };
101
97
  //#endregion
102
- export { w as ReactNativeStreamer, x as ReaderProvider, v as createArchiveFromExpoFileSystemNext, _ as useCreateReader, e as useLiveRef, S as useReader, C as useReaderState };
98
+ export { E as ReactNativeStreamer, C as ReaderProvider, b as createArchiveFromExpoFileSystemNext, y as useCreateReader, e as useLiveRef, w as useReader, T as useReaderState };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prose-reader/react-native",
3
- "version": "1.305.0",
3
+ "version": "1.307.0",
4
4
  "type": "module",
5
5
  "main": "./dist/native/index.cjs.js",
6
6
  "module": "./dist/native/index.es.js",
@@ -41,5 +41,5 @@
41
41
  "react": "19.x",
42
42
  "rxjs": "*"
43
43
  },
44
- "gitHead": "9c94c0d55718d2054c2f12702d05464a361c717f"
44
+ "gitHead": "2589a3a1ee950ebfa8c6ad1a3b77e12345226bf6"
45
45
  }