Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 46s
Every .sxbc shipped with `:bytecode (nil nil ...)` and `:arity nil`, so the WASM
kernel's vm.sx hit "VM: unknown opcode 0" on every module and fell back to .sx
source (slower, noisy console). Root cause: `raw_serialize` in the `compile-blob`
command (sx_server.ml) handles `Number` but not `Integer`, and bytecode opcodes +
arity/upvalue-count are `Integer`s — so they fell through to the `_ -> "nil"`
catch-all and serialized as nil. Same class of bug as the value_to_js Integer gap
(689dae7d). It went unnoticed because source-fallback masks it. Add the Integer
case and regenerate: the web stack now loads entirely from bytecode (0 unknown-
opcode warnings, 0 source fallbacks), boost + SPA unchanged. compiler.sx in the
bundle was also stale — re-synced to the canonical lib/compiler.sx.
Verified: native host conformance 271/271; chromium boots with 0 unknown-opcode
warnings + 0 source-fallback loads; spa-check still passes (boost 6/6, fragment
swap). Prereq for content-addressing the assets (caching real bytecode, not nil).
4 lines
36 KiB
Plaintext
4 lines
36 KiB
Plaintext
(sxbc 1 "ca358d21a134783c"
|
|
(code
|
|
:constants ("HX-CONFIG-DEFAULTS" "defaultTimeout" 60000 "transitions" "defaultSwap" "innerHTML" "requestClass" "htmx-request" "defaultSettleDelay" 1 "implicitInheritance" "noSwap" 204 304 "list" "HX-REQUEST-CLASS" "url-encode-params" {:upvalue-count 0 :arity 1 :constants ("Encode dict as URL query string: {:a 1 :b 2} → 'a=1&b=2'." {:upvalue-count 1 :arity 1 :constants ("str" "=" "get") :bytecode (16 0 52 0 0 1 1 1 0 18 0 16 0 52 2 0 2 52 0 0 3 50)} "keys" "map" "&" "join") :bytecode (1 0 0 5 51 1 0 1 0 16 0 52 2 0 1 52 3 0 2 17 1 1 4 0 16 1 52 5 0 2 50)} "sx-url-with-params" {:upvalue-count 0 :arity 2 :constants ("Embed params as :key \"value\" keywords inside an SX URL's innermost paren.\n /sx/(a.(b)) + {:q \"hi\"} → /sx/(a.(b :q \"hi\"))" "(" "contains?" "?" "url-encode-params" "str" 1 0 ">=" "nth" ")" "slice" " " {:upvalue-count 1 :arity 1 :constants (":" " \"" "get" "\"" "str") :bytecode (1 0 0 16 0 1 1 0 18 0 16 0 52 2 0 2 1 3 0 52 4 0 5 50)} "keys" "map" "join") :bytecode (1 0 0 5 16 0 1 1 0 52 2 0 2 167 33 19 0 16 0 1 3 0 20 4 0 16 1 48 1 52 5 0 3 32 132 1 16 0 168 1 6 0 161 17 2 1 7 0 17 3 16 2 1 7 0 52 8 0 2 6 33 13 0 5 16 0 16 2 52 9 0 2 1 10 0 164 33 20 0 16 3 1 6 0 160 17 3 5 16 2 1 6 0 161 17 2 32 1 0 2 5 16 2 1 7 0 52 8 0 2 6 33 13 0 5 16 0 16 2 52 9 0 2 1 10 0 164 33 20 0 16 3 1 6 0 160 17 3 5 16 2 1 6 0 161 17 2 32 1 0 2 5 16 2 1 7 0 52 8 0 2 6 33 13 0 5 16 0 16 2 52 9 0 2 1 10 0 164 33 20 0 16 3 1 6 0 160 17 3 5 16 2 1 6 0 161 17 2 32 1 0 2 5 16 2 1 7 0 52 8 0 2 6 33 13 0 5 16 0 16 2 52 9 0 2 1 10 0 164 33 20 0 16 3 1 6 0 160 17 3 5 16 2 1 6 0 161 17 2 32 1 0 2 5 16 2 1 7 0 52 8 0 2 6 33 13 0 5 16 0 16 2 52 9 0 2 1 10 0 164 33 20 0 16 3 1 6 0 160 17 3 5 16 2 1 6 0 161 17 2 32 1 0 2 5 16 2 1 7 0 52 8 0 2 6 33 13 0 5 16 0 16 2 52 9 0 2 1 10 0 164 33 20 0 16 3 1 6 0 160 17 3 5 16 2 1 6 0 161 17 2 32 1 0 2 5 16 0 1 7 0 16 2 1 6 0 160 52 11 0 3 17 4 16 0 16 2 1 6 0 160 52 11 0 2 17 5 1 12 0 51 13 0 1 1 16 1 52 14 0 1 52 15 0 2 52 16 0 2 17 6 16 4 1 12 0 16 6 16 5 52 5 0 4 50)} "hx-element-config" {:upvalue-count 0 :arity 2 :constants ("Read config value: hx-config JSON on element → global defaults." "dom-get-attr" "hx-config" "json-parse" "get" "HX-CONFIG-DEFAULTS") :bytecode (1 0 0 5 20 1 0 16 0 1 2 0 48 2 17 2 16 2 33 34 0 20 3 0 16 2 48 1 17 3 16 3 16 1 52 4 0 2 6 34 10 0 5 20 5 0 16 1 52 4 0 2 32 9 0 20 5 0 16 1 52 4 0 2 50)} "hx-walk-inherited" {:upvalue-count 0 :arity 2 :constants ("Walk ancestors looking for attr:inherited." ":inherited" "str" "dom-parent" "dom-get-attr" "hx-walk-inherited") :bytecode (1 0 0 5 16 1 1 1 0 52 2 0 2 17 2 20 3 0 16 0 48 1 17 3 16 3 167 33 4 0 2 32 30 0 20 4 0 16 3 16 2 48 2 17 4 16 4 33 5 0 16 4 32 9 0 20 5 0 16 3 16 1 49 2 50)} "hx-resolve-attr" {:upvalue-count 0 :arity 2 :constants ("Resolve attribute, checking :inherited on ancestors.\n v4 default: no implicit inheritance." "dom-get-attr" "hx-walk-inherited") :bytecode (1 0 0 5 20 1 0 16 0 16 1 48 2 6 34 10 0 5 20 2 0 16 0 16 1 49 2 50)} "hx-verb-info" {:upvalue-count 0 :arity 1 :constants ("Scan verb attributes. Returns (method url) or nil.\n v4 supports both hx-get='/url' and hx-action='/url' hx-method='get'." "dom-get-attr" "hx-get" "hx-post" "hx-put" "hx-delete" "hx-patch" "hx-action" "hx-method" "GET" "list" "POST" "PUT" "DELETE" "PATCH" "upcase") :bytecode (1 0 0 5 20 1 0 16 0 1 2 0 48 2 17 1 20 1 0 16 0 1 3 0 48 2 17 2 20 1 0 16 0 1 4 0 48 2 17 3 20 1 0 16 0 1 5 0 48 2 17 4 20 1 0 16 0 1 6 0 48 2 17 5 20 1 0 16 0 1 7 0 48 2 17 6 20 1 0 16 0 1 8 0 48 2 17 7 16 1 33 12 0 1 9 0 16 1 52 10 0 2 32 113 0 16 2 33 12 0 1 11 0 16 2 52 10 0 2 32 96 0 16 3 33 12 0 1 12 0 16 3 52 10 0 2 32 79 0 16 4 33 12 0 1 13 0 16 4 52 10 0 2 32 62 0 16 5 33 12 0 1 14 0 16 5 52 10 0 2 32 45 0 16 6 6 33 3 0 5 16 7 33 15 0 16 7 52 15 0 1 16 6 52 10 0 2 32 18 0 16 6 33 12 0 1 9 0 16 6 52 10 0 2 32 1 0 2 50)} "hx-default-trigger" {:upvalue-count 0 :arity 1 :constants ("Default trigger: form→submit, input/select/textarea→change, else→click." "dom-tag-name" "downcase" "form" "submit" "input" "textarea" "select" "change" "click") :bytecode (1 0 0 5 20 1 0 16 0 48 1 52 2 0 1 17 1 16 1 1 3 0 164 33 6 0 1 4 0 32 40 0 16 1 1 5 0 164 6 34 18 0 5 16 1 1 6 0 164 6 34 7 0 5 16 1 1 7 0 164 33 6 0 1 8 0 32 3 0 1 9 0 50)} "hx-parse-time" {:upvalue-count 0 :arity 1 :constants ("Parse time spec: '500ms'→500, '1s'→1000, '2m'→120000." "ms" "ends-with?" 0 2 "slice" "parse-number" "s" 1000 1 "m" 60000) :bytecode (1 0 0 5 16 0 167 33 4 0 2 32 119 0 16 0 1 1 0 52 2 0 2 33 23 0 16 0 1 3 0 16 0 168 1 4 0 161 52 5 0 3 52 6 0 1 32 84 0 16 0 1 7 0 52 2 0 2 33 27 0 1 8 0 16 0 1 3 0 16 0 168 1 9 0 161 52 5 0 3 52 6 0 1 162 32 45 0 16 0 1 10 0 52 2 0 2 33 27 0 1 11 0 16 0 1 3 0 16 0 168 1 9 0 161 52 5 0 3 52 6 0 1 162 32 6 0 16 0 52 6 0 1 50)} "hx-parse-trigger" {:upvalue-count 0 :arity 2 :constants ("Parse hx-trigger spec. Returns {:event :delay :throttle :once :changed :from :filter}." "filter" "delay" "throttle" "from" "event" "hx-default-trigger" "changed" "once" "trim" " " "split" {:upvalue-count 6 :arity 1 :constants ("delay:" "starts-with?" "hx-parse-time" 6 "slice" "throttle:" 9 "once" "changed" "from:" 5 "[") :bytecode (16 0 1 0 0 52 1 0 2 33 19 0 20 2 0 16 0 1 3 0 52 4 0 2 48 1 19 0 32 107 0 16 0 1 5 0 52 1 0 2 33 19 0 20 2 0 16 0 1 6 0 52 4 0 2 48 1 19 1 32 76 0 16 0 1 7 0 164 33 6 0 3 19 2 32 61 0 16 0 1 8 0 164 33 6 0 3 19 3 32 46 0 16 0 1 9 0 52 1 0 2 33 14 0 16 0 1 10 0 52 4 0 2 19 4 32 20 0 16 0 1 11 0 52 1 0 2 33 7 0 16 0 19 5 32 1 0 2 50)} "for-each") :bytecode (1 0 0 5 16 0 167 33 40 0 1 1 0 2 1 2 0 2 1 3 0 2 1 4 0 2 1 5 0 20 6 0 16 1 48 1 1 7 0 4 1 8 0 4 65 7 0 32 99 0 16 0 52 9 0 1 1 10 0 52 11 0 2 17 2 16 2 169 17 3 2 17 4 2 17 5 4 17 6 4 17 7 2 17 8 2 17 9 51 12 0 1 4 1 5 1 6 1 7 1 8 1 9 16 2 170 52 13 0 2 5 1 1 0 16 9 1 2 0 16 4 1 3 0 16 5 1 4 0 16 8 1 5 0 16 3 1 7 0 16 7 1 8 0 16 6 65 7 0 50)} "hx-resolve-target" {:upvalue-count 0 :arity 2 :constants ("Resolve hx-target: nil→el, 'this'→el, 'closest sel'→walk up, '#id'→query." "hx-resolve-attr" "hx-target" "this" "body" "dom-body" "closest " "starts-with?" "dom-closest" 8 "slice" "find " "dom-query" 5 "next " "hs-next" "previous " "hs-previous" 9) :bytecode (1 0 0 5 16 1 6 34 11 0 5 20 1 0 16 0 1 2 0 48 2 17 2 16 2 167 33 5 0 16 0 32 167 0 16 2 1 3 0 164 33 5 0 16 0 32 153 0 16 2 1 4 0 164 33 8 0 20 5 0 49 0 32 136 0 16 2 1 6 0 52 7 0 2 33 19 0 20 8 0 16 0 16 2 1 9 0 52 10 0 2 49 2 32 105 0 16 2 1 11 0 52 7 0 2 33 19 0 20 12 0 16 0 16 2 1 13 0 52 10 0 2 49 2 32 74 0 16 2 1 14 0 52 7 0 2 33 19 0 20 15 0 16 0 16 2 1 13 0 52 10 0 2 49 2 32 43 0 16 2 1 16 0 52 7 0 2 33 19 0 20 17 0 16 0 16 2 1 18 0 52 10 0 2 49 2 32 12 0 20 12 0 20 5 0 48 0 16 2 49 2 50)} "hx-normalize-swap-mode" {:upvalue-count 0 :arity 1 :constants ("Normalize v4 swap aliases to canonical names." "before" "beforebegin" "after" "afterend" "prepend" "afterbegin" "append" "beforeend") :bytecode (1 0 0 5 16 0 1 1 0 164 33 6 0 1 2 0 32 47 0 16 0 1 3 0 164 33 6 0 1 4 0 32 32 0 16 0 1 5 0 164 33 6 0 1 6 0 32 17 0 16 0 1 7 0 164 33 6 0 1 8 0 32 2 0 16 0 50)} "hx-parse-swap-spec" {:upvalue-count 0 :arity 1 :constants ("Parse swap spec with all v4 modifiers.\n Returns {:mode :swap-delay :settle-delay :scroll :show-target :transition :strip :target :ignore-title}." "ignore-title" "transition" "target" "strip" "scroll" "mode" "innerHTML" "settle-delay" "show-target" "swap-delay" " " "split" "hx-normalize-swap-mode" {:upvalue-count 8 :arity 1 :constants ("swap:" "starts-with?" "hx-parse-time" 5 "slice" "settle:" 7 "scroll:" "show:" "showTarget:" 11 "scrollTarget:" 13 "transition:true" "strip:true" "target:" "ignoreTitle:true") :bytecode (16 0 1 0 0 52 1 0 2 33 19 0 20 2 0 16 0 1 3 0 52 4 0 2 48 1 19 0 32 207 0 16 0 1 5 0 52 1 0 2 33 19 0 20 2 0 16 0 1 6 0 52 4 0 2 48 1 19 1 32 176 0 16 0 1 7 0 52 1 0 2 33 14 0 16 0 1 6 0 52 4 0 2 19 2 32 150 0 16 0 1 8 0 52 1 0 2 33 14 0 16 0 1 3 0 52 4 0 2 19 2 32 124 0 16 0 1 9 0 52 1 0 2 33 14 0 16 0 1 10 0 52 4 0 2 19 3 32 98 0 16 0 1 11 0 52 1 0 2 33 14 0 16 0 1 12 0 52 4 0 2 19 3 32 72 0 16 0 1 13 0 164 33 6 0 3 19 4 32 57 0 16 0 1 14 0 164 33 6 0 3 19 5 32 42 0 16 0 1 15 0 52 1 0 2 33 14 0 16 0 1 6 0 52 4 0 2 19 6 32 16 0 16 0 1 16 0 164 33 6 0 3 19 7 32 1 0 2 50)} "for-each") :bytecode (1 0 0 5 16 0 167 33 44 0 1 1 0 4 1 2 0 4 1 3 0 2 1 4 0 4 1 5 0 2 1 6 0 1 7 0 1 8 0 2 1 9 0 2 1 10 0 2 65 9 0 32 120 0 16 0 1 11 0 52 12 0 2 17 1 20 13 0 16 1 169 48 1 17 2 2 17 3 2 17 4 2 17 5 2 17 6 4 17 7 4 17 8 2 17 9 4 17 10 51 14 0 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 16 1 170 52 15 0 2 5 1 1 0 16 10 1 2 0 16 7 1 3 0 16 9 1 4 0 16 8 1 5 0 16 5 1 6 0 16 2 1 8 0 16 4 1 9 0 16 6 1 10 0 16 3 65 9 0 50)} "hx-swap!" {:upvalue-count 0 :arity 3 :constants ("Swap content into target. Supports all v4 modes." "innerHTML" "dom-set-inner-html" "outerHTML" "dom-insert-adjacent-html" "afterend" "dom-remove" "beforeend" "afterbegin" "beforebegin" "delete" "none" "textContent" "dom-set-text-content" "innerMorph" "outerMorph") :bytecode (1 0 0 5 16 2 1 1 0 164 33 12 0 20 2 0 16 0 16 1 49 2 32 243 0 16 2 1 3 0 164 33 23 0 20 4 0 16 0 1 5 0 16 1 48 3 5 20 6 0 16 0 49 1 32 211 0 16 2 1 5 0 164 33 15 0 20 4 0 16 0 1 5 0 16 1 49 3 32 187 0 16 2 1 7 0 164 33 15 0 20 4 0 16 0 1 7 0 16 1 49 3 32 163 0 16 2 1 8 0 164 33 15 0 20 4 0 16 0 1 8 0 16 1 49 3 32 139 0 16 2 1 9 0 164 33 15 0 20 4 0 16 0 1 9 0 16 1 49 3 32 115 0 16 2 1 10 0 164 33 10 0 20 6 0 16 0 49 1 32 96 0 16 2 1 11 0 164 33 4 0 2 32 83 0 16 2 1 12 0 164 33 12 0 20 13 0 16 0 16 1 49 2 32 62 0 16 2 1 14 0 164 33 12 0 20 2 0 16 0 16 1 49 2 32 41 0 16 2 1 15 0 164 33 23 0 20 4 0 16 0 1 5 0 16 1 48 3 5 20 6 0 16 0 49 1 32 9 0 20 2 0 16 0 16 1 49 2 50)} "hx-select-fragment" {:upvalue-count 0 :arity 2 :constants ("Extract fragment matching selector from HTML response (hx-select)." "dom-parse-html" "dom-query" "dom-outer-html") :bytecode (1 0 0 5 16 1 167 33 5 0 16 0 32 37 0 20 1 0 16 0 48 1 17 2 20 2 0 16 2 16 1 48 2 17 3 16 3 33 10 0 20 3 0 16 3 49 1 32 2 0 16 0 50)} "hx-element-source-id" {:upvalue-count 0 :arity 1 :constants ("Format element as tagName#id for v4 HX-Source header." "dom-tag-name" "downcase" "dom-get-attr" "id" "#" "str") :bytecode (1 0 0 5 20 1 0 16 0 48 1 52 2 0 1 17 1 20 3 0 16 0 1 4 0 48 2 17 2 16 2 33 14 0 16 1 1 5 0 16 2 52 6 0 3 32 2 0 16 1 50)} "hx-form-values" {:upvalue-count 0 :arity 1 :constants ("Extract name=value pairs from form inputs." "dom-query-all" "input, select, textarea" {:upvalue-count 1 :arity 1 :constants ("dom-get-attr" "name" "element-value" "assoc") :bytecode (20 0 0 16 0 1 1 0 48 2 17 1 20 2 0 16 0 48 1 17 2 16 1 33 15 0 18 0 16 1 16 2 52 3 0 3 19 0 32 1 0 2 50)} "for-each") :bytecode (1 0 0 5 20 1 0 16 0 1 2 0 48 2 17 1 65 0 0 17 2 51 3 0 1 2 16 1 52 4 0 2 5 16 2 50)} "hx-collect-params" {:upvalue-count 0 :arity 2 :constants ("Collect request params: form values + hx-include + hx-vals + element name/value." "dom-tag-name" "downcase" "form" "hx-form-values" "input" "select" "textarea" "dom-get-attr" "name" "element-value" "assoc" "hx-include" "dom-query" "merge" "hx-vals" "json-parse") :bytecode (1 0 0 5 65 0 0 17 2 20 1 0 16 0 48 1 52 2 0 1 1 3 0 164 33 12 0 20 4 0 16 0 48 1 17 2 32 1 0 2 5 20 1 0 16 0 48 1 52 2 0 1 17 3 16 3 1 5 0 164 6 34 18 0 5 16 3 1 6 0 164 6 34 7 0 5 16 3 1 7 0 164 33 41 0 20 8 0 16 0 1 9 0 48 2 17 4 16 4 33 20 0 16 2 16 4 20 10 0 16 0 48 1 52 11 0 3 17 2 32 1 0 2 32 1 0 2 5 20 8 0 16 0 1 12 0 48 2 17 3 16 3 33 36 0 20 13 0 16 3 48 1 17 4 16 4 33 18 0 16 2 20 4 0 16 4 48 1 52 14 0 2 17 2 32 1 0 2 32 1 0 2 5 20 8 0 16 0 1 15 0 48 2 17 3 16 3 33 31 0 20 16 0 16 3 48 1 17 4 16 4 33 13 0 16 2 16 4 52 14 0 2 17 2 32 1 0 2 32 1 0 2 5 16 2 50)} "hx-build-headers" {:upvalue-count 0 :arity 2 :constants ("Build v4 request headers." "HX-Source" "hx-element-source-id" "HX-Request" "true" "Accept" "text/html" "HX-Request-Type" "partial" "HX-Target" "assoc" "HX-Current-URL" "browser-location-href" "hx-resolve-attr" "hx-headers" "json-parse" "merge") :bytecode (1 0 0 5 1 1 0 20 2 0 16 0 48 1 1 3 0 1 4 0 1 5 0 1 6 0 1 7 0 1 8 0 65 4 0 17 2 16 1 33 21 0 16 2 1 9 0 20 2 0 16 1 48 1 52 10 0 3 17 2 32 1 0 2 5 16 2 1 11 0 20 12 0 48 0 52 10 0 3 17 2 5 20 13 0 16 0 1 14 0 48 2 17 3 16 3 33 31 0 20 15 0 16 3 48 1 17 4 16 4 33 13 0 16 2 16 4 52 16 0 2 17 2 32 1 0 2 32 1 0 2 5 16 2 50)} "hx-request" {:upvalue-count 0 :arity 4 :constants ("Issue HTTP request with v4 conventions.\n Returns {:status :body :headers} for status-based dispatch." "hx-collect-params" "hx-build-headers" "dom-get-attr" "hx-encoding" "dom-get-data" "hx-etag" "GET" "DELETE" "empty?" "?" "url-encode-params" "str" "multipart/form-data" "json-stringify" "Content-Type" "application/json" "assoc" "If-None-Match" io-fetch "list" "status" "host-get" "body" "headers" "etag" "dom-set-data") :bytecode (1 0 0 5 20 1 0 16 0 16 2 48 2 17 4 20 2 0 16 0 16 3 48 2 17 5 20 3 0 16 0 1 4 0 48 2 17 6 20 5 0 16 0 1 6 0 48 2 17 7 16 2 1 7 0 164 6 34 7 0 5 16 2 1 8 0 164 33 33 0 16 4 52 9 0 1 33 5 0 16 1 32 16 0 16 1 1 10 0 20 11 0 16 4 48 1 52 12 0 3 32 2 0 16 1 17 8 16 2 1 7 0 164 6 34 7 0 5 16 2 1 8 0 164 33 4 0 2 32 21 0 16 6 1 13 0 164 33 5 0 16 4 32 7 0 20 14 0 16 4 48 1 17 9 16 9 6 33 8 0 5 16 6 1 13 0 164 167 33 17 0 16 5 1 15 0 1 16 0 52 17 0 3 17 5 32 1 0 2 5 16 7 33 16 0 16 5 1 18 0 16 7 52 17 0 3 17 5 32 1 0 2 5 1 19 0 16 8 16 2 16 9 16 5 52 20 0 5 112 17 10 16 10 1 21 0 52 22 0 2 17 11 16 10 1 23 0 52 22 0 2 17 12 16 10 1 24 0 52 22 0 2 17 13 16 13 1 25 0 52 22 0 2 33 22 0 20 26 0 16 0 1 6 0 16 13 1 25 0 52 22 0 2 48 3 32 1 0 2 5 1 21 0 16 11 1 24 0 16 13 1 23 0 16 12 65 3 0 50)} "hx-process-oob!" {:upvalue-count 0 :arity 1 :constants ("Process out-of-band swaps: elements with hx-swap-oob." "dom-parse-html" "dom-query-all" "[hx-swap-oob]" {:upvalue-count 0 :arity 1 :constants ("dom-get-attr" "hx-swap-oob" "id" "dom-query" "dom-body" "#" "str" "hx-normalize-swap-mode" "true" "innerHTML" "dom-remove-attr" "hx-swap!" "dom-outer-html") :bytecode (20 0 0 16 0 1 1 0 48 2 17 1 20 0 0 16 0 1 2 0 48 2 17 2 16 2 33 84 0 20 3 0 20 4 0 48 0 1 5 0 16 2 52 6 0 2 48 2 17 3 20 7 0 16 1 1 8 0 164 33 6 0 1 9 0 32 2 0 16 1 48 1 17 4 16 3 33 30 0 20 10 0 16 0 1 1 0 48 2 5 20 11 0 16 3 20 12 0 16 0 48 1 16 4 49 3 32 1 0 2 32 1 0 2 50)} "for-each") :bytecode (1 0 0 5 20 1 0 16 0 48 1 17 1 20 2 0 16 1 1 3 0 48 2 17 2 51 4 0 16 2 52 5 0 2 50)} "hx-process-partials!" {:upvalue-count 0 :arity 1 :constants ("Process <hx-partial> elements: each specifies its own target + swap.\n v4: swaps in document order after main content." "dom-parse-html" "dom-query-all" "hx-partial" {:upvalue-count 0 :arity 1 :constants ("dom-get-attr" "hx-target" "hx-swap" "innerHTML" "dom-query" "dom-body" "hx-normalize-swap-mode" "hx-swap!" "dom-inner-html") :bytecode (20 0 0 16 0 1 1 0 48 2 17 1 20 0 0 16 0 1 2 0 48 2 6 34 4 0 5 1 3 0 17 2 16 1 33 51 0 20 4 0 20 5 0 48 0 16 1 48 2 17 3 20 6 0 16 2 48 1 17 4 16 3 33 19 0 20 7 0 16 3 20 8 0 16 0 48 1 16 4 49 3 32 1 0 2 32 1 0 2 50)} "for-each") :bytecode (1 0 0 5 20 1 0 16 0 48 1 17 1 20 2 0 16 1 1 3 0 48 2 17 2 51 4 0 16 2 52 5 0 2 50)} "hx-parse-status-modifiers" {:upvalue-count 0 :arity 1 :constants ("Parse hx-status modifier string: 'swap:innerHTML target:#errors push:false'." " " "split" "target" "transition" "swap" "select" "push" "replace" {:upvalue-count 1 :arity 1 :constants ("swap:" "starts-with?" "swap" 5 "slice" "assoc" "target:" "target" 7 "select:" "select" "push:" "push" "replace:" "replace" 8 "transition:" "transition" 11) :bytecode (16 0 1 0 0 52 1 0 2 33 23 0 18 0 1 2 0 16 0 1 3 0 52 4 0 2 52 5 0 3 19 0 32 176 0 16 0 1 6 0 52 1 0 2 33 23 0 18 0 1 7 0 16 0 1 8 0 52 4 0 2 52 5 0 3 19 0 32 141 0 16 0 1 9 0 52 1 0 2 33 23 0 18 0 1 10 0 16 0 1 8 0 52 4 0 2 52 5 0 3 19 0 32 106 0 16 0 1 11 0 52 1 0 2 33 23 0 18 0 1 12 0 16 0 1 3 0 52 4 0 2 52 5 0 3 19 0 32 71 0 16 0 1 13 0 52 1 0 2 33 23 0 18 0 1 14 0 16 0 1 15 0 52 4 0 2 52 5 0 3 19 0 32 36 0 16 0 1 16 0 52 1 0 2 33 23 0 18 0 1 17 0 16 0 1 18 0 52 4 0 2 52 5 0 3 19 0 32 1 0 2 50)} "for-each") :bytecode (1 0 0 5 16 0 1 1 0 52 2 0 2 17 1 1 3 0 2 1 4 0 2 1 5 0 2 1 6 0 2 1 7 0 2 1 8 0 2 65 6 0 17 2 51 9 0 1 2 16 1 52 10 0 2 5 16 2 50)} "hx-status-matches?" {:upvalue-count 0 :arity 2 :constants ("Check if status matches pattern: '404'='404', '50x'=500-509, '5xx'=500-599." 3 "xx" "ends-with?" 0 1 "slice" "x" 2) :bytecode (1 0 0 5 16 0 16 1 164 33 4 0 3 32 132 0 16 1 168 1 1 0 164 6 33 40 0 5 16 1 1 2 0 52 3 0 2 6 33 26 0 5 16 0 1 4 0 1 5 0 52 6 0 3 16 1 1 4 0 1 5 0 52 6 0 3 164 33 4 0 3 32 74 0 16 1 168 1 1 0 164 6 33 55 0 5 16 1 1 7 0 52 3 0 2 6 33 41 0 5 16 1 1 2 0 52 3 0 2 167 6 33 26 0 5 16 0 1 4 0 1 8 0 52 6 0 3 16 1 1 4 0 1 8 0 52 6 0 3 164 33 4 0 3 32 1 0 4 50)} "hx-parse-status-rules" {:upvalue-count 0 :arity 1 :constants ("Scan element for hx-status:CODE attributes. Returns list of rule dicts." "dom-attr-list" "list" {:upvalue-count 1 :arity 1 :constants ("name" "get" "value" "hx-status:" "starts-with?" 10 "slice" "x" "ends-with?" 3 "xx" 2 1 "specificity" "code" "hx-parse-status-modifiers" "merge" "list" "append") :bytecode (16 0 1 0 0 52 1 0 2 17 1 16 0 1 2 0 52 1 0 2 17 2 16 1 1 3 0 52 4 0 2 33 107 0 16 1 1 5 0 52 6 0 2 17 3 16 3 1 7 0 52 8 0 2 167 33 6 0 1 9 0 32 36 0 16 3 1 7 0 52 8 0 2 6 33 11 0 5 16 3 1 10 0 52 8 0 2 167 33 6 0 1 11 0 32 3 0 1 12 0 17 4 18 0 1 13 0 16 4 1 14 0 16 3 65 2 0 20 15 0 16 2 48 1 52 16 0 2 52 17 0 1 52 18 0 2 19 0 32 1 0 2 50)} "for-each") :bytecode (1 0 0 5 20 1 0 16 0 48 1 17 1 52 2 0 0 17 2 51 3 0 1 2 16 1 52 4 0 2 5 16 2 50)} "hx-match-status" {:upvalue-count 0 :arity 2 :constants ("Match HTTP status against rules. Returns best match (highest specificity) or nil." "str" 0 {:upvalue-count 3 :arity 1 :constants ("code" "get" "specificity" "hx-status-matches?") :bytecode (16 0 1 0 0 52 1 0 2 17 1 16 0 1 2 0 52 1 0 2 17 2 20 3 0 18 0 16 1 48 2 6 33 6 0 5 16 2 18 1 166 33 12 0 16 0 19 2 5 16 2 19 1 32 1 0 2 50)} "for-each") :bytecode (1 0 0 5 16 0 52 1 0 1 17 2 2 17 3 1 2 0 17 4 51 3 0 1 2 1 4 1 3 16 1 52 4 0 2 5 16 3 50)} "hx-handle-history!" {:upvalue-count 0 :arity 2 :constants ("Push or replace URL based on hx-push-url / hx-replace-url." "hx-resolve-attr" "hx-push-url" "hx-replace-url" "true" "browser-push-state" "scrollY" 0 "" "false" "browser-replace-state") :bytecode (1 0 0 5 20 1 0 16 0 1 2 0 48 2 17 2 20 1 0 16 0 1 3 0 48 2 17 3 16 2 1 4 0 164 33 22 0 20 5 0 1 6 0 1 7 0 65 1 0 1 8 0 16 1 49 3 32 110 0 16 2 6 33 8 0 5 16 2 1 9 0 164 167 33 22 0 20 5 0 1 6 0 1 7 0 65 1 0 1 8 0 16 2 49 3 32 71 0 16 3 1 4 0 164 33 22 0 20 10 0 1 6 0 1 7 0 65 1 0 1 8 0 16 1 49 3 32 40 0 16 3 6 33 8 0 5 16 3 1 9 0 164 167 33 22 0 20 10 0 1 6 0 1 7 0 65 1 0 1 8 0 16 3 49 3 32 1 0 2 50)} "hx-indicator-on!" {:upvalue-count 0 :arity 1 :constants ("Add request class to element + indicator targets." "dom-add-class" "HX-REQUEST-CLASS" "hx-resolve-attr" "hx-indicator" {:upvalue-count 0 :arity 1 :constants ("dom-add-class" "HX-REQUEST-CLASS") :bytecode (20 0 0 16 0 20 1 0 49 2 50)} "dom-query-all" "dom-body" "for-each") :bytecode (1 0 0 5 20 1 0 16 0 20 2 0 48 2 5 20 3 0 16 0 1 4 0 48 2 17 1 16 1 33 22 0 51 5 0 20 6 0 20 7 0 48 0 16 1 48 2 52 8 0 2 32 1 0 2 50)} "hx-indicator-off!" {:upvalue-count 0 :arity 1 :constants ("Remove request class from element + indicator targets." "dom-remove-class" "HX-REQUEST-CLASS" "hx-resolve-attr" "hx-indicator" {:upvalue-count 0 :arity 1 :constants ("dom-remove-class" "HX-REQUEST-CLASS") :bytecode (20 0 0 16 0 20 1 0 49 2 50)} "dom-query-all" "dom-body" "for-each") :bytecode (1 0 0 5 20 1 0 16 0 20 2 0 48 2 5 20 3 0 16 0 1 4 0 48 2 17 1 16 1 33 22 0 51 5 0 20 6 0 20 7 0 48 0 16 1 48 2 52 8 0 2 32 1 0 2 50)} "hx-disable-inputs!" {:upvalue-count 0 :arity 1 :constants ("Disable form elements during request (v4 hx-disable)." "dom-get-attr" "hx-disable" {:upvalue-count 0 :arity 1 :constants ("dom-set-attr" "disabled" "true") :bytecode (20 0 0 16 0 1 1 0 1 2 0 49 3 50)} "dom-query-all" "dom-body" "for-each") :bytecode (1 0 0 5 20 1 0 16 0 1 2 0 48 2 17 1 16 1 33 22 0 51 3 0 20 4 0 20 5 0 48 0 16 1 48 2 52 6 0 2 32 1 0 2 50)} "hx-enable-inputs!" {:upvalue-count 0 :arity 1 :constants ("Re-enable form elements after request." "dom-get-attr" "hx-disable" {:upvalue-count 0 :arity 1 :constants ("dom-remove-attr" "disabled") :bytecode (20 0 0 16 0 1 1 0 49 2 50)} "dom-query-all" "dom-body" "for-each") :bytecode (1 0 0 5 20 1 0 16 0 1 2 0 48 2 17 1 16 1 33 22 0 51 3 0 20 4 0 20 5 0 48 0 16 1 48 2 52 6 0 2 32 1 0 2 50)} "hx-confirm?" {:upvalue-count 0 :arity 1 :constants ("Show confirm dialog if hx-confirm set. Returns true to proceed." "hx-resolve-attr" "hx-confirm" "browser-confirm") :bytecode (1 0 0 5 20 1 0 16 0 1 2 0 48 2 17 1 16 1 33 10 0 20 3 0 16 1 49 1 32 1 0 3 50)} "hx-validate-form?" {:upvalue-count 0 :arity 1 :constants ("Check form validity if hx-validate is set. Returns true to proceed." "dom-get-attr" "hx-validate" "dom-tag-name" "downcase" "form" "dom-closest" "checkValidity" "host-call") :bytecode (1 0 0 5 20 1 0 16 0 1 2 0 48 2 17 1 16 1 33 56 0 20 3 0 16 0 48 1 52 4 0 1 1 5 0 164 33 5 0 16 0 32 10 0 20 6 0 16 0 1 5 0 48 2 17 2 16 2 33 12 0 16 2 1 7 0 52 8 0 2 32 1 0 3 32 1 0 3 50)} "hx-parse-sync-spec" {:upvalue-count 0 :arity 1 :constants ("Parse hx-sync='selector:strategy'. Returns {:selector :strategy :queue-mode} or nil." ":" "index-of" "strategy" "drop" "selector" "queue-mode" 0 "slice" "trim" 1 "queue" "starts-with?" " " "split" "nth" "last") :bytecode (1 0 0 5 16 0 167 33 4 0 2 32 167 0 16 0 1 1 0 52 2 0 2 17 1 16 1 167 33 21 0 1 3 0 1 4 0 1 5 0 16 0 1 6 0 2 65 3 0 32 129 0 16 0 1 7 0 16 1 52 8 0 3 52 9 0 1 17 2 16 0 16 1 1 10 0 160 52 8 0 2 52 9 0 1 17 3 16 3 1 11 0 52 12 0 2 33 6 0 1 11 0 32 2 0 16 3 17 4 16 3 1 11 0 52 12 0 2 33 39 0 16 3 1 13 0 52 14 0 2 17 5 16 5 168 1 10 0 166 33 12 0 16 5 1 10 0 52 15 0 2 32 3 0 1 16 0 32 1 0 2 17 5 1 3 0 16 4 1 5 0 16 2 1 6 0 16 5 65 3 0 50)} "hx-sync-resolve-target" {:upvalue-count 0 :arity 2 :constants ("Resolve sync target element." "this" "closest form" "dom-closest" "form" "dom-query" "dom-body") :bytecode (1 0 0 5 16 1 1 1 0 164 33 5 0 16 0 32 34 0 16 1 1 2 0 164 33 13 0 20 3 0 16 0 1 4 0 49 2 32 12 0 20 5 0 20 6 0 48 0 16 1 49 2 50)} "hx-sync-check!" {:upvalue-count 0 :arity 1 :constants ("Check sync strategy. Returns true if request should proceed." "hx-parse-sync-spec" "dom-get-attr" "hx-sync" "hx-sync-resolve-target" "selector" "get" "strategy" "dom-get-data" "hx-sync-in-flight" "drop" "dom-set-data" "abort" "replace" "dom-dispatch" "htmx:abort" "queue" "hx-sync-queued") :bytecode (1 0 0 5 20 1 0 20 2 0 16 0 1 3 0 48 2 48 1 17 1 16 1 167 33 4 0 3 32 190 0 20 4 0 16 0 16 1 1 5 0 52 6 0 2 48 2 17 2 16 1 1 7 0 52 6 0 2 17 3 16 2 167 33 4 0 3 32 151 0 20 8 0 16 2 1 9 0 48 2 17 4 16 3 1 10 0 164 33 25 0 16 4 33 4 0 4 32 13 0 20 11 0 16 2 1 9 0 3 48 3 5 3 32 105 0 16 3 1 12 0 164 6 34 7 0 5 16 3 1 13 0 164 33 37 0 16 4 33 14 0 20 14 0 16 2 1 15 0 2 48 3 32 1 0 2 5 20 11 0 16 2 1 9 0 3 48 3 5 3 32 48 0 16 3 1 16 0 164 33 38 0 16 4 33 17 0 20 11 0 16 2 1 17 0 16 0 48 3 5 4 32 13 0 20 11 0 16 2 1 9 0 3 48 3 5 3 32 1 0 3 50)} "hx-sync-complete!" {:upvalue-count 0 :arity 1 :constants ("Mark request complete. Fire queued request if any." "hx-parse-sync-spec" "dom-get-attr" "hx-sync" "hx-sync-resolve-target" "selector" "get" "dom-set-data" "hx-sync-in-flight" "dom-get-data" "hx-sync-queued" "dom-dispatch" "click") :bytecode (1 0 0 5 20 1 0 20 2 0 16 0 1 3 0 48 2 48 1 17 1 16 1 33 86 0 20 4 0 16 0 16 1 1 5 0 52 6 0 2 48 2 17 2 16 2 33 59 0 20 7 0 16 2 1 8 0 4 48 3 5 20 9 0 16 2 1 10 0 48 2 17 3 16 3 33 26 0 20 7 0 16 2 1 10 0 2 48 3 5 20 11 0 16 3 1 12 0 2 49 3 32 1 0 2 32 1 0 2 32 1 0 2 50)} "hx-dispatch!" {:upvalue-count 0 :arity 3 :constants ("Dispatch htmx event with v4 naming (htmx:phase:action)." "dom-dispatch") :bytecode (1 0 0 5 20 1 0 16 0 16 1 16 2 49 3 50)} "hx-strip-outer" {:upvalue-count 0 :arity 1 :constants ("Remove outer element, return inner content." "dom-parse-html" "dom-first-child" "dom-inner-html") :bytecode (1 0 0 5 20 1 0 16 0 48 1 17 1 20 2 0 16 1 48 1 17 2 16 2 33 10 0 20 3 0 16 2 49 1 32 2 0 16 0 50)} "hx-do-swap" {:upvalue-count 0 :arity 8 :constants ("Execute swap phase: status overrides → select → strip → transition → swap → partials → OOB → history → settle." "hx-match-status" "swap" "get" "hx-normalize-swap-mode" "mode" "target" "dom-query" "dom-body" "select" "transition" "true" "hx-dispatch!" "htmx:before:swap" "status" "trim" "(" "starts-with?" "parse" "list?" <> {:upvalue-count 0 :arity 1 :constants ("list?" {:upvalue-count 0 :arity 1 :constants ("type-of" "keyword" "keyword-name" "sx-swap-oob") :bytecode (16 0 52 0 0 1 1 1 0 164 6 33 11 0 5 16 0 52 2 0 1 1 3 0 164 50)} "some") :bytecode (16 0 52 0 0 1 6 33 10 0 5 51 1 0 16 0 52 2 0 2 167 50)} "filter" "render-to-html" "hx-select-fragment" "strip" "hx-strip-outer" io-view-transition {:upvalue-count 3 :arity 0 :constants ("hx-swap!") :bytecode (20 0 0 18 0 18 1 18 2 49 3 50)} "list" "hx-swap!" "htmx:after:swap" "push" "false" "hx-handle-history!" "hs-wait" "settle-delay" 1 "htmx:after:settle") :bytecode (1 0 0 5 20 1 0 16 2 16 3 48 2 17 8 16 8 6 33 10 0 5 16 8 1 2 0 52 3 0 2 33 17 0 20 4 0 16 8 1 2 0 52 3 0 2 48 1 32 9 0 16 4 1 5 0 52 3 0 2 17 9 16 8 6 33 10 0 5 16 8 1 6 0 52 3 0 2 33 22 0 20 7 0 20 8 0 48 0 16 8 1 6 0 52 3 0 2 48 2 32 9 0 16 6 6 34 3 0 5 16 0 17 10 16 8 6 33 10 0 5 16 8 1 9 0 52 3 0 2 33 12 0 16 8 1 9 0 52 3 0 2 32 2 0 16 5 17 11 16 4 1 10 0 52 3 0 2 6 34 21 0 5 16 8 6 33 14 0 5 16 8 1 10 0 52 3 0 2 1 11 0 164 17 12 20 12 0 16 0 1 13 0 1 6 0 16 10 1 2 0 16 9 1 14 0 16 2 65 3 0 48 3 5 16 1 6 33 14 0 5 16 1 52 15 0 1 1 16 0 52 17 0 2 33 66 0 16 1 52 18 0 1 169 17 13 16 13 52 19 0 1 6 33 8 0 5 16 13 169 1 20 0 164 33 26 0 51 21 0 16 13 170 52 22 0 2 17 14 20 23 0 1 20 0 16 14 172 48 1 32 7 0 20 23 0 16 13 48 1 32 2 0 16 1 17 13 16 11 33 12 0 20 24 0 16 13 16 11 48 2 32 2 0 16 13 17 14 16 4 1 25 0 52 3 0 2 33 10 0 20 26 0 16 14 48 1 32 2 0 16 14 17 15 16 12 33 20 0 1 27 0 51 28 0 1 10 1 15 1 9 52 29 0 2 112 32 11 0 20 30 0 16 10 16 15 16 9 48 3 5 20 12 0 16 0 1 31 0 2 48 3 5 16 8 6 33 14 0 5 16 8 1 32 0 52 3 0 2 1 33 0 164 167 33 12 0 20 34 0 16 0 16 7 48 2 32 1 0 2 5 20 35 0 16 4 1 36 0 52 3 0 2 6 34 4 0 5 1 37 0 48 1 5 20 12 0 16 0 1 38 0 2 49 3 50)} "hx-make-handler" {:upvalue-count 0 :arity 3 :constants ("Build handler fn — Phase 2: status dispatch, sync, validate, partials, transitions, etag." "hx-resolve-attr" "hx-target" "hx-parse-swap-spec" "hx-swap" "innerHTML" "dom-get-attr" "hx-select" "hx-parse-status-rules" {:upvalue-count 7 :arity 1 :constants ("prevent-default" "hx-sync-check!" "hx-validate-form?" "hx-confirm?" "hx-dispatch!" "htmx:before:request" "method" "url" "hx-indicator-on!" "hx-disable-inputs!" "swap-delay" "get" "hs-wait" "hx-resolve-target" "hx-request" "status" "body" "htmx:after:request" 204 304 "hx-do-swap" "hx-enable-inputs!" "hx-indicator-off!" "hx-sync-complete!" "htmx-boot-subtree!" "hs-boot-subtree!") :bytecode (16 0 33 10 0 20 0 0 16 0 48 1 32 1 0 2 5 20 1 0 18 0 48 1 6 33 20 0 5 20 2 0 18 0 48 1 6 33 8 0 5 20 3 0 18 0 48 1 33 20 1 20 4 0 18 0 1 5 0 1 6 0 18 1 1 7 0 18 2 65 2 0 48 3 5 20 8 0 18 0 48 1 5 20 9 0 18 0 48 1 5 18 3 1 10 0 52 11 0 2 33 17 0 20 12 0 18 3 1 10 0 52 11 0 2 48 1 32 1 0 2 5 20 13 0 18 0 18 4 48 2 17 1 20 14 0 18 0 18 2 18 1 16 1 48 4 17 2 16 2 1 15 0 52 11 0 2 17 3 16 2 1 16 0 52 11 0 2 17 4 20 4 0 18 0 1 17 0 1 6 0 18 1 1 7 0 18 2 1 15 0 16 3 65 3 0 48 3 5 16 3 1 18 0 164 6 34 7 0 5 16 3 1 19 0 164 167 33 24 0 20 20 0 18 0 16 4 16 3 18 5 18 3 18 6 16 1 18 2 48 8 32 1 0 2 5 20 21 0 18 0 48 1 5 20 22 0 18 0 48 1 5 20 23 0 18 0 48 1 5 16 3 1 18 0 164 6 34 7 0 5 16 3 1 19 0 164 167 33 32 0 20 24 0 16 1 6 34 3 0 5 18 0 48 1 5 20 25 0 16 1 6 34 3 0 5 18 0 49 1 32 1 0 2 32 1 0 2 50)}) :bytecode (1 0 0 5 20 1 0 16 0 1 2 0 48 2 17 3 20 3 0 20 1 0 16 0 1 4 0 48 2 6 34 4 0 5 1 5 0 48 1 17 4 20 6 0 16 0 1 7 0 48 2 17 5 20 8 0 16 0 48 1 17 6 51 9 0 1 0 1 1 1 2 1 4 1 3 1 6 1 5 50)} "hx-wrap-debounce" {:upvalue-count 0 :arity 2 :constants ("Wrap handler with debounce (delay: ms before firing)" {:upvalue-count 3 :arity 1 :constants ("clear-timeout" "set-timeout" {:upvalue-count 3 :arity 0 :constants () :bytecode (2 19 0 5 18 1 18 2 49 1 50)}) :bytecode (18 0 33 10 0 20 0 0 18 0 48 1 32 1 0 2 5 20 1 0 51 2 0 0 0 0 1 1 0 18 2 48 2 19 0 50)}) :bytecode (1 0 0 5 2 17 2 51 1 0 1 2 1 0 1 1 50)} "hx-wrap-throttle" {:upvalue-count 0 :arity 2 :constants ("Wrap handler with throttle." 0 {:upvalue-count 3 :arity 1 :constants ("now-ms") :bytecode (20 0 0 48 0 17 1 16 1 18 0 161 18 1 166 33 14 0 16 1 19 0 5 18 2 16 0 49 1 32 1 0 2 50)}) :bytecode (1 0 0 5 1 1 0 17 2 51 2 0 1 2 1 1 1 0 50)} "hx-wrap-changed" {:upvalue-count 0 :arity 2 :constants ("Wrap handler: only fire if element value changed since last fire." {:upvalue-count 3 :arity 1 :constants ("element-value") :bytecode (20 0 0 18 0 48 1 17 1 16 1 18 1 164 167 33 14 0 16 1 19 1 5 18 2 16 0 49 1 32 1 0 2 50)}) :bytecode (1 0 0 5 2 17 2 51 1 0 1 1 1 2 1 0 50)} "hx-register-trigger!" {:upvalue-count 0 :arity 3 :constants ("Register event handler with trigger modifiers applied." "event" "get" "delay" "throttle" "once" "changed" "from" "hx-wrap-changed" "hx-wrap-debounce" "hx-wrap-throttle" "dom-query" "dom-body" "load" "revealed" "intersect" io-observe-intersection {:upvalue-count 1 :arity 0 :constants () :bytecode (18 0 2 49 1 50)} "list" "every" io-set-interval "hs-on") :bytecode (1 0 0 5 16 1 1 1 0 52 2 0 2 17 3 16 1 1 3 0 52 2 0 2 17 4 16 1 1 4 0 52 2 0 2 17 5 16 1 1 5 0 52 2 0 2 17 6 16 1 1 6 0 52 2 0 2 17 7 16 1 1 7 0 52 2 0 2 17 8 16 2 17 9 16 7 33 14 0 20 8 0 16 9 16 0 48 2 17 9 32 1 0 2 5 16 4 33 14 0 20 9 0 16 9 16 4 48 2 17 9 32 1 0 2 5 16 5 33 14 0 20 10 0 16 9 16 5 48 2 17 9 32 1 0 2 5 16 8 33 15 0 20 11 0 20 12 0 48 0 16 8 48 2 32 2 0 16 0 17 10 16 3 1 13 0 164 33 8 0 16 9 2 49 1 32 85 0 16 3 1 14 0 164 6 34 7 0 5 16 3 1 15 0 164 33 18 0 1 16 0 16 0 51 17 0 1 9 52 18 0 3 112 32 47 0 16 3 1 19 0 164 33 27 0 16 4 33 18 0 1 20 0 51 17 0 1 9 16 4 52 18 0 3 112 32 1 0 2 32 11 0 20 21 0 16 10 16 3 16 9 49 3 50)} "htmx-activate!" {:upvalue-count 0 :arity 1 :constants ("Scan hx-* attributes on element, build and register handler.\n Also handles: hx-preload, hx-sse-connect, hx-ignore." "dom-get-attr" "hx-ignore" "hx-verb-info" "dom-get-data" "hx-active" "dom-set-data" 1 "nth" "hx-parse-trigger" "hx-trigger" "hx-make-handler" "hx-register-trigger!" "hx-preload" "hx-preload-register!" "hx-sse-connect" "hx-sse-connect!") :bytecode (1 0 0 5 20 1 0 16 0 1 2 0 48 2 167 33 158 0 20 3 0 16 0 48 1 17 1 16 1 6 33 12 0 5 20 4 0 16 0 1 5 0 48 2 167 33 74 0 20 6 0 16 0 1 5 0 3 48 3 5 16 1 169 17 2 16 1 1 7 0 52 8 0 2 17 3 20 9 0 20 1 0 16 0 1 10 0 48 2 16 0 48 2 17 4 20 11 0 16 0 16 2 16 3 48 3 17 5 20 12 0 16 0 16 4 16 5 48 3 32 1 0 2 5 20 1 0 16 0 1 13 0 48 2 33 10 0 20 14 0 16 0 48 1 32 1 0 2 5 20 1 0 16 0 1 15 0 48 2 33 10 0 20 16 0 16 0 49 1 32 1 0 2 32 1 0 2 50)} "HX-VERB-SELECTORS" "[hx-get],[hx-post],[hx-put],[hx-delete],[hx-patch],[hx-action],[hx-sse-connect],[hx-preload]" "htmx-boot!" {:upvalue-count 0 :arity 0 :constants ("Scan entire document for hx-* elements and activate." "htmx-activate!" "dom-query-all" "dom-body" "HX-VERB-SELECTORS" "for-each" "hx-boost-subtree!") :bytecode (1 0 0 5 20 1 0 20 2 0 20 3 0 48 0 20 4 0 48 2 52 5 0 2 5 20 6 0 2 49 1 50)} "hx-preload-cache" "hx-preload-register!" {:upvalue-count 0 :arity 1 :constants ("Register preload: prefetch GET on mouseenter, cache result." "hx-verb-info" "GET" 1 "nth" "hs-on" "mouseenter" {:upvalue-count 1 :arity 1 :constants ("hx-preload-cache" "get" io-fetch "GET" "Accept" "text/html" "list" io-parse-text "assoc") :bytecode (20 0 0 18 0 52 1 0 2 167 33 54 0 1 2 0 18 0 1 3 0 2 1 4 0 1 5 0 65 1 0 52 6 0 5 112 17 1 1 7 0 16 1 52 6 0 2 112 17 2 20 0 0 18 0 16 2 52 8 0 3 21 0 0 32 1 0 2 50)}) :bytecode (1 0 0 5 20 1 0 16 0 48 1 17 1 16 1 6 33 8 0 5 16 1 169 1 2 0 164 33 29 0 16 1 1 3 0 52 4 0 2 17 2 20 5 0 16 0 1 6 0 51 7 0 1 2 49 3 32 1 0 2 50)} "hx-parse-sse-swap" {:upvalue-count 0 :arity 1 :constants ("Parse hx-sse-swap='event:#target,event2:#target2:outerHTML'." "list" {:upvalue-count 0 :arity 1 :constants ("trim" ":" "split" 2 "target" 1 "nth" "swap" "innerHTML" "event" 0 3 ">=") :bytecode (16 0 52 0 0 1 1 1 0 52 2 0 2 17 1 16 1 168 1 3 0 164 33 36 0 1 4 0 16 1 1 5 0 52 6 0 2 1 7 0 1 8 0 1 9 0 16 1 1 10 0 52 6 0 2 65 3 0 32 77 0 16 1 168 1 11 0 52 12 0 2 33 42 0 1 4 0 16 1 1 5 0 52 6 0 2 1 7 0 16 1 1 3 0 52 6 0 2 1 9 0 16 1 1 10 0 52 6 0 2 65 3 0 32 22 0 1 4 0 2 1 7 0 1 8 0 1 9 0 16 0 52 0 0 1 65 3 0 50)} "," "split" "map") :bytecode (1 0 0 5 16 0 167 33 7 0 52 1 0 0 32 16 0 51 2 0 16 0 1 3 0 52 4 0 2 52 5 0 2 50)} "hx-sse-connect!" {:upvalue-count 0 :arity 1 :constants ("Connect to SSE endpoint. Dispatch events to swap targets." "dom-get-attr" "hx-sse-connect" "hx-parse-sse-swap" "hx-sse-swap" io-event-source {:upvalue-count 1 :arity 2 :constants ({:upvalue-count 2 :arity 1 :constants ("event" "get" "dom-query" "dom-body" "target" "hx-swap!" "hx-normalize-swap-mode" "swap" "htmx-boot-subtree!" "hs-boot-subtree!") :bytecode (18 0 16 0 1 0 0 52 1 0 2 164 33 72 0 20 2 0 20 3 0 48 0 16 0 1 4 0 52 1 0 2 48 2 17 1 16 1 33 42 0 20 5 0 16 1 18 1 20 6 0 16 0 1 7 0 52 1 0 2 48 1 48 3 5 20 8 0 16 1 48 1 5 20 9 0 16 1 49 1 32 1 0 2 32 1 0 2 50)} "for-each") :bytecode (51 0 0 1 0 1 1 18 0 52 1 0 2 50)} "list") :bytecode (1 0 0 5 20 1 0 16 0 1 2 0 48 2 17 1 16 1 33 35 0 20 3 0 20 1 0 16 0 1 4 0 48 2 48 1 17 2 1 5 0 16 1 51 6 0 1 2 52 7 0 3 112 32 1 0 2 50)} "htmx-boot-subtree!" {:upvalue-count 0 :arity 1 :constants ("Activate hx-* elements in subtree. Called after swaps." "htmx-activate!" "dom-query-all" "HX-VERB-SELECTORS" "for-each") :bytecode (1 0 0 5 16 0 33 28 0 20 1 0 20 2 0 16 0 20 3 0 48 2 52 4 0 2 5 20 1 0 16 0 49 1 32 1 0 2 50)} "hx-boost-link!" {:upvalue-count 0 :arity 1 :constants ("Boost an anchor: click → AJAX fetch → swap body → push URL." "dom-get-attr" "href" "hx-verb-info" "http" "starts-with?" "mailto" "#" "dom-set-attr" "hx-get" "hx-target" "body" "hx-swap" "innerHTML" "hx-push-url" "true" "htmx-activate!") :bytecode (1 0 0 5 20 1 0 16 0 1 2 0 48 2 17 1 16 1 6 33 54 0 5 20 3 0 16 0 48 1 167 6 33 41 0 5 16 1 1 4 0 52 5 0 2 167 6 33 26 0 5 16 1 1 6 0 52 5 0 2 167 6 33 11 0 5 16 1 1 7 0 52 5 0 2 167 33 119 0 20 8 0 16 0 1 9 0 16 1 48 3 5 20 1 0 16 0 1 10 0 48 2 167 33 16 0 20 8 0 16 0 1 10 0 1 11 0 48 3 32 1 0 2 5 20 1 0 16 0 1 12 0 48 2 167 33 16 0 20 8 0 16 0 1 12 0 1 13 0 48 3 32 1 0 2 5 20 1 0 16 0 1 14 0 48 2 167 33 16 0 20 8 0 16 0 1 14 0 1 15 0 48 3 32 1 0 2 5 20 16 0 16 0 49 1 32 1 0 2 50)} "hx-boost-form!" {:upvalue-count 0 :arity 1 :constants ("Boost a form: submit → AJAX." "dom-get-attr" "action" "" "method" "post" "downcase" "hx-verb-info" "dom-set-attr" "hx-" "str" "hx-target" "body" "hx-swap" "innerHTML" "htmx-activate!") :bytecode (1 0 0 5 20 1 0 16 0 1 2 0 48 2 6 34 4 0 5 1 3 0 17 1 20 1 0 16 0 1 4 0 48 2 6 34 4 0 5 1 5 0 52 6 0 1 17 2 20 7 0 16 0 48 1 167 33 93 0 20 8 0 16 0 1 9 0 16 2 52 10 0 2 16 1 48 3 5 20 1 0 16 0 1 11 0 48 2 167 33 16 0 20 8 0 16 0 1 11 0 1 12 0 48 3 32 1 0 2 5 20 1 0 16 0 1 13 0 48 2 167 33 16 0 20 8 0 16 0 1 13 0 1 14 0 48 3 32 1 0 2 5 20 15 0 16 0 49 1 32 1 0 2 50)} "hx-boost-subtree!" {:upvalue-count 0 :arity 1 :constants ("Apply hx-boost to links and forms within scope." "dom-body" "hx-boost-link!" "dom-query-all" "[hx-boost] a, a[hx-boost]" "for-each" "hx-boost-form!" "[hx-boost] form, form[hx-boost]") :bytecode (1 0 0 5 16 0 6 34 6 0 5 20 1 0 48 0 17 1 20 2 0 20 3 0 16 1 1 4 0 48 2 52 5 0 2 5 20 6 0 20 3 0 16 1 1 7 0 48 2 52 5 0 2 50)}) :bytecode (1 1 0 1 2 0 1 3 0 4 1 4 0 1 5 0 1 6 0 1 7 0 1 8 0 1 9 0 1 10 0 4 1 11 0 1 12 0 1 13 0 52 14 0 2 65 7 0 128 0 0 5 1 7 0 128 15 0 5 51 17 0 128 16 0 5 51 19 0 128 18 0 5 51 21 0 128 20 0 5 51 23 0 128 22 0 5 51 25 0 128 24 0 5 51 27 0 128 26 0 5 51 29 0 128 28 0 5 51 31 0 128 30 0 5 51 33 0 128 32 0 5 51 35 0 128 34 0 5 51 37 0 128 36 0 5 51 39 0 128 38 0 5 51 41 0 128 40 0 5 51 43 0 128 42 0 5 51 45 0 128 44 0 5 51 47 0 128 46 0 5 51 49 0 128 48 0 5 51 51 0 128 50 0 5 51 53 0 128 52 0 5 51 55 0 128 54 0 5 51 57 0 128 56 0 5 51 59 0 128 58 0 5 51 61 0 128 60 0 5 51 63 0 128 62 0 5 51 65 0 128 64 0 5 51 67 0 128 66 0 5 51 69 0 128 68 0 5 51 71 0 128 70 0 5 51 73 0 128 72 0 5 51 75 0 128 74 0 5 51 77 0 128 76 0 5 51 79 0 128 78 0 5 51 81 0 128 80 0 5 51 83 0 128 82 0 5 51 85 0 128 84 0 5 51 87 0 128 86 0 5 51 89 0 128 88 0 5 51 91 0 128 90 0 5 51 93 0 128 92 0 5 51 95 0 128 94 0 5 51 97 0 128 96 0 5 51 99 0 128 98 0 5 51 101 0 128 100 0 5 51 103 0 128 102 0 5 51 105 0 128 104 0 5 1 107 0 128 106 0 5 51 109 0 128 108 0 5 52 14 0 0 128 110 0 5 51 112 0 128 111 0 5 51 114 0 128 113 0 5 51 116 0 128 115 0 5 51 118 0 128 117 0 5 51 120 0 128 119 0 5 51 122 0 128 121 0 5 51 124 0 128 123 0 50)))
|