Skip to content

Update dependency hyperscript.org to v0.9.93 - #139

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/hyperscript.org-0.x-lockfile
Open

Update dependency hyperscript.org to v0.9.93#139
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/hyperscript.org-0.x-lockfile

Conversation

@renovate

@renovate renovate Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
hyperscript.org (source) 0.9.120.9.93 age confidence

Release Notes

bigskysoftware/_hyperscript (hyperscript.org)

v0.9.93

Compare Source

Bugfixes and follow-ups from the 0.9.90/0.9.91 release:

Fixes
  • fetch no longer swallows a trailing as conversion when the URL is a template string, quoted string, or variable - the conversion now applies to the response, not the URL (e.g. fetch /x?q=${y} as JSON)
  • htmx-compat: only install the after-process hook when the real htmx is present (checks htmx.process is a function)
  • hdb: fix a parse error in the console history handler caused by a duplicate end
  • Defer external script parsing until after DOMContentLoaded
  • Defer component initialization until after processing so all vars are available
Features
  • Reactive DOM queries backed by a single global MutationObserver
  • External component support - load component bundles by URL
  • where clause now allowed directly after an in expression
  • eventsource sends Accept: text/event-stream for Stream conversions

v0.9.92

Compare Source

v0.9.91

Compare Source

Bugfixes from the 0.9.90 release:

  • Fix on resize from window / on resize from document — non-Element targets now fall through to the native resize event instead of using a ResizeObserver
  • The toggle commands for <duration> modifier no longer consumes a following for-in loop
  • Fix ${} template expressions hanging the playground iframe due to leftover debug logging
  • Fix npx hyperscript.org --validate (and the bun/deno platform scripts) crashing with ERR_MODULE_NOT_FOUND. (#​667)

v0.9.90

Compare Source

Hoooooo doggie, it's been a year of on and off work, and we finally had some time to focus on hyperscript!

This is a major change/upgrade, including restructuring the entire codebase to be much more understandable by my students
as well as anyone else interested in the langauge.

Here we go...

Breaking Changes
  • Extensions moved to dist/ext/ - dist/hdb.jsdist/ext/hdb.js, same for socket, template, worker, eventsource, tailwind
  • dist/_hyperscript.js is now IIFE (was UMD) - still works with plain <script> tags, no change needed for most users
  • ESM available as dist/_hyperscript.esm.js - use this for import statements
  • processNode() deprecated - use process() instead (alias still works)
  • as JSON is now JSON.parse - replace as JSON with as JSONString if you were using it to stringify
  • Values:JSON and Values:Form removed - use as Values | JSONString and as Values | FormEncoded
  • default uses nullish check instead of truthy - no longer overwrites 0 and false
  • go to url ... deprecated - use go to /path or go to "url" instead
  • go to the top of ... scroll form deprecated - use scroll to the top of ... instead
  • async keyword removed - had opposite meaning from JavaScript's async, was confusing
  • /* */ block comments removed - enables patterns like /api/* in expressions; use -- or // line comments instead
  • transition requires * style refs - transition widthtransition *width; transition element #footransition #foo's
  • fetch throws on non-2xx responses by default - add do not throw or use as Response to restore old behavior
  • [@attr] bracket-style attribute access deprecated - use @attr instead
New Features
  • A new reactivity system by @​scriptogre! live, when ... changes, bind features for automatic dependency tracking and UI updates
  • Reworked templates now in core by @​iforgotmylogin - render command with <template> elements, ${} interpolation, #for/#if/#else/#end control flow
  • morph command by @​Latent22 - DOM morphing (idiomorph-based) that preserves focus, scroll, form state
  • A new components system - custom elements with reactive templates, slots, and scope isolation via <template component="name">
  • DOM-scoped variables (^name) - scoped to the element, inherited by descendants
  • open / close commands - dialogs, details, popovers, fullscreen
  • focus / blur commands - set or remove keyboard focus
  • empty / clear command - smart clearing of elements, inputs, forms, arrays, sets, maps
  • reset command - restore form or input to its default value
  • swap command - exchange values of two assignable expressions
  • select command - select text content of inputs/textareas
  • ask / answer commands - prompt(), alert(), confirm() wrappers
  • speak command - text-to-speech via Web Speech API
  • breakpoint command in core - pauses in browser DevTools without needing hdb extension
  • toggle between attributes - toggle between [@data-state='active'] and [@data-state='inactive']
  • toggle <target> between <val1>, <val2> and <valN> - cycle any writable value through N values: toggle *display of #panel between 'none' and 'flex', toggle $mode between 'edit', 'preview' and 'publish'
  • Collection expressions for sorting, filtering, etc - where, sorted by, mapped to, split by, joined by
  • clipboard and selection magic symbols
  • on resize synthetic event (via ResizeObserver)
  • on first click modifier - fires event handler only once
  • view transition command - wrap DOM updates in the View Transitions API
  • intercept feature - service worker DSL for caching strategies and offline support
  • --validate CLI tool - npx hyperscript.org --validate scans HTML files for parse errors
  • hyperscript-max bundle - dist/_hyperscript-max.js includes core + all extensions in a single file
  • htmx 4 support - listens for htmx:after:process event in addition to htmx:load
    • htmx 4 morph swap support - process() detects when _= attribute changed (via script hash) and reinitializes automatically
  • cleanup() API - _hyperscript.cleanup(elt) removes all event listeners, disconnects observers, clears timers, recursively cleans children. Called automatically before reinitialization.
  • htmx inspired lifecycle events - hyperscript:before:init, hyperscript:after:init, hyperscript:before:cleanup, hyperscript:after:cleanup fired per element. before:init is cancelable via preventDefault().
  • htmx inspired data-hyperscript-powered attribute - set on all initialized elements for fast querying and morph compatibility
  • htmx inspired config.logAll - when true, logs all hyperscript events to console (matches htmx's logAll)
  • Pipe operator for conversions - chain with |: #myForm as Values | JSONString
  • as JSON parses a JSON string, as JSONString stringifies, as FormEncoded URL-encodes
  • when clause on remove and hide commands (async-safe, matching add/show)
  • scroll to command for scrolling elements into view (replaces scroll form of go)
  • repeat ... until x end and repeat ... while x end bottom-tested loops
  • ignoring case modifier on comparisons
  • between comparison - if x is between 1 and 10
  • starts with / ends with comparisons
  • put null into @attr removes the attribute
  • DOM expressions (#id, .class, <query/>) are writable via .replaceWith()
  • set supports array concatenation - set arr to arr + [1, 2]
  • Short-circuit evaluation for and/or with proper async promise handling
  • llms-full.txt - LLM-friendly documentation endpoint at /llms-full.txt
  • Platform scripts - node-hyperscript.js, deno-hyperscript.js, bun-hyperscript.js for running .hs files outside the browser
Internal
  • Complete ESM rewrite of all source files (45 modules)
  • Runtime split into focused modules (runtime, collections, conversions, cookies)
  • Removed IE/legacy browser compatibility code
  • Test suite migrated to Playwright (~9s, from ~250s with old runner), 1332 tests
  • IIFE + ESM dual builds with minified + brotli variants for core and all extensions
Bug Fixes
  • Fixed AttributeRef not stripping single-quoted values
  • Fixed ElementCollection.id getter calling className as a method
  • Fixed silent failure when command doesn't return next element - now throws instead of logging and returning undefined
  • Fixed add, remove, toggle not working with ElementCollections as targets
  • Fixed repeat erroring on undefined iterator (now skips gracefully)

v0.9.14

Compare Source

  • Short-circuit evaluation for and/or expressions
  • append command handles DOM elements properly
  • Support tilde (~) in query selectors
  • Support $= selectors
  • Support escaping in class literals (Tailwind compatibility)
  • Negative numbers work with postfix units (-10px)

v0.9.13

Compare Source

  • Maintenance release

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested review from a team and dezren39 as code owners September 3, 2026 17:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants