jssm 5.162.28 → 5.162.30

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.
@@ -24454,7 +24454,7 @@ function fslSemanticSpans(text) {
24454
24454
  * Useful for runtime diagnostics and for embedding in serialized machine
24455
24455
  * snapshots so that deserializers can detect version-skew.
24456
24456
  */
24457
- const version = "5.162.28";
24457
+ const version = "5.162.30";
24458
24458
 
24459
24459
  /**
24460
24460
  * The FSL Markdown fence convention parser — pure, host-agnostic logic that
@@ -24626,7 +24626,7 @@ var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) ||
24626
24626
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
24627
24627
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
24628
24628
  };
24629
- var _Machine_instances, _Machine_states, _Machine_edges, _Machine_edge_map, _Machine_outbound_edge_ids, _Machine_named_transitions, _Machine_actions, _Machine_reverse_actions, _Machine_reverse_action_targets, _Machine_unsubscribe_entry, _Machine_subscribe, _Machine_fire_one, _Machine_has_subscribers, _Machine_fire, _Machine_validate_hook_description, _Machine_fire_hook_rejection, _Machine_fire_boundary_actions, _Machine_resolved_themes, _Machine_individual_state_config, _Machine_groups_by_depth, _Machine_compose_state_config;
24629
+ var _Machine_instances, _Machine_states, _Machine_edges, _Machine_edge_map, _Machine_outbound_edge_ids, _Machine_named_transitions, _Machine_actions, _Machine_reverse_actions, _Machine_reverse_action_targets, _Machine_unsubscribe_entry, _Machine_subscribe, _Machine_fire_one, _Machine_has_subscribers, _Machine_fire, _Machine_validate_hook_description, _Machine_recompute_hook_flags, _Machine_fire_hook_rejection, _Machine_fire_boundary_actions, _Machine_resolved_themes, _Machine_individual_state_config, _Machine_groups_by_depth, _Machine_compose_state_config;
24630
24630
  const { state_name_chars, state_name_first_chars, action_label_chars } = constants;
24631
24631
  const empty_string_set = new Set();
24632
24632
  // The spatial fields (besides `handler`, which every hook needs) that each
@@ -27603,6 +27603,13 @@ class Machine {
27603
27603
  }
27604
27604
  }
27605
27605
  if (removed) {
27606
+ // set_hook only ever turns the _has_* fast-path flags ON; they summarize
27607
+ // whole families, not counts, so a removal can't simply turn one off.
27608
+ // Rederive them all now, or a stale flag keeps the fast path doing work
27609
+ // whose last hook is gone -- most visibly _has_transition_hooks, which
27610
+ // would otherwise keep resolving trans_type and leaking it into every
27611
+ // hook context after the last transition-kind hook was removed. #1954
27612
+ __classPrivateFieldGet(this, _Machine_instances, "m", _Machine_recompute_hook_flags).call(this);
27606
27613
  // See set_hook: the hooked-state styling layer depends on which states
27607
27614
  // carry hooks, so removing one can change a state's composed style.
27608
27615
  this._static_state_config_cache.clear();
@@ -29744,6 +29751,56 @@ _Machine_states = new WeakMap(), _Machine_edges = new WeakMap(), _Machine_edge_m
29744
29751
  throw new JssmError(this, `${HookDesc.kind} hook does not take '${field}'`);
29745
29752
  }
29746
29753
  }
29754
+ }, _Machine_recompute_hook_flags = function _Machine_recompute_hook_flags() {
29755
+ const nested_has = (m) => [...m.values()].some(inner => inner.size > 0);
29756
+ // pre-hook family flags
29757
+ this._has_basic_hooks = this._hooks.size > 0;
29758
+ this._has_named_hooks = nested_has(this._named_hooks);
29759
+ this._has_entry_hooks = this._entry_hooks.size > 0;
29760
+ this._has_exit_hooks = this._exit_hooks.size > 0;
29761
+ this._has_after_hooks = [this._after_hooks.size > 0, this._after_any_hook !== undefined].includes(true);
29762
+ this._has_global_action_hooks = this._global_action_hooks.size > 0;
29763
+ this._has_transition_hooks = [
29764
+ this._standard_transition_hook !== undefined,
29765
+ this._main_transition_hook !== undefined,
29766
+ this._forced_transition_hook !== undefined,
29767
+ ].includes(true);
29768
+ this._has_hooks = [
29769
+ this._has_basic_hooks,
29770
+ this._has_named_hooks,
29771
+ this._has_entry_hooks,
29772
+ this._has_exit_hooks,
29773
+ this._has_after_hooks,
29774
+ this._has_global_action_hooks,
29775
+ this._has_transition_hooks,
29776
+ this._any_action_hook !== undefined,
29777
+ this._any_transition_hook !== undefined,
29778
+ this._pre_everything_hook !== undefined,
29779
+ this._everything_hook !== undefined,
29780
+ ].includes(true);
29781
+ // post-hook family flags (mirror of the above)
29782
+ this._has_post_basic_hooks = this._post_hooks.size > 0;
29783
+ this._has_post_named_hooks = nested_has(this._post_named_hooks);
29784
+ this._has_post_entry_hooks = this._post_entry_hooks.size > 0;
29785
+ this._has_post_exit_hooks = this._post_exit_hooks.size > 0;
29786
+ this._has_post_global_action_hooks = this._post_global_action_hooks.size > 0;
29787
+ this._has_post_transition_hooks = [
29788
+ this._post_standard_transition_hook !== undefined,
29789
+ this._post_main_transition_hook !== undefined,
29790
+ this._post_forced_transition_hook !== undefined,
29791
+ ].includes(true);
29792
+ this._has_post_hooks = [
29793
+ this._has_post_basic_hooks,
29794
+ this._has_post_named_hooks,
29795
+ this._has_post_entry_hooks,
29796
+ this._has_post_exit_hooks,
29797
+ this._has_post_global_action_hooks,
29798
+ this._has_post_transition_hooks,
29799
+ this._post_any_action_hook !== undefined,
29800
+ this._post_any_transition_hook !== undefined,
29801
+ this._pre_post_everything_hook !== undefined,
29802
+ this._post_everything_hook !== undefined,
29803
+ ].includes(true);
29747
29804
  }, _Machine_fire_hook_rejection = function _Machine_fire_hook_rejection(hook_name, fromState, newState, fromAction, oldData, newData, wasForced) {
29748
29805
  // Every hook veto in transition_impl's pre-commit pipeline exits through
29749
29806
  // here, so this is the single close point for the reentrancy guard on the