We've had a huge set of releases this week, including everything from bug fixes, to performance improvements, new features and fundamentals work that prepares the way for what's next. The full details are below...

Have you ever wished that you could make an HTML, CSS or JavaScript code change in your editor and then just see your application instantly update in the browser without refreshing or losing state? Well, that's what our new hot module reload enables. We've got a preliminary version of this up and running and integrated into our forthcoming Webpack update. It enables editing Views, ViewModels, related components (such as ValueConverters and BindingBehaviors) and CSS without reloading the full website. Huge thanks to Aurelia Core Team member Bazyli Brzóska for working on this!

Aurelia has a thin Platform Abstraction Layer (PAL). This enables us to run the framework in different environments. Our first PAL release was aurelia-pal-browser , used to run Aurelia in the browser. Our second PAL release was aurelia-pal-nodejs which enables Aurelia to run fully in NodeJS, a core requirement for server-side rendering, pure Node.js testing and various tooling scenarios. Today, we have our third PAL implementation release, aurelia-pal-worker , which enables various aspects of Aurelia to run inside of a web worker.

Major Changes

Major updates may include breaking changes, new features, fixes to bugs and performance improvements. As part of our major changes, we're moving aurelia-pal-nodejs into beta. We think it's pretty solid and we've been testing it out by building our view lint tooling and server-side rendering on top of it.

Also, we're releasing aurelia-bootstrapper 2.0.0. This is a core module that almost everyone is using. But don't be worried by the major update. There aren't breaking changes. However, we did significant work on the internals and felt that, while the public API had not changed, it was appropriate to bump the version. This new version of aurelia-bootstrapper can now autodetect what PAL (browser, worker, nodejs), what loader (require.js, dojo, system.js, webpack), configure the appropriate modules and start your app. There's no more need to have different bootstrappers or separate configuration anymore.

Both of these major changes are designed to improve developer experience but also prepare the way for server-side rendering, new development tooling and improved webpack support.

Bug Fixes

index: do not fail when process is polyfilled by Webpack ( 7ba0654 )

do not fail when process is polyfilled by Webpack ( 7ba0654 ) index: do not trip up on NodeJS if PAL was previously initialized ( c70321d )

do not trip up on NodeJS if PAL was previously initialized ( c70321d ) index: higher quality checks for SystemJS and AMD ( 71a91f2 )

higher quality checks for SystemJS and AMD ( 71a91f2 ) index: ready when no document (not initialized on NodeJS) ( 44b0e55 )

ready when no document (not initialized on NodeJS) ( 44b0e55 ) index: use module.require for node to trip up webpack's parser ( 46830fa )

use module.require for node to trip up webpack's parser ( 46830fa ) index: use webpack require to hide from amd ( cdaa0f2 )

Features

all: rework the bootstrapper to detect and load the proper pal ( 8ba596b )

rework the bootstrapper to detect and load the proper pal ( 8ba596b ) index: add starting promise export ( 1844827 )

add starting promise export ( 1844827 ) index: add support for module loader detection ( 438ffde )

Bug Fixes

build: correct spec require fix ( de0dca4 )

correct spec require fix ( de0dca4 ) index: alias console.debug to console.log ( 6eae254 )

alias console.debug to console.log ( 6eae254 ) index: use proper objects for globalization ( 06ad303 )

use proper objects for globalization ( 06ad303 ) jsdom-whole-text: polyfill actual Text class too ( bb2c0f8 )

polyfill actual Text class too ( bb2c0f8 ) jsdom-whole-text: use hasOwnProperty ( bf02c14 )

use hasOwnProperty ( bf02c14 ) nodejs-dom: fallback to a dummy class for SVGElement ( e406710 )

fallback to a dummy class for SVGElement ( e406710 ) nodejs-global: add the missing globals ( 1f6e596 )

add the missing globals ( 1f6e596 ) nodejs-global: remove XMLHttpRequest ( d20ffb0 )

remove XMLHttpRequest ( d20ffb0 ) typings: updated types breaking the build ( e797969 )

updated types breaking the build ( e797969 ) whole-text: do not polyfill if implemented ( d497559 )

Features

index: globalize returns global scope ( b1b001d )

globalize returns global scope ( b1b001d ) index: move isInitialized to aurelia-pal ( b7ce21a )

move isInitialized to aurelia-pal ( b7ce21a ) nodejs-global: add exported globalize function ( 55c2ffd )

add exported globalize function ( 55c2ffd ) whole-text: add @jdanyow 's wholeText jsdom polyfill ( a414eb7 )

aurelia-pal-worker 0.1.0

Features