v0.2.0
Pre-release
Pre-release
·
8936 commits
to master
since this release
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)
- template-compiler: as-element (#146) (4aa8538)
- template-compiler: as-element (4aa8538)
- 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)
- examples: add browserify example (d803211)
- 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)
- repeater: implement repeater with the new observation logic (3ad2a6a)
- repeater: implement repeater with the new observation logic (1893be3)
- observation: add improved collection observers (3222e4d)
- observation: add improved collection observers (383b052)
- rendering-engine: enable passing cache size through (91b4365)
- templating: add property name to bindable info (a9e715c)
- runtime: making resources into an explicit concept again (559e008)
- template-compiler: a proper abstraction for resources (3d62b7a)
- di: add optional resolver (7d7cbeb)
- all: prepare for template compiler integration (b314260)
- requirejs: implemented plugins for require.js (e6b7087)
- task-queue: sync with latest from current (bf242a7)
- component: enable differentiating types (7b1defa)
- DI: plumb IRegistry throughout and rename handlers to factories (a9dc8c9)
- templating: express readonly intent in many interfaces (5d28fb1)
- component: options param for hydrate API (57b0902)
- di: update to latest TS and improve DI sigs (76d95a3)
- lifecycle: introduce encapsulation source (59595da)
- ast: removed chain ast node (592f036)
- computed: handle all combintations of getters and setters (fb71631)
- binding: automatic computed observation (eff6fe2)
- expressions: add simple parser (41eeba6)
- DI: lots of new apis, including transformers (2c8f08f)
- repeat: port repeat implementation (147f0f1)
- component: enable $children property (750f984)
- view: finished first pass content view and observer work (3927f90)
- shadow-dom: getting closer to consistent child observation (02d71d6)
- pal: working on view abstractions (db361dc)
- signals: port from vCurrent (49ea175)
- with: port the with template controller from vCurrent (4b39aae)
- update-trigger-binding-behavior: port from vCurrent (1aa6d5b)
- throttle-binding-behavior: port from vCurrent (7b1fc51)
- self-binding-behavior: port from vCurrent (2f22815)
- sanitize: port from vCurrent (e0c08cd)
- replaceable: port from vCurrent (aefee1d)
- debounce-binding-behavior: port from vCurrent (d042d6f)
- binding-mode-behaviors: port from vCurrent (7af5c3b)
- attr-binding-behavior: port from vCurrent (1d3478e)
- templating: implement compose element (48f91d3)
- di: extract debug messages to debug module (4bef6f8)
- templating: templated part replacement (ee58d8d)
- visual: move animation from view slot to visual (655f443)
- slots: reduce duplication in view slot and shadow slot (5e75eab)
- lifecycle: lots of work on view slot and component lifecycle (e7677b0)
- view-slot: add APIs for auto cache return (a54aa51)
- all: synchronous and properly ordered attach/detach lifecycle (eb26d92)
- visual: making visual caching an implementation detail (5d9b669)
- view-factory: enable visual caching (5356de5)
- templating: improve imperative component APIs (97b2c0a)
- templating: enable HTML-only components (e5cbbac)
- templating: enable value converters and binding behaviors (950a4ca)
- svg: enable full optional svg binding (b92d80e)
- debug: improved expression debugging (e412d0f)
- configuration: use named configuration export objects throughout (144b79c)
- debug: introduce debug mode (92a5e34)
- task-queue: make debug mode for task queue (eb46814)
- component: introduce runtime characteristics (b072535)
- bindable: finish bindable implementation and convert if (ecf6a7f)
- decorators: add bindable (bfcb9c6)
- template: support component recursion (9632579)
- component: enabling configuring containerless (bde07aa)
- component: enable configuration shadow DOM (82e1bd6)
- templating: v0 custom attribute support (e946acf)
- decorators: add DI decorators (aaaa353)
- aurelia: remove unnecessary api (0f558b4)
- main: improve startup configuration (e4b5c83)
- all: view engine and DI throughout (4e53884)
- di: ported DI (0002dae)
- aurelia: improve startup api (36e23db)
- main: demonstrate global resources (d360004)
- view-resources: implemented root and view-scoped resources (0e58601)
- expression: create expression facade (4a2bf59)
- shadow-dom: finish fixing up emulation (6a2ac31)
- designtime: example of how designtime augments runtime (b5d0a00)
- shadow-dom: add native shadow dom support (551ff15)
- content-projection: added simple demo (c7faa74)
- shadow-dom: continuing to work towards content projection (32a1784)
- shadow-dom: first steps towards content projection (2d5fb90)
- component: add support for containerless elements (d06f731)
- aurelia: cleaning up the Aurelia gateway class (63834ca)
- compiled-element: no view components (51f17f5)
- compiled-element: enabled per-instance views for components (16e89fe)
- compiled-element: enable custom element property setting (457857a)
- binding: implement call binding command (da5b957)
- compiled-element: enable delegate and capture listeners (9203f39)
- compiled-element: custom attributes and from view bindings (083790b)
- compiled-element: add template controllers and view factories (06c0855)
- app2: add configuration for custom element in view (5fc6f9b)
- compiled-element: support custom elements (8974fc1)
- name-tag2: enable all features needed for name-tag (6d88055)
- compiled-element: hooking up more lifecycle events (9fc1682)
- compiled-element: setup getter/setter for observables (6439900)
- compiled-element: more generic implementation (ec58973)
- app2: a basic idea for an altnerative approach to runtime (6340643)
- observers: building in self observers and value coercion (32665f4)
- templating: working on component lifecycle (8d01b4c)
- binding: working on improved binding lifecycle (f8f5fb9)
- binding: add support for ref bindings to framework (4029fae)
- aurelia: better app start/stop model (fd0e9fb)
- compiler: basic compilation (df15bd5)
- ast: add typings (fa7e744)
- visual: extract base class for all dynamic visuals to reduce duplication (a6c67ae)
- app: add else demo (f673743)
- if: rename api to link if/else (3e582b8)
- if: is this how we want to handle internal property change events? (3394769)
- templating: working on views, components, slots (e250ac4)
- templating: adding some basic primitives (f35534f)
- framework: proper support for text node interpolation (11227a1)
- aurelia: better startup (deac3a8)
- all: converting much more over to real Aurelia code (46ebbad)
- framework: using more real Aurelia code from the AST (49cd5a4)
- framework: porting pieces needed for observer locator (b8a264f)
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 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)
- template-compiler: template controller instrs order, linking (#129) (d2f632f)
- 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)
- jit-aurelia-cli: apply huochunpeng's fixes (9517feb)
- jit-aurelia-cli: fix html file (9517feb)
- e2e-benchmark: fix vcurrent (a3db3a8)
- e2e-benchmark: add top-level deps (a3db3a8)
- e2e-benchmark: various fixes to make it all work (a3db3a8)
- binding-resources: lift register methods (5577a53)
- custom-attribute: life lifecycle methods (5577a53)
- custom-element: lift lifecycle methods (5577a53)
- di: convert invokers to an array (#106) (9236dec)
- 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)
- jit-browserify: build before serve so the e2e tests can run (d803211)
- 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)
- observation: add unit tests for map/set observation & fix some issues (7ad02c4)
- DOM: accidental import add (7064c0f)
- ci: fix path (3271c4c)
- signals: correct argument count (dec74e8)
- binding/resources: update bindingBehaviors with flags and new bindingMode (1b7c345)
- coverage: hacky workaround to fix the dtd url for cobertura (a293f64)
- test-dbmonster: do not require lifecycles for views (f9e3be3)
- repeat-strategy-array: missing visual type results in bad property (a569ddc)
- render-slot: correct insertion index (f9eed7c)
- render-slot: ensure that after insert, the render operation switches back to add (4cda527)
- test-dbmonster: adding missing whitespace (fbcb9c9)
- platform: improve node and strict mode global support (83e772a)
- resource: make name readonly (0d8a58c)
- name-tag.html: fix some incorrect markup (623ae30)
- svg: fix typo in svg analyzer (73aa471)
- demo: add html for compiled templates (e1eff3a)
- component: incorrect pluralization (412cacd)
- component: reduce code and fix variable bug in helper (2a16af3)
- component: correct slot type (a53514d)
- repeat: sync with Aurelia current fixes (c62bcda)
- unparser: update prefix to unary naming (bd8228e)
- parser: remove unnecessary cache check (c6ee36c)
- dom: improve INode interface symbol definition. (662af7e)
- shadow-dom: shrink api (82d3d6b)
- task-queue: remove use of setImmediate for throwing errors (e7e75f2)
- component: simplify and fix faulty slotted content (fada3d6)
- shadow-dom: refer to object by name (9e6cefc)
- binding-behavior/value-converter: correct registration (314445d)
- shadow-dom: add missing marker for template controllers (d064914)
- view-engine: element registration from pal (2f43193)
- view-slot: remove bogus import (015f553)
- view-slot: improve some typings (c38cf4e)
- component/visual: lifecycle hardening and timing fixes (1bc219e)
- visual: make lifecycle methods safe to call regardless of state (2cb2e4c)
- visual/slot: working on view slots, visuals and if/else (49c5d4d)
- select-value-observer: pull fixes from current Aurelia (50a3b6a)
- di: tighten up typing on createInterface (970b434)
- aurelia: enable apps after framework start (3a14557)
- bindable: more corrections for scenarios (f3db68f)
- bindable: enable decorator with and w/o parens (7c276a2)
- aurelia: naming for consistency (405e76c)
- designtime: flix the assignment (e766aa8)
- shadow-dom: improvements to types (5b35af8)
- compiled-element: make templates a string in the config (44b342e)
- compiled-element: correct lifecycle callback name (4ca3b6c)
- demo: correct html (44f81ed)
- app: make $observers non-enumerable (48bd5b1)
- generated: comment out incomplete code (1cfaf08)
- If: some fixes to if and template controller generated code (4320e2c)
- if: lots of fixes to if, binding order and view slot (630bb33)
- name-tag: set correct defaults (b90359d)
- checked-observer: update observer property name (3474373)
- framework: correct binding assign call (7a3aae1)
Performance Improvements:
- ast: various small perf tweaks / cleanup redundancies (acf9ebc)
- ast: first evaluate, then connect (acf9ebc)
- binding: remove unnecessary work / cleanup (8a8b619)
- event-manager: remove unnecessary code (b635016)
- computed: add computed caching (92e9132)
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)
- observation: simplify map/set/array synchronization from the indexMap by explicitly tracking deleted items (7ad02c4)
- binding-mode: deprecate oneWay and addturn bindingMode into flags (4bb62ab)
- binding: change things in the runtime accordingly, and apply a few optimizations to binding.ts (both related and unrelated to binding.ts) (4bb62ab)
- ast: various perf tweaks / remove redundancy / make behavior more similar to normal js (e81c33a)
- ast: various perf tweaks / remove redundancy / make behavior more similar to normal js (25c18ee)
- all: add binding-flags and reorder parameters to be more consistent (12b73f0)
- binding: remove connect-queue (temporarily) (fd4a56b)
- binding: merge binding with connectableBinding and connect-queue (7c26800)
- task-queue: change to a moving-cursor mechanism (e4403d4)
- binding: merge binding with connectableBinding and connect-queue (0183386)
- dom: various perf tweaks (7458be7)
- task-queue: change to a moving-cursor mechanism (44c9464)
- all: standardizing on "description" terminology (3e65665)
- bindable: move description/source to bindable file (1be6068)
- resources: move resources around (a08b4bb)
- all: solidfying the resource concept and updating all resource implementations (d7ad1cb)
- all: increasing cohesion (041aa0b)
- templating: move custom element, et al each into their own file (f7c78fc)
- runtime: some renaming of resources (16f02be)
- rendering-engine: some minor renaming of parameters (93fd1ac)
- all: extract kernel (4a711c3)
- component: consistent interface naming (4a90498)
- debug: make consistent debug feature function names (27bbb76)
- runtime: first attempt to add some immutability to the structures (f7da70a)
- parser: move main parser from runtime to jit (dde71e0)
- visual: improve lifecycle sigs (e3c47f7)
- lifecycle: improve lifecycle api (5c5b1ea)
- resources: use interface merging instead of dupe props (dfe31f5)
- component: don't use inheritance for components (1273fad)
- computed: move error to reporter (d0fee67)
- computed-observer: export create function as internal (15ed1cd)
- signals: remove duplicate signal mechanism (52d1e8f)
- expressions: rename parser to expression-parser (6b7a8a3)
- all: lots of refactoring including introducing abstraction layers (9a96a1c)
- all: lots of re-org in templating (1235992)
- templating: lots of shuffling around (542b338)
- all: lots of work cleaning things up (facf81c)
- expression: remove singleton and introduce IParser service (ade5c06)
- all: more work on refactoring DI use (670bfd9)
- all: first step of improving DI use throughout (8c952a9)
- dom: preparing for child observation on components (fe587d1)
- all: major rework to pal (f8ee287)
- customElement: rename decorator for multiple scenarios (3f10db9)
- visual: fix visual lifecycle method names to match others (0d10576)
- components: ensure no conflicting method additions (378f460)
- custom-element: rename hydrate to $hydrate (4fe6008)
- bindables: unify all bindable configuration sources (29ce162)
- instructions: clarify template runtime instructions (db0f5d5)
- slots/factories: rename types and properties (163daee)
- view-slot: introduce IViewSlot interface (5ba5234)
- shadow-dom: name types to reflect that it relates to emulation (f773bfd)
- component: merging apply to target into element component (c49c35b)
- slots: remove some unnecessary code and shuffle a bit (9cf613c)
- shadow-dom: reduce duplication (be3724a)
- animation: improve encapsulation and APIs around animation (0d770a8)
- lifecycle: renaming various APIs related to lifecycle management (2709033)
- observerlocator/pal: lots of cleanup (b766764)
- event-manager: big cleanup (59369ac)
- signals: reshape api (33aa14d)
- binding: lots of reorg, type changes, etc. (2e862e6)
- interfaces: move IDisposable to generatel interfaces (020bb9f)
- all: move and rename some interfaces (7354c0c)
- task-queue: make simpler api and introduce full interface (b1139a8)
- designtime: rename to jit (2f8b191)
- decorators: moved to the runtime root (9b07c8c)
- template: eliminate unnecessary binding helpers (8cff8ce)
- all: moving a bunch of stuff around related to templating (88461ac)
- util: move single util to DOM (c1cd306)
- all: fixing some interface names for consistency (da52f1c)
- component: create a better API for creating component constructors (1a3eb61)
- all: rename framework to runtime (c536a8a)
- templating: encapsulate view creation logic into template (b0d3787)
- view-factory: re-use class for plain views (1a94d36)
- compiled-element: some renaming and signature fixups (42f8a57)
- templating: move visual and various interfaces and related to new places (029dde2)
- all: more organization for expansion (3f89493)
- all: organizing the framework code (0e308fc)
- core: rename template instance to view (cd20f55)