@gurge/sdk-react-native 0.3.64 → 0.3.69
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/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/viteWorkerURL.constant.mjs +27 -13
- package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
- package/package.json +1 -1
- package/react-native/HinkalProvider.cjs +1 -1
- package/react-native/HinkalProvider.mjs +2 -2
- package/react-native/HinkalWebViewWorker.cjs +98 -0
- package/react-native/HinkalWebViewWorker.mjs +174 -0
- package/react-native/bridge/HinkalRNWorker.cjs +1 -0
- package/react-native/bridge/HinkalRNWorker.mjs +26 -0
- package/react-native/bridge/serialization.utils.cjs +1 -0
- package/react-native/bridge/serialization.utils.mjs +13 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`/assets/snarkjsWorkerLauncher-
|
|
1
|
+
var e=`/assets/snarkjsWorkerLauncher-BgZW26bM.js`;exports.default=e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`/assets/utxoWorkerLauncher-
|
|
1
|
+
var e=`/assets/utxoWorkerLauncher-DvkI4llp.js`;exports.default=e;
|
|
@@ -1,13 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
|
|
2
|
+
const domain = 'https://storage.googleapis.com/hinkal-workers-staging';
|
|
3
|
+
|
|
4
|
+
const WORKER_CDN_URLS = {
|
|
5
|
+
ZKProof: domain + '/0.3.69/' + 'zkProofWorkerLauncher.js',
|
|
6
|
+
SnarkJS: domain + '/0.3.69/' + 'snarkjsWorkerLauncher.js',
|
|
7
|
+
UTXO: domain + '/0.3.69/' + 'utxoWorkerLauncher.js',
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
// Returns a blob:// URL which points
|
|
11
|
+
// to a javascript file which will call
|
|
12
|
+
// importScripts with the given URL
|
|
13
|
+
async function getWorkerURL(url) {
|
|
14
|
+
const contentRes = await fetch(url);
|
|
15
|
+
const content = await contentRes.text()
|
|
16
|
+
|
|
17
|
+
return URL.createObjectURL(new Blob([content], { type: "application/javascript" }));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
var e = /* @__PURE__ */ ((r) => (r.ZKProof = "ZKProof", r.SnarkJS = "SnarkJS", r.UTXO = "UTXO", r))(e || {});
|
|
21
|
+
|
|
22
|
+
const n = async () => ({
|
|
23
|
+
[e.ZKProof]: await getWorkerURL(WORKER_CDN_URLS.ZKProof),
|
|
24
|
+
[e.SnarkJS]: await getWorkerURL(WORKER_CDN_URLS.SnarkJS),
|
|
25
|
+
[e.UTXO]: await getWorkerURL(WORKER_CDN_URLS.UTXO),
|
|
26
|
+
});
|
|
27
|
+
export { n as getWorkerViteURL, WORKER_CDN_URLS };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`/assets/zkProofWorkerLauncher-
|
|
1
|
+
var e=`/assets/zkProofWorkerLauncher-sNtxURBH.js`;exports.default=e;
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../_virtual/_rolldown/runtime.cjs`);const e=require(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`./HinkalWebViewWorker.cjs`);let t=require(`react/jsx-runtime`);var n=({children:n})=>(0,t.jsxs)(t.Fragment,{children:[n,(0,t.jsx)(e,{})]});exports.HinkalProvider=n;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import e from "
|
|
1
|
+
import e from "./HinkalWebViewWorker.mjs";
|
|
2
2
|
import { Fragment as t, jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
3
|
-
//#region
|
|
3
|
+
//#region ./react-native/HinkalProvider.tsx
|
|
4
4
|
var i = ({ children: i }) => /* @__PURE__ */ r(t, { children: [i, /* @__PURE__ */ n(e, {})] });
|
|
5
5
|
//#endregion
|
|
6
6
|
export { i as HinkalProvider };
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../common/src/webworker/workerFactory.cjs`),t=require(`../dist/libs/shared/workers-prebuild/viteWorkerURL.constant.es.cjs`),n=require(`./bridge/serialization.utils.cjs`),r=require(`./bridge/HinkalRNWorker.cjs`);let i=require(`react-native`),a=require(`react`),o=require(`react-native-webview`),s=require(`react/jsx-runtime`);var c=`${new URL(Object.values(t.WORKER_CDN_URLS)[0]).origin}/`;e.WorkerFactory.rnWorkerFactory=e=>new r.HinkalRNWorker(e);var l=`
|
|
2
|
+
if (!window.__hinkalPageBoot) (function(){
|
|
3
|
+
window.__hinkalPageBoot = true;
|
|
4
|
+
var URLS = ${JSON.stringify(t.WORKER_CDN_URLS)};
|
|
5
|
+
var BLOBS = {};
|
|
6
|
+
|
|
7
|
+
function replacer(_key, value){
|
|
8
|
+
if (typeof value === 'bigint') return { __bigint: value.toString() };
|
|
9
|
+
if (value instanceof Set) return { __set: Array.from(value) };
|
|
10
|
+
if (value instanceof Map) return { __map: Array.from(value.entries()) };
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
function revive(value){
|
|
14
|
+
if (value === null || typeof value !== 'object') return value;
|
|
15
|
+
var keys = Object.keys(value);
|
|
16
|
+
if (keys.length === 1) {
|
|
17
|
+
if (typeof value.__bigint === 'string') return BigInt(value.__bigint);
|
|
18
|
+
if (Array.isArray(value.__set)) return new Set(value.__set.map(revive));
|
|
19
|
+
if (Array.isArray(value.__map)) return new Map(value.__map.map(function(entry){ return [revive(entry[0]), revive(entry[1])]; }));
|
|
20
|
+
}
|
|
21
|
+
if (Array.isArray(value)) return value.map(revive);
|
|
22
|
+
var out = {}; for (var i = 0; i < keys.length; i++) out[keys[i]] = revive(value[keys[i]]); return out;
|
|
23
|
+
}
|
|
24
|
+
function post(payload){ try { window.ReactNativeWebView.postMessage(JSON.stringify(payload, replacer)); } catch(_){} }
|
|
25
|
+
function describe(error){
|
|
26
|
+
if (!error) return 'worker error';
|
|
27
|
+
if (error.message) return error.message;
|
|
28
|
+
if (error.error && error.error.stack) return error.error.stack;
|
|
29
|
+
try { return JSON.stringify(error); } catch(_){ return String(error); }
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
async function blobUrl(url){
|
|
33
|
+
if (BLOBS[url]) return BLOBS[url];
|
|
34
|
+
var response = await fetch(url);
|
|
35
|
+
if (!response.ok) throw new Error('HTTP ' + response.status + ' ' + url);
|
|
36
|
+
var body = await response.text();
|
|
37
|
+
BLOBS[url] = URL.createObjectURL(new Blob([${JSON.stringify(`(function(){
|
|
38
|
+
var post = self.postMessage.bind(self);
|
|
39
|
+
function describe(error){
|
|
40
|
+
if (!error) return 'unknown';
|
|
41
|
+
var parts = [];
|
|
42
|
+
if (error.message) parts.push(error.message);
|
|
43
|
+
if (error.error && error.error.stack) parts.push(error.error.stack);
|
|
44
|
+
if (!parts.length) { try { parts.push(JSON.stringify(error)); } catch(_) { parts.push(String(error)); } }
|
|
45
|
+
return parts.join(' | ');
|
|
46
|
+
}
|
|
47
|
+
self.addEventListener('error', function(event){ try { post({ __hinkalWorkerError: describe(event) }); } catch(_){} });
|
|
48
|
+
self.addEventListener('unhandledrejection', function(event){ try { post({ __hinkalWorkerError: 'unhandledrejection: ' + describe(event && event.reason) }); } catch(_){} });
|
|
49
|
+
try { post({ __hinkalWorkerReady: true }); } catch(_){}
|
|
50
|
+
})();`)}, body], { type: 'application/javascript' }));
|
|
51
|
+
return BLOBS[url];
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function spawn(url){
|
|
55
|
+
try { return new Worker(url, { type: 'module' }); } catch(_){ return new Worker(url); }
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
window.handleMessage = async function(envelope){
|
|
59
|
+
var requestId = envelope && envelope.requestId;
|
|
60
|
+
var variant = envelope && envelope.variant;
|
|
61
|
+
var message = revive(envelope && envelope.message);
|
|
62
|
+
var url = URLS[variant];
|
|
63
|
+
if (!url) return post({ requestId: requestId, type: 'ERROR', error: 'Unknown variant: ' + variant });
|
|
64
|
+
|
|
65
|
+
var worker;
|
|
66
|
+
try { worker = spawn(await blobUrl(url)); }
|
|
67
|
+
catch (error) { return post({ requestId: requestId, type: 'ERROR', error: 'spawn failed: ' + describe(error) }); }
|
|
68
|
+
|
|
69
|
+
var done = false, ready = false, pending = message;
|
|
70
|
+
function finish(){ if (done) return; done = true; try { worker.terminate(); } catch(_){} }
|
|
71
|
+
|
|
72
|
+
worker.onmessage = function(event){
|
|
73
|
+
var data = event && event.data;
|
|
74
|
+
if (data && typeof data === 'object') {
|
|
75
|
+
if (data.__hinkalWorkerReady) {
|
|
76
|
+
ready = true;
|
|
77
|
+
try { worker.postMessage(pending); pending = null; }
|
|
78
|
+
catch (error) { post({ requestId: requestId, type: 'ERROR', error: 'postMessage failed: ' + describe(error) }); finish(); }
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (typeof data.__hinkalWorkerError === 'string') {
|
|
82
|
+
post({ requestId: requestId, type: 'ERROR', error: data.__hinkalWorkerError });
|
|
83
|
+
finish();
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
post({ requestId: requestId, type: 'RESULT', data: data });
|
|
88
|
+
finish();
|
|
89
|
+
};
|
|
90
|
+
worker.onerror = function(event){
|
|
91
|
+
post({ requestId: requestId, type: 'ERROR', error: (ready ? 'worker runtime: ' : 'worker startup: ') + describe(event) });
|
|
92
|
+
finish();
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
post({ type: 'READY' });
|
|
97
|
+
})();
|
|
98
|
+
true;`,u=`<!DOCTYPE html><html><head><meta charset="utf-8"/></head><body><script>${l}<\/script></body></html>`,d=i.StyleSheet.create({hiddenHost:{position:`absolute`,height:1,width:1,left:-9999,top:-9999,opacity:0}}),f=()=>{let e=(0,a.useRef)(null),t=(0,a.useRef)({ready:!1,queue:[]}),r=(0,a.useCallback)((t,r,a)=>{let o;try{o=JSON.stringify({requestId:t,variant:r,message:a},n.bigIntReplacer)}catch(e){i.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,{requestId:t,type:`ERROR`,error:`serialize failed: ${e?.message??e}`});return}e.current?.injectJavaScript(`window.handleMessage && window.handleMessage(${o}); true;`)},[]);(0,a.useEffect)(()=>{let e=i.DeviceEventEmitter.addListener(`TO_WEBVIEW_WORKER`,e=>{let n={requestId:e?.__requestId??``,variant:e?.variant??``,message:e?.message};t.current.ready?r(n.requestId,n.variant,n.message):t.current.queue.push(n)});return()=>e.remove()},[r]);let f=(0,a.useCallback)(e=>{let a;try{a=n.reviveBigInts(JSON.parse(e.nativeEvent.data))}catch(e){i.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,{type:`ERROR`,error:e?.message??`parse error`});return}if(a?.type===`READY`){t.current.ready=!0;let e=t.current.queue;t.current.queue=[],e.forEach(({requestId:e,variant:t,message:n})=>r(e,t,n));return}i.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,a)},[r]);return(0,s.jsx)(i.View,{pointerEvents:`none`,style:d.hiddenHost,children:(0,s.jsx)(o.WebView,{ref:e,source:{html:u,baseUrl:c},originWhitelist:[`*`],javaScriptEnabled:!0,domStorageEnabled:!0,androidLayerType:`hardware`,onMessage:f,onLoad:()=>e.current?.injectJavaScript(l)})})};module.exports=f;
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { WorkerFactory as e } from "../common/src/webworker/workerFactory.mjs";
|
|
2
|
+
import { WORKER_CDN_URLS as t } from "../common/src/webworker/viteWorkerURL.constant.mjs";
|
|
3
|
+
import { bigIntReplacer as n, reviveBigInts as r } from "./bridge/serialization.utils.mjs";
|
|
4
|
+
import { HinkalRNWorker as i } from "./bridge/HinkalRNWorker.mjs";
|
|
5
|
+
import { DeviceEventEmitter as a, StyleSheet as o, View as s } from "react-native";
|
|
6
|
+
import { useCallback as c, useEffect as l, useRef as u } from "react";
|
|
7
|
+
import { WebView as d } from "react-native-webview";
|
|
8
|
+
import { jsx as f } from "react/jsx-runtime";
|
|
9
|
+
//#region ./react-native/HinkalWebViewWorker.tsx
|
|
10
|
+
var p = `${new URL(Object.values(t)[0]).origin}/`;
|
|
11
|
+
e.rnWorkerFactory = (e) => new i(e);
|
|
12
|
+
var m = `
|
|
13
|
+
if (!window.__hinkalPageBoot) (function(){
|
|
14
|
+
window.__hinkalPageBoot = true;
|
|
15
|
+
var URLS = ${JSON.stringify(t)};
|
|
16
|
+
var BLOBS = {};
|
|
17
|
+
|
|
18
|
+
function replacer(_key, value){
|
|
19
|
+
if (typeof value === 'bigint') return { __bigint: value.toString() };
|
|
20
|
+
if (value instanceof Set) return { __set: Array.from(value) };
|
|
21
|
+
if (value instanceof Map) return { __map: Array.from(value.entries()) };
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
function revive(value){
|
|
25
|
+
if (value === null || typeof value !== 'object') return value;
|
|
26
|
+
var keys = Object.keys(value);
|
|
27
|
+
if (keys.length === 1) {
|
|
28
|
+
if (typeof value.__bigint === 'string') return BigInt(value.__bigint);
|
|
29
|
+
if (Array.isArray(value.__set)) return new Set(value.__set.map(revive));
|
|
30
|
+
if (Array.isArray(value.__map)) return new Map(value.__map.map(function(entry){ return [revive(entry[0]), revive(entry[1])]; }));
|
|
31
|
+
}
|
|
32
|
+
if (Array.isArray(value)) return value.map(revive);
|
|
33
|
+
var out = {}; for (var i = 0; i < keys.length; i++) out[keys[i]] = revive(value[keys[i]]); return out;
|
|
34
|
+
}
|
|
35
|
+
function post(payload){ try { window.ReactNativeWebView.postMessage(JSON.stringify(payload, replacer)); } catch(_){} }
|
|
36
|
+
function describe(error){
|
|
37
|
+
if (!error) return 'worker error';
|
|
38
|
+
if (error.message) return error.message;
|
|
39
|
+
if (error.error && error.error.stack) return error.error.stack;
|
|
40
|
+
try { return JSON.stringify(error); } catch(_){ return String(error); }
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async function blobUrl(url){
|
|
44
|
+
if (BLOBS[url]) return BLOBS[url];
|
|
45
|
+
var response = await fetch(url);
|
|
46
|
+
if (!response.ok) throw new Error('HTTP ' + response.status + ' ' + url);
|
|
47
|
+
var body = await response.text();
|
|
48
|
+
BLOBS[url] = URL.createObjectURL(new Blob([${JSON.stringify("(function(){\n var post = self.postMessage.bind(self);\n function describe(error){\n if (!error) return 'unknown';\n var parts = [];\n if (error.message) parts.push(error.message);\n if (error.error && error.error.stack) parts.push(error.error.stack);\n if (!parts.length) { try { parts.push(JSON.stringify(error)); } catch(_) { parts.push(String(error)); } }\n return parts.join(' | ');\n }\n self.addEventListener('error', function(event){ try { post({ __hinkalWorkerError: describe(event) }); } catch(_){} });\n self.addEventListener('unhandledrejection', function(event){ try { post({ __hinkalWorkerError: 'unhandledrejection: ' + describe(event && event.reason) }); } catch(_){} });\n try { post({ __hinkalWorkerReady: true }); } catch(_){}\n})();")}, body], { type: 'application/javascript' }));
|
|
49
|
+
return BLOBS[url];
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function spawn(url){
|
|
53
|
+
try { return new Worker(url, { type: 'module' }); } catch(_){ return new Worker(url); }
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
window.handleMessage = async function(envelope){
|
|
57
|
+
var requestId = envelope && envelope.requestId;
|
|
58
|
+
var variant = envelope && envelope.variant;
|
|
59
|
+
var message = revive(envelope && envelope.message);
|
|
60
|
+
var url = URLS[variant];
|
|
61
|
+
if (!url) return post({ requestId: requestId, type: 'ERROR', error: 'Unknown variant: ' + variant });
|
|
62
|
+
|
|
63
|
+
var worker;
|
|
64
|
+
try { worker = spawn(await blobUrl(url)); }
|
|
65
|
+
catch (error) { return post({ requestId: requestId, type: 'ERROR', error: 'spawn failed: ' + describe(error) }); }
|
|
66
|
+
|
|
67
|
+
var done = false, ready = false, pending = message;
|
|
68
|
+
function finish(){ if (done) return; done = true; try { worker.terminate(); } catch(_){} }
|
|
69
|
+
|
|
70
|
+
worker.onmessage = function(event){
|
|
71
|
+
var data = event && event.data;
|
|
72
|
+
if (data && typeof data === 'object') {
|
|
73
|
+
if (data.__hinkalWorkerReady) {
|
|
74
|
+
ready = true;
|
|
75
|
+
try { worker.postMessage(pending); pending = null; }
|
|
76
|
+
catch (error) { post({ requestId: requestId, type: 'ERROR', error: 'postMessage failed: ' + describe(error) }); finish(); }
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (typeof data.__hinkalWorkerError === 'string') {
|
|
80
|
+
post({ requestId: requestId, type: 'ERROR', error: data.__hinkalWorkerError });
|
|
81
|
+
finish();
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
post({ requestId: requestId, type: 'RESULT', data: data });
|
|
86
|
+
finish();
|
|
87
|
+
};
|
|
88
|
+
worker.onerror = function(event){
|
|
89
|
+
post({ requestId: requestId, type: 'ERROR', error: (ready ? 'worker runtime: ' : 'worker startup: ') + describe(event) });
|
|
90
|
+
finish();
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
post({ type: 'READY' });
|
|
95
|
+
})();
|
|
96
|
+
true;`, h = `<!DOCTYPE html><html><head><meta charset="utf-8"/></head><body><script>${m}<\/script></body></html>`, g = o.create({ hiddenHost: {
|
|
97
|
+
position: "absolute",
|
|
98
|
+
height: 1,
|
|
99
|
+
width: 1,
|
|
100
|
+
left: -9999,
|
|
101
|
+
top: -9999,
|
|
102
|
+
opacity: 0
|
|
103
|
+
} }), _ = () => {
|
|
104
|
+
let e = u(null), t = u({
|
|
105
|
+
ready: !1,
|
|
106
|
+
queue: []
|
|
107
|
+
}), i = c((t, r, i) => {
|
|
108
|
+
let o;
|
|
109
|
+
try {
|
|
110
|
+
o = JSON.stringify({
|
|
111
|
+
requestId: t,
|
|
112
|
+
variant: r,
|
|
113
|
+
message: i
|
|
114
|
+
}, n);
|
|
115
|
+
} catch (e) {
|
|
116
|
+
a.emit("FROM_WEBVIEW_WORKER", {
|
|
117
|
+
requestId: t,
|
|
118
|
+
type: "ERROR",
|
|
119
|
+
error: `serialize failed: ${e?.message ?? e}`
|
|
120
|
+
});
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
e.current?.injectJavaScript(`window.handleMessage && window.handleMessage(${o}); true;`);
|
|
124
|
+
}, []);
|
|
125
|
+
l(() => {
|
|
126
|
+
let e = a.addListener("TO_WEBVIEW_WORKER", (e) => {
|
|
127
|
+
let n = {
|
|
128
|
+
requestId: e?.__requestId ?? "",
|
|
129
|
+
variant: e?.variant ?? "",
|
|
130
|
+
message: e?.message
|
|
131
|
+
};
|
|
132
|
+
t.current.ready ? i(n.requestId, n.variant, n.message) : t.current.queue.push(n);
|
|
133
|
+
});
|
|
134
|
+
return () => e.remove();
|
|
135
|
+
}, [i]);
|
|
136
|
+
let o = c((e) => {
|
|
137
|
+
let n;
|
|
138
|
+
try {
|
|
139
|
+
n = r(JSON.parse(e.nativeEvent.data));
|
|
140
|
+
} catch (e) {
|
|
141
|
+
a.emit("FROM_WEBVIEW_WORKER", {
|
|
142
|
+
type: "ERROR",
|
|
143
|
+
error: e?.message ?? "parse error"
|
|
144
|
+
});
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
if (n?.type === "READY") {
|
|
148
|
+
t.current.ready = !0;
|
|
149
|
+
let e = t.current.queue;
|
|
150
|
+
t.current.queue = [], e.forEach(({ requestId: e, variant: t, message: n }) => i(e, t, n));
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
a.emit("FROM_WEBVIEW_WORKER", n);
|
|
154
|
+
}, [i]);
|
|
155
|
+
return /* @__PURE__ */ f(s, {
|
|
156
|
+
pointerEvents: "none",
|
|
157
|
+
style: g.hiddenHost,
|
|
158
|
+
children: /* @__PURE__ */ f(d, {
|
|
159
|
+
ref: e,
|
|
160
|
+
source: {
|
|
161
|
+
html: h,
|
|
162
|
+
baseUrl: p
|
|
163
|
+
},
|
|
164
|
+
originWhitelist: ["*"],
|
|
165
|
+
javaScriptEnabled: !0,
|
|
166
|
+
domStorageEnabled: !0,
|
|
167
|
+
androidLayerType: "hardware",
|
|
168
|
+
onMessage: o,
|
|
169
|
+
onLoad: () => e.current?.injectJavaScript(m)
|
|
170
|
+
})
|
|
171
|
+
});
|
|
172
|
+
};
|
|
173
|
+
//#endregion
|
|
174
|
+
export { _ as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`../../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./serialization.utils.cjs`);let t=require(`react-native`);var n=class{onmessage=null;onerror=null;requestId=e.nextRequestId();subscription;constructor(e){this.variant=e,this.subscription=t.DeviceEventEmitter.addListener(`FROM_WEBVIEW_WORKER`,e=>{!e||e.requestId!==this.requestId||(e.type===`RESULT`?this.onmessage?.({data:e.data}):e.type===`ERROR`&&this.onerror?.(Error(e.error??`WebView worker error`)))})}postMessage(e){t.DeviceEventEmitter.emit(`TO_WEBVIEW_WORKER`,{__requestId:this.requestId,variant:this.variant,message:e})}terminate(){this.subscription?.remove?.(),this.subscription=null}};exports.HinkalRNWorker=n;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { nextRequestId as e } from "./serialization.utils.mjs";
|
|
2
|
+
import { DeviceEventEmitter as t } from "react-native";
|
|
3
|
+
//#region ./react-native/bridge/HinkalRNWorker.ts
|
|
4
|
+
var n = class {
|
|
5
|
+
onmessage = null;
|
|
6
|
+
onerror = null;
|
|
7
|
+
requestId = e();
|
|
8
|
+
subscription;
|
|
9
|
+
constructor(e) {
|
|
10
|
+
this.variant = e, this.subscription = t.addListener("FROM_WEBVIEW_WORKER", (e) => {
|
|
11
|
+
!e || e.requestId !== this.requestId || (e.type === "RESULT" ? this.onmessage?.({ data: e.data }) : e.type === "ERROR" && this.onerror?.(Error(e.error ?? "WebView worker error")));
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
postMessage(e) {
|
|
15
|
+
t.emit("TO_WEBVIEW_WORKER", {
|
|
16
|
+
__requestId: this.requestId,
|
|
17
|
+
variant: this.variant,
|
|
18
|
+
message: e
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
terminate() {
|
|
22
|
+
this.subscription?.remove?.(), this.subscription = null;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
//#endregion
|
|
26
|
+
export { n as HinkalRNWorker };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=(e,t)=>typeof t==`bigint`?{__bigint:t.toString()}:t instanceof Set?{__set:Array.from(t)}:t instanceof Map?{__map:Array.from(t.entries())}:t,t=e=>{if(typeof e!=`object`||!e)return e;let n=Object.keys(e);if(n.length===1){if(typeof e.__bigint==`string`)return BigInt(e.__bigint);if(Array.isArray(e.__set))return new Set(e.__set.map(t));if(Array.isArray(e.__map))return new Map(e.__map.map(e=>[t(e[0]),t(e[1])]))}return Array.isArray(e)?e.map(t):Object.fromEntries(n.map(n=>[n,t(e[n])]))},n=()=>`hinkal-rnw-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;exports.bigIntReplacer=e,exports.nextRequestId=n,exports.reviveBigInts=t;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region ./react-native/bridge/serialization.utils.ts
|
|
2
|
+
var e = (e, t) => typeof t == "bigint" ? { __bigint: t.toString() } : t instanceof Set ? { __set: Array.from(t) } : t instanceof Map ? { __map: Array.from(t.entries()) } : t, t = (e) => {
|
|
3
|
+
if (typeof e != "object" || !e) return e;
|
|
4
|
+
let n = Object.keys(e);
|
|
5
|
+
if (n.length === 1) {
|
|
6
|
+
if (typeof e.__bigint == "string") return BigInt(e.__bigint);
|
|
7
|
+
if (Array.isArray(e.__set)) return new Set(e.__set.map(t));
|
|
8
|
+
if (Array.isArray(e.__map)) return new Map(e.__map.map((e) => [t(e[0]), t(e[1])]));
|
|
9
|
+
}
|
|
10
|
+
return Array.isArray(e) ? e.map(t) : Object.fromEntries(n.map((n) => [n, t(e[n])]));
|
|
11
|
+
}, n = () => `hinkal-rnw-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { e as bigIntReplacer, n as nextRequestId, t as reviveBigInts };
|