Aurelia Versions Save

Aurelia 2, a standards-based, front-end framework designed for high-performing, ambitious applications.

v2.0.0-beta.15

4 weeks ago

What's Changed

BREAKING CHANGES:

Features:

Bug fixes:

Full Changelog: https://github.com/aurelia/aurelia/compare/v2.0.0-beta.14...v2.0.0-beta.15

Decorator migration guide

For the Aurelia 2 codebase, the usage of experimental decorators is turned off in https://github.com/aurelia/aurelia/pull/1932, and all the decorators are migrated to the TC39 decorators. This means when you update your Aurelia2 dependencies to v2.0.0-beta.15 or higher, you need to do the following.

  • Ensure that you are using the latest TypeScript version, if you are a TypeScript user.
  • Remove the following 2 properties from the effective tsconfig.json: "emitDecoratorMetadata": true and "experimentalDecorators": true. This activates the native/TC39 decorator.
  • Ensure that the target property is set to something lower than esnext. If this is set to esnext, then TypeScript assumes reasonably that the target runtime supports decorators natively, and hence does not transpile those.
  • The decorator proposal does not support parameter decorators (yet). Hence, the following code won't work any longer.
    class MyClass {
      public constructor(
        @IBar private readonly bar: IBar,
        @IFoo foo: IFoo,
      ) {}
    }
    
    Instead, use the resolve function.
    import { resolve } from 'aurelia'; // also can be exported from `@aurelia/kernel`.
    class MyClass {
      private readonly bar: IBar = resolve(IBar);
      public constructor(
        // alternative#1
        foo: IFoo = resolve(IFoo)
      ) {
        // alternative#2
        const foo: IFoo = resolve(IFoo)
      }
    }
    
  • If you are a TypeScript user, and were already using bindable coercers, it might not work after the update. Previously, this feature depended on the emission of design time type metadata. However, TypeScript does not emit this metadata any more with the standardized decorators (yet). Refer https://github.com/microsoft/TypeScript/issues/55788 and https://github.com/microsoft/TypeScript/issues/57533 for more information. For now, you can explicitly specify the type when declaring bindables.
  • If you are using only Aurelia decorators in your code, it should be fine if the aforementioned changes are performed. In case you have developed your own decorators, then you need to migrate those by yourself. Here are a couple of resources that can be helpful:
  • If you are using the Aurelia2 convention plugin, in most case it should work as it supposed to. In case it does not, please inform us.
  • If you are not using TypeScript and were already using decorators somehow, consult your transpiler tool docs on how to use the new standard/native decorators.

v2.0.0-beta.14

1 month ago

What's Changed

Features:

Refactoring:

Bug fixes:

Full Changelog: https://github.com/aurelia/aurelia/compare/v2.0.0-beta.13...v2.0.0-beta.14

v2.0.0-beta.13

2 months ago

What's Changed

BREAKING CHANGES:

Features:

Refactoring:

Docs:

Full Changelog: https://github.com/aurelia/aurelia/compare/v2.0.0-beta.12...v2.0.0-beta.13

v2.0.0-beta.12

2 months ago

What's Changed

BREAKING CHANGES:

Features:

Bug fixes:

Refactoring:

Docs:

Full Changelog: https://github.com/aurelia/aurelia/compare/v2.0.0-beta.11...v2.0.0-beta.12

v2.0.0-beta.11

3 months ago

What's Changed

BREAKING CHANGES

Features

Full Changelog: https://github.com/aurelia/aurelia/compare/v2.0.0-beta.10...v2.0.0-beta.11

v2.0.0-beta.10

3 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/aurelia/aurelia/compare/v2.0.0-beta.9...v2.0.0-beta.10

v2.0.0-beta.9

5 months ago

Features:

  • vite plugin: allow all the options to be passed for the plugin (#1830) (3d87341)
  • template: support popover apis (#1851) (f4b552b)

Bug Fixes:

  • build: fix generative native modules, examples (#1854) (9a7cc65)
  • au-slot: ensure work with shadow dom (#1841) (c750d4f)
  • repeater: duplicate primitive handling, batched mutation fix (#1840) (703d275)
  • repeat: fix sort+splice batched operation bug (703d275)
  • validation: property accessor ignore instrumenter (342847f)
  • validation: allowed rules.off on object w/o rules (342847f)
  • i18n: translating camelCased bindables (#1838) (ff761fb)
  • router-lite: invoke-lifecycles transition plan (#1821) (8e961af)
  • router-lite: transition plan selection (#1817) (d214fdc)
  • router-lite: excluded redirectTo from nav-model (#1816) (085a491)
  • dialog: use startingZIndex (#1809) (de79aea)

Refactorings:

  • runtime-html: if TC (#1833) (7192e74)
  • templating: remove strict binding option from CE (#1807) (7b4455f)
  • tests: move all under src folder (7b4455f)
  • docs: various improvements

v2.0.0-beta.8

9 months ago

2.0.0-beta.8 (2023-07-24)

Features:

  • compose: passthrough bindings + support containerless (#1792) (e8e39a9)
  • template: access global (#1790) (2486b58)

Bug Fixes:

  • router-lite: handling slash in parameter value (#1805) (3fbb698)
  • au-slot: correctly prepare resources for slotted view (#1802) (bf1ca4c)
  • router-lite: e2e build (a1ca36d)

Refactorings:

  • ref: deprecate view-model.ref and introduce component.ref (#1803) (97e8dad)
  • text-binding: always evaluate expressions in strict mode (#1801) (15acfee)
  • router-lite: query in fragment when using useUrlFragmentHash option (#1794) (a1ca36d)
  • bindable: bindable property -> name (#1783) (ca0eda7)
  • router-lite: optimize object creation (#1782) (c1ef0a3)

v2.0.0-beta.7

10 months ago

Features:

  • router-lite: error recovery (99a6191)
  • build: add a development entry point (#1770) (69ff445)

Bug Fixes:

  • router-lite: hash compatibility with v1 (#1779) (9302db5)
  • router-lite: URL generation in child component (#1778) (fd4de06)
  • resolver: mark private as internal (07689bf)
  • router-lite: viewport name match for contains check in RouteNode (99a6191)
  • router-lite: error recovery from child's hook (99a6191)
  • plugin-conventions: fill up explicit .js/.ts dep filename in html module (#1752) (17af0c8)

Refactorings:

  • runtime: cleanup, extract error to const enums (#1775) (07689bf)
  • router-lite: residue handling (99a6191)
  • router-lite: error handling (99a6191)
  • router-lite: optimize for bundle size (99a6191)
  • compiler: use comment to mark target (#1774) (e37802c)
  • runtime-html: cleanup errors, remove unused code. (#1771) (750210d)

v2.0.0-beta.6

11 months ago

BREAKING CHANGE:

  • compiler: avoid using au class to find targets (#1768) (0d30998).
  • kernel: rename resolveAll -> onResolveAll (#1764) (fdf0747)

Features:

  • di: ability to use newInstance()/forScope() with interface (#1767) (a0d39e9)
  • all: allow injection of implementation (#1766) (a60db13)
  • templating: allow deactivate when activating (#1729) (1c9c97c)
  • bindable: support getter/setter (#1753) (4279851)
  • ui-virtualization: enhance implementation & publish package (#1759) (7a2f17f). Thanks @Lakerfield

Refactorings:

  • all: cleanup up unused code & decouple interface from default impl (#1761) (7a71d43)
  • router: add warning for unsupported behavior (#1757) (ce87339). The router used to allow container traversal to find resources when a string is used as a route to find the corresponding component. Going forward this will be invalid and elements must be registered either locally or globally to be routable. A warning is added so apps that accidentally used this behavior can detect the invalid usages and fix accordingly first. This behavior will be removed in a near future release.