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:
- observation: allow property deletion with proxy (#2114) (7e652e9)
- ref-binding: update value when key expression changes (#2108) (9636d86)
2.0.0-beta.23 (2025-01-26)
Features:
- tooling: type-checking for templates - Phase1 (#2066) (ebc1d0c)
- templating: support exponentiation operator (#2070) (373a656)
- expression-parser: NewExpression (#2068) (ae15ed8)
- expression-parser: impl NewExpression (ae15ed8)
Bug Fixes:
- computed-observer: ensure notifying changes (#2103) (b87cc11)
Refactorings:
- ast.eval: remove loose mode (ae15ed8)
2.0.0-beta.22 (2024-09-30)
Features:
- observation: ability to watch an expression (#2059) (6cd6b8d)
Refactorings:
- ast: separate & allow binding behavior and value converter evaluation to be optional (#2058) (7d7e21b)
- observers: change callback timing to after notify (#2039) (1e587e1)
2.0.0-beta.21 (2024-08-08)
Bug Fixes:
- binding: handle glitch (#2020) (0f3dbee)
2.0.0-beta.20 (2024-07-07)
Note: Version bump only for package @aurelia/runtime
2.0.0-beta.19 (2024-06-12)
Note: Version bump only for package @aurelia/runtime
2.0.0-beta.18 (2024-05-23)
Bug Fixes:
- 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)
2.0.0-beta.17 (2024-05-11)
Note: Version bump only for package @aurelia/runtime
2.0.0-beta.16 (2024-05-03)
Refactorings:
- *: cleanup deco code (#1947) (ca22bc8)
- observers: use static blocks, group related code (ca22bc8)
- *: move scope to runtime html (#1945) (bca0290)
2.0.0-beta.15 (2024-04-17)
Bug Fixes:
- *: residual decorator work (#1942) (7e8c12f)
Refactorings:
- bindings: move binding infra to runtime html (#1944) (1c7608a)
- expression-parser: move exp parser to its own package (#1943) (6e7dcad)
- *: 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)
Bug Fixes:
- *: element get own metadata call (dc22fb7)
- di: cache factory on singleton resolution (dc22fb7)
Refactorings:
- 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:
- runtime: delay overriding array prototypes (#1914) (d8be144)
2.0.0-beta.11 (2024-02-13)
Features:
- runtime: impl 'this' / AccessBoundary (#1892) (6d3d250)
- state: support redux devtools for the state plugin (#1888) (bd07160)
Bug Fixes:
- templating: custom element takes priority over custom attribute (#1897) (e8b2c80)
- *: upgrade rollup, tweak build scripts (bd07160)
2.0.0-beta.10 (2024-01-26)
Refactorings:
- enums: string literal types in favour of const enums (#1870) (e21e0c9)
2.0.0-beta.9 (2023-12-12)
Bug Fixes:
- repeater: duplicate primitive handling, batched mutation fix (#1840) (703d275)
- repeat: fix sort+splice batched operation bug (703d275)
2.0.0-beta.8 (2023-07-24)
Features:
- template: access global (#1790) (2486b58)
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)
2.0.0-beta.6 (2023-05-21)
Features:
- all: allow injection of implementation (#1766) (a60db13)
- bindable: support getter/setter (#1753) (4279851)
Refactorings:
- *: cleanup up unused code & decouple interface from default impl (#1761) (7a71d43)
2.0.0-beta.5 (2023-04-27)
Features:
- observer-locator: ability to create getter based observer (#1750) (ba40b2d)
- observer-locator: enable getter observer (ba40b2d)
- effect: add watch api (ba40b2d)
- 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)
Features:
- debounce-throttle: flush via signals (#1739) (af238a9)
- slotted: add slotted decorator, slotchange bindable for au-slot (#1735) (8cf87af)
Bug Fixes:
- proxy-observation: prevent proxies from being wrapped in proxies again (#1716) (7792e9c)
Refactorings:
- children: make children observation a binding (#1732) (5bde983)
- children: make children deco as a hook (5bde983)
- children: remove children observers from custom element def (5bde983)
- children: cleanup children observer related code, rename to binding (5bde983)
- observers: remove intermediate vars (5bde983)
- *: ignore dev message coverage (5bde983)
2.0.0-beta.3 (2023-03-24)
Features:
- proxy: add nowrap decorator (#1708) (6edddab)
- proxy: add nowrap decorator (6edddab)
- i18n: do not wrap i18next (6edddab)
- style: add warning messages when binding number to ambiguous properties (#1702) (0937b63)
Refactorings:
- build: use turbo to boost build speed (#1692) (d99b136)
2.0.0-beta.2 (2023-02-26)
Features:
- compat: add binding engine (#1679) (a6dd0de)
Bug Fixes:
- *: linting errors (e6010d0)
- ast: correctly resolves access keyed on primitve (#1662) (0eae2ce)
2.0.0-beta.1 (2023-01-12)
Features:
- *: key assignment notify changes (#1601) (4163dd4)
- repeat: add keyed mode (#1583) (d0c5706)
- compat: add ast methods to compat package (8b99581)
Bug Fixes:
- array-length-observer: notify array subscribers (9ea3d85)
Refactorings:
- *: rename scope file (6adce39)
- *: prefix private props on bindings (d9cfc83)
- event: remove .delegate, add .delegate to compat package (d1539a2)
- runtime: cleanup & size opt, rename binding methods (#1582) (2000e3b)
- runtime: remove interceptor prop from interface (3074f54)
- bindings: create override fn instead of binding interceptor (5c2ed80)
- all: error msg code & better bundle size (d81ec6d)
- ast: extract evaluate into a seprate fn (6691f7f)
- *: rename Scope.parentScope -> parent (937d29e)
- ast: extract visit APIs into a fn (a9d2abb)
2.0.0-alpha.41 (2022-09-22)
Features:
- collection-observation: add ability to batch mutation into a single indexmap (39b3f82)
Bug Fixes:
- *: call listener with correct scope, move flush queue to binding (70d1329)
- expression-parser: throw on invalid template continuations in interpolation (9abab48)
- ast: dont observe on sort (beeba4e)
Refactorings:
- *: cleanup unnecessary exports in kernel (045d80d)
- binding-command: make expr parser & attr mapper parameters of command build (0ff9756)
- runtime: simplify expressionkind enum (0f480e1)
- runtime: make Char local to expr parser only (3272fb7)
- runtime: move LifecycleFlags to runtime-html (ef35bc7)
- ast: observe after eval fn call (aca7b0f)
- observation: also pass collection in change handler (c382e8a)
- *: cleanup context & scope (e806937)
- *: remove/reorg interfaces (925f50d)
- *: move subscriber flags to sub record file (066457a)
- *: move delegation strategy to runtime-html (f387b2a)
- *: cleanup iterable AST, reorganise e2e tests (#1562) (3853f2d)
- bindings: remove flags from bind/unbind (#1560) (eaaf4bb)
- ast: move VC signal to bind (#1558) (3fffacf)
- *: remove flags from observers (#1557) (9f9a8fe)
- binding: move BindingMode to runtime-html (#1555) (c75618b)
- ast: remove flags from evaluate (#1553) (dda997b)
2.0.0-alpha.40 (2022-09-07)
Features:
- *: template expression auto observe array methods (001fe4c)
- template: support arrow function syntax (#1541) (499ace7)
Bug Fixes:
- binding: fix regression from nullish coalescing (#1537) (a96511a)
- binding: inline keyword lookup (decrease bundle size) (1384dc2)
- binding: make parser state module-scoped (1384dc2)
Refactorings:
- ast: remove observe leaf only flag (8b1c7e1)
- expression-parser: cleanup / reduce bundle size (#1539) (1384dc2)
- binding: fix expression parser keyword lookup issue (1384dc2)
2.0.0-alpha.39 (2022-09-01)
Features:
- binding: optional chaining & nullish coalescing (#1523) (e33d563)
Bug Fixes:
- repeater: re attaching when using the same array with if (#1511) (89248cc)
- repeat: unsubscribe collection on detaching (89248cc)
- e2e: better e2e test scripts (855a03f)
- build: remove reference directive, use files in tsconfig instead (855a03f)
- typings: make ListenerOptions public (855a03f)
Refactorings:
- *: clean up instanceof code (89248cc)
2.0.0-alpha.38 (2022-08-17)
Note: Version bump only for package @aurelia/runtime
2.0.0-alpha.37 (2022-08-03)
Note: Version bump only for package @aurelia/runtime
2.0.0-alpha.36 (2022-07-25)
Note: Version bump only for package @aurelia/runtime
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/runtime
2.0.0-alpha.33 (2022-05-26)
Bug Fixes:
- state: binding behavior observe (#1437) (b6e1b28)
- array-observer: don't mutate incoming indexmap (#1429) (a77a104)
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)
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)
Features:
- plugin: aurelia store (v2) plugin (#1412) (6989de0)
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/runtime
2.0.0-alpha.28 (2022-04-16)
Note: Version bump only for package @aurelia/runtime
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/runtime
2.0.0-alpha.25 (2022-03-08)
Note: Version bump only for package @aurelia/runtime
2.0.0-alpha.24 (2022-01-18)
Bug Fixes:
- computed-obs: fix typo, ensure multiple layers of getter work (09971a2)
2.0.0-alpha.23 (2021-11-22)
Refactorings:
- *: disabling type-coercion by default (e5028c1)
- *: injectable coercion configuration (b901c4b)
2.0.0-alpha.22 (2021-10-24)
Features:
- *: destructure map pair (961f1a6)
- *: parse destructuring assignment (c0555de)
- *: destructuring assignment expr (d06f7bd)
- *: rest expr in destructuring assignment (f4b1652)
- runtime: started destructuring AST (0b4d579)
Bug Fixes:
- *: deepscan issue (582686b)
- runtime: correction in expression kinf flag (f05684f)
Refactorings:
- repeat: destructuring support WIP (a6257f0)
2.0.0-alpha.21 (2021-09-12)
Refactorings:
- runtime: use isType utilities for fn & string (37a8fd9)
2.0.0-alpha.20 (2021-09-04)
Note: Version bump only for package @aurelia/runtime
2.0.0-alpha.19 (2021-08-29)
Refactorings:
- all: remove more internal typings (1ffc38b)
2.0.0-alpha.18 (2021-08-22)
Note: Version bump only for package @aurelia/runtime
2.0.0-alpha.17 (2021-08-16)
Bug Fixes:
Refactorings:
- command: extract CommandType out of ExpressionType (e24fbed)
- all: rename BindingType -> ExpressionType (8cf4061)
- expr-parser: simplify BindingType enum (4c4cbc9)
- command: simplify binding type enum (6651678)
2.0.0-alpha.16 (2021-08-07)
- bindings: simpler observer tracking/clearing (c867cd1)
Refactorings:
- all: use a terser name cache for predictable prop mangling (7649ced)
- setter-obs: shorter prop names (4154147)
2.0.0-alpha.15 (2021-08-01)
Note: Version bump only for package @aurelia/runtime
2.0.0-alpha.14 (2021-07-25)
Refactorings:
- runtime-html: more error coded (928d75e)
- runtime: mark more private properties (8ecf70b)
2.0.0-alpha.13 (2021-07-19)
Refactorings:
- bindings: rename observeProperty -> observe, add doc (fed517f)
- ast: simplify AST kind enum (fed517f)
- *: avoid creating blocks (27dcf0b)
- binding-context: add comment explaning difference in behavior (f4bcc9f)
- scope: remove host scope (0349810)
- au-slot: make host exposure a normal, explicit prop (e2ce36c)
2.0.0-alpha.12 (2021-07-11)
Note: Version bump only for package @aurelia/runtime
2.0.0-alpha.11 (2021-07-11)
Bug Fixes:
- call-binding: assign args to event property, fixes #1231 (fa4c0d4)
- renderer: don't always call applyBb (5e2d624)
2.0.0-alpha.10 (2021-07-04)
Bug Fixes:
- scope: disable host scope on CE controller (ac0ff15)
2.0.0-alpha.9 (2021-06-25)
Note: Version bump only for package @aurelia/runtime
2.0.0-alpha.8 (2021-06-22)
Note: Version bump only for package @aurelia/runtime
2.0.0-alpha.7 (2021-06-20)
Refactorings:
- scope: rename isComponentBoundary -> isBoundary (a3a4281)
2.0.0-alpha.6 (2021-06-11)
Note: Version bump only for package @aurelia/runtime
2.0.0-alpha.5 (2021-05-31)
Note: Version bump only for package @aurelia/runtime
2.0.0-alpha.4 (2021-05-25)
Note: Version bump only for package @aurelia/runtime
2.0.0-alpha.3 (2021-05-19)
Bug Fixes:
- obs-record: separate count & slot number (c824801)
- array-obs: handle array.find for computed obs, dont cache index obs (79ba544)
- *: #1114 (eed272e)
- *: revert changes in attr-observer, remove unused code in dirty checker (192a26f)
- observers: ensure oldValue is correctly updated in flush,with optz (07bc335)
- *: queue the size observer (0317bce)
Refactorings:
- *: binding context resolution with bindingmode participation" (b84813c)
- *: binding context resolution with bindingmode participation (3abe3f6)
- all: rename currentValue -> value (6dc943e)
- flush-queue: wrap with finally (1c14950)
- observation: fix linting issues (e738bc1)
- observation: don't propagate changes with depth first resolution (235f227)
2.0.0-alpha.2 (2021-03-07)
Note: Version bump only for package @aurelia/runtime
2.0.0-alpha.1 (2021-03-03)
Note: Version bump only for package @aurelia/runtime
2.0.0-alpha.0 (2021-03-02)
Features:
- *: track read on observable & bindable (011804f)
- effect: add IEffectRunner & Effect (4a357c6)
Bug Fixes:
- setter-obs: dont notify if incoming val is the same (8bf519a)
Refactorings:
- *: remove left over unused ids (97fc845)
- all: remove .update flags (3fc1632)
- prop-binding: remove necessity for id stamping infra (409d977)
- effect: rename IEffectRunner -> IObservation r (de5d272)
- connectable: clearer interface for connectable to receive changes (bec6ed0)
0.9.0 (2021-01-31)
Features:
- batch: update implementation (ecd4c8f)
- batch: clone batches before flushing (c3659ea)
- batch: basic impl (0ef7178)
- di: remove DI.createInterface builder (8146dcc)
Bug Fixes:
- au-slot: non-strictly-initialized property (699e7b8)
- batch: ensure nested batch not batched in outer (ae61005)
- *: ensure bindable & observable behavior match v1 (200ac40)
- *: use sub count from record only (e9f578e)
- computed-observer: ensure getter invoked efficiently (8b2bcf9)
- tests: correct validation controller tests (2849c99)
Refactorings:
- all: rename macroTaskQueue to taskQueue (87c073d)
- connectable: merge observer record & collection observer record (f2c1501)
- all: rename interfaces, simplify subscriber collection (1c37183)
- *: remove ILifecycle export (7ed7c6b)
- all: remove ILifecycle (d141d8e)
- collection: remove lifecycle from collection (a0fc5fb)
- array-obs: remove ILifecycle from array-obs (da92d9f)
- *: simplify subscriber collection deco invocation (a3547d5)
- *: use the same utility in runtime (7340905)
- observation: minor cleanup, tweak accessor type (2756ece)
- connectable: more cryptic, less generic name (0f303cb)
- subscribers: use a separate record for managing subscribers (9f9152d)
- *: use private static, tweak comments, simplify vs ast code (98d33b4)
- connectable: make record/cRecord first class, remove other methods (d0cb810)
- runtime: simplify generated code (7a8f876)
- watch: move to runtime-html (1250402)
- runtime: move binding implementations to runtime-html (8d9a177)
- connectable: make observe coll part of IConnectable, updat watchers (3df866c)
- *: remove IPropertyChangeTracker interface (d9ba9a4)
- obs: remove IPropertyObserver (d29bc28)
- all: remove IBindingTargetAccessor & IBindingTargetObserver interfaces (d9c27c6)
- subscribers: shorter internal prop names, add some more comments (1c6cb2d)
- el-accessor: merge size & length observersremove task reuse (3af2d9f)
- observer: ensure length subscription adds array subscription, add tests (64182ae)
- obs: clean up bind from observer, (3006d3b)
0.8.0 (2020-11-30)
Features:
- computed: no type check proxy, reorg args order (6f3d36f)
- array: handle sort, better perf for checking obj type (e2f6a4e)
- proxy: ensure not wrapping built in class with special slots (52d2e39)
- watch: export switcher, add basic tests (3d9ae50)
- *: allow configurable dirty check for el observation (5636608)
- watch: add more coverage, correct array[Symbol.iterator] values (eb94e63)
- watch: add handler for reverse, add tests for mutation methods (d51fa9b)
- watch: add [].includes/.every() (bf8624e)
- watch: ability to disable proxy (701b8ac)
- proxy-obs: export proxy obs, @watch (5444309)
- watch: handle collection delete (3a8c670)
- ast: allow accessscope to have PropertyKey as name (526456e)
- watch: wrap before invoke in computed watcher, (ff2abc7)
- watch: refactor proxy observation, use watcher (7c2cdc0)
- watch: implement computed & expression watchers (6a0a265)
- watch: enhance IWatcher contract (8ad136e)
- watch: move things around for more efficient minification (7fdee3a)
- watch: prepare for watch definition (35619ca)
- ast: ability to connect in evaluate (63e7dec)
- observable: ensure works with binding (c74716f)
- lifecycle-task: add beforeDeactivate and afterDeactivate (79282ad)
- *: add dispose() method to Aurelia, CompositionRoot & Container (39374de)
- setter: add notifier (78c04fb)
- observable: add converter, fix linting issues (9b7492c)
- observable: implement observable decorator (0ecb9e3)
- setter-observer: separate start/stop from subscribe, (c895f93)
- runtime: add cancel api and properly propagate async errors (3c05ebe)
- runtime: add dispose flag for disposing controllers asap after unbind (8a97e61)
- runtime: add beforeCompileChildren startup hook (d28b9d1)
- runtime: add component tree visitor infra (5dd0f67)
- aurelia: add CompositionRoot resolver (8c59df0)
- runtime: add support for automatic partial lifecycle cancellation (ada5ac7)
- runtime: await promises returned by 'beforeDetach' and 'afterAttach' (b6bb2e3)
- runtime: implement/wireup dispose hook (1e1819e)
- runtime: add afterDetach hook (239c7d4)
- runtime: add afterAttach hook (e3e9167)
- runtime: add afterUnbind hook (55484f9)
- runtime: add afterBind hook (47ff91f)
- *: first working draft of au-switch (c665c8e)
- observation: move scheduling to bindings (6394674)
- obs-type: add type property to all observers in runtime (8723299)
- obs-type: add const enum ObserverType to runtime (c30a267)
- *: enhance API (976ae0c)
Bug Fixes:
- binding: add interceptor to binding mediator (01abd35)
- *: tests, remove unused vars (dfe9e30)
- binding-interceptor: expand connectable deco (24de181)
- computed: throw on set for readonly (b84030e)
- tests: adapt el observation changes (7ac6f4a)
- connectable: correctly change slots (4542f01)
- *: linting issue (98089f3)
- *: binding-context choice (de50639)
- watcher: only run when bound (7d509ff)
- *: failing tests (310f47a)
- watch: observe in .some() too (e72c0db)
- watch: use peek watcher (09d6f8b)
- computed: use a simple boolean to prevent side effects (af3f791)
- *: deepscan issue (807a866)
- computed-obs: no eager subscription (fbcfd08)
- connectable: ensure default version, set slot count correctly (3bcde57)
- computed: remove all observers on unbind (4cb43c5)
- watch: set collecting on early return too (86a8c5e)
- watch: resolve callback properly in watchers (a44f611)
- *: deepscan issues (813c5bd)
- observer-locator: use instanceof instead of toStringTag for collections (b95a36c)
- interpolation: align with v1 behavior (d601e76)
- interpolation: triple negative = dizzy (bdfac9a)
- interpolation: build string in normal way (3ad7eba)
- interpolation: use templateexpression concatenation (43c46a2)
- interpolation: properly concatenate parts (e423f46)
- interpolation: properly concatenate parts (72ba4c7)
- debounce-throttle: clean up floating tasks (c8e5fd3)
- runtime: export ProjectionProvider registration (0dd58f1)
- runtime: add missing registration exports (abe3cc4)
- switch: disallowed multiple default-case (e92c316)
- ast: properly handle VC signals in evaluate with conncet merge (e37ea2f)
- ast: tweak return type (85f48d4)
- let: ensure re-observe in handleChange (5ad84fa)
- binding-mode-behavior: add hostScope param (c846994)
- signal: cleanup & fix buggy implementation (78318db)
- signal: update host scope, add interface to guard refactoring (3447702)
- observable: fix deepscan suggestions (50e823a)
- observable: avoid using Function/Object (157ad3e)
- runtime: ignore index type for internal lookup (68dfb78)
- *: i18n integration tests (44b0ba7)
- binding: resolve merge issue (892ff27)
- children: add optional CustomElement.for option (8953900)
- controller: store CE and CA definitions for more deterministic hydration (0291e66)
- controller: fix deactivate idempotency (bda1b1c)
- controller: fix a few cancellation-related slip ups, add more tests (472d0ae)
- *: failing tests (95414bd)
- switch: view holding and attaching (4934627)
- switch: holding view for fall-through (632334a)
- switch: failing test + another test (d2a5fb3)
- switch: binding for
case
s (8f04746)
- switch: default-case linking (2720d8d)
- *: switch-case bind,attach pipeline (691cef6)
- interpolation-binding: cancel existing before queueing new one (71425b3)
- *: linting/deepscan issues (d9b275b)
- interpolation-binding: no reusable in bind (8f99603)
- property-binding: task.run() -> task.cancel() in unbind (a18257c)
- interpolation-binding: get IScheduler instead of Scheduler (7b2fc9a)
- interpolation: update from interpolation ast (5bc3dba)
- *: fix build (7ae1f1f)
- *: ensure runtime build (3dcc937)
- *: linting issues (5718999)
- *: deepscap issues (e35e20e)
- validation: au-slot integration tests (12c80ae)
- au-slot: projection plumbing (dd7f8b4)
- *: broken tests (3a73602)
- runtime: broken tests (1d11be7)
- *: the projection plumbing via scope (e79194b)
- au-slot: corrected compilation (6235f7f)
- au-slot: plumbing for slot-name (400bcd9)
- au-slot: projections plumbing (786fdb5)
- *: ducktype checking for nodelist (b6d650a)
- di: registerFactory #822 (4ac6543)
- bindings: use eval/connect merge (da4b49d)
- ast: reduce polymorphism in evaluate calls (489953f)
- ast: use getters instead of instance properties for $kind (a488dbd)
Refactorings:
- *: remove commented code, fix linting issues (40f73d8)
- binding: adapt changes in runtime for i18n (f3c174a)
- binding: adapt obs record on attribute binding (eddb58f)
- binding: chore try use an obs record (1a93644)
- bindings: use ??= instead (830fdf5)
- bindings: optimize task queue update a bit more (842ab26)
- bindings: always cache source value in binding (9d3aad2)
- *: timing for binding state of controller (4eb09f7)
- bindable: let bindable take action based on controller (a42949f)
- collection: make lifecycle optionial, more type imports re-org (9f8b189)
- runtime: remove unnecessary flag requirements (46a491a)
- obs: don't use Proxy on platform (f7882e0)
- obs: reorg imports, always try get adapter first (69beda1)
- *: separate type import for runtime (f1fd69f)
- watch-proxy: use short name for wrap/unwrap (944c5d9)
- *: change import to import type, cleaning typings (9854438)
- computed-observer: correctly call subscribers when set (8497f38)
- *: remove persistent flags (ffba588)
- *: return in try block for watchers (78032f0)
- all: add .js extensions for native esm compat (0308e2e)
- node-observation: move interface to runtime-html (42626f8)
- *: remove all ast.connect() (54b4718)
- validation: merge evaluate & connect, more efficient handling of classes (7803dc6)
- *: better lookup for el obs loc (9c5197c)
- observation: simplified el observers/accessors more (e818e2f)
- node-observation: merge target observer/accessor, (2c318ee)
- interpolation: works similar to other bindings (ad9c2ee)
- prop/attr-bindings: always call update (3fd75c8)
- all: rename noTargetQueue flag, remove infrequent mutationtc (edfd2a4)
- *: post-review changes (d484bd6)
- obervers: remove task property of IAccessor (affd9d1)
- runtime: ensure non-enumerable method by decor (e8e79ff)
- all: remove binding strategy export (cd258cd)
- *: remove proxy decorator, cleanup interfaces (fb05ccf)
- *: remove references to proxy strategy & proxy observer (b1dfe93)
- all: simplify update flags (5c2cc3a)
- all: move scheduler implementation to platform (e22285a)
- scheduler: remove ITaskQueue interface (5b7b276)
- all: move html-specific stuff from runtime to runtime-html and remove Node generics (c745963)
- all: remove debug package (a1bdb60)
- all: remove PLATFORM global (fdef656)
- watch: rename observeProperty -> observe, fix linting issues (32ea361)
- dom: remove setAttribute (5cd8905)
- dom: remove removeEventListener (1179737)
- dom: remove addEventListener (706a833)
- *: wip fix for the scope traversal issue (f93da3c)
- dom: remove DOM.createNodeObserver (2dc0282)
- watch: rename ariables, tweak typings (675cecb)
- runtime: rename afterCompileChildren to afterCompose (d8d940a)
- runtime: rename afterCompose to beforeComposeChildren (f65bb7b)
- runtime: rename beforeCompile to beforeCompose (570a9ab)
- runtime: rename create to define (d2d9cba)
- watch: create watcher at start of hydration, add tests for expression (48dd4e9)
- watch: tweak validation (4a5f0b1)
- switch: registration (0258041)
- watch: rename some interfaces (7c6f442)
- watch: handle array auto obs (89931da)
- watch: idempotent bind, unbind, conciser names (d958ccf)
- all: simplify DOM initialization, remove DOMInitializer (ff13185)
- watch: cast prop key to string in manual AccessScope build (7e53215)
- watch: use conciser names (5c9b25c)
- runtime: rename CompositionRoot to AppRoot (3141a2c)
- runtime: move Aurelia from runtime to runtime-html (d56c4ca)
- all: shorten TargetedInstruction to Instruction (a7e61c6)
- all: finish renaming render to compose (ede127b)
- computed: resolve callback outside watchers (a865900)
- all: rename render to compose (2d11d9e)
- runtime: move rendering, binding commands, attr patterns and instructions to runtime-html (bc010f5)
- all: rename renderer to composer (c1a0f3c)
- all: rename Hydrator to ExpressionHydrator (71e2e6f)
- interpolation' of http: //github.com/aurelia/aurelia into feat/watch-decorator (05e4152)
- property-accessor: make PropertyAccessor static again (39861c4)
- projection-provider: use default registration (ebcae56)
- view-locator: use default registration (5a49229)
- expression-parser: use default registration (0126a04)
- renderer: use default registration (6ec39ec)
- lifecycle: use default registration (77c88a2)
- observer-locator: use default registration (71ed8e5)
- runtime: remove ILifecycleTask (69f5fac)
- all: cut back on the dispose calls (9fec528)
- runtime: properly wireup root controller compilation hooks with apptasks & cleanup (6a1f32f)
- runtime: add ICompositionRoot and IAurelia interfaces and pass container+root into controllers (23477a3)
- app-task: use strings instead of enum for slots (bfff559)
- all: simplify Aurelia#start/stop & AppTask#run, returning promise instead of task (6c7608d)
- expr-watcher: make start/stop private (bb4ceb8)
- computed-watcher: dispose prop & collection observers in change (d2ab5f4)
- watcher: remove impl details from expression watcher interface (8360876)
- controller: have context in custom attr hydration too (a722775)
- watch: remove old file organisation (6112fb8)
- app-task: cleanup interfaces and remove unused 'from' api (5447e87)
- proxy: move handlers out of old file, group all (44a0646)
- all: rename StartTask to AppTask (e76ae41)
- runtime: merge Activator into CompositionRoot and fix beforeCompile hook (fd7547a)
- composition-root: remove antecedent parameter (c886c6b)
- observer-locator: improve the flow / work out a few quirks (cc042b4)
- primitive-observer: cleanup/simplify (4f4b86c)
- observer-locator: cleanup/simplify (4e1db6f)
- scope: remove IScope interface and use import type where possible for Scope (6b8eb5f)
- ast: shorten param names (482485d)
- ast: remove pointless guards and cleanup tests (fdc9d9f)
- *: rename multi interpolation to interpolation (d1c2202)
- all: remove reporter (425fe96)
- interpolation: remove interpolation binding reference, tweak html interpolation (f3a8952)
- interpolation: ignore targetObserver in content binding, remove single interpolation bd (3c6d3c3)
- interpolation: always use multi mode (145eadb)
- interpolation: simplify target update (50e7087)
- *: removed linktype in favor of link cb (5af8498)
- interpolation: handle multi/single interpolation differently (877494f)
- runtime: ensure .evaluate() is called with null (4ae4b49)
- ast: use null instead of ? (61639be)
- ast: use optinal chainin (a6d6da3)
- binding-mode-behavior: add trace logging (fc1a45d)
- signaler: add trace logging (52519e2)
- switch: promise queuing, test correction (78fd733)
- observable: sync naming with bindable (3e05441)
- start-task: rename StartTask to AppTask (b52fc9c)
- lifecycle-task: rename afterAttach to afterActivate (4045977)
- lifecycle-task: rename beforeBind to beforeActivate (b363f2f)
- lifecycle-task: rename beforeRender to beforeCompile (970e68a)
- observable: use notifier (7614d19)
- ast: remove unused stuff (d2ecf5e)
- all: remove AST interfaces (7e04d83)
- switch: partial fix after merging master (1bc2624)
- all: merge jit into runtime and remove jit package + references (d7b626b)
- *: remove unused import (3f66b08)
- primitive-observer: remove variable in scope (edf854b)
- jit: move expression parser to runtime (709a56a)
- all: sync up remaining api changes (29d6520)
- *: template controller link type (1bd39ef)
- switch: view de/attach (1c4cd39)
- switch: active case change handling (4830f18)
- runtime: cleanup unused flags (77a930e)
- runtime: merge controller api bind+attach into activate, detach+unbind into deactivate, and remove ILifecycleTask usage from controller (15f3885)
- lifecycle-task: remove cancellation (23af2af)
- controller: normalize linkedlist properties (9420d1e)
- lifecycles: pass down first + parent controller in the 'before' hooks and use that as the queue instead of ILifecycle (031b7fd)
- lifecycle: simplify afterChildren hooks to singly-linked list (cc65c09)
- controller: cleanup/simplify unbind lifecycle (4f33063)
- controller: cleanup/simplify bind lifecycle (1fb6a3f)
- runtime: rename 'caching' to 'dispose' and hook cache/dispose logic up to unbind based on isReleased flag (e346ed4)
- controller: rename 'hold' to 'setLocation' (eb43d9e)
- all: remove State enum and use simple booleans instead (762d3c7)
- lifecycle: cleanup&simplify attach/detach lifecycles, remove mount (694257b)
- view: add missing hooks (13e0b85)
- all: rename afterDetach to afterDetachChildren (080a724)
- all: rename afterUnbind to afterUnbindChildren (09f1972)
- all: rename afterAttach to afterAttachChildren (02b573e)
- all: rename afterBind to afterBindChildren (bf0d79e)
- *: switch (94a70a6)
- switch: switch-case controller linking (ce835e2)
- switch: case change handler (a4d3872)
- switch: provision for fallthrough (8210bf8)
- switch: change handler (80c6eab)
- bindings: always sync, control flush (01db28d)
- switch: converted to TC (4a1b8e6)
- html-observers: remove unused code/commented code (ae111f3)
- bindings: queue with preempt in handle change (24350ce)
- bindings: treat changes during bind differently (cf65629)
- bindings: no queue during bind (2a7a0a0)
- setter-observer: remove lastupdate (0c70a1d)
- bindings: seprate flow entirely for layout accessors (3915230)
- runtime-observers: add task to runtime observers (9d1e795)
- observers: rename ObserverType to AccessorType (5f8d0e1)
- au-slot: stricter binding rule (eee5c92)
- *: host scope & AST (9067a2c)
- *: putting projections to scope (25dcc83)
- *: deregisterResolverFor (f221eb9)
- *: added hostScope to bindings (7f42564)
- *: $host scope wip (6990470)
- au-slot: view factory injection (70c5dfd)
- *: part2 of plumbing fallback projection (a470f9b)
- *: partial plumbing for projections (f974ec5)
- *: encapsulated enhance in ce-definition (ffd831e)
- *: facilitated host enhancement directly (ad8c53c)
0.7.0 (2020-05-08)
Features:
- validation: started deserialization support (4296f9d)
- *: AST hydration (92125d6)
- custom-attr: add no multi bindings cfg (4daa950)
- runtime: binding mediator (3f37cb8)
- observation: observe array index (a51edc2)
- validation: used new BindingInterceptor (bb8dff2)
- runtime+html: binding middleware (3dc8143)
Bug Fixes:
- *: don't jitRegister intrinsic types. resolves #840 (4f5d7e8)
- *: validation controller factory fix (e2e5da4)
- *: misc issues + cleanup (c318d91)
- binding: fromView update source initial value (5e23f6c)
- *: use void 0 instead of undefined (49322cd)
- bindable-observer: ensure initial value is valid (6255b03)
- bindable-observer: reverse set interceptor (0c98007)
- array-index-observer: dont update current value during set value (6eefd78)
- lint: fix deep scan issues (601bbfc)
- index-observation: simplify keyed access connect (57e9607)
- computed: always to string (359706b)
- observer-locator: compare against null (7fc39a2)
- computed: observer collection correctly (7b2db01)
- observer-locator: use SetterObserver instead of dirty check (1dc1983)
- computed: flatter stack (cadb819)
- controller: correct the timing of beforeBind hook (d2e4f59)
- injectable: prevent renderContext caching (625348a)
- computed: dont bind unnecessarily (b7dbb46)
- observation: don't eagerly dirty check array prop (fdfb353)
- computed-observer: better efficiency & works in basic array scenarios (ad12769)
Refactorings:
- *: rename alias to aliasto for readability and consistency (f3904fe)
- scheduler: move scheduler to separate package and simplify a few things (cf33b1a)
- *: moved ast hydration to debug package (691a63f)
- validation: normalized binding host (732234b)
- array-index-observer: behave like native when setting value (e8fb47e)
- *: rename isNumeric to isArrayIndex (2fab646)
- computed-observer: compare with 0 using > instead of === (331aed7)
- computed: dont wrap value if function (e60a2b9)
- runtime: add controllers, bindings to custom attribute interface (5378dbc)
0.6.0 (2019-12-18)
Features:
- controller: add create/beforeCompile/afterCompile/afterCompileChildren hooks (3a8c215)
- runtime: add CustomElement.createInjectable api (c2ea5fc)
- bindable: basic working state for set/get (ae1d87a)
- bindable-observer: add getter/setter interceptors (6c22b91)
- bindable-observer: invoke propertyChanged (1af2ab0)
Bug Fixes:
- render-context: do not dispose viewModelProvider due to if.bind etc (e28f5b2)
- controller: merge parts (2e184fd)
- repeat: initialize module-scoped index eagerly to fix reference error (c8a571f)
- customelement.for: correctly traverse up (abb6dac)
- bindable: ensure value is intercepted correctly in first delayed subscription (37c818c)
Refactorings:
- all: refine+document controller interfaces and fix types/tests (0a77fbd)
- controller: split up IController into several specialized interfaces + various small bugfixes (05d8a8d)
- controller: fixup/improve controller partial interfaces (571ac18)
- dom: add null-object NodeSequence back in (c9244ad)
- runtime: fix types / api calls (7bb863a)
- renderer: cleanup/simplify the rendering process and part propagation (0018838)
- kernel: remove 'id' and 'path' properties from container (26120ad)
- binding-behavior: integrate interceptors with renderer (580b76e)
- throttle: change to new interceptor api (f955498)
- debounce: change to new interceptor api (e2effc5)
- runtime: make binding behaviors transient and formalize interceptor api (facbe47)
- runtime: rename CustomElementBoilerplate back to RenderContext (a844ccc)
- runtime: factor out rendering engine + context + compiled template, introduce ce boilerplate, fix create-element etc (a3cc2ad)
- runtime: simplify render process / prepare for removing CompiledTemplate layer (6f47ee8)
- runtime: rename 'detached' to 'afterDetach' (d1e2b0c)
- runtime: rename 'attached' to 'afterAttach' (6ae7be1)
- runtime: rename 'unbound' to 'afterUnbind' (35e203c)
- runtime: rename 'detaching' to 'beforeDetach' (9f8b858)
- runtime: rename 'unbinding' to 'beforeUnbind' (79cd5fa)
- runtime: rename 'attaching' to 'beforeAttach' (4685bb1)
- runtime: rename 'bound' to 'afterBind' (4060bbe)
- runtime: rename 'binding' to 'beforeBind' (45b2e91)
- bindable: remove getter interceptor (269d6ff)
- bindable-observer: tweak interfaces (00bd459)
- bindable-observer: use similar mechansm to callback for propertyChanged callback (a6f3762)
- bindable-observer: rename self-observer -> bindable-observer (bc0647c)
0.5.0 (2019-11-15)
Features:
- dom: add setEffectiveParentNode for portal-like components (5f40cd5)
- custom-element: add 'name' and 'searchParents' parameters to CustomElement.for api (46da0dc)
- controller: add 'is' api for checking if the resource name matches (47b61a6)
- dom: add getEffectiveParentNode api for containerless support (77a04e0)
- custom-attribute: add behaviorFor api (31145e1)
Bug Fixes:
- repeat: unsubscribe from array observer when unbinding (ebf237d)
- runtime: remove stray semicolon triggering Terser error (0fabdee)
- renderer: revert to observer.setValue again (9038263)
- renderer: set default value instead (f9d5960)
- renderer: add fromBinding to setPropertyBinding (ac1c8ac)
- collection-observation: store observers in weakmaps (c6e0a70)
- collection-observation: store observers in weakmaps (26114ea)
- all: remove unnecessary Object.freezes (16b0484)
Refactorings:
- ref: check element name again (2625040)
- all: rename behaviorFor to for (0823dfe)
- runtime: use metadata api to associate resources with nodes (f46dacc)
- custom-element: retrieve controller from metadata (2c715f5)
0.4.0 (2019-10-26)
Features:
- scheduler: add repeat parameter to yieldAll for dirty checker etc (9f24306)
- scheduler: add yieldAll api (f39c640)
- scheduler: add delta time param (cf00768)
- scheduler: add support for persistent tasks (f152a4a)
- bindable: add fluent api (c36108b)
- dom: add prependTo api to nodesequences (b958d57)
- scheduler: add shims and initializers (341dd69)
- scheduler: impl initial structure for new scheduler (66f7e11)
- strict-binding: Allow null/und to be '' (a44720e)
- integration: starting integration tests (aaefd34)
- alias: Add convention add tests fix conv log (19399af)
- alias: Cleanup and tests added (5cabba3)
- alias: Provide alias functionality (7dd9764)
- ViewLocator: enable custom view selector functions (ee6f03f)
- i18n: core translation service and related auxiliary features (c3d4a85)
- view-locator: allow associating views with classes (9a89686)
- i18n: all binding behavior (f002dd7)
- i18n: support for
t=${key}
, t=[attr]key
(5f2fdfd)
- router: make lifecycle task add promise when callback returns void (1877126)
- children: add and integrate decorator (ef556b4)
- router: make lifecycle task callback allow void return (649a911)
- child-observation: make query pluggable (81f1a9a)
- child-observation: hook into runtime process (f484f84)
- runtime: add lifecycle flag propagating template controllers for perf tweaks (c28db65)
- runtime: initial implementation for startup tasks (e4e1a14)
- runtime: add parent to $controller (d00dbc0)
- lifecycle: add inline method for begin/end pairs (7e70443)
- observation: implement batching (943c0d7)
- runtime: add PriorityBindingBehavior (2d06ef7)
- controller: add getAccessor API (and expose $controller to repeater view) (f19c669)
- lifecycle: implement adaptive timeslicing (84b8e20)
- kernel: add InstanceProvider to public api (02b6d16)
- aurelia: make the host element available for injection in the app root (a696649)
- runtime: fully implement patch mode (e37c0f3)
- all: add tracer argument stringification and improve tracing (5ccdc42)
- runtime: expose full DOM (0680c16)
- runtime: initial implementation for patch lifecycle (209a59a)
- repeat: add support for keyed mode (56dacce)
- runtime: added exportable dom object (9419faa)
- runtime: interfaces for create and dispatch event methods (9967a6c)
- di: autoregister plain class as singleton and add recursion guard (72f76aa)
- observation: add tracing to observer constructors (5aead83)
- binding: initial implementation for proxy observer (71db77d)
- dirty-checker: expose dirty check settings (4bd3980)
- runtime: fix+test the computed observer (3611625)
- kernel: add performance profiler (32c2a66)
- runtime: make runtime-html fully work in jsdom/nodejs (e34f9b1)
- runtime: expose individual registrations and configs (b9b4c49)
- all: add friendly names to all interface symbols (57876db)
- dom-initializer: allow undefined ISinglePageApp (add1822)
- lifecycle: expose queue processing methods (2086e4e)
- runtime: expose mixed decorator api's (cae5959)
- runtime: expose RuntimeConfiguration api (a37a375)
- aurelia: implement API to provide a DOM instance to the runtime (2089dcb)
- all: implement dynamicOptions decorator and convention (b5893ef)
- runtime: add tracing capabilities to various lifecycle flows (7018662)
- replaceable: allow one level of parent scope traversal (8c34244)
- aurelia: add startup api shorthand (a898049)
- lifecycle: initial implementation for general-purpose lifecycle task (d921922)
- runtime: pass LifecycleFlags through all regular lifecycle methods (a3eeec5)
- binding: implement BindLifecycle for correct ordering of bound/unbound calls (c403035)
- customElement: make build and instructions properties optional (8f70dcf)
- lifecycle: add state flags for binding/unbinding/attaching/detaching (d504f5d)
- templating: centralize all TemplateDefinition creation into reusable definitionBuilder (25aba89)
- customElement: report error code on nil nameOrSource (0a42e5e)
- bindable: allow declaring a bindable property via class decorator and direct invocation (b9d1b12)
Bug Fixes:
- scheduler: pass in correct delta (93ea64a)
- dirty-checker: use render task queue (21f9b69)
- scheduler: try another microTaskQueue thing for ff (f2f954a)
- scheduler: set/unset appropriate task for recursive microtask checking (22ff346)
- scheduler: fix persistent task cancellation and add more tests (88c897b)
- scheduler: account for persistent tasks when yielding (850657d)
- scheduler: various bugfixes/improvements in task reuse and removal (107ae0c)
- runtime: binary expression connect issue (039f4f2)
- scheduler: properly implement persistent tasks (d604394)
- rendering-engine: always return a CompiledTemplate even if there is no template (7042ca8)
- controller: use the compiled definition to get the projector (7208b6c)
- bindable: inherit from prototype (b3f6c44)
- children: inherit from prototype (e08e5a1)
- view: handle inheritance correctly / fix tests (4956c68)
- view: more decorator/metadata fixes (8db676b)
- bindable: correctly traverse bindable lookup (5cdf5f3)
- runtime: missing notify on new value of key (55c9fdf)
- children: handle definition properly (a9e4339)
- bindable: handle definition properly (b66aac8)
- mount-strategy: make const enum (4fb0274)
- portal: add 2nd param for hold, add tests, export mountstrategy (d797f9a)
- portal: separate API for hold parent container (537eb97)
- bindable: use ctor instead of prototype to store metadata (7844925)
- children: use ctor instead of prototype to store metadata (5912462)
- controller: assign $controller again (e6ef63b)
- custom-element: use transient registration (54048cd)
- custom-attribute: use transient registration (1f97380)
- controller: store host (266652d)
- rendering-engine: property inject compiler (617f215)
- custom-element: use generated type if null (69aed3c)
- bindable: fix deco signature (5528572)
- custom-element: add missing isType and behaviorFor back in + renames (8e55a2a)
- custom-attribute: add getDefinition (3b22abb)
- runtime: attribute order for checkbox (49a1d43)
- ref: add update source flag to binding (19fdc34)
- ref: remove bind optimization (a270f82)
- ref: add always notify flag (261bc10)
- renderer: copy metadata to decorated target (b5d647e)
- render-context: add path property (bd999f5)
- tests: computed-observer typing issue (6a6043c)
- tests: computed observer (a074800)
- tests: linting issues (3f85553)
- runtime: computed bug (641ba1c)
- runtime: computed-observer overridden config (6363d47)
- custom-attr: define parsing behavior clearer (32e7ec8)
- let: to-view-model -> to-binding-context (a201a32)
- repeat: revert changes related to iterator binding (3edbcd0)
- repeat: fix map delete observation, add more tests, normalize items in repeat (f62df34)
- repeat: add contextual props back (4083fb4)
- array-observer: fix splice edge case (5a246a7)
- kernel: only propagate globally registered resources to child render contexts (1ccf9c0)
- bindable-primary: cleanup debug code, add more tests (f812a55)
- all: rename root au -> aurelia, auRefs -> au, fix tests (edeb66b)
- template-binderf: ensure custom attribute are processed first (b6177cb)
- ref: tweak reference setting timing (6c7b30a)
- ref: refactor wacky getRefTarget logic (781a14a)
- ref: compile ref normally (86b27c3)
- ref: properly set reference on host (719e50b)
- binding-language: allow binding command to take precedence over custom attr (cf24681)
- harmony-compilation: tweaks flags, revert cond (dd403bd)
- resources: base registration on the actual registered type (f8fc3d6)
- view-locator: final typing issue (bb903f1)
- binding-type: add back isEventCommand (2f37532)
- binding-type: adjust flags bits, tweak tests (0bac00f)
- binding-language: add IgnoreCustomAttr to binding type (02b6903)
- view-locator: improve types and simplify tests (2ecb8c4)
- IViewLocator: change registration strategy (033d9d7)
- jit-html: add convention for html attributes (ce07a92)
- view-locator: improve some typings (800fe80)
- all: build errors related to children observers (1658844)
- child-observation: ensure observers and get/set always present (1c27331)
- ChildObserver: remove redundant lifecycle arg (50f86ac)
- child-observation: correct shadow projector and children observer (721d6d8)
- runtime: cleanup unused flags to get the highest flag no to SMI again (4bc20d3)
- start-task: fix strategy mapping (3279354)
- activator: add task manager inject key (720dfab)
- replaceable: fix some more edge cases with multi nested elements and template controllers (b600463)
- replaceable: more scoping fixes, enable most of bigopon's tests (0daea3a)
- property-accessor: properly distinguish observer lookup types (9733f93)
- replaceable: make part scopes also work when not immediately bound from the wrapping replaceable (78803f1)
- replaceable: retain parts through template controllers in the replace-part (69fdd0c)
- lifecycle: fix raf timing issue (54f0f19)
- debug: add missing error codes and fix a few reporting issues (25148d0)
- repeat: fix indexMap synchronization (16c69f9)
- proxy-observer: make proxies work again (c2627bc)
- self-observer: fix subscribe slip-up (075e31a)
- setter-observer: correctly update inner state (8a7ef50)
- 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)
- controller: detach custom element controllers (b113700)
- if: correct a lifecycle bug (d273563)
- lifecycle: fix some flags and hook callback slip-ups (e769249)
- controller: use provided property name (25d7be2)
- if: set elseFactory (f01af55)
- interpolation-binding: bind observers (537cbcc)
- renderer: use the correct targets (885c7af)
- controller: mount via the raf queue (1691161)
- repeat: mount via the raf queue (2e0662a)
- repeat: get sourceExpression correctly again (24daae1)
- controller: respect noProxy property (5f88d30)
- runtime: fix index exports (711837d)
- subscriber-collection: allow recursion (2c1b4dd)
- target-observer: fix dom binding update when initial value matches empty string (38fdc71)
- self-observer: call valueChanged after callSubscribers (bfff190)
- runtime: fix two-way binding (d60b952)
- repeater: fix null and undefined collection observer initialization for proxies (ce9d265)
- repeat: fix proxy observer edge case (0708221)
- proxies: properly observe array indexers and source items (2c3923e)
- proxies: ensure proxy context is passed to created() hook (41cbf85)
- patch: always process changes synchronously on patch (35ec87a)
- binding: fix patch mode (again) (e3eb280)
- runtime: remove dom types (b085dd1)
- ast: fix forOf bind slip-up (b715cc0)
- runtime: tsconfig needs libs for dom interfaces (9819239)
- runtime: allow dom interfaces to be used in typings (60423bc)
- proxy-observer: only invoke subscribers specific to properties (237d60d)
- proxy-observer: make sure array/set/map work (d07f412)
- dirty-checker: use tick counter instead of frameDelta counter and revert tests back to normal (a9f9822)
- aurelia: initialize dom before trying to resolve component (306c497)
- binding: force updateSourceExpression when bindingMode is fromView (366301f)
- lifecycle: temporary solution for a mounting race condition (9f11a93)
- runtime: register local dependencies before going into the template compiler (13a7fd4)
- view: also use lockedUnbind on lockScope (bba81ca)
- runtime: add missing renderer registrations (c301823)
- custom-element: use the correct $bind interface (7000b9a)
- template-factory: fix an edge case with whitespace around the element (1cb386e)
- aurelia: make the host property runtime agnostic (b45dca0)
- dom.interfaces: keep dom interfaces compatible with lib.dom.d.ts (9fd0409)
- template-definition: accept any node/template type (6111e1e)
- dom: tolerate non string types for template markup (0676a0f)
- replaceable: use IBindScope instead of IBindSelf and remove IBindSelf (7fd2b10)
- runtime: enable LengthObserver (c7b3373)
- aurelia: add attach/detach flags to start/stop task (fa2ba9c)
- mounting: defer mount/unmount decision to processQueue, cleanup unnecessary guards (22a79d0)
- host-projector: allow children of host element to be removed for router-view-like scenarios (634db1a)
- lifecycle: temporary solution for infinite flush loop on $detach (647e0d8)
- target-observer: revert aurelia-cli incompatible async change (c262ab2)
- ast: fix slip-up in arePureLiterals helper function (69c5e32)
- binding: add null check to check for existing behaviorKey (6fc286c)
- lifecycle: properly implement unbindAfterDetach behavior (9d3f41b)
- repeat: always re-subscribe arrayObserver during binding (3ebe065)
- lifecycle: temporary workaround for issue with flushChanges during attaching() (6483ed9)
- custom-element: ensure the correct runtime behavior is applied (1a74855)
- dom: make attachShadow work with custom elements" (bd22ea7)
- dom: make attachShadow work with custom elements (18d2e15)
- containerless: replace element with marker for proper containerless behavior (75bcaa5)
- dom: set text.textContent to empty after hydration (7831726)
- with: only invoke change handler if the controller is bound (935eedb)
- dom: use emptyNodeSequence when fragment has no children (d600da4)
- dom: ensure the correct nodes are removed on unmounting containerless views (8fbe26b)
- dom: ensure renderLocation keeps the correct parent and is removed with the rest of the fragment nodes (43005e7)
- runtime: correctly remove root element children on stopTask (46f1d5f)
- LinkedChangeList: fix idempotency and recursion to behave the same way as ChangeSet (c79df13)
- LinkedChangeList: recursively flush changes (4926397)
- binding: add fromBind flags to $bind->$unbind call (0b57e63)
- compose: change resolution order in provideViewFor from least common to most common properties (1ee26ea)
- runtime: add some missing exports (a4deeeb)
- binding-context: make addObserver optional to make typescript happy (e1acc1f)
- customElement: use provided def.cache value (dde367a)
- customAttribute: register aliases with the correct key (e3bf5ef)
- lifecycle: pass changeSet into controller and always flush before processing attach/detach (94197db)
- else: do not remove renderLocation (to prevent parentNode null issue) (17f2d01)
- repeat: only update contextual props when necessary (651e81a)
- all: remove tracer/profiler from ts source (cc9c1fc)
- all): add sideEffect: false for better tree shaking (59b5e55)
- runtime: move collection observer initializers to observer constructors (838b325)
- controller: abort attach/detach sooner (b96cc99)
- binding: don't bind observers in onetime mode (4fb7fef)
- custom-attributes: use merged flags (37373d9)
- repeat: small tweak to lis algorithm (36ea371)
- if: unroll the custom attribute lifecycle (4b7bc3f)
- binding: use string id property instead of number (db8e1f9)
- repeat: small tweaks to lis algorithm (6ae65f5)
- all: pre-declare variables used in loops (16b9c18)
- repeat: reuse existing binding context if a mutated item is the same (b106cdf)
- runtime-html: remove DOM dependency from DOM target accessors (74b649a)
- all: shorten au-marker to au-m (e04fe9c)
- all: shorten au-marker to au- (c3f82ff)
- renderer: use normal object instead of null object for renderers lookup (afb4720)
- instruction-renderer: set instructionType on the instance instead of the prototype (c15b25f)
- lifecycle: properly enforce only-root-removal but unmount everything on stopTask (365ddcc)
- runtime: don't update DOM during flush if it's about to be detached (83f3e8f)
- lifecycle: use lifecycle as first node to reduce the number of null checks needed (c1930af)
- binding: connect after mounting (388f189)
- target-accessor: only batch DOM changes if target is already attached (0a875ce)
- dom: only remove root nodes (c5c8865)
- LinkedChangeSet: remove $linked property and use marker instead (a4b0bfc)
- lifecycle: change BindLifecycle to linked list, preallocate properties (17ac407)
- runtime-behavior: replace boolean properties with single flags property (9e168bc)
- dom: declare DOM api as loose functions" (6087767)
- view: add BindingFlags.fromBind to unbind call (92068ee)
- dom: use nodeType instead of instanceof for isNodeInstance (7e1321b)
- dom: declare DOM api as loose functions (10f657f)
- node-sequence: implement special textNodeSequence and reorganize a few things (0e66eb3)
- binding: reduce redundant calls to evaluate() (7750743)
- if: batch state changes between if/else view (022040f)
Refactorings:
- throttle: cleanup and use scheduler (fd2caa5)
- debounce: cleanup and use scheduler (9d8d9e7)
- scheduler: add tracing hooks for debugging and fix task pool (2a518a1)
- scheduler: return boolean from cancel instead of throwing (c541747)
- observer-locator: convert from lifecycle to scheduler (2586102)
- dirty-checker: convert from lifecycle to scheduler (e081285)
- scheduler: improve persistent and reusable task logic (0094761)
- *: remove timeSlicing api calls (0e05c43)
- lifecycle: remove rafQueue & related stuff (9b06b5a)
- scheduler: remove evenLoop priority (bb1fe5a)
- view: get the closest definition instead of the view (67f1791)
- custom-element: properly differentiate between clone/propagate/override (ab1577b)
- view: make the view decorator work with metadata (566d713)
- compose: generate anonymous name if no name is provided in the definition (211d3d9)
- binding-behavior: sync with attribute+element resource api (6b66e38)
- value-converter: sync with attribute+element resource api (14bd3c4)
- controller: use switch in mount synthetic (46f62bf)
- all: enforce 2nd param for hold (dfda3fe)
- custom-element: allow non-function types to be passed into isType (6990132)
- view: always clone parts (a058ac1)
- jit: fix template compiler+binder" (32181f8)
- resources: move merge helpers to kernel (9ceb1f7)
- controller: fix types and correctly use metadata (22ce19a)
- rendering-engine: fix types and correctly use metadata (26b6931)
- if: cleanup, go back to idiomatic aurelia code (fa12de4)
- repeat: cleanup, go back to idiomatic aurelia code (71c451d)
- with: cleanup, go back to idiomatic aurelia code (1efd937)
- custom-element: self-register definition in metadata (2d9c300)
- renderer: fix types and line length (a267098)
- render-context: fix types (3913596)
- ast: fix refs (4e0e01f)
- lifecycle: fix types (50d70b0)
- instructions: fix types (7bf3bb3)
- view: fix types (d46ef67)
- definitions: cleanup unnecessary types/logic and fix refs (d0955b6)
- bindable: fix types (428c2e7)
- children: fixup naming (1b3b2c2)
- custom-attribute: fixup bindable references (19ba25d)
- custom-element: fixup bindable/children references (3f4973e)
- children: normalize to similar mechanism as bindable (5083b10)
- bindable: cleanup decorator signature and definition logic (c84ea69)
- runtime: overhaul bindable, add annotations, fixup resource definitions (8cffcf5)
- custom-attribute: apply new metadata api (1b3a8d7)
- binding-behavior: apply new metadata api (c498f5f)
- value-converter: apply new metadata api (d75aa91)
- resources): prepend with a: (dd7c238)
- runtime: use metadata for customElement def and renderer cache (bccdc54)
- scheduler: add prio specific apis (5115f58)
- scheduler: reorder priorities (12cc85a)
- scheduler: add tests and fix the bugs they exposed (2babe82)
- scheduler: add global initialization and initial test setup (2d15388)
- scheduler: add interfaces (d141d94)
- *: drop unused imports (7755bbf)
- *: un-ignore some ts-ignore (5e19c62)
- all: rename BasicConfiguration in various packages (7e330d8)
- runtime: switch to switch (6ae23fe)
- custom-attrs: first pass removing dynamic options (03c5480)
- ref: move $au to INode (dbf1fce)
- controller: better typings (4cd9aab)
- ref: add component host interfaces, tweak getRefTarget (fb36d8b)
- ref: add ref command, add target ref (722778f)
- renderers: add getRefTarget (3a7387a)
- view-locator: some naming changes (271ce6d)
- view-locator: renaming a type (b227e15)
- blur/focus: isolated tests in their own host elements (8111b96)
- replaceable: use templateController deco (6c5dd91)
- resources: make the string keys the primary keys (747772a)
- runtime: clean up resource definitions (e58381a)
- runtime: cleanup binding behaviors & value converters (104bb10)
- renderer: cleanup renderer types and pre-bind render methods for perf (5b3ed88)
- resources: shorten resource names (499634b)
- binding: rename bindings (35d4dff)
- ast: add -Expression suffix to AST expression classes (0870538)
- all): more cleaning up after TS breaking changes: ( (c4c3fc7)
- replaceable: fix scoping and some variations of nesting (99b356c)
- lifecycle: split up the queues and take mounting out of RAF for now (766a743)
- if: do not use RAF queue for updates (9621a8a)
- all: use nextId for controller and all resources (e9ed2ac)
- controller: fix typings and add id property (e149ee0)
- all: move isNumeric/camelCase/kebabCase/toArray to separate functions and fix typings (f746e5b)
- lifecycle: experiment with priority-based deadlines (3e389a2)
- if: use raf queue (b45a868)
- subscriber-collection: simplify the callbacks for now (b3603d7)
- aurelia: properly integrate start/stop with lifecycle task again (1d3ac52)
- observation: cleanup unused flags and remove decorator layer for the time being (a16863b)
- ticker: move ticker + listener to runtime and integrate properly with lifecycle (0ba386c)
- lifecycle: move LifecycleTask to separate file (4770366)
- runtime: wire up the tasks a bit more properly (b7d3e4b)
- resources: expose view property (3168044)
- pixi: move pixi to plugin-pixi and fix/sync (50b1705)
- router: fix types and integrate controller (96c15d8)
- all: rename $customElement to $controller (aacf278)
- all: rename ILifecycleHooks to IViewModel (a4e2dad)
- runtime-html: fix create-element types and remove RuntimeBehavior (a34a9da)
- compose: integrate compose with tasks / controllers, fix typings (d86267e)
- custom-attributes: freeze the definitions (acc5813)
- runtime: add activator class and make the runtime compile again (b2a707a)
- runtime: minor fixes for custom attributes (6d99575)
- replaceable: integrate with controller and tasks (7eb1f57)
- runtime: remove non-keyed mode (c80fadb)
- repeat: refactor to use tasks and controller (cf7f079)
- if: integrate with controller (1259fc7)
- runtime: encapsulate lifecycle behavior in controller class (4c12498)
- subscriber-collection: cleanup and specialize the decorators, cleanup observers (4ae3768)
- all: move all testing utilities to aurelia-testing package (8f2fe34)
- replaceable: unwrap replaceable attribute lifecycle (ad0f29d)
- all: break out patch mode for now (e173d0c)
- all: more loosening up of null/undefined (6794c30)
- all: loosen up null/undefined (40bc93a)
- runtime: fix binding and observation strict types (b01d69a)
- *: remove Constructable "hack" and fix exposed typing errors (c3b6d46)
- *: use InjectArray (b35215f)
- ast: let flags pass through to getter/setter observers (a27dae0)
- runtime: remove/cleanup more flags (71b598b)
- runtime: remove unused instanceMutation flag (a57c484)
- runtime: remove connect-queue (b827710)
- *: minor linting refactor (f692d1f)
- runtime: support bindable array (943eed0)
- all: consolidate binding mechanisms into BindingStrategy enum (d319ba8)
- all: split traceInfo.name up in objName and methodName (2cdc203)
- lifecycles: use resource name for tracing (6febc5b)
- *: another round of linting fixes (ca0660b)
- *: another round of linting fixes (3e0f393)
- keyed: make lifecycles work properly in repeater keyed mode (e11d89e)
- ast: temporarily loosen up binding behavior idempotency (12b6f21)
- repeat: initial infra work for repeater keyed mode (ba31c62)
- lifecycle-render: remove arguments that can be resolved from the context (7eb2b5d)
- lifecycle: merge ILifecycleMount and ILifecycleUnmount into IMountableComponent (5e6db98)
- runtime: merge IHooks into ILifecycleHooks (3ed5116)
- all: combine bindable and attachable into component (a10461f)
- lifecycle: bind bindings before binding() hook and use binding() hook instead of bound() in repeater (970b70d)
- lifecycle: merge hooks interfaces (bbd3869)
- ast: make $kind property readonly (bdf2cb2)
- ast: abstract IConnectable (c2abd6e)
- ast: extract interfaces (7f16091)
- runtime: reduce dependencies in lifecycles (0a660e1)
- runtime: move all const enums to flags.ts (27da4ec)
- *: make unknown the default for InterfaceSymbol (0b77ce3)
- proxy-observer: move lookup to runtime (22f25db)
- proxy-observer: various tweaks and fixes (30f91e8)
- observation: initial wireup for proxy observation (86422eb)
- proxy-observer: use direct variable instead of weakmap for checking proxy existence (2bbab4d)
- proxy-observer: use string instead of symbol for raw prop (f1e09ce)
- all: prepare lifecycle flags arguments for proxy observation (1f8bf19)
- *: fix bantypes in tests (2d7bad8)
- *: enable ban-types linting rule and fix violations (00e61b1)
- ticker: improve frameDelta rounding (53e3aff)
- dirty-checker: rename disable to disabled (ed4803f)
- dirty-checker: cleanup and pass fromTick flag (871269f)
- dirty-checker: integrate with the raf ticker (848ca2e)
- all: reorganize all registrations and make them more composable (6fcce8b)
- all: expose registrations and registerables in a consistent manner (ea9e59c)
- *: linting fixes (a9e26ad)
- runtime: explicitly export non-internal items (1c05730)
- collection-observer: cleanup collection observation (c43244f)
- all: use Resource.define instead of decorators (045aa90)
- all: replace inject decorators with static inject properties (9fc37c1)
- all: move timer globals to PLATFORM (fa3bda3)
- observation: move observers to own files and rename Observer to SelfObserver (24beabf)
- jit: move html-specific logic to new jit-html package (3372cc8)
- runtime: reduce DOM API surface and dependencies on it (5512c64)
- observation: make isDOMObserver property optional (389ac47)
- runtime: completely remove dependencies on DOM-specific types (24819d2)
- runtime: further generalize the runtime (ab2b1d1)
- runtime: move html-specific stuff out of the runtime (645697f)
- all: use IDOM interface instead of DOM class (2f50900)
- dom: remove unused methods (c1927f4)
- all: make DOM injectable (a6305a0)
- signaler: move signaler to observation (4c71bac)
- runtime: move binding-context to observation (750e32f)
- runtime: move observers together (6022939)
- binding-behavior: shorten names (8e9ff09)
- runtime: put resources together (afed7b9)
- all: move resourceType from runtime to kernel (2c82c14)
- template-compiler: reimplement the template compiler with the template binder (ad94bd1)
- instructions: improve naming/typing consistency (1ad8d2a)
- jit: properly implement more complex replaceable scenarios (752e21f)
- runtime: strictNullChecks fixes (b000aa2)
- *: standardise on "as" type casts (d0933b8)
- runtime: fix or suppress Sonart linting errors (068174c)
- runtime: changes to Templating for strictPropertyInitialization (b24758f)
- *: linting fixes for IIndexable (63abddb)
- runtime: change Templating for strictPropertyInitialization (107a06e)
- runtime: fix no-http-string linting supression (26e2431)
- *: linting fixes for IIndexable (4faffed)
- *: fix no-floating-promises linting warnings (03cc0eb)
- *: partially revert renames due to no-reserved-keywords (478bd4b)
- *: fix no-floating-promises linting warnings (fc4018b)
- *: partially revert renames due to no-reserved-keywords (87501c1)
- *: 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)
- runtime: remove StrictAny in favor of unknown (eecb4a1)
- runtime: changes to Binding for strictPropertyInitialization (1e1d804)
- runtime: changes to Binding for strictPropertyInitialization (857efa1)
- resources: improve flexibility & strictness of resource types (499a189)
- *: fix errors and warnings reported by "lgtm" (173f364)
- *: add typeguards to decorators and rename Source to Definition (e8ea550)
- *: decorators use standalone function and has overload signatures (dffb514)
- runtime: add function overloads to "define" on "IResourceKind" (56425bf)
- runtime: decorate customElement (fa021a0)
- runtime: decorate customAttribute (b5de1a7)
- runtime: decorate valueConverter (62b5bc4)
- runtime: decorate bindingBehavior (406edce)
- *: fix errors and warnings reported by "lgtm" (c77b12c)
- runtime: move ICustomAttribute+ and ICustomElement+ interfaces (11b016c)
- *: derive ISomethingDefinition from a base IResourceDefinition (bdc0b6f)
- *: rename ISomethingSource to ISomethingDefinition (8f2727e)
- ast: define properties explicitly in constructor (7882fb7)
- runtime: define properties explicitly in constructor (b34bf00)
- runtime: decorate bindingBehavior (2507ffd)
- instructions: remove renderStrategy in favor of instructionRenderer (9aca18a)
- renderer: decouple instruction-specific processing from the renderer (c4cd235)
- instructions: move instruction classes from jit to runtime (45c186e)
- lifecycle: add registerTask api back in + preliminary test (738d32f)
- lifecycle: add task functionality back in (still a few details left todo) (59d7c6e)
- lifecycle: only unmount roots and several small tweaks for consistency (c0c948b)
- templating: move definitions up one level (1ea759e)
- templating: move view abstraction and composition-coordinator into lifecycle.ts (721bc43)
- lifecycle: remove unnecessary $connectFlags property (b616676)
- lifecycle: change the global lifecycle object into an injectable dependency (dc38d91)
- lifecycle: make bind + attach lifecycles more consistent, remove unneeded flag properties (ad9eafb)
- runtime: rename BindingFlags to LifecycleFlags (a3ad7f2)
- binding: initial implementation for new connect queue (481714f)
- view: move lifecycle logic to lifecycle files (da82092)
- runtime: shorten flushChanges to flush (e27e4f7)
- lifecycle-attach: wrap element/attribute attach in begin/end attach lifecycle (9f72223)
- templating: initial restructuring for lifecycle integration (fc8cf7b)
- runtime-behavior: merge $behavior.hooks into the resource definition (d41ecf1)
- lifecycle: shorten LifecycleHooks to Hooks (9c4efdb)
- lifecycle: shorten LifecycleState to State (42fe7c4)
- lifecycle: merge changeSet into lifecycle (63da3bb)
- lifecycle: merge bind and attach lifecycles (20b651a)
- lifecycle: normalize the start/end mechanism across lifecycle hooks (acd1fde)
- lifecycle: remove the async stuff for the time being (300820f)
- lifecycle: flatten the link structure (88c562c)
- lifecycle: merge attach with detach lifecycle (first integration step) (4a05985)
- templating: reorganize instructions/definitions (a16844f)
- runtime: cleanup/reorganize lifecycle types (a744a9f)
- all: reorganize/consolidate type structure (57b086f)
- create-element: rename PotentialRenderable to RenderPlan (38a188a)
- dom: try using 2 render locations" (b3d42b9)
- runtime: move change-set up one level (d2b7fe5)
- runtime: remove index.ts files from non-root locations and don't import from index (af19838)
- dom: try using 2 render locations (df68f15)
- containerless-projector: use component $state to determine needsMount (1657181)
- templating: move $isAttached, $needsMount and $isCached to flags (d0f384c)
- runtime: switch from $isBound to $state flags (f4d12bd)
- templating: make bindables and attachables into linked lists for lifecycle refactor (b5d12b3)
- templating: move createNodeSequence into factory class, move rendering related classes to rendering-engine, some tweaks in how templates are created (b9f7516)
- view: split up ViewFactory into ViewFactory and ViewCache (4fde7ef)
- change-set: implement changeSet as linked list (2c4a9f1)
- lifecycle: finish rename from add/remove nodes to mount/unmount (afc25fb)
- templating: rename $addNodes to $mount, $removeNodes to $unmount, mount to hold (83a11c6)
- customElement: rename onElementRemoved() to take() (fa699c7)
- dom: use static class properties instead of object" (b608223)
- bindable: improve typings and small tweak to the flow (27486a2)
- dom: don't declare globals (22f5765)
- dom: use static class properties instead of object (6d3604f)
- target-accessors: remove DOM dependency (dc5334e)
- element-observation: remove DOM dependency from element observers (7aa22aa)
- dom: remove DOM dependency from dom.ts (6175167)
- all: rename ICustomAttributeSource to IAttributeDefinition (df4babf)
- all: rename ITemplateSource to ITemplateDefinition and 'src' to 'def' (5c398c8)
- all: rename 'srcOrExpr' to 'from' and 'dest' to 'to' (e71b758)
- all: rename templateOrNode to template (ae04e9f)
- dom: create a stub class to represent au-marker (72b8905)
- templating: temporarily disable optimizations to get templating working correctly first (c0a6690)
0.3.0 (2018-10-12)
Features:
- binding: improve AST $kind classifying and other small tweaks/fixes (#213) (7267165)
- ast: add additional $kind classifications and eager initialize literals if they are pure (7267165)
- all: implement InterpolationBinding (1e804a0)
- binding-context: improve error reporting (1e804a0)
- 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)
- potential-renderable: autodetect when build is required (f296d04)
- render-context: throw more informative errors when the context is not prepared yet (f296d04)
- Aurelia: self register to container (5971d36)
- lifecycle: new callbacks, async tasks, and updated template controllers (#171) (7a9a635)
- lifecycle: minimal add/remove of nodes (7a9a635)
- lifecycle: enable detach tasks (7a9a635)
- lifecycle: enable attach tasks (7a9a635)
- lifecycle: stub out lifecycle flags (7a9a635)
- lifecycle: introduce child lifecycles (7a9a635)
- lifecycle: make detach/attach lifecycle symetric (7a9a635)
- lifecycle: add flags (7a9a635)
- lifecycle: overhaul (7a9a635)
- lifecycle: auto unbind after node removal (7a9a635)
- lifecycle: introduce lifecycle task (7a9a635)
- template-compiler: handle semicolon-separated bindings in attributes (ad6eeb4)
- jit: decouple attribute/element parsing from template compiler (ad6eeb4)
- template-compiler: add initial implementation of semantic model (ad6eeb4)
- renderer: throw specific error codes on target/instruction count mismatch (ad6eeb4)
- expression-parser: map empty attribute value to empty string for bound properties (7a92cd8)
Bug Fixes:
- subscriber-collection: remove circular dependency (c3e3779)
- ast: do not eager initialize pure literals (7267165)
- ast: fix a few issues with $kind and define static properties last (7267165)
- self-binding-behavior: fix event.path and type defs (7267165)
- expression-parser: fix differentation for caching of expressions/interpolations (1e804a0)
- iterator-binding: correctly compile and render ForOfStatement (1e804a0)
- signaler: make addSignalListener idempotent (1e804a0)
- 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)
- SelectObserver: complete implementation, adjust tests (ffdf01d)
- SelectObserver: simplify flow, remove debugger, add test (ffdf01d)
- 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)
- repeat: properly hook into attach/detach lifecycles (f296d04)
- repeat: synchronously bind child views (f296d04)
- repeat: use the correct lifecycle api for attach/detach (f296d04)
- lifecycle: fix task variable shadowing issue (f296d04)
- view: check nextSibling instead of previousSibling in mount() (f296d04)
- view: validate renderLocation and ensure $nodes.lastChild exists on mount (f296d04)
- RuntimeCompilationResources: do not auto register (5971d36)
- Observer: use identity instead of noop (5971d36)
- test: remove .only (5971d36)
- CustomElement: flush at startup (5971d36)
- CustomElement: remove unnecessary flush (5971d36)
- Observer: revert to noop (5971d36)
- Renderer: remove unnecessary checks (5971d36)
- lifecycle: remove unused code (7a9a635)
- lifecycle: improve types and resolve style issues (7a9a635)
- runtime: fix template controller tests (7a9a635)
- runtime: get remaining tests working again (7a9a635)
- template-compiler: make non-bindable customElement instructions siblings of the element instruction (ad6eeb4)
- template-compiler: properly resolve bindable customElement instructions by the registered attribute name (ad6eeb4)
- scope: add bindingContext to overrideContext (ad6eeb4)
- binding: lazy initialize slotNames based on need (57c07e8)
- observation: make property-accessor synchronous (57c07e8)
- observation: keep dom target accessors batched (57c07e8)
- 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)
- ast: predefine keyword literals and AccessThis, and reuse them (7267165)
- expression-parser: remove unreachable branch (f67a414)
- expression-parser: use explicit numeric comparisons for bitwise operators (197235c)
- repeat: basic utilization for indexMap to reduce unnecessary processing (f296d04)
- element-parser: use PLATFORM.emptyArray where possible and remove redundant property (ad6eeb4)
- template-compiler: convert parseAttribute to class instance with cache (ad6eeb4)
- semantic-model: use PLATFORM.emptyArray when possible (ad6eeb4)
- element-parser: use PLATFORM.emptyArray when possible (ad6eeb4)
- template-compiler: index the inspect/resolve buffers directly instead of destructuring (7a92cd8)
Refactorings:
- binding-context: explicitly model scope, context and observer lookup (#216) (c3e3779)
- binding: explicitly model scope, override/bindingctx and observerlookup (c3e3779)
- observer-locator: use direct lookup from bindingContext if available (c3e3779)
- binding: use more precise types (7267165)
- ast: move common properties back to static declaration (7267165)
- template-compiler: cleanup/inline instruction classes (1e804a0)
- binding: cleanup/shuffle some interfaces accordingly (f67a414)
- template-compiler: cleanup/inline instruction classes (f67a414)
- view-factory: use static maxCacheSize property (eff5bb7)
- SelectObserver: adjust SelectValueObserver synchronization (#208) (ffdf01d)
- repeat: use templateController decorator and clean everything up (f296d04)
- lifecycle: better naming and types for task api (7a9a635)
- jit: improve parser registration and attribute testing (ad6eeb4)
- attribute-parser: store raw attribute values in syntax (ad6eeb4)
- template-compiler: decouple entrypoint from internal recursion point (ad6eeb4)
- template-compiler: first step to integrate the semantic model (ad6eeb4)
- template-compiler: initial migration steps to semantic model (ad6eeb4)
- template-compiler: more small tweaks, enable a few more tests (ad6eeb4)
- template-compiler: recognize single value attribute as bindable (ad6eeb4)
- template-compiler: fix plain attribute compilation (ad6eeb4)
- template-compiler: fix template controller / repeater compilation (ad6eeb4)
- template-compiler: fix semicolon-separated attribute bindings (ad6eeb4)
- template-compiler: fix let and textNodes (ad6eeb4)
- template-compiler: fix as-element (ad6eeb4)
- template-compiler: fix surrogates (ad6eeb4)
- template-compiler: fix let.dest (ad6eeb4)
- template-compiler: fix as-element / resourceKey (ad6eeb4)
- template-compiler: fix bindable precedence (ad6eeb4)
- template-compiler: fix slots (ad6eeb4)
- template-compiler: fix nested+sibling template controllers and cleanup the api a bit (ad6eeb4)
- template-compiler: fix let (ad6eeb4)
- call: deprecate confusing $event property (57c07e8)
- 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:
- create-element: experimenting with supporting JSX (66504c8)
- compose: incrementally working towards implementation (66504c8)
- view: remove animations apis from view (66504c8)
- renderable: enable dynamically added children (66504c8)
- custom-element: enable better handling of containerless scenarios (66504c8)
- compose: enable composing of loose views (66504c8)
- compose: support rendering more types (66504c8)
- createElement: support text nodes and targeted instructions (66504c8)
- di: recurse through static registrations to find register methods in more edge cases (6bc2d4d)
- Let: let binding (#132) (c2a8324)
- runtime: Let binding, priorityInstructions (c2a8324)
- jit: implement instruction-compiler decorator (1067e03)
- runtime: implement render-strategy decorator (1067e03)
- JIT: template compiler (d584528)
- TemplateCompiler: surrogate behavior (d584528)
- kernel: add fast camelCase and kebabCase functions with caching (8debe4f)
- binding-context: add helper for creating a basic scope (5577a53)
- dbmonster: make dbmonster aot example work again (#101) (9e1eb5a)
- dbmonster: make dbmonster aot example work again (9e1eb5a)
- jit: move/extend attribute value parsing to the expression parser (#98) (53864a1)
- 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)
- templating: convert replaceable to use render location (#59) (7d1f8d4)
- templating: generalize attribute and element attachable child (7d1f8d4)
- templating: switch replaceable to use render location (7d1f8d4)
- binding: implement ChangeSet (#58) (144b1c6)
- binding: implement ChangeSet (144b1c6)
- templating: add the low-level render location abstraction (#57) (3c9735e)
- templating: add the low-level render location abstraction (3c9735e)
- custom-elements: define basic abstraction for element projection (0a17b16)
- runtime: enable getting the custom element behavior... (0a17b16)
- jit: implement interpolation & iterator (with destructuring) parsing (8ab2173)
- ast: initial implementation of ForOfStatement for iterating different collection types (8ab2173)
- ast: add metadata to the AST for ExpressionKind (8ab2173)
- jit: initial skeleton for customizeable binding commands (8ab2173)
- jit: simple first implementation for template-compiler (8ab2173)
Bug Fixes:
- custom-element: address typo in method check (66504c8)
- custom-element: remove special $child prop (66504c8)
- compose: correct inject metadata (66504c8)
- 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)
- let: cleanup (c2a8324)
- template compiler: slot signal (c2a8324)
- observer-locator: add collection length back in, fix precedence, add tests (#139) (581a680)
- observer-locator: add collection length back in, fix precedence, add tests (581a680)
- length-observer: add subscribe method (581a680)
- runtime-behavior: pass target flags to getterSetter observer (cf8390b)
- binding: report flags instead of nonexistent context (cf8390b)
- examples: correct versions (1b7c764)
- template-compiler: workaround for DI issue (1067e03)
- binding-command: rename file (1067e03)
- binding-command: pass correct bindingType to parser (1067e03)
- observer: store obj and propertyKey (d584528)
- template-compiler: merge camel-kebab changes and reuse platform functions (d584528)
- template-compiler: fix slip-up with attribute name (d584528)
- event-manager: use spec-compliant composedPath for shadowdom / fix linting (6381c5b)
- event-manager: fix .delegate and .capture, and add unit tests (6381c5b)
- typings: export event subscribers (6381c5b)
- event-manager: export listener tracker to resolve typing issues (6381c5b)
- tsconfig: correct extends path (797674f)
- e2e-benchmark: simplify markers and use setTimeout to include render time (8a8b619)
- binding-resources: lift register methods (5577a53)
- custom-attribute: life lifecycle methods (5577a53)
- custom-element: lift lifecycle methods (5577a53)
- runtime: convert if/else to use render location (#96) (22b32b5)
- runtime: convert if/else to use render location (22b32b5)
- if/else: set default value (22b32b5)
- binding-behavior: fix BindingModeBehavior (bb32291)
- binding-behavior: fix debounce, add unit tests (bb32291)
- repeat: reuse views when re-binding and allow null observer for non-collection iterables (9e1eb5a)
- expression-parser: use a separate lookup for non-interpolation attribute values (53864a1)
- template-compiler: use the target name instead of full name + fix tests (53864a1)
- template-compiler: add dest to one-time instruction (1ddff95)
- value-attribute-observer: don't notify subscribers if value hasn't changed (#95) (30e1099)
- element-observation: fix binding flags (4dc6cb8)
- checked-observer: fix fromValue updates / add unit tests (4dc6cb8)
- element-observation: remove error-causing notify (4dc6cb8)
- runtime: remove lazy bindable location and encapsulate observer (#90) (6607a14)
- runtime: remove lazy bindable location and encapsulate observer (6607a14)
- event-manager: use uppercase tagname (08d4bac)
- 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: dry up bindable callback behavior (#71) (11b26a5)
- 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)
- dom: append nodes to the correct thing (doh) (#66) (c7a8285)
- repeat: adjust repeater logic + tests to new mutation batching mechanism (c2a5e82)
- runtime: interface clarity (#61) (c4e26d3)
- runtime: correct kernel import (c4e26d3)
- runtime: make renderable and view factories interfaces have no default (c4e26d3)
- observation: fix subscriber typing (144b1c6)
- dom: correct TS error (3c9735e)
- templating: address trivial errors when removing emulation (0a17b16)
- templating: remove shadow dom from compose element (0a17b16)
- all: last few corrections from the merge (0a17b16)
- runtime: various fixes related to compose (0a17b16)
- all: correct types/properties and fix unit tests (8ab2173)
- template-compiler: small fixes, setup first simple integration tests (8ab2173)
- 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)
- ast: various small perf tweaks / cleanup redundancies (acf9ebc)
- ast: first evaluate, then connect (acf9ebc)
- binding: remove unnecessary work / cleanup (8a8b619)
Refactorings:
- di: append new resolvers on existing keys to a single array strategy resolver instead of nesting them (6bc2d4d)
- Let: add LetElementInstruction (c2a8324)
- template-compiler: move stuff around / fix various edge cases (#134) (5920299)
- template-compiler: move stuff around / fix various edge cases (5920299)
- template-compiler: hoist attribute inspection array / fix tests (5920299)
- template-compiler: various fixes and cleanups (1067e03)
- template-compiler: move binding commands to decorators (1067e03)
- binding-command: add handles method (1067e03)
- all: remove viewslot (#123) (fc9cbff)
- bindable: use platform.kebabCase (8debe4f)
- ast: switch while loops to for loops (same perf, more readable) (acf9ebc)
- binding: convert subscriber-collection to decorator for sync and async (8a8b619)
- view: increase cohesion of view code (#111) (2ccc770)
- runtime: lift resource methods (#107) (5577a53)
- if/else: some internal refactoring (22b32b5)
- if/else: remove some more duplication (22b32b5)
- parser: extract template/object/array literal parsing into functions (53864a1)
- jit: move interpolation parsing to the expression parser (53864a1)
- expression-parser: make bindingType mandatory and pass the correct types to the parser everywhere (53864a1)
- template-compiler: make compiler flow a bit more logical (53864a1)
- instructions: change number type to string (#97) (1ddff95)
- instructions: change number type to string, make const enum (1ddff95)
- binding: decouple BindingFlags.context from subscribers (4dc6cb8)
- binding-flags: cleanup unused flags (4dc6cb8)
- binding-flags: add fromFlushChanges to reduce batching redundancy, and expand the zeroes (4dc6cb8)
- binding-flags: rename binding-flags (4dc6cb8)
- property-observation: improve parameter naming (6607a14)
- dom: use uppercase tag names (#88) (08d4bac)
- dom: use uppercase tag names (08d4bac)
- dom: remove normalizedTagName (08d4bac)
- all: improving a couple of method names related to resources (#70) (49484e3)
- all: more flags (#69) (9e29f42)
- all: more flags (9e29f42)
- binding-flags: rename and add clarifying comments (9e29f42)
- binding-flags: change context to origin (9e29f42)
- repeater: use render-location instead of view-slot / general cleanup (6889328)
- repeater: first implementation step for ForOfStatement (6889328)
- binding: move the responsibility of batching target mutations to the target observers (c2a5e82)
- observation: move all element observers to element-observation (c2a5e82)
- class-observer: update class-observer to the new mutation batching mechanism (c2a5e82)
- checked-observer: update checked-observer to the new mutation batching mechanism (c2a5e82)
- select-value-observer: update select-value-observer to the new mutation batching mechanism (c2a5e82)
- observers: rename/move target accessors, cleanup typings, fix linting errors (c2a5e82)
- target-accessors: remove redundant previousValue (c2a5e82)
- observers: move from 'hasChanges' to 'this.oldValue !== currentValue' (c2a5e82)
- observers: extract common logic out into a decorator / cleanup select-value-observer (c2a5e82)
- runtime: renaming core interfaces for clarity (c4e26d3)
- runtime: move test fakes to a shareable location (7d1f8d4)
- binding: use ChangeSet instead of TaskQueue (144b1c6)
- property-observer: make reusable decorator for setter/observer (144b1c6)
- runtime: use "render location" terminology throughout (3c9735e)
- all: remove vCurrent repeater and collection observers (#55) (70b6696)
- jit: merge attribute name/value parsers into template-compiler (8ab2173)
- jit: use IResourceDescriptions for looking up resources (8ab2173)