@xuda.io/runtime-bundle 1.0.778 → 1.0.779

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,6 +1,6 @@
1
- export const run_javascript=async function(SESSION_ID,jobNoP,dsSession,script,evaluate,prog_id,params,evt){const _session=SESSION_OBJ[SESSION_ID];const run_native_javascript_program_in_browser=async function(){const path_to_dist=`https://${_session.domain}/studio-drive/${APP_OBJ[_session.app_id].app_replicate||_session.app_id}/scripts/${prog_id}/dist/`;const index_mjs=await import(`${path_to_dist}index.mjs`);if(index_mjs.css){const css_url=`${path_to_dist}index.css`;func.utils.load_css_on_demand(css_url)}const code=func.utils.replace_studio_drive_url(SESSION_ID,index_mjs.default);const api_utils=await func.common.get_module(SESSION_ID,"xuda-api-library.mjs",{func:func,glb:glb,SESSION_OBJ:SESSION_OBJ,SESSION_ID:SESSION_ID,APP_OBJ:APP_OBJ,dsSession:dsSession,jobNoP:jobNoP});const xu=api_utils;const ret=await code(params,xu,SESSION_ID,SESSION_OBJ,jobNoP);if(!code.toString().includes("func.api.callback")){func.events.delete_job(SESSION_ID,jobNoP)}return ret};const run_native_javascript_program_in_server=async function(){return new Promise(async(resolve,reject)=>{const studio_drive_script_folder=path.join(_conf.studio_drive_path,app_id,"scripts");const studio_drive_script_program_folder=path.join(studio_drive_script_folder,prog_id);const dist=path.join(studio_drive_script_program_folder,"dist");const index_mjs=path.join(dist,"index.mjs");process.on("uncaughtException",err=>{console.error("Asynchronous error caught.",err)});const resolve_local=function(e){if(!script.toString().includes("func.api.callback")){func.events.delete_job(SESSION_ID,jobNoP)}resolve(e)};const reject_local=function(e){func.events.delete_job(SESSION_ID,jobNoP);reject(e)};try{const script=new VM.VMScript(`
1
+ export const run_javascript=async function(SESSION_ID,jobNoP,dsSession,script,evaluate,prog_id,params,evt,$container){const _session=SESSION_OBJ[SESSION_ID];const run_native_javascript_program_in_browser=async function(){const path_to_dist=`https://${_session.domain}/studio-drive/${APP_OBJ[_session.app_id].app_replicate||_session.app_id}/scripts/${prog_id}/dist/`;const index_mjs=await import(`${path_to_dist}index.mjs`);if(index_mjs.css){const css_url=`${path_to_dist}index.css`;func.utils.load_css_on_demand(css_url)}const code=func.utils.replace_studio_drive_url(SESSION_ID,index_mjs.default);const api_utils=await func.common.get_module(SESSION_ID,"xuda-api-library.mjs",{func:func,glb:glb,SESSION_OBJ:SESSION_OBJ,SESSION_ID:SESSION_ID,APP_OBJ:APP_OBJ,dsSession:dsSession,jobNoP:jobNoP});const xu=api_utils;const ret=await code(params,xu,SESSION_ID,SESSION_OBJ,jobNoP,$container);if(!code.toString().includes("func.api.callback")){func.events.delete_job(SESSION_ID,jobNoP)}return ret};const run_native_javascript_program_in_server=async function(){return new Promise(async(resolve,reject)=>{const studio_drive_script_folder=path.join(_conf.studio_drive_path,app_id,"scripts");const studio_drive_script_program_folder=path.join(studio_drive_script_folder,prog_id);const dist=path.join(studio_drive_script_program_folder,"dist");const index_mjs=path.join(dist,"index.mjs");process.on("uncaughtException",err=>{console.error("Asynchronous error caught.",err)});const resolve_local=function(e){if(!script.toString().includes("func.api.callback")){func.events.delete_job(SESSION_ID,jobNoP)}resolve(e)};const reject_local=function(e){func.events.delete_job(SESSION_ID,jobNoP);reject(e)};try{const script=new VM.VMScript(`
2
2
  const index_mjs = await import(${index_mjs});
3
3
 
4
- try{index_mjs.default(req,params,setup_doc,resolve,reject);}catch(e){ console.error(e); }`,{filename:dist,dirname:dist});let vm=new VM.NodeVM({require:{external:true},sandbox:{resolve:resolve_local,reject:reject_local},timeout:6e4});return await vm.run(script,{filename:dist,dirname:dist})}catch(err){console.error("Failed to execute script.",err)}})};if(evaluate){var script_ret=(await func.expression.get(SESSION_ID,script,dsSession,"javascript",null,null,null,null,null,null,null,()=>{},jobNoP)).result}else{if(prog_id){if(typeof IS_API_SERVER!=="undefined"||typeof IS_DOCKER!=="undefined"||typeof IS_PROCESS_SERVER!=="undefined"){return await run_native_javascript_program_in_server()}else{return await run_native_javascript_program_in_browser()}}else{await func.expression.secure_eval(SESSION_ID,"javascript",func.utils.replace_studio_drive_url(SESSION_ID,script),jobNoP,dsSession,()=>{},evt)}}if(!script.includes("func.api.callback")){func.events.delete_job(SESSION_ID,jobNoP);return}};export const call_javascript=async function(SESSION_ID,jobNoP,refIdP,dsSession,evaluate){const error_log=async function(msg){let _session=SESSION_OBJ[SESSION_ID];func.events.delete_job(SESSION_ID,jobNoP);if(typeof IS_API_SERVER!=="undefined"){return __.rpi.write_log(_session.app_id,"error","api",msg)}if(typeof IS_DOCKER!=="undefined"){return __.rpi.write_log(_session.app_id,"error","worker",msg)}await func.common.db(SESSION_ID,"write_log",{msg:msg,log_type:"error",source:"runtime"})};let view_ret=await func.utils.VIEWS_OBJ.get(SESSION_ID,refIdP.prog);if(!view_ret){return error_log("program not found")}if(!view_ret?.scriptData?.value){return error_log("script is empty")}return await run_javascript(SESSION_ID,jobNoP,dsSession,`(async function(${refIdP?.parameters||{}}) {
4
+ try{index_mjs.default(req,params,setup_doc,resolve,reject);}catch(e){ console.error(e); }`,{filename:dist,dirname:dist});let vm=new VM.NodeVM({require:{external:true},sandbox:{resolve:resolve_local,reject:reject_local},timeout:6e4});return await vm.run(script,{filename:dist,dirname:dist})}catch(err){console.error("Failed to execute script.",err)}})};if(evaluate){var script_ret=(await func.expression.get(SESSION_ID,script,dsSession,"javascript",null,null,null,null,null,null,null,()=>{},jobNoP)).result}else{if(prog_id){if(typeof IS_API_SERVER!=="undefined"||typeof IS_DOCKER!=="undefined"||typeof IS_PROCESS_SERVER!=="undefined"){return await run_native_javascript_program_in_server()}else{return await run_native_javascript_program_in_browser()}}else{await func.expression.secure_eval(SESSION_ID,"javascript",func.utils.replace_studio_drive_url(SESSION_ID,script),jobNoP,dsSession,()=>{},evt)}}if(!script.includes("func.api.callback")){func.events.delete_job(SESSION_ID,jobNoP);return}};export const call_javascript=async function(SESSION_ID,jobNoP,refIdP,dsSession,evaluate,$container){const error_log=async function(msg){let _session=SESSION_OBJ[SESSION_ID];func.events.delete_job(SESSION_ID,jobNoP);if(typeof IS_API_SERVER!=="undefined"){return __.rpi.write_log(_session.app_id,"error","api",msg)}if(typeof IS_DOCKER!=="undefined"){return __.rpi.write_log(_session.app_id,"error","worker",msg)}await func.common.db(SESSION_ID,"write_log",{msg:msg,log_type:"error",source:"runtime"})};let view_ret=await func.utils.VIEWS_OBJ.get(SESSION_ID,refIdP.prog);if(!view_ret){return error_log("program not found")}if(!view_ret?.scriptData?.value){return error_log("script is empty")}return await run_javascript(SESSION_ID,jobNoP,dsSession,`(async function(${refIdP?.parameters||{}}) {
5
5
  ${view_ret.scriptData.value}
6
- })();`,evaluate,refIdP.prog,refIdP?.parameters)};
6
+ })();`,evaluate,refIdP.prog,refIdP?.parameters,null,$container)};
@@ -1,4 +1,4 @@
1
- export const run_javascript = async function (SESSION_ID, jobNoP, dsSession, script, evaluate, prog_id, params, evt) {
1
+ export const run_javascript = async function (SESSION_ID, jobNoP, dsSession, script, evaluate, prog_id, params, evt, $container) {
2
2
  const _session = SESSION_OBJ[SESSION_ID];
3
3
 
4
4
  const run_native_javascript_program_in_browser = async function () {
@@ -28,7 +28,7 @@ export const run_javascript = async function (SESSION_ID, jobNoP, dsSession, scr
28
28
 
29
29
  const xu = api_utils;
30
30
 
31
- const ret = await code(params, xu, SESSION_ID, SESSION_OBJ, jobNoP);
31
+ const ret = await code(params, xu, SESSION_ID, SESSION_OBJ, jobNoP, $container);
32
32
 
33
33
  if (!code.toString().includes('func.api.callback')) {
34
34
  func.events.delete_job(SESSION_ID, jobNoP);
@@ -114,7 +114,7 @@ export const run_javascript = async function (SESSION_ID, jobNoP, dsSession, scr
114
114
  }
115
115
  };
116
116
 
117
- export const call_javascript = async function (SESSION_ID, jobNoP, refIdP, dsSession, evaluate) {
117
+ export const call_javascript = async function (SESSION_ID, jobNoP, refIdP, dsSession, evaluate, $container) {
118
118
  const error_log = async function (msg) {
119
119
  let _session = SESSION_OBJ[SESSION_ID];
120
120
  func.events.delete_job(SESSION_ID, jobNoP);
@@ -153,5 +153,7 @@ export const call_javascript = async function (SESSION_ID, jobNoP, refIdP, dsSes
153
153
  evaluate,
154
154
  refIdP.prog,
155
155
  refIdP?.parameters,
156
+ null,
157
+ $container,
156
158
  );
157
159
  };
@@ -27848,7 +27848,6 @@ func.UI.worker.find_job_index = function (SESSION_ID, jobNoP) {
27848
27848
  };
27849
27849
 
27850
27850
  func.UI.ds_garbage_collector = function (SESSION_ID = Object.keys(SESSION_OBJ)[0], re_check) {
27851
- return;
27852
27851
  let _session = SESSION_OBJ[SESSION_ID];
27853
27852
 
27854
27853
  const _data_system = _session?.DS_GLB?.[0]?.data_system;
@@ -27902,7 +27901,6 @@ func.UI.ds_garbage_collector = function (SESSION_ID = Object.keys(SESSION_OBJ)[0
27902
27901
  }
27903
27902
  };
27904
27903
  func.UI.refs_garbage_collector = function (SESSION_ID = Object.keys(SESSION_OBJ)[0]) {
27905
- return;
27906
27904
  if (!_.isEmpty(SCREEN_BLOCKER_OBJ)) {
27907
27905
  // let dom to finish build
27908
27906
  return;
@@ -36708,14 +36706,14 @@ func.events.execute = async function (
36708
36706
 
36709
36707
  call_native_javascript: async function () {
36710
36708
  const module = await func.common.get_module(SESSION_ID, 'xuda-event-javascript-module.mjs');
36711
- const result = await module.call_javascript(SESSION_ID, jobNoP, refIdP, dsSession);
36709
+ const result = await module.call_javascript(SESSION_ID, jobNoP, refIdP, dsSession, false, $(containerP));
36712
36710
  await func.datasource.set_outputField(SESSION_ID, dsSessionP, result, args);
36713
36711
 
36714
36712
  return result;
36715
36713
  },
36716
36714
  call_evaluate_javascript: async function () {
36717
36715
  const module = await func.common.get_module(SESSION_ID, 'xuda-event-javascript-module.mjs');
36718
- const result = await module.call_javascript(SESSION_ID, jobNoP, refIdP, dsSession, true);
36716
+ const result = await module.call_javascript(SESSION_ID, jobNoP, refIdP, dsSession, true, $(containerP));
36719
36717
  await func.datasource.set_outputField(SESSION_ID, dsSessionP, result, args);
36720
36718
 
36721
36719
  return result;