@enfyra/kernel 1.1.23 → 1.1.25

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,4 +1,4 @@
1
- "use strict";var L=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var q=L((Ie,K)=>{"use strict";var{fork:ce}=require("child_process"),le=require("path");function ue({workerDir:e,activeTaskContexts:t}){let o=new Map,r=new Map,a=new Map,s=null,c=0;function g(f){return Math.max(1,Math.trunc(Number(f)||3e4))}function u(f){for(let n of r.values())clearTimeout(n.timer),n.reject(f);r.clear()}function h(f){let n=typeof f=="string"?JSON.parse(f):f;if(n?.error)throw new Error(n.error);return n?.value}async function v(f){let n=t.get(f.taskId);if(!n)throw new Error(`Package callback context not found: ${f.taskId}`);let i=JSON.stringify(f.callbackId),d=JSON.stringify(f.argsJson||"[]"),p=await n.evalClosure(`return __invokeRuntimeCallback(${i}, ${d});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}});return h(p)}function y(){if(s&&s.connected)return s;let f=le.join(e,"package-runtime.child.js"),n=ce(f,[],{stdio:["ignore","ignore","ignore","ipc"]});return s=n,n.on("message",i=>{if(!i||!i.id)return;if(i.type==="pkgStreamChunk"){let p=a.get(i.id);if(!p)return;p.onChunk(Buffer.from(i.chunk||"","base64")).then(()=>{try{n.send({type:"pkgStreamAck",ackId:i.ackId})}catch{}}).catch(w=>{try{n.send({type:"pkgStreamError",ackId:i.ackId,error:{message:w.message,stack:w.stack}})}catch{}});return}if(i.type==="pkgCallbackCall"){v(i).then(p=>{try{n.send({type:"pkgCallbackResult",id:i.id,value:p})}catch{}}).catch(p=>{try{n.send({type:"pkgCallbackError",id:i.id,error:{message:p.message,stack:p.stack}})}catch{}});return}let d=r.get(i.id);if(d)if(clearTimeout(d.timer),r.delete(i.id),a.delete(i.id),i.ok)d.resolve(i.value);else{let p=new Error(i.error?.message||"Package runtime call failed");p.stack=i.error?.stack||p.stack,d.reject(p)}}),n.on("exit",(i,d)=>{s===n&&(s=null),u(new Error(`Package runtime exited${d?` with signal ${d}`:` with code ${i}`}`))}),n.on("error",i=>{s===n&&(s=null),u(i)}),n}function l(f){return new Promise((n,i)=>{let d=y(),p=`pkg_${++c}`,w=g(f.timeoutMs),S=setTimeout(()=>{r.delete(p),a.delete(p);try{d.kill()}catch{}i(new Error(`Package runtime call timed out after ${w}ms`))},w);r.set(p,{resolve:n,reject:i,timer:S});try{d.send({...f,id:p},C=>{C&&(clearTimeout(S),r.delete(p),i(C))})}catch(C){clearTimeout(S),r.delete(p),i(C)}})}function m(f,n,i,d=[],p=3e4){return new Promise((w,S)=>{let C=y(),x=`pkg_${++c}`,F=g(p),U=setTimeout(()=>{r.delete(x),a.delete(x);try{C.kill()}catch{}S(new Error(`Package runtime stream timed out after ${F}ms`))},F);r.set(x,{resolve:w,reject:S,timer:U}),a.set(x,{onChunk:i});try{C.send({op:"streamHandle",taskId:f,handleId:n,path:d,id:x},H=>{H&&(clearTimeout(U),r.delete(x),a.delete(x),S(H))})}catch(H){clearTimeout(U),r.delete(x),a.delete(x),S(H)}})}function P(f){try{if(!s||!s.connected)return;s.send({...f,id:`pkg_${++c}`,fire:!0})}catch{}}async function k(f,n){let i=o.get(f);if(!i)throw new Error("Package context is not available");if(n.handleId)return l({op:n.kind==="get"?"handleGet":"handleCall",taskId:f,handleId:n.handleId,path:n.path||[],argsJson:n.argsJson||"[]",timeoutMs:n.timeoutMs});let d=i.get(n.packageName);if(!d)throw new Error(`Package "${n.packageName}" is not available`);return l({op:n.kind==="construct"?"construct":"call",taskId:f,packageName:n.packageName,package:{name:d.name,fileUrl:d.fileUrl},path:n.path||[],argsJson:n.argsJson||"[]",timeoutMs:n.timeoutMs})}function A(f,n){o.set(f,n)}function I(f){o.delete(f),P({op:"releaseTask",taskId:f})}function _(){if(s){try{s.kill()}catch{}s=null}}return{cleanupTaskPackages:I,executePackageRuntimeCall:k,setTaskPackages:A,streamPackageHandle:m,shutdownPackageRuntime:_}}K.exports={createPackageRuntimeBridge:ue}});var V=L((Fe,B)=>{"use strict";var fe=`
1
+ "use strict";var D=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var B=D((Ie,K)=>{"use strict";var{fork:ce}=require("child_process"),le=require("path");function ue({workerDir:e,activeTaskContexts:t}){let o=new Map,r=new Map,n=new Map,s=null,c=0;function g(f){return Math.max(1,Math.trunc(Number(f)||3e4))}function u(f){for(let a of r.values())clearTimeout(a.timer),a.reject(f);r.clear()}function h(f){let a=typeof f=="string"?JSON.parse(f):f;if(a?.error)throw new Error(a.error);return a?.value}async function w(f){let a=t.get(f.taskId);if(!a)throw new Error(`Package callback context not found: ${f.taskId}`);let i=JSON.stringify(f.callbackId),d=JSON.stringify(f.argsJson||"[]"),_=await a.evalClosure(`return __invokeRuntimeCallback(${i}, ${d});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}});return h(_)}function y(){if(s&&s.connected)return s;let f=le.join(e,"package-runtime.child.js"),a=ce(f,[],{stdio:["ignore","ignore","ignore","ipc"]});return s=a,a.on("message",i=>{if(!i||!i.id)return;if(i.type==="pkgStreamChunk"){let _=n.get(i.id);if(!_)return;_.onChunk(Buffer.from(i.chunk||"","base64")).then(()=>{try{a.send({type:"pkgStreamAck",ackId:i.ackId})}catch{}}).catch(v=>{try{a.send({type:"pkgStreamError",ackId:i.ackId,error:{message:v.message,stack:v.stack}})}catch{}});return}if(i.type==="pkgCallbackCall"){w(i).then(_=>{try{a.send({type:"pkgCallbackResult",id:i.id,value:_})}catch{}}).catch(_=>{try{a.send({type:"pkgCallbackError",id:i.id,error:{message:_.message,stack:_.stack}})}catch{}});return}let d=r.get(i.id);if(d)if(clearTimeout(d.timer),r.delete(i.id),n.delete(i.id),i.ok)d.resolve(i.value);else{let _=new Error(i.error?.message||"Package runtime call failed");_.stack=i.error?.stack||_.stack,d.reject(_)}}),a.on("exit",(i,d)=>{s===a&&(s=null),u(new Error(`Package runtime exited${d?` with signal ${d}`:` with code ${i}`}`))}),a.on("error",i=>{s===a&&(s=null),u(i)}),a}function l(f){return new Promise((a,i)=>{let d=y(),_=`pkg_${++c}`,v=g(f.timeoutMs),b=setTimeout(()=>{r.delete(_),n.delete(_);try{d.kill()}catch{}i(new Error(`Package runtime call timed out after ${v}ms`))},v);r.set(_,{resolve:a,reject:i,timer:b});try{d.send({...f,id:_},x=>{x&&(clearTimeout(b),r.delete(_),i(x))})}catch(x){clearTimeout(b),r.delete(_),i(x)}})}function m(f,a,i,d=[],_=3e4){return new Promise((v,b)=>{let x=y(),S=`pkg_${++c}`,F=g(_),H=setTimeout(()=>{r.delete(S),n.delete(S);try{x.kill()}catch{}b(new Error(`Package runtime stream timed out after ${F}ms`))},F);r.set(S,{resolve:v,reject:b,timer:H}),n.set(S,{onChunk:i});try{x.send({op:"streamHandle",taskId:f,handleId:a,path:d,id:S},U=>{U&&(clearTimeout(H),r.delete(S),n.delete(S),b(U))})}catch(U){clearTimeout(H),r.delete(S),n.delete(S),b(U)}})}function P(f){try{if(!s||!s.connected)return;s.send({...f,id:`pkg_${++c}`,fire:!0})}catch{}}async function k(f,a){let i=o.get(f);if(!i)throw new Error("Package context is not available");if(a.handleId)return l({op:a.kind==="get"?"handleGet":"handleCall",taskId:f,handleId:a.handleId,path:a.path||[],argsJson:a.argsJson||"[]",timeoutMs:a.timeoutMs});let d=i.get(a.packageName);if(!d)throw new Error(`Package "${a.packageName}" is not available`);return l({op:a.kind==="construct"?"construct":"call",taskId:f,packageName:a.packageName,package:{name:d.name,fileUrl:d.fileUrl},path:a.path||[],argsJson:a.argsJson||"[]",timeoutMs:a.timeoutMs})}function A(f,a){o.set(f,a)}function I(f){o.delete(f),P({op:"releaseTask",taskId:f})}function p(){if(s){try{s.kill()}catch{}s=null}}return{cleanupTaskPackages:I,executePackageRuntimeCall:k,setTaskPackages:A,streamPackageHandle:m,shutdownPackageRuntime:p}}K.exports={createPackageRuntimeBridge:ue}});var V=D((Fe,q)=>{"use strict";var fe=`
2
2
  "use strict";
3
3
  let $ctx = {};
4
4
  let $pkgs = {};
@@ -7,6 +7,7 @@ let __taskDeadlineMs = 0;
7
7
  let __logs = [];
8
8
  let __runtimeCallbackCounter = 0;
9
9
  let __runtimeCallbacks = new Map();
10
+ let __pendingRuntimeTasks = [];
10
11
 
11
12
  const __applyOpts = { result: { promise: true, copy: true } };
12
13
 
@@ -98,6 +99,34 @@ function __encodePkgCallPayload(payload) {
98
99
  return JSON.stringify({ ...payload, timeoutMs: __remainingTaskTimeoutMs() });
99
100
  }
100
101
 
102
+ function __bytesToBase64(bytes) {
103
+ const input = bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);
104
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
105
+ let out = '';
106
+ let i = 0;
107
+ for (; i + 2 < input.length; i += 3) {
108
+ const n = (input[i] << 16) | (input[i + 1] << 8) | input[i + 2];
109
+ out += chars[(n >> 18) & 63] + chars[(n >> 12) & 63] + chars[(n >> 6) & 63] + chars[n & 63];
110
+ }
111
+ if (i < input.length) {
112
+ const a = input[i];
113
+ const b = i + 1 < input.length ? input[i + 1] : 0;
114
+ const n = (a << 16) | (b << 8);
115
+ out += chars[(n >> 18) & 63] + chars[(n >> 12) & 63] + (i + 1 < input.length ? chars[(n >> 6) & 63] : '=') + '=';
116
+ }
117
+ return out;
118
+ }
119
+
120
+ function __streamChunkToBytes(chunk) {
121
+ if (chunk === undefined || chunk === null) return new Uint8Array();
122
+ if (typeof chunk === 'string') return new TextEncoder().encode(chunk);
123
+ if (chunk instanceof ArrayBuffer) return new Uint8Array(chunk);
124
+ if (ArrayBuffer.isView(chunk)) {
125
+ return new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength);
126
+ }
127
+ return new TextEncoder().encode(String(chunk));
128
+ }
129
+
101
130
  async function __encodeRuntimeArg(value, seen) {
102
131
  if (typeof value === 'function') {
103
132
  if (value.__pkgHandlePromise) {
@@ -196,6 +225,41 @@ async function __stringifyRuntimeArgs(args) {
196
225
  return JSON.stringify(await Promise.all(args.map((arg) => __encodeRuntimeArg(arg))));
197
226
  }
198
227
 
228
+ async function __streamResponseFromLocalReadable(stream, options) {
229
+ await __call('resCall', JSON.stringify({
230
+ method: 'streamStart',
231
+ argsJson: JSON.stringify([null, options || {}]),
232
+ }));
233
+ try {
234
+ for await (const chunk of stream) {
235
+ await __call('resCall', JSON.stringify({
236
+ method: 'streamChunk',
237
+ chunk: __bytesToBase64(__streamChunkToBytes(chunk)),
238
+ }));
239
+ }
240
+ await __call('resCall', JSON.stringify({ method: 'streamEnd' }));
241
+ } catch (error) {
242
+ try {
243
+ await __call('resCall', JSON.stringify({
244
+ method: 'streamError',
245
+ error: {
246
+ message: error && error.message ? error.message : String(error),
247
+ },
248
+ }));
249
+ } catch {}
250
+ throw error;
251
+ }
252
+ }
253
+
254
+ async function __drainPendingRuntimeTasks() {
255
+ while (__pendingRuntimeTasks.length > 0) {
256
+ const tasks = __pendingRuntimeTasks.splice(0, __pendingRuntimeTasks.length);
257
+ const results = await Promise.allSettled(tasks);
258
+ const failed = results.find((result) => result.status === 'rejected');
259
+ if (failed) throw failed.reason;
260
+ }
261
+ }
262
+
199
263
  async function __invokeRuntimeCallback(id, argsJson) {
200
264
  const fn = __runtimeCallbacks.get(id);
201
265
  if (typeof fn !== 'function') {
@@ -297,6 +361,7 @@ async function __extractCtxChanges() {
297
361
  }
298
362
 
299
363
  async function __extractResult(result, isAbsent) {
364
+ await __drainPendingRuntimeTasks();
300
365
  const valueAbsent = isAbsent === true;
301
366
  const out = {
302
367
  valueAbsent,
@@ -615,7 +680,35 @@ function __createPkgProxy(packageName, path) {
615
680
  });
616
681
  }
617
682
 
683
+ function __createReadableFrom(input) {
684
+ const stream = {
685
+ __enfyraLocalReadable: true,
686
+ async *[Symbol.asyncIterator]() {
687
+ if (input && typeof input[Symbol.asyncIterator] === 'function') {
688
+ for await (const chunk of input) yield chunk;
689
+ return;
690
+ }
691
+ if (input && typeof input[Symbol.iterator] === 'function' && typeof input !== 'string') {
692
+ for (const chunk of input) yield chunk;
693
+ return;
694
+ }
695
+ yield input;
696
+ },
697
+ };
698
+ return stream;
699
+ }
700
+
701
+ const __builtinModules = {
702
+ stream: {
703
+ Readable: {
704
+ from: __createReadableFrom,
705
+ },
706
+ },
707
+ };
708
+ __builtinModules['node:stream'] = __builtinModules.stream;
709
+
618
710
  const require = (name) => {
711
+ if (__builtinModules[name] !== undefined) return __builtinModules[name];
619
712
  if ($pkgs[name] === undefined) throw new Error('Module "' + name + '" is not available. Install it via Settings \\u2192 Packages');
620
713
  return $pkgs[name];
621
714
  };
@@ -635,6 +728,7 @@ function __resetTask(snapshot, taskId, timeoutMs) {
635
728
  __logs = [];
636
729
  __runtimeCallbackCounter = 0;
637
730
  __runtimeCallbacks = new Map();
731
+ __pendingRuntimeTasks = [];
638
732
  %%PKG_SETUP%%
639
733
  $ctx.$pkgs = $pkgs;
640
734
  $ctx.$share = $ctx.$share || {};
@@ -675,8 +769,15 @@ function __resetTask(snapshot, taskId, timeoutMs) {
675
769
  __call('storageCall', JSON.stringify({ method: String(method), argsJson: await __stringifyRuntimeArgs(args) }))
676
770
  });
677
771
  $ctx.$res = new Proxy({}, {
678
- get: (_, method) => async (...args) =>
679
- __call('resCall', JSON.stringify({ method: String(method), argsJson: await __stringifyRuntimeArgs(args) }))
772
+ get: (_, method) => async (...args) => {
773
+ const methodName = String(method);
774
+ if (methodName === 'stream' && args[0]?.__enfyraLocalReadable) {
775
+ const task = __streamResponseFromLocalReadable(args[0], args[1]);
776
+ __pendingRuntimeTasks.push(task);
777
+ return task;
778
+ }
779
+ return __call('resCall', JSON.stringify({ method: methodName, argsJson: await __stringifyRuntimeArgs(args) }));
780
+ }
680
781
  });
681
782
  $ctx.$trigger = async (...args) =>
682
783
  __call('dispatchCall', JSON.stringify({ method: 'trigger', argsJson: JSON.stringify(args) }));
@@ -765,32 +866,33 @@ function __cleanupTask() {
765
866
  __logs = [];
766
867
  __runtimeCallbackCounter = 0;
767
868
  __runtimeCallbacks = new Map();
869
+ __pendingRuntimeTasks = [];
768
870
  return true;
769
871
  }
770
- `;function de(e){return fe.replace("%%PKG_SETUP%%",e)}B.exports={buildSetupCode:de}});var{parentPort:j}=require("worker_threads"),W=require("fs"),{fileURLToPath:pe}=require("url"),{createPackageRuntimeBridge:_e}=q(),{buildSetupCode:ge}=V(),O;try{O=require("isolated-vm")}catch(e){j.postMessage({type:"error",message:"isolated-vm not available: "+e.message}),process.exit(1)}var J=new Map,Q=0,E=new Map,T=_e({workerDir:__dirname,activeTaskContexts:E}),he=500,ye=5e3,me=32,z=new WeakMap,Y=new WeakMap,ee=new WeakMap,N={created:0,reused:0,released:0,evicted:0,scrubFailed:0},b=null,ke=0,G=0,X=0;async function ve(){let e=Date.now();if(e-G<ye)return X;if(G=e,!b)return 0;let t=0;for(let o of b){let r=o?.isolate;if(!(!r||r.isDisposed))try{let a=await r.getHeapStatistics(),s=a.heap_size_limit||1,c=a.used_heap_size/s;c>t&&(t=c)}catch{}}return X=t,t}async function M(e){e.heapRatio=await ve(),e.contextStats=we(),j.postMessage(e)}function we(){let e=0;if(b)for(let t of b)e+=t?.idleContexts?.length||0;return{...N,idle:e}}function te(e,t){if(!b){let a=Math.max(1,Math.trunc(Number(t)||8));b=new Array(a).fill(null)}let o=ke++%b.length,r=b[o];return(!r||!r.isolate||r.isolate.isDisposed)&&(r={isolate:new O.Isolate({memoryLimit:e}),idleContexts:[]},b[o]=r),r}async function $(e,t,o){let r=z.get(e);r||(r=new Map,z.set(e,r));let a=r.get(t);if(a)return a;let s=await e.compileScript(t,{filename:o});if(r.set(t,s),r.size>he){let c=r.keys().next().value;r.delete(c)}return s}j.on("message",async e=>{if(e.type==="execute")Je(e).catch(async t=>{await M({type:"result",id:e.id,success:!1,error:{message:t.message,stack:t.stack}})});else if(e.type==="executeBatch")Oe(e).catch(async t=>{await M({type:"result",id:e.id,success:!1,error:{message:t.message,stack:t.stack}})});else if(e.type==="callResult"){let t=J.get(e.callId);t&&(J.delete(e.callId),t.resolve(e.result))}else if(e.type==="callError"){let t=J.get(e.callId);t&&(J.delete(e.callId),t.reject(new Error(e.error)))}});function R(e,t,o){return new Promise((r,a)=>{let s=`cb_${++Q}`;J.set(s,{resolve:r,reject:a}),j.postMessage({type:t,id:e,callId:s,...o})})}function Pe(e,t,o){j.postMessage({type:t,id:e,callId:`f_${++Q}`,...o})}async function xe(e,t){if(t?.method!=="stream")return R(e,"resCall",t);let o=JSON.parse(t.argsJson||"[]"),r=o[0],a=o[1]||{},s=r?.__pkgHandleArg;if(!s)return R(e,"resCall",t);await R(e,"resCall",{method:"streamStart",argsJson:JSON.stringify([null,a])});try{await T.streamPackageHandle(e,s,c=>R(e,"resCall",{method:"streamChunk",chunk:Buffer.from(c).toString("base64")})),await R(e,"resCall",{method:"streamEnd"})}catch(c){try{await R(e,"resCall",{method:"streamError",error:{message:c.message,stack:c.stack}})}catch{}throw c}return JSON.stringify({__e:"u"})}function Se(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=pe(e.fileUrl)),!t||!W.existsSync(t)?null:W.readFileSync(t,"utf8")}async function Ce(e,t,o){try{let r=Se(o);if(!r)return null;let a=await e.compileModule(r,{filename:`pkg:${o.safeName}`});await a.instantiate(t,c=>{throw new Error(`Unresolved import in package ${o.safeName}: ${c}`)}),await a.evaluate({timeout:1e4});let s=await a.namespace.get("default");return s!==void 0&&s.typeof!=="undefined"?s.derefInto({release:!1}):a.namespace.derefInto({release:!1})}catch{return null}}function re(e,t){let o=a=>{let s=2166136261;for(let c=0;c<a.length;c++)s^=a.charCodeAt(c),s=Math.imul(s,16777619);return(s>>>0).toString(36)},r=new Set(t||[]);return e.map(a=>{let s=a.cacheKey||`${a.filePath||""}:${a.fileUrl||""}:${a.mtimeMs||""}:${a.size||""}:${o(a.sourceCode||"")}`,c=r.has(a.name)?"isolate":"proxy";return`${a.name}:${a.version||""}:${s}:${c}`}).join("|")}function ae(e,t){let o=new Set(t.map(u=>u.name)),r=new Set,a=String(e||""),s=/\b(?:\$ctx\.)?\$pkgs\s*\[\s*(['"`])([^'"`]+)\1\s*\]/g,c=/\brequire\s*\(\s*(['"`])([^'"`]+)\1\s*\)/g,g=/\b(?:\$ctx\.)?\$pkgs\.([A-Za-z_$][\w$]*)/g;for(let u of[s,c])for(let h of a.matchAll(u)){let v=h[2];o.has(v)&&r.add(v)}for(let u of a.matchAll(g)){let h=u[1];o.has(h)&&r.add(h)}return r}async function be(e,t,o,r){let a=await e.createContext(),s=a.global;await s.set("global",s.derefInto());let c=[],g=[],u=new Map;for(let l of o){u.set(l.name,l);let m=r.has(l.name)?await Ce(e,a,l):null;m!==null?(await s.set(`__pkg_${l.safeName}`,m),c.push(l)):g.push(l)}T.setTaskPackages(t,u),await s.set("__callRef",new O.Reference(async(l,m,P)=>{let k=JSON.parse(P);return m==="pkgCall"?JSON.stringify(await T.executePackageRuntimeCall(l,k)):m==="resCall"?xe(l,k):R(l,m,k)})),await s.set("__fireRef",new O.Reference((l,m,P)=>{let k=JSON.parse(P);Pe(l,m,k)}));let h=c.map(l=>`$pkgs[${JSON.stringify(l.name)}] = __pkg_${l.safeName};`).concat(g.map(l=>`$pkgs[${JSON.stringify(l.name)}] = __createPkgProxy(${JSON.stringify(l.name)}, []);`)).join(`
771
- `),v=ge(h);return await(await $(e,v,"setup.js")).run(a,{timeout:5e3}),Y.set(a,re(o,r)),ee.set(a,u),a}async function ne(e,t,o,r,a,s){let c=e.isolate,g=re(o,a),u=null;for(let y=e.idleContexts.length-1;y>=0;y--){let l=e.idleContexts[y];if(e.idleContexts.splice(y,1),Y.get(l)===g){u=l,N.reused++;break}try{l.release()}catch{}}u||(u=await be(c,t,o,a),N.created++),T.setTaskPackages(t,ee.get(u)||new Map);let h=u.global;return await h.set("__snapshot",new O.ExternalCopy(r).copyInto()),await h.set("__nextTaskId",t),await h.set("__nextTaskTimeoutMs",s),await(await $(c,"__resetTask(__snapshot, __nextTaskId, __nextTaskTimeoutMs);","reset-task.js")).run(u,{timeout:5e3}),u}async function se(e,t){if(!(!t||e.isolate.isDisposed)){try{await(await $(e.isolate,"__cleanupTask();","cleanup-task.js")).run(t,{timeout:5e3})}catch{N.scrubFailed++;try{t.release()}catch{}return}if(e.idleContexts.length>=me){try{t.release()}catch{}N.evicted++;return}e.idleContexts.push(t),N.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 Re=3,Me=["setup.js","extract.js","extract-error-ctx.js","set-status.js","populate-error.js"];function Ae(e){if(!e)return null;let t=e.split(`
772
- `);for(let o of t){let r=o.match(/at\s+(.+\.js):(\d+):(\d+)/);if(!r)continue;let a=r[1].trim();if(Me.includes(a))continue;let c=parseInt(r[2])-Re;if(!(c<=0))return{line:c,column:parseInt(r[3]),phase:a.replace(".js","")}}return null}function Ne(e,t,o){if(!e||!t)return;let r=String(e).split(/\r?\n/),a=Math.max(1,t-1),s=Math.min(r.length,t+1),c=String(s).length,g=[];for(let u=a;u<=s;u++){let h=u===t?">":" ";g.push(`${h} ${String(u).padStart(c," ")}. ${r[u-1]??""}`),u===t&&o&&o>0&&g.push(` ${" ".repeat(c)} ${" ".repeat(Math.max(0,o-1))}^`)}return g.join(`
773
- `)}function Te(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 D(e,t){let o=$e(e);if(o)return{message:o.message,statusCode:o.statusCode,errorPath:o.errorPath,details:o.details};let r=Ae(e.stack),a=e.message||"Unknown error",s=r?`${a} (${r.phase}, line ${r.line})`:a,c=Te(r,t),g=r?Ne(c,r.line,r.column):void 0;return{message:s,statusCode:e.statusCode||null,details:r?{...r,codeFrame:g}:void 0}}async function oe(e,t){let o=D(t);await M({type:"result",id:e,success:!1,error:{...o,stack:t.stack,code:t.code}})}async function Je(e){let{id:t,code:o,pkgSources:r,snapshot:a,memoryLimitMb:s,isolatePoolSize:c}=e,g=r||[],u=Math.max(1,Math.trunc(Number(e.timeoutMs)||3e4)),h=ae(o,g),v=te(s,c),y=v.isolate,l=await ne(v,t,g,a,h,u);E.set(t,l);try{let m=`
872
+ `;function de(e){return fe.replace("%%PKG_SETUP%%",e)}q.exports={buildSetupCode:de}});var{parentPort:j}=require("worker_threads"),W=require("fs"),{fileURLToPath:_e}=require("url"),{createPackageRuntimeBridge:pe}=B(),{buildSetupCode:ge}=V(),O;try{O=require("isolated-vm")}catch(e){j.postMessage({type:"error",message:"isolated-vm not available: "+e.message}),process.exit(1)}var J=new Map,Q=0,E=new Map,N=pe({workerDir:__dirname,activeTaskContexts:E}),he=500,ye=5e3,me=32,z=new WeakMap,Y=new WeakMap,ee=new WeakMap,T={created:0,reused:0,released:0,evicted:0,scrubFailed:0},C=null,ke=0,G=0,X=0;async function we(){let e=Date.now();if(e-G<ye)return X;if(G=e,!C)return 0;let t=0;for(let o of C){let r=o?.isolate;if(!(!r||r.isDisposed))try{let n=await r.getHeapStatistics(),s=n.heap_size_limit||1,c=n.used_heap_size/s;c>t&&(t=c)}catch{}}return X=t,t}async function M(e){e.heapRatio=await we(),e.contextStats=ve(),j.postMessage(e)}function ve(){let e=0;if(C)for(let t of C)e+=t?.idleContexts?.length||0;return{...T,idle:e}}function te(e,t){if(!C){let n=Math.max(1,Math.trunc(Number(t)||8));C=new Array(n).fill(null)}let o=ke++%C.length,r=C[o];return(!r||!r.isolate||r.isolate.isDisposed)&&(r={isolate:new O.Isolate({memoryLimit:e}),idleContexts:[]},C[o]=r),r}async function $(e,t,o){let r=z.get(e);r||(r=new Map,z.set(e,r));let n=r.get(t);if(n)return n;let s=await e.compileScript(t,{filename:o});if(r.set(t,s),r.size>he){let c=r.keys().next().value;r.delete(c)}return s}j.on("message",async e=>{if(e.type==="execute")Je(e).catch(async t=>{await M({type:"result",id:e.id,success:!1,error:{message:t.message,stack:t.stack}})});else if(e.type==="executeBatch")Oe(e).catch(async t=>{await M({type:"result",id:e.id,success:!1,error:{message:t.message,stack:t.stack}})});else if(e.type==="callResult"){let t=J.get(e.callId);t&&(J.delete(e.callId),t.resolve(e.result))}else if(e.type==="callError"){let t=J.get(e.callId);t&&(J.delete(e.callId),t.reject(new Error(e.error)))}});function R(e,t,o){return new Promise((r,n)=>{let s=`cb_${++Q}`;J.set(s,{resolve:r,reject:n}),j.postMessage({type:t,id:e,callId:s,...o})})}function Pe(e,t,o){j.postMessage({type:t,id:e,callId:`f_${++Q}`,...o})}async function Se(e,t){if(t?.method!=="stream")return R(e,"resCall",t);let o=JSON.parse(t.argsJson||"[]"),r=o[0],n=o[1]||{},s=r?.__pkgHandleArg;if(!s)return R(e,"resCall",t);await R(e,"resCall",{method:"streamStart",argsJson:JSON.stringify([null,n])});try{await N.streamPackageHandle(e,s,c=>R(e,"resCall",{method:"streamChunk",chunk:Buffer.from(c).toString("base64")})),await R(e,"resCall",{method:"streamEnd"})}catch(c){try{await R(e,"resCall",{method:"streamError",error:{message:c.message,stack:c.stack}})}catch{}throw c}return JSON.stringify({__e:"u"})}function be(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||!W.existsSync(t)?null:W.readFileSync(t,"utf8")}async function xe(e,t,o){try{let r=be(o);if(!r)return null;let n=await e.compileModule(r,{filename:`pkg:${o.safeName}`});await n.instantiate(t,c=>{throw new Error(`Unresolved import in package ${o.safeName}: ${c}`)}),await n.evaluate({timeout:1e4});let s=await n.namespace.get("default");return s!==void 0&&s.typeof!=="undefined"?s.derefInto({release:!1}):n.namespace.derefInto({release:!1})}catch{return null}}function re(e,t){let o=n=>{let s=2166136261;for(let c=0;c<n.length;c++)s^=n.charCodeAt(c),s=Math.imul(s,16777619);return(s>>>0).toString(36)},r=new Set(t||[]);return e.map(n=>{let s=n.cacheKey||`${n.filePath||""}:${n.fileUrl||""}:${n.mtimeMs||""}:${n.size||""}:${o(n.sourceCode||"")}`,c=r.has(n.name)?"isolate":"proxy";return`${n.name}:${n.version||""}:${s}:${c}`}).join("|")}function ne(e,t){let o=new Set(t.map(u=>u.name)),r=new Set,n=String(e||""),s=/\b(?:\$ctx\.)?\$pkgs\s*\[\s*(['"`])([^'"`]+)\1\s*\]/g,c=/\brequire\s*\(\s*(['"`])([^'"`]+)\1\s*\)/g,g=/\b(?:\$ctx\.)?\$pkgs\.([A-Za-z_$][\w$]*)/g;for(let u of[s,c])for(let h of n.matchAll(u)){let w=h[2];o.has(w)&&r.add(w)}for(let u of n.matchAll(g)){let h=u[1];o.has(h)&&r.add(h)}return r}async function Ce(e,t,o,r){let n=await e.createContext(),s=n.global;await s.set("global",s.derefInto());let c=[],g=[],u=new Map;for(let l of o){u.set(l.name,l);let m=r.has(l.name)?await xe(e,n,l):null;m!==null?(await s.set(`__pkg_${l.safeName}`,m),c.push(l)):g.push(l)}N.setTaskPackages(t,u),await s.set("__callRef",new O.Reference(async(l,m,P)=>{let k=JSON.parse(P);return m==="pkgCall"?JSON.stringify(await N.executePackageRuntimeCall(l,k)):m==="resCall"?Se(l,k):R(l,m,k)})),await s.set("__fireRef",new O.Reference((l,m,P)=>{let k=JSON.parse(P);Pe(l,m,k)}));let h=c.map(l=>`$pkgs[${JSON.stringify(l.name)}] = __pkg_${l.safeName};`).concat(g.map(l=>`$pkgs[${JSON.stringify(l.name)}] = __createPkgProxy(${JSON.stringify(l.name)}, []);`)).join(`
873
+ `),w=ge(h);return await(await $(e,w,"setup.js")).run(n,{timeout:5e3}),Y.set(n,re(o,r)),ee.set(n,u),n}async function ae(e,t,o,r,n,s){let c=e.isolate,g=re(o,n),u=null;for(let y=e.idleContexts.length-1;y>=0;y--){let l=e.idleContexts[y];if(e.idleContexts.splice(y,1),Y.get(l)===g){u=l,T.reused++;break}try{l.release()}catch{}}u||(u=await Ce(c,t,o,n),T.created++),N.setTaskPackages(t,ee.get(u)||new Map);let h=u.global;return await h.set("__snapshot",new O.ExternalCopy(r).copyInto()),await h.set("__nextTaskId",t),await h.set("__nextTaskTimeoutMs",s),await(await $(c,"__resetTask(__snapshot, __nextTaskId, __nextTaskTimeoutMs);","reset-task.js")).run(u,{timeout:5e3}),u}async function se(e,t){if(!(!t||e.isolate.isDisposed)){try{await(await $(e.isolate,"__cleanupTask();","cleanup-task.js")).run(t,{timeout:5e3})}catch{T.scrubFailed++;try{t.release()}catch{}return}if(e.idleContexts.length>=me){try{t.release()}catch{}T.evicted++;return}e.idleContexts.push(t),T.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 Re=3,Me=["setup.js","extract.js","extract-error-ctx.js","set-status.js","populate-error.js"];function Ae(e){if(!e)return null;let t=e.split(`
874
+ `);for(let o of t){let r=o.match(/at\s+(.+\.js):(\d+):(\d+)/);if(!r)continue;let n=r[1].trim();if(Me.includes(n))continue;let c=parseInt(r[2])-Re;if(!(c<=0))return{line:c,column:parseInt(r[3]),phase:n.replace(".js","")}}return null}function Te(e,t,o){if(!e||!t)return;let r=String(e).split(/\r?\n/),n=Math.max(1,t-1),s=Math.min(r.length,t+1),c=String(s).length,g=[];for(let u=n;u<=s;u++){let h=u===t?">":" ";g.push(`${h} ${String(u).padStart(c," ")}. ${r[u-1]??""}`),u===t&&o&&o>0&&g.push(` ${" ".repeat(c)} ${" ".repeat(Math.max(0,o-1))}^`)}return g.join(`
875
+ `)}function Ne(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 L(e,t){let o=$e(e);if(o)return{message:o.message,statusCode:o.statusCode,errorPath:o.errorPath,details:o.details};let r=Ae(e.stack),n=e.message||"Unknown error",s=r?`${n} (${r.phase}, line ${r.line})`:n,c=Ne(r,t),g=r?Te(c,r.line,r.column):void 0;return{message:s,statusCode:e.statusCode||null,details:r?{...r,codeFrame:g}:void 0}}async function oe(e,t){let o=L(t);await M({type:"result",id:e,success:!1,error:{...o,stack:t.stack,code:t.code}})}async function Je(e){let{id:t,code:o,pkgSources:r,snapshot:n,memoryLimitMb:s,isolatePoolSize:c}=e,g=r||[],u=Math.max(1,Math.trunc(Number(e.timeoutMs)||3e4)),h=ne(o,g),w=te(s,c),y=w.isolate,l=await ae(w,t,g,n,h,u);E.set(t,l);try{let m=`
774
876
  (async () => {
775
877
  "use strict";
776
878
  ${o}
777
879
  })().then((__result) => __extractResult(__result, __result === undefined));
778
- `,k=await(await $(y,m,"handler.js")).run(l,{timeout:u,promise:!0}),A=JSON.parse(k);await M({type:"result",id:t,success:!0,...A})}catch(m){await oe(t,m)}finally{E.delete(t),await se(v,l),ie(t)}}async function Oe(e){let{id:t,codeBlocks:o,pkgSources:r,snapshot:a,memoryLimitMb:s,isolatePoolSize:c}=e,g=r||[],u=Math.max(1,Math.trunc(Number(e.timeoutMs)||3e4)),h=ae((o||[]).map(_=>_.code||"").join(`
779
- `),g),v=te(s,c),y=v.isolate,l=await ne(v,t,g,a,h,u);E.set(t,l);let m=[],P=[],k={},A=0,I=0;for(let _ of o){let f=_.type||"handler";f==="postHook"?(I++,k[`postHook #${I}`]=_.code||"",k.postHook=_.code||"",P.push(_)):(f==="handler"?k.handler=_.code||"":(A++,k[`${f} #${A}`]=_.code||"",k.preHook=_.code||""),m.push(_))}try{let _=null;for(let n=0;n<m.length;n++){let i=m[n],d=i.type||"handler",p=d==="handler"?"handler":`${d} #${n+1}`,w;d==="preHook"?w=`
880
+ `,k=await(await $(y,m,"handler.js")).run(l,{timeout:u,promise:!0}),A=JSON.parse(k);await M({type:"result",id:t,success:!0,...A})}catch(m){await oe(t,m)}finally{E.delete(t),await se(w,l),ie(t)}}async function Oe(e){let{id:t,codeBlocks:o,pkgSources:r,snapshot:n,memoryLimitMb:s,isolatePoolSize:c}=e,g=r||[],u=Math.max(1,Math.trunc(Number(e.timeoutMs)||3e4)),h=ne((o||[]).map(p=>p.code||"").join(`
881
+ `),g),w=te(s,c),y=w.isolate,l=await ae(w,t,g,n,h,u);E.set(t,l);let m=[],P=[],k={},A=0,I=0;for(let p of o){let f=p.type||"handler";f==="postHook"?(I++,k[`postHook #${I}`]=p.code||"",k.postHook=p.code||"",P.push(p)):(f==="handler"?k.handler=p.code||"":(A++,k[`${f} #${A}`]=p.code||"",k.preHook=p.code||""),m.push(p))}try{let p=null;for(let a=0;a<m.length;a++){let i=m[a],d=i.type||"handler",_=d==="handler"?"handler":`${d} #${a+1}`,v;d==="preHook"?v=`
780
882
  (async () => {
781
883
  "use strict";
782
884
  ${i.code}
783
885
  })().then((__r) => {
784
886
  if (__r !== undefined) return JSON.stringify({ __shortCircuit: true, value: __r });
785
887
  return JSON.stringify({ __shortCircuit: false });
786
- });`:w=`
888
+ });`:v=`
787
889
  (async () => {
788
890
  "use strict";
789
891
  ${i.code}
790
892
  })().then((__r) => {
791
893
  $ctx.$data = __r;
792
894
  return "__handler_done__";
793
- });`;try{let C=await(await $(y,w,`${p}.js`)).run(l,{timeout:u,promise:!0});if(d==="preHook"&&typeof C=="string"){let x=JSON.parse(C);if(x.__shortCircuit){let F=await Z(y,l,x.value);await M({type:"result",id:t,success:!0,...F,shortCircuit:!0});return}}}catch(S){_=S;break}}if(!_&&P.length>0&&await(await $(y,'$ctx.$statusCode = 200; "__status_set__";',"set-status.js")).run(l,{timeout:5e3}),_&&P.length>0){let n=D(_,k),i={message:n.message||"Unknown error",name:_.constructor?.name||"Error",stack:_.stack||"",statusCode:n.statusCode||500,details:n.details||{},timestamp:new Date().toISOString()},d=`
895
+ });`;try{let x=await(await $(y,v,`${_}.js`)).run(l,{timeout:u,promise:!0});if(d==="preHook"&&typeof x=="string"){let S=JSON.parse(x);if(S.__shortCircuit){let F=await Z(y,l,S.value);await M({type:"result",id:t,success:!0,...F,shortCircuit:!0});return}}}catch(b){p=b;break}}if(!p&&P.length>0&&await(await $(y,'$ctx.$statusCode = 200; "__status_set__";',"set-status.js")).run(l,{timeout:5e3}),p&&P.length>0){let a=L(p,k),i={message:a.message||"Unknown error",name:p.constructor?.name||"Error",stack:p.stack||"",statusCode:a.statusCode||500,details:a.details||{},timestamp:new Date().toISOString()},d=`
794
896
  $ctx.$error = ${JSON.stringify(i)};
795
897
  $ctx.$data = null;
796
898
  $ctx.$statusCode = ${i.statusCode};
@@ -804,11 +906,11 @@ if ($ctx.$api) {
804
906
  timestamp: ${JSON.stringify(i.timestamp)},
805
907
  };
806
908
  }
807
- "__error_populated__";`;await(await y.compileScript(d,{filename:"populate-error.js"})).run(l,{timeout:5e3})}for(let n=0;n<P.length;n++){let i=P[n],d=`postHook #${n+1}`,p=`
909
+ "__error_populated__";`;await(await y.compileScript(d,{filename:"populate-error.js"})).run(l,{timeout:5e3})}for(let a=0;a<P.length;a++){let i=P[a],d=`postHook #${a+1}`,_=`
808
910
  (async () => {
809
911
  "use strict";
810
912
  ${i.code}
811
913
  })().then((__r) => {
812
914
  if (__r !== undefined) $ctx.$data = __r;
813
915
  return "__posthook_done__";
814
- });`;try{await(await $(y,p,`${d}.js`)).run(l,{timeout:u,promise:!0})}catch{}}if(_){let n=D(_,k),i;try{let w=await(await $(y,"(async () => JSON.stringify(await __extractCtxChanges()))()","extract-error-ctx.js")).run(l,{timeout:5e3,promise:!0});i=JSON.parse(w)}catch{}await M({type:"result",id:t,success:!1,error:{message:n.message,statusCode:n.statusCode,errorPath:n.errorPath,stack:_.stack,code:_.code,details:n.details},ctxChanges:i});return}let f=await Z(y,l);await M({type:"result",id:t,success:!0,...f})}catch(_){await oe(t,_)}finally{E.delete(t),await se(v,l),ie(t)}}function ie(e){T.cleanupTaskPackages(e)}function Ee(){T.shutdownPackageRuntime()}process.on("exit",Ee);async function Z(e,t,o){if(o!==void 0){let c=`__extractResult(${JSON.stringify(o)}, false)`,u=await(await e.compileScript(c,{filename:"extract.js"})).run(t,{timeout:5e3,promise:!0});return JSON.parse(u)}let s=await(await $(e,"__extractResult($ctx.$data, $ctx.$data === undefined)","extract.js")).run(t,{timeout:5e3,promise:!0});return JSON.parse(s)}
916
+ });`;try{await(await $(y,_,`${d}.js`)).run(l,{timeout:u,promise:!0})}catch{}}if(p){let a=L(p,k),i;try{let v=await(await $(y,"(async () => JSON.stringify(await __extractCtxChanges()))()","extract-error-ctx.js")).run(l,{timeout:5e3,promise:!0});i=JSON.parse(v)}catch{}await M({type:"result",id:t,success:!1,error:{message:a.message,statusCode:a.statusCode,errorPath:a.errorPath,stack:p.stack,code:p.code,details:a.details},ctxChanges:i});return}let f=await Z(y,l);await M({type:"result",id:t,success:!0,...f})}catch(p){await oe(t,p)}finally{E.delete(t),await se(w,l),ie(t)}}function ie(e){N.cleanupTaskPackages(e)}function Ee(){N.shutdownPackageRuntime()}process.on("exit",Ee);async function Z(e,t,o){if(o!==void 0){let c=`__extractResult(${JSON.stringify(o)}, false)`,u=await(await e.compileScript(c,{filename:"extract.js"})).run(t,{timeout:5e3,promise:!0});return JSON.parse(u)}let s=await(await $(e,"__extractResult($ctx.$data, $ctx.$data === undefined)","extract.js")).run(t,{timeout:5e3,promise:!0});return JSON.parse(s)}