@yuneta/gobj-js 7.26.8 → 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 +28 -8
- package/dist/gobj-js.cjs.js.map +1 -1
- package/dist/gobj-js.cjs.min.js +172 -160
- package/dist/gobj-js.cjs.min.js.map +1 -1
- package/dist/gobj-js.es.js +28 -8
- package/dist/gobj-js.es.js.map +1 -1
- package/dist/gobj-js.es.min.js +19 -7
- package/dist/gobj-js.es.min.js.map +1 -1
- package/dist/gobj-js.iife.js +28 -8
- package/dist/gobj-js.iife.js.map +1 -1
- package/dist/gobj-js.iife.min.js +161 -149
- package/dist/gobj-js.iife.min.js.map +1 -1
- package/dist/gobj-js.umd.js +28 -8
- package/dist/gobj-js.umd.js.map +1 -1
- package/dist/gobj-js.umd.min.js +161 -149
- 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;
|
|
@@ -1886,7 +1886,19 @@
|
|
|
1886
1886
|
if (e && !sr(e) && hn("GObj bad instanceof"), !Zn(t)) return hn("kw is not an object"), -1;
|
|
1887
1887
|
let o = mr(e, t, n, !1);
|
|
1888
1888
|
if (void 0 === o) {
|
|
1889
|
-
if (!tr(n))
|
|
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;
|
|
1890
1902
|
if (o = {}, Sr(e, t, n, o) < 0) return -1;
|
|
1891
1903
|
}
|
|
1892
1904
|
return Zn(o) ? (br(o, r, l), 0) : (hn(`subdict is not an object: '${n}'`), -1);
|
|
@@ -2326,9 +2338,9 @@
|
|
|
2326
2338
|
return t.is_file && (t.type = "file"), t;
|
|
2327
2339
|
}
|
|
2328
2340
|
var bl = [
|
|
2329
|
-
j(
|
|
2330
|
-
j(
|
|
2331
|
-
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"),
|
|
2332
2344
|
v()
|
|
2333
2345
|
], pl = {
|
|
2334
2346
|
periodic: !1,
|
|
@@ -2341,7 +2353,7 @@
|
|
|
2341
2353
|
Vt(e, "EV_TIMEOUT", {}, e);
|
|
2342
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;
|
|
2343
2355
|
}
|
|
2344
|
-
var
|
|
2356
|
+
var El = {
|
|
2345
2357
|
mt_create: function(e) {
|
|
2346
2358
|
let t = e.priv;
|
|
2347
2359
|
const n = Ot(e, "subscriber");
|
|
@@ -2366,7 +2378,7 @@
|
|
|
2366
2378
|
},
|
|
2367
2379
|
mt_destroy: function(e) {}
|
|
2368
2380
|
};
|
|
2369
|
-
function
|
|
2381
|
+
function yl(e, t) {
|
|
2370
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);
|
|
2371
2383
|
}
|
|
2372
2384
|
function Tl(e, t) {
|
|
@@ -2376,28 +2388,28 @@
|
|
|
2376
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);
|
|
2377
2389
|
}
|
|
2378
2390
|
var jl = [
|
|
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(
|
|
2393
|
-
j(
|
|
2394
|
-
j(
|
|
2395
|
-
j(
|
|
2396
|
-
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."),
|
|
2397
2409
|
v()
|
|
2398
2410
|
], Ol = { gobj_timer: null }, Sl = null;
|
|
2399
2411
|
function wl(e, t, n, r) {
|
|
2400
|
-
let l =
|
|
2412
|
+
let l = Et(e, t);
|
|
2401
2413
|
return Zn(l) || (l = {}), l[n] = r, St(e, t, l), De(e, t);
|
|
2402
2414
|
}
|
|
2403
2415
|
function Nl(e) {
|
|
@@ -2414,8 +2426,8 @@
|
|
|
2414
2426
|
var Dl = {
|
|
2415
2427
|
mt_create: function(e) {
|
|
2416
2428
|
let t = e.priv;
|
|
2417
|
-
$t(e, "start_date", el()), $t(e, "node_uuid", nl()), e.priv.gobj_timer = Ce(Xe(e), "C_TIMER", {}, e), t.periodic_timeout =
|
|
2418
|
-
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");
|
|
2419
2431
|
if (!Zn(t)) return 0;
|
|
2420
2432
|
let n = t.__global_trace__;
|
|
2421
2433
|
if (er(n)) {
|
|
@@ -2430,7 +2442,7 @@
|
|
|
2430
2442
|
} else hn(`${Xe(e)}: trace_levels of ${n} MUST be a list`);
|
|
2431
2443
|
}
|
|
2432
2444
|
}(e), function(e) {
|
|
2433
|
-
let t =
|
|
2445
|
+
let t = Et(e, "no_trace_levels");
|
|
2434
2446
|
if (!Zn(t)) return 0;
|
|
2435
2447
|
let n = t.__global_no_trace__;
|
|
2436
2448
|
if (er(n)) {
|
|
@@ -2486,21 +2498,21 @@
|
|
|
2486
2498
|
}
|
|
2487
2499
|
};
|
|
2488
2500
|
var kl = "ievent_gate_stack", Al = [
|
|
2489
|
-
j(
|
|
2490
|
-
j(
|
|
2491
|
-
j(
|
|
2492
|
-
j(
|
|
2493
|
-
j(
|
|
2494
|
-
j(
|
|
2495
|
-
j(
|
|
2496
|
-
j(
|
|
2497
|
-
j(
|
|
2498
|
-
j(
|
|
2499
|
-
j(
|
|
2500
|
-
j(
|
|
2501
|
-
j(
|
|
2502
|
-
j(
|
|
2503
|
-
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"),
|
|
2504
2516
|
v()
|
|
2505
2517
|
], Il = [
|
|
2506
2518
|
["ievents", "Trace inter-events with metadata of kw"],
|
|
@@ -2524,7 +2536,7 @@
|
|
|
2524
2536
|
function Ul(e) {
|
|
2525
2537
|
e.priv.websocket && hn("Websocket ALREADY setup");
|
|
2526
2538
|
const t = jt(e, "url");
|
|
2527
|
-
|
|
2539
|
+
yn(`====> Starting WebSocket to '${t}' (${et(e)})`);
|
|
2528
2540
|
const n = ++e.priv.ws_seq;
|
|
2529
2541
|
let r;
|
|
2530
2542
|
try {
|
|
@@ -2536,7 +2548,7 @@
|
|
|
2536
2548
|
code: 1006,
|
|
2537
2549
|
reason: r.message,
|
|
2538
2550
|
was_clean: !1
|
|
2539
|
-
}, e) < 0 &&
|
|
2551
|
+
}, e) < 0 && yl(e.priv.gobj_timer, ql(e)), null;
|
|
2540
2552
|
}
|
|
2541
2553
|
return r ? (r.onopen = () => {
|
|
2542
2554
|
n !== e.priv.ws_seq || ot(e) || Vt(e, "EV_ON_OPEN", {
|
|
@@ -2549,7 +2561,7 @@
|
|
|
2549
2561
|
data: r.data
|
|
2550
2562
|
}, e);
|
|
2551
2563
|
}, r.onclose = (r) => {
|
|
2552
|
-
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", {
|
|
2553
2565
|
url: t,
|
|
2554
2566
|
ws_seq: n,
|
|
2555
2567
|
code: r.code,
|
|
@@ -2561,20 +2573,20 @@
|
|
|
2561
2573
|
function Fl(e, t = 1e3, n = "") {
|
|
2562
2574
|
let r = e.priv, l = r.websocket;
|
|
2563
2575
|
if (r.websocket = null, l && l.readyState !== WebSocket.CLOSED && l.readyState !== WebSocket.CLOSING) {
|
|
2564
|
-
|
|
2576
|
+
yn(`Closing WebSocket (Code: ${t}, Reason: "${n}")`);
|
|
2565
2577
|
try {
|
|
2566
2578
|
l.close(t, n);
|
|
2567
2579
|
} catch (t) {
|
|
2568
2580
|
hn(`${et(e)}: Error closing WebSocket: ${t.message}`);
|
|
2569
2581
|
}
|
|
2570
|
-
} else
|
|
2582
|
+
} else En("WebSocket is already closed or in the process of closing.");
|
|
2571
2583
|
}
|
|
2572
2584
|
function Vl(e, t, n) {
|
|
2573
2585
|
let r = el();
|
|
2574
2586
|
try {
|
|
2575
|
-
|
|
2587
|
+
yn("\n" + r + " " + t + "\n"), Un(n);
|
|
2576
2588
|
} catch (e) {
|
|
2577
|
-
|
|
2589
|
+
yn("ERROR in trace_inter_event: " + e);
|
|
2578
2590
|
}
|
|
2579
2591
|
}
|
|
2580
2592
|
var Gl = class {
|
|
@@ -2586,10 +2598,10 @@
|
|
|
2586
2598
|
return function(e, t) {
|
|
2587
2599
|
let n = e.priv, r = JSON.stringify(t);
|
|
2588
2600
|
if (Cl(e)) {
|
|
2589
|
-
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");
|
|
2590
2602
|
o ? o(l, t, 1, r.length) : Vl(0, l, t);
|
|
2591
2603
|
}
|
|
2592
|
-
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;
|
|
2593
2605
|
try {
|
|
2594
2606
|
n.websocket.send(r);
|
|
2595
2607
|
} catch (t) {
|
|
@@ -2612,8 +2624,8 @@
|
|
|
2612
2624
|
};
|
|
2613
2625
|
}
|
|
2614
2626
|
function xl(e) {
|
|
2615
|
-
let t = e.priv, n = Je(qe()), r = jt(qe(), "yuno_version"), l = jt(qe(), "yuno_release"), o = jt(qe(), "yuno_tag"), i =
|
|
2616
|
-
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"));
|
|
2617
2629
|
let _ = {
|
|
2618
2630
|
yuno_role: ze(),
|
|
2619
2631
|
yuno_id: Qe(),
|
|
@@ -2634,7 +2646,7 @@
|
|
|
2634
2646
|
language: "undefined" != typeof window ? window.navigator.language : "",
|
|
2635
2647
|
required_services: i
|
|
2636
2648
|
};
|
|
2637
|
-
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", _);
|
|
2638
2650
|
}
|
|
2639
2651
|
function Kl(e, t) {
|
|
2640
2652
|
if (ir(t.event)) return -1;
|
|
@@ -2647,16 +2659,16 @@
|
|
|
2647
2659
|
return Ke(e) && (l.websocket = Ul(e)), 0;
|
|
2648
2660
|
}
|
|
2649
2661
|
function Bl(e, t, n, r) {
|
|
2650
|
-
return
|
|
2662
|
+
return yn("Websocket opened: " + e.priv.url), xl(e), 0;
|
|
2651
2663
|
}
|
|
2652
2664
|
function Jl(e, t, n, r) {
|
|
2653
2665
|
let l = e.priv, o = n.url;
|
|
2654
|
-
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", {
|
|
2655
2667
|
url: o,
|
|
2656
2668
|
remote_yuno_name: l.remote_yuno_name,
|
|
2657
2669
|
remote_yuno_role: l.remote_yuno_role,
|
|
2658
2670
|
remote_yuno_service: l.remote_yuno_service
|
|
2659
|
-
})) : 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", {
|
|
2660
2672
|
url: o,
|
|
2661
2673
|
remote_yuno_name: l.remote_yuno_name,
|
|
2662
2674
|
remote_yuno_role: l.remote_yuno_role,
|
|
@@ -2664,7 +2676,7 @@
|
|
|
2664
2676
|
code: n.code,
|
|
2665
2677
|
reason: n.reason,
|
|
2666
2678
|
was_clean: n.was_clean
|
|
2667
|
-
})), Ke(e) &&
|
|
2679
|
+
})), Ke(e) && yl(l.gobj_timer, ql(e))), 0;
|
|
2668
2680
|
}
|
|
2669
2681
|
function ql(e) {
|
|
2670
2682
|
let t = e.priv, n = vt(e, "timeout_retry"), r = vt(e, "timeout_retry_max");
|
|
@@ -2680,7 +2692,7 @@
|
|
|
2680
2692
|
vl(l.gobj_timer);
|
|
2681
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", "");
|
|
2682
2694
|
$t(e, "remote_yuno_name", s), $t(e, "remote_yuno_role", i), $t(e, "remote_yuno_service", _);
|
|
2683
|
-
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", {});
|
|
2684
2696
|
if (a < 0) {
|
|
2685
2697
|
Fl(e);
|
|
2686
2698
|
let t = {
|
|
@@ -2718,21 +2730,21 @@
|
|
|
2718
2730
|
try {
|
|
2719
2731
|
n = JSON.parse(t);
|
|
2720
2732
|
} catch (t) {
|
|
2721
|
-
return
|
|
2733
|
+
return En(`${et(e)}: parsing inter_event json: ${t}`), null;
|
|
2722
2734
|
}
|
|
2723
|
-
if (!(n instanceof Object)) return
|
|
2735
|
+
if (!(n instanceof Object)) return En(`${et(e)}: parsing inter_event: websocket data not a json object`), null;
|
|
2724
2736
|
let r = n.event;
|
|
2725
|
-
if (!r) return
|
|
2726
|
-
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;
|
|
2727
2739
|
let l = n.kw;
|
|
2728
2740
|
return l ? l instanceof Object ? {
|
|
2729
2741
|
event: r,
|
|
2730
2742
|
kw: l || {}
|
|
2731
|
-
} : (
|
|
2743
|
+
} : (En(`${et(e)}: parsing inter_event: kw not a json object`), null) : (En(`${et(e)}: parsing inter_kw: no kw`), null);
|
|
2732
2744
|
}(e, n.data);
|
|
2733
|
-
if (!o) return
|
|
2745
|
+
if (!o) return En(`${et(e)}: frame dropped from ${l}: ${String(n.data).substring(0, 256)}`), -1;
|
|
2734
2746
|
if (Cl(e)) {
|
|
2735
|
-
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");
|
|
2736
2748
|
r ? r(e, o, 2, t) : Vl(0, e, o);
|
|
2737
2749
|
}
|
|
2738
2750
|
let s = o.event, i = o.kw;
|
|
@@ -2746,12 +2758,12 @@
|
|
|
2746
2758
|
let _ = xr(e, i), a = Mr(e, i, kl), u = Tr(e, a, "dst_role", "");
|
|
2747
2759
|
if (u.toLowerCase() !== ze().toLowerCase()) return hn(`"It's not my role, dst_role: ${u}, my_role: ${ze()}`), 0;
|
|
2748
2760
|
let c = Tr(e, a, "dst_service", "");
|
|
2749
|
-
if ("__subscribing__" === _) return
|
|
2750
|
-
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;
|
|
2751
2763
|
if (It(e, s, $.EVF_PUBLIC_EVENT)) return Vt(e, s, i, e), 0;
|
|
2752
2764
|
if (!ir(c)) {
|
|
2753
2765
|
let t = we(c, !1);
|
|
2754
|
-
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);
|
|
2755
2767
|
}
|
|
2756
2768
|
return lt(e) ? Vt(nt(e), s, i, e) : Xt(e, s, i), 0;
|
|
2757
2769
|
}
|
|
@@ -2864,7 +2876,7 @@
|
|
|
2864
2876
|
else if (o.length > 0 && "<" === o[0] && function(e) {
|
|
2865
2877
|
if (Xr.size >= 100) return;
|
|
2866
2878
|
const t = e.slice(0, 80);
|
|
2867
|
-
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)}`));
|
|
2868
2880
|
}(o), n && _) i.textContent = n(_) || o;
|
|
2869
2881
|
else i.textContent = o;
|
|
2870
2882
|
else if (er(o)) {
|
|
@@ -2884,20 +2896,20 @@
|
|
|
2884
2896
|
let o = Or(null, t, e, l);
|
|
2885
2897
|
Yn(n, e, o);
|
|
2886
2898
|
}), n;
|
|
2887
|
-
}, 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) {
|
|
2888
2900
|
let n = kr(al(e), null, !1), r = {};
|
|
2889
2901
|
return n && Zn(n) && (r = $r(e, n, t, !1)), r;
|
|
2890
2902
|
}, e.db_load_persistent_attrs = function(e, t) {
|
|
2891
|
-
let n =
|
|
2903
|
+
let n = yt(e, y.SDF_PERSIST), r = kr(al(e), null, !1);
|
|
2892
2904
|
if (r && Zn(r)) {
|
|
2893
2905
|
let l = $r(e, r, t, !1);
|
|
2894
|
-
l = $r(e, l, n, !1), wt(e, l,
|
|
2906
|
+
l = $r(e, l, n, !1), wt(e, l, y.SDF_PERSIST);
|
|
2895
2907
|
}
|
|
2896
2908
|
}, e.db_remove_persistent_attrs = function(e, t) {
|
|
2897
2909
|
let n = Dr(e, kr(al(e), null, !1), t, !1);
|
|
2898
2910
|
0 === zn(n) ? Ir(al(e)) : Ar(al(e), n);
|
|
2899
2911
|
}, e.db_save_persistent_attrs = function(e, t) {
|
|
2900
|
-
let n = $r(e,
|
|
2912
|
+
let n = $r(e, yt(e, y.SDF_PERSIST), t, !1), r = kr(al(e), null, !1);
|
|
2901
2913
|
return r && Zn(r) && Wn(n, r), Ar(al(e), n);
|
|
2902
2914
|
}, e.debounce = function(e, t = 0, n = !1) {
|
|
2903
2915
|
let r = null, l = null, o = null;
|
|
@@ -2983,7 +2995,7 @@
|
|
|
2983
2995
|
return l;
|
|
2984
2996
|
}, e.flat_key_join = function(e) {
|
|
2985
2997
|
return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : sl(e)).join("`") : "";
|
|
2986
|
-
}, 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) {
|
|
2987
2999
|
if (!e) return {
|
|
2988
3000
|
top: 0,
|
|
2989
3001
|
left: 0,
|
|
@@ -3005,7 +3017,7 @@
|
|
|
3005
3017
|
}, e.get_function_name = rl, e.get_now = function() {
|
|
3006
3018
|
return Math.floor(Date.now() / 1e3);
|
|
3007
3019
|
}, e.gobj_bottom_gobj = st, e.gobj_change_parent = function(e, t) {
|
|
3008
|
-
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);
|
|
3009
3021
|
}, e.gobj_change_state = Dt, e.gobj_command = function(e, t, r, o) {
|
|
3010
3022
|
if (ot(e)) return hn("gobj NULL or DESTROYED"), -1;
|
|
3011
3023
|
if (function(e) {
|
|
@@ -3076,7 +3088,7 @@
|
|
|
3076
3088
|
}(n, e), n;
|
|
3077
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() {
|
|
3078
3090
|
return Lt.length;
|
|
3079
|
-
}, 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) {
|
|
3080
3092
|
return Be(e) ? a ? a(e, t) : -1 : (hn(`${et(e)}: Only gobj services can load/save writable-persistent`), -1);
|
|
3081
3093
|
}, e.gobj_repr_global_trace_levels = function() {
|
|
3082
3094
|
return U.map(([e, t, n]) => ({
|
|
@@ -3094,7 +3106,7 @@
|
|
|
3094
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)));
|
|
3095
3107
|
}
|
|
3096
3108
|
return 0;
|
|
3097
|
-
}(e,
|
|
3109
|
+
}(e, y.SDF_VOLATIL, 0);
|
|
3098
3110
|
}, e.gobj_save_persistent_attrs = De, e.gobj_search_path = mt, e.gobj_send_event = Vt, e.gobj_services = function() {
|
|
3099
3111
|
let e = [];
|
|
3100
3112
|
for (const t of Object.keys(b)) qn(e, t);
|
|
@@ -3120,7 +3132,7 @@
|
|
|
3120
3132
|
const d = [["EV_STATE_CHANGED", $.EVF_SYSTEM_EVENT | $.EVF_OUTPUT_EVENT | $.EVF_NO_WARN_SUBS], [0, 0]];
|
|
3121
3133
|
for (let e = 0; e < d.length; e++) {
|
|
3122
3134
|
let t = d[e][0], n = d[e][1];
|
|
3123
|
-
|
|
3135
|
+
ye(g, t, n);
|
|
3124
3136
|
}
|
|
3125
3137
|
return 0;
|
|
3126
3138
|
}, e.gobj_stats = function(e, t, r, l) {
|
|
@@ -3148,7 +3160,7 @@
|
|
|
3148
3160
|
let n = s[t], r = Jt(e, n, !1, !1);
|
|
3149
3161
|
0 === r ? i++ : r < 0 ? _++ : a++;
|
|
3150
3162
|
}
|
|
3151
|
-
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;
|
|
3152
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) {
|
|
3153
3165
|
return "string" != typeof e ? (hn("html_markup: not a string, type " + typeof e), new qr("")) : new qr(e);
|
|
3154
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) {
|
|
@@ -3195,11 +3207,11 @@
|
|
|
3195
3207
|
return Or(null, n, t, null, 0) || (hn("jdb topic not found: " + t), Tn(n), null);
|
|
3196
3208
|
}, e.jdb_init = function(e, t, n) {
|
|
3197
3209
|
n && (e = Fn(e));
|
|
3198
|
-
let r = Or(null, e, "type", [],
|
|
3199
|
-
Tr(null, e, "hook", "data",
|
|
3200
|
-
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);
|
|
3201
3213
|
return Kr(l, function(e, t, n, l) {
|
|
3202
|
-
"__" !== t.substring(0, 2) && Or(null, o, l, Fn(r),
|
|
3214
|
+
"__" !== t.substring(0, 2) && Or(null, o, l, Fn(r), Zt.KW_CREATE);
|
|
3203
3215
|
}, t), e;
|
|
3204
3216
|
}, e.jdb_update = function(e, t, n, r) {
|
|
3205
3217
|
let l = Or(null, Or(null, e, "topics", null, 0), t, null, 0);
|
|
@@ -3207,11 +3219,11 @@
|
|
|
3207
3219
|
if (ir(r.id)) return hn("jdb_update: record without id: " + r), Tn(r), null;
|
|
3208
3220
|
if (!tr(n)) return hn(`jdb_update: path must be a string: ${String(n)}`), null;
|
|
3209
3221
|
let o, s = n.split("`"), i = l;
|
|
3210
|
-
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);
|
|
3211
3223
|
if (0 === s.length && i) if (er(i)) i.push(r);
|
|
3212
3224
|
else if (i.id === r.id) Gn(i, r);
|
|
3213
3225
|
else {
|
|
3214
|
-
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);
|
|
3215
3227
|
n ? Gn(n, r) : t.push(r);
|
|
3216
3228
|
}
|
|
3217
3229
|
return l;
|
|
@@ -3266,7 +3278,7 @@
|
|
|
3266
3278
|
if (!n || !er(t)) return r && hn("item NULL or kw_list is not a list"), -1;
|
|
3267
3279
|
for (let e = 0; e < t.length; e++) if (Vn(n, t[e])) return e;
|
|
3268
3280
|
return r && hn("item not found in this list"), -1;
|
|
3269
|
-
}, 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) {
|
|
3270
3282
|
e && !sr(e) && hn("GObj bad instanceof");
|
|
3271
3283
|
let o = mr(e, t, n, !1);
|
|
3272
3284
|
const s = l && l & Zt.KW_REQUIRED, i = l && l & Zt.KW_CREATE, _ = l && l & Zt.KW_EXTRACT;
|
|
@@ -3392,10 +3404,10 @@
|
|
|
3392
3404
|
else n && n(r.status);
|
|
3393
3405
|
var e;
|
|
3394
3406
|
}, r.send();
|
|
3395
|
-
}, e.log_debug =
|
|
3407
|
+
}, e.log_debug = yn, e.log_error = hn, e.log_info = function(e, ...t) {
|
|
3396
3408
|
let n = mn(e, ...t), r = el();
|
|
3397
3409
|
rn && cn("info", n) && rn("%c" + r + " INFO: " + String(n), "color:cyan"), gn("info", n, r);
|
|
3398
|
-
}, 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) {
|
|
3399
3411
|
return new DOMParser().parseFromString(e, "image/svg+xml").firstChild;
|
|
3400
3412
|
}, e.refresh_language = function(e, t) {
|
|
3401
3413
|
if (!or(t)) return void hn("You must supply a translation function");
|
|
@@ -3527,7 +3539,7 @@
|
|
|
3527
3539
|
["EV_TIMEOUT", $.EVF_OUTPUT_EVENT],
|
|
3528
3540
|
["EV_TIMEOUT_PERIODIC", $.EVF_OUTPUT_EVENT],
|
|
3529
3541
|
[0, 0]
|
|
3530
|
-
], t,
|
|
3542
|
+
], t, El, 0, bl, pl, 0, 0, 0, w.gcflag_manual_start)) ? 0 : -1;
|
|
3531
3543
|
}("C_TIMER");
|
|
3532
3544
|
}, e.register_c_yuno = function() {
|
|
3533
3545
|
return function(e) {
|
|
@@ -3543,7 +3555,7 @@
|
|
|
3543
3555
|
if (!e) return "";
|
|
3544
3556
|
const t = String(e).trim();
|
|
3545
3557
|
return /^javascript:/i.test(t) || /^data:/i.test(t) ? "" : Jr(t);
|
|
3546
|
-
}, e.sdata_flag_t =
|
|
3558
|
+
}, e.sdata_flag_t = y, e.send_http_json_post = function(e, t, n) {
|
|
3547
3559
|
let r = new XMLHttpRequest();
|
|
3548
3560
|
r.open("POST", e), r.setRequestHeader("Accept", "application/json"), r.setRequestHeader("Content-Type", "application/json"), r.onreadystatechange = function() {
|
|
3549
3561
|
4 === r.readyState && n(r.status, r.responseText);
|
|
@@ -3567,7 +3579,7 @@
|
|
|
3567
3579
|
} else on = e;
|
|
3568
3580
|
}, e.set_remote_log_functions = bn, e.set_strings_are_text = function(e) {
|
|
3569
3581
|
Qr = !!e;
|
|
3570
|
-
}, 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() {
|
|
3571
3583
|
return Qr;
|
|
3572
3584
|
}, e.strncmp = function(e, t, n) {
|
|
3573
3585
|
var r = (e + "").substring(0, n), l = (t + "").substring(0, n);
|
|
@@ -3617,9 +3629,9 @@
|
|
|
3617
3629
|
}, e.timeTracker = function(e = "Time Tracker", t = !1) {
|
|
3618
3630
|
const n = e, r = performance.now();
|
|
3619
3631
|
let l = r;
|
|
3620
|
-
return t &&
|
|
3632
|
+
return t && En(`--\x3e ${n} - starting`), { mark: (e = "Intermediate", o = "") => {
|
|
3621
3633
|
const s = performance.now(), i = (s - l) / 1e3, _ = (s - r) / 1e3;
|
|
3622
|
-
return t &&
|
|
3634
|
+
return t && En(`--\x3e ${n} ${e} - partial: ${i} sec, total: ${_} sec, ${o}`), l = s, {
|
|
3623
3635
|
partial: i,
|
|
3624
3636
|
total: _
|
|
3625
3637
|
};
|