Showing preview only (1,161K chars total). Download the full file or copy to clipboard to get everything.
Repository: aurelia/framework
Branch: master
Commit: 8a48521b34a3
Files: 39
Total size: 1.1 MB
Directory structure:
gitextract_w1sltfc8/
├── .editorconfig
├── .eslintrc.json
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE.md
│ └── workflows/
│ └── main.yml
├── .gitignore
├── .npmignore
├── BACKERS.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── bower.json
├── dist/
│ ├── amd/
│ │ ├── aurelia-framework.js
│ │ └── index.js
│ ├── commonjs/
│ │ ├── aurelia-framework.js
│ │ └── index.js
│ ├── es2015/
│ │ ├── aurelia-framework.js
│ │ └── index.js
│ ├── es2017/
│ │ └── aurelia-framework.js
│ ├── native-modules/
│ │ ├── aurelia-framework.js
│ │ └── index.js
│ ├── system/
│ │ ├── aurelia-framework.js
│ │ └── index.js
│ └── types/
│ └── aurelia-framework.d.ts
├── doc/
│ ├── CHANGELOG.md
│ ├── MAINTAINER.md
│ ├── api.json
│ └── cleanup.js
├── karma.conf.js
├── package.json
├── rollup.config.js
├── src/
│ ├── aurelia-framework.ts
│ ├── aurelia.ts
│ └── framework-configuration.ts
├── test/
│ ├── aurelia.spec.ts
│ ├── framework-configuration.spec.ts
│ └── setup.ts
├── tsconfig.json
└── typings.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .editorconfig
================================================
# EditorConfig is awesome: http://EditorConfig.org
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
# 2 space indentation
[**.*]
indent_style = space
indent_size = 2
================================================
FILE: .eslintrc.json
================================================
{
"root": true,
"parser": "@typescript-eslint/parser",
"extends": ["plugin:@typescript-eslint/recommended"],
"ignorePatterns": [
"node_modules",
"dist",
".vscode",
"*.config.js",
".webpack",
"_warmup",
"**/*.js"
],
"plugins": [],
"parserOptions": {
"ecmaVersion": 2019,
"sourceType": "module"
},
"rules": {
"@typescript-eslint/no-namespace": "off",
"@typescript-eslint/camelcase": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/consistent-type-assertions": "off",
"@typescript-eslint/ban-ts-ignore": "off",
"@typescript-eslint/no-var-requires": "off",
"@typescript-eslint/explicit-module-boundary-types": "off",
"prefer-const": "off"
}
}
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: aurelia
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
custom: # Replace with a single custom sponsorship URL
================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
<!--
ISSUES SUBMITTED THAT DO NOT FOLLOW THIS TEMPLATE WILL BE CLOSED.
SUPPORT REQUESTS/QUESTIONS: If you have a support request or question please
submit them to StackOverflow using the tags aurelia and aurelia-framework
http://stackoverflow.com/questions/tagged/aurelia
or the Aurelia Gitter https://gitter.im/aurelia/discuss
SUPPORT REQUESTS SUBMITTED HERE WILL BE CLOSED.
BUGS: Please use this template.
Blue Spire offers paid support agreements. Further information regarding paid support
may be obtained by emailing support@bluespire.com
The HTML comments below are for your reference, and are not displayed
when your issue is submitted, feel free to leave them.
Choose one of the two headings, delete the other.
-->
**I'm submitting a bug report**
**I'm submitting a feature request**
* **Library Version:**
major.minor.patch-pre
**Please tell us about your environment:**
* **Operating System:**
OSX 10.x|Linux (distro)|Windows [7|8|8.1|10]
* **Node Version:**
6.10.2
<!--
Minimum supported Node version is latest Node 4.x LTS
run `node -v`
-->
* **NPM Version:**
3.10.10
<!--
Minimum supported NPM version is 3.x
run `npm -v`
-->
* **Aurelia CLI OR JSPM OR Webpack AND Version**
CLI 0.27.0 | JSPM 0.16.53 | webpack 2.3.3
<!--
If using Aurelia CLI
run `au -v` in project root.
If using JSPM
run `jspm -v` in project root.
If using Webpack
run `webpack --help | grep webpack`
-->
* **Browser:**
all | Chrome XX | Firefox XX | Edge XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView
* **Language:**
all | TypeScript X.X | ESNext
**Current behavior:**
**Expected/desired behavior:**
<!--
If the current behavior is a bug, please provide the steps to reproduce and, if possible, a minimal demo of the
problem along with a runnable gist, if possible.
To create a runnable gist, go to https://gist.run/?id=7542e061bc940cde506b&sha=6821c521a6c7bae6f59a36fb8628ecd1032b2d10
Then click "Fork to Public Gist".
Create your gist, then finally click "Update Gist." Include a link to the gist.run below.
-->
* **What is the motivation / use case for changing the behavior?**
================================================
FILE: .github/workflows/main.yml
================================================
name: main
on: [push]
jobs:
ci:
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 14
- run: npm ci
- run: npm run test
- run: npm run cut-release
================================================
FILE: .gitignore
================================================
node_modules
jspm_packages
bower_components
.idea
.DS_STORE
build/reports
coverage
.npmrc
================================================
FILE: .npmignore
================================================
jspm_packages
bower_components
.idea
================================================
FILE: BACKERS.md
================================================
# Aurelia Backers
Below you'll find a list of the wonderful people and organizations that have made financial contributions to Aurelia. Please consider joining them in supporting open source by making [your own contribution on Open Collective](https://opencollective.com/aurelia/).
## Gold Sponsors
* [Hogia](https://www.hogia.se/)
## Silver Sponsors
* [Haselt](http://www.haselt.com)
* [Movavi Screen Recorder](https://www.movavi.com/screen-recorder/)
* [Symbiosys](https://www.smbsol.com/)
## Bronze Sponsors
* [Allan Pumphrey](https://opencollective.com/allan-pumphrey)
* [All Time List](https://alltimelist.com/)
* [AmVenture](https://www.amventure.com/)
* [AWISE](https://opencollective.com/awiseads)
* [Baytech Consulting](https://baytechconsulting.com)
* [Blokt](https://blokt.com/)
* [Buy.Fineproxy.Org](https://buy.fineproxy.org/eng/)
* [EduBirdie](https://edubirdie.com/research-papers-writing-services)
* [Capitalbay News](https://www.capitalbay.news/)
* [Casino Online](https://casinoonline.casino/)
* [Cosinot.net](https://www.casinot.net)
* [Casino Top](https://www.casinotop.com/)
* [Casino Topp](https://www.casinotopp.net/)
* [Clay](https://clay.global)
* [CodeFirst](https://www.codefirst.co.uk/)
* [CoinNewsSpan](https://www.coinnewsspan.com/)
* [CreeperHost](https://www.creeperhost.net/)
* [CrosswordSolver](https://www.crosswordsolver.com/)
* [Codeline](https://www.codeline.io/)
* [Datantify](http://datantify.com)
* [Diapason](https://www.diapason-treasury.com/trms/)
* [Dolittle](https://dolittle.com/)
* [Drive Software](https://drive.software)
* [EduBirdie](https://edubirdie.com/research-papers-writing-services)
* [Effectory](https://www.effectory.com/)
* [Exceptionless](https://exceptionless.com/)
* [Email Marketing Services](https://emailmarketingservices.io/)
* [Emfurn](https://emfurn.com/)
* [Fairlån](http://fair-laan.se)
* [Fire Stick Tricks](https://www.firesticktricks.com/)
* [Free Car Check](https://www.freecarcheck.uk)
* [Car Check Experts](https://carcheckexperts.co.uk/)
* [Keep Moving Care](https://keepmovingcare.com)
* [GiveMeDeals](https://www.givemedeals.com/)
* [ihorizon Pty Ltd](http://ihorizon.net/)
* [Kasinohai](https://www.kasinohai.com/nettikasinot)
* [Kasinot](https://www.kasinot.fi/)
* [Lånen.se](https://www.xn--lnen-qoa.se/)
* [Leon](https://opencollective.com/leon)
* [Loan Scouter](https://loanscouter.com/)
* [masonslots](https://masonslots.com/)
* [Matchbanker](https://matchbanker.es/)
* [Merchise](http://www.merchise.cl/)
* [Monetta](https://monetta.pl)
* [Money Pug](https://moneypug.co.uk/)
* [MonoVM](https://MonoVM.com)
* [Netpositive](https://opencollective.com/netpositive)
* [Nettikasinolista.com](https://nettikasinolista.com/)
* [Nettikasinot](https://www.nettikasinot.org/)
* [Nordic Trustee](https://nordictrustee.com/)
* [Onlinecasinoinformatie](https://onlinecasinoinformatie.com/)
* [Onlinecasinoplatz](https://onlinecasinoplatz.com/)
* [Ormasoft](http://www.ormasoft.cl/)
* [Paraskasino](https://www.paraskasino.fi)
* [Parhaat kasinosivut](https://www.kasinosivu.com/)
* [Parhaatkasinot](https://www.parhaatkasinot.com)
* [Pelisivut](https://www.pelisivut.com)
* [PromoCodeWatch](https://www.promocodewatch.com/)
* [RajBet](https://raj.bet/)
* [Simployer](https://www.simployer.no/)
* [Solace](https://solace.com/)
* [Super Credit](https://superkredit.net/)
* [Targeted Web Traffic](https://www.targetedwebtraffic.com/)
* [Team Extension](https://teamextension.io/)
* [Tekhattan](https://tekhattan.com/)
* [Top Web Design Agencies](https://opencollective.com/top-web-design-agencies)
* [TrueVendor](https://uiuxagencies.top)
* [Ungerboeck Software International](https://ungerboeck.com/)
* [Usave](https://usave.co.uk/utilities/broadband/)
* [UX Top 5](https://opencollective.com/ux-top-5)
* [Vevida](https://vevida.com/)
* [Virtual Private Servers](https://www.vpsserver.com/)
* [VPNGorilla](https://vpngorilla.com/)
* [Y8](https://www.y8.com/ )
* [Zambion](https://zambion.com/)
## Wood Sponsors
* [Adam Żurański](https://opencollective.com/adam-zuranski)
* [Alex Dresko](https://www.alexdresko.com/)
* [Alexander Taran](https://github.com/alexander-taran)
* [Allen Joslin](https://opencollective.com/allen-joslin)
* [Álvaro Domínguez López](https://twitter.com/alvarodlVR)
* [Ananth Subramanian](https://opencollective.com/ananth-subramanian)
* [Andrew Camilleri](https://github.com/Kukks)
* [Arjen de Blok](https://opencollective.com/arjen-de-blok)
* Artur Erotschkin
* [Arturo Martinez](https://twitter.com/artmasa)
* [Ats Uiboupin](https://github.com/atsu85)
* [Avraham Essoudry](https://github.com/avrahamcool)
* [Baocasino](https://opencollective.com/baocasino)
* [Bill Kurtson](https://opencollective.com/bill-kurtson)
* Bonus Finder [Canada](https://www.bonus.ca/), [US](https://www.bonusfinder.com/casino), [Deutschland](https://www.bonus.com.de/freispiele), [New Zealand](https://www.bonus.net.nz/free-spins)
* [Bing4](https://github.com/Bing4)
* [Brandon Ryan](https://mainstream-tech.com)
* [Brandon Wittwer](http://brandonwittwer.com/)
* [Carl Cubillas](https://github.com/cubski)
* [Carlos Rufo](https://github.com/swcarlosrj)
* [Cédric Vermeulen](https://opencollective.com/cedric-vermeulen)
* [Christian Kotzbauer](https://code-chris.github.io)
* [Christoph Noe](http://neonnoe.com/)
* [CP Huo](https://opencollective.com/cp-huo)
* [Cristián Ormazábal](https://www.ormasoft.cl/)
* [Daniel Kütt](https://twitter.com/kyttike)
* [Daniel Rothmaler](https://github.com/drothmaler)
* [David Morris](https://opencollective.com/david-morris)
* [David Snell](https://twitter.com/mentalengine)
* [Dexter Haslem](https://dexterhaslem.com/)
* [Dimitry Panchenko](https://opencollective.com/graycrow)
* [Dwayne Charrington](https://ilikekillnerds.com)
* [Eduardo Rocha](https://opencollective.com/hockdudu)
* [Enrico Padovani](https://alchemists.it)
* [Eric Edgar](https://twitter.com/ericedgar1)
* [Erik Lieben](https://www.eriklieben.com)
* [Fabian Ituarte](http://fabianituarte.com/)
* [Fabio Chines](https://tagsistemi.it)
* [Gamble Genie](https://gamblegenie.co.uk/)
* [George Breeze](http://styrit.com/)
* [GuruGate](https://www.gurugate.com/)
* [Hit Casino Bonus](https://hitcasinobonus.com/)
* [Hosting Canada](https://hostingcanada.org/)
* [HostPresto](https://hostpresto.com/)
* [Ivan Dolgintsev](https://opencollective.com/ivan-dolgintsev)
* [Jack Ma](https://twitter.com/jack4it)
* [James](https://opencollective.com/guest-22047709)
* [James Reategui](https://github.com/JamesReate)
* [John D'Amore](https://www.diameterhealth.com/)
* [John Manko](https://github.com/johnmanko)
* [Jon Carlson](https://opencollective.com/jon-carlson)
* [Jonas Frost](https://opencollective.com/jonas-frost)
* [Jordan Ware](https://opencollective.com/jordan-ware)
* [Jorge Rodríguez Galán](https://opencollective.com/jorge-rodriguez-galan)
* [Jørgen Skogås](https://opencollective.com/jorgen-skogas)
* [Josh Dovishaw](https://github.com/CuddleBunny)
* [Joseph Kesselring](https://github.com/jkesselring)
* [Ju Zhao](https://opencollective.com/ju-zhao)
* [Juliën Hanssens](https://hanssens.com)
* [Kenneth Moore](https://opencollective.com/thegooeyguy)
* [Khuzema Kanore](http://wisdom.com.kw)
* [Lance Newman](https://opencollective.com/lance-newman)
* [Leafdot s.r.o.](https://www.leafdot.net/)
* [Luka Cetina](https://opencollective.com/luka-cetina)
* [Marco Knol](https://www.linkedin.com/in/marco-knol-9ba01194/)
* [marekpetak](https://github.com/marekpetak)
* [Matter](https://matterapp.com/)
* [Matthew Conrad](https://github.com/mvrad)
* [Matthew Corven](https://opencollective.com/matthew-corven)
* [Michael Lakerveld](https://twitter.com/lakerfld)
* Michele Manara
* [Mogens Heller Grabe](https://github.com/mookid8000)
* [Montana Mendy](https://github.com/Montana)
* [Nate Judice](https://github.com/NaJ64)
* [Nettcasinobonus](https://nettcasinobonus.com/)
* [Nick Floyd](http://archcoder.com)
* [Nihar Damarasingu](https://opencollective.com/nihar-damarasingu)
* [Per K. Kummermo](https://twitter.com/MrDonutseeker)
* [PhilipTKC](https://github.com/PhilipTKC)
* [Plugin.IO](https://github.com/pluginio)
* [Prasan Kumar](https://antaressystems.com)
* [ProxyCrawl](https://proxycrawl.com/)
* [Red Feet](https://twitter.com/redfeet)
* [Richard Sykora](https://twitter.com/richardsykora)
* [Robert Binneman](https://github.com/RobertBinneman)
* [Robert B](https://opencollective.com/robert-b)
* [Robert Kling](https://klingcode.wordpress.com/)
* [Rodu](https://github.com/rodu)
* [Saqib Rokadia](https://invioinc.com/)
* [Saravanan Velappan](https://opencollective.com/saravanan-velappan)
* [Sayan Pal](https://twitter.com/Sayan751)
* [Scott Criswell](https://twitter.com/scriswell)
* [Sean Hunter](https://sean-hunter.io/)
* [Shannon Horn](http://smoothirish.com)
* [ShowMyIP](https://www.showmyip.com/)
* [Singletree Technologies](https://singletreetech.com/)
* [Steven Pena](https://twitter.com/steven_pena)
* [Taichi Shimizu](https://opencollective.com/taichi-shimizu)
* [Ted Chirvasiu](https://opencollective.com/ted-chirvasiu)
* [theArianit](https://github.com/theArianit)
* [Thomas Darling](https://github.com/thomas-darling)
* [Tomas Kulhanek](https://github.com/TomasKulhanek)
* [Tim Fish](https://github.com/timfish)
* [Tim Turner](https://github.com/fedoranimus)
* [Triplebyte](https://triplebyte.com/)
* [Tyler Presley](https://strengthen.io)
* [Unhype](https://unhype.com/)
* [Veikko Eeva](https://twitter.com/veikkoeeva)
* [Vildan Softic](http://pragmatic-coder.net)
* [Vasiliy Sayganov](https://opencollective.com/vasiliy-sayganov)
* [weagle08](https://github.com/weagle08)
* [William Entriken](https://github.com/fulldecent)
* [Writers Per Hour](https://writersperhour.com/urgent-essay-writing-service)
* [Yauri E](https://opencollective.com/yauri-e)
## One-Time Gifts
* [Allt om Företagslån](https://www.alltomforetagslan.se/)
* [Asht](https://opencollective.com/asht)
* [Besten Pfannen](https://opencollective.com/besten-pfannen)
* [Brian Oommen](https://opencollective.com/brian-oommen)
* [COMsulting](http://www.comsulting.de/)
* [Cupertino Panes](http://panejs.com/)
* [Daniyar Kulakhmetov](https://opencollective.com/daniyar-kulakhmetov)
* [Danny Cummings](https://opencollective.com/danny-cummings)
* [Dennis Battenfeld](https://opencollective.com/guest-3f58fba7)
* [Game Server Kings](https://www.gameserverkings.com/)
* [Huberto Kusters](https://opencollective.com/huberto-kusters)
* [IGUTech](https://www.igutech.com)
* [InfoCentral Solutions Pty Ltd](https://opencollective.com/infocentral-solutions-pty-ltd)
* [J. Austin Hughey](https://opencollective.com/j-austin-hughey)
* [Jason Sobell](https://opencollective.com/jason-sobell)
* [John Kattestaart](https://twitter.com/Jkattestaart)
* [Laurence Drews](https://opencollective.com/laurence-drews)
* [LEI Certificate](https://www.leicertificate.org/en/)
* [Lisa Gumerman](https://opencollective.com/lisa-gumerman)
* [Miroslav Popovic](https://miroslavpopovic.com)
* [Pyae Kyaw](https://opencollective.com/pyae-kyaw)
* [Radenko Zec](https://opencollective.com/radenkozec)
* [Ranorex](https://www.ranorex.com/)
* [Richard Bartley](https://twitter.com/RBRbBartley)
* [Steven Moore](https://twitter.com/smoore4moma)
* [Tiarnan Breffni](https://opencollective.com/tiarnan-breffni)
* [Waldemar Bandosz](https://twitter.com/wbanos)
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing
Please begin by reading [our contributing guidelines](https://github.com/DurandalProject/about/blob/master/CONTRIBUTING.md). The contributing document will provide you with all the information you need to get started. Later, as part of your first pull request, you will be asked to sign our Contributors License Agreement. More information on the process is included in the full [contributor's guide](https://github.com/DurandalProject/about/blob/master/CONTRIBUTING.md).
## Getting started
Ready to get started? The below sections take you through the steps required to get the framework running on your local development environment, and run the associated tests.
### Building The Code
To build the code, follow these steps.
1. Ensure that [NodeJS](http://nodejs.org/) is installed. This provides the platform on which the build tooling runs.
2. From the project folder, execute the following command:
```shell
npm install
```
3. Ensure that [Gulp](http://gulpjs.com/) is installed. If you need to install it, use the following command:
```shell
npm install -g gulp
```
4. To build the code, you can now run:
```shell
gulp build
```
5. You will find the compiled code in the `dist` folder, available in several different module formats.
6. See `gulpfile.js` for other available tasks.
### Running The Tests
To run the unit tests, first ensure that you have followed the steps above in order to install all dependencies and successfully build the library. Once you have done that, proceed with these additional steps:
1. Ensure that the [Karma](http://karma-runner.github.io/) CLI is installed. If you need to install it, use the following command:
```shell
npm install -g karma-cli
```
2. Ensure that [jspm](http://jspm.io/) is installed. If you need to install it, use the following command:
```shell
npm install -g jspm
```
3. Install the client-side dependencies with jspm:
```shell
jspm install
```
4. You can now run the tests with this command:
```shell
karma start
```
================================================
FILE: LICENSE
================================================
The MIT License (MIT)
Copyright (c) 2010 - 2018 Blue Spire Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
<p>
<a href="https://aurelia.io/" target="_blank">
<img alt="Aurelia" src="https://aurelia.io/styles/images/aurelia.svg">
</a>
</p>
[](https://opensource.org/licenses/MIT)
[](https://www.npmjs.com/package/aurelia-framework)

[](https://discourse.aurelia.io)
[](https://twitter.com/intent/follow?screen_name=aureliaeffect)
[](https://discord.gg/RBtyM6u)
# aurelia-framework
Aurelia is a modern, front-end JavaScript framework for building browser, mobile, and desktop applications. It focuses on aligning closely with web platform specifications, using convention over configuration, and having minimal framework intrusion. Basically, we want you to just write your code without the framework getting in your way. :wink:
This library is part of the [Aurelia](http://www.aurelia.io/) platform. It contains the `aurelia-framework` library, which brings together all the required core aurelia libraries into a ready-to-go application-building platform.
Aurelia applications are built by composing a series of simple components. By convention, components are made up of a vanilla JavaScript or Typescript class, with a corresponding HTML template.
```js
//app.js
export class App {
welcome = "Welcome to Aurelia";
quests = [
"To seek the holy grail",
"To take the ring to Mordor",
"To rescue princess Leia"
];
}
```
```html
<!-- app.html -->
<template>
<form>
<label for="name-field">What is your name?</label>
<input id="name-field" value.bind="name & debounce:500">
<label for="quest-field">What is your quest?</label>
<select id="quest-field" value.bind="quest">
<option></option>
<option repeat.for="q of quests">${q}</option>
</select>
</form>
<p if.bind="name">${welcome}, ${name}!</p>
<p if.bind="quest">Now set forth ${quest.toLowerCase()}!</p>
</template>
```
> Check out the interactive version of this example on [Code Sandbox](https://codesandbox.io/s/y41qjr36j).
This example shows you some of the powerful features of the aurelia binding syntax. To see further examples, online playgrounds, guides, and detailed API documentation, head on over to [aurelia.io](https://aurelia.io).
Feeling excited? To quickly get started building your project with aurelia, you can use the [aurelia CLI](https://aurelia.io/docs/cli/basics).
## Documentation
You can read the documentation for the aurelia framework [here](http://aurelia.io/docs). It's divided into the following sections:
* [Overview](https://aurelia.io/docs/) : Discover what Aurelia is along with its business and technical advantages.
* [Tutorials](https://aurelia.io/docs/tutorials) : Step-by-step tutorials teaching you how to build your first Aurelia applications.
* [Fundamentals](https://aurelia.io/docs/) : After you've completed the quick starts, learn more about Aurelia's app model, components, dependency injection and more.
* [Binding](https://aurelia.io/docs/binding): Learn all about Aurelia's powerful, reactive binding engine.
* [Templating](https://aurelia.io/docs/binding): Learn all about Aurelia's powerful templating engine.
* [Routing](https://aurelia.io/docs/routing): Learn how to setup and configure Aurelia's router.
* [Plugins](https://aurelia.io/docs/plugins): Learn about Aurelia's officially supported plugins and how to use them, including validation, i18n, http, dialog and state management.
* [Integration](https://aurelia.io/docs/integration): Learn how to integrate Aurelia with various other libraries and frameworks.
* [Testing](https://aurelia.io/docs/testing): Learn all about testing Aurelia apps, including component testing and e2e testing.
* [Server Side Rendering](https://aurelia.io/docs/ssr): Learn about Server Side Rendering with Aurelia and how to configure your project.
* [CLI](https://aurelia.io/docs/cli): Learn how to create, build, bundle and test your apps using all your favorite tools, facilitated by the Aurelia CLI.
* [Build Systems](https://aurelia.io/docs/build-systems): Learn how to use Webpack or JSPM directly for building apps without the Aurelia CLI.
> You can improve the documentation by contributing to [this repository](https://github.com/aurelia/documentation).
## Staying Up-to-Date
To keep up to date on [Aurelia](http://www.aurelia.io/), please visit and subscribe to [the official blog](http://blog.aurelia.io/) and [our email list](http://eepurl.com/ces50j). We also invite you to [follow us on twitter](https://twitter.com/aureliaeffect).
## Questions
If you have questions, join us in [our dedicated discourse forum](https://discourse.aurelia.io/) or submit questions on [stack overflow](http://stackoverflow.com/search?q=aurelia).
## Contributing
We'd love for you to contribute and help make Aurelia even better than it is today! You can start by checking out our [contributing guide](CONTRIBUTING.md), which has everything you need to get up and running.
## License
Aurelia is MIT licensed. You can find out more and read the license document [here](LICENSE).
================================================
FILE: bower.json
================================================
{
"name": "aurelia-framework",
"version": "1.4.1",
"description": "The aurelia framework brings together all the required core aurelia libraries into a ready-to-go application-building platform.",
"keywords": [
"aurelia",
"framework",
"spa"
],
"homepage": "http://aurelia.io",
"main": "dist/commonjs/aurelia-framework.js",
"moduleType": "node",
"license": "MIT",
"authors": [
"Rob Eisenberg <rob@bluespire.com> (http://robeisenberg.com/)"
],
"repository": {
"type": "git",
"url": "http://github.com/aurelia/framework"
},
"dependencies": {
"aurelia-binding": "^2.0.0",
"aurelia-dependency-injection": "^1.0.0",
"aurelia-loader": "^1.0.0",
"aurelia-logging": "^1.0.0",
"aurelia-metadata": "^1.0.0",
"aurelia-pal": "^1.0.0",
"aurelia-path": "^1.0.0",
"aurelia-task-queue": "^1.0.0",
"aurelia-templating": "^1.11.1"
}
}
================================================
FILE: dist/amd/aurelia-framework.js
================================================
define('aurelia-framework', ['exports', 'aurelia-dependency-injection', 'aurelia-binding', 'aurelia-metadata', 'aurelia-templating', 'aurelia-loader', 'aurelia-task-queue', 'aurelia-path', 'aurelia-pal', 'aurelia-logging'], (function (exports, aureliaDependencyInjection, aureliaBinding, aureliaMetadata, aureliaTemplating, aureliaLoader, aureliaTaskQueue, aureliaPath, aureliaPal, TheLogManager) { 'use strict';
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n["default"] = e;
return Object.freeze(n);
}
var TheLogManager__namespace = /*#__PURE__*/_interopNamespace(TheLogManager);
var logger = TheLogManager__namespace.getLogger('aurelia');
var extPattern = /\.[^/.]+$/;
function runTasks(config, tasks) {
var current;
var next = function () {
current = tasks.shift();
if (current) {
return Promise.resolve(current(config)).then(next);
}
return Promise.resolve();
};
return next();
}
function loadPlugin(fwConfig, loader, info) {
logger.debug("Loading plugin ".concat(info.moduleId, "."));
if (typeof info.moduleId === 'string') {
fwConfig.resourcesRelativeTo = info.resourcesRelativeTo;
var id = info.moduleId;
if (info.resourcesRelativeTo.length > 1) {
return loader.normalize(info.moduleId, info.resourcesRelativeTo[1])
.then(function (normalizedId) { return _loadPlugin(normalizedId); });
}
return _loadPlugin(id);
}
else if (typeof info.configure === 'function') {
if (fwConfig.configuredPlugins.indexOf(info.configure) !== -1) {
return Promise.resolve();
}
fwConfig.configuredPlugins.push(info.configure);
return Promise.resolve(info.configure.call(null, fwConfig, info.config || {}));
}
throw new Error(invalidConfigMsg(info.moduleId || info.configure, 'plugin'));
function _loadPlugin(moduleId) {
return loader.loadModule(moduleId).then(function (m) {
if ('configure' in m) {
if (fwConfig.configuredPlugins.indexOf(m.configure) !== -1) {
return Promise.resolve();
}
return Promise.resolve(m.configure(fwConfig, info.config || {})).then(function () {
fwConfig.configuredPlugins.push(m.configure);
fwConfig.resourcesRelativeTo = null;
logger.debug("Configured plugin ".concat(info.moduleId, "."));
});
}
fwConfig.resourcesRelativeTo = null;
logger.debug("Loaded plugin ".concat(info.moduleId, "."));
});
}
}
function loadResources(aurelia, resourcesToLoad, appResources) {
if (Object.keys(resourcesToLoad).length === 0) {
return Promise.resolve();
}
var viewEngine = aurelia.container.get(aureliaTemplating.ViewEngine);
return Promise.all(Object.keys(resourcesToLoad).map(function (n) { return _normalize(resourcesToLoad[n]); }))
.then(function (loads) {
var names = [];
var importIds = [];
loads.forEach(function (l) {
names.push(undefined);
importIds.push(l.importId);
});
return viewEngine.importViewResources(importIds, names, appResources);
});
function _normalize(load) {
var moduleId = load.moduleId;
var ext = getExt(moduleId);
if (isOtherResource(moduleId)) {
moduleId = removeExt(moduleId);
}
return aurelia.loader.normalize(moduleId, load.relativeTo)
.then(function (normalized) {
return {
name: load.moduleId,
importId: isOtherResource(load.moduleId) ? addOriginalExt(normalized, ext) : normalized
};
});
}
function isOtherResource(name) {
var ext = getExt(name);
if (!ext)
return false;
if (ext === '')
return false;
if (ext === '.js' || ext === '.ts')
return false;
return true;
}
function removeExt(name) {
return name.replace(extPattern, '');
}
function addOriginalExt(normalized, ext) {
return removeExt(normalized) + '.' + ext;
}
}
function getExt(name) {
var match = name.match(extPattern);
if (match && match.length > 0) {
return (match[0].split('.'))[1];
}
}
function loadBehaviors(config) {
return Promise.all(config.behaviorsToLoad.map(function (m) { return m.load(config.container, m.target); })).then(function () {
config.behaviorsToLoad = null;
});
}
function assertProcessed(plugins) {
if (plugins.processed) {
throw new Error('This config instance has already been applied. To load more plugins or global resources, create a new FrameworkConfiguration instance.');
}
}
function invalidConfigMsg(cfg, type) {
return "Invalid ".concat(type, " [").concat(cfg, "], ").concat(type, " must be specified as functions or relative module IDs.");
}
var FrameworkConfiguration = (function () {
function FrameworkConfiguration(aurelia) {
var _this = this;
this.aurelia = aurelia;
this.container = aurelia.container;
this.info = [];
this.processed = false;
this.preTasks = [];
this.postTasks = [];
this.behaviorsToLoad = [];
this.configuredPlugins = [];
this.resourcesToLoad = {};
this.preTask(function () { return aurelia.loader.normalize('aurelia-bootstrapper', undefined)
.then(function (name) { return _this.bootstrapperName = name; }); });
this.postTask(function () { return loadResources(aurelia, _this.resourcesToLoad, aurelia.resources); });
}
FrameworkConfiguration.prototype.instance = function (type, instance) {
this.container.registerInstance(type, instance);
return this;
};
FrameworkConfiguration.prototype.singleton = function (type, implementation) {
this.container.registerSingleton(type, implementation);
return this;
};
FrameworkConfiguration.prototype.transient = function (type, implementation) {
this.container.registerTransient(type, implementation);
return this;
};
FrameworkConfiguration.prototype.preTask = function (task) {
assertProcessed(this);
this.preTasks.push(task);
return this;
};
FrameworkConfiguration.prototype.postTask = function (task) {
assertProcessed(this);
this.postTasks.push(task);
return this;
};
FrameworkConfiguration.prototype.feature = function (plugin, config) {
if (config === void 0) { config = {}; }
switch (typeof plugin) {
case 'string':
var hasIndex = /\/index$/i.test(plugin);
var moduleId = hasIndex || getExt(plugin) ? plugin : plugin + '/index';
var root = hasIndex ? plugin.slice(0, -6) : plugin;
this.info.push({ moduleId: moduleId, resourcesRelativeTo: [root, ''], config: config });
break;
case 'function':
this.info.push({ configure: plugin, config: config || {} });
break;
default:
throw new Error(invalidConfigMsg(plugin, 'feature'));
}
return this;
};
FrameworkConfiguration.prototype.globalResources = function (resources) {
var _this = this;
assertProcessed(this);
var toAdd = Array.isArray(resources) ? resources : arguments;
var resource;
var resourcesRelativeTo = this.resourcesRelativeTo || ['', ''];
for (var i = 0, ii = toAdd.length; i < ii; ++i) {
resource = toAdd[i];
switch (typeof resource) {
case 'string':
var parent_1 = resourcesRelativeTo[0];
var grandParent = resourcesRelativeTo[1];
var name_1 = resource;
if ((resource.startsWith('./') || resource.startsWith('../')) && parent_1 !== '') {
name_1 = aureliaPath.join(parent_1, resource);
}
this.resourcesToLoad[name_1] = { moduleId: name_1, relativeTo: grandParent };
break;
case 'function':
var meta = this.aurelia.resources.autoRegister(this.container, resource);
if (meta instanceof aureliaTemplating.HtmlBehaviorResource && meta.elementName !== null) {
if (this.behaviorsToLoad.push(meta) === 1) {
this.postTask(function () { return loadBehaviors(_this); });
}
}
break;
default:
throw new Error(invalidConfigMsg(resource, 'resource'));
}
}
return this;
};
FrameworkConfiguration.prototype.globalName = function (resourcePath, newName) {
assertProcessed(this);
this.resourcesToLoad[resourcePath] = { moduleId: newName, relativeTo: '' };
return this;
};
FrameworkConfiguration.prototype.plugin = function (plugin, pluginConfig) {
assertProcessed(this);
var info;
switch (typeof plugin) {
case 'string':
info = { moduleId: plugin, resourcesRelativeTo: [plugin, ''], config: pluginConfig || {} };
break;
case 'function':
info = { configure: plugin, config: pluginConfig || {} };
break;
default:
throw new Error(invalidConfigMsg(plugin, 'plugin'));
}
this.info.push(info);
return this;
};
FrameworkConfiguration.prototype._addNormalizedPlugin = function (name, config) {
var _this = this;
var plugin = { moduleId: name, resourcesRelativeTo: [name, ''], config: config || {} };
this.info.push(plugin);
this.preTask(function () {
var relativeTo = [name, _this.bootstrapperName];
plugin.moduleId = name;
plugin.resourcesRelativeTo = relativeTo;
return Promise.resolve();
});
return this;
};
FrameworkConfiguration.prototype.defaultBindingLanguage = function () {
return this._addNormalizedPlugin('aurelia-templating-binding');
};
FrameworkConfiguration.prototype.router = function () {
return this._addNormalizedPlugin('aurelia-templating-router');
};
FrameworkConfiguration.prototype.history = function () {
return this._addNormalizedPlugin('aurelia-history-browser');
};
FrameworkConfiguration.prototype.defaultResources = function () {
return this._addNormalizedPlugin('aurelia-templating-resources');
};
FrameworkConfiguration.prototype.eventAggregator = function () {
return this._addNormalizedPlugin('aurelia-event-aggregator');
};
FrameworkConfiguration.prototype.basicConfiguration = function () {
return this.defaultBindingLanguage().defaultResources().eventAggregator();
};
FrameworkConfiguration.prototype.standardConfiguration = function () {
return this.basicConfiguration().history().router();
};
FrameworkConfiguration.prototype.developmentLogging = function (level) {
var _this = this;
var logLevel = level ? TheLogManager__namespace.logLevel[level] : undefined;
if (logLevel === undefined) {
logLevel = TheLogManager__namespace.logLevel.debug;
}
this.preTask(function () {
return _this.aurelia.loader.normalize('aurelia-logging-console', _this.bootstrapperName).then(function (name) {
return _this.aurelia.loader.loadModule(name).then(function (m) {
TheLogManager__namespace.addAppender(new m.ConsoleAppender());
TheLogManager__namespace.setLevel(logLevel);
});
});
});
return this;
};
FrameworkConfiguration.prototype.apply = function () {
var _this = this;
if (this.processed) {
return Promise.resolve();
}
return runTasks(this, this.preTasks).then(function () {
var loader = _this.aurelia.loader;
var info = _this.info;
var current;
var next = function () {
current = info.shift();
if (current) {
return loadPlugin(_this, loader, current).then(next);
}
_this.processed = true;
_this.configuredPlugins = null;
return Promise.resolve();
};
return next().then(function () { return runTasks(_this, _this.postTasks); });
});
};
return FrameworkConfiguration;
}());
function preventActionlessFormSubmit() {
aureliaPal.DOM.addEventListener('submit', function (evt) {
var target = evt.target;
var action = target.action;
if (target.tagName.toLowerCase() === 'form' && !action) {
evt.preventDefault();
}
}, false);
}
var Aurelia = (function () {
function Aurelia(loader, container, resources) {
this.loader = loader || new aureliaPal.PLATFORM.Loader();
this.container = container || (new aureliaDependencyInjection.Container()).makeGlobal();
this.resources = resources || new aureliaTemplating.ViewResources();
this.use = new FrameworkConfiguration(this);
this.logger = TheLogManager__namespace.getLogger('aurelia');
this.hostConfigured = false;
this.host = null;
this.use.instance(Aurelia, this);
this.use.instance(aureliaLoader.Loader, this.loader);
this.use.instance(aureliaTemplating.ViewResources, this.resources);
}
Aurelia.prototype.start = function () {
var _this = this;
if (this._started) {
return this._started;
}
this.logger.info('Aurelia Starting');
return this._started = this.use.apply().then(function () {
preventActionlessFormSubmit();
if (!_this.container.hasResolver(aureliaTemplating.BindingLanguage)) {
var message = 'You must configure Aurelia with a BindingLanguage implementation.';
_this.logger.error(message);
throw new Error(message);
}
_this.logger.info('Aurelia Started');
var evt = aureliaPal.DOM.createCustomEvent('aurelia-started', { bubbles: true, cancelable: true });
aureliaPal.DOM.dispatchEvent(evt);
return _this;
});
};
Aurelia.prototype.enhance = function (bindingContext, applicationHost) {
var _this = this;
if (bindingContext === void 0) { bindingContext = {}; }
if (applicationHost === void 0) { applicationHost = null; }
this._configureHost(applicationHost || aureliaPal.DOM.querySelectorAll('body')[0]);
return new Promise(function (resolve) {
var engine = _this.container.get(aureliaTemplating.TemplatingEngine);
_this.root = engine.enhance({ container: _this.container, element: _this.host, resources: _this.resources, bindingContext: bindingContext });
_this.root.attached();
_this._onAureliaComposed();
resolve(_this);
});
};
Aurelia.prototype.setRoot = function (root, applicationHost) {
var _this = this;
if (root === void 0) { root = null; }
if (applicationHost === void 0) { applicationHost = null; }
var instruction = {};
if (this.root && this.root.viewModel && this.root.viewModel.router) {
this.root.viewModel.router.deactivate();
this.root.viewModel.router.reset();
}
this._configureHost(applicationHost);
var engine = this.container.get(aureliaTemplating.TemplatingEngine);
var transaction = this.container.get(aureliaTemplating.CompositionTransaction);
delete transaction.initialComposition;
if (!root) {
if (this.configModuleId) {
root = aureliaPath.relativeToFile('./app', this.configModuleId);
}
else {
root = 'app';
}
}
instruction.viewModel = root;
instruction.container = instruction.childContainer = this.container;
instruction.viewSlot = this.hostSlot;
instruction.host = this.host;
return engine.compose(instruction).then(function (r) {
_this.root = r;
instruction.viewSlot.attached();
_this._onAureliaComposed();
return _this;
});
};
Aurelia.prototype._configureHost = function (applicationHost) {
if (this.hostConfigured) {
return;
}
applicationHost = applicationHost || this.host;
if (!applicationHost || typeof applicationHost === 'string') {
this.host = aureliaPal.DOM.getElementById(applicationHost || 'applicationHost');
}
else {
this.host = applicationHost;
}
if (!this.host) {
throw new Error('No applicationHost was specified.');
}
this.hostConfigured = true;
this.host.aurelia = this;
this.hostSlot = new aureliaTemplating.ViewSlot(this.host, true);
this.hostSlot.transformChildNodesIntoView();
this.container.registerInstance(aureliaPal.DOM.boundary, this.host);
};
Aurelia.prototype._onAureliaComposed = function () {
var evt = aureliaPal.DOM.createCustomEvent('aurelia-composed', { bubbles: true, cancelable: true });
setTimeout(function () { return aureliaPal.DOM.dispatchEvent(evt); }, 1);
};
return Aurelia;
}());
exports.LogManager = TheLogManager__namespace;
exports.Aurelia = Aurelia;
exports.FrameworkConfiguration = FrameworkConfiguration;
Object.keys(aureliaDependencyInjection).forEach(function (k) {
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return aureliaDependencyInjection[k]; }
});
});
Object.keys(aureliaBinding).forEach(function (k) {
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return aureliaBinding[k]; }
});
});
Object.keys(aureliaMetadata).forEach(function (k) {
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return aureliaMetadata[k]; }
});
});
Object.keys(aureliaTemplating).forEach(function (k) {
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return aureliaTemplating[k]; }
});
});
Object.keys(aureliaLoader).forEach(function (k) {
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return aureliaLoader[k]; }
});
});
Object.keys(aureliaTaskQueue).forEach(function (k) {
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return aureliaTaskQueue[k]; }
});
});
Object.keys(aureliaPath).forEach(function (k) {
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return aureliaPath[k]; }
});
});
Object.keys(aureliaPal).forEach(function (k) {
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return aureliaPal[k]; }
});
});
Object.defineProperty(exports, '__esModule', { value: true });
}));
//# sourceMappingURL=aurelia-framework.js.map
================================================
FILE: dist/amd/index.js
================================================
define(['exports', './aurelia-framework'], function (exports, _aureliaFramework) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.keys(_aureliaFramework).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _aureliaFramework[key];
}
});
});
});
================================================
FILE: dist/commonjs/aurelia-framework.js
================================================
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var aureliaDependencyInjection = require('aurelia-dependency-injection');
var aureliaBinding = require('aurelia-binding');
var aureliaMetadata = require('aurelia-metadata');
var aureliaTemplating = require('aurelia-templating');
var aureliaLoader = require('aurelia-loader');
var aureliaTaskQueue = require('aurelia-task-queue');
var aureliaPath = require('aurelia-path');
var aureliaPal = require('aurelia-pal');
var TheLogManager = require('aurelia-logging');
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n["default"] = e;
return Object.freeze(n);
}
var TheLogManager__namespace = /*#__PURE__*/_interopNamespace(TheLogManager);
var logger = TheLogManager__namespace.getLogger('aurelia');
var extPattern = /\.[^/.]+$/;
function runTasks(config, tasks) {
var current;
var next = function () {
current = tasks.shift();
if (current) {
return Promise.resolve(current(config)).then(next);
}
return Promise.resolve();
};
return next();
}
function loadPlugin(fwConfig, loader, info) {
logger.debug("Loading plugin ".concat(info.moduleId, "."));
if (typeof info.moduleId === 'string') {
fwConfig.resourcesRelativeTo = info.resourcesRelativeTo;
var id = info.moduleId;
if (info.resourcesRelativeTo.length > 1) {
return loader.normalize(info.moduleId, info.resourcesRelativeTo[1])
.then(function (normalizedId) { return _loadPlugin(normalizedId); });
}
return _loadPlugin(id);
}
else if (typeof info.configure === 'function') {
if (fwConfig.configuredPlugins.indexOf(info.configure) !== -1) {
return Promise.resolve();
}
fwConfig.configuredPlugins.push(info.configure);
return Promise.resolve(info.configure.call(null, fwConfig, info.config || {}));
}
throw new Error(invalidConfigMsg(info.moduleId || info.configure, 'plugin'));
function _loadPlugin(moduleId) {
return loader.loadModule(moduleId).then(function (m) {
if ('configure' in m) {
if (fwConfig.configuredPlugins.indexOf(m.configure) !== -1) {
return Promise.resolve();
}
return Promise.resolve(m.configure(fwConfig, info.config || {})).then(function () {
fwConfig.configuredPlugins.push(m.configure);
fwConfig.resourcesRelativeTo = null;
logger.debug("Configured plugin ".concat(info.moduleId, "."));
});
}
fwConfig.resourcesRelativeTo = null;
logger.debug("Loaded plugin ".concat(info.moduleId, "."));
});
}
}
function loadResources(aurelia, resourcesToLoad, appResources) {
if (Object.keys(resourcesToLoad).length === 0) {
return Promise.resolve();
}
var viewEngine = aurelia.container.get(aureliaTemplating.ViewEngine);
return Promise.all(Object.keys(resourcesToLoad).map(function (n) { return _normalize(resourcesToLoad[n]); }))
.then(function (loads) {
var names = [];
var importIds = [];
loads.forEach(function (l) {
names.push(undefined);
importIds.push(l.importId);
});
return viewEngine.importViewResources(importIds, names, appResources);
});
function _normalize(load) {
var moduleId = load.moduleId;
var ext = getExt(moduleId);
if (isOtherResource(moduleId)) {
moduleId = removeExt(moduleId);
}
return aurelia.loader.normalize(moduleId, load.relativeTo)
.then(function (normalized) {
return {
name: load.moduleId,
importId: isOtherResource(load.moduleId) ? addOriginalExt(normalized, ext) : normalized
};
});
}
function isOtherResource(name) {
var ext = getExt(name);
if (!ext)
return false;
if (ext === '')
return false;
if (ext === '.js' || ext === '.ts')
return false;
return true;
}
function removeExt(name) {
return name.replace(extPattern, '');
}
function addOriginalExt(normalized, ext) {
return removeExt(normalized) + '.' + ext;
}
}
function getExt(name) {
var match = name.match(extPattern);
if (match && match.length > 0) {
return (match[0].split('.'))[1];
}
}
function loadBehaviors(config) {
return Promise.all(config.behaviorsToLoad.map(function (m) { return m.load(config.container, m.target); })).then(function () {
config.behaviorsToLoad = null;
});
}
function assertProcessed(plugins) {
if (plugins.processed) {
throw new Error('This config instance has already been applied. To load more plugins or global resources, create a new FrameworkConfiguration instance.');
}
}
function invalidConfigMsg(cfg, type) {
return "Invalid ".concat(type, " [").concat(cfg, "], ").concat(type, " must be specified as functions or relative module IDs.");
}
var FrameworkConfiguration = (function () {
function FrameworkConfiguration(aurelia) {
var _this = this;
this.aurelia = aurelia;
this.container = aurelia.container;
this.info = [];
this.processed = false;
this.preTasks = [];
this.postTasks = [];
this.behaviorsToLoad = [];
this.configuredPlugins = [];
this.resourcesToLoad = {};
this.preTask(function () { return aurelia.loader.normalize('aurelia-bootstrapper', undefined)
.then(function (name) { return _this.bootstrapperName = name; }); });
this.postTask(function () { return loadResources(aurelia, _this.resourcesToLoad, aurelia.resources); });
}
FrameworkConfiguration.prototype.instance = function (type, instance) {
this.container.registerInstance(type, instance);
return this;
};
FrameworkConfiguration.prototype.singleton = function (type, implementation) {
this.container.registerSingleton(type, implementation);
return this;
};
FrameworkConfiguration.prototype.transient = function (type, implementation) {
this.container.registerTransient(type, implementation);
return this;
};
FrameworkConfiguration.prototype.preTask = function (task) {
assertProcessed(this);
this.preTasks.push(task);
return this;
};
FrameworkConfiguration.prototype.postTask = function (task) {
assertProcessed(this);
this.postTasks.push(task);
return this;
};
FrameworkConfiguration.prototype.feature = function (plugin, config) {
if (config === void 0) { config = {}; }
switch (typeof plugin) {
case 'string':
var hasIndex = /\/index$/i.test(plugin);
var moduleId = hasIndex || getExt(plugin) ? plugin : plugin + '/index';
var root = hasIndex ? plugin.slice(0, -6) : plugin;
this.info.push({ moduleId: moduleId, resourcesRelativeTo: [root, ''], config: config });
break;
case 'function':
this.info.push({ configure: plugin, config: config || {} });
break;
default:
throw new Error(invalidConfigMsg(plugin, 'feature'));
}
return this;
};
FrameworkConfiguration.prototype.globalResources = function (resources) {
var _this = this;
assertProcessed(this);
var toAdd = Array.isArray(resources) ? resources : arguments;
var resource;
var resourcesRelativeTo = this.resourcesRelativeTo || ['', ''];
for (var i = 0, ii = toAdd.length; i < ii; ++i) {
resource = toAdd[i];
switch (typeof resource) {
case 'string':
var parent_1 = resourcesRelativeTo[0];
var grandParent = resourcesRelativeTo[1];
var name_1 = resource;
if ((resource.startsWith('./') || resource.startsWith('../')) && parent_1 !== '') {
name_1 = aureliaPath.join(parent_1, resource);
}
this.resourcesToLoad[name_1] = { moduleId: name_1, relativeTo: grandParent };
break;
case 'function':
var meta = this.aurelia.resources.autoRegister(this.container, resource);
if (meta instanceof aureliaTemplating.HtmlBehaviorResource && meta.elementName !== null) {
if (this.behaviorsToLoad.push(meta) === 1) {
this.postTask(function () { return loadBehaviors(_this); });
}
}
break;
default:
throw new Error(invalidConfigMsg(resource, 'resource'));
}
}
return this;
};
FrameworkConfiguration.prototype.globalName = function (resourcePath, newName) {
assertProcessed(this);
this.resourcesToLoad[resourcePath] = { moduleId: newName, relativeTo: '' };
return this;
};
FrameworkConfiguration.prototype.plugin = function (plugin, pluginConfig) {
assertProcessed(this);
var info;
switch (typeof plugin) {
case 'string':
info = { moduleId: plugin, resourcesRelativeTo: [plugin, ''], config: pluginConfig || {} };
break;
case 'function':
info = { configure: plugin, config: pluginConfig || {} };
break;
default:
throw new Error(invalidConfigMsg(plugin, 'plugin'));
}
this.info.push(info);
return this;
};
FrameworkConfiguration.prototype._addNormalizedPlugin = function (name, config) {
var _this = this;
var plugin = { moduleId: name, resourcesRelativeTo: [name, ''], config: config || {} };
this.info.push(plugin);
this.preTask(function () {
var relativeTo = [name, _this.bootstrapperName];
plugin.moduleId = name;
plugin.resourcesRelativeTo = relativeTo;
return Promise.resolve();
});
return this;
};
FrameworkConfiguration.prototype.defaultBindingLanguage = function () {
return this._addNormalizedPlugin('aurelia-templating-binding');
};
FrameworkConfiguration.prototype.router = function () {
return this._addNormalizedPlugin('aurelia-templating-router');
};
FrameworkConfiguration.prototype.history = function () {
return this._addNormalizedPlugin('aurelia-history-browser');
};
FrameworkConfiguration.prototype.defaultResources = function () {
return this._addNormalizedPlugin('aurelia-templating-resources');
};
FrameworkConfiguration.prototype.eventAggregator = function () {
return this._addNormalizedPlugin('aurelia-event-aggregator');
};
FrameworkConfiguration.prototype.basicConfiguration = function () {
return this.defaultBindingLanguage().defaultResources().eventAggregator();
};
FrameworkConfiguration.prototype.standardConfiguration = function () {
return this.basicConfiguration().history().router();
};
FrameworkConfiguration.prototype.developmentLogging = function (level) {
var _this = this;
var logLevel = level ? TheLogManager__namespace.logLevel[level] : undefined;
if (logLevel === undefined) {
logLevel = TheLogManager__namespace.logLevel.debug;
}
this.preTask(function () {
return _this.aurelia.loader.normalize('aurelia-logging-console', _this.bootstrapperName).then(function (name) {
return _this.aurelia.loader.loadModule(name).then(function (m) {
TheLogManager__namespace.addAppender(new m.ConsoleAppender());
TheLogManager__namespace.setLevel(logLevel);
});
});
});
return this;
};
FrameworkConfiguration.prototype.apply = function () {
var _this = this;
if (this.processed) {
return Promise.resolve();
}
return runTasks(this, this.preTasks).then(function () {
var loader = _this.aurelia.loader;
var info = _this.info;
var current;
var next = function () {
current = info.shift();
if (current) {
return loadPlugin(_this, loader, current).then(next);
}
_this.processed = true;
_this.configuredPlugins = null;
return Promise.resolve();
};
return next().then(function () { return runTasks(_this, _this.postTasks); });
});
};
return FrameworkConfiguration;
}());
function preventActionlessFormSubmit() {
aureliaPal.DOM.addEventListener('submit', function (evt) {
var target = evt.target;
var action = target.action;
if (target.tagName.toLowerCase() === 'form' && !action) {
evt.preventDefault();
}
}, false);
}
var Aurelia = (function () {
function Aurelia(loader, container, resources) {
this.loader = loader || new aureliaPal.PLATFORM.Loader();
this.container = container || (new aureliaDependencyInjection.Container()).makeGlobal();
this.resources = resources || new aureliaTemplating.ViewResources();
this.use = new FrameworkConfiguration(this);
this.logger = TheLogManager__namespace.getLogger('aurelia');
this.hostConfigured = false;
this.host = null;
this.use.instance(Aurelia, this);
this.use.instance(aureliaLoader.Loader, this.loader);
this.use.instance(aureliaTemplating.ViewResources, this.resources);
}
Aurelia.prototype.start = function () {
var _this = this;
if (this._started) {
return this._started;
}
this.logger.info('Aurelia Starting');
return this._started = this.use.apply().then(function () {
preventActionlessFormSubmit();
if (!_this.container.hasResolver(aureliaTemplating.BindingLanguage)) {
var message = 'You must configure Aurelia with a BindingLanguage implementation.';
_this.logger.error(message);
throw new Error(message);
}
_this.logger.info('Aurelia Started');
var evt = aureliaPal.DOM.createCustomEvent('aurelia-started', { bubbles: true, cancelable: true });
aureliaPal.DOM.dispatchEvent(evt);
return _this;
});
};
Aurelia.prototype.enhance = function (bindingContext, applicationHost) {
var _this = this;
if (bindingContext === void 0) { bindingContext = {}; }
if (applicationHost === void 0) { applicationHost = null; }
this._configureHost(applicationHost || aureliaPal.DOM.querySelectorAll('body')[0]);
return new Promise(function (resolve) {
var engine = _this.container.get(aureliaTemplating.TemplatingEngine);
_this.root = engine.enhance({ container: _this.container, element: _this.host, resources: _this.resources, bindingContext: bindingContext });
_this.root.attached();
_this._onAureliaComposed();
resolve(_this);
});
};
Aurelia.prototype.setRoot = function (root, applicationHost) {
var _this = this;
if (root === void 0) { root = null; }
if (applicationHost === void 0) { applicationHost = null; }
var instruction = {};
if (this.root && this.root.viewModel && this.root.viewModel.router) {
this.root.viewModel.router.deactivate();
this.root.viewModel.router.reset();
}
this._configureHost(applicationHost);
var engine = this.container.get(aureliaTemplating.TemplatingEngine);
var transaction = this.container.get(aureliaTemplating.CompositionTransaction);
delete transaction.initialComposition;
if (!root) {
if (this.configModuleId) {
root = aureliaPath.relativeToFile('./app', this.configModuleId);
}
else {
root = 'app';
}
}
instruction.viewModel = root;
instruction.container = instruction.childContainer = this.container;
instruction.viewSlot = this.hostSlot;
instruction.host = this.host;
return engine.compose(instruction).then(function (r) {
_this.root = r;
instruction.viewSlot.attached();
_this._onAureliaComposed();
return _this;
});
};
Aurelia.prototype._configureHost = function (applicationHost) {
if (this.hostConfigured) {
return;
}
applicationHost = applicationHost || this.host;
if (!applicationHost || typeof applicationHost === 'string') {
this.host = aureliaPal.DOM.getElementById(applicationHost || 'applicationHost');
}
else {
this.host = applicationHost;
}
if (!this.host) {
throw new Error('No applicationHost was specified.');
}
this.hostConfigured = true;
this.host.aurelia = this;
this.hostSlot = new aureliaTemplating.ViewSlot(this.host, true);
this.hostSlot.transformChildNodesIntoView();
this.container.registerInstance(aureliaPal.DOM.boundary, this.host);
};
Aurelia.prototype._onAureliaComposed = function () {
var evt = aureliaPal.DOM.createCustomEvent('aurelia-composed', { bubbles: true, cancelable: true });
setTimeout(function () { return aureliaPal.DOM.dispatchEvent(evt); }, 1);
};
return Aurelia;
}());
exports.LogManager = TheLogManager__namespace;
exports.Aurelia = Aurelia;
exports.FrameworkConfiguration = FrameworkConfiguration;
Object.keys(aureliaDependencyInjection).forEach(function (k) {
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return aureliaDependencyInjection[k]; }
});
});
Object.keys(aureliaBinding).forEach(function (k) {
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return aureliaBinding[k]; }
});
});
Object.keys(aureliaMetadata).forEach(function (k) {
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return aureliaMetadata[k]; }
});
});
Object.keys(aureliaTemplating).forEach(function (k) {
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return aureliaTemplating[k]; }
});
});
Object.keys(aureliaLoader).forEach(function (k) {
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return aureliaLoader[k]; }
});
});
Object.keys(aureliaTaskQueue).forEach(function (k) {
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return aureliaTaskQueue[k]; }
});
});
Object.keys(aureliaPath).forEach(function (k) {
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return aureliaPath[k]; }
});
});
Object.keys(aureliaPal).forEach(function (k) {
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return aureliaPal[k]; }
});
});
//# sourceMappingURL=aurelia-framework.js.map
================================================
FILE: dist/commonjs/index.js
================================================
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _aureliaFramework = require('./aurelia-framework');
Object.keys(_aureliaFramework).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _aureliaFramework[key];
}
});
});
================================================
FILE: dist/es2015/aurelia-framework.js
================================================
import { Container } from 'aurelia-dependency-injection';
export * from 'aurelia-dependency-injection';
export * from 'aurelia-binding';
export * from 'aurelia-metadata';
import { HtmlBehaviorResource, ViewEngine, ViewResources, BindingLanguage, TemplatingEngine, CompositionTransaction, ViewSlot } from 'aurelia-templating';
export * from 'aurelia-templating';
import { Loader } from 'aurelia-loader';
export * from 'aurelia-loader';
export * from 'aurelia-task-queue';
import { join, relativeToFile } from 'aurelia-path';
export * from 'aurelia-path';
import { PLATFORM, DOM } from 'aurelia-pal';
export * from 'aurelia-pal';
import * as TheLogManager from 'aurelia-logging';
export { TheLogManager as LogManager };
const logger = TheLogManager.getLogger('aurelia');
const extPattern = /\.[^/.]+$/;
function runTasks(config, tasks) {
let current;
let next = () => {
current = tasks.shift();
if (current) {
return Promise.resolve(current(config)).then(next);
}
return Promise.resolve();
};
return next();
}
function loadPlugin(fwConfig, loader, info) {
logger.debug(`Loading plugin ${info.moduleId}.`);
if (typeof info.moduleId === 'string') {
fwConfig.resourcesRelativeTo = info.resourcesRelativeTo;
let id = info.moduleId;
if (info.resourcesRelativeTo.length > 1) {
return loader.normalize(info.moduleId, info.resourcesRelativeTo[1])
.then(normalizedId => _loadPlugin(normalizedId));
}
return _loadPlugin(id);
}
else if (typeof info.configure === 'function') {
if (fwConfig.configuredPlugins.indexOf(info.configure) !== -1) {
return Promise.resolve();
}
fwConfig.configuredPlugins.push(info.configure);
return Promise.resolve(info.configure.call(null, fwConfig, info.config || {}));
}
throw new Error(invalidConfigMsg(info.moduleId || info.configure, 'plugin'));
function _loadPlugin(moduleId) {
return loader.loadModule(moduleId).then(m => {
if ('configure' in m) {
if (fwConfig.configuredPlugins.indexOf(m.configure) !== -1) {
return Promise.resolve();
}
return Promise.resolve(m.configure(fwConfig, info.config || {})).then(() => {
fwConfig.configuredPlugins.push(m.configure);
fwConfig.resourcesRelativeTo = null;
logger.debug(`Configured plugin ${info.moduleId}.`);
});
}
fwConfig.resourcesRelativeTo = null;
logger.debug(`Loaded plugin ${info.moduleId}.`);
});
}
}
function loadResources(aurelia, resourcesToLoad, appResources) {
if (Object.keys(resourcesToLoad).length === 0) {
return Promise.resolve();
}
let viewEngine = aurelia.container.get(ViewEngine);
return Promise.all(Object.keys(resourcesToLoad).map(n => _normalize(resourcesToLoad[n])))
.then(loads => {
let names = [];
let importIds = [];
loads.forEach(l => {
names.push(undefined);
importIds.push(l.importId);
});
return viewEngine.importViewResources(importIds, names, appResources);
});
function _normalize(load) {
let moduleId = load.moduleId;
let ext = getExt(moduleId);
if (isOtherResource(moduleId)) {
moduleId = removeExt(moduleId);
}
return aurelia.loader.normalize(moduleId, load.relativeTo)
.then(normalized => {
return {
name: load.moduleId,
importId: isOtherResource(load.moduleId) ? addOriginalExt(normalized, ext) : normalized
};
});
}
function isOtherResource(name) {
let ext = getExt(name);
if (!ext)
return false;
if (ext === '')
return false;
if (ext === '.js' || ext === '.ts')
return false;
return true;
}
function removeExt(name) {
return name.replace(extPattern, '');
}
function addOriginalExt(normalized, ext) {
return removeExt(normalized) + '.' + ext;
}
}
function getExt(name) {
let match = name.match(extPattern);
if (match && match.length > 0) {
return (match[0].split('.'))[1];
}
}
function loadBehaviors(config) {
return Promise.all(config.behaviorsToLoad.map(m => m.load(config.container, m.target))).then(() => {
config.behaviorsToLoad = null;
});
}
function assertProcessed(plugins) {
if (plugins.processed) {
throw new Error('This config instance has already been applied. To load more plugins or global resources, create a new FrameworkConfiguration instance.');
}
}
function invalidConfigMsg(cfg, type) {
return `Invalid ${type} [${cfg}], ${type} must be specified as functions or relative module IDs.`;
}
class FrameworkConfiguration {
constructor(aurelia) {
this.aurelia = aurelia;
this.container = aurelia.container;
this.info = [];
this.processed = false;
this.preTasks = [];
this.postTasks = [];
this.behaviorsToLoad = [];
this.configuredPlugins = [];
this.resourcesToLoad = {};
this.preTask(() => aurelia.loader.normalize('aurelia-bootstrapper', undefined)
.then(name => this.bootstrapperName = name));
this.postTask(() => loadResources(aurelia, this.resourcesToLoad, aurelia.resources));
}
instance(type, instance) {
this.container.registerInstance(type, instance);
return this;
}
singleton(type, implementation) {
this.container.registerSingleton(type, implementation);
return this;
}
transient(type, implementation) {
this.container.registerTransient(type, implementation);
return this;
}
preTask(task) {
assertProcessed(this);
this.preTasks.push(task);
return this;
}
postTask(task) {
assertProcessed(this);
this.postTasks.push(task);
return this;
}
feature(plugin, config = {}) {
switch (typeof plugin) {
case 'string':
let hasIndex = /\/index$/i.test(plugin);
let moduleId = hasIndex || getExt(plugin) ? plugin : plugin + '/index';
let root = hasIndex ? plugin.slice(0, -6) : plugin;
this.info.push({ moduleId, resourcesRelativeTo: [root, ''], config });
break;
case 'function':
this.info.push({ configure: plugin, config: config || {} });
break;
default:
throw new Error(invalidConfigMsg(plugin, 'feature'));
}
return this;
}
globalResources(resources) {
assertProcessed(this);
let toAdd = Array.isArray(resources) ? resources : arguments;
let resource;
let resourcesRelativeTo = this.resourcesRelativeTo || ['', ''];
for (let i = 0, ii = toAdd.length; i < ii; ++i) {
resource = toAdd[i];
switch (typeof resource) {
case 'string':
let parent = resourcesRelativeTo[0];
let grandParent = resourcesRelativeTo[1];
let name = resource;
if ((resource.startsWith('./') || resource.startsWith('../')) && parent !== '') {
name = join(parent, resource);
}
this.resourcesToLoad[name] = { moduleId: name, relativeTo: grandParent };
break;
case 'function':
let meta = this.aurelia.resources.autoRegister(this.container, resource);
if (meta instanceof HtmlBehaviorResource && meta.elementName !== null) {
if (this.behaviorsToLoad.push(meta) === 1) {
this.postTask(() => loadBehaviors(this));
}
}
break;
default:
throw new Error(invalidConfigMsg(resource, 'resource'));
}
}
return this;
}
globalName(resourcePath, newName) {
assertProcessed(this);
this.resourcesToLoad[resourcePath] = { moduleId: newName, relativeTo: '' };
return this;
}
plugin(plugin, pluginConfig) {
assertProcessed(this);
let info;
switch (typeof plugin) {
case 'string':
info = { moduleId: plugin, resourcesRelativeTo: [plugin, ''], config: pluginConfig || {} };
break;
case 'function':
info = { configure: plugin, config: pluginConfig || {} };
break;
default:
throw new Error(invalidConfigMsg(plugin, 'plugin'));
}
this.info.push(info);
return this;
}
_addNormalizedPlugin(name, config) {
let plugin = { moduleId: name, resourcesRelativeTo: [name, ''], config: config || {} };
this.info.push(plugin);
this.preTask(() => {
let relativeTo = [name, this.bootstrapperName];
plugin.moduleId = name;
plugin.resourcesRelativeTo = relativeTo;
return Promise.resolve();
});
return this;
}
defaultBindingLanguage() {
return this._addNormalizedPlugin('aurelia-templating-binding');
}
router() {
return this._addNormalizedPlugin('aurelia-templating-router');
}
history() {
return this._addNormalizedPlugin('aurelia-history-browser');
}
defaultResources() {
return this._addNormalizedPlugin('aurelia-templating-resources');
}
eventAggregator() {
return this._addNormalizedPlugin('aurelia-event-aggregator');
}
basicConfiguration() {
return this.defaultBindingLanguage().defaultResources().eventAggregator();
}
standardConfiguration() {
return this.basicConfiguration().history().router();
}
developmentLogging(level) {
let logLevel = level ? TheLogManager.logLevel[level] : undefined;
if (logLevel === undefined) {
logLevel = TheLogManager.logLevel.debug;
}
this.preTask(() => {
return this.aurelia.loader.normalize('aurelia-logging-console', this.bootstrapperName).then(name => {
return this.aurelia.loader.loadModule(name).then(m => {
TheLogManager.addAppender(new m.ConsoleAppender());
TheLogManager.setLevel(logLevel);
});
});
});
return this;
}
apply() {
if (this.processed) {
return Promise.resolve();
}
return runTasks(this, this.preTasks).then(() => {
let loader = this.aurelia.loader;
let info = this.info;
let current;
let next = () => {
current = info.shift();
if (current) {
return loadPlugin(this, loader, current).then(next);
}
this.processed = true;
this.configuredPlugins = null;
return Promise.resolve();
};
return next().then(() => runTasks(this, this.postTasks));
});
}
}
function preventActionlessFormSubmit() {
DOM.addEventListener('submit', evt => {
const target = evt.target;
const action = target.action;
if (target.tagName.toLowerCase() === 'form' && !action) {
evt.preventDefault();
}
}, false);
}
class Aurelia {
constructor(loader, container, resources) {
this.loader = loader || new PLATFORM.Loader();
this.container = container || (new Container()).makeGlobal();
this.resources = resources || new ViewResources();
this.use = new FrameworkConfiguration(this);
this.logger = TheLogManager.getLogger('aurelia');
this.hostConfigured = false;
this.host = null;
this.use.instance(Aurelia, this);
this.use.instance(Loader, this.loader);
this.use.instance(ViewResources, this.resources);
}
start() {
if (this._started) {
return this._started;
}
this.logger.info('Aurelia Starting');
return this._started = this.use.apply().then(() => {
preventActionlessFormSubmit();
if (!this.container.hasResolver(BindingLanguage)) {
let message = 'You must configure Aurelia with a BindingLanguage implementation.';
this.logger.error(message);
throw new Error(message);
}
this.logger.info('Aurelia Started');
let evt = DOM.createCustomEvent('aurelia-started', { bubbles: true, cancelable: true });
DOM.dispatchEvent(evt);
return this;
});
}
enhance(bindingContext = {}, applicationHost = null) {
this._configureHost(applicationHost || DOM.querySelectorAll('body')[0]);
return new Promise(resolve => {
let engine = this.container.get(TemplatingEngine);
this.root = engine.enhance({ container: this.container, element: this.host, resources: this.resources, bindingContext: bindingContext });
this.root.attached();
this._onAureliaComposed();
resolve(this);
});
}
setRoot(root = null, applicationHost = null) {
let instruction = {};
if (this.root && this.root.viewModel && this.root.viewModel.router) {
this.root.viewModel.router.deactivate();
this.root.viewModel.router.reset();
}
this._configureHost(applicationHost);
let engine = this.container.get(TemplatingEngine);
let transaction = this.container.get(CompositionTransaction);
delete transaction.initialComposition;
if (!root) {
if (this.configModuleId) {
root = relativeToFile('./app', this.configModuleId);
}
else {
root = 'app';
}
}
instruction.viewModel = root;
instruction.container = instruction.childContainer = this.container;
instruction.viewSlot = this.hostSlot;
instruction.host = this.host;
return engine.compose(instruction).then((r) => {
this.root = r;
instruction.viewSlot.attached();
this._onAureliaComposed();
return this;
});
}
_configureHost(applicationHost) {
if (this.hostConfigured) {
return;
}
applicationHost = applicationHost || this.host;
if (!applicationHost || typeof applicationHost === 'string') {
this.host = DOM.getElementById(applicationHost || 'applicationHost');
}
else {
this.host = applicationHost;
}
if (!this.host) {
throw new Error('No applicationHost was specified.');
}
this.hostConfigured = true;
this.host.aurelia = this;
this.hostSlot = new ViewSlot(this.host, true);
this.hostSlot.transformChildNodesIntoView();
this.container.registerInstance(DOM.boundary, this.host);
}
_onAureliaComposed() {
let evt = DOM.createCustomEvent('aurelia-composed', { bubbles: true, cancelable: true });
setTimeout(() => DOM.dispatchEvent(evt), 1);
}
}
export { Aurelia, FrameworkConfiguration };
//# sourceMappingURL=aurelia-framework.js.map
================================================
FILE: dist/es2015/index.js
================================================
export * from './aurelia-framework';
================================================
FILE: dist/es2017/aurelia-framework.js
================================================
import { Container } from 'aurelia-dependency-injection';
export * from 'aurelia-dependency-injection';
export * from 'aurelia-binding';
export * from 'aurelia-metadata';
import { HtmlBehaviorResource, ViewEngine, ViewResources, BindingLanguage, TemplatingEngine, CompositionTransaction, ViewSlot } from 'aurelia-templating';
export * from 'aurelia-templating';
import { Loader } from 'aurelia-loader';
export * from 'aurelia-loader';
export * from 'aurelia-task-queue';
import { join, relativeToFile } from 'aurelia-path';
export * from 'aurelia-path';
import { PLATFORM, DOM } from 'aurelia-pal';
export * from 'aurelia-pal';
import * as TheLogManager from 'aurelia-logging';
export { TheLogManager as LogManager };
const logger = TheLogManager.getLogger('aurelia');
const extPattern = /\.[^/.]+$/;
function runTasks(config, tasks) {
let current;
let next = () => {
current = tasks.shift();
if (current) {
return Promise.resolve(current(config)).then(next);
}
return Promise.resolve();
};
return next();
}
function loadPlugin(fwConfig, loader, info) {
logger.debug(`Loading plugin ${info.moduleId}.`);
if (typeof info.moduleId === 'string') {
fwConfig.resourcesRelativeTo = info.resourcesRelativeTo;
let id = info.moduleId;
if (info.resourcesRelativeTo.length > 1) {
return loader.normalize(info.moduleId, info.resourcesRelativeTo[1])
.then(normalizedId => _loadPlugin(normalizedId));
}
return _loadPlugin(id);
}
else if (typeof info.configure === 'function') {
if (fwConfig.configuredPlugins.indexOf(info.configure) !== -1) {
return Promise.resolve();
}
fwConfig.configuredPlugins.push(info.configure);
return Promise.resolve(info.configure.call(null, fwConfig, info.config || {}));
}
throw new Error(invalidConfigMsg(info.moduleId || info.configure, 'plugin'));
function _loadPlugin(moduleId) {
return loader.loadModule(moduleId).then(m => {
if ('configure' in m) {
if (fwConfig.configuredPlugins.indexOf(m.configure) !== -1) {
return Promise.resolve();
}
return Promise.resolve(m.configure(fwConfig, info.config || {})).then(() => {
fwConfig.configuredPlugins.push(m.configure);
fwConfig.resourcesRelativeTo = null;
logger.debug(`Configured plugin ${info.moduleId}.`);
});
}
fwConfig.resourcesRelativeTo = null;
logger.debug(`Loaded plugin ${info.moduleId}.`);
});
}
}
function loadResources(aurelia, resourcesToLoad, appResources) {
if (Object.keys(resourcesToLoad).length === 0) {
return Promise.resolve();
}
let viewEngine = aurelia.container.get(ViewEngine);
return Promise.all(Object.keys(resourcesToLoad).map(n => _normalize(resourcesToLoad[n])))
.then(loads => {
let names = [];
let importIds = [];
loads.forEach(l => {
names.push(undefined);
importIds.push(l.importId);
});
return viewEngine.importViewResources(importIds, names, appResources);
});
function _normalize(load) {
let moduleId = load.moduleId;
let ext = getExt(moduleId);
if (isOtherResource(moduleId)) {
moduleId = removeExt(moduleId);
}
return aurelia.loader.normalize(moduleId, load.relativeTo)
.then(normalized => {
return {
name: load.moduleId,
importId: isOtherResource(load.moduleId) ? addOriginalExt(normalized, ext) : normalized
};
});
}
function isOtherResource(name) {
let ext = getExt(name);
if (!ext)
return false;
if (ext === '')
return false;
if (ext === '.js' || ext === '.ts')
return false;
return true;
}
function removeExt(name) {
return name.replace(extPattern, '');
}
function addOriginalExt(normalized, ext) {
return removeExt(normalized) + '.' + ext;
}
}
function getExt(name) {
let match = name.match(extPattern);
if (match && match.length > 0) {
return (match[0].split('.'))[1];
}
}
function loadBehaviors(config) {
return Promise.all(config.behaviorsToLoad.map(m => m.load(config.container, m.target))).then(() => {
config.behaviorsToLoad = null;
});
}
function assertProcessed(plugins) {
if (plugins.processed) {
throw new Error('This config instance has already been applied. To load more plugins or global resources, create a new FrameworkConfiguration instance.');
}
}
function invalidConfigMsg(cfg, type) {
return `Invalid ${type} [${cfg}], ${type} must be specified as functions or relative module IDs.`;
}
class FrameworkConfiguration {
constructor(aurelia) {
this.aurelia = aurelia;
this.container = aurelia.container;
this.info = [];
this.processed = false;
this.preTasks = [];
this.postTasks = [];
this.behaviorsToLoad = [];
this.configuredPlugins = [];
this.resourcesToLoad = {};
this.preTask(() => aurelia.loader.normalize('aurelia-bootstrapper', undefined)
.then(name => this.bootstrapperName = name));
this.postTask(() => loadResources(aurelia, this.resourcesToLoad, aurelia.resources));
}
instance(type, instance) {
this.container.registerInstance(type, instance);
return this;
}
singleton(type, implementation) {
this.container.registerSingleton(type, implementation);
return this;
}
transient(type, implementation) {
this.container.registerTransient(type, implementation);
return this;
}
preTask(task) {
assertProcessed(this);
this.preTasks.push(task);
return this;
}
postTask(task) {
assertProcessed(this);
this.postTasks.push(task);
return this;
}
feature(plugin, config = {}) {
switch (typeof plugin) {
case 'string':
let hasIndex = /\/index$/i.test(plugin);
let moduleId = hasIndex || getExt(plugin) ? plugin : plugin + '/index';
let root = hasIndex ? plugin.slice(0, -6) : plugin;
this.info.push({ moduleId, resourcesRelativeTo: [root, ''], config });
break;
case 'function':
this.info.push({ configure: plugin, config: config || {} });
break;
default:
throw new Error(invalidConfigMsg(plugin, 'feature'));
}
return this;
}
globalResources(resources) {
assertProcessed(this);
let toAdd = Array.isArray(resources) ? resources : arguments;
let resource;
let resourcesRelativeTo = this.resourcesRelativeTo || ['', ''];
for (let i = 0, ii = toAdd.length; i < ii; ++i) {
resource = toAdd[i];
switch (typeof resource) {
case 'string':
let parent = resourcesRelativeTo[0];
let grandParent = resourcesRelativeTo[1];
let name = resource;
if ((resource.startsWith('./') || resource.startsWith('../')) && parent !== '') {
name = join(parent, resource);
}
this.resourcesToLoad[name] = { moduleId: name, relativeTo: grandParent };
break;
case 'function':
let meta = this.aurelia.resources.autoRegister(this.container, resource);
if (meta instanceof HtmlBehaviorResource && meta.elementName !== null) {
if (this.behaviorsToLoad.push(meta) === 1) {
this.postTask(() => loadBehaviors(this));
}
}
break;
default:
throw new Error(invalidConfigMsg(resource, 'resource'));
}
}
return this;
}
globalName(resourcePath, newName) {
assertProcessed(this);
this.resourcesToLoad[resourcePath] = { moduleId: newName, relativeTo: '' };
return this;
}
plugin(plugin, pluginConfig) {
assertProcessed(this);
let info;
switch (typeof plugin) {
case 'string':
info = { moduleId: plugin, resourcesRelativeTo: [plugin, ''], config: pluginConfig || {} };
break;
case 'function':
info = { configure: plugin, config: pluginConfig || {} };
break;
default:
throw new Error(invalidConfigMsg(plugin, 'plugin'));
}
this.info.push(info);
return this;
}
_addNormalizedPlugin(name, config) {
let plugin = { moduleId: name, resourcesRelativeTo: [name, ''], config: config || {} };
this.info.push(plugin);
this.preTask(() => {
let relativeTo = [name, this.bootstrapperName];
plugin.moduleId = name;
plugin.resourcesRelativeTo = relativeTo;
return Promise.resolve();
});
return this;
}
defaultBindingLanguage() {
return this._addNormalizedPlugin('aurelia-templating-binding');
}
router() {
return this._addNormalizedPlugin('aurelia-templating-router');
}
history() {
return this._addNormalizedPlugin('aurelia-history-browser');
}
defaultResources() {
return this._addNormalizedPlugin('aurelia-templating-resources');
}
eventAggregator() {
return this._addNormalizedPlugin('aurelia-event-aggregator');
}
basicConfiguration() {
return this.defaultBindingLanguage().defaultResources().eventAggregator();
}
standardConfiguration() {
return this.basicConfiguration().history().router();
}
developmentLogging(level) {
let logLevel = level ? TheLogManager.logLevel[level] : undefined;
if (logLevel === undefined) {
logLevel = TheLogManager.logLevel.debug;
}
this.preTask(() => {
return this.aurelia.loader.normalize('aurelia-logging-console', this.bootstrapperName).then(name => {
return this.aurelia.loader.loadModule(name).then(m => {
TheLogManager.addAppender(new m.ConsoleAppender());
TheLogManager.setLevel(logLevel);
});
});
});
return this;
}
apply() {
if (this.processed) {
return Promise.resolve();
}
return runTasks(this, this.preTasks).then(() => {
let loader = this.aurelia.loader;
let info = this.info;
let current;
let next = () => {
current = info.shift();
if (current) {
return loadPlugin(this, loader, current).then(next);
}
this.processed = true;
this.configuredPlugins = null;
return Promise.resolve();
};
return next().then(() => runTasks(this, this.postTasks));
});
}
}
function preventActionlessFormSubmit() {
DOM.addEventListener('submit', evt => {
const target = evt.target;
const action = target.action;
if (target.tagName.toLowerCase() === 'form' && !action) {
evt.preventDefault();
}
}, false);
}
class Aurelia {
constructor(loader, container, resources) {
this.loader = loader || new PLATFORM.Loader();
this.container = container || (new Container()).makeGlobal();
this.resources = resources || new ViewResources();
this.use = new FrameworkConfiguration(this);
this.logger = TheLogManager.getLogger('aurelia');
this.hostConfigured = false;
this.host = null;
this.use.instance(Aurelia, this);
this.use.instance(Loader, this.loader);
this.use.instance(ViewResources, this.resources);
}
start() {
if (this._started) {
return this._started;
}
this.logger.info('Aurelia Starting');
return this._started = this.use.apply().then(() => {
preventActionlessFormSubmit();
if (!this.container.hasResolver(BindingLanguage)) {
let message = 'You must configure Aurelia with a BindingLanguage implementation.';
this.logger.error(message);
throw new Error(message);
}
this.logger.info('Aurelia Started');
let evt = DOM.createCustomEvent('aurelia-started', { bubbles: true, cancelable: true });
DOM.dispatchEvent(evt);
return this;
});
}
enhance(bindingContext = {}, applicationHost = null) {
this._configureHost(applicationHost || DOM.querySelectorAll('body')[0]);
return new Promise(resolve => {
let engine = this.container.get(TemplatingEngine);
this.root = engine.enhance({ container: this.container, element: this.host, resources: this.resources, bindingContext: bindingContext });
this.root.attached();
this._onAureliaComposed();
resolve(this);
});
}
setRoot(root = null, applicationHost = null) {
let instruction = {};
if (this.root && this.root.viewModel && this.root.viewModel.router) {
this.root.viewModel.router.deactivate();
this.root.viewModel.router.reset();
}
this._configureHost(applicationHost);
let engine = this.container.get(TemplatingEngine);
let transaction = this.container.get(CompositionTransaction);
delete transaction.initialComposition;
if (!root) {
if (this.configModuleId) {
root = relativeToFile('./app', this.configModuleId);
}
else {
root = 'app';
}
}
instruction.viewModel = root;
instruction.container = instruction.childContainer = this.container;
instruction.viewSlot = this.hostSlot;
instruction.host = this.host;
return engine.compose(instruction).then((r) => {
this.root = r;
instruction.viewSlot.attached();
this._onAureliaComposed();
return this;
});
}
_configureHost(applicationHost) {
if (this.hostConfigured) {
return;
}
applicationHost = applicationHost || this.host;
if (!applicationHost || typeof applicationHost === 'string') {
this.host = DOM.getElementById(applicationHost || 'applicationHost');
}
else {
this.host = applicationHost;
}
if (!this.host) {
throw new Error('No applicationHost was specified.');
}
this.hostConfigured = true;
this.host.aurelia = this;
this.hostSlot = new ViewSlot(this.host, true);
this.hostSlot.transformChildNodesIntoView();
this.container.registerInstance(DOM.boundary, this.host);
}
_onAureliaComposed() {
let evt = DOM.createCustomEvent('aurelia-composed', { bubbles: true, cancelable: true });
setTimeout(() => DOM.dispatchEvent(evt), 1);
}
}
export { Aurelia, FrameworkConfiguration };
//# sourceMappingURL=aurelia-framework.js.map
================================================
FILE: dist/native-modules/aurelia-framework.js
================================================
import { Container } from 'aurelia-dependency-injection';
export * from 'aurelia-dependency-injection';
export * from 'aurelia-binding';
export * from 'aurelia-metadata';
import { HtmlBehaviorResource, ViewEngine, BindingLanguage, TemplatingEngine, CompositionTransaction, ViewSlot, ViewResources } from 'aurelia-templating';
export * from 'aurelia-templating';
import { Loader } from 'aurelia-loader';
export * from 'aurelia-loader';
export * from 'aurelia-task-queue';
import { join, relativeToFile } from 'aurelia-path';
export * from 'aurelia-path';
import { DOM, PLATFORM } from 'aurelia-pal';
export * from 'aurelia-pal';
import * as TheLogManager from 'aurelia-logging';
export { TheLogManager as LogManager };
var logger = TheLogManager.getLogger('aurelia');
var extPattern = /\.[^/.]+$/;
function runTasks(config, tasks) {
var current;
var next = function () {
current = tasks.shift();
if (current) {
return Promise.resolve(current(config)).then(next);
}
return Promise.resolve();
};
return next();
}
function loadPlugin(fwConfig, loader, info) {
logger.debug("Loading plugin ".concat(info.moduleId, "."));
if (typeof info.moduleId === 'string') {
fwConfig.resourcesRelativeTo = info.resourcesRelativeTo;
var id = info.moduleId;
if (info.resourcesRelativeTo.length > 1) {
return loader.normalize(info.moduleId, info.resourcesRelativeTo[1])
.then(function (normalizedId) { return _loadPlugin(normalizedId); });
}
return _loadPlugin(id);
}
else if (typeof info.configure === 'function') {
if (fwConfig.configuredPlugins.indexOf(info.configure) !== -1) {
return Promise.resolve();
}
fwConfig.configuredPlugins.push(info.configure);
return Promise.resolve(info.configure.call(null, fwConfig, info.config || {}));
}
throw new Error(invalidConfigMsg(info.moduleId || info.configure, 'plugin'));
function _loadPlugin(moduleId) {
return loader.loadModule(moduleId).then(function (m) {
if ('configure' in m) {
if (fwConfig.configuredPlugins.indexOf(m.configure) !== -1) {
return Promise.resolve();
}
return Promise.resolve(m.configure(fwConfig, info.config || {})).then(function () {
fwConfig.configuredPlugins.push(m.configure);
fwConfig.resourcesRelativeTo = null;
logger.debug("Configured plugin ".concat(info.moduleId, "."));
});
}
fwConfig.resourcesRelativeTo = null;
logger.debug("Loaded plugin ".concat(info.moduleId, "."));
});
}
}
function loadResources(aurelia, resourcesToLoad, appResources) {
if (Object.keys(resourcesToLoad).length === 0) {
return Promise.resolve();
}
var viewEngine = aurelia.container.get(ViewEngine);
return Promise.all(Object.keys(resourcesToLoad).map(function (n) { return _normalize(resourcesToLoad[n]); }))
.then(function (loads) {
var names = [];
var importIds = [];
loads.forEach(function (l) {
names.push(undefined);
importIds.push(l.importId);
});
return viewEngine.importViewResources(importIds, names, appResources);
});
function _normalize(load) {
var moduleId = load.moduleId;
var ext = getExt(moduleId);
if (isOtherResource(moduleId)) {
moduleId = removeExt(moduleId);
}
return aurelia.loader.normalize(moduleId, load.relativeTo)
.then(function (normalized) {
return {
name: load.moduleId,
importId: isOtherResource(load.moduleId) ? addOriginalExt(normalized, ext) : normalized
};
});
}
function isOtherResource(name) {
var ext = getExt(name);
if (!ext)
return false;
if (ext === '')
return false;
if (ext === '.js' || ext === '.ts')
return false;
return true;
}
function removeExt(name) {
return name.replace(extPattern, '');
}
function addOriginalExt(normalized, ext) {
return removeExt(normalized) + '.' + ext;
}
}
function getExt(name) {
var match = name.match(extPattern);
if (match && match.length > 0) {
return (match[0].split('.'))[1];
}
}
function loadBehaviors(config) {
return Promise.all(config.behaviorsToLoad.map(function (m) { return m.load(config.container, m.target); })).then(function () {
config.behaviorsToLoad = null;
});
}
function assertProcessed(plugins) {
if (plugins.processed) {
throw new Error('This config instance has already been applied. To load more plugins or global resources, create a new FrameworkConfiguration instance.');
}
}
function invalidConfigMsg(cfg, type) {
return "Invalid ".concat(type, " [").concat(cfg, "], ").concat(type, " must be specified as functions or relative module IDs.");
}
var FrameworkConfiguration = (function () {
function FrameworkConfiguration(aurelia) {
var _this = this;
this.aurelia = aurelia;
this.container = aurelia.container;
this.info = [];
this.processed = false;
this.preTasks = [];
this.postTasks = [];
this.behaviorsToLoad = [];
this.configuredPlugins = [];
this.resourcesToLoad = {};
this.preTask(function () { return aurelia.loader.normalize('aurelia-bootstrapper', undefined)
.then(function (name) { return _this.bootstrapperName = name; }); });
this.postTask(function () { return loadResources(aurelia, _this.resourcesToLoad, aurelia.resources); });
}
FrameworkConfiguration.prototype.instance = function (type, instance) {
this.container.registerInstance(type, instance);
return this;
};
FrameworkConfiguration.prototype.singleton = function (type, implementation) {
this.container.registerSingleton(type, implementation);
return this;
};
FrameworkConfiguration.prototype.transient = function (type, implementation) {
this.container.registerTransient(type, implementation);
return this;
};
FrameworkConfiguration.prototype.preTask = function (task) {
assertProcessed(this);
this.preTasks.push(task);
return this;
};
FrameworkConfiguration.prototype.postTask = function (task) {
assertProcessed(this);
this.postTasks.push(task);
return this;
};
FrameworkConfiguration.prototype.feature = function (plugin, config) {
if (config === void 0) { config = {}; }
switch (typeof plugin) {
case 'string':
var hasIndex = /\/index$/i.test(plugin);
var moduleId = hasIndex || getExt(plugin) ? plugin : plugin + '/index';
var root = hasIndex ? plugin.slice(0, -6) : plugin;
this.info.push({ moduleId: moduleId, resourcesRelativeTo: [root, ''], config: config });
break;
case 'function':
this.info.push({ configure: plugin, config: config || {} });
break;
default:
throw new Error(invalidConfigMsg(plugin, 'feature'));
}
return this;
};
FrameworkConfiguration.prototype.globalResources = function (resources) {
var _this = this;
assertProcessed(this);
var toAdd = Array.isArray(resources) ? resources : arguments;
var resource;
var resourcesRelativeTo = this.resourcesRelativeTo || ['', ''];
for (var i = 0, ii = toAdd.length; i < ii; ++i) {
resource = toAdd[i];
switch (typeof resource) {
case 'string':
var parent_1 = resourcesRelativeTo[0];
var grandParent = resourcesRelativeTo[1];
var name_1 = resource;
if ((resource.startsWith('./') || resource.startsWith('../')) && parent_1 !== '') {
name_1 = join(parent_1, resource);
}
this.resourcesToLoad[name_1] = { moduleId: name_1, relativeTo: grandParent };
break;
case 'function':
var meta = this.aurelia.resources.autoRegister(this.container, resource);
if (meta instanceof HtmlBehaviorResource && meta.elementName !== null) {
if (this.behaviorsToLoad.push(meta) === 1) {
this.postTask(function () { return loadBehaviors(_this); });
}
}
break;
default:
throw new Error(invalidConfigMsg(resource, 'resource'));
}
}
return this;
};
FrameworkConfiguration.prototype.globalName = function (resourcePath, newName) {
assertProcessed(this);
this.resourcesToLoad[resourcePath] = { moduleId: newName, relativeTo: '' };
return this;
};
FrameworkConfiguration.prototype.plugin = function (plugin, pluginConfig) {
assertProcessed(this);
var info;
switch (typeof plugin) {
case 'string':
info = { moduleId: plugin, resourcesRelativeTo: [plugin, ''], config: pluginConfig || {} };
break;
case 'function':
info = { configure: plugin, config: pluginConfig || {} };
break;
default:
throw new Error(invalidConfigMsg(plugin, 'plugin'));
}
this.info.push(info);
return this;
};
FrameworkConfiguration.prototype._addNormalizedPlugin = function (name, config) {
var _this = this;
var plugin = { moduleId: name, resourcesRelativeTo: [name, ''], config: config || {} };
this.info.push(plugin);
this.preTask(function () {
var relativeTo = [name, _this.bootstrapperName];
plugin.moduleId = name;
plugin.resourcesRelativeTo = relativeTo;
return Promise.resolve();
});
return this;
};
FrameworkConfiguration.prototype.defaultBindingLanguage = function () {
return this._addNormalizedPlugin('aurelia-templating-binding');
};
FrameworkConfiguration.prototype.router = function () {
return this._addNormalizedPlugin('aurelia-templating-router');
};
FrameworkConfiguration.prototype.history = function () {
return this._addNormalizedPlugin('aurelia-history-browser');
};
FrameworkConfiguration.prototype.defaultResources = function () {
return this._addNormalizedPlugin('aurelia-templating-resources');
};
FrameworkConfiguration.prototype.eventAggregator = function () {
return this._addNormalizedPlugin('aurelia-event-aggregator');
};
FrameworkConfiguration.prototype.basicConfiguration = function () {
return this.defaultBindingLanguage().defaultResources().eventAggregator();
};
FrameworkConfiguration.prototype.standardConfiguration = function () {
return this.basicConfiguration().history().router();
};
FrameworkConfiguration.prototype.developmentLogging = function (level) {
var _this = this;
var logLevel = level ? TheLogManager.logLevel[level] : undefined;
if (logLevel === undefined) {
logLevel = TheLogManager.logLevel.debug;
}
this.preTask(function () {
return _this.aurelia.loader.normalize('aurelia-logging-console', _this.bootstrapperName).then(function (name) {
return _this.aurelia.loader.loadModule(name).then(function (m) {
TheLogManager.addAppender(new m.ConsoleAppender());
TheLogManager.setLevel(logLevel);
});
});
});
return this;
};
FrameworkConfiguration.prototype.apply = function () {
var _this = this;
if (this.processed) {
return Promise.resolve();
}
return runTasks(this, this.preTasks).then(function () {
var loader = _this.aurelia.loader;
var info = _this.info;
var current;
var next = function () {
current = info.shift();
if (current) {
return loadPlugin(_this, loader, current).then(next);
}
_this.processed = true;
_this.configuredPlugins = null;
return Promise.resolve();
};
return next().then(function () { return runTasks(_this, _this.postTasks); });
});
};
return FrameworkConfiguration;
}());
function preventActionlessFormSubmit() {
DOM.addEventListener('submit', function (evt) {
var target = evt.target;
var action = target.action;
if (target.tagName.toLowerCase() === 'form' && !action) {
evt.preventDefault();
}
}, false);
}
var Aurelia = (function () {
function Aurelia(loader, container, resources) {
this.loader = loader || new PLATFORM.Loader();
this.container = container || (new Container()).makeGlobal();
this.resources = resources || new ViewResources();
this.use = new FrameworkConfiguration(this);
this.logger = TheLogManager.getLogger('aurelia');
this.hostConfigured = false;
this.host = null;
this.use.instance(Aurelia, this);
this.use.instance(Loader, this.loader);
this.use.instance(ViewResources, this.resources);
}
Aurelia.prototype.start = function () {
var _this = this;
if (this._started) {
return this._started;
}
this.logger.info('Aurelia Starting');
return this._started = this.use.apply().then(function () {
preventActionlessFormSubmit();
if (!_this.container.hasResolver(BindingLanguage)) {
var message = 'You must configure Aurelia with a BindingLanguage implementation.';
_this.logger.error(message);
throw new Error(message);
}
_this.logger.info('Aurelia Started');
var evt = DOM.createCustomEvent('aurelia-started', { bubbles: true, cancelable: true });
DOM.dispatchEvent(evt);
return _this;
});
};
Aurelia.prototype.enhance = function (bindingContext, applicationHost) {
var _this = this;
if (bindingContext === void 0) { bindingContext = {}; }
if (applicationHost === void 0) { applicationHost = null; }
this._configureHost(applicationHost || DOM.querySelectorAll('body')[0]);
return new Promise(function (resolve) {
var engine = _this.container.get(TemplatingEngine);
_this.root = engine.enhance({ container: _this.container, element: _this.host, resources: _this.resources, bindingContext: bindingContext });
_this.root.attached();
_this._onAureliaComposed();
resolve(_this);
});
};
Aurelia.prototype.setRoot = function (root, applicationHost) {
var _this = this;
if (root === void 0) { root = null; }
if (applicationHost === void 0) { applicationHost = null; }
var instruction = {};
if (this.root && this.root.viewModel && this.root.viewModel.router) {
this.root.viewModel.router.deactivate();
this.root.viewModel.router.reset();
}
this._configureHost(applicationHost);
var engine = this.container.get(TemplatingEngine);
var transaction = this.container.get(CompositionTransaction);
delete transaction.initialComposition;
if (!root) {
if (this.configModuleId) {
root = relativeToFile('./app', this.configModuleId);
}
else {
root = 'app';
}
}
instruction.viewModel = root;
instruction.container = instruction.childContainer = this.container;
instruction.viewSlot = this.hostSlot;
instruction.host = this.host;
return engine.compose(instruction).then(function (r) {
_this.root = r;
instruction.viewSlot.attached();
_this._onAureliaComposed();
return _this;
});
};
Aurelia.prototype._configureHost = function (applicationHost) {
if (this.hostConfigured) {
return;
}
applicationHost = applicationHost || this.host;
if (!applicationHost || typeof applicationHost === 'string') {
this.host = DOM.getElementById(applicationHost || 'applicationHost');
}
else {
this.host = applicationHost;
}
if (!this.host) {
throw new Error('No applicationHost was specified.');
}
this.hostConfigured = true;
this.host.aurelia = this;
this.hostSlot = new ViewSlot(this.host, true);
this.hostSlot.transformChildNodesIntoView();
this.container.registerInstance(DOM.boundary, this.host);
};
Aurelia.prototype._onAureliaComposed = function () {
var evt = DOM.createCustomEvent('aurelia-composed', { bubbles: true, cancelable: true });
setTimeout(function () { return DOM.dispatchEvent(evt); }, 1);
};
return Aurelia;
}());
export { Aurelia, FrameworkConfiguration };
//# sourceMappingURL=aurelia-framework.js.map
================================================
FILE: dist/native-modules/index.js
================================================
export * from './aurelia-framework';
================================================
FILE: dist/system/aurelia-framework.js
================================================
System.register(['aurelia-dependency-injection', 'aurelia-binding', 'aurelia-metadata', 'aurelia-templating', 'aurelia-loader', 'aurelia-task-queue', 'aurelia-path', 'aurelia-pal', 'aurelia-logging'], (function (exports) {
'use strict';
var _starExcludes = {
Aurelia: 1,
FrameworkConfiguration: 1,
'default': 1,
LogManager: 1
};
var Container, HtmlBehaviorResource, ViewEngine, BindingLanguage, TemplatingEngine, CompositionTransaction, ViewSlot, ViewResources, Loader, join, relativeToFile, DOM, PLATFORM, TheLogManager;
return {
setters: [function (module) {
Container = module.Container;
var setter = {};
for (var name in module) {
if (!_starExcludes[name]) setter[name] = module[name];
}
exports(setter);
}, function (module) {
var setter = {};
for (var name in module) {
if (!_starExcludes[name]) setter[name] = module[name];
}
exports(setter);
}, function (module) {
var setter = {};
for (var name in module) {
if (!_starExcludes[name]) setter[name] = module[name];
}
exports(setter);
}, function (module) {
HtmlBehaviorResource = module.HtmlBehaviorResource;
ViewEngine = module.ViewEngine;
BindingLanguage = module.BindingLanguage;
TemplatingEngine = module.TemplatingEngine;
CompositionTransaction = module.CompositionTransaction;
ViewSlot = module.ViewSlot;
ViewResources = module.ViewResources;
var setter = {};
for (var name in module) {
if (!_starExcludes[name]) setter[name] = module[name];
}
exports(setter);
}, function (module) {
Loader = module.Loader;
var setter = {};
for (var name in module) {
if (!_starExcludes[name]) setter[name] = module[name];
}
exports(setter);
}, function (module) {
var setter = {};
for (var name in module) {
if (!_starExcludes[name]) setter[name] = module[name];
}
exports(setter);
}, function (module) {
join = module.join;
relativeToFile = module.relativeToFile;
var setter = {};
for (var name in module) {
if (!_starExcludes[name]) setter[name] = module[name];
}
exports(setter);
}, function (module) {
DOM = module.DOM;
PLATFORM = module.PLATFORM;
var setter = {};
for (var name in module) {
if (!_starExcludes[name]) setter[name] = module[name];
}
exports(setter);
}, function (module) {
TheLogManager = module;
exports('LogManager', module);
}],
execute: (function () {
var logger = TheLogManager.getLogger('aurelia');
var extPattern = /\.[^/.]+$/;
function runTasks(config, tasks) {
var current;
var next = function () {
current = tasks.shift();
if (current) {
return Promise.resolve(current(config)).then(next);
}
return Promise.resolve();
};
return next();
}
function loadPlugin(fwConfig, loader, info) {
logger.debug("Loading plugin ".concat(info.moduleId, "."));
if (typeof info.moduleId === 'string') {
fwConfig.resourcesRelativeTo = info.resourcesRelativeTo;
var id = info.moduleId;
if (info.resourcesRelativeTo.length > 1) {
return loader.normalize(info.moduleId, info.resourcesRelativeTo[1])
.then(function (normalizedId) { return _loadPlugin(normalizedId); });
}
return _loadPlugin(id);
}
else if (typeof info.configure === 'function') {
if (fwConfig.configuredPlugins.indexOf(info.configure) !== -1) {
return Promise.resolve();
}
fwConfig.configuredPlugins.push(info.configure);
return Promise.resolve(info.configure.call(null, fwConfig, info.config || {}));
}
throw new Error(invalidConfigMsg(info.moduleId || info.configure, 'plugin'));
function _loadPlugin(moduleId) {
return loader.loadModule(moduleId).then(function (m) {
if ('configure' in m) {
if (fwConfig.configuredPlugins.indexOf(m.configure) !== -1) {
return Promise.resolve();
}
return Promise.resolve(m.configure(fwConfig, info.config || {})).then(function () {
fwConfig.configuredPlugins.push(m.configure);
fwConfig.resourcesRelativeTo = null;
logger.debug("Configured plugin ".concat(info.moduleId, "."));
});
}
fwConfig.resourcesRelativeTo = null;
logger.debug("Loaded plugin ".concat(info.moduleId, "."));
});
}
}
function loadResources(aurelia, resourcesToLoad, appResources) {
if (Object.keys(resourcesToLoad).length === 0) {
return Promise.resolve();
}
var viewEngine = aurelia.container.get(ViewEngine);
return Promise.all(Object.keys(resourcesToLoad).map(function (n) { return _normalize(resourcesToLoad[n]); }))
.then(function (loads) {
var names = [];
var importIds = [];
loads.forEach(function (l) {
names.push(undefined);
importIds.push(l.importId);
});
return viewEngine.importViewResources(importIds, names, appResources);
});
function _normalize(load) {
var moduleId = load.moduleId;
var ext = getExt(moduleId);
if (isOtherResource(moduleId)) {
moduleId = removeExt(moduleId);
}
return aurelia.loader.normalize(moduleId, load.relativeTo)
.then(function (normalized) {
return {
name: load.moduleId,
importId: isOtherResource(load.moduleId) ? addOriginalExt(normalized, ext) : normalized
};
});
}
function isOtherResource(name) {
var ext = getExt(name);
if (!ext)
return false;
if (ext === '')
return false;
if (ext === '.js' || ext === '.ts')
return false;
return true;
}
function removeExt(name) {
return name.replace(extPattern, '');
}
function addOriginalExt(normalized, ext) {
return removeExt(normalized) + '.' + ext;
}
}
function getExt(name) {
var match = name.match(extPattern);
if (match && match.length > 0) {
return (match[0].split('.'))[1];
}
}
function loadBehaviors(config) {
return Promise.all(config.behaviorsToLoad.map(function (m) { return m.load(config.container, m.target); })).then(function () {
config.behaviorsToLoad = null;
});
}
function assertProcessed(plugins) {
if (plugins.processed) {
throw new Error('This config instance has already been applied. To load more plugins or global resources, create a new FrameworkConfiguration instance.');
}
}
function invalidConfigMsg(cfg, type) {
return "Invalid ".concat(type, " [").concat(cfg, "], ").concat(type, " must be specified as functions or relative module IDs.");
}
var FrameworkConfiguration = exports('FrameworkConfiguration', (function () {
function FrameworkConfiguration(aurelia) {
var _this = this;
this.aurelia = aurelia;
this.container = aurelia.container;
this.info = [];
this.processed = false;
this.preTasks = [];
this.postTasks = [];
this.behaviorsToLoad = [];
this.configuredPlugins = [];
this.resourcesToLoad = {};
this.preTask(function () { return aurelia.loader.normalize('aurelia-bootstrapper', undefined)
.then(function (name) { return _this.bootstrapperName = name; }); });
this.postTask(function () { return loadResources(aurelia, _this.resourcesToLoad, aurelia.resources); });
}
FrameworkConfiguration.prototype.instance = function (type, instance) {
this.container.registerInstance(type, instance);
return this;
};
FrameworkConfiguration.prototype.singleton = function (type, implementation) {
this.container.registerSingleton(type, implementation);
return this;
};
FrameworkConfiguration.prototype.transient = function (type, implementation) {
this.container.registerTransient(type, implementation);
return this;
};
FrameworkConfiguration.prototype.preTask = function (task) {
assertProcessed(this);
this.preTasks.push(task);
return this;
};
FrameworkConfiguration.prototype.postTask = function (task) {
assertProcessed(this);
this.postTasks.push(task);
return this;
};
FrameworkConfiguration.prototype.feature = function (plugin, config) {
if (config === void 0) { config = {}; }
switch (typeof plugin) {
case 'string':
var hasIndex = /\/index$/i.test(plugin);
var moduleId = hasIndex || getExt(plugin) ? plugin : plugin + '/index';
var root = hasIndex ? plugin.slice(0, -6) : plugin;
this.info.push({ moduleId: moduleId, resourcesRelativeTo: [root, ''], config: config });
break;
case 'function':
this.info.push({ configure: plugin, config: config || {} });
break;
default:
throw new Error(invalidConfigMsg(plugin, 'feature'));
}
return this;
};
FrameworkConfiguration.prototype.globalResources = function (resources) {
var _this = this;
assertProcessed(this);
var toAdd = Array.isArray(resources) ? resources : arguments;
var resource;
var resourcesRelativeTo = this.resourcesRelativeTo || ['', ''];
for (var i = 0, ii = toAdd.length; i < ii; ++i) {
resource = toAdd[i];
switch (typeof resource) {
case 'string':
var parent_1 = resourcesRelativeTo[0];
var grandParent = resourcesRelativeTo[1];
var name_1 = resource;
if ((resource.startsWith('./') || resource.startsWith('../')) && parent_1 !== '') {
name_1 = join(parent_1, resource);
}
this.resourcesToLoad[name_1] = { moduleId: name_1, relativeTo: grandParent };
break;
case 'function':
var meta = this.aurelia.resources.autoRegister(this.container, resource);
if (meta instanceof HtmlBehaviorResource && meta.elementName !== null) {
if (this.behaviorsToLoad.push(meta) === 1) {
this.postTask(function () { return loadBehaviors(_this); });
}
}
break;
default:
throw new Error(invalidConfigMsg(resource, 'resource'));
}
}
return this;
};
FrameworkConfiguration.prototype.globalName = function (resourcePath, newName) {
assertProcessed(this);
this.resourcesToLoad[resourcePath] = { moduleId: newName, relativeTo: '' };
return this;
};
FrameworkConfiguration.prototype.plugin = function (plugin, pluginConfig) {
assertProcessed(this);
var info;
switch (typeof plugin) {
case 'string':
info = { moduleId: plugin, resourcesRelativeTo: [plugin, ''], config: pluginConfig || {} };
break;
case 'function':
info = { configure: plugin, config: pluginConfig || {} };
break;
default:
throw new Error(invalidConfigMsg(plugin, 'plugin'));
}
this.info.push(info);
return this;
};
FrameworkConfiguration.prototype._addNormalizedPlugin = function (name, config) {
var _this = this;
var plugin = { moduleId: name, resourcesRelativeTo: [name, ''], config: config || {} };
this.info.push(plugin);
this.preTask(function () {
var relativeTo = [name, _this.bootstrapperName];
plugin.moduleId = name;
plugin.resourcesRelativeTo = relativeTo;
return Promise.resolve();
});
return this;
};
FrameworkConfiguration.prototype.defaultBindingLanguage = function () {
return this._addNormalizedPlugin('aurelia-templating-binding');
};
FrameworkConfiguration.prototype.router = function () {
return this._addNormalizedPlugin('aurelia-templating-router');
};
FrameworkConfiguration.prototype.history = function () {
return this._addNormalizedPlugin('aurelia-history-browser');
};
FrameworkConfiguration.prototype.defaultResources = function () {
return this._addNormalizedPlugin('aurelia-templating-resources');
};
FrameworkConfiguration.prototype.eventAggregator = function () {
return this._addNormalizedPlugin('aurelia-event-aggregator');
};
FrameworkConfiguration.prototype.basicConfiguration = function () {
return this.defaultBindingLanguage().defaultResources().eventAggregator();
};
FrameworkConfiguration.prototype.standardConfiguration = function () {
return this.basicConfiguration().history().router();
};
FrameworkConfiguration.prototype.developmentLogging = function (level) {
var _this = this;
var logLevel = level ? TheLogManager.logLevel[level] : undefined;
if (logLevel === undefined) {
logLevel = TheLogManager.logLevel.debug;
}
this.preTask(function () {
return _this.aurelia.loader.normalize('aurelia-logging-console', _this.bootstrapperName).then(function (name) {
return _this.aurelia.loader.loadModule(name).then(function (m) {
TheLogManager.addAppender(new m.ConsoleAppender());
TheLogManager.setLevel(logLevel);
});
});
});
return this;
};
FrameworkConfiguration.prototype.apply = function () {
var _this = this;
if (this.processed) {
return Promise.resolve();
}
return runTasks(this, this.preTasks).then(function () {
var loader = _this.aurelia.loader;
var info = _this.info;
var current;
var next = function () {
current = info.shift();
if (current) {
return loadPlugin(_this, loader, current).then(next);
}
_this.processed = true;
_this.configuredPlugins = null;
return Promise.resolve();
};
return next().then(function () { return runTasks(_this, _this.postTasks); });
});
};
return FrameworkConfiguration;
}()));
function preventActionlessFormSubmit() {
DOM.addEventListener('submit', function (evt) {
var target = evt.target;
var action = target.action;
if (target.tagName.toLowerCase() === 'form' && !action) {
evt.preventDefault();
}
}, false);
}
var Aurelia = exports('Aurelia', (function () {
function Aurelia(loader, container, resources) {
this.loader = loader || new PLATFORM.Loader();
this.container = container || (new Container()).makeGlobal();
this.resources = resources || new ViewResources();
this.use = new FrameworkConfiguration(this);
this.logger = TheLogManager.getLogger('aurelia');
this.hostConfigured = false;
this.host = null;
this.use.instance(Aurelia, this);
this.use.instance(Loader, this.loader);
this.use.instance(ViewResources, this.resources);
}
Aurelia.prototype.start = function () {
var _this = this;
if (this._started) {
return this._started;
}
this.logger.info('Aurelia Starting');
return this._started = this.use.apply().then(function () {
preventActionlessFormSubmit();
if (!_this.container.hasResolver(BindingLanguage)) {
var message = 'You must configure Aurelia with a BindingLanguage implementation.';
_this.logger.error(message);
throw new Error(message);
}
_this.logger.info('Aurelia Started');
var evt = DOM.createCustomEvent('aurelia-started', { bubbles: true, cancelable: true });
DOM.dispatchEvent(evt);
return _this;
});
};
Aurelia.prototype.enhance = function (bindingContext, applicationHost) {
var _this = this;
if (bindingContext === void 0) { bindingContext = {}; }
if (applicationHost === void 0) { applicationHost = null; }
this._configureHost(applicationHost || DOM.querySelectorAll('body')[0]);
return new Promise(function (resolve) {
var engine = _this.container.get(TemplatingEngine);
_this.root = engine.enhance({ container: _this.container, element: _this.host, resources: _this.resources, bindingContext: bindingContext });
_this.root.attached();
_this._onAureliaComposed();
resolve(_this);
});
};
Aurelia.prototype.setRoot = function (root, applicationHost) {
var _this = this;
if (root === void 0) { root = null; }
if (applicationHost === void 0) { applicationHost = null; }
var instruction = {};
if (this.root && this.root.viewModel && this.root.viewModel.router) {
this.root.viewModel.router.deactivate();
this.root.viewModel.router.reset();
}
this._configureHost(applicationHost);
var engine = this.container.get(TemplatingEngine);
var transaction = this.container.get(CompositionTransaction);
delete transaction.initialComposition;
if (!root) {
if (this.configModuleId) {
root = relativeToFile('./app', this.configModuleId);
}
else {
root = 'app';
}
}
instruction.viewModel = root;
instruction.container = instruction.childContainer = this.container;
instruction.viewSlot = this.hostSlot;
instruction.host = this.host;
return engine.compose(instruction).then(function (r) {
_this.root = r;
instruction.viewSlot.attached();
_this._onAureliaComposed();
return _this;
});
};
Aurelia.prototype._configureHost = function (applicationHost) {
if (this.hostConfigured) {
return;
}
applicationHost = applicationHost || this.host;
if (!applicationHost || typeof applicationHost === 'string') {
this.host = DOM.getElementById(applicationHost || 'applicationHost');
}
else {
this.host = applicationHost;
}
if (!this.host) {
throw new Error('No applicationHost was specified.');
}
this.hostConfigured = true;
this.host.aurelia = this;
this.hostSlot = new ViewSlot(this.host, true);
this.hostSlot.transformChildNodesIntoView();
this.container.registerInstance(DOM.boundary, this.host);
};
Aurelia.prototype._onAureliaComposed = function () {
var evt = DOM.createCustomEvent('aurelia-composed', { bubbles: true, cancelable: true });
setTimeout(function () { return DOM.dispatchEvent(evt); }, 1);
};
return Aurelia;
}()));
})
};
}));
//# sourceMappingURL=aurelia-framework.js.map
================================================
FILE: dist/system/index.js
================================================
'use strict';
System.register(['./aurelia-framework'], function (_export, _context) {
"use strict";
return {
setters: [function (_aureliaFramework) {
var _exportObj = {};
for (var _key in _aureliaFramework) {
if (_key !== "default" && _key !== "__esModule") _exportObj[_key] = _aureliaFramework[_key];
}
_export(_exportObj);
}],
execute: function () {}
};
});
================================================
FILE: dist/types/aurelia-framework.d.ts
================================================
// Generated by dts-bundle-generator v6.5.0
import { Container } from 'aurelia-dependency-injection';
import { Loader } from 'aurelia-loader';
import { ViewResources } from 'aurelia-templating';
export interface FrameworkPluginInfo {
moduleId?: string;
resourcesRelativeTo?: string[];
configure?: (config: FrameworkConfiguration, pluginConfig?: any) => any;
config?: any;
}
/**
* Manages configuring the aurelia framework instance.
*/
export declare class FrameworkConfiguration {
/**
* The root DI container used by the application.
*/
container: Container;
/**
* The aurelia instance.
*/
aurelia: Aurelia;
/**
* Creates an instance of FrameworkConfiguration.
* @param aurelia An instance of Aurelia.
*/
constructor(aurelia: Aurelia);
/**
* Adds an existing object to the framework's dependency injection container.
* @param type The object type of the dependency that the framework will inject.
* @param instance The existing instance of the dependency that the framework will inject.
* @return Returns the current FrameworkConfiguration instance.
*/
instance(type: any, instance: any): FrameworkConfiguration;
/**
* Adds a singleton to the framework's dependency injection container.
* @param type The object type of the dependency that the framework will inject.
* @param implementation The constructor function of the dependency that the framework will inject.
* @return Returns the current FrameworkConfiguration instance.
*/
singleton(type: any, implementation?: Function): FrameworkConfiguration;
/**
* Adds a transient to the framework's dependency injection container.
* @param type The object type of the dependency that the framework will inject.
* @param implementation The constructor function of the dependency that the framework will inject.
* @return Returns the current FrameworkConfiguration instance.
*/
transient(type: any, implementation?: Function): FrameworkConfiguration;
/**
* Adds an async function that runs before the plugins are run.
* @param task The function to run before start.
* @return Returns the current FrameworkConfiguration instance.
*/
preTask(task: Function): FrameworkConfiguration;
/**
* Adds an async function that runs after the plugins are run.
* @param task The function to run after start.
* @return Returns the current FrameworkConfiguration instance.
*/
postTask(task: Function): FrameworkConfiguration;
/**
* Configures an internal feature plugin before Aurelia starts.
* @param plugin The folder for the internal plugin to configure (expects an index.js in that folder).
* @param config The configuration for the specified plugin.
* @return Returns the current FrameworkConfiguration instance.
*/
feature(plugin: string | ((config: FrameworkConfiguration, pluginConfig?: any) => any), config?: any): FrameworkConfiguration;
/**
* Adds globally available view resources to be imported into the Aurelia framework.
* @param resources The relative module id to the resource. (Relative to the plugin's installer.)
* @return Returns the current FrameworkConfiguration instance.
*/
globalResources(resources: string | Function | Array<string | Function>): FrameworkConfiguration;
/**
* Renames a global resource that was imported.
* @param resourcePath The path to the resource.
* @param newName The new name.
* @return Returns the current FrameworkConfiguration instance.
*/
globalName(resourcePath: string, newName: string): FrameworkConfiguration;
/**
* Configures an external, 3rd party plugin before Aurelia starts.
* @param plugin The ID of the 3rd party plugin to configure.
* @param pluginConfig The configuration for the specified plugin.
* @return Returns the current FrameworkConfiguration instance.
*/
plugin(plugin: string | ((frameworkConfig: FrameworkConfiguration) => any) | FrameworkPluginInfo, pluginConfig?: any): FrameworkConfiguration;
/**
* Plugs in the default binding language from aurelia-templating-binding.
* @return Returns the current FrameworkConfiguration instance.
*/
defaultBindingLanguage(): FrameworkConfiguration;
/**
* Plugs in the router from aurelia-templating-router.
* @return Returns the current FrameworkConfiguration instance.
*/
router(): FrameworkConfiguration;
/**
* Plugs in the default history implementation from aurelia-history-browser.
* @return Returns the current FrameworkConfiguration instance.
*/
history(): FrameworkConfiguration;
/**
* Plugs in the default templating resources (if, repeat, show, compose, etc.) from aurelia-templating-resources.
* @return Returns the current FrameworkConfiguration instance.
*/
defaultResources(): FrameworkConfiguration;
/**
* Plugs in the event aggregator from aurelia-event-aggregator.
* @return Returns the current FrameworkConfiguration instance.
*/
eventAggregator(): FrameworkConfiguration;
/**
* Sets up a basic Aurelia configuration. This is equivalent to calling `.defaultBindingLanguage().defaultResources().eventAggregator();`
* @return Returns the current FrameworkConfiguration instance.
*/
basicConfiguration(): FrameworkConfiguration;
/**
* Sets up the standard Aurelia configuration. This is equivalent to calling `.defaultBindingLanguage().defaultResources().eventAggregator().history().router();`
* @return Returns the current FrameworkConfiguration instance.
*/
standardConfiguration(): FrameworkConfiguration;
/**
* Plugs in the ConsoleAppender and sets the log level to debug.
* @param level The log level (none/error/warn/info/debug), default to 'debug'.
* @return {FrameworkConfiguration} Returns the current FrameworkConfiguration instance.
*/
developmentLogging(level?: string): FrameworkConfiguration;
/**
* Loads and configures the plugins registered with this instance.
* @return Returns a promise which resolves when all plugins are loaded and configured.
*/
apply(): Promise<void>;
}
/**
* The framework core that provides the main Aurelia object.
*/
export declare class Aurelia {
/**
* The DOM Element that Aurelia will attach to.
*/
host: Element;
/**
/**
* The loader used by the application.
*/
loader: Loader;
/**
* The root DI container used by the application.
*/
container: Container;
/**
* The global view resources used by the application.
*/
resources: ViewResources;
/**
* The configuration used during application startup.
*/
use: FrameworkConfiguration;
/**
* Creates an instance of Aurelia.
* @param loader The loader for this Aurelia instance to use. If a loader is not specified, Aurelia will use the loader type specified by PLATFORM.Loader.
* @param container The dependency injection container for this Aurelia instance to use. If a container is not specified, Aurelia will create an empty, global container.
* @param resources The resource registry for this Aurelia instance to use. If a resource registry is not specified, Aurelia will create an empty registry.
*/
constructor(loader?: Loader, container?: Container, resources?: ViewResources);
/**
* Loads plugins, then resources, and then starts the Aurelia instance.
* @return Returns a Promise with the started Aurelia instance.
*/
start(): Promise<Aurelia>;
/**
* Enhances the host's existing elements with behaviors and bindings.
* @param bindingContext A binding context for the enhanced elements.
* @param applicationHost The DOM object that Aurelia will enhance.
* @return Returns a Promise for the current Aurelia instance.
*/
enhance(bindingContext?: object, applicationHost?: string | Element): Promise<Aurelia>;
/**
* Instantiates the root component and adds it to the DOM.
* @param root The root component to load upon bootstrap.
* @param applicationHost The DOM object that Aurelia will attach to.
* @return Returns a Promise of the current Aurelia instance.
*/
setRoot(root?: string | Function, applicationHost?: string | Element): Promise<Aurelia>;
}
export * from "aurelia-dependency-injection";
export * from "aurelia-binding";
export * from "aurelia-metadata";
export * from "aurelia-templating";
export * from "aurelia-loader";
export * from "aurelia-task-queue";
export * from "aurelia-path";
export * from "aurelia-pal";
export * as LogManager from "aurelia-logging";
export {};
================================================
FILE: doc/CHANGELOG.md
================================================
## [1.4.1](https://github.com/aurelia/framework/compare/1.4.0...1.4.1) (2022-03-31)
### Bug Fixes
* **dep:** use latest templating to resolve chain dep vul issue ([#1001](https://github.com/aurelia/framework/issues/1001)) ([1930cf1](https://github.com/aurelia/framework/commit/1930cf16291b6d6bb3ad7ee5e5de404bfb47cd03))
# [1.4.0](https://github.com/aurelia/framework/compare/1.3.1...1.4.0) (2022-03-31)
### Bug Fixes
* **all:** point package.json module from dist/es2015 back to dist/native-modules ([0e59359](https://github.com/aurelia/framework/commit/0e593594ddc72f10c5f630728cfe2448862dde7b))
* **dep:** resolve vulnerable dep issue ([#1000](https://github.com/aurelia/framework/issues/1000)) ([78102fd](https://github.com/aurelia/framework/commit/78102fdc3ecb52be5bc3cec998025f4fa8510856))
<a name="1.3.0-rc.2"></a>
# [1.3.0-rc.2](https://github.com/aurelia/framework/compare/1.3.0-rc.1...1.3.0-rc.2) (2018-06-21)
### Bug Fixes
* **FrameworkConfiguration:** use private info ([5a51394](https://github.com/aurelia/framework/commit/5a51394))
<a name="1.3.0-rc.1"></a>
# [1.3.0-rc.1](https://github.com/aurelia/framework/compare/1.2.0...1.3.0-rc.1) (2018-06-21)
### Features
* **Aurelia:** ability to define root with constructor ([15fc9dd](https://github.com/aurelia/framework/commit/15fc9dd))
* **config:** accepts classes beside module id string ([80a3d39](https://github.com/aurelia/framework/commit/80a3d39))
<a name="1.2.0"></a>
# [1.2.0](https://github.com/aurelia/framework/compare/1.1.5...1.2.0) (2018-03-29)
### Bug Fixes
* **doc:** clarify when detached() is called ([6eee2b9](https://github.com/aurelia/framework/commit/6eee2b9))
* **doc:** updated contact detail screenshot to bootstrap 4 styles ([5cdfe26](https://github.com/aurelia/framework/commit/5cdfe26))
* **doc:** updated screenshots to bootstrap 4 styles ([88f0210](https://github.com/aurelia/framework/commit/88f0210))
* **doc:** updated the form layout in the contact manager tutorial ([19a5dbe](https://github.com/aurelia/framework/commit/19a5dbe))
* **doc:** upgrade contacts tutorial to bootstrap 4 ([2bb2f55](https://github.com/aurelia/framework/commit/2bb2f55))
### Features
* **log:** support optional log level param to developmentLogging(). ([7962912](https://github.com/aurelia/framework/commit/7962912))
<a name="1.1.3"></a>
## [1.1.3](https://github.com/aurelia/framework/compare/1.1.2...v1.1.3) (2017-07-11)
* Documentation updates.
<a name="1.1.2"></a>
## [1.1.2](https://github.com/aurelia/framework/compare/1.1.1...v1.1.2) (2017-04-05)
* Documentation update.
<a name="1.1.0"></a>
# [1.1.0](https://github.com/aurelia/framework/compare/1.0.8...v1.1.0) (2017-02-27)
### Bug Fixes
* **startup:** start() incorrectly returns a resolved promise ([4ef49e6](https://github.com/aurelia/framework/commit/4ef49e6))
### Features
* **config:** .feature() accepts explicit /index. ([890f8d5](https://github.com/aurelia/framework/commit/890f8d5))
<a name="1.0.2"></a>
## [1.0.2](https://github.com/aurelia/framework/compare/1.0.1...v1.0.2) (2016-08-26)
### Bug Fixes
* **doc:** fix typo ([c0daf1b](https://github.com/aurelia/framework/commit/c0daf1b))
* **doc:** fixed escaping variable ([fc354e3](https://github.com/aurelia/framework/commit/fc354e3))
* **doc:** rename view file ([1553006](https://github.com/aurelia/framework/commit/1553006))
* **doc:** s/sting/string in quick start ([1f6deb9](https://github.com/aurelia/framework/commit/1f6deb9))
### Features
* **doc:** note about style vs css attribute ([78f4cd9](https://github.com/aurelia/framework/commit/78f4cd9))
<a name="1.0.0"></a>
# [1.0.0](https://github.com/aurelia/framework/compare/1.0.0-rc.1.0.13...v1.0.0) (2016-07-27)
### Bug Fixes
* **aurelia:** resolve promise in Aurelia.enhance ([741fa22](https://github.com/aurelia/framework/commit/741fa22)), closes [#480](https://github.com/aurelia/framework/issues/480)
<a name="1.0.0-rc.1.0.3"></a>
# [1.0.0-rc.1.0.3](https://github.com/aurelia/framework/compare/1.0.0-rc.1.0.2...v1.0.0-rc.1.0.3) (2016-07-21)
* documentation update
<a name="1.0.0-rc.1.0.2"></a>
# [1.0.0-rc.1.0.2](https://github.com/aurelia/framework/compare/1.0.0-rc.1.0.1...v1.0.0-rc.1.0.2) (2016-07-12)
### Bug Fixes
* **framework-configuration:** bug in path joining for resources ([b462a79](https://github.com/aurelia/framework/commit/b462a79)), closes [#434](https://github.com/aurelia/framework/issues/434)
<a name="1.0.0-rc.1.0.1"></a>
# [1.0.0-rc.1.0.1](https://github.com/aurelia/framework/compare/1.0.0-rc.1.0.0...v1.0.0-rc.1.0.1) (2016-06-30)
### Features
* **aurelia:** make default root load relative to config module if defined ([8c2334e](https://github.com/aurelia/framework/commit/8c2334e))
* **framework-configuration:** add basicConfiguration helper ([6329fc9](https://github.com/aurelia/framework/commit/6329fc9))
<a name="1.0.0-rc.1.0.0"></a>
# [1.0.0-rc.1.0.0](https://github.com/aurelia/framework/compare/1.0.0-beta.2.0.1...v1.0.0-rc.1.0.0) (2016-06-22)
### 1.0.0-beta.1.2.5 (2016-05-17)
* Add d.ts update to include `host` property on the `Aurelia` object.
### 1.0.0-beta.1.2.4 (2016-05-12)
### 1.0.0-beta.1.2.3 (2016-05-10)
### 1.0.0-beta.1.2.2 (2016-04-13)
### 1.0.0-beta.1.2.1 (2016-03-29)
#### Bug Fixes
* **feature:** use proper parameter to check extension ([c179a3e9](http://github.com/aurelia/framework/commit/c179a3e97565a55a059d86ebb73dcee18732ede1))
* **framework-configuration:** getExt return invalid extension when relative path is supplied ([335f8559](http://github.com/aurelia/framework/commit/335f8559eafaf5df1884489d1e29850669fb2204))
* **global resource:** load resources other than .ts or .js ([b57f290a](http://github.com/aurelia/framework/commit/b57f290ab97d15cc9e0eedd18ec64af97c004e70))
### 1.0.0-beta.1.2.0 (2016-03-22)
#### Bug Fixes
* feature configuration ([8d5eaa17](http://github.com/aurelia/framework/commit/8d5eaa17ef0909436b4a00073087653426981005))
* **feature:** check extension. ([4bfd6c47](http://github.com/aurelia/framework/commit/4bfd6c47a6bd0b0595e037abe617d4a94b2d052f))
* **test:** fix loadGlobalResource related tests ([8fbd24d5](http://github.com/aurelia/framework/commit/8fbd24d51a3ca605f2bfb175fd1656444900b5bf))
#### Features
* **enhance:** use document.body as fallback ([e1cbfcc2](http://github.com/aurelia/framework/commit/e1cbfcc2f4a19741efa1989a8f3fc12f4db5a493))
### 1.0.0-beta.1.1.4 (2016-03-01)
#### Bug Fixes
* **all:** remove core-js dependency ([968d6c22](http://github.com/aurelia/framework/commit/968d6c22cab3ddbd03a0104565b178ea2904e189))
* **bower:** remove core-js ([dd9e082f](http://github.com/aurelia/framework/commit/dd9e082f9f230802b084f47a20ba4262579b1221))
#### Features
* **aurelia:** integrate composition transaction ([38851185](http://github.com/aurelia/framework/commit/38851185b57d4b775e8952cff028cb450f0b0d7b))
### 1.0.0-beta.1.1.3 (2016-02-09)
### 1.0.0-beta.1.1.2 (2016-02-08)
### 1.0.0-beta.1.1.0 (2016-01-29)
#### Bug Fixes
* bundle config ([1bb9e69b](http://github.com/aurelia/framework/commit/1bb9e69b8b209690c20812a5b24d0a0f7c9e4a8a))
* **docs:** fix GiHub typo ([6adea363](http://github.com/aurelia/framework/commit/6adea3637f2c1da64cc76f9b0fba3973bb3c726f))
#### Features
* **all:** update jspm meta; core-js; aurelia deps ([be9776e3](http://github.com/aurelia/framework/commit/be9776e3fb0ce94fe8c1539965112ee16fb2d323))
### 1.0.0-beta.1.0.8 (2016-01-08)
#### Features
* **all:** switch normalizeSync to normalize api ([4d5b1f6b](http://github.com/aurelia/framework/commit/4d5b1f6b48368cfc4d545c1f3ae3a7d50fc23e4b))
* **aurelia:** detect router on successive setRoot calls ([0f83b9b3](http://github.com/aurelia/framework/commit/0f83b9b3a25fb420e055ed402d02bcb3e77a2377))
### 1.0.0-beta.1.0.7 (2015-12-29)
* docs update
### 1.0.0-beta.1.0.6 (2015-12-22)
* docs update
## 1.0.0-beta.1.0.3 (2015-12-03)
* docs update
### 1.0.0-beta.1 (2015-11-16)
## 0.18.0 (2015-11-10)
#### Bug Fixes
* **all:** update to work with latest TemplatingEngine ([edf2b5f8](http://github.com/aurelia/framework/commit/edf2b5f8e5a47984219e2be26d7b762b9d7eab7c))
## 0.17.0 (2015-10-13)
#### Bug Fixes
* **all:**
* create a property framework configuration object ([bab4c776](http://github.com/aurelia/framework/commit/bab4c776f4266b727e4cf04b04ba409ead3bfeed))
* update compiler and metadata plugin ([50e3afe0](http://github.com/aurelia/framework/commit/50e3afe0e5a4c6c0e15242433007e4fe068e35fc))
* load resources by module id only ([655192b2](http://github.com/aurelia/framework/commit/655192b26f7c8b47fb57ad1522e85af58d971443))
* **aurelia:**
* switch window loader check to platform loader check ([471d8c51](http://github.com/aurelia/framework/commit/471d8c516a423baf56e3af1f834f9c19fceb2808))
* enable multiple calls to setRoot ([10708cae](http://github.com/aurelia/framework/commit/10708caefb9e26556c9c45686198f8c343de6a5d))
* update to use ViewResources instead of ResourceRegistry ([f458a193](http://github.com/aurelia/framework/commit/f458a193f69dfa1d8174b2424ba81d5b864b7429))
* throw a descriptive error when globalizeResources is called with non-strings ([09038c83](http://github.com/aurelia/framework/commit/09038c83b4ca02f2e55b30804b330c59207f682d))
* update to use latest animator default config api ([5dea25b5](http://github.com/aurelia/framework/commit/5dea25b57512ccf4701daf6520c0156582a5182b))
* update to use new view engine ([e6d20c42](http://github.com/aurelia/framework/commit/e6d20c42ead1f74652fb1bce5b5ae728b4b6bb77))
* update to load global resources through new resource pipeline ([bdbca554](http://github.com/aurelia/framework/commit/bdbca554e8d0e7ee839fb1b3b8269f590bc7aa97))
* global resources left out ([4bb098a3](http://github.com/aurelia/framework/commit/4bb098a36ea226dedc5343f3c629d889f9028580))
* custom event undefined in local scope ([c3594bf9](http://github.com/aurelia/framework/commit/c3594bf9ae0b9836ef433d857f422131e65674c5))
* ensure plugin resources are loaded first ([bffcd614](http://github.com/aurelia/framework/commit/bffcd6146167b1169d9d43acf4857be84636ccc7))
* ensure all start code paths return a promise ([02752512](http://github.com/aurelia/framework/commit/0275251243271e30a7a484903ff0dd5a0da8eb80))
* load groups of resources in order ([2d936e5f](http://github.com/aurelia/framework/commit/2d936e5f6d1750841e99180d72078416926326f1))
* directly use app container to create root view model ([d86665b3](http://github.com/aurelia/framework/commit/d86665b390dbfa65f8c53c148adfc740d7e8ebb2))
* remove dependency on event aggregator ([424fa2bf](http://github.com/aurelia/framework/commit/424fa2bf3b9d2a4b79c2bb5cec5ad45d87273327))
* plugin loading module id fix ([ba79cb93](http://github.com/aurelia/framework/commit/ba79cb933e86e9cea6d391cb3664c82a31231f7e))
* **build:**
* update linting, testing and tools ([ed65edc6](http://github.com/aurelia/framework/commit/ed65edc6cc7d6e6250ac6885f02780c0ea640cb4))
* add missing bower bump ([111797ae](http://github.com/aurelia/framework/commit/111797ae2f669b3eb9a86538c23f5e537fc259c5))
* **dts:** update promise-based apis ([94548514](http://github.com/aurelia/framework/commit/94548514165b1cb8ba0629f5e775d0d758630ce9))
* **framework:** Use correct import for core-js ([da0756fd](http://github.com/aurelia/framework/commit/da0756fd94f5a60df5218ceaa09fdb3bb0e2ad27))
* **framework-configuration:**
* add public properties ([a5b32853](http://github.com/aurelia/framework/commit/a5b3285341063578cdc8631533bf7c92ff7fe354), closes [#199](http://github.com/aurelia/framework/issues/199))
* parameter config in feature and plugin method is optional ([b07c4817](http://github.com/aurelia/framework/commit/b07c481744746d95f60f0c5bebb3caf3306dea55))
* improve standardConfiguration ([c91ea2b9](http://github.com/aurelia/framework/commit/c91ea2b9cf5e36042930bf48b27b7287f425067c))
* correct type information ([f1fc9987](http://github.com/aurelia/framework/commit/f1fc998735d1821b2a29361bd9247077e646c1bc))
* **index:** ensure export of path module api ([17cf46cd](http://github.com/aurelia/framework/commit/17cf46cdfbf4081e08c41db3c20a0590c885d254))
* **package:**
* change jspm directories ([37f2670b](http://github.com/aurelia/framework/commit/37f2670b5498618a4b0602234008c2ed779bca4f))
* update dependencies ([79feec43](http://github.com/aurelia/framework/commit/79feec432b8f3afd7a2ca90fc4eec2445e34940f))
* update deps and fix bower semver ranges ([3f05b27e](http://github.com/aurelia/framework/commit/3f05b27ed1c7961fc5049f848ea2f220949d7414))
* update dependencies ([b52b1b05](http://github.com/aurelia/framework/commit/b52b1b050a3d5809f7b0f602ebc8479f3d57eecb))
* update Aurelia dependencies ([f9df6e55](http://github.com/aurelia/framework/commit/f9df6e55ab139d8589516d8ebdf4f27ae3f83b90))
* update dependencies to latest ([bfcd292e](http://github.com/aurelia/framework/commit/bfcd292e5c26bde6b7064e866db566201f280b4f))
* update templating to latest version ([63d4c5f6](http://github.com/aurelia/framework/commit/63d4c5f6db58a50f6e1776b2b4939ca81ce4edf5))
* update templating to latest version ([5d1305e6](http://github.com/aurelia/framework/commit/5d1305e637d827f83c97df3e08db4f60f47915df))
* update templating to latest version ([1e981956](http://github.com/aurelia/framework/commit/1e9819565f1e4fa024c38c1d08f05cc00757b96f))
* update dependencies to latest versions ([12f0f9a8](http://github.com/aurelia/framework/commit/12f0f9a8af4d8178e80e87fc4ce7d9a8a53eba85))
* update dependencies to latest versions ([5ca82ad1](http://github.com/aurelia/framework/commit/5ca82ad11adf1163e984e3fe05cd64a132990624))
* update dependencies to their latest versions ([fe83ef37](http://github.com/aurelia/framework/commit/fe83ef37fdcdf878dd79564ed9b97ee56de8d621))
* **plugin:**
* add feature api and prepare for jspm beta ([5f0b7cf3](http://github.com/aurelia/framework/commit/5f0b7cf35c7c7b445f06b237aab704ceb44c88ae))
* make api use configure like other apis in framework ([cbfdaad7](http://github.com/aurelia/framework/commit/cbfdaad764abca997a15302073819d0723ccd32a), closes [#96](http://github.com/aurelia/framework/issues/96))
* **plugins:**
* preserve built-in plugin load order ([25a35297](http://github.com/aurelia/framework/commit/25a35297cb330bdbac7796a20b4ad6842e8de477))
* address changes in jspm/system.js beta ([90afee4d](http://github.com/aurelia/framework/commit/90afee4de0770c576fb8fd4f0af5fb3191833f0f))
* removed unnecessary es5 helper support ([710499a8](http://github.com/aurelia/framework/commit/710499a896ccbc6d787b29aa8da8aeb373bfae8f))
* set es5 computed properties correctly ([f1b140d9](http://github.com/aurelia/framework/commit/f1b140d9d2c846cc75e986d6fb967132d82df5e1))
* enable relative path plugins ([7cbe4d22](http://github.com/aurelia/framework/commit/7cbe4d22e47ef586a4800d1104ff90d15ff93b98))
* language helpers should return this for chaining ([d8817425](http://github.com/aurelia/framework/commit/d8817425e1ca618d752e9708e76674a3fb6e1191))
* install sequentially ([cc78f9a0](http://github.com/aurelia/framework/commit/cc78f9a07974df00c1dcd88b6c71afcf1e52fcc9))
* ensure plugin installation can only happen once ([9b37c848](http://github.com/aurelia/framework/commit/9b37c8485ce7d966e1f10eb66f088e341d9a4d4e))
#### Features
* **all:**
* incorporate pal ([4bc75161](http://github.com/aurelia/framework/commit/4bc75161d39696e0db11582dea8c4693d0852869))
* update to new loader apis to remove global System ([07bd2982](http://github.com/aurelia/framework/commit/07bd29827df73ba52cdf67450469efcda39cda59))
* **aurelia:**
* initialize new templatingEngine api ([e60e5163](http://github.com/aurelia/framework/commit/e60e516310ac8eb2ee3b69915ad82d36949bc324))
* initialize the binding system ([d6f569f7](http://github.com/aurelia/framework/commit/d6f569f70879bfabd4a09d543495d0335b582bd9))
* add preliminary enhance api ([f970c65c](http://github.com/aurelia/framework/commit/f970c65c2053391a5b6bd79079102fde8c750612))
* configure host as root dom boundary ([5a99ab02](http://github.com/aurelia/framework/commit/5a99ab0284813eba42b579058e3059a756ca485d))
* update to use composition host instruction value ([bd456bc5](http://github.com/aurelia/framework/commit/bd456bc5411ed7f122bc14a2ecc0d7b0cc2f192b))
* take advantage of previously configured host ([0c5bbcd7](http://github.com/aurelia/framework/commit/0c5bbcd799be99958dcea3c3a1f850bdd43700a4))
* add parameter default to setRoot ([f3955d22](http://github.com/aurelia/framework/commit/f3955d228483758ce8b385bba14d99e053468612))
* ensure animator implementation ([e3ab3ab0](http://github.com/aurelia/framework/commit/e3ab3ab08aac022d0c7b58ddef7b8632f2e5f980))
* raise DOM events for start and compose ([feed2a3a](http://github.com/aurelia/framework/commit/feed2a3a05fe8cd9f5463a84ddb692aba4912193))
* enable splash screen swaps on load ([c2135d41](http://github.com/aurelia/framework/commit/c2135d41333328a2c7a6acfe4e0325d5c6bfb090))
* set root sets element in container and uses composition engine ([9f6fa60d](http://github.com/aurelia/framework/commit/9f6fa60d27dc7e9d418970925df2fc23514c1422))
* **build:**
* add command line argument for semver bump. resolve #28 ([39652c80](http://github.com/aurelia/framework/commit/39652c8026dd26e459ed5e84a0924e1f58724d53))
* update compiler and switch to register module format ([63c5d367](http://github.com/aurelia/framework/commit/63c5d367ed576a4350fcf6bfc3d87b4d55370372))
* **docs:**
* generate api.json from .d.ts file ([38c06e2c](http://github.com/aurelia/framework/commit/38c06e2ce93b22244950cf57e97e28493fc2334b))
* generate api.json from .d.ts file ([1e2af71b](http://github.com/aurelia/framework/commit/1e2af71bf0aee020033cef33faaca1b869e7b5d9))
* generate api.json from .d.ts file ([a6960cbc](http://github.com/aurelia/framework/commit/a6960cbc6e171142c3a3b8dada4915e11b433ecc))
* **framework:**
* prevent forms without [action] from submiting ([a5805257](http://github.com/aurelia/framework/commit/a58052571281cce001089bc065858e47ee595874))
* enable plugin loading and config ([f3b02ea9](http://github.com/aurelia/framework/commit/f3b02ea96c0a607b77bb7fbc7e0389748fb07c12))
* **index:** export all from pal ([10ca62bb](http://github.com/aurelia/framework/commit/10ca62bbd93c06ffac05f6dc060b65fa62d57369))
* **plugins:**
* better api by moving some bootstrapper code directly into aurelia ([f76baf08](http://github.com/aurelia/framework/commit/f76baf084f382c168d3a2225df091df5d36f9a50))
* remove AtScript support ([f1adb01a](http://github.com/aurelia/framework/commit/f1adb01ab32afcd8ba3b427e9274f72fb4d56fda))
* update to use new metadata locator function ([4b09490d](http://github.com/aurelia/framework/commit/4b09490daf7f351e1001557c8e8a8032bdadbf1c))
* support legacy atscript annotation location ([37463681](http://github.com/aurelia/framework/commit/374636810d3e5249b3f1d8d6b4767f97c21a1240))
* update atscript helper to use new metadata api ([c9b4fb99](http://github.com/aurelia/framework/commit/c9b4fb99b1ac32fb71a69ad8e945cd4a208ca1eb))
* enable loading after bootstrapped ([790c9da2](http://github.com/aurelia/framework/commit/790c9da2ba89018d25f1dcf6c929b421f47c0b73))
* new plugin api including explicit support for es5 and at script ([b5c588bc](http://github.com/aurelia/framework/commit/b5c588bc716955273833ebbeabb33deb431bda5d))
* track plugin id for relative resource loading without system hack ([3465e849](http://github.com/aurelia/framework/commit/3465e84963e871b713cc4c3ca049eb459023ec9e))
#### Breaking Changes
* If you were using ES5 and used the computed helper on
function, this will affect you as that is no longer present.
([710499a8](http://github.com/aurelia/framework/commit/710499a896ccbc6d787b29aa8da8aeb373bfae8f))
## 0.16.0 (2015-09-05)
#### Bug Fixes
* **build:** update linting, testing and tools ([ed65edc6](http://github.com/aurelia/framework/commit/ed65edc6cc7d6e6250ac6885f02780c0ea640cb4))
* **framework-configuration:**
* add public properties ([a5b32853](http://github.com/aurelia/framework/commit/a5b3285341063578cdc8631533bf7c92ff7fe354), closes [#199](http://github.com/aurelia/framework/issues/199))
* parameter config in feature and plugin method is optional ([b07c4817](http://github.com/aurelia/framework/commit/b07c481744746d95f60f0c5bebb3caf3306dea55))
* improve standardConfiguration ([c91ea2b9](http://github.com/aurelia/framework/commit/c91ea2b9cf5e36042930bf48b27b7287f425067c))
## 0.15.0 (2015-08-14)
#### Bug Fixes
* **all:** create a property framework configuration object ([bab4c776](http://github.com/aurelia/framework/commit/bab4c776f4266b727e4cf04b04ba409ead3bfeed))
* **aurelia:**
* enable multiple calls to setRoot ([10708cae](http://github.com/aurelia/framework/commit/10708caefb9e26556c9c45686198f8c343de6a5d))
* update to use ViewResources instead of ResourceRegistry ([f458a193](http://github.com/aurelia/framework/commit/f458a193f69dfa1d8174b2424ba81d5b864b7429))
* **framework:** Use correct import for core-js ([da0756fd](http://github.com/aurelia/framework/commit/da0756fd94f5a60df5218ceaa09fdb3bb0e2ad27))
* **framework-configuration:** correct type information ([f1fc9987](http://github.com/aurelia/framework/commit/f1fc998735d1821b2a29361bd9247077e646c1bc))
#### Features
* **docs:**
* generate api.json from .d.ts file ([38c06e2c](http://github.com/aurelia/framework/commit/38c06e2ce93b22244950cf57e97e28493fc2334b))
* generate api.json from .d.ts file ([1e2af71b](http://github.com/aurelia/framework/commit/1e2af71bf0aee020033cef33faaca1b869e7b5d9))
* generate api.json from .d.ts file ([a6960cbc](http://github.com/aurelia/framework/commit/a6960cbc6e171142c3a3b8dada4915e11b433ecc))
### 0.14.1 (2015-08-08)
#### Bug Fixes
* **plugins:** preserve built-in plugin load order ([25a35297](http://github.com/aurelia/framework/commit/25a35297cb330bdbac7796a20b4ad6842e8de477))
## 0.14.0 (2015-08-05)
#### Bug Fixes
* **plugin:** add feature api and prepare for jspm beta ([5f0b7cf3](http://github.com/aurelia/framework/commit/5f0b7cf35c7c7b445f06b237aab704ceb44c88ae))
#### Features
* **aurelia:** add preliminary enhance api ([f970c65c](http://github.com/aurelia/framework/commit/f970c65c2053391a5b6bd79079102fde8c750612))
* **plugins:** better api by moving some bootstrapper code directly into aurelia ([f76baf08](http://github.com/aurelia/framework/commit/f76baf084f382c168d3a2225df091df5d36f9a50))
### 0.13.4 (2015-07-29)
#### Features
* **aurelia:** configure host as root dom boundary ([5a99ab02](http://github.com/aurelia/framework/commit/5a99ab0284813eba42b579058e3059a756ca485d))
### 0.13.3 (2015-07-13)
#### Bug Fixes
* **dts:** update promise-based apis ([94548514](http://github.com/aurelia/framework/commit/94548514165b1cb8ba0629f5e775d0d758630ce9))
### 0.13.2 (2015-07-07)
### 0.13.1 (2015-07-03)
#### Bug Fixes
* **plugins:** address changes in jspm/system.js beta ([90afee4d](http://github.com/aurelia/framework/commit/90afee4de0770c576fb8fd4f0af5fb3191833f0f))
## 0.13.0 (2015-07-02)
## 0.12.0 (2015-06-08)
#### Bug Fixes
* **index:** ensure export of path module api ([17cf46cd](http://github.com/aurelia/framework/commit/17cf46cdfbf4081e08c41db3c20a0590c885d254))
#### Features
* **aurelia:** update to use composition host instruction value ([bd456bc5](http://github.com/aurelia/framework/commit/bd456bc5411ed7f122bc14a2ecc0d7b0cc2f192b))
## 0.11.0 (2015-05-01)
#### Bug Fixes
* **aurelia:** throw a descriptive error when globalizeResources is called with non-strings ([09038c83](http://github.com/aurelia/framework/commit/09038c83b4ca02f2e55b30804b330c59207f682d))
* **plugin:** make api use configure like other apis in framework ([cbfdaad7](http://github.com/aurelia/framework/commit/cbfdaad764abca997a15302073819d0723ccd32a), closes [#96](http://github.com/aurelia/framework/issues/96))
* **plugins:** removed unnecessary es5 helper support ([710499a8](http://github.com/aurelia/framework/commit/710499a896ccbc6d787b29aa8da8aeb373bfae8f))
#### Features
* **aurelia:** take advantage of previously configured host ([0c5bbcd7](http://github.com/aurelia/framework/commit/0c5bbcd799be99958dcea3c3a1f850bdd43700a4))
#### Breaking Changes
* If you were using ES5 and used the computed helper on
function, this will affect you as that is no longer present.
([710499a8](http://github.com/aurelia/framework/commit/710499a896ccbc6d787b29aa8da8aeb373bfae8f))
## 0.10.0 (2015-04-09)
#### Bug Fixes
* **all:** update compiler and metadata plugin ([50e3afe0](http://github.com/aurelia/framework/commit/50e3afe0e5a4c6c0e15242433007e4fe068e35fc))
#### Features
* **plugins:**
* remove AtScript support ([f1adb01a](http://github.com/aurelia/framework/commit/f1adb01ab32afcd8ba3b427e9274f72fb4d56fda))
* update to use new metadata locator function ([4b09490d](http://github.com/aurelia/framework/commit/4b09490daf7f351e1001557c8e8a8032bdadbf1c))
## 0.9.0 (2015-03-25)
#### Bug Fixes
* **all:** load resources by module id only ([655192b2](http://github.com/aurelia/framework/commit/655192b26f7c8b47fb57ad1522e85af58d971443))
* **aurelia:**
* update to use latest animator default config api ([5dea25b5](http://github.com/aurelia/framework/commit/5dea25b57512ccf4701daf6520c0156582a5182b))
* update to use new view engine ([e6d20c42](http://github.com/aurelia/framework/commit/e6d20c42ead1f74652fb1bce5b5ae728b4b6bb77))
* update to load global resources through new resource pipeline ([bdbca554](http://github.com/aurelia/framework/commit/bdbca554e8d0e7ee839fb1b3b8269f590bc7aa97))
#### Features
* **aurelia:** add parameter default to setRoot ([f3955d22](http://github.com/aurelia/framework/commit/f3955d228483758ce8b385bba14d99e053468612))
### 0.8.8 (2015-02-28)
#### Bug Fixes
* **package:** change jspm directories ([37f2670b](http://github.com/aurelia/framework/commit/37f2670b5498618a4b0602234008c2ed779bca4f))
### 0.8.7 (2015-02-28)
#### Bug Fixes
* **aurelia:** global resources left out ([4bb098a3](http://github.com/aurelia/framework/commit/4bb098a36ea226dedc5343f3c629d889f9028580))
* **build:** add missing bower bump ([111797ae](http://github.com/aurelia/framework/commit/111797ae2f669b3eb9a86538c23f5e537fc259c5))
* **package:** update dependencies ([79feec43](http://github.com/aurelia/framework/commit/79feec432b8f3afd7a2ca90fc4eec2445e34940f))
#### Features
* **aurelia:** ensure animator implementation ([e3ab3ab0](http://github.com/aurelia/framework/commit/e3ab3ab08aac022d0c7b58ddef7b8632f2e5f980))
* **build:** add command line argument for semver bump. resolve #28 ([39652c80](http://github.com/aurelia/framework/commit/39652c8026dd26e459ed5e84a0924e1f58724d53))
* **framework:** prevent forms without [action] from submiting ([a5805257](http://github.com/aurelia/framework/commit/a58052571281cce001089bc065858e47ee595874))
### 0.8.6 (2015-02-03)
#### Features
* **plugins:** support legacy atscript annotation location ([37463681](http://github.com/aurelia/framework/commit/374636810d3e5249b3f1d8d6b4767f97c21a1240))
### 0.8.5 (2015-01-29)
#### Bug Fixes
* **aurelia:** custom event undefined in local scope ([c3594bf9](http://github.com/aurelia/framework/commit/c3594bf9ae0b9836ef433d857f422131e65674c5))
* **plugins:** set es5 computed properties correctly ([f1b140d9](http://github.com/aurelia/framework/commit/f1b140d9d2c846cc75e986d6fb967132d82df5e1))
#### Features
* **aurelia:** raise DOM events for start and compose ([feed2a3a](http://github.com/aurelia/framework/commit/feed2a3a05fe8cd9f5463a84ddb692aba4912193))
### 0.8.4 (2015-01-25)
#### Bug Fixes
* **aurelia:** ensure plugin resources are loaded first ([bffcd614](http://github.com/aurelia/framework/commit/bffcd6146167b1169d9d43acf4857be84636ccc7))
### 0.8.3 (2015-01-25)
#### Bug Fixes
* **plugins:** enable relative path plugins ([7cbe4d22](http://github.com/aurelia/framework/commit/7cbe4d22e47ef586a4800d1104ff90d15ff93b98))
### 0.8.2 (2015-01-24)
#### Bug Fixes
* **package:** update deps and fix bower semver ranges ([3f05b27e](http://github.com/aurelia/framework/commit/3f05b27ed1c7961fc5049f848ea2f220949d7414))
### 0.8.1 (2015-01-22)
#### Bug Fixes
* **plugins:** language helpers should return this for chaining ([d8817425](http://github.com/aurelia/framework/commit/d8817425e1ca618d752e9708e76674a3fb6e1191))
## 0.8.0 (2015-01-22)
#### Bug Fixes
* **aurelia:** ensure all start code paths return a promise ([02752512](http://github.com/aurelia/framework/commit/0275251243271e30a7a484903ff0dd5a0da8eb80))
* **package:** update dependencies ([b52b1b05](http://github.com/aurelia/framework/commit/b52b1b050a3d5809f7b0f602ebc8479f3d57eecb))
#### Features
* **aurelia:** enable splash screen swaps on load ([c2135d41](http://github.com/aurelia/framework/commit/c2135d41333328a2c7a6acfe4e0325d5c6bfb090))
* **plugins:**
* update atscript helper to use new metadata api ([c9b4fb99](http://github.com/aurelia/framework/commit/c9b4fb99b1ac32fb71a69ad8e945cd4a208ca1eb))
* enable loading after bootstrapped ([790c9da2](http://github.com/aurelia/framework/commit/790c9da2ba89018d25f1dcf6c929b421f47c0b73))
* new plugin api including explicit support for es5 and at script ([b5c588bc](http://github.com/aurelia/framework/commit/b5c588bc716955273833ebbeabb33deb431bda5d))
* track plugin id for relative resource loading without system hack ([3465e849](http://github.com/aurelia/framework/commit/3465e84963e871b713cc4c3ca049eb459023ec9e))
## 0.7.0 (2015-01-12)
#### Bug Fixes
* **aurelia:** load groups of resources in order ([2d936e5f](http://github.com/aurelia/framework/commit/2d936e5f6d1750841e99180d72078416926326f1))
* **package:** update Aurelia dependencies ([f9df6e55](http://github.com/aurelia/framework/commit/f9df6e55ab139d8589516d8ebdf4f27ae3f83b90))
* **plugins:** install sequentially ([cc78f9a0](http://github.com/aurelia/framework/commit/cc78f9a07974df00c1dcd88b6c71afcf1e52fcc9))
## 0.6.0 (2015-01-07)
#### Bug Fixes
* **aurelia:** directly use app container to create root view model ([d86665b3](http://github.com/aurelia/framework/commit/d86665b390dbfa65f8c53c148adfc740d7e8ebb2))
* **package:** update dependencies to latest ([bfcd292e](http://github.com/aurelia/framework/commit/bfcd292e5c26bde6b7064e866db566201f280b4f))
#### Features
* **aurelia:** set root sets element in container and uses composition engine ([9f6fa60d](http://github.com/aurelia/framework/commit/9f6fa60d27dc7e9d418970925df2fc23514c1422))
## 0.5.0 (2015-01-06)
#### Bug Fixes
* **aurelia:**
* remove dependency on event aggregator ([424fa2bf](http://github.com/aurelia/framework/commit/424fa2bf3b9d2a4b79c2bb5cec5ad45d87273327))
* plugin loading module id fix ([ba79cb93](http://github.com/aurelia/framework/commit/ba79cb933e86e9cea6d391cb3664c82a31231f7e))
* **plugins:** ensure plugin installation can only happen once ([9b37c848](http://github.com/aurelia/framework/commit/9b37c8485ce7d966e1f10eb66f088e341d9a4d4e))
#### Features
* **build:** update compiler and switch to register module format ([63c5d367](http://github.com/aurelia/framework/commit/63c5d367ed576a4350fcf6bfc3d87b4d55370372))
## 0.4.0 (2014-12-22)
#### Bug Fixes
* **package:** update templating to latest version ([63d4c5f6](http://github.com/aurelia/framework/commit/63d4c5f6db58a50f6e1776b2b4939ca81ce4edf5))
#### Features
* **framework:** enable plugin loading and config ([f3b02ea9](http://github.com/aurelia/framework/commit/f3b02ea96c0a607b77bb7fbc7e0389748fb07c12))
### 0.3.2 (2014-12-18)
#### Bug Fixes
* **package:** update templating to latest version ([5d1305e6](http://github.com/aurelia/framework/commit/5d1305e637d827f83c97df3e08db4f60f47915df))
### 0.3.1 (2014-12-18)
#### Bug Fixes
* **package:** update templating to latest version ([1e981956](http://github.com/aurelia/framework/commit/1e9819565f1e4fa024c38c1d08f05cc00757b96f))
## 0.3.0 (2014-12-17)
#### Bug Fixes
* **package:** update dependencies to latest versions ([12f0f9a8](http://github.com/aurelia/framework/commit/12f0f9a8af4d8178e80e87fc4ce7d9a8a53eba85))
### 0.2.1 (2014-12-12)
#### Bug Fixes
* **package:** update dependencies to latest versions ([5ca82ad1](http://github.com/aurelia/framework/commit/5ca82ad11adf1163e984e3fe05cd64a132990624))
## 0.2.0 (2014-12-11)
#### Bug Fixes
* **package:** update dependencies to their latest versions ([fe83ef37](http://github.com/aurelia/framework/commit/fe83ef37fdcdf878dd79564ed9b97ee56de8d621))
================================================
FILE: doc/MAINTAINER.md
================================================
## Workflow releasing a new version
1. Update: pull latest master with `git pull`
2. Cut release: Run `npm run cut-release`. Example:
```shell
# automatic detection based on commit
npm run cut-release
# manual version control
npm run cut-release -- -- --release-as minor
```
3. Commit: `git add .` and then `git commit chore(release): prepare release vXXX` where `XXX` is the new version
4. Tag: `git tag -a XXX -m 'prepare release XXX'` where `XXX` is the version
5. Push to remote repo: `git push --follow-tags`
6. Publish: Run `npm publish` to release the new version
================================================
FILE: doc/api.json
================================================
{"id":0,"name":"aurelia-framework","kind":1,"kindString":"Project","flags":{},"originalName":"","children":[{"id":1,"name":"LogManager","kind":4,"kindString":"Namespace","flags":{"isExternal":true},"children":[{"id":53,"name":"Logger","kind":128,"kindString":"Class","flags":{"isExternal":true},"comment":{"shortText":"A logger logs messages to a set of appenders, depending on the log level that is set."},"children":[{"id":54,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExternal":true},"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line":167,"character":2}],"signatures":[{"id":55,"name":"new Logger","kind":16384,"kindString":"Constructor signature","flags":{"isExternal":true},"comment":{"shortText":"You cannot instantiate the logger directly - you must use the getLogger method instead."},"parameters":[{"id":56,"name":"id","kind":32768,"kindString":"Parameter","flags":{"isExternal":true},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","id":53,"qualifiedName":"Logger","package":"aurelia-logging","name":"Logger"}}]},{"id":57,"name":"id","kind":1024,"kindString":"Property","flags":{"isExternal":true},"comment":{"shortText":"The id that the logger was created with."},"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line":157,"character":2}],"type":{"type":"intrinsic","name":"string"}},{"id":58,"name":"level","kind":1024,"kindString":"Property","flags":{"isExternal":true},"comment":{"shortText":"The logging severity level for this logger"},"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line":162,"character":2}],"type":{"type":"intrinsic","name":"number"}},{"id":59,"name":"debug","kind":2048,"kindString":"Method","flags":{"isExternal":true},"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line":175,"character":2}],"signatures":[{"id":60,"name":"debug","kind":4096,"kindString":"Call signature","flags":{"isExternal":true},"comment":{"shortText":"Logs a debug message."},"parameters":[{"id":61,"name":"message","kind":32768,"kindString":"Parameter","flags":{"isExternal":true},"comment":{"shortText":"The message to log."},"type":{"type":"intrinsic","name":"string"}},{"id":62,"name":"rest","kind":32768,"kindString":"Parameter","flags":{"isExternal":true,"isRest":true},"comment":{"shortText":"The data to log.\n"},"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}}],"type":{"type":"intrinsic","name":"void"}}]},{"id":71,"name":"error","kind":2048,"kindString":"Method","flags":{"isExternal":true},"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line":199,"character":2}],"signatures":[{"id":72,"name":"error","kind":4096,"kindString":"Call signature","flags":{"isExternal":true},"comment":{"shortText":"Logs an error."},"parameters":[{"id":73,"name":"message","kind":32768,"kindString":"Parameter","flags":{"isExternal":true},"comment":{"shortText":"The message to log."},"type":{"type":"intrinsic","name":"string"}},{"id":74,"name":"rest","kind":32768,"kindString":"Parameter","flags":{"isExternal":true,"isRest":true},"comment":{"shortText":"The data to log.\n"},"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}}],"type":{"type":"intrinsic","name":"void"}}]},{"id":63,"name":"info","kind":2048,"kindString":"Method","flags":{"isExternal":true},"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line":183,"character":2}],"signatures":[{"id":64,"name":"info","kind":4096,"kindString":"Call signature","flags":{"isExternal":true},"comment":{"shortText":"Logs info."},"parameters":[{"id":65,"name":"message","kind":32768,"kindString":"Parameter","flags":{"isExternal":true},"comment":{"shortText":"The message to log."},"type":{"type":"intrinsic","name":"string"}},{"id":66,"name":"rest","kind":32768,"kindString":"Parameter","flags":{"isExternal":true,"isRest":true},"comment":{"shortText":"The data to log.\n"},"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}}],"type":{"type":"intrinsic","name":"void"}}]},{"id":78,"name":"isDebugEnabled","kind":2048,"kindString":"Method","flags":{"isExternal":true},"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line":211,"character":2}],"signatures":[{"id":79,"name":"isDebugEnabled","kind":4096,"kindString":"Call signature","flags":{"isExternal":true},"comment":{"shortText":"Returns if the logger is in debug mode or not."},"type":{"type":"intrinsic","name":"boolean"}}]},{"id":75,"name":"setLevel","kind":2048,"kindString":"Method","flags":{"isExternal":true},"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line":206,"character":2}],"signatures":[{"id":76,"name":"setLevel","kind":4096,"kindString":"Call signature","flags":{"isExternal":true},"comment":{"shortText":"Sets the level of logging for this logger instance"},"parameters":[{"id":77,"name":"level","kind":32768,"kindString":"Parameter","flags":{"isExternal":true},"comment":{"shortText":"Matches a value of logLevel specifying the level of logging.\n"},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"intrinsic","name":"void"}}]},{"id":67,"name":"warn","kind":2048,"kindString":"Method","flags":{"isExternal":true},"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line":191,"character":2}],"signatures":[{"id":68,"name":"warn","kind":4096,"kindString":"Call signature","flags":{"isExternal":true},"comment":{"shortText":"Logs a warning."},"parameters":[{"id":69,"name":"message","kind":32768,"kindString":"Parameter","flags":{"isExternal":true},"comment":{"shortText":"The message to log."},"type":{"type":"intrinsic","name":"string"}},{"id":70,"name":"rest","kind":32768,"kindString":"Parameter","flags":{"isExternal":true,"isRest":true},"comment":{"shortText":"The data to log.\n"},"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}}],"type":{"type":"intrinsic","name":"void"}}]}],"groups":[{"title":"Constructors","kind":512,"children":[54]},{"title":"Properties","kind":1024,"children":[57,58]},{"title":"Methods","kind":2048,"children":[59,71,63,78,75,67]}],"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line":152,"character":21}]},{"id":35,"name":"Appender","kind":256,"kindString":"Interface","flags":{"isExternal":true},"comment":{"shortText":"Implemented by classes which wish to append log data to a target data store."},"children":[{"id":36,"name":"debug","kind":2048,"kindString":"Method","flags":{"isExternal":true},"signatures":[{"id":37,"name":"debug","kind":4096,"kindString":"Call signature","flags":{"isExternal":true},"comment":{"shortText":"Appends a debug log."},"parameters":[{"id":38,"name":"logger","kind":32768,"kindString":"Parameter","flags":{"isExternal":true},"comment":{"shortText":"The source logger."},"type":{"type":"reference","id":53,"qualifiedName":"Logger","package":"aurelia-logging","name":"Logger"}},{"id":39,"name":"rest","kind":32768,"kindString":"Parameter","flags":{"isExternal":true,"isRest":true},"comment":{"shortText":"The data to log.\n"},"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}}],"type":{"type":"intrinsic","name":"void"}}]},{"id":48,"name":"error","kind":2048,"kindString":"Method","flags":{"isExternal":true},"signatures":[{"id":49,"name":"error","kind":4096,"kindString":"Call signature","flags":{"isExternal":true},"comment":{"shortText":"Appends an error log."},"parameters":[{"id":50,"name":"logger","kind":32768,"kindString":"Parameter","flags":{"isExternal":true},"comment":{"shortText":"The source logger."},"type":{"type":"reference","id":53,"qualifiedName":"Logger","package":"aurelia-logging","name":"Logger"}},{"id":51,"name":"rest","kind":32768,"kindString":"Parameter","flags":{"isExternal":true,"isRest":true},"comment":{"shortText":"The data to log.\n"},"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}}],"type":{"type":"intrinsic","name":"void"}}]},{"id":40,"name":"info","kind":2048,"kindString":"Method","flags":{"isExternal":true},"signatures":[{"id":41,"name":"info","kind":4096,"kindString":"Call signature","flags":{"isExternal":true},"comment":{"shortText":"Appends an info log."},"parameters":[{"id":42,"name":"logger","kind":32768,"kindString":"Parameter","flags":{"isExternal":true},"comment":{"shortText":"The source logger."},"type":{"type":"reference","id":53,"qualifiedName":"Logger","package":"aurelia-logging","name":"Logger"}},{"id":43,"name":"rest","kind":32768,"kindString":"Parameter","flags":{"isExternal":true,"isRest":true},"comment":{"shortText":"The data to log.\n"},"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}}],"type":{"type":"intrinsic","name":"void"}}]},{"id":44,"name":"warn","kind":2048,"kindString":"Method","flags":{"isExternal":true},"signatures":[{"id":45,"name":"warn","kind":4096,"kindString":"Call signature","flags":{"isExternal":true},"comment":{"shortText":"Appends a warning log."},"parameters":[{"id":46,"name":"logger","kind":32768,"kindString":"Parameter","flags":{"isExternal":true},"comment":{"shortText":"The source logger."},"type":{"type":"reference","id":53,"qualifiedName":"Logger","package":"aurelia-logging","name":"Logger"}},{"id":47,"name":"rest","kind":32768,"kindString":"Parameter","flags":{"isExternal":true,"isRest":true},"comment":{"shortText":"The data to log.\n"},"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}}],"type":{"type":"intrinsic","name":"void"}}]}],"groups":[{"title":"Methods","kind":2048,"children":[36,48,40,44]}],"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line":41,"character":25}]},{"id":27,"name":"LogLevel","kind":256,"kindString":"Interface","flags":{"isExternal":true},"comment":{"shortText":"Specifies the available logging levels."},"children":[{"id":32,"name":"debug","kind":1024,"kindString":"Property","flags":{"isExternal":true},"comment":{"shortText":"Log all messages."},"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line":30,"character":2}],"type":{"type":"intrinsic","name":"number"}},{"id":29,"name":"error","kind":1024,"kindString":"Property","flags":{"isExternal":true},"comment":{"shortText":"Log only error messages."},"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line":15,"character":2}],"type":{"type":"intrinsic","name":"number"}},{"id":31,"name":"info","kind":1024,"kindString":"Property","flags":{"isExternal":true},"comment":{"shortText":"Log informational messages or above."},"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line":25,"character":2}],"type":{"type":"intrinsic","name":"number"}},{"id":28,"name":"none","kind":1024,"kindString":"Property","flags":{"isExternal":true},"comment":{"shortText":"No logging."},"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line":10,"character":2}],"type":{"type":"intrinsic","name":"number"}},{"id":30,"name":"warn","kind":1024,"kindString":"Property","flags":{"isExternal":true},"comment":{"shortText":"Log warnings messages or above."},"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line":20,"character":2}],"type":{"type":"intrinsic","name":"number"}}],"groups":[{"title":"Properties","kind":1024,"children":[32,29,31,28,30]}],"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line":5,"character":25}],"indexSignature":{"id":33,"name":"__index","kind":8192,"kindString":"Index signature","flags":{"isExternal":true},"comment":{"shortText":"Additional log levels defined at runtime."},"parameters":[{"id":34,"name":"level","kind":32768,"flags":{"isExternal":true},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"number"}}},{"id":52,"name":"logLevel","kind":32,"kindString":"Variable","flags":{"isExternal":true,"isConst":true},"comment":{"shortText":"Specifies the available logging levels."},"sources":[{"fileName":"node_modules/aurelia-logging/dist/aurelia-logging.d.ts","line
gitextract_w1sltfc8/ ├── .editorconfig ├── .eslintrc.json ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE.md │ └── workflows/ │ └── main.yml ├── .gitignore ├── .npmignore ├── BACKERS.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── bower.json ├── dist/ │ ├── amd/ │ │ ├── aurelia-framework.js │ │ └── index.js │ ├── commonjs/ │ │ ├── aurelia-framework.js │ │ └── index.js │ ├── es2015/ │ │ ├── aurelia-framework.js │ │ └── index.js │ ├── es2017/ │ │ └── aurelia-framework.js │ ├── native-modules/ │ │ ├── aurelia-framework.js │ │ └── index.js │ ├── system/ │ │ ├── aurelia-framework.js │ │ └── index.js │ └── types/ │ └── aurelia-framework.d.ts ├── doc/ │ ├── CHANGELOG.md │ ├── MAINTAINER.md │ ├── api.json │ └── cleanup.js ├── karma.conf.js ├── package.json ├── rollup.config.js ├── src/ │ ├── aurelia-framework.ts │ ├── aurelia.ts │ └── framework-configuration.ts ├── test/ │ ├── aurelia.spec.ts │ ├── framework-configuration.spec.ts │ └── setup.ts ├── tsconfig.json └── typings.json
SYMBOL INDEX (168 symbols across 11 files)
FILE: dist/amd/aurelia-framework.js
function _interopNamespace (line 3) | function _interopNamespace(e) {
function runTasks (line 25) | function runTasks(config, tasks) {
function loadPlugin (line 36) | function loadPlugin(fwConfig, loader, info) {
function loadResources (line 72) | function loadResources(aurelia, resourcesToLoad, appResources) {
function getExt (line 118) | function getExt(name) {
function loadBehaviors (line 124) | function loadBehaviors(config) {
function assertProcessed (line 129) | function assertProcessed(plugins) {
function invalidConfigMsg (line 134) | function invalidConfigMsg(cfg, type) {
function FrameworkConfiguration (line 138) | function FrameworkConfiguration(aurelia) {
function preventActionlessFormSubmit (line 318) | function preventActionlessFormSubmit() {
function Aurelia (line 328) | function Aurelia(loader, container, resources) {
FILE: dist/commonjs/aurelia-framework.js
function _interopNamespace (line 15) | function _interopNamespace(e) {
function runTasks (line 37) | function runTasks(config, tasks) {
function loadPlugin (line 48) | function loadPlugin(fwConfig, loader, info) {
function loadResources (line 84) | function loadResources(aurelia, resourcesToLoad, appResources) {
function getExt (line 130) | function getExt(name) {
function loadBehaviors (line 136) | function loadBehaviors(config) {
function assertProcessed (line 141) | function assertProcessed(plugins) {
function invalidConfigMsg (line 146) | function invalidConfigMsg(cfg, type) {
function FrameworkConfiguration (line 150) | function FrameworkConfiguration(aurelia) {
function preventActionlessFormSubmit (line 330) | function preventActionlessFormSubmit() {
function Aurelia (line 340) | function Aurelia(loader, container, resources) {
FILE: dist/es2015/aurelia-framework.js
function runTasks (line 19) | function runTasks(config, tasks) {
function loadPlugin (line 30) | function loadPlugin(fwConfig, loader, info) {
function loadResources (line 66) | function loadResources(aurelia, resourcesToLoad, appResources) {
function getExt (line 112) | function getExt(name) {
function loadBehaviors (line 118) | function loadBehaviors(config) {
function assertProcessed (line 123) | function assertProcessed(plugins) {
function invalidConfigMsg (line 128) | function invalidConfigMsg(cfg, type) {
class FrameworkConfiguration (line 131) | class FrameworkConfiguration {
method constructor (line 132) | constructor(aurelia) {
method instance (line 146) | instance(type, instance) {
method singleton (line 150) | singleton(type, implementation) {
method transient (line 154) | transient(type, implementation) {
method preTask (line 158) | preTask(task) {
method postTask (line 163) | postTask(task) {
method feature (line 168) | feature(plugin, config = {}) {
method globalResources (line 184) | globalResources(resources) {
method globalName (line 215) | globalName(resourcePath, newName) {
method plugin (line 220) | plugin(plugin, pluginConfig) {
method _addNormalizedPlugin (line 236) | _addNormalizedPlugin(name, config) {
method defaultBindingLanguage (line 247) | defaultBindingLanguage() {
method router (line 250) | router() {
method history (line 253) | history() {
method defaultResources (line 256) | defaultResources() {
method eventAggregator (line 259) | eventAggregator() {
method basicConfiguration (line 262) | basicConfiguration() {
method standardConfiguration (line 265) | standardConfiguration() {
method developmentLogging (line 268) | developmentLogging(level) {
method apply (line 283) | apply() {
function preventActionlessFormSubmit (line 305) | function preventActionlessFormSubmit() {
class Aurelia (line 314) | class Aurelia {
method constructor (line 315) | constructor(loader, container, resources) {
method start (line 327) | start() {
method enhance (line 345) | enhance(bindingContext = {}, applicationHost = null) {
method setRoot (line 355) | setRoot(root = null, applicationHost = null) {
method _configureHost (line 384) | _configureHost(applicationHost) {
method _onAureliaComposed (line 404) | _onAureliaComposed() {
FILE: dist/es2017/aurelia-framework.js
function runTasks (line 19) | function runTasks(config, tasks) {
function loadPlugin (line 30) | function loadPlugin(fwConfig, loader, info) {
function loadResources (line 66) | function loadResources(aurelia, resourcesToLoad, appResources) {
function getExt (line 112) | function getExt(name) {
function loadBehaviors (line 118) | function loadBehaviors(config) {
function assertProcessed (line 123) | function assertProcessed(plugins) {
function invalidConfigMsg (line 128) | function invalidConfigMsg(cfg, type) {
class FrameworkConfiguration (line 131) | class FrameworkConfiguration {
method constructor (line 132) | constructor(aurelia) {
method instance (line 146) | instance(type, instance) {
method singleton (line 150) | singleton(type, implementation) {
method transient (line 154) | transient(type, implementation) {
method preTask (line 158) | preTask(task) {
method postTask (line 163) | postTask(task) {
method feature (line 168) | feature(plugin, config = {}) {
method globalResources (line 184) | globalResources(resources) {
method globalName (line 215) | globalName(resourcePath, newName) {
method plugin (line 220) | plugin(plugin, pluginConfig) {
method _addNormalizedPlugin (line 236) | _addNormalizedPlugin(name, config) {
method defaultBindingLanguage (line 247) | defaultBindingLanguage() {
method router (line 250) | router() {
method history (line 253) | history() {
method defaultResources (line 256) | defaultResources() {
method eventAggregator (line 259) | eventAggregator() {
method basicConfiguration (line 262) | basicConfiguration() {
method standardConfiguration (line 265) | standardConfiguration() {
method developmentLogging (line 268) | developmentLogging(level) {
method apply (line 283) | apply() {
function preventActionlessFormSubmit (line 305) | function preventActionlessFormSubmit() {
class Aurelia (line 314) | class Aurelia {
method constructor (line 315) | constructor(loader, container, resources) {
method start (line 327) | start() {
method enhance (line 345) | enhance(bindingContext = {}, applicationHost = null) {
method setRoot (line 355) | setRoot(root = null, applicationHost = null) {
method _configureHost (line 384) | _configureHost(applicationHost) {
method _onAureliaComposed (line 404) | _onAureliaComposed() {
FILE: dist/native-modules/aurelia-framework.js
function runTasks (line 19) | function runTasks(config, tasks) {
function loadPlugin (line 30) | function loadPlugin(fwConfig, loader, info) {
function loadResources (line 66) | function loadResources(aurelia, resourcesToLoad, appResources) {
function getExt (line 112) | function getExt(name) {
function loadBehaviors (line 118) | function loadBehaviors(config) {
function assertProcessed (line 123) | function assertProcessed(plugins) {
function invalidConfigMsg (line 128) | function invalidConfigMsg(cfg, type) {
function FrameworkConfiguration (line 132) | function FrameworkConfiguration(aurelia) {
function preventActionlessFormSubmit (line 312) | function preventActionlessFormSubmit() {
function Aurelia (line 322) | function Aurelia(loader, container, resources) {
FILE: dist/system/aurelia-framework.js
function runTasks (line 80) | function runTasks(config, tasks) {
function loadPlugin (line 91) | function loadPlugin(fwConfig, loader, info) {
function loadResources (line 127) | function loadResources(aurelia, resourcesToLoad, appResources) {
function getExt (line 173) | function getExt(name) {
function loadBehaviors (line 179) | function loadBehaviors(config) {
function assertProcessed (line 184) | function assertProcessed(plugins) {
function invalidConfigMsg (line 189) | function invalidConfigMsg(cfg, type) {
function FrameworkConfiguration (line 193) | function FrameworkConfiguration(aurelia) {
function preventActionlessFormSubmit (line 373) | function preventActionlessFormSubmit() {
function Aurelia (line 383) | function Aurelia(loader, container, resources) {
FILE: dist/types/aurelia-framework.d.ts
type FrameworkPluginInfo (line 7) | interface FrameworkPluginInfo {
class FrameworkConfiguration (line 16) | class FrameworkConfiguration {
class Aurelia (line 140) | class Aurelia {
FILE: src/aurelia.ts
function preventActionlessFormSubmit (line 9) | function preventActionlessFormSubmit() {
class Aurelia (line 23) | class Aurelia {
method constructor (line 71) | constructor(loader?: Loader, container?: Container, resources?: ViewRe...
method start (line 89) | start(): Promise<Aurelia> {
method enhance (line 117) | enhance(bindingContext: object = {}, applicationHost: string | Element...
method setRoot (line 136) | setRoot(root: string | Function = null, applicationHost: string | Elem...
method _configureHost (line 172) | _configureHost(applicationHost) {
method _onAureliaComposed (line 196) | _onAureliaComposed() {
type View (line 204) | interface View {
FILE: src/framework-configuration.ts
function runTasks (line 12) | function runTasks(config: FrameworkConfiguration, tasks) {
type FrameworkPluginInfo (line 26) | interface FrameworkPluginInfo {
function loadPlugin (line 33) | function loadPlugin(fwConfig: FrameworkConfiguration, loader: Loader, in...
function loadResources (line 75) | function loadResources(aurelia, resourcesToLoad, appResources) {
function getExt (line 131) | function getExt(name: string) { // eslint-disable-line consistent-return
function loadBehaviors (line 138) | function loadBehaviors(config: FrameworkConfiguration) {
function assertProcessed (line 144) | function assertProcessed(plugins: FrameworkConfiguration) {
function invalidConfigMsg (line 150) | function invalidConfigMsg(cfg: any, type: string) {
class FrameworkConfiguration (line 157) | class FrameworkConfiguration {
method constructor (line 204) | constructor(aurelia: Aurelia) {
method instance (line 233) | instance(type: any, instance: any): FrameworkConfiguration {
method singleton (line 244) | singleton(type: any, implementation?: Function): FrameworkConfiguration {
method transient (line 255) | transient(type: any, implementation?: Function): FrameworkConfiguration {
method preTask (line 265) | preTask(task: Function): FrameworkConfiguration {
method postTask (line 276) | postTask(task: Function): FrameworkConfiguration {
method feature (line 288) | feature(plugin: string | ((config: FrameworkConfiguration, pluginConfi...
method globalResources (line 312) | globalResources(resources: string | Function | Array<string | Function...
method globalName (line 356) | globalName(resourcePath: string, newName: string): FrameworkConfigurat...
method plugin (line 368) | plugin(
method _addNormalizedPlugin (line 390) | _addNormalizedPlugin(name, config?) {
method defaultBindingLanguage (line 416) | defaultBindingLanguage(): FrameworkConfiguration {
method router (line 424) | router(): FrameworkConfiguration {
method history (line 432) | history(): FrameworkConfiguration {
method defaultResources (line 440) | defaultResources(): FrameworkConfiguration {
method eventAggregator (line 448) | eventAggregator(): FrameworkConfiguration {
method basicConfiguration (line 456) | basicConfiguration(): FrameworkConfiguration {
method standardConfiguration (line 464) | standardConfiguration(): FrameworkConfiguration {
method developmentLogging (line 473) | developmentLogging(level?: string): FrameworkConfiguration {
method apply (line 496) | apply(): Promise<void> {
type HtmlBehaviorResource (line 524) | interface HtmlBehaviorResource {
FILE: test/aurelia.spec.ts
type AureliaAppHost (line 9) | type AureliaAppHost = HTMLElement & { aurelia?: Aurelia };
class App (line 243) | @inlineView('<template>Hello</template>')
method inspectTextContent (line 248) | inspectTextContent() {
method attached (line 273) | attached() {}
FILE: test/framework-configuration.spec.ts
class TestClass (line 22) | class TestClass {
function configure (line 184) | function configure() {}
function configure (line 195) | function configure() {}
function configurePluginA (line 320) | function configurePluginA() {
function configurePluginB (line 323) | function configurePluginB(config) {
function module1Configure (line 343) | function module1Configure(config) {
function module2Configure (line 348) | function module2Configure(config) {
function module3Configure (line 353) | function module3Configure(_config) {
Condensed preview — 39 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,295K chars).
[
{
"path": ".editorconfig",
"chars": 264,
"preview": "# EditorConfig is awesome: http://EditorConfig.org\n\n# top-most EditorConfig file\nroot = true\n\n# Unix-style newlines with"
},
{
"path": ".eslintrc.json",
"chars": 865,
"preview": "{\n \"root\": true,\n \"parser\": \"@typescript-eslint/parser\",\n \"extends\": [\"plugin:@typescript-eslint/recommended\"],\n \"ig"
},
{
"path": ".github/FUNDING.yml",
"chars": 395,
"preview": "# These are supported funding model platforms\n\ngithub: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [u"
},
{
"path": ".github/ISSUE_TEMPLATE.md",
"chars": 2160,
"preview": "<!--\nISSUES SUBMITTED THAT DO NOT FOLLOW THIS TEMPLATE WILL BE CLOSED.\n\nSUPPORT REQUESTS/QUESTIONS: If you have a suppor"
},
{
"path": ".github/workflows/main.yml",
"chars": 288,
"preview": "name: main\non: [push]\n\njobs:\n\n ci:\n timeout-minutes: 10\n runs-on: ubuntu-latest\n steps:\n - uses: actions/"
},
{
"path": ".gitignore",
"chars": 90,
"preview": "node_modules\njspm_packages\nbower_components\n.idea\n.DS_STORE\nbuild/reports\ncoverage\n.npmrc\n"
},
{
"path": ".npmignore",
"chars": 36,
"preview": "jspm_packages\nbower_components\n.idea"
},
{
"path": "BACKERS.md",
"chars": 11306,
"preview": "# Aurelia Backers\n\nBelow you'll find a list of the wonderful people and organizations that have made financial contribut"
},
{
"path": "CONTRIBUTING.md",
"chars": 2053,
"preview": "# Contributing\n\nPlease begin by reading [our contributing guidelines](https://github.com/DurandalProject/about/blob/mast"
},
{
"path": "LICENSE",
"chars": 1089,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2010 - 2018 Blue Spire Inc.\n\nPermission is hereby granted, free of charge, to any p"
},
{
"path": "README.md",
"chars": 5465,
"preview": "<p>\n <a href=\"https://aurelia.io/\" target=\"_blank\">\n <img alt=\"Aurelia\" src=\"https://aurelia.io/styles/images/aureli"
},
{
"path": "bower.json",
"chars": 905,
"preview": "{\n \"name\": \"aurelia-framework\",\n \"version\": \"1.4.1\",\n \"description\": \"The aurelia framework brings together all the r"
},
{
"path": "dist/amd/aurelia-framework.js",
"chars": 22317,
"preview": "define('aurelia-framework', ['exports', 'aurelia-dependency-injection', 'aurelia-binding', 'aurelia-metadata', 'aurelia-"
},
{
"path": "dist/amd/index.js",
"chars": 443,
"preview": "define(['exports', './aurelia-framework'], function (exports, _aureliaFramework) {\n 'use strict';\n\n Object.definePrope"
},
{
"path": "dist/commonjs/aurelia-framework.js",
"chars": 20471,
"preview": "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar aureliaDependencyInjection = require("
},
{
"path": "dist/commonjs/index.js",
"chars": 391,
"preview": "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _aureliaFramework = require('./aure"
},
{
"path": "dist/es2015/aurelia-framework.js",
"chars": 15660,
"preview": "import { Container } from 'aurelia-dependency-injection';\nexport * from 'aurelia-dependency-injection';\nexport * from 'a"
},
{
"path": "dist/es2015/index.js",
"chars": 36,
"preview": "export * from './aurelia-framework';"
},
{
"path": "dist/es2017/aurelia-framework.js",
"chars": 15660,
"preview": "import { Container } from 'aurelia-dependency-injection';\nexport * from 'aurelia-dependency-injection';\nexport * from 'a"
},
{
"path": "dist/native-modules/aurelia-framework.js",
"chars": 17675,
"preview": "import { Container } from 'aurelia-dependency-injection';\nexport * from 'aurelia-dependency-injection';\nexport * from 'a"
},
{
"path": "dist/native-modules/index.js",
"chars": 36,
"preview": "export * from './aurelia-framework';"
},
{
"path": "dist/system/aurelia-framework.js",
"chars": 24919,
"preview": "System.register(['aurelia-dependency-injection', 'aurelia-binding', 'aurelia-metadata', 'aurelia-templating', 'aurelia-l"
},
{
"path": "dist/system/index.js",
"chars": 413,
"preview": "'use strict';\n\nSystem.register(['./aurelia-framework'], function (_export, _context) {\n \"use strict\";\n\n return {\n s"
},
{
"path": "dist/types/aurelia-framework.d.ts",
"chars": 8321,
"preview": "// Generated by dts-bundle-generator v6.5.0\n\nimport { Container } from 'aurelia-dependency-injection';\nimport { Loader }"
},
{
"path": "doc/CHANGELOG.md",
"chars": 32529,
"preview": "## [1.4.1](https://github.com/aurelia/framework/compare/1.4.0...1.4.1) (2022-03-31)\n\n\n### Bug Fixes\n\n* **dep:** use late"
},
{
"path": "doc/MAINTAINER.md",
"chars": 585,
"preview": "## Workflow releasing a new version\n\n1. Update: pull latest master with `git pull`\n2. Cut release: Run `npm run cut-rele"
},
{
"path": "doc/api.json",
"chars": 911339,
"preview": "{\"id\":0,\"name\":\"aurelia-framework\",\"kind\":1,\"kindString\":\"Project\",\"flags\":{},\"originalName\":\"\",\"children\":[{\"id\":1,\"nam"
},
{
"path": "doc/cleanup.js",
"chars": 184,
"preview": "const path = require('path').resolve(__dirname, 'api.json');\nconst content = JSON.stringify(require('./api.json'));\n\nreq"
},
{
"path": "karma.conf.js",
"chars": 2532,
"preview": "// Karma configuration\n// Generated on Fri Dec 05 2014 16:49:29 GMT-0500 (EST)\n\n/**\n * @param {import('karma').Config} c"
},
{
"path": "package.json",
"chars": 2661,
"preview": "{\n \"name\": \"aurelia-framework\",\n \"version\": \"1.4.1\",\n \"description\": \"The aurelia framework brings together all the r"
},
{
"path": "rollup.config.js",
"chars": 1588,
"preview": "import typescript from '@rollup/plugin-typescript';\nimport pkg from './package.json';\n\nconst { name } = pkg;\nconst input"
},
{
"path": "src/aurelia-framework.ts",
"chars": 451,
"preview": "export * from 'aurelia-dependency-injection';\nexport * from 'aurelia-binding';\nexport * from 'aurelia-metadata';\nexport "
},
{
"path": "src/aurelia.ts",
"chars": 6681,
"preview": "import * as TheLogManager from 'aurelia-logging';\nimport {Container} from 'aurelia-dependency-injection';\nimport {Loader"
},
{
"path": "src/framework-configuration.ts",
"chars": 17393,
"preview": "/* eslint-disable @typescript-eslint/ban-types */\nimport * as TheLogManager from 'aurelia-logging';\nimport { ViewEngine,"
},
{
"path": "test/aurelia.spec.ts",
"chars": 12757,
"preview": "import { Container } from 'aurelia-dependency-injection';\nimport { Loader } from 'aurelia-loader';\nimport { DOM, PLATFOR"
},
{
"path": "test/framework-configuration.spec.ts",
"chars": 13773,
"preview": "import './setup';\nimport {FrameworkConfiguration} from '../src/framework-configuration';\nimport {Aurelia} from '../src/a"
},
{
"path": "test/setup.ts",
"chars": 63,
"preview": "import {initialize} from 'aurelia-pal-browser';\n\ninitialize();\n"
},
{
"path": "tsconfig.json",
"chars": 410,
"preview": "{\n \"compilerOptions\": {\n \"target\": \"es2015\",\n \"module\": \"es2015\",\n \"experimentalDecorators\": true,\n \"emitDe"
},
{
"path": "typings.json",
"chars": 81,
"preview": "{\n \"name\": \"aurelia-framework\",\n \"main\": \"dist/types/aurelia-framework.d.ts\"\n}\n"
}
]
About this extraction
This page contains the full source code of the aurelia/framework GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 39 files (1.1 MB), approximately 295.8k tokens, and a symbol index with 168 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.