@yuneta/gobj-js 7.1.0 β 7.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/gobj-js.cjs.js +1 -0
- package/dist/gobj-js.cjs.js.map +1 -1
- package/dist/gobj-js.cjs.min.js +1 -1
- package/dist/gobj-js.cjs.min.js.map +1 -1
- package/dist/gobj-js.es.js +1 -0
- package/dist/gobj-js.es.js.map +1 -1
- package/dist/gobj-js.es.min.js +1 -1
- package/dist/gobj-js.es.min.js.map +1 -1
- package/dist/gobj-js.iife.js +1 -0
- package/dist/gobj-js.iife.js.map +1 -1
- package/dist/gobj-js.iife.min.js +1 -1
- package/dist/gobj-js.iife.min.js.map +1 -1
- package/dist/gobj-js.umd.js +1 -0
- package/dist/gobj-js.umd.js.map +1 -1
- package/dist/gobj-js.umd.min.js +1 -1
- package/dist/gobj-js.umd.min.js.map +1 -1
- package/package.json +1 -1
package/dist/gobj-js.iife.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var gobjJs=function(e){"use strict";let t={not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function n(e){return function(e,r){var o,i,l,_,s,a,u,c,f,g=1,d=e.length,b="";for(i=0;i<d;i++)if("string"==typeof e[i])b+=e[i];else if("object"==typeof e[i]){if((_=e[i]).keys)for(o=r[g],l=0;l<_.keys.length;l++){if(null==o)throw new Error(n('[sprintf] Cannot access property "%s" of undefined value "%s"',_.keys[l],_.keys[l-1]));o=o[_.keys[l]]}else o=_.param_no?r[_.param_no]:r[g++];if(t.not_type.test(_.type)&&t.not_primitive.test(_.type)&&o instanceof Function&&(o=o()),t.numeric_arg.test(_.type)&&"number"!=typeof o&&isNaN(o))throw new TypeError(n("[sprintf] expecting number but found %T",o));switch(t.number.test(_.type)&&(c=o>=0),_.type){case"b":o=parseInt(o,10).toString(2);break;case"c":o=String.fromCharCode(parseInt(o,10));break;case"d":case"i":o=parseInt(o,10);break;case"j":o=JSON.stringify(o,null,_.width?parseInt(_.width):0);break;case"e":o=_.precision?parseFloat(o).toExponential(_.precision):parseFloat(o).toExponential();break;case"f":o=_.precision?parseFloat(o).toFixed(_.precision):parseFloat(o);break;case"g":o=_.precision?String(Number(o.toPrecision(_.precision))):parseFloat(o);break;case"o":o=(parseInt(o,10)>>>0).toString(8);break;case"s":o=String(o),o=_.precision?o.substring(0,_.precision):o;break;case"t":o=String(!!o),o=_.precision?o.substring(0,_.precision):o;break;case"T":o=Object.prototype.toString.call(o).slice(8,-1).toLowerCase(),o=_.precision?o.substring(0,_.precision):o;break;case"u":o=parseInt(o,10)>>>0;break;case"v":o=o.valueOf(),o=_.precision?o.substring(0,_.precision):o;break;case"x":o=(parseInt(o,10)>>>0).toString(16);break;case"X":o=(parseInt(o,10)>>>0).toString(16).toUpperCase()}t.json.test(_.type)?b+=o:(!t.number.test(_.type)||c&&!_.sign?f="":(f=c?"+":"-",o=o.toString().replace(t.sign,"")),a=_.pad_char?"0"===_.pad_char?"0":_.pad_char.charAt(1):" ",u=_.width-(f+o).length,s=_.width&&u>0?a.repeat(u):"",b+=_.align?f+o+s:"0"===a?f+s+o:s+f+o)}return b}(function(e){if(r[e])return r[e];let n,o=e,i=[],l=0;for(;o;){if(null!==(n=t.text.exec(o)))i.push(n[0]);else if(null!==(n=t.modulo.exec(o)))i.push("%");else{if(null===(n=t.placeholder.exec(o)))throw new SyntaxError("[sprintf] unexpected placeholder");if(n[2]){l|=1;var _=[],s=n[2],a=[];if(null===(a=t.key.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(_.push(a[1]);""!==(s=s.substring(a[0].length));)if(null!==(a=t.key_access.exec(s)))_.push(a[1]);else{if(null===(a=t.index_access.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");_.push(a[1])}n[2]=_}else l|=2;if(3===l)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");i.push({placeholder:n[0],param_no:n[1],keys:n[2],sign:n[3],pad_char:n[4],align:n[5],width:n[6],precision:n[7],type:n[8]})}o=o.substring(n[0].length)}return r[e]=i}(e),arguments)}let r=Object.create(null);function o(e,t,n,r,o){return{result:t,comment:n||{},schema:r||{},data:o||[]}}function i(e,t,n,r,o){return{result:t,comment:n||{},schema:r||{},data:o||[]}}let l="7.0.0a",_=null,s=null,a=null,u=null,c=null,f=null,g=[],d=Object.create(null),b={};e.__yuno__=null;let p=null,m=0;const y=Object.freeze({DTP_STRING:1,DTP_BOOLEAN:2,DTP_INTEGER:3,DTP_REAL:4,DTP_LIST:5,DTP_DICT:6,DTP_JSON:7,DTP_POINTER:8});y.DTP_POINTER;const h=Object.freeze({SDF_NOTACCESS:1,SDF_RD:2,SDF_WR:4,SDF_REQUIRED:8,SDF_PERSIST:16,SDF_VOLATIL:32,SDF_RESOURCE:64,SDF_PKEY:128,SDF_FUTURE1:256,SDF_FUTURE2:512,SDF_WILD_CMD:1024,SDF_STATS:2048,SDF_FKEY:4096,SDF_RSTATS:8192,SDF_PSTATS:16384,SDF_AUTHZ_R:32768,SDF_AUTHZ_W:65536,SDF_AUTHZ_X:131072,SDF_AUTHZ_P:262144,SDF_AUTHZ_S:524288,SDF_AUTHZ_RS:1048576});h.SDF_RD,h.SDF_WR,h.SDF_STATS,h.SDF_PERSIST,h.SDF_VOLATIL,h.SDF_RSTATS,h.SDF_PSTATS,h.SDF_WR,h.SDF_PERSIST;class T{constructor(e,t,n=0,r=null,o="",i=null,l=null,_=0,s=null,a=null,u=null){this.type=e,this.name=t,this.alias=i,this.flag=n,this.default_value=r,this.header=l,this.fillspace=_,this.description=o,this.json_fn=s,this.schema=a,this.authpth=u}}const E=()=>new T(0,null),j=(e,t,n,r,o)=>new T(e,t,n,r,o);class v{constructor(e,t,n,r,o,i,l,_,s){this.gclass_name=e,this.dl_states=[],this.dl_events=[],this.gmt=t,this.lmt=n,this.attrs_table=r,this.priv=o,this.authz_table=i,this.command_table=l,this.s_user_trace_level=_,this.gclass_flag=Number(s)||0,this.instances=0,this.trace_level=0,this.no_trace_level=0,this.jn_trace_filter=null,this.fsm_checked=!1}}class S{constructor(e,t,n,r,o){this.__refs__=0,this.gclass=t,this.parent=null,this.dl_children=[],this.dl_subscriptions=[],this.dl_subscribings=[],this.current_state=t.dl_states[0],this.last_state=null,this.obflag=0,this.gobj_flag=Number(o)||0,this.gobj_name=e,this.jn_attrs=null,this.jn_stats={},this.jn_user_data={},this.full_name=null,this.short_name=null,this.priv=Rt(t.priv),this.running=!1,this.playing=!1,this.disabled=!1,this.bottom_gobj=null,this.trace_level=0,this.no_trace_level=0}}const O=Object.freeze({gcflag_manual_start:1,gcflag_no_check_output_events:2,gcflag_ignore_unknown_attrs:4,gcflag_required_start_to_play:8,gcflag_singleton:16}),w=Object.freeze({gobj_flag_yuno:1,gobj_flag_default_service:2,gobj_flag_service:4,gobj_flag_volatil:8,gobj_flag_pure_child:16,gobj_flag_autostart:32,gobj_flag_autoplay:64}),N=Object.freeze({obflag_destroying:1,obflag_destroyed:2,obflag_created:4}),D=Object.freeze({EVF_NO_WARN_SUBS:1,EVF_OUTPUT_EVENT:2,EVF_SYSTEM_EVENT:4,EVF_PUBLIC_EVENT:8}),R=Object.freeze({WALK_TOP2BOTTOM:1,WALK_BOTTOM2TOP:2,WALK_BYLEVEL:4,WALK_FIRST2LAST:16,WALK_LAST2FIRST:32});class k{constructor(e,t,n){this.event_name=e,this.action=t,this.next_state=n}}class ${constructor(e){this.state_name=e,this.dl_actions=[]}}class I{constructor(e,t){this.event_name=e,this.event_flag=Number(t)||0}}function A(e){Yt(e)&&(e=JSON.stringify(e)),wt(" ".repeat(Math.max(0,2*m-1))+String(e))}function L(e,t){let n={};if(!xt(t))return St("sdata_desc MUST be an array"),Dt(t),n;for(let r=0;r<t.length;r++){const o=t[r];o.name&&P(e,n,o)}return n}function P(e,t,n){let r,o=n.default_value;switch(n.type){case y.DTP_STRING:r=String(o);break;case y.DTP_BOOLEAN:r=Zt(o);break;case y.DTP_INTEGER:r=parseInt(o),isNaN(r)&&St(`${Oe(e)}: attr NaN: ${n.name}`);break;case y.DTP_REAL:r=Number(o),isNaN(r)&&St(`${Oe(e)}: attr NaN: ${n.name}`);break;case y.DTP_LIST:if(Bt(o))try{r=JSON.parse(o)}catch(e){St(`JSON parse error: ${e.message}`)}else r=o;xt(r)||(r=[]);break;case y.DTP_DICT:if(Bt(o))try{r=JSON.parse(o)}catch(e){St(`JSON parse error: ${e.message}`)}else r=o;Yt(r)||(r={});break;case y.DTP_JSON:if(Bt(o))try{r=JSON.parse(o)}catch(e){St(`JSON parse error: ${e.message}`)}else r=o;break;case y.DTP_POINTER:r=o}return void 0===r&&(St(`default_value WRONG, it: ${n.name}, value: ${n.default_value}`),r=null),t[n.name]=r,0}function U(e,t,n,r){let o;switch(n.type){case y.DTP_STRING:if(Bt(r))o=String(r);else{let e=JSON.stringify(r);e&&(o=String(e))}break;case y.DTP_BOOLEAN:o=Zt(r);break;case y.DTP_INTEGER:o=parseInt(r),isNaN(o)&&St(`${Oe(e)}: attr NaN: ${n.name}`);break;case y.DTP_REAL:o=Number(r),isNaN(o)&&St(`${Oe(e)}: attr NaN: ${n.name}`);break;case y.DTP_LIST:if(Bt(r))try{o=JSON.parse(r)}catch(e){St(`JSON parse error: ${e.message}`)}else o=r;if(!xt(o))return St(`attr must be an array: ${n.name}`),-1;break;case y.DTP_DICT:if(Bt(r))try{o=JSON.parse(r)}catch(e){St(`JSON parse error: ${e.message}`)}else o=r;if(!Yt(o))return St(`attr must be an object: ${n.name}`),-1;break;case y.DTP_JSON:if(Bt(r))try{o=JSON.parse(r)}catch(e){St(`JSON parse error: ${e.message}`)}else o=r;if(!xt(o)&&!Yt(o))return St(`attr must be a json dict/list: ${n.name}`),-1;break;case y.DTP_POINTER:o=r}return void 0===o&&St(`${Oe(e)}: attr undefined: ${n.name}`),t[n.name]=o,Yt(e.priv)&&e.priv.hasOwnProperty(n.name)&&(e.priv[n.name]=o),e.obflag&N.obflag_created&&!(e.obflag&N.obflag_destroyed)&&e.gclass.gmt.mt_writing&&e.gclass.gmt.mt_writing(e,n.name),0}function C(e){return e.jn_attrs}function G(e,t,n){return Me(e,t)?C(e):e&&e.bottom_gobj?G(e.bottom_gobj,t):null}function F(e,t,n){if(!(e&&e instanceof v))return n&&St("gclass NULL"),null;if(!t)return e.attrs_table;for(let n=0;n<e.attrs_table.length;n++){const r=e.attrs_table[n];if(r.name&&r.name===t)return r}return n&&St(`${e.gclass_name}: GClass Attribute NOT FOUND: ${t}`),null}function V(e,t,n,r,o,i,l,_,s,a,u){if(Xt(e))return St("gclass_name EMPTY"),null;if(e.includes("`")||e.includes("^")||e.includes("."))return St(`GClass name CANNOT have '.' or '^' or '\`' char: ${e}`),null;if(H(e))return St(`GClass ALREADY exists: ${e}`),null;let c=new v(e,r,o,i,l,_,s,a,u);!function(e,t){e&&e instanceof v?t?d[t]?St(`gclass ALREADY REGISTERED: ${t}`):d[t]=e:St("gclass_name undefined"):St("gclass undefined")}(c,e);const f=n.length;for(let e=0;e<f;e++){let t=n[e][0],r=n[e][1];if(Xt(t))continue;if(Y(c,t)<0)return W(c),null;const o=r.length;for(let e=0;e<o;e++){let n=r[e][0],o=r[e][1],i=r[e][2];Xt(n)||x(c,t,n,o,i)}}for(let e=0;e<t.length;e++){let n=t[e][0],r=t[e][1];if(!Xt(n)){if(Q(c,n))return St(`SMachine: event repeated in input_events: ${n}`),W(c),null;J(c,n,r)}}if(!c.fsm_checked){if(z(c)<0)return W(c),null;c.fsm_checked=!0}return c}function W(e){let t;if(Bt(e))t=e;else{if(!(e instanceof v))return St("Cannot unregister gclass, type unknown"),-1;t=e.gclass_name}let n=d[t];return n?n.instances>0?(St(`Cannot unregister gclass, instances in use: ${t}`),-1):(delete d[t],0):(St(`Cannot unregister gclass, not found: ${t}`),-1)}function M(e,t){const n=e.dl_states.length,r=e.dl_states;for(let e=0;e<n;e++){let n=r[e];if(n.state_name&&n.state_name===t)return n}return null}function K(e,t){const n=e.dl_actions.length,r=e.dl_actions;for(let e=0;e<n;e++){let n=r[e];if(n.event_name&&n.event_name===t)return n}return null}function Y(e,t){return e instanceof v?M(e,t)?(St(`state already exists: ${t}`),-1):(e.dl_states.push(new $(t)),0):(St("Cannot add state, typeof not GClass"),-1)}function x(e,t,n,r,o){if(!(e instanceof v))return St("Cannot add state, typeof not GClass"),-1;if(Xt(t))return St("state_name EMPTY"),-1;let i=M(e,t);return i?K(i,n)?(St(`event already exists: gclass ${e.gclass_name}, state ${t}, event ${n}`),-1):(i.dl_actions.push(new k(n,r,o)),0):(St(`state not found: ${t}`),-1)}function B(e,t,n){Xt(t)||e.push(new I(t,n))}function J(e,t,n){return e instanceof v?B(e.dl_events,t,n):(St("Cannot add state, typeof not GClass"),-1)}function Q(e,t){if(!(e instanceof v))return St("Cannot add state, typeof not GClass"),0;const n=e.dl_events.length,r=e.dl_events;for(let e=0;e<n;e++){let n=r[e];if(n.event_name&&n.event_name===t)return n}return null}function z(e){if(!(e instanceof v))return St("Cannot add state, typeof not GClass"),-1;let t=0;Mt(e.dl_states)||(St(`GClass without states: ${e.gclass_name}`),t+=-1);for(let n=0;n<e.dl_states.length;n++){let r=e.dl_states[n];if(!Xt(r.state_name))for(let n=0;n<r.dl_actions.length;n++){let o=r.dl_actions[n];if(!Xt(o.event_name)&&(Q(e,o.event_name)||(St(`SMachine: state's event NOT in input_events: gclass ${e.gclass_name}, state ${r.state_name}, event ${o.event_name}`),t+=-1),o.next_state)){M(e,o.next_state)||(St(`SMachine: next state NOT in state names: gclass ${e.gclass_name}, state ${r.state_name}, next_state ${o.next_state}`),t+=-1)}}}for(let n=0;n<e.dl_events.length;n++){let r=e.dl_events[n];if(!Xt(r.event_name)&&(Jt(r.event_flag)||(St(`SMachine: event flag is NOT number: gclass ${e.gclass_name}, event ${r.event_name}`),t+=-1),!(r.event_flag&D.EVF_OUTPUT_EVENT))){let n=!1;for(let t=0;t<e.dl_states.length;t++){let o=e.dl_states[t];Xt(o.state_name)||K(o,r.event_name)&&(n=!0)}n||(St(`SMachine: input_list's event NOT in state: gclass ${e.gclass_name}, event ${r.event_name}`),t+=-1)}}return t}function H(e,t){let n=null;try{n=d[e]}catch(e){}return n||t&&St(`gclass not found: ${e}`),n}function q(){return!p||p.obflag&N.obflag_destroyed?null:p}function X(e,t){e=e.toLowerCase();let n=b[e];return!n&&t?(St(`gobj service not found: ${e}`),null):n}function Z(e){let t=ve(e);return t=t.toLowerCase(),b[t]&&St(`service ALREADY REGISTERED: ${t}. Will be UPDATED`),b[t]=e,0}function ee(e,t){t.parent&&St(`_add_child() ALREADY HAS PARENT: ${t.gobj_name}`),e.dl_children.push(t),t.parent=e}function te(e,t){let n=Fn(e.dl_children,t);n>=0&&(Vt(e.dl_children,n),t.parent=null)}function ne(e,t){"__json_config_variables__"!==t&&St(`GClass Attribute NOT FOUND: ${Oe(e)}, attr ${t}`)}function re(e,t,n){let r=t,o=function(e,t,n,r,o){if(!e||!t)return St("hsdata or kw NULL"),-1;let i=0;for(const[n,l]of Object.entries(t)){const t=F(o.gclass,n,!1);t?i+=U(o,e,t,l):r&&(r(o,n),i--)}return i}(C(e),r,0,e.gclass.gclass_flag&O.gcflag_ignore_unknown_attrs?0:ne,e);o<0&&(St(`${Oe(e)} json2data() FAILED`),Dt(r))}function oe(t,r,o,i,l){if(l&w.gobj_flag_yuno){if(e.__yuno__)return St("__yuno__ already created"),null;l|=w.gobj_flag_service}else{if(!i)return St("gobj NEEDS a parent!"),null;if(!("string"==typeof i||i instanceof S))return St(`BAD TYPE of parent: ${i}`),null;if(Bt(i)&&!(i=X(i)))return Ot(`parent service not found: ${i}`),null}if(l&w.gobj_flag_service&&X(t,!1))return St(`service ALREADY registered: ${r}^${t}`),null;if(l&w.gobj_flag_default_service){if(p)return St(`default service ALREADY registered: ${r}^${t}`),null;l|=w.gobj_flag_service}if(Xt(r))return St("gclass_name must be a string"),null;let s=H(r,!1);if(!s)return St(`GClass not registered: ${r}^${t}`),null;if(!Bt(t))return St(`gobj_name must be a string: ${r}`),null;if(!Xt(t)){if(t.includes("`"))return St(`gobj_name cannot contain char ': ${r}^${t}`),null;if(t.includes("^"))return St(`gobj_name cannot contain char ^: ${r}^${t}`),null}let a=new S(t,s,o,i,l);a.jn_attrs=L(a,s.attrs_table);for(const[e,t]of Object.entries(a.jn_attrs))e in a.priv&&(a.priv[e]=t);let u=e.__yuno__&&xe(e.__yuno__,"trace_creation");return u&&A(n("ππβ© creating: %s^%s",s.gclass_name,t)),a.gobj_flag&w.gobj_flag_service&&Z(a),a.gobj_flag&w.gobj_flag_yuno&&(e.__yuno__=a),a.gobj_flag&w.gobj_flag_default_service&&(p=a),a.gobj_flag&w.gobj_flag_yuno||ee(i,a),a.obflag|=N.obflag_created,a.gclass.instances++,re(a,o),a.gobj_flag&w.gobj_flag_service&&_&&_(a,null),a.gclass.gmt.mt_create2?a.gclass.gmt.mt_create2(a,o):a.gclass.gmt.mt_create&&a.gclass.gmt.mt_create(a),i&&i.gclass.gmt.mt_child_added&&(u&&A(n("π¦π¦π΅ child_added(%s): %s",we(i),Oe(a))),i.gclass.gmt.mt_child_added(i,a)),u&&A(n("ππβͺ created: %s",we(a))),a}function ie(e,t,n,r){return oe(e,t,n,r,w.gobj_flag_pure_child)}function le(t){if(ke(t))return void St("gobj NULL or DESTROYED");t.__refs__>0&&St(`${Oe(t)}: gobj DESTROYING with references: ${t.__refs__}`),t.obflag|=N.obflag_destroying;let r=e.__yuno__&&xe(e.__yuno__,"trace_creation");r&&A(n("ππβ© destroying: %s",we(t)));let o=Ne(t);o&&o.gclass.gmt.mt_child_removed&&(r&&A(n("π¦π¦π΄ child_removed(%s): %s",we(o),Oe(t))),o.gclass.gmt.mt_child_removed(o,t)),t.gobj_flag&w.gobj_flag_service&&function(e){let t=ve(e);t=t.toLowerCase(),b[t]?delete b[t]:St(`"service NOT found in register": ${t}`)}(t),t.playing&&(St(`Destroying a PLAYING gobj: ${we(t)}`),de(t)),t.running&&(St(`Destroying a RUNNING gobj: ${we(t)}`),ue(t)),ft(t,t.dl_subscriptions,!0),ft(t,t.dl_subscribings,!0),o&&(te(o,t),De(t)&&($e(o)!==t||ke(o)||Ie(o,null))),function(e){let t=e.dl_children.slice();for(let e=0;e<t.length;e++){let n=t[e];ke(n)||le(n)}}(t),t.obflag&N.obflag_created&&t.gclass.gmt.mt_destroy&&t.gclass.gmt.mt_destroy(t),r&&A(n("ππβͺ destroyed: %s",we(t))),t.obflag|=N.obflag_destroyed,t.obflag&N.obflag_created&&t.gclass.instances--}function _e(t){if(ke(t))return St("gobj NULL or DESTROYED"),-1;if(t.running)return St(`${Oe(t)}: GObj ALREADY RUNNING`),-1;if(t.disabled)return St(`${Oe(t)}: GObj DISABLED`),-1;e.__yuno__&&xe(e.__yuno__,"trace_start_stop")&&A(n("βΊ βΊ start: %s",we(t))),t.running=!0;let r=0;return t.gclass.gmt.mt_start&&(r=t.gclass.gmt.mt_start(t)),r}function se(e,t,n){return e.gclass.gclass_flag&O.gcflag_manual_start||ke(e)||be(e)||pe(e)||_e(e),0}function ae(e,t,n){return e.gclass.gclass_flag&O.gcflag_manual_start||pe(e)?1:(be(e)||_e(e),0)}function ue(t){if(ke(t))return St("gobj NULL or DESTROYED"),-1;if(!t.running)return St(`${Oe(t)}: GObj NOT RUNNING`),-1;t.playing&&(Ot(`${Oe(t)}: GObj stopping without previous pause`),de(t)),e.__yuno__&&xe(e.__yuno__,"trace_start_stop")&&A(n("βΉ βΉ stop: %s",we(t))),t.running=!1;let r=0;return t.gclass.gmt.mt_stop&&(r=t.gclass.gmt.mt_stop(t)),r}function ce(e,t,n){return be(e)&&ue(e),0}function fe(e){return ke(e)?(St("gobj NULL or DESTROYED"),-1):Le(e,R.WALK_FIRST2LAST,ce,0,0)}function ge(t){if(ke(t))return St(`gobj NULL or DESTROYED: ${Oe(t)}`),-1;if(t.playing)return St(`${Oe(t)}: GObj ALREADY PLAYING`),-1;if(t.disabled)return St(`${Oe(t)}: GObj DISABLED`),-1;if(!be(t)){if(t.gclass.gclass_flag&O.gcflag_required_start_to_play)return St(`${Oe(t)}: Cannot play, start not done`),-1;Ot(`${Oe(t)}: GObj playing without previous start`),_e(t)}e.__yuno__&&xe(e.__yuno__,"trace_start_stop")&&A(n("β― β― play: %s",we(t))),t.playing=!0;let r=0;return t.gclass.gmt.mt_play&&(r=t.gclass.gmt.mt_play(t),r<0&&(t.playing=!1)),r}function de(t){if(ke(t))return St("gobj NULL or DESTROYED"),-1;if(!t.playing)return St(`${Oe(t)}: GObj NOT PLAYING`),-1;return e.__yuno__&&xe(e.__yuno__,"trace_start_stop")&&A(n("βΈ βΈ pause: %s",we(t))),t.playing=!1,t.gclass.gmt.mt_pause?t.gclass.gmt.mt_pause(t):0}function be(e){return!ke(e)&&e.running}function pe(e){return!!ke(e)||e.disabled}function me(e){return!!(e&&e.gobj_flag&w.gobj_flag_service)}function ye(e){return!ke(e)&&e.playing}function he(){return!e.__yuno__||e.__yuno__.obflag&N.obflag_destroyed?null:e.__yuno__}function Te(){let e=he();return e?ve(e):""}function Ee(){let e=he();return e?Je(e,"yuno_role"):""}function je(){let e=he();return e?Je(e,"yuno_id"):""}function ve(e){return qt(e)?e.gobj_name:(St("gobj bad type"),null)}function Se(e){return qt(e)?e.gclass.gclass_name:(St("gobj NULL of bad type"),null)}function Oe(e){return qt(e)?e.gclass.gclass_name+"^"+ve(e):(St("gobj bad type"),null)}function we(e){if(!qt(e))return St("gobj NULL of bad type"),null;let t=Oe(e),n=Ne(e);for(;n;){t=Oe(n)+"`"+t,n=Ne(n)}return t}function Ne(e){return qt(e)?e.parent:(St("gobj NULL of bad type"),null)}function De(e){return qt(e)?!!(e.gobj_flag&w.gobj_flag_volatil):(St("gobj NULL of bad type"),null)}function Re(e){return qt(e)?!!(e.gobj_flag&w.gobj_flag_pure_child):(St("gobj NULL of bad type"),null)}function ke(e){return!qt(e)||!!(e.obflag&(N.obflag_destroyed|N.obflag_destroying))}function $e(e){return qt(e)?e.bottom_gobj:(St("gobj NULL of bad type"),null)}function Ie(e,t){if(!qt(e))return St("gobj NULL of bad type"),null;e.bottom_gobj&&Ot(`${Oe(e)}: bottom_gobj already set`),e.bottom_gobj=t}function Ae(e,t,n){return qt(e)?t?F(e.gclass,t,n):e.gclass.attrs_table:(St("gobj NULL of bad type"),null)}function Le(e,t,n,r,o){return ke(e)?(St("gobj NULL, destroying, or bad type"),0):Ue(e.dl_children,t,n,r,o)}function Pe(e,t,n,r,o){return ke(e)?(St("gobj NULL, destroying, or bad type"),0):Ge(e.dl_children,t,n,r,o)}function Ue(e,t,n,r,o){let i,l=[...e];if(t&R.WALK_LAST2FIRST)for(let e=l.length;e>0;e--){i=l[e-1];let t=n(i,r,o);if(t<0)return t}else for(let e=0;e<l.length;e++){i=l[e];let t=n(i,r,o);if(t<0)return t}return 0}function Ce(e,t,n,r,o){let i,l=Ue(e,t,n,r,o);if(l<0)return l;if(t&R.WALK_LAST2FIRST)for(let _=e.length;_>0;_--){if(i=e[_-1],l=Ce([...i.dl_children],t,n,r,o),l<0)return l}else for(let _=0;_<e.length;_++){if(i=e[_],l=Ce([...i.dl_children],t,n,r,o),l<0)return l}return l}function Ge(e,t,n,r,o){if(t&R.WALK_BYLEVEL)return Ce(e,t,n,r,o);let i,l;if(t&R.WALK_BOTTOM2TOP)for(let _=e.length;_>0;_--){if(l=e[_-1],i=Ge([...l.dl_children],t,n,r,o),i<0)return i;if(i=n(l,r,o),i<0)return i}else for(let _=0;_<e.length;_++){if(l=e[_],i=n(l,r,o),i<0)return i;if(0===i){if(i=Ge([...l.dl_children],t,n,r,o),i<0)return i}}return 0}function Fe(e,t){if(!qt(e))return St("gobj NULL of bad type"),!1;let n=t.__gclass_name__,r=t.__gobj_name__,o=t.__prefix_gobj_name__;t.__disabled__;let i=t.__state__;if(n&&n!==Se(e))return!1;if(r&&r!==ve(e))return!1;if(o){let t=o.length;if(o!==ve(e).substring(0,t))return!1}if(i){if(i!==et(e))return!1}let l=e.jn_attrs;for(const n of Object.keys(t))if("__gclass_name__"!==n&&"__gobj_name__"!==n&&"__prefix_gobj_name__"!==n&&"__disabled__"!==n&&"__state__"!==n&&Me(e,n)&&l[n]!==t[n])return!1;return!0}function Ve(e,t){if(ke(e))return St("gobj NULL or DESTROYED"),null;const n=e.dl_children;for(let e=0;e<n.length;e++){const r=n[e];if(Fe(r,t))return r}return null}function We(e,t){if(!t)return null;let n=t.split("`");if(!function(e,t){let n=t.split("^"),r=null,o=null;if(2===n.length){if(o=n[0],r=n[1],o!==Se(e))return!1}else{if(1!==n.length)return!1;r=n[0]}return r===ve(e)}(e,n[0]))return null;if(1===n.length)return e;let r=n[1].split("^"),o={};1===r.length?o.__gobj_name__=r:(o.__gclass_name__=r[0],o.__gobj_name__=r[1]);let i=Ve(e,o);return i?(n.splice(0,1),n=n.join("`"),We(i,n)):null}function Me(e,t){return!Xt(t)&&!!F(e.gclass,t,!1)}function Ke(e,t,n){let r=e.jn_attrs;if(t in r&&r.hasOwnProperty(t)){let n=r[t];return e.gclass.gmt.mt_reading?e.gclass.gmt.mt_reading(e,t,n):n}return St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`),null}function Ye(e,t,n){let r={},o=e.gclass.attrs_table;for(let n=0;n<o.length;n++){const i=o[n];if(i.name&&(-1===t||i.flag&t)){let t=Lt(e.jn_attrs,i.name);Ut(r,i.name,t)}}return r}function xe(e,t){if(t){if(0===tn(t,"__disabled__"))return pe(e);if(0===tn(t,"__running__"))return be(e);if(0===tn(t,"__playing__"))return ye(e);if(0===tn(t,"__service__"))return me(e)}let n=G(e,t);return n?!e.gclass.gmt.mt_reading||e.obflag&N.obflag_destroyed?Lt(n,t):e.gclass.gmt.mt_reading(e,t):(St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`),0)}function Be(e,t){t&&tn(t,"__trace_level__");let n=G(e,t);return n?!e.gclass.gmt.mt_reading||e.obflag&N.obflag_destroyed?Lt(n,t):e.gclass.gmt.mt_reading(e,t):(St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`),0)}function Je(e,t){if(t&&0===tn(t,"__state__"))return et(e);let n=G(e,t);return n?!e.gclass.gmt.mt_reading||e.obflag&N.obflag_destroyed?Lt(n,t):e.gclass.gmt.mt_reading(e,t):(St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`),0)}function Qe(e,t){let n=G(e,t);return n?!e.gclass.gmt.mt_reading||e.obflag&N.obflag_destroyed?Lt(n,t):e.gclass.gmt.mt_reading(e,t):(St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`),0)}function ze(e,t,n,r){let o=C(e),i=0;for(const[r,l]of Object.entries(t)){let t=Ae(e,r,!0);t&&((-1===n||t.flag&n)&&(i+=U(e,o,t,l)))}return i}function He(e,t,n){let r=G(e,t);return r?(r[t]=Zt(n),Yt(e.priv)&&e.priv.hasOwnProperty(t)&&(e.priv[t]=n),e.obflag&N.obflag_created&&!(e.obflag&N.obflag_destroyed)&&e.gclass.gmt.mt_writing&&e.gclass.gmt.mt_writing(e,t),0):(St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`),-1)}function qe(e,t,n){let r=G(e,t);return r?(r[t]=parseInt(n),Yt(e.priv)&&e.priv.hasOwnProperty(t)&&(e.priv[t]=n),e.obflag&N.obflag_created&&!(e.obflag&N.obflag_destroyed)&&e.gclass.gmt.mt_writing&&e.gclass.gmt.mt_writing(e,t),0):(St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`),-1)}function Xe(e,t,n){let r=G(e,t);return r?(r[t]=String(n),Yt(e.priv)&&e.priv.hasOwnProperty(t)&&(e.priv[t]=n),e.obflag&N.obflag_created&&!(e.obflag&N.obflag_destroyed)&&e.gclass.gmt.mt_writing&&e.gclass.gmt.mt_writing(e,t),0):(St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`),-1)}function Ze(e,t){if(ke(e))return St("gobj NULL or DESTROYED"),null;if(e.current_state.state_name===t)return!1;let n=M(e.gclass,t);return n?(e.last_state=e.current_state,e.current_state=n,!0):(St(`${Oe(e)}: state unknown, state ${t}`),!1)}function et(e){return ke(e)?(St("gobj NULL or DESTROYED"),null):e.current_state.state_name}function tt(e,t,n){if(!qt(e))return St("gobj NULL of bad type"),null;let r=Q(e.gclass,t);if(r)return r;if(n){const e=g.length,n=g;for(let r=0;r<e;r++){let e=n[r];if(e.event_name&&e.event_name===t)return e}}return null}function nt(e,t,n){let r=tt(e,t,!1);return!!r&&!(n&&!(r.event_flag&n))}function rt(e,t,n){let r=tt(e,t,!1);return!!r&&(!(n&&!(r.event_flag&n))&&!!(r.event_flag&D.EVF_OUTPUT_EVENT))}function ot(t,r,o,i){if(!(t&&t instanceof S))return St("gobj dst NULL"),-1;if(t.obflag&(N.obflag_destroyed|N.obflag_destroying))return St("gobj dst DESTROYED"),-1;let l=t.current_state;if(!l)return St(`${Oe(t)}: current_state NULL`),-1;let _=0;_=e.__yuno__&&Be(e.__yuno__,"tracing"),"C_TIMER"===Se(i)&&(_=e.__yuno__&&Be(e.__yuno__,"trace_timer")),m++;let s=K(l,r);if(!s)return t.gclass.gmt.mt_inject_event?(m--,_&&(A(n("π mach(%s%s), st: %s, ev: %s, from(%s%s)",t.running?"":"!!",Oe(t),l.state_name,r||"",i&&!i.running?"!!":"",Oe(i))),o&&_>1&&Wt(o)&&Dt(o)),t.gclass.gmt.mt_inject_event(t,r,o,i)):(_&&A(n("π mach(%s%s^%s), st: %s, ev: %s, ππERROR Event NOT DEFINED in stateππ, from(%s%s^%s)",t.running?"":"!!",Se(t),ve(t),l.state_name,r||"",i&&!i.running?"!!":"",Se(i),ve(i))),St(`ππ Event NOT DEFINED in state ππ: ${Oe(t)}, ${l.state_name}, ${r}`),m--,-1);if(_){let e="";s.action&&(e=Wn(s.action)),A(n("π mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)",t.running?"":"!!",Se(t),ve(t),l.state_name,"",r||"","",e,i&&!i.running?"!!":"",Se(i),ve(i))),o&&_>1&&Wt(o)&&Dt(o)}s.next_state&&Ze(t,s.next_state);let a=-1;try{s.action&&(a=s.action(t,r,o,i))}finally{}return!_||t.obflag&N.obflag_destroyed||A(n("<- mach(%s%s^%s), st: %s, ev: %s, ret: %d",t.running?"":"!!",Se(t),ve(t),t.current_state.state_name,r||"",Jt(a)?a:0)),m--,a}const it=Object.freeze({__hard_subscription__:1,__own_event__:2}),lt=[j(y.DTP_POINTER,"publisher",0,null,"publisher gobj"),j(y.DTP_POINTER,"subscriber",0,null,"subscriber gobj"),j(y.DTP_STRING,"event",0,"","event name subscribed"),j(y.DTP_STRING,"renamed_event",0,"","rename event name"),j(y.DTP_INTEGER,"subs_flag",0,0,"subscription flag"),j(y.DTP_JSON,"__config__",0,null,"subscription config"),j(y.DTP_JSON,"__global__",0,null,"global kw, merge in publishing"),j(y.DTP_JSON,"__local__",0,null,"local kw, remove in publishing"),j(y.DTP_JSON,"__filter__",0,null,"filter kw, filter in publishing"),j(y.DTP_STRING,"__service__",0,"","subscription service"),E()];function _t(e,t,n,r,o){let i=fn(t,r,"__config__",null),l=fn(t,r,"__global__",null),_=fn(t,r,"__local__",null),s=gn(t,r,"__filter__",null),a=!0;if(t){t!==cn(null,e,"publisher",null)&&(a=!1)}if(o){o!==cn(null,e,"subscriber",null)&&(a=!1)}if(n){n!==un(null,e,"event","")&&(a=!1)}if(Kt(i)>0){let t=fn(null,e,"__config__",null);Kt(t)>0&&kt(t,i)||(a=!1)}if(Kt(l)>0){let t=fn(null,e,"__global__",null);Kt(t)>0&&kt(t,l)||(a=!1)}if(Kt(_)>0){let t=fn(null,e,"__local__",null);Kt(t)>0&&kt(t,_)||(a=!1)}if(Kt(s)>0){let t=gn(null,e,"__filter__",null);Kt(t)>0&&kt(t,s)||(a=!1)}return a}function st(e,t,n,r,o){let i=[];for(let l=0;l<e.length;l++){let _=e[l];_t(_,t,n,r,o)&&Gt(i,_)}return i}function at(e,t,n,r,o){for(let i=0;i<e.length;i++){if(_t(e[i],t,n,r,o))return i}return-1}function ut(t,r,o,i){let l=cn(t,r,"publisher",null,pt.KW_REQUIRED),_=cn(t,r,"subscriber",null,pt.KW_REQUIRED),s=un(t,r,"event","",pt.KW_REQUIRED);if((an(t,r,"subs_flag",null,pt.KW_REQUIRED)&it.__hard_subscription__?1:0)&&!o)return-1;e.__yuno__&&xe(e.__yuno__,"trace_subscriptions")&&(A(n("πππ unsubscribing event '%s': publisher %s, subscriber'%s'",s||"",Oe(l),Oe(_))),Dt(r)),l.obflag&N.obflag_destroyed||i||l.gclass.gmt.mt_subscription_deleted&&l.gclass.gmt.mt_subscription_deleted(l,r);let a=at(l.dl_subscriptions,l,s,r,_);return a>=0?Vt(l.dl_subscriptions,a):(St(`${Oe(t)}: subscription in publisher not found`),Dt(r)),a=at(_.dl_subscribings,l,s,r,_),a>=0?Vt(_.dl_subscribings,a):(St(`${Oe(t)}: subscription in subscriber not found`),Dt(r)),0}function ct(t,r,o,i){if(null==o&&(o={}),!t)return St(`publisher NULL: ev ${r}`),0;if(!i)return St(`subscriber NULL: ev ${r}`),0;const l=new Set(["__config__","__global__","__local__","__filter__","__service__"]);if(Object.keys(o).forEach(e=>{l.has(e)||St(`${Oe(t)}: key ignored in subscription (key: ${e}, event: ${r})`)}),Xt(r))r="";else if(!(rt(t,r,D.EVF_OUTPUT_EVENT)||t.gclass.gclass_flag&O.gcflag_no_check_output_events))return St(`event NOT in output event list: ${Oe(t)}, ${r}`),0;let _=st(t.dl_subscriptions,t,r,o,i);Mt(_)>0&&(St(`${Oe(t)}: ${Mt(_)} subscription(s) REPEATED, will be deleted and override`),Dt(_,"subscription REPEATED"),ft(t,_,!1));let s=function(e,t,n,r){let o=L(e,lt);Ct(o,"event",t),Ct(o,"subscriber",r),Ct(o,"publisher",e);let i=0;if(n){let t=fn(e,n,"__config__",null),r=fn(e,n,"__global__",null),l=fn(e,n,"__local__",null),_=gn(e,n,"__filter__",null),s=un(e,n,"__service__","");if(Kt(r)>0&&Ct(o,"__global__",Rt(r)),Kt(t)>0){let n=Rt(t);if(Ct(o,"__config__",n),on(n,"__hard_subscription__")){let t=sn(e,n,"__hard_subscription__",!1);Pt(n,"__hard_subscription__"),t&&(i|=it.__hard_subscription__)}if(on(n,"__own_event__")){let t=sn(e,n,"__own_event__",!1);Pt(n,"__own_event__"),t&&(i|=it.__own_event__)}}Kt(l)>0&&Ct(o,"__local__",Rt(l)),Kt(_)>0&&Ct(o,"__filter__",Rt(_)),Xt(s)||Ct(o,"__service__",s)}return Ct(o,"subs_flag",i),o}(t,r,o,i);if(!s)return St(`${Oe(t)}: _create_subscription() FAILED`),0;if(Gt(t.dl_subscriptions,s),Gt(i.dl_subscribings,s),e.__yuno__&&xe(e.__yuno__,"trace_subscriptions")&&(A(n("πππ subscribing event '%s', publisher '%s', subscriber %s",r||"",Oe(t),Oe(i))),o&&Dt(o)),t.gclass.gmt.mt_subscription_added){t.gclass.gmt.mt_subscription_added(t,s)<0&&(ut(t,s,!0,!0),s=0)}return s}function ft(e,t,n){let r=[...t];for(let t=0;t<r.length;t++){ut(e,r[t],n,!1)}return 0}function gt(e,t,n,r){return null==n&&(n={}),st(e.dl_subscriptions,e,t,n,r)}function dt(e,t,n,r){return st(e.dl_subscribings,r,t,n,e)}function bt(t,r,o){if(Yt(o)||(o={}),!t||t.obflag&(N.obflag_destroyed|N.obflag_destroying))return St("gobj NULL or DESTROYED"),-1;if(Xt(r))return St(`${Oe(t)}: event EMPTY`),-1;let i=tt(t,r,!0);if(!(i&&i.event_flag&(D.EVF_SYSTEM_EVENT|D.EVF_OUTPUT_EVENT)||t.gclass.gclass_flag&O.gcflag_no_check_output_events))return St(`event NOT in output event list: ${Oe(t)}, ev ${r}`),-1;let l=e.__yuno__&&xe(e.__yuno__,"trace_subscriptions");if(l&&(A(n("ππ mach(%s%s^%s), st: %s, ev: %s%s%s",t.running?"":"!!",Se(t),ve(t),t.current_state.state_name,"",r||"","")),Dt(o)),t.gclass.gmt.mt_publish_event){let e=t.gclass.gmt.mt_publish_event(t,r,o);if(e<=0)return e}let _=[...t.dl_subscriptions],s=0,a=0;for(let e=0;e<_.length;e++){let i=_[e];if(t.gclass.gmt.mt_publication_pre_filter){let e=t.gclass.gmt.mt_publication_pre_filter(t,i,r,o);if(e<0)break;if(0===e)continue}let u=cn(t,i,"subscriber",null,pt.KW_REQUIRED);if(!u||ke(u))continue;let c=an(t,i,"subs_flag",0,pt.KW_REQUIRED),f=un(t,i,"event","",pt.KW_REQUIRED);if(Xt(f)||0===tn(f,r)){fn(t,i,"__config__",null,0);let e=fn(t,i,"__global__",null,0),_=fn(t,i,"__local__",null,0),f=gn(t,i,"__filter__",null,0),g=o,d=1;if(t.gclass.gmt.mt_publication_filter?d=t.gclass.gmt.mt_publication_filter(t,r,g,u):Kt(f)>0&&(d=mn(g,f),l&&(A(n("πππ%s publishing with filter, event '%s', subscriber'%s', publisher %s",d?"π":"π",r||"",Oe(u),Oe(t))),Dt(f))),d<0)break;if(0===d)continue;let b=tt(u,r,!0);if(b&&b.event_flag&D.EVF_SYSTEM_EVENT&&!nt(u,b.event_name,0))continue;_&&rn(g,_),e&&$t(g,e),l&&(A(n("ππ mach(%s%s), st: %s, ev: %s, from(%s%s)",u.running?"":"!!",Oe(u),et(u),r||"",t&&!t.running?"!!":"",Oe(t))),Dt(g));let p=ot(u,r,g,t);if(p<0&&c&it.__own_event__){s=-1;break}if(a+=p,s++,ke(t))break}}return s||i&&i.event_flag&D.EVF_NO_WARN_SUBS||Ot(`${Oe(t)}: Publish event WITHOUT subscribers, ev ${r}`),a}const pt=Object.freeze({KW_REQUIRED:1,KW_CREATE:2,KW_WILD_NUMBER:4,KW_EXTRACT:8,KW_BACKWARD:16,KW_VERBOSE:32,KW_LOWER:64,KW_RECURSIVE:128}),mt="undefined"!=typeof window?window.console:console;let yt=mt.error,ht=mt.warn,Tt=mt.info,Et=mt.debug;function jt(e){e?(yt=e,ht=e):(yt=mt.error,ht=mt.warn)}function vt(e){const t=Array.prototype.slice.call(arguments);let n="";if("string"==typeof e){let r=1;n=e.replace(/%[sdifoO]/g,e=>{const n=t[r++];switch(e){case"%s":return String(n);case"%d":case"%i":return parseInt(n);case"%f":return parseFloat(n);case"%o":case"%O":return"object"==typeof n?JSON.stringify(n):String(n);default:return e}});const o=t.slice(r).map(e=>"object"==typeof e?JSON.stringify(e):String(e));o.length>0&&(n+=" "+o.join(" "))}else n=t.map(e=>"object"==typeof e?JSON.stringify(e):String(e)).join(" ");return n}function St(e){let t=vt(e),n=Gn();yt&&(yt===window.console.error?yt("%c"+n+" ERROR: "+String(t),"color:red"):(window.console.error("%c"+n+" ERROR: "+String(t),"color:red"),yt(`${n} ERROR: ${String(t)}`)))}function Ot(e){let t=vt(e),n=Gn();ht&&(ht===window.console.warn?ht("%c"+n+" WARNING: "+String(t),"color:yellow"):(window.console.warn("%c"+n+" WARNING: "+String(t),"color:yellow"),ht(`${n} WARNING: ${String(t)}`)))}function wt(e){let t=vt(e),n=Gn();Et&&Et("%c"+n+" DEBUG: "+String(t),"color:silver")}function Nt(e){let t=vt(e),n=Gn();Et&&Et("%c"+n+" MSG: "+String(t),"color:cyan")}function Dt(e,t){t&&window.console.warn("=====> "+t),window.console.dir(e)}function Rt(e){return structuredClone(e)}function kt(e,t){if(e===t)return!0;if(null===e||null===t)return e===t;if(typeof e!=typeof t)return!1;if(Array.isArray(e)!==Array.isArray(t))return!1;if(Array.isArray(e)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!kt(e[n],t[n]))return!1;return!0}if("object"==typeof e){let n=Object.keys(e).sort(),r=Object.keys(t).sort();if(n.length!==r.length)return!1;for(let o=0;o<n.length;o++){if(n[o]!==r[o])return!1;if(!kt(e[n[o]],t[r[o]]))return!1}return!0}return e===t}function $t(e,t){if(!t)return e;for(let n of Object.keys(t))e[n]=t[n];return e}function It(e,t){if(!t)return e;for(let n in t)t.hasOwnProperty(n)&&e.hasOwnProperty(n)&&(e[n]=t[n]);return e}function At(e,t){if(!t)return e;for(let n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n]);return e}function Lt(e,t){if(e&&e.hasOwnProperty(t))return e[t]}function Pt(e,t){e&&e.hasOwnProperty(t)&&delete e[t]}function Ut(e,t,n){e[t]=n}function Ct(e,t,n){e[t]=n}function Gt(e,t){e.push(t)}function Ft(e,t){e.push(t)}function Vt(e,t){e.splice(t,1)}function Wt(e){return Yt(e)?Object.keys(e).length:0}function Mt(e){return xt(e)?e.length:0}function Kt(e){return Yt(e)?Object.keys(e).length:xt(e)?e.length:Bt(e)&&e.length>0?1:0}function Yt(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function xt(e){return Array.isArray(e)}function Bt(e){return"string"==typeof e}function Jt(e){return"number"==typeof e&&Number.isFinite(e)}function Qt(e){return"boolean"==typeof e}function zt(e){return null==e}function Ht(e){return"function"==typeof e}function qt(e){return e instanceof S}function Xt(e){return!Bt(e)||0===e.length}function Zt(e){if(Jt(e))return Boolean(e);return/^\s*(true|1|on)\s*$/i.test(e)}function en(e,t){return e===t?0:e>t?1:-1}function tn(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n===r?0:n>r?1:-1}function nn(e,t){if(Yt(e)||Yt(t)||xt(e)||xt(t))return 0;if(Jt(e)||Jt(t)){let n=Number(e),r=Number(t);return n>r?1:n<r?-1:0}if(Qt(e)||Qt(t)){let n=Number(e),r=Number(t);return n>r?1:n<r?-1:0}return en(String(e),String(t))}function rn(e,t){if("object"!=typeof t||Array.isArray(t))if(Array.isArray(t))for(const n of t)rn(e,n);else"string"==typeof t&&delete e[t];else for(const n of Object.keys(t))delete e[n]}function on(e,t){return!(!(t in e)||!e.hasOwnProperty(t))}function ln(e,t,n,r){if(e&&!qt(e)&&St("GObj bad instanceof"),!Yt(t)&&!xt(t))return St(`${Oe(e)}: kw must be list or dict`),0;if(!Bt(n))return St(`${Oe(e)}: path must be a string: ${String(n)}`),0;let o=n.split("`");if(o.length<=1)return t[n];let i=o.length;for(let l=0;l<i;l++){if(void 0===(t=t[o[l]]))return void(r&&St(`${Oe(e)}: path not found: ${String(n)}`))}return t}function _n(e,t,n){e&&!qt(e)&&St("GObj bad instanceof");let[r,o]=function(e,t){let n=e.lastIndexOf(t);return-1===n?[e,""]:[e.substring(0,n),e.substring(n+1)]}(n,"`");if(Xt(o))Pt(t,n);else{Pt(ln(e,t,r,!0),o)}return 0}function sn(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=ln(e,t,n,!1);const l=o&&o&pt.KW_REQUIRED,_=o&&o&pt.KW_CREATE,s=o&&o&pt.KW_EXTRACT;if(void 0===i){if(_){let o=Boolean(r);return dn(e,t,n,o),o}return l&&(St(`path not found: '${n}'`),Dt(t)),Boolean(r)}return s&&_n(e,t,n),Boolean(i)}function an(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=ln(e,t,n,!1);const l=o&&o&pt.KW_REQUIRED,_=o&&o&pt.KW_CREATE,s=o&&o&pt.KW_EXTRACT;if(void 0===i){if(_){let o=parseInt(r);return dn(e,t,n,o),o}return l&&(St(`path not found: '${n}'`),Dt(t)),parseInt(r)}return s&&_n(e,t,n),Jt(i)?parseInt(i):(l&&(St(`path value MUST BE a number: ${n}`),Nt(t)),parseInt(r))}function un(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=ln(e,t,n,!1);const l=o&&o&pt.KW_REQUIRED,_=o&&o&pt.KW_CREATE,s=o&&o&pt.KW_EXTRACT;if(void 0===i){if(_){let o=String(r);return dn(e,t,n,o),o}return l&&(St(`path not found: '${n}'`),Dt(t)),String(r)}return s&&_n(e,t,n),Bt(i)?String(i):(l&&(St(`${Oe(e)}: path value MUST BE a string: ${n}`),Nt(t)),String(r))}function cn(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=ln(e,t,n,!1);const l=o&&o&pt.KW_REQUIRED,_=o&&o&pt.KW_CREATE,s=o&&o&pt.KW_EXTRACT;if(void 0===i){if(_){let o=r;return dn(e,t,n,o),o}return l&&(St(`path not found: '${n}'`),Dt(t)),r}return s&&_n(e,t,n),i}function fn(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=ln(e,t,n,!1);const l=o&&o&pt.KW_REQUIRED,_=o&&o&pt.KW_CREATE,s=o&&o&pt.KW_EXTRACT;if(void 0===i){if(_){let o=Object(r);return dn(e,t,n,o),o}return l&&(St(`path not found: '${n}'`),Dt(t)),Object(r)}return s&&_n(e,t,n),Yt(i)?Object(i):(l&&(St(`path value MUST BE a dict: ${n}`),Nt(t)),Object(r))}function gn(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=ln(e,t,n,!1);const l=o&&o&pt.KW_REQUIRED,_=o&&o&pt.KW_CREATE,s=o&&o&pt.KW_EXTRACT;if(void 0===i){if(_){let o=r;return dn(e,t,n,o),o}return l&&(St(`path not found: '${n}'`),Dt(t)),r}return s&&_n(e,t,n),i}function dn(e,t,n,r){if(e&&!qt(e)&&St("GObj bad instanceof"),!Yt(t))return St("kw is not an object"),-1;let o=n.split("`");if(o.length<=1)return t[n]=r,0;let i=o.length;for(let e=0;e<i;e++){let n=o[e];if(e===i-1)t[n]=r;else{void 0===t[n]&&(t[n]={}),t=t[n]}}return 0}function bn(e,t,n,r,o){if(e&&!qt(e)&&St("GObj bad instanceof"),!Yt(t))return St("kw is not an object"),-1;let i=fn(e,t,n,{},!0);return Yt(i)?(i[r]=o,0):(St("subdict is not an object"),-1)}function pn(e,t,r){let o="",i=!1;if(xt(t)){i=!1;for(let l=0;l<t.length;l++){let _=t[l];if(o=Xt(r)?n("%s",r):n("%s`%d",r,l),i=pn(e,_,o),i)break}}else if(Yt(t)){i=!0;let l=Object.keys(t);for(let _=0;_<l.length;_++){let s=l[_],a=t[s];if(o=Xt(r)?n("%s",s):n("%s`%s",r,s),xt(a)||Yt(a)){if(i=pn(e,a,o),!i)break;continue}let u=gn(0,e,o,0,0);if(u||(u=Lt(e,o)),!u){i=!1;break}if(0!==nn(u,a)){i=!1;break}}}return i}function mn(e,t){return 0===Kt(t)||pn(e,t,"")}function yn(e,t,n,r){e&&!qt(e)&&St("GObj bad instanceof");let o={};if(Bt(n)&&!Xt(n)){let i=n;t.hasOwnProperty(i)?o[i]=t[i]:r&&St(`${Oe(e)}: key not found: ${i}`)}else if(Yt(n)&&Wt(n)>0)for(let i of Object.keys(n))t.hasOwnProperty(i)?o[i]=t[i]:r&&St(`${Oe(e)}: key not found: ${i}`);else{if(!(xt(n)&&Mt(n)>0))return t;for(let i=0;i<n.length;i++){let l=n[i];t.hasOwnProperty(l)?o[l]=t[l]:r&&St(`${Oe(e)}: key not found: ${l}`)}}return o}function hn(e,t,n,r){let o={};if($t(o,t),Bt(n)&&!Xt(n)){let i=n;gn(e,t,i,0,0)?Pt(o,i):r&&St(`${Oe(e)}: key not found: ${i}`)}else if(Yt(n)&&Wt(n)>0)for(let i of Object.keys(n))t.hasOwnProperty(i)?Pt(o,i):r&&St(`${Oe(e)}: key not found: ${i}`);else{if(!(xt(n)&&Mt(n)>0))return{};for(let i=0;i<n.length;i++){let l=n[i];t.hasOwnProperty(l)?Pt(o,l):r&&St(`${Oe(e)}: key not found: ${l}`)}}return o}function Tn(e,t,n=!1){if("undefined"!=typeof window&&window.localStorage)try{let r=window.localStorage.getItem(e);return null===r?(n&&En(e,t),t):JSON.parse(r)}catch(n){return window.console.warn(`Error reading localStorage key "${e}":`,n),t}}function En(e,t){if("undefined"!=typeof window&&window.localStorage)if(e&&void 0!==t)try{window.localStorage.setItem(e,JSON.stringify(t))}catch(t){window.console.warn(`Error saving localStorage key "${e}":`,t)}else window.console.warn(`Invalid key or value for localStorage: key=${e}, value=${t}`)}function jn(e){if("undefined"!=typeof window&&window.localStorage)if(e)try{window.localStorage.removeItem(e)}catch(t){window.console.warn(`Error removing localStorage key "${e}":`,t)}else window.console.warn(`Invalid key for localStorage removal: ${e}`)}function vn(e,t){if(zt(e)||zt(t))return!0;if(xt(e)){if(0===e.length)return!0;for(let n=0;n<e.length;n++){if(e[n]===t)return!0}}else if(Yt(e)){if(0===Object.keys(e).length)return!0;for(let n in e)if(n===t)return!0}else if(Bt(e)&&e===t)return!0;return!1}function Sn(e,t,n,r,o){if(e&&!qt(e)&&St("GObj bad instanceof"),!t)return null;o||(o=mn);let i=[];if(xt(t))for(let l=0;l<t.length;l++){let _,s=t[l];if(Yt(s))_=un(e,s,"id","",0);else{if(!Bt(s))continue;_=s}vn(n,_)&&(o(s,r)&&i.push(s))}else{if(!Yt(t))return St("kw_collect() BAD kw parameter"),null;for(let e of Object.keys(t)){let l=t[e];vn(n,e)&&(o(l,r)&&i.push(l))}}return i}function On(e,t){if(!e)return-1;for(let n=0;n<e.length;n++)if(e[n]&&e[n].id===t)return n;return-1}function wn(e,t,n){if(!e||!t)return St("ERROR: str_in_list() list or str empty"),!1;let r=e.length;if(n){t=t.toLowerCase();for(let n=0;n<r;n++){let r=e[n];if(r&&r.toLowerCase()===t)return!0}}else for(let n=0;n<r;n++)if(e[n]===t)return!0;return!1}function Nn(e,t){try{let n=e.__md_iev__;if(n)return n[t]}catch(e){return}}function Dn(e,t,n){let r=e.__md_iev__;r||(r={},e.__md_iev__=r),r[t]=n}function Rn(e,t,n,r){if(!qt(e))return St("gobj is not a GObj"),null;if(!t)return;let o=Nn(t,n);o||(o=[],Dn(t,n,o));try{xt(o)&&o.unshift(r)}catch(e){St(e)}}function kn(e,t,n,r){if(!qt(e))return St("gobj is not a GObj"),null;if(!Yt(t))return St("kw is not a dict"),null;let o=Nn(t,n);return o?0===o.length?(r&&St(`stack empty: ${n}`),null):o[0]:(r&&St(`stack NOT FOUND: ${n}`),null)}function $n(e,t,n){return Xt(n)?_n(e,t,"__md_iev__`__msg_type__"):bn(e,t,"__md_iev__","__msg_type__",n),0}function In(e,t){return un(e,t,"__md_iev__`__msg_type__","",0)}function An(e,t,n){void 0!==n&&Bt(n)||(n="");for(let r of Object.keys(e)){if(!e.hasOwnProperty(r))continue;let o=(n.length?"`":"")+r;n+=o,t.apply(this,[e,r,e[r],n]),Yt(e[r])&&An(e[r],t,n),n=n.slice(0,-o.length)}}function Ln(e,t,n,r){if(!e)return null;let o,i=e.length;for(o=0;o<i;o++){let i=e[o];if(i){let e=i.id;if(e&&e===n)return i;if(r&&on(i,t)){let e=Ln(i[t],t,n,r);if(e)return e}}}return null}function Pn(e){function t(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(atob(e).replace(/(.)/g,function(e,t){let n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n="0"+n),"%"+n}))}(t)}catch(e){return atob(t)}}let n=e.split(".");return{header:t(n[0]),payload:t(n[1]),signature:t(n[2])}}function Un(e){return null==e?"":String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Cn(e){const t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstChild}function Gn(){const e=new Date,t=e.toISOString().slice(0,19),n=String(e.getMilliseconds()).padStart(3,"0"),r=e.getTimezoneOffset();return`${t}.${n}${`${r>0?"-":"+"}${String(Math.abs(r)/60).padStart(2,"0")}${String(Math.abs(r)%60).padStart(2,"0")}`}`}function Fn(e,t){if(!e)throw"ERROR: index_in_list() list empty";for(let n=0;n<e.length;n++)if(t===e[n])return n;return-1}function Vn(){let e="";return"undefined"!=typeof window&&window.localStorage?(e=window.localStorage.getItem("host_uuid"),!e&&window.crypto?.randomUUID&&(e=window.crypto.randomUUID(),window.localStorage.setItem("host_uuid",e))):e="undefined"!=typeof globalThis&&globalThis.crypto?.randomUUID?globalThis.crypto.randomUUID():"00000000-0000-0000-0000-000000000000",e}function Wn(e){let t=null;return"function"!=typeof e&&"object"!=typeof e||(t=(""+e).match(/function\s*([\w\$]*)\s*\(/)),null!==t?t[1]+"()":""}function Mn(e){return"persistent-attrs-"+Oe(e)}function Kn(e,t){if(Bt(t)){if(-1===t.indexOf("^")){let n,r,o=e.fkey;if(1!==Wt(o))return St("bad fkey 1"),St(e),St(t),null;for(const e of Object.keys(o)){n=e,r=o[e];break}return{topic_name:n,id:t,hook_name:r}}{let n=t.split("^");return 3!==n.length?(St("bad fkey 2"),St(e),St(t),null):{topic_name:n[0],id:n[1],hook_name:n[2]}}}return Yt(t)?{topic_name:t.topic_name,id:t.id,hook_name:t.hook_name}:(St("bad fkey 3"),St(e),St(t),null)}const Yn=["string","integer","object","dict","array","list","real","boolean","blob"],xn=["persistent","required","notnull","wild","inherit","readable","writable","hidden","stats","rstats","pstats"],Bn=["hook","fkey","enum","template","uuid","rowid","password","email","url","time","now","date","color","image","tel","table","id","currency","hex","binary","percent","base64","coordinates","gbuffer"];function Jn(e){let t={name:e.id,header:e.header,real_type:e.type,type:e.type,enum_list:null,is_required:!1,is_writable:!1,is_hidden:!1,default_value:e.default,placeholder:e.placeholder,fillspace:e.fillspace||4};if(!e.flag)return t;for(let n=0;n<e.flag.length;n++){let r=e.flag[n];if(wn(Bn,r)){switch(r){case"enum":t.enum_list=e.enum;break;case"template":t.enum_list=e.template;break;case"table":t.enum_list=e.table}t.type=r}else if(wn(xn,r))switch(r){case"writable":t.is_writable=!0;break;case"notnull":case"required":t.is_required=!0;break;case"hidden":t.is_hidden=!0}}return t}const Qn=[j(y.DTP_POINTER,"subscriber",0,null,"Subscriber of output events"),j(y.DTP_BOOLEAN,"periodic",0,0,"True for periodic timeouts"),j(y.DTP_INTEGER,"msec",0,0,"Timeout in milliseconds"),E()];let zn={periodic:!1,msec:0,timer_id:-1},Hn=null;function qn(e,t,n,r){let o=e.priv,i=o.periodic?"EV_TIMEOUT_PERIODIC":"EV_TIMEOUT";return Re(e)?ot(Ne(e),i,{},e):bt(e,i,{}),o.periodic&&(o.timer_id=setTimeout(function(){ot(e,"EV_TIMEOUT",{},e)},o.msec)),0}const Xn={mt_create:function(e){let t=e.priv;const n=Qe(e,"subscriber");n&&ct(e,null,{},n),t.periodic=xe(e,"periodic"),t.msec=Be(e,"msec")},mt_writing:function(e,t){let n=e.priv;switch(t){case"periodic":n.periodic=xe(e,"periodic");break;case"msec":n.msec=Be(e,"msec"),-1!==n.timer_id&&(clearTimeout(n.timer_id),n.timer_id=-1),n.msec>0&&(n.timer_id=setTimeout(function(){ot(e,"EV_TIMEOUT",{},e)},n.msec))}},mt_start:function(e){return 0},mt_stop:function(e){return qe(e,"msec",-1),0},mt_destroy:function(e){}};function Zn(e,t){return e instanceof S?"C_TIMER"!==Se(e)?(St("not C_TIMER GObj"),-1):(He(e,"periodic",!1),void qe(e,"msec",t)):(St("not GObj TYPE"),-1)}function er(e,t){return e instanceof S?"C_TIMER"!==Se(e)?(St("not C_TIMER GObj"),-1):(He(e,"periodic",!0),void qe(e,"msec",t)):(St("not GObj TYPE"),-1)}function tr(e){return e instanceof S?"C_TIMER"!==Se(e)?(St("not C_TIMER GObj"),-1):void qe(e,"msec",-1):(St("not GObj TYPE"),-1)}const nr=[j(y.DTP_BOOLEAN,"changesLost",0,!1,"Set true to warn about leaving page"),j(y.DTP_BOOLEAN,"browser_beforeunload",0,!1,"Set true to refreshing browser"),j(y.DTP_STRING,"__username__",0,"","Username"),j(y.DTP_STRING,"start_date",0,"","Yuno starting date"),j(y.DTP_STRING,"node_uuid",0,"","uuid of node"),j(y.DTP_STRING,"yuno_role",0,"","Yuno role"),j(y.DTP_STRING,"yuno_id",0,"","Yuno Id. Set by agent"),j(y.DTP_STRING,"yuno_name",0,"","Yuno name. Set by agent"),j(y.DTP_STRING,"yuno_tag",0,"","Tags of yuno. Set by agent"),j(y.DTP_STRING,"yuno_release",0,"","Yuno Release. Set by agent"),j(y.DTP_STRING,"yuno_version",0,"","Yuno version (APP_VERSION)"),j(y.DTP_STRING,"yuneta_version",0,l,"Yuneta version"),j(y.DTP_LIST,"required_services",0,"[]","Required services"),j(y.DTP_INTEGER,"tracing",0,0,"Tracing level"),j(y.DTP_BOOLEAN,"trace_timer",0,0,"Trace timers"),j(y.DTP_BOOLEAN,"trace_inter_event",0,0,"Trace traffic"),j(y.DTP_POINTER,"trace_ievent_callback",0,null,"Trace traffic callback"),j(y.DTP_BOOLEAN,"trace_creation",0,0,"Trace creation"),j(y.DTP_BOOLEAN,"trace_start_stop",0,0,"Trace start/stop"),j(y.DTP_BOOLEAN,"trace_subscriptions",0,0,"Trace subscription"),j(y.DTP_BOOLEAN,"trace_i18n",0,0,"Trace i18n"),j(y.DTP_BOOLEAN,"no_poll",0,0,"no poll"),j(y.DTP_INTEGER,"periodic_timeout",0,"1000","Timeout periodic, in miliseconds."),E()];let rr={gobj_timer:null},or=null;function ir(e,t,n,r){return bt(e,t,n),0}const lr={mt_create:function(e){let t=e.priv;Xe(e,"start_date",Gn()),Xe(e,"node_uuid",Vn()),e.priv.gobj_timer=ie(ve(e),"C_TIMER",{},e),t.periodic_timeout=Ke(e,"periodic_timeout")},mt_writing:function(e,t){},mt_start:function(e){return _e(e.priv.gobj_timer),er(e.priv.gobj_timer,e.priv.periodic_timeout),0},mt_stop:function(e){return ue(e.priv.gobj_timer),fe(e),0},mt_destroy:function(e){},mt_play:function(e){let t=q();return be(t)||_e(t),ye(t)||ge(t),0},mt_pause:function(e){return de(q()),0}};const _r="ievent_gate_stack",sr=[j(y.DTP_STRING,"wanted_yuno_role",h.SDF_RD,"","wanted yuno role"),j(y.DTP_STRING,"wanted_yuno_name",h.SDF_RD,"","wanted yuno name"),j(y.DTP_STRING,"wanted_yuno_service",h.SDF_RD,"","wanted yuno service"),j(y.DTP_STRING,"remote_yuno_role",h.SDF_RD,"","confirmed remote yuno role"),j(y.DTP_STRING,"remote_yuno_name",h.SDF_RD,"","confirmed remote yuno name"),j(y.DTP_STRING,"remote_yuno_service",h.SDF_RD,"","confirmed remote yuno service"),j(y.DTP_STRING,"url",h.SDF_RD,"","Url to connect"),j(y.DTP_STRING,"jwt",h.SDF_PERSIST,"","JWT"),j(y.DTP_STRING,"cert_pem",h.SDF_PERSIST,"","SSL server certification, PEM str format"),j(y.DTP_JSON,"extra_info",h.SDF_RD,"{}","dict data set by user, added to the identity card msg."),j(y.DTP_INTEGER,"timeout_retry",h.SDF_RD,"5000","timeout waiting idAck"),j(y.DTP_INTEGER,"timeout_idack",h.SDF_RD,"5000","timeout waiting idAck"),j(y.DTP_POINTER,"subscriber",0,0,"subscriber of output-events. If null then subscriber is the parent"),E()];let ar={url:null,remote_yuno_name:null,remote_yuno_role:null,remote_yuno_service:null,gobj_timer:null,inform_on_close:!1,websocket:null,inside_on_open:!1},ur=null;function cr(e){e.priv.websocket&&St("Websocket ALREADY setup");const t=Je(e,"url");let n;wt(`====> Starting WebSocket to '${t}' (${Oe(e)})`);try{n=new WebSocket(t)}catch(n){return St(`${Oe(e)}: Cannot open WebSocket to '${t}', Error: ${n.message}`),null}return n?(n.onopen=()=>{ot(e,"EV_ON_OPEN",{url:t},e)},n.onmessage=n=>{ot(e,"EV_ON_MESSAGE",{url:t,data:n.data},e)},n.onclose=n=>{xe(he(),"browser_beforeunload")?Ot("Close websocket by unload page"):ot(e,"EV_ON_CLOSE",{url:t,e:n},e)},n):(St(`${Oe(e)}: Failed to initialize WebSocket.`),null)}function fr(e,t=1e3,n=""){let r=e.priv,o=r.websocket;if(r.websocket=null,o&&o.readyState!==WebSocket.CLOSED&&o.readyState!==WebSocket.CLOSING){wt(`Closing WebSocket (Code: ${t}, Reason: "${n}")`);try{o.close(t,n)}catch(e){St("Error closing WebSocket:",e.message)}}else Ot("WebSocket is already closed or in the process of closing.")}function gr(e,t,n){let r=Gn();try{wt("\n"+r+" "+t+"\n"),Dt(n)}catch(e){wt("ERROR in trace_inter_event: "+e)}}class dr{constructor(e,t){this.event=e,this.kw=t||{}}}function br(e,t,n,r){let o=function(e,t){return Xt(e)?(St("iev_create() event NULL"),null):new dr(e,t)}(t,n);return function(e,t){let n=e.priv,r=JSON.stringify(t);if(xe(he(),"trace_inter_event")){let n=Je(e,"url"),o=ve(he())+" ==> "+n,i=Ke(he(),"trace_ievent_callback");i?i(o,t,1,r.length):gr(0,o,t)}try{n.websocket.send(r)}catch(t){St(`${Oe(e)}: send_iev(): ${t}`)}return 0}(e,o)}function pr(e,t,n){return Xt(n)&&(n=Je(e,"wanted_yuno_service")),{dst_yuno:Je(e,"wanted_yuno_name"),dst_role:Je(e,"wanted_yuno_role"),dst_service:n,src_yuno:Te(),src_role:Ee(),src_service:t,host:Vn()}}function mr(e){let t=e.priv,n=ye(he()),r=Je(he(),"yuno_version"),o=Je(he(),"yuno_release"),i=Je(he(),"yuno_tag"),_={yuno_role:Ee(),yuno_id:je(),yuno_name:Te(),yuno_tag:i,yuno_version:r,yuno_release:o,yuneta_version:l,playing:n,pid:0,watcher_pid:0,jwt:Je(e,"jwt"),username:Je(he(),"__username__"),launch_id:0,yuno_startdate:Je(he(),"start_date"),id:Vn(),user_agent:"undefined"!=typeof window?window.navigator.userAgent:"",language:"undefined"!=typeof window?window.navigator.language:"",required_services:Ke(he(),"required_services")},s=pr(e,ve(Ne(e)),null);return Rn(e,_,_r,s),$n(e,_,"__identity__"),Zn(t.gobj_timer,Be(e,"timeout_idack")),br(e,"EV_IDENTITY_CARD",_)}function yr(e,t){if(Xt(t.event))return-1;let n={},r=t.__global__,o=t.__config__,i=t.__filter__,l=t.__service__,_=t.subscriber;o&&(n.__config__=o),r&&(n.__global__=r),i&&(n.__filter__=i);let s=pr(e,ve(_),l);return Rn(e,n,_r,s),$n(e,n,"__subscribing__"),br(e,t.event,n)}function hr(e,t,n,r){let o=e.priv;return be(e)&&(o.websocket=cr(e)),0}function Tr(e,t,n,r){return wt("Websocket opened: "+e.priv.url),mr(e),0}function Er(e,t,n,r){let o=e.priv,i=n.e,l=n.url;return jt(),Ot(`${Oe(e)}: WebSocket closed ${l} (Code: ${i.code}, Reason: "${i.reason}", Clean: ${i.wasClean})`),o.websocket&&(o.websocket.onopen=null,o.websocket.onmessage=null,o.websocket.onerror=null,o.websocket.onclose=null,o.websocket=null),o.inform_on_close&&(o.inform_on_close=!1,bt(e,"EV_ON_CLOSE",{url:l,remote_yuno_name:o.remote_yuno_name,remote_yuno_role:o.remote_yuno_role,remote_yuno_service:o.remote_yuno_service})),be(e)&&Zn(o.gobj_timer,Be(e,"timeout_retry")),0}function jr(e,t,n,r){return mr(e),0}function vr(e,t,n,r){let o=e.priv;tr(o.gobj_timer);let i=kn(e,n,_r,!0),l=un(e,i,"src_yuno",""),_=un(e,i,"src_role",""),s=un(e,i,"src_service","");Xe(e,"remote_yuno_name",l),Xe(e,"remote_yuno_role",_),Xe(e,"remote_yuno_service",s);let a=an(e,n,"result",-1,0),u=un(e,n,"comment","",0),c=un(e,n,"username","",0),f=gn(e,n,"services_roles",{});if(a<0){fr(e);let t={url:Je(e,"url"),result:a,comment:u,username:c,remote_yuno_name:l,remote_yuno_role:_,remote_yuno_service:s};Re(e)?ot(Ne(e),"EV_ON_ID_NAK",t,e):bt(e,"EV_ON_ID_NAK",t)}else{if(Ze(e,"ST_SESSION"),o.inside_on_open=!0,!o.inform_on_close){o.inform_on_close=!0;let t={username:c,remote_yuno_name:l,remote_yuno_role:_,remote_yuno_service:s,services_roles:f};Re(e)?ot(Ne(e),"EV_ON_OPEN",t,e):bt(e,"EV_ON_OPEN",t)}o.inside_on_open=!1,function(e){let t=gt(e,null,null,null);for(let n=0;n<t.length;n++)yr(e,t[n])}(e)}return 0}function Sr(e,t,n,r){let o=e.priv.url,i=function(e,t){let n;try{n=JSON.parse(t)}catch(e){return St("parsing inter_event json: "+e),null}if(!(n instanceof Object))return St("parsing inter_event: websocket data not a json object"),null;let r=n.event;if(!r)return St("parsing inter_event: no event"),null;if("string"!=typeof r)return St("parsing inter_event: event not a string"),null;let o=n.kw;return o?o instanceof Object?{event:r,kw:o||{}}:(St("parsing inter_event: kw not a json object"),null):(St("parsing inter_kw: no kw"),null)}(0,n.data);if(xe(he(),"trace_inter_event")){let e=ve(he())+" <== "+o,t=n.data.length,r=Ke(he(),"trace_ievent_callback");r?r(e,i,2,t):gr(0,e,i)}let l=i.event,_=i.kw;if("ST_SESSION"!==et(e)){if(nt(e,l,D.EVF_PUBLIC_EVENT)){if(0===ot(e,l,_,e))return 0}else St(`${Oe(e)}: event UNKNOWN in not-session state ${l}`);return fr(e),-1}i=null;let s=In(e,_),a=kn(e,_,_r),u=un(e,a,"dst_role","");if(u!==Ee())return St(`"It's not my role, dst_role: ${u}, my_role: ${Ee()}`),0;let c=un(e,a,"dst_service","");if("__subscribing__"===s)return-1;if("__unsubscribing__"===s)return-1;if(nt(e,l,D.EVF_PUBLIC_EVENT))return ot(e,l,_,e),0;let f=X(c,!0);if(f){if(!nt(f,l,D.EVF_PUBLIC_EVENT))return St(`${Oe(e)}: Service found but no event or not public, service '${Oe(f)}', ev '${l}'`),-1;ot(f,l,_,e)}else Re(e)?ot(Ne(e),l,_,e):bt(e,l,_);return 0}function Or(e,t,n,r){return 0}function wr(e,t,n,r){return 0}const Nr={mt_create:function(e){let t=e.priv;t.gobj_timer=ie(ve(e),"C_TIMER",{},e),t.url=Je(e,"url"),t.remote_yuno_name=Je(e,"remote_yuno_name"),t.remote_yuno_role=Je(e,"remote_yuno_role"),t.remote_yuno_service=Je(e,"remote_yuno_service"),Xe(e,"wanted_yuno_name",t.remote_yuno_name),Xe(e,"wanted_yuno_role",t.remote_yuno_role),Xe(e,"wanted_yuno_service",t.remote_yuno_service);const n=Qe(e,"subscriber");n&&ct(e,null,{},n)},mt_writing:function(e,t){let n=e.priv;switch(t){case"url":n.url=Je(e,"url");break;case"remote_yuno_name":n.remote_yuno_name=Je(e,"remote_yuno_name");break;case"remote_yuno_role":n.remote_yuno_role=Je(e,"remote_yuno_role");break;case"remote_yuno_service":n.remote_yuno_service=Je(e,"remote_yuno_service")}},mt_start:function(e){let t=e.priv;return _e(t.gobj_timer),t.websocket=cr(e),0},mt_stop:function(e){let t=e.priv;return tr(t.gobj_timer),ue(t.gobj_timer),t.websocket&&fr(e),0},mt_destroy:function(e){},mt_stats:function(e,t,n,r){if("ST_SESSION"!==et(e))return St("Not in session"),null;n||(n={});let o=pr(e,ve(r),un(e,n,"service",null,0)),i=gn(e,n,"__md_stats__",null,pt.KW_EXTRACT);return i||(i={}),Rn(e,n,"stats_stack",{stats:t,kw:i}),Rn(e,n,_r,o),n.__stats__=t,$n(e,n,"__stats__"),br(e,"EV_MT_STATS",n),null},mt_command_parser:function(e,t,n,r){if("ST_SESSION"!==et(e))return St("Not in session"),null;n||(n={});let o=pr(e,ve(r),un(e,n,"service","",0)),i=gn(e,n,"__md_command__",null,pt.KW_EXTRACT);return i||(i={}),Rn(e,n,"command_stack",{command:t,kw:i}),Rn(e,n,_r,o),n.__command__=t,$n(e,n,"__command__"),br(e,"EV_MT_COMMAND",n),null},mt_inject_event:function(e,t,n,r){if("ST_SESSION"!==et(e))return window.console.error("Not in session"),-1;if(n||(n={}),kn(e,n,_r));else{let o=pr(e,ve(r),un(e,n,"__service__",0,0));Pt(n,"__service__"),Rn(e,n,"__message__",t),Rn(e,n,_r,o)}return $n(e,n,"__message__"),br(e,t,n)},mt_subscription_added:function(e,t){let n=e.priv;return"ST_SESSION"!==et(e)||n.inside_on_open?0:yr(e,t)},mt_subscription_deleted:function(e,t){let n=e.priv;if("ST_SESSION"!==et(e))return 0;if(n.inside_on_open)return 0;if(Xt(t.event))return 0;let r={},o=t.__global__,i=t.__config__,l=t.__filter__,_=t.__service__,s=t.subscriber;i&&(r.__config__=i),o&&(r.__global__=o),l&&(r.__filter__=l);let a=pr(e,ve(s),_);return Rn(e,r,_r,a),$n(e,r,"__unsubscribing__"),br(e,t.event,r)}};return e.GObj=S,e.SDATA=j,e.SDATAAUTHZ=(e,t,n,r,o,i)=>new T(e,t,n,null,i,r,null,0,null,o,null),e.SDATACM=(e,t,n,r,o,i)=>new T(e,t,0,null,i,n,null,0,o,r,null),e.SDATACM2=(e,t,n,r,o,i,l)=>new T(e,t,n,null,l,r,null,0,i,o,null),e.SDATADF=(e,t,n,r,o,i)=>new T(e,t,n,null,i,null,r,o),e.SDATAPM=(e,t,n,r,o)=>new T(e,t,n,r,o),e.SDATAPM0=(e,t,n,r,o)=>new T(e,t,n,null,o,null,null,0,null,null,r),e.SDATA_END=E,e.SDataDesc=T,e.YUNETA_VERSION=l,e.build_command_response=o,e.build_path=function(...e){let t="",n=0;for(let r of e)null!=r&&""!==r&&(r=String(r),r=0===n?r.replace(/\/+$/,""):r.replace(/^\/+/,"").replace(/\/+$/,""),""!==r&&(n>0&&(t+="/"),t+=r,n++));return t},e.build_stats_response=i,e.clean_name=function(e){return e.replace(/[?# ^:]/g,"_")},e.clear_timeout=tr,e.cmp_two_simple_json=nn,e.command_parser=function(e,t,n,r){},e.createElement2=function e(t,n){let[r,o,i,l]=t;if(!r)return void St("Tag must be a valid HTML element.");let _=document.createElement(r),s="";if(o&&"object"==typeof o)for(let e of Object.keys(o))if("style"===e&&"object"==typeof o[e]){let t="";for(const n of Object.keys(o[e]))t+=`${n}: ${o[e][n]};`;_.style.cssText=t}else"style"===e?_.style.cssText=o[e]:"i18n"===e||"data-i18n"===e||"data_i18next"===e||"data-i18next"===e?(s=o[e],_.setAttribute("data-i18n",s)):_.setAttribute(e,o[e]);if(Bt(i))if(i=i.trim(),i.length>0&&"<"===i[0])_.appendChild(Cn(i));else if(n&&s){let e=n(s);_.textContent=e||i}else _.textContent=i;else if(xt(i)){if(i.length>0)if(Bt(i[0]))_.appendChild(e(i,n));else for(let t of i)Array.isArray(t)&&t.length>0?_.appendChild(e(t,n)):t instanceof HTMLElement&&_.appendChild(t)}else i instanceof HTMLElement||i instanceof Text||i instanceof SVGElement?_.appendChild(i):null!=i&&(St("content ignored"),Dt(i));if(l&&"object"==typeof l)for(const e of Object.keys(l))_.addEventListener(e,l[e]);return _},e.createOneHtml=Cn,e.create_json_record=function(e,t){let n=Rt(e);return It(n,t),n},e.create_template_record=function(e,t){let n={};return t||(t={}),Object.entries(e).forEach(([e,r])=>{let o=gn(null,t,e,gn(r,"default"));n[e]=o}),n},e.current_timestamp=Gn,e.data_type_t=y,e.db_list_persistent_attrs=function(e,t){let n=Tn(Mn(e),null,!1),r={};return n&&Yt(n)&&(r=yn(e,n,t,!1)),r},e.db_load_persistent_attrs=function(e,t){let n=Ye(e,h.SDF_PERSIST),r=Tn(Mn(e),null,!1);if(r&&Yt(r)){let o=yn(e,r,t,!1);o=yn(e,o,n,!1),ze(e,o,h.SDF_PERSIST)}},e.db_remove_persistent_attrs=function(e,t){let n=hn(e,Tn(Mn(e),null,!1),t,!1);0===Wt(n)?jn(Mn(e)):En(Mn(e),n)},e.db_save_persistent_attrs=function(e,t){let n=yn(e,Ye(e,h.SDF_PERSIST),t,!1),r=Tn(Mn(e),null,!1);r&&Yt(r)&&At(n,r),En(Mn(e),n)},e.debounce=function(e,t=0,n=!1){let r=null,o=null,i=null;const l=(...l)=>{i=this,o=l;const _=n&&!r;clearTimeout(r),r=setTimeout(()=>{r=null,n||e.apply(i,o)},t),_&&e.apply(i,o)};return l.flush=()=>{r&&(clearTimeout(r),r=null,e.apply(i,o))},l.cancel=()=>{clearTimeout(r),r=null,o=null,i=null},l},e.delete_from_list=function(e,t){for(let n=0;n<e.length;n++)if(t===e[n])return e.splice(n,1),!0;return!1},e.duplicate_objects=function(...e){const t={};for(const n of e){const e=structuredClone(n);Object.assign(t,e)}return t},e.empty_string=Xt,e.escapeHtml=Un,e.event_flag_t=D,e.gclass_add_ev_action=x,e.gclass_add_event_type=J,e.gclass_add_state=Y,e.gclass_check_fsm=z,e.gclass_create=V,e.gclass_event_type=Q,e.gclass_find_by_name=H,e.gclass_flag_t=O,e.gclass_unregister=W,e.getPositionRelativeToBody=function(e){if(!e)return{top:0,left:0,right:0,bottom:0};const{top:t,left:n,width:r,height:o}=e.getBoundingClientRect?.()||{top:0,left:0,width:0,height:0},i="undefined"!=typeof window,l=i&&(window.scrollY||document.documentElement?.scrollTop||document.body?.scrollTop)||0,_=i&&(window.scrollX||document.documentElement?.scrollLeft||document.body?.scrollLeft)||0;return{top:t+l,left:n+_,right:n+_+r,bottom:t+l+o}},e.get_function_name=Wn,e.get_now=function(){return Math.floor(Date.now()/1e3)},e.gobj_bottom_gobj=$e,e.gobj_change_parent=function(t,r){if(ke(t))return St("gobj NULL or DESTROYED"),null;if(!(r instanceof S))return St(`${Oe(t)}: gobj_change_parent() BAD TYPE of parent`),-1;if(t.parent&&t.parent.mt_child_removed&&t.parent.mt_child_removed(t.parent,t),t.parent&&(te(t.parent,t),t.parent=null),ee(r,t),r.mt_child_added){e.__yuno__&&xe(e.__yuno__,"trace_creation")&&wt(n("π¦π¦π΅ child_added(%s): %s",we(r),Oe(t))),r.mt_child_added(r,t)}return 0},e.gobj_change_state=Ze,e.gobj_command=function(t,r,i,l){if(ke(t))return St("gobj NULL or DESTROYED"),-1;let _=e.__yuno__&&Be(e.__yuno__,"tracing");return _&&(A(n("ππ mach(%s%s), cmd: %s, src: %s",be(t)?"":"!!",Oe(t),r,Oe(l))),_>1&&Dt(i)),t.gclass.gmt.mt_command_parser?t.gclass.gmt.mt_command_parser(t,r,i,l):t.gclass.command_table?c?c(t,r,i,l):o(0,-1,n("%s: global command parser not available",Oe(t)),0,0):o(0,-1,n("%s: command table not available",Oe(t)),0,0)},e.gobj_create=function(e,t,n,r){return oe(e,t,n,r,0)},e.gobj_create2=oe,e.gobj_create_default_service=function(e,t,n,r){return oe(e,t,n,r,w.gobj_flag_default_service|w.gobj_flag_autostart)},e.gobj_create_pure_child=ie,e.gobj_create_service=function(e,t,n,r){return oe(e,t,n,r,w.gobj_flag_service)},e.gobj_create_volatil=function(e,t,n,r){return oe(e,t,n,r,w.gobj_flag_volatil)},e.gobj_create_yuno=function(e,t,n){return oe(e,t,n,null,w.gobj_flag_yuno)},e.gobj_current_state=et,e.gobj_default_service=q,e.gobj_destroy=le,e.gobj_find_child=Ve,e.gobj_find_gobj=function(t,n){if(Xt(n))return null;const r=n.toLowerCase();return"__default_service__"===r?p:"__yuno__"===r||"__root__"===r?e.__yuno__:We(e.__yuno__,n)},e.gobj_find_service=X,e.gobj_find_subscribings=dt,e.gobj_find_subscriptions=gt,e.gobj_flag_t=w,e.gobj_full_name=we,e.gobj_gclass_name=Se,e.gobj_has_attr=Me,e.gobj_has_event=nt,e.gobj_has_output_event=rt,e.gobj_hsdata=C,e.gobj_is_destroying=ke,e.gobj_is_playing=ye,e.gobj_is_pure_child=Re,e.gobj_is_running=be,e.gobj_is_service=me,e.gobj_is_volatil=De,e.gobj_list_persistent_attrs=function(e,t){return u?u(e,t):null},e.gobj_list_subscriptions=function(e){let t=gt(e,null,null,null);for(let n=0;n<t.length;n++){let r=t[n],o=cn(e,r,"publisher",null,pt.KW_REQUIRED),i=cn(e,r,"subscriber",null,pt.KW_REQUIRED);Ct(r,"s_event",un(e,r,"event","",pt.KW_REQUIRED)),Ct(r,"s_publisher",Oe(o)),Ct(r,"s_subscriber",Oe(i))}let n=dt(e,0,null,0);for(let t=0;t<n.length;t++){let r=n[t],o=cn(e,r,"publisher",null,pt.KW_REQUIRED),i=cn(e,r,"subscriber",null,pt.KW_REQUIRED);Ct(r,"s_event",un(e,r,"event","",pt.KW_REQUIRED)),Ct(r,"s_publisher",Oe(o)),Ct(r,"s_subscriber",Oe(i))}return{subscriptions:t,subscribings:n,"total subscriptions":Mt(t),total_subscribings:Mt(n)}},e.gobj_load_persistent_attrs=function(e,t){return me(e)?_?_(e,t):-1:(St(`${Oe(e)}: Only gobj services can load/save writable-persistent`),-1)},e.gobj_match_children=function(e,t){if(ke(e))return St("gobj NULL or DESTROYED"),null;t=t||{};let n=[];const r=e.dl_children;for(let e=0;e<r.length;e++){const o=r[e];Fe(o,t)&&n.push(o)}return n},e.gobj_match_children_tree=function(e,t){t=t||{};let n=[];return function e(n,r){let o=r.dl_children;for(let r=0;r<o.length;r++){let i=o[r];Fe(i,t)&&n.push(i),e(n,i)}}(n,e),n},e.gobj_match_gobj=Fe,e.gobj_name=ve,e.gobj_parent=Ne,e.gobj_pause=de,e.gobj_play=ge,e.gobj_post_event=function(e,t,n,r){setTimeout(()=>{ke(e)||ot(e,t,n,r)},10)},e.gobj_publish_event=bt,e.gobj_read_attr=Ke,e.gobj_read_attrs=Ye,e.gobj_read_bool_attr=xe,e.gobj_read_integer_attr=Be,e.gobj_read_pointer_attr=Qe,e.gobj_read_str_attr=Je,e.gobj_remove_persistent_attrs=function(e,t){return me(e)?a?a(e,t):-1:(St(`${Oe(e)}: Only gobj services can load/save writable-persistent`),-1)},e.gobj_reset_volatil_attrs=function(e){return function(e,t){if(ke(e))return St("gobj NULL or DESTROYED"),-1;let n=e.gclass.attrs_table;for(let r=0;r<n.length;r++){const o=n[r];if(o.name&&(-1===t||o.flag&t)){const t=P(e,e.jn_attrs,o);Yt(e.priv)&&e.priv.hasOwnProperty(o.name)&&(e.priv[o.name]=t),e.gclass.gmt.mt_writing&&e.gclass.gmt.mt_writing(e,o.name)}}return 0}(e,h.SDF_VOLATIL)},e.gobj_save_persistent_attrs=function(e,t){return me(e)?s?s(e,t):-1:(St(`${Oe(e)}: Only gobj services can load/save writable-persistent`),-1)},e.gobj_search_path=We,e.gobj_send_event=ot,e.gobj_services=function(){let e=[];for(const t of Object.keys(b))Ft(e,t);return e},e.gobj_set_bottom_gobj=Ie,e.gobj_short_name=Oe,e.gobj_start=_e,e.gobj_start_children=function(e){return ke(e)?(St("gobj NULL or DESTROYED"),-1):Le(e,R.WALK_FIRST2LAST,se,0,0)},e.gobj_start_tree=function(t){return ke(t)?(St("gobj NULL or DESTROYED"),-1):(e.__yuno__&&xe(e.__yuno__,"trace_start_stop")&&A(n("βΊ βΊ βΊ βΊ start_tree: %s",we(t))),t.gclass.gclass_flag&O.gcflag_manual_start||t.disabled?0:(t.running||_e(t),Pe(t,R.WALK_TOP2BOTTOM,ae,0,0)))},e.gobj_start_up=function(e,t,n,r,o,i,l){_=t,s=n,a=r,u=o,c=i,f=l;const d=[["EV_STATE_CHANGED",D.EVF_SYSTEM_EVENT|D.EVF_OUTPUT_EVENT|D.EVF_NO_WARN_SUBS],[0,0]];for(let e=0;e<d.length;e++){let t=d[e][0],n=d[e][1];B(g,t,n)}return 0},e.gobj_stats=function(e,t,r,o){return ke(e)?(St("gobj NULL or DESTROYED"),-1):e.gclass.gmt.mt_stats?e.gclass.gmt.mt_stats(e,t,r,o):f?f(e,t,r,o):i(0,-1,n("%s, stats parser not available",Oe(e)),0,0)},e.gobj_stop=ue,e.gobj_stop_children=fe,e.gobj_stop_tree=function(t){return ke(t)?(St("gobj NULL or DESTROYED"),-1):(e.__yuno__&&xe(e.__yuno__,"trace_start_stop")&&A(n("βΉ βΉ βΉ βΉ stop_tree: %s",we(t))),be(t)&&ue(t),Pe(t,R.WALK_TOP2BOTTOM,ce,0,0))},e.gobj_subscribe_event=ct,e.gobj_unsubscribe_event=function(e,t,n,r){if(null==n&&(n={}),!e)return St(`publisher NULL: ev ${t}`),0;if(!r)return St(`subscriber NULL: ev ${t}`),0;const o=new Set(["__config__","__global__","__local__","__filter__","__service__"]);if(Object.keys(n).forEach(n=>{o.has(n)||St(`${Oe(e)}: key ignored in subscription (key: ${n}, event: ${t})`)}),Xt(t))t="";else if(!(rt(e,t,D.EVF_OUTPUT_EVENT)||e.gclass.gclass_flag&O.gcflag_no_check_output_events))return St(`event NOT in output event list: ${Oe(e)}, ev ${t}`),0;let i=st(e.dl_subscriptions,e,t,n,r),l=0;for(let t=0;t<i.length;t++){let n=i[t];ut(e,n,!1,!1),l++}return l||(Ot(`${Oe(e)}: No subscription found`),Dt(n,"No subscription found")),0},e.gobj_unsubscribe_list=ft,e.gobj_walk_gobj_children=Le,e.gobj_walk_gobj_children_tree=Pe,e.gobj_write_attr=function(e,t,r,o){if(!Bt(t))return St(n("gobj_write_attr(%s): path must be a string",Oe(e))),-1;let i,l=e.jn_attrs,_=t.split("`");if(_.length<=1){let o=t;return o in l&&l.hasOwnProperty(o)?(l[o]=r,Yt(e.priv)&&e.priv.hasOwnProperty(o)&&(e.priv[o]=r),e.obflag&N.obflag_created&&!(e.obflag&N.obflag_destroyed)&&e.gclass.gmt.mt_writing&&e.gclass.gmt.mt_writing(e,o),0):(St(n("gobj_write_attr(%s): attr not found '%s'",Oe(e),o)),-1)}let s=_.length;for(let t=0;t<s;t++){i=_[t];let n=Ve(e,{__gobj_name__:i});if(n&&t<s-1){e=n;continue}let o=e.jn_attrs;if(i in o&&o.hasOwnProperty(i))return o[i]=r,Yt(e.priv)&&e.priv.hasOwnProperty(i)&&(e.priv[i]=r),e.obflag&N.obflag_created&&!(e.obflag&N.obflag_destroyed)&&e.mt_writing&&e.mt_writing(e,i),0;break}return St(n("gobj_write_attr(%s): attr not found '%s'",Oe(e),i)),-1},e.gobj_write_attrs=ze,e.gobj_write_bool_attr=He,e.gobj_write_integer_attr=qe,e.gobj_write_str_attr=Xe,e.gobj_yuno=he,e.gobj_yuno_id=je,e.gobj_yuno_name=Te,e.gobj_yuno_role=Ee,e.id_index_in_obj_list=On,e.index_in_list=Fn,e.is_array=xt,e.is_boolean=Qt,e.is_date=function(e){return e instanceof Date&&!isNaN(e)},e.is_function=Ht,e.is_gobj=qt,e.is_metadata_key=function(e){if(!Bt(e))return!1;let t;for(t=0;t<e.length&&"_"===e[t]&&!(t>2);t++);return 2===t},e.is_null=zt,e.is_number=Jt,e.is_object=Yt,e.is_private_key=function(e){if(!Bt(e))return!1;let t;for(t=0;t<e.length&&"_"===e[t]&&!(t>2);t++);return 1===t},e.is_pure_number=function(e){if(Jt(e))return!0;if(!Bt(e))return!1;const t=Number(e);return!isNaN(t)&&(""!==e.trim()&&!isNaN(t))},e.is_string=Bt,e.jdb_delete=function(e,t,n,r){let o=gn(null,e,"topics",null,0),i=gn(null,o,t,null,0);if(!i)return St("jdb_delete: topic not found: "+t),null;if(Xt(r.id))return St("jdb_delete: record without id: "+r),Nt(r),null;let l,_=n.split("`"),s=i;for(;(l=_.shift())&&!Xt(l)&&s;)Yt(s)&&(s=gn(null,s,e.hook,null,0)),s=Ln(s,null,l,!1);if(0===_.length&&s)if(xt(s)){let e=On(s,r.id);e>=0&&s.splice(e,1)}else{let t=gn(null,s,e.hook,null,0),n=On(t,r.id);n>=0&&t.splice(n,1)}return i},e.jdb_get=function(e,t,n,r){let o=gn(null,e,"topics",null,0),i=gn(null,o,t,null,0);return i?(void 0===r&&(r=!0),Ln(i,e.hook,n,r)):(St("jdb_get: topic not found: "+t),null)},e.jdb_get_by_idx=function(e,t,n){let r=gn(null,e,"topics",null,0),o=gn(null,r,t,null,0);return o?n<o.length?o[n]:{}:(St("jdb_get_by_idx: topic not found: "+t),null)},e.jdb_get_topic=function(e,t){let n=gn(null,e,"topics",null,0);if(!n)return St("jdb topics section not found"),Nt(e),null;let r=gn(null,n,t,null,0);return r||(St("jdb topic not found: "+t),Nt(n),null)},e.jdb_init=function(e,t,n){n&&(e=Rt(e));let r=gn(null,e,"type",[],1);un(null,e,"hook","data",1);let o=gn(null,e,"schema",{},1),i=gn(null,e,"topics",{},1);return An(o,function(e,t,n,o){"__"!==t.substring(0,2)&&gn(null,i,o,Rt(r),1)},t),e},e.jdb_update=function(e,t,n,r){let o=gn(null,e,"topics",null,0),i=gn(null,o,t,null,0);if(!i)return St("jdb_update: topic not found: "+t),null;if(Xt(r.id))return St("jdb_update: record without id: "+r),Nt(r),null;let l,_=n.split("`"),s=i;for(;(l=_.shift())&&!Xt(l)&&s;)Yt(s)&&(s=gn(null,s,e.hook,[],1)),s=Ln(s,null,l,!1);if(0===_.length&&s)if(xt(s))s.push(r);else if(s.id===r.id)Object.assign(s,r);else{let t=gn(null,s,e.hook,[],1),n=Ln(t,e.hook,r.id,!1);n?Object.assign(n,r):t.push(r)}return i},e.json_array_append=Gt,e.json_array_append_new=Ft,e.json_array_extend=function(e,t){return t?(Array.prototype.push.apply(e,t),e):e},e.json_array_remove=Vt,e.json_array_size=Mt,e.json_deep_copy=Rt,e.json_is_identical=kt,e.json_object_del=Pt,e.json_object_get=Lt,e.json_object_set=Ut,e.json_object_set_new=Ct,e.json_object_size=Wt,e.json_object_update=$t,e.json_object_update_existing=It,e.json_object_update_missing=At,e.json_size=Kt,e.jwt2json=function(e,t){try{let n=Pn(e);switch(t){case"header":return JSON.parse(n.header);case"signature":return JSON.parse(n.signature);default:return JSON.parse(n.payload)}}catch(e){return null}},e.jwtDecode=Pn,e.kw_clone_by_keys=yn,e.kw_clone_by_not_keys=hn,e.kw_collect=function(e,t,n,r){if(e&&!qt(e)&&St("GObj bad instanceof"),!t)return null;r||(r=mn);let o=[];if(xt(t))for(let e=0;e<t.length;e++){let i=t[e];r(i,n)&&o.push(i)}else{if(!Yt(t))return St("kw_select() BAD kw parameter"),null;r(t,n)&&o.push(t)}return o},e.kw_delete=_n,e.kw_find_json_in_list=function(e,t,n,r){if(!n||!xt(t))return r&&St("item NULL or kw_list is not a list"),-1;for(let e=0;e<t.length;e++){if(kt(n,t[e]))return e}return r&&St("item not found in this list"),-1},e.kw_find_path=ln,e.kw_flag_t=pt,e.kw_get_bool=sn,e.kw_get_dict=fn,e.kw_get_dict_value=gn,e.kw_get_int=an,e.kw_get_list=function(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=ln(e,t,n,!1);const l=o&&o&pt.KW_REQUIRED,_=o&&o&pt.KW_CREATE,s=o&&o&pt.KW_EXTRACT;if(void 0===i){if(_){let o=Array(r);return dn(e,t,n,o),o}return l&&(St(`path not found: '${n}'`),Dt(t)),Array(r)}return s&&_n(e,t,n),xt(i)?Array(i):(l&&(St(`path value MUST BE an array: ${n}`),Nt(t)),Array(r))},e.kw_get_local_storage_value=Tn,e.kw_get_pointer=cn,e.kw_get_real=function(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=ln(e,t,n,!1);const l=o&&o&pt.KW_REQUIRED,_=o&&o&pt.KW_CREATE,s=o&&o&pt.KW_EXTRACT;if(void 0===i){if(_){let o=Number(r);return dn(e,t,n,o),o}return l&&(St(`path not found: '${n}'`),Dt(t)),Number(r)}return s&&_n(e,t,n),Jt(i)?Number(i):(l&&(St(`path value MUST BE a number: ${n}`),Nt(t)),Number(r))},e.kw_get_str=un,e.kw_has_key=on,e.kw_match_simple=mn,e.kw_pop=rn,e.kw_remove_local_storage_value=jn,e.kw_select=function(e,t,n,r){if(e&&!qt(e)&&St("GObj bad instanceof"),!t)return null;r||(r=mn);let o=[];if(xt(t))for(let e=0;e<t.length;e++){let i=t[e];r(i,n)&&o.push(Rt(i))}else{if(!Yt(t))return St("kw_select() BAD kw parameter"),null;r(t,n)&&o.push(Rt(t))}return o},e.kw_set_dict_value=dn,e.kw_set_local_storage_value=En,e.kw_set_subdict_value=bn,e.kwid_collect=Sn,e.kwid_find_one_record=function(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=Sn(e,t,n,r,o);return i.length>0?i[0]:null},e.kwid_get_ids=function(e,t){if(e&&!qt(e)&&St("GObj bad instanceof"),!t)return[];let n=[];if(Bt(t))n.push(t);else if(Yt(t))for(let e in t)t.hasOwnProperty(e)&&n.push(e);else xt(t)&&t.forEach(function(t){if(Bt(t))Xt(t)||n.push(t);else if(Yt(t)){let r=un(e,t,"id",0,0);r&&n.push(r)}});return n},e.kwid_match_id=vn,e.kwid_new_dict=function(e,t,n){e&&!qt(e)&&St("GObj bad instanceof");let r={};if(Xt(n)||(t=ln(e,t,n)),Yt(t))r=t;else if(xt(t))for(let e=0;e<t.length;e++){let n=t[e],o=un(n,"id",null,!1);Xt(o)||(r[o]=n)}else St(`${Oe(e)} kwid_new_dict: data type unknown`);return r},e.list2options=function(e,t,n){t=t||"id",n=n||"value";let r=[];if(xt(e))for(let o=0;o<e.length;o++){let i=e[o];if(Bt(i))r.push({id:e[o],value:e[o]});else if(Yt(i)){let e={};if(on(i,t)){if(!on(i,n)){if(!(Kt(i)>0)){St("list2options(): object without field value: "+n);continue}n=Object.keys(i)[0]}e.id=i[t],e.value=i[n]}else{if(!(Kt(i)>0)){St("list2options(): object without field id: "+t);continue}t=Object.keys(i)[0],e.id=t,e.value=i[t]}r.push(e)}else St("list2options(): case1 not implemented")}else if(Yt(e))for(let t of Object.keys(e))r.push({id:t,value:t});else St("list2options(): case2 not implemented");return r},e.load_json_file=function(e,t,n){let r=new XMLHttpRequest;r.open("GET",e,!0),r.setRequestHeader("Accept","application/json"),r.onreadystatechange=function(){if(4===r.readyState)if(200===r.status||0===(e=r).status&&e.responseText&&e.responseURL.startsWith("file:"))try{let e=JSON.parse(r.responseText);t(e)}catch(e){n&&(St(`JSON parse status ${r.status}, error: ${e.message}`),n(r.status))}else n&&n(r.status);var e},r.send()},e.log_debug=wt,e.log_error=St,e.log_info=function(e){let t=vt(e),n=Gn();Tt&&Tt("%c"+n+" INFO: "+String(t),"color:cyan")},e.log_warning=Ot,e.msg_iev_get_msg_type=In,e.msg_iev_get_stack=kn,e.msg_iev_push_stack=Rn,e.msg_iev_read_key=Nn,e.msg_iev_set_msg_type=$n,e.msg_iev_write_key=Dn,e.node_uuid=Vn,e.parseBoolean=Zt,e.parseSVG=function(e){return(new DOMParser).parseFromString(e,"image/svg+xml").firstChild},e.refresh_language=function(e,t){Ht(t)?(e||(e=document),e.querySelectorAll("[data-i18n]").forEach(function(e){let n=e.getAttribute("data-i18n");for(let r of e.childNodes)if(r.nodeType===Node.TEXT_NODE){n||(n=r.nodeValue),r.nodeValue=t(n);break}})):St("You must supply a translation function")},e.register_c_ievent_cli=function(){return function(e){if(ur)return St(`GClass ALREADY created: ${e}`),-1;const t=[["ST_DISCONNECTED",[["EV_ON_OPEN",Tr,"ST_WAIT_IDENTITY_CARD_ACK"],["EV_ON_CLOSE",Er,null],["EV_TIMEOUT",hr,null],[null,null,null]]],["ST_WAIT_IDENTITY_CARD_ACK",[["EV_ON_MESSAGE",Sr,null],["EV_IDENTITY_CARD_ACK",vr,null],["EV_ON_CLOSE",Er,"ST_DISCONNECTED"],["EV_TIMEOUT",jr,null],[null,null,null]]],["ST_SESSION",[["EV_ON_MESSAGE",Sr,null],["EV_MT_STATS",Or,null],["EV_MT_COMMAND",wr,null],["EV_ON_CLOSE",Er,"ST_DISCONNECTED"],[null,null,null]]],[null,null]],n=[["EV_ON_MESSAGE",D.EVF_OUTPUT_EVENT],["EV_IDENTITY_CARD_ACK",D.EVF_PUBLIC_EVENT],["EV_ON_ID_NAK",D.EVF_PUBLIC_EVENT|D.EVF_OUTPUT_EVENT],["EV_MT_STATS",D.EVF_PUBLIC_EVENT],["EV_MT_COMMAND",D.EVF_PUBLIC_EVENT],["EV_ON_OPEN",D.EVF_OUTPUT_EVENT|D.EVF_NO_WARN_SUBS],["EV_ON_CLOSE",D.EVF_OUTPUT_EVENT|D.EVF_NO_WARN_SUBS],["EV_TIMEOUT",0],[null,0]];return ur=V(e,n,t,Nr,0,sr,ar,0,0,0,O.gcflag_no_check_output_events),ur?0:-1}("C_IEVENT_CLI")},e.register_c_timer=function(){return function(e){if(Hn)return St(`GClass ALREADY created: ${e}`),-1;const t=[["ST_IDLE",[["EV_TIMEOUT",qn,null]]]],n=[["EV_TIMEOUT",D.EVF_OUTPUT_EVENT],["EV_TIMEOUT_PERIODIC",D.EVF_OUTPUT_EVENT],[0,0]];return Hn=V(e,n,t,Xn,0,Qn,zn,0,0,0,O.gcflag_manual_start),Hn?0:-1}("C_TIMER")},e.register_c_yuno=function(){return function(e){if(or)return St(`GClass ALREADY created: ${e}`),-1;const t=[["ST_IDLE",[["EV_TIMEOUT_PERIODIC",ir,null]]]],n=[["EV_TIMEOUT_PERIODIC",D.EVF_OUTPUT_EVENT|D.EVF_NO_WARN_SUBS],[0,0]];return or=V(e,n,t,lr,0,nr,rr,0,0,0,0),or?0:-1}("C_YUNO")},e.safeSrc=function(e){if(!e)return"";const t=String(e).trim();return/^javascript:/i.test(t)||/^data:/i.test(t)?"":Un(t)},e.sdata_flag_t=h,e.send_http_json_post=function(e,t,n){let r=new XMLHttpRequest;r.open("POST",e),r.setRequestHeader("Accept","application/json"),r.setRequestHeader("Content-Type","application/json"),r.onreadystatechange=function(){4===r.readyState&&n(r.status,r.responseText)},r.send(t)},e.set_remote_log_functions=jt,e.set_timeout=Zn,e.set_timeout_periodic=er,e.sprintf=n,e.stats_parser=function(e,t,n,r){},e.str_in_list=wn,e.strcasecmp=tn,e.strcmp=en,e.strncmp=function(e,t,n){var r=(e+"").substring(0,n),o=(t+"").substring(0,n);return r===o?0:r>o?1:-1},e.strs_in_list=function(e,t,n){if(!e)return St("ERROR: strs_in_list() list empty"),!1;if(!t)return St("ERROR: strs_in_list() str empty"),!1;for(let r=0;r<t.length;r++){if(wn(e,t[r],n))return!0}return!1},e.strstr=function(e,t,n){var r;return-1!==(r=(e+="").indexOf(t))&&(n?e.substring(0,r):e.slice(r))},e.template_get_field_desc=function(e,t){let n={name:e,header:e,real_type:null,type:null,enum_list:null,is_required:!1,is_writable:!1,is_hidden:!1,default_value:void 0,placeholder:void 0};if(Bt(t)){let e=t.split(".");for(let t=0;t<e.length;t++){let r=e[t];if(wn(Yn,r))n.real_type||(n.real_type=r);else if(wn(Bn,r))n.type||(n.type=r);else if(wn(xn,r))switch(r){case"writable":n.is_writable=!0;break;case"notnull":case"required":n.is_required=!0;break;case"hidden":n.is_hidden=!0}}n.real_type||(n.real_type="string")}else Yt(t)?(n=Jn(t),n.name||(n.name=e),n.header||(n.header=e)):xt(t)&&(n.real_type="array",n.enum_list=t);return n.type||(n.type=n.real_type),n},e.timeTracker=function(e="Time Tracker",t=!1){const n=e,r=performance.now();let o=r;return t&&Ot(`--\x3e ${n} - starting`),{mark:(e="Intermediate",i="")=>{const l=performance.now(),_=(l-o)/1e3,s=(l-r)/1e3;return t&&Ot(`--\x3e ${n} ${e} - partial: ${_} sec, total: ${s} sec, ${i}`),o=l,{partial:_,total:s}}}},e.trace_json=Dt,e.trace_msg=Nt,e.treedb_decoder_fkey=Kn,e.treedb_decoder_hook=function(e,t){if(Bt(t)){if(-1===t.indexOf("^")){let n,r=e.hook;if(1!==Wt(r))return St("bad hook 1"),St(e),St(t),null;for(let e of Object.keys(r)){n=e,r[e];break}return{topic_name:n,id:t}}{let n=t.split("^");return 2!==n.length?(St("bad hook 2"),St(e),St(t),null):{topic_name:n[0],id:n[1]}}}return Yt(t)?{topic_name:t.topic_name,id:t.id}:(St("bad hook 3"),St(e),St(t),null)},e.treedb_encoder_fkey=function(e,t){let n=Kn(e,t);return n?n.topic_name+"^"+n.id+"^"+n.hook_name:null},e.treedb_get_field_desc=Jn,e.treedb_hook_data_size=function(e){if(xt(e)&&1===Kt(e)){let t=e[0];return on(t,"size")?t.size:1}return Kt(e)},e.vsprintf=function(e,t){return n.apply(null,[e].concat(t||[]))},Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),e}({});
|
|
1
|
+
var gobjJs=function(e){"use strict";let t={not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function n(e){return function(e,r){var o,i,l,_,s,a,u,c,f,g=1,d=e.length,b="";for(i=0;i<d;i++)if("string"==typeof e[i])b+=e[i];else if("object"==typeof e[i]){if((_=e[i]).keys)for(o=r[g],l=0;l<_.keys.length;l++){if(null==o)throw new Error(n('[sprintf] Cannot access property "%s" of undefined value "%s"',_.keys[l],_.keys[l-1]));o=o[_.keys[l]]}else o=_.param_no?r[_.param_no]:r[g++];if(t.not_type.test(_.type)&&t.not_primitive.test(_.type)&&o instanceof Function&&(o=o()),t.numeric_arg.test(_.type)&&"number"!=typeof o&&isNaN(o))throw new TypeError(n("[sprintf] expecting number but found %T",o));switch(t.number.test(_.type)&&(c=o>=0),_.type){case"b":o=parseInt(o,10).toString(2);break;case"c":o=String.fromCharCode(parseInt(o,10));break;case"d":case"i":o=parseInt(o,10);break;case"j":o=JSON.stringify(o,null,_.width?parseInt(_.width):0);break;case"e":o=_.precision?parseFloat(o).toExponential(_.precision):parseFloat(o).toExponential();break;case"f":o=_.precision?parseFloat(o).toFixed(_.precision):parseFloat(o);break;case"g":o=_.precision?String(Number(o.toPrecision(_.precision))):parseFloat(o);break;case"o":o=(parseInt(o,10)>>>0).toString(8);break;case"s":o=String(o),o=_.precision?o.substring(0,_.precision):o;break;case"t":o=String(!!o),o=_.precision?o.substring(0,_.precision):o;break;case"T":o=Object.prototype.toString.call(o).slice(8,-1).toLowerCase(),o=_.precision?o.substring(0,_.precision):o;break;case"u":o=parseInt(o,10)>>>0;break;case"v":o=o.valueOf(),o=_.precision?o.substring(0,_.precision):o;break;case"x":o=(parseInt(o,10)>>>0).toString(16);break;case"X":o=(parseInt(o,10)>>>0).toString(16).toUpperCase()}t.json.test(_.type)?b+=o:(!t.number.test(_.type)||c&&!_.sign?f="":(f=c?"+":"-",o=o.toString().replace(t.sign,"")),a=_.pad_char?"0"===_.pad_char?"0":_.pad_char.charAt(1):" ",u=_.width-(f+o).length,s=_.width&&u>0?a.repeat(u):"",b+=_.align?f+o+s:"0"===a?f+s+o:s+f+o)}return b}(function(e){if(r[e])return r[e];let n,o=e,i=[],l=0;for(;o;){if(null!==(n=t.text.exec(o)))i.push(n[0]);else if(null!==(n=t.modulo.exec(o)))i.push("%");else{if(null===(n=t.placeholder.exec(o)))throw new SyntaxError("[sprintf] unexpected placeholder");if(n[2]){l|=1;var _=[],s=n[2],a=[];if(null===(a=t.key.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(_.push(a[1]);""!==(s=s.substring(a[0].length));)if(null!==(a=t.key_access.exec(s)))_.push(a[1]);else{if(null===(a=t.index_access.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");_.push(a[1])}n[2]=_}else l|=2;if(3===l)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");i.push({placeholder:n[0],param_no:n[1],keys:n[2],sign:n[3],pad_char:n[4],align:n[5],width:n[6],precision:n[7],type:n[8]})}o=o.substring(n[0].length)}return r[e]=i}(e),arguments)}let r=Object.create(null);function o(e,t,n,r,o){return{result:t,comment:n||{},schema:r||{},data:o||[]}}function i(e,t,n,r,o){return{result:t,comment:n||{},schema:r||{},data:o||[]}}let l="7.0.0a",_=null,s=null,a=null,u=null,c=null,f=null,g=[],d=Object.create(null),b={};e.__yuno__=null;let p=null,m=0;const y=Object.freeze({DTP_STRING:1,DTP_BOOLEAN:2,DTP_INTEGER:3,DTP_REAL:4,DTP_LIST:5,DTP_DICT:6,DTP_JSON:7,DTP_POINTER:8});y.DTP_POINTER;const h=Object.freeze({SDF_NOTACCESS:1,SDF_RD:2,SDF_WR:4,SDF_REQUIRED:8,SDF_PERSIST:16,SDF_VOLATIL:32,SDF_RESOURCE:64,SDF_PKEY:128,SDF_FUTURE1:256,SDF_FUTURE2:512,SDF_WILD_CMD:1024,SDF_STATS:2048,SDF_FKEY:4096,SDF_RSTATS:8192,SDF_PSTATS:16384,SDF_AUTHZ_R:32768,SDF_AUTHZ_W:65536,SDF_AUTHZ_X:131072,SDF_AUTHZ_P:262144,SDF_AUTHZ_S:524288,SDF_AUTHZ_RS:1048576});h.SDF_RD,h.SDF_WR,h.SDF_STATS,h.SDF_PERSIST,h.SDF_VOLATIL,h.SDF_RSTATS,h.SDF_PSTATS,h.SDF_WR,h.SDF_PERSIST;class T{constructor(e,t,n=0,r=null,o="",i=null,l=null,_=0,s=null,a=null,u=null){this.type=e,this.name=t,this.alias=i,this.flag=n,this.default_value=r,this.header=l,this.fillspace=_,this.description=o,this.json_fn=s,this.schema=a,this.authpth=u}}const E=()=>new T(0,null),j=(e,t,n,r,o)=>new T(e,t,n,r,o);class v{constructor(e,t,n,r,o,i,l,_,s){this.gclass_name=e,this.dl_states=[],this.dl_events=[],this.gmt=t,this.lmt=n,this.attrs_table=r,this.priv=o,this.authz_table=i,this.command_table=l,this.s_user_trace_level=_,this.gclass_flag=Number(s)||0,this.instances=0,this.trace_level=0,this.no_trace_level=0,this.jn_trace_filter=null,this.fsm_checked=!1}}class S{constructor(e,t,n,r,o){this.__refs__=0,this.gclass=t,this.parent=null,this.dl_children=[],this.dl_subscriptions=[],this.dl_subscribings=[],this.current_state=t.dl_states[0],this.last_state=null,this.obflag=0,this.gobj_flag=Number(o)||0,this.gobj_name=e,this.jn_attrs=null,this.jn_stats={},this.jn_user_data={},this.full_name=null,this.short_name=null,this.priv=Rt(t.priv),this.running=!1,this.playing=!1,this.disabled=!1,this.bottom_gobj=null,this.trace_level=0,this.no_trace_level=0}}const O=Object.freeze({gcflag_manual_start:1,gcflag_no_check_output_events:2,gcflag_ignore_unknown_attrs:4,gcflag_required_start_to_play:8,gcflag_singleton:16}),N=Object.freeze({gobj_flag_yuno:1,gobj_flag_default_service:2,gobj_flag_service:4,gobj_flag_volatil:8,gobj_flag_pure_child:16,gobj_flag_autostart:32,gobj_flag_autoplay:64}),w=Object.freeze({obflag_destroying:1,obflag_destroyed:2,obflag_created:4}),D=Object.freeze({EVF_NO_WARN_SUBS:1,EVF_OUTPUT_EVENT:2,EVF_SYSTEM_EVENT:4,EVF_PUBLIC_EVENT:8}),R=Object.freeze({WALK_TOP2BOTTOM:1,WALK_BOTTOM2TOP:2,WALK_BYLEVEL:4,WALK_FIRST2LAST:16,WALK_LAST2FIRST:32});class k{constructor(e,t,n){this.event_name=e,this.action=t,this.next_state=n}}class ${constructor(e){this.state_name=e,this.dl_actions=[]}}class I{constructor(e,t){this.event_name=e,this.event_flag=Number(t)||0}}function A(e){Yt(e)&&(e=JSON.stringify(e)),Nt(" ".repeat(Math.max(0,2*m-1))+String(e))}function L(e,t){let n={};if(!xt(t))return St("sdata_desc MUST be an array"),Dt(t),n;for(let r=0;r<t.length;r++){const o=t[r];o.name&&P(e,n,o)}return n}function P(e,t,n){let r,o=n.default_value;switch(n.type){case y.DTP_STRING:r=String(o);break;case y.DTP_BOOLEAN:r=Zt(o);break;case y.DTP_INTEGER:r=parseInt(o),isNaN(r)&&St(`${Oe(e)}: attr NaN: ${n.name}`);break;case y.DTP_REAL:r=Number(o),isNaN(r)&&St(`${Oe(e)}: attr NaN: ${n.name}`);break;case y.DTP_LIST:if(Bt(o))try{r=JSON.parse(o)}catch(e){St(`JSON parse error: ${e.message}`)}else r=o;xt(r)||(r=[]);break;case y.DTP_DICT:if(Bt(o))try{r=JSON.parse(o)}catch(e){St(`JSON parse error: ${e.message}`)}else r=o;Yt(r)||(r={});break;case y.DTP_JSON:if(Bt(o))try{r=JSON.parse(o)}catch(e){St(`JSON parse error: ${e.message}`)}else r=o;break;case y.DTP_POINTER:r=o}return void 0===r&&(St(`default_value WRONG, it: ${n.name}, value: ${n.default_value}`),r=null),t[n.name]=r,0}function U(e,t,n,r){let o;switch(n.type){case y.DTP_STRING:if(Bt(r))o=String(r);else{let e=JSON.stringify(r);e&&(o=String(e))}break;case y.DTP_BOOLEAN:o=Zt(r);break;case y.DTP_INTEGER:o=parseInt(r),isNaN(o)&&St(`${Oe(e)}: attr NaN: ${n.name}`);break;case y.DTP_REAL:o=Number(r),isNaN(o)&&St(`${Oe(e)}: attr NaN: ${n.name}`);break;case y.DTP_LIST:if(Bt(r))try{o=JSON.parse(r)}catch(e){St(`JSON parse error: ${e.message}`)}else o=r;if(!xt(o))return St(`attr must be an array: ${n.name}`),-1;break;case y.DTP_DICT:if(Bt(r))try{o=JSON.parse(r)}catch(e){St(`JSON parse error: ${e.message}`)}else o=r;if(!Yt(o))return St(`attr must be an object: ${n.name}`),-1;break;case y.DTP_JSON:if(Bt(r))try{o=JSON.parse(r)}catch(e){St(`JSON parse error: ${e.message}`)}else o=r;if(!xt(o)&&!Yt(o))return St(`attr must be a json dict/list: ${n.name}`),-1;break;case y.DTP_POINTER:o=r}return void 0===o&&St(`${Oe(e)}: attr undefined: ${n.name}`),t[n.name]=o,Yt(e.priv)&&e.priv.hasOwnProperty(n.name)&&(e.priv[n.name]=o),e.obflag&w.obflag_created&&!(e.obflag&w.obflag_destroyed)&&e.gclass.gmt.mt_writing&&e.gclass.gmt.mt_writing(e,n.name),0}function C(e){return e.jn_attrs}function G(e,t,n){return Me(e,t)?C(e):e&&e.bottom_gobj?G(e.bottom_gobj,t):null}function F(e,t,n){if(!(e&&e instanceof v))return n&&St("gclass NULL"),null;if(!t)return e.attrs_table;for(let n=0;n<e.attrs_table.length;n++){const r=e.attrs_table[n];if(r.name&&r.name===t)return r}return n&&St(`${e.gclass_name}: GClass Attribute NOT FOUND: ${t}`),null}function V(e,t,n,r,o,i,l,_,s,a,u){if(Xt(e))return St("gclass_name EMPTY"),null;if(e.includes("`")||e.includes("^")||e.includes("."))return St(`GClass name CANNOT have '.' or '^' or '\`' char: ${e}`),null;if(H(e))return St(`GClass ALREADY exists: ${e}`),null;let c=new v(e,r,o,i,l,_,s,a,u);!function(e,t){e&&e instanceof v?t?d[t]?St(`gclass ALREADY REGISTERED: ${t}`):d[t]=e:St("gclass_name undefined"):St("gclass undefined")}(c,e);const f=n.length;for(let e=0;e<f;e++){let t=n[e][0],r=n[e][1];if(Xt(t))continue;if(Y(c,t)<0)return W(c),null;const o=r.length;for(let e=0;e<o;e++){let n=r[e][0],o=r[e][1],i=r[e][2];Xt(n)||x(c,t,n,o,i)}}for(let e=0;e<t.length;e++){let n=t[e][0],r=t[e][1];if(!Xt(n)){if(Q(c,n))return St(`SMachine: event repeated in input_events: ${n}`),W(c),null;J(c,n,r)}}if(!c.fsm_checked){if(z(c)<0)return W(c),null;c.fsm_checked=!0}return c}function W(e){let t;if(Bt(e))t=e;else{if(!(e instanceof v))return St("Cannot unregister gclass, type unknown"),-1;t=e.gclass_name}let n=d[t];return n?n.instances>0?(St(`Cannot unregister gclass, instances in use: ${t}`),-1):(delete d[t],0):(St(`Cannot unregister gclass, not found: ${t}`),-1)}function M(e,t){const n=e.dl_states.length,r=e.dl_states;for(let e=0;e<n;e++){let n=r[e];if(n.state_name&&n.state_name===t)return n}return null}function K(e,t){const n=e.dl_actions.length,r=e.dl_actions;for(let e=0;e<n;e++){let n=r[e];if(n.event_name&&n.event_name===t)return n}return null}function Y(e,t){return e instanceof v?M(e,t)?(St(`state already exists: ${t}`),-1):(e.dl_states.push(new $(t)),0):(St("Cannot add state, typeof not GClass"),-1)}function x(e,t,n,r,o){if(!(e instanceof v))return St("Cannot add state, typeof not GClass"),-1;if(Xt(t))return St("state_name EMPTY"),-1;let i=M(e,t);return i?K(i,n)?(St(`event already exists: gclass ${e.gclass_name}, state ${t}, event ${n}`),-1):(i.dl_actions.push(new k(n,r,o)),0):(St(`state not found: ${t}`),-1)}function B(e,t,n){Xt(t)||e.push(new I(t,n))}function J(e,t,n){return e instanceof v?B(e.dl_events,t,n):(St("Cannot add state, typeof not GClass"),-1)}function Q(e,t){if(!(e instanceof v))return St("Cannot add state, typeof not GClass"),0;const n=e.dl_events.length,r=e.dl_events;for(let e=0;e<n;e++){let n=r[e];if(n.event_name&&n.event_name===t)return n}return null}function z(e){if(!(e instanceof v))return St("Cannot add state, typeof not GClass"),-1;let t=0;Mt(e.dl_states)||(St(`GClass without states: ${e.gclass_name}`),t+=-1);for(let n=0;n<e.dl_states.length;n++){let r=e.dl_states[n];if(!Xt(r.state_name))for(let n=0;n<r.dl_actions.length;n++){let o=r.dl_actions[n];if(!Xt(o.event_name)&&(Q(e,o.event_name)||(St(`SMachine: state's event NOT in input_events: gclass ${e.gclass_name}, state ${r.state_name}, event ${o.event_name}`),t+=-1),o.next_state)){M(e,o.next_state)||(St(`SMachine: next state NOT in state names: gclass ${e.gclass_name}, state ${r.state_name}, next_state ${o.next_state}`),t+=-1)}}}for(let n=0;n<e.dl_events.length;n++){let r=e.dl_events[n];if(!Xt(r.event_name)&&(Jt(r.event_flag)||(St(`SMachine: event flag is NOT number: gclass ${e.gclass_name}, event ${r.event_name}`),t+=-1),!(r.event_flag&D.EVF_OUTPUT_EVENT))){let n=!1;for(let t=0;t<e.dl_states.length;t++){let o=e.dl_states[t];Xt(o.state_name)||K(o,r.event_name)&&(n=!0)}n||(St(`SMachine: input_list's event NOT in state: gclass ${e.gclass_name}, event ${r.event_name}`),t+=-1)}}return t}function H(e,t){let n=null;try{n=d[e]}catch(e){}return n||t&&St(`gclass not found: ${e}`),n}function q(){return!p||p.obflag&w.obflag_destroyed?null:p}function X(e,t){e=e.toLowerCase();let n=b[e];return!n&&t?(St(`gobj service not found: ${e}`),null):n}function Z(e){let t=ve(e);return t=t.toLowerCase(),b[t]&&St(`service ALREADY REGISTERED: ${t}. Will be UPDATED`),b[t]=e,0}function ee(e,t){t.parent&&St(`_add_child() ALREADY HAS PARENT: ${t.gobj_name}`),e.dl_children.push(t),t.parent=e}function te(e,t){let n=Fn(e.dl_children,t);n>=0&&(Vt(e.dl_children,n),t.parent=null)}function ne(e,t){"__json_config_variables__"!==t&&St(`GClass Attribute NOT FOUND: ${Oe(e)}, attr ${t}`)}function re(e,t,n){let r=t,o=function(e,t,n,r,o){if(!e||!t)return St("hsdata or kw NULL"),-1;let i=0;for(const[n,l]of Object.entries(t)){const t=F(o.gclass,n,!1);t?i+=U(o,e,t,l):r&&(r(o,n),i--)}return i}(C(e),r,0,e.gclass.gclass_flag&O.gcflag_ignore_unknown_attrs?0:ne,e);o<0&&(St(`${Oe(e)} json2data() FAILED`),Dt(r))}function oe(t,r,o,i,l){if(l&N.gobj_flag_yuno){if(e.__yuno__)return St("__yuno__ already created"),null;l|=N.gobj_flag_service}else{if(!i)return St("gobj NEEDS a parent!"),null;if(!("string"==typeof i||i instanceof S))return St(`BAD TYPE of parent: ${i}`),null;if(Bt(i)&&!(i=X(i)))return Ot(`parent service not found: ${i}`),null}if(l&N.gobj_flag_service&&X(t,!1))return St(`service ALREADY registered: ${r}^${t}`),null;if(l&N.gobj_flag_default_service){if(p)return St(`default service ALREADY registered: ${r}^${t}`),null;l|=N.gobj_flag_service}if(Xt(r))return St("gclass_name must be a string"),null;let s=H(r,!1);if(!s)return St(`GClass not registered: ${r}^${t}`),null;if(!Bt(t))return St(`gobj_name must be a string: ${r}`),null;if(!Xt(t)){if(t.includes("`"))return St(`gobj_name cannot contain char ': ${r}^${t}`),null;if(t.includes("^"))return St(`gobj_name cannot contain char ^: ${r}^${t}`),null}let a=new S(t,s,o,i,l);a.jn_attrs=L(a,s.attrs_table);for(const[e,t]of Object.entries(a.jn_attrs))e in a.priv&&(a.priv[e]=t);let u=e.__yuno__&&xe(e.__yuno__,"trace_creation");return u&&A(n("ππβ© creating: %s^%s",s.gclass_name,t)),a.gobj_flag&N.gobj_flag_service&&Z(a),a.gobj_flag&N.gobj_flag_yuno&&(e.__yuno__=a),a.gobj_flag&N.gobj_flag_default_service&&(p=a),a.gobj_flag&N.gobj_flag_yuno||ee(i,a),a.obflag|=w.obflag_created,a.gclass.instances++,re(a,o),a.gobj_flag&N.gobj_flag_service&&_&&_(a,null),a.gclass.gmt.mt_create2?a.gclass.gmt.mt_create2(a,o):a.gclass.gmt.mt_create&&a.gclass.gmt.mt_create(a),i&&i.gclass.gmt.mt_child_added&&(u&&A(n("π¦π¦π΅ child_added(%s): %s",Ne(i),Oe(a))),i.gclass.gmt.mt_child_added(i,a)),u&&A(n("ππβͺ created: %s",Ne(a))),a}function ie(e,t,n,r){return oe(e,t,n,r,N.gobj_flag_pure_child)}function le(t){if(ke(t))return void St("gobj NULL or DESTROYED");t.__refs__>0&&St(`${Oe(t)}: gobj DESTROYING with references: ${t.__refs__}`),t.obflag|=w.obflag_destroying;let r=e.__yuno__&&xe(e.__yuno__,"trace_creation");r&&A(n("ππβ© destroying: %s",Ne(t)));let o=we(t);o&&o.gclass.gmt.mt_child_removed&&(r&&A(n("π¦π¦π΄ child_removed(%s): %s",Ne(o),Oe(t))),o.gclass.gmt.mt_child_removed(o,t)),t.gobj_flag&N.gobj_flag_service&&function(e){let t=ve(e);t=t.toLowerCase(),b[t]?delete b[t]:St(`"service NOT found in register": ${t}`)}(t),t.playing&&(St(`Destroying a PLAYING gobj: ${Ne(t)}`),de(t)),t.running&&(St(`Destroying a RUNNING gobj: ${Ne(t)}`),ue(t)),ft(t,t.dl_subscriptions,!0),ft(t,t.dl_subscribings,!0),o&&(te(o,t),De(t)&&($e(o)!==t||ke(o)||Ie(o,null))),function(e){let t=e.dl_children.slice();for(let e=0;e<t.length;e++){let n=t[e];ke(n)||le(n)}}(t),t.obflag&w.obflag_created&&t.gclass.gmt.mt_destroy&&t.gclass.gmt.mt_destroy(t),r&&A(n("ππβͺ destroyed: %s",Ne(t))),t.obflag|=w.obflag_destroyed,t.obflag&w.obflag_created&&t.gclass.instances--}function _e(t){if(ke(t))return St("gobj NULL or DESTROYED"),-1;if(t.running)return St(`${Oe(t)}: GObj ALREADY RUNNING`),-1;if(t.disabled)return St(`${Oe(t)}: GObj DISABLED`),-1;e.__yuno__&&xe(e.__yuno__,"trace_start_stop")&&A(n("βΊ βΊ start: %s",Ne(t))),t.running=!0;let r=0;return t.gclass.gmt.mt_start&&(r=t.gclass.gmt.mt_start(t)),r}function se(e,t,n){return e.gclass.gclass_flag&O.gcflag_manual_start||ke(e)||be(e)||pe(e)||_e(e),0}function ae(e,t,n){return e.gclass.gclass_flag&O.gcflag_manual_start||pe(e)?1:(be(e)||_e(e),0)}function ue(t){if(ke(t))return St("gobj NULL or DESTROYED"),-1;if(!t.running)return St(`${Oe(t)}: GObj NOT RUNNING`),-1;t.playing&&(Ot(`${Oe(t)}: GObj stopping without previous pause`),de(t)),e.__yuno__&&xe(e.__yuno__,"trace_start_stop")&&A(n("βΉ βΉ stop: %s",Ne(t))),t.running=!1;let r=0;return t.gclass.gmt.mt_stop&&(r=t.gclass.gmt.mt_stop(t)),r}function ce(e,t,n){return be(e)&&ue(e),0}function fe(e){return ke(e)?(St("gobj NULL or DESTROYED"),-1):Le(e,R.WALK_FIRST2LAST,ce,0,0)}function ge(t){if(ke(t))return St(`gobj NULL or DESTROYED: ${Oe(t)}`),-1;if(t.playing)return St(`${Oe(t)}: GObj ALREADY PLAYING`),-1;if(t.disabled)return St(`${Oe(t)}: GObj DISABLED`),-1;if(!be(t)){if(t.gclass.gclass_flag&O.gcflag_required_start_to_play)return St(`${Oe(t)}: Cannot play, start not done`),-1;Ot(`${Oe(t)}: GObj playing without previous start`),_e(t)}e.__yuno__&&xe(e.__yuno__,"trace_start_stop")&&A(n("β― β― play: %s",Ne(t))),t.playing=!0;let r=0;return t.gclass.gmt.mt_play&&(r=t.gclass.gmt.mt_play(t),r<0&&(t.playing=!1)),r}function de(t){if(ke(t))return St("gobj NULL or DESTROYED"),-1;if(!t.playing)return St(`${Oe(t)}: GObj NOT PLAYING`),-1;return e.__yuno__&&xe(e.__yuno__,"trace_start_stop")&&A(n("βΈ βΈ pause: %s",Ne(t))),t.playing=!1,t.gclass.gmt.mt_pause?t.gclass.gmt.mt_pause(t):0}function be(e){return!ke(e)&&e.running}function pe(e){return!!ke(e)||e.disabled}function me(e){return!!(e&&e.gobj_flag&N.gobj_flag_service)}function ye(e){return!ke(e)&&e.playing}function he(){return!e.__yuno__||e.__yuno__.obflag&w.obflag_destroyed?null:e.__yuno__}function Te(){let e=he();return e?ve(e):""}function Ee(){let e=he();return e?Je(e,"yuno_role"):""}function je(){let e=he();return e?Je(e,"yuno_id"):""}function ve(e){return qt(e)?e.gobj_name:(St("gobj bad type"),null)}function Se(e){return qt(e)?e.gclass.gclass_name:(St("gobj NULL of bad type"),null)}function Oe(e){return qt(e)?e.gclass.gclass_name+"^"+ve(e):(St("gobj bad type"),null)}function Ne(e){if(!qt(e))return St("gobj NULL of bad type"),null;let t=Oe(e),n=we(e);for(;n;){t=Oe(n)+"`"+t,n=we(n)}return t}function we(e){return qt(e)?e.parent:(St("gobj NULL of bad type"),null)}function De(e){return qt(e)?!!(e.gobj_flag&N.gobj_flag_volatil):(St("gobj NULL of bad type"),null)}function Re(e){return qt(e)?!!(e.gobj_flag&N.gobj_flag_pure_child):(St("gobj NULL of bad type"),null)}function ke(e){return!qt(e)||!!(e.obflag&(w.obflag_destroyed|w.obflag_destroying))}function $e(e){return qt(e)?e.bottom_gobj:(St("gobj NULL of bad type"),null)}function Ie(e,t){if(!qt(e))return St("gobj NULL of bad type"),null;e.bottom_gobj&&Ot(`${Oe(e)}: bottom_gobj already set`),e.bottom_gobj=t}function Ae(e,t,n){return qt(e)?t?F(e.gclass,t,n):e.gclass.attrs_table:(St("gobj NULL of bad type"),null)}function Le(e,t,n,r,o){return ke(e)?(St("gobj NULL, destroying, or bad type"),0):Ue(e.dl_children,t,n,r,o)}function Pe(e,t,n,r,o){return ke(e)?(St("gobj NULL, destroying, or bad type"),0):Ge(e.dl_children,t,n,r,o)}function Ue(e,t,n,r,o){let i,l=[...e];if(t&R.WALK_LAST2FIRST)for(let e=l.length;e>0;e--){i=l[e-1];let t=n(i,r,o);if(t<0)return t}else for(let e=0;e<l.length;e++){i=l[e];let t=n(i,r,o);if(t<0)return t}return 0}function Ce(e,t,n,r,o){let i,l=Ue(e,t,n,r,o);if(l<0)return l;if(t&R.WALK_LAST2FIRST)for(let _=e.length;_>0;_--){if(i=e[_-1],l=Ce([...i.dl_children],t,n,r,o),l<0)return l}else for(let _=0;_<e.length;_++){if(i=e[_],l=Ce([...i.dl_children],t,n,r,o),l<0)return l}return l}function Ge(e,t,n,r,o){if(t&R.WALK_BYLEVEL)return Ce(e,t,n,r,o);let i,l;if(t&R.WALK_BOTTOM2TOP)for(let _=e.length;_>0;_--){if(l=e[_-1],i=Ge([...l.dl_children],t,n,r,o),i<0)return i;if(i=n(l,r,o),i<0)return i}else for(let _=0;_<e.length;_++){if(l=e[_],i=n(l,r,o),i<0)return i;if(0===i){if(i=Ge([...l.dl_children],t,n,r,o),i<0)return i}}return 0}function Fe(e,t){if(!qt(e))return St("gobj NULL of bad type"),!1;let n=t.__gclass_name__,r=t.__gobj_name__,o=t.__prefix_gobj_name__;t.__disabled__;let i=t.__state__;if(n&&n!==Se(e))return!1;if(r&&r!==ve(e))return!1;if(o){let t=o.length;if(o!==ve(e).substring(0,t))return!1}if(i){if(i!==et(e))return!1}let l=e.jn_attrs;for(const n of Object.keys(t))if("__gclass_name__"!==n&&"__gobj_name__"!==n&&"__prefix_gobj_name__"!==n&&"__disabled__"!==n&&"__state__"!==n&&Me(e,n)&&l[n]!==t[n])return!1;return!0}function Ve(e,t){if(ke(e))return St("gobj NULL or DESTROYED"),null;const n=e.dl_children;for(let e=0;e<n.length;e++){const r=n[e];if(Fe(r,t))return r}return null}function We(e,t){if(!t)return null;let n=t.split("`");if(!function(e,t){let n=t.split("^"),r=null,o=null;if(2===n.length){if(o=n[0],r=n[1],o!==Se(e))return!1}else{if(1!==n.length)return!1;r=n[0]}return r===ve(e)}(e,n[0]))return null;if(1===n.length)return e;let r=n[1].split("^"),o={};1===r.length?o.__gobj_name__=r:(o.__gclass_name__=r[0],o.__gobj_name__=r[1]);let i=Ve(e,o);return i?(n.splice(0,1),n=n.join("`"),We(i,n)):null}function Me(e,t){return!Xt(t)&&!!F(e.gclass,t,!1)}function Ke(e,t,n){let r=e.jn_attrs;if(t in r&&r.hasOwnProperty(t)){let n=r[t];return e.gclass.gmt.mt_reading?e.gclass.gmt.mt_reading(e,t,n):n}return St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`),null}function Ye(e,t,n){let r={},o=e.gclass.attrs_table;for(let n=0;n<o.length;n++){const i=o[n];if(i.name&&(-1===t||i.flag&t)){let t=Lt(e.jn_attrs,i.name);Ut(r,i.name,t)}}return r}function xe(e,t){if(t){if(0===tn(t,"__disabled__"))return pe(e);if(0===tn(t,"__running__"))return be(e);if(0===tn(t,"__playing__"))return ye(e);if(0===tn(t,"__service__"))return me(e)}let n=G(e,t);return n?!e.gclass.gmt.mt_reading||e.obflag&w.obflag_destroyed?Lt(n,t):e.gclass.gmt.mt_reading(e,t):(St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`),0)}function Be(e,t){t&&tn(t,"__trace_level__");let n=G(e,t);return n?!e.gclass.gmt.mt_reading||e.obflag&w.obflag_destroyed?Lt(n,t):e.gclass.gmt.mt_reading(e,t):(St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`),0)}function Je(e,t){if(t&&0===tn(t,"__state__"))return et(e);let n=G(e,t);return n?!e.gclass.gmt.mt_reading||e.obflag&w.obflag_destroyed?Lt(n,t):e.gclass.gmt.mt_reading(e,t):(St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`),0)}function Qe(e,t){let n=G(e,t);return n?!e.gclass.gmt.mt_reading||e.obflag&w.obflag_destroyed?Lt(n,t):e.gclass.gmt.mt_reading(e,t):(St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`),0)}function ze(e,t,n,r){let o=C(e),i=0;for(const[r,l]of Object.entries(t)){let t=Ae(e,r,!0);t&&((-1===n||t.flag&n)&&(i+=U(e,o,t,l)))}return i}function He(e,t,n){let r=G(e,t);return r?(r[t]=Zt(n),Yt(e.priv)&&e.priv.hasOwnProperty(t)&&(e.priv[t]=n),e.obflag&w.obflag_created&&!(e.obflag&w.obflag_destroyed)&&e.gclass.gmt.mt_writing&&e.gclass.gmt.mt_writing(e,t),0):(St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`),-1)}function qe(e,t,n){let r=G(e,t);return r?(r[t]=parseInt(n),Yt(e.priv)&&e.priv.hasOwnProperty(t)&&(e.priv[t]=n),e.obflag&w.obflag_created&&!(e.obflag&w.obflag_destroyed)&&e.gclass.gmt.mt_writing&&e.gclass.gmt.mt_writing(e,t),0):(St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`),-1)}function Xe(e,t,n){let r=G(e,t);return r?(r[t]=String(n),Yt(e.priv)&&e.priv.hasOwnProperty(t)&&(e.priv[t]=n),e.obflag&w.obflag_created&&!(e.obflag&w.obflag_destroyed)&&e.gclass.gmt.mt_writing&&e.gclass.gmt.mt_writing(e,t),0):(St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`),-1)}function Ze(e,t){if(ke(e))return St("gobj NULL or DESTROYED"),null;if(e.current_state.state_name===t)return!1;let n=M(e.gclass,t);return n?(e.last_state=e.current_state,e.current_state=n,!0):(St(`${Oe(e)}: state unknown, state ${t}`),!1)}function et(e){return ke(e)?(St("gobj NULL or DESTROYED"),null):e.current_state.state_name}function tt(e,t,n){if(!qt(e))return St("gobj NULL of bad type"),null;let r=Q(e.gclass,t);if(r)return r;if(n){const e=g.length,n=g;for(let r=0;r<e;r++){let e=n[r];if(e.event_name&&e.event_name===t)return e}}return null}function nt(e,t,n){let r=tt(e,t,!1);return!!r&&!(n&&!(r.event_flag&n))}function rt(e,t,n){let r=tt(e,t,!1);return!!r&&(!(n&&!(r.event_flag&n))&&!!(r.event_flag&D.EVF_OUTPUT_EVENT))}function ot(t,r,o,i){if(!(t&&t instanceof S))return St("gobj dst NULL"),-1;if(t.obflag&(w.obflag_destroyed|w.obflag_destroying))return St("gobj dst DESTROYED"),-1;let l=t.current_state;if(!l)return St(`${Oe(t)}: current_state NULL`),-1;let _=0;_=e.__yuno__&&Be(e.__yuno__,"tracing"),"C_TIMER"===Se(i)&&(_=e.__yuno__&&Be(e.__yuno__,"trace_timer")),m++;let s=K(l,r);if(!s)return t.gclass.gmt.mt_inject_event?(m--,_&&(A(n("π mach(%s%s), st: %s, ev: %s, from(%s%s)",t.running?"":"!!",Oe(t),l.state_name,r||"",i&&!i.running?"!!":"",Oe(i))),o&&_>1&&Wt(o)&&Dt(o)),t.gclass.gmt.mt_inject_event(t,r,o,i)):(_&&A(n("π mach(%s%s^%s), st: %s, ev: %s, ππERROR Event NOT DEFINED in stateππ, from(%s%s^%s)",t.running?"":"!!",Se(t),ve(t),l.state_name,r||"",i&&!i.running?"!!":"",Se(i),ve(i))),St(`ππ Event NOT DEFINED in state ππ: ${Oe(t)}, ${l.state_name}, ${r}`),m--,-1);if(_){let e="";s.action&&(e=Wn(s.action)),A(n("π mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)",t.running?"":"!!",Se(t),ve(t),l.state_name,"",r||"","",e,i&&!i.running?"!!":"",Se(i),ve(i))),o&&_>1&&Wt(o)&&Dt(o)}s.next_state&&Ze(t,s.next_state);let a=-1;try{s.action&&(a=s.action(t,r,o,i))}finally{}return!_||t.obflag&w.obflag_destroyed||A(n("<- mach(%s%s^%s), st: %s, ev: %s, ret: %d",t.running?"":"!!",Se(t),ve(t),t.current_state.state_name,r||"",Jt(a)?a:0)),m--,a}const it=Object.freeze({__hard_subscription__:1,__own_event__:2}),lt=[j(y.DTP_POINTER,"publisher",0,null,"publisher gobj"),j(y.DTP_POINTER,"subscriber",0,null,"subscriber gobj"),j(y.DTP_STRING,"event",0,"","event name subscribed"),j(y.DTP_STRING,"renamed_event",0,"","rename event name"),j(y.DTP_INTEGER,"subs_flag",0,0,"subscription flag"),j(y.DTP_JSON,"__config__",0,null,"subscription config"),j(y.DTP_JSON,"__global__",0,null,"global kw, merge in publishing"),j(y.DTP_JSON,"__local__",0,null,"local kw, remove in publishing"),j(y.DTP_JSON,"__filter__",0,null,"filter kw, filter in publishing"),j(y.DTP_STRING,"__service__",0,"","subscription service"),E()];function _t(e,t,n,r,o){let i=fn(t,r,"__config__",null),l=fn(t,r,"__global__",null),_=fn(t,r,"__local__",null),s=gn(t,r,"__filter__",null),a=!0;if(t){t!==cn(null,e,"publisher",null)&&(a=!1)}if(o){o!==cn(null,e,"subscriber",null)&&(a=!1)}if(n){n!==un(null,e,"event","")&&(a=!1)}if(Kt(i)>0){let t=fn(null,e,"__config__",null);Kt(t)>0&&kt(t,i)||(a=!1)}if(Kt(l)>0){let t=fn(null,e,"__global__",null);Kt(t)>0&&kt(t,l)||(a=!1)}if(Kt(_)>0){let t=fn(null,e,"__local__",null);Kt(t)>0&&kt(t,_)||(a=!1)}if(Kt(s)>0){let t=gn(null,e,"__filter__",null);Kt(t)>0&&kt(t,s)||(a=!1)}return a}function st(e,t,n,r,o){let i=[];for(let l=0;l<e.length;l++){let _=e[l];_t(_,t,n,r,o)&&Gt(i,_)}return i}function at(e,t,n,r,o){for(let i=0;i<e.length;i++){if(_t(e[i],t,n,r,o))return i}return-1}function ut(t,r,o,i){let l=cn(t,r,"publisher",null,pt.KW_REQUIRED),_=cn(t,r,"subscriber",null,pt.KW_REQUIRED),s=un(t,r,"event","",pt.KW_REQUIRED);if((an(t,r,"subs_flag",null,pt.KW_REQUIRED)&it.__hard_subscription__?1:0)&&!o)return-1;e.__yuno__&&xe(e.__yuno__,"trace_subscriptions")&&(A(n("πππ unsubscribing event '%s': publisher %s, subscriber'%s'",s||"",Oe(l),Oe(_))),Dt(r)),l.obflag&w.obflag_destroyed||i||l.gclass.gmt.mt_subscription_deleted&&l.gclass.gmt.mt_subscription_deleted(l,r);let a=at(l.dl_subscriptions,l,s,r,_);return a>=0?Vt(l.dl_subscriptions,a):(St(`${Oe(t)}: subscription in publisher not found`),Dt(r)),a=at(_.dl_subscribings,l,s,r,_),a>=0?Vt(_.dl_subscribings,a):(St(`${Oe(t)}: subscription in subscriber not found`),Dt(r)),0}function ct(t,r,o,i){if(null==o&&(o={}),!t)return St(`publisher NULL: ev ${r}`),0;if(!i)return St(`subscriber NULL: ev ${r}`),0;const l=new Set(["__config__","__global__","__local__","__filter__","__service__"]);if(Object.keys(o).forEach(e=>{l.has(e)||St(`${Oe(t)}: key ignored in subscription (key: ${e}, event: ${r})`)}),Xt(r))r="";else if(!(rt(t,r,D.EVF_OUTPUT_EVENT)||t.gclass.gclass_flag&O.gcflag_no_check_output_events))return St(`event NOT in output event list: ${Oe(t)}, ${r}`),0;let _=st(t.dl_subscriptions,t,r,o,i);Mt(_)>0&&(St(`${Oe(t)}: ${Mt(_)} subscription(s) REPEATED, will be deleted and override`),Dt(_,"subscription REPEATED"),ft(t,_,!1));let s=function(e,t,n,r){let o=L(e,lt);Ct(o,"event",t),Ct(o,"subscriber",r),Ct(o,"publisher",e);let i=0;if(n){let t=fn(e,n,"__config__",null),r=fn(e,n,"__global__",null),l=fn(e,n,"__local__",null),_=gn(e,n,"__filter__",null),s=un(e,n,"__service__","");if(Kt(r)>0&&Ct(o,"__global__",Rt(r)),Kt(t)>0){let n=Rt(t);if(Ct(o,"__config__",n),on(n,"__hard_subscription__")){let t=sn(e,n,"__hard_subscription__",!1);Pt(n,"__hard_subscription__"),t&&(i|=it.__hard_subscription__)}if(on(n,"__own_event__")){let t=sn(e,n,"__own_event__",!1);Pt(n,"__own_event__"),t&&(i|=it.__own_event__)}}Kt(l)>0&&Ct(o,"__local__",Rt(l)),Kt(_)>0&&Ct(o,"__filter__",Rt(_)),Xt(s)||Ct(o,"__service__",s)}return Ct(o,"subs_flag",i),o}(t,r,o,i);if(!s)return St(`${Oe(t)}: _create_subscription() FAILED`),0;if(Gt(t.dl_subscriptions,s),Gt(i.dl_subscribings,s),e.__yuno__&&xe(e.__yuno__,"trace_subscriptions")&&(A(n("πππ subscribing event '%s', publisher '%s', subscriber %s",r||"",Oe(t),Oe(i))),o&&Dt(o)),t.gclass.gmt.mt_subscription_added){t.gclass.gmt.mt_subscription_added(t,s)<0&&(ut(t,s,!0,!0),s=0)}return s}function ft(e,t,n){let r=[...t];for(let t=0;t<r.length;t++){ut(e,r[t],n,!1)}return 0}function gt(e,t,n,r){return null==n&&(n={}),st(e.dl_subscriptions,e,t,n,r)}function dt(e,t,n,r){return st(e.dl_subscribings,r,t,n,e)}function bt(t,r,o){if(Yt(o)||(o={}),!t||t.obflag&(w.obflag_destroyed|w.obflag_destroying))return St("gobj NULL or DESTROYED"),-1;if(Xt(r))return St(`${Oe(t)}: event EMPTY`),-1;let i=tt(t,r,!0);if(!(i&&i.event_flag&(D.EVF_SYSTEM_EVENT|D.EVF_OUTPUT_EVENT)||t.gclass.gclass_flag&O.gcflag_no_check_output_events))return St(`event NOT in output event list: ${Oe(t)}, ev ${r}`),-1;let l=e.__yuno__&&xe(e.__yuno__,"trace_subscriptions");if(l&&(A(n("ππ mach(%s%s^%s), st: %s, ev: %s%s%s",t.running?"":"!!",Se(t),ve(t),t.current_state.state_name,"",r||"","")),Dt(o)),t.gclass.gmt.mt_publish_event){let e=t.gclass.gmt.mt_publish_event(t,r,o);if(e<=0)return e}let _=[...t.dl_subscriptions],s=0,a=0;for(let e=0;e<_.length;e++){let i=_[e];if(t.gclass.gmt.mt_publication_pre_filter){let e=t.gclass.gmt.mt_publication_pre_filter(t,i,r,o);if(e<0)break;if(0===e)continue}let u=cn(t,i,"subscriber",null,pt.KW_REQUIRED);if(!u||ke(u))continue;let c=an(t,i,"subs_flag",0,pt.KW_REQUIRED),f=un(t,i,"event","",pt.KW_REQUIRED);if(Xt(f)||0===tn(f,r)){fn(t,i,"__config__",null,0);let e=fn(t,i,"__global__",null,0),_=fn(t,i,"__local__",null,0),f=gn(t,i,"__filter__",null,0),g=o,d=1;if(t.gclass.gmt.mt_publication_filter?d=t.gclass.gmt.mt_publication_filter(t,r,g,u):Kt(f)>0&&(d=mn(g,f),l&&(A(n("πππ%s publishing with filter, event '%s', subscriber'%s', publisher %s",d?"π":"π",r||"",Oe(u),Oe(t))),Dt(f))),d<0)break;if(0===d)continue;let b=tt(u,r,!0);if(b&&b.event_flag&D.EVF_SYSTEM_EVENT&&!nt(u,b.event_name,0))continue;_&&rn(g,_),e&&$t(g,e),l&&(A(n("ππ mach(%s%s), st: %s, ev: %s, from(%s%s)",u.running?"":"!!",Oe(u),et(u),r||"",t&&!t.running?"!!":"",Oe(t))),Dt(g));let p=ot(u,r,g,t);if(p<0&&c&it.__own_event__){s=-1;break}if(a+=p,s++,ke(t))break}}return s||i&&i.event_flag&D.EVF_NO_WARN_SUBS||Ot(`${Oe(t)}: Publish event WITHOUT subscribers, ev ${r}`),a}const pt=Object.freeze({KW_REQUIRED:1,KW_CREATE:2,KW_WILD_NUMBER:4,KW_EXTRACT:8,KW_BACKWARD:16,KW_VERBOSE:32,KW_LOWER:64,KW_RECURSIVE:128}),mt="undefined"!=typeof window?window.console:console;let yt=mt.error,ht=mt.warn,Tt=mt.info,Et=mt.debug;function jt(e){e?(yt=e,ht=e):(yt=mt.error,ht=mt.warn)}function vt(e){const t=Array.prototype.slice.call(arguments);let n="";if("string"==typeof e){let r=1;n=e.replace(/%[sdifoO]/g,e=>{const n=t[r++];switch(e){case"%s":return String(n);case"%d":case"%i":return parseInt(n);case"%f":return parseFloat(n);case"%o":case"%O":return"object"==typeof n?JSON.stringify(n):String(n);default:return e}});const o=t.slice(r).map(e=>"object"==typeof e?JSON.stringify(e):String(e));o.length>0&&(n+=" "+o.join(" "))}else n=t.map(e=>"object"==typeof e?JSON.stringify(e):String(e)).join(" ");return n}function St(e){let t=vt(e),n=Gn();yt&&(yt===window.console.error?yt("%c"+n+" ERROR: "+String(t),"color:red"):(window.console.error("%c"+n+" ERROR: "+String(t),"color:red"),yt(`${n} ERROR: ${String(t)}`)))}function Ot(e){let t=vt(e),n=Gn();ht&&(ht===window.console.warn?ht("%c"+n+" WARNING: "+String(t),"color:yellow"):(window.console.warn("%c"+n+" WARNING: "+String(t),"color:yellow"),ht(`${n} WARNING: ${String(t)}`)))}function Nt(e){let t=vt(e),n=Gn();Et&&Et("%c"+n+" DEBUG: "+String(t),"color:silver")}function wt(e){let t=vt(e),n=Gn();Et&&Et("%c"+n+" MSG: "+String(t),"color:cyan")}function Dt(e,t){t&&window.console.warn("=====> "+t),window.console.dir(e)}function Rt(e){return structuredClone(e)}function kt(e,t){if(e===t)return!0;if(null===e||null===t)return e===t;if(typeof e!=typeof t)return!1;if(Array.isArray(e)!==Array.isArray(t))return!1;if(Array.isArray(e)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!kt(e[n],t[n]))return!1;return!0}if("object"==typeof e){let n=Object.keys(e).sort(),r=Object.keys(t).sort();if(n.length!==r.length)return!1;for(let o=0;o<n.length;o++){if(n[o]!==r[o])return!1;if(!kt(e[n[o]],t[r[o]]))return!1}return!0}return e===t}function $t(e,t){if(!t)return e;for(let n of Object.keys(t))e[n]=t[n];return e}function It(e,t){if(!t)return e;for(let n in t)t.hasOwnProperty(n)&&e.hasOwnProperty(n)&&(e[n]=t[n]);return e}function At(e,t){if(!t)return e;for(let n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n]);return e}function Lt(e,t){if(e&&e.hasOwnProperty(t))return e[t]}function Pt(e,t){e&&e.hasOwnProperty(t)&&delete e[t]}function Ut(e,t,n){e[t]=n}function Ct(e,t,n){e[t]=n}function Gt(e,t){e.push(t)}function Ft(e,t){e.push(t)}function Vt(e,t){e.splice(t,1)}function Wt(e){return Yt(e)?Object.keys(e).length:0}function Mt(e){return xt(e)?e.length:0}function Kt(e){return Yt(e)?Object.keys(e).length:xt(e)?e.length:Bt(e)&&e.length>0?1:0}function Yt(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function xt(e){return Array.isArray(e)}function Bt(e){return"string"==typeof e}function Jt(e){return"number"==typeof e&&Number.isFinite(e)}function Qt(e){return"boolean"==typeof e}function zt(e){return null==e}function Ht(e){return"function"==typeof e}function qt(e){return e instanceof S}function Xt(e){return!Bt(e)||0===e.length}function Zt(e){if(Jt(e))return Boolean(e);return/^\s*(true|1|on)\s*$/i.test(e)}function en(e,t){return e===t?0:e>t?1:-1}function tn(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n===r?0:n>r?1:-1}function nn(e,t){if(Yt(e)||Yt(t)||xt(e)||xt(t))return 0;if(Jt(e)||Jt(t)){let n=Number(e),r=Number(t);return n>r?1:n<r?-1:0}if(Qt(e)||Qt(t)){let n=Number(e),r=Number(t);return n>r?1:n<r?-1:0}return en(String(e),String(t))}function rn(e,t){if("object"!=typeof t||Array.isArray(t))if(Array.isArray(t))for(const n of t)rn(e,n);else"string"==typeof t&&delete e[t];else for(const n of Object.keys(t))delete e[n]}function on(e,t){return!(!(t in e)||!e.hasOwnProperty(t))}function ln(e,t,n,r){if(e&&!qt(e)&&St("GObj bad instanceof"),!Yt(t)&&!xt(t))return St(`${Oe(e)}: kw must be list or dict`),0;if(!Bt(n))return St(`${Oe(e)}: path must be a string: ${String(n)}`),0;let o=n.split("`");if(o.length<=1)return t[n];let i=o.length;for(let l=0;l<i;l++){if(void 0===(t=t[o[l]]))return void(r&&St(`${Oe(e)}: path not found: ${String(n)}`))}return t}function _n(e,t,n){e&&!qt(e)&&St("GObj bad instanceof");let[r,o]=function(e,t){let n=e.lastIndexOf(t);return-1===n?[e,""]:[e.substring(0,n),e.substring(n+1)]}(n,"`");if(Xt(o))Pt(t,n);else{Pt(ln(e,t,r,!0),o)}return 0}function sn(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=ln(e,t,n,!1);const l=o&&o&pt.KW_REQUIRED,_=o&&o&pt.KW_CREATE,s=o&&o&pt.KW_EXTRACT;if(void 0===i){if(_){let o=Boolean(r);return dn(e,t,n,o),o}return l&&(St(`path not found: '${n}'`),Dt(t)),Boolean(r)}return s&&_n(e,t,n),Boolean(i)}function an(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=ln(e,t,n,!1);const l=o&&o&pt.KW_REQUIRED,_=o&&o&pt.KW_CREATE,s=o&&o&pt.KW_EXTRACT;if(void 0===i){if(_){let o=parseInt(r);return dn(e,t,n,o),o}return l&&(St(`path not found: '${n}'`),Dt(t)),parseInt(r)}return s&&_n(e,t,n),Jt(i)?parseInt(i):(l&&(St(`path value MUST BE a number: ${n}`),wt(t)),parseInt(r))}function un(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=ln(e,t,n,!1);const l=o&&o&pt.KW_REQUIRED,_=o&&o&pt.KW_CREATE,s=o&&o&pt.KW_EXTRACT;if(void 0===i){if(_){let o=String(r);return dn(e,t,n,o),o}return l&&(St(`path not found: '${n}'`),Dt(t)),String(r)}return s&&_n(e,t,n),Bt(i)?String(i):(l&&(St(`${Oe(e)}: path value MUST BE a string: ${n}`),wt(t)),String(r))}function cn(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=ln(e,t,n,!1);const l=o&&o&pt.KW_REQUIRED,_=o&&o&pt.KW_CREATE,s=o&&o&pt.KW_EXTRACT;if(void 0===i){if(_){let o=r;return dn(e,t,n,o),o}return l&&(St(`path not found: '${n}'`),Dt(t)),r}return s&&_n(e,t,n),i}function fn(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=ln(e,t,n,!1);const l=o&&o&pt.KW_REQUIRED,_=o&&o&pt.KW_CREATE,s=o&&o&pt.KW_EXTRACT;if(void 0===i){if(_){let o=Object(r);return dn(e,t,n,o),o}return l&&(St(`path not found: '${n}'`),Dt(t)),Object(r)}return s&&_n(e,t,n),Yt(i)?Object(i):(l&&(St(`path value MUST BE a dict: ${n}`),wt(t)),Object(r))}function gn(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=ln(e,t,n,!1);const l=o&&o&pt.KW_REQUIRED,_=o&&o&pt.KW_CREATE,s=o&&o&pt.KW_EXTRACT;if(void 0===i){if(_){let o=r;return dn(e,t,n,o),o}return l&&(St(`path not found: '${n}'`),Dt(t)),r}return s&&_n(e,t,n),i}function dn(e,t,n,r){if(e&&!qt(e)&&St("GObj bad instanceof"),!Yt(t))return St("kw is not an object"),-1;let o=n.split("`");if(o.length<=1)return t[n]=r,0;let i=o.length;for(let e=0;e<i;e++){let n=o[e];if(e===i-1)t[n]=r;else{void 0===t[n]&&(t[n]={}),t=t[n]}}return 0}function bn(e,t,n,r,o){if(e&&!qt(e)&&St("GObj bad instanceof"),!Yt(t))return St("kw is not an object"),-1;let i=fn(e,t,n,{},!0);return Yt(i)?(i[r]=o,0):(St("subdict is not an object"),-1)}function pn(e,t,r){let o="",i=!1;if(xt(t)){i=!1;for(let l=0;l<t.length;l++){let _=t[l];if(o=Xt(r)?n("%s",r):n("%s`%d",r,l),i=pn(e,_,o),i)break}}else if(Yt(t)){i=!0;let l=Object.keys(t);for(let _=0;_<l.length;_++){let s=l[_],a=t[s];if(o=Xt(r)?n("%s",s):n("%s`%s",r,s),xt(a)||Yt(a)){if(i=pn(e,a,o),!i)break;continue}let u=gn(0,e,o,0,0);if(u||(u=Lt(e,o)),!u){i=!1;break}if(0!==nn(u,a)){i=!1;break}}}return i}function mn(e,t){return 0===Kt(t)||pn(e,t,"")}function yn(e,t,n,r){e&&!qt(e)&&St("GObj bad instanceof");let o={};if(Bt(n)&&!Xt(n)){let i=n;t.hasOwnProperty(i)?o[i]=t[i]:r&&St(`${Oe(e)}: key not found: ${i}`)}else if(Yt(n)&&Wt(n)>0)for(let i of Object.keys(n))t.hasOwnProperty(i)?o[i]=t[i]:r&&St(`${Oe(e)}: key not found: ${i}`);else{if(!(xt(n)&&Mt(n)>0))return t;for(let i=0;i<n.length;i++){let l=n[i];t.hasOwnProperty(l)?o[l]=t[l]:r&&St(`${Oe(e)}: key not found: ${l}`)}}return o}function hn(e,t,n,r){let o={};if($t(o,t),Bt(n)&&!Xt(n)){let i=n;gn(e,t,i,0,0)?Pt(o,i):r&&St(`${Oe(e)}: key not found: ${i}`)}else if(Yt(n)&&Wt(n)>0)for(let i of Object.keys(n))t.hasOwnProperty(i)?Pt(o,i):r&&St(`${Oe(e)}: key not found: ${i}`);else{if(!(xt(n)&&Mt(n)>0))return{};for(let i=0;i<n.length;i++){let l=n[i];t.hasOwnProperty(l)?Pt(o,l):r&&St(`${Oe(e)}: key not found: ${l}`)}}return o}function Tn(e,t,n=!1){if("undefined"!=typeof window&&window.localStorage)try{let r=window.localStorage.getItem(e);return null===r?(n&&En(e,t),t):JSON.parse(r)}catch(n){return window.console.warn(`Error reading localStorage key "${e}":`,n),t}}function En(e,t){if("undefined"!=typeof window&&window.localStorage)if(e&&void 0!==t)try{window.localStorage.setItem(e,JSON.stringify(t))}catch(t){window.console.warn(`Error saving localStorage key "${e}":`,t)}else window.console.warn(`Invalid key or value for localStorage: key=${e}, value=${t}`)}function jn(e){if("undefined"!=typeof window&&window.localStorage)if(e)try{window.localStorage.removeItem(e)}catch(t){window.console.warn(`Error removing localStorage key "${e}":`,t)}else window.console.warn(`Invalid key for localStorage removal: ${e}`)}function vn(e,t){if(zt(e)||zt(t))return!0;if(xt(e)){if(0===e.length)return!0;for(let n=0;n<e.length;n++){if(e[n]===t)return!0}}else if(Yt(e)){if(0===Object.keys(e).length)return!0;for(let n in e)if(n===t)return!0}else if(Bt(e)&&e===t)return!0;return!1}function Sn(e,t,n,r,o){if(e&&!qt(e)&&St("GObj bad instanceof"),!t)return null;o||(o=mn);let i=[];if(xt(t))for(let l=0;l<t.length;l++){let _,s=t[l];if(Yt(s))_=un(e,s,"id","",0);else{if(!Bt(s))continue;_=s}vn(n,_)&&(o(s,r)&&i.push(s))}else{if(!Yt(t))return St("kw_collect() BAD kw parameter"),null;for(let e of Object.keys(t)){let l=t[e];vn(n,e)&&(o(l,r)&&i.push(l))}}return i}function On(e,t){if(!e)return-1;for(let n=0;n<e.length;n++)if(e[n]&&e[n].id===t)return n;return-1}function Nn(e,t,n){if(!e||!t)return St("ERROR: str_in_list() list or str empty"),!1;let r=e.length;if(n){t=t.toLowerCase();for(let n=0;n<r;n++){let r=e[n];if(r&&r.toLowerCase()===t)return!0}}else for(let n=0;n<r;n++)if(e[n]===t)return!0;return!1}function wn(e,t){try{let n=e.__md_iev__;if(n)return n[t]}catch(e){return}}function Dn(e,t,n){let r=e.__md_iev__;r||(r={},e.__md_iev__=r),r[t]=n}function Rn(e,t,n,r){if(!qt(e))return St("gobj is not a GObj"),null;if(!t)return;let o=wn(t,n);o||(o=[],Dn(t,n,o));try{xt(o)&&o.unshift(r)}catch(e){St(e)}}function kn(e,t,n,r){if(!qt(e))return St("gobj is not a GObj"),null;if(!Yt(t))return St("kw is not a dict"),null;let o=wn(t,n);return o?0===o.length?(r&&St(`stack empty: ${n}`),null):o[0]:(r&&St(`stack NOT FOUND: ${n}`),null)}function $n(e,t,n){return Xt(n)?_n(e,t,"__md_iev__`__msg_type__"):bn(e,t,"__md_iev__","__msg_type__",n),0}function In(e,t){return un(e,t,"__md_iev__`__msg_type__","",0)}function An(e,t,n){void 0!==n&&Bt(n)||(n="");for(let r of Object.keys(e)){if(!e.hasOwnProperty(r))continue;let o=(n.length?"`":"")+r;n+=o,t.apply(this,[e,r,e[r],n]),Yt(e[r])&&An(e[r],t,n),n=n.slice(0,-o.length)}}function Ln(e,t,n,r){if(!e)return null;let o,i=e.length;for(o=0;o<i;o++){let i=e[o];if(i){let e=i.id;if(e&&e===n)return i;if(r&&on(i,t)){let e=Ln(i[t],t,n,r);if(e)return e}}}return null}function Pn(e){function t(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(atob(e).replace(/(.)/g,function(e,t){let n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n="0"+n),"%"+n}))}(t)}catch(e){return atob(t)}}let n=e.split(".");return{header:t(n[0]),payload:t(n[1]),signature:t(n[2])}}function Un(e){return null==e?"":String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Cn(e){const t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstChild}function Gn(){const e=new Date,t=e.toISOString().slice(0,19),n=String(e.getMilliseconds()).padStart(3,"0"),r=e.getTimezoneOffset();return`${t}.${n}${`${r>0?"-":"+"}${String(Math.abs(r)/60).padStart(2,"0")}${String(Math.abs(r)%60).padStart(2,"0")}`}`}function Fn(e,t){if(!e)throw"ERROR: index_in_list() list empty";for(let n=0;n<e.length;n++)if(t===e[n])return n;return-1}function Vn(){let e="";return"undefined"!=typeof window&&window.localStorage?(e=window.localStorage.getItem("host_uuid"),!e&&window.crypto?.randomUUID&&(e=window.crypto.randomUUID(),window.localStorage.setItem("host_uuid",e))):e="undefined"!=typeof globalThis&&globalThis.crypto?.randomUUID?globalThis.crypto.randomUUID():"00000000-0000-0000-0000-000000000000",e}function Wn(e){let t=null;return"function"!=typeof e&&"object"!=typeof e||(t=(""+e).match(/function\s*([\w\$]*)\s*\(/)),null!==t?t[1]+"()":""}function Mn(e){return"persistent-attrs-"+Oe(e)}function Kn(e,t){if(Bt(t)){if(-1===t.indexOf("^")){let n,r,o=e.fkey;if(1!==Wt(o))return St("bad fkey 1"),St(e),St(t),null;for(const e of Object.keys(o)){n=e,r=o[e];break}return{topic_name:n,id:t,hook_name:r}}{let n=t.split("^");return 3!==n.length?(St("bad fkey 2"),St(e),St(t),null):{topic_name:n[0],id:n[1],hook_name:n[2]}}}return Yt(t)?{topic_name:t.topic_name,id:t.id,hook_name:t.hook_name}:(St("bad fkey 3"),St(e),St(t),null)}const Yn=["string","integer","object","dict","array","list","real","boolean","blob"],xn=["persistent","required","notnull","wild","inherit","readable","writable","hidden","stats","rstats","pstats"],Bn=["hook","fkey","enum","template","uuid","rowid","password","email","url","time","now","date","color","image","tel","table","id","currency","hex","binary","percent","base64","coordinates","gbuffer"];function Jn(e){let t={name:e.id,header:e.header,real_type:e.type,type:e.type,enum_list:null,is_required:!1,is_writable:!1,is_hidden:!1,default_value:e.default,placeholder:e.placeholder,fillspace:e.fillspace||4};if(!e.flag)return t;for(let n=0;n<e.flag.length;n++){let r=e.flag[n];if(Nn(Bn,r)){switch(r){case"enum":t.enum_list=e.enum;break;case"template":t.enum_list=e.template;break;case"table":t.enum_list=e.table}t.type=r}else if(Nn(xn,r))switch(r){case"writable":t.is_writable=!0;break;case"notnull":case"required":t.is_required=!0;break;case"hidden":t.is_hidden=!0}}return t}const Qn=[j(y.DTP_POINTER,"subscriber",0,null,"Subscriber of output events"),j(y.DTP_BOOLEAN,"periodic",0,0,"True for periodic timeouts"),j(y.DTP_INTEGER,"msec",0,0,"Timeout in milliseconds"),E()];let zn={periodic:!1,msec:0,timer_id:-1},Hn=null;function qn(e,t,n,r){let o=e.priv,i=o.periodic?"EV_TIMEOUT_PERIODIC":"EV_TIMEOUT";return Re(e)?ot(we(e),i,{},e):bt(e,i,{}),o.periodic&&(o.timer_id=setTimeout(function(){ot(e,"EV_TIMEOUT",{},e)},o.msec)),0}const Xn={mt_create:function(e){let t=e.priv;const n=Qe(e,"subscriber");n&&ct(e,null,{},n),t.periodic=xe(e,"periodic"),t.msec=Be(e,"msec")},mt_writing:function(e,t){let n=e.priv;switch(t){case"periodic":n.periodic=xe(e,"periodic");break;case"msec":n.msec=Be(e,"msec"),-1!==n.timer_id&&(clearTimeout(n.timer_id),n.timer_id=-1),n.msec>0&&(n.timer_id=setTimeout(function(){ot(e,"EV_TIMEOUT",{},e)},n.msec))}},mt_start:function(e){return 0},mt_stop:function(e){return qe(e,"msec",-1),0},mt_destroy:function(e){}};function Zn(e,t){return e instanceof S?"C_TIMER"!==Se(e)?(St("not C_TIMER GObj"),-1):(He(e,"periodic",!1),void qe(e,"msec",t)):(St("not GObj TYPE"),-1)}function er(e,t){return e instanceof S?"C_TIMER"!==Se(e)?(St("not C_TIMER GObj"),-1):(He(e,"periodic",!0),void qe(e,"msec",t)):(St("not GObj TYPE"),-1)}function tr(e){return e instanceof S?"C_TIMER"!==Se(e)?(St("not C_TIMER GObj"),-1):void qe(e,"msec",-1):(St("not GObj TYPE"),-1)}const nr=[j(y.DTP_BOOLEAN,"changesLost",0,!1,"Set true to warn about leaving page"),j(y.DTP_BOOLEAN,"browser_beforeunload",0,!1,"Set true to refreshing browser"),j(y.DTP_STRING,"__username__",0,"","Username"),j(y.DTP_STRING,"start_date",0,"","Yuno starting date"),j(y.DTP_STRING,"node_uuid",0,"","uuid of node"),j(y.DTP_STRING,"yuno_role",0,"","Yuno role"),j(y.DTP_STRING,"yuno_id",0,"","Yuno Id. Set by agent"),j(y.DTP_STRING,"yuno_name",0,"","Yuno name. Set by agent"),j(y.DTP_STRING,"yuno_tag",0,"","Tags of yuno. Set by agent"),j(y.DTP_STRING,"yuno_release",0,"","Yuno Release. Set by agent"),j(y.DTP_STRING,"yuno_version",0,"","Yuno version (APP_VERSION)"),j(y.DTP_STRING,"yuneta_version",0,l,"Yuneta version"),j(y.DTP_LIST,"required_services",0,"[]","Required services"),j(y.DTP_INTEGER,"tracing",0,0,"Tracing level"),j(y.DTP_BOOLEAN,"trace_timer",0,0,"Trace timers"),j(y.DTP_BOOLEAN,"trace_inter_event",0,0,"Trace traffic"),j(y.DTP_POINTER,"trace_ievent_callback",0,null,"Trace traffic callback"),j(y.DTP_BOOLEAN,"trace_creation",0,0,"Trace creation"),j(y.DTP_BOOLEAN,"trace_start_stop",0,0,"Trace start/stop"),j(y.DTP_BOOLEAN,"trace_subscriptions",0,0,"Trace subscription"),j(y.DTP_BOOLEAN,"trace_i18n",0,0,"Trace i18n"),j(y.DTP_BOOLEAN,"no_poll",0,0,"no poll"),j(y.DTP_BOOLEAN,"developer",0,!1,"Developer mode enabled"),j(y.DTP_INTEGER,"periodic_timeout",0,"1000","Timeout periodic, in miliseconds."),E()];let rr={gobj_timer:null},or=null;function ir(e,t,n,r){return bt(e,t,n),0}const lr={mt_create:function(e){let t=e.priv;Xe(e,"start_date",Gn()),Xe(e,"node_uuid",Vn()),e.priv.gobj_timer=ie(ve(e),"C_TIMER",{},e),t.periodic_timeout=Ke(e,"periodic_timeout")},mt_writing:function(e,t){},mt_start:function(e){return _e(e.priv.gobj_timer),er(e.priv.gobj_timer,e.priv.periodic_timeout),0},mt_stop:function(e){return ue(e.priv.gobj_timer),fe(e),0},mt_destroy:function(e){},mt_play:function(e){let t=q();return be(t)||_e(t),ye(t)||ge(t),0},mt_pause:function(e){return de(q()),0}};const _r="ievent_gate_stack",sr=[j(y.DTP_STRING,"wanted_yuno_role",h.SDF_RD,"","wanted yuno role"),j(y.DTP_STRING,"wanted_yuno_name",h.SDF_RD,"","wanted yuno name"),j(y.DTP_STRING,"wanted_yuno_service",h.SDF_RD,"","wanted yuno service"),j(y.DTP_STRING,"remote_yuno_role",h.SDF_RD,"","confirmed remote yuno role"),j(y.DTP_STRING,"remote_yuno_name",h.SDF_RD,"","confirmed remote yuno name"),j(y.DTP_STRING,"remote_yuno_service",h.SDF_RD,"","confirmed remote yuno service"),j(y.DTP_STRING,"url",h.SDF_RD,"","Url to connect"),j(y.DTP_STRING,"jwt",h.SDF_PERSIST,"","JWT"),j(y.DTP_STRING,"cert_pem",h.SDF_PERSIST,"","SSL server certification, PEM str format"),j(y.DTP_JSON,"extra_info",h.SDF_RD,"{}","dict data set by user, added to the identity card msg."),j(y.DTP_INTEGER,"timeout_retry",h.SDF_RD,"5000","timeout waiting idAck"),j(y.DTP_INTEGER,"timeout_idack",h.SDF_RD,"5000","timeout waiting idAck"),j(y.DTP_POINTER,"subscriber",0,0,"subscriber of output-events. If null then subscriber is the parent"),E()];let ar={url:null,remote_yuno_name:null,remote_yuno_role:null,remote_yuno_service:null,gobj_timer:null,inform_on_close:!1,websocket:null,inside_on_open:!1},ur=null;function cr(e){e.priv.websocket&&St("Websocket ALREADY setup");const t=Je(e,"url");let n;Nt(`====> Starting WebSocket to '${t}' (${Oe(e)})`);try{n=new WebSocket(t)}catch(n){return St(`${Oe(e)}: Cannot open WebSocket to '${t}', Error: ${n.message}`),null}return n?(n.onopen=()=>{ot(e,"EV_ON_OPEN",{url:t},e)},n.onmessage=n=>{ot(e,"EV_ON_MESSAGE",{url:t,data:n.data},e)},n.onclose=n=>{xe(he(),"browser_beforeunload")?Ot("Close websocket by unload page"):ot(e,"EV_ON_CLOSE",{url:t,e:n},e)},n):(St(`${Oe(e)}: Failed to initialize WebSocket.`),null)}function fr(e,t=1e3,n=""){let r=e.priv,o=r.websocket;if(r.websocket=null,o&&o.readyState!==WebSocket.CLOSED&&o.readyState!==WebSocket.CLOSING){Nt(`Closing WebSocket (Code: ${t}, Reason: "${n}")`);try{o.close(t,n)}catch(e){St("Error closing WebSocket:",e.message)}}else Ot("WebSocket is already closed or in the process of closing.")}function gr(e,t,n){let r=Gn();try{Nt("\n"+r+" "+t+"\n"),Dt(n)}catch(e){Nt("ERROR in trace_inter_event: "+e)}}class dr{constructor(e,t){this.event=e,this.kw=t||{}}}function br(e,t,n,r){let o=function(e,t){return Xt(e)?(St("iev_create() event NULL"),null):new dr(e,t)}(t,n);return function(e,t){let n=e.priv,r=JSON.stringify(t);if(xe(he(),"trace_inter_event")){let n=Je(e,"url"),o=ve(he())+" ==> "+n,i=Ke(he(),"trace_ievent_callback");i?i(o,t,1,r.length):gr(0,o,t)}try{n.websocket.send(r)}catch(t){St(`${Oe(e)}: send_iev(): ${t}`)}return 0}(e,o)}function pr(e,t,n){return Xt(n)&&(n=Je(e,"wanted_yuno_service")),{dst_yuno:Je(e,"wanted_yuno_name"),dst_role:Je(e,"wanted_yuno_role"),dst_service:n,src_yuno:Te(),src_role:Ee(),src_service:t,host:Vn()}}function mr(e){let t=e.priv,n=ye(he()),r=Je(he(),"yuno_version"),o=Je(he(),"yuno_release"),i=Je(he(),"yuno_tag"),_={yuno_role:Ee(),yuno_id:je(),yuno_name:Te(),yuno_tag:i,yuno_version:r,yuno_release:o,yuneta_version:l,playing:n,pid:0,watcher_pid:0,jwt:Je(e,"jwt"),username:Je(he(),"__username__"),launch_id:0,yuno_startdate:Je(he(),"start_date"),id:Vn(),user_agent:"undefined"!=typeof window?window.navigator.userAgent:"",language:"undefined"!=typeof window?window.navigator.language:"",required_services:Ke(he(),"required_services")},s=pr(e,ve(we(e)),null);return Rn(e,_,_r,s),$n(e,_,"__identity__"),Zn(t.gobj_timer,Be(e,"timeout_idack")),br(e,"EV_IDENTITY_CARD",_)}function yr(e,t){if(Xt(t.event))return-1;let n={},r=t.__global__,o=t.__config__,i=t.__filter__,l=t.__service__,_=t.subscriber;o&&(n.__config__=o),r&&(n.__global__=r),i&&(n.__filter__=i);let s=pr(e,ve(_),l);return Rn(e,n,_r,s),$n(e,n,"__subscribing__"),br(e,t.event,n)}function hr(e,t,n,r){let o=e.priv;return be(e)&&(o.websocket=cr(e)),0}function Tr(e,t,n,r){return Nt("Websocket opened: "+e.priv.url),mr(e),0}function Er(e,t,n,r){let o=e.priv,i=n.e,l=n.url;return jt(),Ot(`${Oe(e)}: WebSocket closed ${l} (Code: ${i.code}, Reason: "${i.reason}", Clean: ${i.wasClean})`),o.websocket&&(o.websocket.onopen=null,o.websocket.onmessage=null,o.websocket.onerror=null,o.websocket.onclose=null,o.websocket=null),o.inform_on_close&&(o.inform_on_close=!1,bt(e,"EV_ON_CLOSE",{url:l,remote_yuno_name:o.remote_yuno_name,remote_yuno_role:o.remote_yuno_role,remote_yuno_service:o.remote_yuno_service})),be(e)&&Zn(o.gobj_timer,Be(e,"timeout_retry")),0}function jr(e,t,n,r){return mr(e),0}function vr(e,t,n,r){let o=e.priv;tr(o.gobj_timer);let i=kn(e,n,_r,!0),l=un(e,i,"src_yuno",""),_=un(e,i,"src_role",""),s=un(e,i,"src_service","");Xe(e,"remote_yuno_name",l),Xe(e,"remote_yuno_role",_),Xe(e,"remote_yuno_service",s);let a=an(e,n,"result",-1,0),u=un(e,n,"comment","",0),c=un(e,n,"username","",0),f=gn(e,n,"services_roles",{});if(a<0){fr(e);let t={url:Je(e,"url"),result:a,comment:u,username:c,remote_yuno_name:l,remote_yuno_role:_,remote_yuno_service:s};Re(e)?ot(we(e),"EV_ON_ID_NAK",t,e):bt(e,"EV_ON_ID_NAK",t)}else{if(Ze(e,"ST_SESSION"),o.inside_on_open=!0,!o.inform_on_close){o.inform_on_close=!0;let t={username:c,remote_yuno_name:l,remote_yuno_role:_,remote_yuno_service:s,services_roles:f};Re(e)?ot(we(e),"EV_ON_OPEN",t,e):bt(e,"EV_ON_OPEN",t)}o.inside_on_open=!1,function(e){let t=gt(e,null,null,null);for(let n=0;n<t.length;n++)yr(e,t[n])}(e)}return 0}function Sr(e,t,n,r){let o=e.priv.url,i=function(e,t){let n;try{n=JSON.parse(t)}catch(e){return St("parsing inter_event json: "+e),null}if(!(n instanceof Object))return St("parsing inter_event: websocket data not a json object"),null;let r=n.event;if(!r)return St("parsing inter_event: no event"),null;if("string"!=typeof r)return St("parsing inter_event: event not a string"),null;let o=n.kw;return o?o instanceof Object?{event:r,kw:o||{}}:(St("parsing inter_event: kw not a json object"),null):(St("parsing inter_kw: no kw"),null)}(0,n.data);if(xe(he(),"trace_inter_event")){let e=ve(he())+" <== "+o,t=n.data.length,r=Ke(he(),"trace_ievent_callback");r?r(e,i,2,t):gr(0,e,i)}let l=i.event,_=i.kw;if("ST_SESSION"!==et(e)){if(nt(e,l,D.EVF_PUBLIC_EVENT)){if(0===ot(e,l,_,e))return 0}else St(`${Oe(e)}: event UNKNOWN in not-session state ${l}`);return fr(e),-1}i=null;let s=In(e,_),a=kn(e,_,_r),u=un(e,a,"dst_role","");if(u!==Ee())return St(`"It's not my role, dst_role: ${u}, my_role: ${Ee()}`),0;let c=un(e,a,"dst_service","");if("__subscribing__"===s)return-1;if("__unsubscribing__"===s)return-1;if(nt(e,l,D.EVF_PUBLIC_EVENT))return ot(e,l,_,e),0;let f=X(c,!0);if(f){if(!nt(f,l,D.EVF_PUBLIC_EVENT))return St(`${Oe(e)}: Service found but no event or not public, service '${Oe(f)}', ev '${l}'`),-1;ot(f,l,_,e)}else Re(e)?ot(we(e),l,_,e):bt(e,l,_);return 0}function Or(e,t,n,r){return 0}function Nr(e,t,n,r){return 0}const wr={mt_create:function(e){let t=e.priv;t.gobj_timer=ie(ve(e),"C_TIMER",{},e),t.url=Je(e,"url"),t.remote_yuno_name=Je(e,"remote_yuno_name"),t.remote_yuno_role=Je(e,"remote_yuno_role"),t.remote_yuno_service=Je(e,"remote_yuno_service"),Xe(e,"wanted_yuno_name",t.remote_yuno_name),Xe(e,"wanted_yuno_role",t.remote_yuno_role),Xe(e,"wanted_yuno_service",t.remote_yuno_service);const n=Qe(e,"subscriber");n&&ct(e,null,{},n)},mt_writing:function(e,t){let n=e.priv;switch(t){case"url":n.url=Je(e,"url");break;case"remote_yuno_name":n.remote_yuno_name=Je(e,"remote_yuno_name");break;case"remote_yuno_role":n.remote_yuno_role=Je(e,"remote_yuno_role");break;case"remote_yuno_service":n.remote_yuno_service=Je(e,"remote_yuno_service")}},mt_start:function(e){let t=e.priv;return _e(t.gobj_timer),t.websocket=cr(e),0},mt_stop:function(e){let t=e.priv;return tr(t.gobj_timer),ue(t.gobj_timer),t.websocket&&fr(e),0},mt_destroy:function(e){},mt_stats:function(e,t,n,r){if("ST_SESSION"!==et(e))return St("Not in session"),null;n||(n={});let o=pr(e,ve(r),un(e,n,"service",null,0)),i=gn(e,n,"__md_stats__",null,pt.KW_EXTRACT);return i||(i={}),Rn(e,n,"stats_stack",{stats:t,kw:i}),Rn(e,n,_r,o),n.__stats__=t,$n(e,n,"__stats__"),br(e,"EV_MT_STATS",n),null},mt_command_parser:function(e,t,n,r){if("ST_SESSION"!==et(e))return St("Not in session"),null;n||(n={});let o=pr(e,ve(r),un(e,n,"service","",0)),i=gn(e,n,"__md_command__",null,pt.KW_EXTRACT);return i||(i={}),Rn(e,n,"command_stack",{command:t,kw:i}),Rn(e,n,_r,o),n.__command__=t,$n(e,n,"__command__"),br(e,"EV_MT_COMMAND",n),null},mt_inject_event:function(e,t,n,r){if("ST_SESSION"!==et(e))return window.console.error("Not in session"),-1;if(n||(n={}),kn(e,n,_r));else{let o=pr(e,ve(r),un(e,n,"__service__",0,0));Pt(n,"__service__"),Rn(e,n,"__message__",t),Rn(e,n,_r,o)}return $n(e,n,"__message__"),br(e,t,n)},mt_subscription_added:function(e,t){let n=e.priv;return"ST_SESSION"!==et(e)||n.inside_on_open?0:yr(e,t)},mt_subscription_deleted:function(e,t){let n=e.priv;if("ST_SESSION"!==et(e))return 0;if(n.inside_on_open)return 0;if(Xt(t.event))return 0;let r={},o=t.__global__,i=t.__config__,l=t.__filter__,_=t.__service__,s=t.subscriber;i&&(r.__config__=i),o&&(r.__global__=o),l&&(r.__filter__=l);let a=pr(e,ve(s),_);return Rn(e,r,_r,a),$n(e,r,"__unsubscribing__"),br(e,t.event,r)}};return e.GObj=S,e.SDATA=j,e.SDATAAUTHZ=(e,t,n,r,o,i)=>new T(e,t,n,null,i,r,null,0,null,o,null),e.SDATACM=(e,t,n,r,o,i)=>new T(e,t,0,null,i,n,null,0,o,r,null),e.SDATACM2=(e,t,n,r,o,i,l)=>new T(e,t,n,null,l,r,null,0,i,o,null),e.SDATADF=(e,t,n,r,o,i)=>new T(e,t,n,null,i,null,r,o),e.SDATAPM=(e,t,n,r,o)=>new T(e,t,n,r,o),e.SDATAPM0=(e,t,n,r,o)=>new T(e,t,n,null,o,null,null,0,null,null,r),e.SDATA_END=E,e.SDataDesc=T,e.YUNETA_VERSION=l,e.build_command_response=o,e.build_path=function(...e){let t="",n=0;for(let r of e)null!=r&&""!==r&&(r=String(r),r=0===n?r.replace(/\/+$/,""):r.replace(/^\/+/,"").replace(/\/+$/,""),""!==r&&(n>0&&(t+="/"),t+=r,n++));return t},e.build_stats_response=i,e.clean_name=function(e){return e.replace(/[?# ^:]/g,"_")},e.clear_timeout=tr,e.cmp_two_simple_json=nn,e.command_parser=function(e,t,n,r){},e.createElement2=function e(t,n){let[r,o,i,l]=t;if(!r)return void St("Tag must be a valid HTML element.");let _=document.createElement(r),s="";if(o&&"object"==typeof o)for(let e of Object.keys(o))if("style"===e&&"object"==typeof o[e]){let t="";for(const n of Object.keys(o[e]))t+=`${n}: ${o[e][n]};`;_.style.cssText=t}else"style"===e?_.style.cssText=o[e]:"i18n"===e||"data-i18n"===e||"data_i18next"===e||"data-i18next"===e?(s=o[e],_.setAttribute("data-i18n",s)):_.setAttribute(e,o[e]);if(Bt(i))if(i=i.trim(),i.length>0&&"<"===i[0])_.appendChild(Cn(i));else if(n&&s){let e=n(s);_.textContent=e||i}else _.textContent=i;else if(xt(i)){if(i.length>0)if(Bt(i[0]))_.appendChild(e(i,n));else for(let t of i)Array.isArray(t)&&t.length>0?_.appendChild(e(t,n)):t instanceof HTMLElement&&_.appendChild(t)}else i instanceof HTMLElement||i instanceof Text||i instanceof SVGElement?_.appendChild(i):null!=i&&(St("content ignored"),Dt(i));if(l&&"object"==typeof l)for(const e of Object.keys(l))_.addEventListener(e,l[e]);return _},e.createOneHtml=Cn,e.create_json_record=function(e,t){let n=Rt(e);return It(n,t),n},e.create_template_record=function(e,t){let n={};return t||(t={}),Object.entries(e).forEach(([e,r])=>{let o=gn(null,t,e,gn(r,"default"));n[e]=o}),n},e.current_timestamp=Gn,e.data_type_t=y,e.db_list_persistent_attrs=function(e,t){let n=Tn(Mn(e),null,!1),r={};return n&&Yt(n)&&(r=yn(e,n,t,!1)),r},e.db_load_persistent_attrs=function(e,t){let n=Ye(e,h.SDF_PERSIST),r=Tn(Mn(e),null,!1);if(r&&Yt(r)){let o=yn(e,r,t,!1);o=yn(e,o,n,!1),ze(e,o,h.SDF_PERSIST)}},e.db_remove_persistent_attrs=function(e,t){let n=hn(e,Tn(Mn(e),null,!1),t,!1);0===Wt(n)?jn(Mn(e)):En(Mn(e),n)},e.db_save_persistent_attrs=function(e,t){let n=yn(e,Ye(e,h.SDF_PERSIST),t,!1),r=Tn(Mn(e),null,!1);r&&Yt(r)&&At(n,r),En(Mn(e),n)},e.debounce=function(e,t=0,n=!1){let r=null,o=null,i=null;const l=(...l)=>{i=this,o=l;const _=n&&!r;clearTimeout(r),r=setTimeout(()=>{r=null,n||e.apply(i,o)},t),_&&e.apply(i,o)};return l.flush=()=>{r&&(clearTimeout(r),r=null,e.apply(i,o))},l.cancel=()=>{clearTimeout(r),r=null,o=null,i=null},l},e.delete_from_list=function(e,t){for(let n=0;n<e.length;n++)if(t===e[n])return e.splice(n,1),!0;return!1},e.duplicate_objects=function(...e){const t={};for(const n of e){const e=structuredClone(n);Object.assign(t,e)}return t},e.empty_string=Xt,e.escapeHtml=Un,e.event_flag_t=D,e.gclass_add_ev_action=x,e.gclass_add_event_type=J,e.gclass_add_state=Y,e.gclass_check_fsm=z,e.gclass_create=V,e.gclass_event_type=Q,e.gclass_find_by_name=H,e.gclass_flag_t=O,e.gclass_unregister=W,e.getPositionRelativeToBody=function(e){if(!e)return{top:0,left:0,right:0,bottom:0};const{top:t,left:n,width:r,height:o}=e.getBoundingClientRect?.()||{top:0,left:0,width:0,height:0},i="undefined"!=typeof window,l=i&&(window.scrollY||document.documentElement?.scrollTop||document.body?.scrollTop)||0,_=i&&(window.scrollX||document.documentElement?.scrollLeft||document.body?.scrollLeft)||0;return{top:t+l,left:n+_,right:n+_+r,bottom:t+l+o}},e.get_function_name=Wn,e.get_now=function(){return Math.floor(Date.now()/1e3)},e.gobj_bottom_gobj=$e,e.gobj_change_parent=function(t,r){if(ke(t))return St("gobj NULL or DESTROYED"),null;if(!(r instanceof S))return St(`${Oe(t)}: gobj_change_parent() BAD TYPE of parent`),-1;if(t.parent&&t.parent.mt_child_removed&&t.parent.mt_child_removed(t.parent,t),t.parent&&(te(t.parent,t),t.parent=null),ee(r,t),r.mt_child_added){e.__yuno__&&xe(e.__yuno__,"trace_creation")&&Nt(n("π¦π¦π΅ child_added(%s): %s",Ne(r),Oe(t))),r.mt_child_added(r,t)}return 0},e.gobj_change_state=Ze,e.gobj_command=function(t,r,i,l){if(ke(t))return St("gobj NULL or DESTROYED"),-1;let _=e.__yuno__&&Be(e.__yuno__,"tracing");return _&&(A(n("ππ mach(%s%s), cmd: %s, src: %s",be(t)?"":"!!",Oe(t),r,Oe(l))),_>1&&Dt(i)),t.gclass.gmt.mt_command_parser?t.gclass.gmt.mt_command_parser(t,r,i,l):t.gclass.command_table?c?c(t,r,i,l):o(0,-1,n("%s: global command parser not available",Oe(t)),0,0):o(0,-1,n("%s: command table not available",Oe(t)),0,0)},e.gobj_create=function(e,t,n,r){return oe(e,t,n,r,0)},e.gobj_create2=oe,e.gobj_create_default_service=function(e,t,n,r){return oe(e,t,n,r,N.gobj_flag_default_service|N.gobj_flag_autostart)},e.gobj_create_pure_child=ie,e.gobj_create_service=function(e,t,n,r){return oe(e,t,n,r,N.gobj_flag_service)},e.gobj_create_volatil=function(e,t,n,r){return oe(e,t,n,r,N.gobj_flag_volatil)},e.gobj_create_yuno=function(e,t,n){return oe(e,t,n,null,N.gobj_flag_yuno)},e.gobj_current_state=et,e.gobj_default_service=q,e.gobj_destroy=le,e.gobj_find_child=Ve,e.gobj_find_gobj=function(t,n){if(Xt(n))return null;const r=n.toLowerCase();return"__default_service__"===r?p:"__yuno__"===r||"__root__"===r?e.__yuno__:We(e.__yuno__,n)},e.gobj_find_service=X,e.gobj_find_subscribings=dt,e.gobj_find_subscriptions=gt,e.gobj_flag_t=N,e.gobj_full_name=Ne,e.gobj_gclass_name=Se,e.gobj_has_attr=Me,e.gobj_has_event=nt,e.gobj_has_output_event=rt,e.gobj_hsdata=C,e.gobj_is_destroying=ke,e.gobj_is_playing=ye,e.gobj_is_pure_child=Re,e.gobj_is_running=be,e.gobj_is_service=me,e.gobj_is_volatil=De,e.gobj_list_persistent_attrs=function(e,t){return u?u(e,t):null},e.gobj_list_subscriptions=function(e){let t=gt(e,null,null,null);for(let n=0;n<t.length;n++){let r=t[n],o=cn(e,r,"publisher",null,pt.KW_REQUIRED),i=cn(e,r,"subscriber",null,pt.KW_REQUIRED);Ct(r,"s_event",un(e,r,"event","",pt.KW_REQUIRED)),Ct(r,"s_publisher",Oe(o)),Ct(r,"s_subscriber",Oe(i))}let n=dt(e,0,null,0);for(let t=0;t<n.length;t++){let r=n[t],o=cn(e,r,"publisher",null,pt.KW_REQUIRED),i=cn(e,r,"subscriber",null,pt.KW_REQUIRED);Ct(r,"s_event",un(e,r,"event","",pt.KW_REQUIRED)),Ct(r,"s_publisher",Oe(o)),Ct(r,"s_subscriber",Oe(i))}return{subscriptions:t,subscribings:n,"total subscriptions":Mt(t),total_subscribings:Mt(n)}},e.gobj_load_persistent_attrs=function(e,t){return me(e)?_?_(e,t):-1:(St(`${Oe(e)}: Only gobj services can load/save writable-persistent`),-1)},e.gobj_match_children=function(e,t){if(ke(e))return St("gobj NULL or DESTROYED"),null;t=t||{};let n=[];const r=e.dl_children;for(let e=0;e<r.length;e++){const o=r[e];Fe(o,t)&&n.push(o)}return n},e.gobj_match_children_tree=function(e,t){t=t||{};let n=[];return function e(n,r){let o=r.dl_children;for(let r=0;r<o.length;r++){let i=o[r];Fe(i,t)&&n.push(i),e(n,i)}}(n,e),n},e.gobj_match_gobj=Fe,e.gobj_name=ve,e.gobj_parent=we,e.gobj_pause=de,e.gobj_play=ge,e.gobj_post_event=function(e,t,n,r){setTimeout(()=>{ke(e)||ot(e,t,n,r)},10)},e.gobj_publish_event=bt,e.gobj_read_attr=Ke,e.gobj_read_attrs=Ye,e.gobj_read_bool_attr=xe,e.gobj_read_integer_attr=Be,e.gobj_read_pointer_attr=Qe,e.gobj_read_str_attr=Je,e.gobj_remove_persistent_attrs=function(e,t){return me(e)?a?a(e,t):-1:(St(`${Oe(e)}: Only gobj services can load/save writable-persistent`),-1)},e.gobj_reset_volatil_attrs=function(e){return function(e,t){if(ke(e))return St("gobj NULL or DESTROYED"),-1;let n=e.gclass.attrs_table;for(let r=0;r<n.length;r++){const o=n[r];if(o.name&&(-1===t||o.flag&t)){const t=P(e,e.jn_attrs,o);Yt(e.priv)&&e.priv.hasOwnProperty(o.name)&&(e.priv[o.name]=t),e.gclass.gmt.mt_writing&&e.gclass.gmt.mt_writing(e,o.name)}}return 0}(e,h.SDF_VOLATIL)},e.gobj_save_persistent_attrs=function(e,t){return me(e)?s?s(e,t):-1:(St(`${Oe(e)}: Only gobj services can load/save writable-persistent`),-1)},e.gobj_search_path=We,e.gobj_send_event=ot,e.gobj_services=function(){let e=[];for(const t of Object.keys(b))Ft(e,t);return e},e.gobj_set_bottom_gobj=Ie,e.gobj_short_name=Oe,e.gobj_start=_e,e.gobj_start_children=function(e){return ke(e)?(St("gobj NULL or DESTROYED"),-1):Le(e,R.WALK_FIRST2LAST,se,0,0)},e.gobj_start_tree=function(t){return ke(t)?(St("gobj NULL or DESTROYED"),-1):(e.__yuno__&&xe(e.__yuno__,"trace_start_stop")&&A(n("βΊ βΊ βΊ βΊ start_tree: %s",Ne(t))),t.gclass.gclass_flag&O.gcflag_manual_start||t.disabled?0:(t.running||_e(t),Pe(t,R.WALK_TOP2BOTTOM,ae,0,0)))},e.gobj_start_up=function(e,t,n,r,o,i,l){_=t,s=n,a=r,u=o,c=i,f=l;const d=[["EV_STATE_CHANGED",D.EVF_SYSTEM_EVENT|D.EVF_OUTPUT_EVENT|D.EVF_NO_WARN_SUBS],[0,0]];for(let e=0;e<d.length;e++){let t=d[e][0],n=d[e][1];B(g,t,n)}return 0},e.gobj_stats=function(e,t,r,o){return ke(e)?(St("gobj NULL or DESTROYED"),-1):e.gclass.gmt.mt_stats?e.gclass.gmt.mt_stats(e,t,r,o):f?f(e,t,r,o):i(0,-1,n("%s, stats parser not available",Oe(e)),0,0)},e.gobj_stop=ue,e.gobj_stop_children=fe,e.gobj_stop_tree=function(t){return ke(t)?(St("gobj NULL or DESTROYED"),-1):(e.__yuno__&&xe(e.__yuno__,"trace_start_stop")&&A(n("βΉ βΉ βΉ βΉ stop_tree: %s",Ne(t))),be(t)&&ue(t),Pe(t,R.WALK_TOP2BOTTOM,ce,0,0))},e.gobj_subscribe_event=ct,e.gobj_unsubscribe_event=function(e,t,n,r){if(null==n&&(n={}),!e)return St(`publisher NULL: ev ${t}`),0;if(!r)return St(`subscriber NULL: ev ${t}`),0;const o=new Set(["__config__","__global__","__local__","__filter__","__service__"]);if(Object.keys(n).forEach(n=>{o.has(n)||St(`${Oe(e)}: key ignored in subscription (key: ${n}, event: ${t})`)}),Xt(t))t="";else if(!(rt(e,t,D.EVF_OUTPUT_EVENT)||e.gclass.gclass_flag&O.gcflag_no_check_output_events))return St(`event NOT in output event list: ${Oe(e)}, ev ${t}`),0;let i=st(e.dl_subscriptions,e,t,n,r),l=0;for(let t=0;t<i.length;t++){let n=i[t];ut(e,n,!1,!1),l++}return l||(Ot(`${Oe(e)}: No subscription found`),Dt(n,"No subscription found")),0},e.gobj_unsubscribe_list=ft,e.gobj_walk_gobj_children=Le,e.gobj_walk_gobj_children_tree=Pe,e.gobj_write_attr=function(e,t,r,o){if(!Bt(t))return St(n("gobj_write_attr(%s): path must be a string",Oe(e))),-1;let i,l=e.jn_attrs,_=t.split("`");if(_.length<=1){let o=t;return o in l&&l.hasOwnProperty(o)?(l[o]=r,Yt(e.priv)&&e.priv.hasOwnProperty(o)&&(e.priv[o]=r),e.obflag&w.obflag_created&&!(e.obflag&w.obflag_destroyed)&&e.gclass.gmt.mt_writing&&e.gclass.gmt.mt_writing(e,o),0):(St(n("gobj_write_attr(%s): attr not found '%s'",Oe(e),o)),-1)}let s=_.length;for(let t=0;t<s;t++){i=_[t];let n=Ve(e,{__gobj_name__:i});if(n&&t<s-1){e=n;continue}let o=e.jn_attrs;if(i in o&&o.hasOwnProperty(i))return o[i]=r,Yt(e.priv)&&e.priv.hasOwnProperty(i)&&(e.priv[i]=r),e.obflag&w.obflag_created&&!(e.obflag&w.obflag_destroyed)&&e.mt_writing&&e.mt_writing(e,i),0;break}return St(n("gobj_write_attr(%s): attr not found '%s'",Oe(e),i)),-1},e.gobj_write_attrs=ze,e.gobj_write_bool_attr=He,e.gobj_write_integer_attr=qe,e.gobj_write_str_attr=Xe,e.gobj_yuno=he,e.gobj_yuno_id=je,e.gobj_yuno_name=Te,e.gobj_yuno_role=Ee,e.id_index_in_obj_list=On,e.index_in_list=Fn,e.is_array=xt,e.is_boolean=Qt,e.is_date=function(e){return e instanceof Date&&!isNaN(e)},e.is_function=Ht,e.is_gobj=qt,e.is_metadata_key=function(e){if(!Bt(e))return!1;let t;for(t=0;t<e.length&&"_"===e[t]&&!(t>2);t++);return 2===t},e.is_null=zt,e.is_number=Jt,e.is_object=Yt,e.is_private_key=function(e){if(!Bt(e))return!1;let t;for(t=0;t<e.length&&"_"===e[t]&&!(t>2);t++);return 1===t},e.is_pure_number=function(e){if(Jt(e))return!0;if(!Bt(e))return!1;const t=Number(e);return!isNaN(t)&&(""!==e.trim()&&!isNaN(t))},e.is_string=Bt,e.jdb_delete=function(e,t,n,r){let o=gn(null,e,"topics",null,0),i=gn(null,o,t,null,0);if(!i)return St("jdb_delete: topic not found: "+t),null;if(Xt(r.id))return St("jdb_delete: record without id: "+r),wt(r),null;let l,_=n.split("`"),s=i;for(;(l=_.shift())&&!Xt(l)&&s;)Yt(s)&&(s=gn(null,s,e.hook,null,0)),s=Ln(s,null,l,!1);if(0===_.length&&s)if(xt(s)){let e=On(s,r.id);e>=0&&s.splice(e,1)}else{let t=gn(null,s,e.hook,null,0),n=On(t,r.id);n>=0&&t.splice(n,1)}return i},e.jdb_get=function(e,t,n,r){let o=gn(null,e,"topics",null,0),i=gn(null,o,t,null,0);return i?(void 0===r&&(r=!0),Ln(i,e.hook,n,r)):(St("jdb_get: topic not found: "+t),null)},e.jdb_get_by_idx=function(e,t,n){let r=gn(null,e,"topics",null,0),o=gn(null,r,t,null,0);return o?n<o.length?o[n]:{}:(St("jdb_get_by_idx: topic not found: "+t),null)},e.jdb_get_topic=function(e,t){let n=gn(null,e,"topics",null,0);if(!n)return St("jdb topics section not found"),wt(e),null;let r=gn(null,n,t,null,0);return r||(St("jdb topic not found: "+t),wt(n),null)},e.jdb_init=function(e,t,n){n&&(e=Rt(e));let r=gn(null,e,"type",[],1);un(null,e,"hook","data",1);let o=gn(null,e,"schema",{},1),i=gn(null,e,"topics",{},1);return An(o,function(e,t,n,o){"__"!==t.substring(0,2)&&gn(null,i,o,Rt(r),1)},t),e},e.jdb_update=function(e,t,n,r){let o=gn(null,e,"topics",null,0),i=gn(null,o,t,null,0);if(!i)return St("jdb_update: topic not found: "+t),null;if(Xt(r.id))return St("jdb_update: record without id: "+r),wt(r),null;let l,_=n.split("`"),s=i;for(;(l=_.shift())&&!Xt(l)&&s;)Yt(s)&&(s=gn(null,s,e.hook,[],1)),s=Ln(s,null,l,!1);if(0===_.length&&s)if(xt(s))s.push(r);else if(s.id===r.id)Object.assign(s,r);else{let t=gn(null,s,e.hook,[],1),n=Ln(t,e.hook,r.id,!1);n?Object.assign(n,r):t.push(r)}return i},e.json_array_append=Gt,e.json_array_append_new=Ft,e.json_array_extend=function(e,t){return t?(Array.prototype.push.apply(e,t),e):e},e.json_array_remove=Vt,e.json_array_size=Mt,e.json_deep_copy=Rt,e.json_is_identical=kt,e.json_object_del=Pt,e.json_object_get=Lt,e.json_object_set=Ut,e.json_object_set_new=Ct,e.json_object_size=Wt,e.json_object_update=$t,e.json_object_update_existing=It,e.json_object_update_missing=At,e.json_size=Kt,e.jwt2json=function(e,t){try{let n=Pn(e);switch(t){case"header":return JSON.parse(n.header);case"signature":return JSON.parse(n.signature);default:return JSON.parse(n.payload)}}catch(e){return null}},e.jwtDecode=Pn,e.kw_clone_by_keys=yn,e.kw_clone_by_not_keys=hn,e.kw_collect=function(e,t,n,r){if(e&&!qt(e)&&St("GObj bad instanceof"),!t)return null;r||(r=mn);let o=[];if(xt(t))for(let e=0;e<t.length;e++){let i=t[e];r(i,n)&&o.push(i)}else{if(!Yt(t))return St("kw_select() BAD kw parameter"),null;r(t,n)&&o.push(t)}return o},e.kw_delete=_n,e.kw_find_json_in_list=function(e,t,n,r){if(!n||!xt(t))return r&&St("item NULL or kw_list is not a list"),-1;for(let e=0;e<t.length;e++){if(kt(n,t[e]))return e}return r&&St("item not found in this list"),-1},e.kw_find_path=ln,e.kw_flag_t=pt,e.kw_get_bool=sn,e.kw_get_dict=fn,e.kw_get_dict_value=gn,e.kw_get_int=an,e.kw_get_list=function(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=ln(e,t,n,!1);const l=o&&o&pt.KW_REQUIRED,_=o&&o&pt.KW_CREATE,s=o&&o&pt.KW_EXTRACT;if(void 0===i){if(_){let o=Array(r);return dn(e,t,n,o),o}return l&&(St(`path not found: '${n}'`),Dt(t)),Array(r)}return s&&_n(e,t,n),xt(i)?Array(i):(l&&(St(`path value MUST BE an array: ${n}`),wt(t)),Array(r))},e.kw_get_local_storage_value=Tn,e.kw_get_pointer=cn,e.kw_get_real=function(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=ln(e,t,n,!1);const l=o&&o&pt.KW_REQUIRED,_=o&&o&pt.KW_CREATE,s=o&&o&pt.KW_EXTRACT;if(void 0===i){if(_){let o=Number(r);return dn(e,t,n,o),o}return l&&(St(`path not found: '${n}'`),Dt(t)),Number(r)}return s&&_n(e,t,n),Jt(i)?Number(i):(l&&(St(`path value MUST BE a number: ${n}`),wt(t)),Number(r))},e.kw_get_str=un,e.kw_has_key=on,e.kw_match_simple=mn,e.kw_pop=rn,e.kw_remove_local_storage_value=jn,e.kw_select=function(e,t,n,r){if(e&&!qt(e)&&St("GObj bad instanceof"),!t)return null;r||(r=mn);let o=[];if(xt(t))for(let e=0;e<t.length;e++){let i=t[e];r(i,n)&&o.push(Rt(i))}else{if(!Yt(t))return St("kw_select() BAD kw parameter"),null;r(t,n)&&o.push(Rt(t))}return o},e.kw_set_dict_value=dn,e.kw_set_local_storage_value=En,e.kw_set_subdict_value=bn,e.kwid_collect=Sn,e.kwid_find_one_record=function(e,t,n,r,o){e&&!qt(e)&&St("GObj bad instanceof");let i=Sn(e,t,n,r,o);return i.length>0?i[0]:null},e.kwid_get_ids=function(e,t){if(e&&!qt(e)&&St("GObj bad instanceof"),!t)return[];let n=[];if(Bt(t))n.push(t);else if(Yt(t))for(let e in t)t.hasOwnProperty(e)&&n.push(e);else xt(t)&&t.forEach(function(t){if(Bt(t))Xt(t)||n.push(t);else if(Yt(t)){let r=un(e,t,"id",0,0);r&&n.push(r)}});return n},e.kwid_match_id=vn,e.kwid_new_dict=function(e,t,n){e&&!qt(e)&&St("GObj bad instanceof");let r={};if(Xt(n)||(t=ln(e,t,n)),Yt(t))r=t;else if(xt(t))for(let e=0;e<t.length;e++){let n=t[e],o=un(n,"id",null,!1);Xt(o)||(r[o]=n)}else St(`${Oe(e)} kwid_new_dict: data type unknown`);return r},e.list2options=function(e,t,n){t=t||"id",n=n||"value";let r=[];if(xt(e))for(let o=0;o<e.length;o++){let i=e[o];if(Bt(i))r.push({id:e[o],value:e[o]});else if(Yt(i)){let e={};if(on(i,t)){if(!on(i,n)){if(!(Kt(i)>0)){St("list2options(): object without field value: "+n);continue}n=Object.keys(i)[0]}e.id=i[t],e.value=i[n]}else{if(!(Kt(i)>0)){St("list2options(): object without field id: "+t);continue}t=Object.keys(i)[0],e.id=t,e.value=i[t]}r.push(e)}else St("list2options(): case1 not implemented")}else if(Yt(e))for(let t of Object.keys(e))r.push({id:t,value:t});else St("list2options(): case2 not implemented");return r},e.load_json_file=function(e,t,n){let r=new XMLHttpRequest;r.open("GET",e,!0),r.setRequestHeader("Accept","application/json"),r.onreadystatechange=function(){if(4===r.readyState)if(200===r.status||0===(e=r).status&&e.responseText&&e.responseURL.startsWith("file:"))try{let e=JSON.parse(r.responseText);t(e)}catch(e){n&&(St(`JSON parse status ${r.status}, error: ${e.message}`),n(r.status))}else n&&n(r.status);var e},r.send()},e.log_debug=Nt,e.log_error=St,e.log_info=function(e){let t=vt(e),n=Gn();Tt&&Tt("%c"+n+" INFO: "+String(t),"color:cyan")},e.log_warning=Ot,e.msg_iev_get_msg_type=In,e.msg_iev_get_stack=kn,e.msg_iev_push_stack=Rn,e.msg_iev_read_key=wn,e.msg_iev_set_msg_type=$n,e.msg_iev_write_key=Dn,e.node_uuid=Vn,e.parseBoolean=Zt,e.parseSVG=function(e){return(new DOMParser).parseFromString(e,"image/svg+xml").firstChild},e.refresh_language=function(e,t){Ht(t)?(e||(e=document),e.querySelectorAll("[data-i18n]").forEach(function(e){let n=e.getAttribute("data-i18n");for(let r of e.childNodes)if(r.nodeType===Node.TEXT_NODE){n||(n=r.nodeValue),r.nodeValue=t(n);break}})):St("You must supply a translation function")},e.register_c_ievent_cli=function(){return function(e){if(ur)return St(`GClass ALREADY created: ${e}`),-1;const t=[["ST_DISCONNECTED",[["EV_ON_OPEN",Tr,"ST_WAIT_IDENTITY_CARD_ACK"],["EV_ON_CLOSE",Er,null],["EV_TIMEOUT",hr,null],[null,null,null]]],["ST_WAIT_IDENTITY_CARD_ACK",[["EV_ON_MESSAGE",Sr,null],["EV_IDENTITY_CARD_ACK",vr,null],["EV_ON_CLOSE",Er,"ST_DISCONNECTED"],["EV_TIMEOUT",jr,null],[null,null,null]]],["ST_SESSION",[["EV_ON_MESSAGE",Sr,null],["EV_MT_STATS",Or,null],["EV_MT_COMMAND",Nr,null],["EV_ON_CLOSE",Er,"ST_DISCONNECTED"],[null,null,null]]],[null,null]],n=[["EV_ON_MESSAGE",D.EVF_OUTPUT_EVENT],["EV_IDENTITY_CARD_ACK",D.EVF_PUBLIC_EVENT],["EV_ON_ID_NAK",D.EVF_PUBLIC_EVENT|D.EVF_OUTPUT_EVENT],["EV_MT_STATS",D.EVF_PUBLIC_EVENT],["EV_MT_COMMAND",D.EVF_PUBLIC_EVENT],["EV_ON_OPEN",D.EVF_OUTPUT_EVENT|D.EVF_NO_WARN_SUBS],["EV_ON_CLOSE",D.EVF_OUTPUT_EVENT|D.EVF_NO_WARN_SUBS],["EV_TIMEOUT",0],[null,0]];return ur=V(e,n,t,wr,0,sr,ar,0,0,0,O.gcflag_no_check_output_events),ur?0:-1}("C_IEVENT_CLI")},e.register_c_timer=function(){return function(e){if(Hn)return St(`GClass ALREADY created: ${e}`),-1;const t=[["ST_IDLE",[["EV_TIMEOUT",qn,null]]]],n=[["EV_TIMEOUT",D.EVF_OUTPUT_EVENT],["EV_TIMEOUT_PERIODIC",D.EVF_OUTPUT_EVENT],[0,0]];return Hn=V(e,n,t,Xn,0,Qn,zn,0,0,0,O.gcflag_manual_start),Hn?0:-1}("C_TIMER")},e.register_c_yuno=function(){return function(e){if(or)return St(`GClass ALREADY created: ${e}`),-1;const t=[["ST_IDLE",[["EV_TIMEOUT_PERIODIC",ir,null]]]],n=[["EV_TIMEOUT_PERIODIC",D.EVF_OUTPUT_EVENT|D.EVF_NO_WARN_SUBS],[0,0]];return or=V(e,n,t,lr,0,nr,rr,0,0,0,0),or?0:-1}("C_YUNO")},e.safeSrc=function(e){if(!e)return"";const t=String(e).trim();return/^javascript:/i.test(t)||/^data:/i.test(t)?"":Un(t)},e.sdata_flag_t=h,e.send_http_json_post=function(e,t,n){let r=new XMLHttpRequest;r.open("POST",e),r.setRequestHeader("Accept","application/json"),r.setRequestHeader("Content-Type","application/json"),r.onreadystatechange=function(){4===r.readyState&&n(r.status,r.responseText)},r.send(t)},e.set_remote_log_functions=jt,e.set_timeout=Zn,e.set_timeout_periodic=er,e.sprintf=n,e.stats_parser=function(e,t,n,r){},e.str_in_list=Nn,e.strcasecmp=tn,e.strcmp=en,e.strncmp=function(e,t,n){var r=(e+"").substring(0,n),o=(t+"").substring(0,n);return r===o?0:r>o?1:-1},e.strs_in_list=function(e,t,n){if(!e)return St("ERROR: strs_in_list() list empty"),!1;if(!t)return St("ERROR: strs_in_list() str empty"),!1;for(let r=0;r<t.length;r++){if(Nn(e,t[r],n))return!0}return!1},e.strstr=function(e,t,n){var r;return-1!==(r=(e+="").indexOf(t))&&(n?e.substring(0,r):e.slice(r))},e.template_get_field_desc=function(e,t){let n={name:e,header:e,real_type:null,type:null,enum_list:null,is_required:!1,is_writable:!1,is_hidden:!1,default_value:void 0,placeholder:void 0};if(Bt(t)){let e=t.split(".");for(let t=0;t<e.length;t++){let r=e[t];if(Nn(Yn,r))n.real_type||(n.real_type=r);else if(Nn(Bn,r))n.type||(n.type=r);else if(Nn(xn,r))switch(r){case"writable":n.is_writable=!0;break;case"notnull":case"required":n.is_required=!0;break;case"hidden":n.is_hidden=!0}}n.real_type||(n.real_type="string")}else Yt(t)?(n=Jn(t),n.name||(n.name=e),n.header||(n.header=e)):xt(t)&&(n.real_type="array",n.enum_list=t);return n.type||(n.type=n.real_type),n},e.timeTracker=function(e="Time Tracker",t=!1){const n=e,r=performance.now();let o=r;return t&&Ot(`--\x3e ${n} - starting`),{mark:(e="Intermediate",i="")=>{const l=performance.now(),_=(l-o)/1e3,s=(l-r)/1e3;return t&&Ot(`--\x3e ${n} ${e} - partial: ${_} sec, total: ${s} sec, ${i}`),o=l,{partial:_,total:s}}}},e.trace_json=Dt,e.trace_msg=wt,e.treedb_decoder_fkey=Kn,e.treedb_decoder_hook=function(e,t){if(Bt(t)){if(-1===t.indexOf("^")){let n,r=e.hook;if(1!==Wt(r))return St("bad hook 1"),St(e),St(t),null;for(let e of Object.keys(r)){n=e,r[e];break}return{topic_name:n,id:t}}{let n=t.split("^");return 2!==n.length?(St("bad hook 2"),St(e),St(t),null):{topic_name:n[0],id:n[1]}}}return Yt(t)?{topic_name:t.topic_name,id:t.id}:(St("bad hook 3"),St(e),St(t),null)},e.treedb_encoder_fkey=function(e,t){let n=Kn(e,t);return n?n.topic_name+"^"+n.id+"^"+n.hook_name:null},e.treedb_get_field_desc=Jn,e.treedb_hook_data_size=function(e){if(xt(e)&&1===Kt(e)){let t=e[0];return on(t,"size")?t.size:1}return Kt(e)},e.vsprintf=function(e,t){return n.apply(null,[e].concat(t||[]))},Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),e}({});
|
|
2
2
|
//# sourceMappingURL=gobj-js.iife.min.js.map
|