@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.
@@ -1,4 +1,4 @@
1
- "use strict";var U=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var F=U((Ee,H)=>{"use strict";var{fork:se}=require("child_process"),oe=require("path");function ie({workerDir:e,activeTaskContexts:t}){let n=new Map,a=new Map,r=null,o=0;function c(f){for(let i of a.values())i.reject(f);a.clear()}function _(f){let i=typeof f=="string"?JSON.parse(f):f;if(i?.error)throw new Error(i.error);return i?.value}async function p(f){let i=t.get(f.taskId);if(!i)throw new Error(`Package callback context not found: ${f.taskId}`);let s=JSON.stringify(f.callbackId),g=JSON.stringify(f.argsJson||"[]"),u=await i.evalClosure(`return __invokeRuntimeCallback(${s}, ${g});`,[],{arguments:{copy:!0},result:{promise:!0,copy:!0}});return _(u)}function v(){if(r&&r.connected)return r;let f=oe.join(e,"package-runtime.child.js"),i=se(f,[],{stdio:["ignore","ignore","ignore","ipc"]});return r=i,i.on("message",s=>{if(!s||!s.id)return;if(s.type==="pkgCallbackCall"){p(s).then(u=>{try{i.send({type:"pkgCallbackResult",id:s.id,value:u})}catch{}}).catch(u=>{try{i.send({type:"pkgCallbackError",id:s.id,error:{message:u.message,stack:u.stack}})}catch{}});return}let g=a.get(s.id);if(g)if(a.delete(s.id),s.ok)g.resolve(s.value);else{let u=new Error(s.error?.message||"Package runtime call failed");u.stack=s.error?.stack||u.stack,g.reject(u)}}),i.on("exit",(s,g)=>{r===i&&(r=null),c(new Error(`Package runtime exited${g?` with signal ${g}`:` with code ${s}`}`))}),i.on("error",s=>{r===i&&(r=null),c(s)}),i}function d(f){return new Promise((i,s)=>{let g=v(),u=`pkg_${++o}`;a.set(u,{resolve:i,reject:s});try{g.send({...f,id:u},y=>{y&&(a.delete(u),s(y))})}catch(y){a.delete(u),s(y)}})}function m(f){try{if(!r||!r.connected)return;r.send({...f,id:`pkg_${++o}`,fire:!0})}catch{}}async function l(f,i){let s=n.get(f);if(!s)throw new Error("Package context is not available");if(i.handleId)return d({op:i.kind==="get"?"handleGet":"handleCall",taskId:f,handleId:i.handleId,path:i.path||[],argsJson:i.argsJson||"[]"});let g=s.get(i.packageName);if(!g)throw new Error(`Package "${i.packageName}" is not available`);return d({op:i.kind==="construct"?"construct":"call",taskId:f,packageName:i.packageName,package:{name:g.name,fileUrl:g.fileUrl},path:i.path||[],argsJson:i.argsJson||"[]"})}function h(f,i){n.set(f,i)}function w(f){n.delete(f),m({op:"releaseTask",taskId:f})}function k(){if(r){try{r.kill()}catch{}r=null}}return{cleanupTaskPackages:w,executePackageRuntimeCall:l,setTaskPackages:h,shutdownPackageRuntime:k}}H.exports={createPackageRuntimeBridge:ie}});var K=U((je,L)=>{"use strict";var ce=`
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
- async function __safeClone(v) {
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()) out.push(await __safeClone(item));
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()) out[String(key)] = await __safeClone(item);
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)) out[key] = await __safeClone(v[key]);
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}=F(),{buildSetupCode:pe}=K(),N;try{N=require("isolated-vm")}catch(e){O.postMessage({type:"error",message:"isolated-vm not available: "+e.message}),process.exit(1)}var A=new Map,W=0,J=new Map,M=fe({workerDir:__dirname,activeTaskContexts:J}),_e=500,de=5e3,ge=32,q=new WeakMap,G=new WeakMap,X=new WeakMap,C={created:0,reused:0,released:0,evicted:0,scrubFailed:0},x=null,ye=0,B=0,V=0;async function he(){let e=Date.now();if(e-B<de)return V;if(B=e,!x)return 0;let t=0;for(let n of x){let a=n?.isolate;if(!(!a||a.isDisposed))try{let r=await a.getHeapStatistics(),o=r.heap_size_limit||1,c=r.used_heap_size/o;c>t&&(t=c)}catch{}}return V=t,t}async function b(e){e.heapRatio=await he(),e.contextStats=me(),O.postMessage(e)}function me(){let e=0;if(x)for(let t of x)e+=t?.idleContexts?.length||0;return{...C,idle:e}}function Z(e,t){if(!x){let r=Math.max(1,Math.trunc(Number(t)||8));x=new Array(r).fill(null)}let n=ye++%x.length,a=x[n];return(!a||!a.isolate||a.isolate.isDisposed)&&(a={isolate:new N.Isolate({memoryLimit:e}),idleContexts:[]},x[n]=a),a}async function $(e,t,n){let a=q.get(e);a||(a=new Map,q.set(e,a));let r=a.get(t);if(r)return r;let o=await e.compileScript(t,{filename:n});if(a.set(t,o),a.size>_e){let c=a.keys().next().value;a.delete(c)}return o}O.on("message",async e=>{if(e.type==="execute")Ne(e).catch(async t=>{await b({type:"result",id:e.id,success:!1,error:{message:t.message,stack:t.stack}})});else if(e.type==="executeBatch")Je(e).catch(async t=>{await b({type:"result",id:e.id,success:!1,error:{message:t.message,stack:t.stack}})});else if(e.type==="callResult"){let t=A.get(e.callId);t&&(A.delete(e.callId),t.resolve(e.result))}else if(e.type==="callError"){let t=A.get(e.callId);t&&(A.delete(e.callId),t.reject(new Error(e.error)))}});function ke(e,t,n){return new Promise((a,r)=>{let o=`cb_${++W}`;A.set(o,{resolve:a,reject:r}),O.postMessage({type:t,id:e,callId:o,...n})})}function ve(e,t,n){O.postMessage({type:t,id:e,callId:`f_${++W}`,...n})}function we(e){if(typeof e.sourceCode=="string"&&e.sourceCode.length>0)return e.sourceCode;let t=e.filePath;return!t&&typeof e.fileUrl=="string"&&e.fileUrl.startsWith("file://")&&(t=ue(e.fileUrl)),!t||!D.existsSync(t)?null:D.readFileSync(t,"utf8")}async function Pe(e,t,n){try{let a=we(n);if(!a)return null;let r=await e.compileModule(a,{filename:`pkg:${n.safeName}`});await r.instantiate(t,c=>{throw new Error(`Unresolved import in package ${n.safeName}: ${c}`)}),await r.evaluate({timeout:1e4});let o=await r.namespace.get("default");return o!==void 0&&o.typeof!=="undefined"?o.derefInto({release:!1}):r.namespace.derefInto({release:!1})}catch{return null}}function Q(e,t){let n=r=>{let o=2166136261;for(let c=0;c<r.length;c++)o^=r.charCodeAt(c),o=Math.imul(o,16777619);return(o>>>0).toString(36)},a=new Set(t||[]);return e.map(r=>{let o=r.cacheKey||`${r.filePath||""}:${r.fileUrl||""}:${r.mtimeMs||""}:${r.size||""}:${n(r.sourceCode||"")}`,c=a.has(r.name)?"isolate":"proxy";return`${r.name}:${r.version||""}:${o}:${c}`}).join("|")}function Y(e,t){let n=new Set(t.map(p=>p.name)),a=new Set,r=String(e||""),o=/\b(?:\$ctx\.)?\$pkgs\s*\[\s*(['"`])([^'"`]+)\1\s*\]/g,c=/\brequire\s*\(\s*(['"`])([^'"`]+)\1\s*\)/g,_=/\b(?:\$ctx\.)?\$pkgs\.([A-Za-z_$][\w$]*)/g;for(let p of[o,c])for(let v of r.matchAll(p)){let d=v[2];n.has(d)&&a.add(d)}for(let p of r.matchAll(_)){let v=p[1];n.has(v)&&a.add(v)}return a}async function xe(e,t,n,a){let r=await e.createContext(),o=r.global;await o.set("global",o.derefInto());let c=[],_=[],p=new Map;for(let l of n){p.set(l.name,l);let h=a.has(l.name)?await Pe(e,r,l):null;h!==null?(await o.set(`__pkg_${l.safeName}`,h),c.push(l)):_.push(l)}M.setTaskPackages(t,p),await o.set("__callRef",new N.Reference(async(l,h,w)=>{let k=JSON.parse(w);return h==="pkgCall"?JSON.stringify(await M.executePackageRuntimeCall(l,k)):ke(l,h,k)})),await o.set("__fireRef",new N.Reference((l,h,w)=>{let k=JSON.parse(w);ve(l,h,k)}));let v=c.map(l=>`$pkgs[${JSON.stringify(l.name)}] = __pkg_${l.safeName};`).concat(_.map(l=>`$pkgs[${JSON.stringify(l.name)}] = __createPkgProxy(${JSON.stringify(l.name)}, []);`)).join(`
655
- `),d=pe(v);return await(await $(e,d,"setup.js")).run(r,{timeout:5e3}),G.set(r,Q(n,a)),X.set(r,p),r}async function ee(e,t,n,a,r){let o=e.isolate,c=Q(n,r),_=null;for(let d=e.idleContexts.length-1;d>=0;d--){let m=e.idleContexts[d];if(e.idleContexts.splice(d,1),G.get(m)===c){_=m,C.reused++;break}try{m.release()}catch{}}_||(_=await xe(o,t,n,r),C.created++),M.setTaskPackages(t,X.get(_)||new Map);let p=_.global;return await p.set("__snapshot",new N.ExternalCopy(a).copyInto()),await p.set("__nextTaskId",t),await(await $(o,"__resetTask(__snapshot, __nextTaskId);","reset-task.js")).run(_,{timeout:5e3}),_}async function te(e,t){if(!(!t||e.isolate.isDisposed)){try{await(await $(e.isolate,"__cleanupTask();","cleanup-task.js")).run(t,{timeout:5e3})}catch{C.scrubFailed++;try{t.release()}catch{}return}if(e.idleContexts.length>=ge){try{t.release()}catch{}C.evicted++;return}e.idleContexts.push(t),C.released++}}function $e(e){try{let t=JSON.parse(e.message);if(t&&t.__userThrow)return{...t,message:t.message??e.message}}catch{}return null}var Se=3,be=["setup.js","extract.js","extract-error-ctx.js","set-status.js","populate-error.js"];function Ce(e){if(!e)return null;let t=e.split(`
656
- `);for(let n of t){let a=n.match(/at\s+(.+\.js):(\d+):(\d+)/);if(!a)continue;let r=a[1].trim();if(be.includes(r))continue;let c=parseInt(a[2])-Se;if(!(c<=0))return{line:c,column:parseInt(a[3]),phase:r.replace(".js","")}}return null}function Re(e,t,n){if(!e||!t)return;let a=String(e).split(/\r?\n/),r=Math.max(1,t-1),o=Math.min(a.length,t+1),c=String(o).length,_=[];for(let p=r;p<=o;p++){let v=p===t?">":" ";_.push(`${v} ${String(p).padStart(c," ")}. ${a[p-1]??""}`),p===t&&n&&n>0&&_.push(` ${" ".repeat(c)} ${" ".repeat(Math.max(0,n-1))}^`)}return _.join(`
657
- `)}function Ae(e,t){if(!(!e||!t)){if(t[e.phase])return t[e.phase];if(e.phase?.startsWith("preHook"))return t.preHook;if(e.phase?.startsWith("postHook"))return t.postHook}}function E(e,t){let n=$e(e);if(n)return{message:n.message,statusCode:n.statusCode,details:n.details};let a=Ce(e.stack),r=e.message||"Unknown error",o=a?`${r} (${a.phase}, line ${a.line})`:r,c=Ae(a,t),_=a?Re(c,a.line,a.column):void 0;return{message:o,statusCode:e.statusCode||null,details:a?{...a,codeFrame:_}:void 0}}async function re(e,t){let n=E(t);await b({type:"result",id:e,success:!1,error:{...n,stack:t.stack,code:t.code}})}async function Ne(e){let{id:t,code:n,pkgSources:a,snapshot:r,memoryLimitMb:o,isolatePoolSize:c}=e,_=a||[],p=Math.max(1,Math.trunc(Number(e.timeoutMs)||3e4)),v=Y(n,_),d=Z(o,c),m=d.isolate,l=await ee(d,t,_,r,v);J.set(t,l);try{let h=`
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 re(t,h)}finally{J.delete(t),await te(d,l),ae(t)}}async function Je(e){let{id:t,codeBlocks:n,pkgSources:a,snapshot:r,memoryLimitMb:o,isolatePoolSize:c}=e,_=a||[],p=Math.max(1,Math.trunc(Number(e.timeoutMs)||3e4)),v=Y((n||[]).map(s=>s.code||"").join(`
663
- `),_),d=Z(o,c),m=d.isolate,l=await ee(d,t,_,r,v);J.set(t,l);let h=[],w=[],k={},f=0,i=0;for(let s of n){let g=s.type||"handler";g==="postHook"?(i++,k[`postHook #${i}`]=s.code||"",k.postHook=s.code||"",w.push(s)):(g==="handler"?k.handler=s.code||"":(f++,k[`${g} #${f}`]=s.code||"",k.preHook=s.code||""),h.push(s))}try{let s=null;for(let u=0;u<h.length;u++){let y=h[u],P=y.type||"handler",R=P==="handler"?"handler":`${P} #${u+1}`,S;P==="preHook"?S=`
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 z(m,l,I.value);await b({type:"result",id:t,success:!0,...ne,shortCircuit:!0});return}}}catch(j){s=j;break}}if(!s&&w.length>0&&await(await $(m,'$ctx.$statusCode = 200; "__status_set__";',"set-status.js")).run(l,{timeout:5e3}),s&&w.length>0){let u=E(s,k),y={message:u.message||"Unknown error",name:s.constructor?.name||"Error",stack:s.stack||"",statusCode:u.statusCode||500,details:u.details||{},timestamp:new Date().toISOString()},P=`
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=E(s,k),y;try{let S=await(await $(m,`(async () => JSON.stringify({
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 z(m,l);await b({type:"result",id:t,success:!0,...g})}catch(s){await re(t,s)}finally{J.delete(t),await te(d,l),ae(t)}}function ae(e){M.cleanupTaskPackages(e)}function Me(){M.shutdownPackageRuntime()}process.on("exit",Me);async function z(e,t,n){if(n!==void 0){let c=`__extractResult(${JSON.stringify(n)}, false)`,p=await(await e.compileScript(c,{filename:"extract.js"})).run(t,{timeout:5e3,promise:!0});return JSON.parse(p)}let o=await(await $(e,"__extractResult($ctx.$data, $ctx.$data === undefined)","extract.js")).run(t,{timeout:5e3,promise:!0});return JSON.parse(o)}
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)}
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@enfyra/kernel",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
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.5",
3
+ "version": "1.1.7",
4
4
  "description": "Closed-distribution Enfyra kernel runtime",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "private": false,