@enfyra/kernel 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/execution/worker.js +55 -30
- package/dist/package-metadata.json +1 -1
- package/package.json +1 -1
package/dist/execution/worker.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var U=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var F=U((Ee,H)=>{"use strict";var{fork:se}=require("child_process"),oe=require("path");function ie({workerDir:e,activeTaskContexts:t}){let n=new Map,a=new Map,r=null,o=0;function c(
|
|
1
|
+
"use strict";var U=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var F=U((Ee,H)=>{"use strict";var{fork:se}=require("child_process"),oe=require("path");function ie({workerDir:e,activeTaskContexts:t}){let n=new Map,a=new Map,r=null,o=0;function c(f){for(let i of a.values())i.reject(f);a.clear()}function _(f){let i=typeof f=="string"?JSON.parse(f):f;if(i?.error)throw new Error(i.error);return i?.value}async function p(f){let i=t.get(f.taskId);if(!i)throw new Error(`Package callback context not found: ${f.taskId}`);let s=JSON.stringify(f.callbackId),g=JSON.stringify(f.argsJson||"[]"),u=await i.evalClosure(`return __invokeRuntimeCallback(${s}, ${g});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}});return _(u)}function v(){if(r&&r.connected)return r;let f=oe.join(e,"package-runtime.child.js"),i=se(f,[],{stdio:["ignore","ignore","ignore","ipc"]});return r=i,i.on("message",s=>{if(!s||!s.id)return;if(s.type==="pkgCallbackCall"){p(s).then(u=>{try{i.send({type:"pkgCallbackResult",id:s.id,value:u})}catch{}}).catch(u=>{try{i.send({type:"pkgCallbackError",id:s.id,error:{message:u.message,stack:u.stack}})}catch{}});return}let g=a.get(s.id);if(g)if(a.delete(s.id),s.ok)g.resolve(s.value);else{let u=new Error(s.error?.message||"Package runtime call failed");u.stack=s.error?.stack||u.stack,g.reject(u)}}),i.on("exit",(s,g)=>{r===i&&(r=null),c(new Error(`Package runtime exited${g?` with signal ${g}`:` with code ${s}`}`))}),i.on("error",s=>{r===i&&(r=null),c(s)}),i}function d(f){return new Promise((i,s)=>{let g=v(),u=`pkg_${++o}`;a.set(u,{resolve:i,reject:s});try{g.send({...f,id:u},y=>{y&&(a.delete(u),s(y))})}catch(y){a.delete(u),s(y)}})}function m(f){try{if(!r||!r.connected)return;r.send({...f,id:`pkg_${++o}`,fire:!0})}catch{}}async function l(f,i){let s=n.get(f);if(!s)throw new Error("Package context is not available");if(i.handleId)return d({op:i.kind==="get"?"handleGet":"handleCall",taskId:f,handleId:i.handleId,path:i.path||[],argsJson:i.argsJson||"[]"});let g=s.get(i.packageName);if(!g)throw new Error(`Package "${i.packageName}" is not available`);return d({op:i.kind==="construct"?"construct":"call",taskId:f,packageName:i.packageName,package:{name:g.name,fileUrl:g.fileUrl},path:i.path||[],argsJson:i.argsJson||"[]"})}function h(f,i){n.set(f,i)}function w(f){n.delete(f),m({op:"releaseTask",taskId:f})}function k(){if(r){try{r.kill()}catch{}r=null}}return{cleanupTaskPackages:w,executePackageRuntimeCall:l,setTaskPackages:h,shutdownPackageRuntime:k}}H.exports={createPackageRuntimeBridge:ie}});var K=U((je,L)=>{"use strict";var ce=`
|
|
2
2
|
"use strict";
|
|
3
3
|
let $ctx = {};
|
|
4
4
|
let $pkgs = {};
|
|
@@ -194,29 +194,54 @@ async function __invokeRuntimeCallback(id, argsJson) {
|
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
196
|
|
|
197
|
-
function __safeClone(v) {
|
|
197
|
+
async function __safeClone(v) {
|
|
198
198
|
if (v === undefined) return undefined;
|
|
199
|
-
try {
|
|
199
|
+
try {
|
|
200
|
+
if (v && typeof v.then === 'function') {
|
|
201
|
+
return await __safeClone(await v);
|
|
202
|
+
}
|
|
203
|
+
if (v instanceof Date) return v.toISOString();
|
|
204
|
+
if (v instanceof Set) {
|
|
205
|
+
const out = [];
|
|
206
|
+
for (const item of v.values()) out.push(await __safeClone(item));
|
|
207
|
+
return out;
|
|
208
|
+
}
|
|
209
|
+
if (v instanceof Map) {
|
|
210
|
+
const out = {};
|
|
211
|
+
for (const [key, item] of v.entries()) out[String(key)] = await __safeClone(item);
|
|
212
|
+
return out;
|
|
213
|
+
}
|
|
214
|
+
if (Array.isArray(v)) return Promise.all(v.map(__safeClone));
|
|
215
|
+
if (v && typeof v === 'object') {
|
|
216
|
+
const out = {};
|
|
217
|
+
for (const key of Object.keys(v)) out[key] = await __safeClone(v[key]);
|
|
218
|
+
return out;
|
|
219
|
+
}
|
|
220
|
+
if (typeof v === 'function' && v.__pkgHandlePromise) {
|
|
221
|
+
return undefined;
|
|
222
|
+
}
|
|
223
|
+
return JSON.parse(JSON.stringify(v));
|
|
224
|
+
}
|
|
200
225
|
catch { return null; }
|
|
201
226
|
}
|
|
202
227
|
|
|
203
|
-
function __extractResult(result, isAbsent) {
|
|
228
|
+
async function __extractResult(result, isAbsent) {
|
|
204
229
|
const valueAbsent = isAbsent === true;
|
|
205
230
|
const out = {
|
|
206
231
|
valueAbsent,
|
|
207
232
|
ctxChanges: {
|
|
208
|
-
$body: __safeClone($ctx.$body),
|
|
209
|
-
$query: __safeClone($ctx.$query),
|
|
210
|
-
$params: __safeClone($ctx.$params),
|
|
211
|
-
$data: __safeClone($ctx.$data),
|
|
212
|
-
$share: __safeClone($ctx.$share),
|
|
213
|
-
$flow: __safeClone($ctx.$flow),
|
|
214
|
-
$error: __safeClone($ctx.$error),
|
|
215
|
-
$api: __safeClone($ctx.$api),
|
|
233
|
+
$body: await __safeClone($ctx.$body),
|
|
234
|
+
$query: await __safeClone($ctx.$query),
|
|
235
|
+
$params: await __safeClone($ctx.$params),
|
|
236
|
+
$data: await __safeClone($ctx.$data),
|
|
237
|
+
$share: await __safeClone($ctx.$share),
|
|
238
|
+
$flow: await __safeClone($ctx.$flow),
|
|
239
|
+
$error: await __safeClone($ctx.$error),
|
|
240
|
+
$api: await __safeClone($ctx.$api),
|
|
216
241
|
$statusCode: $ctx.$statusCode,
|
|
217
242
|
}
|
|
218
243
|
};
|
|
219
|
-
if (!valueAbsent) out.value = __safeClone(result);
|
|
244
|
+
if (!valueAbsent) out.value = await __safeClone(result);
|
|
220
245
|
return JSON.stringify(out);
|
|
221
246
|
}
|
|
222
247
|
|
|
@@ -626,16 +651,16 @@ function __cleanupTask() {
|
|
|
626
651
|
__runtimeCallbacks = new Map();
|
|
627
652
|
return true;
|
|
628
653
|
}
|
|
629
|
-
`;function le(e){return ce.replace("%%PKG_SETUP%%",e)}L.exports={buildSetupCode:le}});var{parentPort:O}=require("worker_threads"),D=require("fs"),{fileURLToPath:ue}=require("url"),{createPackageRuntimeBridge:
|
|
630
|
-
`),d=
|
|
631
|
-
`);for(let n of t){let a=n.match(/at\s+(.+\.js):(\d+):(\d+)/);if(!a)continue;let r=a[1].trim();if(be.includes(r))continue;let c=parseInt(a[2])-Se;if(!(c<=0))return{line:c,column:parseInt(a[3]),phase:r.replace(".js","")}}return null}function Re(e,t,n){if(!e||!t)return;let a=String(e).split(/\r?\n/),r=Math.max(1,t-1),o=Math.min(a.length,t+1),c=String(o).length,_=[];for(let
|
|
632
|
-
`)}function Ae(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 E(e,t){let n=$e(e);if(n)return{message:n.message,statusCode:n.statusCode,details:n.details};let a=Ce(e.stack),r=e.message||"Unknown error",o=a?`${r} (${a.phase}, line ${a.line})`:r,c=Ae(a,t),_=a?Re(c,a.line,a.column):void 0;return{message:o,statusCode:e.statusCode||null,details:a?{...a,codeFrame:_}:void 0}}async function re(e,t){let n=E(t);await b({type:"result",id:e,success:!1,error:{...n,stack:t.stack,code:t.code}})}async function Ne(e){let{id:t,code:n,pkgSources:a,snapshot:r,memoryLimitMb:o,isolatePoolSize:c}=e,_=a||[],
|
|
654
|
+
`;function le(e){return ce.replace("%%PKG_SETUP%%",e)}L.exports={buildSetupCode:le}});var{parentPort:O}=require("worker_threads"),D=require("fs"),{fileURLToPath:ue}=require("url"),{createPackageRuntimeBridge:fe}=F(),{buildSetupCode:pe}=K(),N;try{N=require("isolated-vm")}catch(e){O.postMessage({type:"error",message:"isolated-vm not available: "+e.message}),process.exit(1)}var A=new Map,W=0,J=new Map,M=fe({workerDir:__dirname,activeTaskContexts:J}),_e=500,de=5e3,ge=32,q=new WeakMap,G=new WeakMap,X=new WeakMap,C={created:0,reused:0,released:0,evicted:0,scrubFailed:0},x=null,ye=0,B=0,V=0;async function he(){let e=Date.now();if(e-B<de)return V;if(B=e,!x)return 0;let t=0;for(let n of x){let a=n?.isolate;if(!(!a||a.isDisposed))try{let r=await a.getHeapStatistics(),o=r.heap_size_limit||1,c=r.used_heap_size/o;c>t&&(t=c)}catch{}}return V=t,t}async function b(e){e.heapRatio=await he(),e.contextStats=me(),O.postMessage(e)}function me(){let e=0;if(x)for(let t of x)e+=t?.idleContexts?.length||0;return{...C,idle:e}}function Z(e,t){if(!x){let r=Math.max(1,Math.trunc(Number(t)||8));x=new Array(r).fill(null)}let n=ye++%x.length,a=x[n];return(!a||!a.isolate||a.isolate.isDisposed)&&(a={isolate:new N.Isolate({memoryLimit:e}),idleContexts:[]},x[n]=a),a}async function $(e,t,n){let a=q.get(e);a||(a=new Map,q.set(e,a));let r=a.get(t);if(r)return r;let o=await e.compileScript(t,{filename:n});if(a.set(t,o),a.size>_e){let c=a.keys().next().value;a.delete(c)}return o}O.on("message",async e=>{if(e.type==="execute")Ne(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")Je(e).catch(async t=>{await b({type:"result",id:e.id,success:!1,error:{message:t.message,stack:t.stack}})});else if(e.type==="callResult"){let t=A.get(e.callId);t&&(A.delete(e.callId),t.resolve(e.result))}else if(e.type==="callError"){let t=A.get(e.callId);t&&(A.delete(e.callId),t.reject(new Error(e.error)))}});function ke(e,t,n){return new Promise((a,r)=>{let o=`cb_${++W}`;A.set(o,{resolve:a,reject:r}),O.postMessage({type:t,id:e,callId:o,...n})})}function ve(e,t,n){O.postMessage({type:t,id:e,callId:`f_${++W}`,...n})}function we(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=ue(e.fileUrl)),!t||!D.existsSync(t)?null:D.readFileSync(t,"utf8")}async function Pe(e,t,n){try{let a=we(n);if(!a)return null;let r=await e.compileModule(a,{filename:`pkg:${n.safeName}`});await r.instantiate(t,c=>{throw new Error(`Unresolved import in package ${n.safeName}: ${c}`)}),await r.evaluate({timeout:1e4});let o=await r.namespace.get("default");return o!==void 0&&o.typeof!=="undefined"?o.derefInto({release:!1}):r.namespace.derefInto({release:!1})}catch{return null}}function Q(e,t){let n=r=>{let o=2166136261;for(let c=0;c<r.length;c++)o^=r.charCodeAt(c),o=Math.imul(o,16777619);return(o>>>0).toString(36)},a=new Set(t||[]);return e.map(r=>{let o=r.cacheKey||`${r.filePath||""}:${r.fileUrl||""}:${r.mtimeMs||""}:${r.size||""}:${n(r.sourceCode||"")}`,c=a.has(r.name)?"isolate":"proxy";return`${r.name}:${r.version||""}:${o}:${c}`}).join("|")}function Y(e,t){let n=new Set(t.map(p=>p.name)),a=new Set,r=String(e||""),o=/\b(?:\$ctx\.)?\$pkgs\s*\[\s*(['"`])([^'"`]+)\1\s*\]/g,c=/\brequire\s*\(\s*(['"`])([^'"`]+)\1\s*\)/g,_=/\b(?:\$ctx\.)?\$pkgs\.([A-Za-z_$][\w$]*)/g;for(let p of[o,c])for(let v of r.matchAll(p)){let d=v[2];n.has(d)&&a.add(d)}for(let p of r.matchAll(_)){let v=p[1];n.has(v)&&a.add(v)}return a}async function xe(e,t,n,a){let r=await e.createContext(),o=r.global;await o.set("global",o.derefInto());let c=[],_=[],p=new Map;for(let l of n){p.set(l.name,l);let h=a.has(l.name)?await Pe(e,r,l):null;h!==null?(await o.set(`__pkg_${l.safeName}`,h),c.push(l)):_.push(l)}M.setTaskPackages(t,p),await o.set("__callRef",new N.Reference(async(l,h,w)=>{let k=JSON.parse(w);return h==="pkgCall"?JSON.stringify(await M.executePackageRuntimeCall(l,k)):ke(l,h,k)})),await o.set("__fireRef",new N.Reference((l,h,w)=>{let k=JSON.parse(w);ve(l,h,k)}));let v=c.map(l=>`$pkgs[${JSON.stringify(l.name)}] = __pkg_${l.safeName};`).concat(_.map(l=>`$pkgs[${JSON.stringify(l.name)}] = __createPkgProxy(${JSON.stringify(l.name)}, []);`)).join(`
|
|
655
|
+
`),d=pe(v);return await(await $(e,d,"setup.js")).run(r,{timeout:5e3}),G.set(r,Q(n,a)),X.set(r,p),r}async function ee(e,t,n,a,r){let o=e.isolate,c=Q(n,r),_=null;for(let d=e.idleContexts.length-1;d>=0;d--){let m=e.idleContexts[d];if(e.idleContexts.splice(d,1),G.get(m)===c){_=m,C.reused++;break}try{m.release()}catch{}}_||(_=await xe(o,t,n,r),C.created++),M.setTaskPackages(t,X.get(_)||new Map);let p=_.global;return await p.set("__snapshot",new N.ExternalCopy(a).copyInto()),await p.set("__nextTaskId",t),await(await $(o,"__resetTask(__snapshot, __nextTaskId);","reset-task.js")).run(_,{timeout:5e3}),_}async function te(e,t){if(!(!t||e.isolate.isDisposed)){try{await(await $(e.isolate,"__cleanupTask();","cleanup-task.js")).run(t,{timeout:5e3})}catch{C.scrubFailed++;try{t.release()}catch{}return}if(e.idleContexts.length>=ge){try{t.release()}catch{}C.evicted++;return}e.idleContexts.push(t),C.released++}}function $e(e){try{let t=JSON.parse(e.message);if(t&&t.__userThrow)return{...t,message:t.message??e.message}}catch{}return null}var Se=3,be=["setup.js","extract.js","extract-error-ctx.js","set-status.js","populate-error.js"];function Ce(e){if(!e)return null;let t=e.split(`
|
|
656
|
+
`);for(let n of t){let a=n.match(/at\s+(.+\.js):(\d+):(\d+)/);if(!a)continue;let r=a[1].trim();if(be.includes(r))continue;let c=parseInt(a[2])-Se;if(!(c<=0))return{line:c,column:parseInt(a[3]),phase:r.replace(".js","")}}return null}function Re(e,t,n){if(!e||!t)return;let a=String(e).split(/\r?\n/),r=Math.max(1,t-1),o=Math.min(a.length,t+1),c=String(o).length,_=[];for(let p=r;p<=o;p++){let v=p===t?">":" ";_.push(`${v} ${String(p).padStart(c," ")}. ${a[p-1]??""}`),p===t&&n&&n>0&&_.push(` ${" ".repeat(c)} ${" ".repeat(Math.max(0,n-1))}^`)}return _.join(`
|
|
657
|
+
`)}function Ae(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 E(e,t){let n=$e(e);if(n)return{message:n.message,statusCode:n.statusCode,details:n.details};let a=Ce(e.stack),r=e.message||"Unknown error",o=a?`${r} (${a.phase}, line ${a.line})`:r,c=Ae(a,t),_=a?Re(c,a.line,a.column):void 0;return{message:o,statusCode:e.statusCode||null,details:a?{...a,codeFrame:_}:void 0}}async function re(e,t){let n=E(t);await b({type:"result",id:e,success:!1,error:{...n,stack:t.stack,code:t.code}})}async function Ne(e){let{id:t,code:n,pkgSources:a,snapshot:r,memoryLimitMb:o,isolatePoolSize:c}=e,_=a||[],p=Math.max(1,Math.trunc(Number(e.timeoutMs)||3e4)),v=Y(n,_),d=Z(o,c),m=d.isolate,l=await ee(d,t,_,r,v);J.set(t,l);try{let h=`
|
|
633
658
|
(async () => {
|
|
634
659
|
"use strict";
|
|
635
660
|
${n}
|
|
636
661
|
})().then((__result) => __extractResult(__result, __result === undefined));
|
|
637
|
-
`,k=await(await $(m,h,"handler.js")).run(l,{timeout:
|
|
638
|
-
`),_),d=Z(o,c),m=d.isolate,l=await ee(d,t,_,r,v);J.set(t,l);let h=[],w=[],k={},
|
|
662
|
+
`,k=await(await $(m,h,"handler.js")).run(l,{timeout:p,promise:!0}),f=JSON.parse(k);await b({type:"result",id:t,success:!0,...f})}catch(h){await re(t,h)}finally{J.delete(t),await te(d,l),ae(t)}}async function Je(e){let{id:t,codeBlocks:n,pkgSources:a,snapshot:r,memoryLimitMb:o,isolatePoolSize:c}=e,_=a||[],p=Math.max(1,Math.trunc(Number(e.timeoutMs)||3e4)),v=Y((n||[]).map(s=>s.code||"").join(`
|
|
663
|
+
`),_),d=Z(o,c),m=d.isolate,l=await ee(d,t,_,r,v);J.set(t,l);let h=[],w=[],k={},f=0,i=0;for(let s of n){let g=s.type||"handler";g==="postHook"?(i++,k[`postHook #${i}`]=s.code||"",k.postHook=s.code||"",w.push(s)):(g==="handler"?k.handler=s.code||"":(f++,k[`${g} #${f}`]=s.code||"",k.preHook=s.code||""),h.push(s))}try{let s=null;for(let u=0;u<h.length;u++){let y=h[u],P=y.type||"handler",R=P==="handler"?"handler":`${P} #${u+1}`,S;P==="preHook"?S=`
|
|
639
664
|
(async () => {
|
|
640
665
|
"use strict";
|
|
641
666
|
${y.code}
|
|
@@ -649,7 +674,7 @@ function __cleanupTask() {
|
|
|
649
674
|
})().then((__r) => {
|
|
650
675
|
$ctx.$data = __r;
|
|
651
676
|
return "__handler_done__";
|
|
652
|
-
});`;try{let
|
|
677
|
+
});`;try{let T=await(await $(m,S,`${R}.js`)).run(l,{timeout:p,promise:!0});if(P==="preHook"&&typeof T=="string"){let I=JSON.parse(T);if(I.__shortCircuit){let ne=await z(m,l,I.value);await b({type:"result",id:t,success:!0,...ne,shortCircuit:!0});return}}}catch(j){s=j;break}}if(!s&&w.length>0&&await(await $(m,'$ctx.$statusCode = 200; "__status_set__";',"set-status.js")).run(l,{timeout:5e3}),s&&w.length>0){let u=E(s,k),y={message:u.message||"Unknown error",name:s.constructor?.name||"Error",stack:s.stack||"",statusCode:u.statusCode||500,details:u.details||{},timestamp:new Date().toISOString()},P=`
|
|
653
678
|
$ctx.$error = ${JSON.stringify(y)};
|
|
654
679
|
$ctx.$data = null;
|
|
655
680
|
$ctx.$statusCode = ${y.statusCode};
|
|
@@ -670,14 +695,14 @@ if ($ctx.$api) {
|
|
|
670
695
|
})().then((__r) => {
|
|
671
696
|
if (__r !== undefined) $ctx.$data = __r;
|
|
672
697
|
return "__posthook_done__";
|
|
673
|
-
});`;try{await(await $(m,R,`${P}.js`)).run(l,{timeout:
|
|
674
|
-
$body: __safeClone($ctx.$body),
|
|
675
|
-
$query: __safeClone($ctx.$query),
|
|
676
|
-
$params: __safeClone($ctx.$params),
|
|
677
|
-
$data: __safeClone($ctx.$data),
|
|
678
|
-
$share: __safeClone($ctx.$share),
|
|
679
|
-
$flow: __safeClone($ctx.$flow),
|
|
680
|
-
$error: __safeClone($ctx.$error),
|
|
681
|
-
$api: __safeClone($ctx.$api),
|
|
698
|
+
});`;try{await(await $(m,R,`${P}.js`)).run(l,{timeout:p,promise:!0})}catch{}}if(s){let u=E(s,k),y;try{let S=await(await $(m,`(async () => JSON.stringify({
|
|
699
|
+
$body: await __safeClone($ctx.$body),
|
|
700
|
+
$query: await __safeClone($ctx.$query),
|
|
701
|
+
$params: await __safeClone($ctx.$params),
|
|
702
|
+
$data: await __safeClone($ctx.$data),
|
|
703
|
+
$share: await __safeClone($ctx.$share),
|
|
704
|
+
$flow: await __safeClone($ctx.$flow),
|
|
705
|
+
$error: await __safeClone($ctx.$error),
|
|
706
|
+
$api: await __safeClone($ctx.$api),
|
|
682
707
|
$statusCode: $ctx.$statusCode,
|
|
683
|
-
})`,"extract-error-ctx.js")).run(l,{timeout:5e3});y=JSON.parse(S)}catch{}await b({type:"result",id:t,success:!1,error:{message:u.message,statusCode:u.statusCode,stack:s.stack,code:s.code,details:u.details},ctxChanges:y});return}let g=await z(m,l);await b({type:"result",id:t,success:!0,...g})}catch(s){await re(t,s)}finally{J.delete(t),await te(d,l),ae(t)}}function ae(e){M.cleanupTaskPackages(e)}function Me(){M.shutdownPackageRuntime()}process.on("exit",Me);async function z(e,t,n){if(n!==void 0){let c=`__extractResult(${JSON.stringify(n)}, false)`,
|
|
708
|
+
}))()`,"extract-error-ctx.js")).run(l,{timeout:5e3,promise:!0});y=JSON.parse(S)}catch{}await b({type:"result",id:t,success:!1,error:{message:u.message,statusCode:u.statusCode,stack:s.stack,code:s.code,details:u.details},ctxChanges:y});return}let g=await z(m,l);await b({type:"result",id:t,success:!0,...g})}catch(s){await re(t,s)}finally{J.delete(t),await te(d,l),ae(t)}}function ae(e){M.cleanupTaskPackages(e)}function Me(){M.shutdownPackageRuntime()}process.on("exit",Me);async function z(e,t,n){if(n!==void 0){let c=`__extractResult(${JSON.stringify(n)}, false)`,p=await(await e.compileScript(c,{filename:"extract.js"})).run(t,{timeout:5e3,promise:!0});return JSON.parse(p)}let o=await(await $(e,"__extractResult($ctx.$data, $ctx.$data === undefined)","extract.js")).run(t,{timeout:5e3,promise:!0});return JSON.parse(o)}
|