Download

Download Yozo's development or production bundle, new or old, and see how the more recent versions differ from past ones.

Latest

Click the buttons below to download the latest Yozo bundles.

Note: development bundles have more thorough checks and error handling built-in than the production bundle. If the development bundle throws an error, it either will not work in production or is extremely fragile. Warnings may be ignored, though keep in mind that the production bundle has all warnings stripped out.

Compare

Compare an older version of Yozo to a newer one to see a summary of what's changed. A straight-forward answer as to what to expect when upgrading.

Archive

Here you'll find all versions Yozo has been through since its release, in reverse-chronological order (i.e. newest first).

Version 0.6.0

September 11, 2024 ERjaEG9HlASHD/myBkInFw==

Breaking changes

  • Added "internals" variable for ElementInternals. Manually running .attachInternals() will now throw an error.

Improvements

  • Errors thrown in a component's <script> now include the component name.

Bug fixes

  • Clarify a cryptic error when attempting to loop over a nullish value in #for.

Version 0.5.3

June 5, 2024 apkatN5hTfs1YSS9ZJz5mA==

Bug fixes

  • Fixed issue where live.get() would not be monitored when used with a key argument.

Version 0.5.2

June 1, 2024 fn7+yg/Vdy8dlF6HytMudw==

Bug fixes

  • The "this" value is now properly passed on to purify() callbacks

Version 0.5.1

June 1, 2024 G9Vd/zvyRQMoSHSZa1R8BA==

Improvements

  • Added warning message for awaiting flows without .once().
  • Added simple JSDoc comments for all exports."

Bug fixes

  • Hooks without unhook (such as disconnected()) are no longer retroactively fired.

Version 0.5.0

May 26, 2024 52VW5+sQB9t4EePHgbMIXw==

Breaking changes

  • Changed class syntax from .class-list.name to :class+name

Improvements

  • Better warning messages for mixing incompatible attributes (dev build only)

Version 0.4.3

May 18, 2024 xjHyesnwdXr6ve3BqLDOrg==

Improvements

  • It is now possible (though not recommended) to register 'result' as monitorable type

Bug fixes

  • Fixed an issue where flows created in nested contexts were not always properly cleaned up
  • The keychange event is now also fired when changing between objects and non-objects

Version 0.4.2

May 2, 2024 wC/R8Woaw4ODwUAN3q8P8w==

Bug fixes

  • Fixed an issue where a nested template subtree could undo monitored contexts in other components

Version 0.4.1

April 28, 2024 TTRaoAmaPsBW7mWt7wFe4g==

Improvements

  • Re-introduced register.auto() (with slight behavioral differences)

Version 0.4.0

April 28, 2024 aT6Julqk8QMOXW//IqUQpA==

Breaking changes

  • Removed register.auto()
  • Renamed flow.flow() to flow.pipe()

Improvements

  • Return a new flow from live.link(), even if a "changes" option was passed
  • The flow returned by live.link() now triggers when the link updates

Version 0.3.9

April 21, 2024 8mq6zPRlLRcOsknwp7ccoQ==

Improvements

  • register() now also returns a promise resolving when component is defined on subsequent calls with the same URL
  • register() now no longer attempts to parse a component definition if the network response was not ok
  • Generated functions now have comments hinting where they were generated from
  • Minor improvements for warnings regarding unexpected flow control attributes
  • Added warnings for malformed options on the <template> element

Version 0.3.8

April 7, 2024 ydIqK9v2NWQeSpsCYAu4mA==

Improvements

  • Added a warning for when two properties or methods are defined on a component with the same name.
  • Added a warning for when a defined method turns out not to be a function.

Bug fixes

  • Fixed a bug where the attributeChanged callback fired twice per attribute change.

Version 0.3.7

March 31, 2024 8MfejNOHL3e7zp+uDSI8Gw==

Bug fixes

  • Fixed an issue where the deepchange event would trigger on unchanged variables during the setting of a parent variable.

Version 0.3.6

March 24, 2024 n4ql9r8K2m/VMjS26Iybwg==

Bug fixes

  • Strings and other non-objects are no longer diffed for live variables for performance reasons, and the keychange will no longer fire on them.

Version 0.3.5

March 21, 2024 15fpdmuTezSGQM9NBswD0w==

Bug fixes

  • Fixed an issue where using live variables breaks in workers due to the HTMLElement class not existing.

Version 0.3.4

February 8, 2024 BzlftRt7KnoKMU8MuAdQXQ==

Bug fixes

  • Fixed an issue where flow.stop() did not return the flow object it was called on if the flow was already stopped.
  • Flows no longer collect references to pipeline callbacks that are added after the flow has stopped.

Version 0.3.3

January 6, 2024 +FzooO1UJxnL9Y38XKpRww==

Improvements

  • The until() function now returns a proper Promise object, supporting manually calling .then() on them.
  • Added an error message for elements with both an #if and #for attribute (development build only).
  • Minor performance improvements for effect(), live.link(), monitoring live variables, component internals, and in-template logic.

Bug fixes

  • When using the #for attribute on a <template> element, it now renders the template's contents rather than the template element itself.
  • Fixed an issue where non-element nodes between elements in an #if-else chain were not removed.

Version 0.3.2

December 29, 2023 Lcy6WvLuZaKyYYkHFcAiZw==

Improvements

  • Major performance improvements to in-template logic parsing.
  • Added several error and warning messages for mistakes in in-template logic (development build only).

Bug fixes

  • Fixed an issue where the 'has' trap on live variables throws an error if the value wrapped is nullish.

Version 0.3.1

December 26, 2023 t4r49tZS0QPW2aSUZLwzdw==

Bug fixes

  • Fixed a memory leak where a monitor.ignore() was preventing references to internal rendering flows from being cleaned up.

Version 0.3.0

December 4, 2023 QHNKIdG8kNmCgbPo7KQ3CQ==

Breaking changes

  • The elements object has been renamed and restructured to query() and query.all().

Version 0.2.2

November 26, 2023 fGtPI9RCNS8msDir+TkkEQ==

Improvements

  • Dev builds are no longer minified.

Bug fixes

  • Fixed an issue where shadowless components would break after connecting for a second time.

Version 0.2.1

November 19, 2023 Yphb35XFanbhpJxyv24FuQ==

Improvements

  • register() now accepts URL objects as first argument.

Version 0.2.0

November 19, 2023 2/T48h6QQC31IPiQHEyg9A==

Breaking changes

  • track() has been renamed to monitor().
  • Tracking shorthands like track.undo() and track.live() have been removed in favor of the more general monitor(['undo'], () => { … }) and likewise for other types. Registering new types will also no longer create shorthands.

Version 0.1.0

November 4, 2023 oq7zDVgrRBFgCneubzzQUQ==

Improvements

  • Added flow.await(), a method that waits for its callback before sending a trigger through to the next item in the pipline.

Version 0.0.2

October 29, 2023 00g3t4a3n8Nrr2Sn1+Akwg==

Bug fixes

  • Fixed an issue where the deepchange event did not fire on the changed live variable itself.

Version 0.0.1

October 22, 2023 hJ0l/wHXR720iSeq0JXYcQ==