MCPcopy Index your code
hub / github.com/aurelia/aurelia

github.com/aurelia/aurelia @v0.9.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.9.0 ↗ · + Follow
9,774 symbols 22,690 edges 700 files 224 documented · 2% 2 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Aurelia

License: MIT npm version CircleCI TypeScript Twitter

Backers on Open Collective Sponsors on Open Collective Discord Chat

Aurelia 2

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

Introduction

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

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

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

  quests = [
    "To seek the holy grail",
    "To take the ring to Mordor",
    "To rescue princess Leia"
  ];
}

<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>



${welcome}, ${name}!




Now set forth ${quest.toLowerCase()}!


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

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

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

Getting Started

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

npx makes aurelia

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

Documentation

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

Contributing

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

Staying Up-to-Date

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

License

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

Extension points exported contracts — how you extend this code

IHttpServer (Interface)
(no doc) [10 implementers]
packages/http-server/src/interfaces.ts
IValidator (Interface)
(no doc) [7 implementers]
packages/validation/src/validator.ts
ITemplateCompiler (Interface)
(no doc) [23 implementers]
packages/runtime-html/src/renderer.ts
IBinding (Interface)
(no doc) [21 implementers]
packages/runtime/src/observation.ts
IRouteViewModel (Interface)
(no doc) [23 implementers]
packages/router/src/component-agent.ts
IDisposable (Interface)
(no doc) [86 implementers]
packages/kernel/src/interfaces.ts
MutationSpec (Interface)
(no doc) [8 implementers]
packages/__tests__/3-runtime-html/repeater-if-else.spec.ts
ValidationResultsSubscriber (Interface)
(no doc) [10 implementers]
packages/validation-html/src/validation-controller.ts

Core symbols most depended-on inside this repo

define
called by 3836
packages/runtime-html/src/templating/controller.ts
register
called by 1418
packages/kernel/src/di.ts
get
called by 664
packages/kernel/src/di.ts
push
called by 589
packages/router/src/util.ts
create
called by 543
packages/kernel/src/di.ts
map
called by 427
packages/runtime-html/src/attribute-syntax-transformer.ts
customElement
called by 426
packages/runtime-html/src/resources/custom-element.ts
enrichWith
called by 288
packages-cjs/aot/src/vm/types/list.ts

Shape

Method 5,013
Class 2,703
Function 1,550
Interface 442
Enum 66

Languages

TypeScript100%

Modules by API surface

packages/runtime/src/binding/ast.ts313 symbols
packages/__tests__/router/hook-tests.spec.ts172 symbols
examples/realworld-advanced/src/api.ts161 symbols
packages-cjs/aot/src/vm/ast/expressions.ts157 symbols
examples/realworld/src/api.ts156 symbols
packages-cjs/aot/src/vm/globals/object.ts150 symbols
packages/runtime-html/src/renderer.ts145 symbols
packages-cjs/aot/src/vm/ast/statements.ts133 symbols
packages-cjs/aot/src/vm/types/environment-record.ts127 symbols
packages/kernel/src/di.ts125 symbols
packages-cjs/aot/src/vm/globals/promise.ts115 symbols
packages/runtime-html/src/templating/controller.ts103 symbols

Used by 2 indexed graphs manifest dependencies, hub-wide

For agents

$ claude mcp add aurelia \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact