@yuneta/gobj-js 7.25.7 → 7.25.8

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.
@@ -2953,11 +2953,10 @@ function gobj_publish_event(publisher, event, kw) {
2953
2953
  let __global__ = kw_get_dict(publisher, subs, "__global__", null, 0);
2954
2954
  let __local__ = kw_get_dict(publisher, subs, "__local__", null, 0);
2955
2955
  let __filter__ = kw_get_dict_value(publisher, subs, "__filter__", null, 0);
2956
- let kw2publish = kw;
2957
2956
  let topublish = 1;
2958
- if (publisher.gclass.gmt.mt_publication_filter) topublish = publisher.gclass.gmt.mt_publication_filter(publisher, event, kw2publish, subscriber);
2957
+ if (publisher.gclass.gmt.mt_publication_filter) topublish = publisher.gclass.gmt.mt_publication_filter(publisher, event, kw, subscriber);
2959
2958
  else if (json_size(__filter__) > 0) {
2960
- topublish = kw_match_simple(kw2publish, __filter__) ? 1 : 0;
2959
+ topublish = kw_match_simple(kw, __filter__) ? 1 : 0;
2961
2960
  if (tracea) {
2962
2961
  trace_machine(sprintf("💜💜🔄%s publishing with filter, event '%s', subscriber'%s', publisher %s", topublish ? "👍" : "👎", event ? event : "", gobj_short_name(subscriber), gobj_short_name(publisher)));
2963
2962
  trace_json(__filter__);
@@ -2971,9 +2970,11 @@ function gobj_publish_event(publisher, event, kw) {
2971
2970
  if (!gobj_has_event(subscriber, ev_.event_name, 0)) continue;
2972
2971
  }
2973
2972
  }
2974
- if (__local__) kw_pop(kw2publish, __local__);
2973
+ let kw2publish = kw;
2974
+ if (json_size(__local__) > 0 || json_size(__global__) > 0) kw2publish = Object.assign({}, kw);
2975
+ if (json_size(__local__) > 0) kw_pop(kw2publish, __local__);
2975
2976
  if (__config__) {}
2976
- if (__global__) json_object_update(kw2publish, __global__);
2977
+ if (json_size(__global__) > 0) json_object_update(kw2publish, json_deep_copy(__global__));
2977
2978
  if (tracea) {
2978
2979
  if (__trace_machine_format__ === 1) trace_machine(sprintf("🔝🔄 %s (%s) %s%s", event ? event : "", event ? event : "", !subscriber.running ? "!!" : "", gobj_short_name(subscriber)));
2979
2980
  else trace_machine(sprintf("🔝🔄 mach(%s%s), st: %s, ev: %s, from(%s%s)", !subscriber.running ? "!!" : "", gobj_short_name(subscriber), gobj_current_state(subscriber), event ? event : "", publisher && !publisher.running ? "!!" : "", gobj_short_name(publisher)));
@@ -6706,7 +6707,8 @@ function mt_inject_event(gobj, event, kw, src) {
6706
6707
  window.console.error(`Not in session`);
6707
6708
  return -1;
6708
6709
  }
6709
- if (!kw) kw = {};
6710
+ kw = Object.assign({}, is_object(kw) ? kw : {});
6711
+ if (is_object(kw["__md_iev__"])) kw["__md_iev__"] = json_deep_copy(kw["__md_iev__"]);
6710
6712
  if (msg_iev_get_stack(gobj, kw, IEVENT_STACK_ID)) {} else {
6711
6713
  let jn_ievent_id = build_cli_ievent_request(gobj, gobj_name(src), kw_get_str(gobj, kw, "__service__", 0, 0));
6712
6714
  json_object_del(kw, "__service__");