@yuneta/gobj-js 7.26.1 → 7.26.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 +49 -30
- package/dist/gobj-js.cjs.js.map +1 -1
- package/dist/gobj-js.cjs.min.js +981 -973
- package/dist/gobj-js.cjs.min.js.map +1 -1
- package/dist/gobj-js.es.js +49 -30
- package/dist/gobj-js.es.js.map +1 -1
- package/dist/gobj-js.es.min.js +176 -169
- package/dist/gobj-js.es.min.js.map +1 -1
- package/dist/gobj-js.iife.js +49 -30
- package/dist/gobj-js.iife.js.map +1 -1
- package/dist/gobj-js.iife.min.js +1037 -1029
- package/dist/gobj-js.iife.min.js.map +1 -1
- package/dist/gobj-js.umd.js +49 -30
- package/dist/gobj-js.umd.js.map +1 -1
- package/dist/gobj-js.umd.min.js +1037 -1029
- package/dist/gobj-js.umd.min.js.map +1 -1
- package/package.json +3 -3
package/dist/gobj-js.umd.js
CHANGED
|
@@ -911,7 +911,7 @@
|
|
|
911
911
|
}
|
|
912
912
|
if (jn_value2 === void 0) log_error(`${gobj_short_name(gobj)}: attr undefined: ${it.name}`);
|
|
913
913
|
sdata[it.name] = jn_value2;
|
|
914
|
-
if (is_object(gobj.priv) &&
|
|
914
|
+
if (is_object(gobj.priv) && Object.prototype.hasOwnProperty.call(gobj.priv, it.name)) gobj.priv[it.name] = jn_value2;
|
|
915
915
|
if (gobj.obflag & obflag_t.obflag_created && !(gobj.obflag & obflag_t.obflag_destroyed)) {
|
|
916
916
|
if (gobj.gclass.gmt.mt_writing) gobj.gclass.gmt.mt_writing(gobj, it.name);
|
|
917
917
|
}
|
|
@@ -2114,7 +2114,7 @@
|
|
|
2114
2114
|
function gobj_read_attr(gobj, name, src) {
|
|
2115
2115
|
let jn_attrs = gobj.jn_attrs;
|
|
2116
2116
|
if (name in jn_attrs) {
|
|
2117
|
-
if (
|
|
2117
|
+
if (Object.prototype.hasOwnProperty.call(jn_attrs, name)) {
|
|
2118
2118
|
let value = jn_attrs[name];
|
|
2119
2119
|
if (gobj.gclass.gmt.mt_reading) return gobj.gclass.gmt.mt_reading(gobj, name, value);
|
|
2120
2120
|
return value;
|
|
@@ -2220,9 +2220,9 @@
|
|
|
2220
2220
|
if (ss.length <= 1) {
|
|
2221
2221
|
let key = path;
|
|
2222
2222
|
if (key in jn_attrs) {
|
|
2223
|
-
if (
|
|
2223
|
+
if (Object.prototype.hasOwnProperty.call(jn_attrs, key)) {
|
|
2224
2224
|
jn_attrs[key] = value;
|
|
2225
|
-
if (is_object(gobj.priv) &&
|
|
2225
|
+
if (is_object(gobj.priv) && Object.prototype.hasOwnProperty.call(gobj.priv, key)) gobj.priv[key] = value;
|
|
2226
2226
|
if (gobj.obflag & obflag_t.obflag_created && !(gobj.obflag & obflag_t.obflag_destroyed)) {
|
|
2227
2227
|
if (gobj.gclass.gmt.mt_writing) gobj.gclass.gmt.mt_writing(gobj, key);
|
|
2228
2228
|
}
|
|
@@ -2243,9 +2243,9 @@
|
|
|
2243
2243
|
}
|
|
2244
2244
|
let jn_attrs = gobj.jn_attrs;
|
|
2245
2245
|
if (key in jn_attrs) {
|
|
2246
|
-
if (
|
|
2246
|
+
if (Object.prototype.hasOwnProperty.call(jn_attrs, key)) {
|
|
2247
2247
|
jn_attrs[key] = value;
|
|
2248
|
-
if (is_object(gobj.priv) &&
|
|
2248
|
+
if (is_object(gobj.priv) && Object.prototype.hasOwnProperty.call(gobj.priv, key)) gobj.priv[key] = value;
|
|
2249
2249
|
if (gobj.obflag & obflag_t.obflag_created && !(gobj.obflag & obflag_t.obflag_destroyed)) {
|
|
2250
2250
|
if (gobj.gclass.gmt.mt_writing) gobj.gclass.gmt.mt_writing(gobj, key);
|
|
2251
2251
|
}
|
|
@@ -2272,7 +2272,7 @@
|
|
|
2272
2272
|
if (exclude_flag && it.flag & exclude_flag) continue;
|
|
2273
2273
|
if (include_flag === -1 || it.flag & include_flag) {
|
|
2274
2274
|
set_default(gobj, gobj.jn_attrs, it);
|
|
2275
|
-
if (is_object(gobj.priv) &&
|
|
2275
|
+
if (is_object(gobj.priv) && Object.prototype.hasOwnProperty.call(gobj.priv, it.name)) gobj.priv[it.name] = gobj.jn_attrs[it.name];
|
|
2276
2276
|
if (gobj.gclass.gmt.mt_writing) gobj.gclass.gmt.mt_writing(gobj, it.name);
|
|
2277
2277
|
}
|
|
2278
2278
|
}
|
|
@@ -2306,7 +2306,7 @@
|
|
|
2306
2306
|
let hs = gobj_hsdata2(gobj, name, false);
|
|
2307
2307
|
if (hs) {
|
|
2308
2308
|
hs[name] = parseBoolean(value);
|
|
2309
|
-
if (is_object(gobj.priv) &&
|
|
2309
|
+
if (is_object(gobj.priv) && Object.prototype.hasOwnProperty.call(gobj.priv, name)) gobj.priv[name] = hs[name];
|
|
2310
2310
|
if (gobj.obflag & obflag_t.obflag_created && !(gobj.obflag & obflag_t.obflag_destroyed)) {
|
|
2311
2311
|
if (gobj.gclass.gmt.mt_writing) gobj.gclass.gmt.mt_writing(gobj, name);
|
|
2312
2312
|
}
|
|
@@ -2322,7 +2322,7 @@
|
|
|
2322
2322
|
let hs = gobj_hsdata2(gobj, name, false);
|
|
2323
2323
|
if (hs) {
|
|
2324
2324
|
hs[name] = parseInt(value);
|
|
2325
|
-
if (is_object(gobj.priv) &&
|
|
2325
|
+
if (is_object(gobj.priv) && Object.prototype.hasOwnProperty.call(gobj.priv, name)) gobj.priv[name] = hs[name];
|
|
2326
2326
|
if (gobj.obflag & obflag_t.obflag_created && !(gobj.obflag & obflag_t.obflag_destroyed)) {
|
|
2327
2327
|
if (gobj.gclass.gmt.mt_writing) gobj.gclass.gmt.mt_writing(gobj, name);
|
|
2328
2328
|
}
|
|
@@ -2338,7 +2338,7 @@
|
|
|
2338
2338
|
let hs = gobj_hsdata2(gobj, name, false);
|
|
2339
2339
|
if (hs) {
|
|
2340
2340
|
hs[name] = String(value);
|
|
2341
|
-
if (is_object(gobj.priv) &&
|
|
2341
|
+
if (is_object(gobj.priv) && Object.prototype.hasOwnProperty.call(gobj.priv, name)) gobj.priv[name] = hs[name];
|
|
2342
2342
|
if (gobj.obflag & obflag_t.obflag_created && !(gobj.obflag & obflag_t.obflag_destroyed)) {
|
|
2343
2343
|
if (gobj.gclass.gmt.mt_writing) gobj.gclass.gmt.mt_writing(gobj, name);
|
|
2344
2344
|
}
|
|
@@ -2726,8 +2726,8 @@
|
|
|
2726
2726
|
kw,
|
|
2727
2727
|
renamed_event: ""
|
|
2728
2728
|
};
|
|
2729
|
-
let kw_match =
|
|
2730
|
-
let config_match =
|
|
2729
|
+
let kw_match = json_object_update({}, kw);
|
|
2730
|
+
let config_match = json_object_update({}, __config__);
|
|
2731
2731
|
kw_match.__config__ = config_match;
|
|
2732
2732
|
let renamed_event = "";
|
|
2733
2733
|
let rename = config_match.__rename_event_name__;
|
|
@@ -2735,7 +2735,7 @@
|
|
|
2735
2735
|
if (event_type) {
|
|
2736
2736
|
renamed_event = event_type.event_name;
|
|
2737
2737
|
delete config_match.__rename_event_name__;
|
|
2738
|
-
if (event && json_size(kw_match.__global__) > 0) kw_match.__global__ =
|
|
2738
|
+
if (event && json_size(kw_match.__global__) > 0) kw_match.__global__ = json_object_update(json_object_update({}, kw_match.__global__), { __original_event_name__: event });
|
|
2739
2739
|
}
|
|
2740
2740
|
delete config_match.__hard_subscription__;
|
|
2741
2741
|
delete config_match.__own_event__;
|
|
@@ -3111,7 +3111,7 @@
|
|
|
3111
3111
|
}
|
|
3112
3112
|
}
|
|
3113
3113
|
let kw2publish = kw;
|
|
3114
|
-
if (json_size(__local__) > 0 || json_size(__global__) > 0) kw2publish =
|
|
3114
|
+
if (json_size(__local__) > 0 || json_size(__global__) > 0) kw2publish = json_object_update({}, kw);
|
|
3115
3115
|
if (json_size(__local__) > 0) kw_pop(kw2publish, __local__);
|
|
3116
3116
|
if (__config__) {}
|
|
3117
3117
|
if (json_size(__global__) > 0) json_object_update(kw2publish, json_deep_copy(__global__));
|
|
@@ -3648,10 +3648,7 @@
|
|
|
3648
3648
|
************************************************************/
|
|
3649
3649
|
function duplicate_objects(...sourceObjects) {
|
|
3650
3650
|
const result = {};
|
|
3651
|
-
for (const obj of sourceObjects)
|
|
3652
|
-
const clonedObj = structuredClone(obj);
|
|
3653
|
-
Object.assign(result, clonedObj);
|
|
3654
|
-
}
|
|
3651
|
+
for (const obj of sourceObjects) json_object_update(result, structuredClone(obj));
|
|
3655
3652
|
return result;
|
|
3656
3653
|
}
|
|
3657
3654
|
/************************************************************
|
|
@@ -4024,6 +4021,13 @@
|
|
|
4024
4021
|
let ss = path.split("`");
|
|
4025
4022
|
let len = ss.length;
|
|
4026
4023
|
for (let i = 0; i < len; i++) {
|
|
4024
|
+
if (is_array(kw)) {
|
|
4025
|
+
if (!/^[0-9]+$/.test(ss[i])) {
|
|
4026
|
+
if (verbose) log_error(`${prefix}path not found: '${path}'`);
|
|
4027
|
+
return;
|
|
4028
|
+
}
|
|
4029
|
+
ss[i] = String(Number(ss[i]));
|
|
4030
|
+
}
|
|
4027
4031
|
if (is_prototype_segment(kw, ss[i])) {
|
|
4028
4032
|
if (verbose) log_error(`${prefix}path not found: '${path}'`);
|
|
4029
4033
|
return;
|
|
@@ -4441,7 +4445,7 @@
|
|
|
4441
4445
|
log_error("subdict is not an object");
|
|
4442
4446
|
return -1;
|
|
4443
4447
|
}
|
|
4444
|
-
subdict
|
|
4448
|
+
set_own_key(subdict, key, value);
|
|
4445
4449
|
return 0;
|
|
4446
4450
|
}
|
|
4447
4451
|
/***************************************************************************
|
|
@@ -4749,7 +4753,7 @@
|
|
|
4749
4753
|
else if (is_array(kw)) for (let i = 0; i < kw.length; i++) {
|
|
4750
4754
|
let kv = kw[i];
|
|
4751
4755
|
let id = kw_get_str(gobj, kv, "id", "", kw_flag_t.KW_REQUIRED);
|
|
4752
|
-
if (!empty_string(id)) new_dict
|
|
4756
|
+
if (!empty_string(id)) set_own_key(new_dict, id, kv);
|
|
4753
4757
|
}
|
|
4754
4758
|
else log_error(`${gobj_short_name(gobj)} kwid_new_dict: data type unknown`);
|
|
4755
4759
|
return new_dict;
|
|
@@ -5195,11 +5199,11 @@
|
|
|
5195
5199
|
}
|
|
5196
5200
|
if (ids.length === 0 && v) {
|
|
5197
5201
|
if (is_array(v)) v.push(kw);
|
|
5198
|
-
else if (v["id"] === kw["id"])
|
|
5202
|
+
else if (v["id"] === kw["id"]) json_object_update(v, kw);
|
|
5199
5203
|
else {
|
|
5200
5204
|
let v_ = kw_get_dict_value(null, v, jdb.hook, [], 1);
|
|
5201
5205
|
let v__ = _jdb_get(v_, jdb.hook, kw["id"], false);
|
|
5202
|
-
if (v__)
|
|
5206
|
+
if (v__) json_object_update(v__, kw);
|
|
5203
5207
|
else v_.push(kw);
|
|
5204
5208
|
}
|
|
5205
5209
|
}
|
|
@@ -5566,6 +5570,10 @@
|
|
|
5566
5570
|
* as a bare string, or "<img src=x onerror=...>" runs.
|
|
5567
5571
|
* Pass it as a Text node, which is always text:
|
|
5568
5572
|
* ['span', {}, document.createTextNode(value)]
|
|
5573
|
+
* In a LIST of children a node (element, svg, Text) is
|
|
5574
|
+
* appended as it is and a string is always text -- but a
|
|
5575
|
+
* list whose first item is a string is read as ONE
|
|
5576
|
+
* description (the string is its tag).
|
|
5569
5577
|
* if attrs['i18n'] is not empty then (or 'data-i18n' or 'data_i18next')
|
|
5570
5578
|
* it will be overridden with the translation
|
|
5571
5579
|
* content = translate(attrs['i18n']));
|
|
@@ -5618,8 +5626,11 @@
|
|
|
5618
5626
|
} else if (is_array(content)) {
|
|
5619
5627
|
if (content.length > 0) {
|
|
5620
5628
|
if (is_string(content[0])) el.appendChild(createElement2(content, translate_fn));
|
|
5621
|
-
else for (let child of content) if (Array.isArray(child)
|
|
5622
|
-
|
|
5629
|
+
else for (let child of content) if (Array.isArray(child)) {
|
|
5630
|
+
if (child.length > 0) el.appendChild(createElement2(child, translate_fn));
|
|
5631
|
+
} else if (child instanceof Node) el.appendChild(child);
|
|
5632
|
+
else if (is_string(child)) el.appendChild(document.createTextNode(child));
|
|
5633
|
+
else if (child !== null && child !== void 0 && child !== false) log_error(`createElement2: child ignored, type ${typeof child}`);
|
|
5623
5634
|
}
|
|
5624
5635
|
} else if (content instanceof HTMLElement || content instanceof Text || content instanceof SVGElement) el.appendChild(content);
|
|
5625
5636
|
else if (content != null) {
|
|
@@ -6052,12 +6063,12 @@
|
|
|
6052
6063
|
removed: {},
|
|
6053
6064
|
changed: {}
|
|
6054
6065
|
};
|
|
6055
|
-
for (const key of Object.keys(a)) if (!Object.prototype.hasOwnProperty.call(b, key)) diff.removed
|
|
6056
|
-
else if (!flat_value_equal(a[key], b[key])) diff.changed
|
|
6066
|
+
for (const key of Object.keys(a)) if (!Object.prototype.hasOwnProperty.call(b, key)) set_own_key(diff.removed, key, a[key]);
|
|
6067
|
+
else if (!flat_value_equal(a[key], b[key])) set_own_key(diff.changed, key, {
|
|
6057
6068
|
from: a[key],
|
|
6058
6069
|
to: b[key]
|
|
6059
|
-
};
|
|
6060
|
-
for (const key of Object.keys(b)) if (!Object.prototype.hasOwnProperty.call(a, key)) diff.added
|
|
6070
|
+
});
|
|
6071
|
+
for (const key of Object.keys(b)) if (!Object.prototype.hasOwnProperty.call(a, key)) set_own_key(diff.added, key, b[key]);
|
|
6061
6072
|
return diff;
|
|
6062
6073
|
}
|
|
6063
6074
|
/************************************************************
|
|
@@ -7165,7 +7176,7 @@
|
|
|
7165
7176
|
window.console.error(`Not in session`);
|
|
7166
7177
|
return -1;
|
|
7167
7178
|
}
|
|
7168
|
-
kw =
|
|
7179
|
+
kw = json_object_update({}, is_object(kw) ? kw : {});
|
|
7169
7180
|
if (is_object(kw["__md_iev__"])) kw["__md_iev__"] = json_deep_copy(kw["__md_iev__"]);
|
|
7170
7181
|
if (msg_iev_get_stack(gobj, kw, IEVENT_STACK_ID)) {} else {
|
|
7171
7182
|
let jn_ievent_id = build_cli_ievent_request(gobj, gobj_name(src), kw_get_str(gobj, kw, "__service__", 0, 0));
|
|
@@ -7223,6 +7234,13 @@
|
|
|
7223
7234
|
websocket = new WebSocket(url);
|
|
7224
7235
|
} catch (e) {
|
|
7225
7236
|
log_error(`${gobj_short_name(gobj)}: Cannot open WebSocket to '${url}', Error: ${e.message}`);
|
|
7237
|
+
gobj_post_event(gobj, "EV_ON_CLOSE", {
|
|
7238
|
+
url,
|
|
7239
|
+
ws_seq,
|
|
7240
|
+
code: 1006,
|
|
7241
|
+
reason: e.message,
|
|
7242
|
+
was_clean: false
|
|
7243
|
+
}, gobj);
|
|
7226
7244
|
return null;
|
|
7227
7245
|
}
|
|
7228
7246
|
if (!websocket) {
|
|
@@ -7481,6 +7499,7 @@
|
|
|
7481
7499
|
function ac_on_close(gobj, event, kw, src) {
|
|
7482
7500
|
let priv = gobj.priv;
|
|
7483
7501
|
let url = kw.url;
|
|
7502
|
+
if (kw.ws_seq !== void 0 && kw.ws_seq !== priv.ws_seq) return 0;
|
|
7484
7503
|
set_remote_log_functions();
|
|
7485
7504
|
log_warning(`${gobj_short_name(gobj)}: WebSocket closed ${url} (Code: ${kw.code}, Reason: "${kw.reason}", Clean: ${kw.was_clean})`);
|
|
7486
7505
|
if (priv.websocket) {
|
|
@@ -7498,7 +7517,7 @@
|
|
|
7498
7517
|
remote_yuno_role: priv.remote_yuno_role,
|
|
7499
7518
|
remote_yuno_service: priv.remote_yuno_service
|
|
7500
7519
|
});
|
|
7501
|
-
} else {
|
|
7520
|
+
} else if (!gobj_is_running(gobj)) {} else {
|
|
7502
7521
|
log_warning(`${gobj_short_name(gobj)}: EV_ON_OPEN_ERROR cannot open ${url} (Code: ${kw.code}, Reason: "${kw.reason}", Clean: ${kw.was_clean})`);
|
|
7503
7522
|
gobj_publish_event(gobj, "EV_ON_OPEN_ERROR", {
|
|
7504
7523
|
url,
|