@yuneta/gobj-js 7.26.7 → 7.26.9
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 +42 -9
- package/dist/gobj-js.cjs.js.map +1 -1
- package/dist/gobj-js.cjs.min.js +111 -93
- package/dist/gobj-js.cjs.min.js.map +1 -1
- package/dist/gobj-js.es.js +42 -9
- package/dist/gobj-js.es.js.map +1 -1
- package/dist/gobj-js.es.min.js +26 -8
- package/dist/gobj-js.es.min.js.map +1 -1
- package/dist/gobj-js.iife.js +42 -9
- package/dist/gobj-js.iife.js.map +1 -1
- package/dist/gobj-js.iife.min.js +168 -150
- package/dist/gobj-js.iife.min.js.map +1 -1
- package/dist/gobj-js.umd.js +42 -9
- package/dist/gobj-js.umd.js.map +1 -1
- package/dist/gobj-js.umd.min.js +168 -150
- package/dist/gobj-js.umd.min.js.map +1 -1
- package/package.json +1 -1
package/dist/gobj-js.umd.min.js
CHANGED
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
data: l || []
|
|
133
133
|
};
|
|
134
134
|
}
|
|
135
|
-
var s = "7.0.0a", i = null, _ = null, a = null, u = null, c = null, f = null, g = [], d = Object.create(null), b = Object.create(null), p = null, m = null, h = 0,
|
|
135
|
+
var s = "7.0.0a", i = null, _ = null, a = null, u = null, c = null, f = null, g = [], d = Object.create(null), b = Object.create(null), p = null, m = null, h = 0, E = Object.freeze({
|
|
136
136
|
DTP_STRING: 1,
|
|
137
137
|
DTP_BOOLEAN: 2,
|
|
138
138
|
DTP_INTEGER: 3,
|
|
@@ -142,8 +142,8 @@
|
|
|
142
142
|
DTP_JSON: 7,
|
|
143
143
|
DTP_POINTER: 8
|
|
144
144
|
});
|
|
145
|
-
|
|
146
|
-
var
|
|
145
|
+
E.DTP_POINTER;
|
|
146
|
+
var y = Object.freeze({
|
|
147
147
|
SDF_NOTACCESS: 1,
|
|
148
148
|
SDF_RD: 2,
|
|
149
149
|
SDF_WR: 4,
|
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
SDF_AUTHZ_S: 524288,
|
|
167
167
|
SDF_AUTHZ_RS: 1048576
|
|
168
168
|
});
|
|
169
|
-
|
|
169
|
+
y.SDF_RD, y.SDF_WR, y.SDF_STATS, y.SDF_PERSIST, y.SDF_VOLATIL, y.SDF_RSTATS, y.SDF_PSTATS, y.SDF_WR, y.SDF_PERSIST;
|
|
170
170
|
var T = class {
|
|
171
171
|
constructor(e, t, n = 0, r = null, l = "", o = null, s = null, i = 0, _ = null, a = null, u = null) {
|
|
172
172
|
this.type = e, this.name = t, this.alias = o, this.flag = n, this.default_value = r, this.header = s, this.fillspace = i, this.description = l, this.json_fn = _, this.schema = a, this.authpth = u;
|
|
@@ -223,7 +223,7 @@
|
|
|
223
223
|
};
|
|
224
224
|
var C = 1;
|
|
225
225
|
function L(e) {
|
|
226
|
-
Zn(e) && (e = JSON.stringify(e)),
|
|
226
|
+
Zn(e) && (e = JSON.stringify(e)), yn(" ".repeat(Math.max(1, 2 * h)) + String(e));
|
|
227
227
|
}
|
|
228
228
|
var P = Object.freeze({
|
|
229
229
|
TRACE_MACHINE: 65536,
|
|
@@ -427,19 +427,19 @@
|
|
|
427
427
|
function ae(e, t, n) {
|
|
428
428
|
let r, l = n.default_value;
|
|
429
429
|
switch (n.type) {
|
|
430
|
-
case
|
|
430
|
+
case E.DTP_STRING:
|
|
431
431
|
r = String(l);
|
|
432
432
|
break;
|
|
433
|
-
case
|
|
433
|
+
case E.DTP_BOOLEAN:
|
|
434
434
|
r = _r(l);
|
|
435
435
|
break;
|
|
436
|
-
case
|
|
436
|
+
case E.DTP_INTEGER:
|
|
437
437
|
r = parseInt(l), isNaN(r) && hn(`${et(e)}: attr NaN: ${n.name}`);
|
|
438
438
|
break;
|
|
439
|
-
case
|
|
439
|
+
case E.DTP_REAL:
|
|
440
440
|
r = Number(l), isNaN(r) && hn(`${et(e)}: attr NaN: ${n.name}`);
|
|
441
441
|
break;
|
|
442
|
-
case
|
|
442
|
+
case E.DTP_LIST:
|
|
443
443
|
if (tr(l)) try {
|
|
444
444
|
r = JSON.parse(l);
|
|
445
445
|
} catch (e) {
|
|
@@ -448,7 +448,7 @@
|
|
|
448
448
|
else r = l;
|
|
449
449
|
er(r) || (r = []);
|
|
450
450
|
break;
|
|
451
|
-
case
|
|
451
|
+
case E.DTP_DICT:
|
|
452
452
|
if (tr(l)) try {
|
|
453
453
|
r = JSON.parse(l);
|
|
454
454
|
} catch (e) {
|
|
@@ -457,7 +457,7 @@
|
|
|
457
457
|
else r = l;
|
|
458
458
|
Zn(r) || (r = {});
|
|
459
459
|
break;
|
|
460
|
-
case
|
|
460
|
+
case E.DTP_JSON:
|
|
461
461
|
if ("" === l || void 0 === l) r = null;
|
|
462
462
|
else if (tr(l)) try {
|
|
463
463
|
r = JSON.parse(l);
|
|
@@ -466,14 +466,14 @@
|
|
|
466
466
|
}
|
|
467
467
|
else r = l;
|
|
468
468
|
break;
|
|
469
|
-
case
|
|
469
|
+
case E.DTP_POINTER: r = l;
|
|
470
470
|
}
|
|
471
471
|
return void 0 === r && (hn(`default_value WRONG, it: ${n.name}, value: ${n.default_value}`), r = null), t[n.name] = r, 0;
|
|
472
472
|
}
|
|
473
473
|
function ue(e, t, n, r) {
|
|
474
474
|
let l;
|
|
475
475
|
switch (n.type) {
|
|
476
|
-
case
|
|
476
|
+
case E.DTP_STRING:
|
|
477
477
|
if (null == r) l = "";
|
|
478
478
|
else if (tr(r)) l = String(r);
|
|
479
479
|
else {
|
|
@@ -481,16 +481,16 @@
|
|
|
481
481
|
e && (l = String(e));
|
|
482
482
|
}
|
|
483
483
|
break;
|
|
484
|
-
case
|
|
484
|
+
case E.DTP_BOOLEAN:
|
|
485
485
|
l = _r(r);
|
|
486
486
|
break;
|
|
487
|
-
case
|
|
487
|
+
case E.DTP_INTEGER:
|
|
488
488
|
if (l = parseInt(r), isNaN(l)) return hn(`${et(e)}: attr NaN: ${n.name}`), -1;
|
|
489
489
|
break;
|
|
490
|
-
case
|
|
490
|
+
case E.DTP_REAL:
|
|
491
491
|
if (l = Number(r), isNaN(l)) return hn(`${et(e)}: attr NaN: ${n.name}`), -1;
|
|
492
492
|
break;
|
|
493
|
-
case
|
|
493
|
+
case E.DTP_LIST:
|
|
494
494
|
if (tr(r)) try {
|
|
495
495
|
l = JSON.parse(r);
|
|
496
496
|
} catch (e) {
|
|
@@ -499,7 +499,7 @@
|
|
|
499
499
|
else l = r;
|
|
500
500
|
if (!er(l)) return hn(`attr must be an array: ${n.name}`), -1;
|
|
501
501
|
break;
|
|
502
|
-
case
|
|
502
|
+
case E.DTP_DICT:
|
|
503
503
|
if (tr(r)) try {
|
|
504
504
|
l = JSON.parse(r);
|
|
505
505
|
} catch (e) {
|
|
@@ -508,7 +508,7 @@
|
|
|
508
508
|
else l = r;
|
|
509
509
|
if (!Zn(l)) return hn(`attr must be an object: ${n.name}`), -1;
|
|
510
510
|
break;
|
|
511
|
-
case
|
|
511
|
+
case E.DTP_JSON:
|
|
512
512
|
if (l = r, tr(r)) {
|
|
513
513
|
const e = r.trim();
|
|
514
514
|
if (e.startsWith("{") || e.startsWith("[")) try {
|
|
@@ -518,7 +518,7 @@
|
|
|
518
518
|
}
|
|
519
519
|
}
|
|
520
520
|
break;
|
|
521
|
-
case
|
|
521
|
+
case E.DTP_POINTER: l = r;
|
|
522
522
|
}
|
|
523
523
|
return void 0 === l && hn(`${et(e)}: attr undefined: ${n.name}`), t[n.name] = l, Zn(e.priv) && Object.prototype.hasOwnProperty.call(e.priv, n.name) && (e.priv[n.name] = l), e.obflag & R.obflag_created && !(e.obflag & R.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, n.name), 0;
|
|
524
524
|
}
|
|
@@ -553,7 +553,7 @@
|
|
|
553
553
|
const l = r.length;
|
|
554
554
|
for (let e = 0; e < l; e++) {
|
|
555
555
|
let n = r[e][0], l = r[e][1], o = r[e][2];
|
|
556
|
-
ir(n) ||
|
|
556
|
+
ir(n) || Ee(c, t, n, l, o);
|
|
557
557
|
}
|
|
558
558
|
}
|
|
559
559
|
for (let e = 0; e < t.length; e++) {
|
|
@@ -598,17 +598,17 @@
|
|
|
598
598
|
function he(e, t) {
|
|
599
599
|
return e instanceof O ? pe(e, t) ? (hn(`state already exists: ${t}`), -1) : (e.dl_states.push(new A(t)), 0) : (hn("Cannot add state, typeof not GClass"), -1);
|
|
600
600
|
}
|
|
601
|
-
function
|
|
601
|
+
function Ee(e, t, n, r, l) {
|
|
602
602
|
if (!(e instanceof O)) return hn("Cannot add state, typeof not GClass"), -1;
|
|
603
603
|
if (ir(t)) return hn("state_name EMPTY"), -1;
|
|
604
604
|
let o = pe(e, t);
|
|
605
605
|
return o ? me(o, n) ? (hn(`event already exists: gclass ${e.gclass_name}, state ${t}, event ${n}`), -1) : (o.dl_actions.push(new k(n, r, l)), 0) : (hn(`state not found: ${t}`), -1);
|
|
606
606
|
}
|
|
607
|
-
function
|
|
607
|
+
function ye(e, t, n) {
|
|
608
608
|
ir(t) || e.push(new I(t, n));
|
|
609
609
|
}
|
|
610
610
|
function Te(e, t, n) {
|
|
611
|
-
return e instanceof O ?
|
|
611
|
+
return e instanceof O ? ye(e.dl_events, t, n) : (hn("Cannot add state, typeof not GClass"), -1);
|
|
612
612
|
}
|
|
613
613
|
function ve(e, t) {
|
|
614
614
|
if (!(e instanceof O)) return hn("Cannot add state, typeof not GClass"), 0;
|
|
@@ -682,7 +682,7 @@
|
|
|
682
682
|
let o = 0;
|
|
683
683
|
for (const [s, i] of Object.entries(t)) {
|
|
684
684
|
const t = ge(l.gclass, s, !1);
|
|
685
|
-
t ? (-1 === n || t.flag & n) && (t.flag &
|
|
685
|
+
t ? (-1 === n || t.flag & n) && (t.flag & y.SDF_DEPRECATED && En(`${et(l)}: Deprecated attribute used in gobj creation: ${s}`), o += ue(l, e, t, i)) : r && (r(l, s), o--);
|
|
686
686
|
}
|
|
687
687
|
return o;
|
|
688
688
|
})(ce(e), r, -1, e.gclass.gclass_flag & w.gcflag_ignore_unknown_attrs ? 0 : ke, e) < 0 && (hn(`${et(e)} json2data() FAILED`), Un(r));
|
|
@@ -696,7 +696,7 @@
|
|
|
696
696
|
if (!("string" == typeof l || l instanceof S)) return hn(`BAD TYPE of parent: ${l}`), null;
|
|
697
697
|
if (tr(l)) {
|
|
698
698
|
const e = l;
|
|
699
|
-
if (!(l = we(e))) return
|
|
699
|
+
if (!(l = we(e))) return En(`parent service not found: ${e}`), null;
|
|
700
700
|
}
|
|
701
701
|
}
|
|
702
702
|
if (o & N.gobj_flag_service && we(e, !1)) return hn(`service ALREADY registered: ${t}^${e}`), null;
|
|
@@ -759,7 +759,7 @@
|
|
|
759
759
|
function Ve(e) {
|
|
760
760
|
if (ot(e)) return hn("gobj NULL or DESTROYED"), -1;
|
|
761
761
|
if (!e.running) return hn(`${et(e)}: GObj NOT RUNNING`), -1;
|
|
762
|
-
e.playing && (
|
|
762
|
+
e.playing && (En(`${et(e)}: GObj stopping without previous pause`), xe(e)), J(e) && L(n("⏹ ⏹ stop: %s", tt(e))), e.running = !1;
|
|
763
763
|
let t = 0;
|
|
764
764
|
return e.gclass.gmt.mt_stop && (t = e.gclass.gmt.mt_stop(e)), t;
|
|
765
765
|
}
|
|
@@ -775,7 +775,7 @@
|
|
|
775
775
|
if (e.disabled) return hn(`${et(e)}: GObj DISABLED`), -1;
|
|
776
776
|
if (!Ke(e)) {
|
|
777
777
|
if (e.gclass.gclass_flag & w.gcflag_required_start_to_play) return hn(`${et(e)}: Cannot play, start not done`), -1;
|
|
778
|
-
|
|
778
|
+
En(`${et(e)}: GObj playing without previous start`), Pe(e);
|
|
779
779
|
}
|
|
780
780
|
J(e) && L(n("⏯ ⏯ play: %s", tt(e))), e.playing = !0;
|
|
781
781
|
let t = 0;
|
|
@@ -843,7 +843,7 @@
|
|
|
843
843
|
}
|
|
844
844
|
function it(e, t) {
|
|
845
845
|
if (!sr(e)) return hn("gobj NULL of bad type"), null;
|
|
846
|
-
e.bottom_gobj && t &&
|
|
846
|
+
e.bottom_gobj && t && En(`${et(e)}: bottom_gobj already set`), e.bottom_gobj = t;
|
|
847
847
|
}
|
|
848
848
|
function _t(e, t, n) {
|
|
849
849
|
return sr(e) ? t ? ge(e.gclass, t, n) : e.gclass.attrs_table : (hn("gobj NULL of bad type"), null);
|
|
@@ -939,7 +939,7 @@
|
|
|
939
939
|
function ht(e, t) {
|
|
940
940
|
return !ir(t) && !!ge(e.gclass, t, !1);
|
|
941
941
|
}
|
|
942
|
-
function
|
|
942
|
+
function Et(e, t, n) {
|
|
943
943
|
let r = e.jn_attrs;
|
|
944
944
|
if (t in r && Object.prototype.hasOwnProperty.call(r, t)) {
|
|
945
945
|
let n = r[t];
|
|
@@ -947,7 +947,7 @@
|
|
|
947
947
|
}
|
|
948
948
|
return hn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), null;
|
|
949
949
|
}
|
|
950
|
-
function
|
|
950
|
+
function yt(e, t, n) {
|
|
951
951
|
let r = {}, l = e.gclass.attrs_table;
|
|
952
952
|
for (let n = 0; n < l.length; n++) {
|
|
953
953
|
const o = l[n];
|
|
@@ -1134,16 +1134,16 @@
|
|
|
1134
1134
|
return null;
|
|
1135
1135
|
}
|
|
1136
1136
|
var Wt = [
|
|
1137
|
-
j(
|
|
1138
|
-
j(
|
|
1139
|
-
j(
|
|
1140
|
-
j(
|
|
1141
|
-
j(
|
|
1142
|
-
j(
|
|
1143
|
-
j(
|
|
1144
|
-
j(
|
|
1145
|
-
j(
|
|
1146
|
-
j(
|
|
1137
|
+
j(E.DTP_POINTER, "publisher", 0, null, "publisher gobj"),
|
|
1138
|
+
j(E.DTP_POINTER, "subscriber", 0, null, "subscriber gobj"),
|
|
1139
|
+
j(E.DTP_STRING, "event", 0, "", "event name subscribed"),
|
|
1140
|
+
j(E.DTP_STRING, "renamed_event", 0, "", "rename event name"),
|
|
1141
|
+
j(E.DTP_INTEGER, "subs_flag", 0, 0, "subscription flag"),
|
|
1142
|
+
j(E.DTP_JSON, "__config__", 0, null, "subscription config"),
|
|
1143
|
+
j(E.DTP_JSON, "__global__", 0, null, "global kw, merge in publishing"),
|
|
1144
|
+
j(E.DTP_JSON, "__local__", 0, null, "local kw, remove in publishing"),
|
|
1145
|
+
j(E.DTP_JSON, "__filter__", 0, null, "filter kw, filter in publishing"),
|
|
1146
|
+
j(E.DTP_STRING, "__service__", 0, "", "subscription service"),
|
|
1147
1147
|
v()
|
|
1148
1148
|
];
|
|
1149
1149
|
function xt(e, t) {
|
|
@@ -1193,7 +1193,7 @@
|
|
|
1193
1193
|
}
|
|
1194
1194
|
function Jt(e, t, r, l) {
|
|
1195
1195
|
let o = vr(e, t, "publisher", null, Zt.KW_REQUIRED), s = vr(e, t, "subscriber", null, Zt.KW_REQUIRED), i = Tr(e, t, "event", "", Zt.KW_REQUIRED);
|
|
1196
|
-
if (!!(
|
|
1196
|
+
if (!!(yr(e, t, "subs_flag", null, Zt.KW_REQUIRED) & Gt.__hard_subscription__) && !r) return -1;
|
|
1197
1197
|
let _ = B(s) || B(o);
|
|
1198
1198
|
if (Bt(o.dl_subscriptions, t) < 0) return _ && L(n("💜💜👎 unsubscribing event '%s': publisher %s, subscriber'%s', ALREADY REMOVED", i || "", et(o), et(s))), 1;
|
|
1199
1199
|
_ && (L(n("💜💜👎 unsubscribing event '%s': publisher %s, subscriber'%s'", i || "", et(o), et(s))), vn(t)), o.obflag & R.obflag_destroyed || l || o.gclass.gmt.mt_subscription_deleted && o.gclass.gmt.mt_subscription_deleted(o, t);
|
|
@@ -1215,11 +1215,11 @@
|
|
|
1215
1215
|
}), ir(t)) t = "";
|
|
1216
1216
|
else if (!(Ct(e, t, $.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & w.gcflag_no_check_output_events)) return hn(`event NOT in output event list: ${et(e)}, ${t}`), 0;
|
|
1217
1217
|
let s = xt(r, t), i = Yt(e.dl_subscriptions, e, t, s.renamed_event, s.kw, l), _ = null;
|
|
1218
|
-
for (let t = 0; t < i.length; t++) if (
|
|
1218
|
+
for (let t = 0; t < i.length; t++) if (yr(e, i[t], "subs_flag", 0, Zt.KW_REQUIRED) & Gt.__hard_subscription__) {
|
|
1219
1219
|
_ = i[t];
|
|
1220
1220
|
break;
|
|
1221
1221
|
}
|
|
1222
|
-
if (_) return
|
|
1222
|
+
if (_) return En(`${et(e)}: Hard subscription REPEATED, the one there is kept and returned (event: ${t}, subscriber: ${et(l)})`), _;
|
|
1223
1223
|
Qn(i) > 0 && (hn(`${et(e)}: ${Qn(i)} subscription(s) REPEATED, will be deleted and override`), vn(i, "subscription REPEATED"), Ht(e, i, !1));
|
|
1224
1224
|
let a = function(e, t, n, r) {
|
|
1225
1225
|
let l = _e(e, Wt);
|
|
@@ -1240,11 +1240,11 @@
|
|
|
1240
1240
|
} else hn(`${et(e)}: EVENT NOT FOUND (__rename_event_name__: ${s})`);
|
|
1241
1241
|
}
|
|
1242
1242
|
if (gr(n, "__hard_subscription__")) {
|
|
1243
|
-
let t =
|
|
1243
|
+
let t = Er(e, n, "__hard_subscription__", !1);
|
|
1244
1244
|
Kn(n, "__hard_subscription__"), t && (o |= Gt.__hard_subscription__);
|
|
1245
1245
|
}
|
|
1246
1246
|
if (gr(n, "__own_event__")) {
|
|
1247
|
-
let t =
|
|
1247
|
+
let t = Er(e, n, "__own_event__", !1);
|
|
1248
1248
|
Kn(n, "__own_event__"), t && (o |= Gt.__own_event__);
|
|
1249
1249
|
}
|
|
1250
1250
|
}
|
|
@@ -1262,7 +1262,7 @@
|
|
|
1262
1262
|
function Ht(e, t, n) {
|
|
1263
1263
|
let r = [...t], l = 0;
|
|
1264
1264
|
for (let t = 0; t < r.length; t++) Jt(e, r[t], n, !1) > 0 && l++;
|
|
1265
|
-
return l &&
|
|
1265
|
+
return l && En(`${et(e)}: Subscription(s) already removed, nothing to remove (count: ${l})`), 0;
|
|
1266
1266
|
}
|
|
1267
1267
|
function zt(e, t, n, r) {
|
|
1268
1268
|
return null == n && (n = {}), Yt(e.dl_subscriptions, e, t, null, n, r);
|
|
@@ -1290,7 +1290,7 @@
|
|
|
1290
1290
|
}
|
|
1291
1291
|
let u = vr(e, a, "subscriber", null, Zt.KW_REQUIRED);
|
|
1292
1292
|
if (!u || ot(u)) continue;
|
|
1293
|
-
let c =
|
|
1293
|
+
let c = yr(e, a, "subs_flag", 0, Zt.KW_REQUIRED), f = Tr(e, a, "event", "", Zt.KW_REQUIRED);
|
|
1294
1294
|
if (ir(f) || 0 === ur(f, t)) {
|
|
1295
1295
|
jr(e, a, "__config__", null, 0);
|
|
1296
1296
|
let l = jr(e, a, "__global__", null, 0), s = jr(e, a, "__local__", null, 0), f = Or(e, a, "__filter__", null, 0), g = a.renamed_event;
|
|
@@ -1310,7 +1310,7 @@
|
|
|
1310
1310
|
if (_ += m, i++, ot(e)) break;
|
|
1311
1311
|
}
|
|
1312
1312
|
}
|
|
1313
|
-
return i || l && l.event_flag & $.EVF_NO_WARN_SUBS ||
|
|
1313
|
+
return i || l && l.event_flag & $.EVF_NO_WARN_SUBS || En(`${et(e)}: Publish event WITHOUT subscribers, ev ${t}`), _;
|
|
1314
1314
|
}
|
|
1315
1315
|
var Zt = Object.freeze({
|
|
1316
1316
|
KW_REQUIRED: 1,
|
|
@@ -1407,11 +1407,11 @@
|
|
|
1407
1407
|
let n = mn(e, ...t), r = el();
|
|
1408
1408
|
tn && (tn === en.error ? cn("error", n) && tn("%c" + r + " ERROR: " + String(n), "color:red") : (cn("error", n) && en.error("%c" + r + " ERROR: " + String(n), "color:red"), tn(`${r} ERROR: ${String(n)}`))), gn("error", n, r);
|
|
1409
1409
|
}
|
|
1410
|
-
function
|
|
1410
|
+
function En(e, ...t) {
|
|
1411
1411
|
let n = mn(e, ...t), r = el();
|
|
1412
1412
|
nn && (nn === en.warn ? cn("warning", n) && nn("%c" + r + " WARNING: " + String(n), "color:yellow") : (cn("warning", n) && en.warn("%c" + r + " WARNING: " + String(n), "color:yellow"), nn(`${r} WARNING: ${String(n)}`))), gn("warning", n, r);
|
|
1413
1413
|
}
|
|
1414
|
-
function
|
|
1414
|
+
function yn(e, ...t) {
|
|
1415
1415
|
let n = mn(e, ...t), r = el();
|
|
1416
1416
|
ln && cn("debug", n) && ln("%c" + r + " DEBUG: " + String(n), "color:silver"), gn("debug", n, r);
|
|
1417
1417
|
}
|
|
@@ -1766,7 +1766,7 @@
|
|
|
1766
1766
|
else if (s = mr(e, t, l, !0), void 0 === s) return -1;
|
|
1767
1767
|
return er(s) ? (hn(`${r}kw_delete(): cannot delete an item of a list: '${n}'`), -1) : Zn(s) && Object.prototype.hasOwnProperty.call(s, o) ? (delete s[o], 0) : (hn(`${r}kw_delete(): path not found: '${n}'`), -1);
|
|
1768
1768
|
}
|
|
1769
|
-
function
|
|
1769
|
+
function Er(e, t, n, r, l) {
|
|
1770
1770
|
e && !sr(e) && hn("GObj bad instanceof");
|
|
1771
1771
|
let o = mr(e, t, n, !1);
|
|
1772
1772
|
const s = l && l & Zt.KW_REQUIRED, i = l && l & Zt.KW_CREATE, _ = l && l & Zt.KW_EXTRACT, a = l && l & Zt.KW_WILD_NUMBER;
|
|
@@ -1787,7 +1787,7 @@
|
|
|
1787
1787
|
}
|
|
1788
1788
|
return _ && hr(e, t, n), u;
|
|
1789
1789
|
}
|
|
1790
|
-
function
|
|
1790
|
+
function yr(e, t, n, r, l) {
|
|
1791
1791
|
e && !sr(e) && hn("GObj bad instanceof");
|
|
1792
1792
|
let o = mr(e, t, n, !1);
|
|
1793
1793
|
const s = l && l & Zt.KW_REQUIRED, i = l && l & Zt.KW_CREATE, _ = l && l & Zt.KW_EXTRACT, a = l && l & Zt.KW_WILD_NUMBER;
|
|
@@ -1884,8 +1884,24 @@
|
|
|
1884
1884
|
}
|
|
1885
1885
|
function wr(e, t, n, r, l) {
|
|
1886
1886
|
if (e && !sr(e) && hn("GObj bad instanceof"), !Zn(t)) return hn("kw is not an object"), -1;
|
|
1887
|
-
let o =
|
|
1888
|
-
|
|
1887
|
+
let o = mr(e, t, n, !1);
|
|
1888
|
+
if (void 0 === o) {
|
|
1889
|
+
if (!tr(n) || function(e, t) {
|
|
1890
|
+
let n = t.split("`"), r = e;
|
|
1891
|
+
for (let e = 0; e < n.length - 1; e++) {
|
|
1892
|
+
if (er(r)) {
|
|
1893
|
+
const t = pr(r, n[e]);
|
|
1894
|
+
if (t < 0) return !1;
|
|
1895
|
+
r = r[t];
|
|
1896
|
+
} else r = Object.prototype.hasOwnProperty.call(r, n[e]) ? r[n[e]] : void 0;
|
|
1897
|
+
if (null == r) return !1;
|
|
1898
|
+
if (!Zn(r) && !er(r)) return !0;
|
|
1899
|
+
}
|
|
1900
|
+
return !1;
|
|
1901
|
+
}(t, n)) return -1;
|
|
1902
|
+
if (o = {}, Sr(e, t, n, o) < 0) return -1;
|
|
1903
|
+
}
|
|
1904
|
+
return Zn(o) ? (br(o, r, l), 0) : (hn(`subdict is not an object: '${n}'`), -1);
|
|
1889
1905
|
}
|
|
1890
1906
|
function Nr(e, t, r) {
|
|
1891
1907
|
let l = "", o = !1;
|
|
@@ -2322,9 +2338,9 @@
|
|
|
2322
2338
|
return t.is_file && (t.type = "file"), t;
|
|
2323
2339
|
}
|
|
2324
2340
|
var bl = [
|
|
2325
|
-
j(
|
|
2326
|
-
j(
|
|
2327
|
-
j(
|
|
2341
|
+
j(E.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
|
|
2342
|
+
j(E.DTP_BOOLEAN, "periodic", 0, 0, "True for periodic timeouts"),
|
|
2343
|
+
j(E.DTP_INTEGER, "msec", 0, 0, "Timeout in milliseconds"),
|
|
2328
2344
|
v()
|
|
2329
2345
|
], pl = {
|
|
2330
2346
|
periodic: !1,
|
|
@@ -2337,7 +2353,7 @@
|
|
|
2337
2353
|
Vt(e, "EV_TIMEOUT", {}, e);
|
|
2338
2354
|
}, l.msec) : l.timer_id = -1, lt(e) ? Vt(nt(e), o, {}, e) : Xt(e, o, {}), l.periodic || -1 !== l.timer_id || Ke(e) && Ve(e), 0;
|
|
2339
2355
|
}
|
|
2340
|
-
var
|
|
2356
|
+
var El = {
|
|
2341
2357
|
mt_create: function(e) {
|
|
2342
2358
|
let t = e.priv;
|
|
2343
2359
|
const n = Ot(e, "subscriber");
|
|
@@ -2362,7 +2378,7 @@
|
|
|
2362
2378
|
},
|
|
2363
2379
|
mt_destroy: function(e) {}
|
|
2364
2380
|
};
|
|
2365
|
-
function
|
|
2381
|
+
function yl(e, t) {
|
|
2366
2382
|
return e instanceof S ? "C_TIMER" !== Ze(e) ? (hn("not C_TIMER GObj"), -1) : (Nt(e, "periodic", !1), void Rt(e, "msec", t)) : (hn("not GObj TYPE"), -1);
|
|
2367
2383
|
}
|
|
2368
2384
|
function Tl(e, t) {
|
|
@@ -2372,28 +2388,28 @@
|
|
|
2372
2388
|
return e instanceof S ? "C_TIMER" !== Ze(e) ? (hn("not C_TIMER GObj"), -1) : void Rt(e, "msec", -1) : (hn("not GObj TYPE"), -1);
|
|
2373
2389
|
}
|
|
2374
2390
|
var jl = [
|
|
2375
|
-
j(
|
|
2376
|
-
j(
|
|
2377
|
-
j(
|
|
2378
|
-
j(
|
|
2379
|
-
j(
|
|
2380
|
-
j(
|
|
2381
|
-
j(
|
|
2382
|
-
j(
|
|
2383
|
-
j(
|
|
2384
|
-
j(
|
|
2385
|
-
j(
|
|
2386
|
-
j(
|
|
2387
|
-
j(
|
|
2388
|
-
j(
|
|
2389
|
-
j(
|
|
2390
|
-
j(
|
|
2391
|
-
j(
|
|
2392
|
-
j(
|
|
2391
|
+
j(E.DTP_BOOLEAN, "changesLost", 0, !1, "Set true to warn about leaving page"),
|
|
2392
|
+
j(E.DTP_BOOLEAN, "browser_beforeunload", 0, !1, "Set true to refreshing browser"),
|
|
2393
|
+
j(E.DTP_STRING, "__username__", 0, "", "Username"),
|
|
2394
|
+
j(E.DTP_STRING, "start_date", 0, "", "Yuno starting date"),
|
|
2395
|
+
j(E.DTP_STRING, "node_uuid", 0, "", "uuid of node"),
|
|
2396
|
+
j(E.DTP_STRING, "yuno_role", 0, "", "Yuno role"),
|
|
2397
|
+
j(E.DTP_STRING, "yuno_id", 0, "", "Yuno Id. Set by agent"),
|
|
2398
|
+
j(E.DTP_STRING, "yuno_name", 0, "", "Yuno name. Set by agent"),
|
|
2399
|
+
j(E.DTP_STRING, "yuno_tag", 0, "", "Tags of yuno. Set by agent"),
|
|
2400
|
+
j(E.DTP_STRING, "yuno_release", 0, "", "Yuno Release. Set by agent"),
|
|
2401
|
+
j(E.DTP_STRING, "yuno_version", 0, "", "Yuno version (APP_VERSION)"),
|
|
2402
|
+
j(E.DTP_STRING, "yuneta_version", 0, s, "Yuneta version"),
|
|
2403
|
+
j(E.DTP_LIST, "required_services", 0, "[]", "Required services"),
|
|
2404
|
+
j(E.DTP_DICT, "trace_levels", y.SDF_PERSIST, "{}", "Trace levels"),
|
|
2405
|
+
j(E.DTP_DICT, "no_trace_levels", y.SDF_PERSIST, "{}", "No trace levels"),
|
|
2406
|
+
j(E.DTP_POINTER, "trace_ievent_callback", 0, null, "Where the traffic trace goes (C_IEVENT_CLI levels ievents/ievents2); console when null"),
|
|
2407
|
+
j(E.DTP_BOOLEAN, "developer", 0, !1, "Developer mode enabled"),
|
|
2408
|
+
j(E.DTP_INTEGER, "periodic_timeout", 0, "1000", "Timeout periodic, in miliseconds."),
|
|
2393
2409
|
v()
|
|
2394
2410
|
], Ol = { gobj_timer: null }, Sl = null;
|
|
2395
2411
|
function wl(e, t, n, r) {
|
|
2396
|
-
let l =
|
|
2412
|
+
let l = Et(e, t);
|
|
2397
2413
|
return Zn(l) || (l = {}), l[n] = r, St(e, t, l), De(e, t);
|
|
2398
2414
|
}
|
|
2399
2415
|
function Nl(e) {
|
|
@@ -2410,8 +2426,8 @@
|
|
|
2410
2426
|
var Dl = {
|
|
2411
2427
|
mt_create: function(e) {
|
|
2412
2428
|
let t = e.priv;
|
|
2413
|
-
$t(e, "start_date", el()), $t(e, "node_uuid", nl()), e.priv.gobj_timer = Ce(Xe(e), "C_TIMER", {}, e), t.periodic_timeout =
|
|
2414
|
-
let t =
|
|
2429
|
+
$t(e, "start_date", el()), $t(e, "node_uuid", nl()), e.priv.gobj_timer = Ce(Xe(e), "C_TIMER", {}, e), t.periodic_timeout = Et(e, "periodic_timeout"), function(e) {
|
|
2430
|
+
let t = Et(e, "trace_levels");
|
|
2415
2431
|
if (!Zn(t)) return 0;
|
|
2416
2432
|
let n = t.__global_trace__;
|
|
2417
2433
|
if (er(n)) {
|
|
@@ -2426,7 +2442,7 @@
|
|
|
2426
2442
|
} else hn(`${Xe(e)}: trace_levels of ${n} MUST be a list`);
|
|
2427
2443
|
}
|
|
2428
2444
|
}(e), function(e) {
|
|
2429
|
-
let t =
|
|
2445
|
+
let t = Et(e, "no_trace_levels");
|
|
2430
2446
|
if (!Zn(t)) return 0;
|
|
2431
2447
|
let n = t.__global_no_trace__;
|
|
2432
2448
|
if (er(n)) {
|
|
@@ -2482,21 +2498,21 @@
|
|
|
2482
2498
|
}
|
|
2483
2499
|
};
|
|
2484
2500
|
var kl = "ievent_gate_stack", Al = [
|
|
2485
|
-
j(
|
|
2486
|
-
j(
|
|
2487
|
-
j(
|
|
2488
|
-
j(
|
|
2489
|
-
j(
|
|
2490
|
-
j(
|
|
2491
|
-
j(
|
|
2492
|
-
j(
|
|
2493
|
-
j(
|
|
2494
|
-
j(
|
|
2495
|
-
j(
|
|
2496
|
-
j(
|
|
2497
|
-
j(
|
|
2498
|
-
j(
|
|
2499
|
-
j(
|
|
2501
|
+
j(E.DTP_STRING, "wanted_yuno_role", y.SDF_RD, "", "wanted yuno role"),
|
|
2502
|
+
j(E.DTP_STRING, "wanted_yuno_name", y.SDF_RD, "", "wanted yuno name"),
|
|
2503
|
+
j(E.DTP_STRING, "wanted_yuno_service", y.SDF_RD, "", "wanted yuno service"),
|
|
2504
|
+
j(E.DTP_STRING, "remote_yuno_role", y.SDF_RD, "", "confirmed remote yuno role"),
|
|
2505
|
+
j(E.DTP_STRING, "remote_yuno_name", y.SDF_RD, "", "confirmed remote yuno name"),
|
|
2506
|
+
j(E.DTP_STRING, "remote_yuno_service", y.SDF_RD, "", "confirmed remote yuno service"),
|
|
2507
|
+
j(E.DTP_STRING, "url", y.SDF_RD, "", "Url to connect"),
|
|
2508
|
+
j(E.DTP_STRING, "jwt", y.SDF_PERSIST, "", "JWT"),
|
|
2509
|
+
j(E.DTP_STRING, "cert_pem", y.SDF_PERSIST, "", "SSL server certification, PEM str format"),
|
|
2510
|
+
j(E.DTP_JSON, "extra_info", y.SDF_RD, "{}", "dict data set by user, added to the identity card msg."),
|
|
2511
|
+
j(E.DTP_LIST, "required_services", y.SDF_RD, "[]", "Services this LINK requires (identity card). Empty = the yuno's `required_services`, as before. A yuno with several links to DIFFERENT backends must set it per link: the yuno-wide list is the union, so every backend is told the service names of all the others."),
|
|
2512
|
+
j(E.DTP_INTEGER, "timeout_retry", y.SDF_RD, "5000", "First reconnect delay (ms). It BACKS OFF from here, doubling up to timeout_retry_max, and resets when a session is reached"),
|
|
2513
|
+
j(E.DTP_INTEGER, "timeout_retry_max", y.SDF_RD, "60000", "Cap of the reconnect backoff (ms). Set it equal to timeout_retry for the old fixed-interval behaviour"),
|
|
2514
|
+
j(E.DTP_INTEGER, "timeout_idack", y.SDF_RD, "5000", "timeout waiting idAck"),
|
|
2515
|
+
j(E.DTP_POINTER, "subscriber", 0, 0, "subscriber of output-events. If null then subscriber is the parent"),
|
|
2500
2516
|
v()
|
|
2501
2517
|
], Il = [
|
|
2502
2518
|
["ievents", "Trace inter-events with metadata of kw"],
|
|
@@ -2520,7 +2536,7 @@
|
|
|
2520
2536
|
function Ul(e) {
|
|
2521
2537
|
e.priv.websocket && hn("Websocket ALREADY setup");
|
|
2522
2538
|
const t = jt(e, "url");
|
|
2523
|
-
|
|
2539
|
+
yn(`====> Starting WebSocket to '${t}' (${et(e)})`);
|
|
2524
2540
|
const n = ++e.priv.ws_seq;
|
|
2525
2541
|
let r;
|
|
2526
2542
|
try {
|
|
@@ -2532,7 +2548,7 @@
|
|
|
2532
2548
|
code: 1006,
|
|
2533
2549
|
reason: r.message,
|
|
2534
2550
|
was_clean: !1
|
|
2535
|
-
}, e) < 0 &&
|
|
2551
|
+
}, e) < 0 && yl(e.priv.gobj_timer, ql(e)), null;
|
|
2536
2552
|
}
|
|
2537
2553
|
return r ? (r.onopen = () => {
|
|
2538
2554
|
n !== e.priv.ws_seq || ot(e) || Vt(e, "EV_ON_OPEN", {
|
|
@@ -2545,7 +2561,7 @@
|
|
|
2545
2561
|
data: r.data
|
|
2546
2562
|
}, e);
|
|
2547
2563
|
}, r.onclose = (r) => {
|
|
2548
|
-
ot(e) || n === e.priv.ws_seq && (Tt(qe(), "browser_beforeunload") ?
|
|
2564
|
+
ot(e) || n === e.priv.ws_seq && (Tt(qe(), "browser_beforeunload") ? En("Close websocket by unload page") : Vt(e, "EV_ON_CLOSE", {
|
|
2549
2565
|
url: t,
|
|
2550
2566
|
ws_seq: n,
|
|
2551
2567
|
code: r.code,
|
|
@@ -2557,20 +2573,20 @@
|
|
|
2557
2573
|
function Fl(e, t = 1e3, n = "") {
|
|
2558
2574
|
let r = e.priv, l = r.websocket;
|
|
2559
2575
|
if (r.websocket = null, l && l.readyState !== WebSocket.CLOSED && l.readyState !== WebSocket.CLOSING) {
|
|
2560
|
-
|
|
2576
|
+
yn(`Closing WebSocket (Code: ${t}, Reason: "${n}")`);
|
|
2561
2577
|
try {
|
|
2562
2578
|
l.close(t, n);
|
|
2563
2579
|
} catch (t) {
|
|
2564
2580
|
hn(`${et(e)}: Error closing WebSocket: ${t.message}`);
|
|
2565
2581
|
}
|
|
2566
|
-
} else
|
|
2582
|
+
} else En("WebSocket is already closed or in the process of closing.");
|
|
2567
2583
|
}
|
|
2568
2584
|
function Vl(e, t, n) {
|
|
2569
2585
|
let r = el();
|
|
2570
2586
|
try {
|
|
2571
|
-
|
|
2587
|
+
yn("\n" + r + " " + t + "\n"), Un(n);
|
|
2572
2588
|
} catch (e) {
|
|
2573
|
-
|
|
2589
|
+
yn("ERROR in trace_inter_event: " + e);
|
|
2574
2590
|
}
|
|
2575
2591
|
}
|
|
2576
2592
|
var Gl = class {
|
|
@@ -2582,10 +2598,10 @@
|
|
|
2582
2598
|
return function(e, t) {
|
|
2583
2599
|
let n = e.priv, r = JSON.stringify(t);
|
|
2584
2600
|
if (Cl(e)) {
|
|
2585
|
-
let n = jt(e, "url"), l = Xe(qe()) + " ==> " + n, o =
|
|
2601
|
+
let n = jt(e, "url"), l = Xe(qe()) + " ==> " + n, o = Et(qe(), "trace_ievent_callback");
|
|
2586
2602
|
o ? o(l, t, 1, r.length) : Vl(0, l, t);
|
|
2587
2603
|
}
|
|
2588
|
-
if (!n.websocket || n.websocket.readyState !== WebSocket.OPEN) return
|
|
2604
|
+
if (!n.websocket || n.websocket.readyState !== WebSocket.OPEN) return En(`${et(e)}: send_iev(): websocket not open, message lost`), -1;
|
|
2589
2605
|
try {
|
|
2590
2606
|
n.websocket.send(r);
|
|
2591
2607
|
} catch (t) {
|
|
@@ -2608,8 +2624,8 @@
|
|
|
2608
2624
|
};
|
|
2609
2625
|
}
|
|
2610
2626
|
function xl(e) {
|
|
2611
|
-
let t = e.priv, n = Je(qe()), r = jt(qe(), "yuno_version"), l = jt(qe(), "yuno_release"), o = jt(qe(), "yuno_tag"), i =
|
|
2612
|
-
i && i.length || (i =
|
|
2627
|
+
let t = e.priv, n = Je(qe()), r = jt(qe(), "yuno_version"), l = jt(qe(), "yuno_release"), o = jt(qe(), "yuno_tag"), i = Et(e, "required_services");
|
|
2628
|
+
i && i.length || (i = Et(qe(), "required_services"));
|
|
2613
2629
|
let _ = {
|
|
2614
2630
|
yuno_role: ze(),
|
|
2615
2631
|
yuno_id: Qe(),
|
|
@@ -2630,7 +2646,7 @@
|
|
|
2630
2646
|
language: "undefined" != typeof window ? window.navigator.language : "",
|
|
2631
2647
|
required_services: i
|
|
2632
2648
|
};
|
|
2633
|
-
return Gr(e, _, kl, Wl(e, Xe(nt(e)), null)), Wr(e, _, "__identity__"),
|
|
2649
|
+
return Gr(e, _, kl, Wl(e, Xe(nt(e)), null)), Wr(e, _, "__identity__"), yl(t.gobj_timer, vt(e, "timeout_idack")), Ml(e, "EV_IDENTITY_CARD", _);
|
|
2634
2650
|
}
|
|
2635
2651
|
function Kl(e, t) {
|
|
2636
2652
|
if (ir(t.event)) return -1;
|
|
@@ -2643,16 +2659,16 @@
|
|
|
2643
2659
|
return Ke(e) && (l.websocket = Ul(e)), 0;
|
|
2644
2660
|
}
|
|
2645
2661
|
function Bl(e, t, n, r) {
|
|
2646
|
-
return
|
|
2662
|
+
return yn("Websocket opened: " + e.priv.url), xl(e), 0;
|
|
2647
2663
|
}
|
|
2648
2664
|
function Jl(e, t, n, r) {
|
|
2649
2665
|
let l = e.priv, o = n.url;
|
|
2650
|
-
return void 0 !== n.ws_seq && n.ws_seq !== l.ws_seq || (bn(),
|
|
2666
|
+
return void 0 !== n.ws_seq && n.ws_seq !== l.ws_seq || (bn(), En(`${et(e)}: WebSocket closed ${o} (Code: ${n.code}, Reason: "${n.reason}", Clean: ${n.was_clean})`), l.websocket && (l.websocket.onopen = null, l.websocket.onmessage = null, l.websocket.onerror = null, l.websocket.onclose = null, l.websocket = null), l.inform_on_close ? (l.inform_on_close = !1, Xt(e, "EV_ON_CLOSE", {
|
|
2651
2667
|
url: o,
|
|
2652
2668
|
remote_yuno_name: l.remote_yuno_name,
|
|
2653
2669
|
remote_yuno_role: l.remote_yuno_role,
|
|
2654
2670
|
remote_yuno_service: l.remote_yuno_service
|
|
2655
|
-
})) : Ke(e) && (
|
|
2671
|
+
})) : Ke(e) && (En(`${et(e)}: EV_ON_OPEN_ERROR cannot open ${o} (Code: ${n.code}, Reason: "${n.reason}", Clean: ${n.was_clean})`), Xt(e, "EV_ON_OPEN_ERROR", {
|
|
2656
2672
|
url: o,
|
|
2657
2673
|
remote_yuno_name: l.remote_yuno_name,
|
|
2658
2674
|
remote_yuno_role: l.remote_yuno_role,
|
|
@@ -2660,7 +2676,7 @@
|
|
|
2660
2676
|
code: n.code,
|
|
2661
2677
|
reason: n.reason,
|
|
2662
2678
|
was_clean: n.was_clean
|
|
2663
|
-
})), Ke(e) &&
|
|
2679
|
+
})), Ke(e) && yl(l.gobj_timer, ql(e))), 0;
|
|
2664
2680
|
}
|
|
2665
2681
|
function ql(e) {
|
|
2666
2682
|
let t = e.priv, n = vt(e, "timeout_retry"), r = vt(e, "timeout_retry_max");
|
|
@@ -2676,7 +2692,7 @@
|
|
|
2676
2692
|
vl(l.gobj_timer);
|
|
2677
2693
|
let o = Mr(e, n, kl, !0), s = Tr(e, o, "src_yuno", ""), i = Tr(e, o, "src_role", ""), _ = Tr(e, o, "src_service", "");
|
|
2678
2694
|
$t(e, "remote_yuno_name", s), $t(e, "remote_yuno_role", i), $t(e, "remote_yuno_service", _);
|
|
2679
|
-
let a =
|
|
2695
|
+
let a = yr(e, n, "result", -1, 0), u = Tr(e, n, "comment", "", 0), c = Tr(e, n, "username", "", 0), f = Or(e, n, "services_roles", {});
|
|
2680
2696
|
if (a < 0) {
|
|
2681
2697
|
Fl(e);
|
|
2682
2698
|
let t = {
|
|
@@ -2714,21 +2730,21 @@
|
|
|
2714
2730
|
try {
|
|
2715
2731
|
n = JSON.parse(t);
|
|
2716
2732
|
} catch (t) {
|
|
2717
|
-
return
|
|
2733
|
+
return En(`${et(e)}: parsing inter_event json: ${t}`), null;
|
|
2718
2734
|
}
|
|
2719
|
-
if (!(n instanceof Object)) return
|
|
2735
|
+
if (!(n instanceof Object)) return En(`${et(e)}: parsing inter_event: websocket data not a json object`), null;
|
|
2720
2736
|
let r = n.event;
|
|
2721
|
-
if (!r) return
|
|
2722
|
-
if ("string" != typeof r) return
|
|
2737
|
+
if (!r) return En(`${et(e)}: parsing inter_event: no event`), null;
|
|
2738
|
+
if ("string" != typeof r) return En(`${et(e)}: parsing inter_event: event not a string`), null;
|
|
2723
2739
|
let l = n.kw;
|
|
2724
2740
|
return l ? l instanceof Object ? {
|
|
2725
2741
|
event: r,
|
|
2726
2742
|
kw: l || {}
|
|
2727
|
-
} : (
|
|
2743
|
+
} : (En(`${et(e)}: parsing inter_event: kw not a json object`), null) : (En(`${et(e)}: parsing inter_kw: no kw`), null);
|
|
2728
2744
|
}(e, n.data);
|
|
2729
|
-
if (!o) return
|
|
2745
|
+
if (!o) return En(`${et(e)}: frame dropped from ${l}: ${String(n.data).substring(0, 256)}`), -1;
|
|
2730
2746
|
if (Cl(e)) {
|
|
2731
|
-
let e = Xe(qe()) + " <== " + l, t = n.data.length, r =
|
|
2747
|
+
let e = Xe(qe()) + " <== " + l, t = n.data.length, r = Et(qe(), "trace_ievent_callback");
|
|
2732
2748
|
r ? r(e, o, 2, t) : Vl(0, e, o);
|
|
2733
2749
|
}
|
|
2734
2750
|
let s = o.event, i = o.kw;
|
|
@@ -2742,12 +2758,12 @@
|
|
|
2742
2758
|
let _ = xr(e, i), a = Mr(e, i, kl), u = Tr(e, a, "dst_role", "");
|
|
2743
2759
|
if (u.toLowerCase() !== ze().toLowerCase()) return hn(`"It's not my role, dst_role: ${u}, my_role: ${ze()}`), 0;
|
|
2744
2760
|
let c = Tr(e, a, "dst_service", "");
|
|
2745
|
-
if ("__subscribing__" === _) return
|
|
2746
|
-
if ("__unsubscribing__" === _) return
|
|
2761
|
+
if ("__subscribing__" === _) return En(`${et(e)}: subscription event ignored, I'm client (service: ${c}, event: ${s})`), -1;
|
|
2762
|
+
if ("__unsubscribing__" === _) return En(`${et(e)}: unsubscription event ignored, I'm client (service: ${c}, event: ${s})`), -1;
|
|
2747
2763
|
if (It(e, s, $.EVF_PUBLIC_EVENT)) return Vt(e, s, i, e), 0;
|
|
2748
2764
|
if (!ir(c)) {
|
|
2749
2765
|
let t = we(c, !1);
|
|
2750
|
-
return t ? It(t, s, $.EVF_PUBLIC_EVENT) ? (Vt(t, s, i, e), 0) : (hn(`${et(e)}: Service found but no event or not public, service '${et(t)}', ev '${s}'`), -1) : (
|
|
2766
|
+
return t ? It(t, s, $.EVF_PUBLIC_EVENT) ? (Vt(t, s, i, e), 0) : (hn(`${et(e)}: Service found but no event or not public, service '${et(t)}', ev '${s}'`), -1) : (En(`${et(e)}: event for a service that is gone, DROPPED: service '${c}', ev '${s}'`), 0);
|
|
2751
2767
|
}
|
|
2752
2768
|
return lt(e) ? Vt(nt(e), s, i, e) : Xt(e, s, i), 0;
|
|
2753
2769
|
}
|
|
@@ -2860,7 +2876,7 @@
|
|
|
2860
2876
|
else if (o.length > 0 && "<" === o[0] && function(e) {
|
|
2861
2877
|
if (Xr.size >= 100) return;
|
|
2862
2878
|
const t = e.slice(0, 80);
|
|
2863
|
-
Xr.has(t) || (Xr.add(t),
|
|
2879
|
+
Xr.has(t) || (Xr.add(t), En(`createElement2: a string that starts with '<' is TEXT (set_strings_are_text): use html_markup() if it is markup: ${JSON.stringify(t)}`));
|
|
2864
2880
|
}(o), n && _) i.textContent = n(_) || o;
|
|
2865
2881
|
else i.textContent = o;
|
|
2866
2882
|
else if (er(o)) {
|
|
@@ -2880,20 +2896,20 @@
|
|
|
2880
2896
|
let o = Or(null, t, e, l);
|
|
2881
2897
|
Yn(n, e, o);
|
|
2882
2898
|
}), n;
|
|
2883
|
-
}, e.current_timestamp = el, e.data_type_t =
|
|
2899
|
+
}, e.current_timestamp = el, e.data_type_t = E, e.db_list_persistent_attrs = function(e, t) {
|
|
2884
2900
|
let n = kr(al(e), null, !1), r = {};
|
|
2885
2901
|
return n && Zn(n) && (r = $r(e, n, t, !1)), r;
|
|
2886
2902
|
}, e.db_load_persistent_attrs = function(e, t) {
|
|
2887
|
-
let n =
|
|
2903
|
+
let n = yt(e, y.SDF_PERSIST), r = kr(al(e), null, !1);
|
|
2888
2904
|
if (r && Zn(r)) {
|
|
2889
2905
|
let l = $r(e, r, t, !1);
|
|
2890
|
-
l = $r(e, l, n, !1), wt(e, l,
|
|
2906
|
+
l = $r(e, l, n, !1), wt(e, l, y.SDF_PERSIST);
|
|
2891
2907
|
}
|
|
2892
2908
|
}, e.db_remove_persistent_attrs = function(e, t) {
|
|
2893
2909
|
let n = Dr(e, kr(al(e), null, !1), t, !1);
|
|
2894
2910
|
0 === zn(n) ? Ir(al(e)) : Ar(al(e), n);
|
|
2895
2911
|
}, e.db_save_persistent_attrs = function(e, t) {
|
|
2896
|
-
let n = $r(e,
|
|
2912
|
+
let n = $r(e, yt(e, y.SDF_PERSIST), t, !1), r = kr(al(e), null, !1);
|
|
2897
2913
|
return r && Zn(r) && Wn(n, r), Ar(al(e), n);
|
|
2898
2914
|
}, e.debounce = function(e, t = 0, n = !1) {
|
|
2899
2915
|
let r = null, l = null, o = null;
|
|
@@ -2979,7 +2995,7 @@
|
|
|
2979
2995
|
return l;
|
|
2980
2996
|
}, e.flat_key_join = function(e) {
|
|
2981
2997
|
return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : sl(e)).join("`") : "";
|
|
2982
|
-
}, e.flat_key_split = il, e.gclass_add_ev_action =
|
|
2998
|
+
}, e.flat_key_split = il, e.gclass_add_ev_action = Ee, e.gclass_add_event_type = Te, e.gclass_add_state = he, e.gclass_check_fsm = je, e.gclass_create = de, e.gclass_event_type = ve, e.gclass_find_by_name = Oe, e.gclass_flag_t = w, e.gclass_unregister = be, e.getPositionRelativeToBody = function(e) {
|
|
2983
2999
|
if (!e) return {
|
|
2984
3000
|
top: 0,
|
|
2985
3001
|
left: 0,
|
|
@@ -3001,7 +3017,7 @@
|
|
|
3001
3017
|
}, e.get_function_name = rl, e.get_now = function() {
|
|
3002
3018
|
return Math.floor(Date.now() / 1e3);
|
|
3003
3019
|
}, e.gobj_bottom_gobj = st, e.gobj_change_parent = function(e, t) {
|
|
3004
|
-
return ot(e) ? (hn("gobj NULL or DESTROYED"), null) : t instanceof S ? (e.parent && e.parent.gclass.gmt.mt_child_removed && e.parent.gclass.gmt.mt_child_removed(e.parent, e), e.parent && ($e(e.parent, e), e.parent = null), Re(t, e), t.gclass.gmt.mt_child_added && (Y(e) &&
|
|
3020
|
+
return ot(e) ? (hn("gobj NULL or DESTROYED"), null) : t instanceof S ? (e.parent && e.parent.gclass.gmt.mt_child_removed && e.parent.gclass.gmt.mt_child_removed(e.parent, e), e.parent && ($e(e.parent, e), e.parent = null), Re(t, e), t.gclass.gmt.mt_child_added && (Y(e) && yn(n("👦👦🔵 child_added(%s): %s", tt(t), et(e))), t.gclass.gmt.mt_child_added(t, e)), 0) : (hn(`${et(e)}: gobj_change_parent() BAD TYPE of parent`), -1);
|
|
3005
3021
|
}, e.gobj_change_state = Dt, e.gobj_command = function(e, t, r, o) {
|
|
3006
3022
|
if (ot(e)) return hn("gobj NULL or DESTROYED"), -1;
|
|
3007
3023
|
if (function(e) {
|
|
@@ -3072,7 +3088,7 @@
|
|
|
3072
3088
|
}(n, e), n;
|
|
3073
3089
|
}, e.gobj_match_gobj = bt, e.gobj_name = Xe, e.gobj_parent = nt, e.gobj_pause = xe, e.gobj_play = We, e.gobj_post_event = Ut, e.gobj_posted_events_size = function() {
|
|
3074
3090
|
return Lt.length;
|
|
3075
|
-
}, e.gobj_publish_event = Xt, e.gobj_read_attr =
|
|
3091
|
+
}, e.gobj_publish_event = Xt, e.gobj_read_attr = Et, e.gobj_read_attrs = yt, e.gobj_read_bool_attr = Tt, e.gobj_read_integer_attr = vt, e.gobj_read_pointer_attr = Ot, e.gobj_read_str_attr = jt, e.gobj_remove_persistent_attrs = function(e, t) {
|
|
3076
3092
|
return Be(e) ? a ? a(e, t) : -1 : (hn(`${et(e)}: Only gobj services can load/save writable-persistent`), -1);
|
|
3077
3093
|
}, e.gobj_repr_global_trace_levels = function() {
|
|
3078
3094
|
return U.map(([e, t, n]) => ({
|
|
@@ -3090,7 +3106,7 @@
|
|
|
3090
3106
|
o.name && (n && o.flag & n || (-1 === t || o.flag & t) && (ae(e, e.jn_attrs, o), Zn(e.priv) && Object.prototype.hasOwnProperty.call(e.priv, o.name) && (e.priv[o.name] = e.jn_attrs[o.name]), e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, o.name)));
|
|
3091
3107
|
}
|
|
3092
3108
|
return 0;
|
|
3093
|
-
}(e,
|
|
3109
|
+
}(e, y.SDF_VOLATIL, 0);
|
|
3094
3110
|
}, e.gobj_save_persistent_attrs = De, e.gobj_search_path = mt, e.gobj_send_event = Vt, e.gobj_services = function() {
|
|
3095
3111
|
let e = [];
|
|
3096
3112
|
for (const t of Object.keys(b)) qn(e, t);
|
|
@@ -3116,7 +3132,7 @@
|
|
|
3116
3132
|
const d = [["EV_STATE_CHANGED", $.EVF_SYSTEM_EVENT | $.EVF_OUTPUT_EVENT | $.EVF_NO_WARN_SUBS], [0, 0]];
|
|
3117
3133
|
for (let e = 0; e < d.length; e++) {
|
|
3118
3134
|
let t = d[e][0], n = d[e][1];
|
|
3119
|
-
|
|
3135
|
+
ye(g, t, n);
|
|
3120
3136
|
}
|
|
3121
3137
|
return 0;
|
|
3122
3138
|
}, e.gobj_stats = function(e, t, r, l) {
|
|
@@ -3144,7 +3160,7 @@
|
|
|
3144
3160
|
let n = s[t], r = Jt(e, n, !1, !1);
|
|
3145
3161
|
0 === r ? i++ : r < 0 ? _++ : a++;
|
|
3146
3162
|
}
|
|
3147
|
-
return _ ?
|
|
3163
|
+
return _ ? En(`${et(e)}: Hard subscription not removed, only gobj_unsubscribe_list() with force removes it (event: ${t}, hard: ${_})`) : i || a || (En(`${et(e)}: No subscription found`), Un(n, "No subscription found")), 0;
|
|
3148
3164
|
}, e.gobj_unsubscribe_list = Ht, e.gobj_walk_gobj_children = at, e.gobj_walk_gobj_children_tree = ut, e.gobj_write_attr = St, e.gobj_write_attrs = wt, e.gobj_write_bool_attr = Nt, e.gobj_write_integer_attr = Rt, e.gobj_write_str_attr = $t, e.gobj_yuno = qe, e.gobj_yuno_id = Qe, e.gobj_yuno_name = He, e.gobj_yuno_role = ze, e.html_markup = function(e) {
|
|
3149
3165
|
return "string" != typeof e ? (hn("html_markup: not a string, type " + typeof e), new qr("")) : new qr(e);
|
|
3150
3166
|
}, e.id_index_in_obj_list = Pr, e.index_in_list = tl, e.is_array = er, e.is_boolean = rr, e.is_date = function(e) {
|
|
@@ -3168,6 +3184,7 @@
|
|
|
3168
3184
|
let l = Or(null, Or(null, e, "topics", null, 0), t, null, 0);
|
|
3169
3185
|
if (!l) return hn("jdb_delete: topic not found: " + t), null;
|
|
3170
3186
|
if (ir(r.id)) return hn("jdb_delete: record without id: " + r), Tn(r), null;
|
|
3187
|
+
if (!tr(n)) return hn(`jdb_delete: path must be a string: ${String(n)}`), null;
|
|
3171
3188
|
let o, s = n.split("`"), i = l;
|
|
3172
3189
|
for (; (o = s.shift()) && !ir(o) && i;) Zn(i) && (i = Or(null, i, e.hook, null, 0)), i = Yr(i, null, o, !1);
|
|
3173
3190
|
if (0 === s.length && i) if (er(i)) {
|
|
@@ -3190,22 +3207,23 @@
|
|
|
3190
3207
|
return Or(null, n, t, null, 0) || (hn("jdb topic not found: " + t), Tn(n), null);
|
|
3191
3208
|
}, e.jdb_init = function(e, t, n) {
|
|
3192
3209
|
n && (e = Fn(e));
|
|
3193
|
-
let r = Or(null, e, "type", [],
|
|
3194
|
-
Tr(null, e, "hook", "data",
|
|
3195
|
-
let l = Or(null, e, "schema", {},
|
|
3210
|
+
let r = Or(null, e, "type", [], Zt.KW_CREATE);
|
|
3211
|
+
Tr(null, e, "hook", "data", Zt.KW_CREATE);
|
|
3212
|
+
let l = Or(null, e, "schema", {}, Zt.KW_CREATE), o = Or(null, e, "topics", {}, Zt.KW_CREATE);
|
|
3196
3213
|
return Kr(l, function(e, t, n, l) {
|
|
3197
|
-
"__" !== t.substring(0, 2) && Or(null, o, l, Fn(r),
|
|
3214
|
+
"__" !== t.substring(0, 2) && Or(null, o, l, Fn(r), Zt.KW_CREATE);
|
|
3198
3215
|
}, t), e;
|
|
3199
3216
|
}, e.jdb_update = function(e, t, n, r) {
|
|
3200
3217
|
let l = Or(null, Or(null, e, "topics", null, 0), t, null, 0);
|
|
3201
3218
|
if (!l) return hn("jdb_update: topic not found: " + t), null;
|
|
3202
3219
|
if (ir(r.id)) return hn("jdb_update: record without id: " + r), Tn(r), null;
|
|
3220
|
+
if (!tr(n)) return hn(`jdb_update: path must be a string: ${String(n)}`), null;
|
|
3203
3221
|
let o, s = n.split("`"), i = l;
|
|
3204
|
-
for (; (o = s.shift()) && !ir(o) && i;) Zn(i) && (i = Or(null, i, e.hook, [],
|
|
3222
|
+
for (; (o = s.shift()) && !ir(o) && i;) Zn(i) && (i = Or(null, i, e.hook, [], Zt.KW_CREATE)), i = Yr(i, null, o, !1);
|
|
3205
3223
|
if (0 === s.length && i) if (er(i)) i.push(r);
|
|
3206
3224
|
else if (i.id === r.id) Gn(i, r);
|
|
3207
3225
|
else {
|
|
3208
|
-
let t = Or(null, i, e.hook, [],
|
|
3226
|
+
let t = Or(null, i, e.hook, [], Zt.KW_CREATE), n = Yr(t, e.hook, r.id, !1);
|
|
3209
3227
|
n ? Gn(n, r) : t.push(r);
|
|
3210
3228
|
}
|
|
3211
3229
|
return l;
|
|
@@ -3260,7 +3278,7 @@
|
|
|
3260
3278
|
if (!n || !er(t)) return r && hn("item NULL or kw_list is not a list"), -1;
|
|
3261
3279
|
for (let e = 0; e < t.length; e++) if (Vn(n, t[e])) return e;
|
|
3262
3280
|
return r && hn("item not found in this list"), -1;
|
|
3263
|
-
}, e.kw_find_path = mr, e.kw_flag_t = Zt, e.kw_get_bool =
|
|
3281
|
+
}, e.kw_find_path = mr, e.kw_flag_t = Zt, e.kw_get_bool = Er, e.kw_get_dict = jr, e.kw_get_dict_value = Or, e.kw_get_int = yr, e.kw_get_list = function(e, t, n, r, l) {
|
|
3264
3282
|
e && !sr(e) && hn("GObj bad instanceof");
|
|
3265
3283
|
let o = mr(e, t, n, !1);
|
|
3266
3284
|
const s = l && l & Zt.KW_REQUIRED, i = l && l & Zt.KW_CREATE, _ = l && l & Zt.KW_EXTRACT;
|
|
@@ -3386,10 +3404,10 @@
|
|
|
3386
3404
|
else n && n(r.status);
|
|
3387
3405
|
var e;
|
|
3388
3406
|
}, r.send();
|
|
3389
|
-
}, e.log_debug =
|
|
3407
|
+
}, e.log_debug = yn, e.log_error = hn, e.log_info = function(e, ...t) {
|
|
3390
3408
|
let n = mn(e, ...t), r = el();
|
|
3391
3409
|
rn && cn("info", n) && rn("%c" + r + " INFO: " + String(n), "color:cyan"), gn("info", n, r);
|
|
3392
|
-
}, e.log_warning =
|
|
3410
|
+
}, e.log_warning = En, e.mask_secrets_inline = kn, e.msg_iev_get_msg_type = xr, e.msg_iev_get_stack = Mr, e.msg_iev_push_stack = Gr, e.msg_iev_read_key = Fr, e.msg_iev_set_msg_type = Wr, e.msg_iev_write_key = Vr, e.node_uuid = nl, e.parseBoolean = _r, e.parseSVG = function(e) {
|
|
3393
3411
|
return new DOMParser().parseFromString(e, "image/svg+xml").firstChild;
|
|
3394
3412
|
}, e.refresh_language = function(e, t) {
|
|
3395
3413
|
if (!or(t)) return void hn("You must supply a translation function");
|
|
@@ -3521,7 +3539,7 @@
|
|
|
3521
3539
|
["EV_TIMEOUT", $.EVF_OUTPUT_EVENT],
|
|
3522
3540
|
["EV_TIMEOUT_PERIODIC", $.EVF_OUTPUT_EVENT],
|
|
3523
3541
|
[0, 0]
|
|
3524
|
-
], t,
|
|
3542
|
+
], t, El, 0, bl, pl, 0, 0, 0, w.gcflag_manual_start)) ? 0 : -1;
|
|
3525
3543
|
}("C_TIMER");
|
|
3526
3544
|
}, e.register_c_yuno = function() {
|
|
3527
3545
|
return function(e) {
|
|
@@ -3537,7 +3555,7 @@
|
|
|
3537
3555
|
if (!e) return "";
|
|
3538
3556
|
const t = String(e).trim();
|
|
3539
3557
|
return /^javascript:/i.test(t) || /^data:/i.test(t) ? "" : Jr(t);
|
|
3540
|
-
}, e.sdata_flag_t =
|
|
3558
|
+
}, e.sdata_flag_t = y, e.send_http_json_post = function(e, t, n) {
|
|
3541
3559
|
let r = new XMLHttpRequest();
|
|
3542
3560
|
r.open("POST", e), r.setRequestHeader("Accept", "application/json"), r.setRequestHeader("Content-Type", "application/json"), r.onreadystatechange = function() {
|
|
3543
3561
|
4 === r.readyState && n(r.status, r.responseText);
|
|
@@ -3561,7 +3579,7 @@
|
|
|
3561
3579
|
} else on = e;
|
|
3562
3580
|
}, e.set_remote_log_functions = bn, e.set_strings_are_text = function(e) {
|
|
3563
3581
|
Qr = !!e;
|
|
3564
|
-
}, e.set_timeout =
|
|
3582
|
+
}, e.set_timeout = yl, e.set_timeout_periodic = Tl, e.sprintf = n, e.stats_parser = function(e, t, n, r) {}, e.str_in_list = Ur, e.strcasecmp = ur, e.strcmp = ar, e.strings_are_text = function() {
|
|
3565
3583
|
return Qr;
|
|
3566
3584
|
}, e.strncmp = function(e, t, n) {
|
|
3567
3585
|
var r = (e + "").substring(0, n), l = (t + "").substring(0, n);
|
|
@@ -3611,9 +3629,9 @@
|
|
|
3611
3629
|
}, e.timeTracker = function(e = "Time Tracker", t = !1) {
|
|
3612
3630
|
const n = e, r = performance.now();
|
|
3613
3631
|
let l = r;
|
|
3614
|
-
return t &&
|
|
3632
|
+
return t && En(`--\x3e ${n} - starting`), { mark: (e = "Intermediate", o = "") => {
|
|
3615
3633
|
const s = performance.now(), i = (s - l) / 1e3, _ = (s - r) / 1e3;
|
|
3616
|
-
return t &&
|
|
3634
|
+
return t && En(`--\x3e ${n} ${e} - partial: ${i} sec, total: ${_} sec, ${o}`), l = s, {
|
|
3617
3635
|
partial: i,
|
|
3618
3636
|
total: _
|
|
3619
3637
|
};
|