@enfyra/kernel 1.1.60 → 1.1.61
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((ie,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,C]of Object.entries(r))i[d]=a(f,C);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,C]of r.__formData)i.append(d,c(f,C));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"),L=require("node:http"),N=require("node:https"),O=require("node:net"),H=require("node:tls"),_=require("node:http2"),{createPackageRuntimeCodec:z}=$(),R=new B,A=new Map,y=new Map,w=new Map,h=new Map,m=new Map,P=new Map,p=new Map,g=new Map,q=0,F=0,D=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 V(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 K(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[L,N]){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[[O,["connect","createConnection"]],[H,["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 Q(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 X(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:Y,deserializePackageArg:Z,deserializePackageArgs:v,serializePackageValue:u}=z({handles:y,createHandleId:e=>`${e}:pkg_${++q}`,callIsolateCallback:te});async function ee(e){let t=e.fileUrl||e.name;if(A.has(t))return A.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 A.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(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 te(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 re(e){let t=Q(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 ee(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 Y(e.taskId,new a(...t))}return typeof a=="function"?u(e.taskId,await a.apply(o,t)):u(e.taskId,a)}function ne(e,t,n){return new Promise((a,o)=>{let c=`stream_${++D}`;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 ae(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 ne(e.id,e.taskId,c.value)}}finally{P.delete(e.id)}}function oe(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),K(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})`:""}`;X(e.id,e.taskId,c)},n);try{if(e.op==="releaseTask"){t=!0,clearTimeout(a),oe(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"?ae(e):re(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"&&V(e.taskId)}});process.on("disconnect",()=>{process.exit(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)});
|
package/dist/execution/worker.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var ne=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ae=ne((
|
|
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 _=new Error(l);return _.code=a,_.details=c,_}function R(l,a){for(let[c,_]of n)_.child===l&&(clearTimeout(_.timer),n.delete(c),r.delete(c),_.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}`,_=setTimeout(()=>{i.delete(c);try{l.kill()}catch{}},f);_.unref?.(),i.set(c,{child:l,timer:_});try{l.send({op:"cancelTask",taskId:a,id:c})}catch{clearTimeout(_),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),_=JSON.stringify(l.argsJson||"[]"),h=await a.evalClosure(`return __invokeRuntimeCallback(${c}, ${_});`,[],{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 _=n.get(c.id);if(_)if(clearTimeout(_.timer),n.delete(c.id),r.delete(c.id),c.ok)_.resolve(c.value);else{c.error?.code==="ERR_PACKAGE_RUNTIME_TIMEOUT"&&u(a,_.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)}}),a.on("exit",(c,_)=>{o===a&&(o=null),d(a),R(a,b(`Package runtime exited${_?` with signal ${_}`:` 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 _=k(),h=`pkg_${++y}`,M=w(l.timeoutMs),J=setTimeout(()=>{n.delete(h),r.delete(h),u(_,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:_,taskId:l.taskId,resolve:a,reject:c,timer:J});try{_.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,_=[],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:_,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 p(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 _=c.get(a.packageName);if(!_)throw new Error(`Package "${a.packageName}" is not available`);return P({op:a.kind==="construct"?"construct":"call",taskId:l,packageName:a.packageName,package:{name:_.name,fileUrl:_.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:p,executePackageRuntimeCall:H,setTaskPackages:g,streamPackageHandle:C,shutdownPackageRuntime:$}}re.exports={createPackageRuntimeBridge:xe}});var oe=ne((Ze,se)=>{"use strict";var Pe=`
|
|
2
2
|
"use strict";
|
|
3
3
|
let $ctx = {};
|
|
4
4
|
let $pkgs = {};
|
|
@@ -956,30 +956,30 @@ function __cleanupTask() {
|
|
|
956
956
|
__pendingRuntimeTasks = [];
|
|
957
957
|
return true;
|
|
958
958
|
}
|
|
959
|
-
`;function
|
|
960
|
-
`),
|
|
961
|
-
`);for(let
|
|
962
|
-
`)}function
|
|
959
|
+
`;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,_e=0,O=new Map,E=new Map,j=new Map,U=$e({workerDir:__dirname,activeTaskContexts:O}),Me=500,Ne=5e3,ce=new WeakMap,pe=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_${++_e}`;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_${++_e}`,...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(`
|
|
960
|
+
`),b=Te(w);return await(await T(e,b,"setup.js")).run(r,{timeout:B(t)}),pe.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,pe.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(`
|
|
961
|
+
`);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(`
|
|
962
|
+
`)}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=`
|
|
963
963
|
(async () => {
|
|
964
964
|
"use strict";
|
|
965
|
-
${
|
|
965
|
+
${s}
|
|
966
966
|
})().then((__result) => __extractResult(__result, __result === undefined));
|
|
967
|
-
`,C=await(await T(k,
|
|
968
|
-
`),
|
|
967
|
+
`,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(p=>p.code||"").join(`
|
|
968
|
+
`),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(p){j.delete(t),E.delete(t),d.taskIds.delete(t),V(t),await Z(t,p),S.postMessage({type:"taskReleased",id:t});return}O.set(t,m);let v=[],k=[],P={},C=0,D=0;for(let p of s){let H=p.type||"handler",g=p.sourceCode||p.code||"";H==="postHook"?(D++,P[`postHook #${D}`]=g,P.postHook=g,k.push(p)):(H==="handler"?P.handler=g:(C++,P[`${H} #${C}`]=g,P.preHook=g),v.push(p))}try{let p=null;for(let g=0;g<v.length;g++){let x=v[g],$=x.type||"handler",l=$==="handler"?"handler":`${$} #${g+1}`,a;$==="preHook"?a=`
|
|
969
969
|
(async () => {
|
|
970
970
|
"use strict";
|
|
971
971
|
${x.code}
|
|
972
972
|
})().then((__r) => {
|
|
973
973
|
if (__r !== undefined) return JSON.stringify({ __shortCircuit: true, value: __r });
|
|
974
974
|
return JSON.stringify({ __shortCircuit: false });
|
|
975
|
-
});`:
|
|
975
|
+
});`:a=`
|
|
976
976
|
(async () => {
|
|
977
977
|
"use strict";
|
|
978
978
|
${x.code}
|
|
979
979
|
})().then((__r) => {
|
|
980
980
|
$ctx.$data = __r;
|
|
981
981
|
return "__handler_done__";
|
|
982
|
-
});`;try{let
|
|
982
|
+
});`;try{let _=await(await T(u,a,`${l}.js`)).run(m,{timeout:B(t),promise:!0});if($==="preHook"&&typeof _=="string"){let h=JSON.parse(_);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){p=c;break}}if(!p&&k.length>0&&await(await T(u,'$ctx.$statusCode = 200; "__status_set__";',"set-status.js")).run(m,{timeout:5e3}),p&&k.length>0){let g=te(p,P),x={message:g.message||"Unknown error",name:p.constructor?.name||"Error",stack:p.stack||"",statusCode:g.statusCode||500,details:g.details||{},timestamp:new Date().toISOString()},$=`
|
|
983
983
|
$ctx.$error = ${JSON.stringify(x)};
|
|
984
984
|
$ctx.$data = null;
|
|
985
985
|
$ctx.$statusCode = ${x.statusCode};
|
|
@@ -993,11 +993,11 @@ if ($ctx.$api) {
|
|
|
993
993
|
timestamp: ${JSON.stringify(x.timestamp)},
|
|
994
994
|
};
|
|
995
995
|
}
|
|
996
|
-
"__error_populated__";`;await(await u.compileScript($,{filename:"populate-error.js"})).run(
|
|
996
|
+
"__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=`
|
|
997
997
|
(async () => {
|
|
998
998
|
"use strict";
|
|
999
999
|
${x.code}
|
|
1000
1000
|
})().then((__r) => {
|
|
1001
1001
|
if (__r !== undefined) $ctx.$data = __r;
|
|
1002
1002
|
return "__posthook_done__";
|
|
1003
|
-
});`;try{await(await T(u,l,`${$}.js`)).run(
|
|
1003
|
+
});`;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(p){we(p);let g=te(p,P);p.details&&(g.details={...g.details,...p.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:p.stack,code:g.code??p.code,details:g.details},ctxChanges:x}),(X(p)||Y(p))&&z(d,t,"sibling_execution_failure");return}let H=await fe(u,m);await F({type:"result",id:t,success:!0,...H})}catch(p){d.taskIds.has(t)&&(await Z(t,p),(X(p)||Y(p))&&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)}
|