@enfyra/kernel 1.1.44 → 1.1.46

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 W=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var G=W((Ue,z)=>{"use strict";var{fork:fe}=require("child_process"),de=require("path");function pe({workerDir:t,activeTaskContexts:e}){let s=new Map,r=new Map,a=new Map,o=null,c=0;function y(u){return Math.max(1,Math.trunc(Number(u)||3e4))}function f(u){for(let n of r.values())clearTimeout(n.timer),n.reject(u);r.clear()}function d(u){let n=typeof u=="string"?JSON.parse(u):u;if(n?.error)throw new Error(n.error);return n?.value}async function k(u){let n=e.get(u.taskId);if(!n)throw new Error(`Package callback context not found: ${u.taskId}`);let i=JSON.stringify(u.callbackId),p=JSON.stringify(u.argsJson||"[]"),_=await n.evalClosure(`return __invokeRuntimeCallback(${i}, ${p});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}});return d(_)}function w(){if(o&&o.connected)return o;let u=de.join(t,"package-runtime.child.js"),n=fe(u,[],{stdio:["ignore","ignore","ignore","ipc"],env:{PATH:process.env.PATH||"",HOME:process.env.HOME||"",NODE_ENV:process.env.NODE_ENV||"production",TMPDIR:process.env.TMPDIR||"",LANG:process.env.LANG||""}});return o=n,n.on("message",i=>{if(!i||!i.id)return;if(i.type==="pkgStreamChunk"){let _=a.get(i.id);if(!_)return;_.onChunk(Buffer.from(i.chunk||"","base64")).then(()=>{try{n.send({type:"pkgStreamAck",ackId:i.ackId})}catch{}}).catch(v=>{try{n.send({type:"pkgStreamError",ackId:i.ackId,error:{message:v.message,stack:v.stack}})}catch{}});return}if(i.type==="pkgCallbackCall"){k(i).then(_=>{try{n.send({type:"pkgCallbackResult",id:i.id,value:_})}catch{}}).catch(_=>{try{n.send({type:"pkgCallbackError",id:i.id,error:{message:_.message,stack:_.stack}})}catch{}});return}let p=r.get(i.id);if(p)if(clearTimeout(p.timer),r.delete(i.id),a.delete(i.id),i.ok)p.resolve(i.value);else{let _=new Error(i.error?.message||"Package runtime call failed");_.stack=i.error?.stack||_.stack,p.reject(_)}}),n.on("exit",(i,p)=>{o===n&&(o=null),f(new Error(`Package runtime exited${p?` with signal ${p}`:` with code ${i}`}`))}),n.on("error",i=>{o===n&&(o=null),f(i)}),n}function l(u){return new Promise((n,i)=>{let p=w(),_=`pkg_${++c}`,v=y(u.timeoutMs),x=setTimeout(()=>{r.delete(_),a.delete(_);try{p.kill()}catch{}i(new Error(`Package runtime call timed out after ${v}ms`))},v);r.set(_,{resolve:n,reject:i,timer:x});try{p.send({...u,id:_},C=>{C&&(clearTimeout(x),r.delete(_),i(C))})}catch(C){clearTimeout(x),r.delete(_),i(C)}})}function g(u,n,i,p=[],_=3e4){return new Promise((v,x)=>{let C=w(),b=`pkg_${++c}`,F=y(_),q=setTimeout(()=>{r.delete(b),a.delete(b);try{C.kill()}catch{}x(new Error(`Package runtime stream timed out after ${F}ms`))},F);r.set(b,{resolve:v,reject:x,timer:q}),a.set(b,{onChunk:i});try{C.send({op:"streamHandle",taskId:u,handleId:n,path:p,id:b,timeoutMs:F},L=>{L&&(clearTimeout(q),r.delete(b),a.delete(b),x(L))})}catch(L){clearTimeout(q),r.delete(b),a.delete(b),x(L)}})}function P(u){try{if(!o||!o.connected)return;o.send({...u,id:`pkg_${++c}`,fire:!0})}catch{}}function m(u){try{let n=w();if(!n.connected)return;n.send({op:"cancelTask",taskId:u,id:`pkg_${++c}`,fire:!0})}catch{}}async function S(u,n){let i=s.get(u);if(!i)throw new Error("Package context is not available");if(n.handleId)return l({op:n.kind==="get"?"handleGet":"handleCall",taskId:u,handleId:n.handleId,path:n.path||[],argsJson:n.argsJson||"[]",timeoutMs:n.timeoutMs});let p=i.get(n.packageName);if(!p)throw new Error(`Package "${n.packageName}" is not available`);return l({op:n.kind==="construct"?"construct":"call",taskId:u,packageName:n.packageName,package:{name:p.name,fileUrl:p.fileUrl},path:n.path||[],argsJson:n.argsJson||"[]",timeoutMs:n.timeoutMs})}function E(u,n){s.set(u,n)}function j(u){s.delete(u),P({op:"releaseTask",taskId:u})}function h(){if(o){try{o.kill()}catch{}o=null}}return{cleanupTaskPackages:j,cancelTask:m,executePackageRuntimeCall:S,setTaskPackages:E,streamPackageHandle:g,shutdownPackageRuntime:h}}z.exports={createPackageRuntimeBridge:pe}});var Z=W((Le,X)=>{"use strict";var _e=`
1
+ "use strict";var W=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var G=W((De,z)=>{"use strict";var{fork:fe}=require("child_process"),de=require("path");function pe({workerDir:t,activeTaskContexts:e}){let s=new Map,r=new Map,n=new Map,o=null,c=0;function g(f){return Math.max(1,Math.trunc(Number(f)||3e4))}function d(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=e.get(f.taskId);if(!a)throw new Error(`Package callback context not found: ${f.taskId}`);let i=JSON.stringify(f.callbackId),p=JSON.stringify(f.argsJson||"[]"),_=await a.evalClosure(`return __invokeRuntimeCallback(${i}, ${p});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}});return h(_)}function b(){if(o&&o.connected)return o;let f=de.join(t,"package-runtime.child.js"),a=fe(f,[],{stdio:["ignore","ignore","ignore","ipc"],env:{PATH:process.env.PATH||"",HOME:process.env.HOME||"",NODE_ENV:process.env.NODE_ENV||"production",TMPDIR:process.env.TMPDIR||"",LANG:process.env.LANG||""}});return o=a,a.on("message",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(x=>{try{a.send({type:"pkgStreamError",ackId:i.ackId,error:{message:x.message,stack:x.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 p=r.get(i.id);if(p)if(clearTimeout(p.timer),r.delete(i.id),n.delete(i.id),i.ok)p.resolve(i.value);else{let _=new Error(i.error?.message||"Package runtime call failed");_.stack=i.error?.stack||_.stack,p.reject(_)}}),a.on("exit",(i,p)=>{o===a&&(o=null),d(new Error(`Package runtime exited${p?` with signal ${p}`:` with code ${i}`}`))}),a.on("error",i=>{o===a&&(o=null),d(i)}),a}function l(f){return new Promise((a,i)=>{let p=b(),_=`pkg_${++c}`,x=g(f.timeoutMs),$=setTimeout(()=>{r.delete(_),n.delete(_);try{p.kill()}catch{}i(new Error(`Package runtime call timed out after ${x}ms`))},x);r.set(_,{resolve:a,reject:i,timer:$});try{p.send({...f,id:_},R=>{R&&(clearTimeout($),r.delete(_),i(R))})}catch(R){clearTimeout($),r.delete(_),i(R)}})}function u(f,a,i,p=[],_=3e4){return new Promise((x,$)=>{let R=b(),S=`pkg_${++c}`,F=g(_),q=setTimeout(()=>{r.delete(S),n.delete(S);try{R.kill()}catch{}$(new Error(`Package runtime stream timed out after ${F}ms`))},F);r.set(S,{resolve:x,reject:$,timer:q}),n.set(S,{onChunk:i});try{R.send({op:"streamHandle",taskId:f,handleId:a,path:p,id:S,timeoutMs:F},L=>{L&&(clearTimeout(q),r.delete(S),n.delete(S),$(L))})}catch(L){clearTimeout(q),r.delete(S),n.delete(S),$(L)}})}function k(f){try{if(!o||!o.connected)return;o.send({...f,id:`pkg_${++c}`,fire:!0})}catch{}}function y(f){try{let a=b();if(!a.connected)return;a.send({op:"cancelTask",taskId:f,id:`pkg_${++c}`,fire:!0})}catch{}}async function v(f,a){let i=s.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 p=i.get(a.packageName);if(!p)throw new Error(`Package "${a.packageName}" is not available`);return l({op:a.kind==="construct"?"construct":"call",taskId:f,packageName:a.packageName,package:{name:p.name,fileUrl:p.fileUrl},path:a.path||[],argsJson:a.argsJson||"[]",timeoutMs:a.timeoutMs})}function C(f,a){s.set(f,a)}function P(f){s.delete(f),k({op:"releaseTask",taskId:f})}function m(){if(o){try{o.kill()}catch{}o=null}}return{cleanupTaskPackages:P,cancelTask:y,executePackageRuntimeCall:v,setTaskPackages:C,streamPackageHandle:u,shutdownPackageRuntime:m}}z.exports={createPackageRuntimeBridge:pe}});var Z=W((Le,X)=>{"use strict";var _e=`
2
2
  "use strict";
3
3
  let $ctx = {};
4
4
  let $pkgs = {};
@@ -229,34 +229,49 @@ async function __streamResponseFromLocalReadable(stream, options) {
229
229
  const observer = typeof options?.observer === 'function'
230
230
  ? options.observer
231
231
  : null;
232
+ const transform = typeof options?.transform === 'function'
233
+ ? options.transform
234
+ : null;
235
+ const decoder = observer || transform ? new TextDecoder('utf-8') : null;
232
236
  const relayOptions = { ...(options || {}) };
233
237
  delete relayOptions.observer;
234
- const notifyObserver = async (chunk, kind) => {
238
+ delete relayOptions.transform;
239
+ const notifyObserver = async (text, kind) => {
235
240
  if (!observer) return;
236
- let text;
237
- try {
238
- text = new TextDecoder().decode(__streamChunkToBytes(chunk));
239
- } catch {
240
- text = '';
241
- }
242
241
  try {
243
242
  await observer(text, kind);
244
243
  } catch {}
245
244
  };
245
+ const relayChunk = async (chunk, kind, text) => {
246
+ let output = chunk;
247
+ if (transform) {
248
+ const transformed = await transform(text, kind);
249
+ if (transformed === null) return;
250
+ if (transformed !== undefined) output = String(transformed);
251
+ }
252
+ const bytes = __streamChunkToBytes(output);
253
+ if (bytes.byteLength === 0) return;
254
+ await __call('resCall', JSON.stringify({
255
+ method: 'streamChunk',
256
+ chunk: __bytesToBase64(bytes),
257
+ }));
258
+ };
246
259
  await __call('resCall', JSON.stringify({
247
260
  method: 'streamStart',
248
261
  argsJson: JSON.stringify([null, relayOptions]),
249
262
  }));
250
263
  try {
251
264
  for await (const chunk of stream) {
252
- await notifyObserver(chunk, 'chunk');
253
- await __call('resCall', JSON.stringify({
254
- method: 'streamChunk',
255
- chunk: __bytesToBase64(__streamChunkToBytes(chunk)),
256
- }));
257
- }
265
+ let text = '';
266
+ try { text = decoder ? decoder.decode(__streamChunkToBytes(chunk), { stream: true }) : ''; } catch {}
267
+ await notifyObserver(text, 'chunk');
268
+ await relayChunk(chunk, 'chunk', text);
269
+ }
270
+ let endText = '';
271
+ try { endText = decoder ? decoder.decode() : ''; } catch {}
272
+ await notifyObserver(endText, 'end');
273
+ await relayChunk('', 'end', endText);
258
274
  await __call('resCall', JSON.stringify({ method: 'streamEnd' }));
259
- await notifyObserver('', 'end');
260
275
  } catch (error) {
261
276
  try {
262
277
  await __call('resCall', JSON.stringify({
@@ -406,10 +421,28 @@ if (typeof TextEncoder === 'undefined') {
406
421
 
407
422
  if (typeof TextDecoder === 'undefined') {
408
423
  globalThis.TextDecoder = class TextDecoder {
409
- decode(input = new Uint8Array()) {
410
- const bytes = ArrayBuffer.isView(input) ? input : new Uint8Array(input);
424
+ constructor() {
425
+ this.__pending = new Uint8Array();
426
+ }
427
+
428
+ decode(input = new Uint8Array(), options = {}) {
429
+ const source = ArrayBuffer.isView(input) ? input : new Uint8Array(input);
430
+ const bytes = new Uint8Array(this.__pending.length + source.byteLength);
431
+ bytes.set(this.__pending);
432
+ bytes.set(new Uint8Array(source.buffer, source.byteOffset, source.byteLength), this.__pending.length);
433
+ let completeLength = bytes.length;
434
+ if (options.stream) {
435
+ let start = bytes.length;
436
+ while (start > 0 && bytes[start - 1] >= 0x80 && bytes[start - 1] <= 0xbf) start--;
437
+ if (start < bytes.length) {
438
+ const lead = bytes[start];
439
+ const expectedLength = lead >= 0xf0 ? 4 : lead >= 0xe0 ? 3 : lead >= 0xc0 ? 2 : 1;
440
+ if (expectedLength > bytes.length - start) completeLength = start;
441
+ }
442
+ }
411
443
  let binary = '';
412
- for (let i = 0; i < bytes.length; i++) binary += String.fromCharCode(bytes[i]);
444
+ for (let i = 0; i < completeLength; i++) binary += String.fromCharCode(bytes[i]);
445
+ this.__pending = options.stream ? bytes.slice(completeLength) : new Uint8Array();
413
446
  return decodeURIComponent(escape(binary));
414
447
  }
415
448
  };
@@ -916,30 +949,30 @@ function __cleanupTask() {
916
949
  __pendingRuntimeTasks = [];
917
950
  return true;
918
951
  }
919
- `;function ge(t){return _e.replace("%%PKG_SETUP%%",t)}X.exports={buildSetupCode:ge}});var{parentPort:M}=require("worker_threads"),Q=require("fs"),{fileURLToPath:ye}=require("url"),{createPackageRuntimeBridge:he}=G(),{buildSetupCode:me}=Z(),U;try{U=require("isolated-vm")}catch(t){M.postMessage({type:"error",message:"isolated-vm not available: "+t.message}),process.exit(1)}var D=new Map,ne=0,O=new Map,T=new Map,J=he({workerDir:__dirname,activeTaskContexts:O}),ke=500,ve=5e3,we=32,Y=new WeakMap,ae=new WeakMap,se=new WeakMap,I={created:0,reused:0,released:0,evicted:0,scrubFailed:0};function H(t){let e=T.get(t);return Math.max(1,Math.ceil((e??Date.now()+3e4)-Date.now()))}var $=null,Pe=0,ee=0,te=0;async function be(){let t=Date.now();if(t-ee<ve)return te;if(ee=t,!$)return 0;let e=0;for(let s of $){let r=s?.isolate;if(!(!r||r.isDisposed))try{let a=await r.getHeapStatistics(),o=a.heap_size_limit||1,c=a.used_heap_size/o;c>e&&(e=c)}catch{}}return te=e,e}async function A(t){t.heapRatio=await be(),t.contextStats=xe(),M.postMessage(t)}function xe(){let t=0;if($)for(let e of $)t+=e?.idleContexts?.length||0;return{...I,idle:t}}function oe(t,e){if(!$){let a=Math.max(1,Math.trunc(Number(e)||8));$=new Array(a).fill(null)}let s=Pe++%$.length,r=$[s];return(!r||!r.isolate||r.isolate.isDisposed)&&(r={isolate:new U.Isolate({memoryLimit:t}),idleContexts:[]},$[s]=r),r}async function R(t,e,s){let r=Y.get(t);r||(r=new Map,Y.set(t,r));let a=r.get(e);if(a)return a;let o;try{o=await t.compileScript(e,{filename:s})}catch(c){throw c&&typeof c=="object"&&(c.executionStage="compile"),c}if(r.set(e,o),r.size>ke){let c=r.keys().next().value;r.delete(c)}return o}M.on("message",async t=>{if(t.type==="execute")Ie(t).catch(async e=>{await A({type:"result",id:t.id,success:!1,error:{message:e.message,stack:e.stack}})});else if(t.type==="executeBatch")He(t).catch(async e=>{await A({type:"result",id:t.id,success:!1,error:{message:e.message,stack:e.stack}})});else if(t.type==="invokeRuntimeCallback")Se(t).catch(e=>{M.postMessage({type:"runtimeCallbackResult",callId:t.callId,error:e?.message||String(e)})});else if(t.type==="callResult"){let e=D.get(t.callId);e&&(D.delete(t.callId),e.resolve(t.result))}else if(t.type==="callError"){let e=D.get(t.callId);e&&(D.delete(t.callId),e.reject(new Error(t.error)))}else t.type==="cancelTask"&&J.cancelTask(t.id)});async function Se(t){let e=O.get(t.id);if(!e){M.postMessage({type:"runtimeCallbackResult",callId:t.callId,error:`Runtime callback context not found: ${t.id}`});return}let s=await e.evalClosure(`return __invokeRuntimeCallback(${JSON.stringify(t.callbackId)}, ${JSON.stringify(t.argsJson||"[]")});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}}),r=JSON.parse(s);M.postMessage({type:"runtimeCallbackResult",callId:t.callId,...r})}function N(t,e,s){return new Promise((r,a)=>{let o=`cb_${++ne}`;D.set(o,{resolve:r,reject:a}),M.postMessage({type:e,id:t,callId:o,...s})})}function Ce(t,e,s){M.postMessage({type:e,id:t,callId:`f_${++ne}`,...s})}async function $e(t,e){if(e?.method!=="stream")return N(t,"resCall",e);let s=JSON.parse(e.argsJson||"[]"),r=s[0],a=s[1]||{},o=r?.__pkgHandleArg;if(!o)return N(t,"resCall",e);let c=a.observer&&typeof a.observer=="object"?a.observer.__fnRef:null;delete a.observer;let y={...a};await N(t,"resCall",{method:"streamStart",argsJson:JSON.stringify([null,y])});let f=async(d,k)=>{if(!c)return;let w=O.get(t);if(!w)return;let l;try{l=Buffer.from(d).toString("utf8")}catch{l=""}try{await w.evalClosure(`return __invokeRuntimeCallback(${JSON.stringify(c)}, ${JSON.stringify(JSON.stringify([l,k]))});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}})}catch{}};try{await J.streamPackageHandle(t,o,async d=>{await f(d,"chunk"),await N(t,"resCall",{method:"streamChunk",chunk:Buffer.from(d).toString("base64")})},[],H(t)),await N(t,"resCall",{method:"streamEnd"}),await f("","end")}catch(d){try{await N(t,"resCall",{method:"streamError",error:{message:d.message,stack:d.stack}})}catch{}throw await f("","error"),d}return JSON.stringify({__e:"u"})}function Re(t){if(typeof t.sourceCode=="string"&&t.sourceCode.length>0)return t.sourceCode;let e=t.filePath;return!e&&typeof t.fileUrl=="string"&&t.fileUrl.startsWith("file://")&&(e=ye(t.fileUrl)),!e||!Q.existsSync(e)?null:Q.readFileSync(e,"utf8")}async function Me(t,e,s){try{let r=Re(s);if(!r)return null;let a=await t.compileModule(r,{filename:`pkg:${s.safeName}`});await a.instantiate(e,c=>{throw new Error(`Unresolved import in package ${s.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 ie(t,e){let s=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(e||[]);return t.map(a=>{let o=a.cacheKey||`${a.filePath||""}:${a.fileUrl||""}:${a.mtimeMs||""}:${a.size||""}:${s(a.sourceCode||"")}`,c=r.has(a.name)?"isolate":"proxy";return`${a.name}:${a.version||""}:${o}:${c}`}).join("|")}function ce(t,e){let s=new Set(e.map(f=>f.name)),r=new Set,a=String(t||""),o=/\b(?:\$ctx\.)?\$pkgs\s*\[\s*(['"`])([^'"`]+)\1\s*\]/g,c=/\brequire\s*\(\s*(['"`])([^'"`]+)\1\s*\)/g,y=/\b(?:\$ctx\.)?\$pkgs\.([A-Za-z_$][\w$]*)/g;for(let f of[o,c])for(let d of a.matchAll(f)){let k=d[2];s.has(k)&&r.add(k)}for(let f of a.matchAll(y)){let d=f[1];s.has(d)&&r.add(d)}return r}async function Ne(t,e,s,r){let a=await t.createContext(),o=a.global;await o.set("global",o.derefInto());let c=[],y=[],f=new Map;for(let l of s){f.set(l.name,l);let g=r.has(l.name)?await Me(t,a,l):null;g!==null?(await o.set(`__pkg_${l.safeName}`,g),c.push(l)):y.push(l)}J.setTaskPackages(e,f),await o.set("__callRef",new U.Reference(async(l,g,P)=>{let m=JSON.parse(P);return g==="pkgCall"?JSON.stringify(await J.executePackageRuntimeCall(l,m)):g==="resCall"?$e(l,m):N(l,g,m)})),await o.set("__fireRef",new U.Reference((l,g,P)=>{let m=JSON.parse(P);Ce(l,g,m)}));let d=c.map(l=>`$pkgs[${JSON.stringify(l.name)}] = __pkg_${l.safeName};`).concat(y.map(l=>`$pkgs[${JSON.stringify(l.name)}] = __createPkgProxy(${JSON.stringify(l.name)}, []);`)).join(`
920
- `),k=me(d);return await(await R(t,k,"setup.js")).run(a,{timeout:H(e)}),ae.set(a,ie(s,r)),se.set(a,f),a}async function le(t,e,s,r,a,o,c){let y=t.isolate,f=ie(s,a),d=null;for(let l=t.idleContexts.length-1;l>=0;l--){let g=t.idleContexts[l];if(t.idleContexts.splice(l,1),ae.get(g)===f){d=g,I.reused++;break}try{g.release()}catch{}}d||(d=await Ne(y,e,s,a),I.created++),J.setTaskPackages(e,se.get(d)||new Map);let k=d.global;return await k.set("__snapshot",new U.ExternalCopy(r).copyInto()),await k.set("__nextTaskId",e),await k.set("__nextTaskTimeoutMs",o),await k.set("__nextTaskDeadlineMs",c),await(await R(y,"__resetTask(__snapshot, __nextTaskId, __nextTaskTimeoutMs, __nextTaskDeadlineMs);","reset-task.js")).run(d,{timeout:H(e)}),d}async function ue(t,e){if(!(!e||t.isolate.isDisposed)){try{await(await R(t.isolate,"__cleanupTask();","cleanup-task.js")).run(e,{timeout:5e3})}catch{I.scrubFailed++;try{e.release()}catch{}return}if(t.idleContexts.length>=we){try{e.release()}catch{}I.evicted++;return}t.idleContexts.push(e),I.released++}}function Te(t){try{let e=JSON.parse(t.message);if(e&&e.__userThrow)return{...e,message:e.message??t.message}}catch{}return null}var Ae=3,Oe=["setup.js","extract.js","extract-error-ctx.js","set-status.js","populate-error.js"];function Je(t){if(!t)return null;let e=t.split(`
921
- `);for(let s of e){let r=s.match(/at\s+(.+\.js):(\d+):(\d+)/);if(!r)continue;let a=r[1].trim();if(Oe.includes(a))continue;let c=parseInt(r[2])-Ae;if(!(c<=0))return{line:c,column:parseInt(r[3]),phase:a.replace(".js","")}}return null}function Ee(t,e,s){if(!t||!e)return;let r=String(t).split(/\r?\n/),a=Math.max(1,e-1),o=Math.min(r.length,e+1),c=String(o).length,y=[];for(let f=a;f<=o;f++){let d=f===e?">":" ";y.push(`${d} ${String(f).padStart(c," ")}. ${r[f-1]??""}`),f===e&&s&&s>0&&y.push(` ${" ".repeat(c)} ${" ".repeat(Math.max(0,s-1))}^`)}return y.join(`
922
- `)}function je(t,e){if(!(!t||!e)){if(e[t.phase])return e[t.phase];if(t.phase?.startsWith("preHook"))return e.preHook;if(t.phase?.startsWith("postHook"))return e.postHook}}function V(t,e){let s=Te(t);if(s)return{message:s.message,statusCode:s.statusCode,errorPath:s.errorPath,details:s.details};let r=Je(t.stack),a=t.message||"Unknown error",o=r?`${a} (${r.phase}, line ${r.line})`:a,c=je(r,e),y=r?Ee(c,r.line,r.column):void 0;return{message:o,statusCode:t.statusCode||null,details:{errorName:t.name||null,executionStage:t.executionStage||"runtime",...r?{...r,codeFrame:y}:{}}}}async function K(t,e,s){let r=V(e,s);await A({type:"result",id:t,success:!1,error:{...r,stack:e.stack,code:e.code}})}async function Ie(t){let{id:e,code:s,pkgSources:r,snapshot:a,memoryLimitMb:o,isolatePoolSize:c}=t,y={handler:t.sourceCode||s||""},f=r||[],d=Math.max(1,Math.trunc(Number(t.timeoutMs)||3e4)),k=Date.now()+d;T.set(e,k);let w=ce(s,f),l=oe(o,c),g=l.isolate,P;try{P=await le(l,e,f,a,w,d,k)}catch(m){T.delete(e),B(e),await K(e,m,y);return}O.set(e,P);try{let m=`
952
+ `;function ge(t){return _e.replace("%%PKG_SETUP%%",t)}X.exports={buildSetupCode:ge}});var{parentPort:A}=require("worker_threads"),Q=require("fs"),{fileURLToPath:ye}=require("url"),{createPackageRuntimeBridge:he}=G(),{buildSetupCode:me}=Z(),D;try{D=require("isolated-vm")}catch(t){A.postMessage({type:"error",message:"isolated-vm not available: "+t.message}),process.exit(1)}var U=new Map,ne=0,E=new Map,O=new Map,j=he({workerDir:__dirname,activeTaskContexts:E}),ke=500,we=5e3,ve=32,Y=new WeakMap,ae=new WeakMap,se=new WeakMap,I={created:0,reused:0,released:0,evicted:0,scrubFailed:0};function H(t){let e=O.get(t);return Math.max(1,Math.ceil((e??Date.now()+3e4)-Date.now()))}var M=null,be=0,ee=0,te=0;async function Pe(){let t=Date.now();if(t-ee<we)return te;if(ee=t,!M)return 0;let e=0;for(let s of M){let r=s?.isolate;if(!(!r||r.isDisposed))try{let n=await r.getHeapStatistics(),o=n.heap_size_limit||1,c=n.used_heap_size/o;c>e&&(e=c)}catch{}}return te=e,e}async function J(t){t.heapRatio=await Pe(),t.contextStats=xe(),A.postMessage(t)}function xe(){let t=0;if(M)for(let e of M)t+=e?.idleContexts?.length||0;return{...I,idle:t}}function oe(t,e){if(!M){let n=Math.max(1,Math.trunc(Number(e)||8));M=new Array(n).fill(null)}let s=be++%M.length,r=M[s];return(!r||!r.isolate||r.isolate.isDisposed)&&(r={isolate:new D.Isolate({memoryLimit:t}),idleContexts:[]},M[s]=r),r}async function T(t,e,s){let r=Y.get(t);r||(r=new Map,Y.set(t,r));let n=r.get(e);if(n)return n;let o;try{o=await t.compileScript(e,{filename:s})}catch(c){throw c&&typeof c=="object"&&(c.executionStage="compile"),c}if(r.set(e,o),r.size>ke){let c=r.keys().next().value;r.delete(c)}return o}A.on("message",async t=>{if(t.type==="execute")Ie(t).catch(async e=>{await J({type:"result",id:t.id,success:!1,error:{message:e.message,stack:e.stack}})});else if(t.type==="executeBatch")He(t).catch(async e=>{await J({type:"result",id:t.id,success:!1,error:{message:e.message,stack:e.stack}})});else if(t.type==="invokeRuntimeCallback")Se(t).catch(e=>{A.postMessage({type:"runtimeCallbackResult",callId:t.callId,error:e?.message||String(e)})});else if(t.type==="callResult"){let e=U.get(t.callId);e&&(U.delete(t.callId),e.resolve(t.result))}else if(t.type==="callError"){let e=U.get(t.callId);e&&(U.delete(t.callId),e.reject(new Error(t.error)))}else t.type==="cancelTask"&&j.cancelTask(t.id)});async function Se(t){let e=E.get(t.id);if(!e){A.postMessage({type:"runtimeCallbackResult",callId:t.callId,error:`Runtime callback context not found: ${t.id}`});return}let s=await e.evalClosure(`return __invokeRuntimeCallback(${JSON.stringify(t.callbackId)}, ${JSON.stringify(t.argsJson||"[]")});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}}),r=JSON.parse(s);A.postMessage({type:"runtimeCallbackResult",callId:t.callId,...r})}function N(t,e,s){return new Promise((r,n)=>{let o=`cb_${++ne}`;U.set(o,{resolve:r,reject:n}),A.postMessage({type:e,id:t,callId:o,...s})})}function Ce(t,e,s){A.postMessage({type:e,id:t,callId:`f_${++ne}`,...s})}async function $e(t,e){if(e?.method!=="stream")return N(t,"resCall",e);let s=JSON.parse(e.argsJson||"[]"),r=s[0],n=s[1]||{},o=r?.__pkgHandleArg;if(!o)return N(t,"resCall",e);let c=n.observer&&typeof n.observer=="object"?n.observer.__fnRef:null,g=n.transform&&typeof n.transform=="object"?n.transform.__fnRef:null,d=c||g?new TextDecoder("utf-8"):null;delete n.observer,delete n.transform;let h={...n};await N(t,"resCall",{method:"streamStart",argsJson:JSON.stringify([null,h])});let w=async(u,k,y)=>{if(!u)return;let v=E.get(t);if(!v)return;let C=await v.evalClosure(`return __invokeRuntimeCallback(${JSON.stringify(u)}, ${JSON.stringify(JSON.stringify([k,y]))});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}}),P=JSON.parse(C);if(P?.error)throw new Error(P.error);if(P?.value?.__e!=="u")return P?.value},b=async(u,k)=>{if(c)try{await w(c,u,k)}catch{}},l=async(u,k,y)=>{let v=u;if(g){let P=await w(g,y,k);if(P===null)return;P!==void 0&&(v=Buffer.from(String(P)))}let C=Buffer.from(v);C.length!==0&&await N(t,"resCall",{method:"streamChunk",chunk:C.toString("base64")})};try{await j.streamPackageHandle(t,o,async k=>{let y="";try{y=d?d.decode(Buffer.from(k),{stream:!0}):""}catch{}await b(y,"chunk"),await l(k,"chunk",y)},[],H(t));let u="";try{u=d?d.decode():""}catch{}await b(u,"end"),await l("","end",u),await N(t,"resCall",{method:"streamEnd"})}catch(u){try{await N(t,"resCall",{method:"streamError",error:{message:u.message,stack:u.stack}})}catch{}throw await b("","error"),u}return JSON.stringify({__e:"u"})}function Re(t){if(typeof t.sourceCode=="string"&&t.sourceCode.length>0)return t.sourceCode;let e=t.filePath;return!e&&typeof t.fileUrl=="string"&&t.fileUrl.startsWith("file://")&&(e=ye(t.fileUrl)),!e||!Q.existsSync(e)?null:Q.readFileSync(e,"utf8")}async function Me(t,e,s){try{let r=Re(s);if(!r)return null;let n=await t.compileModule(r,{filename:`pkg:${s.safeName}`});await n.instantiate(e,c=>{throw new Error(`Unresolved import in package ${s.safeName}: ${c}`)}),await n.evaluate({timeout:1e4});let o=await n.namespace.get("default");return o!==void 0&&o.typeof!=="undefined"?o.derefInto({release:!1}):n.namespace.derefInto({release:!1})}catch{return null}}function ie(t,e){let s=n=>{let o=2166136261;for(let c=0;c<n.length;c++)o^=n.charCodeAt(c),o=Math.imul(o,16777619);return(o>>>0).toString(36)},r=new Set(e||[]);return t.map(n=>{let o=n.cacheKey||`${n.filePath||""}:${n.fileUrl||""}:${n.mtimeMs||""}:${n.size||""}:${s(n.sourceCode||"")}`,c=r.has(n.name)?"isolate":"proxy";return`${n.name}:${n.version||""}:${o}:${c}`}).join("|")}function ce(t,e){let s=new Set(e.map(d=>d.name)),r=new Set,n=String(t||""),o=/\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 d of[o,c])for(let h of n.matchAll(d)){let w=h[2];s.has(w)&&r.add(w)}for(let d of n.matchAll(g)){let h=d[1];s.has(h)&&r.add(h)}return r}async function Te(t,e,s,r){let n=await t.createContext(),o=n.global;await o.set("global",o.derefInto());let c=[],g=[],d=new Map;for(let l of s){d.set(l.name,l);let u=r.has(l.name)?await Me(t,n,l):null;u!==null?(await o.set(`__pkg_${l.safeName}`,u),c.push(l)):g.push(l)}j.setTaskPackages(e,d),await o.set("__callRef",new D.Reference(async(l,u,k)=>{let y=JSON.parse(k);return u==="pkgCall"?JSON.stringify(await j.executePackageRuntimeCall(l,y)):u==="resCall"?$e(l,y):N(l,u,y)})),await o.set("__fireRef",new D.Reference((l,u,k)=>{let y=JSON.parse(k);Ce(l,u,y)}));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(`
953
+ `),w=me(h);return await(await T(t,w,"setup.js")).run(n,{timeout:H(e)}),ae.set(n,ie(s,r)),se.set(n,d),n}async function le(t,e,s,r,n,o,c){let g=t.isolate,d=ie(s,n),h=null;for(let l=t.idleContexts.length-1;l>=0;l--){let u=t.idleContexts[l];if(t.idleContexts.splice(l,1),ae.get(u)===d){h=u,I.reused++;break}try{u.release()}catch{}}h||(h=await Te(g,e,s,n),I.created++),j.setTaskPackages(e,se.get(h)||new Map);let w=h.global;return await w.set("__snapshot",new D.ExternalCopy(r).copyInto()),await w.set("__nextTaskId",e),await w.set("__nextTaskTimeoutMs",o),await w.set("__nextTaskDeadlineMs",c),await(await T(g,"__resetTask(__snapshot, __nextTaskId, __nextTaskTimeoutMs, __nextTaskDeadlineMs);","reset-task.js")).run(h,{timeout:H(e)}),h}async function ue(t,e){if(!(!e||t.isolate.isDisposed)){try{await(await T(t.isolate,"__cleanupTask();","cleanup-task.js")).run(e,{timeout:5e3})}catch{I.scrubFailed++;try{e.release()}catch{}return}if(t.idleContexts.length>=ve){try{e.release()}catch{}I.evicted++;return}t.idleContexts.push(e),I.released++}}function Ae(t){try{let e=JSON.parse(t.message);if(e&&e.__userThrow)return{...e,message:e.message??t.message}}catch{}return null}var Ne=3,Oe=["setup.js","extract.js","extract-error-ctx.js","set-status.js","populate-error.js"];function Je(t){if(!t)return null;let e=t.split(`
954
+ `);for(let s of e){let r=s.match(/at\s+(.+\.js):(\d+):(\d+)/);if(!r)continue;let n=r[1].trim();if(Oe.includes(n))continue;let c=parseInt(r[2])-Ne;if(!(c<=0))return{line:c,column:parseInt(r[3]),phase:n.replace(".js","")}}return null}function Ee(t,e,s){if(!t||!e)return;let r=String(t).split(/\r?\n/),n=Math.max(1,e-1),o=Math.min(r.length,e+1),c=String(o).length,g=[];for(let d=n;d<=o;d++){let h=d===e?">":" ";g.push(`${h} ${String(d).padStart(c," ")}. ${r[d-1]??""}`),d===e&&s&&s>0&&g.push(` ${" ".repeat(c)} ${" ".repeat(Math.max(0,s-1))}^`)}return g.join(`
955
+ `)}function je(t,e){if(!(!t||!e)){if(e[t.phase])return e[t.phase];if(t.phase?.startsWith("preHook"))return e.preHook;if(t.phase?.startsWith("postHook"))return e.postHook}}function V(t,e){let s=Ae(t);if(s)return{message:s.message,statusCode:s.statusCode,errorPath:s.errorPath,details:s.details};let r=Je(t.stack),n=t.message||"Unknown error",o=r?`${n} (${r.phase}, line ${r.line})`:n,c=je(r,e),g=r?Ee(c,r.line,r.column):void 0;return{message:o,statusCode:t.statusCode||null,details:{errorName:t.name||null,executionStage:t.executionStage||"runtime",...r?{...r,codeFrame:g}:{}}}}async function B(t,e,s){let r=V(e,s);await J({type:"result",id:t,success:!1,error:{...r,stack:e.stack,code:e.code}})}async function Ie(t){let{id:e,code:s,pkgSources:r,snapshot:n,memoryLimitMb:o,isolatePoolSize:c}=t,g={handler:t.sourceCode||s||""},d=r||[],h=Math.max(1,Math.trunc(Number(t.timeoutMs)||3e4)),w=Date.now()+h;O.set(e,w);let b=ce(s,d),l=oe(o,c),u=l.isolate,k;try{k=await le(l,e,d,n,b,h,w)}catch(y){O.delete(e),K(e),await B(e,y,g);return}E.set(e,k);try{let y=`
923
956
  (async () => {
924
957
  "use strict";
925
958
  ${s}
926
959
  })().then((__result) => __extractResult(__result, __result === undefined));
927
- `,E=await(await R(g,m,"handler.js")).run(P,{timeout:H(e),promise:!0}),j=JSON.parse(E);await A({type:"result",id:e,success:!0,...j})}catch(m){await K(e,m,y)}finally{O.delete(e),T.delete(e),await ue(l,P),B(e)}}async function He(t){let{id:e,codeBlocks:s,pkgSources:r,snapshot:a,memoryLimitMb:o,isolatePoolSize:c}=t,y=r||[],f=Math.max(1,Math.trunc(Number(t.timeoutMs)||3e4)),d=Date.now()+f;T.set(e,d);let k=ce((s||[]).map(h=>h.code||"").join(`
928
- `),y),w=oe(o,c),l=w.isolate,g;try{g=await le(w,e,y,a,k,f,d)}catch(h){T.delete(e),B(e),await K(e,h);return}O.set(e,g);let P=[],m=[],S={},E=0,j=0;for(let h of s){let u=h.type||"handler",n=h.sourceCode||h.code||"";u==="postHook"?(j++,S[`postHook #${j}`]=n,S.postHook=n,m.push(h)):(u==="handler"?S.handler=n:(E++,S[`${u} #${E}`]=n,S.preHook=n),P.push(h))}try{let h=null;for(let n=0;n<P.length;n++){let i=P[n],p=i.type||"handler",_=p==="handler"?"handler":`${p} #${n+1}`,v;p==="preHook"?v=`
960
+ `,C=await(await T(u,y,"handler.js")).run(k,{timeout:H(e),promise:!0}),P=JSON.parse(C);await J({type:"result",id:e,success:!0,...P})}catch(y){await B(e,y,g)}finally{E.delete(e),O.delete(e),await ue(l,k),K(e)}}async function He(t){let{id:e,codeBlocks:s,pkgSources:r,snapshot:n,memoryLimitMb:o,isolatePoolSize:c}=t,g=r||[],d=Math.max(1,Math.trunc(Number(t.timeoutMs)||3e4)),h=Date.now()+d;O.set(e,h);let w=ce((s||[]).map(m=>m.code||"").join(`
961
+ `),g),b=oe(o,c),l=b.isolate,u;try{u=await le(b,e,g,n,w,d,h)}catch(m){O.delete(e),K(e),await B(e,m);return}E.set(e,u);let k=[],y=[],v={},C=0,P=0;for(let m of s){let f=m.type||"handler",a=m.sourceCode||m.code||"";f==="postHook"?(P++,v[`postHook #${P}`]=a,v.postHook=a,y.push(m)):(f==="handler"?v.handler=a:(C++,v[`${f} #${C}`]=a,v.preHook=a),k.push(m))}try{let m=null;for(let a=0;a<k.length;a++){let i=k[a],p=i.type||"handler",_=p==="handler"?"handler":`${p} #${a+1}`,x;p==="preHook"?x=`
929
962
  (async () => {
930
963
  "use strict";
931
964
  ${i.code}
932
965
  })().then((__r) => {
933
966
  if (__r !== undefined) return JSON.stringify({ __shortCircuit: true, value: __r });
934
967
  return JSON.stringify({ __shortCircuit: false });
935
- });`:v=`
968
+ });`:x=`
936
969
  (async () => {
937
970
  "use strict";
938
971
  ${i.code}
939
972
  })().then((__r) => {
940
973
  $ctx.$data = __r;
941
974
  return "__handler_done__";
942
- });`;try{let C=await(await R(l,v,`${_}.js`)).run(g,{timeout:H(e),promise:!0});if(p==="preHook"&&typeof C=="string"){let b=JSON.parse(C);if(b.__shortCircuit){let F=await re(l,g,b.value);await A({type:"result",id:e,success:!0,...F,shortCircuit:!0});return}}}catch(x){h=x;break}}if(!h&&m.length>0&&await(await R(l,'$ctx.$statusCode = 200; "__status_set__";',"set-status.js")).run(g,{timeout:5e3}),h&&m.length>0){let n=V(h,S),i={message:n.message||"Unknown error",name:h.constructor?.name||"Error",stack:h.stack||"",statusCode:n.statusCode||500,details:n.details||{},timestamp:new Date().toISOString()},p=`
975
+ });`;try{let R=await(await T(l,x,`${_}.js`)).run(u,{timeout:H(e),promise:!0});if(p==="preHook"&&typeof R=="string"){let S=JSON.parse(R);if(S.__shortCircuit){let F=await re(l,u,S.value);await J({type:"result",id:e,success:!0,...F,shortCircuit:!0});return}}}catch($){m=$;break}}if(!m&&y.length>0&&await(await T(l,'$ctx.$statusCode = 200; "__status_set__";',"set-status.js")).run(u,{timeout:5e3}),m&&y.length>0){let a=V(m,v),i={message:a.message||"Unknown error",name:m.constructor?.name||"Error",stack:m.stack||"",statusCode:a.statusCode||500,details:a.details||{},timestamp:new Date().toISOString()},p=`
943
976
  $ctx.$error = ${JSON.stringify(i)};
944
977
  $ctx.$data = null;
945
978
  $ctx.$statusCode = ${i.statusCode};
@@ -953,11 +986,11 @@ if ($ctx.$api) {
953
986
  timestamp: ${JSON.stringify(i.timestamp)},
954
987
  };
955
988
  }
956
- "__error_populated__";`;await(await l.compileScript(p,{filename:"populate-error.js"})).run(g,{timeout:5e3})}for(let n=0;n<m.length;n++){let i=m[n],p=`postHook #${n+1}`,_=`
989
+ "__error_populated__";`;await(await l.compileScript(p,{filename:"populate-error.js"})).run(u,{timeout:5e3})}for(let a=0;a<y.length;a++){let i=y[a],p=`postHook #${a+1}`,_=`
957
990
  (async () => {
958
991
  "use strict";
959
992
  ${i.code}
960
993
  })().then((__r) => {
961
994
  if (__r !== undefined) $ctx.$data = __r;
962
995
  return "__posthook_done__";
963
- });`;try{await(await R(l,_,`${p}.js`)).run(g,{timeout:H(e),promise:!0})}catch{}}if(h){let n=V(h,S),i;try{let v=await(await R(l,"(async () => JSON.stringify(await __extractCtxChanges()))()","extract-error-ctx.js")).run(g,{timeout:5e3,promise:!0});i=JSON.parse(v)}catch{}await A({type:"result",id:e,success:!1,error:{message:n.message,statusCode:n.statusCode,errorPath:n.errorPath,stack:h.stack,code:h.code,details:n.details},ctxChanges:i});return}let u=await re(l,g);await A({type:"result",id:e,success:!0,...u})}catch(h){await K(e,h)}finally{O.delete(e),T.delete(e),await ue(w,g),B(e)}}function B(t){J.cleanupTaskPackages(t)}function Fe(){J.shutdownPackageRuntime()}process.on("exit",Fe);async function re(t,e,s){if(s!==void 0){let c=`__extractResult(${JSON.stringify(s)}, false)`,f=await(await t.compileScript(c,{filename:"extract.js"})).run(e,{timeout:5e3,promise:!0});return JSON.parse(f)}let o=await(await R(t,"__extractResult($ctx.$data, $ctx.$data === undefined)","extract.js")).run(e,{timeout:5e3,promise:!0});return JSON.parse(o)}
996
+ });`;try{await(await T(l,_,`${p}.js`)).run(u,{timeout:H(e),promise:!0})}catch{}}if(m){let a=V(m,v),i;try{let x=await(await T(l,"(async () => JSON.stringify(await __extractCtxChanges()))()","extract-error-ctx.js")).run(u,{timeout:5e3,promise:!0});i=JSON.parse(x)}catch{}await J({type:"result",id:e,success:!1,error:{message:a.message,statusCode:a.statusCode,errorPath:a.errorPath,stack:m.stack,code:m.code,details:a.details},ctxChanges:i});return}let f=await re(l,u);await J({type:"result",id:e,success:!0,...f})}catch(m){await B(e,m)}finally{E.delete(e),O.delete(e),await ue(b,u),K(e)}}function K(t){j.cleanupTaskPackages(t)}function Fe(){j.shutdownPackageRuntime()}process.on("exit",Fe);async function re(t,e,s){if(s!==void 0){let c=`__extractResult(${JSON.stringify(s)}, false)`,d=await(await t.compileScript(c,{filename:"extract.js"})).run(e,{timeout:5e3,promise:!0});return JSON.parse(d)}let o=await(await T(t,"__extractResult($ctx.$data, $ctx.$data === undefined)","extract.js")).run(e,{timeout:5e3,promise:!0});return JSON.parse(o)}
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@enfyra/kernel",
3
- "version": "1.1.44",
3
+ "version": "1.1.46",
4
4
  "source": "bundled-compiled-kernel"
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enfyra/kernel",
3
- "version": "1.1.44",
3
+ "version": "1.1.46",
4
4
  "description": "Closed-distribution Enfyra kernel runtime",
5
5
  "license": "Elastic-2.0",
6
6
  "packageManager": "yarn@4.17.0",