Détail du package

@aurelia/kernel

aurelia12.1kMIT2.0.0-beta.24

License: MIT TypeScript [![CircleCI](https://circleci.com/

aurelia, kernel

readme

Aurelia

License: MIT npm version CircleCI TypeScript Twitter

Backers on Open Collective Sponsors on Open Collective Discord Chat

Aurelia 2

This is the Aurelia 2 monorepo, containing core and plugin packages, examples, benchmarks, and documentation for the upcoming major version of everybody's favorite modern JavaScript framework, Aurelia.

Introduction

Aurelia is a modern, front-end JavaScript framework for building browser, mobile, and desktop applications. It focuses on aligning closely with web platform specifications, using convention over configuration, and having minimal framework intrusion. Basically, we want you to just write your code without the framework getting in your way. :wink:

Aurelia applications are built by composing a series of simple components. By convention, components are made up of a vanilla JavaScript or Typescript class, with a corresponding HTML template.

//app.js
export class App {
  welcome = "Welcome to Aurelia";

  quests = [
    "To seek the holy grail",
    "To take the ring to Mordor",
    "To rescue princess Leia"
  ];
}
<!-- app.html -->
<form>
  <label>
    <span>What is your name?</span>
    <input value.bind="name & debounce:500">
  </label>

  <label>
    <span>What is your quest?</span>
    <select value.bind="quest">
      <option></option>
      <option repeat.for="q of quests">${q}</option>
    </select>
  </label>
</form>

<p if.bind="name">${welcome}, ${name}!</p>
<p if.bind="quest">Now set forth ${quest.toLowerCase()}!</p>

This example shows you some of the powerful features of the aurelia binding syntax. To learn further, please see our documentation.

Feeling excited? Check out how to use makes to get started in the next section.

Note: Please keep in mind that Aurelia 2 is still in beta. A number of features and use cases around the public API are still untested and there will be a few more breaking changes.

Getting Started

First, ensure that you have Node.js v8.9.0 or above installed on your system. Next, using npx, a tool distributed as part of Node.js, we'll create a new Aurelia 2 app. At a command prompt, run the following command:

npx makes aurelia

This will cause npx to download the makes scaffolding tool, along with the aurelia generator, which it will use to guide you through the setup process. Once complete, you'll have a new Aurelia 2 project ready to run. For more information on Aurelia's use of makes, see here. If you aren't interested in taking our preferred approach to generating a project, you can also see the examples folder in this repo for pure JIT setups (no conventions) with various loaders and bundlers.

Documentation

You can read the documentation on Aurelia 2 here. Our new docs are currently a work-in-progress, so the most complete documentation is available in our getting started section. If you've never used Aurelia before, you'll want to begin with our Quick Start Guide.

Contributing

If you are interested in contributing to Aurelia, please see our contributor documentation for more information. You'll learn how to build the code and run tests, how best to engage in our social channels, how to submit PRs, and even how to contribute to our documentation. We welcome you and thank you in advance for joining with us in this endeavor.

Staying Up-to-Date

To keep up to date on Aurelia, please visit and subscribe to the official blog and our email list. We also invite you to follow us on twitter. If you have questions, have a look around our Discourse forum. For chat on Aurelia 2, join our new Aurelia 2 community on Discord. If you'd like to join the growing list of Aurelia sponsors, please back us on Open Collective.

License

Aurelia is MIT licensed. You can find out more and read the license document here.

changelog

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

2.0.0-beta.24 (2025-04-27)

Bug Fixes:

  • test: dialog service test updated to reflect new error message (4eb7805)

Refactorings:

  • packages: only link to docs for errors in dev mode (4eb7805)

2.0.0-beta.23 (2025-01-26)

Features:

  • tooling: type-checking for templates - Phase1 (#2066) (ebc1d0c)

2.0.0-beta.22 (2024-09-30)

Note: Version bump only for package @aurelia/kernel

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

Bug Fixes:

  • state: ensure all actions queued are called (#2023) (062f398)

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

Note: Version bump only for package @aurelia/kernel

2.0.0-beta.19 (2024-06-12)

Features:

  • di: ability to deregister key (#1981) (8eb5c36)
  • dialog: ability to animate using animator instead of lifecycles (#1986) (a2477e5)

Refactorings:

  • projection: use $all instead of * to include all node types (#1987) (337cb34)

2.0.0-beta.18 (2024-05-23)

Features:

  • kernel: add last resolver (#1976) (c47817c)

Bug Fixes:

  • di: use official metadata instead of weakmap (#1977) (9aeeffa)
  • dev: turbo package input + ts dev script (253e92a)

Refactorings:

  • collection: define map & set overrides on the instance instead of prototype (#1975) (253e92a)
  • runtime: reoganise utils import (253e92a)
  • *: extract error codes and cleanup (#1974) (63ffdc9)

2.0.0-beta.17 (2024-05-11)

Refactorings:

  • kernel: mark side effect free (#1964) (22c8f71)

2.0.0-beta.16 (2024-05-03)

Refactorings:

  • rendering: correctly handle compilation cache (#1955) (c11491b)
  • *: extract template compiler into own package (#1954) (ad7ae1e)
  • *: cleanup deco code (#1947) (ca22bc8)
  • observers: use static blocks, group related code (ca22bc8)

2.0.0-beta.15 (2024-04-17)

Features:

  • resources: support static $au property for definition (#1939) (877a385)

Bug Fixes:

  • *: residual decorator work (#1942) (7e8c12f)

Refactorings:

  • *: migration to TC39 decorators + metadata simplification (#1932) (22f90ad)

2.0.0-beta.14 (2024-04-03)

Features:

  • i18n: support multiple versions of i18next (#1927) (0789ee5)

Refactorings:

  • attr: treat empty string as no binding (#1930) (8fc5275)

2.0.0-beta.13 (2024-03-15)

Features:

  • template-controller: ability to have a container per factory (#1924) (6727b56)
  • convention: add import as support (#1920) (7a15551)
  • di: api to register resources with alias key (7a15551)
  • dev: better DI error messages for instantiation (#1917) (2fca6ea)

Bug Fixes:

  • router: dont swallow instantiation error details (deee8e6)
  • *: cleanup di & router tests, add timeout (deee8e6)
  • *: router errors stringify (deee8e6)
  • *: deepscan issues (deee8e6)
  • *: element get own metadata call (dc22fb7)
  • di: cache factory on singleton resolution (dc22fb7)

Refactorings:

  • *: smaller di files, assert text options, more au slot tests (deee8e6)
  • runtime: move ctor reg into controller (7a15551)
  • resource: cleanup registration, APIs (#1918) (dc22fb7)
  • *: cleanup util fn (dc22fb7)
  • resources: move find to corresponding resource kind (dc22fb7)
  • di: add registrable, remove unecessary infra for attr pattern (dc22fb7)
  • resources: use registrable (dc22fb7)
  • di: dont search for resources when register (dc22fb7)
  • resource: remove resource protocol, simplify resource metadata (dc22fb7)
  • resources: add get for vc & bb resource kinds (dc22fb7)
  • resource: binding command resolution (dc22fb7)

2.0.0-beta.12 (2024-03-02)

Features:

  • enhance: call app tasks with .enhance API (#1916) (4d522b2)

Bug Fixes:

  • di: dont jit register resources [skip ci] (8ffde34)
  • di: new instance resolver (#1909) (efe208c)
  • *: tweak typings of injectable token (89f76eb)
  • *: use ?? instead of || (89f76eb)
  • *: typings for injectable token (89f76eb)
  • *: injectable token resolver (89f76eb)

Refactorings:

  • *: cleanup (#1912) (8ffde34)
  • *: cleanup (#1908) (89f76eb)
  • router: use resolve (89f76eb)
  • *: better type inferrence for injectable token (89f76eb)
  • *: simplify container has, cleanup router (89f76eb)

2.0.0-beta.11 (2024-02-13)

Features:

  • state: support redux devtools for the state plugin (#1888) (bd07160)

Bug Fixes:

  • *: upgrade rollup, tweak build scripts (bd07160)

2.0.0-beta.10 (2024-01-26)

Bug Fixes:

  • au-slot: properly handle nested projection registration (#1881) (00e8dee)
  • kernel: stack preserving error logging for console (#1884) (030bfa1)

Refactorings:

  • enums: string literal types in favour of const enums (#1870) (e21e0c9)

2.0.0-beta.9 (2023-12-12)

Note: Version bump only for package @aurelia/kernel

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

Features:

  • template: access global (#1790) (2486b58)

Bug Fixes:

  • au-slot: correctly prepare resources for slotted view (#1802) (bf1ca4c)

Refactorings:

  • ref: deprecate view-model.ref and introduce component.ref (#1803) (97e8dad)

2.0.0-beta.7 (2023-06-16)

Features:

  • build: add a development entry point (#1770) (69ff445)

Bug Fixes:

  • resolver: mark private as internal (07689bf)

Refactorings:

  • runtime: cleanup, extract error to const enums (#1775) (07689bf)
  • runtime-html: cleanup errors, remove unused code. (#1771) (750210d)

2.0.0-beta.6 (2023-05-21)

Features:

  • di: ability to use newInstance()/forScope() with interface (#1767) (a0d39e9)
  • bindable: support getter/setter (#1753) (4279851)

Refactorings:

  • *: rename resolveAll -> onResolveAll (#1764) (fdf0747)
  • *: cleanup up unused code & decouple interface from default impl (#1761) (7a71d43)

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

Features:

  • di: property injection with resolve (#1748) (a22826a)
  • aurelia: ability to inject with Aurelia export beside IAurelia (a22826a)

Refactorings:

  • build: preserve pure annotation for better tree shaking (#1745) (0bc5cd6)

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

Note: Version bump only for package @aurelia/kernel

2.0.0-beta.3 (2023-03-24)

Refactorings:

  • build: use turbo to boost build speed (#1692) (d99b136)

2.0.0-beta.2 (2023-02-26)

Bug Fixes:

  • router-lite: lifecycle hooks were invoked twice (#1664) (5aeaa54)
  • router-lite: lifecycle hooks were invoked twice (5aeaa54)

2.0.0-beta.1 (2023-01-12)

Refactorings:

  • runtime: cleanup & size opt, rename binding methods (#1582) (2000e3b)
  • all: error msg code & better bundle size (d81ec6d)

2.0.0-alpha.41 (2022-09-22)

Features:

  • collection-observation: add ability to batch mutation into a single indexmap (39b3f82)

Refactorings:

  • *: cleanup unnecessary exports in kernel (045d80d)
  • *: cleanup di (b299e7b)

2.0.0-alpha.40 (2022-09-07)

Refactorings:

  • kernel: avoid analyzing non-object module (#1538) (cdfcd39)

2.0.0-alpha.39 (2022-09-01)

Bug Fixes:

  • e2e: better e2e test scripts (855a03f)
  • build: remove reference directive, use files in tsconfig instead (855a03f)
  • typings: make ListenerOptions public (855a03f)

2.0.0-alpha.38 (2022-08-17)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.37 (2022-08-03)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.36 (2022-07-25)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.35 (2022-06-08)

Features:

  • ts-jest,babel-jest: upgrade to jest v28 (#1449) (b1ec85c)

2.0.0-alpha.34 (2022-06-03)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.33 (2022-05-26)

Features:

  • lifecycle-hooks: call hydrated lch (75650c5)
  • lifecycle-hooks: call hydrating lch (737d9ed)

2.0.0-alpha.32 (2022-05-22)

Features:

  • state: add state binding behavior (b05a0fb)
  • state: observe view model properties in state bindings (b05a0fb)
  • *: prevent store dispatch on unreged action (b05a0fb)

Bug Fixes:

  • *: avoid conflict in binding props (b05a0fb)
  • *: settable properties in binding interceptor (b05a0fb)
  • *: binding behavior base (b05a0fb)
  • *: state export names (b05a0fb)
  • kernel: alter copypasted comments (#1423) (44df8c6)

Refactorings:

  • *: disable scope traversal in state binding, group interfaces (b05a0fb)
  • state: rename default configuration export (b05a0fb)
  • state: enforce .dispatch return shape (b05a0fb)
  • state: allow reducers to handle more than 1 action type (b05a0fb)
  • state: distinction of action / reducer (b05a0fb)

2.0.0-alpha.31 (2022-05-15)

Refactorings:

  • *: cleanup unused flags (c4ce901)
  • *: add code to DEV err msg, unify error message quote (b4909fb)

2.0.0-alpha.30 (2022-05-07)

Features:

  • events: expr as listener handler (#1411) (ff6ebb8)
  • testing: automatically hook fixture create promise / tear down (ff6ebb8)
  • testing: enhance createFixture helper props (ff6ebb8)

Refactorings:

  • runtime-html: remove .js from im/export, add type to barrel (973ae46)
  • runtime: remove .js from im/export, add type to barrel (973ae46)
  • kernel: remove .js from im/ex, add type to barrel (973ae46)
  • testing: remove .js from im/ex, add type to barrel (973ae46)
  • store-v1: remove .js from im/ex, add type to barrel (973ae46)
  • validation: remove .js from im/ex, add type to barrel (973ae46)
  • validation-html: remove .js from im/ex, add type to barrel (973ae46)
  • validation-i18n: remove .js from im/ex, add type to barrel (973ae46)
  • router-lite: remove .js from im/ex, add type to barrel (973ae46)
  • router: remove .js from im/ex, add type to barrel (973ae46)
  • i18n: remove .js from im/ex, add type to barrel (973ae46)
  • fetch-client: remove .js from im/ex, add type to barrel (973ae46)
  • tests: correct import origins (973ae46)
  • all: remove imports from re-barrel (973ae46)
  • all: remove imports of re-barrel (973ae46)
  • all: remove imports of re-barrel (973ae46)
  • all: remove imports of re-barrel (973ae46)

2.0.0-alpha.29 (2022-04-27)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.28 (2022-04-16)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.27 (2022-04-08)

Bug Fixes:

  • build: ensure correct DEV build value replacement (#1377) (40ce0e3)

Refactorings:

  • all: removing unnecessary assertions & lintings (#1371) (05cec15)

2.0.0-alpha.26 (2022-03-13)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.25 (2022-03-08)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.24 (2022-01-18)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.23 (2021-11-22)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.22 (2021-10-24)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.21 (2021-09-12)

Refactorings:

  • kernel: use isType utilities for fn & string (009562b)

2.0.0-alpha.20 (2021-09-04)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.19 (2021-08-29)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.18 (2021-08-22)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.17 (2021-08-16)

Bug Fixes:

Refactorings:

  • di: resolver disposal (7c50556)
  • di: deregisterResolver API (46737b9)

2.0.0-alpha.16 (2021-08-07)

Refactorings:

  • all: use a terser name cache for predictable prop mangling (7649ced)

2.0.0-alpha.15 (2021-08-01)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.14 (2021-07-25)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.13 (2021-07-19)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.12 (2021-07-11)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.11 (2021-07-11)

Bug Fixes:

  • call-binding: assign args to event property, fixes #1231 (fa4c0d4)

Performance Improvements:

  • rendering: use definition for attrs & els (3a26b46)

2.0.0-alpha.10 (2021-07-04)

Features:

  • template-compiler: add hooks decorator support, more integration tests (dd3698d)
  • template-compiler: add beforeCompile hooks (5e42b76)
  • di: add @factory resolver (3c1bef8)
  • di: instance-provider now accepts predefined instance in 2nd param (54edac9)

Refactorings:

  • di: no longer tries to instantiate interface (e757eb6)

2.0.0-alpha.9 (2021-06-25)

Performance Improvements:

  • di: do not create a new factory in .invoke() (23c0405)
  • di: minification friendlier di code (23c0405)

Refactorings:

  • templating: change timing of the container of a CE (23c0405)

2.0.0-alpha.8 (2021-06-22)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.7 (2021-06-20)

Bug Fixes:

  • new-instance: correctly invoke a registered interface (8753b4e)
  • s #1166: this commit prepares a test where the most intuitive behavior is show: ability to invoke an interface without having to declare it, if it has a default registration. Though this is inconsistent with the core, so will have to reconsider (8753b4e)
  • di: disallow resource key override (f92ac3b)

Refactorings:

  • di: don't always copy root resources (aadf5df)

2.0.0-alpha.6 (2021-06-11)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.5 (2021-05-31)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.4 (2021-05-25)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.3 (2021-05-19)

Refactorings:

  • *: ease multiple metadata polyfill strictness (54f485a)

2.0.0-alpha.2 (2021-03-07)

Features:

  • di: add invoke API back (9892bfc)

Bug Fixes:

  • runtime: fix duplicate lifecycleHooks resolution at root (3b245ec)

2.0.0-alpha.1 (2021-03-03)

Note: Version bump only for package @aurelia/kernel

2.0.0-alpha.0 (2021-03-02)

Bug Fixes:

  • di: cached callback always returns same (3ba5343)

0.9.0 (2021-01-31)

Features:

  • runtime-html: add @lifecycleHooks wiring (4076293)
  • di: remove DI.createInterface builder (8146dcc)
  • logger: process string placeholders (8b5c026)
  • kernel: add module analyzer (4edd891)
  • kernel: add inheritParentResources config option (ce5e17d)

Bug Fixes:

  • logger: fix sink registration (6f93797)
  • di: use requestor to resolve alias (9face4b)

Refactorings:

  • logging: replace $console config option with ConsoleSink (4ea5d22)
  • di: dont create lambda (4265bfd)
  • di: store factory per container root instead of via metadata (dbbd8b9)
  • di: simplify factory (795bdea)

0.8.0 (2020-11-30)

Features:

  • kernel: add module analyzer (3fa12d1)
  • kernel: add inheritParentResources config option (b7a07a9)
  • kernel: add resource create/find api's to the container (1cab5bb)
  • *: add dispose() method to Aurelia, CompositionRoot & Container (39374de)
  • di: report InterfaceSymbol friendly name when converted to string (a66882b)
  • runtime: add cancel api and properly propagate async errors (3c05ebe)
  • kernel: add onResolve and resolveAll functions (b76ff2e)
  • ct-get-all: ability to traverse when get all (5d479f4)
  • di: add scoped decorator (1c20d51)
  • di: remove jitRegisterInRoot (d8dd7d8)

Bug Fixes:

  • di-getall: handle search ancestors in a different path, add failing tests (edc4ba3)
  • ct: optional traverse in impl too (f5710f3)
  • di: registerFactory #822 (4ac6543)

Refactorings:

  • all: add .js extensions for native esm compat (0308e2e)
  • module-loader: cache per transform function (3c90743)
  • module-analyzer: rename, cleanup, add tests (1d3c8bf)
  • all: move scheduler implementation to platform (e22285a)
  • all: remove IDOM, HTMLDOM and DOM; replace DOM with PLATFORM (6447468)
  • all: remove PLATFORM global (fdef656)
  • platform: remove hasOwnProperty (90d95d5)
  • platform: remove isBrowserLike and run browser-specific tests in node (2ce90dd)
  • platform: remove isNodeLike (ef19903)
  • platform: remove isWebWorkerLike (622c34b)
  • all: cut back on the dispose calls (9fec528)
  • all: remove reporter (425fe96)
  • logger: remove type duplication and cleanup DefaultLogger (f7de00f)
  • eventaggregator: remove duplicate type (f4fb651)
  • runtime: merge controller api bind+attach into activate, detach+unbind into deactivate, and remove ILifecycleTask usage from controller (15f3885)
  • event-aggregator: fix types (6b89325)
  • di: rename requester -> requestor, remove .only (686f400)
  • di: clean up linting issues, move stuff closer each other (3785abb)
  • *: putting projections to scope (25dcc83)
  • *: deregisterResolverFor (f221eb9)
  • logging: minor improvements (71e601b)

0.7.0 (2020-05-08)

Features:

  • di: allow configuration of Container (a3e5319)
  • @lazy: stop lazy caching, let container control lifecycle (bfb7391)
  • *: add caching for callbacks (b5086ad)
  • validation: started deserialization support (4296f9d)
  • kernel: export format (aca18ae)

Bug Fixes:

  • di: should have a return type (61266da)
  • di: improve error checking for DI.createInterface() (2c73033)
  • *: don't jitRegister intrinsic types. resolves #840 (4f5d7e8)
  • *: validation controller factory fix (e2e5da4)
  • is-arry-index: properly check for 0 vs 0xx (400ff0d)

Performance Improvements:

  • logger: cache scoped loggers with the same name (110b30e)

Refactorings:

  • metadata: make the polyfill application more foolproof and dedupe helper fns (9c94ae1)
  • *: rename alias to aliasto for readability and consistency (f3904fe)
  • kernel: move metadata to separate package (471b77d)
  • di: make ResolverBuilder into a class (0854f38)
  • *: rename isNumeric to isArrayIndex (2fab646)

0.6.0 (2019-12-18)

Bug Fixes:

  • container: ignore primitive values in register (b5eb137)

Refactorings:

  • template-compiler: merge RuntimeCompilationResources into ResourceModel (43f09d3)
  • kernel: remove 'id' and 'path' properties from container (26120ad)
  • runtime: rename 'attached' to 'afterAttach' (6ae7be1)
  • runtime: rename 'attaching' to 'beforeAttach' (4685bb1)

0.5.0 (2019-11-15)

Features:

  • kernel: add isNativeFunction helper (6e2fdda)
  • kernel: add isNullOrUndefined function (a783f07)
  • kernel: add isObject function (c158a22)
  • kernel: initial logger implementation (7f77340)

Bug Fixes:

  • kernel: use WeakMap for isNativeFunction for mem leaks (61f29a6)
  • di: warn instead of throwing on native function dependencies (7d56668)

Performance Improvements:

  • all: remove unnecessary Object.freezes (16b0484)

Refactorings:

  • metadata: improve error detection and reporting (8c17492)
  • reporter: improve and document log levels (aa78655)

0.4.0 (2019-10-26)

Features:

  • kernel: add resource definition helpers (a318317)
  • kernel: add getPrototypeChain and pascalCase functions (b85bb6e)
  • container: add path property (4ba48e9)
  • kernel: add metadata implementation (cc503ee)
  • kernel: add bound decorator (ecae358)
  • alias: Cleanup and tests added (5cabba3)
  • alias: Provide alias functionality (7dd9764)
  • kernel: cover more edge cases in camel/kebabCase (a37ca76)
  • (di: enhance defer to fallback reasonably if no handler found (3edb9ec)
  • i18n: core translation service and related auxiliary features (c3d4a85)
  • runtime: initial runtime support for styles (6aafcca)
  • i18n: date and number format with Intl API (c2405b0)
  • runtime: initial implementation for startup tasks (e4e1a14)
  • platform: add isBrowserLike/isWebWorkerLike/isNodeLike variables (8fd7e8a)
  • kernel: add restore() fn to PLATFORM (2ced7dd)
  • event-aggregator: export injectable interface (e4463c0)
  • kernel: expose general-purpose nextId/resetId functions (5f4f5a6)
  • kernel: move isNumeric utility to platform for now (877fddb)
  • di: list typing constraint on registration (37c5524)
  • kernel: add InstanceProvider to public api (02b6d16)
  • kernel: add InjectArray shorthand type (313e0bd)
  • kernel: migrate aurelia-path functions (aa840e7)
  • all: add tracer argument stringification and improve tracing (5ccdc42)
  • kernel: add localStorage property to global (53fe994)
  • kernel: port EventAggregator to vNext (4e8699c)
  • kernel: make EventAggregatorCallback generic (d6bf68a)
  • kernel: add EventAggregator to vNext (6388074)
  • di: autoregister plain class as singleton and add recursion guard (72f76aa)
  • kernel: add a global raf ticker (32680a0)
  • kernel: add performance profiler (32c2a66)
  • di: make registration api fluent and allow adding registrations directly to createContainer (4af2fd5)
  • all: add friendly names to all interface symbols (57876db)
  • kernel: make everything work correctly in node env (4a10d77)
  • di: add tracing to get and construct methods (1c0fb83)
  • kernel,debug: add a simple tracer implementation (89bc436)
  • di: report meaningful error when trying to resolve an interface with no registrations (43b299e)
  • di: add transient and singleton decorators (7afc5dd)

Bug Fixes:

  • metadata: add metadata and decorate function polyfills (b79f55f)
  • di: properly jitRegister resource definitions (2659889)
  • di: fix annotation name conflict (177604a)
  • di: pass in the requestor to factory.construct for singletons (7b54baa)
  • resource: use metadata for resolution (471d90a)
  • di: look for resource registration first (028ad0b)
  • kernel: fix bound deco (f7a9d2f)
  • kernel: only propagate globally registered resources to child render contexts (1ccf9c0)
  • kernel: cover more edge cases in camel/kebabCase (a7a594f)
  • platform: add now() polyfill for strange runtimes (364dc06)
  • di: defer should not register primitives (2d19d6e)
  • styles: adjust some types (dbddd70)
  • platform: do not throw if platform perf methods are not defined (4636cd9)
  • replaceable: fix some more edge cases with multi nested elements and template controllers (b600463)
  • di: fix ts 3.5.x regression (8a713f5)
  • debug: add missing error codes and fix a few reporting issues (25148d0)
  • repeat: correctly reorder nodes, fix several small bugs in node state tracking (283af76)
  • di: make the decorators compatible with ts strict mode for end users (4a3d7a2)
  • eventaggregator: fix types (7bcff62)
  • di: detect newly registered resolver as an alternative to returned resolver from register method (10131f2)
  • di: fix false positive type error in resolver (1f43cac)
  • kernel: fix master with workaround for now (8a9db61)
  • di: expose resources from parent containers in child containers via a separate lookup (c6d3db6)
  • kernel: remove unnecessary iife call context (7b6e2f9)
  • di: call resolve in buildAllResponse (65bcff1)
  • kernel: fix a small typing regression in iindexable and add clarification (bf48fce)
  • kernel: fix small regression in decorator typings and add clarifications (d464e12)
  • di: report a meaningful error when register() returns an invalid resolver (0306348)
  • kernel: fix circular type reference issue introduced by ts 3.1 (bb2a0f2)

Performance Improvements:

  • all: remove tracer/profiler from ts source (cc9c1fc)
  • all): add sideEffect: false for better tree shaking (59b5e55)
  • all: pre-declare variables used in loops (16b9c18)
  • ticker: minor perf tweaks and normalize frame delta (fb73c58)

Refactorings:

  • kernel: remove timer related methods from platform (6827f9c)
  • di: sync annotation prefix (ef905ff)
  • resources: move merge helpers to kernel (9ceb1f7)
  • kernel: correctly wireup resource registrations (33dfbee)
  • runtime: overhaul bindable, add annotations, fixup resource definitions (8cffcf5)
  • kernel: refine metadata (d320730)
  • metadata: expose internal slot for debugging purposes, make polyfill non-enumerable (d0dadcd)
  • di: use metadata instead of static properties (4edf542)
  • runtime: use metadata for customElement def and renderer cache (bccdc54)
  • *: drop unused imports (7755bbf)
  • event-agg: Change interface signature (78658eb)
  • di: cleanup resourceFactories stuff and add some tests (e1ee6d2)
  • all): more cleaning up after TS breaking changes: ( (c4c3fc7)
  • di: overhaul the types to fix latest ts compatibility (de8586e)
  • all: move isNumeric/camelCase/kebabCase/toArray to separate functions and fix typings (f746e5b)
  • ticker: move ticker + listener to runtime and integrate properly with lifecycle (0ba386c)
  • runtime: wire up the tasks a bit more properly (b7d3e4b)
  • runtime: encapsulate lifecycle behavior in controller class (4c12498)
  • all: more loosening up of null/undefined (6794c30)
  • all: loosen up null/undefined (40bc93a)
  • *: remove Constructable "hack" and fix exposed typing errors (c3b6d46)
  • all: split traceInfo.name up in objName and methodName (2cdc203)
  • *: another round of linting fixes (ca0660b)
  • *: another round of linting fixes (3e0f393)
  • kernel: drop Subscription in favor of IDisposable (860394e)
  • *: make unknown the default for InterfaceSymbol (0b77ce3)
  • kernel: more DI typing (97b7849)
  • *: enable ban-types linting rule and fix violations (00e61b1)
  • ticker: improve frameDelta rounding (53e3aff)
  • *: linting fixes (a9e26ad)
  • kernel: cleanup exports (dda5c5d)
  • kernel: explicitly export non-internal resources (43381a5)
  • all: move timer globals to PLATFORM (fa3bda3)
  • all: move resourceType from runtime to kernel (2c82c14)
  • kernel: strictNullChecks fixes (49d37f3)
  • *: standardise on "as" type casts (d0933b8)
  • kernel: fix or suppress Sonart linting errors (da21118)
  • *: linting fixes for IIndexable (63abddb)
  • kernel: linting fixes for di (d4a51a0)
  • *: linting fixes for IIndexable (4faffed)
  • *: more any to strict typing conversions (26f2d41)
  • *: remove no-reserved-keywords suppressions and fix most of them (adde468)
  • *: remove no-reserved-keywords suppressions and fix most of them (579c606)
  • *: fix errors and warnings reported by "lgtm" (c77b12c)
  • all: reorganize/consolidate type structure (57b086f)

0.3.0 (2018-10-12)

Features:

  • kernel: add decoratable interface to support strongly typed decorators (f67a414)
  • binding: add @connectable decorator back in (strongly typed) (f67a414)
  • all: implement InterpolationBinding (f67a414)
  • unparser: implement interpolation unparsing (f67a414)
  • kernel: add unwrap interface (197235c)
  • ast: add visitor interface and implement accept methods on AST (197235c)
  • expression-parser: allow member expressions on numeric literals (197235c)
  • expression-parser: map empty attribute value to empty string for bound properties (7a92cd8)

Bug Fixes:

  • kernel: fix decorated interface (f67a414)
  • binding: wrap updatetarget/updatesource so vCurrent BBs work again (f67a414)
  • expression-parser: fix differentation for caching of expressions/interpolations (f67a414)
  • iterator-binding: correctly compile and render ForOfStatement (f67a414)
  • debug: correct / update unparser and debug mode (197235c)
  • expression-parser: fix parsing error with trailing elision (197235c)
  • expression-parser: allow AccessThis as the last element of an array (197235c)
  • expression-parser: allow AccessThis as the condition in a conditional (197235c)
  • expression-parser: allow AccessThis as left-hand side of binary expressions (197235c)
  • expression-parser: reset access after parsing non-identifiers (197235c)
  • unparser: explicitly reconstruct precedence (197235c)
  • DI: alias registration param order and tests (#202) (1683135)
  • resources: ensure null is returned for non-existing resources (7a92cd8)
  • template-compiler: correct a few edge cases in target and bindingMode resolution (7a92cd8)
  • template-compiler: correct handling of kebab-cased custom attributes (7a92cd8)
  • repeat.for: add missing instruction properties (7a92cd8)

Performance Improvements:

  • expression-parser: remove unreachable branch (f67a414)
  • expression-parser: use explicit numeric comparisons for bitwise operators (197235c)
  • template-compiler: index the inspect/resolve buffers directly instead of destructuring (7a92cd8)

Refactorings:

  • binding: cleanup/shuffle some interfaces accordingly (f67a414)
  • template-compiler: cleanup/inline instruction classes (f67a414)
  • binding-command: reuse specific binding command prototype methods on the default binding command (7a92cd8)
  • template-compiler: destructure with reused object (7a92cd8)

0.2.0 (2018-09-18)

Features:

  • di: recurse through static registrations to find register methods in more edge cases (6bc2d4d)
  • kernel: add fast camelCase and kebabCase functions with caching (8debe4f)
  • observers: auto-enable collection observers and make the toggles idempotent (d6a10b5)
  • runtime: convert with attribute to use render location (#64) (5830a36)
  • runtime: convert with attribute to use render location (5830a36)
  • runtime: improvements to attribute and element bindable control and common interfaces (5830a36)
  • binding: implement ChangeSet (#58) (144b1c6)
  • binding: implement ChangeSet (144b1c6)

Bug Fixes:

  • di: invoke correct method on array strategy resolver (6bc2d4d)
  • di: invalidate Object keys to help diagnose invalid design:paramTypes (6bc2d4d)
  • di: add a non-any type alternative to the InterfaceSymbol<T> so that container.get() returns correctly typed instances (6bc2d4d)
  • examples: correct versions (1b7c764)
  • tsconfig: correct extends path (797674f)
  • di: convert invokers to an array (#106) (9236dec)
  • jit-parcel: remove else for now, fix instructions (d6a10b5)
  • template-compiler: wrap the nodes in a fragment (d6a10b5)
  • jit-parcel: remove path mappings from tsconfig (d6a10b5)
  • template-compiler: use firstElementChild instead of wrapper (d6a10b5)
  • template-compiler: various small tweaks and fixes, make example work (d6a10b5)
  • jit-parcel: make the example work with something simple (d6a10b5)
  • aurelia: set isStarted=true after tasks have finished (d6a10b5)
  • e2e: move publish into e2e job (d6a10b5)
  • ci: fix typo (d6a10b5)
  • ci: set the correct path before each cmd (d6a10b5)
  • ci: try a different approach for the workspaces (d6a10b5)
  • runtime: correct observer current value update and callback ordering (5830a36)
  • runtime: ensure all bindable callback slots are initialized (5830a36)
  • runtime-behavior: remove use of Toggle in favor of simple boolean (5830a36)
  • observation: fix subscriber typing (144b1c6)
  • kernel: scripts working (9302580)
  • all: lots of path fixes and a few typing fixes, make sure everything builds correctly (9302580)
  • test: make all the tests run via lerna (9302580)

Refactorings:

  • di: append new resolvers on existing keys to a single array strategy resolver instead of nesting them (6bc2d4d)
  • bindable: use platform.kebabCase (8debe4f)
  • binding: use ChangeSet instead of TaskQueue (144b1c6)
  • property-observer: make reusable decorator for setter/observer (144b1c6)