Skip to content

Update dependency teddy to v2.3.2 - #73

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/teddy-2.x
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/teddy-2.x

Conversation

@renovate

@renovate renovate Bot commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
teddy (source) 2.0.4 → 2.3.2 age confidence
teddy (source) 2.1.0 → 2.3.2 age confidence

Release Notes

rooseveltframework/teddy (teddy)

v2.3.2

Compare Source

  • Fixed a variable whose name is built from another variable, such as {names.{key}}, writing its value unescaped when the page went through a layout. A name not in the model was written back with flags the model supplied, and the layout parsed it again.
  • Fixed a {variable} inside an escaped value being written unescaped when its |s flag was spelled oddly, such as {x||ss}, or when its name was built from another variable.
  • Updated dependencies.

v2.3.1

Compare Source

  • Breaking: Bumped the precompiled format to 4, so templates precompiled with an earlier version must be precompiled again.
  • Fixed a variable whose name is built from another variable, such as {names.{key}}, taking its flags from the value it was built from. A model value ending in |s or |p|s made the variable write its value unescaped. Its flags now come only from the template, such as the |s in {names.{key}|s}.
  • Updated dependencies.

v2.3.0

Compare Source

  • Breaking: Bumped the precompiled format to 3, so templates precompiled with an earlier version must be precompiled again.
  • Breaking: Changed <elseif> and <elseunless> conditions whose value contains a {variable} to now compare against what the variable resolves to, as <if> and <unless> always have. They used to compare against the value as written, so a template relying on that will render differently.
  • Added support for {variables} in every attribute of a Teddy element: <loop> key and val, <inline> css and js, <include> as, mode, and hydrate, and the names of <arg> elements, as <loop> through and <include> src already did. An as, mode, or hydrate holding a variable is checked once a render has resolved it, with the same rules and errors as one written out.
  • Added support for {variables} and ${variables} in a condition's name, such as <if event.{column.name}.icon> or a one-line if-names.{person}="girl".
  • Altered conditions to compare a value written with |p or |s, such as <if x="{y|p}">, against the variable's value. |p used to make it compare against the placeholder the value is held out as.
  • Fixed {variable|h} and {variable|d} looking up the variable with the flag still attached to its name, so a variable that was present in the model was treated as missing and rendered as empty under |h or as {variable} under |d.
  • Fixed a ${variable} whose name is built from another variable, such as ${names.{key}}, dropping its $ when it didn't resolve. A plain ${variable} already kept it.
  • Fixed the client-side build splitting an attribute name at a {, }, or $, which broke one-line ifs and <arg> names holding a variable.
  • Updated dependencies.

v2.2.0

Compare Source

  • Added teddy.renderFragment(template, model, options), which renders into a DocumentFragment rather than a string. An element written with a ref attribute is handed back by name in the fragment's refs.
  • Added teddy.check(template), which compiles a template without rendering it and returns its warnings, so a build step can fail on them.
  • Added render options: teddy.render(template, model, options) takes verbosity, emptyVarBehavior, and cache for that render alone. A callback can still be passed third, as Express does, or fourth after options.
  • Added npm run benchmark:compare, which measures how fast teddy is at two versions, by default this checkout against main, and says which scenarios got faster or slower, by how much, and whether that's more than the measurements disagree with themselves. See benchmarker/BENCHMARKER.md.
  • Improved client-side rendering performance. Precompiled templates now render about 1.5× as fast, and cached templates up to a quarter faster.
  • Altered warnings to now name the template they're about. Warnings that only printed at a higher verbosity are worded to say what was removed.
  • Altered npm run benchmark to rebuild teddy if its build is older than its source, rather than only if it's missing, so a run never measures a build left over from another branch.
  • Fixed {varName|p} writing its value unescaped. |p is meant only to stop the value being parsed, so it's now escaped like any other variable. Combine it with |s ({varName|s|p}) to write a value unescaped and unparsed.
  • Fixed teddy.render adding a _noTeddyBlocks property to the model it was given, which threw on a frozen model. A render now keeps what it holds out of the markup to itself.
  • Fixed an element in an included template keeping only the first of its one-line ifs: an element can carry several, but in a template brought in by <include>, the ones after the first were dropped.
  • Fixed selected-value and checked-value never matching a value written with the |p flag, on either side, such as <option value="{choice|p}">.
  • Fixed one-line ifs being written out as they are, as if-x true="disabled" attributes, on the <option> and <input> elements a selected-value or checked-value from the model marks.
  • Fixed the client-side build dropping whitespace that sits on its own between elements, so <span>A</span> <span>B</span> rendered as AB rather than A B. Node builds were unaffected.
  • Fixed the client-side build writing an entity in a variable's value unescaped. A value of Tom &amp; Jerry was written as Tom &amp; Jerry and displayed as Tom & Jerry, where node writes Tom &amp;amp; Jerry, which displays as the value has it.
  • Fixed the client-side build lowercasing the names of SVG and MathML elements and attributes, so viewBox came out as viewbox and linearGradient as lineargradient, which XML consumers of the output and anything comparing it to node's don't accept. Node builds were unaffected.
  • Fixed an escaped variable's value being able to write markup unescaped. A value is still parsed for {variables} of its own, but a {variable|s} inside it was written raw, so a model value of {otherVar|s} let otherVar through unescaped. Variables inside an escaped value are now always escaped.
  • Updated dependencies.

v2.1.0

Compare Source

  • Breaking: Removed the <cache> element and teddy.setCache, teddy.clearCache, teddy.caches, and teddy.templateCaches. They only suited pages that render the same for every visitor and are keyed by one model variable: a page carrying a session, a CSRF token, or a flash message would serve one visitor's markup to the next, and a key that missed a variable served stale pages without warning. Cache rendered pages outside the app instead, with a CDN, a reverse proxy such as nginx's proxy_cache, or Cache-Control headers. A <cache> element left in a template is now rendered as an ordinary unknown element. teddy.setCacheTemplates and the cache render option, which keep templates in memory rather than reading them again, are unchanged.
  • Breaking: Bumped the precompiled format to 2, so templates precompiled with an earlier version must be precompiled again.
  • Updated dependencies.

v2.0.6

Compare Source

  • Removed the comments naming each module's path from the unminified builds in dist. They marked themselves as licenses, so a project bundling this one ended up with a *.LICENSE.txt file full of them.
  • Updated dependencies.

v2.0.5

Compare Source

  • Fixed a bug that caused markup supplied through a {variable|s} to be left out of the page entirely when it contained a <script>, <style>, <textarea>, or <pre> holding something that looks like a Teddy tag, such as a script with the string "<include src=x>" in it. The check that markup from the model opens and closes its own tags counted tags inside those elements as though they were real, so it judged the markup incomplete. Their contents are now skipped, the same as when those elements are written in the template.
  • Fixed a bug in the client-side build that caused Teddy tags inside a <script>, <style>, or <textarea> to be parsed and run, which garbled the element and could drop the markup after it. Their contents are now read as plain text, the way a browser reads them and the way the server build already did.
  • Fixed a bug in the client-side build that caused an unquoted attribute value such as class=greeting to be read as =greeting.
  • Fixed a spurious warning about a closing tag the template never opened when that closing tag appeared inside a <script>, <style>, <textarea>, or <pre>.
  • Updated dependencies.

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 these updates 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 force-pushed the renovate/teddy-2.x branch 2 times, most recently from dd8b359 to cb77a9e Compare September 7, 2026 17:17
@renovate
renovate Bot force-pushed the renovate/teddy-2.x branch from cb77a9e to f83c35c Compare September 16, 2026 11:11
@renovate renovate Bot changed the title Update dependency teddy to v2 Update dependency teddy to v2.0.2 Sep 16, 2026
@renovate renovate Bot changed the title Update dependency teddy to v2.0.2 Update dependency teddy to v2.0.2 - autoclosed Sep 22, 2026
@renovate renovate Bot closed this Sep 22, 2026
@renovate
renovate Bot deleted the renovate/teddy-2.x branch September 22, 2026 16:58
@renovate renovate Bot changed the title Update dependency teddy to v2.0.2 - autoclosed Update dependency teddy to v2.0.5 Sep 29, 2026
@renovate renovate Bot reopened this Sep 29, 2026
@renovate
renovate Bot force-pushed the renovate/teddy-2.x branch 2 times, most recently from 055c1ca to d2beb60 Compare October 1, 2026 06:12
@renovate renovate Bot changed the title Update dependency teddy to v2.0.5 Update dependency teddy to v2.0.6 Oct 1, 2026
@renovate
renovate Bot force-pushed the renovate/teddy-2.x branch from d2beb60 to 6f6d433 Compare October 11, 2026 12:34
@renovate renovate Bot changed the title Update dependency teddy to v2.0.6 Update dependency teddy to v2.1.0 Oct 11, 2026
@renovate
renovate Bot force-pushed the renovate/teddy-2.x branch 2 times, most recently from aa7c118 to 7b9bf45 Compare October 23, 2026 23:33
@renovate renovate Bot changed the title Update dependency teddy to v2.1.0 Update dependency teddy to v2.2.0 Oct 24, 2026
@renovate
renovate Bot force-pushed the renovate/teddy-2.x branch from 7b9bf45 to 03a1f10 Compare October 24, 2026 01:56
@renovate renovate Bot changed the title Update dependency teddy to v2.2.0 Update dependency teddy to v2.3.0 Oct 28, 2026
@renovate
renovate Bot force-pushed the renovate/teddy-2.x branch from 03a1f10 to ed7e75c Compare October 28, 2026 16:39
@renovate renovate Bot changed the title Update dependency teddy to v2.3.0 Update dependency teddy to v2.3.1 Oct 29, 2026
@renovate
renovate Bot force-pushed the renovate/teddy-2.x branch from ed7e75c to e3fbfbd Compare October 29, 2026 02:39
@renovate
renovate Bot force-pushed the renovate/teddy-2.x branch from e3fbfbd to c9a3659 Compare October 31, 2026 05:56
@renovate renovate Bot changed the title Update dependency teddy to v2.3.1 Update dependency teddy to v2.3.2 Oct 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

0 participants