aurelia

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

MIT License

Downloads
233.6K
Stars
1.4K
Committers
70

Bot releases are hidden (Show)

aurelia - v2.0.0-beta.21 Latest Release

Published by bigopon 2 months ago

2.0.0-beta.21 (2024-08-08)

Features:

  • ast: support increment/decrement assign by @fkleuver (#2004) (4cfc0a3)

Bug Fixes:

  • state: ensure all actions queued are called by @bigopon (#2023) (062f398)
  • binding: handle glitch by @bigopon (#2020) (0f3dbee)
  • router: fix missing filter part for available endpoints by @jwx (#2013) (af7c252)
  • router-lite: element injection for routed view-model by @Sayan751 (#2012) (b1508fb)
  • types: bindable definitions by @Sayan751 (#2010) (d81b471)
  • task-queue: fix timing issue by @fkleuver (#2007) (6777dba)
  • router-lite: location URL with no history and fragment routing by @Sayan751 (#2005) (8a84b09)
  • vite-plugin: fix vitest Windows issue with html file by @3cp (#2006) (27ec4dd)

Refactorings:

  • task-queue: remove 'reusable' param by @fkleuver (#2008) (54f43e8)

Full Changelog: https://github.com/aurelia/aurelia/compare/v2.0.0-beta.20...v2.0.0-beta.21

aurelia - v2.0.0-beta.20

Published by bigopon 3 months ago

2.0.0-beta.20 (2024-07-07)

BREAKING CHANGES:

  • router-lite: can* hook semantics by @Sayan751 (#2002) (ac5359f)
    canLoad/canUnload hooks now only treat false as false.
    Previously canLoad and canUnload only consider true as can do, which means if a routing component has either the hook canLoad/canUnload,
    those hooks must return true to load/unload. This is not consistent with the rest of the framework, and generally will be easier to miss during refactoring.
  • router: navigation coordinator refactor by @jwx (#1997) (1b97340)
    canLoad/canUnload hooks now only treat false as false.
    Move responsibilities and recursive code from routing scope to iterative code in navigation coordinator.
    Refresh, browser back and forward now behave the same way deep links do: if a viewport with a default component/route has been emptied/cleared the mentioned browser actions will now load the default (instead of keeping the viewport empty).
  • tooling: bindable inheritance (bb1fe26)
    When generating code for .html file with convention, bindables export will be a record, instead of an array.
    Applications migrating from beta.15-beta.19 will need to change the types for .html modules in resource.d.ts like the following example:
    ...
    export const bindables: Record<string, Partial<BindableDefinition>>
    ...
    
    or if it doesn't matter to your applications, simply having
    ...
    export const bindables: Record<string, any>
    ...
    
    will also work.
  • metadata: metadata is defined on the immediate target class, instead of the first available metadata source (i.e inherited from parent) by @Sayan751 (#1992) (bb1fe26)

Bug Fixes:

  • router-lite: external attribute for href by @Sayan751 (#2000) (f062ba0)

Refactorings:

  • validation: state rule using record to declare messages by @Sayan751 (9df93e0)
aurelia - v2.0.0-beta.19

Published by bigopon 4 months ago

What's Changed

Features:

Bug fixes:

Refactorings:

Docs:

Chores:

Full Changelog: https://github.com/aurelia/aurelia/compare/v2.0.0-beta.18...v2.0.0-beta.19

aurelia - v2.0.0-beta.18

Published by bigopon 5 months ago

What's Changed

BREAKING CHANGES:

  • refactor(dom-queue): merge dom read and write queue by @bigopon in https://github.com/aurelia/aurelia/pull/1970

    when first started, we went overboard with optimization & many other trends, which resulted in a cumbersome dom queue system. Simplifying them to reduce the number of APIs as well as potential issues.

Features:

Bug Fixes:

Refactoring:

Docs:

Full Changelog: https://github.com/aurelia/aurelia/compare/v2.0.0-beta.17...v2.0.0-beta.18

aurelia - v2.0.0-beta.17

Published by bigopon 5 months ago

What's Changed

BREAKING CHANGES:

  • template: auto infer binding expression when empty by @bigopon in https://github.com/aurelia/aurelia/pull/1963

    Previously only the expression of binding to element bindables get auto inferred, now it's expanded to all bindings
    with .bind/.to-view/.from-view/.two-way/.one-time
    Examples:

    <div some-prop.bind=""> means <div some-prop.bind="someProp">
    <div some-prop.bind> means <div some-prop.bind="someProp">
    <div some-prop.one-time> means <div some-prop.one-time="someProp">
    ...
    
  • convention: rewrite runtime-html decorators by @Sayan751 in https://github.com/aurelia/aurelia/pull/1960

    With tooling in the instable state for the tc39 decorator support, we will generate standard fn call code instead of decorator.
    This will likely be changed when browsers start officially supporting it, or at least when the tooling (both spec & tooling stability + compat) gets better

Features:

Bug fixes:

Refactoring:

Full Changelog: https://github.com/aurelia/aurelia/compare/v2.0.0-beta.16...v2.0.0-beta.17

aurelia - v2.0.0-beta.16

Published by bigopon 6 months ago

What's Changed

Bug fixes:

Refactorings:

Docs:

Chores:

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

aurelia - v2.0.0-beta.15

Published by bigopon 6 months 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.
aurelia - v2.0.0-beta.14

Published by bigopon 7 months 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

aurelia - v2.0.0-beta.13

Published by bigopon 7 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

aurelia - v2.0.0-beta.12

Published by bigopon 8 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

aurelia - v2.0.0-beta.11

Published by bigopon 8 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

aurelia - v2.0.0-beta.10

Published by bigopon 9 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

aurelia - v2.0.0-beta.9

Published by bigopon 10 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
aurelia - v2.0.0-beta.8

Published by bigopon about 1 year 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)
aurelia - v2.0.0-beta.7

Published by Sayan751 over 1 year 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)
aurelia - v2.0.0-beta.6

Published by bigopon over 1 year 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.
aurelia - v2.0.0-beta.5

Published by bigopon over 1 year ago

What's Changed

2.0.0-beta.5 (2023-04-27)

Features:

  • observer-locator: ability to create getter based observer (#1750) (ba40b2d)
  • effect: add watch (ba40b2d)
  • di: property injection with resolve (#1748) (a22826a)
  • aurelia: ability to inject with Aurelia export beside IAurelia (a22826a)

Bug Fixes:

  • plugin-conventions: ensure esm cjs compat (#1751) (f808503)
  • compat-v1: dont use both writable and getter/setter (b58f967)

Refactorings:

  • build: preserve pure annotation for better tree shaking (#1745) (0bc5cd6)
  • router-lite: alias registrations (#1741) (f5e7140)

Full Changelog: https://github.com/aurelia/aurelia/compare/v2.0.0-beta.4...v2.0.0-beta.5

aurelia - v2.0.0-beta.4

Published by bigopon over 1 year ago

What's Changed

2.0.0-beta.4 (2023-04-13)

Features:

  • debounce-throttle: flush via signals (#1739) (af238a9)
  • slotted: add slotted decorator, slotchange bindable for au-slot (#1735) (8cf87af)
  • router-lite: extended support for ../ prefix, activeClass router configuration (#1733) (bd18fde)
  • router-lite: non-string support for fallback (#1730) (59da952)
  • vite-plugin: add vite plugin (#1726) (564e533)
  • router-lite: ce aliases as configured route (#1723) (2b7f9fc)
  • router-lite: transitionplan as nav opt (7905d98)

Bug Fixes:

  • repeat: fix mismatchedLengthError on assigning an array with duplicate primitive values (#1737) (cf60ac8)
  • vite-plugin: optionally resolve alias, add preliminary doc (#1731) (3f37f8d)
  • select: insensitive multiple.bind order (#1727) (c8d912f)
  • ci: fix vite build in ci, upgrade chromedriver (564e533)
  • proxy-observation: prevent proxies from being wrapped in proxies again (#1716) (7792e9c)

Refactorings:

  • children: remove children observers from custom element def, make children deco as a hook (#1732) (5bde983)
  • all: ignore dev message coverage (5bde983)
  • router-lite: routable fallback (59da952)
  • platform: remove unnecessary properties on PLATFORM (#1722) (7cd77ad)
  • router-lite: route definition configuration (eba6d61)
aurelia - v2.0.0-beta.3

Published by bigopon over 1 year ago

What's Changed

BREAKING CHANGES

  • compose: rename props and add compat layer (#1699) (2e7ce43)
  • controller: remove lifecycle flags (#1707) (a31cd75)
  • state: action to be comes a single value (#1709) (6b598d6)

Features:

  • proxy: add nowrap decorator (#1708) (6edddab)
  • style: add warning messages when binding number to ambiguous properties (#1702) (0937b63)
  • router-lite: function for fallback (3bfb1ce)

Bug Fixes:

  • doc: Update navigating.md (#1706) (6b02bc4)
  • router-lite: removed pre-mature optimization (c951f0c)
  • css-modules: class command css module (#1690) (b6606d4)
  • au-slot: register the right view model instance for injection (#1685) (b42d52f)

Refactorings:

  • i18n: do not wrap i18next with proxy (6edddab)
  • ci: remove e2e safari from pipeline (a31cd75)
  • tests: disable hook tests (a31cd75)
  • build: use turbo to boost build speed (#1692) (d99b136)

Full Changelog: https://github.com/aurelia/aurelia/compare/v2.0.0-beta.2...v2.0.0-beta.3

aurelia - v2.0.0-beta.2

Published by Sayan751 over 1 year ago

Features:

  • router-lite: useNavigationModel (542d564)
  • compat: add binding engine (#1679) (a6dd0de)
  • router-lite: async getRouteConfig (da650fb)
  • add vite plugin (#1651) (5f3a88d)

Bug Fixes:

  • dom: broken in safari16 (#1680) (62321a7)
  • templating: ensure fragment always have proper owner document (62321a7)
  • router-lite: nav model isActive for parameterized route (91cc2cc)
  • docs: fix enhance example code (8bbf6f2)
  • router-lite: location URL generation with redirectTo (39ec38f)
  • router-lite: history state navigation (40d7440)
  • router-lite: lifecycle hooks were invoked twice (#1664) (5aeaa54)
  • ast: correctly resolves access keyed on primitve (#1662) (0eae2ce)
  • router-lite: routeTree adjustment - canUnload (3c9ee4b)
  • router-lite: redirectTo parameter remapping (9687178)
  • router-lite: parameterized redirectTo (591f89c)
  • router-lite: redirectTo URL adjustment (37f1dfc)
  • hmr: no invalidate on parcel (#1647) (843ca70)
  • router-lite: fragment to URL (#1645) (4f29e66)
  • router-lite: queryParams and fragment propagation from nav option (#1643) (8ad1c52)
  • router-lite: various overloads for the load method (#1642) (fad763e)
  • router-lite: null binding for default attribute of viewport (e1a49f1)
  • router-lite: handling hash in load, href CAs (8489a10)

Refactorings:

  • router-lite: redirectTo in nav model (cc0f71b)
  • router-lite: instance registration of RouterOptions in DI (5993a8b)
  • router-lite: transition plan (186da90)
  • router-lite: removed SameUrlStrategy (54efabf)

Deprecated:

The @aurelia/store-v1 package is deprecated in favor of @aurelia/state. There will be no further development for this package and this is planned to be removed in the v2.0.0-beta.3 release. Note that this does not affect the Aurelia v1 in any way (the Aurelia v1 plugin can be found at https://github.com/aurelia/store).