@yuneta/gobj-js 7.1.0 β 7.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/gobj-js.cjs.js +5800 -9848
- package/dist/gobj-js.cjs.js.map +1 -1
- package/dist/gobj-js.cjs.min.js +2750 -2
- package/dist/gobj-js.cjs.min.js.map +1 -1
- package/dist/gobj-js.es.js +5794 -9845
- package/dist/gobj-js.es.js.map +1 -1
- package/dist/gobj-js.es.min.js +2824 -2
- package/dist/gobj-js.es.min.js.map +1 -1
- package/dist/gobj-js.iife.js +6334 -10384
- package/dist/gobj-js.iife.js.map +1 -1
- package/dist/gobj-js.iife.min.js +2752 -2
- package/dist/gobj-js.iife.min.js.map +1 -1
- package/dist/gobj-js.umd.js +6336 -10386
- package/dist/gobj-js.umd.js.map +1 -1
- package/dist/gobj-js.umd.min.js +2754 -2
- package/dist/gobj-js.umd.min.js.map +1 -1
- package/package.json +2 -2
package/dist/gobj-js.cjs.min.js
CHANGED
|
@@ -1,2 +1,2750 @@
|
|
|
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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}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||[]))};
|
|
2
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
var e = {
|
|
3
|
+
not_string: /[^s]/,
|
|
4
|
+
not_bool: /[^t]/,
|
|
5
|
+
not_type: /[^T]/,
|
|
6
|
+
not_primitive: /[^v]/,
|
|
7
|
+
number: /[diefg]/,
|
|
8
|
+
numeric_arg: /[bcdiefguxX]/,
|
|
9
|
+
json: /[j]/,
|
|
10
|
+
not_json: /[^j]/,
|
|
11
|
+
text: /^[^\x25]+/,
|
|
12
|
+
modulo: /^\x25{2}/,
|
|
13
|
+
placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,
|
|
14
|
+
key: /^([a-z_][a-z_\d]*)/i,
|
|
15
|
+
key_access: /^\.([a-z_][a-z_\d]*)/i,
|
|
16
|
+
index_access: /^\[(\d+)\]/,
|
|
17
|
+
sign: /^[+-]/
|
|
18
|
+
};
|
|
19
|
+
function t(r) {
|
|
20
|
+
return function(n, r) {
|
|
21
|
+
var o, s, i, l, _, a, u, c, f, g = 1, p = n.length, d = "";
|
|
22
|
+
for (s = 0; s < p; s++) if ("string" == typeof n[s]) d += n[s];
|
|
23
|
+
else if ("object" == typeof n[s]) {
|
|
24
|
+
if ((l = n[s]).keys) for (o = r[g], i = 0; i < l.keys.length; i++) {
|
|
25
|
+
if (null == o) throw new Error(t("[sprintf] Cannot access property \"%s\" of undefined value \"%s\"", l.keys[i], l.keys[i - 1]));
|
|
26
|
+
o = o[l.keys[i]];
|
|
27
|
+
}
|
|
28
|
+
else o = l.param_no ? r[l.param_no] : r[g++];
|
|
29
|
+
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));
|
|
30
|
+
switch (e.number.test(l.type) && (c = o >= 0), l.type) {
|
|
31
|
+
case "b":
|
|
32
|
+
o = parseInt(o, 10).toString(2);
|
|
33
|
+
break;
|
|
34
|
+
case "c":
|
|
35
|
+
o = String.fromCharCode(parseInt(o, 10));
|
|
36
|
+
break;
|
|
37
|
+
case "d":
|
|
38
|
+
case "i":
|
|
39
|
+
o = parseInt(o, 10);
|
|
40
|
+
break;
|
|
41
|
+
case "j":
|
|
42
|
+
o = JSON.stringify(o, null, l.width ? parseInt(l.width) : 0);
|
|
43
|
+
break;
|
|
44
|
+
case "e":
|
|
45
|
+
o = l.precision ? parseFloat(o).toExponential(l.precision) : parseFloat(o).toExponential();
|
|
46
|
+
break;
|
|
47
|
+
case "f":
|
|
48
|
+
o = l.precision ? parseFloat(o).toFixed(l.precision) : parseFloat(o);
|
|
49
|
+
break;
|
|
50
|
+
case "g":
|
|
51
|
+
o = l.precision ? String(Number(o.toPrecision(l.precision))) : parseFloat(o);
|
|
52
|
+
break;
|
|
53
|
+
case "o":
|
|
54
|
+
o = (parseInt(o, 10) >>> 0).toString(8);
|
|
55
|
+
break;
|
|
56
|
+
case "s":
|
|
57
|
+
o = String(o), o = l.precision ? o.substring(0, l.precision) : o;
|
|
58
|
+
break;
|
|
59
|
+
case "t":
|
|
60
|
+
o = String(!!o), o = l.precision ? o.substring(0, l.precision) : o;
|
|
61
|
+
break;
|
|
62
|
+
case "T":
|
|
63
|
+
o = Object.prototype.toString.call(o).slice(8, -1).toLowerCase(), o = l.precision ? o.substring(0, l.precision) : o;
|
|
64
|
+
break;
|
|
65
|
+
case "u":
|
|
66
|
+
o = parseInt(o, 10) >>> 0;
|
|
67
|
+
break;
|
|
68
|
+
case "v":
|
|
69
|
+
o = o.valueOf(), o = l.precision ? o.substring(0, l.precision) : o;
|
|
70
|
+
break;
|
|
71
|
+
case "x":
|
|
72
|
+
o = (parseInt(o, 10) >>> 0).toString(16);
|
|
73
|
+
break;
|
|
74
|
+
case "X": o = (parseInt(o, 10) >>> 0).toString(16).toUpperCase();
|
|
75
|
+
}
|
|
76
|
+
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);
|
|
77
|
+
}
|
|
78
|
+
return d;
|
|
79
|
+
}(function(t) {
|
|
80
|
+
if (n[t]) return n[t];
|
|
81
|
+
let r, o = t, s = [], i = 0;
|
|
82
|
+
for (; o;) {
|
|
83
|
+
if (null !== (r = e.text.exec(o))) s.push(r[0]);
|
|
84
|
+
else if (null !== (r = e.modulo.exec(o))) s.push("%");
|
|
85
|
+
else {
|
|
86
|
+
if (null === (r = e.placeholder.exec(o))) throw new SyntaxError("[sprintf] unexpected placeholder");
|
|
87
|
+
if (r[2]) {
|
|
88
|
+
i |= 1;
|
|
89
|
+
var l = [], _ = r[2], a = [];
|
|
90
|
+
if (null === (a = e.key.exec(_))) throw new SyntaxError("[sprintf] failed to parse named argument key");
|
|
91
|
+
for (l.push(a[1]); "" !== (_ = _.substring(a[0].length));) if (null !== (a = e.key_access.exec(_))) l.push(a[1]);
|
|
92
|
+
else {
|
|
93
|
+
if (null === (a = e.index_access.exec(_))) throw new SyntaxError("[sprintf] failed to parse named argument key");
|
|
94
|
+
l.push(a[1]);
|
|
95
|
+
}
|
|
96
|
+
r[2] = l;
|
|
97
|
+
} else i |= 2;
|
|
98
|
+
if (3 === i) throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");
|
|
99
|
+
s.push({
|
|
100
|
+
placeholder: r[0],
|
|
101
|
+
param_no: r[1],
|
|
102
|
+
keys: r[2],
|
|
103
|
+
sign: r[3],
|
|
104
|
+
pad_char: r[4],
|
|
105
|
+
align: r[5],
|
|
106
|
+
width: r[6],
|
|
107
|
+
precision: r[7],
|
|
108
|
+
type: r[8]
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
o = o.substring(r[0].length);
|
|
112
|
+
}
|
|
113
|
+
return n[t] = s;
|
|
114
|
+
}(r), arguments);
|
|
115
|
+
}
|
|
116
|
+
var n = Object.create(null);
|
|
117
|
+
function r(e, t, n, r, o) {
|
|
118
|
+
return {
|
|
119
|
+
result: t,
|
|
120
|
+
comment: n || {},
|
|
121
|
+
schema: r || {},
|
|
122
|
+
data: o || []
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
function o(e, t, n, r, o) {
|
|
126
|
+
return {
|
|
127
|
+
result: t,
|
|
128
|
+
comment: n || {},
|
|
129
|
+
schema: r || {},
|
|
130
|
+
data: o || []
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
var s = "7.0.0a", i = null, l = null, _ = null, a = null, u = null, c = null, f = [], g = Object.create(null), p = {}, d = null, b = null, m = 0, h = Object.freeze({
|
|
134
|
+
DTP_STRING: 1,
|
|
135
|
+
DTP_BOOLEAN: 2,
|
|
136
|
+
DTP_INTEGER: 3,
|
|
137
|
+
DTP_REAL: 4,
|
|
138
|
+
DTP_LIST: 5,
|
|
139
|
+
DTP_DICT: 6,
|
|
140
|
+
DTP_JSON: 7,
|
|
141
|
+
DTP_POINTER: 8
|
|
142
|
+
});
|
|
143
|
+
h.DTP_POINTER;
|
|
144
|
+
var T = Object.freeze({
|
|
145
|
+
SDF_NOTACCESS: 1,
|
|
146
|
+
SDF_RD: 2,
|
|
147
|
+
SDF_WR: 4,
|
|
148
|
+
SDF_REQUIRED: 8,
|
|
149
|
+
SDF_PERSIST: 16,
|
|
150
|
+
SDF_VOLATIL: 32,
|
|
151
|
+
SDF_RESOURCE: 64,
|
|
152
|
+
SDF_PKEY: 128,
|
|
153
|
+
SDF_FUTURE1: 256,
|
|
154
|
+
SDF_FUTURE2: 512,
|
|
155
|
+
SDF_WILD_CMD: 1024,
|
|
156
|
+
SDF_STATS: 2048,
|
|
157
|
+
SDF_FKEY: 4096,
|
|
158
|
+
SDF_RSTATS: 8192,
|
|
159
|
+
SDF_PSTATS: 16384,
|
|
160
|
+
SDF_AUTHZ_R: 32768,
|
|
161
|
+
SDF_AUTHZ_W: 65536,
|
|
162
|
+
SDF_AUTHZ_X: 131072,
|
|
163
|
+
SDF_AUTHZ_P: 262144,
|
|
164
|
+
SDF_AUTHZ_S: 524288,
|
|
165
|
+
SDF_AUTHZ_RS: 1048576
|
|
166
|
+
});
|
|
167
|
+
T.SDF_RD, T.SDF_WR, T.SDF_STATS, T.SDF_PERSIST, T.SDF_VOLATIL, T.SDF_RSTATS, T.SDF_PSTATS, T.SDF_WR, T.SDF_PERSIST;
|
|
168
|
+
var E = class {
|
|
169
|
+
constructor(e, t, n = 0, r = null, o = "", s = null, i = null, l = 0, _ = null, a = null, u = null) {
|
|
170
|
+
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;
|
|
171
|
+
}
|
|
172
|
+
}, y = () => new E(0, null), v = (e, t, n, r, o) => new E(e, t, n, r, o), j = class {
|
|
173
|
+
constructor(e, t, n, r, o, s, i, l, _) {
|
|
174
|
+
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;
|
|
175
|
+
}
|
|
176
|
+
}, S = class {
|
|
177
|
+
constructor(e, t, n, r, o) {
|
|
178
|
+
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 = xt(t.priv), this.running = !1, this.playing = !1, this.disabled = !1, this.bottom_gobj = null, this.trace_level = 0, this.no_trace_level = 0;
|
|
179
|
+
}
|
|
180
|
+
}, O = Object.freeze({
|
|
181
|
+
gcflag_manual_start: 1,
|
|
182
|
+
gcflag_no_check_output_events: 2,
|
|
183
|
+
gcflag_ignore_unknown_attrs: 4,
|
|
184
|
+
gcflag_required_start_to_play: 8,
|
|
185
|
+
gcflag_singleton: 16
|
|
186
|
+
}), N = Object.freeze({
|
|
187
|
+
gobj_flag_yuno: 1,
|
|
188
|
+
gobj_flag_default_service: 2,
|
|
189
|
+
gobj_flag_service: 4,
|
|
190
|
+
gobj_flag_volatil: 8,
|
|
191
|
+
gobj_flag_pure_child: 16,
|
|
192
|
+
gobj_flag_autostart: 32,
|
|
193
|
+
gobj_flag_autoplay: 64
|
|
194
|
+
}), w = Object.freeze({
|
|
195
|
+
obflag_destroying: 1,
|
|
196
|
+
obflag_destroyed: 2,
|
|
197
|
+
obflag_created: 4
|
|
198
|
+
}), D = Object.freeze({
|
|
199
|
+
EVF_NO_WARN_SUBS: 1,
|
|
200
|
+
EVF_OUTPUT_EVENT: 2,
|
|
201
|
+
EVF_SYSTEM_EVENT: 4,
|
|
202
|
+
EVF_PUBLIC_EVENT: 8
|
|
203
|
+
}), x = Object.freeze({
|
|
204
|
+
WALK_TOP2BOTTOM: 1,
|
|
205
|
+
WALK_BOTTOM2TOP: 2,
|
|
206
|
+
WALK_BYLEVEL: 4,
|
|
207
|
+
WALK_FIRST2LAST: 16,
|
|
208
|
+
WALK_LAST2FIRST: 32
|
|
209
|
+
}), R = class {
|
|
210
|
+
constructor(e, t, n) {
|
|
211
|
+
this.event_name = e, this.action = t, this.next_state = n;
|
|
212
|
+
}
|
|
213
|
+
}, k = class {
|
|
214
|
+
constructor(e) {
|
|
215
|
+
this.state_name = e, this.dl_actions = [];
|
|
216
|
+
}
|
|
217
|
+
}, $ = class {
|
|
218
|
+
constructor(e, t) {
|
|
219
|
+
this.event_name = e, this.event_flag = Number(t) || 0;
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
function I(e) {
|
|
223
|
+
Kt(e) && (e = JSON.stringify(e)), Nt(" ".repeat(Math.max(0, 2 * m - 1)) + String(e));
|
|
224
|
+
}
|
|
225
|
+
function A(e, t) {
|
|
226
|
+
let n = {};
|
|
227
|
+
if (!Yt(t)) return St("sdata_desc MUST be an array"), Dt(t), n;
|
|
228
|
+
for (let r = 0; r < t.length; r++) {
|
|
229
|
+
const o = t[r];
|
|
230
|
+
o.name && L(e, n, o);
|
|
231
|
+
}
|
|
232
|
+
return n;
|
|
233
|
+
}
|
|
234
|
+
function L(e, t, n) {
|
|
235
|
+
let r, o = n.default_value;
|
|
236
|
+
switch (n.type) {
|
|
237
|
+
case h.DTP_STRING:
|
|
238
|
+
r = String(o);
|
|
239
|
+
break;
|
|
240
|
+
case h.DTP_BOOLEAN:
|
|
241
|
+
r = Zt(o);
|
|
242
|
+
break;
|
|
243
|
+
case h.DTP_INTEGER:
|
|
244
|
+
r = parseInt(o), isNaN(r) && St(`${Oe(e)}: attr NaN: ${n.name}`);
|
|
245
|
+
break;
|
|
246
|
+
case h.DTP_REAL:
|
|
247
|
+
r = Number(o), isNaN(r) && St(`${Oe(e)}: attr NaN: ${n.name}`);
|
|
248
|
+
break;
|
|
249
|
+
case h.DTP_LIST:
|
|
250
|
+
if (Bt(o)) try {
|
|
251
|
+
r = JSON.parse(o);
|
|
252
|
+
} catch (e) {
|
|
253
|
+
St(`JSON parse error: ${e.message}`);
|
|
254
|
+
}
|
|
255
|
+
else r = o;
|
|
256
|
+
Yt(r) || (r = []);
|
|
257
|
+
break;
|
|
258
|
+
case h.DTP_DICT:
|
|
259
|
+
if (Bt(o)) try {
|
|
260
|
+
r = JSON.parse(o);
|
|
261
|
+
} catch (e) {
|
|
262
|
+
St(`JSON parse error: ${e.message}`);
|
|
263
|
+
}
|
|
264
|
+
else r = o;
|
|
265
|
+
Kt(r) || (r = {});
|
|
266
|
+
break;
|
|
267
|
+
case h.DTP_JSON:
|
|
268
|
+
if (Bt(o)) try {
|
|
269
|
+
r = JSON.parse(o);
|
|
270
|
+
} catch (e) {
|
|
271
|
+
St(`JSON parse error: ${e.message}`);
|
|
272
|
+
}
|
|
273
|
+
else r = o;
|
|
274
|
+
break;
|
|
275
|
+
case h.DTP_POINTER: r = o;
|
|
276
|
+
}
|
|
277
|
+
return void 0 === r && (St(`default_value WRONG, it: ${n.name}, value: ${n.default_value}`), r = null), t[n.name] = r, 0;
|
|
278
|
+
}
|
|
279
|
+
function P(e, t, n, r) {
|
|
280
|
+
let o;
|
|
281
|
+
switch (n.type) {
|
|
282
|
+
case h.DTP_STRING:
|
|
283
|
+
if (Bt(r)) o = String(r);
|
|
284
|
+
else {
|
|
285
|
+
let e = JSON.stringify(r);
|
|
286
|
+
e && (o = String(e));
|
|
287
|
+
}
|
|
288
|
+
break;
|
|
289
|
+
case h.DTP_BOOLEAN:
|
|
290
|
+
o = Zt(r);
|
|
291
|
+
break;
|
|
292
|
+
case h.DTP_INTEGER:
|
|
293
|
+
o = parseInt(r), isNaN(o) && St(`${Oe(e)}: attr NaN: ${n.name}`);
|
|
294
|
+
break;
|
|
295
|
+
case h.DTP_REAL:
|
|
296
|
+
o = Number(r), isNaN(o) && St(`${Oe(e)}: attr NaN: ${n.name}`);
|
|
297
|
+
break;
|
|
298
|
+
case h.DTP_LIST:
|
|
299
|
+
if (Bt(r)) try {
|
|
300
|
+
o = JSON.parse(r);
|
|
301
|
+
} catch (e) {
|
|
302
|
+
St(`JSON parse error: ${e.message}`);
|
|
303
|
+
}
|
|
304
|
+
else o = r;
|
|
305
|
+
if (!Yt(o)) return St(`attr must be an array: ${n.name}`), -1;
|
|
306
|
+
break;
|
|
307
|
+
case h.DTP_DICT:
|
|
308
|
+
if (Bt(r)) try {
|
|
309
|
+
o = JSON.parse(r);
|
|
310
|
+
} catch (e) {
|
|
311
|
+
St(`JSON parse error: ${e.message}`);
|
|
312
|
+
}
|
|
313
|
+
else o = r;
|
|
314
|
+
if (!Kt(o)) return St(`attr must be an object: ${n.name}`), -1;
|
|
315
|
+
break;
|
|
316
|
+
case h.DTP_JSON:
|
|
317
|
+
if (Bt(r)) try {
|
|
318
|
+
o = JSON.parse(r);
|
|
319
|
+
} catch (e) {
|
|
320
|
+
St(`JSON parse error: ${e.message}`);
|
|
321
|
+
}
|
|
322
|
+
else o = r;
|
|
323
|
+
if (!Yt(o) && !Kt(o)) return St(`attr must be a json dict/list: ${n.name}`), -1;
|
|
324
|
+
break;
|
|
325
|
+
case h.DTP_POINTER: o = r;
|
|
326
|
+
}
|
|
327
|
+
return void 0 === o && St(`${Oe(e)}: attr undefined: ${n.name}`), t[n.name] = o, Kt(e.priv) && e.priv.hasOwnProperty(n.name) && (e.priv[n.name] = o), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, n.name), 0;
|
|
328
|
+
}
|
|
329
|
+
function U(e) {
|
|
330
|
+
return e.jn_attrs;
|
|
331
|
+
}
|
|
332
|
+
function C(e, t, n) {
|
|
333
|
+
return We(e, t) ? U(e) : e && e.bottom_gobj ? C(e.bottom_gobj, t, n) : (n && St(`GClass Attribute NOT FOUND: ${Oe(e)}, attr ${t}`), null);
|
|
334
|
+
}
|
|
335
|
+
function G(e, t, n) {
|
|
336
|
+
if (!(e && e instanceof j)) return n && St("gclass NULL"), null;
|
|
337
|
+
if (!t) return e.attrs_table;
|
|
338
|
+
for (let n = 0; n < e.attrs_table.length; n++) {
|
|
339
|
+
const r = e.attrs_table[n];
|
|
340
|
+
if (r.name && r.name === t) return r;
|
|
341
|
+
}
|
|
342
|
+
return n && St(`${e.gclass_name}: GClass Attribute NOT FOUND: ${t}`), null;
|
|
343
|
+
}
|
|
344
|
+
function F(e, t, n, r, o, s, i, l, _, a, u) {
|
|
345
|
+
if (Xt(e)) return St("gclass_name EMPTY"), null;
|
|
346
|
+
if (e.includes("`") || e.includes("^") || e.includes(".")) return St(`GClass name CANNOT have '.' or '^' or '\`' char: ${e}`), null;
|
|
347
|
+
if (H(e)) return St(`GClass ALREADY exists: ${e}`), null;
|
|
348
|
+
let c = new j(e, r, o, s, i, l, _, a, u);
|
|
349
|
+
(function(e, t) {
|
|
350
|
+
e && e instanceof j ? t ? g[t] ? St(`gclass ALREADY REGISTERED: ${t}`) : g[t] = e : St("gclass_name undefined") : St("gclass undefined");
|
|
351
|
+
})(c, e);
|
|
352
|
+
const f = n.length;
|
|
353
|
+
for (let e = 0; e < f; e++) {
|
|
354
|
+
let t = n[e][0], r = n[e][1];
|
|
355
|
+
if (Xt(t)) continue;
|
|
356
|
+
if (K(c, t) < 0) return V(c), null;
|
|
357
|
+
const o = r.length;
|
|
358
|
+
for (let e = 0; e < o; e++) {
|
|
359
|
+
let n = r[e][0], o = r[e][1], s = r[e][2];
|
|
360
|
+
Xt(n) || Y(c, t, n, o, s);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
for (let e = 0; e < t.length; e++) {
|
|
364
|
+
let n = t[e][0], r = t[e][1];
|
|
365
|
+
if (!Xt(n)) {
|
|
366
|
+
if (z(c, n)) return St(`SMachine: event repeated in input_events: ${n}`), V(c), null;
|
|
367
|
+
J(c, n, r);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
if (!c.fsm_checked) {
|
|
371
|
+
if (Q(c) < 0) return V(c), null;
|
|
372
|
+
c.fsm_checked = !0;
|
|
373
|
+
}
|
|
374
|
+
return c;
|
|
375
|
+
}
|
|
376
|
+
function V(e) {
|
|
377
|
+
let t;
|
|
378
|
+
if (Bt(e)) t = e;
|
|
379
|
+
else {
|
|
380
|
+
if (!(e instanceof j)) return St("Cannot unregister gclass, type unknown"), -1;
|
|
381
|
+
t = e.gclass_name;
|
|
382
|
+
}
|
|
383
|
+
let n = g[t];
|
|
384
|
+
return n ? n.instances > 0 ? (St(`Cannot unregister gclass, instances in use: ${t}`), -1) : (delete g[t], 0) : (St(`Cannot unregister gclass, not found: ${t}`), -1);
|
|
385
|
+
}
|
|
386
|
+
function W(e, t) {
|
|
387
|
+
const n = e.dl_states.length, r = e.dl_states;
|
|
388
|
+
for (let e = 0; e < n; e++) {
|
|
389
|
+
let n = r[e];
|
|
390
|
+
if (n.state_name && n.state_name === t) return n;
|
|
391
|
+
}
|
|
392
|
+
return null;
|
|
393
|
+
}
|
|
394
|
+
function M(e, t) {
|
|
395
|
+
const n = e.dl_actions.length, r = e.dl_actions;
|
|
396
|
+
for (let e = 0; e < n; e++) {
|
|
397
|
+
let n = r[e];
|
|
398
|
+
if (n.event_name && n.event_name === t) return n;
|
|
399
|
+
}
|
|
400
|
+
return null;
|
|
401
|
+
}
|
|
402
|
+
function K(e, t) {
|
|
403
|
+
return e instanceof j ? W(e, t) ? (St(`state already exists: ${t}`), -1) : (e.dl_states.push(new k(t)), 0) : (St("Cannot add state, typeof not GClass"), -1);
|
|
404
|
+
}
|
|
405
|
+
function Y(e, t, n, r, o) {
|
|
406
|
+
if (!(e instanceof j)) return St("Cannot add state, typeof not GClass"), -1;
|
|
407
|
+
if (Xt(t)) return St("state_name EMPTY"), -1;
|
|
408
|
+
let s = W(e, t);
|
|
409
|
+
return s ? M(s, n) ? (St(`event already exists: gclass ${e.gclass_name}, state ${t}, event ${n}`), -1) : (s.dl_actions.push(new R(n, r, o)), 0) : (St(`state not found: ${t}`), -1);
|
|
410
|
+
}
|
|
411
|
+
function B(e, t, n) {
|
|
412
|
+
Xt(t) || e.push(new $(t, n));
|
|
413
|
+
}
|
|
414
|
+
function J(e, t, n) {
|
|
415
|
+
return e instanceof j ? B(e.dl_events, t, n) : (St("Cannot add state, typeof not GClass"), -1);
|
|
416
|
+
}
|
|
417
|
+
function z(e, t) {
|
|
418
|
+
if (!(e instanceof j)) return St("Cannot add state, typeof not GClass"), 0;
|
|
419
|
+
const n = e.dl_events.length, r = e.dl_events;
|
|
420
|
+
for (let e = 0; e < n; e++) {
|
|
421
|
+
let n = r[e];
|
|
422
|
+
if (n.event_name && n.event_name === t) return n;
|
|
423
|
+
}
|
|
424
|
+
return null;
|
|
425
|
+
}
|
|
426
|
+
function Q(e) {
|
|
427
|
+
if (!(e instanceof j)) return St("Cannot add state, typeof not GClass"), -1;
|
|
428
|
+
let t = 0;
|
|
429
|
+
Wt(e.dl_states) || (St(`GClass without states: ${e.gclass_name}`), t += -1);
|
|
430
|
+
for (let n = 0; n < e.dl_states.length; n++) {
|
|
431
|
+
let r = e.dl_states[n];
|
|
432
|
+
if (!Xt(r.state_name)) for (let n = 0; n < r.dl_actions.length; n++) {
|
|
433
|
+
let o = r.dl_actions[n];
|
|
434
|
+
Xt(o.event_name) || (z(e, o.event_name) || (St(`SMachine: state's event NOT in input_events: gclass ${e.gclass_name}, state ${r.state_name}, event ${o.event_name}`), t += -1), o.next_state && (W(e, o.next_state) || (St(`SMachine: next state NOT in state names: gclass ${e.gclass_name}, state ${r.state_name}, next_state ${o.next_state}`), t += -1)));
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
for (let n = 0; n < e.dl_events.length; n++) {
|
|
438
|
+
let r = e.dl_events[n];
|
|
439
|
+
if (!Xt(r.event_name) && (Jt(r.event_flag) || (St(`SMachine: event flag is NOT number: gclass ${e.gclass_name}, event ${r.event_name}`), t += -1), !(r.event_flag & D.EVF_OUTPUT_EVENT))) {
|
|
440
|
+
let n = !1;
|
|
441
|
+
for (let t = 0; t < e.dl_states.length; t++) {
|
|
442
|
+
let o = e.dl_states[t];
|
|
443
|
+
Xt(o.state_name) || M(o, r.event_name) && (n = !0);
|
|
444
|
+
}
|
|
445
|
+
n || (St(`SMachine: input_list's event NOT in state: gclass ${e.gclass_name}, event ${r.event_name}`), t += -1);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
return t;
|
|
449
|
+
}
|
|
450
|
+
function H(e, t) {
|
|
451
|
+
let n = null;
|
|
452
|
+
try {
|
|
453
|
+
n = g[e];
|
|
454
|
+
} catch (e) {}
|
|
455
|
+
return n || t && St(`gclass not found: ${e}`), n;
|
|
456
|
+
}
|
|
457
|
+
function q() {
|
|
458
|
+
return !b || b.obflag & w.obflag_destroyed ? null : b;
|
|
459
|
+
}
|
|
460
|
+
function X(e, t) {
|
|
461
|
+
e = e.toLowerCase();
|
|
462
|
+
let n = p[e];
|
|
463
|
+
return !n && t ? (St(`gobj service not found: ${e}`), null) : n;
|
|
464
|
+
}
|
|
465
|
+
function Z(e) {
|
|
466
|
+
let t = je(e);
|
|
467
|
+
return t = t.toLowerCase(), p[t] && St(`service ALREADY REGISTERED: ${t}. Will be UPDATED`), p[t] = e, 0;
|
|
468
|
+
}
|
|
469
|
+
function ee(e, t) {
|
|
470
|
+
t.parent && St(`_add_child() ALREADY HAS PARENT: ${t.gobj_name}`), e.dl_children.push(t), t.parent = e;
|
|
471
|
+
}
|
|
472
|
+
function te(e, t) {
|
|
473
|
+
let n = Gn(e.dl_children, t);
|
|
474
|
+
n >= 0 && (Ft(e.dl_children, n), t.parent = null);
|
|
475
|
+
}
|
|
476
|
+
function ne(e, t) {
|
|
477
|
+
"__json_config_variables__" !== t && St(`GClass Attribute NOT FOUND: ${Oe(e)}, attr ${t}`);
|
|
478
|
+
}
|
|
479
|
+
function re(e, t, n) {
|
|
480
|
+
let r = t;
|
|
481
|
+
(function(e, t, n, r, o) {
|
|
482
|
+
if (!e || !t) return St("hsdata or kw NULL"), -1;
|
|
483
|
+
let s = 0;
|
|
484
|
+
for (const [i, l] of Object.entries(t)) {
|
|
485
|
+
const t = G(o.gclass, i, !1);
|
|
486
|
+
t ? (-1 === n || t.flag & n) && (s += P(o, e, t, l)) : r && (r(o, i), s--);
|
|
487
|
+
}
|
|
488
|
+
return s;
|
|
489
|
+
})(U(e), r, -1, e.gclass.gclass_flag & O.gcflag_ignore_unknown_attrs ? 0 : ne, e) < 0 && (St(`${Oe(e)} json2data() FAILED`), Dt(r));
|
|
490
|
+
}
|
|
491
|
+
function oe(e, n, r, o, s) {
|
|
492
|
+
if (s & N.gobj_flag_yuno) {
|
|
493
|
+
if (d) return St("__yuno__ already created"), null;
|
|
494
|
+
s |= N.gobj_flag_service;
|
|
495
|
+
} else {
|
|
496
|
+
if (!o) return St("gobj NEEDS a parent!"), null;
|
|
497
|
+
if (!("string" == typeof o || o instanceof S)) return St(`BAD TYPE of parent: ${o}`), null;
|
|
498
|
+
if (Bt(o) && !(o = X(o))) return Ot(`parent service not found: ${o}`), null;
|
|
499
|
+
}
|
|
500
|
+
if (s & N.gobj_flag_service && X(e, !1)) return St(`service ALREADY registered: ${n}^${e}`), null;
|
|
501
|
+
if (s & N.gobj_flag_default_service) {
|
|
502
|
+
if (b) return St(`default service ALREADY registered: ${n}^${e}`), null;
|
|
503
|
+
s |= N.gobj_flag_service;
|
|
504
|
+
}
|
|
505
|
+
if (Xt(n)) return St("gclass_name must be a string"), null;
|
|
506
|
+
let l = H(n, !1);
|
|
507
|
+
if (!l) return St(`GClass not registered: ${n}^${e}`), null;
|
|
508
|
+
if (!Bt(e)) return St(`gobj_name must be a string: ${n}`), null;
|
|
509
|
+
if (!Xt(e)) {
|
|
510
|
+
if (e.includes("`")) return St(`gobj_name cannot contain char ': ${n}^${e}`), null;
|
|
511
|
+
if (e.includes("^")) return St(`gobj_name cannot contain char ^: ${n}^${e}`), null;
|
|
512
|
+
}
|
|
513
|
+
let _ = new S(e, l, r, o, s);
|
|
514
|
+
_.jn_attrs = A(_, l.attrs_table);
|
|
515
|
+
for (const [e, t] of Object.entries(_.jn_attrs)) e in _.priv && (_.priv[e] = t);
|
|
516
|
+
let a = d && Ye(d, "trace_creation");
|
|
517
|
+
return a && I(t("ππβ© creating: %s^%s", l.gclass_name, e)), _.gobj_flag & N.gobj_flag_service && Z(_), _.gobj_flag & N.gobj_flag_yuno && (d = _), _.gobj_flag & N.gobj_flag_default_service && (b = _), _.gobj_flag & N.gobj_flag_yuno || ee(o, _), _.obflag |= w.obflag_created, _.gclass.instances++, re(_, r), _.gobj_flag & N.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 && I(t("π¦π¦π΅ child_added(%s): %s", Ne(o), Oe(_))), o.gclass.gmt.mt_child_added(o, _)), a && I(t("ππβͺ created: %s", Ne(_))), _;
|
|
518
|
+
}
|
|
519
|
+
function se(e, t, n, r) {
|
|
520
|
+
return oe(e, t, n, r, N.gobj_flag_pure_child);
|
|
521
|
+
}
|
|
522
|
+
function ie(e) {
|
|
523
|
+
if (Re(e)) return void St("gobj NULL or DESTROYED");
|
|
524
|
+
e.__refs__ > 0 && St(`${Oe(e)}: gobj DESTROYING with references: ${e.__refs__}`), e.obflag |= w.obflag_destroying;
|
|
525
|
+
let n = d && Ye(d, "trace_creation");
|
|
526
|
+
n && I(t("ππβ© destroying: %s", Ne(e)));
|
|
527
|
+
let r = we(e);
|
|
528
|
+
r && r.gclass.gmt.mt_child_removed && (n && I(t("π¦π¦π΄ child_removed(%s): %s", Ne(r), Oe(e))), r.gclass.gmt.mt_child_removed(r, e)), e.gobj_flag & N.gobj_flag_service && function(e) {
|
|
529
|
+
let t = je(e);
|
|
530
|
+
t = t.toLowerCase(), p[t] ? delete p[t] : St(`"service NOT found in register": ${t}`);
|
|
531
|
+
}(e), e.playing && (St(`Destroying a PLAYING gobj: ${Ne(e)}`), pe(e)), e.running && (St(`Destroying a RUNNING gobj: ${Ne(e)}`), ue(e)), ft(e, e.dl_subscriptions, !0), ft(e, e.dl_subscribings, !0), r && (te(r, e), De(e) && (ke(r) !== e || Re(r) || $e(r, null))), function(e) {
|
|
532
|
+
let t = e.dl_children.slice();
|
|
533
|
+
for (let e = 0; e < t.length; e++) {
|
|
534
|
+
let n = t[e];
|
|
535
|
+
Re(n) || ie(n);
|
|
536
|
+
}
|
|
537
|
+
}(e), e.obflag & w.obflag_created && e.gclass.gmt.mt_destroy && e.gclass.gmt.mt_destroy(e), n && I(t("ππβͺ destroyed: %s", Ne(e))), e.obflag |= w.obflag_destroyed, e.obflag & w.obflag_created && e.gclass.instances--;
|
|
538
|
+
}
|
|
539
|
+
function le(e) {
|
|
540
|
+
if (Re(e)) return St("gobj NULL or DESTROYED"), -1;
|
|
541
|
+
if (e.running) return St(`${Oe(e)}: GObj ALREADY RUNNING`), -1;
|
|
542
|
+
if (e.disabled) return St(`${Oe(e)}: GObj DISABLED`), -1;
|
|
543
|
+
d && Ye(d, "trace_start_stop") && I(t("βΊ βΊ start: %s", Ne(e))), e.running = !0;
|
|
544
|
+
let n = 0;
|
|
545
|
+
return e.gclass.gmt.mt_start && (n = e.gclass.gmt.mt_start(e)), n;
|
|
546
|
+
}
|
|
547
|
+
function _e(e, t, n) {
|
|
548
|
+
return e.gclass.gclass_flag & O.gcflag_manual_start || Re(e) || de(e) || be(e) || le(e), 0;
|
|
549
|
+
}
|
|
550
|
+
function ae(e, t, n) {
|
|
551
|
+
return e.gclass.gclass_flag & O.gcflag_manual_start || be(e) ? 1 : (de(e) || le(e), 0);
|
|
552
|
+
}
|
|
553
|
+
function ue(e) {
|
|
554
|
+
if (Re(e)) return St("gobj NULL or DESTROYED"), -1;
|
|
555
|
+
if (!e.running) return St(`${Oe(e)}: GObj NOT RUNNING`), -1;
|
|
556
|
+
e.playing && (Ot(`${Oe(e)}: GObj stopping without previous pause`), pe(e)), d && Ye(d, "trace_start_stop") && I(t("βΉ βΉ stop: %s", Ne(e))), e.running = !1;
|
|
557
|
+
let n = 0;
|
|
558
|
+
return e.gclass.gmt.mt_stop && (n = e.gclass.gmt.mt_stop(e)), n;
|
|
559
|
+
}
|
|
560
|
+
function ce(e, t, n) {
|
|
561
|
+
return de(e) && ue(e), 0;
|
|
562
|
+
}
|
|
563
|
+
function fe(e) {
|
|
564
|
+
return Re(e) ? (St("gobj NULL or DESTROYED"), -1) : Ae(e, x.WALK_FIRST2LAST, ce, 0, 0);
|
|
565
|
+
}
|
|
566
|
+
function ge(e) {
|
|
567
|
+
if (Re(e)) return St(`gobj NULL or DESTROYED: ${Oe(e)}`), -1;
|
|
568
|
+
if (e.playing) return St(`${Oe(e)}: GObj ALREADY PLAYING`), -1;
|
|
569
|
+
if (e.disabled) return St(`${Oe(e)}: GObj DISABLED`), -1;
|
|
570
|
+
if (!de(e)) {
|
|
571
|
+
if (e.gclass.gclass_flag & O.gcflag_required_start_to_play) return St(`${Oe(e)}: Cannot play, start not done`), -1;
|
|
572
|
+
Ot(`${Oe(e)}: GObj playing without previous start`), le(e);
|
|
573
|
+
}
|
|
574
|
+
d && Ye(d, "trace_start_stop") && I(t("β― β― play: %s", Ne(e))), e.playing = !0;
|
|
575
|
+
let n = 0;
|
|
576
|
+
return e.gclass.gmt.mt_play && (n = e.gclass.gmt.mt_play(e), n < 0 && (e.playing = !1)), n;
|
|
577
|
+
}
|
|
578
|
+
function pe(e) {
|
|
579
|
+
return Re(e) ? (St("gobj NULL or DESTROYED"), -1) : e.playing ? (d && Ye(d, "trace_start_stop") && I(t("βΈ βΈ pause: %s", Ne(e))), e.playing = !1, e.gclass.gmt.mt_pause ? e.gclass.gmt.mt_pause(e) : 0) : (St(`${Oe(e)}: GObj NOT PLAYING`), -1);
|
|
580
|
+
}
|
|
581
|
+
function de(e) {
|
|
582
|
+
return !Re(e) && e.running;
|
|
583
|
+
}
|
|
584
|
+
function be(e) {
|
|
585
|
+
return !!Re(e) || e.disabled;
|
|
586
|
+
}
|
|
587
|
+
function me(e) {
|
|
588
|
+
return !!(e && e.gobj_flag & N.gobj_flag_service);
|
|
589
|
+
}
|
|
590
|
+
function he(e) {
|
|
591
|
+
return !Re(e) && e.playing;
|
|
592
|
+
}
|
|
593
|
+
function Te() {
|
|
594
|
+
return !d || d.obflag & w.obflag_destroyed ? null : d;
|
|
595
|
+
}
|
|
596
|
+
function Ee() {
|
|
597
|
+
let e = Te();
|
|
598
|
+
return e ? je(e) : "";
|
|
599
|
+
}
|
|
600
|
+
function ye() {
|
|
601
|
+
let e = Te();
|
|
602
|
+
return e ? Je(e, "yuno_role") : "";
|
|
603
|
+
}
|
|
604
|
+
function ve() {
|
|
605
|
+
let e = Te();
|
|
606
|
+
return e ? Je(e, "yuno_id") : "";
|
|
607
|
+
}
|
|
608
|
+
function je(e) {
|
|
609
|
+
return qt(e) ? e.gobj_name : (St("gobj bad type"), null);
|
|
610
|
+
}
|
|
611
|
+
function Se(e) {
|
|
612
|
+
return qt(e) ? e.gclass.gclass_name : (St("gobj NULL of bad type"), null);
|
|
613
|
+
}
|
|
614
|
+
function Oe(e) {
|
|
615
|
+
return qt(e) ? e.gclass.gclass_name + "^" + je(e) : (St("gobj bad type"), null);
|
|
616
|
+
}
|
|
617
|
+
function Ne(e) {
|
|
618
|
+
if (!qt(e)) return St("gobj NULL of bad type"), null;
|
|
619
|
+
let t = Oe(e), n = we(e);
|
|
620
|
+
for (; n;) t = Oe(n) + "`" + t, n = we(n);
|
|
621
|
+
return t;
|
|
622
|
+
}
|
|
623
|
+
function we(e) {
|
|
624
|
+
return qt(e) ? e.parent : (St("gobj NULL of bad type"), null);
|
|
625
|
+
}
|
|
626
|
+
function De(e) {
|
|
627
|
+
return qt(e) ? !!(e.gobj_flag & N.gobj_flag_volatil) : (St("gobj NULL of bad type"), null);
|
|
628
|
+
}
|
|
629
|
+
function xe(e) {
|
|
630
|
+
return qt(e) ? !!(e.gobj_flag & N.gobj_flag_pure_child) : (St("gobj NULL of bad type"), null);
|
|
631
|
+
}
|
|
632
|
+
function Re(e) {
|
|
633
|
+
return !qt(e) || !!(e.obflag & (w.obflag_destroyed | w.obflag_destroying));
|
|
634
|
+
}
|
|
635
|
+
function ke(e) {
|
|
636
|
+
return qt(e) ? e.bottom_gobj : (St("gobj NULL of bad type"), null);
|
|
637
|
+
}
|
|
638
|
+
function $e(e, t) {
|
|
639
|
+
if (!qt(e)) return St("gobj NULL of bad type"), null;
|
|
640
|
+
e.bottom_gobj && Ot(`${Oe(e)}: bottom_gobj already set`), e.bottom_gobj = t;
|
|
641
|
+
}
|
|
642
|
+
function Ie(e, t, n) {
|
|
643
|
+
return qt(e) ? t ? G(e.gclass, t, n) : e.gclass.attrs_table : (St("gobj NULL of bad type"), null);
|
|
644
|
+
}
|
|
645
|
+
function Ae(e, t, n, r, o) {
|
|
646
|
+
return Re(e) ? (St("gobj NULL, destroying, or bad type"), 0) : Pe(e.dl_children, t, n, r, o);
|
|
647
|
+
}
|
|
648
|
+
function Le(e, t, n, r, o) {
|
|
649
|
+
return Re(e) ? (St("gobj NULL, destroying, or bad type"), 0) : Ce(e.dl_children, t, n, r, o);
|
|
650
|
+
}
|
|
651
|
+
function Pe(e, t, n, r, o) {
|
|
652
|
+
let s, i = [...e];
|
|
653
|
+
if (t & x.WALK_LAST2FIRST) for (let e = i.length; e > 0; e--) {
|
|
654
|
+
s = i[e - 1];
|
|
655
|
+
let t = n(s, r, o);
|
|
656
|
+
if (t < 0) return t;
|
|
657
|
+
}
|
|
658
|
+
else for (let e = 0; e < i.length; e++) {
|
|
659
|
+
s = i[e];
|
|
660
|
+
let t = n(s, r, o);
|
|
661
|
+
if (t < 0) return t;
|
|
662
|
+
}
|
|
663
|
+
return 0;
|
|
664
|
+
}
|
|
665
|
+
function Ue(e, t, n, r, o) {
|
|
666
|
+
let s, i = Pe(e, t, n, r, o);
|
|
667
|
+
if (i < 0) return i;
|
|
668
|
+
if (t & x.WALK_LAST2FIRST) {
|
|
669
|
+
for (let l = e.length; l > 0; l--) if (s = e[l - 1], i = Ue([...s.dl_children], t, n, r, o), i < 0) return i;
|
|
670
|
+
} else for (let l = 0; l < e.length; l++) if (s = e[l], i = Ue([...s.dl_children], t, n, r, o), i < 0) return i;
|
|
671
|
+
return i;
|
|
672
|
+
}
|
|
673
|
+
function Ce(e, t, n, r, o) {
|
|
674
|
+
if (t & x.WALK_BYLEVEL) return Ue(e, t, n, r, o);
|
|
675
|
+
let s, i;
|
|
676
|
+
if (t & x.WALK_BOTTOM2TOP) for (let l = e.length; l > 0; l--) {
|
|
677
|
+
if (i = e[l - 1], s = Ce([...i.dl_children], t, n, r, o), s < 0) return s;
|
|
678
|
+
if (s = n(i, r, o), s < 0) return s;
|
|
679
|
+
}
|
|
680
|
+
else for (let l = 0; l < e.length; l++) {
|
|
681
|
+
if (i = e[l], s = n(i, r, o), s < 0) return s;
|
|
682
|
+
if (0 === s && (s = Ce([...i.dl_children], t, n, r, o), s < 0)) return s;
|
|
683
|
+
}
|
|
684
|
+
return 0;
|
|
685
|
+
}
|
|
686
|
+
function Ge(e, t) {
|
|
687
|
+
if (!qt(e)) return St("gobj NULL of bad type"), !1;
|
|
688
|
+
let n = t.__gclass_name__, r = t.__gobj_name__, o = t.__prefix_gobj_name__;
|
|
689
|
+
t.__disabled__;
|
|
690
|
+
let s = t.__state__;
|
|
691
|
+
if (n && n !== Se(e)) return !1;
|
|
692
|
+
if (r && r !== je(e)) return !1;
|
|
693
|
+
if (o) {
|
|
694
|
+
let t = o.length;
|
|
695
|
+
if (o !== je(e).substring(0, t)) return !1;
|
|
696
|
+
}
|
|
697
|
+
if (s && s !== et(e)) return !1;
|
|
698
|
+
let i = e.jn_attrs;
|
|
699
|
+
for (const n of Object.keys(t)) if ("__gclass_name__" !== n && "__gobj_name__" !== n && "__prefix_gobj_name__" !== n && "__disabled__" !== n && "__state__" !== n && We(e, n) && i[n] !== t[n]) return !1;
|
|
700
|
+
return !0;
|
|
701
|
+
}
|
|
702
|
+
function Fe(e, t) {
|
|
703
|
+
if (Re(e)) return St("gobj NULL or DESTROYED"), null;
|
|
704
|
+
const n = e.dl_children;
|
|
705
|
+
for (let e = 0; e < n.length; e++) {
|
|
706
|
+
const r = n[e];
|
|
707
|
+
if (Ge(r, t)) return r;
|
|
708
|
+
}
|
|
709
|
+
return null;
|
|
710
|
+
}
|
|
711
|
+
function Ve(e, t) {
|
|
712
|
+
if (!t) return null;
|
|
713
|
+
let n = t.split("`");
|
|
714
|
+
if (!function(e, t) {
|
|
715
|
+
let n = t.split("^"), r = null, o = null;
|
|
716
|
+
if (2 === n.length) {
|
|
717
|
+
if (o = n[0], r = n[1], o !== Se(e)) return !1;
|
|
718
|
+
} else {
|
|
719
|
+
if (1 !== n.length) return !1;
|
|
720
|
+
r = n[0];
|
|
721
|
+
}
|
|
722
|
+
return r === je(e);
|
|
723
|
+
}(e, n[0])) return null;
|
|
724
|
+
if (1 === n.length) return e;
|
|
725
|
+
let r = n[1].split("^"), o = {};
|
|
726
|
+
1 === r.length ? o.__gobj_name__ = r : (o.__gclass_name__ = r[0], o.__gobj_name__ = r[1]);
|
|
727
|
+
let s = Fe(e, o);
|
|
728
|
+
return s ? (n.splice(0, 1), n = n.join("`"), Ve(s, n)) : null;
|
|
729
|
+
}
|
|
730
|
+
function We(e, t) {
|
|
731
|
+
return !Xt(t) && !!G(e.gclass, t, !1);
|
|
732
|
+
}
|
|
733
|
+
function Me(e, t, n) {
|
|
734
|
+
let r = e.jn_attrs;
|
|
735
|
+
if (t in r && r.hasOwnProperty(t)) {
|
|
736
|
+
let n = r[t];
|
|
737
|
+
return e.gclass.gmt.mt_reading ? e.gclass.gmt.mt_reading(e, t, n) : n;
|
|
738
|
+
}
|
|
739
|
+
return St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`), null;
|
|
740
|
+
}
|
|
741
|
+
function Ke(e, t, n) {
|
|
742
|
+
let r = {}, o = e.gclass.attrs_table;
|
|
743
|
+
for (let n = 0; n < o.length; n++) {
|
|
744
|
+
const s = o[n];
|
|
745
|
+
if (s.name && (-1 === t || s.flag & t)) {
|
|
746
|
+
let t = At(e.jn_attrs, s.name);
|
|
747
|
+
Pt(r, s.name, t);
|
|
748
|
+
}
|
|
749
|
+
}
|
|
750
|
+
return r;
|
|
751
|
+
}
|
|
752
|
+
function Ye(e, t) {
|
|
753
|
+
if (t) {
|
|
754
|
+
if (0 === tn(t, "__disabled__")) return be(e);
|
|
755
|
+
if (0 === tn(t, "__running__")) return de(e);
|
|
756
|
+
if (0 === tn(t, "__playing__")) return he(e);
|
|
757
|
+
if (0 === tn(t, "__service__")) return me(e);
|
|
758
|
+
}
|
|
759
|
+
let n = C(e, t, !1);
|
|
760
|
+
return n ? !e.gclass.gmt.mt_reading || e.obflag & w.obflag_destroyed ? At(n, t) : e.gclass.gmt.mt_reading(e, t) : (St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`), 0);
|
|
761
|
+
}
|
|
762
|
+
function Be(e, t) {
|
|
763
|
+
t && tn(t, "__trace_level__");
|
|
764
|
+
let n = C(e, t, !1);
|
|
765
|
+
return n ? !e.gclass.gmt.mt_reading || e.obflag & w.obflag_destroyed ? At(n, t) : e.gclass.gmt.mt_reading(e, t) : (St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`), 0);
|
|
766
|
+
}
|
|
767
|
+
function Je(e, t) {
|
|
768
|
+
if (t && 0 === tn(t, "__state__")) return et(e);
|
|
769
|
+
let n = C(e, t, !1);
|
|
770
|
+
return n ? !e.gclass.gmt.mt_reading || e.obflag & w.obflag_destroyed ? At(n, t) : e.gclass.gmt.mt_reading(e, t) : (St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`), 0);
|
|
771
|
+
}
|
|
772
|
+
function ze(e, t) {
|
|
773
|
+
let n = C(e, t, !1);
|
|
774
|
+
return n ? !e.gclass.gmt.mt_reading || e.obflag & w.obflag_destroyed ? At(n, t) : e.gclass.gmt.mt_reading(e, t) : (St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`), 0);
|
|
775
|
+
}
|
|
776
|
+
function Qe(e, t, n, r) {
|
|
777
|
+
let o = U(e), s = 0;
|
|
778
|
+
for (const [r, i] of Object.entries(t)) {
|
|
779
|
+
let t = Ie(e, r, !0);
|
|
780
|
+
t && (-1 === n || t.flag & n) && (s += P(e, o, t, i));
|
|
781
|
+
}
|
|
782
|
+
return s;
|
|
783
|
+
}
|
|
784
|
+
function He(e, t, n) {
|
|
785
|
+
let r = C(e, t, !1);
|
|
786
|
+
return r ? (r[t] = Zt(n), Kt(e.priv) && e.priv.hasOwnProperty(t) && (e.priv[t] = n), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, t), 0) : (St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`), -1);
|
|
787
|
+
}
|
|
788
|
+
function qe(e, t, n) {
|
|
789
|
+
let r = C(e, t, !1);
|
|
790
|
+
return r ? (r[t] = parseInt(n), Kt(e.priv) && e.priv.hasOwnProperty(t) && (e.priv[t] = n), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, t), 0) : (St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`), -1);
|
|
791
|
+
}
|
|
792
|
+
function Xe(e, t, n) {
|
|
793
|
+
let r = C(e, t, !1);
|
|
794
|
+
return r ? (r[t] = String(n), Kt(e.priv) && e.priv.hasOwnProperty(t) && (e.priv[t] = n), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, t), 0) : (St(`${Oe(e)}: GClass Attribute NOT FOUND, attr ${t}`), -1);
|
|
795
|
+
}
|
|
796
|
+
function Ze(e, t) {
|
|
797
|
+
if (Re(e)) return St("gobj NULL or DESTROYED"), null;
|
|
798
|
+
if (e.current_state.state_name === t) return !1;
|
|
799
|
+
let n = W(e.gclass, t);
|
|
800
|
+
return n ? (e.last_state = e.current_state, e.current_state = n, !0) : (St(`${Oe(e)}: state unknown, state ${t}`), !1);
|
|
801
|
+
}
|
|
802
|
+
function et(e) {
|
|
803
|
+
return Re(e) ? (St("gobj NULL or DESTROYED"), null) : e.current_state.state_name;
|
|
804
|
+
}
|
|
805
|
+
function tt(e, t, n) {
|
|
806
|
+
if (!qt(e)) return St("gobj NULL of bad type"), null;
|
|
807
|
+
let r = z(e.gclass, t);
|
|
808
|
+
if (r) return r;
|
|
809
|
+
if (n) {
|
|
810
|
+
const e = f.length, n = f;
|
|
811
|
+
for (let r = 0; r < e; r++) {
|
|
812
|
+
let e = n[r];
|
|
813
|
+
if (e.event_name && e.event_name === t) return e;
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
return null;
|
|
817
|
+
}
|
|
818
|
+
function nt(e, t, n) {
|
|
819
|
+
let r = tt(e, t, !1);
|
|
820
|
+
return !!r && !(n && !(r.event_flag & n));
|
|
821
|
+
}
|
|
822
|
+
function rt(e, t, n) {
|
|
823
|
+
let r = tt(e, t, !1);
|
|
824
|
+
return !!r && !(n && !(r.event_flag & n)) && !!(r.event_flag & D.EVF_OUTPUT_EVENT);
|
|
825
|
+
}
|
|
826
|
+
function ot(e, n, r, o) {
|
|
827
|
+
if (!(e && e instanceof S)) return St("gobj dst NULL"), -1;
|
|
828
|
+
if (e.obflag & (w.obflag_destroyed | w.obflag_destroying)) return St("gobj dst DESTROYED"), -1;
|
|
829
|
+
let s = e.current_state;
|
|
830
|
+
if (!s) return St(`${Oe(e)}: current_state NULL`), -1;
|
|
831
|
+
let i = 0;
|
|
832
|
+
i = d && Be(d, "tracing"), "C_TIMER" === Se(o) && (i = d && Be(d, "trace_timer")), m++;
|
|
833
|
+
let l = M(s, n);
|
|
834
|
+
if (!l) return e.gclass.gmt.mt_inject_event ? (m--, i && (I(t("π mach(%s%s), st: %s, ev: %s, from(%s%s)", e.running ? "" : "!!", Oe(e), s.state_name, n || "", o && !o.running ? "!!" : "", Oe(o))), r && i > 1 && Vt(r) && Dt(r)), e.gclass.gmt.mt_inject_event(e, n, r, o)) : (i && I(t("π mach(%s%s^%s), st: %s, ev: %s, ππERROR Event NOT DEFINED in stateππ, from(%s%s^%s)", e.running ? "" : "!!", Se(e), je(e), s.state_name, n || "", o && !o.running ? "!!" : "", Se(o), je(o))), St(`ππ Event NOT DEFINED in state ππ: ${Oe(e)}, ${s.state_name}, ${n}`), m--, -1);
|
|
835
|
+
if (i) {
|
|
836
|
+
let _ = "";
|
|
837
|
+
l.action && (_ = Vn(l.action)), I(t("π mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", Se(e), je(e), s.state_name, "", n || "", "", _, o && !o.running ? "!!" : "", Se(o), je(o))), r && i > 1 && Vt(r) && Dt(r);
|
|
838
|
+
}
|
|
839
|
+
l.next_state && Ze(e, l.next_state);
|
|
840
|
+
let _ = -1;
|
|
841
|
+
try {
|
|
842
|
+
l.action && (_ = l.action(e, n, r, o));
|
|
843
|
+
} finally {}
|
|
844
|
+
return !i || e.obflag & w.obflag_destroyed || I(t("<- mach(%s%s^%s), st: %s, ev: %s, ret: %d", e.running ? "" : "!!", Se(e), je(e), e.current_state.state_name, n || "", Jt(_) ? _ : 0)), m--, _;
|
|
845
|
+
}
|
|
846
|
+
var st = Object.freeze({
|
|
847
|
+
__hard_subscription__: 1,
|
|
848
|
+
__own_event__: 2
|
|
849
|
+
}), it = [
|
|
850
|
+
v(h.DTP_POINTER, "publisher", 0, null, "publisher gobj"),
|
|
851
|
+
v(h.DTP_POINTER, "subscriber", 0, null, "subscriber gobj"),
|
|
852
|
+
v(h.DTP_STRING, "event", 0, "", "event name subscribed"),
|
|
853
|
+
v(h.DTP_STRING, "renamed_event", 0, "", "rename event name"),
|
|
854
|
+
v(h.DTP_INTEGER, "subs_flag", 0, 0, "subscription flag"),
|
|
855
|
+
v(h.DTP_JSON, "__config__", 0, null, "subscription config"),
|
|
856
|
+
v(h.DTP_JSON, "__global__", 0, null, "global kw, merge in publishing"),
|
|
857
|
+
v(h.DTP_JSON, "__local__", 0, null, "local kw, remove in publishing"),
|
|
858
|
+
v(h.DTP_JSON, "__filter__", 0, null, "filter kw, filter in publishing"),
|
|
859
|
+
v(h.DTP_STRING, "__service__", 0, "", "subscription service"),
|
|
860
|
+
y()
|
|
861
|
+
];
|
|
862
|
+
function lt(e, t, n, r, o) {
|
|
863
|
+
let s = fn(t, r, "__config__", null), i = fn(t, r, "__global__", null), l = fn(t, r, "__local__", null), _ = gn(t, r, "__filter__", null), a = !0;
|
|
864
|
+
if (t && t !== cn(null, e, "publisher", null) && (a = !1), o && o !== cn(null, e, "subscriber", null) && (a = !1), n && n !== un(null, e, "event", "") && (a = !1), Mt(s) > 0) {
|
|
865
|
+
let t = fn(null, e, "__config__", null);
|
|
866
|
+
Mt(t) > 0 && Rt(t, s) || (a = !1);
|
|
867
|
+
}
|
|
868
|
+
if (Mt(i) > 0) {
|
|
869
|
+
let t = fn(null, e, "__global__", null);
|
|
870
|
+
Mt(t) > 0 && Rt(t, i) || (a = !1);
|
|
871
|
+
}
|
|
872
|
+
if (Mt(l) > 0) {
|
|
873
|
+
let t = fn(null, e, "__local__", null);
|
|
874
|
+
Mt(t) > 0 && Rt(t, l) || (a = !1);
|
|
875
|
+
}
|
|
876
|
+
if (Mt(_) > 0) {
|
|
877
|
+
let t = gn(null, e, "__filter__", null);
|
|
878
|
+
Mt(t) > 0 && Rt(t, _) || (a = !1);
|
|
879
|
+
}
|
|
880
|
+
return a;
|
|
881
|
+
}
|
|
882
|
+
function _t(e, t, n, r, o) {
|
|
883
|
+
let s = [];
|
|
884
|
+
for (let i = 0; i < e.length; i++) {
|
|
885
|
+
let l = e[i];
|
|
886
|
+
lt(l, t, n, r, o) && Ct(s, l);
|
|
887
|
+
}
|
|
888
|
+
return s;
|
|
889
|
+
}
|
|
890
|
+
function at(e, t, n, r, o) {
|
|
891
|
+
for (let s = 0; s < e.length; s++) if (lt(e[s], t, n, r, o)) return s;
|
|
892
|
+
return -1;
|
|
893
|
+
}
|
|
894
|
+
function ut(e, n, r, o) {
|
|
895
|
+
let s = cn(e, n, "publisher", null, bt.KW_REQUIRED), i = cn(e, n, "subscriber", null, bt.KW_REQUIRED), l = un(e, n, "event", "", bt.KW_REQUIRED);
|
|
896
|
+
if (!!(an(e, n, "subs_flag", null, bt.KW_REQUIRED) & st.__hard_subscription__) && !r) return -1;
|
|
897
|
+
d && Ye(d, "trace_subscriptions") && (I(t("πππ unsubscribing event '%s': publisher %s, subscriber'%s'", l || "", Oe(s), Oe(i))), Dt(n)), s.obflag & w.obflag_destroyed || o || s.gclass.gmt.mt_subscription_deleted && s.gclass.gmt.mt_subscription_deleted(s, n);
|
|
898
|
+
let _ = at(s.dl_subscriptions, s, l, n, i);
|
|
899
|
+
return _ >= 0 ? Ft(s.dl_subscriptions, _) : (St(`${Oe(e)}: subscription in publisher not found`), Dt(n)), _ = at(i.dl_subscribings, s, l, n, i), _ >= 0 ? Ft(i.dl_subscribings, _) : (St(`${Oe(e)}: subscription in subscriber not found`), Dt(n)), 0;
|
|
900
|
+
}
|
|
901
|
+
function ct(e, n, r, o) {
|
|
902
|
+
if (null == r && (r = {}), !e) return St(`publisher NULL: ev ${n}`), 0;
|
|
903
|
+
if (!o) return St(`subscriber NULL: ev ${n}`), 0;
|
|
904
|
+
const s = new Set([
|
|
905
|
+
"__config__",
|
|
906
|
+
"__global__",
|
|
907
|
+
"__local__",
|
|
908
|
+
"__filter__",
|
|
909
|
+
"__service__"
|
|
910
|
+
]);
|
|
911
|
+
if (Object.keys(r).forEach((t) => {
|
|
912
|
+
s.has(t) || St(`${Oe(e)}: key ignored in subscription (key: ${t}, event: ${n})`);
|
|
913
|
+
}), Xt(n)) n = "";
|
|
914
|
+
else if (!(rt(e, n, D.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & O.gcflag_no_check_output_events)) return St(`event NOT in output event list: ${Oe(e)}, ${n}`), 0;
|
|
915
|
+
let i = _t(e.dl_subscriptions, e, n, r, o);
|
|
916
|
+
Wt(i) > 0 && (St(`${Oe(e)}: ${Wt(i)} subscription(s) REPEATED, will be deleted and override`), Dt(i, "subscription REPEATED"), ft(e, i, !1));
|
|
917
|
+
let l = function(e, t, n, r) {
|
|
918
|
+
let o = A(e, it);
|
|
919
|
+
Ut(o, "event", t), Ut(o, "subscriber", r), Ut(o, "publisher", e);
|
|
920
|
+
let s = 0;
|
|
921
|
+
if (n) {
|
|
922
|
+
let t = fn(e, n, "__config__", null), r = fn(e, n, "__global__", null), i = fn(e, n, "__local__", null), l = gn(e, n, "__filter__", null), _ = un(e, n, "__service__", "");
|
|
923
|
+
if (Mt(r) > 0 && Ut(o, "__global__", xt(r)), Mt(t) > 0) {
|
|
924
|
+
let n = xt(t);
|
|
925
|
+
if (Ut(o, "__config__", n), on(n, "__hard_subscription__")) {
|
|
926
|
+
let t = _n(e, n, "__hard_subscription__", !1);
|
|
927
|
+
Lt(n, "__hard_subscription__"), t && (s |= st.__hard_subscription__);
|
|
928
|
+
}
|
|
929
|
+
if (on(n, "__own_event__")) {
|
|
930
|
+
let t = _n(e, n, "__own_event__", !1);
|
|
931
|
+
Lt(n, "__own_event__"), t && (s |= st.__own_event__);
|
|
932
|
+
}
|
|
933
|
+
}
|
|
934
|
+
Mt(i) > 0 && Ut(o, "__local__", xt(i)), Mt(l) > 0 && Ut(o, "__filter__", xt(l)), Xt(_) || Ut(o, "__service__", _);
|
|
935
|
+
}
|
|
936
|
+
return Ut(o, "subs_flag", s), o;
|
|
937
|
+
}(e, n, r, o);
|
|
938
|
+
return l ? (Ct(e.dl_subscriptions, l), Ct(o.dl_subscribings, l), d && Ye(d, "trace_subscriptions") && (I(t("πππ subscribing event '%s', publisher '%s', subscriber %s", n || "", Oe(e), Oe(o))), r && Dt(r)), e.gclass.gmt.mt_subscription_added && e.gclass.gmt.mt_subscription_added(e, l) < 0 && (ut(e, l, !0, !0), l = 0), l) : (St(`${Oe(e)}: _create_subscription() FAILED`), 0);
|
|
939
|
+
}
|
|
940
|
+
function ft(e, t, n) {
|
|
941
|
+
let r = [...t];
|
|
942
|
+
for (let t = 0; t < r.length; t++) ut(e, r[t], n, !1);
|
|
943
|
+
return 0;
|
|
944
|
+
}
|
|
945
|
+
function gt(e, t, n, r) {
|
|
946
|
+
return null == n && (n = {}), _t(e.dl_subscriptions, e, t, n, r);
|
|
947
|
+
}
|
|
948
|
+
function pt(e, t, n, r) {
|
|
949
|
+
return _t(e.dl_subscribings, r, t, n, e);
|
|
950
|
+
}
|
|
951
|
+
function dt(e, n, r) {
|
|
952
|
+
if (Kt(r) || (r = {}), !e || e.obflag & (w.obflag_destroyed | w.obflag_destroying)) return St("gobj NULL or DESTROYED"), -1;
|
|
953
|
+
if (Xt(n)) return St(`${Oe(e)}: event EMPTY`), -1;
|
|
954
|
+
let o = tt(e, n, !0);
|
|
955
|
+
if (!(o && o.event_flag & (D.EVF_SYSTEM_EVENT | D.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & O.gcflag_no_check_output_events)) return St(`event NOT in output event list: ${Oe(e)}, ev ${n}`), -1;
|
|
956
|
+
let s = d && Ye(d, "trace_subscriptions");
|
|
957
|
+
if (s && (I(t("ππ mach(%s%s^%s), st: %s, ev: %s%s%s", e.running ? "" : "!!", Se(e), je(e), e.current_state.state_name, "", n || "", "")), Dt(r)), e.gclass.gmt.mt_publish_event) {
|
|
958
|
+
let t = e.gclass.gmt.mt_publish_event(e, n, r);
|
|
959
|
+
if (t <= 0) return t;
|
|
960
|
+
}
|
|
961
|
+
let i = [...e.dl_subscriptions], l = 0, _ = 0;
|
|
962
|
+
for (let o = 0; o < i.length; o++) {
|
|
963
|
+
let a = i[o];
|
|
964
|
+
if (e.gclass.gmt.mt_publication_pre_filter) {
|
|
965
|
+
let t = e.gclass.gmt.mt_publication_pre_filter(e, a, n, r);
|
|
966
|
+
if (t < 0) break;
|
|
967
|
+
if (0 === t) continue;
|
|
968
|
+
}
|
|
969
|
+
let u = cn(e, a, "subscriber", null, bt.KW_REQUIRED);
|
|
970
|
+
if (!u || Re(u)) continue;
|
|
971
|
+
let c = an(e, a, "subs_flag", 0, bt.KW_REQUIRED), f = un(e, a, "event", "", bt.KW_REQUIRED);
|
|
972
|
+
if (Xt(f) || 0 === tn(f, n)) {
|
|
973
|
+
fn(e, a, "__config__", null, 0);
|
|
974
|
+
let o = fn(e, a, "__global__", null, 0), i = fn(e, a, "__local__", null, 0), f = gn(e, a, "__filter__", null, 0), g = r, p = 1;
|
|
975
|
+
if (e.gclass.gmt.mt_publication_filter ? p = e.gclass.gmt.mt_publication_filter(e, n, g, u) : Mt(f) > 0 && (p = mn(g, f), s && (I(t("πππ%s publishing with filter, event '%s', subscriber'%s', publisher %s", p ? "π" : "π", n || "", Oe(u), Oe(e))), Dt(f))), p < 0) break;
|
|
976
|
+
if (0 === p) continue;
|
|
977
|
+
let d = tt(u, n, !0);
|
|
978
|
+
if (d && d.event_flag & D.EVF_SYSTEM_EVENT && !nt(u, d.event_name, 0)) continue;
|
|
979
|
+
i && rn(g, i), o && kt(g, o), s && (I(t("ππ mach(%s%s), st: %s, ev: %s, from(%s%s)", u.running ? "" : "!!", Oe(u), et(u), n || "", e && !e.running ? "!!" : "", Oe(e))), Dt(g));
|
|
980
|
+
let b = ot(u, n, g, e);
|
|
981
|
+
if (b < 0 && c & st.__own_event__) {
|
|
982
|
+
l = -1;
|
|
983
|
+
break;
|
|
984
|
+
}
|
|
985
|
+
if (_ += b, l++, Re(e)) break;
|
|
986
|
+
}
|
|
987
|
+
}
|
|
988
|
+
return l || o && o.event_flag & D.EVF_NO_WARN_SUBS || Ot(`${Oe(e)}: Publish event WITHOUT subscribers, ev ${n}`), _;
|
|
989
|
+
}
|
|
990
|
+
var bt = Object.freeze({
|
|
991
|
+
KW_REQUIRED: 1,
|
|
992
|
+
KW_CREATE: 2,
|
|
993
|
+
KW_WILD_NUMBER: 4,
|
|
994
|
+
KW_EXTRACT: 8,
|
|
995
|
+
KW_BACKWARD: 16,
|
|
996
|
+
KW_VERBOSE: 32,
|
|
997
|
+
KW_LOWER: 64,
|
|
998
|
+
KW_RECURSIVE: 128
|
|
999
|
+
}), mt = (Object.freeze({
|
|
1000
|
+
JSON_OBJECT: 1,
|
|
1001
|
+
JSON_ARRAY: 2,
|
|
1002
|
+
JSON_STRING: 3,
|
|
1003
|
+
JSON_INTEGER: 4,
|
|
1004
|
+
JSON_REAL: 5,
|
|
1005
|
+
JSON_TRUE: 6,
|
|
1006
|
+
JSON_FALSE: 7,
|
|
1007
|
+
JSON_NULL: 8
|
|
1008
|
+
}), "undefined" != typeof window ? window.console : console), ht = mt.error, Tt = mt.warn, Et = mt.info, yt = mt.debug;
|
|
1009
|
+
function vt(e) {
|
|
1010
|
+
e ? (ht = e, Tt = e) : (ht = mt.error, Tt = mt.warn);
|
|
1011
|
+
}
|
|
1012
|
+
function jt(e) {
|
|
1013
|
+
const t = Array.prototype.slice.call(arguments);
|
|
1014
|
+
let n = "";
|
|
1015
|
+
if ("string" == typeof e) {
|
|
1016
|
+
let r = 1;
|
|
1017
|
+
n = e.replace(/%[sdifoO]/g, (e) => {
|
|
1018
|
+
const n = t[r++];
|
|
1019
|
+
switch (e) {
|
|
1020
|
+
case "%s": return String(n);
|
|
1021
|
+
case "%d":
|
|
1022
|
+
case "%i": return parseInt(n);
|
|
1023
|
+
case "%f": return parseFloat(n);
|
|
1024
|
+
case "%o":
|
|
1025
|
+
case "%O": return "object" == typeof n ? JSON.stringify(n) : String(n);
|
|
1026
|
+
default: return e;
|
|
1027
|
+
}
|
|
1028
|
+
});
|
|
1029
|
+
const o = t.slice(r).map((e) => "object" == typeof e ? JSON.stringify(e) : String(e));
|
|
1030
|
+
o.length > 0 && (n += " " + o.join(" "));
|
|
1031
|
+
} else n = t.map((e) => "object" == typeof e ? JSON.stringify(e) : String(e)).join(" ");
|
|
1032
|
+
return n;
|
|
1033
|
+
}
|
|
1034
|
+
function St(e) {
|
|
1035
|
+
let t = jt(e), n = Cn();
|
|
1036
|
+
ht && (ht === window.console.error ? ht("%c" + n + " ERROR: " + String(t), "color:red") : (window.console.error("%c" + n + " ERROR: " + String(t), "color:red"), ht(`${n} ERROR: ${String(t)}`)));
|
|
1037
|
+
}
|
|
1038
|
+
function Ot(e) {
|
|
1039
|
+
let t = jt(e), n = Cn();
|
|
1040
|
+
Tt && (Tt === window.console.warn ? Tt("%c" + n + " WARNING: " + String(t), "color:yellow") : (window.console.warn("%c" + n + " WARNING: " + String(t), "color:yellow"), Tt(`${n} WARNING: ${String(t)}`)));
|
|
1041
|
+
}
|
|
1042
|
+
function Nt(e) {
|
|
1043
|
+
let t = jt(e), n = Cn();
|
|
1044
|
+
yt && yt("%c" + n + " DEBUG: " + String(t), "color:silver");
|
|
1045
|
+
}
|
|
1046
|
+
function wt(e) {
|
|
1047
|
+
let t = jt(e), n = Cn();
|
|
1048
|
+
yt && yt("%c" + n + " MSG: " + String(t), "color:cyan");
|
|
1049
|
+
}
|
|
1050
|
+
function Dt(e, t) {
|
|
1051
|
+
t && window.console.warn("=====> " + t), window.console.dir(e);
|
|
1052
|
+
}
|
|
1053
|
+
function xt(e) {
|
|
1054
|
+
return structuredClone(e);
|
|
1055
|
+
}
|
|
1056
|
+
function Rt(e, t) {
|
|
1057
|
+
if (e === t) return !0;
|
|
1058
|
+
if (null === e || null === t) return e === t;
|
|
1059
|
+
if (typeof e != typeof t) return !1;
|
|
1060
|
+
if (Array.isArray(e) !== Array.isArray(t)) return !1;
|
|
1061
|
+
if (Array.isArray(e)) {
|
|
1062
|
+
if (e.length !== t.length) return !1;
|
|
1063
|
+
for (let n = 0; n < e.length; n++) if (!Rt(e[n], t[n])) return !1;
|
|
1064
|
+
return !0;
|
|
1065
|
+
}
|
|
1066
|
+
if ("object" == typeof e) {
|
|
1067
|
+
let n = Object.keys(e).sort(), r = Object.keys(t).sort();
|
|
1068
|
+
if (n.length !== r.length) return !1;
|
|
1069
|
+
for (let o = 0; o < n.length; o++) {
|
|
1070
|
+
if (n[o] !== r[o]) return !1;
|
|
1071
|
+
if (!Rt(e[n[o]], t[r[o]])) return !1;
|
|
1072
|
+
}
|
|
1073
|
+
return !0;
|
|
1074
|
+
}
|
|
1075
|
+
return e === t;
|
|
1076
|
+
}
|
|
1077
|
+
function kt(e, t) {
|
|
1078
|
+
if (!t) return e;
|
|
1079
|
+
for (let n of Object.keys(t)) e[n] = t[n];
|
|
1080
|
+
return e;
|
|
1081
|
+
}
|
|
1082
|
+
function $t(e, t) {
|
|
1083
|
+
if (!t) return e;
|
|
1084
|
+
for (let n in t) t.hasOwnProperty(n) && e.hasOwnProperty(n) && (e[n] = t[n]);
|
|
1085
|
+
return e;
|
|
1086
|
+
}
|
|
1087
|
+
function It(e, t) {
|
|
1088
|
+
if (!t) return e;
|
|
1089
|
+
for (let n in t) t.hasOwnProperty(n) && !e.hasOwnProperty(n) && (e[n] = t[n]);
|
|
1090
|
+
return e;
|
|
1091
|
+
}
|
|
1092
|
+
function At(e, t) {
|
|
1093
|
+
if (e && e.hasOwnProperty(t)) return e[t];
|
|
1094
|
+
}
|
|
1095
|
+
function Lt(e, t) {
|
|
1096
|
+
e && e.hasOwnProperty(t) && delete e[t];
|
|
1097
|
+
}
|
|
1098
|
+
function Pt(e, t, n) {
|
|
1099
|
+
e[t] = n;
|
|
1100
|
+
}
|
|
1101
|
+
function Ut(e, t, n) {
|
|
1102
|
+
e[t] = n;
|
|
1103
|
+
}
|
|
1104
|
+
function Ct(e, t) {
|
|
1105
|
+
e.push(t);
|
|
1106
|
+
}
|
|
1107
|
+
function Gt(e, t) {
|
|
1108
|
+
e.push(t);
|
|
1109
|
+
}
|
|
1110
|
+
function Ft(e, t) {
|
|
1111
|
+
e.splice(t, 1);
|
|
1112
|
+
}
|
|
1113
|
+
function Vt(e) {
|
|
1114
|
+
return Kt(e) ? Object.keys(e).length : 0;
|
|
1115
|
+
}
|
|
1116
|
+
function Wt(e) {
|
|
1117
|
+
return Yt(e) ? e.length : 0;
|
|
1118
|
+
}
|
|
1119
|
+
function Mt(e) {
|
|
1120
|
+
return Kt(e) ? Object.keys(e).length : Yt(e) ? e.length : Bt(e) && e.length > 0 ? 1 : 0;
|
|
1121
|
+
}
|
|
1122
|
+
function Kt(e) {
|
|
1123
|
+
return null !== e && "object" == typeof e && !Array.isArray(e);
|
|
1124
|
+
}
|
|
1125
|
+
function Yt(e) {
|
|
1126
|
+
return Array.isArray(e);
|
|
1127
|
+
}
|
|
1128
|
+
function Bt(e) {
|
|
1129
|
+
return "string" == typeof e;
|
|
1130
|
+
}
|
|
1131
|
+
function Jt(e) {
|
|
1132
|
+
return "number" == typeof e && Number.isFinite(e);
|
|
1133
|
+
}
|
|
1134
|
+
function zt(e) {
|
|
1135
|
+
return "boolean" == typeof e;
|
|
1136
|
+
}
|
|
1137
|
+
function Qt(e) {
|
|
1138
|
+
return null == e;
|
|
1139
|
+
}
|
|
1140
|
+
function Ht(e) {
|
|
1141
|
+
return "function" == typeof e;
|
|
1142
|
+
}
|
|
1143
|
+
function qt(e) {
|
|
1144
|
+
return e instanceof S;
|
|
1145
|
+
}
|
|
1146
|
+
function Xt(e) {
|
|
1147
|
+
return !Bt(e) || 0 === e.length;
|
|
1148
|
+
}
|
|
1149
|
+
function Zt(e) {
|
|
1150
|
+
return Jt(e) ? Boolean(e) : /^\s*(true|1|on)\s*$/i.test(e);
|
|
1151
|
+
}
|
|
1152
|
+
function en(e, t) {
|
|
1153
|
+
return e === t ? 0 : e > t ? 1 : -1;
|
|
1154
|
+
}
|
|
1155
|
+
function tn(e, t) {
|
|
1156
|
+
let n = e.toLowerCase(), r = t.toLowerCase();
|
|
1157
|
+
return n === r ? 0 : n > r ? 1 : -1;
|
|
1158
|
+
}
|
|
1159
|
+
function nn(e, t) {
|
|
1160
|
+
if (Kt(e) || Kt(t) || Yt(e) || Yt(t)) return 0;
|
|
1161
|
+
if (Jt(e) || Jt(t)) {
|
|
1162
|
+
let n = Number(e), r = Number(t);
|
|
1163
|
+
return n > r ? 1 : n < r ? -1 : 0;
|
|
1164
|
+
}
|
|
1165
|
+
if (zt(e) || zt(t)) {
|
|
1166
|
+
let n = Number(e), r = Number(t);
|
|
1167
|
+
return n > r ? 1 : n < r ? -1 : 0;
|
|
1168
|
+
}
|
|
1169
|
+
return en(String(e), String(t));
|
|
1170
|
+
}
|
|
1171
|
+
function rn(e, t) {
|
|
1172
|
+
if ("object" != typeof t || Array.isArray(t)) if (Array.isArray(t)) for (const n of t) rn(e, n);
|
|
1173
|
+
else "string" == typeof t && delete e[t];
|
|
1174
|
+
else for (const n of Object.keys(t)) delete e[n];
|
|
1175
|
+
}
|
|
1176
|
+
function on(e, t) {
|
|
1177
|
+
return !(!(t in e) || !e.hasOwnProperty(t));
|
|
1178
|
+
}
|
|
1179
|
+
function sn(e, t, n, r) {
|
|
1180
|
+
if (e && !qt(e) && St("GObj bad instanceof"), !Kt(t) && !Yt(t)) return St(`${Oe(e)}: kw must be list or dict`), 0;
|
|
1181
|
+
if (!Bt(n)) return St(`${Oe(e)}: path must be a string: ${String(n)}`), 0;
|
|
1182
|
+
let o = n.split("`");
|
|
1183
|
+
if (o.length <= 1) return t[n];
|
|
1184
|
+
let s = o.length;
|
|
1185
|
+
for (let i = 0; i < s; i++) if (void 0 === (t = t[o[i]])) return void (r && St(`${Oe(e)}: path not found: ${String(n)}`));
|
|
1186
|
+
return t;
|
|
1187
|
+
}
|
|
1188
|
+
function ln(e, t, n) {
|
|
1189
|
+
e && !qt(e) && St("GObj bad instanceof");
|
|
1190
|
+
let [r, o] = function(e, t) {
|
|
1191
|
+
let n = e.lastIndexOf(t);
|
|
1192
|
+
return -1 === n ? [e, ""] : [e.substring(0, n), e.substring(n + 1)];
|
|
1193
|
+
}(n, "`");
|
|
1194
|
+
return Xt(o) ? Lt(t, n) : Lt(sn(e, t, r, !0), o), 0;
|
|
1195
|
+
}
|
|
1196
|
+
function _n(e, t, n, r, o) {
|
|
1197
|
+
e && !qt(e) && St("GObj bad instanceof");
|
|
1198
|
+
let s = sn(e, t, n, !1);
|
|
1199
|
+
const i = o && o & bt.KW_REQUIRED, l = o && o & bt.KW_CREATE, _ = o && o & bt.KW_EXTRACT;
|
|
1200
|
+
if (void 0 === s) {
|
|
1201
|
+
if (l) {
|
|
1202
|
+
let o = Boolean(r);
|
|
1203
|
+
return pn(e, t, n, o), o;
|
|
1204
|
+
}
|
|
1205
|
+
return i && (St(`path not found: '${n}'`), Dt(t)), Boolean(r);
|
|
1206
|
+
}
|
|
1207
|
+
return _ && ln(e, t, n), Boolean(s);
|
|
1208
|
+
}
|
|
1209
|
+
function an(e, t, n, r, o) {
|
|
1210
|
+
e && !qt(e) && St("GObj bad instanceof");
|
|
1211
|
+
let s = sn(e, t, n, !1);
|
|
1212
|
+
const i = o && o & bt.KW_REQUIRED, l = o && o & bt.KW_CREATE, _ = o && o & bt.KW_EXTRACT;
|
|
1213
|
+
if (void 0 === s) {
|
|
1214
|
+
if (l) {
|
|
1215
|
+
let o = parseInt(r);
|
|
1216
|
+
return pn(e, t, n, o), o;
|
|
1217
|
+
}
|
|
1218
|
+
return i && (St(`path not found: '${n}'`), Dt(t)), parseInt(r);
|
|
1219
|
+
}
|
|
1220
|
+
return _ && ln(e, t, n), Jt(s) ? parseInt(s) : (i && (St(`path value MUST BE a number: ${n}`), wt(t)), parseInt(r));
|
|
1221
|
+
}
|
|
1222
|
+
function un(e, t, n, r, o) {
|
|
1223
|
+
e && !qt(e) && St("GObj bad instanceof");
|
|
1224
|
+
let s = sn(e, t, n, !1);
|
|
1225
|
+
const i = o && o & bt.KW_REQUIRED, l = o && o & bt.KW_CREATE, _ = o && o & bt.KW_EXTRACT;
|
|
1226
|
+
if (void 0 === s) {
|
|
1227
|
+
if (l) {
|
|
1228
|
+
let o = String(r);
|
|
1229
|
+
return pn(e, t, n, o), o;
|
|
1230
|
+
}
|
|
1231
|
+
return i && (St(`path not found: '${n}'`), Dt(t)), String(r);
|
|
1232
|
+
}
|
|
1233
|
+
return _ && ln(e, t, n), Bt(s) ? String(s) : (i && (St(`${Oe(e)}: path value MUST BE a string: ${n}`), wt(t)), String(r));
|
|
1234
|
+
}
|
|
1235
|
+
function cn(e, t, n, r, o) {
|
|
1236
|
+
e && !qt(e) && St("GObj bad instanceof");
|
|
1237
|
+
let s = sn(e, t, n, !1);
|
|
1238
|
+
const i = o && o & bt.KW_REQUIRED, l = o && o & bt.KW_CREATE, _ = o && o & bt.KW_EXTRACT;
|
|
1239
|
+
if (void 0 === s) {
|
|
1240
|
+
if (l) {
|
|
1241
|
+
let o = r;
|
|
1242
|
+
return pn(e, t, n, o), o;
|
|
1243
|
+
}
|
|
1244
|
+
return i && (St(`path not found: '${n}'`), Dt(t)), r;
|
|
1245
|
+
}
|
|
1246
|
+
return _ && ln(e, t, n), s;
|
|
1247
|
+
}
|
|
1248
|
+
function fn(e, t, n, r, o) {
|
|
1249
|
+
e && !qt(e) && St("GObj bad instanceof");
|
|
1250
|
+
let s = sn(e, t, n, !1);
|
|
1251
|
+
const i = o && o & bt.KW_REQUIRED, l = o && o & bt.KW_CREATE, _ = o && o & bt.KW_EXTRACT;
|
|
1252
|
+
if (void 0 === s) {
|
|
1253
|
+
if (l) {
|
|
1254
|
+
let o = Object(r);
|
|
1255
|
+
return pn(e, t, n, o), o;
|
|
1256
|
+
}
|
|
1257
|
+
return i && (St(`path not found: '${n}'`), Dt(t)), Object(r);
|
|
1258
|
+
}
|
|
1259
|
+
return _ && ln(e, t, n), Kt(s) ? Object(s) : (i && (St(`path value MUST BE a dict: ${n}`), wt(t)), Object(r));
|
|
1260
|
+
}
|
|
1261
|
+
function gn(e, t, n, r, o) {
|
|
1262
|
+
e && !qt(e) && St("GObj bad instanceof");
|
|
1263
|
+
let s = sn(e, t, n, !1);
|
|
1264
|
+
const i = o && o & bt.KW_REQUIRED, l = o && o & bt.KW_CREATE, _ = o && o & bt.KW_EXTRACT;
|
|
1265
|
+
if (void 0 === s) {
|
|
1266
|
+
if (l) {
|
|
1267
|
+
let o = r;
|
|
1268
|
+
return pn(e, t, n, o), o;
|
|
1269
|
+
}
|
|
1270
|
+
return i && (St(`path not found: '${n}'`), Dt(t)), r;
|
|
1271
|
+
}
|
|
1272
|
+
return _ && ln(e, t, n), s;
|
|
1273
|
+
}
|
|
1274
|
+
function pn(e, t, n, r) {
|
|
1275
|
+
if (e && !qt(e) && St("GObj bad instanceof"), !Kt(t)) return St("kw is not an object"), -1;
|
|
1276
|
+
let o = n.split("`");
|
|
1277
|
+
if (o.length <= 1) return t[n] = r, 0;
|
|
1278
|
+
let s = o.length;
|
|
1279
|
+
for (let e = 0; e < s; e++) {
|
|
1280
|
+
let n = o[e];
|
|
1281
|
+
e === s - 1 ? t[n] = r : (void 0 === t[n] && (t[n] = {}), t = t[n]);
|
|
1282
|
+
}
|
|
1283
|
+
return 0;
|
|
1284
|
+
}
|
|
1285
|
+
function dn(e, t, n, r, o) {
|
|
1286
|
+
if (e && !qt(e) && St("GObj bad instanceof"), !Kt(t)) return St("kw is not an object"), -1;
|
|
1287
|
+
let s = fn(e, t, n, {}, !0);
|
|
1288
|
+
return Kt(s) ? (s[r] = o, 0) : (St("subdict is not an object"), -1);
|
|
1289
|
+
}
|
|
1290
|
+
function bn(e, n, r) {
|
|
1291
|
+
let o = "", s = !1;
|
|
1292
|
+
if (Yt(n)) {
|
|
1293
|
+
s = !1;
|
|
1294
|
+
for (let i = 0; i < n.length; i++) {
|
|
1295
|
+
let l = n[i];
|
|
1296
|
+
if (o = Xt(r) ? t("%s", r) : t("%s`%d", r, i), s = bn(e, l, o), s) break;
|
|
1297
|
+
}
|
|
1298
|
+
} else if (Kt(n)) {
|
|
1299
|
+
s = !0;
|
|
1300
|
+
let i = Object.keys(n);
|
|
1301
|
+
for (let l = 0; l < i.length; l++) {
|
|
1302
|
+
let _ = i[l], a = n[_];
|
|
1303
|
+
if (o = Xt(r) ? t("%s", _) : t("%s`%s", r, _), Yt(a) || Kt(a)) {
|
|
1304
|
+
if (s = bn(e, a, o), !s) break;
|
|
1305
|
+
continue;
|
|
1306
|
+
}
|
|
1307
|
+
let u = gn(0, e, o, 0, 0);
|
|
1308
|
+
if (u || (u = At(e, o)), !u) {
|
|
1309
|
+
s = !1;
|
|
1310
|
+
break;
|
|
1311
|
+
}
|
|
1312
|
+
if (0 !== nn(u, a)) {
|
|
1313
|
+
s = !1;
|
|
1314
|
+
break;
|
|
1315
|
+
}
|
|
1316
|
+
}
|
|
1317
|
+
}
|
|
1318
|
+
return s;
|
|
1319
|
+
}
|
|
1320
|
+
function mn(e, t) {
|
|
1321
|
+
return 0 === Mt(t) || bn(e, t, "");
|
|
1322
|
+
}
|
|
1323
|
+
function hn(e, t, n, r) {
|
|
1324
|
+
e && !qt(e) && St("GObj bad instanceof");
|
|
1325
|
+
let o = {};
|
|
1326
|
+
if (Bt(n) && !Xt(n)) {
|
|
1327
|
+
let s = n;
|
|
1328
|
+
t.hasOwnProperty(s) ? o[s] = t[s] : r && St(`${Oe(e)}: key not found: ${s}`);
|
|
1329
|
+
} else if (Kt(n) && Vt(n) > 0) for (let s of Object.keys(n)) t.hasOwnProperty(s) ? o[s] = t[s] : r && St(`${Oe(e)}: key not found: ${s}`);
|
|
1330
|
+
else {
|
|
1331
|
+
if (!(Yt(n) && Wt(n) > 0)) return t;
|
|
1332
|
+
for (let s = 0; s < n.length; s++) {
|
|
1333
|
+
let i = n[s];
|
|
1334
|
+
t.hasOwnProperty(i) ? o[i] = t[i] : r && St(`${Oe(e)}: key not found: ${i}`);
|
|
1335
|
+
}
|
|
1336
|
+
}
|
|
1337
|
+
return o;
|
|
1338
|
+
}
|
|
1339
|
+
function Tn(e, t, n, r) {
|
|
1340
|
+
let o = {};
|
|
1341
|
+
if (kt(o, t), Bt(n) && !Xt(n)) {
|
|
1342
|
+
let s = n;
|
|
1343
|
+
gn(e, t, s, 0, 0) ? Lt(o, s) : r && St(`${Oe(e)}: key not found: ${s}`);
|
|
1344
|
+
} else if (Kt(n) && Vt(n) > 0) for (let s of Object.keys(n)) t.hasOwnProperty(s) ? Lt(o, s) : r && St(`${Oe(e)}: key not found: ${s}`);
|
|
1345
|
+
else {
|
|
1346
|
+
if (!(Yt(n) && Wt(n) > 0)) return {};
|
|
1347
|
+
for (let s = 0; s < n.length; s++) {
|
|
1348
|
+
let i = n[s];
|
|
1349
|
+
t.hasOwnProperty(i) ? Lt(o, i) : r && St(`${Oe(e)}: key not found: ${i}`);
|
|
1350
|
+
}
|
|
1351
|
+
}
|
|
1352
|
+
return o;
|
|
1353
|
+
}
|
|
1354
|
+
function En(e, t, n = !1) {
|
|
1355
|
+
if ("undefined" != typeof window && window.localStorage) try {
|
|
1356
|
+
let r = window.localStorage.getItem(e);
|
|
1357
|
+
return null === r ? (n && yn(e, t), t) : JSON.parse(r);
|
|
1358
|
+
} catch (n) {
|
|
1359
|
+
return window.console.warn(`Error reading localStorage key "${e}":`, n), t;
|
|
1360
|
+
}
|
|
1361
|
+
}
|
|
1362
|
+
function yn(e, t) {
|
|
1363
|
+
if ("undefined" != typeof window && window.localStorage) if (e && void 0 !== t) try {
|
|
1364
|
+
window.localStorage.setItem(e, JSON.stringify(t));
|
|
1365
|
+
} catch (t) {
|
|
1366
|
+
window.console.warn(`Error saving localStorage key "${e}":`, t);
|
|
1367
|
+
}
|
|
1368
|
+
else window.console.warn(`Invalid key or value for localStorage: key=${e}, value=${t}`);
|
|
1369
|
+
}
|
|
1370
|
+
function vn(e) {
|
|
1371
|
+
if ("undefined" != typeof window && window.localStorage) if (e) try {
|
|
1372
|
+
window.localStorage.removeItem(e);
|
|
1373
|
+
} catch (t) {
|
|
1374
|
+
window.console.warn(`Error removing localStorage key "${e}":`, t);
|
|
1375
|
+
}
|
|
1376
|
+
else window.console.warn(`Invalid key for localStorage removal: ${e}`);
|
|
1377
|
+
}
|
|
1378
|
+
function jn(e, t) {
|
|
1379
|
+
if (Qt(e) || Qt(t)) return !0;
|
|
1380
|
+
if (Yt(e)) {
|
|
1381
|
+
if (0 === e.length) return !0;
|
|
1382
|
+
for (let n = 0; n < e.length; n++) if (e[n] === t) return !0;
|
|
1383
|
+
} else if (Kt(e)) {
|
|
1384
|
+
if (0 === Object.keys(e).length) return !0;
|
|
1385
|
+
for (let n in e) if (n === t) return !0;
|
|
1386
|
+
} else if (Bt(e) && e === t) return !0;
|
|
1387
|
+
return !1;
|
|
1388
|
+
}
|
|
1389
|
+
function Sn(e, t, n, r, o) {
|
|
1390
|
+
if (e && !qt(e) && St("GObj bad instanceof"), !t) return null;
|
|
1391
|
+
o || (o = mn);
|
|
1392
|
+
let s = [];
|
|
1393
|
+
if (Yt(t)) for (let i = 0; i < t.length; i++) {
|
|
1394
|
+
let l, _ = t[i];
|
|
1395
|
+
if (Kt(_)) l = un(e, _, "id", "", 0);
|
|
1396
|
+
else {
|
|
1397
|
+
if (!Bt(_)) continue;
|
|
1398
|
+
l = _;
|
|
1399
|
+
}
|
|
1400
|
+
jn(n, l) && o(_, r) && s.push(_);
|
|
1401
|
+
}
|
|
1402
|
+
else {
|
|
1403
|
+
if (!Kt(t)) return St("kw_collect() BAD kw parameter"), null;
|
|
1404
|
+
for (let e of Object.keys(t)) {
|
|
1405
|
+
let i = t[e];
|
|
1406
|
+
jn(n, e) && o(i, r) && s.push(i);
|
|
1407
|
+
}
|
|
1408
|
+
}
|
|
1409
|
+
return s;
|
|
1410
|
+
}
|
|
1411
|
+
function On(e, t) {
|
|
1412
|
+
if (!e) return -1;
|
|
1413
|
+
for (let n = 0; n < e.length; n++) if (e[n] && e[n].id === t) return n;
|
|
1414
|
+
return -1;
|
|
1415
|
+
}
|
|
1416
|
+
function Nn(e, t, n) {
|
|
1417
|
+
if (!e || !t) return St("ERROR: str_in_list() list or str empty"), !1;
|
|
1418
|
+
let r = e.length;
|
|
1419
|
+
if (n) {
|
|
1420
|
+
t = t.toLowerCase();
|
|
1421
|
+
for (let n = 0; n < r; n++) {
|
|
1422
|
+
let r = e[n];
|
|
1423
|
+
if (r && r.toLowerCase() === t) return !0;
|
|
1424
|
+
}
|
|
1425
|
+
} else for (let n = 0; n < r; n++) if (e[n] === t) return !0;
|
|
1426
|
+
return !1;
|
|
1427
|
+
}
|
|
1428
|
+
function wn(e, t) {
|
|
1429
|
+
try {
|
|
1430
|
+
let n = e.__md_iev__;
|
|
1431
|
+
if (n) return n[t];
|
|
1432
|
+
} catch (e) {
|
|
1433
|
+
return;
|
|
1434
|
+
}
|
|
1435
|
+
}
|
|
1436
|
+
function Dn(e, t, n) {
|
|
1437
|
+
let r = e.__md_iev__;
|
|
1438
|
+
r || (r = {}, e.__md_iev__ = r), r[t] = n;
|
|
1439
|
+
}
|
|
1440
|
+
function xn(e, t, n, r) {
|
|
1441
|
+
if (!qt(e)) return St("gobj is not a GObj"), null;
|
|
1442
|
+
if (!t) return;
|
|
1443
|
+
let o = wn(t, n);
|
|
1444
|
+
o || (o = [], Dn(t, n, o));
|
|
1445
|
+
try {
|
|
1446
|
+
Yt(o) && o.unshift(r);
|
|
1447
|
+
} catch (e) {
|
|
1448
|
+
St(e);
|
|
1449
|
+
}
|
|
1450
|
+
}
|
|
1451
|
+
function Rn(e, t, n, r) {
|
|
1452
|
+
if (!qt(e)) return St("gobj is not a GObj"), null;
|
|
1453
|
+
if (!Kt(t)) return St("kw is not a dict"), null;
|
|
1454
|
+
let o = wn(t, n);
|
|
1455
|
+
return o ? 0 === o.length ? (r && St(`stack empty: ${n}`), null) : o[0] : (r && St(`stack NOT FOUND: ${n}`), null);
|
|
1456
|
+
}
|
|
1457
|
+
function kn(e, t, n) {
|
|
1458
|
+
return Xt(n) ? ln(e, t, "__md_iev__`__msg_type__") : dn(e, t, "__md_iev__", "__msg_type__", n), 0;
|
|
1459
|
+
}
|
|
1460
|
+
function $n(e, t) {
|
|
1461
|
+
return un(e, t, "__md_iev__`__msg_type__", "", 0);
|
|
1462
|
+
}
|
|
1463
|
+
function In(e, t, n) {
|
|
1464
|
+
void 0 !== n && Bt(n) || (n = "");
|
|
1465
|
+
for (let r of Object.keys(e)) {
|
|
1466
|
+
if (!e.hasOwnProperty(r)) continue;
|
|
1467
|
+
let o = (n.length ? "`" : "") + r;
|
|
1468
|
+
n += o, t.apply(this, [
|
|
1469
|
+
e,
|
|
1470
|
+
r,
|
|
1471
|
+
e[r],
|
|
1472
|
+
n
|
|
1473
|
+
]), Kt(e[r]) && In(e[r], t, n), n = n.slice(0, -o.length);
|
|
1474
|
+
}
|
|
1475
|
+
}
|
|
1476
|
+
function An(e, t, n, r) {
|
|
1477
|
+
if (!e) return null;
|
|
1478
|
+
let o, s = e.length;
|
|
1479
|
+
for (o = 0; o < s; o++) {
|
|
1480
|
+
let s = e[o];
|
|
1481
|
+
if (s) {
|
|
1482
|
+
let e = s.id;
|
|
1483
|
+
if (e && e === n) return s;
|
|
1484
|
+
if (r && on(s, t)) {
|
|
1485
|
+
let e = An(s[t], t, n, r);
|
|
1486
|
+
if (e) return e;
|
|
1487
|
+
}
|
|
1488
|
+
}
|
|
1489
|
+
}
|
|
1490
|
+
return null;
|
|
1491
|
+
}
|
|
1492
|
+
function Ln(e) {
|
|
1493
|
+
function t(e) {
|
|
1494
|
+
let t = e.replace(/-/g, "+").replace(/_/g, "/");
|
|
1495
|
+
switch (t.length % 4) {
|
|
1496
|
+
case 0: break;
|
|
1497
|
+
case 2:
|
|
1498
|
+
t += "==";
|
|
1499
|
+
break;
|
|
1500
|
+
case 3:
|
|
1501
|
+
t += "=";
|
|
1502
|
+
break;
|
|
1503
|
+
default: throw "Illegal base64url string!";
|
|
1504
|
+
}
|
|
1505
|
+
try {
|
|
1506
|
+
return function(e) {
|
|
1507
|
+
return decodeURIComponent(atob(e).replace(/(.)/g, function(e, t) {
|
|
1508
|
+
let n = t.charCodeAt(0).toString(16).toUpperCase();
|
|
1509
|
+
return n.length < 2 && (n = "0" + n), "%" + n;
|
|
1510
|
+
}));
|
|
1511
|
+
}(t);
|
|
1512
|
+
} catch (e) {
|
|
1513
|
+
return atob(t);
|
|
1514
|
+
}
|
|
1515
|
+
}
|
|
1516
|
+
let n = e.split(".");
|
|
1517
|
+
return {
|
|
1518
|
+
header: t(n[0]),
|
|
1519
|
+
payload: t(n[1]),
|
|
1520
|
+
signature: t(n[2])
|
|
1521
|
+
};
|
|
1522
|
+
}
|
|
1523
|
+
function Pn(e) {
|
|
1524
|
+
return null == e ? "" : String(e).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
1525
|
+
}
|
|
1526
|
+
function Un(e) {
|
|
1527
|
+
const t = document.createElement("template");
|
|
1528
|
+
return t.innerHTML = e.trim(), t.content.firstChild;
|
|
1529
|
+
}
|
|
1530
|
+
function Cn() {
|
|
1531
|
+
const e = /* @__PURE__ */ new Date(), t = e.toISOString().slice(0, 19), n = String(e.getMilliseconds()).padStart(3, "0"), r = e.getTimezoneOffset();
|
|
1532
|
+
return `${t}.${n}${r > 0 ? "-" : "+"}${String(Math.abs(r) / 60).padStart(2, "0")}${String(Math.abs(r) % 60).padStart(2, "0")}`;
|
|
1533
|
+
}
|
|
1534
|
+
function Gn(e, t) {
|
|
1535
|
+
if (!e) throw "ERROR: index_in_list() list empty";
|
|
1536
|
+
for (let n = 0; n < e.length; n++) if (t === e[n]) return n;
|
|
1537
|
+
return -1;
|
|
1538
|
+
}
|
|
1539
|
+
function Fn() {
|
|
1540
|
+
let e = "";
|
|
1541
|
+
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;
|
|
1542
|
+
}
|
|
1543
|
+
function Vn(e) {
|
|
1544
|
+
let t = null;
|
|
1545
|
+
return "function" != typeof e && "object" != typeof e || (t = ("" + e).match(/function\s*([\w\$]*)\s*\(/)), null !== t ? t[1] + "()" : "";
|
|
1546
|
+
}
|
|
1547
|
+
function Wn(e) {
|
|
1548
|
+
return "persistent-attrs-" + Oe(e);
|
|
1549
|
+
}
|
|
1550
|
+
function Mn(e, t) {
|
|
1551
|
+
if (Bt(t)) {
|
|
1552
|
+
if (-1 === t.indexOf("^")) {
|
|
1553
|
+
let n, r, o = e.fkey;
|
|
1554
|
+
if (1 !== Vt(o)) return St("bad fkey 1"), St(e), St(t), null;
|
|
1555
|
+
for (const e of Object.keys(o)) {
|
|
1556
|
+
n = e, r = o[e];
|
|
1557
|
+
break;
|
|
1558
|
+
}
|
|
1559
|
+
return {
|
|
1560
|
+
topic_name: n,
|
|
1561
|
+
id: t,
|
|
1562
|
+
hook_name: r
|
|
1563
|
+
};
|
|
1564
|
+
}
|
|
1565
|
+
{
|
|
1566
|
+
let n = t.split("^");
|
|
1567
|
+
return 3 !== n.length ? (St("bad fkey 2"), St(e), St(t), null) : {
|
|
1568
|
+
topic_name: n[0],
|
|
1569
|
+
id: n[1],
|
|
1570
|
+
hook_name: n[2]
|
|
1571
|
+
};
|
|
1572
|
+
}
|
|
1573
|
+
}
|
|
1574
|
+
return Kt(t) ? {
|
|
1575
|
+
topic_name: t.topic_name,
|
|
1576
|
+
id: t.id,
|
|
1577
|
+
hook_name: t.hook_name
|
|
1578
|
+
} : (St("bad fkey 3"), St(e), St(t), null);
|
|
1579
|
+
}
|
|
1580
|
+
var Kn = [
|
|
1581
|
+
"string",
|
|
1582
|
+
"integer",
|
|
1583
|
+
"object",
|
|
1584
|
+
"dict",
|
|
1585
|
+
"array",
|
|
1586
|
+
"list",
|
|
1587
|
+
"real",
|
|
1588
|
+
"boolean",
|
|
1589
|
+
"blob"
|
|
1590
|
+
], Yn = [
|
|
1591
|
+
"persistent",
|
|
1592
|
+
"required",
|
|
1593
|
+
"notnull",
|
|
1594
|
+
"wild",
|
|
1595
|
+
"inherit",
|
|
1596
|
+
"readable",
|
|
1597
|
+
"writable",
|
|
1598
|
+
"hidden",
|
|
1599
|
+
"stats",
|
|
1600
|
+
"rstats",
|
|
1601
|
+
"pstats"
|
|
1602
|
+
], Bn = [
|
|
1603
|
+
"hook",
|
|
1604
|
+
"fkey",
|
|
1605
|
+
"enum",
|
|
1606
|
+
"template",
|
|
1607
|
+
"uuid",
|
|
1608
|
+
"rowid",
|
|
1609
|
+
"password",
|
|
1610
|
+
"email",
|
|
1611
|
+
"url",
|
|
1612
|
+
"time",
|
|
1613
|
+
"now",
|
|
1614
|
+
"date",
|
|
1615
|
+
"color",
|
|
1616
|
+
"image",
|
|
1617
|
+
"tel",
|
|
1618
|
+
"table",
|
|
1619
|
+
"id",
|
|
1620
|
+
"currency",
|
|
1621
|
+
"hex",
|
|
1622
|
+
"binary",
|
|
1623
|
+
"percent",
|
|
1624
|
+
"base64",
|
|
1625
|
+
"coordinates",
|
|
1626
|
+
"gbuffer"
|
|
1627
|
+
];
|
|
1628
|
+
function Jn(e) {
|
|
1629
|
+
let t = {
|
|
1630
|
+
name: e.id,
|
|
1631
|
+
header: e.header,
|
|
1632
|
+
real_type: e.type,
|
|
1633
|
+
type: e.type,
|
|
1634
|
+
enum_list: null,
|
|
1635
|
+
is_required: !1,
|
|
1636
|
+
is_writable: !1,
|
|
1637
|
+
is_hidden: !1,
|
|
1638
|
+
default_value: e.default,
|
|
1639
|
+
placeholder: e.placeholder,
|
|
1640
|
+
fillspace: e.fillspace || 4
|
|
1641
|
+
};
|
|
1642
|
+
if (!e.flag) return t;
|
|
1643
|
+
for (let n = 0; n < e.flag.length; n++) {
|
|
1644
|
+
let r = e.flag[n];
|
|
1645
|
+
if (Nn(Bn, r)) {
|
|
1646
|
+
switch (r) {
|
|
1647
|
+
case "enum":
|
|
1648
|
+
t.enum_list = e.enum;
|
|
1649
|
+
break;
|
|
1650
|
+
case "template":
|
|
1651
|
+
t.enum_list = e.template;
|
|
1652
|
+
break;
|
|
1653
|
+
case "table": t.enum_list = e.table;
|
|
1654
|
+
}
|
|
1655
|
+
t.type = r;
|
|
1656
|
+
} else if (Nn(Yn, r)) switch (r) {
|
|
1657
|
+
case "writable":
|
|
1658
|
+
t.is_writable = !0;
|
|
1659
|
+
break;
|
|
1660
|
+
case "notnull":
|
|
1661
|
+
case "required":
|
|
1662
|
+
t.is_required = !0;
|
|
1663
|
+
break;
|
|
1664
|
+
case "hidden": t.is_hidden = !0;
|
|
1665
|
+
}
|
|
1666
|
+
}
|
|
1667
|
+
return t;
|
|
1668
|
+
}
|
|
1669
|
+
var zn = [
|
|
1670
|
+
v(h.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
|
|
1671
|
+
v(h.DTP_BOOLEAN, "periodic", 0, 0, "True for periodic timeouts"),
|
|
1672
|
+
v(h.DTP_INTEGER, "msec", 0, 0, "Timeout in milliseconds"),
|
|
1673
|
+
y()
|
|
1674
|
+
], Qn = {
|
|
1675
|
+
periodic: !1,
|
|
1676
|
+
msec: 0,
|
|
1677
|
+
timer_id: -1
|
|
1678
|
+
}, Hn = null;
|
|
1679
|
+
function qn(e, t, n, r) {
|
|
1680
|
+
let o = e.priv, s = o.periodic ? "EV_TIMEOUT_PERIODIC" : "EV_TIMEOUT";
|
|
1681
|
+
return xe(e) ? ot(we(e), s, {}, e) : dt(e, s, {}), o.periodic && (o.timer_id = setTimeout(function() {
|
|
1682
|
+
ot(e, "EV_TIMEOUT", {}, e);
|
|
1683
|
+
}, o.msec)), 0;
|
|
1684
|
+
}
|
|
1685
|
+
var Xn = {
|
|
1686
|
+
mt_create: function(e) {
|
|
1687
|
+
let t = e.priv;
|
|
1688
|
+
const n = ze(e, "subscriber");
|
|
1689
|
+
n && ct(e, null, {}, n), t.periodic = Ye(e, "periodic"), t.msec = Be(e, "msec");
|
|
1690
|
+
},
|
|
1691
|
+
mt_writing: function(e, t) {
|
|
1692
|
+
let n = e.priv;
|
|
1693
|
+
switch (t) {
|
|
1694
|
+
case "periodic":
|
|
1695
|
+
n.periodic = Ye(e, "periodic");
|
|
1696
|
+
break;
|
|
1697
|
+
case "msec": n.msec = Be(e, "msec"), -1 !== n.timer_id && (clearTimeout(n.timer_id), n.timer_id = -1), n.msec > 0 && (n.timer_id = setTimeout(function() {
|
|
1698
|
+
ot(e, "EV_TIMEOUT", {}, e);
|
|
1699
|
+
}, n.msec));
|
|
1700
|
+
}
|
|
1701
|
+
},
|
|
1702
|
+
mt_start: function(e) {
|
|
1703
|
+
return 0;
|
|
1704
|
+
},
|
|
1705
|
+
mt_stop: function(e) {
|
|
1706
|
+
return qe(e, "msec", -1), 0;
|
|
1707
|
+
},
|
|
1708
|
+
mt_destroy: function(e) {}
|
|
1709
|
+
};
|
|
1710
|
+
function Zn(e, t) {
|
|
1711
|
+
return e instanceof S ? "C_TIMER" !== Se(e) ? (St("not C_TIMER GObj"), -1) : (He(e, "periodic", !1), void qe(e, "msec", t)) : (St("not GObj TYPE"), -1);
|
|
1712
|
+
}
|
|
1713
|
+
function er(e, t) {
|
|
1714
|
+
return e instanceof S ? "C_TIMER" !== Se(e) ? (St("not C_TIMER GObj"), -1) : (He(e, "periodic", !0), void qe(e, "msec", t)) : (St("not GObj TYPE"), -1);
|
|
1715
|
+
}
|
|
1716
|
+
function tr(e) {
|
|
1717
|
+
return e instanceof S ? "C_TIMER" !== Se(e) ? (St("not C_TIMER GObj"), -1) : void qe(e, "msec", -1) : (St("not GObj TYPE"), -1);
|
|
1718
|
+
}
|
|
1719
|
+
var nr = [
|
|
1720
|
+
v(h.DTP_BOOLEAN, "changesLost", 0, !1, "Set true to warn about leaving page"),
|
|
1721
|
+
v(h.DTP_BOOLEAN, "browser_beforeunload", 0, !1, "Set true to refreshing browser"),
|
|
1722
|
+
v(h.DTP_STRING, "__username__", 0, "", "Username"),
|
|
1723
|
+
v(h.DTP_STRING, "start_date", 0, "", "Yuno starting date"),
|
|
1724
|
+
v(h.DTP_STRING, "node_uuid", 0, "", "uuid of node"),
|
|
1725
|
+
v(h.DTP_STRING, "yuno_role", 0, "", "Yuno role"),
|
|
1726
|
+
v(h.DTP_STRING, "yuno_id", 0, "", "Yuno Id. Set by agent"),
|
|
1727
|
+
v(h.DTP_STRING, "yuno_name", 0, "", "Yuno name. Set by agent"),
|
|
1728
|
+
v(h.DTP_STRING, "yuno_tag", 0, "", "Tags of yuno. Set by agent"),
|
|
1729
|
+
v(h.DTP_STRING, "yuno_release", 0, "", "Yuno Release. Set by agent"),
|
|
1730
|
+
v(h.DTP_STRING, "yuno_version", 0, "", "Yuno version (APP_VERSION)"),
|
|
1731
|
+
v(h.DTP_STRING, "yuneta_version", 0, s, "Yuneta version"),
|
|
1732
|
+
v(h.DTP_LIST, "required_services", 0, "[]", "Required services"),
|
|
1733
|
+
v(h.DTP_INTEGER, "tracing", 0, 0, "Tracing level"),
|
|
1734
|
+
v(h.DTP_BOOLEAN, "trace_timer", 0, 0, "Trace timers"),
|
|
1735
|
+
v(h.DTP_BOOLEAN, "trace_inter_event", 0, 0, "Trace traffic"),
|
|
1736
|
+
v(h.DTP_POINTER, "trace_ievent_callback", 0, null, "Trace traffic callback"),
|
|
1737
|
+
v(h.DTP_BOOLEAN, "trace_creation", 0, 0, "Trace creation"),
|
|
1738
|
+
v(h.DTP_BOOLEAN, "trace_start_stop", 0, 0, "Trace start/stop"),
|
|
1739
|
+
v(h.DTP_BOOLEAN, "trace_subscriptions", 0, 0, "Trace subscription"),
|
|
1740
|
+
v(h.DTP_BOOLEAN, "trace_i18n", 0, 0, "Trace i18n"),
|
|
1741
|
+
v(h.DTP_BOOLEAN, "no_poll", 0, 0, "no poll"),
|
|
1742
|
+
v(h.DTP_BOOLEAN, "developer", 0, !1, "Developer mode enabled"),
|
|
1743
|
+
v(h.DTP_INTEGER, "periodic_timeout", 0, "1000", "Timeout periodic, in miliseconds."),
|
|
1744
|
+
y()
|
|
1745
|
+
], rr = { gobj_timer: null }, or = null;
|
|
1746
|
+
function sr(e, t, n, r) {
|
|
1747
|
+
return dt(e, t, n), 0;
|
|
1748
|
+
}
|
|
1749
|
+
var ir = {
|
|
1750
|
+
mt_create: function(e) {
|
|
1751
|
+
let t = e.priv;
|
|
1752
|
+
Xe(e, "start_date", Cn()), Xe(e, "node_uuid", Fn()), e.priv.gobj_timer = se(je(e), "C_TIMER", {}, e), t.periodic_timeout = Me(e, "periodic_timeout");
|
|
1753
|
+
},
|
|
1754
|
+
mt_writing: function(e, t) {},
|
|
1755
|
+
mt_start: function(e) {
|
|
1756
|
+
return le(e.priv.gobj_timer), er(e.priv.gobj_timer, e.priv.periodic_timeout), 0;
|
|
1757
|
+
},
|
|
1758
|
+
mt_stop: function(e) {
|
|
1759
|
+
return ue(e.priv.gobj_timer), fe(e), 0;
|
|
1760
|
+
},
|
|
1761
|
+
mt_destroy: function(e) {},
|
|
1762
|
+
mt_play: function(e) {
|
|
1763
|
+
let t = q();
|
|
1764
|
+
return de(t) || le(t), he(t) || ge(t), 0;
|
|
1765
|
+
},
|
|
1766
|
+
mt_pause: function(e) {
|
|
1767
|
+
return pe(q()), 0;
|
|
1768
|
+
}
|
|
1769
|
+
};
|
|
1770
|
+
var lr = "ievent_gate_stack", _r = [
|
|
1771
|
+
v(h.DTP_STRING, "wanted_yuno_role", T.SDF_RD, "", "wanted yuno role"),
|
|
1772
|
+
v(h.DTP_STRING, "wanted_yuno_name", T.SDF_RD, "", "wanted yuno name"),
|
|
1773
|
+
v(h.DTP_STRING, "wanted_yuno_service", T.SDF_RD, "", "wanted yuno service"),
|
|
1774
|
+
v(h.DTP_STRING, "remote_yuno_role", T.SDF_RD, "", "confirmed remote yuno role"),
|
|
1775
|
+
v(h.DTP_STRING, "remote_yuno_name", T.SDF_RD, "", "confirmed remote yuno name"),
|
|
1776
|
+
v(h.DTP_STRING, "remote_yuno_service", T.SDF_RD, "", "confirmed remote yuno service"),
|
|
1777
|
+
v(h.DTP_STRING, "url", T.SDF_RD, "", "Url to connect"),
|
|
1778
|
+
v(h.DTP_STRING, "jwt", T.SDF_PERSIST, "", "JWT"),
|
|
1779
|
+
v(h.DTP_STRING, "cert_pem", T.SDF_PERSIST, "", "SSL server certification, PEM str format"),
|
|
1780
|
+
v(h.DTP_JSON, "extra_info", T.SDF_RD, "{}", "dict data set by user, added to the identity card msg."),
|
|
1781
|
+
v(h.DTP_INTEGER, "timeout_retry", T.SDF_RD, "5000", "timeout waiting idAck"),
|
|
1782
|
+
v(h.DTP_INTEGER, "timeout_idack", T.SDF_RD, "5000", "timeout waiting idAck"),
|
|
1783
|
+
v(h.DTP_POINTER, "subscriber", 0, 0, "subscriber of output-events. If null then subscriber is the parent"),
|
|
1784
|
+
y()
|
|
1785
|
+
], ar = {
|
|
1786
|
+
url: null,
|
|
1787
|
+
remote_yuno_name: null,
|
|
1788
|
+
remote_yuno_role: null,
|
|
1789
|
+
remote_yuno_service: null,
|
|
1790
|
+
gobj_timer: null,
|
|
1791
|
+
inform_on_close: !1,
|
|
1792
|
+
websocket: null,
|
|
1793
|
+
inside_on_open: !1
|
|
1794
|
+
}, ur = null;
|
|
1795
|
+
function cr(e) {
|
|
1796
|
+
e.priv.websocket && St("Websocket ALREADY setup");
|
|
1797
|
+
const t = Je(e, "url");
|
|
1798
|
+
let n;
|
|
1799
|
+
Nt(`====> Starting WebSocket to '${t}' (${Oe(e)})`);
|
|
1800
|
+
try {
|
|
1801
|
+
n = new WebSocket(t);
|
|
1802
|
+
} catch (n) {
|
|
1803
|
+
return St(`${Oe(e)}: Cannot open WebSocket to '${t}', Error: ${n.message}`), null;
|
|
1804
|
+
}
|
|
1805
|
+
return n ? (n.onopen = () => {
|
|
1806
|
+
ot(e, "EV_ON_OPEN", { url: t }, e);
|
|
1807
|
+
}, n.onmessage = (n) => {
|
|
1808
|
+
ot(e, "EV_ON_MESSAGE", {
|
|
1809
|
+
url: t,
|
|
1810
|
+
data: n.data
|
|
1811
|
+
}, e);
|
|
1812
|
+
}, n.onclose = (n) => {
|
|
1813
|
+
Ye(Te(), "browser_beforeunload") ? Ot("Close websocket by unload page") : ot(e, "EV_ON_CLOSE", {
|
|
1814
|
+
url: t,
|
|
1815
|
+
e: n
|
|
1816
|
+
}, e);
|
|
1817
|
+
}, n) : (St(`${Oe(e)}: Failed to initialize WebSocket.`), null);
|
|
1818
|
+
}
|
|
1819
|
+
function fr(e, t = 1e3, n = "") {
|
|
1820
|
+
let r = e.priv, o = r.websocket;
|
|
1821
|
+
if (r.websocket = null, o && o.readyState !== WebSocket.CLOSED && o.readyState !== WebSocket.CLOSING) {
|
|
1822
|
+
Nt(`Closing WebSocket (Code: ${t}, Reason: "${n}")`);
|
|
1823
|
+
try {
|
|
1824
|
+
o.close(t, n);
|
|
1825
|
+
} catch (e) {
|
|
1826
|
+
St("Error closing WebSocket:", e.message);
|
|
1827
|
+
}
|
|
1828
|
+
} else Ot("WebSocket is already closed or in the process of closing.");
|
|
1829
|
+
}
|
|
1830
|
+
function gr(e, t, n) {
|
|
1831
|
+
let r = Cn();
|
|
1832
|
+
try {
|
|
1833
|
+
Nt("\n" + r + " " + t + "\n"), Dt(n);
|
|
1834
|
+
} catch (e) {
|
|
1835
|
+
Nt("ERROR in trace_inter_event: " + e);
|
|
1836
|
+
}
|
|
1837
|
+
}
|
|
1838
|
+
var pr = class {
|
|
1839
|
+
constructor(e, t) {
|
|
1840
|
+
this.event = e, this.kw = t || {};
|
|
1841
|
+
}
|
|
1842
|
+
};
|
|
1843
|
+
function dr(e, t, n, r) {
|
|
1844
|
+
return function(e, t) {
|
|
1845
|
+
let n = e.priv, r = JSON.stringify(t);
|
|
1846
|
+
if (Ye(Te(), "trace_inter_event")) {
|
|
1847
|
+
let n = Je(e, "url"), o = je(Te()) + " ==> " + n, s = Me(Te(), "trace_ievent_callback");
|
|
1848
|
+
s ? s(o, t, 1, r.length) : gr(0, o, t);
|
|
1849
|
+
}
|
|
1850
|
+
try {
|
|
1851
|
+
n.websocket.send(r);
|
|
1852
|
+
} catch (t) {
|
|
1853
|
+
St(`${Oe(e)}: send_iev(): ${t}`);
|
|
1854
|
+
}
|
|
1855
|
+
return 0;
|
|
1856
|
+
}(e, function(e, t) {
|
|
1857
|
+
return Xt(e) ? (St("iev_create() event NULL"), null) : new pr(e, t);
|
|
1858
|
+
}(t, n));
|
|
1859
|
+
}
|
|
1860
|
+
function br(e, t, n) {
|
|
1861
|
+
return Xt(n) && (n = Je(e, "wanted_yuno_service")), {
|
|
1862
|
+
dst_yuno: Je(e, "wanted_yuno_name"),
|
|
1863
|
+
dst_role: Je(e, "wanted_yuno_role"),
|
|
1864
|
+
dst_service: n,
|
|
1865
|
+
src_yuno: Ee(),
|
|
1866
|
+
src_role: ye(),
|
|
1867
|
+
src_service: t,
|
|
1868
|
+
host: Fn()
|
|
1869
|
+
};
|
|
1870
|
+
}
|
|
1871
|
+
function mr(e) {
|
|
1872
|
+
let t = e.priv, n = he(Te()), r = Je(Te(), "yuno_version"), o = Je(Te(), "yuno_release"), i = Je(Te(), "yuno_tag"), l = {
|
|
1873
|
+
yuno_role: ye(),
|
|
1874
|
+
yuno_id: ve(),
|
|
1875
|
+
yuno_name: Ee(),
|
|
1876
|
+
yuno_tag: i,
|
|
1877
|
+
yuno_version: r,
|
|
1878
|
+
yuno_release: o,
|
|
1879
|
+
yuneta_version: s,
|
|
1880
|
+
playing: n,
|
|
1881
|
+
pid: 0,
|
|
1882
|
+
watcher_pid: 0,
|
|
1883
|
+
jwt: Je(e, "jwt"),
|
|
1884
|
+
username: Je(Te(), "__username__"),
|
|
1885
|
+
launch_id: 0,
|
|
1886
|
+
yuno_startdate: Je(Te(), "start_date"),
|
|
1887
|
+
id: Fn(),
|
|
1888
|
+
user_agent: "undefined" != typeof window ? window.navigator.userAgent : "",
|
|
1889
|
+
language: "undefined" != typeof window ? window.navigator.language : "",
|
|
1890
|
+
required_services: Me(Te(), "required_services")
|
|
1891
|
+
};
|
|
1892
|
+
return xn(e, l, lr, br(e, je(we(e)), null)), kn(e, l, "__identity__"), Zn(t.gobj_timer, Be(e, "timeout_idack")), dr(e, "EV_IDENTITY_CARD", l);
|
|
1893
|
+
}
|
|
1894
|
+
function hr(e, t) {
|
|
1895
|
+
if (Xt(t.event)) return -1;
|
|
1896
|
+
let n = {}, r = t.__global__, o = t.__config__, s = t.__filter__, i = t.__service__, l = t.subscriber;
|
|
1897
|
+
return o && (n.__config__ = o), r && (n.__global__ = r), s && (n.__filter__ = s), xn(e, n, lr, br(e, je(l), i)), kn(e, n, "__subscribing__"), dr(e, t.event, n);
|
|
1898
|
+
}
|
|
1899
|
+
function Tr(e, t, n, r) {
|
|
1900
|
+
let o = e.priv;
|
|
1901
|
+
return de(e) && (o.websocket = cr(e)), 0;
|
|
1902
|
+
}
|
|
1903
|
+
function Er(e, t, n, r) {
|
|
1904
|
+
return Nt("Websocket opened: " + e.priv.url), mr(e), 0;
|
|
1905
|
+
}
|
|
1906
|
+
function yr(e, t, n, r) {
|
|
1907
|
+
let o = e.priv, s = n.e, i = n.url;
|
|
1908
|
+
return vt(), Ot(`${Oe(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, dt(e, "EV_ON_CLOSE", {
|
|
1909
|
+
url: i,
|
|
1910
|
+
remote_yuno_name: o.remote_yuno_name,
|
|
1911
|
+
remote_yuno_role: o.remote_yuno_role,
|
|
1912
|
+
remote_yuno_service: o.remote_yuno_service
|
|
1913
|
+
})), de(e) && Zn(o.gobj_timer, Be(e, "timeout_retry")), 0;
|
|
1914
|
+
}
|
|
1915
|
+
function vr(e, t, n, r) {
|
|
1916
|
+
return mr(e), 0;
|
|
1917
|
+
}
|
|
1918
|
+
function jr(e, t, n, r) {
|
|
1919
|
+
let o = e.priv;
|
|
1920
|
+
tr(o.gobj_timer);
|
|
1921
|
+
let s = Rn(e, n, lr, !0), i = un(e, s, "src_yuno", ""), l = un(e, s, "src_role", ""), _ = un(e, s, "src_service", "");
|
|
1922
|
+
Xe(e, "remote_yuno_name", i), Xe(e, "remote_yuno_role", l), Xe(e, "remote_yuno_service", _);
|
|
1923
|
+
let a = an(e, n, "result", -1, 0), u = un(e, n, "comment", "", 0), c = un(e, n, "username", "", 0), f = gn(e, n, "services_roles", {});
|
|
1924
|
+
if (a < 0) {
|
|
1925
|
+
fr(e);
|
|
1926
|
+
let t = {
|
|
1927
|
+
url: Je(e, "url"),
|
|
1928
|
+
result: a,
|
|
1929
|
+
comment: u,
|
|
1930
|
+
username: c,
|
|
1931
|
+
remote_yuno_name: i,
|
|
1932
|
+
remote_yuno_role: l,
|
|
1933
|
+
remote_yuno_service: _
|
|
1934
|
+
};
|
|
1935
|
+
xe(e) ? ot(we(e), "EV_ON_ID_NAK", t, e) : dt(e, "EV_ON_ID_NAK", t);
|
|
1936
|
+
} else {
|
|
1937
|
+
if (Ze(e, "ST_SESSION"), o.inside_on_open = !0, !o.inform_on_close) {
|
|
1938
|
+
o.inform_on_close = !0;
|
|
1939
|
+
let t = {
|
|
1940
|
+
username: c,
|
|
1941
|
+
remote_yuno_name: i,
|
|
1942
|
+
remote_yuno_role: l,
|
|
1943
|
+
remote_yuno_service: _,
|
|
1944
|
+
services_roles: f
|
|
1945
|
+
};
|
|
1946
|
+
xe(e) ? ot(we(e), "EV_ON_OPEN", t, e) : dt(e, "EV_ON_OPEN", t);
|
|
1947
|
+
}
|
|
1948
|
+
o.inside_on_open = !1, function(e) {
|
|
1949
|
+
let t = gt(e, null, null, null);
|
|
1950
|
+
for (let n = 0; n < t.length; n++) hr(e, t[n]);
|
|
1951
|
+
}(e);
|
|
1952
|
+
}
|
|
1953
|
+
return 0;
|
|
1954
|
+
}
|
|
1955
|
+
function Sr(e, t, n, r) {
|
|
1956
|
+
let o = e.priv.url, s = function(e, t) {
|
|
1957
|
+
let n;
|
|
1958
|
+
try {
|
|
1959
|
+
n = JSON.parse(t);
|
|
1960
|
+
} catch (e) {
|
|
1961
|
+
return St("parsing inter_event json: " + e), null;
|
|
1962
|
+
}
|
|
1963
|
+
if (!(n instanceof Object)) return St("parsing inter_event: websocket data not a json object"), null;
|
|
1964
|
+
let r = n.event;
|
|
1965
|
+
if (!r) return St("parsing inter_event: no event"), null;
|
|
1966
|
+
if ("string" != typeof r) return St("parsing inter_event: event not a string"), null;
|
|
1967
|
+
let o = n.kw;
|
|
1968
|
+
return o ? o instanceof Object ? {
|
|
1969
|
+
event: r,
|
|
1970
|
+
kw: o || {}
|
|
1971
|
+
} : (St("parsing inter_event: kw not a json object"), null) : (St("parsing inter_kw: no kw"), null);
|
|
1972
|
+
}(0, n.data);
|
|
1973
|
+
if (Ye(Te(), "trace_inter_event")) {
|
|
1974
|
+
let e = je(Te()) + " <== " + o, t = n.data.length, r = Me(Te(), "trace_ievent_callback");
|
|
1975
|
+
r ? r(e, s, 2, t) : gr(0, e, s);
|
|
1976
|
+
}
|
|
1977
|
+
let i = s.event, l = s.kw;
|
|
1978
|
+
if ("ST_SESSION" !== et(e)) {
|
|
1979
|
+
if (nt(e, i, D.EVF_PUBLIC_EVENT)) {
|
|
1980
|
+
if (0 === ot(e, i, l, e)) return 0;
|
|
1981
|
+
} else St(`${Oe(e)}: event UNKNOWN in not-session state ${i}`);
|
|
1982
|
+
return fr(e), -1;
|
|
1983
|
+
}
|
|
1984
|
+
s = null;
|
|
1985
|
+
let _ = $n(e, l), a = Rn(e, l, lr), u = un(e, a, "dst_role", "");
|
|
1986
|
+
if (u !== ye()) return St(`"It's not my role, dst_role: ${u}, my_role: ${ye()}`), 0;
|
|
1987
|
+
let c = un(e, a, "dst_service", "");
|
|
1988
|
+
if ("__subscribing__" === _) return -1;
|
|
1989
|
+
if ("__unsubscribing__" === _) return -1;
|
|
1990
|
+
if (nt(e, i, D.EVF_PUBLIC_EVENT)) return ot(e, i, l, e), 0;
|
|
1991
|
+
let f = X(c, !0);
|
|
1992
|
+
if (f) {
|
|
1993
|
+
if (!nt(f, i, D.EVF_PUBLIC_EVENT)) return St(`${Oe(e)}: Service found but no event or not public, service '${Oe(f)}', ev '${i}'`), -1;
|
|
1994
|
+
ot(f, i, l, e);
|
|
1995
|
+
} else xe(e) ? ot(we(e), i, l, e) : dt(e, i, l);
|
|
1996
|
+
return 0;
|
|
1997
|
+
}
|
|
1998
|
+
function Or(e, t, n, r) {
|
|
1999
|
+
return 0;
|
|
2000
|
+
}
|
|
2001
|
+
function Nr(e, t, n, r) {
|
|
2002
|
+
return 0;
|
|
2003
|
+
}
|
|
2004
|
+
var wr = {
|
|
2005
|
+
mt_create: function(e) {
|
|
2006
|
+
let t = e.priv;
|
|
2007
|
+
t.gobj_timer = se(je(e), "C_TIMER", {}, e), t.url = Je(e, "url"), t.remote_yuno_name = Je(e, "remote_yuno_name"), t.remote_yuno_role = Je(e, "remote_yuno_role"), t.remote_yuno_service = Je(e, "remote_yuno_service"), Xe(e, "wanted_yuno_name", t.remote_yuno_name), Xe(e, "wanted_yuno_role", t.remote_yuno_role), Xe(e, "wanted_yuno_service", t.remote_yuno_service);
|
|
2008
|
+
const n = ze(e, "subscriber");
|
|
2009
|
+
n && ct(e, null, {}, n);
|
|
2010
|
+
},
|
|
2011
|
+
mt_writing: function(e, t) {
|
|
2012
|
+
let n = e.priv;
|
|
2013
|
+
switch (t) {
|
|
2014
|
+
case "url":
|
|
2015
|
+
n.url = Je(e, "url");
|
|
2016
|
+
break;
|
|
2017
|
+
case "remote_yuno_name":
|
|
2018
|
+
n.remote_yuno_name = Je(e, "remote_yuno_name");
|
|
2019
|
+
break;
|
|
2020
|
+
case "remote_yuno_role":
|
|
2021
|
+
n.remote_yuno_role = Je(e, "remote_yuno_role");
|
|
2022
|
+
break;
|
|
2023
|
+
case "remote_yuno_service": n.remote_yuno_service = Je(e, "remote_yuno_service");
|
|
2024
|
+
}
|
|
2025
|
+
},
|
|
2026
|
+
mt_start: function(e) {
|
|
2027
|
+
let t = e.priv;
|
|
2028
|
+
return le(t.gobj_timer), t.websocket = cr(e), 0;
|
|
2029
|
+
},
|
|
2030
|
+
mt_stop: function(e) {
|
|
2031
|
+
let t = e.priv;
|
|
2032
|
+
return tr(t.gobj_timer), ue(t.gobj_timer), t.websocket && fr(e), 0;
|
|
2033
|
+
},
|
|
2034
|
+
mt_destroy: function(e) {},
|
|
2035
|
+
mt_stats: function(e, t, n, r) {
|
|
2036
|
+
if ("ST_SESSION" !== et(e)) return St("Not in session"), null;
|
|
2037
|
+
n || (n = {});
|
|
2038
|
+
let o = br(e, je(r), un(e, n, "service", null, 0)), s = gn(e, n, "__md_stats__", null, bt.KW_EXTRACT);
|
|
2039
|
+
return s || (s = {}), xn(e, n, "stats_stack", {
|
|
2040
|
+
stats: t,
|
|
2041
|
+
kw: s
|
|
2042
|
+
}), xn(e, n, lr, o), n.__stats__ = t, kn(e, n, "__stats__"), dr(e, "EV_MT_STATS", n, r), null;
|
|
2043
|
+
},
|
|
2044
|
+
mt_command_parser: function(e, t, n, r) {
|
|
2045
|
+
if ("ST_SESSION" !== et(e)) return St("Not in session"), null;
|
|
2046
|
+
n || (n = {});
|
|
2047
|
+
let o = br(e, je(r), un(e, n, "service", "", 0)), s = gn(e, n, "__md_command__", null, bt.KW_EXTRACT);
|
|
2048
|
+
return s || (s = {}), xn(e, n, "command_stack", {
|
|
2049
|
+
command: t,
|
|
2050
|
+
kw: s
|
|
2051
|
+
}), xn(e, n, lr, o), n.__command__ = t, kn(e, n, "__command__"), dr(e, "EV_MT_COMMAND", n, r), null;
|
|
2052
|
+
},
|
|
2053
|
+
mt_inject_event: function(e, t, n, r) {
|
|
2054
|
+
if ("ST_SESSION" !== et(e)) return window.console.error("Not in session"), -1;
|
|
2055
|
+
if (n || (n = {}), Rn(e, n, lr));
|
|
2056
|
+
else {
|
|
2057
|
+
let o = br(e, je(r), un(e, n, "__service__", 0, 0));
|
|
2058
|
+
Lt(n, "__service__"), xn(e, n, "__message__", t), xn(e, n, lr, o);
|
|
2059
|
+
}
|
|
2060
|
+
return kn(e, n, "__message__"), dr(e, t, n, r);
|
|
2061
|
+
},
|
|
2062
|
+
mt_subscription_added: function(e, t) {
|
|
2063
|
+
let n = e.priv;
|
|
2064
|
+
return "ST_SESSION" !== et(e) || n.inside_on_open ? 0 : hr(e, t);
|
|
2065
|
+
},
|
|
2066
|
+
mt_subscription_deleted: function(e, t) {
|
|
2067
|
+
let n = e.priv;
|
|
2068
|
+
if ("ST_SESSION" !== et(e)) return 0;
|
|
2069
|
+
if (n.inside_on_open) return 0;
|
|
2070
|
+
if (Xt(t.event)) return 0;
|
|
2071
|
+
let r = {}, o = t.__global__, s = t.__config__, i = t.__filter__, l = t.__service__, _ = t.subscriber;
|
|
2072
|
+
return s && (r.__config__ = s), o && (r.__global__ = o), i && (r.__filter__ = i), xn(e, r, lr, br(e, je(_), l)), kn(e, r, "__unsubscribing__"), dr(e, t.event, r, e);
|
|
2073
|
+
}
|
|
2074
|
+
};
|
|
2075
|
+
exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) => new E(e, t, n, null, s, r, null, 0, null, o, null), exports.SDATACM = (e, t, n, r, o, s) => new E(e, t, 0, null, s, n, null, 0, o, r, null), exports.SDATACM2 = (e, t, n, r, o, s, i) => new E(e, t, n, null, i, r, null, 0, s, o, null), exports.SDATADF = (e, t, n, r, o, s) => new E(e, t, n, null, s, null, r, o), exports.SDATAPM = (e, t, n, r, o) => new E(e, t, n, r, o), exports.SDATAPM0 = (e, t, n, r, o) => new E(e, t, n, null, o, null, null, 0, null, null, r), exports.SDATA_END = y, exports.SDataDesc = E, exports.YUNETA_VERSION = s, Object.defineProperty(exports, "__yuno__", {
|
|
2076
|
+
enumerable: !0,
|
|
2077
|
+
get: function() {
|
|
2078
|
+
return d;
|
|
2079
|
+
}
|
|
2080
|
+
}), exports.build_command_response = r, exports.build_path = function(...e) {
|
|
2081
|
+
let t = "", n = 0;
|
|
2082
|
+
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++));
|
|
2083
|
+
return t;
|
|
2084
|
+
}, exports.build_stats_response = o, exports.clean_name = function(e) {
|
|
2085
|
+
return e.replace(/[?# ^:]/g, "_");
|
|
2086
|
+
}, exports.clear_timeout = tr, exports.cmp_two_simple_json = nn, exports.command_parser = function(e, t, n, r) {}, exports.createElement2 = function e(t, n) {
|
|
2087
|
+
let [r, o, s, i] = t;
|
|
2088
|
+
if (!r) return void St("Tag must be a valid HTML element.");
|
|
2089
|
+
let l = document.createElement(r), _ = "";
|
|
2090
|
+
if (o && "object" == typeof o) for (let e of Object.keys(o)) if ("style" === e && "object" == typeof o[e]) {
|
|
2091
|
+
let t = "";
|
|
2092
|
+
for (const n of Object.keys(o[e])) t += `${n}: ${o[e][n]};`;
|
|
2093
|
+
l.style.cssText = t;
|
|
2094
|
+
} 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]);
|
|
2095
|
+
if (Bt(s)) if (s = s.trim(), s.length > 0 && "<" === s[0]) l.appendChild(Un(s));
|
|
2096
|
+
else if (n && _) l.textContent = n(_) || s;
|
|
2097
|
+
else l.textContent = s;
|
|
2098
|
+
else if (Yt(s)) {
|
|
2099
|
+
if (s.length > 0) if (Bt(s[0])) l.appendChild(e(s, n));
|
|
2100
|
+
else for (let t of s) Array.isArray(t) && t.length > 0 ? l.appendChild(e(t, n)) : t instanceof HTMLElement && l.appendChild(t);
|
|
2101
|
+
} else s instanceof HTMLElement || s instanceof Text || s instanceof SVGElement ? l.appendChild(s) : null != s && (St("content ignored"), Dt(s));
|
|
2102
|
+
if (i && "object" == typeof i) for (const e of Object.keys(i)) l.addEventListener(e, i[e]);
|
|
2103
|
+
return l;
|
|
2104
|
+
}, exports.createOneHtml = Un, exports.create_json_record = function(e, t) {
|
|
2105
|
+
let n = xt(e);
|
|
2106
|
+
return $t(n, t), n;
|
|
2107
|
+
}, exports.create_template_record = function(e, t) {
|
|
2108
|
+
let n = {};
|
|
2109
|
+
return t || (t = {}), Object.entries(e).forEach(([e, r]) => {
|
|
2110
|
+
n[e] = gn(null, t, e, gn(r, "default"));
|
|
2111
|
+
}), n;
|
|
2112
|
+
}, exports.current_timestamp = Cn, exports.data_type_t = h, exports.db_list_persistent_attrs = function(e, t) {
|
|
2113
|
+
let n = En(Wn(e), null, !1), r = {};
|
|
2114
|
+
return n && Kt(n) && (r = hn(e, n, t, !1)), r;
|
|
2115
|
+
}, exports.db_load_persistent_attrs = function(e, t) {
|
|
2116
|
+
let n = Ke(e, T.SDF_PERSIST), r = En(Wn(e), null, !1);
|
|
2117
|
+
if (r && Kt(r)) {
|
|
2118
|
+
let o = hn(e, r, t, !1);
|
|
2119
|
+
o = hn(e, o, n, !1), Qe(e, o, T.SDF_PERSIST);
|
|
2120
|
+
}
|
|
2121
|
+
}, exports.db_remove_persistent_attrs = function(e, t) {
|
|
2122
|
+
let n = Tn(e, En(Wn(e), null, !1), t, !1);
|
|
2123
|
+
0 === Vt(n) ? vn(Wn(e)) : yn(Wn(e), n);
|
|
2124
|
+
}, exports.db_save_persistent_attrs = function(e, t) {
|
|
2125
|
+
let n = hn(e, Ke(e, T.SDF_PERSIST), t, !1), r = En(Wn(e), null, !1);
|
|
2126
|
+
r && Kt(r) && It(n, r), yn(Wn(e), n);
|
|
2127
|
+
}, exports.debounce = function(e, t = 0, n = !1) {
|
|
2128
|
+
let r = null, o = null, s = null;
|
|
2129
|
+
const i = (...i) => {
|
|
2130
|
+
s = this, o = i;
|
|
2131
|
+
const l = n && !r;
|
|
2132
|
+
clearTimeout(r), r = setTimeout(() => {
|
|
2133
|
+
r = null, n || e.apply(s, o);
|
|
2134
|
+
}, t), l && e.apply(s, o);
|
|
2135
|
+
};
|
|
2136
|
+
return i.flush = () => {
|
|
2137
|
+
r && (clearTimeout(r), r = null, e.apply(s, o));
|
|
2138
|
+
}, i.cancel = () => {
|
|
2139
|
+
clearTimeout(r), r = null, o = null, s = null;
|
|
2140
|
+
}, i;
|
|
2141
|
+
}, exports.delete_from_list = function(e, t) {
|
|
2142
|
+
for (let n = 0; n < e.length; n++) if (t === e[n]) return e.splice(n, 1), !0;
|
|
2143
|
+
return !1;
|
|
2144
|
+
}, exports.duplicate_objects = function(...e) {
|
|
2145
|
+
const t = {};
|
|
2146
|
+
for (const n of e) {
|
|
2147
|
+
const e = structuredClone(n);
|
|
2148
|
+
Object.assign(t, e);
|
|
2149
|
+
}
|
|
2150
|
+
return t;
|
|
2151
|
+
}, exports.empty_string = Xt, exports.escapeHtml = Pn, exports.event_flag_t = D, exports.gclass_add_ev_action = Y, exports.gclass_add_event_type = J, exports.gclass_add_state = K, exports.gclass_check_fsm = Q, exports.gclass_create = F, exports.gclass_event_type = z, exports.gclass_find_by_name = H, exports.gclass_flag_t = O, exports.gclass_unregister = V, exports.getPositionRelativeToBody = function(e) {
|
|
2152
|
+
if (!e) return {
|
|
2153
|
+
top: 0,
|
|
2154
|
+
left: 0,
|
|
2155
|
+
right: 0,
|
|
2156
|
+
bottom: 0
|
|
2157
|
+
};
|
|
2158
|
+
const { top: t, left: n, width: r, height: o } = e.getBoundingClientRect?.() || {
|
|
2159
|
+
top: 0,
|
|
2160
|
+
left: 0,
|
|
2161
|
+
width: 0,
|
|
2162
|
+
height: 0
|
|
2163
|
+
}, 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;
|
|
2164
|
+
return {
|
|
2165
|
+
top: t + i,
|
|
2166
|
+
left: n + l,
|
|
2167
|
+
right: n + l + r,
|
|
2168
|
+
bottom: t + i + o
|
|
2169
|
+
};
|
|
2170
|
+
}, exports.get_function_name = Vn, exports.get_now = function() {
|
|
2171
|
+
return Math.floor(Date.now() / 1e3);
|
|
2172
|
+
}, exports.gobj_bottom_gobj = ke, exports.gobj_change_parent = function(e, n) {
|
|
2173
|
+
return Re(e) ? (St("gobj NULL or DESTROYED"), null) : n instanceof S ? (e.parent && e.parent.mt_child_removed && e.parent.mt_child_removed(e.parent, e), e.parent && (te(e.parent, e), e.parent = null), ee(n, e), n.mt_child_added && (d && Ye(d, "trace_creation") && Nt(t("π¦π¦π΅ child_added(%s): %s", Ne(n), Oe(e))), n.mt_child_added(n, e)), 0) : (St(`${Oe(e)}: gobj_change_parent() BAD TYPE of parent`), -1);
|
|
2174
|
+
}, exports.gobj_change_state = Ze, exports.gobj_command = function(e, n, o, s) {
|
|
2175
|
+
if (Re(e)) return St("gobj NULL or DESTROYED"), -1;
|
|
2176
|
+
let i = d && Be(d, "tracing");
|
|
2177
|
+
return i && (I(t("ππ mach(%s%s), cmd: %s, src: %s", de(e) ? "" : "!!", Oe(e), n, Oe(s))), i > 1 && Dt(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", Oe(e)), 0, 0) : r(0, -1, t("%s: command table not available", Oe(e)), 0, 0);
|
|
2178
|
+
}, exports.gobj_create = function(e, t, n, r) {
|
|
2179
|
+
return oe(e, t, n, r, 0);
|
|
2180
|
+
}, exports.gobj_create2 = oe, exports.gobj_create_default_service = function(e, t, n, r) {
|
|
2181
|
+
return oe(e, t, n, r, N.gobj_flag_default_service | N.gobj_flag_autostart);
|
|
2182
|
+
}, exports.gobj_create_pure_child = se, exports.gobj_create_service = function(e, t, n, r) {
|
|
2183
|
+
return oe(e, t, n, r, N.gobj_flag_service);
|
|
2184
|
+
}, exports.gobj_create_volatil = function(e, t, n, r) {
|
|
2185
|
+
return oe(e, t, n, r, N.gobj_flag_volatil);
|
|
2186
|
+
}, exports.gobj_create_yuno = function(e, t, n) {
|
|
2187
|
+
return oe(e, t, n, null, N.gobj_flag_yuno);
|
|
2188
|
+
}, exports.gobj_current_state = et, exports.gobj_default_service = q, exports.gobj_destroy = ie, exports.gobj_find_child = Fe, exports.gobj_find_gobj = function(e, t) {
|
|
2189
|
+
if (Xt(t)) return null;
|
|
2190
|
+
const n = t.toLowerCase();
|
|
2191
|
+
return "__default_service__" === n ? b : "__yuno__" === n || "__root__" === n ? d : Ve(d, t);
|
|
2192
|
+
}, exports.gobj_find_service = X, exports.gobj_find_subscribings = pt, exports.gobj_find_subscriptions = gt, exports.gobj_flag_t = N, exports.gobj_full_name = Ne, exports.gobj_gclass_name = Se, exports.gobj_has_attr = We, exports.gobj_has_event = nt, exports.gobj_has_output_event = rt, exports.gobj_hsdata = U, exports.gobj_is_destroying = Re, exports.gobj_is_playing = he, exports.gobj_is_pure_child = xe, exports.gobj_is_running = de, exports.gobj_is_service = me, exports.gobj_is_volatil = De, exports.gobj_list_persistent_attrs = function(e, t) {
|
|
2193
|
+
return a ? a(e, t) : null;
|
|
2194
|
+
}, exports.gobj_list_subscriptions = function(e) {
|
|
2195
|
+
let t = gt(e, null, null, null);
|
|
2196
|
+
for (let n = 0; n < t.length; n++) {
|
|
2197
|
+
let r = t[n], o = cn(e, r, "publisher", null, bt.KW_REQUIRED), s = cn(e, r, "subscriber", null, bt.KW_REQUIRED);
|
|
2198
|
+
Ut(r, "s_event", un(e, r, "event", "", bt.KW_REQUIRED)), Ut(r, "s_publisher", Oe(o)), Ut(r, "s_subscriber", Oe(s));
|
|
2199
|
+
}
|
|
2200
|
+
let n = pt(e, 0, null, 0);
|
|
2201
|
+
for (let t = 0; t < n.length; t++) {
|
|
2202
|
+
let r = n[t], o = cn(e, r, "publisher", null, bt.KW_REQUIRED), s = cn(e, r, "subscriber", null, bt.KW_REQUIRED);
|
|
2203
|
+
Ut(r, "s_event", un(e, r, "event", "", bt.KW_REQUIRED)), Ut(r, "s_publisher", Oe(o)), Ut(r, "s_subscriber", Oe(s));
|
|
2204
|
+
}
|
|
2205
|
+
return {
|
|
2206
|
+
subscriptions: t,
|
|
2207
|
+
subscribings: n,
|
|
2208
|
+
"total subscriptions": Wt(t),
|
|
2209
|
+
total_subscribings: Wt(n)
|
|
2210
|
+
};
|
|
2211
|
+
}, exports.gobj_load_persistent_attrs = function(e, t) {
|
|
2212
|
+
return me(e) ? i ? i(e, t) : -1 : (St(`${Oe(e)}: Only gobj services can load/save writable-persistent`), -1);
|
|
2213
|
+
}, exports.gobj_match_children = function(e, t) {
|
|
2214
|
+
if (Re(e)) return St("gobj NULL or DESTROYED"), null;
|
|
2215
|
+
t = t || {};
|
|
2216
|
+
let n = [];
|
|
2217
|
+
const r = e.dl_children;
|
|
2218
|
+
for (let e = 0; e < r.length; e++) {
|
|
2219
|
+
const o = r[e];
|
|
2220
|
+
Ge(o, t) && n.push(o);
|
|
2221
|
+
}
|
|
2222
|
+
return n;
|
|
2223
|
+
}, exports.gobj_match_children_tree = function(e, t) {
|
|
2224
|
+
t = t || {};
|
|
2225
|
+
let n = [];
|
|
2226
|
+
return function e(n, r) {
|
|
2227
|
+
let o = r.dl_children;
|
|
2228
|
+
for (let r = 0; r < o.length; r++) {
|
|
2229
|
+
let s = o[r];
|
|
2230
|
+
Ge(s, t) && n.push(s), e(n, s);
|
|
2231
|
+
}
|
|
2232
|
+
}(n, e), n;
|
|
2233
|
+
}, exports.gobj_match_gobj = Ge, exports.gobj_name = je, exports.gobj_parent = we, exports.gobj_pause = pe, exports.gobj_play = ge, exports.gobj_post_event = function(e, t, n, r) {
|
|
2234
|
+
setTimeout(() => {
|
|
2235
|
+
Re(e) || ot(e, t, n, r);
|
|
2236
|
+
}, 10);
|
|
2237
|
+
}, exports.gobj_publish_event = dt, exports.gobj_read_attr = Me, exports.gobj_read_attrs = Ke, exports.gobj_read_bool_attr = Ye, exports.gobj_read_integer_attr = Be, exports.gobj_read_pointer_attr = ze, exports.gobj_read_str_attr = Je, exports.gobj_remove_persistent_attrs = function(e, t) {
|
|
2238
|
+
return me(e) ? _ ? _(e, t) : -1 : (St(`${Oe(e)}: Only gobj services can load/save writable-persistent`), -1);
|
|
2239
|
+
}, exports.gobj_reset_volatil_attrs = function(e) {
|
|
2240
|
+
return function(e, t, n) {
|
|
2241
|
+
if (Re(e)) return St("gobj NULL or DESTROYED"), -1;
|
|
2242
|
+
let r = e.gclass.attrs_table;
|
|
2243
|
+
for (let o = 0; o < r.length; o++) {
|
|
2244
|
+
const s = r[o];
|
|
2245
|
+
if (s.name && !(n && s.flag & n) && (-1 === t || s.flag & t)) {
|
|
2246
|
+
const t = L(e, e.jn_attrs, s);
|
|
2247
|
+
Kt(e.priv) && e.priv.hasOwnProperty(s.name) && (e.priv[s.name] = t), e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, s.name);
|
|
2248
|
+
}
|
|
2249
|
+
}
|
|
2250
|
+
return 0;
|
|
2251
|
+
}(e, T.SDF_VOLATIL, 0);
|
|
2252
|
+
}, exports.gobj_save_persistent_attrs = function(e, t) {
|
|
2253
|
+
return me(e) ? l ? l(e, t) : -1 : (St(`${Oe(e)}: Only gobj services can load/save writable-persistent`), -1);
|
|
2254
|
+
}, exports.gobj_search_path = Ve, exports.gobj_send_event = ot, exports.gobj_services = function() {
|
|
2255
|
+
let e = [];
|
|
2256
|
+
for (const t of Object.keys(p)) Gt(e, t);
|
|
2257
|
+
return e;
|
|
2258
|
+
}, exports.gobj_set_bottom_gobj = $e, exports.gobj_short_name = Oe, exports.gobj_start = le, exports.gobj_start_children = function(e) {
|
|
2259
|
+
return Re(e) ? (St("gobj NULL or DESTROYED"), -1) : Ae(e, x.WALK_FIRST2LAST, _e, 0, 0);
|
|
2260
|
+
}, exports.gobj_start_tree = function(e) {
|
|
2261
|
+
return Re(e) ? (St("gobj NULL or DESTROYED"), -1) : (d && Ye(d, "trace_start_stop") && I(t("βΊ βΊ βΊ βΊ start_tree: %s", Ne(e))), e.gclass.gclass_flag & O.gcflag_manual_start || e.disabled ? 0 : (e.running || le(e), Le(e, x.WALK_TOP2BOTTOM, ae, 0, 0)));
|
|
2262
|
+
}, exports.gobj_start_up = function(e, t, n, r, o, s, g) {
|
|
2263
|
+
i = t, l = n, _ = r, a = o, u = s, c = g;
|
|
2264
|
+
const p = [["EV_STATE_CHANGED", D.EVF_SYSTEM_EVENT | D.EVF_OUTPUT_EVENT | D.EVF_NO_WARN_SUBS], [0, 0]];
|
|
2265
|
+
for (let e = 0; e < p.length; e++) {
|
|
2266
|
+
let t = p[e][0], n = p[e][1];
|
|
2267
|
+
B(f, t, n);
|
|
2268
|
+
}
|
|
2269
|
+
return 0;
|
|
2270
|
+
}, exports.gobj_stats = function(e, n, r, s) {
|
|
2271
|
+
return Re(e) ? (St("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", Oe(e)), 0, 0);
|
|
2272
|
+
}, exports.gobj_stop = ue, exports.gobj_stop_children = fe, exports.gobj_stop_tree = function(e) {
|
|
2273
|
+
return Re(e) ? (St("gobj NULL or DESTROYED"), -1) : (d && Ye(d, "trace_start_stop") && I(t("βΉ βΉ βΉ βΉ stop_tree: %s", Ne(e))), de(e) && ue(e), Le(e, x.WALK_TOP2BOTTOM, ce, 0, 0));
|
|
2274
|
+
}, exports.gobj_subscribe_event = ct, exports.gobj_unsubscribe_event = function(e, t, n, r) {
|
|
2275
|
+
if (null == n && (n = {}), !e) return St(`publisher NULL: ev ${t}`), 0;
|
|
2276
|
+
if (!r) return St(`subscriber NULL: ev ${t}`), 0;
|
|
2277
|
+
const o = new Set([
|
|
2278
|
+
"__config__",
|
|
2279
|
+
"__global__",
|
|
2280
|
+
"__local__",
|
|
2281
|
+
"__filter__",
|
|
2282
|
+
"__service__"
|
|
2283
|
+
]);
|
|
2284
|
+
if (Object.keys(n).forEach((n) => {
|
|
2285
|
+
o.has(n) || St(`${Oe(e)}: key ignored in subscription (key: ${n}, event: ${t})`);
|
|
2286
|
+
}), Xt(t)) t = "";
|
|
2287
|
+
else if (!(rt(e, t, D.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & O.gcflag_no_check_output_events)) return St(`event NOT in output event list: ${Oe(e)}, ev ${t}`), 0;
|
|
2288
|
+
let s = _t(e.dl_subscriptions, e, t, n, r), i = 0;
|
|
2289
|
+
for (let t = 0; t < s.length; t++) {
|
|
2290
|
+
let n = s[t];
|
|
2291
|
+
ut(e, n, !1, !1), i++;
|
|
2292
|
+
}
|
|
2293
|
+
return i || (Ot(`${Oe(e)}: No subscription found`), Dt(n, "No subscription found")), 0;
|
|
2294
|
+
}, exports.gobj_unsubscribe_list = ft, exports.gobj_walk_gobj_children = Ae, exports.gobj_walk_gobj_children_tree = Le, exports.gobj_write_attr = function(e, n, r, o) {
|
|
2295
|
+
if (!Bt(n)) return St(t("gobj_write_attr(%s): path must be a string", Oe(e))), -1;
|
|
2296
|
+
let s, i = e.jn_attrs, l = n.split("`");
|
|
2297
|
+
if (l.length <= 1) {
|
|
2298
|
+
let o = n;
|
|
2299
|
+
return o in i && i.hasOwnProperty(o) ? (i[o] = r, Kt(e.priv) && e.priv.hasOwnProperty(o) && (e.priv[o] = r), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, o), 0) : (St(t("gobj_write_attr(%s): attr not found '%s'", Oe(e), o)), -1);
|
|
2300
|
+
}
|
|
2301
|
+
let _ = l.length;
|
|
2302
|
+
for (let t = 0; t < _; t++) {
|
|
2303
|
+
s = l[t];
|
|
2304
|
+
let n = Fe(e, { __gobj_name__: s });
|
|
2305
|
+
if (n && t < _ - 1) {
|
|
2306
|
+
e = n;
|
|
2307
|
+
continue;
|
|
2308
|
+
}
|
|
2309
|
+
let o = e.jn_attrs;
|
|
2310
|
+
if (s in o && o.hasOwnProperty(s)) return o[s] = r, Kt(e.priv) && e.priv.hasOwnProperty(s) && (e.priv[s] = r), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.mt_writing && e.mt_writing(e, s), 0;
|
|
2311
|
+
break;
|
|
2312
|
+
}
|
|
2313
|
+
return St(t("gobj_write_attr(%s): attr not found '%s'", Oe(e), s)), -1;
|
|
2314
|
+
}, exports.gobj_write_attrs = Qe, exports.gobj_write_bool_attr = He, exports.gobj_write_integer_attr = qe, exports.gobj_write_str_attr = Xe, exports.gobj_yuno = Te, exports.gobj_yuno_id = ve, exports.gobj_yuno_name = Ee, exports.gobj_yuno_role = ye, exports.id_index_in_obj_list = On, exports.index_in_list = Gn, exports.is_array = Yt, exports.is_boolean = zt, exports.is_date = function(e) {
|
|
2315
|
+
return e instanceof Date && !isNaN(e);
|
|
2316
|
+
}, exports.is_function = Ht, exports.is_gobj = qt, exports.is_metadata_key = function(e) {
|
|
2317
|
+
if (!Bt(e)) return !1;
|
|
2318
|
+
let t;
|
|
2319
|
+
for (t = 0; t < e.length && "_" === e[t] && !(t > 2); t++);
|
|
2320
|
+
return 2 === t;
|
|
2321
|
+
}, exports.is_null = Qt, exports.is_number = Jt, exports.is_object = Kt, exports.is_private_key = function(e) {
|
|
2322
|
+
if (!Bt(e)) return !1;
|
|
2323
|
+
let t;
|
|
2324
|
+
for (t = 0; t < e.length && "_" === e[t] && !(t > 2); t++);
|
|
2325
|
+
return 1 === t;
|
|
2326
|
+
}, exports.is_pure_number = function(e) {
|
|
2327
|
+
if (Jt(e)) return !0;
|
|
2328
|
+
if (!Bt(e)) return !1;
|
|
2329
|
+
const t = Number(e);
|
|
2330
|
+
return !isNaN(t) && "" !== e.trim() && !isNaN(t);
|
|
2331
|
+
}, exports.is_string = Bt, exports.jdb_delete = function(e, t, n, r) {
|
|
2332
|
+
let o = gn(null, gn(null, e, "topics", null, 0), t, null, 0);
|
|
2333
|
+
if (!o) return St("jdb_delete: topic not found: " + t), null;
|
|
2334
|
+
if (Xt(r.id)) return St("jdb_delete: record without id: " + r), wt(r), null;
|
|
2335
|
+
let s, i = n.split("`"), l = o;
|
|
2336
|
+
for (; (s = i.shift()) && !Xt(s) && l;) Kt(l) && (l = gn(null, l, e.hook, null, 0)), l = An(l, null, s, !1);
|
|
2337
|
+
if (0 === i.length && l) if (Yt(l)) {
|
|
2338
|
+
let e = On(l, r.id);
|
|
2339
|
+
e >= 0 && l.splice(e, 1);
|
|
2340
|
+
} else {
|
|
2341
|
+
let t = gn(null, l, e.hook, null, 0), n = On(t, r.id);
|
|
2342
|
+
n >= 0 && t.splice(n, 1);
|
|
2343
|
+
}
|
|
2344
|
+
return o;
|
|
2345
|
+
}, exports.jdb_get = function(e, t, n, r) {
|
|
2346
|
+
let o = gn(null, gn(null, e, "topics", null, 0), t, null, 0);
|
|
2347
|
+
return o ? (void 0 === r && (r = !0), An(o, e.hook, n, r)) : (St("jdb_get: topic not found: " + t), null);
|
|
2348
|
+
}, exports.jdb_get_by_idx = function(e, t, n) {
|
|
2349
|
+
let r = gn(null, gn(null, e, "topics", null, 0), t, null, 0);
|
|
2350
|
+
return r ? n < r.length ? r[n] : {} : (St("jdb_get_by_idx: topic not found: " + t), null);
|
|
2351
|
+
}, exports.jdb_get_topic = function(e, t) {
|
|
2352
|
+
let n = gn(null, e, "topics", null, 0);
|
|
2353
|
+
if (!n) return St("jdb topics section not found"), wt(e), null;
|
|
2354
|
+
return gn(null, n, t, null, 0) || (St("jdb topic not found: " + t), wt(n), null);
|
|
2355
|
+
}, exports.jdb_init = function(e, t, n) {
|
|
2356
|
+
n && (e = xt(e));
|
|
2357
|
+
let r = gn(null, e, "type", [], 1);
|
|
2358
|
+
un(null, e, "hook", "data", 1);
|
|
2359
|
+
let o = gn(null, e, "schema", {}, 1), s = gn(null, e, "topics", {}, 1);
|
|
2360
|
+
return In(o, function(e, t, n, o) {
|
|
2361
|
+
"__" !== t.substring(0, 2) && gn(null, s, o, xt(r), 1);
|
|
2362
|
+
}, t), e;
|
|
2363
|
+
}, exports.jdb_update = function(e, t, n, r) {
|
|
2364
|
+
let o = gn(null, gn(null, e, "topics", null, 0), t, null, 0);
|
|
2365
|
+
if (!o) return St("jdb_update: topic not found: " + t), null;
|
|
2366
|
+
if (Xt(r.id)) return St("jdb_update: record without id: " + r), wt(r), null;
|
|
2367
|
+
let s, i = n.split("`"), l = o;
|
|
2368
|
+
for (; (s = i.shift()) && !Xt(s) && l;) Kt(l) && (l = gn(null, l, e.hook, [], 1)), l = An(l, null, s, !1);
|
|
2369
|
+
if (0 === i.length && l) if (Yt(l)) l.push(r);
|
|
2370
|
+
else if (l.id === r.id) Object.assign(l, r);
|
|
2371
|
+
else {
|
|
2372
|
+
let t = gn(null, l, e.hook, [], 1), n = An(t, e.hook, r.id, !1);
|
|
2373
|
+
n ? Object.assign(n, r) : t.push(r);
|
|
2374
|
+
}
|
|
2375
|
+
return o;
|
|
2376
|
+
}, exports.json_array_append = Ct, exports.json_array_append_new = Gt, exports.json_array_extend = function(e, t) {
|
|
2377
|
+
return t ? (Array.prototype.push.apply(e, t), e) : e;
|
|
2378
|
+
}, exports.json_array_remove = Ft, exports.json_array_size = Wt, exports.json_deep_copy = xt, exports.json_is_identical = Rt, exports.json_object_del = Lt, exports.json_object_get = At, exports.json_object_set = Pt, exports.json_object_set_new = Ut, exports.json_object_size = Vt, exports.json_object_update = kt, exports.json_object_update_existing = $t, exports.json_object_update_missing = It, exports.json_size = Mt, exports.jwt2json = function(e, t) {
|
|
2379
|
+
try {
|
|
2380
|
+
let n = Ln(e);
|
|
2381
|
+
switch (t) {
|
|
2382
|
+
case "header": return JSON.parse(n.header);
|
|
2383
|
+
case "signature": return JSON.parse(n.signature);
|
|
2384
|
+
default: return JSON.parse(n.payload);
|
|
2385
|
+
}
|
|
2386
|
+
} catch (e) {
|
|
2387
|
+
return null;
|
|
2388
|
+
}
|
|
2389
|
+
}, exports.jwtDecode = Ln, exports.kw_clone_by_keys = hn, exports.kw_clone_by_not_keys = Tn, exports.kw_collect = function(e, t, n, r) {
|
|
2390
|
+
if (e && !qt(e) && St("GObj bad instanceof"), !t) return null;
|
|
2391
|
+
r || (r = mn);
|
|
2392
|
+
let o = [];
|
|
2393
|
+
if (Yt(t)) for (let e = 0; e < t.length; e++) {
|
|
2394
|
+
let s = t[e];
|
|
2395
|
+
r(s, n) && o.push(s);
|
|
2396
|
+
}
|
|
2397
|
+
else {
|
|
2398
|
+
if (!Kt(t)) return St("kw_select() BAD kw parameter"), null;
|
|
2399
|
+
r(t, n) && o.push(t);
|
|
2400
|
+
}
|
|
2401
|
+
return o;
|
|
2402
|
+
}, exports.kw_delete = ln, exports.kw_find_json_in_list = function(e, t, n, r) {
|
|
2403
|
+
if (!n || !Yt(t)) return r && St("item NULL or kw_list is not a list"), -1;
|
|
2404
|
+
for (let e = 0; e < t.length; e++) if (Rt(n, t[e])) return e;
|
|
2405
|
+
return r && St("item not found in this list"), -1;
|
|
2406
|
+
}, exports.kw_find_path = sn, exports.kw_flag_t = bt, exports.kw_get_bool = _n, exports.kw_get_dict = fn, exports.kw_get_dict_value = gn, exports.kw_get_int = an, exports.kw_get_list = function(e, t, n, r, o) {
|
|
2407
|
+
e && !qt(e) && St("GObj bad instanceof");
|
|
2408
|
+
let s = sn(e, t, n, !1);
|
|
2409
|
+
const i = o && o & bt.KW_REQUIRED, l = o && o & bt.KW_CREATE, _ = o && o & bt.KW_EXTRACT;
|
|
2410
|
+
if (void 0 === s) {
|
|
2411
|
+
if (l) {
|
|
2412
|
+
let o = Array(r);
|
|
2413
|
+
return pn(e, t, n, o), o;
|
|
2414
|
+
}
|
|
2415
|
+
return i && (St(`path not found: '${n}'`), Dt(t)), Array(r);
|
|
2416
|
+
}
|
|
2417
|
+
return _ && ln(e, t, n), Yt(s) ? Array(s) : (i && (St(`path value MUST BE an array: ${n}`), wt(t)), Array(r));
|
|
2418
|
+
}, exports.kw_get_local_storage_value = En, exports.kw_get_pointer = cn, exports.kw_get_real = function(e, t, n, r, o) {
|
|
2419
|
+
e && !qt(e) && St("GObj bad instanceof");
|
|
2420
|
+
let s = sn(e, t, n, !1);
|
|
2421
|
+
const i = o && o & bt.KW_REQUIRED, l = o && o & bt.KW_CREATE, _ = o && o & bt.KW_EXTRACT;
|
|
2422
|
+
if (void 0 === s) {
|
|
2423
|
+
if (l) {
|
|
2424
|
+
let o = Number(r);
|
|
2425
|
+
return pn(e, t, n, o), o;
|
|
2426
|
+
}
|
|
2427
|
+
return i && (St(`path not found: '${n}'`), Dt(t)), Number(r);
|
|
2428
|
+
}
|
|
2429
|
+
return _ && ln(e, t, n), Jt(s) ? Number(s) : (i && (St(`path value MUST BE a number: ${n}`), wt(t)), Number(r));
|
|
2430
|
+
}, exports.kw_get_str = un, exports.kw_has_key = on, exports.kw_match_simple = mn, exports.kw_pop = rn, exports.kw_remove_local_storage_value = vn, exports.kw_select = function(e, t, n, r) {
|
|
2431
|
+
if (e && !qt(e) && St("GObj bad instanceof"), !t) return null;
|
|
2432
|
+
r || (r = mn);
|
|
2433
|
+
let o = [];
|
|
2434
|
+
if (Yt(t)) for (let e = 0; e < t.length; e++) {
|
|
2435
|
+
let s = t[e];
|
|
2436
|
+
r(s, n) && o.push(xt(s));
|
|
2437
|
+
}
|
|
2438
|
+
else {
|
|
2439
|
+
if (!Kt(t)) return St("kw_select() BAD kw parameter"), null;
|
|
2440
|
+
r(t, n) && o.push(xt(t));
|
|
2441
|
+
}
|
|
2442
|
+
return o;
|
|
2443
|
+
}, exports.kw_set_dict_value = pn, exports.kw_set_local_storage_value = yn, exports.kw_set_subdict_value = dn, exports.kwid_collect = Sn, exports.kwid_find_one_record = function(e, t, n, r, o) {
|
|
2444
|
+
e && !qt(e) && St("GObj bad instanceof");
|
|
2445
|
+
let s = Sn(e, t, n, r, o);
|
|
2446
|
+
return s.length > 0 ? s[0] : null;
|
|
2447
|
+
}, exports.kwid_get_ids = function(e, t) {
|
|
2448
|
+
if (e && !qt(e) && St("GObj bad instanceof"), !t) return [];
|
|
2449
|
+
let n = [];
|
|
2450
|
+
if (Bt(t)) n.push(t);
|
|
2451
|
+
else if (Kt(t)) for (let e in t) t.hasOwnProperty(e) && n.push(e);
|
|
2452
|
+
else Yt(t) && t.forEach(function(t) {
|
|
2453
|
+
if (Bt(t)) Xt(t) || n.push(t);
|
|
2454
|
+
else if (Kt(t)) {
|
|
2455
|
+
let r = un(e, t, "id", 0, 0);
|
|
2456
|
+
r && n.push(r);
|
|
2457
|
+
}
|
|
2458
|
+
});
|
|
2459
|
+
return n;
|
|
2460
|
+
}, exports.kwid_match_id = jn, exports.kwid_new_dict = function(e, t, n) {
|
|
2461
|
+
e && !qt(e) && St("GObj bad instanceof");
|
|
2462
|
+
let r = {};
|
|
2463
|
+
if (Xt(n) || (t = sn(e, t, n)), Kt(t)) r = t;
|
|
2464
|
+
else if (Yt(t)) for (let e = 0; e < t.length; e++) {
|
|
2465
|
+
let n = t[e], o = un(n, "id", null, !1);
|
|
2466
|
+
Xt(o) || (r[o] = n);
|
|
2467
|
+
}
|
|
2468
|
+
else St(`${Oe(e)} kwid_new_dict: data type unknown`);
|
|
2469
|
+
return r;
|
|
2470
|
+
}, exports.list2options = function(e, t, n) {
|
|
2471
|
+
t = t || "id", n = n || "value";
|
|
2472
|
+
let r = [];
|
|
2473
|
+
if (Yt(e)) for (let o = 0; o < e.length; o++) {
|
|
2474
|
+
let s = e[o];
|
|
2475
|
+
if (Bt(s)) r.push({
|
|
2476
|
+
id: e[o],
|
|
2477
|
+
value: e[o]
|
|
2478
|
+
});
|
|
2479
|
+
else if (Kt(s)) {
|
|
2480
|
+
let e = {};
|
|
2481
|
+
if (on(s, t)) {
|
|
2482
|
+
if (!on(s, n)) {
|
|
2483
|
+
if (!(Mt(s) > 0)) {
|
|
2484
|
+
St("list2options(): object without field value: " + n);
|
|
2485
|
+
continue;
|
|
2486
|
+
}
|
|
2487
|
+
n = Object.keys(s)[0];
|
|
2488
|
+
}
|
|
2489
|
+
e.id = s[t], e.value = s[n];
|
|
2490
|
+
} else {
|
|
2491
|
+
if (!(Mt(s) > 0)) {
|
|
2492
|
+
St("list2options(): object without field id: " + t);
|
|
2493
|
+
continue;
|
|
2494
|
+
}
|
|
2495
|
+
t = Object.keys(s)[0], e.id = t, e.value = s[t];
|
|
2496
|
+
}
|
|
2497
|
+
r.push(e);
|
|
2498
|
+
} else St("list2options(): case1 not implemented");
|
|
2499
|
+
}
|
|
2500
|
+
else if (Kt(e)) for (let t of Object.keys(e)) r.push({
|
|
2501
|
+
id: t,
|
|
2502
|
+
value: t
|
|
2503
|
+
});
|
|
2504
|
+
else St("list2options(): case2 not implemented");
|
|
2505
|
+
return r;
|
|
2506
|
+
}, exports.load_json_file = function(e, t, n) {
|
|
2507
|
+
let r = new XMLHttpRequest();
|
|
2508
|
+
r.open("GET", e, !0), r.setRequestHeader("Accept", "application/json"), r.onreadystatechange = function() {
|
|
2509
|
+
if (4 === r.readyState) if (200 === r.status || 0 === (e = r).status && e.responseText && e.responseURL.startsWith("file:")) try {
|
|
2510
|
+
t(JSON.parse(r.responseText));
|
|
2511
|
+
} catch (e) {
|
|
2512
|
+
n && (St(`JSON parse status ${r.status}, error: ${e.message}`), n(r.status));
|
|
2513
|
+
}
|
|
2514
|
+
else n && n(r.status);
|
|
2515
|
+
var e;
|
|
2516
|
+
}, r.send();
|
|
2517
|
+
}, exports.log_debug = Nt, exports.log_error = St, exports.log_info = function(e) {
|
|
2518
|
+
let t = jt(e), n = Cn();
|
|
2519
|
+
Et && Et("%c" + n + " INFO: " + String(t), "color:cyan");
|
|
2520
|
+
}, exports.log_warning = Ot, exports.msg_iev_get_msg_type = $n, exports.msg_iev_get_stack = Rn, exports.msg_iev_push_stack = xn, exports.msg_iev_read_key = wn, exports.msg_iev_set_msg_type = kn, exports.msg_iev_write_key = Dn, exports.node_uuid = Fn, exports.parseBoolean = Zt, exports.parseSVG = function(e) {
|
|
2521
|
+
return new DOMParser().parseFromString(e, "image/svg+xml").firstChild;
|
|
2522
|
+
}, exports.refresh_language = function(e, t) {
|
|
2523
|
+
Ht(t) ? (e || (e = document), e.querySelectorAll("[data-i18n]").forEach(function(e) {
|
|
2524
|
+
let n = e.getAttribute("data-i18n");
|
|
2525
|
+
for (let r of e.childNodes) if (r.nodeType === Node.TEXT_NODE) {
|
|
2526
|
+
n || (n = r.nodeValue), r.nodeValue = t(n);
|
|
2527
|
+
break;
|
|
2528
|
+
}
|
|
2529
|
+
})) : St("You must supply a translation function");
|
|
2530
|
+
}, exports.register_c_ievent_cli = function() {
|
|
2531
|
+
return function(e) {
|
|
2532
|
+
if (ur) return St(`GClass ALREADY created: ${e}`), -1;
|
|
2533
|
+
const t = [
|
|
2534
|
+
["ST_DISCONNECTED", [
|
|
2535
|
+
[
|
|
2536
|
+
"EV_ON_OPEN",
|
|
2537
|
+
Er,
|
|
2538
|
+
"ST_WAIT_IDENTITY_CARD_ACK"
|
|
2539
|
+
],
|
|
2540
|
+
[
|
|
2541
|
+
"EV_ON_CLOSE",
|
|
2542
|
+
yr,
|
|
2543
|
+
null
|
|
2544
|
+
],
|
|
2545
|
+
[
|
|
2546
|
+
"EV_TIMEOUT",
|
|
2547
|
+
Tr,
|
|
2548
|
+
null
|
|
2549
|
+
],
|
|
2550
|
+
[
|
|
2551
|
+
null,
|
|
2552
|
+
null,
|
|
2553
|
+
null
|
|
2554
|
+
]
|
|
2555
|
+
]],
|
|
2556
|
+
["ST_WAIT_IDENTITY_CARD_ACK", [
|
|
2557
|
+
[
|
|
2558
|
+
"EV_ON_MESSAGE",
|
|
2559
|
+
Sr,
|
|
2560
|
+
null
|
|
2561
|
+
],
|
|
2562
|
+
[
|
|
2563
|
+
"EV_IDENTITY_CARD_ACK",
|
|
2564
|
+
jr,
|
|
2565
|
+
null
|
|
2566
|
+
],
|
|
2567
|
+
[
|
|
2568
|
+
"EV_ON_CLOSE",
|
|
2569
|
+
yr,
|
|
2570
|
+
"ST_DISCONNECTED"
|
|
2571
|
+
],
|
|
2572
|
+
[
|
|
2573
|
+
"EV_TIMEOUT",
|
|
2574
|
+
vr,
|
|
2575
|
+
null
|
|
2576
|
+
],
|
|
2577
|
+
[
|
|
2578
|
+
null,
|
|
2579
|
+
null,
|
|
2580
|
+
null
|
|
2581
|
+
]
|
|
2582
|
+
]],
|
|
2583
|
+
["ST_SESSION", [
|
|
2584
|
+
[
|
|
2585
|
+
"EV_ON_MESSAGE",
|
|
2586
|
+
Sr,
|
|
2587
|
+
null
|
|
2588
|
+
],
|
|
2589
|
+
[
|
|
2590
|
+
"EV_MT_STATS",
|
|
2591
|
+
Or,
|
|
2592
|
+
null
|
|
2593
|
+
],
|
|
2594
|
+
[
|
|
2595
|
+
"EV_MT_COMMAND",
|
|
2596
|
+
Nr,
|
|
2597
|
+
null
|
|
2598
|
+
],
|
|
2599
|
+
[
|
|
2600
|
+
"EV_ON_CLOSE",
|
|
2601
|
+
yr,
|
|
2602
|
+
"ST_DISCONNECTED"
|
|
2603
|
+
],
|
|
2604
|
+
[
|
|
2605
|
+
null,
|
|
2606
|
+
null,
|
|
2607
|
+
null
|
|
2608
|
+
]
|
|
2609
|
+
]],
|
|
2610
|
+
[null, null]
|
|
2611
|
+
];
|
|
2612
|
+
return (ur = F(e, [
|
|
2613
|
+
["EV_ON_MESSAGE", D.EVF_OUTPUT_EVENT],
|
|
2614
|
+
["EV_IDENTITY_CARD_ACK", D.EVF_PUBLIC_EVENT],
|
|
2615
|
+
["EV_ON_ID_NAK", D.EVF_PUBLIC_EVENT | D.EVF_OUTPUT_EVENT],
|
|
2616
|
+
["EV_MT_STATS", D.EVF_PUBLIC_EVENT],
|
|
2617
|
+
["EV_MT_COMMAND", D.EVF_PUBLIC_EVENT],
|
|
2618
|
+
["EV_ON_OPEN", D.EVF_OUTPUT_EVENT | D.EVF_NO_WARN_SUBS],
|
|
2619
|
+
["EV_ON_CLOSE", D.EVF_OUTPUT_EVENT | D.EVF_NO_WARN_SUBS],
|
|
2620
|
+
["EV_TIMEOUT", 0],
|
|
2621
|
+
[null, 0]
|
|
2622
|
+
], t, wr, 0, _r, ar, 0, 0, 0, O.gcflag_no_check_output_events)) ? 0 : -1;
|
|
2623
|
+
}("C_IEVENT_CLI");
|
|
2624
|
+
}, exports.register_c_timer = function() {
|
|
2625
|
+
return function(e) {
|
|
2626
|
+
if (Hn) return St(`GClass ALREADY created: ${e}`), -1;
|
|
2627
|
+
const t = [["ST_IDLE", [[
|
|
2628
|
+
"EV_TIMEOUT",
|
|
2629
|
+
qn,
|
|
2630
|
+
null
|
|
2631
|
+
]]]];
|
|
2632
|
+
return (Hn = F(e, [
|
|
2633
|
+
["EV_TIMEOUT", D.EVF_OUTPUT_EVENT],
|
|
2634
|
+
["EV_TIMEOUT_PERIODIC", D.EVF_OUTPUT_EVENT],
|
|
2635
|
+
[0, 0]
|
|
2636
|
+
], t, Xn, 0, zn, Qn, 0, 0, 0, O.gcflag_manual_start)) ? 0 : -1;
|
|
2637
|
+
}("C_TIMER");
|
|
2638
|
+
}, exports.register_c_yuno = function() {
|
|
2639
|
+
return function(e) {
|
|
2640
|
+
if (or) return St(`GClass ALREADY created: ${e}`), -1;
|
|
2641
|
+
const t = [["ST_IDLE", [[
|
|
2642
|
+
"EV_TIMEOUT_PERIODIC",
|
|
2643
|
+
sr,
|
|
2644
|
+
null
|
|
2645
|
+
]]]];
|
|
2646
|
+
return (or = F(e, [["EV_TIMEOUT_PERIODIC", D.EVF_OUTPUT_EVENT | D.EVF_NO_WARN_SUBS], [0, 0]], t, ir, 0, nr, rr, 0, 0, 0, 0)) ? 0 : -1;
|
|
2647
|
+
}("C_YUNO");
|
|
2648
|
+
}, exports.safeSrc = function(e) {
|
|
2649
|
+
if (!e) return "";
|
|
2650
|
+
const t = String(e).trim();
|
|
2651
|
+
return /^javascript:/i.test(t) || /^data:/i.test(t) ? "" : Pn(t);
|
|
2652
|
+
}, exports.sdata_flag_t = T, exports.send_http_json_post = function(e, t, n) {
|
|
2653
|
+
let r = new XMLHttpRequest();
|
|
2654
|
+
r.open("POST", e), r.setRequestHeader("Accept", "application/json"), r.setRequestHeader("Content-Type", "application/json"), r.onreadystatechange = function() {
|
|
2655
|
+
4 === r.readyState && n(r.status, r.responseText);
|
|
2656
|
+
}, r.send(t);
|
|
2657
|
+
}, exports.set_remote_log_functions = vt, exports.set_timeout = Zn, exports.set_timeout_periodic = er, exports.sprintf = t, exports.stats_parser = function(e, t, n, r) {}, exports.str_in_list = Nn, exports.strcasecmp = tn, exports.strcmp = en, exports.strncmp = function(e, t, n) {
|
|
2658
|
+
var r = (e + "").substring(0, n), o = (t + "").substring(0, n);
|
|
2659
|
+
return r === o ? 0 : r > o ? 1 : -1;
|
|
2660
|
+
}, exports.strs_in_list = function(e, t, n) {
|
|
2661
|
+
if (!e) return St("ERROR: strs_in_list() list empty"), !1;
|
|
2662
|
+
if (!t) return St("ERROR: strs_in_list() str empty"), !1;
|
|
2663
|
+
for (let r = 0; r < t.length; r++) if (Nn(e, t[r], n)) return !0;
|
|
2664
|
+
return !1;
|
|
2665
|
+
}, exports.strstr = function(e, t, n) {
|
|
2666
|
+
var r;
|
|
2667
|
+
return -1 !== (r = (e += "").indexOf(t)) && (n ? e.substring(0, r) : e.slice(r));
|
|
2668
|
+
}, exports.template_get_field_desc = function(e, t) {
|
|
2669
|
+
let n = {
|
|
2670
|
+
name: e,
|
|
2671
|
+
header: e,
|
|
2672
|
+
real_type: null,
|
|
2673
|
+
type: null,
|
|
2674
|
+
enum_list: null,
|
|
2675
|
+
is_required: !1,
|
|
2676
|
+
is_writable: !1,
|
|
2677
|
+
is_hidden: !1,
|
|
2678
|
+
default_value: void 0,
|
|
2679
|
+
placeholder: void 0
|
|
2680
|
+
};
|
|
2681
|
+
if (Bt(t)) {
|
|
2682
|
+
let e = t.split(".");
|
|
2683
|
+
for (let t = 0; t < e.length; t++) {
|
|
2684
|
+
let r = e[t];
|
|
2685
|
+
if (Nn(Kn, r)) n.real_type || (n.real_type = r);
|
|
2686
|
+
else if (Nn(Bn, r)) n.type || (n.type = r);
|
|
2687
|
+
else if (Nn(Yn, r)) switch (r) {
|
|
2688
|
+
case "writable":
|
|
2689
|
+
n.is_writable = !0;
|
|
2690
|
+
break;
|
|
2691
|
+
case "notnull":
|
|
2692
|
+
case "required":
|
|
2693
|
+
n.is_required = !0;
|
|
2694
|
+
break;
|
|
2695
|
+
case "hidden": n.is_hidden = !0;
|
|
2696
|
+
}
|
|
2697
|
+
}
|
|
2698
|
+
n.real_type || (n.real_type = "string");
|
|
2699
|
+
} else Kt(t) ? (n = Jn(t), n.name || (n.name = e), n.header || (n.header = e)) : Yt(t) && (n.real_type = "array", n.enum_list = t);
|
|
2700
|
+
return n.type || (n.type = n.real_type), n;
|
|
2701
|
+
}, exports.timeTracker = function(e = "Time Tracker", t = !1) {
|
|
2702
|
+
const n = e, r = performance.now();
|
|
2703
|
+
let o = r;
|
|
2704
|
+
return t && Ot(`--\x3e ${n} - starting`), { mark: (e = "Intermediate", s = "") => {
|
|
2705
|
+
const i = performance.now(), l = (i - o) / 1e3, _ = (i - r) / 1e3;
|
|
2706
|
+
return t && Ot(`--\x3e ${n} ${e} - partial: ${l} sec, total: ${_} sec, ${s}`), o = i, {
|
|
2707
|
+
partial: l,
|
|
2708
|
+
total: _
|
|
2709
|
+
};
|
|
2710
|
+
} };
|
|
2711
|
+
}, exports.trace_json = Dt, exports.trace_msg = wt, exports.treedb_decoder_fkey = Mn, exports.treedb_decoder_hook = function(e, t) {
|
|
2712
|
+
if (Bt(t)) {
|
|
2713
|
+
if (-1 === t.indexOf("^")) {
|
|
2714
|
+
let n, r = e.hook;
|
|
2715
|
+
if (1 !== Vt(r)) return St("bad hook 1"), St(e), St(t), null;
|
|
2716
|
+
for (let e of Object.keys(r)) {
|
|
2717
|
+
n = e, r[e];
|
|
2718
|
+
break;
|
|
2719
|
+
}
|
|
2720
|
+
return {
|
|
2721
|
+
topic_name: n,
|
|
2722
|
+
id: t
|
|
2723
|
+
};
|
|
2724
|
+
}
|
|
2725
|
+
{
|
|
2726
|
+
let n = t.split("^");
|
|
2727
|
+
return 2 !== n.length ? (St("bad hook 2"), St(e), St(t), null) : {
|
|
2728
|
+
topic_name: n[0],
|
|
2729
|
+
id: n[1]
|
|
2730
|
+
};
|
|
2731
|
+
}
|
|
2732
|
+
}
|
|
2733
|
+
return Kt(t) ? {
|
|
2734
|
+
topic_name: t.topic_name,
|
|
2735
|
+
id: t.id
|
|
2736
|
+
} : (St("bad hook 3"), St(e), St(t), null);
|
|
2737
|
+
}, exports.treedb_encoder_fkey = function(e, t) {
|
|
2738
|
+
let n = Mn(e, t);
|
|
2739
|
+
return n ? n.topic_name + "^" + n.id + "^" + n.hook_name : null;
|
|
2740
|
+
}, exports.treedb_get_field_desc = Jn, exports.treedb_hook_data_size = function(e) {
|
|
2741
|
+
if (Yt(e) && 1 === Mt(e)) {
|
|
2742
|
+
let t = e[0];
|
|
2743
|
+
return on(t, "size") ? t.size : 1;
|
|
2744
|
+
}
|
|
2745
|
+
return Mt(e);
|
|
2746
|
+
}, exports.vsprintf = function(e, n) {
|
|
2747
|
+
return t.apply(null, [e].concat(n || []));
|
|
2748
|
+
};
|
|
2749
|
+
|
|
2750
|
+
//# sourceMappingURL=gobj-js.cjs.min.js.map
|