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