@enfyra/kernel 1.1.49 → 1.1.50
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,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var E=x((re,C)=>{"use strict";function M({handles:e,createHandleId:r,callIsolateCallback:n}){function a(f,t){if(t==null)return t;let l=typeof t;if(l==="string"||l==="number"||l==="boolean")return t;if(t instanceof Date)return{__date:t.toISOString()};if(t instanceof Set)return{__set:Array.from(t.values()).map(i=>a(f,i))};if(t instanceof Map)return{__map:Array.from(t.entries()).map(([i,d])=>[a(f,i),a(f,d)])};if(t instanceof RegExp)return{__regexp:{source:t.source,flags:t.flags}};if(t instanceof Error)return{__error:{name:t.name,message:t.message,stack:t.stack}};if(typeof URL<"u"&&t instanceof URL)return{__url:t.href};if(typeof URLSearchParams<"u"&&t instanceof URLSearchParams)return{__urlSearchParams:t.toString()};if(typeof Buffer<"u"&&Buffer.isBuffer(t)||t._isBuffer===!0)return o(f,t);if(ArrayBuffer.isView(t))return{__typedArray:t.constructor?.name||"Uint8Array",data:Array.from(t)};if(t instanceof ArrayBuffer)return{__arrayBuffer:Array.from(new Uint8Array(t))};if(Array.isArray(t))return t.map(i=>a(f,i));if(l==="object"&&j(t)){let i={};for(let[d,P]of Object.entries(t))i[d]=a(f,P);return i}return o(f,t)}function o(f,t){let l=r(f);return e.set(l,t),{__pkgHandle:l}}function c(f,t){if(!t||typeof t!="object")return t;if(t.__fnRef)return(...i)=>n(f,t.__fnRef,i);if(t.__pkgHandleArg){let i=e.get(t.__pkgHandleArg);if(!i)throw new Error(`Package argument handle not found: ${t.__pkgHandleArg}`);return i}if(t.__date)return new Date(t.__date);if(t.__set)return new Set(t.__set.map(i=>c(f,i)));if(t.__map)return new Map(t.__map.map(([i,d])=>[c(f,i),c(f,d)]));if(t.__regexp)return new RegExp(t.__regexp.source,t.__regexp.flags||"");if(t.__error){let i=new Error(t.__error.message||"");return i.name=t.__error.name||"Error",t.__error.stack&&(i.stack=t.__error.stack),i}if(t.__url)return new URL(t.__url);if(t.__urlSearchParams)return new URLSearchParams(t.__urlSearchParams);if(t.__blob)return new Blob([Uint8Array.from(t.__blob.data||[])],{type:t.__blob.type||""});if(t.__file){let i=[Uint8Array.from(t.__file.data||[])],d={type:t.__file.type||"",lastModified:t.__file.lastModified};return typeof File<"u"?new File(i,t.__file.name||"file",d):new Blob(i,d)}if(t.__formData){let i=new FormData;for(let[d,P]of t.__formData)i.append(d,c(f,P));return i}if(t.__typedArray){let i=globalThis[t.__typedArray]||Uint8Array;return new i(t.data||[])}if(t.__arrayBuffer)return Uint8Array.from(t.__arrayBuffer).buffer;if(Array.isArray(t))return t.map(i=>c(f,i));let l={};for(let[i,d]of Object.entries(t))l[i]=c(f,d);return l}function s(f,t){return JSON.parse(t||"[]").map(l=>c(f,l))}return{createPackageHandle:o,deserializePackageArg:c,deserializePackageArgs:s,serializePackageValue:a}}function j(e){if(e===null||typeof e!="object")return!1;let r=Object.getPrototypeOf(e);return r!==Object.prototype&&r!==null?!1:!Object.values(e).some(n=>typeof n=="function")}C.exports={createPackageRuntimeCodec:M}});var{AsyncLocalStorage:R}=require("node:async_hooks"),B=require("node:http"),U=require("node:https"),L=require("node:net"),H=require("node:tls"),y=require("node:http2"),{createPackageRuntimeCodec:N}=E(),T=new R,g=new Map,p=new Map,b=new Map,_=new Map,A=new Map,w=new Map,O=0,z=0,q=0;function F(e){return Math.max(1,Math.trunc(Number(e)||3e4))}function h(e){let r=A.get(e);return r||(r=new AbortController,A.set(e,r)),r}function I(e){h(e).abort();for(let[r,n]of w)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{}w.delete(r)}}function m(){return T.getStore()}function $(e){let r=m();if(!r||!e)return e;let n=h(r).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 S(e){let r=m();if(!r||!e||typeof e.destroy!="function")return e;let n=h(r).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 D(){for(let r of[B,U]){if(r.__enfyraCancelPatched)continue;r.__enfyraCancelPatched=!0;let n=r.request,a=r.get;r.request=function(...c){return $(n.apply(r,c))},r.get=function(...c){return $(a.apply(r,c))}}for(let[r,n]of[[L,["connect","createConnection"]],[H,["connect"]]])if(!r.__enfyraCancelPatched){r.__enfyraCancelPatched=!0;for(let a of n){let o=r[a];typeof o=="function"&&(r[a]=function(...s){return S(o.apply(r,s))})}}if(!y.__enfyraCancelPatched){y.__enfyraCancelPatched=!0;let r=y.connect;y.connect=function(...a){return S(r.apply(y,a))}}let e=globalThis.fetch;typeof e=="function"&&!globalThis.__enfyraFetchCancelPatched&&(globalThis.__enfyraFetchCancelPatched=!0,globalThis.fetch=function(n,a){let o=m();if(o){let c=a&&typeof a=="object"?a:{};c.signal||(a={...c,signal:h(o).signal})}return e.call(globalThis,n,a)})}D();function J(e){let r=K(e.taskId,e.argsJson),n=(e.path||[]).join(".");if(e.packageName==="undici"&&(n==="request"||n==="fetch")){let a=r[1]&&typeof r[1]=="object"?r[1]:{};r[1]={...a,signal:h(e.taskId).signal}}return r}function G(e,r){let n=()=>process.exit(1);try{process.send?.({id:e,ok:!1,error:{message:r}},n),setTimeout(n,50).unref?.()}catch{n()}}var{createPackageHandle:V,deserializePackageArg:W,deserializePackageArgs:K,serializePackageValue:u}=N({handles:p,createHandleId:e=>`${e}:pkg_${++O}`,callIsolateCallback:X});async function Q(e){let r=e.fileUrl||e.name;if(g.has(r))return g.get(r);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 g.set(r,a),a}function k(e,r){if(!r||r.length===0)return{target:e&&e.default!==void 0?e.default:e,receiver:void 0};let n=e,a;for(let o=0;o<r.length;o++){let c=r[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: ${r.join(".")}`)}return{target:n,receiver:a}}function X(e,r,n){return new Promise((a,o)=>{let c=`cb_${++z}`;b.set(c,{resolve:a,reject:o,taskId:e});try{process.send?.({type:"pkgCallbackCall",id:c,taskId:e,callbackId:r,argsJson:JSON.stringify(n.map(s=>u(e,s)))})}catch(s){b.delete(c),o(s)}})}async function Y(e){let r=J(e);if(e.op==="handleCall"){let c=p.get(e.handleId);if(!c)throw new Error(`Package handle not found: ${e.handleId}`);let{target:s,receiver:f}=k(c,e.path||[]);if(typeof s!="function")return u(e.taskId,s);let t=await s.apply(f||c,r);return u(e.taskId,t)}if(e.op==="handleGet"){let c=p.get(e.handleId);if(!c)throw new Error(`Package handle not found: ${e.handleId}`);let{target:s,receiver:f}=k(c,e.path||[]);return u(e.taskId,typeof s=="function"&&f?s.bind(f):s)}let n=await Q(e.package),{target:a,receiver:o}=k(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 V(e.taskId,new a(...r))}return typeof a=="function"?u(e.taskId,await a.apply(o,r)):u(e.taskId,a)}function Z(e,r,n){return new Promise((a,o)=>{let c=`stream_${++q}`;_.set(c,{resolve:a,reject:o});try{process.send?.({type:"pkgStreamChunk",id:e,ackId:c,taskId:r,chunk:Buffer.from(n).toString("base64")},s=>{s&&(_.delete(c),o(s))})}catch(s){_.delete(c),o(s)}})}async function v(e){let r=p.get(e.handleId);if(!r)throw new Error(`Package handle not found: ${e.handleId}`);let{target:n}=k(r,e.path||[]),a=n||r;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;w.set(e.id,{taskId:e.taskId,stream:a,iterator:o});try{for(;;){let c=await o.next();if(c.done)break;await Z(e.id,e.taskId,c.value)}}finally{w.delete(e.id)}}function ee(e){I(e),A.delete(e);for(let r of p.keys())r.startsWith(`${e}:`)&&p.delete(r)}process.on("message",async e=>{if(!e)return;if(e.type==="pkgStreamAck"||e.type==="pkgStreamError"){let o=_.get(e.ackId);if(!o)return;_.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(W(o.taskId,e.value)):o.reject(new Error(e.error?.message||"Package callback failed"));return}if(e.op==="cancelTask"){I(e.taskId),e.fire||process.send?.({id:e.id,ok:!0,value:!0});return}if(!e.op)return;let r=!1,n=F(e.timeoutMs),a=setTimeout(()=>{if(r)return;r=!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})`:""}`;G(e.id,c)},n);try{if(e.op==="releaseTask"){r=!0,clearTimeout(a),ee(e.taskId),e.fire||process.send?.({id:e.id,ok:!0,value:!0});return}let o=await T.run(e.taskId,()=>e.op==="streamHandle"?v(e):Y(e));if(r)return;r=!0,clearTimeout(a),process.send?.({id:e.id,ok:!0,value:o})}catch(o){if(r)return;r=!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}})}});process.on("disconnect",()=>{process.exit(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)});
|
package/dist/execution/worker.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var ee=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ne=ee((Qe,te)=>{"use strict";var{fork:be}=require("child_process"),Pe=require("path");function xe({workerDir:e,activeTaskContexts:t}){let a=new Map,r=new Map,n=new Map,l=new Map,s=null,y=0,p=1e3;function k(c){return Math.max(1,Math.trunc(Number(c)||3e4))}function w(c,o,i){let f=new Error(c);return f.code=o,f.details=i,f}function P(c,o){for(let[i,f]of r)f.child===c&&(clearTimeout(f.timer),r.delete(i),n.delete(i),f.reject(o))}function u(c){for(let[o,i]of l)i.child===c&&(clearTimeout(i.timer),l.delete(o))}function d(c,o){if(!c.connected)return;let i=`cancel_${++y}`,f=setTimeout(()=>{l.delete(i);try{c.kill()}catch{}},p);f.unref?.(),l.set(i,{child:c,timer:f});try{c.send({op:"cancelTask",taskId:o,id:i})}catch{clearTimeout(f),l.delete(i);try{c.kill()}catch{}}}function v(c){let o=typeof c=="string"?JSON.parse(c):c;if(o?.error)throw new Error(o.error);return o?.value}async function h(c){let o=t.get(c.taskId);if(!o)throw new Error(`Package callback context not found: ${c.taskId}`);let i=JSON.stringify(c.callbackId),f=JSON.stringify(c.argsJson||"[]"),m=await o.evalClosure(`return __invokeRuntimeCallback(${i}, ${f});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}});return v(m)}function b(){if(s&&s.connected)return s;let c=Pe.join(e,"package-runtime.child.js"),o=be(c,[],{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 s=o,o.on("message",i=>{if(!i||!i.id)return;if(i.type==="pkgStreamChunk"){let m=n.get(i.id);if(!m)return;m.onChunk(Buffer.from(i.chunk||"","base64")).then(()=>{try{o.send({type:"pkgStreamAck",ackId:i.ackId})}catch{}}).catch(I=>{try{o.send({type:"pkgStreamError",ackId:i.ackId,error:{message:I.message,stack:I.stack}})}catch{}});return}if(i.type==="taskCancelled"){let m=l.get(i.id);if(!m||m.child!==o)return;clearTimeout(m.timer),l.delete(i.id);return}if(i.type==="pkgCallbackCall"){h(i).then(m=>{try{o.send({type:"pkgCallbackResult",id:i.id,value:m})}catch{}}).catch(m=>{try{o.send({type:"pkgCallbackError",id:i.id,error:{message:m.message,stack:m.stack}})}catch{}});return}let f=r.get(i.id);if(f)if(clearTimeout(f.timer),r.delete(i.id),n.delete(i.id),i.ok)f.resolve(i.value);else{i.error?.code==="ERR_PACKAGE_RUNTIME_TIMEOUT"&&d(o,f.taskId);let m=w(i.error?.message||"Package runtime call failed",i.error?.code,i.error?.details);m.stack=i.error?.stack||m.stack,f.reject(m)}}),o.on("exit",(i,f)=>{s===o&&(s=null),u(o),P(o,w(`Package runtime exited${f?` with signal ${f}`:` with code ${i}`}`,"ERR_PACKAGE_RUNTIME_LOST",{outcome:"unknown_outcome",retryable:!1}))}),o.on("error",i=>{s===o&&(s=null),u(o),P(o,w(i.message,"ERR_PACKAGE_RUNTIME_LOST",{outcome:"unknown_outcome",retryable:!1}))}),o}function R(c){return new Promise((o,i)=>{let f=b(),m=`pkg_${++y}`,I=k(c.timeoutMs),N=setTimeout(()=>{r.delete(m),n.delete(m),d(f,c.taskId),i(w(`Package runtime call timed out after ${I}ms`,"ERR_PACKAGE_RUNTIME_TIMEOUT",{outcome:"unknown_outcome",retryable:!1}))},I);r.set(m,{child:f,taskId:c.taskId,resolve:o,reject:i,timer:N});try{f.send({...c,id:m},E=>{E&&(clearTimeout(N),r.delete(m),i(E))})}catch(E){clearTimeout(N),r.delete(m),i(E)}})}function S(c,o,i,f=[],m=3e4){return new Promise((I,N)=>{let E=b(),T=`pkg_${++y}`,Y=k(m),Z=setTimeout(()=>{r.delete(T),n.delete(T),d(E,c),N(w(`Package runtime stream timed out after ${Y}ms`,"ERR_PACKAGE_RUNTIME_TIMEOUT",{outcome:"unknown_outcome",retryable:!1}))},Y);r.set(T,{child:E,taskId:c,resolve:I,reject:N,timer:Z}),n.set(T,{onChunk:i});try{E.send({op:"streamHandle",taskId:c,handleId:o,path:f,id:T,timeoutMs:Y},G=>{G&&(clearTimeout(Z),r.delete(T),n.delete(T),N(G))})}catch(G){clearTimeout(Z),r.delete(T),n.delete(T),N(G)}})}function _(c){try{if(!s||!s.connected)return;s.send({...c,id:`pkg_${++y}`,fire:!0})}catch{}}function O(c){try{if(!s||!s.connected)return;d(s,c)}catch{}}async function g(c,o){let i=a.get(c);if(!i)throw new Error("Package context is not available");if(o.handleId)return R({op:o.kind==="get"?"handleGet":"handleCall",taskId:c,handleId:o.handleId,path:o.path||[],argsJson:o.argsJson||"[]",timeoutMs:o.timeoutMs});let f=i.get(o.packageName);if(!f)throw new Error(`Package "${o.packageName}" is not available`);return R({op:o.kind==="construct"?"construct":"call",taskId:c,packageName:o.packageName,package:{name:f.name,fileUrl:f.fileUrl},path:o.path||[],argsJson:o.argsJson||"[]",timeoutMs:o.timeoutMs})}function x(c,o){a.set(c,o)}function $(c){a.delete(c),_({op:"releaseTask",taskId:c})}function J(){if(s){try{s.kill()}catch{}s=null}}return{cleanupTaskPackages:$,cancelTask:O,executePackageRuntimeCall:g,setTaskPackages:x,streamPackageHandle:S,shutdownPackageRuntime:J}}te.exports={createPackageRuntimeBridge:xe}});var ae=ee((et,re)=>{"use strict";var Se=`
|
|
2
2
|
"use strict";
|
|
3
3
|
let $ctx = {};
|
|
4
4
|
let $pkgs = {};
|
|
@@ -949,48 +949,48 @@ function __cleanupTask() {
|
|
|
949
949
|
__pendingRuntimeTasks = [];
|
|
950
950
|
return true;
|
|
951
951
|
}
|
|
952
|
-
`;function
|
|
953
|
-
`),w=
|
|
954
|
-
`);for(let
|
|
955
|
-
`)}function
|
|
952
|
+
`;function Ce(e){return Se.replace("%%PKG_SETUP%%",e)}re.exports={buildSetupCode:Ce}});var{parentPort:Re}=require("worker_threads"),C=Re||{on(e,t){e==="message"&&process.on("message",t)},postMessage(e){process.send?.(e)}},se=require("fs"),{fileURLToPath:$e}=require("url"),{createPackageRuntimeBridge:Me}=ne(),{buildSetupCode:Te}=ae(),V;try{V=require("isolated-vm")}catch(e){C.postMessage({type:"error",message:"isolated-vm not available: "+e.message}),process.exit(1)}var q=new Map,de=0,D=new Map,H=new Map,L=new Map,F=Me({workerDir:__dirname,activeTaskContexts:D}),Ae=500,Ne=5e3,Ee=1,oe=new WeakMap,fe=new WeakMap,pe=new WeakMap,K={created:0,reused:0,released:0,evicted:0,scrubFailed:0};function B(e){let t=L.get(e);return Math.max(1,Math.ceil((t??Date.now()+3e4)-Date.now()))}var M=null,ie=0,ce=0,le=0;async function Oe(){let e=Date.now();if(e-ce<Ne)return le;if(ce=e,!M)return 0;let t=0;for(let a of M){let r=a?.isolate;if(!(!r||r.isDisposed))try{let n=await r.getHeapStatistics(),l=n.heap_size_limit||1,s=n.used_heap_size/l;s>t&&(t=s)}catch{}}return le=t,t}async function U(e){e.heapRatio=await Oe(),e.contextStats=Je(),C.postMessage(e)}function Je(){let e=0;if(M)for(let t of M)e+=t?.idleContexts?.length||0;return{...K,idle:e}}function _e(e,t){if(!M){let a=Math.max(1,Math.trunc(Number(t)||8));M=new Array(a).fill(null)}for(let a=0;a<M.length;a++){let r=(ie+a)%M.length,n=M[r];if((!n||!n.isolate||n.isolate.isDisposed)&&(n={isolate:new V.Isolate({memoryLimit:e}),idleContexts:[],taskId:null},M[r]=n),n.taskId==null)return ie=(r+1)%M.length,n}throw new Error("No isolate lane is available")}function Ie(e){F.cancelTask(e);let t=H.get(e);if(!t){C.postMessage({type:"taskCancelled",id:e});return}H.delete(e),D.delete(e),L.delete(e),t.taskId=null,t.idleContexts.length=0;try{t.isolate.dispose()}catch{}X(e),C.postMessage({type:"taskCancelled",id:e})}function ge(e,t){D.delete(e),H.delete(e),L.delete(e),t.taskId=null,X(e),C.postMessage({type:"taskReleased",id:e})}async function A(e,t,a){let r=oe.get(e);r||(r=new Map,oe.set(e,r));let n=r.get(t);if(n)return n;let l;try{l=await e.compileScript(t,{filename:a})}catch(s){throw s&&typeof s=="object"&&(s.executionStage="compile"),s}if(r.set(t,l),r.size>Ae){let s=r.keys().next().value;r.delete(s)}return l}C.on("message",async e=>{if(e.type==="execute")ze(e).catch(async t=>{await U({type:"result",id:e.id,success:!1,error:{message:t.message,stack:t.stack}})});else if(e.type==="executeBatch")Xe(e).catch(async t=>{await U({type:"result",id:e.id,success:!1,error:{message:t.message,stack:t.stack}})});else if(e.type==="invokeRuntimeCallback")je(e).catch(t=>{C.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"&&Ie(e.id)});async function je(e){let t=D.get(e.id);if(!t){C.postMessage({type:"runtimeCallbackResult",callId:e.callId,error:`Runtime callback context not found: ${e.id}`});return}let a=await t.evalClosure(`return __invokeRuntimeCallback(${JSON.stringify(e.callbackId)}, ${JSON.stringify(e.argsJson||"[]")});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}}),r=JSON.parse(a);C.postMessage({type:"runtimeCallbackResult",callId:e.callId,...r})}function j(e,t,a){return new Promise((r,n)=>{let l=`cb_${++de}`;q.set(l,{resolve:r,reject:n}),C.postMessage({type:t,id:e,callId:l,...a})})}function Ue(e,t,a){C.postMessage({type:t,id:e,callId:`f_${++de}`,...a})}async function He(e,t){if(t?.method!=="stream")return j(e,"resCall",t);let a=JSON.parse(t.argsJson||"[]"),r=a[0],n=a[1]||{},l=r?.__pkgHandleArg;if(!l)return j(e,"resCall",t);let s=n.observer&&typeof n.observer=="object"?n.observer.__fnRef:null,y=n.transform&&typeof n.transform=="object"?n.transform.__fnRef:null,p=s||y?new TextDecoder("utf-8"):null;delete n.observer,delete n.transform;let k={...n};await j(e,"resCall",{method:"streamStart",argsJson:JSON.stringify([null,k])});let w=async(d,v,h)=>{if(!d)return;let b=D.get(e);if(!b)return;let R=await b.evalClosure(`return __invokeRuntimeCallback(${JSON.stringify(d)}, ${JSON.stringify(JSON.stringify([v,h]))});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}}),S=JSON.parse(R);if(S?.error)throw new Error(S.error);if(S?.value?.__e!=="u")return S?.value},P=async(d,v)=>{if(s)try{await w(s,d,v)}catch{}},u=async(d,v,h)=>{let b=d;if(y){let S=await w(y,h,v);if(S===null)return;S!==void 0&&(b=Buffer.from(String(S)))}let R=Buffer.from(b);R.length!==0&&await j(e,"resCall",{method:"streamChunk",chunk:R.toString("base64")})};try{await F.streamPackageHandle(e,l,async v=>{let h="";try{h=p?p.decode(Buffer.from(v),{stream:!0}):""}catch{}await P(h,"chunk"),await u(v,"chunk",h)},[],B(e));let d="";try{d=p?p.decode():""}catch{}await P(d,"end"),await u("","end",d),await j(e,"resCall",{method:"streamEnd"})}catch(d){try{await j(e,"resCall",{method:"streamError",error:{message:d.message,stack:d.stack}})}catch{}throw await P("","error"),d}return JSON.stringify({__e:"u"})}function Le(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=$e(e.fileUrl)),!t||!se.existsSync(t)?null:se.readFileSync(t,"utf8")}async function Fe(e,t,a){try{let r=Le(a);if(!r)return null;let n=await e.compileModule(r,{filename:`pkg:${a.safeName}`});await n.instantiate(t,s=>{throw new Error(`Unresolved import in package ${a.safeName}: ${s}`)}),await n.evaluate({timeout:1e4});let l=await n.namespace.get("default");return l!==void 0&&l.typeof!=="undefined"?l.derefInto({release:!1}):n.namespace.derefInto({release:!1})}catch{return null}}function ye(e,t){let a=n=>{let l=2166136261;for(let s=0;s<n.length;s++)l^=n.charCodeAt(s),l=Math.imul(l,16777619);return(l>>>0).toString(36)},r=new Set(t||[]);return e.map(n=>{let l=n.cacheKey||`${n.filePath||""}:${n.fileUrl||""}:${n.mtimeMs||""}:${n.size||""}:${a(n.sourceCode||"")}`,s=r.has(n.name)?"isolate":"proxy";return`${n.name}:${n.version||""}:${l}:${s}`}).join("|")}function he(e,t){let a=new Set(t.map(p=>p.name)),r=new Set,n=String(e||""),l=/\b(?:\$ctx\.)?\$pkgs\s*\[\s*(['"`])([^'"`]+)\1\s*\]/g,s=/\brequire\s*\(\s*(['"`])([^'"`]+)\1\s*\)/g,y=/\b(?:\$ctx\.)?\$pkgs\.([A-Za-z_$][\w$]*)/g;for(let p of[l,s])for(let k of n.matchAll(p)){let w=k[2];a.has(w)&&r.add(w)}for(let p of n.matchAll(y)){let k=p[1];a.has(k)&&r.add(k)}return r}async function De(e,t,a,r){let n=await e.createContext(),l=n.global;await l.set("global",l.derefInto());let s=[],y=[],p=new Map;for(let u of a){p.set(u.name,u);let d=r.has(u.name)?await Fe(e,n,u):null;d!==null?(await l.set(`__pkg_${u.safeName}`,d),s.push(u)):y.push(u)}F.setTaskPackages(t,p),await l.set("__callRef",new V.Reference(async(u,d,v)=>{let h=JSON.parse(v);if(d==="pkgCall")try{return JSON.stringify(await F.executePackageRuntimeCall(u,h))}catch(b){throw new Error(JSON.stringify({__userThrow:!0,message:b.message,code:b.code,details:b.details}))}return d==="resCall"?He(u,h):j(u,d,h)})),await l.set("__fireRef",new V.Reference((u,d,v)=>{let h=JSON.parse(v);Ue(u,d,h)}));let k=s.map(u=>`$pkgs[${JSON.stringify(u.name)}] = __pkg_${u.safeName};`).concat(y.map(u=>`$pkgs[${JSON.stringify(u.name)}] = __createPkgProxy(${JSON.stringify(u.name)}, []);`)).join(`
|
|
953
|
+
`),w=Te(k);return await(await A(e,w,"setup.js")).run(n,{timeout:B(t)}),fe.set(n,ye(a,r)),pe.set(n,p),n}async function me(e,t,a,r,n,l,s){let y=e.isolate,p=ye(a,n),k=null;for(let u=e.idleContexts.length-1;u>=0;u--){let d=e.idleContexts[u];if(e.idleContexts.splice(u,1),fe.get(d)===p){k=d,K.reused++;break}try{d.release()}catch{}}k||(k=await De(y,t,a,n),K.created++),F.setTaskPackages(t,pe.get(k)||new Map);let w=k.global;return await w.set("__snapshot",new V.ExternalCopy(r).copyInto()),await w.set("__nextTaskId",t),await w.set("__nextTaskTimeoutMs",l),await w.set("__nextTaskDeadlineMs",s),await(await A(y,"__resetTask(__snapshot, __nextTaskId, __nextTaskTimeoutMs, __nextTaskDeadlineMs);","reset-task.js")).run(k,{timeout:B(t)}),k}async function ke(e,t){if(!(!t||e.isolate.isDisposed)){try{await(await A(e.isolate,"__cleanupTask();","cleanup-task.js")).run(t,{timeout:5e3})}catch{K.scrubFailed++;try{t.release()}catch{}return}if(e.idleContexts.length>=Ee){try{t.release()}catch{}K.evicted++;return}e.idleContexts.push(t),K.released++}}function Ke(e){try{let t=JSON.parse(e.message);if(t&&t.__userThrow)return{...t,message:t.message??e.message}}catch{}return null}var Be=3,qe=["setup.js","extract.js","extract-error-ctx.js","set-status.js","populate-error.js"];function Ve(e){if(!e)return null;let t=e.split(`
|
|
954
|
+
`);for(let a of t){let r=a.match(/at\s+(.+\.js):(\d+):(\d+)/);if(!r)continue;let n=r[1].trim();if(qe.includes(n)||n!=="handler.js"&&!n.startsWith("preHook #")&&!n.startsWith("postHook #"))continue;let s=parseInt(r[2])-Be;if(!(s<=0))return{line:s,column:parseInt(r[3]),phase:n.replace(".js","")}}return null}function Ge(e,t,a){if(!e||!t)return;let r=String(e).split(/\r?\n/),n=Math.max(1,t-1),l=Math.min(r.length,t+1),s=String(l).length,y=[];for(let p=n;p<=l;p++){let k=p===t?">":" ";y.push(`${k} ${String(p).padStart(s," ")}. ${r[p-1]??""}`),p===t&&a&&a>0&&y.push(` ${" ".repeat(s)} ${" ".repeat(Math.max(0,a-1))}^`)}return y.join(`
|
|
955
|
+
`)}function We(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 Q(e,t){let a=Ke(e);if(a)return{message:a.message,statusCode:a.statusCode,errorPath:a.errorPath,code:a.code,details:a.details};let r=Ve(e.stack),n=e.message||"Unknown error",l=r?`${n} (${r.phase}, line ${r.line})`:n,s=We(r,t),y=r?Ge(s,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 W(e){return e?.message==="Script execution timed out."}function we(e){return e?.message==="Isolate was disposed during execution due to memory limit"}function ve(e){W(e)&&e?.code==null&&(e.code="ERR_SCRIPT_EXECUTION_TIMEOUT"),we(e)&&e?.code==null&&(e.code="ERR_ISOLATE_MEMORY_LIMIT",e.details={outcome:"unknown_outcome",retryable:!1})}async function z(e,t,a){ve(t);let r=Q(t,a);t.details&&(r.details={...r.details,...t.details}),await U({type:"result",id:e,success:!1,error:{...r,stack:t.stack,code:r.code??t.code}})}async function ze(e){let{id:t,code:a,pkgSources:r,snapshot:n,memoryLimitMb:l,isolatePoolSize:s}=e,y={handler:e.sourceCode||a||""},p=r||[],k=Math.max(1,Math.trunc(Number(e.timeoutMs)||3e4)),w=Date.now()+k;L.set(t,w);let P=he(a,p),u=_e(l,s);u.taskId=t,H.set(t,u);let d=u.isolate,v;try{v=await me(u,t,p,n,P,k,w)}catch(h){L.delete(t),H.delete(t),u.taskId=null,X(t),await z(t,h,y),C.postMessage({type:"taskReleased",id:t});return}D.set(t,v);try{let h=`
|
|
956
956
|
(async () => {
|
|
957
957
|
"use strict";
|
|
958
|
-
${
|
|
958
|
+
${a}
|
|
959
959
|
})().then((__result) => __extractResult(__result, __result === undefined));
|
|
960
|
-
`,
|
|
961
|
-
`),
|
|
960
|
+
`,R=await(await A(d,h,"handler.js")).run(v,{timeout:B(t),promise:!0}),S=JSON.parse(R);await U({type:"result",id:t,success:!0,...S})}catch(h){if(await z(t,h,y),W(h))try{d.dispose()}catch{}}finally{await ke(u,v),ge(t,u)}}async function Xe(e){let{id:t,codeBlocks:a,pkgSources:r,snapshot:n,memoryLimitMb:l,isolatePoolSize:s}=e,y=r||[],p=Math.max(1,Math.trunc(Number(e.timeoutMs)||3e4)),k=Date.now()+p;L.set(t,k);let w=he((a||[]).map(_=>_.code||"").join(`
|
|
961
|
+
`),y),P=_e(l,s);P.taskId=t,H.set(t,P);let u=P.isolate,d;try{d=await me(P,t,y,n,w,p,k)}catch(_){L.delete(t),H.delete(t),P.taskId=null,X(t),await z(t,_),C.postMessage({type:"taskReleased",id:t});return}D.set(t,d);let v=[],h=[],b={},R=0,S=0;for(let _ of a){let O=_.type||"handler",g=_.sourceCode||_.code||"";O==="postHook"?(S++,b[`postHook #${S}`]=g,b.postHook=g,h.push(_)):(O==="handler"?b.handler=g:(R++,b[`${O} #${R}`]=g,b.preHook=g),v.push(_))}try{let _=null;for(let g=0;g<v.length;g++){let x=v[g],$=x.type||"handler",J=$==="handler"?"handler":`${$} #${g+1}`,c;$==="preHook"?c=`
|
|
962
962
|
(async () => {
|
|
963
963
|
"use strict";
|
|
964
|
-
${
|
|
964
|
+
${x.code}
|
|
965
965
|
})().then((__r) => {
|
|
966
966
|
if (__r !== undefined) return JSON.stringify({ __shortCircuit: true, value: __r });
|
|
967
967
|
return JSON.stringify({ __shortCircuit: false });
|
|
968
|
-
});`:
|
|
968
|
+
});`:c=`
|
|
969
969
|
(async () => {
|
|
970
970
|
"use strict";
|
|
971
|
-
${
|
|
971
|
+
${x.code}
|
|
972
972
|
})().then((__r) => {
|
|
973
973
|
$ctx.$data = __r;
|
|
974
974
|
return "__handler_done__";
|
|
975
|
-
});`;try{let
|
|
976
|
-
$ctx.$error = ${JSON.stringify(
|
|
975
|
+
});`;try{let i=await(await A(u,c,`${J}.js`)).run(d,{timeout:B(t),promise:!0});if($==="preHook"&&typeof i=="string"){let f=JSON.parse(i);if(f.__shortCircuit){let m=await ue(u,d,f.value);await U({type:"result",id:t,success:!0,...m,shortCircuit:!0});return}}}catch(o){_=o;break}}if(!_&&h.length>0&&await(await A(u,'$ctx.$statusCode = 200; "__status_set__";',"set-status.js")).run(d,{timeout:5e3}),_&&h.length>0){let g=Q(_,b),x={message:g.message||"Unknown error",name:_.constructor?.name||"Error",stack:_.stack||"",statusCode:g.statusCode||500,details:g.details||{},timestamp:new Date().toISOString()},$=`
|
|
976
|
+
$ctx.$error = ${JSON.stringify(x)};
|
|
977
977
|
$ctx.$data = null;
|
|
978
|
-
$ctx.$statusCode = ${
|
|
978
|
+
$ctx.$statusCode = ${x.statusCode};
|
|
979
979
|
if ($ctx.$api) {
|
|
980
|
-
$ctx.$api.error = ${JSON.stringify(
|
|
980
|
+
$ctx.$api.error = ${JSON.stringify(x)};
|
|
981
981
|
$ctx.$api.response = {
|
|
982
|
-
statusCode: ${
|
|
982
|
+
statusCode: ${x.statusCode},
|
|
983
983
|
responseTime: $ctx.$api.request && $ctx.$api.request.timestamp
|
|
984
984
|
? Date.now() - new Date($ctx.$api.request.timestamp).getTime()
|
|
985
985
|
: 0,
|
|
986
|
-
timestamp: ${JSON.stringify(
|
|
986
|
+
timestamp: ${JSON.stringify(x.timestamp)},
|
|
987
987
|
};
|
|
988
988
|
}
|
|
989
|
-
"__error_populated__";`;await(await
|
|
989
|
+
"__error_populated__";`;await(await u.compileScript($,{filename:"populate-error.js"})).run(d,{timeout:5e3})}for(let g=0;g<h.length;g++){let x=h[g],$=`postHook #${g+1}`,J=`
|
|
990
990
|
(async () => {
|
|
991
991
|
"use strict";
|
|
992
|
-
${
|
|
992
|
+
${x.code}
|
|
993
993
|
})().then((__r) => {
|
|
994
994
|
if (__r !== undefined) $ctx.$data = __r;
|
|
995
995
|
return "__posthook_done__";
|
|
996
|
-
});`;try{await(await
|
|
996
|
+
});`;try{await(await A(u,J,`${$}.js`)).run(d,{timeout:B(t),promise:!0})}catch{}}if(_){ve(_);let g=Q(_,b);_.details&&(g.details={...g.details,..._.details});let x;try{let c=await(await A(u,"(async () => JSON.stringify(await __extractCtxChanges()))()","extract-error-ctx.js")).run(d,{timeout:5e3,promise:!0});x=JSON.parse(c)}catch{}if(await U({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}),W(_)||we(_))try{u.dispose()}catch{}return}let O=await ue(u,d);await U({type:"result",id:t,success:!0,...O})}catch(_){if(await z(t,_),W(_))try{u.dispose()}catch{}}finally{await ke(P,d),ge(t,P)}}function X(e){F.cleanupTaskPackages(e)}function Ye(){F.shutdownPackageRuntime()}process.on("exit",Ye);async function ue(e,t,a){if(a!==void 0){let s=`__extractResult(${JSON.stringify(a)}, false)`,p=await(await e.compileScript(s,{filename:"extract.js"})).run(t,{timeout:5e3,promise:!0});return JSON.parse(p)}let l=await(await A(e,"__extractResult($ctx.$data, $ctx.$data === undefined)","extract.js")).run(t,{timeout:5e3,promise:!0});return JSON.parse(l)}
|