preact-missing-hooks 4.2.0 → 4.4.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.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.modern.mjs +1 -1
- package/dist/index.modern.mjs.map +1 -1
- package/dist/index.module.js +1 -1
- package/dist/index.module.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/react.js +85 -0
- package/dist/useRefPrint.d.ts +39 -0
- package/docs/main.js +31 -0
- package/llm.package.json +110 -155
- package/llm.package.txt +43 -43
- package/package.json +6 -1
- package/src/index.ts +1 -0
- package/src/useRefPrint.ts +116 -0
- package/tests/useRefPrint.test.tsx +115 -0
package/dist/index.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("preact/hooks"),require("preact"),require("preact/compat")):"function"==typeof define&&define.amd?define(["exports","preact/hooks","preact","preact/compat"],n):n((e||self).preactMissingHooks={},e.hooks,e.preact,e.compat)}(this,function(e,n,r,t){var o=new Map;function u(e,n){(null==n||n>e.length)&&(n=e.length);for(var r=0,t=Array(n);r<n;r++)t[r]=e[r];return t}function i(e,n){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,n){if(e){if("string"==typeof e)return u(e,n);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(e,n):void 0}}(e))||n&&e&&"number"==typeof e.length){r&&(e=r);var t=0;return function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function a(){return a=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},a.apply(null,arguments)}function c(){if("undefined"==typeof navigator)return{online:!0};var e={online:navigator.onLine},n=navigator.connection;return n&&(void 0!==n.effectiveType&&(e.effectiveType=n.effectiveType),void 0!==n.downlink&&(e.downlink=n.downlink),void 0!==n.rtt&&(e.rtt=n.rtt),void 0!==n.saveData&&(e.saveData=n.saveData),void 0!==n.type&&(e.connectionType=n.type)),e}function s(e,n){try{var r=e()}catch(e){return n(e)}return r&&r.then?r.then(void 0,n):r}var l=new Map;function f(e){return new Promise(function(n,r){e.onsuccess=function(){return n(e.result)},e.onerror=function(){var n;return r(null!=(n=e.error)?n:new DOMException("Unknown IndexedDB error"))}})}function d(e,n){return n?e.then(function(e){return null==n.onSuccess||n.onSuccess(e),e}).catch(function(e){throw null==n.onError||n.onError(e),e}):e}var v=/\b(?:25[0-5]|2[0-4]\d|1?\d{1,2})(?:\.(?:25[0-5]|2[0-4]\d|1?\d{1,2})){3}\b/g,p=["stun:stun.l.google.com:19302"];function m(e,n){if(null==e)return"";var r=("string"==typeof e?e:String(e)).trim();return r.length>n?r.slice(0,n):r}function g(e){if(!Array.isArray(e))return[];for(var n=[],r=0;r<e.length&&n.length<50;r++){var t=m(e[r],100);t&&n.push(t)}return n}function h(e){var n=m(e,2048);if(!n)return"";try{var r=new URL(n);if("http:"===r.protocol||"https:"===r.protocol)return n}catch(e){}return""}function y(e){try{if("undefined"==typeof window)return!1;var n=window.getComputedStyle(e);return"none"!==n.display&&"hidden"!==n.visibility&&"0"!==n.opacity}catch(e){return!1}}function w(e){var n={};try{for(var r,t=i(Object.keys(e).slice(0,20));!(r=t()).done;){var o=r.value,u=m(o,50);if(u){var a=e[o];"string"==typeof a?n[u]=a.slice(0,500):"number"==typeof a&&Number.isFinite(a)||"boolean"==typeof a?n[u]=a:Array.isArray(a)&&(n[u]=a.map(function(e){return m(e,200)}).filter(Boolean).slice(0,20))}}}catch(e){}return n}function b(){try{if("undefined"==typeof document||!document.querySelectorAll)return;document.querySelectorAll('script[data-llm="true"]').forEach(function(e){return e.remove()})}catch(e){}}e.useClipboard=function(e){void 0===e&&(e={});var r=e.resetDelay,t=void 0===r?2e3:r,o=n.useState(!1),u=o[0],i=o[1],a=n.useState(null),c=a[0],l=a[1],f=n.useCallback(function(){i(!1),l(null)},[]);return{copy:n.useCallback(function(e){try{if(l(null),"undefined"==typeof navigator||!navigator.clipboard){var n=new Error("Clipboard API is not available");return l(n),Promise.resolve(!1)}return Promise.resolve(s(function(){return Promise.resolve(navigator.clipboard.writeText(e)).then(function(){return i(!0),t>0&&setTimeout(function(){return i(!1)},t),!0})},function(e){var n=e instanceof Error?e:new Error(String(e));return l(n),!1}))}catch(e){return Promise.reject(e)}},[t]),paste:n.useCallback(function(){try{if(l(null),"undefined"==typeof navigator||!navigator.clipboard){var e=new Error("Clipboard API is not available");return l(e),Promise.resolve("")}return Promise.resolve(s(function(){return Promise.resolve(navigator.clipboard.readText())},function(e){var n=e instanceof Error?e:new Error(String(e));return l(n),""}))}catch(e){return Promise.reject(e)}},[]),copied:u,error:c,reset:f}},e.useEventBus=function(){var e=n.useCallback(function(e){var n=arguments,r=o.get(e);r&&r.forEach(function(e){return e.apply(void 0,[].slice.call(n,1))})},[]);return{emit:e,on:n.useCallback(function(e,n){var r=o.get(e);return r||(r=new Set,o.set(e,r)),r.add(n),function(){r.delete(n),0===r.size&&o.delete(e)}},[])}},e.useIndexedDB=function(e){var r=n.useState(null),t=r[0],o=r[1],u=n.useState(null),c=u[0],s=u[1],v=n.useState(!1),p=v[0],m=v[1],g=n.useRef(e);return g.current=e,n.useEffect(function(){var e=!1;s(null),m(!1),o(null);var n=g.current;return function(e){var n=e.name+"_v"+e.version,r=l.get(n);return r||(r=function(e){return new Promise(function(n,r){var t=indexedDB.open(e.name,e.version);t.onerror=function(){var e;return r(null!=(e=t.error)?e:new DOMException("Failed to open database"))},t.onsuccess=function(){return n(t.result)},t.onupgradeneeded=function(n){for(var r=n.target.result,t=e.tables,o=0,u=Object.keys(t);o<u.length;o++){var a=u[o],c=t[a];if(!r.objectStoreNames.contains(a)){var s,l=r.createObjectStore(a,{keyPath:c.keyPath,autoIncrement:null!=(s=c.autoIncrement)&&s});if(c.indexes)for(var f,d=i(c.indexes);!(f=d()).done;){var v=f.value;l.createIndex(v,v,{unique:!1})}}}}})}(e),l.set(n,r),r)}({name:n.name,version:n.version,tables:n.tables}).then(function(n){if(e)n.close();else{var r=function(e){return{get db(){return e},hasTable:function(n){return e.objectStoreNames.contains(n)},table:function(n){return function(e,n){return function(e,n){function r(r){return e.transaction([n],r).objectStore(n)}return{insert:function(e,n){return d(f(r("readwrite").add(e)),n)},update:function(e,n,t){var o=r("readwrite");return d(f(o.get(e)).then(function(e){if(void 0===e)throw new DOMException("Key not found","NotFoundError");var r=a({},e,n);return f(o.put(r))}).then(function(){}),t)},delete:function(e,n){return d(f(r("readwrite").delete(e)).then(function(){}),n)},exists:function(e){return f(r("readonly").getKey(e)).then(function(e){return void 0!==e})},query:function(e,n){var t=r("readonly").openCursor(),o=[];return d(new Promise(function(n,r){t.onsuccess=function(){var r=t.result;r?(e(r.value)&&o.push(r.value),r.continue()):n(o)},t.onerror=function(){var e;return r(null!=(e=t.error)?e:new DOMException("Unknown error"))}}),n)},upsert:function(e,n){return d(f(r("readwrite").put(e)),n)},bulkInsert:function(e,n){var t=r("readwrite"),o=[];if(0===e.length)return d(Promise.resolve(o),n);var u=0;return d(new Promise(function(n,r){e.forEach(function(i,a){var c=t.add(i);c.onsuccess=function(){o[a]=c.result,++u===e.length&&n(o)},c.onerror=function(){var e;return r(null!=(e=c.error)?e:new DOMException("Unknown error"))}})}),n)},clear:function(e){return d(f(r("readwrite").clear()).then(function(){}),e)},count:function(e){return d(f(r("readonly").count()),null!=e?e:{})}}}(e,n)}(e,n)},transaction:function(n,r,t,o){var u=e.transaction(n,r),i={table:function(e){return function(e,n){return function(e,n){function r(){return e.objectStore(n)}return{insert:function(e,n){return d(f(r().add(e)),n)},update:function(e,n,t){var o=r();return d(f(o.get(e)).then(function(e){if(void 0===e)throw new DOMException("Key not found","NotFoundError");var r=a({},e,n);return f(o.put(r))}).then(function(){}),t)},delete:function(e,n){return d(f(r().delete(e)).then(function(){}),n)},exists:function(e){return f(r().getKey(e)).then(function(e){return void 0!==e})},query:function(e,n){var t=r().openCursor(),o=[];return d(new Promise(function(n,r){t.onsuccess=function(){var r=t.result;r?(e(r.value)&&o.push(r.value),r.continue()):n(o)},t.onerror=function(){var e;return r(null!=(e=t.error)?e:new DOMException("Unknown error"))}}),n)},upsert:function(e,n){return d(f(r().put(e)),n)},bulkInsert:function(e,n){var t=r(),o=[];if(0===e.length)return d(Promise.resolve(o),n);var u=0;return d(new Promise(function(n,r){e.forEach(function(i,a){var c=t.add(i);c.onsuccess=function(){o[a]=c.result,++u===e.length&&n(o)},c.onerror=function(){var e;return r(null!=(e=c.error)?e:new DOMException("Unknown error"))}})}),n)},clear:function(e){return d(f(r().clear()).then(function(){}),e)},count:function(e){return d(f(r().count()),null!=e?e:{})}}}(e,n)}(u,e)}},c=new Promise(function(e,n){u.oncomplete=function(){return e()},u.onerror=function(){var e;return n(null!=(e=u.error)?e:new DOMException("Transaction failed"))}}),s=t(i);return function(e,n){return n?e.then(function(){return null==n.onSuccess?void 0:n.onSuccess()}).catch(function(e){throw null==n.onError||n.onError(e),e}):e}(Promise.resolve(s).then(function(){return c}),o)}}}(n);o(r),m(!0)}}).catch(function(n){e||s(n)}),function(){e=!0}},[e.name,e.version]),{db:t,isReady:p,error:c}},e.useLLMMetadata=function(e){var n=t.useRef(null);t.useEffect(function(){try{if("undefined"==typeof window)return;var r=function(e){return null==e||"object"!=typeof e?{route:"/"}:{route:m(e.route,2048)||"/",mode:"auto-extract"===e.mode?"auto-extract":"manual",title:void 0!==e.title?m(e.title,200):void 0,description:void 0!==e.description?m(e.description,2e3):void 0,tags:void 0!==e.tags?g(e.tags):void 0,canonicalUrl:void 0!==e.canonicalUrl?h(e.canonicalUrl):void 0,language:void 0!==e.language?m(e.language,20):void 0,ogType:void 0!==e.ogType?m(e.ogType,50):void 0,ogImage:void 0!==e.ogImage?h(e.ogImage):void 0,ogImageAlt:void 0!==e.ogImageAlt?m(e.ogImageAlt,200):void 0,siteName:void 0!==e.siteName?m(e.siteName,100):void 0,author:void 0!==e.author?m(e.author,200):void 0,publishedTime:void 0!==e.publishedTime?m(e.publishedTime,50):void 0,modifiedTime:void 0!==e.modifiedTime?m(e.modifiedTime,50):void 0,robots:void 0!==e.robots?m(e.robots,100):void 0,extra:void 0===e.extra||"object"!=typeof e.extra||Array.isArray(e.extra)?void 0:w(e.extra)}}(e),t=function(e){try{var n=(new Date).toISOString(),r={route:e.route,generatedAt:n};if("auto-extract"===e.mode){var t,o,u=function(){var e={title:"",outline:[],description:""};try{if("undefined"==typeof document)return e;var n=m(document.title,200),r=[],t="";try{for(var o,u=document.querySelectorAll("nav, footer, [role='navigation'], [role='contentinfo'], script, style, noscript"),a=function(e){for(var n,r=i(u);!(n=r()).done;)if(n.value.contains(e))return!0;return!1},c=i(document.querySelectorAll("h1, h2"));!(o=c()).done;){var s=o.value;if(r.length>=50)break;if(y(s)&&!a(s)){var l=m(s.textContent,300);l&&r.push(l)}}for(var f,d=document.querySelectorAll("p"),v=[],p=i(d);!(f=p()).done;){var g=f.value;if(v.length>=3)break;if(y(g)&&!a(g)){var h=m(g.textContent,1e3);h&&v.push(h)}}t=v.join(" ").trim().slice(0,2e3)||""}catch(e){}return{title:n,outline:r,description:t}}catch(n){return e}}();r.title=(null!=(t=e.title)?t:u.title)||void 0,r.description=(null!=(o=e.description)?o:u.description)||void 0,u.outline.length>0&&(r.outline=u.outline)}else void 0!==e.title&&""!==e.title&&(r.title=e.title),void 0!==e.description&&""!==e.description&&(r.description=e.description);return e.tags&&e.tags.length>0&&(r.tags=e.tags),e.canonicalUrl&&(r.canonicalUrl=e.canonicalUrl),e.language&&(r.language=e.language),e.ogType&&(r.ogType=e.ogType),e.ogImage&&(r.ogImage=e.ogImage),e.ogImageAlt&&(r.ogImageAlt=e.ogImageAlt),e.siteName&&(r.siteName=e.siteName),e.author&&(r.author=e.author),e.publishedTime&&(r.publishedTime=e.publishedTime),e.modifiedTime&&(r.modifiedTime=e.modifiedTime),e.robots&&(r.robots=e.robots),e.extra&&Object.keys(e.extra).length>0&&(r.extra=e.extra),r}catch(n){var a;return{route:null!=(a=null==e?void 0:e.route)?a:"/",generatedAt:(new Date).toISOString()}}}(r),o=JSON.stringify(t);if(n.current===o)return;return n.current=o,b(),function(e){try{if("undefined"==typeof document||!document.head)return;var n=document.createElement("script");n.type="application/llm+json",n.setAttribute("data-llm","true"),n.textContent=JSON.stringify(e),document.head.appendChild(n)}catch(e){}}(t),function(){b(),n.current=null}}catch(e){}},[null==e?void 0:e.route,null==e?void 0:e.mode,null==e?void 0:e.title,null==e?void 0:e.description,null==e?void 0:e.tags,null==e?void 0:e.canonicalUrl,null==e?void 0:e.language,null==e?void 0:e.ogType,null==e?void 0:e.ogImage,null==e?void 0:e.ogImageAlt,null==e?void 0:e.siteName,null==e?void 0:e.author,null==e?void 0:e.publishedTime,null==e?void 0:e.modifiedTime,null==e?void 0:e.robots])},e.useMutationObserver=function(e,r,t){n.useEffect(function(){var n=e.current;if(n){var o=new MutationObserver(r);return o.observe(n,t),function(){return o.disconnect()}}},[e,r,t])},e.useNetworkState=function(){var e=n.useState(c),r=e[0],t=e[1];return n.useEffect(function(){if("undefined"!=typeof window){var e=function(){return t(c())};window.addEventListener("online",e),window.addEventListener("offline",e);var n=navigator.connection;return null!=n&&n.addEventListener&&n.addEventListener("change",e),function(){window.removeEventListener("online",e),window.removeEventListener("offline",e),null!=n&&n.removeEventListener&&n.removeEventListener("change",e)}}},[]),r},e.usePreferredTheme=function(){var e=n.useState(function(){if("undefined"==typeof window)return"no-preference";var e=window.matchMedia("(prefers-color-scheme: dark)"),n=window.matchMedia("(prefers-color-scheme: light)");return e.matches?"dark":n.matches?"light":"no-preference"}),r=e[0],t=e[1];return n.useEffect(function(){if("undefined"!=typeof window){var e=window.matchMedia("(prefers-color-scheme: dark)"),n=function(e){t(e.matches?"dark":"light")},r=function(){var e=window.matchMedia("(prefers-color-scheme: dark)"),n=window.matchMedia("(prefers-color-scheme: light)");t(e.matches?"dark":n.matches?"light":"no-preference")};e.addEventListener("change",n);var o=window.matchMedia("(prefers-color-scheme: light)");return o.addEventListener("change",r),function(){e.removeEventListener("change",n),o.removeEventListener("change",r)}}},[]),r},e.useRageClick=function(e,r){var t=r.onRageClick,o=r.threshold,u=void 0===o?5:o,i=r.timeWindow,a=void 0===i?1e3:i,c=r.distanceThreshold,s=void 0===c?30:c,l=n.useRef(t);l.current=t;var f=n.useRef([]);n.useEffect(function(){var n=e.current;if(n){var r=function(e){var n=Date.now(),r={time:n,x:e.clientX,y:e.clientY},t=n-a,o=f.current.filter(function(e){return e.time>=t});if(o.push(r),Infinity!==s){var i=o.filter(function(e){return n=e,t=r,Math.hypot(t.x-n.x,t.y-n.y)<=s;var n,t});if(i.length>=u)return l.current({count:i.length,event:e}),void(f.current=[])}else if(o.length>=u)return l.current({count:o.length,event:e}),void(f.current=[]);f.current=o};return n.addEventListener("click",r),function(){return n.removeEventListener("click",r)}}},[e,u,a,s])},e.useThreadedWorker=function(e,r){var t=r.concurrency,o="sequential"===r.mode?1:Math.max(1,void 0===t?4:t),u=n.useState(!1),i=u[0],a=u[1],c=n.useState(void 0),s=c[0],l=c[1],f=n.useState(void 0),d=f[0],v=f[1],p=n.useState(0),m=p[0],g=p[1],h=n.useRef([]),y=n.useRef(0),w=n.useRef(0),b=n.useRef(!1),k=n.useRef(e);k.current=e;var S=n.useCallback(function(){g(h.current.length+w.current)},[]),E=n.useCallback(function(){if(!(b.current||w.current>=o)){if(0===h.current.length)return 0===w.current&&a(!1),void S();h.current.sort(function(e,n){return e.priority!==n.priority?e.priority-n.priority:e.sequence-n.sequence});var e=h.current.shift();w.current+=1,a(!0),S(),(0,k.current)(e.data).then(function(n){l(n),v(void 0),e.resolve(n)}).catch(function(n){v(n),e.reject(n)}).finally(function(){w.current-=1,S(),E()}),h.current.length>0&&w.current<o&&E()}},[o,S]),x=n.useCallback(function(e,n){var r;if(b.current)return Promise.reject(new Error("Worker is terminated"));var t=null!=(r=null==n?void 0:n.priority)?r:1,o=++y.current,u=new Promise(function(n,r){h.current.push({data:e,priority:t,sequence:o,resolve:n,reject:r})});return S(),a(!0),queueMicrotask(E),u},[E,S]),T=n.useCallback(function(){var e=h.current;h.current=[],e.forEach(function(e){return e.reject(new Error("Task cleared from queue"))}),S(),0===w.current&&a(!1)},[S]),C=n.useCallback(function(){b.current=!0,T()},[T]);return n.useEffect(function(){return function(){b.current=!0}},[]),{run:x,loading:i,result:s,error:d,queueSize:m,clearQueue:T,terminate:C}},e.useTransition=function(){var e=n.useState(!1),r=e[0],t=e[1];return[n.useCallback(function(e){t(!0),Promise.resolve().then(function(){e(),t(!1)})},[]),r]},e.useWasmCompute=function(e){var r=e.wasmUrl,t=e.exportName,o=void 0===t?"compute":t,u=e.workerUrl,i=e.importObject,a=n.useState(void 0),c=a[0],s=a[1],l=n.useState(!0),f=l[0],d=l[1],v=n.useState(null),p=v[0],m=v[1],g=n.useState(!1),h=g[0],y=g[1],w=n.useRef(null),b=n.useRef(null),k=n.useRef(null);return n.useEffect(function(){if("undefined"==typeof window)return m("useWasmCompute is not available during SSR"),void d(!1);if("undefined"==typeof Worker)return m("Worker is not supported in this environment"),void d(!1);if("undefined"==typeof WebAssembly||"function"!=typeof WebAssembly.instantiate)return m("WebAssembly is not supported in this environment"),void d(!1);m(null),y(!1);var e=function(e){if(e)return new Worker(e);var n=new Blob(["\nself.onmessage = async (e) => {\n const d = e.data;\n if (d.type === 'init') {\n try {\n const res = await fetch(d.wasmUrl);\n const buf = await res.arrayBuffer();\n const mod = await WebAssembly.instantiate(buf, d.importObject || {});\n self.wasmInstance = mod.instance;\n self.exportName = d.exportName || 'compute';\n self.postMessage({ type: 'ready' });\n } catch (err) {\n self.postMessage({ type: 'error', error: (err && err.message) || String(err) });\n }\n return;\n }\n if (d.type === 'compute') {\n try {\n const fn = self.wasmInstance.exports[self.exportName];\n if (typeof fn !== 'function') {\n self.postMessage({ type: 'error', error: 'Export \"' + self.exportName + '\" is not a function' });\n return;\n }\n const result = fn(d.input);\n self.postMessage({ type: 'result', result: result });\n } catch (err) {\n self.postMessage({ type: 'error', error: (err && err.message) || String(err) });\n }\n }\n};\n"],{type:"application/javascript"}),r=URL.createObjectURL(n),t=new Worker(r);return URL.revokeObjectURL(r),t}(u);w.current=e;var n=function(e){var n,r=null!=(n=e.data)?n:{},t=r.type,o=r.result,u=r.error;return"ready"===t?(y(!0),void d(!1)):"error"===t?(m(null!=u?u:"Unknown error"),d(!1),void(k.current&&(k.current(new Error(u)),b.current=null,k.current=null))):void("result"===t&&(s(o),d(!1),b.current&&(b.current(o),b.current=null,k.current=null)))};return e.addEventListener("message",n),e.postMessage({type:"init",wasmUrl:r,exportName:o,importObject:null!=i?i:{}}),function(){e.removeEventListener("message",n),e.terminate(),w.current=null,k.current&&(k.current(new Error("Worker terminated")),b.current=null,k.current=null)}},[r,o,u,i]),{compute:n.useCallback(function(e){return new Promise(function(n,r){w.current&&h?p?r(new Error(p)):(b.current=n,k.current=r,d(!0),w.current.postMessage({type:"compute",input:e})):r(new Error("WASM not ready"))})},[h,p]),result:c,loading:f,error:p,ready:h}},e.useWebRTCIP=function(e){void 0===e&&(e={});var r=e.stunServers,t=void 0===r?p:r,o=e.timeout,u=void 0===o?3e3:o,i=e.onDetect,a=n.useState([]),c=a[0],s=a[1],l=n.useState(!0),f=l[0],d=l[1],m=n.useState(null),g=m[0],h=m[1],y=n.useRef(null),w=n.useRef(null),b=n.useRef(new Set),k=n.useRef(i);return k.current=i,n.useEffect(function(){if("undefined"==typeof window)return d(!1),void h("WebRTC IP detection is not available during SSR");if("undefined"==typeof RTCPeerConnection)return d(!1),void h("RTCPeerConnection is not available");var e=new Set;b.current=e;var n=function(){w.current&&(clearTimeout(w.current),w.current=null),y.current&&(y.current.close(),y.current=null),d(!1)},r=function(n){e.has(n)||(e.add(n),s(function(e){return[].concat(e,[n])}),null==k.current||k.current(n))};try{var o=new RTCPeerConnection({iceServers:[{urls:t}]});y.current=o,o.onicecandidate=function(e){var n,t=e.candidate;t&&t.candidate&&((n=t.candidate.match(v))?[].concat(n):[]).forEach(r)},o.createDataChannel(""),o.createOffer().then(function(e){return o.setLocalDescription(e)}).catch(function(e){h(e instanceof Error?e.message:"Failed to create offer"),n()}),w.current=setTimeout(function(){return n()},u)}catch(e){h(e instanceof Error?e.message:"WebRTC setup failed"),n()}return function(){n()}},[t.join(","),u]),{ips:c,loading:f,error:g}},e.useWorkerNotifications=function(e,r){void 0===r&&(r={});var t=r.maxHistory,o=void 0===t?100:t,u=r.throughputWindowMs,i=void 0===u?1e3:u,a=n.useState([]),c=a[0],s=a[1],l=n.useState(0),f=l[0],d=l[1],v=n.useState(0),p=v[0],m=v[1],g=n.useState([]),h=g[0],y=g[1],w=n.useState(0),b=w[0],k=w[1],S=n.useRef([]),E=n.useRef(0),x=n.useRef(0);n.useEffect(function(){if(e){var n=function(e){var n=function(e){if(null==e||"object"!=typeof e)return null;var n=e.type;return"task_start"!==n&&"task_end"!==n&&"task_fail"!==n&&"queue_size"!==n?null:{type:n,taskId:"string"==typeof e.taskId?e.taskId:void 0,duration:"number"==typeof e.duration?e.duration:void 0,error:"string"==typeof e.error?e.error:void 0,size:"number"==typeof e.size?e.size:void 0,timestamp:Date.now()}}(e.data);if(n)if(y(function(e){return[].concat(e,[n]).slice(-o)}),"task_start"===n.type&&n.taskId)s(function(e){return e.includes(n.taskId)?e:[].concat(e,[n.taskId])});else if("task_end"===n.type){n.taskId&&s(function(e){return e.filter(function(e){return e!==n.taskId})}),d(function(e){return e+1});var r=Date.now()-i;S.current=[].concat(S.current.filter(function(e){return e>=r}),[n.timestamp]),"number"==typeof n.duration&&(E.current+=n.duration,x.current+=1)}else"task_fail"===n.type?(n.taskId&&s(function(e){return e.filter(function(e){return e!==n.taskId})}),m(function(e){return e+1})):"queue_size"===n.type&&"number"==typeof n.size&&k(n.size)};return e.addEventListener("message",n),function(){return e.removeEventListener("message",n)}}},[e,o]);var T=n.useMemo(function(){var e=x.current;return e>0?E.current/e:0},[h]),C=n.useMemo(function(){var e=Date.now()-i;return S.current.filter(function(n){return n>=e}).length/(i/1e3)},[h,i]),I=n.useMemo(function(){return{runningTasks:c,completedCount:f,failedCount:p,averageDurationMs:T,throughputPerSecond:C,currentQueueSize:b,totalProcessed:f+p,recentEventCount:h.length}},[c,f,p,T,C,b,h.length]);return{runningTasks:c,completedCount:f,failedCount:p,eventHistory:h,averageDurationMs:T,throughputPerSecond:C,currentQueueSize:b,progress:I}},e.useWrappedChildren=function(e,t,o){return void 0===o&&(o="preserve"),n.useMemo(function(){if(!e)return e;var n=function(e){if(!r.isValidElement(e))return e;var n,u=e.props||{};n="override"===o?a({},u,t):a({},t,u);var i=null==u?void 0:u.style,c=null==t?void 0:t.style;return i&&c&&"object"==typeof i&&"object"==typeof c&&(n.style="override"===o?a({},i,c):a({},c,i)),r.cloneElement(e,n)};return Array.isArray(e)?e.map(n):n(e)},[e,t,o])}});
|
|
1
|
+
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("preact/hooks"),require("preact"),require("preact/compat")):"function"==typeof define&&define.amd?define(["exports","preact/hooks","preact","preact/compat"],n):n((e||self).preactMissingHooks={},e.hooks,e.preact,e.compat)}(this,function(e,n,t,r){var o=new Map;function i(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function u(e,n){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(t)return(t=t.call(e)).next.bind(t);if(Array.isArray(e)||(t=function(e,n){if(e){if("string"==typeof e)return i(e,n);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?i(e,n):void 0}}(e))||n&&e&&"number"==typeof e.length){t&&(e=t);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function a(){return a=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},a.apply(null,arguments)}function c(){if("undefined"==typeof navigator)return{online:!0};var e={online:navigator.onLine},n=navigator.connection;return n&&(void 0!==n.effectiveType&&(e.effectiveType=n.effectiveType),void 0!==n.downlink&&(e.downlink=n.downlink),void 0!==n.rtt&&(e.rtt=n.rtt),void 0!==n.saveData&&(e.saveData=n.saveData),void 0!==n.type&&(e.connectionType=n.type)),e}function s(e,n){try{var t=e()}catch(e){return n(e)}return t&&t.then?t.then(void 0,n):t}var l=new Map;function f(e){return new Promise(function(n,t){e.onsuccess=function(){return n(e.result)},e.onerror=function(){var n;return t(null!=(n=e.error)?n:new DOMException("Unknown IndexedDB error"))}})}function d(e,n){return n?e.then(function(e){return null==n.onSuccess||n.onSuccess(e),e}).catch(function(e){throw null==n.onError||n.onError(e),e}):e}var v=/\b(?:25[0-5]|2[0-4]\d|1?\d{1,2})(?:\.(?:25[0-5]|2[0-4]\d|1?\d{1,2})){3}\b/g,p=["stun:stun.l.google.com:19302"];function m(e,n){if(null==e)return"";var t=("string"==typeof e?e:String(e)).trim();return t.length>n?t.slice(0,n):t}function g(e){if(!Array.isArray(e))return[];for(var n=[],t=0;t<e.length&&n.length<50;t++){var r=m(e[t],100);r&&n.push(r)}return n}function h(e){var n=m(e,2048);if(!n)return"";try{var t=new URL(n);if("http:"===t.protocol||"https:"===t.protocol)return n}catch(e){}return""}function y(e){try{if("undefined"==typeof window)return!1;var n=window.getComputedStyle(e);return"none"!==n.display&&"hidden"!==n.visibility&&"0"!==n.opacity}catch(e){return!1}}function w(e){var n={};try{for(var t,r=u(Object.keys(e).slice(0,20));!(t=r()).done;){var o=t.value,i=m(o,50);if(i){var a=e[o];"string"==typeof a?n[i]=a.slice(0,500):"number"==typeof a&&Number.isFinite(a)||"boolean"==typeof a?n[i]=a:Array.isArray(a)&&(n[i]=a.map(function(e){return m(e,200)}).filter(Boolean).slice(0,20))}}}catch(e){}return n}function b(){try{if("undefined"==typeof document||!document.querySelectorAll)return;document.querySelectorAll('script[data-llm="true"]').forEach(function(e){return e.remove()})}catch(e){}}var k="use-ref-print-target",E="use-ref-print-styles",S="\n@media print {\n body * {\n visibility: hidden;\n }\n ."+k+",\n ."+k+" * {\n visibility: visible;\n }\n ."+k+" {\n position: absolute !important;\n left: 0 !important;\n top: 0 !important;\n width: 100% !important;\n }\n}\n";e.useClipboard=function(e){void 0===e&&(e={});var t=e.resetDelay,r=void 0===t?2e3:t,o=n.useState(!1),i=o[0],u=o[1],a=n.useState(null),c=a[0],l=a[1],f=n.useCallback(function(){u(!1),l(null)},[]);return{copy:n.useCallback(function(e){try{if(l(null),"undefined"==typeof navigator||!navigator.clipboard){var n=new Error("Clipboard API is not available");return l(n),Promise.resolve(!1)}return Promise.resolve(s(function(){return Promise.resolve(navigator.clipboard.writeText(e)).then(function(){return u(!0),r>0&&setTimeout(function(){return u(!1)},r),!0})},function(e){var n=e instanceof Error?e:new Error(String(e));return l(n),!1}))}catch(e){return Promise.reject(e)}},[r]),paste:n.useCallback(function(){try{if(l(null),"undefined"==typeof navigator||!navigator.clipboard){var e=new Error("Clipboard API is not available");return l(e),Promise.resolve("")}return Promise.resolve(s(function(){return Promise.resolve(navigator.clipboard.readText())},function(e){var n=e instanceof Error?e:new Error(String(e));return l(n),""}))}catch(e){return Promise.reject(e)}},[]),copied:i,error:c,reset:f}},e.useEventBus=function(){var e=n.useCallback(function(e){var n=arguments,t=o.get(e);t&&t.forEach(function(e){return e.apply(void 0,[].slice.call(n,1))})},[]);return{emit:e,on:n.useCallback(function(e,n){var t=o.get(e);return t||(t=new Set,o.set(e,t)),t.add(n),function(){t.delete(n),0===t.size&&o.delete(e)}},[])}},e.useIndexedDB=function(e){var t=n.useState(null),r=t[0],o=t[1],i=n.useState(null),c=i[0],s=i[1],v=n.useState(!1),p=v[0],m=v[1],g=n.useRef(e);return g.current=e,n.useEffect(function(){var e=!1;s(null),m(!1),o(null);var n=g.current;return function(e){var n=e.name+"_v"+e.version,t=l.get(n);return t||(t=function(e){return new Promise(function(n,t){var r=indexedDB.open(e.name,e.version);r.onerror=function(){var e;return t(null!=(e=r.error)?e:new DOMException("Failed to open database"))},r.onsuccess=function(){return n(r.result)},r.onupgradeneeded=function(n){for(var t=n.target.result,r=e.tables,o=0,i=Object.keys(r);o<i.length;o++){var a=i[o],c=r[a];if(!t.objectStoreNames.contains(a)){var s,l=t.createObjectStore(a,{keyPath:c.keyPath,autoIncrement:null!=(s=c.autoIncrement)&&s});if(c.indexes)for(var f,d=u(c.indexes);!(f=d()).done;){var v=f.value;l.createIndex(v,v,{unique:!1})}}}}})}(e),l.set(n,t),t)}({name:n.name,version:n.version,tables:n.tables}).then(function(n){if(e)n.close();else{var t=function(e){return{get db(){return e},hasTable:function(n){return e.objectStoreNames.contains(n)},table:function(n){return function(e,n){return function(e,n){function t(t){return e.transaction([n],t).objectStore(n)}return{insert:function(e,n){return d(f(t("readwrite").add(e)),n)},update:function(e,n,r){var o=t("readwrite");return d(f(o.get(e)).then(function(e){if(void 0===e)throw new DOMException("Key not found","NotFoundError");var t=a({},e,n);return f(o.put(t))}).then(function(){}),r)},delete:function(e,n){return d(f(t("readwrite").delete(e)).then(function(){}),n)},exists:function(e){return f(t("readonly").getKey(e)).then(function(e){return void 0!==e})},query:function(e,n){var r=t("readonly").openCursor(),o=[];return d(new Promise(function(n,t){r.onsuccess=function(){var t=r.result;t?(e(t.value)&&o.push(t.value),t.continue()):n(o)},r.onerror=function(){var e;return t(null!=(e=r.error)?e:new DOMException("Unknown error"))}}),n)},upsert:function(e,n){return d(f(t("readwrite").put(e)),n)},bulkInsert:function(e,n){var r=t("readwrite"),o=[];if(0===e.length)return d(Promise.resolve(o),n);var i=0;return d(new Promise(function(n,t){e.forEach(function(u,a){var c=r.add(u);c.onsuccess=function(){o[a]=c.result,++i===e.length&&n(o)},c.onerror=function(){var e;return t(null!=(e=c.error)?e:new DOMException("Unknown error"))}})}),n)},clear:function(e){return d(f(t("readwrite").clear()).then(function(){}),e)},count:function(e){return d(f(t("readonly").count()),null!=e?e:{})}}}(e,n)}(e,n)},transaction:function(n,t,r,o){var i=e.transaction(n,t),u={table:function(e){return function(e,n){return function(e,n){function t(){return e.objectStore(n)}return{insert:function(e,n){return d(f(t().add(e)),n)},update:function(e,n,r){var o=t();return d(f(o.get(e)).then(function(e){if(void 0===e)throw new DOMException("Key not found","NotFoundError");var t=a({},e,n);return f(o.put(t))}).then(function(){}),r)},delete:function(e,n){return d(f(t().delete(e)).then(function(){}),n)},exists:function(e){return f(t().getKey(e)).then(function(e){return void 0!==e})},query:function(e,n){var r=t().openCursor(),o=[];return d(new Promise(function(n,t){r.onsuccess=function(){var t=r.result;t?(e(t.value)&&o.push(t.value),t.continue()):n(o)},r.onerror=function(){var e;return t(null!=(e=r.error)?e:new DOMException("Unknown error"))}}),n)},upsert:function(e,n){return d(f(t().put(e)),n)},bulkInsert:function(e,n){var r=t(),o=[];if(0===e.length)return d(Promise.resolve(o),n);var i=0;return d(new Promise(function(n,t){e.forEach(function(u,a){var c=r.add(u);c.onsuccess=function(){o[a]=c.result,++i===e.length&&n(o)},c.onerror=function(){var e;return t(null!=(e=c.error)?e:new DOMException("Unknown error"))}})}),n)},clear:function(e){return d(f(t().clear()).then(function(){}),e)},count:function(e){return d(f(t().count()),null!=e?e:{})}}}(e,n)}(i,e)}},c=new Promise(function(e,n){i.oncomplete=function(){return e()},i.onerror=function(){var e;return n(null!=(e=i.error)?e:new DOMException("Transaction failed"))}}),s=r(u);return function(e,n){return n?e.then(function(){return null==n.onSuccess?void 0:n.onSuccess()}).catch(function(e){throw null==n.onError||n.onError(e),e}):e}(Promise.resolve(s).then(function(){return c}),o)}}}(n);o(t),m(!0)}}).catch(function(n){e||s(n)}),function(){e=!0}},[e.name,e.version]),{db:r,isReady:p,error:c}},e.useLLMMetadata=function(e){var n=r.useRef(null);r.useEffect(function(){try{if("undefined"==typeof window)return;var t=function(e){return null==e||"object"!=typeof e?{route:"/"}:{route:m(e.route,2048)||"/",mode:"auto-extract"===e.mode?"auto-extract":"manual",title:void 0!==e.title?m(e.title,200):void 0,description:void 0!==e.description?m(e.description,2e3):void 0,tags:void 0!==e.tags?g(e.tags):void 0,canonicalUrl:void 0!==e.canonicalUrl?h(e.canonicalUrl):void 0,language:void 0!==e.language?m(e.language,20):void 0,ogType:void 0!==e.ogType?m(e.ogType,50):void 0,ogImage:void 0!==e.ogImage?h(e.ogImage):void 0,ogImageAlt:void 0!==e.ogImageAlt?m(e.ogImageAlt,200):void 0,siteName:void 0!==e.siteName?m(e.siteName,100):void 0,author:void 0!==e.author?m(e.author,200):void 0,publishedTime:void 0!==e.publishedTime?m(e.publishedTime,50):void 0,modifiedTime:void 0!==e.modifiedTime?m(e.modifiedTime,50):void 0,robots:void 0!==e.robots?m(e.robots,100):void 0,extra:void 0===e.extra||"object"!=typeof e.extra||Array.isArray(e.extra)?void 0:w(e.extra)}}(e),r=function(e){try{var n=(new Date).toISOString(),t={route:e.route,generatedAt:n};if("auto-extract"===e.mode){var r,o,i=function(){var e={title:"",outline:[],description:""};try{if("undefined"==typeof document)return e;var n=m(document.title,200),t=[],r="";try{for(var o,i=document.querySelectorAll("nav, footer, [role='navigation'], [role='contentinfo'], script, style, noscript"),a=function(e){for(var n,t=u(i);!(n=t()).done;)if(n.value.contains(e))return!0;return!1},c=u(document.querySelectorAll("h1, h2"));!(o=c()).done;){var s=o.value;if(t.length>=50)break;if(y(s)&&!a(s)){var l=m(s.textContent,300);l&&t.push(l)}}for(var f,d=document.querySelectorAll("p"),v=[],p=u(d);!(f=p()).done;){var g=f.value;if(v.length>=3)break;if(y(g)&&!a(g)){var h=m(g.textContent,1e3);h&&v.push(h)}}r=v.join(" ").trim().slice(0,2e3)||""}catch(e){}return{title:n,outline:t,description:r}}catch(n){return e}}();t.title=(null!=(r=e.title)?r:i.title)||void 0,t.description=(null!=(o=e.description)?o:i.description)||void 0,i.outline.length>0&&(t.outline=i.outline)}else void 0!==e.title&&""!==e.title&&(t.title=e.title),void 0!==e.description&&""!==e.description&&(t.description=e.description);return e.tags&&e.tags.length>0&&(t.tags=e.tags),e.canonicalUrl&&(t.canonicalUrl=e.canonicalUrl),e.language&&(t.language=e.language),e.ogType&&(t.ogType=e.ogType),e.ogImage&&(t.ogImage=e.ogImage),e.ogImageAlt&&(t.ogImageAlt=e.ogImageAlt),e.siteName&&(t.siteName=e.siteName),e.author&&(t.author=e.author),e.publishedTime&&(t.publishedTime=e.publishedTime),e.modifiedTime&&(t.modifiedTime=e.modifiedTime),e.robots&&(t.robots=e.robots),e.extra&&Object.keys(e.extra).length>0&&(t.extra=e.extra),t}catch(n){var a;return{route:null!=(a=null==e?void 0:e.route)?a:"/",generatedAt:(new Date).toISOString()}}}(t),o=JSON.stringify(r);if(n.current===o)return;return n.current=o,b(),function(e){try{if("undefined"==typeof document||!document.head)return;var n=document.createElement("script");n.type="application/llm+json",n.setAttribute("data-llm","true"),n.textContent=JSON.stringify(e),document.head.appendChild(n)}catch(e){}}(r),function(){b(),n.current=null}}catch(e){}},[null==e?void 0:e.route,null==e?void 0:e.mode,null==e?void 0:e.title,null==e?void 0:e.description,null==e?void 0:e.tags,null==e?void 0:e.canonicalUrl,null==e?void 0:e.language,null==e?void 0:e.ogType,null==e?void 0:e.ogImage,null==e?void 0:e.ogImageAlt,null==e?void 0:e.siteName,null==e?void 0:e.author,null==e?void 0:e.publishedTime,null==e?void 0:e.modifiedTime,null==e?void 0:e.robots])},e.useMutationObserver=function(e,t,r){n.useEffect(function(){var n=e.current;if(n){var o=new MutationObserver(t);return o.observe(n,r),function(){return o.disconnect()}}},[e,t,r])},e.useNetworkState=function(){var e=n.useState(c),t=e[0],r=e[1];return n.useEffect(function(){if("undefined"!=typeof window){var e=function(){return r(c())};window.addEventListener("online",e),window.addEventListener("offline",e);var n=navigator.connection;return null!=n&&n.addEventListener&&n.addEventListener("change",e),function(){window.removeEventListener("online",e),window.removeEventListener("offline",e),null!=n&&n.removeEventListener&&n.removeEventListener("change",e)}}},[]),t},e.usePreferredTheme=function(){var e=n.useState(function(){if("undefined"==typeof window)return"no-preference";var e=window.matchMedia("(prefers-color-scheme: dark)"),n=window.matchMedia("(prefers-color-scheme: light)");return e.matches?"dark":n.matches?"light":"no-preference"}),t=e[0],r=e[1];return n.useEffect(function(){if("undefined"!=typeof window){var e=window.matchMedia("(prefers-color-scheme: dark)"),n=function(e){r(e.matches?"dark":"light")},t=function(){var e=window.matchMedia("(prefers-color-scheme: dark)"),n=window.matchMedia("(prefers-color-scheme: light)");r(e.matches?"dark":n.matches?"light":"no-preference")};e.addEventListener("change",n);var o=window.matchMedia("(prefers-color-scheme: light)");return o.addEventListener("change",t),function(){e.removeEventListener("change",n),o.removeEventListener("change",t)}}},[]),t},e.useRageClick=function(e,t){var r=t.onRageClick,o=t.threshold,i=void 0===o?5:o,u=t.timeWindow,a=void 0===u?1e3:u,c=t.distanceThreshold,s=void 0===c?30:c,l=n.useRef(r);l.current=r;var f=n.useRef([]);n.useEffect(function(){var n=e.current;if(n){var t=function(e){var n=Date.now(),t={time:n,x:e.clientX,y:e.clientY},r=n-a,o=f.current.filter(function(e){return e.time>=r});if(o.push(t),Infinity!==s){var u=o.filter(function(e){return n=e,r=t,Math.hypot(r.x-n.x,r.y-n.y)<=s;var n,r});if(u.length>=i)return l.current({count:u.length,event:e}),void(f.current=[])}else if(o.length>=i)return l.current({count:o.length,event:e}),void(f.current=[]);f.current=o};return n.addEventListener("click",t),function(){return n.removeEventListener("click",t)}}},[e,i,a,s])},e.useRefPrint=function(e,t){void 0===t&&(t={});var r=t.documentTitle,o=n.useRef("");return{print:n.useCallback(function(){var n=e.current;if(n&&"undefined"!=typeof window&&window.print){var t=document.getElementById(E);t||((t=document.createElement("style")).id=E,t.textContent=S,document.head.appendChild(t)),n.classList.add(k),r&&(o.current=document.title,document.title=r);var i=function(){n.classList.remove(k),r&&void 0!==o.current&&(document.title=o.current)};if("onafterprint"in window){var u=function(){i(),window.removeEventListener("afterprint",u)};window.addEventListener("afterprint",u)}window.print(),setTimeout(i,1e3)}},[e,r])}},e.useThreadedWorker=function(e,t){var r=t.concurrency,o="sequential"===t.mode?1:Math.max(1,void 0===r?4:r),i=n.useState(!1),u=i[0],a=i[1],c=n.useState(void 0),s=c[0],l=c[1],f=n.useState(void 0),d=f[0],v=f[1],p=n.useState(0),m=p[0],g=p[1],h=n.useRef([]),y=n.useRef(0),w=n.useRef(0),b=n.useRef(!1),k=n.useRef(e);k.current=e;var E=n.useCallback(function(){g(h.current.length+w.current)},[]),S=n.useCallback(function(){if(!(b.current||w.current>=o)){if(0===h.current.length)return 0===w.current&&a(!1),void E();h.current.sort(function(e,n){return e.priority!==n.priority?e.priority-n.priority:e.sequence-n.sequence});var e=h.current.shift();w.current+=1,a(!0),E(),(0,k.current)(e.data).then(function(n){l(n),v(void 0),e.resolve(n)}).catch(function(n){v(n),e.reject(n)}).finally(function(){w.current-=1,E(),S()}),h.current.length>0&&w.current<o&&S()}},[o,E]),x=n.useCallback(function(e,n){var t;if(b.current)return Promise.reject(new Error("Worker is terminated"));var r=null!=(t=null==n?void 0:n.priority)?t:1,o=++y.current,i=new Promise(function(n,t){h.current.push({data:e,priority:r,sequence:o,resolve:n,reject:t})});return E(),a(!0),queueMicrotask(S),i},[S,E]),T=n.useCallback(function(){var e=h.current;h.current=[],e.forEach(function(e){return e.reject(new Error("Task cleared from queue"))}),E(),0===w.current&&a(!1)},[E]),C=n.useCallback(function(){b.current=!0,T()},[T]);return n.useEffect(function(){return function(){b.current=!0}},[]),{run:x,loading:u,result:s,error:d,queueSize:m,clearQueue:T,terminate:C}},e.useTransition=function(){var e=n.useState(!1),t=e[0],r=e[1];return[n.useCallback(function(e){r(!0),Promise.resolve().then(function(){e(),r(!1)})},[]),t]},e.useWasmCompute=function(e){var t=e.wasmUrl,r=e.exportName,o=void 0===r?"compute":r,i=e.workerUrl,u=e.importObject,a=n.useState(void 0),c=a[0],s=a[1],l=n.useState(!0),f=l[0],d=l[1],v=n.useState(null),p=v[0],m=v[1],g=n.useState(!1),h=g[0],y=g[1],w=n.useRef(null),b=n.useRef(null),k=n.useRef(null);return n.useEffect(function(){if("undefined"==typeof window)return m("useWasmCompute is not available during SSR"),void d(!1);if("undefined"==typeof Worker)return m("Worker is not supported in this environment"),void d(!1);if("undefined"==typeof WebAssembly||"function"!=typeof WebAssembly.instantiate)return m("WebAssembly is not supported in this environment"),void d(!1);m(null),y(!1);var e=function(e){if(e)return new Worker(e);var n=new Blob(["\nself.onmessage = async (e) => {\n const d = e.data;\n if (d.type === 'init') {\n try {\n const res = await fetch(d.wasmUrl);\n const buf = await res.arrayBuffer();\n const mod = await WebAssembly.instantiate(buf, d.importObject || {});\n self.wasmInstance = mod.instance;\n self.exportName = d.exportName || 'compute';\n self.postMessage({ type: 'ready' });\n } catch (err) {\n self.postMessage({ type: 'error', error: (err && err.message) || String(err) });\n }\n return;\n }\n if (d.type === 'compute') {\n try {\n const fn = self.wasmInstance.exports[self.exportName];\n if (typeof fn !== 'function') {\n self.postMessage({ type: 'error', error: 'Export \"' + self.exportName + '\" is not a function' });\n return;\n }\n const result = fn(d.input);\n self.postMessage({ type: 'result', result: result });\n } catch (err) {\n self.postMessage({ type: 'error', error: (err && err.message) || String(err) });\n }\n }\n};\n"],{type:"application/javascript"}),t=URL.createObjectURL(n),r=new Worker(t);return URL.revokeObjectURL(t),r}(i);w.current=e;var n=function(e){var n,t=null!=(n=e.data)?n:{},r=t.type,o=t.result,i=t.error;return"ready"===r?(y(!0),void d(!1)):"error"===r?(m(null!=i?i:"Unknown error"),d(!1),void(k.current&&(k.current(new Error(i)),b.current=null,k.current=null))):void("result"===r&&(s(o),d(!1),b.current&&(b.current(o),b.current=null,k.current=null)))};return e.addEventListener("message",n),e.postMessage({type:"init",wasmUrl:t,exportName:o,importObject:null!=u?u:{}}),function(){e.removeEventListener("message",n),e.terminate(),w.current=null,k.current&&(k.current(new Error("Worker terminated")),b.current=null,k.current=null)}},[t,o,i,u]),{compute:n.useCallback(function(e){return new Promise(function(n,t){w.current&&h?p?t(new Error(p)):(b.current=n,k.current=t,d(!0),w.current.postMessage({type:"compute",input:e})):t(new Error("WASM not ready"))})},[h,p]),result:c,loading:f,error:p,ready:h}},e.useWebRTCIP=function(e){void 0===e&&(e={});var t=e.stunServers,r=void 0===t?p:t,o=e.timeout,i=void 0===o?3e3:o,u=e.onDetect,a=n.useState([]),c=a[0],s=a[1],l=n.useState(!0),f=l[0],d=l[1],m=n.useState(null),g=m[0],h=m[1],y=n.useRef(null),w=n.useRef(null),b=n.useRef(new Set),k=n.useRef(u);return k.current=u,n.useEffect(function(){if("undefined"==typeof window)return d(!1),void h("WebRTC IP detection is not available during SSR");if("undefined"==typeof RTCPeerConnection)return d(!1),void h("RTCPeerConnection is not available");var e=new Set;b.current=e;var n=function(){w.current&&(clearTimeout(w.current),w.current=null),y.current&&(y.current.close(),y.current=null),d(!1)},t=function(n){e.has(n)||(e.add(n),s(function(e){return[].concat(e,[n])}),null==k.current||k.current(n))};try{var o=new RTCPeerConnection({iceServers:[{urls:r}]});y.current=o,o.onicecandidate=function(e){var n,r=e.candidate;r&&r.candidate&&((n=r.candidate.match(v))?[].concat(n):[]).forEach(t)},o.createDataChannel(""),o.createOffer().then(function(e){return o.setLocalDescription(e)}).catch(function(e){h(e instanceof Error?e.message:"Failed to create offer"),n()}),w.current=setTimeout(function(){return n()},i)}catch(e){h(e instanceof Error?e.message:"WebRTC setup failed"),n()}return function(){n()}},[r.join(","),i]),{ips:c,loading:f,error:g}},e.useWorkerNotifications=function(e,t){void 0===t&&(t={});var r=t.maxHistory,o=void 0===r?100:r,i=t.throughputWindowMs,u=void 0===i?1e3:i,a=n.useState([]),c=a[0],s=a[1],l=n.useState(0),f=l[0],d=l[1],v=n.useState(0),p=v[0],m=v[1],g=n.useState([]),h=g[0],y=g[1],w=n.useState(0),b=w[0],k=w[1],E=n.useRef([]),S=n.useRef(0),x=n.useRef(0);n.useEffect(function(){if(e){var n=function(e){var n=function(e){if(null==e||"object"!=typeof e)return null;var n=e.type;return"task_start"!==n&&"task_end"!==n&&"task_fail"!==n&&"queue_size"!==n?null:{type:n,taskId:"string"==typeof e.taskId?e.taskId:void 0,duration:"number"==typeof e.duration?e.duration:void 0,error:"string"==typeof e.error?e.error:void 0,size:"number"==typeof e.size?e.size:void 0,timestamp:Date.now()}}(e.data);if(n)if(y(function(e){return[].concat(e,[n]).slice(-o)}),"task_start"===n.type&&n.taskId)s(function(e){return e.includes(n.taskId)?e:[].concat(e,[n.taskId])});else if("task_end"===n.type){n.taskId&&s(function(e){return e.filter(function(e){return e!==n.taskId})}),d(function(e){return e+1});var t=Date.now()-u;E.current=[].concat(E.current.filter(function(e){return e>=t}),[n.timestamp]),"number"==typeof n.duration&&(S.current+=n.duration,x.current+=1)}else"task_fail"===n.type?(n.taskId&&s(function(e){return e.filter(function(e){return e!==n.taskId})}),m(function(e){return e+1})):"queue_size"===n.type&&"number"==typeof n.size&&k(n.size)};return e.addEventListener("message",n),function(){return e.removeEventListener("message",n)}}},[e,o]);var T=n.useMemo(function(){var e=x.current;return e>0?S.current/e:0},[h]),C=n.useMemo(function(){var e=Date.now()-u;return E.current.filter(function(n){return n>=e}).length/(u/1e3)},[h,u]),I=n.useMemo(function(){return{runningTasks:c,completedCount:f,failedCount:p,averageDurationMs:T,throughputPerSecond:C,currentQueueSize:b,totalProcessed:f+p,recentEventCount:h.length}},[c,f,p,T,C,b,h.length]);return{runningTasks:c,completedCount:f,failedCount:p,eventHistory:h,averageDurationMs:T,throughputPerSecond:C,currentQueueSize:b,progress:I}},e.useWrappedChildren=function(e,r,o){return void 0===o&&(o="preserve"),n.useMemo(function(){if(!e)return e;var n=function(e){if(!t.isValidElement(e))return e;var n,i=e.props||{};n="override"===o?a({},i,r):a({},r,i);var u=null==i?void 0:i.style,c=null==r?void 0:r.style;return u&&c&&"object"==typeof u&&"object"==typeof c&&(n.style="override"===o?a({},u,c):a({},c,u)),t.cloneElement(e,n)};return Array.isArray(e)?e.map(n):n(e)},[e,r,o])}});
|
|
2
2
|
//# sourceMappingURL=index.umd.js.map
|