@enfyra/kernel 1.1.5 → 1.1.7
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 +59 -24
- 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
|
|
1
|
+
"use strict";var F=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var H=F((je,U)=>{"use strict";var{fork:se}=require("child_process"),oe=require("path");function ie({workerDir:e,activeTaskContexts:t}){let n=new Map,r=new Map,a=null,o=0;function c(f){for(let i of r.values())i.reject(f);r.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(a&&a.connected)return a;let f=oe.join(e,"package-runtime.child.js"),i=se(f,[],{stdio:["ignore","ignore","ignore","ipc"]});return a=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=r.get(s.id);if(g)if(r.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)=>{a===i&&(a=null),c(new Error(`Package runtime exited${g?` with signal ${g}`:` with code ${s}`}`))}),i.on("error",s=>{a===i&&(a=null),c(s)}),i}function d(f){return new Promise((i,s)=>{let g=v(),u=`pkg_${++o}`;r.set(u,{resolve:i,reject:s});try{g.send({...f,id:u},y=>{y&&(r.delete(u),s(y))})}catch(y){r.delete(u),s(y)}})}function m(f){try{if(!a||!a.connected)return;a.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(a){try{a.kill()}catch{}a=null}}return{cleanupTaskPackages:w,executePackageRuntimeCall:l,setTaskPackages:h,shutdownPackageRuntime:k}}U.exports={createPackageRuntimeBridge:ie}});var K=F((Ee,L)=>{"use strict";var ce=`
|
|
2
2
|
"use strict";
|
|
3
3
|
let $ctx = {};
|
|
4
4
|
let $pkgs = {};
|
|
@@ -88,30 +88,35 @@ async function __call(type, dataJson) {
|
|
|
88
88
|
return __parseMainThreadResult(r);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
async function __encodeRuntimeArg(value) {
|
|
91
|
+
async function __encodeRuntimeArg(value, seen) {
|
|
92
92
|
if (typeof value === 'function') {
|
|
93
93
|
if (value.__pkgHandlePromise) {
|
|
94
94
|
return { __pkgHandleArg: await value.__pkgHandlePromise };
|
|
95
95
|
}
|
|
96
96
|
if (typeof value.then === 'function') {
|
|
97
|
-
return __encodeRuntimeArg(await value);
|
|
97
|
+
return __encodeRuntimeArg(await value, seen);
|
|
98
98
|
}
|
|
99
99
|
const id = 'fn_' + (++__runtimeCallbackCounter);
|
|
100
100
|
__runtimeCallbacks.set(id, value);
|
|
101
101
|
return { __fnRef: id };
|
|
102
102
|
}
|
|
103
|
+
if (!seen) seen = new WeakSet();
|
|
104
|
+
if (value && typeof value === 'object') {
|
|
105
|
+
if (seen.has(value)) return null;
|
|
106
|
+
seen.add(value);
|
|
107
|
+
}
|
|
103
108
|
if (value instanceof Date) return { __date: value.toISOString() };
|
|
104
109
|
if (value instanceof Set) {
|
|
105
110
|
const items = [];
|
|
106
|
-
for (const item of value.values()) items.push(await __encodeRuntimeArg(item));
|
|
111
|
+
for (const item of value.values()) items.push(await __encodeRuntimeArg(item, seen));
|
|
107
112
|
return { __set: items };
|
|
108
113
|
}
|
|
109
114
|
if (value instanceof Map) {
|
|
110
115
|
const entries = [];
|
|
111
116
|
for (const [key, item] of value.entries()) {
|
|
112
117
|
entries.push([
|
|
113
|
-
await __encodeRuntimeArg(key),
|
|
114
|
-
await __encodeRuntimeArg(item),
|
|
118
|
+
await __encodeRuntimeArg(key, seen),
|
|
119
|
+
await __encodeRuntimeArg(item, seen),
|
|
115
120
|
]);
|
|
116
121
|
}
|
|
117
122
|
return { __map: entries };
|
|
@@ -153,7 +158,7 @@ async function __encodeRuntimeArg(value) {
|
|
|
153
158
|
if (typeof FormData !== 'undefined' && value instanceof FormData) {
|
|
154
159
|
const entries = [];
|
|
155
160
|
for (const [key, item] of value.entries()) {
|
|
156
|
-
entries.push([key, await __encodeRuntimeArg(item)]);
|
|
161
|
+
entries.push([key, await __encodeRuntimeArg(item, seen)]);
|
|
157
162
|
}
|
|
158
163
|
return { __formData: entries };
|
|
159
164
|
}
|
|
@@ -166,11 +171,11 @@ async function __encodeRuntimeArg(value) {
|
|
|
166
171
|
if (value instanceof ArrayBuffer) {
|
|
167
172
|
return { __arrayBuffer: Array.from(new Uint8Array(value)) };
|
|
168
173
|
}
|
|
169
|
-
if (Array.isArray(value)) return Promise.all(value.map(__encodeRuntimeArg));
|
|
174
|
+
if (Array.isArray(value)) return Promise.all(value.map((item) => __encodeRuntimeArg(item, seen)));
|
|
170
175
|
if (value && typeof value === 'object') {
|
|
171
176
|
const out = {};
|
|
172
177
|
for (const key of Object.keys(value)) {
|
|
173
|
-
out[key] = await __encodeRuntimeArg(value[key]);
|
|
178
|
+
out[key] = await __encodeRuntimeArg(value[key], seen);
|
|
174
179
|
}
|
|
175
180
|
return out;
|
|
176
181
|
}
|
|
@@ -194,27 +199,57 @@ async function __invokeRuntimeCallback(id, argsJson) {
|
|
|
194
199
|
}
|
|
195
200
|
}
|
|
196
201
|
|
|
197
|
-
|
|
202
|
+
const __safeCloneFailed = Symbol('__safeCloneFailed');
|
|
203
|
+
|
|
204
|
+
async function __safeClone(v, seen) {
|
|
205
|
+
if (!seen) {
|
|
206
|
+
const cloned = await __safeClone(v, new WeakSet());
|
|
207
|
+
return cloned === __safeCloneFailed ? null : cloned;
|
|
208
|
+
}
|
|
198
209
|
if (v === undefined) return undefined;
|
|
199
210
|
try {
|
|
200
211
|
if (v && typeof v.then === 'function') {
|
|
201
|
-
return await __safeClone(await v);
|
|
212
|
+
return await __safeClone(await v, seen);
|
|
213
|
+
}
|
|
214
|
+
if (v && typeof v === 'object') {
|
|
215
|
+
if (seen.has(v)) return __safeCloneFailed;
|
|
216
|
+
seen.add(v);
|
|
202
217
|
}
|
|
203
218
|
if (v instanceof Date) return v.toISOString();
|
|
204
219
|
if (v instanceof Set) {
|
|
205
220
|
const out = [];
|
|
206
|
-
for (const item of v.values())
|
|
221
|
+
for (const item of v.values()) {
|
|
222
|
+
const cloned = await __safeClone(item, seen);
|
|
223
|
+
if (cloned === __safeCloneFailed) return __safeCloneFailed;
|
|
224
|
+
out.push(cloned);
|
|
225
|
+
}
|
|
207
226
|
return out;
|
|
208
227
|
}
|
|
209
228
|
if (v instanceof Map) {
|
|
210
229
|
const out = {};
|
|
211
|
-
for (const [key, item] of v.entries())
|
|
230
|
+
for (const [key, item] of v.entries()) {
|
|
231
|
+
const cloned = await __safeClone(item, seen);
|
|
232
|
+
if (cloned === __safeCloneFailed) return __safeCloneFailed;
|
|
233
|
+
out[String(key)] = cloned;
|
|
234
|
+
}
|
|
235
|
+
return out;
|
|
236
|
+
}
|
|
237
|
+
if (Array.isArray(v)) {
|
|
238
|
+
const out = [];
|
|
239
|
+
for (const item of v) {
|
|
240
|
+
const cloned = await __safeClone(item, seen);
|
|
241
|
+
if (cloned === __safeCloneFailed) return __safeCloneFailed;
|
|
242
|
+
out.push(cloned);
|
|
243
|
+
}
|
|
212
244
|
return out;
|
|
213
245
|
}
|
|
214
|
-
if (Array.isArray(v)) return Promise.all(v.map(__safeClone));
|
|
215
246
|
if (v && typeof v === 'object') {
|
|
216
247
|
const out = {};
|
|
217
|
-
for (const key of Object.keys(v))
|
|
248
|
+
for (const key of Object.keys(v)) {
|
|
249
|
+
const cloned = await __safeClone(v[key], seen);
|
|
250
|
+
if (cloned === __safeCloneFailed) return __safeCloneFailed;
|
|
251
|
+
out[key] = cloned;
|
|
252
|
+
}
|
|
218
253
|
return out;
|
|
219
254
|
}
|
|
220
255
|
if (typeof v === 'function' && v.__pkgHandlePromise) {
|
|
@@ -651,16 +686,16 @@ function __cleanupTask() {
|
|
|
651
686
|
__runtimeCallbacks = new Map();
|
|
652
687
|
return true;
|
|
653
688
|
}
|
|
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}=
|
|
655
|
-
`),d=pe(v);return await(await $(e,d,"setup.js")).run(
|
|
656
|
-
`);for(let n of t){let
|
|
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
|
|
689
|
+
`;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}=H(),{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,z=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 r=n?.isolate;if(!(!r||r.isDisposed))try{let a=await r.getHeapStatistics(),o=a.heap_size_limit||1,c=a.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 a=Math.max(1,Math.trunc(Number(t)||8));x=new Array(a).fill(null)}let n=ye++%x.length,r=x[n];return(!r||!r.isolate||r.isolate.isDisposed)&&(r={isolate:new N.Isolate({memoryLimit:e}),idleContexts:[]},x[n]=r),r}async function $(e,t,n){let r=q.get(e);r||(r=new Map,q.set(e,r));let a=r.get(t);if(a)return a;let o=await e.compileScript(t,{filename:n});if(r.set(t,o),r.size>_e){let c=r.keys().next().value;r.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((r,a)=>{let o=`cb_${++z}`;A.set(o,{resolve:r,reject:a}),O.postMessage({type:t,id:e,callId:o,...n})})}function ve(e,t,n){O.postMessage({type:t,id:e,callId:`f_${++z}`,...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 r=we(n);if(!r)return null;let a=await e.compileModule(r,{filename:`pkg:${n.safeName}`});await a.instantiate(t,c=>{throw new Error(`Unresolved import in package ${n.safeName}: ${c}`)}),await a.evaluate({timeout:1e4});let o=await a.namespace.get("default");return o!==void 0&&o.typeof!=="undefined"?o.derefInto({release:!1}):a.namespace.derefInto({release:!1})}catch{return null}}function Q(e,t){let n=a=>{let o=2166136261;for(let c=0;c<a.length;c++)o^=a.charCodeAt(c),o=Math.imul(o,16777619);return(o>>>0).toString(36)},r=new Set(t||[]);return e.map(a=>{let o=a.cacheKey||`${a.filePath||""}:${a.fileUrl||""}:${a.mtimeMs||""}:${a.size||""}:${n(a.sourceCode||"")}`,c=r.has(a.name)?"isolate":"proxy";return`${a.name}:${a.version||""}:${o}:${c}`}).join("|")}function Y(e,t){let n=new Set(t.map(p=>p.name)),r=new Set,a=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 a.matchAll(p)){let d=v[2];n.has(d)&&r.add(d)}for(let p of a.matchAll(_)){let v=p[1];n.has(v)&&r.add(v)}return r}async function xe(e,t,n,r){let a=await e.createContext(),o=a.global;await o.set("global",o.derefInto());let c=[],_=[],p=new Map;for(let l of n){p.set(l.name,l);let h=r.has(l.name)?await Pe(e,a,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(`
|
|
690
|
+
`),d=pe(v);return await(await $(e,d,"setup.js")).run(a,{timeout:5e3}),G.set(a,Q(n,r)),X.set(a,p),a}async function ee(e,t,n,r,a){let o=e.isolate,c=Q(n,a),_=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,a),C.created++),M.setTaskPackages(t,X.get(_)||new Map);let p=_.global;return await p.set("__snapshot",new N.ExternalCopy(r).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(`
|
|
691
|
+
`);for(let n of t){let r=n.match(/at\s+(.+\.js):(\d+):(\d+)/);if(!r)continue;let a=r[1].trim();if(be.includes(a))continue;let c=parseInt(r[2])-Se;if(!(c<=0))return{line:c,column:parseInt(r[3]),phase:a.replace(".js","")}}return null}function Re(e,t,n){if(!e||!t)return;let r=String(e).split(/\r?\n/),a=Math.max(1,t-1),o=Math.min(r.length,t+1),c=String(o).length,_=[];for(let p=a;p<=o;p++){let v=p===t?">":" ";_.push(`${v} ${String(p).padStart(c," ")}. ${r[p-1]??""}`),p===t&&n&&n>0&&_.push(` ${" ".repeat(c)} ${" ".repeat(Math.max(0,n-1))}^`)}return _.join(`
|
|
692
|
+
`)}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 j(e,t){let n=$e(e);if(n)return{message:n.message,statusCode:n.statusCode,details:n.details};let r=Ce(e.stack),a=e.message||"Unknown error",o=r?`${a} (${r.phase}, line ${r.line})`:a,c=Ae(r,t),_=r?Re(c,r.line,r.column):void 0;return{message:o,statusCode:e.statusCode||null,details:r?{...r,codeFrame:_}:void 0}}async function ae(e,t){let n=j(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:r,snapshot:a,memoryLimitMb:o,isolatePoolSize:c}=e,_=r||[],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,_,a,v);J.set(t,l);try{let h=`
|
|
658
693
|
(async () => {
|
|
659
694
|
"use strict";
|
|
660
695
|
${n}
|
|
661
696
|
})().then((__result) => __extractResult(__result, __result === undefined));
|
|
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
|
|
663
|
-
`),_),d=Z(o,c),m=d.isolate,l=await ee(d,t,_,
|
|
697
|
+
`,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 ae(t,h)}finally{J.delete(t),await te(d,l),re(t)}}async function Je(e){let{id:t,codeBlocks:n,pkgSources:r,snapshot:a,memoryLimitMb:o,isolatePoolSize:c}=e,_=r||[],p=Math.max(1,Math.trunc(Number(e.timeoutMs)||3e4)),v=Y((n||[]).map(s=>s.code||"").join(`
|
|
698
|
+
`),_),d=Z(o,c),m=d.isolate,l=await ee(d,t,_,a,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=`
|
|
664
699
|
(async () => {
|
|
665
700
|
"use strict";
|
|
666
701
|
${y.code}
|
|
@@ -674,7 +709,7 @@ function __cleanupTask() {
|
|
|
674
709
|
})().then((__r) => {
|
|
675
710
|
$ctx.$data = __r;
|
|
676
711
|
return "__handler_done__";
|
|
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
|
|
712
|
+
});`;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 W(m,l,I.value);await b({type:"result",id:t,success:!0,...ne,shortCircuit:!0});return}}}catch(E){s=E;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=j(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=`
|
|
678
713
|
$ctx.$error = ${JSON.stringify(y)};
|
|
679
714
|
$ctx.$data = null;
|
|
680
715
|
$ctx.$statusCode = ${y.statusCode};
|
|
@@ -695,7 +730,7 @@ if ($ctx.$api) {
|
|
|
695
730
|
})().then((__r) => {
|
|
696
731
|
if (__r !== undefined) $ctx.$data = __r;
|
|
697
732
|
return "__posthook_done__";
|
|
698
|
-
});`;try{await(await $(m,R,`${P}.js`)).run(l,{timeout:p,promise:!0})}catch{}}if(s){let u=
|
|
733
|
+
});`;try{await(await $(m,R,`${P}.js`)).run(l,{timeout:p,promise:!0})}catch{}}if(s){let u=j(s,k),y;try{let S=await(await $(m,`(async () => JSON.stringify({
|
|
699
734
|
$body: await __safeClone($ctx.$body),
|
|
700
735
|
$query: await __safeClone($ctx.$query),
|
|
701
736
|
$params: await __safeClone($ctx.$params),
|
|
@@ -705,4 +740,4 @@ if ($ctx.$api) {
|
|
|
705
740
|
$error: await __safeClone($ctx.$error),
|
|
706
741
|
$api: await __safeClone($ctx.$api),
|
|
707
742
|
$statusCode: $ctx.$statusCode,
|
|
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
|
|
743
|
+
}))()`,"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 W(m,l);await b({type:"result",id:t,success:!0,...g})}catch(s){await ae(t,s)}finally{J.delete(t),await te(d,l),re(t)}}function re(e){M.cleanupTaskPackages(e)}function Me(){M.shutdownPackageRuntime()}process.on("exit",Me);async function W(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)}
|