@yuneta/gobj-js 7.10.0 → 7.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/gobj-js.cjs.js +139 -135
- package/dist/gobj-js.cjs.js.map +1 -1
- package/dist/gobj-js.cjs.min.js +16 -10
- package/dist/gobj-js.cjs.min.js.map +1 -1
- package/dist/gobj-js.es.js +139 -135
- package/dist/gobj-js.es.js.map +1 -1
- package/dist/gobj-js.es.min.js +16 -10
- package/dist/gobj-js.es.min.js.map +1 -1
- package/dist/gobj-js.iife.js +139 -135
- package/dist/gobj-js.iife.js.map +1 -1
- package/dist/gobj-js.iife.min.js +16 -10
- package/dist/gobj-js.iife.min.js.map +1 -1
- package/dist/gobj-js.umd.js +139 -135
- package/dist/gobj-js.umd.js.map +1 -1
- package/dist/gobj-js.umd.min.js +16 -10
- package/dist/gobj-js.umd.min.js.map +1 -1
- package/package.json +4 -4
package/dist/gobj-js.umd.js
CHANGED
|
@@ -90,9 +90,7 @@
|
|
|
90
90
|
case "x":
|
|
91
91
|
arg = (parseInt(arg, 10) >>> 0).toString(16);
|
|
92
92
|
break;
|
|
93
|
-
case "X":
|
|
94
|
-
arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase();
|
|
95
|
-
break;
|
|
93
|
+
case "X": arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase();
|
|
96
94
|
}
|
|
97
95
|
if (re.json.test(ph.type)) output += arg;
|
|
98
96
|
else {
|
|
@@ -780,9 +778,7 @@
|
|
|
780
778
|
}
|
|
781
779
|
else jn_value = svalue;
|
|
782
780
|
break;
|
|
783
|
-
case data_type_t.DTP_POINTER:
|
|
784
|
-
jn_value = svalue;
|
|
785
|
-
break;
|
|
781
|
+
case data_type_t.DTP_POINTER: jn_value = svalue;
|
|
786
782
|
}
|
|
787
783
|
if (jn_value === void 0) {
|
|
788
784
|
log_error(`default_value WRONG, it: ${it.name}, value: ${it.default_value}`);
|
|
@@ -852,9 +848,7 @@
|
|
|
852
848
|
return -1;
|
|
853
849
|
}
|
|
854
850
|
break;
|
|
855
|
-
case data_type_t.DTP_POINTER:
|
|
856
|
-
jn_value2 = jn_value_;
|
|
857
|
-
break;
|
|
851
|
+
case data_type_t.DTP_POINTER: jn_value2 = jn_value_;
|
|
858
852
|
}
|
|
859
853
|
if (jn_value2 === void 0) log_error(`${gobj_short_name(gobj)}: attr undefined: ${it.name}`);
|
|
860
854
|
sdata[it.name] = jn_value2;
|
|
@@ -1133,6 +1127,7 @@
|
|
|
1133
1127
|
} catch (e) {}
|
|
1134
1128
|
if (!gclass) {
|
|
1135
1129
|
if (verbose) log_error(`gclass not found: ${gclass_name}`);
|
|
1130
|
+
return null;
|
|
1136
1131
|
}
|
|
1137
1132
|
return gclass;
|
|
1138
1133
|
}
|
|
@@ -1157,8 +1152,8 @@
|
|
|
1157
1152
|
function gobj_find_service(service_name, verbose) {
|
|
1158
1153
|
service_name = service_name.toLowerCase();
|
|
1159
1154
|
let service_gobj = __jn_services__[service_name];
|
|
1160
|
-
if (!service_gobj
|
|
1161
|
-
log_error(`gobj service not found: ${service_name}`);
|
|
1155
|
+
if (!service_gobj) {
|
|
1156
|
+
if (verbose) log_error(`gobj service not found: ${service_name}`);
|
|
1162
1157
|
return null;
|
|
1163
1158
|
}
|
|
1164
1159
|
return service_gobj;
|
|
@@ -1574,12 +1569,14 @@
|
|
|
1574
1569
|
log_error(`${gobj_short_name(gobj)}: GObj DISABLED`);
|
|
1575
1570
|
return -1;
|
|
1576
1571
|
}
|
|
1577
|
-
if (!gobj_is_running(gobj))
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1572
|
+
if (!gobj_is_running(gobj)) {
|
|
1573
|
+
if (!(gobj.gclass.gclass_flag & gclass_flag_t.gcflag_required_start_to_play)) {
|
|
1574
|
+
log_warning(`${gobj_short_name(gobj)}: GObj playing without previous start`);
|
|
1575
|
+
gobj_start(gobj);
|
|
1576
|
+
} else {
|
|
1577
|
+
log_error(`${gobj_short_name(gobj)}: Cannot play, start not done`);
|
|
1578
|
+
return -1;
|
|
1579
|
+
}
|
|
1583
1580
|
}
|
|
1584
1581
|
if (__trace_gobj_start_stop__(gobj)) trace_machine(sprintf("⏯ ⏯ play: %s", gobj_full_name(gobj)));
|
|
1585
1582
|
gobj.playing = true;
|
|
@@ -2684,7 +2681,7 @@
|
|
|
2684
2681
|
log_error(`subscriber NULL: ev ${event}`);
|
|
2685
2682
|
return 0;
|
|
2686
2683
|
}
|
|
2687
|
-
const IGNORED_KEYS = new Set([
|
|
2684
|
+
const IGNORED_KEYS = /* @__PURE__ */ new Set([
|
|
2688
2685
|
"__config__",
|
|
2689
2686
|
"__global__",
|
|
2690
2687
|
"__local__",
|
|
@@ -2740,7 +2737,7 @@
|
|
|
2740
2737
|
log_error(`subscriber NULL: ev ${event}`);
|
|
2741
2738
|
return 0;
|
|
2742
2739
|
}
|
|
2743
|
-
const IGNORED_KEYS = new Set([
|
|
2740
|
+
const IGNORED_KEYS = /* @__PURE__ */ new Set([
|
|
2744
2741
|
"__config__",
|
|
2745
2742
|
"__global__",
|
|
2746
2743
|
"__local__",
|
|
@@ -2934,9 +2931,10 @@
|
|
|
2934
2931
|
if (tracea > 1) trace_json(kw);
|
|
2935
2932
|
}
|
|
2936
2933
|
if (gobj.gclass.gmt.mt_command_parser) return gobj.gclass.gmt.mt_command_parser(gobj, command, kw, src);
|
|
2937
|
-
if (gobj.gclass.command_table)
|
|
2938
|
-
|
|
2939
|
-
|
|
2934
|
+
if (gobj.gclass.command_table) {
|
|
2935
|
+
if (__global_command_parser_fn__) return __global_command_parser_fn__(gobj, command, kw, src);
|
|
2936
|
+
else return build_command_response(gobj, -1, sprintf("%s: global command parser not available", gobj_short_name(gobj)), 0, 0);
|
|
2937
|
+
} else return build_command_response(gobj, -1, sprintf("%s: command table not available", gobj_short_name(gobj)), 0, 0);
|
|
2940
2938
|
}
|
|
2941
2939
|
/************************************************************
|
|
2942
2940
|
* Exec gobj stats. Return a webix
|
|
@@ -3043,22 +3041,26 @@
|
|
|
3043
3041
|
function log_error(format) {
|
|
3044
3042
|
let msg = format_log(format);
|
|
3045
3043
|
let hora = current_timestamp();
|
|
3046
|
-
if (f_error)
|
|
3047
|
-
if (
|
|
3048
|
-
|
|
3049
|
-
|
|
3050
|
-
|
|
3044
|
+
if (f_error) {
|
|
3045
|
+
if (f_error === _console.error) {
|
|
3046
|
+
if (__console_output_enabled__) f_error("%c" + hora + " ERROR: " + String(msg), "color:red");
|
|
3047
|
+
} else {
|
|
3048
|
+
if (__console_output_enabled__) _console.error("%c" + hora + " ERROR: " + String(msg), "color:red");
|
|
3049
|
+
f_error(`${hora} ERROR: ${String(msg)}`);
|
|
3050
|
+
}
|
|
3051
3051
|
}
|
|
3052
3052
|
emit_log_callback("error", msg, hora);
|
|
3053
3053
|
}
|
|
3054
3054
|
function log_warning(format) {
|
|
3055
3055
|
let msg = format_log(format);
|
|
3056
3056
|
let hora = current_timestamp();
|
|
3057
|
-
if (f_warning)
|
|
3058
|
-
if (
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3057
|
+
if (f_warning) {
|
|
3058
|
+
if (f_warning === _console.warn) {
|
|
3059
|
+
if (__console_output_enabled__) f_warning("%c" + hora + " WARNING: " + String(msg), "color:yellow");
|
|
3060
|
+
} else {
|
|
3061
|
+
if (__console_output_enabled__) _console.warn("%c" + hora + " WARNING: " + String(msg), "color:yellow");
|
|
3062
|
+
f_warning(`${hora} WARNING: ${String(msg)}`);
|
|
3063
|
+
}
|
|
3062
3064
|
}
|
|
3063
3065
|
emit_log_callback("warning", msg, hora);
|
|
3064
3066
|
}
|
|
@@ -4094,10 +4096,12 @@
|
|
|
4094
4096
|
vv["id"] = field_id;
|
|
4095
4097
|
vv["value"] = v[field_id];
|
|
4096
4098
|
} else {
|
|
4097
|
-
if (!kw_has_key(v, field_value))
|
|
4098
|
-
|
|
4099
|
-
|
|
4100
|
-
|
|
4099
|
+
if (!kw_has_key(v, field_value)) {
|
|
4100
|
+
if (json_size(v) > 0) field_value = Object.keys(v)[0];
|
|
4101
|
+
else {
|
|
4102
|
+
log_error("list2options(): object without field value: " + field_value);
|
|
4103
|
+
continue;
|
|
4104
|
+
}
|
|
4101
4105
|
}
|
|
4102
4106
|
vv["id"] = v[field_id];
|
|
4103
4107
|
vv["value"] = v[field_value];
|
|
@@ -4413,13 +4417,15 @@
|
|
|
4413
4417
|
if (is_object(v)) v = kw_get_dict_value(null, v, jdb.hook, [], 1);
|
|
4414
4418
|
v = _jdb_get(v, null, id, false);
|
|
4415
4419
|
}
|
|
4416
|
-
if (ids.length === 0 && v)
|
|
4417
|
-
|
|
4418
|
-
|
|
4419
|
-
|
|
4420
|
-
|
|
4421
|
-
|
|
4422
|
-
|
|
4420
|
+
if (ids.length === 0 && v) {
|
|
4421
|
+
if (is_array(v)) v.push(kw);
|
|
4422
|
+
else if (v["id"] === kw["id"]) Object.assign(v, kw);
|
|
4423
|
+
else {
|
|
4424
|
+
let v_ = kw_get_dict_value(null, v, jdb.hook, [], 1);
|
|
4425
|
+
let v__ = _jdb_get(v_, jdb.hook, kw["id"], false);
|
|
4426
|
+
if (v__) Object.assign(v__, kw);
|
|
4427
|
+
else v_.push(kw);
|
|
4428
|
+
}
|
|
4423
4429
|
}
|
|
4424
4430
|
return topic;
|
|
4425
4431
|
}
|
|
@@ -4445,13 +4451,15 @@
|
|
|
4445
4451
|
if (is_object(v)) v = kw_get_dict_value(null, v, jdb.hook, null, 0);
|
|
4446
4452
|
v = _jdb_get(v, null, id, false);
|
|
4447
4453
|
}
|
|
4448
|
-
if (ids.length === 0 && v)
|
|
4449
|
-
|
|
4450
|
-
|
|
4451
|
-
|
|
4452
|
-
|
|
4453
|
-
|
|
4454
|
-
|
|
4454
|
+
if (ids.length === 0 && v) {
|
|
4455
|
+
if (is_array(v)) {
|
|
4456
|
+
let idx = id_index_in_obj_list(v, kw["id"]);
|
|
4457
|
+
if (idx >= 0) v.splice(idx, 1);
|
|
4458
|
+
} else {
|
|
4459
|
+
let v_ = kw_get_dict_value(null, v, jdb.hook, null, 0);
|
|
4460
|
+
let idx = id_index_in_obj_list(v_, kw["id"]);
|
|
4461
|
+
if (idx >= 0) v_.splice(idx, 1);
|
|
4462
|
+
}
|
|
4455
4463
|
}
|
|
4456
4464
|
return topic;
|
|
4457
4465
|
}
|
|
@@ -5178,41 +5186,42 @@
|
|
|
5178
5186
|
* }
|
|
5179
5187
|
************************************************************/
|
|
5180
5188
|
function treedb_decoder_fkey(col, fkey) {
|
|
5181
|
-
if (is_string(fkey))
|
|
5182
|
-
|
|
5183
|
-
|
|
5184
|
-
|
|
5185
|
-
|
|
5186
|
-
|
|
5187
|
-
|
|
5188
|
-
|
|
5189
|
-
|
|
5190
|
-
|
|
5191
|
-
|
|
5192
|
-
|
|
5193
|
-
|
|
5194
|
-
|
|
5195
|
-
|
|
5196
|
-
|
|
5197
|
-
|
|
5198
|
-
|
|
5199
|
-
|
|
5200
|
-
|
|
5201
|
-
|
|
5202
|
-
|
|
5203
|
-
|
|
5204
|
-
|
|
5205
|
-
|
|
5206
|
-
|
|
5207
|
-
|
|
5189
|
+
if (is_string(fkey)) {
|
|
5190
|
+
if (fkey.indexOf("^") === -1) {
|
|
5191
|
+
let fkey_desc = col.fkey;
|
|
5192
|
+
if (json_object_size(fkey_desc) !== 1) {
|
|
5193
|
+
log_error("bad fkey 1");
|
|
5194
|
+
log_error(col);
|
|
5195
|
+
log_error(fkey);
|
|
5196
|
+
return null;
|
|
5197
|
+
}
|
|
5198
|
+
let topic_name;
|
|
5199
|
+
let hook_name;
|
|
5200
|
+
for (const k of Object.keys(fkey_desc)) {
|
|
5201
|
+
topic_name = k;
|
|
5202
|
+
hook_name = fkey_desc[k];
|
|
5203
|
+
break;
|
|
5204
|
+
}
|
|
5205
|
+
return {
|
|
5206
|
+
topic_name,
|
|
5207
|
+
id: fkey,
|
|
5208
|
+
hook_name
|
|
5209
|
+
};
|
|
5210
|
+
} else {
|
|
5211
|
+
let tt = fkey.split("^");
|
|
5212
|
+
if (tt.length !== 3) {
|
|
5213
|
+
log_error("bad fkey 2");
|
|
5214
|
+
log_error(col);
|
|
5215
|
+
log_error(fkey);
|
|
5216
|
+
return null;
|
|
5217
|
+
}
|
|
5218
|
+
return {
|
|
5219
|
+
topic_name: tt[0],
|
|
5220
|
+
id: tt[1],
|
|
5221
|
+
hook_name: tt[2]
|
|
5222
|
+
};
|
|
5208
5223
|
}
|
|
5209
|
-
|
|
5210
|
-
topic_name: tt[0],
|
|
5211
|
-
id: tt[1],
|
|
5212
|
-
hook_name: tt[2]
|
|
5213
|
-
};
|
|
5214
|
-
}
|
|
5215
|
-
else if (is_object(fkey)) return {
|
|
5224
|
+
} else if (is_object(fkey)) return {
|
|
5216
5225
|
topic_name: fkey.topic_name,
|
|
5217
5226
|
id: fkey.id,
|
|
5218
5227
|
hook_name: fkey.hook_name
|
|
@@ -5254,38 +5263,39 @@
|
|
|
5254
5263
|
* }
|
|
5255
5264
|
********************************************/
|
|
5256
5265
|
function treedb_decoder_hook(col, hook) {
|
|
5257
|
-
if (is_string(hook))
|
|
5258
|
-
|
|
5259
|
-
|
|
5260
|
-
|
|
5261
|
-
|
|
5262
|
-
|
|
5263
|
-
|
|
5264
|
-
|
|
5265
|
-
|
|
5266
|
-
|
|
5267
|
-
|
|
5268
|
-
|
|
5269
|
-
|
|
5270
|
-
|
|
5271
|
-
|
|
5272
|
-
|
|
5273
|
-
|
|
5274
|
-
|
|
5275
|
-
|
|
5276
|
-
|
|
5277
|
-
|
|
5278
|
-
|
|
5279
|
-
|
|
5280
|
-
|
|
5281
|
-
|
|
5266
|
+
if (is_string(hook)) {
|
|
5267
|
+
if (hook.indexOf("^") === -1) {
|
|
5268
|
+
let hook_desc = col.hook;
|
|
5269
|
+
if (json_object_size(hook_desc) !== 1) {
|
|
5270
|
+
log_error("bad hook 1");
|
|
5271
|
+
log_error(col);
|
|
5272
|
+
log_error(hook);
|
|
5273
|
+
return null;
|
|
5274
|
+
}
|
|
5275
|
+
let topic_name;
|
|
5276
|
+
for (let k of Object.keys(hook_desc)) {
|
|
5277
|
+
topic_name = k;
|
|
5278
|
+
hook_desc[k];
|
|
5279
|
+
break;
|
|
5280
|
+
}
|
|
5281
|
+
return {
|
|
5282
|
+
topic_name,
|
|
5283
|
+
id: hook
|
|
5284
|
+
};
|
|
5285
|
+
} else {
|
|
5286
|
+
let tt = hook.split("^");
|
|
5287
|
+
if (tt.length !== 2) {
|
|
5288
|
+
log_error("bad hook 2");
|
|
5289
|
+
log_error(col);
|
|
5290
|
+
log_error(hook);
|
|
5291
|
+
return null;
|
|
5292
|
+
}
|
|
5293
|
+
return {
|
|
5294
|
+
topic_name: tt[0],
|
|
5295
|
+
id: tt[1]
|
|
5296
|
+
};
|
|
5282
5297
|
}
|
|
5283
|
-
|
|
5284
|
-
topic_name: tt[0],
|
|
5285
|
-
id: tt[1]
|
|
5286
|
-
};
|
|
5287
|
-
}
|
|
5288
|
-
else if (is_object(hook)) return {
|
|
5298
|
+
} else if (is_object(hook)) return {
|
|
5289
5299
|
topic_name: hook.topic_name,
|
|
5290
5300
|
id: hook.id
|
|
5291
5301
|
};
|
|
@@ -5346,6 +5356,7 @@
|
|
|
5346
5356
|
"template",
|
|
5347
5357
|
"uuid",
|
|
5348
5358
|
"rowid",
|
|
5359
|
+
"qualified",
|
|
5349
5360
|
"password",
|
|
5350
5361
|
"email",
|
|
5351
5362
|
"url",
|
|
@@ -5391,9 +5402,7 @@
|
|
|
5391
5402
|
case "template":
|
|
5392
5403
|
field_desc.enum_list = col.template;
|
|
5393
5404
|
break;
|
|
5394
|
-
case "table":
|
|
5395
|
-
field_desc.enum_list = col.table;
|
|
5396
|
-
break;
|
|
5405
|
+
case "table": field_desc.enum_list = col.table;
|
|
5397
5406
|
}
|
|
5398
5407
|
field_desc.type = f;
|
|
5399
5408
|
} else if (str_in_list(treedb_field_attributes, f)) switch (f) {
|
|
@@ -5406,9 +5415,7 @@
|
|
|
5406
5415
|
case "required":
|
|
5407
5416
|
field_desc.is_required = true;
|
|
5408
5417
|
break;
|
|
5409
|
-
case "hidden":
|
|
5410
|
-
field_desc.is_hidden = true;
|
|
5411
|
-
break;
|
|
5418
|
+
case "hidden": field_desc.is_hidden = true;
|
|
5412
5419
|
}
|
|
5413
5420
|
}
|
|
5414
5421
|
return field_desc;
|
|
@@ -5445,9 +5452,7 @@
|
|
|
5445
5452
|
case "required":
|
|
5446
5453
|
field_desc.is_required = true;
|
|
5447
5454
|
break;
|
|
5448
|
-
case "hidden":
|
|
5449
|
-
field_desc.is_hidden = true;
|
|
5450
|
-
break;
|
|
5455
|
+
case "hidden": field_desc.is_hidden = true;
|
|
5451
5456
|
}
|
|
5452
5457
|
}
|
|
5453
5458
|
if (!field_desc.real_type) field_desc.real_type = "string";
|
|
@@ -5471,7 +5476,8 @@
|
|
|
5471
5476
|
Object.entries(template).forEach(([field, col]) => {
|
|
5472
5477
|
let default_value;
|
|
5473
5478
|
if (is_object(col)) default_value = col.default;
|
|
5474
|
-
|
|
5479
|
+
let value = kw_get_dict_value(null, kw, field, default_value);
|
|
5480
|
+
new_record[field] = value;
|
|
5475
5481
|
});
|
|
5476
5482
|
return new_record;
|
|
5477
5483
|
}
|
|
@@ -5552,7 +5558,6 @@
|
|
|
5552
5558
|
if (priv.msec > 0) {
|
|
5553
5559
|
if (!gobj_is_running(gobj)) gobj_start(gobj);
|
|
5554
5560
|
} else if (gobj_is_running(gobj)) gobj_stop(gobj);
|
|
5555
|
-
break;
|
|
5556
5561
|
}
|
|
5557
5562
|
}
|
|
5558
5563
|
/***************************************************************
|
|
@@ -5911,9 +5916,7 @@
|
|
|
5911
5916
|
case "remote_yuno_role":
|
|
5912
5917
|
priv.remote_yuno_role = gobj_read_str_attr(gobj, "remote_yuno_role");
|
|
5913
5918
|
break;
|
|
5914
|
-
case "remote_yuno_service":
|
|
5915
|
-
priv.remote_yuno_service = gobj_read_str_attr(gobj, "remote_yuno_service");
|
|
5916
|
-
break;
|
|
5919
|
+
case "remote_yuno_service": priv.remote_yuno_service = gobj_read_str_attr(gobj, "remote_yuno_service");
|
|
5917
5920
|
}
|
|
5918
5921
|
}
|
|
5919
5922
|
/***************************************************************
|
|
@@ -6455,12 +6458,13 @@
|
|
|
6455
6458
|
return 0;
|
|
6456
6459
|
}
|
|
6457
6460
|
let gobj_service = gobj_find_service(iev_dst_service, true);
|
|
6458
|
-
if (gobj_service)
|
|
6459
|
-
|
|
6460
|
-
|
|
6461
|
-
|
|
6462
|
-
|
|
6463
|
-
|
|
6461
|
+
if (gobj_service) {
|
|
6462
|
+
if (gobj_has_event(gobj_service, iev_event, event_flag_t.EVF_PUBLIC_EVENT)) gobj_send_event(gobj_service, iev_event, iev_kw, gobj);
|
|
6463
|
+
else {
|
|
6464
|
+
log_error(`${gobj_short_name(gobj)}: Service found but no event or not public, service '${gobj_short_name(gobj_service)}', ev '${iev_event}'`);
|
|
6465
|
+
return -1;
|
|
6466
|
+
}
|
|
6467
|
+
} else if (gobj_is_pure_child(gobj)) gobj_send_event(gobj_parent(gobj), iev_event, iev_kw, gobj);
|
|
6464
6468
|
else gobj_publish_event(gobj, iev_event, iev_kw);
|
|
6465
6469
|
return 0;
|
|
6466
6470
|
}
|