| 92 | }; |
| 93 | |
| 94 | const stack_top = (g_rule, f_set=null) => { |
| 95 | let s_action; |
| 96 | if(g_rule.set) s_action = 'set'; |
| 97 | else if(g_rule.push) s_action = 'push'; |
| 98 | |
| 99 | if(s_action) { |
| 100 | let z_action = g_rule[s_action]; |
| 101 | |
| 102 | if(Array.isArray(g_rule[s_action])) { |
| 103 | let a_stack = z_action; |
| 104 | let si_scope_top = a_stack.pop(); |
| 105 | a_stack.push(f_set? f_set(si_scope_top): si_scope_top); |
| 106 | return si_scope_top; |
| 107 | } |
| 108 | else { |
| 109 | return g_rule[s_action] = f_set? f_set(g_rule[s_action]): g_rule[s_action]; |
| 110 | } |
| 111 | } |
| 112 | |
| 113 | return null; |
| 114 | }; |
| 115 | |
| 116 | const distinct_id = n_id => Buffer.from(n_id+'').toString('base64').replace(/=+$/, ''); |
| 117 | |