@enfyra/kernel 1.1.62 → 1.1.64

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
- "use strict";var x=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var $=x((fe,S)=>{"use strict";function j({handles:e,createHandleId:t,callIsolateCallback:n}){function a(f,r){if(r==null)return r;let l=typeof r;if(l==="string"||l==="number"||l==="boolean")return r;if(r instanceof Date)return{__date:r.toISOString()};if(r instanceof Set)return{__set:Array.from(r.values()).map(i=>a(f,i))};if(r instanceof Map)return{__map:Array.from(r.entries()).map(([i,d])=>[a(f,i),a(f,d)])};if(r instanceof RegExp)return{__regexp:{source:r.source,flags:r.flags}};if(r instanceof Error)return{__error:{name:r.name,message:r.message,stack:r.stack}};if(typeof URL<"u"&&r instanceof URL)return{__url:r.href};if(typeof URLSearchParams<"u"&&r instanceof URLSearchParams)return{__urlSearchParams:r.toString()};if(typeof Buffer<"u"&&Buffer.isBuffer(r)||r._isBuffer===!0)return o(f,r);if(ArrayBuffer.isView(r))return{__typedArray:r.constructor?.name||"Uint8Array",data:Array.from(r)};if(r instanceof ArrayBuffer)return{__arrayBuffer:Array.from(new Uint8Array(r))};if(Array.isArray(r))return r.map(i=>a(f,i));if(l==="object"&&U(r)){let i={};for(let[d,A]of Object.entries(r))i[d]=a(f,A);return i}return o(f,r)}function o(f,r){let l=t(f);return e.set(l,r),{__pkgHandle:l}}function c(f,r){if(!r||typeof r!="object")return r;if(r.__fnRef)return(...i)=>n(f,r.__fnRef,i);if(r.__pkgHandleArg){let i=e.get(r.__pkgHandleArg);if(!i)throw new Error(`Package argument handle not found: ${r.__pkgHandleArg}`);return i}if(r.__date)return new Date(r.__date);if(r.__set)return new Set(r.__set.map(i=>c(f,i)));if(r.__map)return new Map(r.__map.map(([i,d])=>[c(f,i),c(f,d)]));if(r.__regexp)return new RegExp(r.__regexp.source,r.__regexp.flags||"");if(r.__error){let i=new Error(r.__error.message||"");return i.name=r.__error.name||"Error",r.__error.stack&&(i.stack=r.__error.stack),i}if(r.__url)return new URL(r.__url);if(r.__urlSearchParams)return new URLSearchParams(r.__urlSearchParams);if(r.__blob)return new Blob([Uint8Array.from(r.__blob.data||[])],{type:r.__blob.type||""});if(r.__file){let i=[Uint8Array.from(r.__file.data||[])],d={type:r.__file.type||"",lastModified:r.__file.lastModified};return typeof File<"u"?new File(i,r.__file.name||"file",d):new Blob(i,d)}if(r.__formData){let i=new FormData;for(let[d,A]of r.__formData)i.append(d,c(f,A));return i}if(r.__typedArray){let i=globalThis[r.__typedArray]||Uint8Array;return new i(r.data||[])}if(r.__arrayBuffer)return Uint8Array.from(r.__arrayBuffer).buffer;if(Array.isArray(r))return r.map(i=>c(f,i));let l={};for(let[i,d]of Object.entries(r))l[i]=c(f,d);return l}function s(f,r){return JSON.parse(r||"[]").map(l=>c(f,l))}return{createPackageHandle:o,deserializePackageArg:c,deserializePackageArgs:s,serializePackageValue:a}}function U(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:!Object.values(e).some(n=>typeof n=="function")}S.exports={createPackageRuntimeCodec:j}});var{AsyncLocalStorage:B}=require("node:async_hooks"),N=require("node:http"),O=require("node:https"),H=require("node:net"),L=require("node:tls"),_=require("node:http2"),{createPackageRuntimeCodec:z}=$(),R=new B,C=new Map,y=new Map,w=new Map,h=new Map,m=new Map,P=new Map,p=new Map,g=new Map,D=0,F=0,q=0;function G(e){return Math.max(1,Math.trunc(Number(e)||3e4))}function k(e){let t=m.get(e);return t||(t=new AbortController,m.set(e,t)),t}function T(e){k(e).abort();for(let[t,n]of P)if(n.taskId===e){try{typeof n.stream.destroy=="function"&&n.stream.destroy(new Error("Package stream cancelled")),typeof n.iterator?.return=="function"&&Promise.resolve(n.iterator.return()).catch(()=>{})}catch{}P.delete(t)}}function J(e){p.set(e,(p.get(e)||0)+1)}function K(e){let t=Math.max(0,(p.get(e)||1)-1);if(t>0){p.set(e,t);return}p.delete(e);let n=g.get(e);if(n){g.delete(e);for(let a of n)process.send?.({type:"taskCancelled",id:a,taskId:e,ok:!0,value:!0})}}function V(e,t){if(!p.has(t)){process.send?.({type:"taskCancelled",id:e,taskId:t,ok:!0,value:!0});return}let n=g.get(t);n||(n=new Set,g.set(t,n)),n.add(e)}function E(){return R.getStore()}function M(e){let t=E();if(!t||!e)return e;let n=k(t).signal;if(n.aborted)return e.destroy(new Error("Package call cancelled")),e;let a=()=>{try{e.destroy(new Error("Package call cancelled"))}catch{}};return n.addEventListener("abort",a,{once:!0}),e.once("close",()=>{n.removeEventListener("abort",a)}),e}function I(e){let t=E();if(!t||!e||typeof e.destroy!="function")return e;let n=k(t).signal;if(n.aborted)return e.destroy(new Error("Package call cancelled")),e;let a=()=>{try{e.destroy(new Error("Package call cancelled"))}catch{}};return n.addEventListener("abort",a,{once:!0}),e.once("close",()=>{n.removeEventListener("abort",a)}),e}function W(){for(let t of[N,O]){if(t.__enfyraCancelPatched)continue;t.__enfyraCancelPatched=!0;let n=t.request,a=t.get;t.request=function(...c){return M(n.apply(t,c))},t.get=function(...c){return M(a.apply(t,c))}}for(let[t,n]of[[H,["connect","createConnection"]],[L,["connect"]]])if(!t.__enfyraCancelPatched){t.__enfyraCancelPatched=!0;for(let a of n){let o=t[a];typeof o=="function"&&(t[a]=function(...s){return I(o.apply(t,s))})}}if(!_.__enfyraCancelPatched){_.__enfyraCancelPatched=!0;let t=_.connect;_.connect=function(...a){return I(t.apply(_,a))}}let e=globalThis.fetch;typeof e=="function"&&!globalThis.__enfyraFetchCancelPatched&&(globalThis.__enfyraFetchCancelPatched=!0,globalThis.fetch=function(n,a){let o=E();if(o){let c=a&&typeof a=="object"?a:{};c.signal||(a={...c,signal:k(o).signal})}return e.call(globalThis,n,a)})}W();function Y(e){let t=v(e.taskId,e.argsJson),n=(e.path||[]).join(".");if(e.packageName==="undici"&&(n==="request"||n==="fetch")){let a=t[1]&&typeof t[1]=="object"?t[1]:{};t[1]={...a,signal:k(e.taskId).signal}}return t}function Q(e,t,n){T(t),process.send?.({id:e,ok:!1,error:{message:n,code:"ERR_PACKAGE_RUNTIME_TIMEOUT",details:{outcome:"unknown_outcome",retryable:!1}}})}var{createPackageHandle:X,deserializePackageArg:Z,deserializePackageArgs:v,serializePackageValue:u}=z({handles:y,createHandleId:e=>`${e}:pkg_${++D}`,callIsolateCallback:re}),ee=new Set(["__proto__","prototype","constructor","caller","callee","arguments"]);async function te(e){let t=e.fileUrl||e.name;if(C.has(t))return C.get(t);let n=e.name&&e.name.startsWith("node:")?e.name:e.fileUrl||e.name;if(!n)throw new Error(`Package "${e.name}" cannot be imported by package runtime`);let a=await import(n);return C.set(t,a),a}function b(e,t){if(!t||t.length===0)return{target:e&&e.default!==void 0?e.default:e,receiver:void 0};let n=e,a;for(let o=0;o<t.length;o++){let c=t[o];if(ee.has(c))throw new Error(`Package property is forbidden: ${c}`);if(n==null&&o===0&&e.default!==void 0&&(n=e.default),n!=null&&c in n){a=n,n=n[c];continue}if(o===0&&e.default!==void 0&&e.default!==n&&c in e.default){a=e.default,n=e.default[c];continue}throw new Error(`Package export not found: ${t.join(".")}`)}return{target:n,receiver:a}}function re(e,t,n){return new Promise((a,o)=>{let c=`cb_${++F}`;w.set(c,{resolve:a,reject:o,taskId:e});try{process.send?.({type:"pkgCallbackCall",id:c,taskId:e,callbackId:t,argsJson:JSON.stringify(n.map(s=>u(e,s)))})}catch(s){w.delete(c),o(s)}})}async function ne(e){let t=Y(e);if(e.op==="handleCall"){let c=y.get(e.handleId);if(!c)throw new Error(`Package handle not found: ${e.handleId}`);let{target:s,receiver:f}=b(c,e.path||[]);if(typeof s!="function")return u(e.taskId,s);let r=await s.apply(f||c,t);return u(e.taskId,r)}if(e.op==="handleGet"){let c=y.get(e.handleId);if(!c)throw new Error(`Package handle not found: ${e.handleId}`);let{target:s,receiver:f}=b(c,e.path||[]);return u(e.taskId,typeof s=="function"&&f?s.bind(f):s)}let n=await te(e.package),{target:a,receiver:o}=b(n,e.path||[]);if(e.op==="construct"){if(typeof a!="function")throw new Error(`Package export is not constructable: ${e.packageName}.${(e.path||[]).join(".")}`);return X(e.taskId,new a(...t))}return typeof a=="function"?u(e.taskId,await a.apply(o,t)):u(e.taskId,a)}function ae(e,t,n){return new Promise((a,o)=>{let c=`stream_${++q}`;h.set(c,{resolve:a,reject:o});try{process.send?.({type:"pkgStreamChunk",id:e,ackId:c,taskId:t,chunk:Buffer.from(n).toString("base64")},s=>{s&&(h.delete(c),o(s))})}catch(s){h.delete(c),o(s)}})}async function oe(e){let t=y.get(e.handleId);if(!t)throw new Error(`Package handle not found: ${e.handleId}`);let{target:n}=b(t,e.path||[]),a=n||t;if(!a||typeof a[Symbol.asyncIterator]!="function"&&typeof a.on!="function")throw new Error(`Package handle is not a readable stream: ${e.handleId}`);let o=typeof a[Symbol.asyncIterator]=="function"?a[Symbol.asyncIterator]():a;P.set(e.id,{taskId:e.taskId,stream:a,iterator:o});try{for(;;){let c=await o.next();if(c.done)break;await ae(e.id,e.taskId,c.value)}}finally{P.delete(e.id)}}function ce(e){T(e),m.delete(e);for(let t of y.keys())t.startsWith(`${e}:`)&&y.delete(t)}process.on("message",async e=>{if(!e)return;if(e.type==="pkgStreamAck"||e.type==="pkgStreamError"){let o=h.get(e.ackId);if(!o)return;h.delete(e.ackId),e.type==="pkgStreamAck"?o.resolve(!0):o.reject(new Error(e.error?.message||"Package stream failed"));return}if(e.type==="pkgCallbackResult"||e.type==="pkgCallbackError"){let o=w.get(e.id);if(!o)return;w.delete(e.id),e.type==="pkgCallbackResult"?o.resolve(Z(o.taskId,e.value)):o.reject(new Error(e.error?.message||"Package callback failed"));return}if(e.op==="cancelTask"){T(e.taskId),V(e.id,e.taskId);return}if(!e.op)return;let t=!1,n=G(e.timeoutMs),a=setTimeout(()=>{if(t)return;t=!0;let o=[e.op?`op=${e.op}`:null,e.packageName?`package=${e.packageName}`:null,e.handleId?`handle=${e.handleId}`:null,Array.isArray(e.path)?`path=${e.path.join(".")||"<root>"}`:null].filter(Boolean).join(" "),c=`Package runtime call timed out after ${n}ms${o?` (${o})`:""}`;Q(e.id,e.taskId,c)},n);try{if(e.op==="releaseTask"){t=!0,clearTimeout(a),ce(e.taskId),e.fire||process.send?.({id:e.id,ok:!0,value:!0});return}J(e.taskId);let o=await R.run(e.taskId,()=>e.op==="streamHandle"?oe(e):ne(e));if(t)return;t=!0,clearTimeout(a),process.send?.({id:e.id,ok:!0,value:o})}catch(o){if(t)return;t=!0,clearTimeout(a);let c=[e.op?`op=${e.op}`:null,e.packageName?`package=${e.packageName}`:null,e.handleId?`handle=${e.handleId}`:null,Array.isArray(e.path)?`path=${e.path.join(".")||"<root>"}`:null].filter(Boolean).join(" ");process.send?.({id:e.id,ok:!1,error:{message:c?`${o.message} (${c})`:o.message,stack:o.stack}})}finally{e.op!=="releaseTask"&&K(e.taskId)}});process.on("disconnect",()=>{process.exit(1)});
1
+ "use strict";var B=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var $=B((he,M)=>{"use strict";function L({handles:e,createHandleId:t,callIsolateCallback:n}){function a(s,r){if(r==null)return r;let l=typeof r;if(l==="string"||l==="number"||l==="boolean")return r;if(r instanceof Date)return{__date:r.toISOString()};if(r instanceof Set)return{__set:Array.from(r.values()).map(i=>a(s,i))};if(r instanceof Map)return{__map:Array.from(r.entries()).map(([i,u])=>[a(s,i),a(s,u)])};if(r instanceof RegExp)return{__regexp:{source:r.source,flags:r.flags}};if(r instanceof Error)return{__error:{name:r.name,message:r.message,stack:r.stack}};if(typeof URL<"u"&&r instanceof URL)return{__url:r.href};if(typeof URLSearchParams<"u"&&r instanceof URLSearchParams)return{__urlSearchParams:r.toString()};if(typeof Buffer<"u"&&Buffer.isBuffer(r)||r._isBuffer===!0)return o(s,r);if(ArrayBuffer.isView(r))return{__typedArray:r.constructor?.name||"Uint8Array",data:Array.from(r)};if(r instanceof ArrayBuffer)return{__arrayBuffer:Array.from(new Uint8Array(r))};if(Array.isArray(r))return r.map(i=>a(s,i));if(l==="object"&&D(r)){let i={};for(let[u,E]of Object.entries(r))i[u]=a(s,E);return i}return o(s,r)}function o(s,r){let l=t(s);return e.set(l,r),{__pkgHandle:l}}function c(s,r){if(!r||typeof r!="object")return r;if(r.__fnRef)return(...i)=>n(s,r.__fnRef,i);if(r.__pkgHandleArg){let i=e.get(r.__pkgHandleArg);if(!i)throw new Error(`Package argument handle not found: ${r.__pkgHandleArg}`);return i}if(r.__date)return new Date(r.__date);if(r.__set)return new Set(r.__set.map(i=>c(s,i)));if(r.__map)return new Map(r.__map.map(([i,u])=>[c(s,i),c(s,u)]));if(r.__regexp)return new RegExp(r.__regexp.source,r.__regexp.flags||"");if(r.__error){let i=new Error(r.__error.message||"");return i.name=r.__error.name||"Error",r.__error.stack&&(i.stack=r.__error.stack),i}if(r.__url)return new URL(r.__url);if(r.__urlSearchParams)return new URLSearchParams(r.__urlSearchParams);if(r.__blob)return new Blob([Uint8Array.from(r.__blob.data||[])],{type:r.__blob.type||""});if(r.__file){let i=[Uint8Array.from(r.__file.data||[])],u={type:r.__file.type||"",lastModified:r.__file.lastModified};return typeof File<"u"?new File(i,r.__file.name||"file",u):new Blob(i,u)}if(r.__formData){let i=new FormData;for(let[u,E]of r.__formData)i.append(u,c(s,E));return i}if(r.__typedArray){let i=globalThis[r.__typedArray]||Uint8Array;return new i(r.data||[])}if(r.__arrayBuffer)return Uint8Array.from(r.__arrayBuffer).buffer;if(Array.isArray(r))return r.map(i=>c(s,i));let l={};for(let[i,u]of Object.entries(r))l[i]=c(s,u);return l}function f(s,r){return JSON.parse(r||"[]").map(l=>c(s,l))}return{createPackageHandle:o,deserializePackageArg:c,deserializePackageArgs:f,serializePackageValue:a}}function D(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:!Object.values(e).some(n=>typeof n=="function")}M.exports={createPackageRuntimeCodec:L}});var{AsyncLocalStorage:H}=require("node:async_hooks"),F=require("node:http"),G=require("node:https"),z=require("node:net"),K=require("node:tls"),k=require("node:http2"),{createPackageRuntimeCodec:q}=$(),O=new H,S=new Map,y=new Map,b=new Map,h=new Map,g=new Map,A=new Map,d=new Map,x=new WeakSet,_=new Map,C=new Map,J=0,V=0,W=0,Y=0;function X(e){return Math.max(1,Math.trunc(Number(e)||3e4))}function m(e){let t=g.get(e);return t||(t=new AbortController,g.set(e,t)),t}function T(e){m(e).abort();for(let[t,n]of A)if(n.taskId===e){try{typeof n.stream.destroy=="function"&&n.stream.destroy(new Error("Package stream cancelled")),typeof n.iterator?.return=="function"&&Promise.resolve(n.iterator.return()).catch(()=>{})}catch{}A.delete(t)}for(let[t,n]of d)n.taskId===e&&(R(n,new Error("Package stream cancelled")),d.delete(t))}function Q(e){_.set(e,(_.get(e)||0)+1)}function Z(e){let t=Math.max(0,(_.get(e)||1)-1);if(t>0){_.set(e,t);return}_.delete(e);let n=C.get(e);if(n){C.delete(e);for(let a of n)process.send?.({type:"taskCancelled",id:a,taskId:e,ok:!0,value:!0})}}function v(e,t){if(!_.has(t)){process.send?.({type:"taskCancelled",id:e,taskId:t,ok:!0,value:!0});return}let n=C.get(t);n||(n=new Set,C.set(t,n)),n.add(e)}function I(){return O.getStore()}function N(e){let t=I();if(!t||!e)return e;let n=m(t).signal;if(n.aborted)return e.destroy(new Error("Package call cancelled")),e;let a=()=>{try{e.destroy(new Error("Package call cancelled"))}catch{}};return n.addEventListener("abort",a,{once:!0}),e.once("close",()=>{n.removeEventListener("abort",a)}),e}function U(e){let t=I();if(!t||!e||typeof e.destroy!="function")return e;let n=m(t).signal;if(n.aborted)return e.destroy(new Error("Package call cancelled")),e;let a=()=>{try{e.destroy(new Error("Package call cancelled"))}catch{}};return n.addEventListener("abort",a,{once:!0}),e.once("close",()=>{n.removeEventListener("abort",a)}),e}function ee(){for(let t of[F,G]){if(t.__enfyraCancelPatched)continue;t.__enfyraCancelPatched=!0;let n=t.request,a=t.get;t.request=function(...c){return N(n.apply(t,c))},t.get=function(...c){return N(a.apply(t,c))}}for(let[t,n]of[[z,["connect","createConnection"]],[K,["connect"]]])if(!t.__enfyraCancelPatched){t.__enfyraCancelPatched=!0;for(let a of n){let o=t[a];typeof o=="function"&&(t[a]=function(...f){return U(o.apply(t,f))})}}if(!k.__enfyraCancelPatched){k.__enfyraCancelPatched=!0;let t=k.connect;k.connect=function(...a){return U(t.apply(k,a))}}let e=globalThis.fetch;typeof e=="function"&&!globalThis.__enfyraFetchCancelPatched&&(globalThis.__enfyraFetchCancelPatched=!0,globalThis.fetch=function(n,a){let o=I();if(o){let c=a&&typeof a=="object"?a:{};c.signal||(a={...c,signal:m(o).signal})}return e.call(globalThis,n,a)})}ee();function te(e){let t=oe(e.taskId,e.argsJson),n=(e.path||[]).join(".");if(e.packageName==="undici"&&(n==="request"||n==="fetch")){let a=t[1]&&typeof t[1]=="object"?t[1]:{};t[1]={...a,signal:m(e.taskId).signal}}return t}function re(e,t,n){T(t),process.send?.({id:e,ok:!1,error:{message:n,code:"ERR_PACKAGE_RUNTIME_TIMEOUT",details:{outcome:"unknown_outcome",retryable:!1}}})}var{createPackageHandle:ne,deserializePackageArg:ae,deserializePackageArgs:oe,serializePackageValue:p}=q({handles:y,createHandleId:e=>`${e}:pkg_${++J}`,callIsolateCallback:se}),ce=new Set(["__proto__","prototype","constructor","caller","callee","arguments"]);async function ie(e){let t=e.fileUrl||e.name;if(S.has(t))return S.get(t);let n=e.name&&e.name.startsWith("node:")?e.name:e.fileUrl||e.name;if(!n)throw new Error(`Package "${e.name}" cannot be imported by package runtime`);let a=await import(n);return S.set(t,a),a}function w(e,t){if(!t||t.length===0)return{target:e&&e.default!==void 0?e.default:e,receiver:void 0};let n=e,a;for(let o=0;o<t.length;o++){let c=t[o];if(ce.has(c))throw new Error(`Package property is forbidden: ${c}`);if(n==null&&o===0&&e.default!==void 0&&(n=e.default),n!=null&&c in n){a=n,n=n[c];continue}if(o===0&&e.default!==void 0&&e.default!==n&&c in e.default){a=e.default,n=e.default[c];continue}throw new Error(`Package export not found: ${t.join(".")}`)}return{target:n,receiver:a}}function se(e,t,n){return new Promise((a,o)=>{let c=`cb_${++V}`;b.set(c,{resolve:a,reject:o,taskId:e});try{process.send?.({type:"pkgCallbackCall",id:c,taskId:e,callbackId:t,argsJson:JSON.stringify(n.map(f=>p(e,f)))})}catch(f){b.delete(c),o(f)}})}async function fe(e){let t=te(e);if(e.op==="handleCall"){let c=y.get(e.handleId);if(!c)throw new Error(`Package handle not found: ${e.handleId}`);let{target:f,receiver:s}=w(c,e.path||[]);if(typeof f!="function")return p(e.taskId,f);let r=await f.apply(s||c,t);return p(e.taskId,r)}if(e.op==="handleGet"){let c=y.get(e.handleId);if(!c)throw new Error(`Package handle not found: ${e.handleId}`);let{target:f,receiver:s}=w(c,e.path||[]);return p(e.taskId,typeof f=="function"&&s?f.bind(s):f)}let n=await ie(e.package),{target:a,receiver:o}=w(n,e.path||[]);if(e.op==="construct"){if(typeof a!="function")throw new Error(`Package export is not constructable: ${e.packageName}.${(e.path||[]).join(".")}`);return ne(e.taskId,new a(...t))}return typeof a=="function"?p(e.taskId,await a.apply(o,t)):p(e.taskId,a)}function le(e,t,n){return new Promise((a,o)=>{let c=`stream_${++W}`;h.set(c,{resolve:a,reject:o});try{process.send?.({type:"pkgStreamChunk",id:e,ackId:c,taskId:t,chunk:Buffer.from(n).toString("base64")},f=>{f&&(h.delete(c),o(f))})}catch(f){h.delete(c),o(f)}})}function P(e,t,n){let a=new Error(e);return a.code=t,a.details=n,a}function j(e,t){let n=y.get(e);if(!n)throw new Error(`Package handle not found: ${e}`);let{target:a}=w(n,t||[]),o=a||n;if(!o||typeof o[Symbol.asyncIterator]!="function"&&typeof o.next!="function")throw new Error(`Package handle is not a readable stream: ${e}`);if(x.has(o))throw P("Package readable stream already has a consumer","ERR_PACKAGE_STREAM_ALREADY_CONSUMED");return x.add(o),{stream:o,iterator:typeof o[Symbol.asyncIterator]=="function"?o[Symbol.asyncIterator]():o}}function R(e,t){try{typeof e.stream.destroy=="function"&&e.stream.destroy(t)}catch{}try{typeof e.iterator?.return=="function"&&Promise.resolve(e.iterator.return()).catch(()=>{})}catch{}}function ue(e){let t=j(e.handleId,e.path||[]),n=`${e.taskId}:stream_${++Y}`;return d.set(n,{...t,taskId:e.taskId}),{streamId:n}}async function de(e){let t=d.get(e.streamId);if(!t||t.taskId!==e.taskId)throw P(`Package stream session not found: ${e.streamId}`,"ERR_PACKAGE_STREAM_SESSION_NOT_FOUND");if(t.pending)throw P("Concurrent package stream next() calls are not supported","ERR_PACKAGE_STREAM_CONCURRENT_NEXT");t.pending=!0;let n=Number(e.streamTimeoutMs),a;try{let o=Promise.resolve().then(()=>t.iterator.next()),c=Number.isFinite(n)&&n>0?await Promise.race([o,new Promise((f,s)=>{a=setTimeout(()=>{s(P(`Package stream timed out after ${Math.trunc(n)}ms`,"ERR_PACKAGE_STREAM_TIMEOUT",{streamScoped:!0,retryable:!0}))},Math.max(1,Math.trunc(n)))})]):await o;return c.done?(d.delete(e.streamId),{done:!0}):{done:!1,chunk:Buffer.from(c.value).toString("base64")}}catch(o){throw d.delete(e.streamId),R(t,o),o}finally{t.pending=!1,a&&clearTimeout(a)}}function pe(e){let t=d.get(e.streamId);return!t||t.taskId!==e.taskId?{done:!0}:(d.delete(e.streamId),R(t),{done:!0})}async function _e(e){let{stream:t,iterator:n}=j(e.handleId,e.path||[]);A.set(e.id,{taskId:e.taskId,stream:t,iterator:n});try{for(;;){let a=await n.next();if(a.done)break;await le(e.id,e.taskId,a.value)}}finally{A.delete(e.id)}}function ye(e){T(e),g.delete(e);for(let t of y.keys())t.startsWith(`${e}:`)&&y.delete(t)}process.on("message",async e=>{if(!e)return;if(e.type==="pkgStreamAck"||e.type==="pkgStreamError"){let o=h.get(e.ackId);if(!o)return;h.delete(e.ackId),e.type==="pkgStreamAck"?o.resolve(!0):o.reject(new Error(e.error?.message||"Package stream failed"));return}if(e.type==="pkgCallbackResult"||e.type==="pkgCallbackError"){let o=b.get(e.id);if(!o)return;b.delete(e.id),e.type==="pkgCallbackResult"?o.resolve(ae(o.taskId,e.value)):o.reject(new Error(e.error?.message||"Package callback failed"));return}if(e.op==="cancelTask"){T(e.taskId),v(e.id,e.taskId);return}if(!e.op)return;let t=!1,n=X(e.timeoutMs),a=setTimeout(()=>{if(t)return;t=!0;let o=[e.op?`op=${e.op}`:null,e.packageName?`package=${e.packageName}`:null,e.handleId?`handle=${e.handleId}`:null,Array.isArray(e.path)?`path=${e.path.join(".")||"<root>"}`:null].filter(Boolean).join(" "),c=`Package runtime call timed out after ${n}ms${o?` (${o})`:""}`;re(e.id,e.taskId,c)},n);try{if(e.op==="releaseTask"){t=!0,clearTimeout(a),ye(e.taskId),e.fire||process.send?.({id:e.id,ok:!0,value:!0});return}Q(e.taskId);let o=await O.run(e.taskId,()=>e.op==="streamHandle"?_e(e):e.op==="streamIteratorOpen"?ue(e):e.op==="streamIteratorNext"?de(e):e.op==="streamIteratorReturn"?pe(e):fe(e));if(t)return;t=!0,clearTimeout(a),process.send?.({id:e.id,ok:!0,value:o})}catch(o){if(t)return;t=!0,clearTimeout(a);let c=[e.op?`op=${e.op}`:null,e.packageName?`package=${e.packageName}`:null,e.handleId?`handle=${e.handleId}`:null,Array.isArray(e.path)?`path=${e.path.join(".")||"<root>"}`:null].filter(Boolean).join(" ");process.send?.({id:e.id,ok:!1,error:{message:c?`${o.message} (${c})`:o.message,stack:o.stack,code:o.code,details:o.details}})}finally{e.op!=="releaseTask"&&Z(e.taskId)}});process.on("disconnect",()=>{process.exit(1)});
@@ -1,4 +1,4 @@
1
- "use strict";var ne=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ae=ne((Ye,re)=>{"use strict";var{fork:ve}=require("child_process"),be=require("path");function xe({workerDir:e,activeTaskContexts:t}){let s=new Map,n=new Map,r=new Map,i=new Map,o=null,y=0,f=1e3;function w(l){return Math.max(1,Math.trunc(Number(l)||3e4))}function b(l,a,c){let p=new Error(l);return p.code=a,p.details=c,p}function R(l,a){for(let[c,p]of n)p.child===l&&(clearTimeout(p.timer),n.delete(c),r.delete(c),p.reject(a))}function d(l){for(let[a,c]of i)c.child===l&&(clearTimeout(c.timer),i.delete(a))}function u(l,a){if(!l.connected)return;let c=`cancel_${++y}`,p=setTimeout(()=>{i.delete(c);try{l.kill()}catch{}},f);p.unref?.(),i.set(c,{child:l,timer:p});try{l.send({op:"cancelTask",taskId:a,id:c})}catch{clearTimeout(p),i.delete(c);try{l.kill()}catch{}}}function m(l){let a=typeof l=="string"?JSON.parse(l):l;if(a?.error)throw new Error(a.error);return a?.value}async function v(l){let a=t.get(l.taskId);if(!a)throw new Error(`Package callback context not found: ${l.taskId}`);let c=JSON.stringify(l.callbackId),p=JSON.stringify(l.argsJson||"[]"),h=await a.evalClosure(`return __invokeRuntimeCallback(${c}, ${p});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}});return m(h)}function k(){if(o&&o.connected)return o;let l=be.join(e,"package-runtime.child.js"),a=ve(l,[],{stdio:["ignore","ignore","ignore","ipc"],env:{PATH:process.env.PATH||"",HOME:process.env.HOME||"",NODE_ENV:process.env.NODE_ENV||"production",TMPDIR:process.env.TMPDIR||"",LANG:process.env.LANG||""}});return o=a,a.on("message",c=>{if(!c||!c.id)return;if(c.type==="pkgStreamChunk"){let h=r.get(c.id);if(!h)return;h.onChunk(Buffer.from(c.chunk||"","base64")).then(()=>{try{a.send({type:"pkgStreamAck",ackId:c.ackId})}catch{}}).catch(M=>{try{a.send({type:"pkgStreamError",ackId:c.ackId,error:{message:M.message,stack:M.stack}})}catch{}});return}if(c.type==="taskCancelled"){let h=i.get(c.id);if(!h||h.child!==a)return;clearTimeout(h.timer),i.delete(c.id);return}if(c.type==="pkgCallbackCall"){v(c).then(h=>{try{a.send({type:"pkgCallbackResult",id:c.id,value:h})}catch{}}).catch(h=>{try{a.send({type:"pkgCallbackError",id:c.id,error:{message:h.message,stack:h.stack}})}catch{}});return}let p=n.get(c.id);if(p)if(clearTimeout(p.timer),n.delete(c.id),r.delete(c.id),c.ok)p.resolve(c.value);else{c.error?.code==="ERR_PACKAGE_RUNTIME_TIMEOUT"&&u(a,p.taskId);let h=b(c.error?.message||"Package runtime call failed",c.error?.code,c.error?.details);h.stack=c.error?.stack||h.stack,p.reject(h)}}),a.on("exit",(c,p)=>{o===a&&(o=null),d(a),R(a,b(`Package runtime exited${p?` with signal ${p}`:` with code ${c}`}`,"ERR_PACKAGE_RUNTIME_LOST",{outcome:"unknown_outcome",retryable:!1}))}),a.on("error",c=>{o===a&&(o=null),d(a),R(a,b(c.message,"ERR_PACKAGE_RUNTIME_LOST",{outcome:"unknown_outcome",retryable:!1}))}),a}function P(l){return new Promise((a,c)=>{let p=k(),h=`pkg_${++y}`,M=w(l.timeoutMs),J=setTimeout(()=>{n.delete(h),r.delete(h),u(p,l.taskId),c(b(`Package runtime call timed out after ${M}ms`,"ERR_PACKAGE_RUNTIME_TIMEOUT",{outcome:"unknown_outcome",retryable:!1}))},M);n.set(h,{child:p,taskId:l.taskId,resolve:a,reject:c,timer:J});try{p.send({...l,id:h},I=>{I&&(clearTimeout(J),n.delete(h),c(I))})}catch(I){clearTimeout(J),n.delete(h),c(I)}})}function C(l,a,c,p=[],h=3e4){return new Promise((M,J)=>{let I=k(),N=`pkg_${++y}`,Q=w(h),ee=setTimeout(()=>{n.delete(N),r.delete(N),u(I,l),J(b(`Package runtime stream timed out after ${Q}ms`,"ERR_PACKAGE_RUNTIME_TIMEOUT",{outcome:"unknown_outcome",retryable:!1}))},Q);n.set(N,{child:I,taskId:l,resolve:M,reject:J,timer:ee}),r.set(N,{onChunk:c});try{I.send({op:"streamHandle",taskId:l,handleId:a,path:p,id:N,timeoutMs:Q},G=>{G&&(clearTimeout(ee),n.delete(N),r.delete(N),J(G))})}catch(G){clearTimeout(ee),n.delete(N),r.delete(N),J(G)}})}function D(l){try{if(!o||!o.connected)return;o.send({...l,id:`pkg_${++y}`,fire:!0})}catch{}}function _(l){try{if(!o||!o.connected)return;u(o,l)}catch{}}async function H(l,a){let c=s.get(l);if(!c)throw new Error("Package context is not available");if(a.handleId)return P({op:a.kind==="get"?"handleGet":"handleCall",taskId:l,handleId:a.handleId,path:a.path||[],argsJson:a.argsJson||"[]",timeoutMs:a.timeoutMs});let p=c.get(a.packageName);if(!p)throw new Error(`Package "${a.packageName}" is not available`);return P({op:a.kind==="construct"?"construct":"call",taskId:l,packageName:a.packageName,package:{name:p.name,fileUrl:p.fileUrl},path:a.path||[],argsJson:a.argsJson||"[]",timeoutMs:a.timeoutMs})}function g(l,a){s.set(l,a)}function x(l){s.delete(l),D({op:"releaseTask",taskId:l})}function $(){if(o){try{o.kill()}catch{}o=null}}return{cleanupTaskPackages:x,cancelTask:_,executePackageRuntimeCall:H,setTaskPackages:g,streamPackageHandle:C,shutdownPackageRuntime:$}}re.exports={createPackageRuntimeBridge:xe}});var oe=ne((Ze,se)=>{"use strict";var Pe=`
1
+ "use strict";var ne=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var se=ne((Ze,ae)=>{"use strict";var{fork:be}=require("child_process"),xe=require("path");function Pe({workerDir:e,activeTaskContexts:t}){let o=new Map,r=new Map,a=new Map,l=new Map,i=null,y=0,f=1e3;function v(s){return Math.max(1,Math.trunc(Number(s)||3e4))}function b(s,n,c){let _=new Error(s);return _.code=n,_.details=c,_}function R(s,n){for(let[c,_]of r)_.child===s&&(clearTimeout(_.timer),r.delete(c),a.delete(c),_.reject(n))}function d(s){for(let[n,c]of l)c.child===s&&(clearTimeout(c.timer),l.delete(n))}function u(s,n){if(!s.connected)return;let c=`cancel_${++y}`,_=setTimeout(()=>{l.delete(c);try{s.kill()}catch{}},f);_.unref?.(),l.set(c,{child:s,timer:_});try{s.send({op:"cancelTask",taskId:n,id:c})}catch{clearTimeout(_),l.delete(c);try{s.kill()}catch{}}}function k(s){let n=typeof s=="string"?JSON.parse(s):s;if(n?.error)throw new Error(n.error);return n?.value}async function w(s){let n=t.get(s.taskId);if(!n)throw new Error(`Package callback context not found: ${s.taskId}`);let c=JSON.stringify(s.callbackId),_=JSON.stringify(s.argsJson||"[]"),h=await n.evalClosure(`return __invokeRuntimeCallback(${c}, ${_});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}});return k(h)}function g(){if(i&&i.connected)return i;let s=xe.join(e,"package-runtime.child.js"),n=be(s,[],{stdio:["ignore","ignore","ignore","ipc"],env:{PATH:process.env.PATH||"",HOME:process.env.HOME||"",NODE_ENV:process.env.NODE_ENV||"production",TMPDIR:process.env.TMPDIR||"",LANG:process.env.LANG||""}});return i=n,n.on("message",c=>{if(!c||!c.id)return;if(c.type==="pkgStreamChunk"){let h=a.get(c.id);if(!h)return;h.onChunk(Buffer.from(c.chunk||"","base64")).then(()=>{try{n.send({type:"pkgStreamAck",ackId:c.ackId})}catch{}}).catch(L=>{try{n.send({type:"pkgStreamError",ackId:c.ackId,error:{message:L.message,stack:L.stack}})}catch{}});return}if(c.type==="taskCancelled"){let h=l.get(c.id);if(!h||h.child!==n)return;clearTimeout(h.timer),l.delete(c.id);return}if(c.type==="pkgCallbackCall"){w(c).then(h=>{try{n.send({type:"pkgCallbackResult",id:c.id,value:h})}catch{}}).catch(h=>{try{n.send({type:"pkgCallbackError",id:c.id,error:{message:h.message,stack:h.stack}})}catch{}});return}let _=r.get(c.id);if(_)if(clearTimeout(_.timer),r.delete(c.id),a.delete(c.id),c.ok)_.resolve(c.value);else{c.error?.code==="ERR_PACKAGE_RUNTIME_TIMEOUT"&&u(n,_.taskId);let h=b(c.error?.message||"Package runtime call failed",c.error?.code,c.error?.details);h.stack=c.error?.stack||h.stack,_.reject(h)}}),n.on("exit",(c,_)=>{i===n&&(i=null),d(n),R(n,b(`Package runtime exited${_?` with signal ${_}`:` with code ${c}`}`,"ERR_PACKAGE_RUNTIME_LOST",{outcome:"unknown_outcome",retryable:!1}))}),n.on("error",c=>{i===n&&(i=null),d(n),R(n,b(c.message,"ERR_PACKAGE_RUNTIME_LOST",{outcome:"unknown_outcome",retryable:!1}))}),n}function x(s){return new Promise((n,c)=>{let _=g(),h=`pkg_${++y}`,L=v(s.timeoutMs),O=setTimeout(()=>{r.delete(h),a.delete(h),u(_,s.taskId),c(b(`Package runtime call timed out after ${L}ms`,"ERR_PACKAGE_RUNTIME_TIMEOUT",{outcome:"unknown_outcome",retryable:!1}))},L);r.set(h,{child:_,taskId:s.taskId,resolve:n,reject:c,timer:O});try{_.send({...s,id:h},J=>{J&&(clearTimeout(O),r.delete(h),c(J))})}catch(J){clearTimeout(O),r.delete(h),c(J)}})}function C(s,n,c,_=[],h=3e4){return new Promise((L,O)=>{let J=g(),$=`pkg_${++y}`,ee=v(h),te=setTimeout(()=>{r.delete($),a.delete($),u(J,s),O(b(`Package runtime stream timed out after ${ee}ms`,"ERR_PACKAGE_RUNTIME_TIMEOUT",{outcome:"unknown_outcome",retryable:!1}))},ee);r.set($,{child:J,taskId:s,resolve:L,reject:O,timer:te}),a.set($,{onChunk:c});try{J.send({op:"streamHandle",taskId:s,handleId:n,path:_,id:$,timeoutMs:ee},V=>{V&&(clearTimeout(te),r.delete($),a.delete($),O(V))})}catch(V){clearTimeout(te),r.delete($),a.delete($),O(V)}})}function F(s){try{if(!i||!i.connected)return;i.send({...s,id:`pkg_${++y}`,fire:!0})}catch{}}function p(s){try{if(!i||!i.connected)return;u(i,s)}catch{}}async function j(s,n){let c=o.get(s);if(!c)throw new Error("Package context is not available");if(n.handleId)return x({op:n.kind==="get"?"handleGet":"handleCall",taskId:s,handleId:n.handleId,path:n.path||[],argsJson:n.argsJson||"[]",timeoutMs:n.timeoutMs});let _=c.get(n.packageName);if(!_)throw new Error(`Package "${n.packageName}" is not available`);return x({op:n.kind==="construct"?"construct":"call",taskId:s,packageName:n.packageName,package:{name:_.name,fileUrl:_.fileUrl},path:n.path||[],argsJson:n.argsJson||"[]",timeoutMs:n.timeoutMs})}function m(s,n){if(!o.get(s))throw new Error("Package context is not available");if(n.method==="open")return x({op:"streamIteratorOpen",taskId:s,handleId:n.handleId,path:n.path||[],timeoutMs:n.timeoutMs});if(n.method==="next")return x({op:"streamIteratorNext",taskId:s,streamId:n.streamId,streamTimeoutMs:n.streamTimeoutMs,timeoutMs:n.timeoutMs});if(n.method==="return")return x({op:"streamIteratorReturn",taskId:s,streamId:n.streamId,timeoutMs:n.timeoutMs});throw new Error(`Unsupported package stream method: ${n.method}`)}function P(s,n){o.set(s,n)}function M(s){o.delete(s),F({op:"releaseTask",taskId:s})}function H(){if(i){try{i.kill()}catch{}i=null}}return{cleanupTaskPackages:M,cancelTask:p,executePackageRuntimeCall:j,executePackageStreamCall:m,setTaskPackages:P,streamPackageHandle:C,shutdownPackageRuntime:H}}ae.exports={createPackageRuntimeBridge:Pe}});var ie=ne((Qe,oe)=>{"use strict";var Se=`
2
2
  "use strict";
3
3
  let $ctx = {};
4
4
  let $pkgs = {};
@@ -118,6 +118,25 @@ function __bytesToBase64(bytes) {
118
118
  return out;
119
119
  }
120
120
 
121
+ function __base64ToBytes(value) {
122
+ const input = String(value || '').replace(/=+$/, '');
123
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
124
+ const out = [];
125
+ let bits = 0;
126
+ let bitCount = 0;
127
+ for (const char of input) {
128
+ const index = chars.indexOf(char);
129
+ if (index < 0) continue;
130
+ bits = (bits << 6) | index;
131
+ bitCount += 6;
132
+ if (bitCount >= 8) {
133
+ bitCount -= 8;
134
+ out.push((bits >> bitCount) & 255);
135
+ }
136
+ }
137
+ return Uint8Array.from(out);
138
+ }
139
+
121
140
  function __streamChunkToBytes(chunk) {
122
141
  if (chunk === undefined || chunk === null) return new Uint8Array();
123
142
  if (typeof chunk === 'string') return new TextEncoder().encode(chunk);
@@ -386,6 +405,7 @@ const __ctxChangeProtectedKeys = new Set([
386
405
  '$throw',
387
406
  '$trigger',
388
407
  '$pkgs',
408
+ '$streams',
389
409
  '$env',
390
410
  ]);
391
411
 
@@ -558,10 +578,16 @@ function __createPkgHandleProxy(handlePromise, path) {
558
578
  };
559
579
  return new Proxy(fn, {
560
580
  get: (_, prop) => {
581
+ if (prop === Symbol.asyncIterator) {
582
+ return () => __createPkgStreamIterator(
583
+ handlePromise.then((handleId) => ({ handleId, path })),
584
+ );
585
+ }
561
586
  if (typeof prop === 'symbol') return undefined;
562
587
  if (prop === 'then') return undefined;
563
588
  if (prop === '__pkgHandle') return undefined;
564
589
  if (prop === '__pkgHandlePromise') return handlePromise;
590
+ if (prop === '__pkgHandlePath') return path;
565
591
  if (prop === '__enfyraLocalReadable') return undefined;
566
592
  return __createAsyncPkgResultProxy(
567
593
  handlePromise.then((handleId) =>
@@ -620,6 +646,18 @@ function __createAsyncPkgResultProxy(valuePromise, path) {
620
646
 
621
647
  return new Proxy(fn, {
622
648
  get: (_target, prop) => {
649
+ if (prop === Symbol.asyncIterator) {
650
+ return () => __createPkgStreamIterator(
651
+ promiseForPath().then(async (value) => {
652
+ const handlePromise = value && value.__pkgHandlePromise;
653
+ if (!handlePromise) throw new Error('Package result is not an async iterable');
654
+ return {
655
+ handleId: await handlePromise,
656
+ path: value.__pkgHandlePath || [],
657
+ };
658
+ }),
659
+ );
660
+ }
623
661
  if (typeof prop === 'symbol') return undefined;
624
662
  if (prop === '__pkgHandle') return undefined;
625
663
  if (prop === '__enfyraLocalReadable') return undefined;
@@ -661,6 +699,193 @@ function __createAsyncPkgResultProxy(valuePromise, path) {
661
699
  });
662
700
  }
663
701
 
702
+ const __pkgStreamNextWithTimeout = Symbol('enfyra.packageStreamNextWithTimeout');
703
+
704
+ function __createPackageStreamError(message, code, details) {
705
+ const error = new Error(message);
706
+ if (code) error.code = code;
707
+ if (details !== undefined) error.details = details;
708
+ return error;
709
+ }
710
+
711
+ function __unwrapPackageStreamResult(result) {
712
+ if (result && result.__pkgStreamError) {
713
+ const payload = result.__pkgStreamError;
714
+ throw __createPackageStreamError(payload.message, payload.code, payload.details);
715
+ }
716
+ return result;
717
+ }
718
+
719
+ function __createPkgStreamIterator(descriptorPromise) {
720
+ let sessionPromise = null;
721
+ let closed = false;
722
+ let pending = false;
723
+
724
+ const call = async (method, data) => {
725
+ const result = await __call('pkgStreamCall', JSON.stringify({
726
+ method,
727
+ ...(data || {}),
728
+ timeoutMs: __remainingTaskTimeoutMs(),
729
+ }));
730
+ return __unwrapPackageStreamResult(result);
731
+ };
732
+ const open = () => {
733
+ if (!sessionPromise) {
734
+ sessionPromise = descriptorPromise.then(({ handleId, path }) =>
735
+ call('open', { handleId, path: path || [] }).then((value) => value.streamId),
736
+ );
737
+ }
738
+ return sessionPromise;
739
+ };
740
+
741
+ const iterator = {
742
+ async next() {
743
+ return iterator[__pkgStreamNextWithTimeout]();
744
+ },
745
+ async [__pkgStreamNextWithTimeout](timeoutMs) {
746
+ if (closed) return { done: true, value: undefined };
747
+ if (pending) {
748
+ throw __createPackageStreamError(
749
+ 'Concurrent package stream next() calls are not supported',
750
+ 'ERR_PACKAGE_STREAM_CONCURRENT_NEXT',
751
+ );
752
+ }
753
+ pending = true;
754
+ try {
755
+ const streamId = await open();
756
+ const result = await call('next', {
757
+ streamId,
758
+ streamTimeoutMs: timeoutMs,
759
+ });
760
+ if (result.done) {
761
+ closed = true;
762
+ return { done: true, value: undefined };
763
+ }
764
+ return { done: false, value: __base64ToBytes(result.chunk) };
765
+ } catch (error) {
766
+ closed = true;
767
+ throw error;
768
+ } finally {
769
+ pending = false;
770
+ }
771
+ },
772
+ async return() {
773
+ if (closed) return { done: true, value: undefined };
774
+ closed = true;
775
+ const streamId = await open();
776
+ await call('return', { streamId });
777
+ return { done: true, value: undefined };
778
+ },
779
+ [Symbol.asyncIterator]() {
780
+ return this;
781
+ },
782
+ };
783
+ return iterator;
784
+ }
785
+
786
+ function __getStreamIterator(readable) {
787
+ if (!readable || typeof readable[Symbol.asyncIterator] !== 'function') {
788
+ throw new Error('$streams requires an async iterable readable stream');
789
+ }
790
+ return readable[Symbol.asyncIterator]();
791
+ }
792
+
793
+ function __normalizeStreamOptions(options) {
794
+ const timeoutMs = Math.max(1, Math.trunc(Number(options?.timeoutMs) || 30000));
795
+ const requestedMaxBytes = Number(options?.maxBytes);
796
+ const maxBytes = Number.isFinite(requestedMaxBytes) && requestedMaxBytes > 0
797
+ ? Math.trunc(requestedMaxBytes)
798
+ : 8 * 1024 * 1024;
799
+ return { timeoutMs, maxBytes };
800
+ }
801
+
802
+ async function __nextStreamChunk(iterator, deadlineMs) {
803
+ const remainingMs = Math.max(1, Math.ceil(deadlineMs - Date.now()));
804
+ if (typeof iterator[__pkgStreamNextWithTimeout] === 'function') {
805
+ return iterator[__pkgStreamNextWithTimeout](remainingMs);
806
+ }
807
+ return iterator.next();
808
+ }
809
+
810
+ async function __preflightStream(readable, options) {
811
+ const iterator = __getStreamIterator(readable);
812
+ const { timeoutMs } = __normalizeStreamOptions(options);
813
+ const deadlineMs = Date.now() + Math.min(timeoutMs, __remainingTaskTimeoutMs());
814
+ let firstChunk;
815
+ while (firstChunk === undefined) {
816
+ const next = await __nextStreamChunk(iterator, deadlineMs);
817
+ if (next.done) {
818
+ throw __createPackageStreamError(
819
+ 'Package stream ended before yielding bytes',
820
+ 'ERR_PACKAGE_STREAM_EMPTY',
821
+ );
822
+ }
823
+ const bytes = __streamChunkToBytes(next.value);
824
+ if (bytes.byteLength > 0) firstChunk = bytes;
825
+ }
826
+
827
+ let consumed = false;
828
+ const stream = {
829
+ __enfyraLocalReadable: true,
830
+ async *[Symbol.asyncIterator]() {
831
+ if (consumed) {
832
+ throw __createPackageStreamError(
833
+ 'Preflight stream already has a consumer',
834
+ 'ERR_PACKAGE_STREAM_ALREADY_CONSUMED',
835
+ );
836
+ }
837
+ consumed = true;
838
+ yield firstChunk;
839
+ while (true) {
840
+ const next = await iterator.next();
841
+ if (next.done) return;
842
+ yield next.value;
843
+ }
844
+ },
845
+ };
846
+ return { stream, firstChunk: new Uint8Array(firstChunk) };
847
+ }
848
+
849
+ async function __readStream(readable, options, asText) {
850
+ const iterator = __getStreamIterator(readable);
851
+ const { timeoutMs, maxBytes } = __normalizeStreamOptions(options);
852
+ const deadlineMs = Date.now() + Math.min(timeoutMs, __remainingTaskTimeoutMs());
853
+ const chunks = [];
854
+ const text = [];
855
+ const decoder = asText ? new TextDecoder('utf-8') : null;
856
+ let totalBytes = 0;
857
+ while (true) {
858
+ const next = await __nextStreamChunk(iterator, deadlineMs);
859
+ if (next.done) break;
860
+ const bytes = __streamChunkToBytes(next.value);
861
+ totalBytes += bytes.byteLength;
862
+ if (totalBytes > maxBytes) {
863
+ try { await iterator.return?.(); } catch {}
864
+ throw __createPackageStreamError(
865
+ 'Package stream exceeded maxBytes (' + maxBytes + ')',
866
+ 'ERR_PACKAGE_STREAM_MAX_BYTES',
867
+ { maxBytes },
868
+ );
869
+ }
870
+ if (decoder) {
871
+ text.push(decoder.decode(bytes, { stream: true }));
872
+ } else {
873
+ chunks.push(bytes);
874
+ }
875
+ }
876
+ if (decoder) {
877
+ text.push(decoder.decode());
878
+ return text.join('');
879
+ }
880
+ const output = new Uint8Array(totalBytes);
881
+ let offset = 0;
882
+ for (const chunk of chunks) {
883
+ output.set(chunk, offset);
884
+ offset += chunk.byteLength;
885
+ }
886
+ return output;
887
+ }
888
+
664
889
  function __createAsyncMainResultProxy(valuePromise, path) {
665
890
  const resolveValue = () => valuePromise;
666
891
  const resolvePath = () =>
@@ -807,6 +1032,11 @@ function __resetTask(snapshot, taskId, timeoutMs, deadlineMs) {
807
1032
  __pendingRuntimeTasks = [];
808
1033
  %%PKG_SETUP%%
809
1034
  $ctx.$pkgs = $pkgs;
1035
+ $ctx.$streams = {
1036
+ preflight: __preflightStream,
1037
+ readBytes: (readable, options) => __readStream(readable, options, false),
1038
+ readText: (readable, options) => __readStream(readable, options, true),
1039
+ };
810
1040
  $ctx.$share = $ctx.$share || {};
811
1041
  $ctx.$share.$logs = __logs;
812
1042
  const __createRepoProxy = (table, access) => new Proxy({}, {
@@ -960,48 +1190,48 @@ function __cleanupTask() {
960
1190
  __pendingRuntimeTasks = [];
961
1191
  return true;
962
1192
  }
963
- `;function Se(e){return Pe.replace("%%PKG_SETUP%%",e)}se.exports={buildSetupCode:Se}});var{parentPort:Ce}=require("worker_threads"),S=Ce||{on(e,t){e==="message"&&process.on("message",t)},postMessage(e){process.send?.(e)}},ie=require("fs"),{fileURLToPath:Re}=require("url"),{createPackageRuntimeBridge:$e}=ae(),{buildSetupCode:Te}=oe(),q;try{q=require("isolated-vm")}catch(e){S.postMessage({type:"error",message:"isolated-vm not available: "+e.message}),process.exit(1)}var K=new Map,pe=0,O=new Map,E=new Map,j=new Map,U=$e({workerDir:__dirname,activeTaskContexts:O}),Me=500,Ne=5e3,ce=new WeakMap,_e=new WeakMap,W={created:0,reused:0,released:0,evicted:0,scrubFailed:0};function B(e){let t=j.get(e);return Math.max(1,Math.ceil((t??Date.now()+3e4)-Date.now()))}var A=null,le=0,ue=0,de=0;async function Ae(){let e=Date.now();if(e-ue<Ne)return de;if(ue=e,!A)return 0;let t=0;for(let s of A){let n=s?.isolate;if(!(!n||n.isDisposed))try{let r=await n.getHeapStatistics(),i=r.heap_size_limit||1,o=r.used_heap_size/i;o>t&&(t=o)}catch{}}return de=t,t}async function F(e){e.heapRatio=await Ae(),e.runnerRssBytes=process.memoryUsage().rss,e.contextStats=Ee(),S.postMessage(e)}function Ee(){return{...W,idle:0}}function ge(e,t,s){if(!A){let n=Math.max(1,Math.trunc(Number(t)||8));A=new Array(n).fill(null)}for(let n=0;n<A.length;n++){let r=(le+n)%A.length,i=A[r];if((!i||!i.isolate||i.isolate.isDisposed)&&(i={isolate:new q.Isolate({memoryLimit:e}),taskIds:new Set},A[r]=i),i.taskIds.size<s)return le=(r+1)%A.length,i}throw new Error("No isolate lane is available")}function z(e,t,s){for(let n of[...e.taskIds])n!==t&&(e.taskIds.delete(n),E.delete(n),O.delete(n),j.delete(n),U.cancelTask(n),V(n),S.postMessage({type:"result",id:n,success:!1,error:{message:"Isolate was disposed because a sibling task could not continue",code:"ERR_EXECUTOR_ISOLATE_LOST",details:{outcome:"unknown_outcome",retryable:!1,reason:s}}}),S.postMessage({type:"taskReleased",id:n}));try{e.isolate.dispose()}catch{}}function Oe(e){let t=E.get(e);if(!t){S.postMessage({type:"taskCancelled",id:e});return}z(t,e,"sibling_cancelled"),U.cancelTask(e),E.delete(e),O.delete(e),j.delete(e),t.taskIds.delete(e),V(e),S.postMessage({type:"taskCancelled",id:e})}function ye(e,t){t.taskIds.delete(e)&&(O.delete(e),E.delete(e),j.delete(e),V(e),S.postMessage({type:"taskReleased",id:e}))}async function T(e,t,s){let n=ce.get(e);n||(n=new Map,ce.set(e,n));let r=n.get(t);if(r)return r;let i;try{i=await e.compileScript(t,{filename:s})}catch(o){throw o&&typeof o=="object"&&(o.executionStage="compile"),o}if(n.set(t,i),n.size>Me){let o=n.keys().next().value;n.delete(o)}return i}S.on("message",async e=>{if(e.type==="execute")Ge(e).catch(async t=>{await F({type:"result",id:e.id,success:!1,error:{message:t.message,stack:t.stack}})});else if(e.type==="executeBatch")We(e).catch(async t=>{await F({type:"result",id:e.id,success:!1,error:{message:t.message,stack:t.stack}})});else if(e.type==="invokeRuntimeCallback")Je(e).catch(t=>{S.postMessage({type:"runtimeCallbackResult",callId:e.callId,error:t?.message||String(t)})});else if(e.type==="callResult"){let t=K.get(e.callId);t&&(K.delete(e.callId),t.resolve(e.result))}else if(e.type==="callError"){let t=K.get(e.callId);t&&(K.delete(e.callId),t.reject(new Error(e.error)))}else e.type==="cancelTask"&&Oe(e.id)});async function Je(e){let t=O.get(e.id);if(!t){S.postMessage({type:"runtimeCallbackResult",callId:e.callId,error:`Runtime callback context not found: ${e.id}`});return}let s=await t.evalClosure(`return __invokeRuntimeCallback(${JSON.stringify(e.callbackId)}, ${JSON.stringify(e.argsJson||"[]")});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}}),n=JSON.parse(s);S.postMessage({type:"runtimeCallbackResult",callId:e.callId,...n})}function L(e,t,s){return new Promise((n,r)=>{let i=`cb_${++pe}`;K.set(i,{resolve:n,reject:r}),S.postMessage({type:t,id:e,callId:i,...s})})}function Ie(e,t,s){S.postMessage({type:t,id:e,callId:`f_${++pe}`,...s})}async function je(e,t){if(t?.method!=="stream")return L(e,"resCall",t);let s=JSON.parse(t.argsJson||"[]"),n=s[0],r=s[1]||{},i=n?.__pkgHandleArg;if(!i)return L(e,"resCall",t);let o=r.observer&&typeof r.observer=="object"?r.observer.__fnRef:null,y=r.transform&&typeof r.transform=="object"?r.transform.__fnRef:null,f=o||y?new TextDecoder("utf-8"):null;delete r.observer,delete r.transform;let w={...r};await L(e,"resCall",{method:"streamStart",argsJson:JSON.stringify([null,w])});let b=async(u,m,v)=>{if(!u)return;let k=O.get(e);if(!k)return;let P=await k.evalClosure(`return __invokeRuntimeCallback(${JSON.stringify(u)}, ${JSON.stringify(JSON.stringify([m,v]))});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}}),C=JSON.parse(P);if(C?.error)throw new Error(C.error);if(C?.value?.__e!=="u")return C?.value},R=async(u,m)=>{if(o)try{await b(o,u,m)}catch{}},d=async(u,m,v)=>{let k=u;if(y){let C=await b(y,v,m);if(C===null)return;C!==void 0&&(k=Buffer.from(String(C)))}let P=Buffer.from(k);P.length!==0&&await L(e,"resCall",{method:"streamChunk",chunk:P.toString("base64")})};try{await U.streamPackageHandle(e,i,async m=>{let v="";try{v=f?f.decode(Buffer.from(m),{stream:!0}):""}catch{}await R(v,"chunk"),await d(m,"chunk",v)},[],B(e));let u="";try{u=f?f.decode():""}catch{}await R(u,"end"),await d("","end",u),await L(e,"resCall",{method:"streamEnd"})}catch(u){try{await L(e,"resCall",{method:"streamError",error:{message:u.message,stack:u.stack}})}catch{}throw await R("","error"),u}return JSON.stringify({__e:"u"})}function Ue(e){if(typeof e.sourceCode=="string"&&e.sourceCode.length>0)return e.sourceCode;let t=e.filePath;return!t&&typeof e.fileUrl=="string"&&e.fileUrl.startsWith("file://")&&(t=Re(e.fileUrl)),!t||!ie.existsSync(t)?null:ie.readFileSync(t,"utf8")}async function He(e,t,s){try{let n=Ue(s);if(!n)return null;let r=await e.compileModule(n,{filename:`pkg:${s.safeName}`});await r.instantiate(t,o=>{throw new Error(`Unresolved import in package ${s.safeName}: ${o}`)}),await r.evaluate({timeout:1e4});let i=await r.namespace.get("default");return i!==void 0&&i.typeof!=="undefined"?i.derefInto({release:!1}):r.namespace.derefInto({release:!1})}catch{return null}}function he(e,t){let s=new Set(t.map(f=>f.name)),n=new Set,r=String(e||""),i=/\b(?:\$ctx\.)?\$pkgs\s*\[\s*(['"`])([^'"`]+)\1\s*\]/g,o=/\brequire\s*\(\s*(['"`])([^'"`]+)\1\s*\)/g,y=/\b(?:\$ctx\.)?\$pkgs\.([A-Za-z_$][\w$]*)/g;for(let f of[i,o])for(let w of r.matchAll(f)){let b=w[2];s.has(b)&&n.add(b)}for(let f of r.matchAll(y)){let w=f[1];s.has(w)&&n.add(w)}return n}async function Le(e,t,s,n){let r=await e.createContext(),i=r.global;await i.set("global",i.derefInto());let o=[],y=[],f=new Map;for(let d of s){f.set(d.name,d);let u=n.has(d.name)?await He(e,r,d):null;u!==null?(await i.set(`__pkg_${d.safeName}`,u),o.push(d)):y.push(d)}U.setTaskPackages(t,f),await i.set("__callRef",new q.Reference(async(d,u,m)=>{let v=JSON.parse(m);if(u==="pkgCall")try{return JSON.stringify(await U.executePackageRuntimeCall(d,v))}catch(k){throw new Error(JSON.stringify({__userThrow:!0,message:k.message,code:k.code,details:k.details}))}return u==="resCall"?je(d,v):L(d,u,v)})),await i.set("__fireRef",new q.Reference((d,u,m)=>{let v=JSON.parse(m);Ie(d,u,v)}));let w=o.map(d=>`$pkgs[${JSON.stringify(d.name)}] = __pkg_${d.safeName};`).concat(y.map(d=>`$pkgs[${JSON.stringify(d.name)}] = __createPkgProxy(${JSON.stringify(d.name)}, []);`)).join(`
964
- `),b=Te(w);return await(await T(e,b,"setup.js")).run(r,{timeout:B(t)}),_e.set(r,f),r}async function me(e,t,s,n,r,i,o){let y=e.isolate,f=await Le(y,t,s,r);W.created++,U.setTaskPackages(t,_e.get(f)||new Map);let w=f.global;return await w.set("__snapshot",new q.ExternalCopy(n).copyInto()),await w.set("__nextTaskId",t),await w.set("__nextTaskTimeoutMs",i),await w.set("__nextTaskDeadlineMs",o),await(await T(y,"__resetTask(__snapshot, __nextTaskId, __nextTaskTimeoutMs, __nextTaskDeadlineMs);","reset-task.js")).run(f,{timeout:B(t)}),f}async function ke(e,t){if(!(!t||e.isolate.isDisposed)){try{await(await T(e.isolate,"__cleanupTask();","cleanup-task.js")).run(t,{timeout:5e3})}catch{W.scrubFailed++;try{t.release()}catch{}return}try{t.release()}catch{}W.released++}}function Fe(e){try{let t=JSON.parse(e.message);if(t&&t.__userThrow)return{...t,message:t.message??e.message}}catch{}return null}var De=3,Be=["setup.js","extract.js","extract-error-ctx.js","set-status.js","populate-error.js"];function Ke(e){if(!e)return null;let t=e.split(`
965
- `);for(let s of t){let n=s.match(/at\s+(.+\.js):(\d+):(\d+)/);if(!n)continue;let r=n[1].trim();if(Be.includes(r)||r!=="handler.js"&&!r.startsWith("preHook #")&&!r.startsWith("postHook #"))continue;let o=parseInt(n[2])-De;if(!(o<=0))return{line:o,column:parseInt(n[3]),phase:r.replace(".js","")}}return null}function qe(e,t,s){if(!e||!t)return;let n=String(e).split(/\r?\n/),r=Math.max(1,t-1),i=Math.min(n.length,t+1),o=String(i).length,y=[];for(let f=r;f<=i;f++){let w=f===t?">":" ";y.push(`${w} ${String(f).padStart(o," ")}. ${n[f-1]??""}`),f===t&&s&&s>0&&y.push(` ${" ".repeat(o)} ${" ".repeat(Math.max(0,s-1))}^`)}return y.join(`
966
- `)}function Ve(e,t){if(!(!e||!t)){if(t[e.phase])return t[e.phase];if(e.phase?.startsWith("preHook"))return t.preHook;if(e.phase?.startsWith("postHook"))return t.postHook}}function te(e,t){let s=Fe(e);if(s)return{message:s.message,statusCode:s.statusCode,errorPath:s.errorPath,code:s.code??(Number.isInteger(s.statusCode)?`HTTP_${s.statusCode}`:void 0),details:s.details};let n=Ke(e.stack),r=e.message||"Unknown error",i=n?`${r} (${n.phase}, line ${n.line})`:r,o=Ve(n,t),y=n?qe(o,n.line,n.column):void 0;return{message:i,statusCode:e.statusCode||null,details:{errorName:e.name||null,executionStage:e.executionStage||"runtime",...n?{...n,codeFrame:y}:{}}}}function X(e){return e?.message==="Script execution timed out."}function Y(e){return e?.message==="Isolate was disposed during execution due to memory limit"}function we(e){X(e)&&e?.code==null&&(e.code="ERR_SCRIPT_EXECUTION_TIMEOUT"),Y(e)&&e?.code==null&&(e.code="ERR_ISOLATE_MEMORY_LIMIT",e.details={outcome:"unknown_outcome",retryable:!1})}async function Z(e,t,s){we(t);let n=te(t,s);t.details&&(n.details={...n.details,...t.details});let r,i=O.get(e),o=E.get(e);if(i&&o&&!o.isolate.isDisposed)try{let y=await T(o.isolate,"JSON.stringify({logs: __logs, truncated: $ctx.$share.$logsTruncated === true})","extract-diagnostic-logs.js");r=JSON.parse(await y.run(i,{timeout:100}))}catch{}await F({type:"result",id:e,success:!1,diagnosticLogs:r,error:{...n,stack:t.stack,code:n.code??t.code}})}async function Ge(e){let{id:t,code:s,pkgSources:n,snapshot:r,memoryLimitMb:i,isolatePoolSize:o,tasksPerIsolate:y}=e,f={handler:e.sourceCode||s||""},w=n||[],b=Math.max(1,Math.trunc(Number(e.timeoutMs)||3e4)),R=Date.now()+b;j.set(t,R);let d=he(s,w),u=ge(i,o,Math.max(1,Math.trunc(Number(y)||1)));u.taskIds.add(t),E.set(t,u);let m=u.isolate,v;try{v=await me(u,t,w,r,d,b,R)}catch(k){j.delete(t),E.delete(t),u.taskIds.delete(t),V(t),await Z(t,k,f),S.postMessage({type:"taskReleased",id:t});return}O.set(t,v);try{let k=`
1193
+ `;function Ce(e){return Se.replace("%%PKG_SETUP%%",e)}oe.exports={buildSetupCode:Ce}});var{parentPort:Re}=require("worker_threads"),S=Re||{on(e,t){e==="message"&&process.on("message",t)},postMessage(e){process.send?.(e)}},ce=require("fs"),{fileURLToPath:Me}=require("url"),{createPackageRuntimeBridge:Te}=se(),{buildSetupCode:$e}=ie(),W;try{W=require("isolated-vm")}catch(e){S.postMessage({type:"error",message:"isolated-vm not available: "+e.message}),process.exit(1)}var q=new Map,pe=0,I=new Map,A=new Map,U=new Map,N=Te({workerDir:__dirname,activeTaskContexts:I}),Ee=500,Ne=5e3,le=new WeakMap,ge=new WeakMap,z={created:0,reused:0,released:0,evicted:0,scrubFailed:0};function K(e){let t=U.get(e);return Math.max(1,Math.ceil((t??Date.now()+3e4)-Date.now()))}var E=null,ue=0,de=0,fe=0;async function Ae(){let e=Date.now();if(e-de<Ne)return fe;if(de=e,!E)return 0;let t=0;for(let o of E){let r=o?.isolate;if(!(!r||r.isDisposed))try{let a=await r.getHeapStatistics(),l=a.heap_size_limit||1,i=a.used_heap_size/l;i>t&&(t=i)}catch{}}return fe=t,t}async function B(e){e.heapRatio=await Ae(),e.runnerRssBytes=process.memoryUsage().rss,e.contextStats=Ie(),S.postMessage(e)}function Ie(){return{...z,idle:0}}function me(e,t,o){if(!E){let r=Math.max(1,Math.trunc(Number(t)||8));E=new Array(r).fill(null)}for(let r=0;r<E.length;r++){let a=(ue+r)%E.length,l=E[a];if((!l||!l.isolate||l.isolate.isDisposed)&&(l={isolate:new W.Isolate({memoryLimit:e}),taskIds:new Set},E[a]=l),l.taskIds.size<o)return ue=(a+1)%E.length,l}throw new Error("No isolate lane is available")}function X(e,t,o){for(let r of[...e.taskIds])r!==t&&(e.taskIds.delete(r),A.delete(r),I.delete(r),U.delete(r),N.cancelTask(r),G(r),S.postMessage({type:"result",id:r,success:!1,error:{message:"Isolate was disposed because a sibling task could not continue",code:"ERR_EXECUTOR_ISOLATE_LOST",details:{outcome:"unknown_outcome",retryable:!1,reason:o}}}),S.postMessage({type:"taskReleased",id:r}));try{e.isolate.dispose()}catch{}}function Oe(e){let t=A.get(e);if(!t){S.postMessage({type:"taskCancelled",id:e});return}X(t,e,"sibling_cancelled"),N.cancelTask(e),A.delete(e),I.delete(e),U.delete(e),t.taskIds.delete(e),G(e),S.postMessage({type:"taskCancelled",id:e})}function ye(e,t){t.taskIds.delete(e)&&(I.delete(e),A.delete(e),U.delete(e),G(e),S.postMessage({type:"taskReleased",id:e}))}async function T(e,t,o){let r=le.get(e);r||(r=new Map,le.set(e,r));let a=r.get(t);if(a)return a;let l;try{l=await e.compileScript(t,{filename:o})}catch(i){throw i&&typeof i=="object"&&(i.executionStage="compile"),i}if(r.set(t,l),r.size>Ee){let i=r.keys().next().value;r.delete(i)}return l}S.on("message",async e=>{if(e.type==="execute")Ve(e).catch(async t=>{await B({type:"result",id:e.id,success:!1,error:{message:t.message,stack:t.stack}})});else if(e.type==="executeBatch")ze(e).catch(async t=>{await B({type:"result",id:e.id,success:!1,error:{message:t.message,stack:t.stack}})});else if(e.type==="invokeRuntimeCallback")Je(e).catch(t=>{S.postMessage({type:"runtimeCallbackResult",callId:e.callId,error:t?.message||String(t)})});else if(e.type==="callResult"){let t=q.get(e.callId);t&&(q.delete(e.callId),t.resolve(e.result))}else if(e.type==="callError"){let t=q.get(e.callId);t&&(q.delete(e.callId),t.reject(new Error(e.error)))}else e.type==="cancelTask"&&Oe(e.id)});async function Je(e){let t=I.get(e.id);if(!t){S.postMessage({type:"runtimeCallbackResult",callId:e.callId,error:`Runtime callback context not found: ${e.id}`});return}let o=await t.evalClosure(`return __invokeRuntimeCallback(${JSON.stringify(e.callbackId)}, ${JSON.stringify(e.argsJson||"[]")});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}}),r=JSON.parse(o);S.postMessage({type:"runtimeCallbackResult",callId:e.callId,...r})}function D(e,t,o){return new Promise((r,a)=>{let l=`cb_${++pe}`;q.set(l,{resolve:r,reject:a}),S.postMessage({type:t,id:e,callId:l,...o})})}function Ue(e,t,o){S.postMessage({type:t,id:e,callId:`f_${++pe}`,...o})}async function je(e,t){if(t?.method!=="stream")return D(e,"resCall",t);let o=JSON.parse(t.argsJson||"[]"),r=o[0],a=o[1]||{},l=r?.__pkgHandleArg;if(!l)return D(e,"resCall",t);let i=a.observer&&typeof a.observer=="object"?a.observer.__fnRef:null,y=a.transform&&typeof a.transform=="object"?a.transform.__fnRef:null,f=i||y?new TextDecoder("utf-8"):null;delete a.observer,delete a.transform;let v={...a};await D(e,"resCall",{method:"streamStart",argsJson:JSON.stringify([null,v])});let b=async(u,k,w)=>{if(!u)return;let g=I.get(e);if(!g)return;let x=await g.evalClosure(`return __invokeRuntimeCallback(${JSON.stringify(u)}, ${JSON.stringify(JSON.stringify([k,w]))});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}}),C=JSON.parse(x);if(C?.error)throw new Error(C.error);if(C?.value?.__e!=="u")return C?.value},R=async(u,k)=>{if(i)try{await b(i,u,k)}catch{}},d=async(u,k,w)=>{let g=u;if(y){let C=await b(y,w,k);if(C===null)return;C!==void 0&&(g=Buffer.from(String(C)))}let x=Buffer.from(g);x.length!==0&&await D(e,"resCall",{method:"streamChunk",chunk:x.toString("base64")})};try{await N.streamPackageHandle(e,l,async k=>{let w="";try{w=f?f.decode(Buffer.from(k),{stream:!0}):""}catch{}await R(w,"chunk"),await d(k,"chunk",w)},[],K(e));let u="";try{u=f?f.decode():""}catch{}await R(u,"end"),await d("","end",u),await D(e,"resCall",{method:"streamEnd"})}catch(u){try{await D(e,"resCall",{method:"streamError",error:{message:u.message,stack:u.stack}})}catch{}throw await R("","error"),u}return JSON.stringify({__e:"u"})}function He(e){if(typeof e.sourceCode=="string"&&e.sourceCode.length>0)return e.sourceCode;let t=e.filePath;return!t&&typeof e.fileUrl=="string"&&e.fileUrl.startsWith("file://")&&(t=Me(e.fileUrl)),!t||!ce.existsSync(t)?null:ce.readFileSync(t,"utf8")}async function Le(e,t,o){try{let r=He(o);if(!r)return null;let a=await e.compileModule(r,{filename:`pkg:${o.safeName}`});await a.instantiate(t,i=>{throw new Error(`Unresolved import in package ${o.safeName}: ${i}`)}),await a.evaluate({timeout:1e4});let l=await a.namespace.get("default");return l!==void 0&&l.typeof!=="undefined"?l.derefInto({release:!1}):a.namespace.derefInto({release:!1})}catch{return null}}function he(e,t){let o=new Set(t.map(f=>f.name)),r=new Set,a=String(e||""),l=/\b(?:\$ctx\.)?\$pkgs\s*\[\s*(['"`])([^'"`]+)\1\s*\]/g,i=/\brequire\s*\(\s*(['"`])([^'"`]+)\1\s*\)/g,y=/\b(?:\$ctx\.)?\$pkgs\.([A-Za-z_$][\w$]*)/g;for(let f of[l,i])for(let v of a.matchAll(f)){let b=v[2];o.has(b)&&r.add(b)}for(let f of a.matchAll(y)){let v=f[1];o.has(v)&&r.add(v)}return r}async function De(e,t,o,r){let a=await e.createContext(),l=a.global;await l.set("global",l.derefInto());let i=[],y=[],f=new Map;for(let d of o){f.set(d.name,d);let u=r.has(d.name)?await Le(e,a,d):null;u!==null?(await l.set(`__pkg_${d.safeName}`,u),i.push(d)):y.push(d)}N.setTaskPackages(t,f),await l.set("__callRef",new W.Reference(async(d,u,k)=>{let w=JSON.parse(k);if(u==="pkgCall")try{return JSON.stringify(await N.executePackageRuntimeCall(d,w))}catch(g){throw new Error(JSON.stringify({__userThrow:!0,message:g.message,code:g.code,details:g.details}))}if(u==="pkgStreamCall")try{return JSON.stringify(await N.executePackageStreamCall(d,w))}catch(g){return JSON.stringify({__pkgStreamError:{message:g.message,code:g.code,details:g.details}})}return u==="resCall"?je(d,w):D(d,u,w)})),await l.set("__fireRef",new W.Reference((d,u,k)=>{let w=JSON.parse(k);Ue(d,u,w)}));let v=i.map(d=>`$pkgs[${JSON.stringify(d.name)}] = __pkg_${d.safeName};`).concat(y.map(d=>`$pkgs[${JSON.stringify(d.name)}] = __createPkgProxy(${JSON.stringify(d.name)}, []);`)).join(`
1194
+ `),b=$e(v);return await(await T(e,b,"setup.js")).run(a,{timeout:K(t)}),ge.set(a,f),a}async function ke(e,t,o,r,a,l,i){let y=e.isolate,f=await De(y,t,o,a);z.created++,N.setTaskPackages(t,ge.get(f)||new Map);let v=f.global;return await v.set("__snapshot",new W.ExternalCopy(r).copyInto()),await v.set("__nextTaskId",t),await v.set("__nextTaskTimeoutMs",l),await v.set("__nextTaskDeadlineMs",i),await(await T(y,"__resetTask(__snapshot, __nextTaskId, __nextTaskTimeoutMs, __nextTaskDeadlineMs);","reset-task.js")).run(f,{timeout:K(t)}),f}async function we(e,t){if(!(!t||e.isolate.isDisposed)){try{await(await T(e.isolate,"__cleanupTask();","cleanup-task.js")).run(t,{timeout:5e3})}catch{z.scrubFailed++;try{t.release()}catch{}return}try{t.release()}catch{}z.released++}}function Be(e){try{let t=JSON.parse(e.message);if(t&&t.__userThrow)return{...t,message:t.message??e.message}}catch{}return null}var Fe=3,Ke=["setup.js","extract.js","extract-error-ctx.js","set-status.js","populate-error.js"];function qe(e){if(!e)return null;let t=e.split(`
1195
+ `);for(let o of t){let r=o.match(/at\s+(.+\.js):(\d+):(\d+)/);if(!r)continue;let a=r[1].trim();if(Ke.includes(a)||a!=="handler.js"&&!a.startsWith("preHook #")&&!a.startsWith("postHook #"))continue;let i=parseInt(r[2])-Fe;if(!(i<=0))return{line:i,column:parseInt(r[3]),phase:a.replace(".js","")}}return null}function We(e,t,o){if(!e||!t)return;let r=String(e).split(/\r?\n/),a=Math.max(1,t-1),l=Math.min(r.length,t+1),i=String(l).length,y=[];for(let f=a;f<=l;f++){let v=f===t?">":" ";y.push(`${v} ${String(f).padStart(i," ")}. ${r[f-1]??""}`),f===t&&o&&o>0&&y.push(` ${" ".repeat(i)} ${" ".repeat(Math.max(0,o-1))}^`)}return y.join(`
1196
+ `)}function Ge(e,t){if(!(!e||!t)){if(t[e.phase])return t[e.phase];if(e.phase?.startsWith("preHook"))return t.preHook;if(e.phase?.startsWith("postHook"))return t.postHook}}function re(e,t){let o=Be(e);if(o)return{message:o.message,statusCode:o.statusCode,errorPath:o.errorPath,code:o.code??(Number.isInteger(o.statusCode)?`HTTP_${o.statusCode}`:void 0),details:o.details};let r=qe(e.stack),a=e.message||"Unknown error",l=r?`${a} (${r.phase}, line ${r.line})`:a,i=Ge(r,t),y=r?We(i,r.line,r.column):void 0;return{message:l,statusCode:e.statusCode||null,details:{errorName:e.name||null,executionStage:e.executionStage||"runtime",...r?{...r,codeFrame:y}:{}}}}function Y(e){return e?.message==="Script execution timed out."}function Z(e){return e?.message==="Isolate was disposed during execution due to memory limit"}function ve(e){Y(e)&&e?.code==null&&(e.code="ERR_SCRIPT_EXECUTION_TIMEOUT"),Z(e)&&e?.code==null&&(e.code="ERR_ISOLATE_MEMORY_LIMIT",e.details={outcome:"unknown_outcome",retryable:!1})}async function Q(e,t,o){ve(t);let r=re(t,o);t.details&&(r.details={...r.details,...t.details});let a,l=I.get(e),i=A.get(e);if(l&&i&&!i.isolate.isDisposed)try{let y=await T(i.isolate,"JSON.stringify({logs: __logs, truncated: $ctx.$share.$logsTruncated === true})","extract-diagnostic-logs.js");a=JSON.parse(await y.run(l,{timeout:100}))}catch{}await B({type:"result",id:e,success:!1,diagnosticLogs:a,error:{...r,stack:t.stack,code:r.code??t.code}})}async function Ve(e){let{id:t,code:o,pkgSources:r,snapshot:a,memoryLimitMb:l,isolatePoolSize:i,tasksPerIsolate:y}=e,f={handler:e.sourceCode||o||""},v=r||[],b=Math.max(1,Math.trunc(Number(e.timeoutMs)||3e4)),R=Date.now()+b;U.set(t,R);let d=he(o,v),u=me(l,i,Math.max(1,Math.trunc(Number(y)||1)));u.taskIds.add(t),A.set(t,u);let k=u.isolate,w;try{w=await ke(u,t,v,a,d,b,R)}catch(g){U.delete(t),A.delete(t),u.taskIds.delete(t),G(t),await Q(t,g,f),S.postMessage({type:"taskReleased",id:t});return}I.set(t,w);try{let g=`
967
1197
  (async () => {
968
1198
  "use strict";
969
- ${s}
1199
+ ${o}
970
1200
  })().then((__result) => __extractResult(__result, __result === undefined));
971
- `,C=await(await T(m,k,"handler.js")).run(v,{timeout:B(t),promise:!0}),D=JSON.parse(C);await F({type:"result",id:t,success:!0,...D})}catch(k){u.taskIds.has(t)&&(await Z(t,k,f),(X(k)||Y(k))&&z(u,t,"sibling_execution_failure"))}finally{await ke(u,v),ye(t,u)}}async function We(e){let{id:t,codeBlocks:s,pkgSources:n,snapshot:r,memoryLimitMb:i,isolatePoolSize:o,tasksPerIsolate:y}=e,f=n||[],w=Math.max(1,Math.trunc(Number(e.timeoutMs)||3e4)),b=Date.now()+w;j.set(t,b);let R=he((s||[]).map(_=>_.code||"").join(`
972
- `),f),d=ge(i,o,Math.max(1,Math.trunc(Number(y)||1)));d.taskIds.add(t),E.set(t,d);let u=d.isolate,m;try{m=await me(d,t,f,r,R,w,b)}catch(_){j.delete(t),E.delete(t),d.taskIds.delete(t),V(t),await Z(t,_),S.postMessage({type:"taskReleased",id:t});return}O.set(t,m);let v=[],k=[],P={},C=0,D=0;for(let _ of s){let H=_.type||"handler",g=_.sourceCode||_.code||"";H==="postHook"?(D++,P[`postHook #${D}`]=g,P.postHook=g,k.push(_)):(H==="handler"?P.handler=g:(C++,P[`${H} #${C}`]=g,P.preHook=g),v.push(_))}try{let _=null;for(let g=0;g<v.length;g++){let x=v[g],$=x.type||"handler",l=$==="handler"?"handler":`${$} #${g+1}`,a;$==="preHook"?a=`
1201
+ `,C=await(await T(k,g,"handler.js")).run(w,{timeout:K(t),promise:!0}),F=JSON.parse(C);await B({type:"result",id:t,success:!0,...F})}catch(g){u.taskIds.has(t)&&(await Q(t,g,f),(Y(g)||Z(g))&&X(u,t,"sibling_execution_failure"))}finally{await we(u,w),ye(t,u)}}async function ze(e){let{id:t,codeBlocks:o,pkgSources:r,snapshot:a,memoryLimitMb:l,isolatePoolSize:i,tasksPerIsolate:y}=e,f=r||[],v=Math.max(1,Math.trunc(Number(e.timeoutMs)||3e4)),b=Date.now()+v;U.set(t,b);let R=he((o||[]).map(p=>p.code||"").join(`
1202
+ `),f),d=me(l,i,Math.max(1,Math.trunc(Number(y)||1)));d.taskIds.add(t),A.set(t,d);let u=d.isolate,k;try{k=await ke(d,t,f,a,R,v,b)}catch(p){U.delete(t),A.delete(t),d.taskIds.delete(t),G(t),await Q(t,p),S.postMessage({type:"taskReleased",id:t});return}I.set(t,k);let w=[],g=[],x={},C=0,F=0;for(let p of o){let j=p.type||"handler",m=p.sourceCode||p.code||"";j==="postHook"?(F++,x[`postHook #${F}`]=m,x.postHook=m,g.push(p)):(j==="handler"?x.handler=m:(C++,x[`${j} #${C}`]=m,x.preHook=m),w.push(p))}try{let p=null;for(let m=0;m<w.length;m++){let P=w[m],M=P.type||"handler",H=M==="handler"?"handler":`${M} #${m+1}`,s;M==="preHook"?s=`
973
1203
  (async () => {
974
1204
  "use strict";
975
- ${x.code}
1205
+ ${P.code}
976
1206
  })().then((__r) => {
977
1207
  if (__r !== undefined) return JSON.stringify({ __shortCircuit: true, value: __r });
978
1208
  return JSON.stringify({ __shortCircuit: false });
979
- });`:a=`
1209
+ });`:s=`
980
1210
  (async () => {
981
1211
  "use strict";
982
- ${x.code}
1212
+ ${P.code}
983
1213
  })().then((__r) => {
984
1214
  $ctx.$data = __r;
985
1215
  return "__handler_done__";
986
- });`;try{let p=await(await T(u,a,`${l}.js`)).run(m,{timeout:B(t),promise:!0});if($==="preHook"&&typeof p=="string"){let h=JSON.parse(p);if(h.__shortCircuit){let M=await fe(u,m,h.value);await F({type:"result",id:t,success:!0,...M,shortCircuit:!0});return}}}catch(c){_=c;break}}if(!_&&k.length>0&&await(await T(u,'$ctx.$statusCode = 200; "__status_set__";',"set-status.js")).run(m,{timeout:5e3}),_&&k.length>0){let g=te(_,P),x={message:g.message||"Unknown error",name:_.constructor?.name||"Error",stack:_.stack||"",statusCode:g.statusCode||500,details:g.details||{},timestamp:new Date().toISOString()},$=`
987
- $ctx.$error = ${JSON.stringify(x)};
1216
+ });`;try{let c=await(await T(u,s,`${H}.js`)).run(k,{timeout:K(t),promise:!0});if(M==="preHook"&&typeof c=="string"){let _=JSON.parse(c);if(_.__shortCircuit){let h=await _e(u,k,_.value);await B({type:"result",id:t,success:!0,...h,shortCircuit:!0});return}}}catch(n){p=n;break}}if(!p&&g.length>0&&await(await T(u,'$ctx.$statusCode = 200; "__status_set__";',"set-status.js")).run(k,{timeout:5e3}),p&&g.length>0){let m=re(p,x),P={message:m.message||"Unknown error",name:p.constructor?.name||"Error",stack:p.stack||"",statusCode:m.statusCode||500,details:m.details||{},timestamp:new Date().toISOString()},M=`
1217
+ $ctx.$error = ${JSON.stringify(P)};
988
1218
  $ctx.$data = null;
989
- $ctx.$statusCode = ${x.statusCode};
1219
+ $ctx.$statusCode = ${P.statusCode};
990
1220
  if ($ctx.$api) {
991
- $ctx.$api.error = ${JSON.stringify(x)};
1221
+ $ctx.$api.error = ${JSON.stringify(P)};
992
1222
  $ctx.$api.response = {
993
- statusCode: ${x.statusCode},
1223
+ statusCode: ${P.statusCode},
994
1224
  responseTime: $ctx.$api.request && $ctx.$api.request.timestamp
995
1225
  ? Date.now() - new Date($ctx.$api.request.timestamp).getTime()
996
1226
  : 0,
997
- timestamp: ${JSON.stringify(x.timestamp)},
1227
+ timestamp: ${JSON.stringify(P.timestamp)},
998
1228
  };
999
1229
  }
1000
- "__error_populated__";`;await(await u.compileScript($,{filename:"populate-error.js"})).run(m,{timeout:5e3})}for(let g=0;g<k.length;g++){let x=k[g],$=`postHook #${g+1}`,l=`
1230
+ "__error_populated__";`;await(await u.compileScript(M,{filename:"populate-error.js"})).run(k,{timeout:5e3})}for(let m=0;m<g.length;m++){let P=g[m],M=`postHook #${m+1}`,H=`
1001
1231
  (async () => {
1002
1232
  "use strict";
1003
- ${x.code}
1233
+ ${P.code}
1004
1234
  })().then((__r) => {
1005
1235
  if (__r !== undefined) $ctx.$data = __r;
1006
1236
  return "__posthook_done__";
1007
- });`;try{await(await T(u,l,`${$}.js`)).run(m,{timeout:B(t),promise:!0})}catch(a){S.postMessage({type:"executionError",id:t,sourceKind:"postHook",scriptId:x.scriptId,error:{message:a.message,stack:a.stack,code:a.code}})}}if(_){we(_);let g=te(_,P);_.details&&(g.details={...g.details,..._.details});let x;try{let a=await(await T(u,"(async () => JSON.stringify(await __extractCtxChanges()))()","extract-error-ctx.js")).run(m,{timeout:5e3,promise:!0});x=JSON.parse(a)}catch{}await F({type:"result",id:t,success:!1,error:{message:g.message,statusCode:g.statusCode,errorPath:g.errorPath,stack:_.stack,code:g.code??_.code,details:g.details},ctxChanges:x}),(X(_)||Y(_))&&z(d,t,"sibling_execution_failure");return}let H=await fe(u,m);await F({type:"result",id:t,success:!0,...H})}catch(_){d.taskIds.has(t)&&(await Z(t,_),(X(_)||Y(_))&&z(d,t,"sibling_execution_failure"))}finally{await ke(d,m),ye(t,d)}}function V(e){U.cleanupTaskPackages(e)}function ze(){U.shutdownPackageRuntime()}process.on("exit",ze);async function fe(e,t,s){if(s!==void 0){let o=`__extractResult(${JSON.stringify(s)}, false)`,f=await(await e.compileScript(o,{filename:"extract.js"})).run(t,{timeout:5e3,promise:!0});return JSON.parse(f)}let i=await(await T(e,"__extractResult($ctx.$data, $ctx.$data === undefined)","extract.js")).run(t,{timeout:5e3,promise:!0});return JSON.parse(i)}
1237
+ });`;try{await(await T(u,H,`${M}.js`)).run(k,{timeout:K(t),promise:!0})}catch(s){S.postMessage({type:"executionError",id:t,sourceKind:"postHook",scriptId:P.scriptId,error:{message:s.message,stack:s.stack,code:s.code}})}}if(p){ve(p);let m=re(p,x);p.details&&(m.details={...m.details,...p.details});let P;try{let s=await(await T(u,"(async () => JSON.stringify(await __extractCtxChanges()))()","extract-error-ctx.js")).run(k,{timeout:5e3,promise:!0});P=JSON.parse(s)}catch{}await B({type:"result",id:t,success:!1,error:{message:m.message,statusCode:m.statusCode,errorPath:m.errorPath,stack:p.stack,code:m.code??p.code,details:m.details},ctxChanges:P}),(Y(p)||Z(p))&&X(d,t,"sibling_execution_failure");return}let j=await _e(u,k);await B({type:"result",id:t,success:!0,...j})}catch(p){d.taskIds.has(t)&&(await Q(t,p),(Y(p)||Z(p))&&X(d,t,"sibling_execution_failure"))}finally{await we(d,k),ye(t,d)}}function G(e){N.cleanupTaskPackages(e)}function Xe(){N.shutdownPackageRuntime()}process.on("exit",Xe);async function _e(e,t,o){if(o!==void 0){let i=`__extractResult(${JSON.stringify(o)}, false)`,f=await(await e.compileScript(i,{filename:"extract.js"})).run(t,{timeout:5e3,promise:!0});return JSON.parse(f)}let l=await(await T(e,"__extractResult($ctx.$data, $ctx.$data === undefined)","extract.js")).run(t,{timeout:5e3,promise:!0});return JSON.parse(l)}