Mithril v2.2.8

Release v2.2.2

Patch Changes

Use markdown for the README badges (@pygy)

Use markdown for the README badges.

Release v2.2.1

Patch Changes

Move the chat to Zulip (@pygy)

This updates the documentation to link to the new Zulip chat room.

Release v2.2.0

Minor Changes

m.censor: work around a bunder bug (@kfule)

The internal bundler sometimes mangles the words in RegExp literals incorrectly. Please see below.

Warn about reusing mutated attrs object - fixes #2719 (@StephanHoyer)

Send URLSearchParams as request body without extra configuration (@Coteh)

This PR fixes an oddity I noticed in the way m.request handles URLSearchParams object. It now handles it in the same sort of way XHR and Fetch do it.

Add params: to m.route.Link, fix docs (@dead-claudia)

Add params: to m.route.Link. Minor fix to docs to reflect reality with m.route.Link's disabled: attribute.

Allow Mithril to be loaded in non-browser environments without modification (@dead-claudia)

Recast the global reads to all be guarded with typeof, so that if they aren't defined, they're just null.

Add a m.Fragment = "[" utility for JSX users. (@dead-claudia)

The title says it all, and the diff's obvious. Resolves https://github.com/MithrilJS/mithril.js/issues/2640 and probably others.

Patch Changes

Enable --minimize-semver-change for pr-release (@JAForbes)

Minimizes semver changes on release to the minimum required version bump to satisfy major/minor/patch semver ranges. Minimizes the semver change so that.

Clean up m.route.Link (@barneycarroll)

An attempt at better demonstrating m.route.Link with less text. Fixes #2767.

Runtime-deprecate ospec, change change-log to changelog, fix a few assorted bugs (@dead-claudia)

This PR is in two parts: 1. Revise the build system and some of the local dev setup. Fully split ospec from the repo, and add it as a dependency.

Add meta description to docs (@StephanHoyer)

rework of #2149. added a meta description parser and meta descriptions to all docs pages. because google. built the docs, inspected the output manually.

Fixed badges, consistent naming of Mithril.js (@tbreuss)

use consistent naming of Mithril.js. fix badges in README. Fixes issue #2749.

Catch malformed URI Components (@jdiderik)

Fix for error thrown when a value contains non-valid / malformed URI Component. Example: test=%c5%a1%e8ZM%80%82H. will throw "URI malformed".

Correctly handle invalid escapes in routes based on 0a5ead31c9fbd7b153c521c7f9d3df7bf826ce6c (@StephanHoyer)

fixes #2061. @dead-claudia I just redid your change but slightly different in order to handle a mix of wrong and right encodings properly.

Standardise vnode text representation (@barneycarroll)

This addresses the crucial feature of #2669: text is always represented as virtual text nodes, never as a vnode.text.

Issue 2624 no content 204 parse (@Evoke-PHP)

Added guard so that JSON.parse does not fail on IE11 with no content empty string being parsed. Fixes https://github.com/MithrilJS/mithril.js/issues/2624.

[m.request] work around a bundler bug, fix #2647 (@pygy)

The bundler mangles identifier-like strings within RegExps, this works around the problem by not using such RegExps.

Reject request on XHR timeout (@kevinfiol)

Derived from PR #2581. Allows requests to properly reject on event of a timeout.

Remove extra isLifecycleMethod call from removeAttr (@ZeikJT)

Removing an extra isLifecycleMethod in the removeAttr method, it isn't needed since it's already checked on the previous line.

Fix #2601 (@dead-claudia)

Fix issue where ending a stream in the middle of a stream callback would result in erroneous parent stream state for the rest of that emit. Fixes #2601.

Add streams to releases again, include minified bundle, drop internal stuff from npm (@dead-claudia)

Add stream/stream.js to releases again. Add stream/stream.min.js now that the process is remotely sane now.

Make errors and their messages more accurate and helpful (@dead-claudia)

I updated error messages to be much more helpful.

Fix assertion descriptions (@soulofmischief)

I moved the return statement to the end of define() so that it returns even if the comparison fails.

Fix branch target (@dead-claudia)

https://github.com/MithrilJS/mithril.js/runs/6199543939?check_suite_focus=true.

Automate mithril's release workflow (@JAForbes)

Automated releases, pre-releases, (code) rollbacks and recovery, npm publishing, change log management just by using normal github flow.

rework jsx docs (@StephanHoyer)

Add Simple Application Flems Supporting v2.0.4 and up (@tbreuss)

Added Flems for Simple Application supporting v2.0.4 of Mithril.js. Fixes Issue #2710.

Make example work with webpack v5.69.1 (@StephanHoyer)

fixes #2634.

2604: correct and move text about statements in view method (@kevinfiol)

Addresses #2604.

Fix lint errors (@StephanHoyer)

WIP: Update modularisation details in Installation docs (@orbitbot)

added link to flems.io as an easier way to just try out the framework. -. Documentation has grown a bit stale.

Added power support for the travis.yml file with ppc64le (@sreekanth370)

Added power support for the travis.yml file with ppc64le. This is part of the Ubuntu distribution for ppc64le.

Updated babel/webpack docs to work with latest versions (@pereriksson)

As a developer I tried setting up Mithril with Babel and Webpack but failed because of a variety of errors.

[docs] route redirection using the history API (@pygy)

This is an attempt at fixing #1759, but there may be more to be added. Feedback welcome. ping @dontwork.

Bump path-parse from 1.0.6 to 1.0.7 (@dependabot[bot])

Bumps path-parse from 1.0.6 to 1.0.7. Commits. See full diff in compare view.

Bump glob-parent from 5.1.0 to 5.1.2 (@dependabot[bot])

Bumps glob-parent from 5.1.0 to 5.1.2. Release notes. Sourced from glob-parent's releases. v5.1.2. Bug Fixes.

Bump ajv from 6.10.2 to 6.12.6 (@dependabot[bot])

Bumps ajv from 6.10.2 to 6.12.6. Release notes. Sourced from ajv's releases. v6.12.6. Fix performance issue of "url" format.

Update standalone usage (@ghost)

Avoid double encoding of function signatures - fixes #2720 (@StephanHoyer)

Show previous versions (@mike-ward)

Add Dropdown that shows links to archived versions of the documentation.

docs: improve m.request return value description (@GAumala)

In the m.request return value description, add a line informing that error status codes cause the promise to reject.

A note on JSX events (@pereriksson)

Naming JSX events according to their documentation produces unexpected results with incorrectly named events when using JSX with Mithril.

Document route resolution cancellation, fixes #1759 (@barneycarroll)

Also fixes a broken internal link.

Bump marked from 0.7.0 to 4.0.10 (@dependabot[bot])

Bumps marked from 0.7.0 to 4.0.10. Release notes. Sourced from marked's releases. v4.0.10. 4.0.10 (2022-01-13). Bug Fixes.

Flems in docs (#2348) [skip ci] (@porsager)

Added flems instead of the current codepen samples.

Remove old TOC link (@ArthurClemens)

Content was moved some time ago and linked section no longer exists.

Cavemansspa patch 1 (@cavemansspa)

Documentation update.

Bump hosted-git-info from 2.8.4 to 2.8.9 (@dependabot[bot])

Bumps hosted-git-info from 2.8.4 to 2.8.9. Changelog. Sourced from hosted-git-info's changelog. 2.8.9 (2021-04-07).

Bump lodash from 4.17.20 to 4.17.21 (@dependabot[bot])

Bumps lodash from 4.17.20 to 4.17.21. Commits. f299b52 Bump to v4.17.21.

Bump handlebars from 4.7.6 to 4.7.7 (@dependabot[bot])

Bumps handlebars from 4.7.6 to 4.7.7. Changelog. Sourced from handlebars's changelog. v4.7.7 - February 15th, 2021.

Remove unreachable keyed node logic, fixes #2597 (@barneycarroll)

Delete test-utils/README.md (@dead-claudia)

We don't expose this publicly anymore, so there's literally no justification for this file's existence.

simple-application.md: consistent use of type=submit (@danbst)

When following tutorial and typing everything in, I was confused that Save button didn't work.

Fix inconsistent capitalizations of "JavaScript" (@mtsknn)

"Javascript"/"javascript" → "JavaScript". Fixes #2398, or at least I can't find any more incorrect capitalizations.

fix some typos (@osban)

Found some typos. Mainly unescaped | in tables, but also a few other irregularities. Not all problems are visible in the website docs.

Replace mocha by ospec in testing page (@gamtiq)

Fixed a typo in testing doc page. Currently there is reference to mocha in the page whereas opsec is used.

Bump acorn from 7.1.0 to 7.4.0 (@dependabot[bot])

Bumps acorn from 7.1.0 to 7.4.0. Commits. 54efb62 Mark version 7.4.0.

Bump handlebars from 4.4.2 to 4.7.6 (@dependabot[bot])

Bumps handlebars from 4.4.2 to 4.7.6. Changelog. Sourced from handlebars's changelog. v4.7.6 - April 3rd, 2020.

Bump lodash from 4.17.15 to 4.17.20 (@dependabot[bot])

Bumps lodash from 4.17.15 to 4.17.20. Commits. ded9bc6 Bump to v4.17.20. 63150ef Documentation fixes.

Bump minimist from 1.2.0 to 1.2.3 (@dependabot[bot])

Bumps minimist from 1.2.0 to 1.2.3. Commits. 6457d74 1.2.3. 38a4d1c even more aggressive checks for protocol pollution.

Update installation.md (@purefan)

Offer to install mithril as a webpack plugin. Just makes my life easier by not having to include mithril in every one of my js files.

replace slave label with replica (@stephanos)

One of the example is using the antiquated word "slave" for a database replica. I updated the language and tested the change.

ES6 and m.trust docs patch (@kczx3)

While reading through some of the documentation I saw some issues with both the ES6 and m.trust pages.

docs: Fix simple typo, subsequece -> subsequence (@timgates42)

There is a small typo in mithril.js, render/render.js. Should read subsequence rather than subsequece.

change link to go to ospec instead of mocha (@akessner)

Change the link to point to ospec docs in github. ospec link went to mochajs. issue 2575. N/A. N/A. N/A.

updated to the Vimeo showcase (@CreaturesInUnitards)

The scrimba version of Mithril 0-60 was built on their beta platform, and doesn't really even work anymore.

adding more community examples (@boazblake)

Exclude archive of previous docs (@cztomsik)

update .npmignore so that archives are not included in the resulting package. space/bandwidth savings. fix #2552.

Pimp the docs linter (and assorted changes) (@pygy)

Add an optional cache for faster runs. Add a final report. Don't return anything from exec(). Cover more files. Look for a "--cache" option.

Recast key docs to be much clearer and more accurate (@dead-claudia)

Recast key docs to be much clearer and more accurate, including a few Flems examples to help intuitively explain things.

Add m.censor, adjust m.route.Link to use it (@dead-claudia)

Add m.censor. Adjust m.route.Link to use it. Restructure a few things for better code reuse. Fixes #2472.

Update fetch() browser support in docs (@qgustavor)

As Can I use shows fetch() supported since Safari 10.1 and iOS Safari 10.3.

docs: Add release dates to all change-log files (@maranomynet)

I'd like to introduce release dates to the change log files. Release dates are human-friendly and add a bit of historical perspective to change-log files.

Release v2.1.0

Minor Changes

m.censor: work around a bunder bug (@kfule)

The internal bundler sometimes mangles the words in RegExp literals incorrectly. Please see below.

Warn about reusing mutated attrs object - fixes #2719 (@StephanHoyer)

Send URLSearchParams as request body without extra configuration (@Coteh)

This PR fixes an oddity I noticed in the way m.request handles URLSearchParams object. It now handles it in the same sort of way XHR and Fetch do it.

Add params: to m.route.Link, fix docs (@dead-claudia)

Add params: to m.route.Link. Minor fix to docs to reflect reality with m.route.Link's disabled: attribute.

Allow Mithril to be loaded in non-browser environments without modification (@dead-claudia)

Recast the global reads to all be guarded with typeof, so that if they aren't defined, they're just null.

Add a m.Fragment = "[" utility for JSX users. (@dead-claudia)

The title says it all, and the diff's obvious. Resolves https://github.com/MithrilJS/mithril.js/issues/2640 and probably others.

Patch Changes

Enable --minimize-semver-change for pr-release (@JAForbes)

Minimizes semver changes on release to the minimum required version bump to satisfy major/minor/patch semver ranges. Minimizes the semver change so that.

Clean up m.route.Link (@barneycarroll)

An attempt at better demonstrating m.route.Link with less text. Fixes #2767.

Runtime-deprecate ospec, change change-log to changelog, fix a few assorted bugs (@dead-claudia)

This PR is in two parts: 1. Revise the build system and some of the local dev setup. Fully split ospec from the repo, and add it as a dependency.

Add meta description to docs (@StephanHoyer)

rework of #2149. added a meta description parser and meta descriptions to all docs pages. because google. built the docs, inspected the output manually.

Fixed badges, consistent naming of Mithril.js (@tbreuss)

use consistent naming of Mithril.js. fix badges in README. Fixes issue #2749.

Catch malformed URI Components (@jdiderik)

Fix for error thrown when a value contains non-valid / malformed URI Component. Example: test=%c5%a1%e8ZM%80%82H. will throw "URI malformed".

Correctly handle invalid escapes in routes based on 0a5ead31c9fbd7b153c521c7f9d3df7bf826ce6c (@StephanHoyer)

fixes #2061. @dead-claudia I just redid your change but slightly different in order to handle a mix of wrong and right encodings properly.

Standardise vnode text representation (@barneycarroll)

This addresses the crucial feature of #2669: text is always represented as virtual text nodes, never as a vnode.text.

Issue 2624 no content 204 parse (@Evoke-PHP)

Added guard so that JSON.parse does not fail on IE11 with no content empty string being parsed. Fixes https://github.com/MithrilJS/mithril.js/issues/2624.

[m.request] work around a bundler bug, fix #2647 (@pygy)

The bundler mangles identifier-like strings within RegExps, this works around the problem by not using such RegExps.

Reject request on XHR timeout (@kevinfiol)

Derived from PR #2581. Allows requests to properly reject on event of a timeout.

Remove extra isLifecycleMethod call from removeAttr (@ZeikJT)

Removing an extra isLifecycleMethod in the removeAttr method, it isn't needed since it's already checked on the previous line.

Fix #2601 (@dead-claudia)

Fix issue where ending a stream in the middle of a stream callback would result in erroneous parent stream state for the rest of that emit. Fixes #2601.

Add streams to releases again, include minified bundle, drop internal stuff from npm (@dead-claudia)

Add stream/stream.js to releases again. Add stream/stream.min.js now that the process is remotely sane now.

Make errors and their messages more accurate and helpful (@dead-claudia)

I updated error messages to be much more helpful.

Fix assertion descriptions (@soulofmischief)

I moved the return statement to the end of define() so that it returns even if the comparison fails.

Fix branch target (@dead-claudia)

https://github.com/MithrilJS/mithril.js/runs/6199543939?check_suite_focus=true.

Automate mithril's release workflow (@JAForbes)

Automated releases, pre-releases, (code) rollbacks and recovery, npm publishing, change log management just by using normal github flow.

rework jsx docs (@StephanHoyer)

Add Simple Application Flems Supporting v2.0.4 and up (@tbreuss)

Added Flems for Simple Application supporting v2.0.4 of Mithril.js. Fixes Issue #2710.

Make example work with webpack v5.69.1 (@StephanHoyer)

fixes #2634.

2604: correct and move text about statements in view method (@kevinfiol)

Addresses #2604.

Fix lint errors (@StephanHoyer)

WIP: Update modularisation details in Installation docs (@orbitbot)

added link to flems.io as an easier way to just try out the framework. -. Documentation has grown a bit stale.

Added power support for the travis.yml file with ppc64le (@sreekanth370)

Added power support for the travis.yml file with ppc64le. This is part of the Ubuntu distribution for ppc64le.

Updated babel/webpack docs to work with latest versions (@pereriksson)

As a developer I tried setting up Mithril with Babel and Webpack but failed because of a variety of errors.

[docs] route redirection using the history API (@pygy)

This is an attempt at fixing #1759, but there may be more to be added. Feedback welcome. ping @dontwork.

Bump path-parse from 1.0.6 to 1.0.7 (@dependabot[bot])

Bumps path-parse from 1.0.6 to 1.0.7. Commits. See full diff in compare view.

Bump glob-parent from 5.1.0 to 5.1.2 (@dependabot[bot])

Bumps glob-parent from 5.1.0 to 5.1.2. Release notes. Sourced from glob-parent's releases. v5.1.2. Bug Fixes.

Bump ajv from 6.10.2 to 6.12.6 (@dependabot[bot])

Bumps ajv from 6.10.2 to 6.12.6. Release notes. Sourced from ajv's releases. v6.12.6. Fix performance issue of "url" format.

Update standalone usage (@ghost)

Avoid double encoding of function signatures - fixes #2720 (@StephanHoyer)

Show previous versions (@mike-ward)

Add Dropdown that shows links to archived versions of the documentation.

docs: improve m.request return value description (@GAumala)

In the m.request return value description, add a line informing that error status codes cause the promise to reject.

A note on JSX events (@pereriksson)

Naming JSX events according to their documentation produces unexpected results with incorrectly named events when using JSX with Mithril.

Document route resolution cancellation, fixes #1759 (@barneycarroll)

Also fixes a broken internal link.

Bump marked from 0.7.0 to 4.0.10 (@dependabot[bot])

Bumps marked from 0.7.0 to 4.0.10. Release notes. Sourced from marked's releases. v4.0.10. 4.0.10 (2022-01-13). Bug Fixes.

Flems in docs (#2348) [skip ci] (@porsager)

Added flems instead of the current codepen samples.

Remove old TOC link (@ArthurClemens)

Content was moved some time ago and linked section no longer exists.

Cavemansspa patch 1 (@cavemansspa)

Documentation update.

Bump hosted-git-info from 2.8.4 to 2.8.9 (@dependabot[bot])

Bumps hosted-git-info from 2.8.4 to 2.8.9. Changelog. Sourced from hosted-git-info's changelog. 2.8.9 (2021-04-07).

Bump lodash from 4.17.20 to 4.17.21 (@dependabot[bot])

Bumps lodash from 4.17.20 to 4.17.21. Commits. f299b52 Bump to v4.17.21.

Bump handlebars from 4.7.6 to 4.7.7 (@dependabot[bot])

Bumps handlebars from 4.7.6 to 4.7.7. Changelog. Sourced from handlebars's changelog. v4.7.7 - February 15th, 2021.

Remove unreachable keyed node logic, fixes #2597 (@barneycarroll)

Delete test-utils/README.md (@dead-claudia)

We don't expose this publicly anymore, so there's literally no justification for this file's existence.

simple-application.md: consistent use of type=submit (@danbst)

When following tutorial and typing everything in, I was confused that Save button didn't work.

Fix inconsistent capitalizations of "JavaScript" (@mtsknn)

"Javascript"/"javascript" → "JavaScript". Fixes #2398, or at least I can't find any more incorrect capitalizations.

fix some typos (@osban)

Found some typos. Mainly unescaped | in tables, but also a few other irregularities. Not all problems are visible in the website docs.

Replace mocha by ospec in testing page (@gamtiq)

Fixed a typo in testing doc page. Currently there is reference to mocha in the page whereas opsec is used.

Bump acorn from 7.1.0 to 7.4.0 (@dependabot[bot])

Bumps acorn from 7.1.0 to 7.4.0. Commits. 54efb62 Mark version 7.4.0.

Bump handlebars from 4.4.2 to 4.7.6 (@dependabot[bot])

Bumps handlebars from 4.4.2 to 4.7.6. Changelog. Sourced from handlebars's changelog. v4.7.6 - April 3rd, 2020.

Bump lodash from 4.17.15 to 4.17.20 (@dependabot[bot])

Bumps lodash from 4.17.15 to 4.17.20. Commits. ded9bc6 Bump to v4.17.20. 63150ef Documentation fixes.

Bump minimist from 1.2.0 to 1.2.3 (@dependabot[bot])

Bumps minimist from 1.2.0 to 1.2.3. Commits. 6457d74 1.2.3. 38a4d1c even more aggressive checks for protocol pollution.

Update installation.md (@purefan)

Offer to install mithril as a webpack plugin. Just makes my life easier by not having to include mithril in every one of my js files.

replace slave label with replica (@stephanos)

One of the example is using the antiquated word "slave" for a database replica. I updated the language and tested the change.

ES6 and m.trust docs patch (@kczx3)

While reading through some of the documentation I saw some issues with both the ES6 and m.trust pages.

docs: Fix simple typo, subsequece -> subsequence (@timgates42)

There is a small typo in mithril.js, render/render.js. Should read subsequence rather than subsequece.

change link to go to ospec instead of mocha (@akessner)

Change the link to point to ospec docs in github. ospec link went to mochajs. issue 2575. N/A. N/A. N/A.

updated to the Vimeo showcase (@CreaturesInUnitards)

The scrimba version of Mithril 0-60 was built on their beta platform, and doesn't really even work anymore.

adding more community examples (@boazblake)

Exclude archive of previous docs (@cztomsik)

update .npmignore so that archives are not included in the resulting package. space/bandwidth savings. fix #2552.

Pimp the docs linter (and assorted changes) (@pygy)

Add an optional cache for faster runs. Add a final report. Don't return anything from exec(). Cover more files. Look for a "--cache" option.

Recast key docs to be much clearer and more accurate (@dead-claudia)

Recast key docs to be much clearer and more accurate, including a few Flems examples to help intuitively explain things.

Add m.censor, adjust m.route.Link to use it (@dead-claudia)

Add m.censor. Adjust m.route.Link to use it. Restructure a few things for better code reuse. Fixes #2472.

Update fetch() browser support in docs (@qgustavor)

As Can I use shows fetch() supported since Safari 10.1 and iOS Safari 10.3.

docs: Add release dates to all change-log files (@maranomynet)

I'd like to introduce release dates to the change log files. Release dates are human-friendly and add a bit of historical perspective to change-log files.