@yuneta/gobj-js 7.13.4 → 7.13.6

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.
@@ -1801,17 +1801,39 @@ function gobj_walk_gobj_children_tree(gobj, walk_type, cb_walking, user_data, us
1801
1801
  /***************************************************************
1802
1802
  * Walking
1803
1803
  ***************************************************************/
1804
+ /***************************************************************
1805
+ * What a WALK CALLBACK answered, as the number the contract is
1806
+ * written in: -1 stop the walk, 0 descend into the children,
1807
+ * >0 do not descend.
1808
+ *
1809
+ * A javascript callback that simply RETURNS NOTHING is the common
1810
+ * case, and `undefined` is neither `< 0` nor `=== 0`, so the walk
1811
+ * used to read it as "do not descend" and skipped the subtree in
1812
+ * silence. Nothing is 0 here — the neutral answer, the one C gives
1813
+ * when an action has nothing to say.
1814
+ *
1815
+ * A boolean is NOT guessed: `true`/`false` could mean either half of
1816
+ * this contract, so it is reported and taken as 0. A walk that
1817
+ * silently loses a subtree is the thing this whole function exists
1818
+ * to stop.
1819
+ ***************************************************************/
1820
+ function walk_ret(ret) {
1821
+ if (typeof ret === "number" && isFinite(ret)) return ret;
1822
+ if (ret === void 0 || ret === null) return 0;
1823
+ log_error(`walk callback must return a NUMBER (-1 stop, 0 descend, >0 skip children), got ${typeof ret}: taken as 0`);
1824
+ return 0;
1825
+ }
1804
1826
  function rc_walk_by_list(iter_, walk_type, cb_walking, user_data, user_data2) {
1805
1827
  let iter = [...iter_];
1806
1828
  let child;
1807
1829
  if (walk_type & walk_type_t.WALK_LAST2FIRST) for (let i = iter.length; i > 0; i--) {
1808
1830
  child = iter[i - 1];
1809
- let ret = cb_walking(child, user_data, user_data2);
1831
+ let ret = walk_ret(cb_walking(child, user_data, user_data2));
1810
1832
  if (ret < 0) return ret;
1811
1833
  }
1812
1834
  else for (let i = 0; i < iter.length; i++) {
1813
1835
  child = iter[i];
1814
- let ret = cb_walking(child, user_data, user_data2);
1836
+ let ret = walk_ret(cb_walking(child, user_data, user_data2));
1815
1837
  if (ret < 0) return ret;
1816
1838
  }
1817
1839
  return 0;
@@ -1864,12 +1886,12 @@ function rc_walk_by_tree(iter, walk_type, cb_walking, user_data, user_data2) {
1864
1886
  child = iter[i - 1];
1865
1887
  ret = rc_walk_by_tree([...child.dl_children], walk_type, cb_walking, user_data, user_data2);
1866
1888
  if (ret < 0) return ret;
1867
- ret = cb_walking(child, user_data, user_data2);
1889
+ ret = walk_ret(cb_walking(child, user_data, user_data2));
1868
1890
  if (ret < 0) return ret;
1869
1891
  }
1870
1892
  else for (let i = 0; i < iter.length; i++) {
1871
1893
  child = iter[i];
1872
- ret = cb_walking(child, user_data, user_data2);
1894
+ ret = walk_ret(cb_walking(child, user_data, user_data2));
1873
1895
  if (ret < 0) return ret;
1874
1896
  else if (ret === 0) {
1875
1897
  ret = rc_walk_by_tree([...child.dl_children], walk_type, cb_walking, user_data, user_data2);
@@ -2993,6 +3015,19 @@ var __console_output_enabled__ = true;
2993
3015
  function set_console_log_enabled(enabled) {
2994
3016
  __console_output_enabled__ = enabled ? true : false;
2995
3017
  }
3018
+ var __console_log_filter__ = null;
3019
+ function set_console_log_filter(fn) {
3020
+ __console_log_filter__ = typeof fn === "function" ? fn : null;
3021
+ }
3022
+ function console_wants(level, msg) {
3023
+ if (!__console_output_enabled__) return false;
3024
+ if (!__console_log_filter__) return true;
3025
+ try {
3026
+ return __console_log_filter__(level, msg) ? true : false;
3027
+ } catch (e) {
3028
+ return true;
3029
+ }
3030
+ }
2996
3031
  var __in_log_callback__ = false;
2997
3032
  function emit_log_callback(level, msg, hora) {
2998
3033
  if (__log_callback__ && !__in_log_callback__) {
@@ -3040,9 +3075,9 @@ function log_error(format) {
3040
3075
  let hora = current_timestamp();
3041
3076
  if (f_error) {
3042
3077
  if (f_error === _console.error) {
3043
- if (__console_output_enabled__) f_error("%c" + hora + " ERROR: " + String(msg), "color:red");
3078
+ if (console_wants("error", msg)) f_error("%c" + hora + " ERROR: " + String(msg), "color:red");
3044
3079
  } else {
3045
- if (__console_output_enabled__) _console.error("%c" + hora + " ERROR: " + String(msg), "color:red");
3080
+ if (console_wants("error", msg)) _console.error("%c" + hora + " ERROR: " + String(msg), "color:red");
3046
3081
  f_error(`${hora} ERROR: ${String(msg)}`);
3047
3082
  }
3048
3083
  }
@@ -3053,9 +3088,9 @@ function log_warning(format) {
3053
3088
  let hora = current_timestamp();
3054
3089
  if (f_warning) {
3055
3090
  if (f_warning === _console.warn) {
3056
- if (__console_output_enabled__) f_warning("%c" + hora + " WARNING: " + String(msg), "color:yellow");
3091
+ if (console_wants("warning", msg)) f_warning("%c" + hora + " WARNING: " + String(msg), "color:yellow");
3057
3092
  } else {
3058
- if (__console_output_enabled__) _console.warn("%c" + hora + " WARNING: " + String(msg), "color:yellow");
3093
+ if (console_wants("warning", msg)) _console.warn("%c" + hora + " WARNING: " + String(msg), "color:yellow");
3059
3094
  f_warning(`${hora} WARNING: ${String(msg)}`);
3060
3095
  }
3061
3096
  }
@@ -3065,7 +3100,7 @@ function log_info(format) {
3065
3100
  let msg = format_log(format);
3066
3101
  let hora = current_timestamp();
3067
3102
  if (f_info) {
3068
- if (__console_output_enabled__) f_info("%c" + hora + " INFO: " + String(msg), "color:cyan");
3103
+ if (console_wants("info", msg)) f_info("%c" + hora + " INFO: " + String(msg), "color:cyan");
3069
3104
  }
3070
3105
  emit_log_callback("info", msg, hora);
3071
3106
  }
@@ -3073,7 +3108,7 @@ function log_debug(format) {
3073
3108
  let msg = format_log(format);
3074
3109
  let hora = current_timestamp();
3075
3110
  if (f_debug) {
3076
- if (__console_output_enabled__) f_debug("%c" + hora + " DEBUG: " + String(msg), "color:silver");
3111
+ if (console_wants("debug", msg)) f_debug("%c" + hora + " DEBUG: " + String(msg), "color:silver");
3077
3112
  }
3078
3113
  emit_log_callback("debug", msg, hora);
3079
3114
  }
@@ -3081,12 +3116,12 @@ function trace_msg(format) {
3081
3116
  let msg = format_log(format);
3082
3117
  let hora = current_timestamp();
3083
3118
  if (f_debug) {
3084
- if (__console_output_enabled__) f_debug("%c" + hora + " MSG: " + String(msg), "color:cyan");
3119
+ if (console_wants("msg", msg)) f_debug("%c" + hora + " MSG: " + String(msg), "color:cyan");
3085
3120
  }
3086
3121
  emit_log_callback("msg", msg, hora);
3087
3122
  }
3088
3123
  function trace_json(jn, msg) {
3089
- if (__console_output_enabled__) {
3124
+ if (console_wants("json", msg)) {
3090
3125
  if (msg) window.console.warn("=====> " + msg);
3091
3126
  window.console.dir(jn);
3092
3127
  }
@@ -6434,7 +6469,7 @@ function ac_on_message(gobj, event, kw, src) {
6434
6469
  let iev_kw = iev_msg.kw;
6435
6470
  if (gobj_current_state(gobj) !== "ST_SESSION") {
6436
6471
  if (gobj_has_event(gobj, iev_event, event_flag_t.EVF_PUBLIC_EVENT)) {
6437
- if (gobj_send_event(gobj, iev_event, iev_kw, gobj) === 0) return 0;
6472
+ if (!(gobj_send_event(gobj, iev_event, iev_kw, gobj) < 0)) return 0;
6438
6473
  } else log_error(`${gobj_short_name(gobj)}: event UNKNOWN in not-session state ${iev_event}`);
6439
6474
  close_websocket(gobj);
6440
6475
  return -1;
@@ -6601,6 +6636,6 @@ function register_c_ievent_cli() {
6601
6636
  return create_gclass(GCLASS_NAME);
6602
6637
  }
6603
6638
  //#endregion
6604
- export { GObj, SDATA, SDATAAUTHZ, SDATACM, SDATACM2, SDATADF, SDATAPM, SDATAPM0, SDATA_END, SDataDesc, YUNETA_VERSION, __yuno__, build_command_response, build_path, build_stats_response, clean_name, clear_timeout, cmp_two_simple_json, command_parser, createElement2, createOneHtml, create_json_record, create_template_record, current_timestamp, data_type_t, db_list_persistent_attrs, db_load_persistent_attrs, db_remove_persistent_attrs, db_save_persistent_attrs, debounce, delete_from_list, duplicate_objects, empty_string, escapeHtml, event_flag_t, gclass_add_ev_action, gclass_add_event_type, gclass_add_state, gclass_check_fsm, gclass_create, gclass_event_type, gclass_find_by_name, gclass_flag_t, gclass_unregister, getPositionRelativeToBody, get_function_name, get_now, gobj_bottom_gobj, gobj_change_parent, gobj_change_state, gobj_command, gobj_create, gobj_create2, gobj_create_default_service, gobj_create_pure_child, gobj_create_service, gobj_create_volatil, gobj_create_yuno, gobj_current_state, gobj_default_service, gobj_deliver_posted_events, gobj_destroy, gobj_find_child, gobj_find_gobj, gobj_find_service, gobj_find_subscribings, gobj_find_subscriptions, gobj_flag_t, gobj_full_name, gobj_gclass_name, gobj_global_trace_level, gobj_has_attr, gobj_has_event, gobj_has_output_event, gobj_hsdata, gobj_is_destroying, gobj_is_playing, gobj_is_pure_child, gobj_is_running, gobj_is_service, gobj_is_volatil, gobj_list_persistent_attrs, gobj_list_subscriptions, gobj_load_persistent_attrs, gobj_match_children, gobj_match_children_tree, gobj_match_gobj, gobj_name, gobj_parent, gobj_pause, gobj_play, gobj_post_event, gobj_posted_events_size, gobj_publish_event, gobj_read_attr, gobj_read_attrs, gobj_read_bool_attr, gobj_read_integer_attr, gobj_read_pointer_attr, gobj_read_str_attr, gobj_remove_persistent_attrs, gobj_repr_global_trace_levels, gobj_reset_volatil_attrs, gobj_save_persistent_attrs, gobj_search_path, gobj_send_event, gobj_services, gobj_set_bottom_gobj, gobj_set_deep_trace, gobj_set_gclass_no_trace, gobj_set_gclass_trace, gobj_set_global_no_trace, gobj_set_global_trace, gobj_set_gobj_no_trace, gobj_set_gobj_trace, gobj_set_trace_machine_format, gobj_short_name, gobj_start, gobj_start_children, gobj_start_tree, gobj_start_up, gobj_stats, gobj_stop, gobj_stop_children, gobj_stop_tree, gobj_subscribe_event, gobj_trace_level, gobj_trace_machine_format, gobj_trace_no_level, gobj_unsubscribe_event, gobj_unsubscribe_list, gobj_walk_gobj_children, gobj_walk_gobj_children_tree, gobj_write_attr, gobj_write_attrs, gobj_write_bool_attr, gobj_write_integer_attr, gobj_write_str_attr, gobj_yuno, gobj_yuno_id, gobj_yuno_name, gobj_yuno_role, id_index_in_obj_list, index_in_list, is_array, is_boolean, is_date, is_function, is_gobj, is_metadata_key, is_null, is_number, is_object, is_private_key, is_pure_number, is_string, jdb_delete, jdb_get, jdb_get_by_idx, jdb_get_topic, jdb_init, jdb_update, json_array_append, json_array_append_new, json_array_extend, json_array_remove, json_array_size, json_deep_copy, json_is_identical, json_object_del, json_object_get, json_object_set, json_object_set_new, json_object_size, json_object_update, json_object_update_existing, json_object_update_missing, json_size, jwt2json, jwtDecode, kw_clone_by_keys, kw_clone_by_not_keys, kw_collect, kw_delete, kw_find_json_in_list, kw_find_path, kw_flag_t, kw_get_bool, kw_get_dict, kw_get_dict_value, kw_get_int, kw_get_list, kw_get_local_storage_value, kw_get_pointer, kw_get_real, kw_get_str, kw_has_key, kw_match_simple, kw_pop, kw_remove_local_storage_value, kw_select, kw_set_dict_value, kw_set_local_storage_value, kw_set_subdict_value, kwid_collect, kwid_find_one_record, kwid_get_ids, kwid_match_id, kwid_new_dict, list2options, load_json_file, log_debug, log_error, log_info, log_warning, msg_iev_get_msg_type, msg_iev_get_stack, msg_iev_push_stack, msg_iev_read_key, msg_iev_set_msg_type, msg_iev_write_key, node_uuid, parseBoolean, parseSVG, refresh_language, register_c_ievent_cli, register_c_timer, register_c_yuno, safeSrc, sdata_flag_t, send_http_json_post, set_console_log_enabled, set_log_callback, set_remote_log_functions, set_timeout, set_timeout_periodic, sprintf, stats_parser, str_in_list, strcasecmp, strcmp, strncmp, strs_in_list, strstr, template_get_field_desc, timeTracker, trace_json, trace_level_t, trace_msg, treedb_decoder_fkey, treedb_decoder_hook, treedb_encoder_fkey, treedb_get_field_desc, treedb_hook_data_size, vsprintf };
6639
+ export { GObj, SDATA, SDATAAUTHZ, SDATACM, SDATACM2, SDATADF, SDATAPM, SDATAPM0, SDATA_END, SDataDesc, YUNETA_VERSION, __yuno__, build_command_response, build_path, build_stats_response, clean_name, clear_timeout, cmp_two_simple_json, command_parser, createElement2, createOneHtml, create_json_record, create_template_record, current_timestamp, data_type_t, db_list_persistent_attrs, db_load_persistent_attrs, db_remove_persistent_attrs, db_save_persistent_attrs, debounce, delete_from_list, duplicate_objects, empty_string, escapeHtml, event_flag_t, gclass_add_ev_action, gclass_add_event_type, gclass_add_state, gclass_check_fsm, gclass_create, gclass_event_type, gclass_find_by_name, gclass_flag_t, gclass_unregister, getPositionRelativeToBody, get_function_name, get_now, gobj_bottom_gobj, gobj_change_parent, gobj_change_state, gobj_command, gobj_create, gobj_create2, gobj_create_default_service, gobj_create_pure_child, gobj_create_service, gobj_create_volatil, gobj_create_yuno, gobj_current_state, gobj_default_service, gobj_deliver_posted_events, gobj_destroy, gobj_find_child, gobj_find_gobj, gobj_find_service, gobj_find_subscribings, gobj_find_subscriptions, gobj_flag_t, gobj_full_name, gobj_gclass_name, gobj_global_trace_level, gobj_has_attr, gobj_has_event, gobj_has_output_event, gobj_hsdata, gobj_is_destroying, gobj_is_playing, gobj_is_pure_child, gobj_is_running, gobj_is_service, gobj_is_volatil, gobj_list_persistent_attrs, gobj_list_subscriptions, gobj_load_persistent_attrs, gobj_match_children, gobj_match_children_tree, gobj_match_gobj, gobj_name, gobj_parent, gobj_pause, gobj_play, gobj_post_event, gobj_posted_events_size, gobj_publish_event, gobj_read_attr, gobj_read_attrs, gobj_read_bool_attr, gobj_read_integer_attr, gobj_read_pointer_attr, gobj_read_str_attr, gobj_remove_persistent_attrs, gobj_repr_global_trace_levels, gobj_reset_volatil_attrs, gobj_save_persistent_attrs, gobj_search_path, gobj_send_event, gobj_services, gobj_set_bottom_gobj, gobj_set_deep_trace, gobj_set_gclass_no_trace, gobj_set_gclass_trace, gobj_set_global_no_trace, gobj_set_global_trace, gobj_set_gobj_no_trace, gobj_set_gobj_trace, gobj_set_trace_machine_format, gobj_short_name, gobj_start, gobj_start_children, gobj_start_tree, gobj_start_up, gobj_stats, gobj_stop, gobj_stop_children, gobj_stop_tree, gobj_subscribe_event, gobj_trace_level, gobj_trace_machine_format, gobj_trace_no_level, gobj_unsubscribe_event, gobj_unsubscribe_list, gobj_walk_gobj_children, gobj_walk_gobj_children_tree, gobj_write_attr, gobj_write_attrs, gobj_write_bool_attr, gobj_write_integer_attr, gobj_write_str_attr, gobj_yuno, gobj_yuno_id, gobj_yuno_name, gobj_yuno_role, id_index_in_obj_list, index_in_list, is_array, is_boolean, is_date, is_function, is_gobj, is_metadata_key, is_null, is_number, is_object, is_private_key, is_pure_number, is_string, jdb_delete, jdb_get, jdb_get_by_idx, jdb_get_topic, jdb_init, jdb_update, json_array_append, json_array_append_new, json_array_extend, json_array_remove, json_array_size, json_deep_copy, json_is_identical, json_object_del, json_object_get, json_object_set, json_object_set_new, json_object_size, json_object_update, json_object_update_existing, json_object_update_missing, json_size, jwt2json, jwtDecode, kw_clone_by_keys, kw_clone_by_not_keys, kw_collect, kw_delete, kw_find_json_in_list, kw_find_path, kw_flag_t, kw_get_bool, kw_get_dict, kw_get_dict_value, kw_get_int, kw_get_list, kw_get_local_storage_value, kw_get_pointer, kw_get_real, kw_get_str, kw_has_key, kw_match_simple, kw_pop, kw_remove_local_storage_value, kw_select, kw_set_dict_value, kw_set_local_storage_value, kw_set_subdict_value, kwid_collect, kwid_find_one_record, kwid_get_ids, kwid_match_id, kwid_new_dict, list2options, load_json_file, log_debug, log_error, log_info, log_warning, msg_iev_get_msg_type, msg_iev_get_stack, msg_iev_push_stack, msg_iev_read_key, msg_iev_set_msg_type, msg_iev_write_key, node_uuid, parseBoolean, parseSVG, refresh_language, register_c_ievent_cli, register_c_timer, register_c_yuno, safeSrc, sdata_flag_t, send_http_json_post, set_console_log_enabled, set_console_log_filter, set_log_callback, set_remote_log_functions, set_timeout, set_timeout_periodic, sprintf, stats_parser, str_in_list, strcasecmp, strcmp, strncmp, strs_in_list, strstr, template_get_field_desc, timeTracker, trace_json, trace_level_t, trace_msg, treedb_decoder_fkey, treedb_decoder_hook, treedb_encoder_fkey, treedb_get_field_desc, treedb_hook_data_size, vsprintf, walk_type_t };
6605
6640
 
6606
6641
  //# sourceMappingURL=gobj-js.es.js.map