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