webuix 0.0.11 → 0.0.13

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.cjs.js CHANGED
@@ -1 +1 @@
1
- var{defineProperty:E,getOwnPropertyNames:y,getOwnPropertyDescriptor:w}=Object,X=Object.prototype.hasOwnProperty;var v=new WeakMap,b=(t)=>{var e=v.get(t),r;if(e)return e;if(e=E({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function")y(t).map((n)=>!X.call(e,n)&&E(e,n,{get:()=>t[n],enumerable:!(r=w(t,n))||r.enumerable}));return v.set(t,e),e};var h=(t,e)=>{for(var r in e)E(t,r,{get:e[r],enumerable:!0,configurable:!0,set:(n)=>e[r]=()=>n})};var g={};h(g,{wrapToReadableStream:()=>c,wrapInputStream:()=>m,WXEventHandler:()=>l,WXEvent:()=>o});module.exports=b(g);var f={chunkSize:1048576,headers:{"Content-Type":"application/octet-stream"}};async function c(t,e={}){let r={...f,...e};return new Promise((n,a)=>{let i;try{if(i=t,!i)throw new Error("Failed to open file input stream")}catch(s){a(s);return}let u=()=>{try{i?.close()}catch(s){console.error("Error during abort cleanup:",s)}a(new DOMException("The operation was aborted.","AbortError"))};if(r.signal){if(r.signal.aborted){u();return}r.signal.addEventListener("abort",u)}let W=new ReadableStream({async pull(s){try{let p=S(i,r.chunkSize);if(!p){s.close(),d();return}s.enqueue(p)}catch(p){d(),s.error(p),a(new Error(`Error reading file chunk: ${p}`))}},cancel(s){console.warn("Stream canceled:",s),d()}});function d(){try{if(r.signal)r.signal.removeEventListener("abort",u);i?.close()}catch(s){console.error(`Error during cleanup: ${s}`)}}n(W)})}function S(t,e){try{let r=e?t.readChunk(e):t.read();if(typeof r==="number")return new Uint8Array([r]);else if(typeof r==="string"){let n=JSON.parse(r);return n&&Array.isArray(n)&&n.length>0?new Uint8Array(n):null}return null}catch(r){throw new Error("Error reading chunk data: "+r)}}async function m(t,e={}){let r={...f,...e};try{let n=await c(t,r);return new Response(n,r)}catch(n){throw new Error(`wrapInputStream failed: ${n}`)}}class o extends Event{_wxOrigin;_wxData;get wxOrigin(){return this._wxOrigin}set wxOrigin(t){this._wxOrigin=t}get wx(){return this._wxData}set wx(t){this._wxData=t}constructor(t){super(t,{bubbles:!0,cancelable:!0,composed:!0})}}class l{_initialized=!1;_handlers=new WeakMap;_eventTypes={WX_ON_BACK:"back",WX_ON_RESUME:"resume",WX_ON_REFRESH:"refresh",WX_ON_PAUSE:"pause",WX_ON_KEYBOARD:"keyboard",WX_ON_INSETS:"insets"};get eventTypes(){return this._eventTypes}constructor(){if(this._initialized)return;this._initialized=!0,window.addEventListener("message",(t)=>{try{if(typeof t.data!=="string")return;let e=JSON.parse(t.data);if(!e?.type)return;let r=this._eventTypes[e.type]??e.type;this._dispatch(window,r,e)}catch(e){console.error("[WXEvent] Message error:",e)}})}_dispatch(t,e,r){let n=new o(e);n.wx=r.data,n.wxOrigin="system",t.dispatchEvent(n)}on(t,e,r){if(!this._initialized)new l;let n=(i)=>{if(!(i instanceof o)){console.warn("[WXEvent] Event is not a WXEvent:",i);return}if(i.wxOrigin==="system"){if(typeof r==="function")r(i);else if(r&&typeof r.handleEvent==="function")r.handleEvent(i)}};if(!this._handlers.has(t))this._handlers.set(t,new Map);let a=this._handlers.get(t);if(!a.has(e))a.set(e,new Set);return a.get(e).add({handler:r,wrapper:n}),t.addEventListener(e,n),()=>this.off(t,e,r)}off(t,e,r){let n=this._handlers.get(t);if(!n?.has(e))return;for(let a of n.get(e))if(a.handler===r){t.removeEventListener(e,a.wrapper),n.get(e).delete(a);break}}}
1
+ var{defineProperty:v,getOwnPropertyNames:w,getOwnPropertyDescriptor:m}=Object,b=Object.prototype.hasOwnProperty;var W=new WeakMap,h=(r)=>{var n=W.get(r),t;if(n)return n;if(n=v({},"__esModule",{value:!0}),r&&typeof r==="object"||typeof r==="function")w(r).map((e)=>!b.call(n,e)&&v(n,e,{get:()=>r[e],enumerable:!(t=m(r,e))||t.enumerable}));return W.set(r,n),n};var g=(r,n)=>{for(var t in n)v(r,t,{get:n[t],enumerable:!0,configurable:!0,set:(e)=>n[t]=()=>e})};var x={};g(x,{wrapToReadableStream:()=>d,wrapOutputStream:()=>y,wrapInputStream:()=>u,WXEventHandler:()=>c,WXEvent:()=>o});module.exports=h(x);var f={chunkSize:1048576,headers:{"Content-Type":"application/octet-stream"}};async function d(r,n={}){let t={...f,...n};return new Promise((e,i)=>{let a;try{if(a=r,!a)throw new Error("Failed to open file input stream")}catch(s){i(s);return}let l=()=>{try{a?.close()}catch(s){console.error("Error during abort cleanup:",s)}i(new DOMException("The operation was aborted.","AbortError"))};if(t.signal){if(t.signal.aborted){l();return}t.signal.addEventListener("abort",l)}let X=new ReadableStream({async pull(s){try{let p=O(a,t.chunkSize);if(!p){s.close(),E();return}s.enqueue(p)}catch(p){E(),s.error(p),i(new Error(`Error reading file chunk: ${p}`))}},cancel(s){console.warn("Stream canceled:",s),E()}});function E(){try{if(t.signal)t.signal.removeEventListener("abort",l);a?.close()}catch(s){console.error(`Error during cleanup: ${s}`)}}e(X)})}function O(r,n){try{let t=n?r.readChunk(n):r.read();if(typeof t==="number")return new Uint8Array([t]);else if(typeof t==="string"){let e=JSON.parse(t);return e&&Array.isArray(e)&&e.length>0?new Uint8Array(e):null}return null}catch(t){throw new Error("Error reading chunk data: "+t)}}async function u(r,n={}){let t={...f,...n};try{let e=await d(r,t);return new Response(e,t)}catch(e){throw new Error(`wrapInputStream failed: ${e}`)}}async function y(r,n){if(!r||typeof r.getReader!=="function")throw new Error("Invalid ReadableStream provided.");if(!n||typeof n.write!=="function"||typeof n.close!=="function")throw new Error("Invalid outputStreamInstance provided. It must be an already opened stream with 'write' and 'close' methods.");let t=new WritableStream({async start(e){console.log("WritableStream started, output stream instance ready.")},async write(e,i){if(e instanceof Uint8Array)for(let a=0;a<e.length;a++)n.write(e[a]);else console.warn("Received non-Uint8Array chunk in WritableStream:",e),i.error(new TypeError("Expected Uint8Array chunks."))},async close(){console.log("WritableStream closed. Flushing and closing native stream.");try{n.flush(),n.close()}catch(e){throw console.error("Error during WritableStream close cleanup:",e),e}},async abort(e){console.error("WritableStream aborted:",e);try{n.close()}catch(i){console.error("Error during WritableStream abort cleanup:",i)}}});try{await r.pipeTo(t),console.log("Piping completed successfully.")}catch(e){let i=e instanceof Error?e:new Error(String(e));throw console.error("Error during stream piping:",i),new Error(`Failed to pipe stream: ${i.message}`)}}class o extends Event{_wxOrigin;_wxData;get wxOrigin(){return this._wxOrigin}set wxOrigin(r){this._wxOrigin=r}get wx(){return this._wxData}set wx(r){this._wxData=r}constructor(r){super(r,{bubbles:!0,cancelable:!0,composed:!0})}}var _={cordova:!1};class c{_initialized=!1;_handlers=new WeakMap;_eventTypes;get eventTypes(){return this._eventTypes}constructor(r=_){if(this._initialized)return;this._initialized=!0,this._eventTypes={WX_ON_BACK:r.cordova?"backbutton":"back",WX_ON_RESUME:"resume",WX_ON_REFRESH:"refresh",WX_ON_PAUSE:"pause",WX_ON_KEYBOARD:"keyboard",WX_ON_INSETS:"insets"},window.addEventListener("message",(n)=>{try{if(typeof n.data!=="string")return;let t=JSON.parse(n.data);if(!t?.type)return;let e=this._eventTypes[t.type]??t.type;this._dispatch(window,e,t)}catch(t){console.error("[WXEvent] Message error:",t)}})}_dispatch(r,n,t){let e=new o(n);e.wx=t.data,e.wxOrigin="system",r.dispatchEvent(e)}on(r,n,t){if(!this._initialized)new c;let e=(a)=>{if(!(a instanceof o)){console.warn("[WXEvent] Event is not a WXEvent:",a);return}if(a.wxOrigin==="system"){if(typeof t==="function")t(a);else if(t&&typeof t.handleEvent==="function")t.handleEvent(a)}};if(!this._handlers.has(r))this._handlers.set(r,new Map);let i=this._handlers.get(r);if(!i.has(n))i.set(n,new Set);return i.get(n).add({handler:t,wrapper:e}),r.addEventListener(n,e),()=>this.off(r,n,t)}off(r,n,t){let e=this._handlers.get(r);if(!e?.has(n))return;for(let i of e.get(n))if(i.handler===t){r.removeEventListener(n,i.wrapper),e.get(n).delete(i);break}}}
package/dist/index.d.ts CHANGED
@@ -20,6 +20,16 @@ export interface ReadableStreamInit extends RequestInit {
20
20
  }
21
21
  export declare function wrapToReadableStream(inputStream: FileInputInterfaceStream, init?: ReadableStreamInit): Promise<ReadableStream<Uint8Array>>;
22
22
  export declare function wrapInputStream(inputStream: FileInputInterfaceStream, init?: ReadableStreamInit): Promise<Response>;
23
+ /**
24
+ * This is a private interface which is not accessible in the window object.
25
+ * It is used to define the structure of a file input stream.
26
+ */
27
+ export interface FileOutputInterfaceStream {
28
+ write(b: number): void;
29
+ flush(): void;
30
+ close(): void;
31
+ }
32
+ export declare function wrapOutputStream(readableStream: ReadableStream<Uint8Array>, outputStreamInstance: FileOutputInterfaceStream): Promise<void>;
23
33
  export declare class WXEvent<T = any> extends Event {
24
34
  private _wxOrigin?;
25
35
  private _wxData?;
@@ -29,8 +39,11 @@ export declare class WXEvent<T = any> extends Event {
29
39
  set wx(value: T | undefined);
30
40
  constructor(type: WXEventType);
31
41
  }
42
+ export interface WXEvenHandlerOptions {
43
+ cordova: boolean;
44
+ }
32
45
  export type WXEventNativeType = "WX_ON_BACK" | "WX_ON_RESUME" | "WX_ON_REFRESH" | "WX_ON_PAUSE" | "WX_ON_KEYBOARD" | "WX_ON_INSETS";
33
- export type WXEventType = "back" | "resume" | "refresh" | "pause" | "keyboard" | "insets";
46
+ export type WXEventType = "back" | "backbutton" | "resume" | "refresh" | "pause" | "keyboard" | "insets";
34
47
  export type WXEventDetail<T = any> = {
35
48
  type: WXEventNativeType;
36
49
  data?: T;
@@ -69,7 +82,7 @@ export declare class WXEventHandler {
69
82
  private _handlers;
70
83
  private _eventTypes;
71
84
  get eventTypes(): Record<WXEventNativeType, WXEventType>;
72
- constructor();
85
+ constructor(options?: WXEvenHandlerOptions);
73
86
  private _dispatch;
74
87
  on<K extends keyof WXEventMap>(element: Window | Element, type: K, handler: WXEventListenerOrWXEventListenerObject<WXEventMap[K]>): () => void;
75
88
  off(element: Window | Element, type: WXEventType, handler: WXEventListenerOrWXEventListenerObject): void;
package/dist/index.esm.js CHANGED
@@ -1 +1 @@
1
- var u={chunkSize:1048576,headers:{"Content-Type":"application/octet-stream"}};async function d(t,r={}){let e={...u,...r};return new Promise((n,a)=>{let i;try{if(i=t,!i)throw new Error("Failed to open file input stream")}catch(s){a(s);return}let c=()=>{try{i?.close()}catch(s){console.error("Error during abort cleanup:",s)}a(new DOMException("The operation was aborted.","AbortError"))};if(e.signal){if(e.signal.aborted){c();return}e.signal.addEventListener("abort",c)}let f=new ReadableStream({async pull(s){try{let o=v(i,e.chunkSize);if(!o){s.close(),l();return}s.enqueue(o)}catch(o){l(),s.error(o),a(new Error(`Error reading file chunk: ${o}`))}},cancel(s){console.warn("Stream canceled:",s),l()}});function l(){try{if(e.signal)e.signal.removeEventListener("abort",c);i?.close()}catch(s){console.error(`Error during cleanup: ${s}`)}}n(f)})}function v(t,r){try{let e=r?t.readChunk(r):t.read();if(typeof e==="number")return new Uint8Array([e]);else if(typeof e==="string"){let n=JSON.parse(e);return n&&Array.isArray(n)&&n.length>0?new Uint8Array(n):null}return null}catch(e){throw new Error("Error reading chunk data: "+e)}}async function m(t,r={}){let e={...u,...r};try{let n=await d(t,e);return new Response(n,e)}catch(n){throw new Error(`wrapInputStream failed: ${n}`)}}class p extends Event{_wxOrigin;_wxData;get wxOrigin(){return this._wxOrigin}set wxOrigin(t){this._wxOrigin=t}get wx(){return this._wxData}set wx(t){this._wxData=t}constructor(t){super(t,{bubbles:!0,cancelable:!0,composed:!0})}}class E{_initialized=!1;_handlers=new WeakMap;_eventTypes={WX_ON_BACK:"back",WX_ON_RESUME:"resume",WX_ON_REFRESH:"refresh",WX_ON_PAUSE:"pause",WX_ON_KEYBOARD:"keyboard",WX_ON_INSETS:"insets"};get eventTypes(){return this._eventTypes}constructor(){if(this._initialized)return;this._initialized=!0,window.addEventListener("message",(t)=>{try{if(typeof t.data!=="string")return;let r=JSON.parse(t.data);if(!r?.type)return;let e=this._eventTypes[r.type]??r.type;this._dispatch(window,e,r)}catch(r){console.error("[WXEvent] Message error:",r)}})}_dispatch(t,r,e){let n=new p(r);n.wx=e.data,n.wxOrigin="system",t.dispatchEvent(n)}on(t,r,e){if(!this._initialized)new E;let n=(i)=>{if(!(i instanceof p)){console.warn("[WXEvent] Event is not a WXEvent:",i);return}if(i.wxOrigin==="system"){if(typeof e==="function")e(i);else if(e&&typeof e.handleEvent==="function")e.handleEvent(i)}};if(!this._handlers.has(t))this._handlers.set(t,new Map);let a=this._handlers.get(t);if(!a.has(r))a.set(r,new Set);return a.get(r).add({handler:e,wrapper:n}),t.addEventListener(r,n),()=>this.off(t,r,e)}off(t,r,e){let n=this._handlers.get(t);if(!n?.has(r))return;for(let a of n.get(r))if(a.handler===e){t.removeEventListener(r,a.wrapper),n.get(r).delete(a);break}}}export{d as wrapToReadableStream,m as wrapInputStream,E as WXEventHandler,p as WXEvent};
1
+ var l={chunkSize:1048576,headers:{"Content-Type":"application/octet-stream"}};async function E(r,n={}){let t={...l,...n};return new Promise((e,i)=>{let a;try{if(a=r,!a)throw new Error("Failed to open file input stream")}catch(s){i(s);return}let d=()=>{try{a?.close()}catch(s){console.error("Error during abort cleanup:",s)}i(new DOMException("The operation was aborted.","AbortError"))};if(t.signal){if(t.signal.aborted){d();return}t.signal.addEventListener("abort",d)}let f=new ReadableStream({async pull(s){try{let o=W(a,t.chunkSize);if(!o){s.close(),c();return}s.enqueue(o)}catch(o){c(),s.error(o),i(new Error(`Error reading file chunk: ${o}`))}},cancel(s){console.warn("Stream canceled:",s),c()}});function c(){try{if(t.signal)t.signal.removeEventListener("abort",d);a?.close()}catch(s){console.error(`Error during cleanup: ${s}`)}}e(f)})}function W(r,n){try{let t=n?r.readChunk(n):r.read();if(typeof t==="number")return new Uint8Array([t]);else if(typeof t==="string"){let e=JSON.parse(t);return e&&Array.isArray(e)&&e.length>0?new Uint8Array(e):null}return null}catch(t){throw new Error("Error reading chunk data: "+t)}}async function u(r,n={}){let t={...l,...n};try{let e=await E(r,t);return new Response(e,t)}catch(e){throw new Error(`wrapInputStream failed: ${e}`)}}async function y(r,n){if(!r||typeof r.getReader!=="function")throw new Error("Invalid ReadableStream provided.");if(!n||typeof n.write!=="function"||typeof n.close!=="function")throw new Error("Invalid outputStreamInstance provided. It must be an already opened stream with 'write' and 'close' methods.");let t=new WritableStream({async start(e){console.log("WritableStream started, output stream instance ready.")},async write(e,i){if(e instanceof Uint8Array)for(let a=0;a<e.length;a++)n.write(e[a]);else console.warn("Received non-Uint8Array chunk in WritableStream:",e),i.error(new TypeError("Expected Uint8Array chunks."))},async close(){console.log("WritableStream closed. Flushing and closing native stream.");try{n.flush(),n.close()}catch(e){throw console.error("Error during WritableStream close cleanup:",e),e}},async abort(e){console.error("WritableStream aborted:",e);try{n.close()}catch(i){console.error("Error during WritableStream abort cleanup:",i)}}});try{await r.pipeTo(t),console.log("Piping completed successfully.")}catch(e){let i=e instanceof Error?e:new Error(String(e));throw console.error("Error during stream piping:",i),new Error(`Failed to pipe stream: ${i.message}`)}}class p extends Event{_wxOrigin;_wxData;get wxOrigin(){return this._wxOrigin}set wxOrigin(r){this._wxOrigin=r}get wx(){return this._wxData}set wx(r){this._wxData=r}constructor(r){super(r,{bubbles:!0,cancelable:!0,composed:!0})}}var X={cordova:!1};class v{_initialized=!1;_handlers=new WeakMap;_eventTypes;get eventTypes(){return this._eventTypes}constructor(r=X){if(this._initialized)return;this._initialized=!0,this._eventTypes={WX_ON_BACK:r.cordova?"backbutton":"back",WX_ON_RESUME:"resume",WX_ON_REFRESH:"refresh",WX_ON_PAUSE:"pause",WX_ON_KEYBOARD:"keyboard",WX_ON_INSETS:"insets"},window.addEventListener("message",(n)=>{try{if(typeof n.data!=="string")return;let t=JSON.parse(n.data);if(!t?.type)return;let e=this._eventTypes[t.type]??t.type;this._dispatch(window,e,t)}catch(t){console.error("[WXEvent] Message error:",t)}})}_dispatch(r,n,t){let e=new p(n);e.wx=t.data,e.wxOrigin="system",r.dispatchEvent(e)}on(r,n,t){if(!this._initialized)new v;let e=(a)=>{if(!(a instanceof p)){console.warn("[WXEvent] Event is not a WXEvent:",a);return}if(a.wxOrigin==="system"){if(typeof t==="function")t(a);else if(t&&typeof t.handleEvent==="function")t.handleEvent(a)}};if(!this._handlers.has(r))this._handlers.set(r,new Map);let i=this._handlers.get(r);if(!i.has(n))i.set(n,new Set);return i.get(n).add({handler:t,wrapper:e}),r.addEventListener(n,e),()=>this.off(r,n,t)}off(r,n,t){let e=this._handlers.get(r);if(!e?.has(n))return;for(let i of e.get(n))if(i.handler===t){r.removeEventListener(n,i.wrapper),e.get(n).delete(i);break}}}export{E as wrapToReadableStream,y as wrapOutputStream,u as wrapInputStream,v as WXEventHandler,p as WXEvent};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webuix",
3
- "version": "0.0.11",
3
+ "version": "0.0.13",
4
4
  "type": "module",
5
5
  "description": "A library to make your life easier when working with MMRL's WebUI",
6
6
  "source": "src/index.ts",