# Monorepo overview

The [loopback-next](https://github.com/strongloop/loopback-next) repository uses
[lerna](https://lernajs.io/) to manage multiple packages for LoopBack 4.

<!-- PLEASE KEEP THE TABLE ROWS SORTED ALPHABETICALLY BY PACKAGE NAME-->

| Package                                                                                                             | npm                                   | Description                                                                                                                                                                                                                                                                                      |
| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [authentication](https://github.com/strongloop/loopback-next/tree/master/packages/authentication)                   | @loopback/authentication              | A component for authentication support                                                                                                                                                                                                                                                           |
| [booter-lb3app](https://github.com/strongloop/loopback-next/tree/master/packages/booter-lb3app)                     | @loopback/booter-lb3app               | A booter component for LoopBack 3 applications to expose their REST API via LoopBack 4.                                                                                                                                                                                                          |
| [boot](https://github.com/strongloop/loopback-next/tree/master/packages/boot)                                       | @loopback/boot                        | Convention based Bootstrapper and Booters                                                                                                                                                                                                                                                        |
| [build](https://github.com/strongloop/loopback-next/tree/master/packages/build)                                     | @loopback/build                       | A set of common scripts and default configurations to build LoopBack 4 or other TypeScript modules                                                                                                                                                                                               |
| [cli](https://github.com/strongloop/loopback-next/tree/master/packages/cli)                                         | @loopback/cli                         | CLI for LoopBack 4                                                                                                                                                                                                                                                                               |
| [context](https://github.com/strongloop/loopback-next/tree/master/packages/context)                                 | @loopback/context                     | Facilities to manage artifacts and their dependencies in your Node.js applications. The module exposes TypeScript/JavaScript APIs and decorators to register artifacts, declare dependencies, and resolve artifacts by keys. It also serves as an IoC container to support dependency injection. |
| [core](https://github.com/strongloop/loopback-next/tree/master/packages/core)                                       | @loopback/core                        | Define and implement core constructs such as Application and Component                                                                                                                                                                                                                           |
| [docs](https://github.com/strongloop/loopback-next/tree/master/docs)                                                | @loopback/docs                        | Documentation files rendered at [https://loopback.io](https://loopback.io)                                                                                                                                                                                                                       |
| [eslint-config](https://github.com/strongloop/loopback-next/tree/master/packages/eslint-config)                     | @loopback/eslint-config               | ESLint configuration for LoopBack projects                                                                                                                                                                                                                                                       |
| [example-express-composition](https://github.com/strongloop/loopback-next/tree/master/examples/express-composition) | @loopback/example-express-composition | A simple Express application that uses LoopBack 4 REST API                                                                                                                                                                                                                                       |
| [example-greeter-extension](https://github.com/strongloop/loopback-next/tree/master/examples/greeter-extension)     | @loopback/example-greeter-extension   | An example showing how to implement the extension point/extension pattern using LoopBack 4                                                                                                                                                                                                       |
| [example-hello-world](https://github.com/strongloop/loopback-next/tree/master/examples/hello-world)                 | @loopback/example-hello-world         | A simple hello-world application using LoopBack 4                                                                                                                                                                                                                                                |
| [example-lb3-application](https://github.com/strongloop/loopback-next/tree/master/examples/lb3-application)         | @loopback/example-lb3-application     | An example LoopBack 3 application mounted in a LoopBack 4 project.                                                                                                                                                                                                                               |
| [example-log-extension](https://github.com/strongloop/loopback-next/tree/master/examples/log-extension)             | @loopback/example-log-extension       | An example showing how to write a complex log extension for LoopBack 4                                                                                                                                                                                                                           |
| [example-rpc-server](https://github.com/strongloop/loopback-next/tree/master/examples/rpc-server)                   | @loopback/example-rpc-server          | An example RPC server and application to demonstrate the creation of your own custom server                                                                                                                                                                                                      |
| [example-soap-calculator](https://github.com/strongloop/loopback-next/tree/master/examples/soap-calculator)         | @loopback/example-soap-calculator     | A tutorial demonstrating integration with a SOAP webservice                                                                                                                                                                                                                                      |
| [example-todo-list](https://github.com/strongloop/loopback-next/tree/master/examples/todo-list)                     | @loopback/example-todo-list           | Continuation of the todo example using relations in LoopBack 4                                                                                                                                                                                                                                   |
| [example-todo](https://github.com/strongloop/loopback-next/tree/master/examples/todo)                               | @loopback/example-todo                | A basic tutorial for getting started with Loopback 4                                                                                                                                                                                                                                             |
| [http-caching-proxy](https://github.com/strongloop/loopback-next/tree/master/packages/http-caching-proxy)           | @loopback/http-caching-proxy          | A caching HTTP proxy for integration tests. NOT SUITABLE FOR PRODUCTION USE!                                                                                                                                                                                                                     |
| [http-server](https://github.com/strongloop/loopback-next/tree/master/packages/http-server)                         | @loopback/http-server                 | A wrapper for creating HTTP/HTTPS servers                                                                                                                                                                                                                                                        |
| [metadata](https://github.com/strongloop/loopback-next/tree/master/packages/metadata)                               | @loopback/metadata                    | Utilities to help developers implement TypeScript decorators, define/merge metadata, and inspect metadata                                                                                                                                                                                        |
| [openapi-spec-builder](https://github.com/strongloop/loopback-next/tree/master/packages/openapi-spec-builder)       | @loopback/openapi-spec-builder        | Builders to create OpenAPI (Swagger) specification documents in tests                                                                                                                                                                                                                            |
| [openapi-v3-types](https://github.com/strongloop/loopback-next/tree/master/packages/openapi-v3-types)               | @loopback/openapi-v3-types            | TypeScript type definitions for OpenAPI Specifications                                                                                                                                                                                                                                           |
| [openapi-v3](https://github.com/strongloop/loopback-next/tree/master/packages/openapi-v3)                           | @loopback/openapi-v3                  | Decorators that annotate LoopBack artifacts with OpenAPI v3 metadata and utilities that transform LoopBack metadata to OpenAPI v3 specifications                                                                                                                                                 |
| [repository-json-schema](https://github.com/strongloop/loopback-next/tree/master/packages/repository-json-schema)   | @loopback/repository-json-schema      | Convert a TypeScript class/model to a JSON Schema                                                                                                                                                                                                                                                |
| [repository](https://github.com/strongloop/loopback-next/tree/master/packages/repository)                           | @loopback/repository                  | Define and implement a common set of interfaces for interacting with databases                                                                                                                                                                                                                   |
| [rest](https://github.com/strongloop/loopback-next/tree/master/packages/rest)                                       | @loopback/rest                        | Expose controllers as REST endpoints and route REST API requests to controller methods                                                                                                                                                                                                           |
| [service-proxy](https://github.com/strongloop/loopback-next/tree/master/packages/service-proxy)                     | @loopback/service-proxy               | A common set of interfaces for interacting with service oriented backends such as REST APIs, SOAP Web Services, and gRPC microservices                                                                                                                                                           |
| [testlab](https://github.com/strongloop/loopback-next/tree/master/packages/testlab)                                 | @loopback/testlab                     | A collection of test utilities we use to write LoopBack tests                                                                                                                                                                                                                                    |
| [tsdocs](https://github.com/strongloop/loopback-next/tree/master/packages/tsdocs)                                   | @loopback/tsdocs                      | An internal package to generate api docs using Microsoft api-extractor and api-documenter                                                                                                                                                                                                        |
| [tslint-config](https://github.com/strongloop/loopback-next/tree/master/packages/tslint-config)                     | @loopback/tslint-config               | Shared TSLint config to enforce a consistent code style for LoopBack development                                                                                                                                                                                                                 |

We use npm scripts declared in
[package.json](https://github.com/strongloop/loopback-next/blob/master/package.json)
to work with the monorepo managed by lerna. See
[Developing LoopBack](./DEVELOPING.md) for more details.
