├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug-report.yml │ └── config.yml ├── PULL_REQUEST_TEMPLATE.md ├── codeql │ └── codeql-config.yml ├── stale.yml └── workflows │ ├── codeql-analysis.yml │ ├── continuous-integration.yml │ └── renovate-config-validator.yml ├── .gitignore ├── .husky ├── .gitignore ├── commit-msg └── pre-commit ├── .lintstagedrc ├── .mocharc.js ├── .npmrc ├── .nycrc ├── .prettierignore ├── .prettierrc ├── .vscode ├── launch.json ├── settings.json └── tasks.json ├── CHANGELOG.md ├── CODEOWNERS ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── MAINTAINERS.md ├── MAINTAINING.md ├── README.md ├── SECURITY.md ├── acceptance ├── README.md ├── extension-logging-fluentd │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── fixtures │ │ ├── etc │ │ │ └── fluentd.conf │ │ ├── start-fluentd.sh │ │ └── stop-fluentd.sh │ ├── package.json │ ├── src │ │ └── __tests__ │ │ │ ├── acceptance │ │ │ └── fluent.acceptance.ts │ │ │ └── fixtures │ │ │ └── fluentd.docker.ts │ └── tsconfig.json ├── repository-cloudant │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── docker.setup.js │ ├── package.json │ ├── setup.sh │ ├── src │ │ └── __tests__ │ │ │ ├── cloudant-default-repository.acceptance.ts │ │ │ └── cloudant.datasource.ts │ └── tsconfig.json ├── repository-mongodb │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── setup.sh │ ├── src │ │ └── __tests__ │ │ │ ├── mongodb-default-repository.acceptance.ts │ │ │ ├── mongodb-repository-execute.acceptance.ts │ │ │ └── mongodb.datasource.ts │ └── tsconfig.json ├── repository-mysql │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── setup.sh │ ├── src │ │ └── __tests__ │ │ │ ├── mysql-default-repository.acceptance.ts │ │ │ ├── mysql-repository-execute.acceptance.ts │ │ │ └── mysql.datasource.ts │ ├── test │ │ └── schema.sql │ └── tsconfig.json └── repository-postgresql │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── setup.sh │ ├── src │ └── __tests__ │ │ ├── postgresql-default-repository.acceptance.ts │ │ ├── postgresql-repository-execute.acceptance.ts │ │ └── postgresql.datasource.ts │ ├── test │ └── schema.sql │ └── tsconfig.json ├── benchmark ├── .npmrc ├── CHANGELOG.md ├── LICENSE ├── README.md ├── package.json ├── src │ ├── __tests__ │ │ └── benchmark.integration.ts │ ├── autocannon.ts │ ├── benchmark.ts │ ├── client.ts │ ├── context-binding │ │ ├── README.md │ │ └── context-binding.ts │ ├── index.ts │ ├── rest-routing │ │ ├── README.md │ │ └── routing-table.ts │ ├── scenarios │ │ ├── create-todo.scenario.ts │ │ ├── find-todos.scenario.ts │ │ └── index.ts │ └── worker.ts └── tsconfig.json ├── bin ├── build-docs-site.sh ├── check-package-metadata.js ├── checkout-pr.js ├── config-package-scopes.js ├── create-package.js ├── fix-monorepo.js ├── mocha-current-file.js ├── script-util.js ├── sync-dev-deps.js ├── update-monorepo-file.js ├── update-template-deps.js ├── update-ts-project-refs.js └── verify-doc-changes.sh ├── bodyparsers └── rest-msgpack │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ ├── __tests__ │ │ ├── acceptance │ │ │ └── bodyparser.acceptance.ts │ │ └── unit │ │ │ └── bodyparser.unit.ts │ ├── bodyparser.ts │ ├── component.ts │ ├── index.ts │ └── keys.ts │ └── tsconfig.json ├── commitlint.config.js ├── docs ├── .npmrc ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── MAINTAINING.md ├── README.md ├── ROADMAP.md ├── bin │ ├── build-jekyll-preview-config.js │ ├── build-preview-site.sh │ ├── copy-changelogs.js │ └── copy-readmes.js ├── diagrams │ ├── authentication_diagrams.pptx │ └── loopback-docs-diagrams.key ├── img │ ├── domain.png │ └── request routing.png ├── package.json ├── site │ ├── Accepting-MessagePack-over-HTTP.md │ ├── Accessing-http-request-response.md │ ├── Accessing-services.md │ ├── Advanced-sequence-topics.md │ ├── Application-generator.md │ ├── Application-setup-tips.md │ ├── Application.md │ ├── Appsody-LoopBack.md │ ├── Authentication-component-action.md │ ├── Authentication-component-decorator.md │ ├── Authentication-component-options.md │ ├── Authentication-component-strategy.md │ ├── Authentication-overview.md │ ├── Authentication-passport.md │ ├── Authorization-component-authorizer.md │ ├── Authorization-component-decision-matrix.md │ ├── Authorization-component-decorator.md │ ├── Authorization-component-enforcer.md │ ├── Authorization-component-interceptor.md │ ├── Authorization-component.md │ ├── Authorization-overview.md │ ├── BelongsTo-relation.md │ ├── Best-practices.md │ ├── Binding.md │ ├── Boot-and-Mount-a-LoopBack-3-application.md │ ├── Booting-an-Application.md │ ├── Building-frontend-angular-application.md │ ├── Calling-rest-apis.md │ ├── Calling-soap-web-services.md │ ├── Cassandra-connector.md │ ├── Cloudant-connector.md │ ├── Command-line-interface.md │ ├── Community-examples.md │ ├── Community-extensions.md │ ├── Component.md │ ├── Concepts.md │ ├── Configuring-applications.md │ ├── Configuring-datasource.md │ ├── Context-explorer.md │ ├── Context.md │ ├── Controller-generator.md │ ├── Controller.md │ ├── Copyright-generator.md │ ├── Crafting-LoopBack-4.md │ ├── Create-custom-authentication-strategy.md │ ├── Creating-CRUD-REST-apis.md │ ├── Creating-artifacts-runtime.md │ ├── Creating-components.md │ ├── Creating-datasource-runtime.md │ ├── Creating-decorators.md │ ├── Creating-model-runtime.md │ ├── Creating-repository-runtime.md │ ├── Creating-servers.md │ ├── Customizing-routes.md │ ├── Customizing-server-configuration.md │ ├── DB2-connector.md │ ├── DB2-for-i-connector.md │ ├── DB2-for-z-OS-connector.md │ ├── DEVELOPING.md │ ├── DataSource-generator.md │ ├── DataSource.md │ ├── Database-migrations.md │ ├── Debugging-tests-with-mocha.md │ ├── Decorators.md │ ├── Defining-the-API-using-code-first-approach.md │ ├── Defining-the-API-using-design-first-approach.shelved.md │ ├── Defining-your-testing-strategy.md │ ├── Dependency-injection.md │ ├── Deployment.md │ ├── Developing-with-vscode.md │ ├── Developing-with-webstorm.md │ ├── Discovering-models.md │ ├── Download-examples.md │ ├── Dynamic-models-repositories-controllers.md │ ├── Example-kv-connector.md │ ├── Examples.md │ ├── Executing-database-commands.md │ ├── Express-middleware.md │ ├── Extending-LoopBack-4.md │ ├── Extending-Model-API-builder.md │ ├── Extending-OpenAPI-specification.md │ ├── Extending-request-body-parsing.md │ ├── Extension-generator.md │ ├── Extension-life-cycle.md │ ├── Extension-point-and-extensions.md │ ├── FAQ.md │ ├── Fields-filter.md │ ├── File-upload-download.md │ ├── Getting-started.md │ ├── Glossary.md │ ├── GraphQL.md │ ├── HasMany-relation.md │ ├── HasManyThrough-relation.md │ ├── HasOne-relation.md │ ├── Health.md │ ├── Implementing-features.shelved.md │ ├── Importing-LB3-models.md │ ├── Include-filter.md │ ├── Inside-Loopback-Application.md │ ├── Installing-the-Oracle-connector.md │ ├── Integrating-with-api-connect.md │ ├── Interceptor-generator.md │ ├── Interceptor.md │ ├── JSON-RPC-connector.md │ ├── JWT-authentication-extension.md │ ├── LB3-vs-LB4-request-response-cycle.md │ ├── Language-related-concepts.md │ ├── Life-cycle-observer-generator.md │ ├── Life-cycle.md │ ├── Limit-filter.md │ ├── Logging.md │ ├── LoopBack-types.md │ ├── Loopback-application-layout-reference.md │ ├── Loopback-component-authentication.md │ ├── MONOREPO.md │ ├── MQLight-connector.md │ ├── Memory-connector.md │ ├── Metrics.md │ ├── Middleware.md │ ├── Migrate-from-legacy-sequence.md │ ├── Migrating-from-LoopBack-3-redirect.md │ ├── Mixin.md │ ├── Model-generator.md │ ├── Model.md │ ├── MongoDB-connector.md │ ├── MySQL-connector.md │ ├── OpenAPI-connector.md │ ├── OpenAPI-generator.md │ ├── Oracle-connector.md │ ├── Order-filter.md │ ├── Parsing-requests-guide.md │ ├── Parsing-requests.md │ ├── Polymorphic-relation.md │ ├── Pooling.md │ ├── PostgreSQL-connector.md │ ├── Preparing-the-API-for-consumption.shelved.md │ ├── Querying-data.md │ ├── RBAC-with-authorization.md │ ├── REST-action-sequence.md │ ├── REST-connector.md │ ├── REST-middleware-sequence.md │ ├── Redis-connector.md │ ├── ReferencesMany-relation.md │ ├── Relation-generator.md │ ├── Relations.md │ ├── Repository-generator.md │ ├── Repository.md │ ├── Request-response-cycle.md │ ├── Rest-Crud-generator.md │ ├── Route.md │ ├── Routing-requests.md │ ├── Running-cron-jobs.md │ ├── SOAP-connector.md │ ├── SQL-Server-connector.md │ ├── SQLite3.md │ ├── Security.md │ ├── Self-hosted-REST-API-Explorer.md │ ├── Sequence.md │ ├── Server.md │ ├── Service-generator.md │ ├── Service.md │ ├── Serving-static-files.md │ ├── Setting-debug-strings.md │ ├── Skip-filter.md │ ├── Team.md │ ├── Testing-Your-Extensions.md │ ├── Testing-the-API.shelved.md │ ├── Testing-your-application.md │ ├── Troubleshooting.md │ ├── Tutorials.md │ ├── Understanding-the-differences.md │ ├── Update-generator.md │ ├── Using-Sequelize-with-LoopBack.md │ ├── Using-TypeORM-with-LoopBack.md │ ├── Using-openapi-to-graphql.md │ ├── Using-strong-error-handler.md │ ├── Validation-ORM-layer.md │ ├── Validation-REST-layer.md │ ├── Validation-controller-layer.md │ ├── Validation.md │ ├── Where-filter.md │ ├── Working-with-data.md │ ├── Working-with-express-middleware.md │ ├── decorators │ │ ├── Decorators_authenticate.md │ │ ├── Decorators_authorize.md │ │ ├── Decorators_inject.md │ │ ├── Decorators_openapi.md │ │ ├── Decorators_repository.md │ │ └── Decorators_service.md │ ├── deployment │ │ ├── Deploy-for-GDPR-readiness.md │ │ ├── Deploying-to-IBM-Cloud.md │ │ ├── Deploying-with-pm2-and-nginx.md │ │ └── Deploying_to_ibm_cloud_kubernetes.md │ ├── express-with-lb4-rest-tutorial.md │ ├── extending │ │ ├── rest-api.md │ │ └── services.md │ ├── guides │ │ ├── data-access │ │ │ └── transactions.md │ │ ├── deployment │ │ │ └── enabling-https.md │ │ └── rest │ │ │ └── customize-openapi.md │ ├── imgs │ │ ├── 10000000.png │ │ ├── 10000001.png │ │ ├── 10000002.png │ │ ├── access-databases-overview.png │ │ ├── api_explorer_all_sections_lock_icons1.png │ │ ├── api_explorer_auth_token_dialog1.png │ │ ├── api_explorer_auth_token_dialog2.png │ │ ├── api_explorer_authorize_button.png │ │ ├── api_explorer_usercontroller_section1.png │ │ ├── application-states.png │ │ ├── appsody_flow.png │ │ ├── auth-tutorial-apiexplorer.png │ │ ├── auth-tutorial-auth-button.png │ │ ├── auth-tutorial-jwt-token.png │ │ ├── authentication │ │ │ └── authentication-overview.png │ │ ├── authentication_overview_detailed.png │ │ ├── authentication_overview_highlevel.png │ │ ├── authorization-rbac-architecture.png │ │ ├── authorization-rbac-user-scenario.png │ │ ├── authorization.png │ │ ├── belongsTo-relation-graph.png │ │ ├── binding-scopes.png │ │ ├── binding.png │ │ ├── branding │ │ │ └── Powered-by-LoopBack-Badge-(blue)-@2x.png │ │ ├── cascading-middleware.png │ │ ├── datasource.png │ │ ├── debug_vscode_breakpoint_1.png │ │ ├── debug_vscode_breakpoint_2.png │ │ ├── dependency-injection.png │ │ ├── deploytocloud-createconnection.png │ │ ├── deploytocloud-createdb.png │ │ ├── deploytocloud-launchcdashboard.png │ │ ├── deploytocloud-mycloudant.png │ │ ├── example-shopping.png │ │ ├── hasMany-relation-example.png │ │ ├── hasMany-relation-graph.png │ │ ├── hasManyThrough-relation-example.png │ │ ├── hasOne-relation-example.png │ │ ├── hasOne-relation-graph.png │ │ ├── interceptors.png │ │ ├── json_web_token_overview.png │ │ ├── key-concepts-overview-diagram.png │ │ ├── lb3-req-res.png │ │ ├── lb4-high-level.png │ │ ├── lb4-req-res.png │ │ ├── lb4_k8s_ibm_cloud_app_website_1.png │ │ ├── lb4_k8s_ibm_cloud_app_website_on_cloud_k8s.png │ │ ├── lb4_k8s_ibm_cloud_cluster_access_1.png │ │ ├── lb4_k8s_ibm_cloud_container_registry_1.png │ │ ├── lb4_k8s_ibm_cloud_k8s_dashboard_1.png │ │ ├── lb4_k8s_ibm_cloud_k8s_dashboard_2.png │ │ ├── lb4_k8s_ibm_cloud_k8s_dashboard_3.png │ │ ├── lb4_k8s_ibm_cloud_k8s_dashboard_4.png │ │ ├── lb4_k8s_ibm_cloud_kubernetes_cluster_1.png │ │ ├── lb4appsody_template_cluster_1.png │ │ ├── lb4appsody_template_debug_1.png │ │ ├── lb4appsody_template_debug_2.png │ │ ├── lb4appsody_template_debug_3.png │ │ ├── lb4appsody_template_files_1.png │ │ ├── lb4appsody_template_files_2.png │ │ ├── lb4appsody_template_pods_1.png │ │ ├── lb4appsody_template_webpage_1.png │ │ ├── lb4appsody_template_webpage_2.png │ │ ├── lb4appsody_template_webpage_3.png │ │ ├── lb4appsody_template_webpage_cloud_1.png │ │ ├── loopback-component.png │ │ ├── loopback-composition.png │ │ ├── loopback-context-hierarchy.png │ │ ├── loopback-context.png │ │ ├── loopback-ecosystem.png │ │ ├── loopback-example-soap-calculator_figure1.png │ │ ├── loopback-example-soap-calculator_figure2.png │ │ ├── loopback-example-soap-calculator_figure3.png │ │ ├── loopback-example-soap-calculator_figure4.png │ │ ├── loopback-extension.png │ │ ├── loopback-ioc.png │ │ ├── loopback-overview.png │ │ ├── loopback-stack.png │ │ ├── middleware-classes.png │ │ ├── middleware-sequence.png │ │ ├── middleware.png │ │ ├── relation-inclusion.png │ │ ├── repository.png │ │ ├── req-res-high-level.png │ │ ├── sequence-details.png │ │ ├── shopping-app.png │ │ ├── shopping-business-logic.png │ │ ├── shopping-example-model-relations.png │ │ ├── submit_pr_create_feature_branch_1.png │ │ ├── submit_pr_create_feature_branch_2.png │ │ ├── submit_pr_create_pr_1.png │ │ ├── submit_pr_create_pr_2.png │ │ ├── submit_pr_final_commit_ci_jobs_pass_1.png │ │ ├── submit_pr_fork_main_repo.png │ │ ├── submit_pr_git_cz_1.png │ │ ├── submit_pr_my_forked_repo.png │ │ ├── submit_pr_pr_review_1.png │ │ ├── submit_pr_rebase_1.png │ │ ├── submit_pr_rebase_2.png │ │ ├── submit_pr_rebase_3.png │ │ ├── submit_pr_squash_commits_1.png │ │ ├── submit_pr_squash_commits_2.png │ │ ├── submit_pr_squash_commits_3.png │ │ ├── submit_pr_squash_commits_4.png │ │ ├── submit_pr_squash_commits_5.png │ │ ├── submit_pr_squash_commits_6.png │ │ ├── submit_pr_squash_commits_7.png │ │ ├── submit_pr_template_1.png │ │ ├── submit_pr_travis_ci_build_page_1.png │ │ ├── todo-list-overview.png │ │ ├── todo-overview.png │ │ └── tutorials │ │ │ ├── access-control-migration │ │ │ ├── auth_example_authorization_casbin.png │ │ │ ├── auth_example_casbin_model_policy.png │ │ │ ├── auth_example_get_token.png │ │ │ ├── auth_example_login.png │ │ │ ├── auth_example_mechanism.png │ │ │ ├── auth_example_scenario_model.png │ │ │ ├── auth_example_set_token.png │ │ │ ├── auth_example_withdraw.png │ │ │ └── auth_example_withdraw_401.png │ │ │ ├── authentication-migration │ │ │ ├── lb3-authentication-user.png │ │ │ └── lb4-authentication-user.png │ │ │ └── core │ │ │ ├── greeters.png │ │ │ ├── greeting-app-boot.png │ │ │ ├── greeting-app-project-layout.png │ │ │ └── greeting-app.png │ ├── includes │ │ └── CLI-std-options.md │ ├── index.md │ ├── kv-redis-connector.md │ ├── migration │ │ ├── LB3-vs-LB4-booting.md │ │ ├── auth │ │ │ ├── authentication.md │ │ │ ├── migration-auth-access-control-example.md │ │ │ ├── oauth2.md │ │ │ ├── overview.md │ │ │ └── passport.md │ │ ├── boot-scripts.md │ │ ├── cli.md │ │ ├── clients.md │ │ ├── components │ │ │ ├── current-context.md │ │ │ ├── mixins.md │ │ │ ├── models.md │ │ │ ├── overview.md │ │ │ ├── project-layout.md │ │ │ └── rest-api.md │ │ ├── datasources.md │ │ ├── express-middleware.md │ │ ├── models │ │ │ ├── core.md │ │ │ ├── methods.md │ │ │ ├── mixins.md │ │ │ ├── operation-hooks.md │ │ │ ├── overview.md │ │ │ ├── relations.md │ │ │ └── remoting-hooks.md │ │ ├── mounting-lb3app.md │ │ ├── not-planned.md │ │ ├── overview.md │ │ └── tables │ │ │ ├── lb3-lb4-command-mappings.html │ │ │ ├── lb3-only-commands.html │ │ │ └── lb4-only-commands.html │ ├── reference │ │ ├── error-codes.md │ │ └── reserved-binding-keys.md │ ├── sidebars │ │ └── lb4_sidebar.yml │ ├── soap-calculator-tutorial.md │ ├── submitting_a_pr.md │ ├── tables │ │ ├── lb4-artifact-commands.html │ │ ├── lb4-class-file-naming-convention.html │ │ └── lb4-project-commands.html │ ├── todo-list-tutorial.md │ ├── todo-tutorial.md │ └── tutorials │ │ ├── authentication │ │ └── Authentication-Tutorial.md │ │ ├── connectors │ │ ├── Connecting-to-back-end.md │ │ ├── Mongodb-tutorial.md │ │ ├── Mysql-tutorial.md │ │ ├── Oracle-tutorial.md │ │ └── Postgresql-tutorial.md │ │ ├── core │ │ ├── 1-introduction.md │ │ ├── 10-advanced-recipes.md │ │ ├── 11-summary.md │ │ ├── 2-architecture.md │ │ ├── 3-context-in-action.md │ │ ├── 4-dependency-injection.md │ │ ├── 5-extension-point-extension.md │ │ ├── 6-interception.md │ │ ├── 7-observation.md │ │ ├── 8-configuration.md │ │ ├── 9-boot-by-convention.md │ │ └── index.md │ │ ├── soap-calculator │ │ ├── soap-calculator-tutorial-add-controller.md │ │ ├── soap-calculator-tutorial-add-datasource.md │ │ ├── soap-calculator-tutorial-add-service.md │ │ ├── soap-calculator-tutorial-run-and-test.md │ │ ├── soap-calculator-tutorial-scaffolding.md │ │ └── soap-calculator-tutorial-web-service-overview.md │ │ ├── todo-list │ │ ├── todo-list-tutorial-controller.md │ │ ├── todo-list-tutorial-dbtables.png │ │ ├── todo-list-tutorial-has-one-relation.md │ │ ├── todo-list-tutorial-model.md │ │ ├── todo-list-tutorial-relations.md │ │ ├── todo-list-tutorial-repository.md │ │ └── todo-list-tutorial-sqldb.md │ │ └── todo │ │ ├── todo-tutorial-controller.md │ │ ├── todo-tutorial-datasource.md │ │ ├── todo-tutorial-geocoding-service.md │ │ ├── todo-tutorial-model.md │ │ ├── todo-tutorial-putting-it-together.md │ │ ├── todo-tutorial-repository.md │ │ └── todo-tutorial-scaffolding.md └── spikes │ ├── 2020-04-how-to-migrate-lb3-components.md │ └── README.md ├── examples ├── access-control-migration │ ├── .dockerignore │ ├── .editorconfig │ ├── .eslintrc.js │ ├── .npmignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── launch.json │ │ ├── settings.json │ │ └── tasks.json │ ├── CHANGELOG.md │ ├── Dockerfile │ ├── LICENSE │ ├── README.md │ ├── data │ │ └── db.json │ ├── fixtures │ │ └── casbin │ │ │ ├── rbac_model.conf │ │ │ ├── rbac_policy.admin.csv │ │ │ ├── rbac_policy.owner.csv │ │ │ └── rbac_policy.team_member.csv │ ├── package.json │ ├── public │ │ └── index.html │ ├── src │ │ ├── __tests__ │ │ │ └── acceptance │ │ │ │ └── project.acceptance.ts │ │ ├── application.ts │ │ ├── components │ │ │ └── casbin-authorization │ │ │ │ ├── casbin-authorization-component.ts │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ ├── assign-project-instance-id.voter.ts │ │ │ │ ├── casbin.authorizer.ts │ │ │ │ ├── casbin.enforcers.ts │ │ │ │ └── index.ts │ │ ├── controllers │ │ │ ├── index.ts │ │ │ ├── project.controller.ts │ │ │ └── user.controller.ts │ │ ├── datasources │ │ │ ├── db.datasource.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── migrate.ts │ │ ├── models │ │ │ ├── index.ts │ │ │ ├── project.model.ts │ │ │ ├── team.model.ts │ │ │ ├── user-credentials.model.ts │ │ │ └── user.model.ts │ │ ├── observers │ │ │ ├── index.ts │ │ │ └── sample.observer.ts │ │ ├── openapi-spec.ts │ │ ├── repositories │ │ │ ├── index.ts │ │ │ ├── project.repository.ts │ │ │ ├── team.repository.ts │ │ │ ├── user-credentials.repository.ts │ │ │ └── user.repository.ts │ │ └── sequence.ts │ └── tsconfig.json ├── binding-resolution │ ├── .editorconfig │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── binding-resolution.png │ ├── package.json │ ├── public │ │ └── index.html │ ├── src │ │ ├── __tests__ │ │ │ ├── README.md │ │ │ └── acceptance │ │ │ │ ├── home-page.acceptance.ts │ │ │ │ ├── ping.controller.acceptance.ts │ │ │ │ └── test-helper.ts │ │ ├── application.ts │ │ ├── controllers │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── ping.controller.ts │ │ ├── index.ts │ │ ├── interceptors │ │ │ ├── index.ts │ │ │ └── spy.interceptor.ts │ │ ├── keys.ts │ │ ├── middleware │ │ │ └── spy.middleware.ts │ │ ├── sequence.ts │ │ ├── services │ │ │ ├── counter.service.ts │ │ │ ├── index.ts │ │ │ └── logger.service.ts │ │ └── util.ts │ └── tsconfig.json ├── context │ ├── .editorconfig │ ├── .npmignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── fixtures │ │ └── examples-output.txt │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ └── acceptance │ │ │ │ └── examples.acceptance.ts │ │ ├── binding-types.ts │ │ ├── configuration-injection.ts │ │ ├── context-chain.ts │ │ ├── context-observation.ts │ │ ├── custom-configuration-resolver.ts │ │ ├── custom-inject-decorator.ts │ │ ├── custom-inject-resolve.ts │ │ ├── dependency-injection.ts │ │ ├── find-bindings.ts │ │ ├── index.ts │ │ ├── injection-without-binding.ts │ │ ├── interceptor-proxy.ts │ │ ├── parameterized-decoration.ts │ │ ├── sync-async.ts │ │ └── value-promise.ts │ └── tsconfig.json ├── express-composition │ ├── .editorconfig │ ├── .eslintrc.js │ ├── .npmignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── data │ │ └── ds.json │ ├── package.json │ ├── public │ │ ├── express.html │ │ ├── index.html │ │ └── notes.html │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── express.acceptance.ts │ │ │ │ ├── note.acceptance.ts │ │ │ │ ├── ping.controller.acceptance.ts │ │ │ │ └── test-helper.ts │ │ │ └── mocha.opts │ │ ├── application.ts │ │ ├── controllers │ │ │ ├── index.ts │ │ │ ├── note.controller.ts │ │ │ └── ping.controller.ts │ │ ├── datasources │ │ │ ├── ds.datasource.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── migrate.ts │ │ ├── models │ │ │ ├── index.ts │ │ │ └── note.model.ts │ │ ├── observers │ │ │ ├── hello.observer.ts │ │ │ └── index.ts │ │ ├── repositories │ │ │ ├── index.ts │ │ │ └── note.repository.ts │ │ ├── sequence.ts │ │ └── server.ts │ └── tsconfig.json ├── file-transfer │ ├── .editorconfig │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── fixtures │ │ ├── assets │ │ │ └── index.html │ │ └── file-upload-test.txt │ ├── package.json │ ├── public │ │ └── index.html │ ├── src │ │ ├── __tests__ │ │ │ ├── README.md │ │ │ └── acceptance │ │ │ │ ├── file-download.acceptance.ts │ │ │ │ ├── file-upload.acceptance.ts │ │ │ │ └── test-helper.ts │ │ ├── application.ts │ │ ├── controllers │ │ │ ├── README.md │ │ │ ├── file-download.controller.ts │ │ │ ├── file-upload.controller.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── sequence.ts │ │ ├── services │ │ │ ├── file-upload.service.ts │ │ │ └── index.ts │ │ └── types.ts │ ├── tsconfig.json │ └── upload-download.png ├── graphql │ ├── .editorconfig │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── graphql-demo.png │ ├── package.json │ ├── public │ │ └── index.html │ ├── src │ │ ├── __tests__ │ │ │ └── acceptance │ │ │ │ ├── graphql-context.acceptance.ts │ │ │ │ ├── graphql-middleware-options.acceptance.ts │ │ │ │ ├── graphql-middleware.acceptance.ts │ │ │ │ ├── graphql-subscription.acceptance.ts │ │ │ │ ├── graphql-tests.ts │ │ │ │ └── graphql.acceptance.ts │ │ ├── application.ts │ │ ├── datasources │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── recipes.datasource.ts │ │ ├── graphql-resolvers │ │ │ └── recipe-resolver.ts │ │ ├── graphql-types │ │ │ ├── recipe-input.ts │ │ │ └── recipe-type.ts │ │ ├── index.ts │ │ ├── migrate.ts │ │ ├── repositories │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── recipe.repository.ts │ │ ├── sample-recipes.ts │ │ └── services │ │ │ └── recipe.service.ts │ └── tsconfig.json ├── greeter-extension │ ├── .editorconfig │ ├── .npmignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── greeters.png │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ └── acceptance │ │ │ │ └── greeter-extension.acceptance.ts │ │ ├── application.ts │ │ ├── component.ts │ │ ├── greeters │ │ │ ├── greeter-cn.ts │ │ │ └── greeter-en.ts │ │ ├── greeting-service.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ └── types.ts │ └── tsconfig.json ├── greeting-app │ ├── .editorconfig │ ├── .npmignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── greeting-app.png │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ └── integration │ │ │ │ └── greeting-service.integration.ts │ │ ├── application.ts │ │ ├── caching-service.ts │ │ ├── controllers │ │ │ ├── greeting.controller.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── interceptors │ │ │ ├── caching.interceptor.ts │ │ │ └── index.ts │ │ ├── keys.ts │ │ ├── observers │ │ │ ├── cache.observer.ts │ │ │ └── index.ts │ │ ├── openapi-spec.ts │ │ └── types.ts │ └── tsconfig.json ├── hello-world │ ├── .editorconfig │ ├── .npmignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ └── acceptance │ │ │ │ └── application.acceptance.ts │ │ ├── application.ts │ │ └── index.ts │ └── tsconfig.json ├── lb3-application │ ├── .editorconfig │ ├── .npmignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── lb3app │ │ ├── common │ │ │ └── models │ │ │ │ ├── coffee-shop.js │ │ │ │ └── coffee-shop.json │ │ ├── server │ │ │ ├── boot │ │ │ │ ├── authentication.js │ │ │ │ └── create-sample-models.js │ │ │ ├── config.json │ │ │ ├── datasources.json │ │ │ ├── middleware.json │ │ │ ├── model-config.json │ │ │ └── server.js │ │ └── test │ │ │ ├── acceptance.js │ │ │ ├── authentication.js │ │ │ └── integration.js │ ├── package.json │ ├── public │ │ ├── index.html │ │ └── lb3-index.html │ ├── src │ │ ├── __tests__ │ │ │ └── acceptance │ │ │ │ ├── home-page.acceptance.ts │ │ │ │ ├── lb3app.acceptance.ts │ │ │ │ └── test-helper.ts │ │ ├── application.ts │ │ ├── index.ts │ │ ├── migrate.ts │ │ ├── openapi-spec.ts │ │ ├── sequence.ts │ │ └── server.ts │ └── tsconfig.json ├── log-extension │ ├── .editorconfig │ ├── .npmignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ └── log.extension.acceptance.ts │ │ │ ├── in-memory-logger.ts │ │ │ ├── log-spy.ts │ │ │ └── unit │ │ │ │ ├── decorators │ │ │ │ └── log.decorator.unit.ts │ │ │ │ ├── mixins │ │ │ │ └── log.mixin.unit.ts │ │ │ │ └── providers │ │ │ │ ├── log-action.provider.unit.ts │ │ │ │ └── timer.provider.unit.ts │ │ ├── component.ts │ │ ├── decorators │ │ │ ├── index.ts │ │ │ └── log.decorator.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── mixins │ │ │ ├── index.ts │ │ │ └── log.mixin.ts │ │ ├── providers │ │ │ ├── index.ts │ │ │ ├── log-action.provider.ts │ │ │ └── timer.provider.ts │ │ └── types.ts │ └── tsconfig.json ├── metrics-prometheus │ ├── .editorconfig │ ├── .npmignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── bin │ │ ├── demo.sh │ │ └── prometheus.yml │ ├── package.json │ ├── prometheus-demo.png │ ├── src │ │ ├── __tests__ │ │ │ └── integration │ │ │ │ └── greeting-service.integration.ts │ │ ├── application.ts │ │ ├── controllers │ │ │ ├── greeting.controller.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ └── services │ │ │ ├── greeting.service.ts │ │ │ └── index.ts │ └── tsconfig.json ├── multi-tenancy │ ├── .dockerignore │ ├── .editorconfig │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .mocharc.json │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── .yo-rc.json │ ├── CHANGELOG.md │ ├── DEVELOPING.md │ ├── Dockerfile │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── public │ │ └── index.html │ ├── src │ │ ├── __tests__ │ │ │ ├── README.md │ │ │ └── acceptance │ │ │ │ ├── home-page.acceptance.ts │ │ │ │ ├── ping.controller.acceptance.ts │ │ │ │ ├── test-helper.ts │ │ │ │ ├── user.controller.header.acceptance.ts │ │ │ │ └── user.controller.jwt.acceptance.ts │ │ ├── application.ts │ │ ├── controllers │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ ├── ping.controller.ts │ │ │ └── user.controller.ts │ │ ├── datasources │ │ │ ├── README.md │ │ │ ├── db.datasource.ts │ │ │ ├── db1.datasource.ts │ │ │ ├── db2.datasource.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── migrate.ts │ │ ├── models │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── user.model.ts │ │ ├── multi-tenancy │ │ │ ├── component.ts │ │ │ ├── index.ts │ │ │ ├── keys.ts │ │ │ ├── middleware │ │ │ │ └── multi-tenancy-middleware.provider.ts │ │ │ ├── strategies │ │ │ │ ├── base-strategy.ts │ │ │ │ ├── header-strategy.ts │ │ │ │ ├── host-strategy.ts │ │ │ │ ├── index.ts │ │ │ │ ├── jwt-strategy.ts │ │ │ │ └── query-strategy.ts │ │ │ └── types.ts │ │ ├── openapi-spec.ts │ │ ├── repositories │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── user.repository.ts │ │ └── sequence.ts │ └── tsconfig.json ├── passport-login │ ├── .editorconfig │ ├── .eslintignore │ ├── .gitignore │ ├── .npmignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── data │ │ └── oauth2-test-provider.json │ ├── oauth2-providers.template.json │ ├── package.json │ ├── public │ │ └── index.html │ ├── src │ │ ├── __tests__ │ │ │ └── acceptance │ │ │ │ └── passport-login.acceptance.ts │ │ ├── application.ts │ │ ├── authentication-interceptors │ │ │ ├── facebook.interceptor.ts │ │ │ ├── google.interceptor.ts │ │ │ ├── index.ts │ │ │ ├── oauth2.interceptor.ts │ │ │ ├── session.interceptor.ts │ │ │ ├── twitter.interceptor.ts │ │ │ └── types.ts │ │ ├── authentication-strategies │ │ │ ├── basic.ts │ │ │ ├── facebook.ts │ │ │ ├── google.ts │ │ │ ├── index.ts │ │ │ ├── local.ts │ │ │ ├── oauth2.ts │ │ │ ├── session.ts │ │ │ ├── twitter.ts │ │ │ └── types.ts │ │ ├── authentication-strategy-providers │ │ │ ├── facebook.express-mw.ts │ │ │ ├── facebook.ts │ │ │ ├── google.express-mw.ts │ │ │ ├── google.ts │ │ │ ├── index.ts │ │ │ ├── oauth2.express-mw.ts │ │ │ ├── oauth2.ts │ │ │ ├── twitter.express-mw.ts │ │ │ └── twitter.ts │ │ ├── controllers │ │ │ ├── index.ts │ │ │ ├── oauth2.controller.ts │ │ │ ├── ping.controller.ts │ │ │ └── user.controller.ts │ │ ├── datasources │ │ │ ├── db.datasource.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── model-endpoints │ │ │ ├── index.ts │ │ │ └── user.rest-config.ts │ │ ├── models │ │ │ ├── index.ts │ │ │ ├── user-credentials.model.ts │ │ │ ├── user-identity.model.ts │ │ │ └── user.model.ts │ │ ├── observers │ │ │ ├── index.ts │ │ │ └── wire.observer.ts │ │ ├── repositories │ │ │ ├── index.ts │ │ │ ├── user-credentials.repository.ts │ │ │ ├── user-identity.repository.ts │ │ │ └── user.repository.ts │ │ ├── sequence.ts │ │ ├── server.ts │ │ ├── services │ │ │ ├── index.ts │ │ │ ├── keys.ts │ │ │ └── user.service.ts │ │ └── wiring.ts │ ├── tsconfig.json │ └── web-application │ │ ├── express-app.js │ │ └── views │ │ ├── layouts │ │ └── layout.jade │ │ ├── pages │ │ ├── index.jade │ │ ├── login.jade │ │ ├── loginProfiles.jade │ │ └── signup.jade │ │ └── partials │ │ ├── banner.jade │ │ ├── footer.jade │ │ ├── head.jade │ │ └── navigation.jade ├── references-many │ ├── .dockerignore │ ├── .editorconfig │ ├── .eslintrc.js │ ├── .npmignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── CHANGELOG.md │ ├── Dockerfile │ ├── LICENSE │ ├── README.md │ ├── data │ │ └── db.json │ ├── package.json │ ├── public │ │ └── index.html │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── account.acceptance.ts │ │ │ │ ├── customer.acceptance.ts │ │ │ │ ├── home-page.acceptance.ts │ │ │ │ └── test-helper.ts │ │ │ ├── helpers.ts │ │ │ ├── integration │ │ │ │ └── customer.repository.integration.ts │ │ │ └── unit │ │ │ │ └── controllers │ │ │ │ ├── account.controller.unit.ts │ │ │ │ └── customer.controller.unit.ts │ │ ├── application.ts │ │ ├── controllers │ │ │ ├── account.controller.ts │ │ │ ├── customer.controller.ts │ │ │ └── index.ts │ │ ├── datasources │ │ │ ├── db.datasource.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── migrate.ts │ │ ├── models │ │ │ ├── account.model.ts │ │ │ ├── customer.model.ts │ │ │ └── index.ts │ │ ├── openapi-spec.ts │ │ ├── repositories │ │ │ ├── account.repository.ts │ │ │ ├── customer.repository.ts │ │ │ └── index.ts │ │ └── sequence.ts │ └── tsconfig.json ├── rest-crud │ ├── .dockerignore │ ├── .editorconfig │ ├── .eslintrc.js │ ├── .npmignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── CHANGELOG.md │ ├── Dockerfile │ ├── LICENSE │ ├── README.md │ ├── data │ │ └── db.json │ ├── package.json │ ├── public │ │ └── index.html │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── test-helper.ts │ │ │ │ └── todo.acceptance.ts │ │ │ └── helpers.ts │ │ ├── application.ts │ │ ├── datasources │ │ │ ├── db.datasource.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── migrate.ts │ │ ├── model-endpoints │ │ │ └── todo.rest-config.ts │ │ ├── models │ │ │ ├── index.ts │ │ │ └── todo.model.ts │ │ ├── openapi-spec.ts │ │ └── sequence.ts │ └── tsconfig.json ├── rpc-server │ ├── .editorconfig │ ├── .npmignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── README.md │ │ │ └── unit │ │ │ │ ├── controllers │ │ │ │ └── greet.controller.unit.ts │ │ │ │ └── rpc.router.unit.ts │ │ ├── application.ts │ │ ├── controllers │ │ │ ├── greet.controller.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── models │ │ │ ├── index.ts │ │ │ └── person.model.ts │ │ ├── rpc.router.ts │ │ └── rpc.server.ts │ └── tsconfig.json ├── soap-calculator │ ├── .editorconfig │ ├── .npmignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── launch.json │ │ ├── settings.json │ │ └── tasks.json │ ├── .yo-rc.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── public │ │ └── index.html │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── application.acceptance.ts │ │ │ │ ├── home-page.acceptance.ts │ │ │ │ └── test-helper.ts │ │ │ ├── helpers.ts │ │ │ └── integration │ │ │ │ └── services │ │ │ │ └── calculator.service.integration.ts │ │ ├── application.ts │ │ ├── controllers │ │ │ ├── calculator.controller.ts │ │ │ └── index.ts │ │ ├── datasources │ │ │ ├── calculator.datasource.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── sequence.ts │ │ └── services │ │ │ ├── calculator.service.ts │ │ │ └── index.ts │ └── tsconfig.json ├── socketio │ ├── .editorconfig │ ├── .gitignore │ ├── .mocharc.json │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── .yo-rc.json │ ├── CHANGELOG.md │ ├── DEVELOPING.md │ ├── Dockerfile │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── public │ │ └── index.html │ ├── src │ │ ├── __tests__ │ │ │ ├── README.md │ │ │ └── acceptance │ │ │ │ └── socketio.server.acceptance.ts │ │ ├── application.ts │ │ ├── controllers │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── socketio.controller.ts │ │ ├── datasources │ │ │ └── README.md │ │ ├── index.ts │ │ ├── migrate.ts │ │ ├── models │ │ │ └── README.md │ │ └── repositories │ │ │ └── README.md │ └── tsconfig.json ├── todo-jwt │ ├── .dockerignore │ ├── .editorconfig │ ├── .eslintrc.js │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── CHANGELOG.md │ ├── Dockerfile │ ├── LICENSE │ ├── README.md │ ├── data │ │ └── db.json │ ├── package.json │ ├── public │ │ └── index.html │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── home-page.acceptance.ts │ │ │ │ ├── test-helper.ts │ │ │ │ └── todo.acceptance.ts │ │ │ └── helpers.ts │ │ ├── application.ts │ │ ├── controllers │ │ │ ├── index.ts │ │ │ ├── todo.controller.ts │ │ │ └── user.controller.ts │ │ ├── datasources │ │ │ ├── db.datasource.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── migrate.ts │ │ ├── models │ │ │ ├── index.ts │ │ │ └── todo.model.ts │ │ ├── openapi-spec.ts │ │ ├── repositories │ │ │ ├── index.ts │ │ │ └── todo.repository.ts │ │ └── sequence.ts │ └── tsconfig.json ├── todo-list │ ├── .dockerignore │ ├── .editorconfig │ ├── .eslintrc.js │ ├── .npmignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── CHANGELOG.md │ ├── Dockerfile │ ├── LICENSE │ ├── README.md │ ├── data │ │ └── db.json │ ├── imgs │ │ └── todo-list-overview.PNG │ ├── package.json │ ├── public │ │ └── index.html │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── home-page.acceptance.ts │ │ │ │ ├── test-helper.ts │ │ │ │ ├── todo-list-image.acceptance.ts │ │ │ │ ├── todo-list-todo.acceptance.ts │ │ │ │ ├── todo-list.acceptance.ts │ │ │ │ └── todo.acceptance.ts │ │ │ ├── helpers.ts │ │ │ ├── integration │ │ │ │ ├── todo-list-image.repository.integration.ts │ │ │ │ ├── todo-list.repository.integration.ts │ │ │ │ └── todo.repository.integration.ts │ │ │ └── unit │ │ │ │ └── controllers │ │ │ │ ├── todo-list-todo.controller.unit.ts │ │ │ │ ├── todo-list.controller.unit.ts │ │ │ │ └── todo.controller.unit.ts │ │ ├── application.ts │ │ ├── controllers │ │ │ ├── index.ts │ │ │ ├── todo-list-image.controller.ts │ │ │ ├── todo-list-todo-list-image.controller.ts │ │ │ ├── todo-list-todo.controller.ts │ │ │ ├── todo-list.controller.ts │ │ │ └── todo.controller.ts │ │ ├── datasources │ │ │ ├── db.datasource.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── migrate.ts │ │ ├── models │ │ │ ├── index.ts │ │ │ ├── todo-list-image.model.ts │ │ │ ├── todo-list.model.ts │ │ │ └── todo.model.ts │ │ ├── openapi-spec.ts │ │ ├── repositories │ │ │ ├── index.ts │ │ │ ├── todo-list-image.repository.ts │ │ │ ├── todo-list.repository.ts │ │ │ └── todo.repository.ts │ │ └── sequence.ts │ └── tsconfig.json ├── todo │ ├── .dockerignore │ ├── .editorconfig │ ├── .eslintrc.js │ ├── .npmignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── CHANGELOG.md │ ├── Dockerfile │ ├── LICENSE │ ├── README.md │ ├── data │ │ └── db.json │ ├── package.json │ ├── public │ │ └── index.html │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── home-page.acceptance.ts │ │ │ │ ├── test-helper.ts │ │ │ │ └── todo.acceptance.ts │ │ │ ├── helpers.ts │ │ │ ├── integration │ │ │ │ └── services │ │ │ │ │ └── geocoder.service.integration.ts │ │ │ └── unit │ │ │ │ └── controllers │ │ │ │ └── todo.controller.unit.ts │ │ ├── application.ts │ │ ├── controllers │ │ │ ├── index.ts │ │ │ └── todo.controller.ts │ │ ├── datasources │ │ │ ├── db.datasource.ts │ │ │ ├── geocoder.datasource.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── migrate.ts │ │ ├── models │ │ │ ├── index.ts │ │ │ └── todo.model.ts │ │ ├── openapi-spec.ts │ │ ├── repositories │ │ │ ├── index.ts │ │ │ └── todo.repository.ts │ │ ├── sequence.ts │ │ └── services │ │ │ ├── geocoder.service.ts │ │ │ └── index.ts │ └── tsconfig.json ├── validation-app │ ├── .editorconfig │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .mocharc.json │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc │ ├── .vscode │ │ ├── settings.json │ │ └── tasks.json │ ├── .yo-rc.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── public │ │ └── index.html │ ├── src │ │ ├── __tests__ │ │ │ ├── README.md │ │ │ └── acceptance │ │ │ │ ├── home-page.acceptance.ts │ │ │ │ ├── test-helper.ts │ │ │ │ └── validate.acceptance.ts │ │ ├── application.ts │ │ ├── controllers │ │ │ ├── README.md │ │ │ ├── coffee-shop.controller.ts │ │ │ └── index.ts │ │ ├── datasources │ │ │ ├── README.md │ │ │ ├── ds.datasource.config.json │ │ │ ├── ds.datasource.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── interceptors │ │ │ ├── index.ts │ │ │ └── validate-phone-num.interceptor.ts │ │ ├── middleware │ │ │ └── validation-error.middleware.ts │ │ ├── migrate.ts │ │ ├── models │ │ │ ├── README.md │ │ │ ├── coffee-shop.model.ts │ │ │ └── index.ts │ │ ├── openapi-spec.ts │ │ ├── repositories │ │ │ ├── README.md │ │ │ ├── coffee-shop.repository.ts │ │ │ └── index.ts │ │ └── sequence.ts │ └── tsconfig.json └── webpack │ ├── .editorconfig │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.html │ ├── package.json │ ├── src │ ├── __tests__ │ │ └── integration │ │ │ ├── bundle-node.integration.ts │ │ │ ├── bundle-web.integration.ts │ │ │ ├── dependency-injection.integration.ts │ │ │ └── test-helper.ts │ ├── dependency-injection.ts │ └── index.ts │ ├── tsconfig.json │ └── webpack.config.js ├── extensions ├── apiconnect │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ └── acceptance │ │ │ │ └── apiconnect.acceptance.ts │ │ ├── apiconnect.component.ts │ │ ├── apiconnect.spec-enhancer.ts │ │ ├── index.ts │ │ └── keys.ts │ └── tsconfig.json ├── authentication-jwt │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── authentication-jwt.png │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ └── jwt.component.test.ts │ │ │ ├── fixtures │ │ │ │ ├── application.ts │ │ │ │ ├── controllers │ │ │ │ │ └── user.controller.ts │ │ │ │ ├── datasources │ │ │ │ │ └── db.datasource.ts │ │ │ │ └── sequence.ts │ │ │ └── unit │ │ │ │ └── jwt.service.ts │ │ ├── index.ts │ │ ├── jwt-authentication-component.ts │ │ ├── keys.ts │ │ ├── models │ │ │ ├── index.ts │ │ │ ├── refresh-token.model.ts │ │ │ ├── user-credentials.model.ts │ │ │ └── user.model.ts │ │ ├── repositories │ │ │ ├── index.ts │ │ │ ├── refresh-token.repository.ts │ │ │ ├── user-credentials.repository.ts │ │ │ └── user.repository.ts │ │ ├── services │ │ │ ├── index.ts │ │ │ ├── jwt.auth.strategy.ts │ │ │ ├── jwt.service.ts │ │ │ ├── refreshtoken.service.ts │ │ │ ├── security.spec.enhancer.ts │ │ │ └── user.service.ts │ │ └── types.ts │ └── tsconfig.json ├── authentication-passport │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── README.md │ │ │ │ ├── authentication-with-passport-strategy-adapter.acceptance.ts │ │ │ │ ├── authentication-with-passport-strategy-oauth2-adapter.acceptance.ts │ │ │ │ └── fixtures │ │ │ │ │ └── simple-rest-app.ts │ │ │ └── unit │ │ │ │ ├── fixtures │ │ │ │ └── mock-passport-strategy.ts │ │ │ │ └── passport-strategy-adapter.unit.ts │ │ ├── index.ts │ │ └── strategy-adapter.ts │ └── tsconfig.json ├── context-explorer │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── public │ │ ├── index.html │ │ └── js │ │ │ └── graph-util.js │ ├── sample-graph.svg │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ └── context-explorer.acceptance.ts │ │ │ └── integration │ │ │ │ ├── context-graph.integration.ts │ │ │ │ └── visualizer.integration.ts │ │ ├── context-explorer.component.ts │ │ ├── context-explorer.controller.ts │ │ ├── context-graph.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── types.ts │ │ └── visualizer.ts │ └── tsconfig.json ├── cron │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ └── acceptance │ │ │ │ └── cron.acceptance.ts │ │ ├── cron.component.ts │ │ ├── decorators │ │ │ ├── cron-job.decorator.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ └── types.ts │ └── tsconfig.json ├── graphql │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── fixtures │ │ │ │ └── graphql-resolvers │ │ │ │ │ └── recipe │ │ │ │ │ ├── recipe.input.ts │ │ │ │ │ ├── recipe.model.ts │ │ │ │ │ └── recipe.resolver.ts │ │ │ ├── integration │ │ │ │ └── export-graphql-spec.integration.ts │ │ │ └── unit │ │ │ │ ├── container.unit.ts │ │ │ │ ├── graphql.component.unit.ts │ │ │ │ └── graphql.server.unit.ts │ │ ├── booters │ │ │ └── resolver.booter.ts │ │ ├── decorators │ │ │ └── index.ts │ │ ├── graphql.component.ts │ │ ├── graphql.container.ts │ │ ├── graphql.server.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ └── types.ts │ ├── tsconfig.json │ └── type-graphql.png ├── health │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ └── acceptance │ │ │ │ └── health.acceptance.ts │ │ ├── controllers │ │ │ ├── health.controller.ts │ │ │ └── index.ts │ │ ├── health.component.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── observers │ │ │ ├── health.observer.ts │ │ │ └── index.ts │ │ └── types.ts │ └── tsconfig.json ├── logging │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── logging-component.png │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ └── acceptance │ │ │ │ ├── logging.component.acceptance.ts │ │ │ │ ├── logging.interceptor.acceptance.ts │ │ │ │ └── winston.acceptance.ts │ │ ├── decorators │ │ │ ├── index.ts │ │ │ └── logging.decorator.ts │ │ ├── fluent.ts │ │ ├── index.ts │ │ ├── interceptors │ │ │ ├── index.ts │ │ │ └── logging.interceptor.ts │ │ ├── keys.ts │ │ ├── logging.component.ts │ │ └── winston.ts │ └── tsconfig.json ├── metrics │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── bin │ │ ├── start-pushgateway.sh │ │ └── stop-pushgateway.sh │ ├── package.json │ ├── prometheus-demo.png │ ├── src │ │ ├── __tests__ │ │ │ └── acceptance │ │ │ │ ├── metrics-push.acceptance.ts │ │ │ │ ├── metrics.acceptance.ts │ │ │ │ ├── mock-pushgateway.ts │ │ │ │ └── mock.controller.ts │ │ ├── controllers │ │ │ ├── index.ts │ │ │ └── metrics.controller.ts │ │ ├── index.ts │ │ ├── interceptors │ │ │ ├── index.ts │ │ │ └── metrics.interceptor.ts │ │ ├── keys.ts │ │ ├── metrics.component.ts │ │ ├── observers │ │ │ ├── index.ts │ │ │ ├── metrics.observer.ts │ │ │ └── metrics.push.observer.ts │ │ └── types.ts │ └── tsconfig.json ├── pooling │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── pooling.png │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── README.md │ │ │ │ └── pooling.acceptance.ts │ │ │ ├── integration │ │ │ │ └── README.md │ │ │ └── unit │ │ │ │ └── README.md │ │ ├── index.ts │ │ └── pooling.ts │ └── tsconfig.json ├── sequelize │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── fixtures │ │ │ │ ├── application.ts │ │ │ │ ├── controllers │ │ │ │ │ ├── book-category.controller.ts │ │ │ │ │ ├── book.controller.ts │ │ │ │ │ ├── category.controller.ts │ │ │ │ │ ├── developer.controller.ts │ │ │ │ │ ├── doctor-patient.controller.ts │ │ │ │ │ ├── doctor.controller.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── patient.controller.ts │ │ │ │ │ ├── product.controller.ts │ │ │ │ │ ├── programming-languange.controller.ts │ │ │ │ │ ├── roles.controller.ts │ │ │ │ │ ├── scoped-task.controller.ts │ │ │ │ │ ├── task.controller.ts │ │ │ │ │ ├── test.controller.base.ts │ │ │ │ │ ├── todo-list-todo.controller.ts │ │ │ │ │ ├── todo-list.controller.ts │ │ │ │ │ ├── todo-todo-list.controller.ts │ │ │ │ │ ├── todo.controller.ts │ │ │ │ │ ├── transaction.controller.ts │ │ │ │ │ ├── user-todo-list.controller.ts │ │ │ │ │ └── user.controller.ts │ │ │ │ ├── datasources │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── primary.datasource.ts │ │ │ │ │ └── secondary.datasource.ts │ │ │ │ ├── models │ │ │ │ │ ├── appointment.model.ts │ │ │ │ │ ├── book.model.ts │ │ │ │ │ ├── category.model.ts │ │ │ │ │ ├── developer.model.ts │ │ │ │ │ ├── doctor.model.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── patient.model.ts │ │ │ │ │ ├── product.model.ts │ │ │ │ │ ├── programming-language.model.ts │ │ │ │ │ ├── roles.model.ts │ │ │ │ │ ├── scoped-task.model.ts │ │ │ │ │ ├── task.model.ts │ │ │ │ │ ├── test.model.ts │ │ │ │ │ ├── todo-list.model.ts │ │ │ │ │ ├── todo.model.ts │ │ │ │ │ └── user.model.ts │ │ │ │ ├── observers │ │ │ │ │ ├── index.ts │ │ │ │ │ └── test.observer.ts │ │ │ │ └── repositories │ │ │ │ │ ├── appointment.repository.ts │ │ │ │ │ ├── book.repository.ts │ │ │ │ │ ├── category.repository.ts │ │ │ │ │ ├── developer.repository.ts │ │ │ │ │ ├── doctor.repository.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── patient.repository.ts │ │ │ │ │ ├── product.repository.ts │ │ │ │ │ ├── programming-language.repository.ts │ │ │ │ │ ├── roles.repository.ts │ │ │ │ │ ├── scoped-task.repository.ts │ │ │ │ │ ├── task.repository.ts │ │ │ │ │ ├── todo-list.repository.ts │ │ │ │ │ ├── todo.repository.ts │ │ │ │ │ └── user.repository.ts │ │ │ ├── integration │ │ │ │ ├── README.md │ │ │ │ └── repository.integration.ts │ │ │ └── unit │ │ │ │ ├── README.md │ │ │ │ └── sequelize.datasource.unit.ts │ │ ├── component.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── sequelize │ │ │ ├── connector-mapping.ts │ │ │ ├── index.ts │ │ │ ├── operator-translation.ts │ │ │ ├── sequelize.datasource.base.ts │ │ │ ├── sequelize.model.ts │ │ │ ├── sequelize.repository.base.ts │ │ │ └── utils.ts │ │ └── types.ts │ └── tsconfig.json ├── socketio │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── socketio.events.acceptance.ts │ │ │ │ └── socketio.server.acceptance.ts │ │ │ ├── fixtures │ │ │ │ ├── application.ts │ │ │ │ ├── dummy-socket.ts │ │ │ │ ├── helpers.ts │ │ │ │ └── ws-controllers │ │ │ │ │ ├── chat.controller.ts │ │ │ │ │ ├── decorator-test.controller.ts │ │ │ │ │ ├── dummy-test.controller.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── methods-test.controller.ts │ │ │ │ │ ├── sample-test.controller.ts │ │ │ │ │ └── sequence-test.controller.ts │ │ │ └── unit │ │ │ │ ├── socketio-controller-factory.test.ts │ │ │ │ ├── socketio.application.test.ts │ │ │ │ ├── socketio.booter.test.ts │ │ │ │ ├── socketio.decorator.test.ts │ │ │ │ ├── socketio.sequence.test.ts │ │ │ │ └── socketio.server.test.ts │ │ ├── booters │ │ │ ├── index.ts │ │ │ └── socketio.booter.ts │ │ ├── decorators │ │ │ ├── index.ts │ │ │ └── socketio.decorator.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── providers │ │ │ ├── index.ts │ │ │ ├── invoke-method.provider.ts │ │ │ ├── reject-method.provider.ts │ │ │ └── send-method.provider.ts │ │ ├── socketio-controller-factory.ts │ │ ├── socketio.application.ts │ │ ├── socketio.component.ts │ │ ├── socketio.sequence.ts │ │ ├── socketio.server.ts │ │ └── types.ts │ └── tsconfig.json └── typeorm │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ ├── __tests__ │ │ ├── fixtures │ │ │ ├── application.ts │ │ │ ├── controllers │ │ │ │ └── book.controller.ts │ │ │ ├── typeorm-connections │ │ │ │ └── sqlite.connection.ts │ │ │ └── typeorm-entities │ │ │ │ └── book.entity.ts │ │ ├── integration │ │ │ ├── booter.integration.ts │ │ │ └── rest.integration.ts │ │ └── unit │ │ │ ├── booter.unit.ts │ │ │ └── mixin.unit.ts │ ├── index.ts │ ├── typeorm-connection.booter.ts │ ├── typeorm.decorators.ts │ ├── typeorm.keys.ts │ ├── typeorm.mixin.ts │ ├── typeorm.types.ts │ └── typeorm.utils.ts │ └── tsconfig.json ├── fixtures ├── mock-oauth2-provider │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ └── acceptance │ │ │ │ └── mock-oauth2.acceptance.ts │ │ ├── index.ts │ │ ├── mock-oauth2-social-app.ts │ │ └── user-repository.ts │ └── tsconfig.json └── tsdocs-monorepo │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── lerna.json │ ├── package.json │ ├── packages │ ├── pkg1 │ │ ├── dist │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ └── index.js.map │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── pkg2 │ │ ├── dist │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ └── index.js.map │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── pkg3-non-ts │ │ ├── index.js │ │ └── package.json │ └── pkg4-private │ │ ├── index.js │ │ └── package.json │ └── tsconfig.json ├── lerna.json ├── package-lock.json ├── package.json ├── packages ├── authentication │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── docs │ │ ├── authentication-action.md │ │ ├── authentication-strategy.md │ │ ├── authentication-system.md │ │ ├── controller-functions.md │ │ ├── imgs │ │ │ ├── API-flow-(JWT).png │ │ │ ├── auth-framework-architecture.png │ │ │ ├── authentication_overview_highlevel.png │ │ │ ├── multiple-auth-strategies-login.png │ │ │ └── multiple-auth-strategies-verify.png │ │ ├── strategies │ │ │ ├── basic-auth.md │ │ │ ├── jwt.md │ │ │ ├── oauth2.md │ │ │ ├── openid.md │ │ │ └── saml.md │ │ ├── track-user-profile │ │ │ ├── session-based-auth.md │ │ │ └── token-based-auth.md │ │ └── transport-layer-based-extraction │ │ │ └── extract-current-user.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── basic-auth-extension.acceptance.ts │ │ │ │ ├── basic-auth-extension.middleware.acceptance.ts │ │ │ │ ├── jwt-auth-extension.acceptance.ts │ │ │ │ └── jwt-auth-extension.middleware.acceptance.ts │ │ │ ├── fixtures │ │ │ │ ├── helper.ts │ │ │ │ ├── keys.ts │ │ │ │ ├── sequences │ │ │ │ │ ├── authentication.middleware.sequence.ts │ │ │ │ │ └── authentication.sequence.ts │ │ │ │ ├── services │ │ │ │ │ ├── basic-auth-user-service.ts │ │ │ │ │ └── jwt-service.ts │ │ │ │ ├── strategies │ │ │ │ │ ├── basic-strategy.ts │ │ │ │ │ └── jwt-strategy.ts │ │ │ │ └── users │ │ │ │ │ ├── user.repository.ts │ │ │ │ │ └── user.ts │ │ │ ├── integration │ │ │ │ └── smoke.integration.ts │ │ │ └── unit │ │ │ │ ├── decorators │ │ │ │ └── authenticate.decorator.unit.ts │ │ │ │ ├── fixtures │ │ │ │ ├── mock-metadata.ts │ │ │ │ └── mock-strategy.ts │ │ │ │ ├── providers │ │ │ │ ├── auth-metadata.provider.unit.ts │ │ │ │ ├── auth-strategy.provider.unit.ts │ │ │ │ └── authentication.provider.unit.ts │ │ │ │ └── types │ │ │ │ ├── authentication-metadata-for-strategy.unit.ts │ │ │ │ ├── register-authentication-strategy.unit.ts │ │ │ │ └── user-profile-factory.unit.ts │ │ ├── authentication.component.ts │ │ ├── decorators │ │ │ ├── authenticate.decorator.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── providers │ │ │ ├── auth-action.provider.ts │ │ │ ├── auth-metadata.provider.ts │ │ │ ├── auth-strategy.provider.ts │ │ │ └── index.ts │ │ ├── services │ │ │ ├── index.ts │ │ │ ├── token.service.ts │ │ │ ├── user-identity.service.ts │ │ │ └── user.service.ts │ │ └── types.ts │ └── tsconfig.json ├── authorization │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── fixtures │ │ └── casbin │ │ │ ├── rbac_model.conf │ │ │ └── rbac_policy.csv │ ├── imgs │ │ ├── authorization.png │ │ ├── responsibilities.png │ │ └── use-case.png │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── authorization-casbin.acceptance.ts │ │ │ │ ├── authorization.acceptance.ts │ │ │ │ └── authorization.options.acceptance.ts │ │ │ └── unit │ │ │ │ ├── authorize-decorator.test.ts │ │ │ │ └── util.test.ts │ │ ├── authorization-component.ts │ │ ├── authorize-interceptor.ts │ │ ├── decorators │ │ │ └── authorize.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── types.ts │ │ └── util.ts │ └── tsconfig.json ├── boot │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── application-metadata.booter.acceptance.ts │ │ │ │ ├── component-application.booter.acceptance.ts │ │ │ │ ├── controller.booter.acceptance.ts │ │ │ │ ├── crud-rest.api-builder.acceptance.ts │ │ │ │ └── model-api.booter.acceptance.ts │ │ │ ├── fixtures │ │ │ │ ├── application.ts │ │ │ │ ├── bindable-classes.artifact.ts │ │ │ │ ├── datasource.artifact.ts │ │ │ │ ├── empty.artifact.ts │ │ │ │ ├── interceptor.artifact.ts │ │ │ │ ├── lifecycle-observer.artifact.ts │ │ │ │ ├── multiple-models.model.ts │ │ │ │ ├── multiple.artifact.ts │ │ │ │ ├── no-entity.model.ts │ │ │ │ ├── non-global-interceptor.artifact.ts │ │ │ │ ├── package.json │ │ │ │ ├── product.model.ts │ │ │ │ ├── product.repository.ts │ │ │ │ ├── service-class.artifact.ts │ │ │ │ ├── service-dynamic-value-provider.artifact.ts │ │ │ │ ├── service-provider.artifact.ts │ │ │ │ └── stub-model-api-builder.ts │ │ │ ├── integration │ │ │ │ ├── controller.booter.integration.ts │ │ │ │ ├── datasource.booter.integration.ts │ │ │ │ ├── interceptor.booter.integration.ts │ │ │ │ ├── lifecycle-observer.booter.integration.ts │ │ │ │ ├── model.booter.integration.ts │ │ │ │ ├── repository.booter.integration.ts │ │ │ │ └── service.booter.integration.ts │ │ │ └── unit │ │ │ │ ├── boot.component.unit.ts │ │ │ │ ├── boot.custom-binding.component.unit.ts │ │ │ │ ├── booters │ │ │ │ ├── base-artifact.booter.unit.ts │ │ │ │ ├── booter-utils.unit.ts │ │ │ │ ├── controller.booter.unit.ts │ │ │ │ ├── datasource.booter.unit.ts │ │ │ │ ├── repository.booter.unit.ts │ │ │ │ └── service.booter.unit.ts │ │ │ │ ├── bootstrapper.unit.ts │ │ │ │ └── mixins │ │ │ │ └── boot.mixin.unit.ts │ │ ├── boot.component.ts │ │ ├── booters │ │ │ ├── application-metadata.booter.ts │ │ │ ├── base-artifact.booter.ts │ │ │ ├── booter-utils.ts │ │ │ ├── component-application.booter.ts │ │ │ ├── controller.booter.ts │ │ │ ├── datasource.booter.ts │ │ │ ├── index.ts │ │ │ ├── interceptor.booter.ts │ │ │ ├── lifecyle-observer.booter.ts │ │ │ ├── model-api.booter.ts │ │ │ ├── model.booter.ts │ │ │ ├── repository.booter.ts │ │ │ └── service.booter.ts │ │ ├── bootstrapper.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── mixins │ │ │ ├── boot.mixin.ts │ │ │ └── index.ts │ │ └── types.ts │ └── tsconfig.json ├── booter-lb3app │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── fixtures │ │ ├── app-with-model.js │ │ ├── lb3app │ │ │ ├── common │ │ │ │ └── models │ │ │ │ │ ├── coffee-shop.js │ │ │ │ │ ├── coffee-shop.json │ │ │ │ │ ├── coffee.js │ │ │ │ │ └── coffee.json │ │ │ └── server │ │ │ │ ├── boot │ │ │ │ ├── authentication.js │ │ │ │ ├── create-sample-models.js │ │ │ │ └── routes.js │ │ │ │ ├── config.json │ │ │ │ ├── datasources.json │ │ │ │ ├── middleware.json │ │ │ │ ├── model-config.json │ │ │ │ └── server.js │ │ └── minimal-app.js │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ └── booter-lb3app.acceptance.ts │ │ │ └── test-helper.ts │ │ ├── index.ts │ │ ├── lb3app.booter.component.ts │ │ └── lb3app.booter.ts │ └── tsconfig.json ├── build │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── bin │ │ ├── compile-package.js │ │ ├── run-clean.js │ │ ├── run-eslint.js │ │ ├── run-mocha.js │ │ ├── run-nyc.js │ │ ├── run-prettier.js │ │ └── utils.js │ ├── config │ │ ├── .eslintignore │ │ ├── .eslintrc.js │ │ ├── .mocharc.json │ │ ├── .nycrc │ │ ├── .prettierrc │ │ ├── tsconfig.build.json │ │ └── tsconfig.common.json │ ├── index.js │ ├── package.json │ ├── src │ │ ├── fail-on-console-logs.js │ │ └── merge-mocha-configs.js │ └── test │ │ ├── integration │ │ ├── fixtures │ │ │ ├── .gitignore │ │ │ ├── docs.json │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ └── index.ts │ │ │ └── test │ │ │ │ └── .gitkeep │ │ └── scripts.integration.js │ │ └── unit │ │ └── utils.unit.js ├── cli │ ├── .mocharc.js │ ├── .npmrc │ ├── .yo-rc.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── bin │ │ └── cli-main.js │ ├── generators │ │ ├── app │ │ │ ├── index.js │ │ │ └── templates │ │ │ │ ├── .dockerignore │ │ │ │ ├── Dockerfile │ │ │ │ ├── README.md.ejs │ │ │ │ ├── public │ │ │ │ └── index.html.ejs │ │ │ │ └── src │ │ │ │ ├── __tests__ │ │ │ │ ├── README.md │ │ │ │ └── acceptance │ │ │ │ │ ├── home-page.acceptance.ts.ejs │ │ │ │ │ ├── ping.controller.acceptance.ts.ejs │ │ │ │ │ └── test-helper.ts.ejs │ │ │ │ ├── application.ts.ejs │ │ │ │ ├── controllers │ │ │ │ ├── README.md │ │ │ │ ├── index.ts.ejs │ │ │ │ └── ping.controller.ts.ejs │ │ │ │ ├── datasources │ │ │ │ └── README.md │ │ │ │ ├── index.ts.ejs │ │ │ │ ├── migrate.ts.ejs │ │ │ │ ├── models │ │ │ │ └── README.md │ │ │ │ ├── openapi-spec.ts.ejs │ │ │ │ ├── repositories │ │ │ │ └── README.md │ │ │ │ └── sequence.ts.ejs │ │ ├── controller │ │ │ ├── index.js │ │ │ └── templates │ │ │ │ └── src │ │ │ │ └── controllers │ │ │ │ ├── controller-rest-template.ts.ejs │ │ │ │ └── controller-template.ts.ejs │ │ ├── copyright │ │ │ ├── fs.js │ │ │ ├── git.js │ │ │ ├── header.js │ │ │ ├── index.js │ │ │ └── license.js │ │ ├── datasource │ │ │ ├── index.js │ │ │ └── templates │ │ │ │ └── datasource.ts.ejs │ │ ├── discover │ │ │ ├── import-discovered-model.js │ │ │ └── index.js │ │ ├── example │ │ │ ├── downloader.js │ │ │ └── index.js │ │ ├── extension │ │ │ ├── index.js │ │ │ └── templates │ │ │ │ ├── README.md.ejs │ │ │ │ └── src │ │ │ │ ├── __tests__ │ │ │ │ ├── acceptance │ │ │ │ │ └── README.md │ │ │ │ ├── integration │ │ │ │ │ └── README.md │ │ │ │ └── unit │ │ │ │ │ └── README.md │ │ │ │ ├── component.ts.ejs │ │ │ │ ├── controllers │ │ │ │ └── README.md │ │ │ │ ├── decorators │ │ │ │ └── README.md │ │ │ │ ├── index.ts.ejs │ │ │ │ ├── keys.ts.ejs │ │ │ │ ├── mixins │ │ │ │ └── README.md │ │ │ │ ├── providers │ │ │ │ └── README.md │ │ │ │ ├── repositories │ │ │ │ └── README.md │ │ │ │ └── types.ts.ejs │ │ ├── import-lb3-models │ │ │ ├── index.js │ │ │ ├── lb3app-loader.js │ │ │ ├── migrate-model.js │ │ │ └── model-names.js │ │ ├── interceptor │ │ │ ├── index.js │ │ │ └── templates │ │ │ │ └── interceptor-template.ts.ejs │ │ ├── model │ │ │ ├── index.js │ │ │ ├── property-definition.js │ │ │ └── templates │ │ │ │ └── model.ts.ejs │ │ ├── observer │ │ │ ├── index.js │ │ │ └── templates │ │ │ │ └── observer-template.ts.ejs │ │ ├── openapi │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ ├── schema-helper.js │ │ │ ├── spec-helper.js │ │ │ ├── spec-loader.js │ │ │ ├── templates │ │ │ │ └── src │ │ │ │ │ ├── controllers │ │ │ │ │ └── controller-template.ts.ejs │ │ │ │ │ ├── datasources │ │ │ │ │ └── datasource.ts.ejs │ │ │ │ │ ├── models │ │ │ │ │ ├── model-template.ts.ejs │ │ │ │ │ └── type-template.ts.ejs │ │ │ │ │ └── services │ │ │ │ │ └── service-proxy-template.ts.ejs │ │ │ └── utils.js │ │ ├── project │ │ │ └── templates │ │ │ │ ├── .editorconfig │ │ │ │ ├── .eslintignore │ │ │ │ ├── .eslintrc.js.ejs │ │ │ │ ├── .mocharc.json │ │ │ │ ├── .npmrc │ │ │ │ ├── .prettierignore │ │ │ │ ├── .prettierrc │ │ │ │ ├── .vscode │ │ │ │ ├── launch.json │ │ │ │ ├── settings.json │ │ │ │ └── tasks.json │ │ │ │ ├── DEVELOPING.md │ │ │ │ ├── _.gitignore │ │ │ │ ├── package.json.ejs │ │ │ │ ├── package.plain.json.ejs │ │ │ │ └── tsconfig.json.ejs │ │ ├── relation │ │ │ ├── base-relation.generator.js │ │ │ ├── belongs-to-relation.generator.js │ │ │ ├── has-many-relation.generator.js │ │ │ ├── has-many-through-relation.generator.js │ │ │ ├── has-one-relation.generator.js │ │ │ ├── index.js │ │ │ ├── references-many-relation.generator.js │ │ │ ├── templates │ │ │ │ ├── controller-relation-template-belongs-to.ts.ejs │ │ │ │ ├── controller-relation-template-has-many-through.ts.ejs │ │ │ │ ├── controller-relation-template-has-many.ts.ejs │ │ │ │ └── controller-relation-template-has-one.ts.ejs │ │ │ └── utils.generator.js │ │ ├── repository │ │ │ ├── index.js │ │ │ └── templates │ │ │ │ └── src │ │ │ │ └── repositories │ │ │ │ ├── repository-crud-default-template.ts.ejs │ │ │ │ └── repository-kv-template.ts.ejs │ │ ├── rest-crud │ │ │ ├── crud-rest-component.js │ │ │ ├── index.js │ │ │ └── templates │ │ │ │ └── src │ │ │ │ └── model-endpoints │ │ │ │ └── model.rest-config-template.ts.ejs │ │ ├── service │ │ │ ├── index.js │ │ │ └── templates │ │ │ │ ├── local-service-class-template.ts.ejs │ │ │ │ ├── local-service-provider-template.ts.ejs │ │ │ │ └── remote-service-proxy-template.ts.ejs │ │ └── update │ │ │ └── index.js │ ├── intl │ │ ├── cs │ │ │ └── messages.json │ │ ├── de │ │ │ └── messages.json │ │ ├── en │ │ │ └── messages.json │ │ ├── es │ │ │ └── messages.json │ │ ├── fr │ │ │ └── messages.json │ │ ├── it │ │ │ └── messages.json │ │ ├── ja │ │ │ └── messages.json │ │ ├── ko │ │ │ └── messages.json │ │ ├── nl │ │ │ └── messages.json │ │ ├── pl │ │ │ └── messages.json │ │ ├── pt │ │ │ └── messages.json │ │ ├── ru │ │ │ └── messages.json │ │ ├── tr │ │ │ └── messages.json │ │ ├── zh-Hans │ │ │ └── messages.json │ │ └── zh-Hant │ │ │ └── messages.json │ ├── lib │ │ ├── artifact-generator.js │ │ ├── ast-helper.js │ │ ├── base-generator.js │ │ ├── cli.js │ │ ├── connectors.json │ │ ├── debug.js │ │ ├── globalize.js │ │ ├── model-discoverer.js │ │ ├── project-generator.js │ │ ├── tab-completion.js │ │ ├── update-index.js │ │ ├── utils.js │ │ └── version-helper.js │ ├── package.json │ ├── smoke-test │ │ └── openapi │ │ │ ├── README.md │ │ │ ├── code-gen-utils.js │ │ │ └── real-world-apis.smoke.js │ ├── snapshots │ │ ├── integration │ │ │ ├── cli │ │ │ │ └── cli.integration.snapshots.js │ │ │ ├── generators │ │ │ │ ├── app.integration.snapshots.js │ │ │ │ ├── controller.integration.snapshots.js │ │ │ │ ├── datasource.integration.snapshots.js │ │ │ │ ├── discover.integration.snapshots.js │ │ │ │ ├── import-lb3-models.integration.snapshots.js │ │ │ │ ├── interceptor.integration.snapshots.js │ │ │ │ ├── model.integration.snapshots.js │ │ │ │ ├── observer.integration.snapshots.js │ │ │ │ ├── openapi-client.integration.snapshots.js │ │ │ │ ├── openapi-petstore.integration.snapshots.js │ │ │ │ ├── openapi-uspto-with-anonymous.integration.snapshots.js │ │ │ │ ├── openapi-uspto.integration.snapshots.js │ │ │ │ ├── relation.belongs-to.integration.snapshots.js │ │ │ │ ├── relation.has-many-through.integration.snapshots.js │ │ │ │ ├── relation.has-many.integration.snapshots.js │ │ │ │ ├── relation.has-one.integration.snapshots.js │ │ │ │ ├── relation.integration.snapshots.js │ │ │ │ ├── relation.references-many.integration.snapshots.js │ │ │ │ ├── remote-service.integration.snapshots.js │ │ │ │ ├── rest-crud.integration.snapshots.js │ │ │ │ └── swagger-petstore.integration.snapshots.js │ │ │ └── snapshot-matcher │ │ │ │ ├── suite-first-run.integration.snapshots.js │ │ │ │ └── suite-second-run.integration.snapshots.js │ │ └── unit │ │ │ └── openapi │ │ │ ├── controller-spec.unit.snapshots.js │ │ │ └── schema-model.unit.snapshots.js │ └── test │ │ ├── acceptance │ │ └── app-run.acceptance.js-bkp │ │ ├── fixtures │ │ ├── copyright │ │ │ ├── index.js │ │ │ ├── monorepo │ │ │ │ ├── index.js │ │ │ │ ├── lerna.json │ │ │ │ ├── lib │ │ │ │ │ └── no-header.js │ │ │ │ ├── package.json │ │ │ │ └── packages │ │ │ │ │ ├── pkg1 │ │ │ │ │ ├── lib │ │ │ │ │ │ └── no-header.js │ │ │ │ │ ├── package.json │ │ │ │ │ └── src │ │ │ │ │ │ └── application.ts │ │ │ │ │ └── pkg2 │ │ │ │ │ ├── lib │ │ │ │ │ └── no-header.js │ │ │ │ │ ├── package.json │ │ │ │ │ └── src │ │ │ │ │ └── application.ts │ │ │ └── single-package │ │ │ │ ├── .yo-rc.json │ │ │ │ ├── index.js │ │ │ │ ├── lib │ │ │ │ └── no-header.js │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ └── application.ts │ │ ├── discover │ │ │ ├── index.js │ │ │ └── mem.datasource.js.txt │ │ ├── import-lb3-models │ │ │ └── app-using-model-inheritance.js │ │ ├── interceptor │ │ │ └── index.js │ │ ├── observer │ │ │ └── index.js │ │ ├── openapi │ │ │ ├── 2.0 │ │ │ │ └── petstore-expanded-swagger.json │ │ │ └── 3.0 │ │ │ │ ├── customer.yaml │ │ │ │ ├── index.js │ │ │ │ ├── petstore-expanded.yaml │ │ │ │ ├── src │ │ │ │ └── datasources │ │ │ │ │ ├── index.ts │ │ │ │ │ └── pet-store.datasource.ts │ │ │ │ └── uspto.yaml │ │ ├── relation │ │ │ ├── controllers │ │ │ │ ├── account.controller.ts │ │ │ │ ├── address-customer.controller.ts │ │ │ │ ├── customer.controller.ts │ │ │ │ ├── doctor-patient.controller.ts │ │ │ │ ├── employee.controller.ts │ │ │ │ ├── index.ts │ │ │ │ ├── index4.ts │ │ │ │ ├── order-customer.controller.ts │ │ │ │ └── user-user.controller.ts │ │ │ ├── index.js │ │ │ ├── models │ │ │ │ ├── account.model.ts │ │ │ │ ├── address-with-fk.model.ts │ │ │ │ ├── address.model.ts │ │ │ │ ├── appointment.model.ts │ │ │ │ ├── customer-inhe.model.ts │ │ │ │ ├── customer.model.ts │ │ │ │ ├── customer5.model.ts │ │ │ │ ├── customer6.model.ts │ │ │ │ ├── customer7.model.ts │ │ │ │ ├── doctor.model.ts │ │ │ │ ├── employee.model.ts │ │ │ │ ├── friend.model.ts │ │ │ │ ├── id-model.model.ts │ │ │ │ ├── no-repo.model.ts │ │ │ │ ├── order-inhe.model.ts │ │ │ │ ├── order-with-fk.model.ts │ │ │ │ ├── order.model.ts │ │ │ │ ├── patient.model.ts │ │ │ │ └── user.model.ts │ │ │ └── repositories │ │ │ │ ├── account.repository.ts │ │ │ │ ├── address.repository.ts │ │ │ │ ├── appointment.repository.ts │ │ │ │ ├── customer-inhe.repository.ts │ │ │ │ ├── customer.repository.ts │ │ │ │ ├── doctor.repository.ts │ │ │ │ ├── employee.repository.ts │ │ │ │ ├── friend.repository.ts │ │ │ │ ├── order-inhe.repository.ts │ │ │ │ ├── order.repository.ts │ │ │ │ ├── patient.repository.ts │ │ │ │ └── user.repository.ts │ │ ├── repository │ │ │ ├── index.js │ │ │ ├── models │ │ │ │ ├── decorator-defined.model.txt │ │ │ │ ├── default-model.model.txt │ │ │ │ ├── invalid-id.model.txt │ │ │ │ ├── model-1-name-with-num1.model.txt │ │ │ │ └── multi-word.model.txt │ │ │ └── repositories │ │ │ │ └── default-model.repository.base.ts │ │ ├── rest-crud │ │ │ ├── application.ts │ │ │ ├── index.js │ │ │ └── models │ │ │ │ ├── decorator-defined.model.txt │ │ │ │ ├── default-model.model.txt │ │ │ │ └── multi-word.model.txt │ │ └── service │ │ │ └── index.js │ │ ├── integration │ │ ├── cli │ │ │ └── cli.integration.js │ │ ├── generators │ │ │ ├── app.integration.js │ │ │ ├── clone-example.integration.js │ │ │ ├── controller.integration.js │ │ │ ├── copyright-git.integration.js │ │ │ ├── copyright-monorepo.integration.js │ │ │ ├── copyright.integration.js │ │ │ ├── datasource.integration.js │ │ │ ├── discover.integration.js │ │ │ ├── example.integration.js │ │ │ ├── extension.integration.js │ │ │ ├── import-lb3-models.integration.js │ │ │ ├── interceptor.integration.js │ │ │ ├── local-service.integration.js │ │ │ ├── model.integration.js │ │ │ ├── observer.integration.js │ │ │ ├── openapi-client.integration.js │ │ │ ├── openapi-petstore.integration.js │ │ │ ├── openapi-uspto-with-anonymous.integration.js │ │ │ ├── openapi-uspto.integration.js │ │ │ ├── relation.belongs-to.integration.js │ │ │ ├── relation.has-many-through.integration.js │ │ │ ├── relation.has-many.integration.js │ │ │ ├── relation.has-one.integration.js │ │ │ ├── relation.integration.js │ │ │ ├── relation.references-many.integration.js │ │ │ ├── remote-service.integration.js │ │ │ ├── repository.integration.js │ │ │ ├── rest-crud.integration.js │ │ │ └── swagger-petstore.integration.js │ │ ├── lib │ │ │ ├── artifact-generator.js │ │ │ ├── base-config.json │ │ │ ├── base-generator.js │ │ │ ├── check-loopback-project.suite.js │ │ │ ├── file-check.js │ │ │ └── project-generator.js │ │ └── snapshot-matcher │ │ │ ├── common.suite.js │ │ │ ├── suite-first-run.integration.js │ │ │ └── suite-second-run.integration.js │ │ ├── snapshot-matcher.js │ │ ├── snapshots.js │ │ ├── test-utils.js │ │ └── unit │ │ ├── ast-helper │ │ └── get-id-from-model.unit.js │ │ ├── discover │ │ └── import-discovered-model.test.js │ │ ├── import-lb3-model │ │ ├── migrate-model.test.js │ │ └── model-names.test.js │ │ ├── openapi │ │ ├── controller-spec.unit.js │ │ ├── openapi-utils.unit.js │ │ ├── schema-helper.unit.js │ │ ├── schema-model.unit.js │ │ └── spec-helper.unit.js │ │ ├── tab-completion.unit.js │ │ ├── update-index.unit.js │ │ └── utils.unit.js ├── context │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── 1-feature.md │ │ │ │ ├── bind-decorator.acceptance.ts │ │ │ │ ├── binding-config.acceptance.ts │ │ │ │ ├── binding-config.feature.md │ │ │ │ ├── binding-decorator.feature.md │ │ │ │ ├── child-context.acceptance.ts │ │ │ │ ├── class-level-bindings.acceptance.ts │ │ │ │ ├── class-level-bindings.feature.md │ │ │ │ ├── context-event-observer.acceptance.ts │ │ │ │ ├── context-view.acceptance.ts │ │ │ │ ├── creating-and-resolving-bindings.acceptance.ts │ │ │ │ ├── creating-and-resolving-bindings.feature.md │ │ │ │ ├── finding-bindings.acceptance.ts │ │ │ │ ├── finding-bindings.feature.md │ │ │ │ ├── inject-multiple-values.acceptance.ts │ │ │ │ ├── interception-proxy.acceptance.ts │ │ │ │ ├── interceptor.acceptance.ts │ │ │ │ ├── locking-bindings.acceptance.ts │ │ │ │ ├── locking-bindings.feature.md │ │ │ │ ├── method-level-bindings.acceptance.ts │ │ │ │ ├── method-level-bindings.feature.md │ │ │ │ ├── tagged-bindings.acceptance.ts │ │ │ │ ├── tagged-bindings.feature.md │ │ │ │ ├── unlocking-bindings.acceptance.ts │ │ │ │ └── unlocking-bindings.feature.md │ │ │ ├── integration │ │ │ │ ├── inject-view.integration.ts │ │ │ │ └── inject.integration.ts │ │ │ └── unit │ │ │ │ ├── binding-decorator.unit.ts │ │ │ │ ├── binding-filter.unit.ts │ │ │ │ ├── binding-inspector.unit.ts │ │ │ │ ├── binding-key.unit.ts │ │ │ │ ├── binding-sorter.unit.ts │ │ │ │ ├── binding.unit.ts │ │ │ │ ├── context-config.unit.ts │ │ │ │ ├── context-observer.unit.ts │ │ │ │ ├── context-tag-indexer.unit.ts │ │ │ │ ├── context-view.unit.ts │ │ │ │ ├── context.unit.ts │ │ │ │ ├── inject.unit.ts │ │ │ │ ├── interceptor-chain.unit.ts │ │ │ │ ├── interceptor.unit.ts │ │ │ │ ├── invocation-context.unit.ts │ │ │ │ ├── is-promise.unit.ts │ │ │ │ ├── provider.unit.ts │ │ │ │ ├── resolution-session.unit.ts │ │ │ │ ├── resolver.unit.ts │ │ │ │ ├── try-catch-finally.unit.ts │ │ │ │ └── value-promise.unit.ts │ │ ├── binding-config.ts │ │ ├── binding-decorator.ts │ │ ├── binding-filter.ts │ │ ├── binding-inspector.ts │ │ ├── binding-key.ts │ │ ├── binding-sorter.ts │ │ ├── binding.ts │ │ ├── context-event.ts │ │ ├── context-observer.ts │ │ ├── context-subscription.ts │ │ ├── context-tag-indexer.ts │ │ ├── context-view.ts │ │ ├── context.ts │ │ ├── index.ts │ │ ├── inject-config.ts │ │ ├── inject.ts │ │ ├── interception-proxy.ts │ │ ├── interceptor-chain.ts │ │ ├── interceptor.ts │ │ ├── invocation.ts │ │ ├── json-types.ts │ │ ├── keys.ts │ │ ├── provider.ts │ │ ├── resolution-session.ts │ │ ├── resolver.ts │ │ ├── unique-id.ts │ │ └── value-promise.ts │ └── tsconfig.json ├── core │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── application-with-shutdown.ts │ │ │ │ ├── application.acceptance.ts │ │ │ │ ├── application.feature.md │ │ │ │ ├── application.shutdown.acceptance.ts │ │ │ │ ├── extension-point.acceptance.ts │ │ │ │ └── service.acceptance.ts │ │ │ └── unit │ │ │ │ ├── application-lifecycle.unit.ts │ │ │ │ ├── application.unit.ts │ │ │ │ └── lifecycle-registry.unit.ts │ │ ├── application.ts │ │ ├── component.ts │ │ ├── extension-point.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── lifecycle-registry.ts │ │ ├── lifecycle.ts │ │ ├── mixin-target.ts │ │ ├── server.ts │ │ └── service.ts │ └── tsconfig.json ├── eslint-config │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── eslintrc.js │ └── package.json ├── express │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── invoke-middleware.acceptance.ts │ │ │ │ ├── middleware-action.acceptance.ts │ │ │ │ ├── middleware-interceptor.acceptance.ts │ │ │ │ ├── middleware-registeration.acceptance.ts │ │ │ │ └── test-helpers.ts │ │ │ ├── fixtures │ │ │ │ ├── spy-config.ts │ │ │ │ └── spy.middleware.ts │ │ │ └── unit │ │ │ │ └── group-order.unit.ts │ │ ├── express.application.ts │ │ ├── express.server.ts │ │ ├── group-sorter.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── middleware-interceptor.ts │ │ ├── middleware-registry.ts │ │ ├── middleware.ts │ │ ├── mixins │ │ │ └── middleware.mixin.ts │ │ ├── providers │ │ │ └── invoke-middleware.provider.ts │ │ └── types.ts │ └── tsconfig.json ├── filter │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ └── acceptance │ │ │ │ └── query-builder.acceptance.ts │ │ ├── index.ts │ │ ├── query.ts │ │ └── types.ts │ └── tsconfig.json ├── http-caching-proxy │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── integration │ │ │ │ └── http-caching-proxy.integration.ts │ │ │ └── unit │ │ │ │ └── http-caching-proxy.test.ts │ │ ├── http-caching-proxy.ts │ │ └── index.ts │ └── tsconfig.json ├── http-server │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── fixtures │ │ ├── cert.pem │ │ ├── key.pem │ │ └── pfx.pfx │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ └── integration │ │ │ │ └── http-server.integration.ts │ │ ├── http-server.ts │ │ └── index.ts │ └── tsconfig.json ├── metadata │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ └── unit │ │ │ │ ├── decorator-factory.unit.ts │ │ │ │ ├── inspector.unit.ts │ │ │ │ ├── metadata-accessor.test.ts │ │ │ │ └── reflect.unit.ts │ │ ├── decorator-factory.ts │ │ ├── index.ts │ │ ├── inspector.ts │ │ ├── reflect.ts │ │ └── types.ts │ └── tsconfig.json ├── model-api-builder │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── model-api-builder.ts │ │ └── model-api-config.ts │ └── tsconfig.json ├── openapi-spec-builder │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ └── unit │ │ │ │ └── openapi-spec-builder.unit.ts │ │ ├── index.ts │ │ └── openapi-spec-builder.ts │ └── tsconfig.json ├── openapi-v3 │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── integration │ │ │ │ ├── controller-spec.integration.ts │ │ │ │ └── operation-spec.integration.ts │ │ │ └── unit │ │ │ │ ├── create-empty-spec.unit.ts │ │ │ │ ├── decorators │ │ │ │ ├── deprecated.decorator.unit.ts │ │ │ │ ├── operation.decorator.unit.ts │ │ │ │ ├── param │ │ │ │ │ ├── param-header.decorator.unit.ts │ │ │ │ │ ├── param-path.decorator.unit.ts │ │ │ │ │ ├── param-query.decorator.unit.ts │ │ │ │ │ └── param.decorator.unit.ts │ │ │ │ ├── query.decorator.unit.ts │ │ │ │ ├── request-body │ │ │ │ │ ├── request-body-primitives.decorator.unit.ts │ │ │ │ │ ├── request-body-shortcut.decorator.unit.ts │ │ │ │ │ └── request-body.decorator.unit.ts │ │ │ │ ├── response.decorator.unit.ts │ │ │ │ ├── tags.decorator.unit.ts │ │ │ │ └── visibility.decorator.unit.ts │ │ │ │ ├── enhancers │ │ │ │ ├── fixtures │ │ │ │ │ ├── application.ts │ │ │ │ │ ├── info.spec.extension.ts │ │ │ │ │ └── security.spec.extension.ts │ │ │ │ └── spec-enhancer.extensions.unit.ts │ │ │ │ ├── filter-schema.unit.ts │ │ │ │ ├── generate-schema.unit.ts │ │ │ │ ├── json-to-schema.unit.ts │ │ │ │ ├── merge-security-scheme.unit.ts │ │ │ │ └── x-ts-type.unit.ts │ │ ├── build-responses-from-metadata.ts │ │ ├── controller-spec.ts │ │ ├── decorators │ │ │ ├── api.decorator.ts │ │ │ ├── deprecated.decorator.ts │ │ │ ├── index.ts │ │ │ ├── operation.decorator.ts │ │ │ ├── parameter.decorator.ts │ │ │ ├── request-body.decorator.ts │ │ │ ├── response.decorator.ts │ │ │ ├── tags.decorator.ts │ │ │ └── visibility.decorator.ts │ │ ├── enhancers │ │ │ ├── index.ts │ │ │ ├── keys.ts │ │ │ ├── spec-enhancer.service.ts │ │ │ └── types.ts │ │ ├── filter-schema.ts │ │ ├── generate-schema.ts │ │ ├── index.ts │ │ ├── json-to-schema.ts │ │ ├── keys.ts │ │ └── types.ts │ └── tsconfig.json ├── repository-json-schema │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── helpers │ │ │ │ └── expect-valid-json-schema.ts │ │ │ ├── integration │ │ │ │ ├── build-schema.integration.ts │ │ │ │ └── schema-ref.integration.ts │ │ │ └── unit │ │ │ │ ├── build-schema.unit.ts │ │ │ │ ├── filter-json-schema.unit.ts │ │ │ │ └── json-schema.unit.ts │ │ ├── build-schema.ts │ │ ├── filter-json-schema.ts │ │ ├── index.ts │ │ └── keys.ts │ └── tsconfig.json ├── repository-tests │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ └── acceptance │ │ │ │ └── default-repository.memory.acceptance.ts │ │ ├── crud-test-suite.ts │ │ ├── crud │ │ │ ├── create-retrieve.suite.ts │ │ │ ├── freeform-properties.suite.ts │ │ │ ├── nested-model-properties.suite.ts │ │ │ ├── relations │ │ │ │ ├── acceptance │ │ │ │ │ ├── belongs-to.inclusion-resolver.polymorphic.relation.acceptance.ts │ │ │ │ │ ├── belongs-to.inclusion-resolver.relation.acceptance.ts │ │ │ │ │ ├── belongs-to.polymorphic.relation.acceptance.ts │ │ │ │ │ ├── belongs-to.relation.acceptance.ts │ │ │ │ │ ├── has-many-inclusion-resolver.relation.acceptance.ts │ │ │ │ │ ├── has-many-through-inclusion-resolver.acceptance.ts │ │ │ │ │ ├── has-many-through-inclusion-resolver.polymorphic.acceptance.ts │ │ │ │ │ ├── has-many-through.relation.acceptance.ts │ │ │ │ │ ├── has-many-through.relation.polymorphic.acceptance.ts │ │ │ │ │ ├── has-many.relation.acceptance.ts │ │ │ │ │ ├── has-one.inclusion-resolver.acceptance.ts │ │ │ │ │ ├── has-one.inclusion-resolver.polymorphic.acceptance.ts │ │ │ │ │ ├── has-one.relation.acceptance.ts │ │ │ │ │ ├── has-one.relation.polymorphic.acceptance.ts │ │ │ │ │ └── multi-relations-inclusion-resolver.relation.acceptance.ts │ │ │ │ ├── fixtures │ │ │ │ │ ├── models │ │ │ │ │ │ ├── address.model.ts │ │ │ │ │ │ ├── cart-item.model.ts │ │ │ │ │ │ ├── contact.model.ts │ │ │ │ │ │ ├── customer-cart-item-link.model.ts │ │ │ │ │ │ ├── customer-promotion-link.model.ts │ │ │ │ │ │ ├── customer.model.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── order.model.ts │ │ │ │ │ │ ├── payment-method.model.ts │ │ │ │ │ │ ├── promotion.model.ts │ │ │ │ │ │ ├── shipment.model.ts │ │ │ │ │ │ ├── stakeholder.model.ts │ │ │ │ │ │ ├── supplier.model.ts │ │ │ │ │ │ ├── user-link.model.ts │ │ │ │ │ │ └── user.model.ts │ │ │ │ │ └── repositories │ │ │ │ │ │ ├── address.repository.ts │ │ │ │ │ │ ├── cart-item.repository.ts │ │ │ │ │ │ ├── contact.repository.ts │ │ │ │ │ │ ├── customer-cart-item-link.repository.ts │ │ │ │ │ │ ├── customer-promotion-link.repository.ts │ │ │ │ │ │ ├── customer.repository.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── order.repository.ts │ │ │ │ │ │ ├── payment-method.repository.ts │ │ │ │ │ │ ├── promotion.repository.ts │ │ │ │ │ │ ├── shipment.repository.ts │ │ │ │ │ │ ├── supplier.repository.ts │ │ │ │ │ │ ├── user-link.repository.ts │ │ │ │ │ │ └── user.repository.ts │ │ │ │ └── helpers.ts │ │ │ ├── replace-by-id.suite.ts │ │ │ └── transactions.suite.ts │ │ ├── helpers.repository-tests.ts │ │ ├── index.ts │ │ └── types.repository-tests.ts │ └── tsconfig.json ├── repository │ ├── .npmrc │ ├── CHANGELOG.md │ ├── DEVELOPING.md │ ├── LICENSE │ ├── README.md │ ├── examples │ │ ├── controllers │ │ │ ├── customer-with-class-di.controller.ts │ │ │ ├── customer-with-constructor-di.controller.ts │ │ │ └── customer-with-property-di.controller.ts │ │ ├── juggler-bridge │ │ │ ├── note-with-repo-class.ts │ │ │ └── note-with-repo-instance.ts │ │ ├── models │ │ │ ├── address.model.ts │ │ │ ├── customer.definition.js │ │ │ ├── customer.model.ts │ │ │ └── order.model.ts │ │ └── repositories │ │ │ └── customer.repository.ts │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── has-many-without-di.relation.acceptance.ts │ │ │ │ ├── operation-hooks.acceptance.ts │ │ │ │ └── repository.acceptance.ts │ │ │ ├── fixtures │ │ │ │ ├── mixins │ │ │ │ │ ├── base-entity.ts │ │ │ │ │ ├── category-property-mixin.ts │ │ │ │ │ └── find-by-title-repo-mixin.ts │ │ │ │ ├── models │ │ │ │ │ ├── note.model.ts │ │ │ │ │ └── product.model.ts │ │ │ │ └── repositories │ │ │ │ │ ├── note.repository.ts │ │ │ │ │ └── product.repository.ts │ │ │ ├── integration │ │ │ │ └── repositories │ │ │ │ │ └── relation.factory.integration.ts │ │ │ └── unit │ │ │ │ ├── common-types.unit.ts │ │ │ │ ├── crud-connector.stub.ts │ │ │ │ ├── decorator │ │ │ │ ├── metadata.unit.ts │ │ │ │ ├── model-and-relation.decorator.unit.ts │ │ │ │ ├── relation.decorator.unit.ts │ │ │ │ ├── repository-with-di.decorator.unit.ts │ │ │ │ ├── repository-with-value-provider.decorator.unit.ts │ │ │ │ └── repository.decorator.unit.ts │ │ │ │ ├── errors │ │ │ │ ├── entity-not-found-error.test.ts │ │ │ │ ├── invalid-body-error.test.ts │ │ │ │ └── invalid-relation-error.test.ts │ │ │ │ ├── mixins │ │ │ │ ├── add-method-to-repository.mixin.unit.ts │ │ │ │ ├── model.mixin.unit.ts │ │ │ │ └── repository.mixin.unit.ts │ │ │ │ ├── model │ │ │ │ ├── define-model-class.unit.ts │ │ │ │ └── model.unit.ts │ │ │ │ ├── repositories │ │ │ │ ├── belongs-to-repository-factory.unit.ts │ │ │ │ ├── constraint-utils.unit.ts │ │ │ │ ├── crud.repository.unit.ts │ │ │ │ ├── define-repository-class.unit.ts │ │ │ │ ├── has-many-repository-factory.unit.ts │ │ │ │ ├── has-many-through-repository-factory.unit.ts │ │ │ │ ├── has-one-repository-factory.unit.ts │ │ │ │ ├── kv.repository.bridge.unit.ts │ │ │ │ ├── legacy-juggler-bridge.unit.ts │ │ │ │ ├── relation.repository.unit.ts │ │ │ │ └── relations-helpers │ │ │ │ │ ├── build-lookup-map.unit.ts │ │ │ │ │ ├── find-by-foreign-keys.unit.ts │ │ │ │ │ ├── flatten-targets-of-one-to-many-relation-helpers.unit.ts │ │ │ │ │ ├── flatten-targets-of-one-to-one-relation.helpers.unit.ts │ │ │ │ │ ├── include-field-if-not.unit.ts │ │ │ │ │ ├── include-related-models.unit.ts │ │ │ │ │ ├── mongo-related-helpers.unit.ts │ │ │ │ │ ├── relations-helpers-fixtures.ts │ │ │ │ │ ├── resolve-belongs-to-metadata.unit.ts │ │ │ │ │ ├── resolve-has-many-metadata.unit.ts │ │ │ │ │ ├── resolve-has-many-through-metadata.unit.ts │ │ │ │ │ └── resolve-has-one-metadata.unit.ts │ │ │ │ ├── type-resolver.unit.ts │ │ │ │ └── type │ │ │ │ └── type.unit.ts │ │ ├── common-types.ts │ │ ├── connectors │ │ │ ├── connector.ts │ │ │ ├── crud.connector.ts │ │ │ ├── index.ts │ │ │ └── kv.connector.ts │ │ ├── datasource.ts │ │ ├── decorators │ │ │ ├── index.ts │ │ │ ├── metadata.ts │ │ │ ├── model.decorator.ts │ │ │ └── repository.decorator.ts │ │ ├── define-model-class.ts │ │ ├── define-repository-class.ts │ │ ├── errors │ │ │ ├── entity-not-found.error.ts │ │ │ ├── index.ts │ │ │ ├── invalid-body.error.ts │ │ │ ├── invalid-polymorphism.error.ts │ │ │ └── invalid-relation.error.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── mixins │ │ │ ├── index.ts │ │ │ └── repository.mixin.ts │ │ ├── model.ts │ │ ├── relations │ │ │ ├── belongs-to │ │ │ │ ├── belongs-to.accessor.ts │ │ │ │ ├── belongs-to.decorator.ts │ │ │ │ ├── belongs-to.helpers.ts │ │ │ │ ├── belongs-to.inclusion-resolver.ts │ │ │ │ ├── belongs-to.repository.ts │ │ │ │ └── index.ts │ │ │ ├── has-many │ │ │ │ ├── has-many-through.helpers.ts │ │ │ │ ├── has-many-through.inclusion-resolver.ts │ │ │ │ ├── has-many-through.repository-factory.ts │ │ │ │ ├── has-many-through.repository.ts │ │ │ │ ├── has-many.decorator.ts │ │ │ │ ├── has-many.helpers.ts │ │ │ │ ├── has-many.inclusion-resolver.ts │ │ │ │ ├── has-many.repository-factory.ts │ │ │ │ ├── has-many.repository.ts │ │ │ │ └── index.ts │ │ │ ├── has-one │ │ │ │ ├── has-one.decorator.ts │ │ │ │ ├── has-one.helpers.ts │ │ │ │ ├── has-one.inclusion-resolver.ts │ │ │ │ ├── has-one.repository-factory.ts │ │ │ │ ├── has-one.repository.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── references-many │ │ │ │ ├── index.ts │ │ │ │ ├── references-many.accessor.ts │ │ │ │ ├── references-many.decorator.ts │ │ │ │ ├── references-many.helpers.ts │ │ │ │ ├── references-many.inclusion-resolver.ts │ │ │ │ └── references-many.repository.ts │ │ │ ├── relation.decorator.ts │ │ │ ├── relation.filter.solver.ts │ │ │ ├── relation.helpers.ts │ │ │ └── relation.types.ts │ │ ├── repositories │ │ │ ├── constraint-utils.ts │ │ │ ├── index.ts │ │ │ ├── kv.repository.bridge.ts │ │ │ ├── kv.repository.ts │ │ │ ├── legacy-juggler-bridge.ts │ │ │ └── repository.ts │ │ ├── transaction.ts │ │ ├── type-resolver.ts │ │ └── types │ │ │ ├── any.ts │ │ │ ├── array.ts │ │ │ ├── boolean.ts │ │ │ ├── buffer.ts │ │ │ ├── date.ts │ │ │ ├── index.ts │ │ │ ├── model.ts │ │ │ ├── null.ts │ │ │ ├── number.ts │ │ │ ├── object.ts │ │ │ ├── string.ts │ │ │ ├── type.ts │ │ │ └── union.ts │ └── tsconfig.json ├── rest-crud │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ └── default-model-crud-rest.acceptance.ts │ │ │ └── unit │ │ │ │ ├── crud-rest-controller.unit.ts │ │ │ │ └── define-crud-repository-class.unit.ts │ │ ├── crud-rest.api-builder.ts │ │ ├── crud-rest.component.ts │ │ ├── crud-rest.controller.ts │ │ └── index.ts │ └── tsconfig.json ├── rest-explorer │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── rest-explorer.acceptance.ts │ │ │ │ └── rest-explorer.express.acceptance.ts │ │ │ └── fixtures │ │ │ │ ├── index.html.ejs │ │ │ │ └── theme-newspaper.css │ │ ├── index.ts │ │ ├── rest-explorer.component.ts │ │ ├── rest-explorer.controller.ts │ │ ├── rest-explorer.keys.ts │ │ └── rest-explorer.types.ts │ ├── templates │ │ └── index.html.ejs │ └── tsconfig.json ├── rest │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── fixtures │ │ ├── assets │ │ │ └── index.html │ │ ├── cert.pem │ │ ├── file-upload-test.txt │ │ ├── key.pem │ │ ├── other-assets │ │ │ ├── index.html │ │ │ └── robots.txt │ │ └── pfx.pfx │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ ├── bootstrapping │ │ │ │ │ └── rest.acceptance.ts │ │ │ │ ├── caching-interceptor │ │ │ │ │ ├── caching-interceptor.acceptance.ts │ │ │ │ │ ├── caching-interceptor.ts │ │ │ │ │ └── global-caching-interceptor.acceptance.ts │ │ │ │ ├── coercion │ │ │ │ │ └── coercion.acceptance.ts │ │ │ │ ├── file-upload │ │ │ │ │ ├── file-upload-with-parser.acceptance.ts │ │ │ │ │ └── file-upload.acceptance.ts │ │ │ │ ├── middleware │ │ │ │ │ ├── middleware-registeration.acceptance.ts │ │ │ │ │ ├── middleware-sequence.acceptance.ts │ │ │ │ │ └── test-helpers.ts │ │ │ │ ├── module-exporting │ │ │ │ │ └── feature.md │ │ │ │ ├── request-parsing │ │ │ │ │ └── request-parsing.acceptance.ts │ │ │ │ ├── routing │ │ │ │ │ ├── feature.md │ │ │ │ │ └── routing.acceptance.ts │ │ │ │ ├── sequence │ │ │ │ │ └── sequence.acceptance.ts │ │ │ │ └── validation │ │ │ │ │ └── validation.acceptance.ts │ │ │ ├── fixtures │ │ │ │ ├── controllers │ │ │ │ │ └── note.controller.ts │ │ │ │ ├── middleware │ │ │ │ │ ├── spy-config.ts │ │ │ │ │ └── spy.middleware.ts │ │ │ │ ├── mixins │ │ │ │ │ └── find-by-title-controller-mixin.ts │ │ │ │ ├── models │ │ │ │ │ ├── book.model.ts │ │ │ │ │ └── note.model.ts │ │ │ │ └── repositories │ │ │ │ │ └── note.repository.ts │ │ │ ├── helpers.ts │ │ │ ├── integration │ │ │ │ ├── controller.mixin.unit.ts │ │ │ │ ├── export-openapi-spec.integration.ts │ │ │ │ ├── express.integration.ts │ │ │ │ ├── http-handler.integration.ts │ │ │ │ ├── repository.integration.ts │ │ │ │ ├── request-context.integration.ts │ │ │ │ ├── rest.application.integration.ts │ │ │ │ └── rest.server.integration.ts │ │ │ └── unit │ │ │ │ ├── ajv-factory.provider.unit.ts │ │ │ │ ├── body-parser.unit.ts │ │ │ │ ├── coercion │ │ │ │ ├── invalid-spec.unit.test.ts │ │ │ │ ├── paramObject.unit.ts │ │ │ │ ├── paramStringToBoolean.unit.ts │ │ │ │ ├── paramStringToBuffer.unit.ts │ │ │ │ ├── paramStringToDate.unit.ts │ │ │ │ ├── paramStringToInteger.unit.ts │ │ │ │ ├── paramStringToNumber.unit.ts │ │ │ │ ├── paramStringToString.unit.ts │ │ │ │ ├── parseStringToDatetime.unit.ts │ │ │ │ └── utils.ts │ │ │ │ ├── parse-json.unit.ts │ │ │ │ ├── parser.unit.ts │ │ │ │ ├── re-export.unit.ts │ │ │ │ ├── request-body.validator.test.ts │ │ │ │ ├── rest.application │ │ │ │ └── rest.application.unit.ts │ │ │ │ ├── rest.component.unit.ts │ │ │ │ ├── rest.server │ │ │ │ ├── consolidate.spec.extension.unit.ts │ │ │ │ ├── fixtures │ │ │ │ │ └── info.spec.extension.ts │ │ │ │ ├── rest.server.controller.unit.ts │ │ │ │ ├── rest.server.open-api-spec.unit.ts │ │ │ │ ├── rest.server.redirect.unit.ts │ │ │ │ └── rest.server.unit.ts │ │ │ │ ├── router │ │ │ │ ├── assign-router-spec.unit.ts │ │ │ │ ├── controller-factory.unit.ts │ │ │ │ ├── controller-route.unit.ts │ │ │ │ ├── handler-route.unit.ts │ │ │ │ ├── openapi-path.unit.ts │ │ │ │ ├── rebase-openapi-spec.unit.ts │ │ │ │ ├── reject.provider.unit.ts │ │ │ │ ├── route-sort.unit.ts │ │ │ │ ├── routing-table.unit.ts │ │ │ │ ├── trie-router.unit.ts │ │ │ │ └── trie.unit.ts │ │ │ │ └── writer.unit.ts │ │ ├── body-parsers │ │ │ ├── body-parser.helpers.ts │ │ │ ├── body-parser.json.ts │ │ │ ├── body-parser.raw.ts │ │ │ ├── body-parser.stream.ts │ │ │ ├── body-parser.text.ts │ │ │ ├── body-parser.ts │ │ │ ├── body-parser.urlencoded.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── coercion │ │ │ ├── coerce-parameter.ts │ │ │ ├── utils.ts │ │ │ └── validator.ts │ │ ├── http-handler.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ ├── parse-json.ts │ │ ├── parser.ts │ │ ├── providers │ │ │ ├── find-route.provider.ts │ │ │ ├── index.ts │ │ │ ├── invoke-method.provider.ts │ │ │ ├── log-error.provider.ts │ │ │ ├── parse-params.provider.ts │ │ │ ├── reject.provider.ts │ │ │ └── send.provider.ts │ │ ├── request-context.ts │ │ ├── rest-http-error.ts │ │ ├── rest.application.ts │ │ ├── rest.component.ts │ │ ├── rest.server.ts │ │ ├── router │ │ │ ├── base-route.ts │ │ │ ├── controller-route.ts │ │ │ ├── external-express-routes.ts │ │ │ ├── handler-route.ts │ │ │ ├── index.ts │ │ │ ├── openapi-path.ts │ │ │ ├── redirect-route.ts │ │ │ ├── regexp-router.ts │ │ │ ├── rest-router.ts │ │ │ ├── route-entry.ts │ │ │ ├── route-sort.ts │ │ │ ├── router-base.ts │ │ │ ├── router-spec.ts │ │ │ ├── routing-table.ts │ │ │ ├── trie-router.ts │ │ │ └── trie.ts │ │ ├── sequence.ts │ │ ├── spec-enhancers │ │ │ ├── consolidate.spec-enhancer.ts │ │ │ └── info.spec-enhancer.ts │ │ ├── types.ts │ │ ├── validation │ │ │ ├── ajv-factory.provider.ts │ │ │ ├── openapi-formats.ts │ │ │ └── request-body.validator.ts │ │ └── writer.ts │ └── tsconfig.json ├── security │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── security-overview-diagram.png │ ├── src │ │ ├── __tests__ │ │ │ └── unit │ │ │ │ ├── permission.unit.ts │ │ │ │ ├── principal.unit.ts │ │ │ │ └── subject.unit.ts │ │ ├── index.ts │ │ ├── keys.ts │ │ └── types.ts │ └── tsconfig.json ├── service-proxy │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── acceptance │ │ │ │ └── service.mixin.acceptance.ts │ │ │ ├── integration │ │ │ │ └── service-proxy.integration.ts │ │ │ ├── mock-service.connector.ts │ │ │ └── unit │ │ │ │ ├── decorators │ │ │ │ └── service-proxy.decorator.unit.ts │ │ │ │ └── mixin │ │ │ │ └── service.mixin.unit.ts │ │ ├── decorators │ │ │ └── service.decorator.ts │ │ ├── index.ts │ │ ├── legacy-juggler-bridge.ts │ │ └── mixins │ │ │ ├── index.ts │ │ │ └── service.mixin.ts │ └── tsconfig.json ├── testlab │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── fixtures │ │ ├── README.md │ │ ├── cert.pem │ │ ├── copy-me.txt │ │ ├── key.pem │ │ └── pfx.pfx │ ├── package.json │ ├── should-as-function.d.ts │ ├── src │ │ ├── __tests__ │ │ │ ├── fixtures │ │ │ │ ├── README.md │ │ │ │ └── test.ts │ │ │ ├── integration │ │ │ │ ├── test-sandbox.integration.ts │ │ │ │ └── testlab.smoke.integration.ts │ │ │ └── unit │ │ │ │ ├── http-server-config.test.ts │ │ │ │ ├── test-sandbox.unit.ts │ │ │ │ └── to-json.test.ts │ │ ├── client.ts │ │ ├── expect.ts │ │ ├── http-error-logger.ts │ │ ├── http-server-config.ts │ │ ├── index.ts │ │ ├── request.ts │ │ ├── shot.ts │ │ ├── sinon.ts │ │ ├── skip.ts │ │ ├── test-sandbox.ts │ │ ├── to-json.ts │ │ └── validate-api-spec.ts │ └── tsconfig.json └── tsdocs │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── bin │ ├── document-apis.js │ ├── extract-apis.js │ └── update-apidocs.js │ ├── package.json │ ├── src │ ├── __tests__ │ │ └── acceptance │ │ │ └── tsdocs.acceptance.ts │ ├── helper.ts │ ├── index.ts │ ├── monorepo-api-extractor.ts │ └── update-api-md-docs.ts │ └── tsconfig.json ├── renovate.json ├── sandbox ├── README.md └── example │ ├── .npmrc │ ├── CHANGELOG.md │ ├── LICENSE │ ├── index.js │ └── package.json ├── tsconfig.build.json └── tsconfig.json /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | coverage/ 4 | /sandbox 5 | **/*.d.ts 6 | /docs/_preview 7 | /docs/_loopback.io 8 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /.github/codeql/codeql-config.yml: -------------------------------------------------------------------------------- 1 | paths-ignore: 2 | - '**/__tests__/**' 3 | - '**/tests/**' 4 | -------------------------------------------------------------------------------- /.husky/.gitignore: -------------------------------------------------------------------------------- 1 | _ 2 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | [ -n "$CI" ] && exit 0 5 | 6 | npx --no -- commitlint --edit "$1" 7 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | [ -n "$CI" ] && exit 0 5 | if [ "$LINT_STAGED" = "0" ]; then 6 | echo "lint-staged disabled via LINT_STAGED env var" 7 | exit 0 8 | fi 9 | 10 | npx --no lint-staged 11 | -------------------------------------------------------------------------------- /.lintstagedrc: -------------------------------------------------------------------------------- 1 | { 2 | "*.{js,ts}": [ 3 | "node packages/build/bin/run-prettier --write", 4 | "node packages/build/bin/run-eslint --fix --report-unused-disable-directives --cache" 5 | ], 6 | "*.md": "node packages/build/bin/run-prettier --write" 7 | } 8 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | scripts-prepend-node-path=true 3 | 4 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid", 7 | "overrides": [ 8 | { 9 | "files": "**/*.md", 10 | "options": { 11 | "parser": "markdown", 12 | "proseWrap": "always" 13 | } 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # CHANGELOG 2 | 3 | CHANGELOG files are generated independently for each package and can be found at: 4 | 5 | `packages/*/CHANGELOG.md` 6 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ./docs/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ./docs/CONTRIBUTING.md -------------------------------------------------------------------------------- /MAINTAINING.md: -------------------------------------------------------------------------------- 1 | ./docs/MAINTAINING.md -------------------------------------------------------------------------------- /acceptance/README.md: -------------------------------------------------------------------------------- 1 | ## Acceptance tests 2 | 3 | This directory contains packages with acceptance-level tests. These tests are 4 | not invoked as part of root `npm test`, you have to run them manually. Consult 5 | README files of individual packages for instructions on how to run the tests. 6 | -------------------------------------------------------------------------------- /acceptance/extension-logging-fluentd/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /acceptance/extension-logging-fluentd/fixtures/etc/fluentd.conf: -------------------------------------------------------------------------------- 1 | 2 | @type http 3 | port 9880 4 | bind 0.0.0.0 5 | 6 | 7 | @type forward 8 | port 24224 9 | 10 | 11 | @type file 12 | path /fluentd/log/ 13 | 14 | timekey 1d 15 | timekey_use_utc true 16 | timekey_wait 10m 17 | 18 | 19 | -------------------------------------------------------------------------------- /acceptance/extension-logging-fluentd/fixtures/stop-fluentd.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | FLUENTD__CONTAINER_NAME="fluentd_lb4" 3 | docker rm -f $FLUENTD__CONTAINER_NAME >/dev/null 2>&1 4 | -------------------------------------------------------------------------------- /acceptance/repository-cloudant/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /acceptance/repository-mongodb/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /acceptance/repository-mongodb/setup.sh: -------------------------------------------------------------------------------- 1 | source ./node_modules/loopback-connector-mongodb/setup.sh 2 | -------------------------------------------------------------------------------- /acceptance/repository-mysql/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /acceptance/repository-mysql/setup.sh: -------------------------------------------------------------------------------- 1 | source ./node_modules/loopback-connector-mysql/setup.sh 2 | -------------------------------------------------------------------------------- /acceptance/repository-mysql/test/schema.sql: -------------------------------------------------------------------------------- 1 | -- Seed database schema & data 2 | -- See https://github.com/loopbackio/loopback-connector-mysql/blob/master/test/schema.sql 3 | -- The repository test suite does not require any seed data to exist, 4 | -- we can keep this SQL file empty. 5 | -------------------------------------------------------------------------------- /acceptance/repository-postgresql/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /acceptance/repository-postgresql/setup.sh: -------------------------------------------------------------------------------- 1 | source ./node_modules/loopback-connector-postgresql/setup.sh 2 | export POSTGRESQL_DATABASE=repository_tests 3 | -------------------------------------------------------------------------------- /acceptance/repository-postgresql/test/schema.sql: -------------------------------------------------------------------------------- 1 | -- Seed database schema & data 2 | -- See https://github.com/loopbackio/loopback-connector-postgresql/blob/master/test/schema.sql 3 | 4 | DROP DATABASE IF EXISTS repository_tests; 5 | CREATE DATABASE repository_tests; 6 | 7 | DROP DATABASE IF EXISTS repository_tests_new; 8 | CREATE DATABASE repository_tests_new; 9 | -------------------------------------------------------------------------------- /benchmark/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /bin/verify-doc-changes.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | # Test LoopBack.io will build if changes made to @loopback/docs 5 | echo "TASK => VERIFY DOCS" 6 | if git diff --name-only --quiet $TRAVIS_BRANCH docs/; then 7 | echo "No changes to @loopback/docs in this PR" 8 | exit 0 9 | else 10 | echo "Testing @loopback/docs" 11 | npm run verify:docs 12 | fi 13 | -------------------------------------------------------------------------------- /bodyparsers/rest-msgpack/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | scripts-prepend-node-path=true 3 | -------------------------------------------------------------------------------- /docs/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /docs/diagrams/authentication_diagrams.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/diagrams/authentication_diagrams.pptx -------------------------------------------------------------------------------- /docs/diagrams/loopback-docs-diagrams.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/diagrams/loopback-docs-diagrams.key -------------------------------------------------------------------------------- /docs/img/domain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/img/domain.png -------------------------------------------------------------------------------- /docs/img/request routing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/img/request routing.png -------------------------------------------------------------------------------- /docs/site/Accepting-MessagePack-over-HTTP.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'How to accept MessagePack over HTTP' 4 | keywords: LoopBack 4.0, LoopBack 4, MessagePack 5 | sidebar: lb4_sidebar 6 | layout: readme 7 | source: loopback-next 8 | file: bodyparsers/rest-msgpack/README.md 9 | permalink: /doc/en/lb4/Accepting-messagepack-over-http.html 10 | --- 11 | -------------------------------------------------------------------------------- /docs/site/Authentication-passport.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'Passport Authentication Strategy Adapter' 4 | keywords: 5 | LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI, Authentication, 6 | Passport 7 | layout: readme 8 | source: loopback-next 9 | file: extensions/authentication-passport/README.md 10 | sidebar: lb4_sidebar 11 | permalink: /doc/en/lb4/Authentication-passport.html 12 | --- 13 | -------------------------------------------------------------------------------- /docs/site/Boot-and-Mount-a-LoopBack-3-application.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'Boot and Mount a LoopBack 3 Application' 4 | keywords: LoopBack 4.0, LoopBack 4, LoopBack 3, Node.js, TypeScript, OpenAPI 5 | layout: readme 6 | source: loopback-next 7 | file: packages/booter-lb3app/README.md 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/Boot-and-Mount-a-LoopBack-3-application.html 10 | --- 11 | -------------------------------------------------------------------------------- /docs/site/Cassandra-connector.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Cassandra connector' 3 | lang: en 4 | layout: readme 5 | source: loopback-connector-cassandra 6 | keywords: LoopBack, connector 7 | tags: readme 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/Cassandra-connector.html 10 | summary: 11 | The Cassandra connector enables LoopBack applications to connect to Cassandra 12 | data sources. 13 | --- 14 | -------------------------------------------------------------------------------- /docs/site/Context-explorer.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'Context Explorer' 4 | keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, Context 5 | layout: readme 6 | source: loopback-next 7 | file: extensions/context-explorer/README.md 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/Context-explorer.html 10 | --- 11 | -------------------------------------------------------------------------------- /docs/site/Creating-decorators.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'Creating decorators' 4 | keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI, Decorators 5 | layout: readme 6 | source: loopback-next 7 | file: packages/metadata/README.md 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/Creating-decorators.html 10 | summary: A tutorial to use `@loopback/core` module to create new decorators 11 | --- 12 | -------------------------------------------------------------------------------- /docs/site/DB2-connector.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'IBM Db2 connector' 3 | lang: en 4 | layout: readme 5 | source: loopback-connector-db2 6 | keywords: LoopBack 7 | tags: [connectors, readme] 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/DB2-connector.html 10 | summary: 11 | The Db2 connector enables LoopBack applications to connect to Db2 data 12 | sources. 13 | --- 14 | -------------------------------------------------------------------------------- /docs/site/DB2-for-i-connector.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'IBM Db2 for i connector' 3 | lang: en 4 | layout: readme 5 | source: loopback-connector-ibmi 6 | keywords: LoopBack 7 | tags: [connectors, readme] 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/DB2-for-i-connector.html 10 | summary: 11 | The loopback-connector-ibmi connector enables LoopBack applications to connect 12 | to IBM® Db2® for i data sources. 13 | --- 14 | -------------------------------------------------------------------------------- /docs/site/Example-kv-connector.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'KV connector example' 3 | lang: en 4 | layout: readme 5 | source: loopback-example-kv-connectors 6 | keywords: LoopBack 7 | tags: example_app 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/Example-kv-connector.html 10 | summary: A simple example of using the LoopBack KV connectors. 11 | --- 12 | -------------------------------------------------------------------------------- /docs/site/GraphQL.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'GraphQL' 4 | keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, GraphQL 5 | layout: readme 6 | source: loopback-next 7 | file: extensions/graphql/README.md 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/GraphQL.html 10 | --- 11 | -------------------------------------------------------------------------------- /docs/site/Health.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'Health checks' 4 | keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI, Cloud Native 5 | layout: readme 6 | source: loopback-next 7 | file: extensions/health/README.md 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/Health.html 10 | --- 11 | -------------------------------------------------------------------------------- /docs/site/Integrating-with-api-connect.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'Integrating with API Connect' 4 | keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI, Cloud Native 5 | layout: readme 6 | source: loopback-next 7 | file: extensions/apiconnect/README.md 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/Integrating-with-api-connect.html 10 | --- 11 | -------------------------------------------------------------------------------- /docs/site/JSON-RPC-connector.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'JSON-RPC connector' 3 | lang: en 4 | layout: readme 5 | source: loopback-connector-jsonrpc 6 | keywords: LoopBack, connector 7 | tags: [connectors, readme] 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/JSON-RPC-connector.html 10 | summary: 11 | The LoopBack JSON-RPC Connector enables LoopBack applications to call JSON-RPC 12 | services. 13 | --- 14 | -------------------------------------------------------------------------------- /docs/site/JWT-authentication-extension.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'JWT Authentication Extension' 4 | keywords: LoopBack 4.0, LoopBack 4, Authentication, JWT 5 | layout: readme 6 | source: loopback-next 7 | file: extensions/authentication-jwt/README.md 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/JWT-authentication-extension.html 10 | --- 11 | -------------------------------------------------------------------------------- /docs/site/Language-related-concepts.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'Language-related concepts' 4 | keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI 5 | sidebar: lb4_sidebar 6 | permalink: /doc/en/lb4/Language-related-concepts.html 7 | --- 8 | 9 | A module that exports JavaScript/TypeScript concept related functions. 10 | 11 | - [**Mixin**](Mixin.md): Add properties and methods to a class. 12 | -------------------------------------------------------------------------------- /docs/site/Logging.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'Logging' 4 | keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, Logging 5 | layout: readme 6 | source: loopback-next 7 | file: extensions/logging/README.md 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/Logging.html 10 | --- 11 | -------------------------------------------------------------------------------- /docs/site/MQLight-connector.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'MQLight connector' 3 | lang: en 4 | layout: readme 5 | source: loopback-connector-mqlight 6 | keywords: LoopBack, connector 7 | tags: [connectors, readme] 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/MQLight-connector.html 10 | summary: 11 | The MQ Light connector enables LoopBack applications to use the MQ Light 12 | messaging API. 13 | --- 14 | -------------------------------------------------------------------------------- /docs/site/Metrics.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'Metrics collection for Prometheus' 4 | keywords: 5 | LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI, Cloud Native, Metrics, 6 | Prometheus 7 | layout: readme 8 | source: loopback-next 9 | file: extensions/metrics/README.md 10 | sidebar: lb4_sidebar 11 | permalink: /doc/en/lb4/Metrics.html 12 | --- 13 | -------------------------------------------------------------------------------- /docs/site/Migrating-from-LoopBack-3-redirect.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'Migrating from LoopBack 3' 4 | keywords: 5 | LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI, LoopBack 3, Migration 6 | sidebar: lb4_sidebar 7 | permalink: /doc/en/lb4/Migrating-from-LoopBack-3.html 8 | --- 9 | 10 | The migration guide was moved to a new place: 11 | [Migration guide](migration/overview.md). 12 | -------------------------------------------------------------------------------- /docs/site/MongoDB-connector.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'MongoDB connector' 3 | lang: en 4 | layout: readme 5 | source: loopback-connector-mongodb 6 | keywords: LoopBack, connector 7 | tags: readme 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/MongoDB-connector.html 10 | summary: 11 | The MongoDB connector enables LoopBack applications to connect to MongoDB data 12 | sources. 13 | --- 14 | -------------------------------------------------------------------------------- /docs/site/OpenAPI-connector.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'OpenAPI connector' 3 | lang: en 4 | layout: readme 5 | source: loopback-connector-openapi 6 | keywords: LoopBack, connector 7 | tags: readme 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/OpenAPI-connector.html 10 | summary: 11 | The OpenAPI connector enables LoopBack applications to connect to OpenAPI data 12 | sources. 13 | --- 14 | -------------------------------------------------------------------------------- /docs/site/Pooling.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'Pooling' 4 | keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, Pooling 5 | layout: readme 6 | source: loopback-next 7 | file: extensions/pooling/README.md 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/Pooling.html 10 | --- 11 | -------------------------------------------------------------------------------- /docs/site/REST-connector.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'REST connector' 3 | lang: en 4 | layout: readme 5 | source: loopback-connector-rest 6 | keywords: LoopBack, REST 7 | tags: [connectors, readme] 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/REST-connector.html 10 | summary: 11 | The REST connector enables LoopBack applications to interact with other (third 12 | party) REST APIs. 13 | --- 14 | -------------------------------------------------------------------------------- /docs/site/Running-cron-jobs.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'Running cron jobs' 4 | keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI 5 | layout: readme 6 | source: loopback-next 7 | file: extensions/cron/README.md 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/Running-cron-jobs.html 10 | summary: Use `@loopback/cron` module to run cron jobs 11 | --- 12 | -------------------------------------------------------------------------------- /docs/site/SQLite3.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'SQLite3 connector' 3 | lang: en 4 | layout: readme 5 | source: loopback-connector-sqlite3 6 | keywords: LoopBack, connector 7 | tags: readme 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/SQLite3.html 10 | summary: 11 | The SQLite3 connector enables LoopBack applications to connect to SQLite3 data 12 | sources. 13 | --- 14 | -------------------------------------------------------------------------------- /docs/site/Team.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: Team 4 | keywords: LoopBack 4.0 5 | sidebar: lb4_sidebar 6 | permalink: /doc/en/lb4/Team.html 7 | summary: The people working on LoopBack 4 8 | --- 9 | 10 | ## IBM 11 | 12 | - Core members/leads 13 | - All internal members (including docs, etc) 14 | 15 | ## Community contributors 16 | 17 | - loopback-maintainers 18 | - loopback-swagger-maintainers 19 | - etc 20 | -------------------------------------------------------------------------------- /docs/site/Using-Sequelize-with-LoopBack.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'How to use Sequelize with LoopBack' 4 | keywords: LoopBack 4.0, LoopBack 4, Sequelize 5 | sidebar: lb4_sidebar 6 | layout: readme 7 | source: loopback-next 8 | file: extensions/sequelize/README.md 9 | permalink: /doc/en/lb4/Using-sequelize-with-loopback.html 10 | --- 11 | -------------------------------------------------------------------------------- /docs/site/Using-TypeORM-with-LoopBack.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'How to use TypeORM with LoopBack' 4 | keywords: LoopBack 4.0, LoopBack 4, TypeORM 5 | sidebar: lb4_sidebar 6 | layout: readme 7 | source: loopback-next 8 | file: extensions/typeorm/README.md 9 | permalink: /doc/en/lb4/Using-typeorm-with-loopback.html 10 | --- 11 | -------------------------------------------------------------------------------- /docs/site/imgs/10000000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/10000000.png -------------------------------------------------------------------------------- /docs/site/imgs/10000001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/10000001.png -------------------------------------------------------------------------------- /docs/site/imgs/10000002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/10000002.png -------------------------------------------------------------------------------- /docs/site/imgs/access-databases-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/access-databases-overview.png -------------------------------------------------------------------------------- /docs/site/imgs/api_explorer_all_sections_lock_icons1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/api_explorer_all_sections_lock_icons1.png -------------------------------------------------------------------------------- /docs/site/imgs/api_explorer_auth_token_dialog1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/api_explorer_auth_token_dialog1.png -------------------------------------------------------------------------------- /docs/site/imgs/api_explorer_auth_token_dialog2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/api_explorer_auth_token_dialog2.png -------------------------------------------------------------------------------- /docs/site/imgs/api_explorer_authorize_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/api_explorer_authorize_button.png -------------------------------------------------------------------------------- /docs/site/imgs/api_explorer_usercontroller_section1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/api_explorer_usercontroller_section1.png -------------------------------------------------------------------------------- /docs/site/imgs/application-states.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/application-states.png -------------------------------------------------------------------------------- /docs/site/imgs/appsody_flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/appsody_flow.png -------------------------------------------------------------------------------- /docs/site/imgs/auth-tutorial-apiexplorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/auth-tutorial-apiexplorer.png -------------------------------------------------------------------------------- /docs/site/imgs/auth-tutorial-auth-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/auth-tutorial-auth-button.png -------------------------------------------------------------------------------- /docs/site/imgs/auth-tutorial-jwt-token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/auth-tutorial-jwt-token.png -------------------------------------------------------------------------------- /docs/site/imgs/authentication/authentication-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/authentication/authentication-overview.png -------------------------------------------------------------------------------- /docs/site/imgs/authentication_overview_detailed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/authentication_overview_detailed.png -------------------------------------------------------------------------------- /docs/site/imgs/authentication_overview_highlevel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/authentication_overview_highlevel.png -------------------------------------------------------------------------------- /docs/site/imgs/authorization-rbac-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/authorization-rbac-architecture.png -------------------------------------------------------------------------------- /docs/site/imgs/authorization-rbac-user-scenario.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/authorization-rbac-user-scenario.png -------------------------------------------------------------------------------- /docs/site/imgs/authorization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/authorization.png -------------------------------------------------------------------------------- /docs/site/imgs/belongsTo-relation-graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/belongsTo-relation-graph.png -------------------------------------------------------------------------------- /docs/site/imgs/binding-scopes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/binding-scopes.png -------------------------------------------------------------------------------- /docs/site/imgs/binding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/binding.png -------------------------------------------------------------------------------- /docs/site/imgs/branding/Powered-by-LoopBack-Badge-(blue)-@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/branding/Powered-by-LoopBack-Badge-(blue)-@2x.png -------------------------------------------------------------------------------- /docs/site/imgs/cascading-middleware.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/cascading-middleware.png -------------------------------------------------------------------------------- /docs/site/imgs/datasource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/datasource.png -------------------------------------------------------------------------------- /docs/site/imgs/debug_vscode_breakpoint_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/debug_vscode_breakpoint_1.png -------------------------------------------------------------------------------- /docs/site/imgs/debug_vscode_breakpoint_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/debug_vscode_breakpoint_2.png -------------------------------------------------------------------------------- /docs/site/imgs/dependency-injection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/dependency-injection.png -------------------------------------------------------------------------------- /docs/site/imgs/deploytocloud-createconnection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/deploytocloud-createconnection.png -------------------------------------------------------------------------------- /docs/site/imgs/deploytocloud-createdb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/deploytocloud-createdb.png -------------------------------------------------------------------------------- /docs/site/imgs/deploytocloud-launchcdashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/deploytocloud-launchcdashboard.png -------------------------------------------------------------------------------- /docs/site/imgs/deploytocloud-mycloudant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/deploytocloud-mycloudant.png -------------------------------------------------------------------------------- /docs/site/imgs/example-shopping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/example-shopping.png -------------------------------------------------------------------------------- /docs/site/imgs/hasMany-relation-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/hasMany-relation-example.png -------------------------------------------------------------------------------- /docs/site/imgs/hasMany-relation-graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/hasMany-relation-graph.png -------------------------------------------------------------------------------- /docs/site/imgs/hasManyThrough-relation-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/hasManyThrough-relation-example.png -------------------------------------------------------------------------------- /docs/site/imgs/hasOne-relation-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/hasOne-relation-example.png -------------------------------------------------------------------------------- /docs/site/imgs/hasOne-relation-graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/hasOne-relation-graph.png -------------------------------------------------------------------------------- /docs/site/imgs/interceptors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/interceptors.png -------------------------------------------------------------------------------- /docs/site/imgs/json_web_token_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/json_web_token_overview.png -------------------------------------------------------------------------------- /docs/site/imgs/key-concepts-overview-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/key-concepts-overview-diagram.png -------------------------------------------------------------------------------- /docs/site/imgs/lb3-req-res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb3-req-res.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4-high-level.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4-high-level.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4-req-res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4-req-res.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4_k8s_ibm_cloud_app_website_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4_k8s_ibm_cloud_app_website_1.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4_k8s_ibm_cloud_app_website_on_cloud_k8s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4_k8s_ibm_cloud_app_website_on_cloud_k8s.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4_k8s_ibm_cloud_cluster_access_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4_k8s_ibm_cloud_cluster_access_1.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4_k8s_ibm_cloud_container_registry_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4_k8s_ibm_cloud_container_registry_1.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4_k8s_ibm_cloud_k8s_dashboard_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4_k8s_ibm_cloud_k8s_dashboard_1.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4_k8s_ibm_cloud_k8s_dashboard_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4_k8s_ibm_cloud_k8s_dashboard_2.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4_k8s_ibm_cloud_k8s_dashboard_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4_k8s_ibm_cloud_k8s_dashboard_3.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4_k8s_ibm_cloud_k8s_dashboard_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4_k8s_ibm_cloud_k8s_dashboard_4.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4_k8s_ibm_cloud_kubernetes_cluster_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4_k8s_ibm_cloud_kubernetes_cluster_1.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4appsody_template_cluster_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4appsody_template_cluster_1.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4appsody_template_debug_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4appsody_template_debug_1.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4appsody_template_debug_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4appsody_template_debug_2.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4appsody_template_debug_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4appsody_template_debug_3.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4appsody_template_files_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4appsody_template_files_1.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4appsody_template_files_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4appsody_template_files_2.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4appsody_template_pods_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4appsody_template_pods_1.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4appsody_template_webpage_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4appsody_template_webpage_1.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4appsody_template_webpage_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4appsody_template_webpage_2.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4appsody_template_webpage_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4appsody_template_webpage_3.png -------------------------------------------------------------------------------- /docs/site/imgs/lb4appsody_template_webpage_cloud_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/lb4appsody_template_webpage_cloud_1.png -------------------------------------------------------------------------------- /docs/site/imgs/loopback-component.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/loopback-component.png -------------------------------------------------------------------------------- /docs/site/imgs/loopback-composition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/loopback-composition.png -------------------------------------------------------------------------------- /docs/site/imgs/loopback-context-hierarchy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/loopback-context-hierarchy.png -------------------------------------------------------------------------------- /docs/site/imgs/loopback-context.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/loopback-context.png -------------------------------------------------------------------------------- /docs/site/imgs/loopback-ecosystem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/loopback-ecosystem.png -------------------------------------------------------------------------------- /docs/site/imgs/loopback-example-soap-calculator_figure1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/loopback-example-soap-calculator_figure1.png -------------------------------------------------------------------------------- /docs/site/imgs/loopback-example-soap-calculator_figure2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/loopback-example-soap-calculator_figure2.png -------------------------------------------------------------------------------- /docs/site/imgs/loopback-example-soap-calculator_figure3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/loopback-example-soap-calculator_figure3.png -------------------------------------------------------------------------------- /docs/site/imgs/loopback-example-soap-calculator_figure4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/loopback-example-soap-calculator_figure4.png -------------------------------------------------------------------------------- /docs/site/imgs/loopback-extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/loopback-extension.png -------------------------------------------------------------------------------- /docs/site/imgs/loopback-ioc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/loopback-ioc.png -------------------------------------------------------------------------------- /docs/site/imgs/loopback-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/loopback-overview.png -------------------------------------------------------------------------------- /docs/site/imgs/loopback-stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/loopback-stack.png -------------------------------------------------------------------------------- /docs/site/imgs/middleware-classes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/middleware-classes.png -------------------------------------------------------------------------------- /docs/site/imgs/middleware-sequence.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/middleware-sequence.png -------------------------------------------------------------------------------- /docs/site/imgs/middleware.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/middleware.png -------------------------------------------------------------------------------- /docs/site/imgs/relation-inclusion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/relation-inclusion.png -------------------------------------------------------------------------------- /docs/site/imgs/repository.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/repository.png -------------------------------------------------------------------------------- /docs/site/imgs/req-res-high-level.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/req-res-high-level.png -------------------------------------------------------------------------------- /docs/site/imgs/sequence-details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/sequence-details.png -------------------------------------------------------------------------------- /docs/site/imgs/shopping-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/shopping-app.png -------------------------------------------------------------------------------- /docs/site/imgs/shopping-business-logic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/shopping-business-logic.png -------------------------------------------------------------------------------- /docs/site/imgs/shopping-example-model-relations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/shopping-example-model-relations.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_create_feature_branch_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_create_feature_branch_1.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_create_feature_branch_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_create_feature_branch_2.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_create_pr_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_create_pr_1.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_create_pr_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_create_pr_2.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_final_commit_ci_jobs_pass_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_final_commit_ci_jobs_pass_1.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_fork_main_repo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_fork_main_repo.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_git_cz_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_git_cz_1.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_my_forked_repo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_my_forked_repo.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_pr_review_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_pr_review_1.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_rebase_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_rebase_1.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_rebase_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_rebase_2.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_rebase_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_rebase_3.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_squash_commits_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_squash_commits_1.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_squash_commits_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_squash_commits_2.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_squash_commits_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_squash_commits_3.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_squash_commits_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_squash_commits_4.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_squash_commits_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_squash_commits_5.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_squash_commits_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_squash_commits_6.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_squash_commits_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_squash_commits_7.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_template_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_template_1.png -------------------------------------------------------------------------------- /docs/site/imgs/submit_pr_travis_ci_build_page_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/submit_pr_travis_ci_build_page_1.png -------------------------------------------------------------------------------- /docs/site/imgs/todo-list-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/todo-list-overview.png -------------------------------------------------------------------------------- /docs/site/imgs/todo-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/todo-overview.png -------------------------------------------------------------------------------- /docs/site/imgs/tutorials/access-control-migration/auth_example_authorization_casbin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/tutorials/access-control-migration/auth_example_authorization_casbin.png -------------------------------------------------------------------------------- /docs/site/imgs/tutorials/access-control-migration/auth_example_casbin_model_policy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/tutorials/access-control-migration/auth_example_casbin_model_policy.png -------------------------------------------------------------------------------- /docs/site/imgs/tutorials/access-control-migration/auth_example_get_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/tutorials/access-control-migration/auth_example_get_token.png -------------------------------------------------------------------------------- /docs/site/imgs/tutorials/access-control-migration/auth_example_login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/tutorials/access-control-migration/auth_example_login.png -------------------------------------------------------------------------------- /docs/site/imgs/tutorials/access-control-migration/auth_example_mechanism.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/tutorials/access-control-migration/auth_example_mechanism.png -------------------------------------------------------------------------------- /docs/site/imgs/tutorials/access-control-migration/auth_example_scenario_model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/tutorials/access-control-migration/auth_example_scenario_model.png -------------------------------------------------------------------------------- /docs/site/imgs/tutorials/access-control-migration/auth_example_set_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/tutorials/access-control-migration/auth_example_set_token.png -------------------------------------------------------------------------------- /docs/site/imgs/tutorials/access-control-migration/auth_example_withdraw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/tutorials/access-control-migration/auth_example_withdraw.png -------------------------------------------------------------------------------- /docs/site/imgs/tutorials/access-control-migration/auth_example_withdraw_401.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/tutorials/access-control-migration/auth_example_withdraw_401.png -------------------------------------------------------------------------------- /docs/site/imgs/tutorials/authentication-migration/lb3-authentication-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/tutorials/authentication-migration/lb3-authentication-user.png -------------------------------------------------------------------------------- /docs/site/imgs/tutorials/authentication-migration/lb4-authentication-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/tutorials/authentication-migration/lb4-authentication-user.png -------------------------------------------------------------------------------- /docs/site/imgs/tutorials/core/greeters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/tutorials/core/greeters.png -------------------------------------------------------------------------------- /docs/site/imgs/tutorials/core/greeting-app-boot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/tutorials/core/greeting-app-boot.png -------------------------------------------------------------------------------- /docs/site/imgs/tutorials/core/greeting-app-project-layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/tutorials/core/greeting-app-project-layout.png -------------------------------------------------------------------------------- /docs/site/imgs/tutorials/core/greeting-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/imgs/tutorials/core/greeting-app.png -------------------------------------------------------------------------------- /docs/site/kv-redis-connector.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Redis key-value connector' 3 | lang: en 4 | layout: readme 5 | source: loopback-connector-kv-redis 6 | keywords: LoopBack, connector 7 | tags: [connectors, readme] 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/kv-redis-connector.html 10 | summary: NOTE: This documentation page is an incomplete work in progress. 11 | --- 12 | -------------------------------------------------------------------------------- /docs/site/todo-list-tutorial.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'TodoList tutorial' 4 | keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI, Tutorial 5 | layout: readme 6 | source: loopback-next 7 | file: examples/todo-list/README.md 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/todo-list-tutorial.html 10 | summary: LoopBack 4 TodoList Application Tutorial 11 | --- 12 | -------------------------------------------------------------------------------- /docs/site/todo-tutorial.md: -------------------------------------------------------------------------------- 1 | --- 2 | lang: en 3 | title: 'Todo tutorial' 4 | keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI, Tutorial 5 | layout: readme 6 | source: loopback-next 7 | file: examples/todo/README.md 8 | sidebar: lb4_sidebar 9 | permalink: /doc/en/lb4/todo-tutorial.html 10 | summary: LoopBack 4 Todo Application Tutorial 11 | --- 12 | -------------------------------------------------------------------------------- /docs/site/tutorials/todo-list/todo-list-tutorial-dbtables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/docs/site/tutorials/todo-list/todo-list-tutorial-dbtables.png -------------------------------------------------------------------------------- /docs/spikes/README.md: -------------------------------------------------------------------------------- 1 | # Spikes 2 | 3 | This folder preserves documentation created as part of our spike tasks, where we 4 | are exploring the landscape to better understand the problem at hand. 5 | 6 | Please use the following file naming convention: 7 | 8 | - `YYYY-MM-topic-in-kebab-case.md` 9 | -------------------------------------------------------------------------------- /examples/access-control-migration/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | /dist 4 | # Cache used by TypeScript's incremental build 5 | *.tsbuildinfo 6 | -------------------------------------------------------------------------------- /examples/access-control-migration/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/access-control-migration/.eslintrc.js: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-access-control-migration 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | module.exports = { 7 | extends: ['@loopback/eslint-config'], 8 | }; 9 | -------------------------------------------------------------------------------- /examples/access-control-migration/.npmignore: -------------------------------------------------------------------------------- 1 | # Exclude *.tsbuildinfo - cache for tsc incremental builds 2 | *.tsbuildinfo 3 | -------------------------------------------------------------------------------- /examples/access-control-migration/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/access-control-migration/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/access-control-migration/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/access-control-migration/fixtures/casbin/rbac_model.conf: -------------------------------------------------------------------------------- 1 | [request_definition] 2 | r = sub, obj, act 3 | 4 | [policy_definition] 5 | p = sub, obj, act 6 | 7 | [role_definition] 8 | g = _, _ 9 | 10 | [policy_effect] 11 | e = some(where (p.eft == allow)) 12 | 13 | [matchers] 14 | m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act -------------------------------------------------------------------------------- /examples/access-control-migration/fixtures/casbin/rbac_policy.admin.csv: -------------------------------------------------------------------------------- 1 | p, admin, project*, view-all 2 | p, admin, project1, donate 3 | p, admin, project2, donate 4 | g, u3, admin -------------------------------------------------------------------------------- /examples/access-control-migration/fixtures/casbin/rbac_policy.owner.csv: -------------------------------------------------------------------------------- 1 | p, p1_owner, project1, show-balance 2 | p, p1_owner, project1, donate 3 | p, p1_owner, project1, withdraw 4 | g, u1, p1_owner 5 | p, p2_owner, project2, show-balance 6 | p, p2_owner, project2, donate 7 | p, p2_owner, project2, withdraw 8 | g, u2, p2_owner 9 | -------------------------------------------------------------------------------- /examples/access-control-migration/fixtures/casbin/rbac_policy.team_member.csv: -------------------------------------------------------------------------------- 1 | p, p1_team, project1, show-balance 2 | p, p1_team, project1, donate 3 | g, u1, p1_team 4 | g, u2, p1_team 5 | p, p2_team, project2, show-balance 6 | p, p2_team, project2, donate 7 | g, u2, p2_team -------------------------------------------------------------------------------- /examples/access-control-migration/src/components/casbin-authorization/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-access-control-migration 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './casbin-authorization-component'; 7 | export * from './services'; 8 | -------------------------------------------------------------------------------- /examples/access-control-migration/src/controllers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-access-control-migration 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './project.controller'; 7 | export * from './user.controller'; 8 | -------------------------------------------------------------------------------- /examples/access-control-migration/src/datasources/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-access-control-migration 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './db.datasource'; 7 | -------------------------------------------------------------------------------- /examples/access-control-migration/src/keys.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-access-control-migration 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | import {BindingKey} from '@loopback/core'; 7 | 8 | export const RESOURCE_ID = BindingKey.create('resourceId'); 9 | -------------------------------------------------------------------------------- /examples/access-control-migration/src/observers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-access-control-migration 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './sample.observer'; 7 | -------------------------------------------------------------------------------- /examples/access-control-migration/src/sequence.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-access-control-migration 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | import {MiddlewareSequence} from '@loopback/rest'; 7 | 8 | export class MySequence extends MiddlewareSequence {} 9 | -------------------------------------------------------------------------------- /examples/binding-resolution/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/binding-resolution/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | scripts-prepend-node-path=true 3 | -------------------------------------------------------------------------------- /examples/binding-resolution/binding-resolution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/examples/binding-resolution/binding-resolution.png -------------------------------------------------------------------------------- /examples/binding-resolution/src/__tests__/README.md: -------------------------------------------------------------------------------- 1 | # Tests 2 | 3 | Please place your tests in this folder. 4 | -------------------------------------------------------------------------------- /examples/binding-resolution/src/controllers/README.md: -------------------------------------------------------------------------------- 1 | # Controllers 2 | 3 | This directory contains source files for the controllers exported by this app. 4 | 5 | To add a new empty controller, type in `lb4 controller []` from the 6 | command-line of your application's root directory. 7 | 8 | For more information, please visit 9 | [Controller generator](http://loopback.io/doc/en/lb4/Controller-generator.html). 10 | -------------------------------------------------------------------------------- /examples/binding-resolution/src/controllers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-binding-resolution 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './ping.controller'; 7 | -------------------------------------------------------------------------------- /examples/binding-resolution/src/interceptors/index.ts: -------------------------------------------------------------------------------- 1 | export * from './spy.interceptor'; 2 | -------------------------------------------------------------------------------- /examples/binding-resolution/src/sequence.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-binding-resolution 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | import {MiddlewareSequence} from '@loopback/rest'; 7 | 8 | export class MySequence extends MiddlewareSequence {} 9 | -------------------------------------------------------------------------------- /examples/binding-resolution/src/services/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-binding-resolution 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './counter.service'; 7 | export * from './logger.service'; 8 | -------------------------------------------------------------------------------- /examples/context/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/context/.npmignore: -------------------------------------------------------------------------------- 1 | # Exclude *.tsbuildinfo - cache for tsc incremental builds 2 | *.tsbuildinfo 3 | -------------------------------------------------------------------------------- /examples/context/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/context/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/context/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/express-composition/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/express-composition/.eslintrc.js: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-express-composition 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | module.exports = { 7 | extends: ['@loopback/eslint-config'], 8 | }; 9 | -------------------------------------------------------------------------------- /examples/express-composition/.npmignore: -------------------------------------------------------------------------------- 1 | # Exclude *.tsbuildinfo - cache for tsc incremental builds 2 | *.tsbuildinfo 3 | -------------------------------------------------------------------------------- /examples/express-composition/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/express-composition/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/express-composition/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/express-composition/data/ds.json: -------------------------------------------------------------------------------- 1 | { 2 | "ids": { 3 | "Note": 3 4 | }, 5 | "models": { 6 | "Note": { 7 | "1": "{\"title\":\"Things I need to buy\",\"content\":\"milk, cereal, and waffles\",\"id\":1}", 8 | "2": "{\"title\":\"Great frameworks\",\"content\":\"LoopBack is a great framework\",\"id\":2}" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/express-composition/src/__tests__/mocha.opts: -------------------------------------------------------------------------------- 1 | --recursive 2 | --require source-map-support/register 3 | -------------------------------------------------------------------------------- /examples/express-composition/src/controllers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/example-express-composition 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './note.controller'; 7 | -------------------------------------------------------------------------------- /examples/express-composition/src/datasources/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/example-express-composition 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './ds.datasource'; 7 | -------------------------------------------------------------------------------- /examples/express-composition/src/models/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/example-express-composition 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './note.model'; 7 | -------------------------------------------------------------------------------- /examples/express-composition/src/observers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/example-express-composition 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './hello.observer'; 7 | -------------------------------------------------------------------------------- /examples/express-composition/src/repositories/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/example-express-composition 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './note.repository'; 7 | -------------------------------------------------------------------------------- /examples/express-composition/src/sequence.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/example-express-composition 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | import {MiddlewareSequence} from '@loopback/rest'; 7 | 8 | export class MySequence extends MiddlewareSequence {} 9 | -------------------------------------------------------------------------------- /examples/file-transfer/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/file-transfer/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/file-transfer/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/file-transfer/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/file-transfer/fixtures/assets/index.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | Test Page 4 |
5 | 6 |

Hello, World!

7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/file-transfer/fixtures/file-upload-test.txt: -------------------------------------------------------------------------------- 1 | This file is used for file-upload acceptance test. 2 | -------------------------------------------------------------------------------- /examples/file-transfer/src/__tests__/README.md: -------------------------------------------------------------------------------- 1 | # Tests 2 | 3 | Please place your tests in this folder. 4 | -------------------------------------------------------------------------------- /examples/file-transfer/src/controllers/README.md: -------------------------------------------------------------------------------- 1 | # Controllers 2 | 3 | This directory contains source files for the controllers exported by this app. 4 | 5 | To add a new empty controller, type in `lb4 controller []` from the 6 | command-line of your application's root directory. 7 | 8 | For more information, please visit 9 | [Controller generator](http://loopback.io/doc/en/lb4/Controller-generator.html). 10 | -------------------------------------------------------------------------------- /examples/file-transfer/src/controllers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-file-transfer 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './file-download.controller'; 7 | export * from './file-upload.controller'; 8 | -------------------------------------------------------------------------------- /examples/file-transfer/src/sequence.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-file-transfer 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | import {MiddlewareSequence} from '@loopback/rest'; 7 | 8 | export class MySequence extends MiddlewareSequence {} 9 | -------------------------------------------------------------------------------- /examples/file-transfer/src/services/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-file-transfer 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './file-upload.service'; 7 | -------------------------------------------------------------------------------- /examples/file-transfer/src/types.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-file-transfer 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | import {RequestHandler} from 'express-serve-static-core'; 7 | 8 | export type FileUploadHandler = RequestHandler; 9 | -------------------------------------------------------------------------------- /examples/file-transfer/upload-download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/examples/file-transfer/upload-download.png -------------------------------------------------------------------------------- /examples/graphql/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/graphql/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/graphql/graphql-demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/examples/graphql/graphql-demo.png -------------------------------------------------------------------------------- /examples/graphql/src/datasources/README.md: -------------------------------------------------------------------------------- 1 | # Datasources 2 | 3 | This directory contains config for datasources used by this app. 4 | -------------------------------------------------------------------------------- /examples/graphql/src/datasources/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-graphql 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './recipes.datasource'; 7 | -------------------------------------------------------------------------------- /examples/graphql/src/repositories/README.md: -------------------------------------------------------------------------------- 1 | # Repositories 2 | 3 | This directory contains code for repositories provided by this app. 4 | -------------------------------------------------------------------------------- /examples/graphql/src/repositories/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-graphql 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './recipe.repository'; 7 | -------------------------------------------------------------------------------- /examples/greeter-extension/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/greeter-extension/.npmignore: -------------------------------------------------------------------------------- 1 | # Exclude *.tsbuildinfo - cache for tsc incremental builds 2 | *.tsbuildinfo 3 | -------------------------------------------------------------------------------- /examples/greeter-extension/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/greeter-extension/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/greeter-extension/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/greeter-extension/greeters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/examples/greeter-extension/greeters.png -------------------------------------------------------------------------------- /examples/greeting-app/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/greeting-app/.npmignore: -------------------------------------------------------------------------------- 1 | # Exclude *.tsbuildinfo - cache for tsc incremental builds 2 | *.tsbuildinfo 3 | -------------------------------------------------------------------------------- /examples/greeting-app/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/greeting-app/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/greeting-app/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/greeting-app/greeting-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/examples/greeting-app/greeting-app.png -------------------------------------------------------------------------------- /examples/greeting-app/src/controllers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/example-greeting-app 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './greeting.controller'; 7 | -------------------------------------------------------------------------------- /examples/greeting-app/src/interceptors/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/example-greeting-app 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './caching.interceptor'; 7 | -------------------------------------------------------------------------------- /examples/greeting-app/src/observers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/example-greeting-app 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './cache.observer'; 7 | -------------------------------------------------------------------------------- /examples/hello-world/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/hello-world/.npmignore: -------------------------------------------------------------------------------- 1 | # Exclude *.tsbuildinfo - cache for tsc incremental builds 2 | *.tsbuildinfo 3 | -------------------------------------------------------------------------------- /examples/hello-world/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/hello-world/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/hello-world/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/lb3-application/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/lb3-application/.npmignore: -------------------------------------------------------------------------------- 1 | # Exclude *.tsbuildinfo - cache for tsc incremental builds 2 | *.tsbuildinfo 3 | -------------------------------------------------------------------------------- /examples/lb3-application/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/lb3-application/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/lb3-application/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/lb3-application/lb3app/server/datasources.json: -------------------------------------------------------------------------------- 1 | { 2 | "db": { 3 | "name": "db", 4 | "connector": "memory" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/lb3-application/lb3app/server/middleware.json: -------------------------------------------------------------------------------- 1 | { 2 | "routes": { 3 | "loopback#rest": { 4 | "paths": [ 5 | "${restApiRoot}" 6 | ] 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /examples/lb3-application/public/lb3-index.html: -------------------------------------------------------------------------------- 1 | LoopBack 2 | 3 |

LoopBack Rocks!

4 |

Hello World...

5 | 6 | -------------------------------------------------------------------------------- /examples/lb3-application/src/sequence.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/example-lb3-application 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | import {MiddlewareSequence} from '@loopback/rest'; 7 | 8 | export class MySequence extends MiddlewareSequence {} 9 | -------------------------------------------------------------------------------- /examples/log-extension/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/log-extension/.npmignore: -------------------------------------------------------------------------------- 1 | # Exclude *.tsbuildinfo - cache for tsc incremental builds 2 | *.tsbuildinfo 3 | -------------------------------------------------------------------------------- /examples/log-extension/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/log-extension/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/log-extension/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/log-extension/src/decorators/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018. All Rights Reserved. 2 | // Node module: @loopback/example-log-extension 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './log.decorator'; 7 | -------------------------------------------------------------------------------- /examples/log-extension/src/mixins/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018. All Rights Reserved. 2 | // Node module: @loopback/example-log-extension 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './log.mixin'; 7 | -------------------------------------------------------------------------------- /examples/log-extension/src/providers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018. All Rights Reserved. 2 | // Node module: @loopback/example-log-extension 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './log-action.provider'; 7 | export * from './timer.provider'; 8 | -------------------------------------------------------------------------------- /examples/metrics-prometheus/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/metrics-prometheus/.npmignore: -------------------------------------------------------------------------------- 1 | # Exclude *.tsbuildinfo - cache for tsc incremental builds 2 | *.tsbuildinfo 3 | -------------------------------------------------------------------------------- /examples/metrics-prometheus/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/metrics-prometheus/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/metrics-prometheus/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/metrics-prometheus/prometheus-demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/examples/metrics-prometheus/prometheus-demo.png -------------------------------------------------------------------------------- /examples/metrics-prometheus/src/controllers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/example-metrics-prometheus 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './greeting.controller'; 7 | -------------------------------------------------------------------------------- /examples/metrics-prometheus/src/services/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/example-metrics-prometheus 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './greeting.service'; 7 | -------------------------------------------------------------------------------- /examples/multi-tenancy/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | /dist 4 | # Cache used by TypeScript's incremental build 5 | *.tsbuildinfo 6 | -------------------------------------------------------------------------------- /examples/multi-tenancy/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/multi-tenancy/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | coverage/ 4 | -------------------------------------------------------------------------------- /examples/multi-tenancy/.eslintrc.js: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-multi-tenancy 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | module.exports = { 7 | extends: '@loopback/eslint-config', 8 | }; 9 | -------------------------------------------------------------------------------- /examples/multi-tenancy/.mocharc.json: -------------------------------------------------------------------------------- 1 | { 2 | "recursive": true, 3 | "require": "source-map-support/register" 4 | } 5 | -------------------------------------------------------------------------------- /examples/multi-tenancy/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/multi-tenancy/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/multi-tenancy/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/multi-tenancy/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "@loopback/cli": { 3 | "version": "2.3.0" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /examples/multi-tenancy/src/__tests__/README.md: -------------------------------------------------------------------------------- 1 | # Tests 2 | 3 | Please place your tests in this folder. 4 | -------------------------------------------------------------------------------- /examples/multi-tenancy/src/controllers/README.md: -------------------------------------------------------------------------------- 1 | # Controllers 2 | 3 | This directory contains source files for the controllers exported by this app. 4 | 5 | To add a new empty controller, type in `lb4 controller []` from the 6 | command-line of your application's root directory. 7 | 8 | For more information, please visit 9 | [Controller generator](http://loopback.io/doc/en/lb4/Controller-generator.html). 10 | -------------------------------------------------------------------------------- /examples/multi-tenancy/src/controllers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-multi-tenancy 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './ping.controller'; 7 | export * from './user.controller'; 8 | -------------------------------------------------------------------------------- /examples/multi-tenancy/src/datasources/README.md: -------------------------------------------------------------------------------- 1 | # Datasources 2 | 3 | This directory contains config for datasources used by this app. 4 | -------------------------------------------------------------------------------- /examples/multi-tenancy/src/datasources/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-multi-tenancy 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './db.datasource'; 7 | export * from './db1.datasource'; 8 | export * from './db2.datasource'; 9 | -------------------------------------------------------------------------------- /examples/multi-tenancy/src/models/README.md: -------------------------------------------------------------------------------- 1 | # Models 2 | 3 | This directory contains code for models provided by this app. 4 | -------------------------------------------------------------------------------- /examples/multi-tenancy/src/models/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-multi-tenancy 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './user.model'; 7 | -------------------------------------------------------------------------------- /examples/multi-tenancy/src/multi-tenancy/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-multi-tenancy 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './keys'; 7 | export * from './middleware/multi-tenancy-middleware.provider'; 8 | export * from './types'; 9 | -------------------------------------------------------------------------------- /examples/multi-tenancy/src/repositories/README.md: -------------------------------------------------------------------------------- 1 | # Repositories 2 | 3 | This directory contains code for repositories provided by this app. 4 | -------------------------------------------------------------------------------- /examples/multi-tenancy/src/repositories/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-multi-tenancy 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './user.repository'; 7 | -------------------------------------------------------------------------------- /examples/multi-tenancy/src/sequence.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-multi-tenancy 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | import {MiddlewareSequence} from '@loopback/rest'; 7 | 8 | export class MySequence extends MiddlewareSequence {} 9 | -------------------------------------------------------------------------------- /examples/passport-login/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/passport-login/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | coverage/ 4 | -------------------------------------------------------------------------------- /examples/passport-login/.npmignore: -------------------------------------------------------------------------------- 1 | # Exclude *.tsbuildinfo - cache for tsc incremental builds 2 | *.tsbuildinfo 3 | -------------------------------------------------------------------------------- /examples/passport-login/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/passport-login/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/passport-login/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/passport-login/src/controllers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-passport-login 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './oauth2.controller'; 7 | export * from './ping.controller'; 8 | export * from './user.controller'; 9 | -------------------------------------------------------------------------------- /examples/passport-login/src/datasources/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-passport-login 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './db.datasource'; 7 | -------------------------------------------------------------------------------- /examples/passport-login/src/model-endpoints/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-passport-login 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './user.rest-config'; 7 | -------------------------------------------------------------------------------- /examples/passport-login/src/models/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-passport-login 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './user-credentials.model'; 7 | export * from './user-identity.model'; 8 | export * from './user.model'; 9 | -------------------------------------------------------------------------------- /examples/passport-login/src/observers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-passport-login 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './wire.observer'; 7 | -------------------------------------------------------------------------------- /examples/passport-login/src/repositories/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-passport-login 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './user.repository'; 7 | -------------------------------------------------------------------------------- /examples/passport-login/src/services/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-passport-login 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './keys'; 7 | export * from './user.service'; 8 | -------------------------------------------------------------------------------- /examples/passport-login/web-application/views/layouts/layout.jade: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang="en") 3 | include ../partials/head 4 | body(style="padding-top: 70px; padding-bottom: 50px;") 5 | include ../partials/navigation 6 | include ../partials/banner 7 | include ../partials/footer 8 | block scripts 9 | -------------------------------------------------------------------------------- /examples/passport-login/web-application/views/pages/loginProfiles.jade: -------------------------------------------------------------------------------- 1 | extends ../layouts/layout 2 | 3 | block content 4 | h2 Third Party Profile(s) 5 | p.small 6 | if user.profiles && user.profiles.length !== 0 7 | each val in user.profiles 8 | h4= val.provider + ':' 9 | p.small= JSON.stringify(val) 10 | else 11 | | NONE 12 | -------------------------------------------------------------------------------- /examples/passport-login/web-application/views/partials/banner.jade: -------------------------------------------------------------------------------- 1 | .container 2 | if user && user.username 3 | .row 4 | .col-md-12 5 | .well 6 | h1 User Logged in! 7 | h3 Hello: #{user.username} 8 | p.small User Id: #{user.id} 9 | p.small Email: #{user.email} 10 | block content 11 | -------------------------------------------------------------------------------- /examples/references-many/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | /dist 4 | # Cache used by TypeScript's incremental build 5 | *.tsbuildinfo 6 | -------------------------------------------------------------------------------- /examples/references-many/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/references-many/.eslintrc.js: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-references-many 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | module.exports = { 7 | extends: ['@loopback/eslint-config'], 8 | }; 9 | -------------------------------------------------------------------------------- /examples/references-many/.npmignore: -------------------------------------------------------------------------------- 1 | # Exclude *.tsbuildinfo - cache for tsc incremental builds 2 | *.tsbuildinfo 3 | -------------------------------------------------------------------------------- /examples/references-many/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/references-many/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/references-many/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/references-many/src/controllers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2022. All Rights Reserved. 2 | // Node module: @loopback/example-references-many 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './account.controller'; 7 | export * from './customer.controller'; 8 | -------------------------------------------------------------------------------- /examples/references-many/src/datasources/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020 All Rights Reserved. 2 | // Node module: @loopback/example-references-many 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './db.datasource'; 7 | -------------------------------------------------------------------------------- /examples/references-many/src/models/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020 All Rights Reserved. 2 | // Node module: @loopback/example-references-many 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './account.model'; 7 | export * from './customer.model'; 8 | -------------------------------------------------------------------------------- /examples/references-many/src/repositories/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2022. All Rights Reserved. 2 | // Node module: @loopback/example-references-many 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './account.repository'; 7 | export * from './customer.repository'; 8 | -------------------------------------------------------------------------------- /examples/references-many/src/sequence.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2022. All Rights Reserved. 2 | // Node module: @loopback/example-references-many 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | import {MiddlewareSequence} from '@loopback/rest'; 7 | 8 | export class MySequence extends MiddlewareSequence {} 9 | -------------------------------------------------------------------------------- /examples/rest-crud/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | /dist 4 | # Cache used by TypeScript's incremental build 5 | *.tsbuildinfo 6 | -------------------------------------------------------------------------------- /examples/rest-crud/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/rest-crud/.eslintrc.js: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-rest-crud 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | module.exports = { 7 | extends: ['@loopback/eslint-config'], 8 | }; 9 | -------------------------------------------------------------------------------- /examples/rest-crud/.npmignore: -------------------------------------------------------------------------------- 1 | # Exclude *.tsbuildinfo - cache for tsc incremental builds 2 | *.tsbuildinfo 3 | -------------------------------------------------------------------------------- /examples/rest-crud/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/rest-crud/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/rest-crud/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/rest-crud/src/datasources/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-rest-crud 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './db.datasource'; 7 | -------------------------------------------------------------------------------- /examples/rest-crud/src/models/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-rest-crud 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './todo.model'; 7 | -------------------------------------------------------------------------------- /examples/rest-crud/src/sequence.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-rest-crud 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | import {MiddlewareSequence} from '@loopback/rest'; 7 | 8 | export class MySequence extends MiddlewareSequence {} 9 | -------------------------------------------------------------------------------- /examples/rpc-server/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/rpc-server/.npmignore: -------------------------------------------------------------------------------- 1 | # Exclude *.tsbuildinfo - cache for tsc incremental builds 2 | *.tsbuildinfo 3 | -------------------------------------------------------------------------------- /examples/rpc-server/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/rpc-server/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/rpc-server/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/rpc-server/src/__tests__/README.md: -------------------------------------------------------------------------------- 1 | # Tests 2 | 3 | Please place your tests in this folder. 4 | -------------------------------------------------------------------------------- /examples/rpc-server/src/controllers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018. All Rights Reserved. 2 | // Node module: @loopback/example-rpc-server 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './greet.controller'; 7 | -------------------------------------------------------------------------------- /examples/rpc-server/src/models/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018. All Rights Reserved. 2 | // Node module: @loopback/example-rpc-server 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './person.model'; 7 | -------------------------------------------------------------------------------- /examples/rpc-server/src/models/person.model.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018. All Rights Reserved. 2 | // Node module: @loopback/example-rpc-server 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | // Note that this can also be a class! 7 | export type Person = { 8 | name?: string; 9 | hobby?: string; 10 | }; 11 | -------------------------------------------------------------------------------- /examples/soap-calculator/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/soap-calculator/.npmignore: -------------------------------------------------------------------------------- 1 | # Exclude *.tsbuildinfo - cache for tsc incremental builds 2 | *.tsbuildinfo 3 | -------------------------------------------------------------------------------- /examples/soap-calculator/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/soap-calculator/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/soap-calculator/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/soap-calculator/.yo-rc.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /examples/soap-calculator/src/controllers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/example-soap-calculator 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './calculator.controller'; 7 | -------------------------------------------------------------------------------- /examples/soap-calculator/src/datasources/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/example-soap-calculator 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './calculator.datasource'; 7 | -------------------------------------------------------------------------------- /examples/soap-calculator/src/sequence.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/example-soap-calculator 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | import {MiddlewareSequence} from '@loopback/rest'; 7 | 8 | export class MySequence extends MiddlewareSequence {} 9 | -------------------------------------------------------------------------------- /examples/soap-calculator/src/services/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/example-soap-calculator 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './calculator.service'; 7 | -------------------------------------------------------------------------------- /examples/socketio/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/socketio/.mocharc.json: -------------------------------------------------------------------------------- 1 | { 2 | "recursive": true, 3 | "require": "source-map-support/register" 4 | } 5 | -------------------------------------------------------------------------------- /examples/socketio/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | scripts-prepend-node-path=true 3 | -------------------------------------------------------------------------------- /examples/socketio/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/socketio/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/socketio/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "@loopback/cli": { 3 | "packageManager": "npm", 4 | "version": "2.15.1" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/socketio/src/__tests__/README.md: -------------------------------------------------------------------------------- 1 | # Tests 2 | 3 | Please place your tests in this folder. 4 | -------------------------------------------------------------------------------- /examples/socketio/src/controllers/README.md: -------------------------------------------------------------------------------- 1 | # Controllers 2 | 3 | This directory contains source files for the controllers exported by this app. 4 | 5 | To add a new empty controller, type in `lb4 controller []` from the 6 | command-line of your application's root directory. 7 | 8 | For more information, please visit 9 | [Controller generator](http://loopback.io/doc/en/lb4/Controller-generator.html). 10 | -------------------------------------------------------------------------------- /examples/socketio/src/controllers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-socketio 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './socketio.controller'; 7 | -------------------------------------------------------------------------------- /examples/socketio/src/datasources/README.md: -------------------------------------------------------------------------------- 1 | # Datasources 2 | 3 | This directory contains config for datasources used by this app. 4 | -------------------------------------------------------------------------------- /examples/socketio/src/models/README.md: -------------------------------------------------------------------------------- 1 | # Models 2 | 3 | This directory contains code for models provided by this app. 4 | -------------------------------------------------------------------------------- /examples/socketio/src/repositories/README.md: -------------------------------------------------------------------------------- 1 | # Repositories 2 | 3 | This directory contains code for repositories provided by this app. 4 | -------------------------------------------------------------------------------- /examples/todo-jwt/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | /dist 4 | # Cache used by TypeScript's incremental build 5 | *.tsbuildinfo 6 | -------------------------------------------------------------------------------- /examples/todo-jwt/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/todo-jwt/.eslintrc.js: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-todo-jwt 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | module.exports = { 7 | extends: ['@loopback/eslint-config'], 8 | }; 9 | -------------------------------------------------------------------------------- /examples/todo-jwt/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/todo-jwt/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/todo-jwt/src/controllers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-todo-jwt 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './todo.controller'; 7 | export * from './user.controller'; 8 | -------------------------------------------------------------------------------- /examples/todo-jwt/src/datasources/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-todo-jwt 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './db.datasource'; 7 | -------------------------------------------------------------------------------- /examples/todo-jwt/src/models/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-todo-jwt 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './todo.model'; 7 | -------------------------------------------------------------------------------- /examples/todo-jwt/src/repositories/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-todo-jwt 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './todo.repository'; 7 | -------------------------------------------------------------------------------- /examples/todo-jwt/src/sequence.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-todo-jwt 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | import {MiddlewareSequence} from '@loopback/rest'; 7 | 8 | export class MySequence extends MiddlewareSequence {} 9 | -------------------------------------------------------------------------------- /examples/todo-list/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | /dist 4 | # Cache used by TypeScript's incremental build 5 | *.tsbuildinfo 6 | -------------------------------------------------------------------------------- /examples/todo-list/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/todo-list/.eslintrc.js: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-todo-list 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | module.exports = { 7 | extends: ['@loopback/eslint-config'], 8 | }; 9 | -------------------------------------------------------------------------------- /examples/todo-list/.npmignore: -------------------------------------------------------------------------------- 1 | # Exclude *.tsbuildinfo - cache for tsc incremental builds 2 | *.tsbuildinfo 3 | -------------------------------------------------------------------------------- /examples/todo-list/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/todo-list/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/todo-list/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/todo-list/imgs/todo-list-overview.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/examples/todo-list/imgs/todo-list-overview.PNG -------------------------------------------------------------------------------- /examples/todo-list/src/datasources/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020 All Rights Reserved. 2 | // Node module: @loopback/example-todo-list 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './db.datasource'; 7 | -------------------------------------------------------------------------------- /examples/todo-list/src/models/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020 All Rights Reserved. 2 | // Node module: @loopback/example-todo-list 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './todo-list-image.model'; 7 | export * from './todo-list.model'; 8 | export * from './todo.model'; 9 | -------------------------------------------------------------------------------- /examples/todo-list/src/repositories/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/example-todo-list 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './todo-list-image.repository'; 7 | export * from './todo-list.repository'; 8 | export * from './todo.repository'; 9 | -------------------------------------------------------------------------------- /examples/todo-list/src/sequence.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/example-todo-list 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | import {MiddlewareSequence} from '@loopback/rest'; 7 | 8 | export class MySequence extends MiddlewareSequence {} 9 | -------------------------------------------------------------------------------- /examples/todo/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | /dist 4 | # Cache used by TypeScript's incremental build 5 | *.tsbuildinfo 6 | -------------------------------------------------------------------------------- /examples/todo/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/todo/.eslintrc.js: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-todo 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | module.exports = { 7 | extends: ['@loopback/eslint-config'], 8 | }; 9 | -------------------------------------------------------------------------------- /examples/todo/.npmignore: -------------------------------------------------------------------------------- 1 | # Exclude *.tsbuildinfo - cache for tsc incremental builds 2 | *.tsbuildinfo 3 | -------------------------------------------------------------------------------- /examples/todo/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/todo/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/todo/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/todo/src/controllers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/example-todo 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './todo.controller'; 7 | -------------------------------------------------------------------------------- /examples/todo/src/datasources/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/example-todo 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './db.datasource'; 7 | export * from './geocoder.datasource'; 8 | -------------------------------------------------------------------------------- /examples/todo/src/models/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/example-todo 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './todo.model'; 7 | -------------------------------------------------------------------------------- /examples/todo/src/repositories/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/example-todo 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './todo.repository'; 7 | -------------------------------------------------------------------------------- /examples/todo/src/sequence.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/example-todo 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | import {MiddlewareSequence} from '@loopback/rest'; 7 | 8 | export class MySequence extends MiddlewareSequence {} 9 | -------------------------------------------------------------------------------- /examples/todo/src/services/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/example-todo 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './geocoder.service'; 7 | -------------------------------------------------------------------------------- /examples/validation-app/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/validation-app/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | coverage/ 4 | -------------------------------------------------------------------------------- /examples/validation-app/.eslintrc.js: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-validation-app 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | module.exports = { 7 | extends: '@loopback/eslint-config', 8 | }; 9 | -------------------------------------------------------------------------------- /examples/validation-app/.mocharc.json: -------------------------------------------------------------------------------- 1 | { 2 | "recursive": true, 3 | "require": "source-map-support/register" 4 | } 5 | -------------------------------------------------------------------------------- /examples/validation-app/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/validation-app/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /examples/validation-app/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /examples/validation-app/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "@loopback/cli": { 3 | "version": "2.0.1" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /examples/validation-app/src/__tests__/README.md: -------------------------------------------------------------------------------- 1 | # Tests 2 | 3 | Please place your tests in this folder. 4 | -------------------------------------------------------------------------------- /examples/validation-app/src/controllers/README.md: -------------------------------------------------------------------------------- 1 | # Controllers 2 | 3 | This directory contains source files for the controllers exported by this app. 4 | 5 | To add a new empty controller, type in `lb4 controller []` from the 6 | command-line of your application's root directory. 7 | 8 | For more information, please visit 9 | [Controller generator](http://loopback.io/doc/en/lb4/Controller-generator.html). 10 | -------------------------------------------------------------------------------- /examples/validation-app/src/controllers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-validation-app 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './coffee-shop.controller'; 7 | -------------------------------------------------------------------------------- /examples/validation-app/src/datasources/README.md: -------------------------------------------------------------------------------- 1 | # Datasources 2 | 3 | This directory contains config for datasources used by this app. 4 | -------------------------------------------------------------------------------- /examples/validation-app/src/datasources/ds.datasource.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ds", 3 | "connector": "memory", 4 | "localStorage": "", 5 | "file": "" 6 | } 7 | -------------------------------------------------------------------------------- /examples/validation-app/src/datasources/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-validation-app 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './ds.datasource'; 7 | -------------------------------------------------------------------------------- /examples/validation-app/src/interceptors/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-validation-app 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './validate-phone-num.interceptor'; 7 | -------------------------------------------------------------------------------- /examples/validation-app/src/models/README.md: -------------------------------------------------------------------------------- 1 | # Models 2 | 3 | This directory contains code for models provided by this app. 4 | -------------------------------------------------------------------------------- /examples/validation-app/src/models/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-validation-app 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './coffee-shop.model'; 7 | -------------------------------------------------------------------------------- /examples/validation-app/src/repositories/README.md: -------------------------------------------------------------------------------- 1 | # Repositories 2 | 3 | This directory contains code for repositories provided by this app. 4 | -------------------------------------------------------------------------------- /examples/validation-app/src/repositories/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-validation-app 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './coffee-shop.repository'; 7 | -------------------------------------------------------------------------------- /examples/validation-app/src/sequence.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-validation-app 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | import {MiddlewareSequence} from '@loopback/rest'; 7 | 8 | export class MySequence extends MiddlewareSequence {} 9 | -------------------------------------------------------------------------------- /examples/webpack/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /examples/webpack/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /examples/webpack/src/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/example-webpack 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from '@loopback/core'; 7 | export * from './dependency-injection'; 8 | -------------------------------------------------------------------------------- /extensions/apiconnect/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /extensions/apiconnect/src/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/apiconnect 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './apiconnect.component'; 7 | export * from './apiconnect.spec-enhancer'; 8 | export * from './keys'; 9 | -------------------------------------------------------------------------------- /extensions/authentication-jwt/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /extensions/authentication-jwt/authentication-jwt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/extensions/authentication-jwt/authentication-jwt.png -------------------------------------------------------------------------------- /extensions/authentication-jwt/src/models/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/authentication-jwt 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './refresh-token.model'; 7 | export * from './user-credentials.model'; 8 | export * from './user.model'; 9 | -------------------------------------------------------------------------------- /extensions/authentication-passport/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /extensions/context-explorer/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /extensions/cron/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /extensions/cron/src/decorators/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/cron 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './cron-job.decorator'; 7 | -------------------------------------------------------------------------------- /extensions/cron/src/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/cron 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './cron.component'; 7 | export * from './decorators'; 8 | export * from './keys'; 9 | export * from './types'; 10 | -------------------------------------------------------------------------------- /extensions/graphql/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /extensions/graphql/type-graphql.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/extensions/graphql/type-graphql.png -------------------------------------------------------------------------------- /extensions/health/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /extensions/health/src/controllers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/health 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './health.controller'; 7 | -------------------------------------------------------------------------------- /extensions/health/src/observers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/health 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './health.observer'; 7 | -------------------------------------------------------------------------------- /extensions/logging/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /extensions/logging/logging-component.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/extensions/logging/logging-component.png -------------------------------------------------------------------------------- /extensions/logging/src/interceptors/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/logging 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './logging.interceptor'; 7 | -------------------------------------------------------------------------------- /extensions/metrics/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /extensions/metrics/bin/start-pushgateway.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | BASE_DIR=`dirname "$0"` 3 | $BASE_DIR/stop-pushgateway.sh 4 | 5 | PROM_PGW_CONTAINER_NAME="prom_pushgateway_lb4" 6 | docker pull prom/pushgateway:latest 7 | docker run --name $PROM_PGW_CONTAINER_NAME -p 9091:9091 -d prom/pushgateway:latest 8 | -------------------------------------------------------------------------------- /extensions/metrics/bin/stop-pushgateway.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | PROM_PGW_CONTAINER_NAME="prom_pushgateway_lb4" 3 | docker rm -f $PROM_PGW_CONTAINER_NAME 4 | -------------------------------------------------------------------------------- /extensions/metrics/prometheus-demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/extensions/metrics/prometheus-demo.png -------------------------------------------------------------------------------- /extensions/metrics/src/controllers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/metrics 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './metrics.controller'; 7 | -------------------------------------------------------------------------------- /extensions/metrics/src/interceptors/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/metrics 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './metrics.interceptor'; 7 | -------------------------------------------------------------------------------- /extensions/metrics/src/observers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/metrics 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './metrics.observer'; 7 | export * from './metrics.push.observer'; 8 | -------------------------------------------------------------------------------- /extensions/pooling/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /extensions/pooling/pooling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/extensions/pooling/pooling.png -------------------------------------------------------------------------------- /extensions/pooling/src/__tests__/acceptance/README.md: -------------------------------------------------------------------------------- 1 | # Acceptance tests 2 | -------------------------------------------------------------------------------- /extensions/pooling/src/__tests__/integration/README.md: -------------------------------------------------------------------------------- 1 | # Integration tests 2 | -------------------------------------------------------------------------------- /extensions/pooling/src/__tests__/unit/README.md: -------------------------------------------------------------------------------- 1 | # Unit tests 2 | -------------------------------------------------------------------------------- /extensions/pooling/src/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/pooling 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './pooling'; 7 | -------------------------------------------------------------------------------- /extensions/sequelize/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | scripts-prepend-node-path=true 3 | -------------------------------------------------------------------------------- /extensions/sequelize/src/__tests__/fixtures/observers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './test.observer'; 2 | -------------------------------------------------------------------------------- /extensions/sequelize/src/__tests__/integration/README.md: -------------------------------------------------------------------------------- 1 | # Integration tests 2 | -------------------------------------------------------------------------------- /extensions/sequelize/src/__tests__/unit/README.md: -------------------------------------------------------------------------------- 1 | # Unit tests 2 | -------------------------------------------------------------------------------- /extensions/sequelize/src/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright LoopBack contributors 2022. All Rights Reserved. 2 | // Node module: @loopback/sequelize 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './component'; 7 | export * from './keys'; 8 | export * from './sequelize'; 9 | export * from './types'; 10 | -------------------------------------------------------------------------------- /extensions/sequelize/src/sequelize/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright LoopBack contributors 2022. All Rights Reserved. 2 | // Node module: @loopback/sequelize 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './sequelize.datasource.base'; 7 | export * from './sequelize.repository.base'; 8 | -------------------------------------------------------------------------------- /extensions/socketio/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /extensions/socketio/src/booters/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/socketio 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './socketio.booter'; 7 | -------------------------------------------------------------------------------- /extensions/socketio/src/decorators/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/socketio 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './socketio.decorator'; 7 | -------------------------------------------------------------------------------- /extensions/socketio/src/providers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/socketio 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './invoke-method.provider'; 7 | export * from './reject-method.provider'; 8 | export * from './send-method.provider'; 9 | -------------------------------------------------------------------------------- /extensions/typeorm/src/typeorm.types.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/typeorm 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | // Re-export everything from 'typeorm' 7 | export * from 'typeorm'; 8 | -------------------------------------------------------------------------------- /fixtures/mock-oauth2-provider/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /fixtures/tsdocs-monorepo/README.md: -------------------------------------------------------------------------------- 1 | # fixtures/monorepo 2 | 3 | This `monorepo` directory contains a simplified monorepo managed by lerna. It's 4 | used to mimic `loopback-next` to test `@loopback/tsdocs`. 5 | 6 | # Rebuild 7 | 8 | If you have to change the source code for the fixture, run the following command 9 | to rebuild. 10 | 11 | ```sh 12 | npm run build 13 | ``` 14 | -------------------------------------------------------------------------------- /fixtures/tsdocs-monorepo/lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../node_modules/lerna/schemas/lerna-schema.json", 3 | "command": { 4 | "run": { 5 | "loglevel": "warn", 6 | "concurrency": 8, 7 | "prefix": false, 8 | "stream": true, 9 | "sort": true 10 | } 11 | }, 12 | "version": "independent" 13 | } 14 | -------------------------------------------------------------------------------- /fixtures/tsdocs-monorepo/packages/pkg1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pkg1", 3 | "version": "1.0.0", 4 | "description": "Test package 1", 5 | "main": "dist/index.js", 6 | "types": "dist/index.d.ts", 7 | "license": "MIT", 8 | "scripts": { 9 | "build": "lb-tsc", 10 | "clean": "lb-clean dist *.tsbuildinfo" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /fixtures/tsdocs-monorepo/packages/pkg1/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "extends": "@loopback/build/config/tsconfig.common.json", 4 | "compilerOptions": { 5 | "outDir": "dist", 6 | "rootDir": "src", 7 | "composite": true 8 | }, 9 | "include": ["src"], 10 | "references": [ 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /fixtures/tsdocs-monorepo/packages/pkg2/dist/index.d.ts: -------------------------------------------------------------------------------- 1 | import { Pet } from 'pkg1'; 2 | /** 3 | * Dog 4 | */ 5 | export declare class Dog extends Pet { 6 | kind: string; 7 | } 8 | -------------------------------------------------------------------------------- /fixtures/tsdocs-monorepo/packages/pkg2/dist/index.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,gCAAgC;AAChC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,+BAAyB;AAEzB;;GAEG;AACH,MAAa,GAAI,SAAQ,UAAG;IAA5B;;QACE,SAAI,GAAG,KAAK,CAAC;IACf,CAAC;CAAA;AAFD,kBAEC"} -------------------------------------------------------------------------------- /fixtures/tsdocs-monorepo/packages/pkg2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pkg2", 3 | "version": "1.0.0", 4 | "description": "Test package 2", 5 | "main": "dist/index.js", 6 | "types": "dist/index.d.ts", 7 | "license": "MIT", 8 | "dependencies": { 9 | "pkg1": "*" 10 | }, 11 | "scripts": { 12 | "build": "lb-tsc", 13 | "clean": "lb-clean dist *.tsbuildinfo" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /fixtures/tsdocs-monorepo/packages/pkg2/src/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved. 2 | // Node module: @loopback/tsdocs 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | import {Pet} from 'pkg1'; 7 | 8 | /** 9 | * Dog 10 | */ 11 | export class Dog extends Pet { 12 | kind = 'Dog'; 13 | } 14 | -------------------------------------------------------------------------------- /fixtures/tsdocs-monorepo/packages/pkg2/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "extends": "@loopback/build/config/tsconfig.common.json", 4 | "compilerOptions": { 5 | "outDir": "dist", 6 | "rootDir": "src", 7 | "composite": true 8 | }, 9 | "include": ["src"], 10 | "references": [ 11 | { 12 | "path": "../pkg1/tsconfig.json" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /fixtures/tsdocs-monorepo/packages/pkg3-non-ts/index.js: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved. 2 | // Node module: @loopback/tsdocs 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | module.exports = { 7 | package: 'pkg3', 8 | version: '1.0.0', 9 | }; 10 | -------------------------------------------------------------------------------- /fixtures/tsdocs-monorepo/packages/pkg3-non-ts/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pkg3", 3 | "version": "1.0.0", 4 | "description": "Test package 3", 5 | "main": "index.js", 6 | "license": "MIT" 7 | } 8 | -------------------------------------------------------------------------------- /fixtures/tsdocs-monorepo/packages/pkg4-private/index.js: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved. 2 | // Node module: @loopback/tsdocs 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | module.exports = { 7 | package: 'pkg4', 8 | version: '1.0.0', 9 | }; 10 | -------------------------------------------------------------------------------- /fixtures/tsdocs-monorepo/packages/pkg4-private/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pkg4", 3 | "version": "1.0.0", 4 | "description": "Test package 4", 5 | "private": true, 6 | "main": "index.js", 7 | "license": "MIT" 8 | } 9 | -------------------------------------------------------------------------------- /fixtures/tsdocs-monorepo/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@loopback/build/config/tsconfig.common.json", 3 | "compilerOptions": { 4 | "outDir": "dist", 5 | "composite": true 6 | }, 7 | "references": [], 8 | "files": [], 9 | "include": [ 10 | "src/**/*", 11 | "src/**/*.json" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /packages/authentication/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/authentication/docs/imgs/API-flow-(JWT).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/packages/authentication/docs/imgs/API-flow-(JWT).png -------------------------------------------------------------------------------- /packages/authentication/docs/imgs/auth-framework-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/packages/authentication/docs/imgs/auth-framework-architecture.png -------------------------------------------------------------------------------- /packages/authentication/docs/imgs/authentication_overview_highlevel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/packages/authentication/docs/imgs/authentication_overview_highlevel.png -------------------------------------------------------------------------------- /packages/authentication/docs/imgs/multiple-auth-strategies-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/packages/authentication/docs/imgs/multiple-auth-strategies-login.png -------------------------------------------------------------------------------- /packages/authentication/docs/imgs/multiple-auth-strategies-verify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/packages/authentication/docs/imgs/multiple-auth-strategies-verify.png -------------------------------------------------------------------------------- /packages/authentication/docs/strategies/oauth2.md: -------------------------------------------------------------------------------- 1 | ### OAuth2 Strategy 2 | 3 | TBD in a forthcoming PR. 4 | -------------------------------------------------------------------------------- /packages/authentication/docs/strategies/openid.md: -------------------------------------------------------------------------------- 1 | TBD 2 | -------------------------------------------------------------------------------- /packages/authentication/docs/strategies/saml.md: -------------------------------------------------------------------------------- 1 | TBD 2 | -------------------------------------------------------------------------------- /packages/authentication/docs/track-user-profile/session-based-auth.md: -------------------------------------------------------------------------------- 1 | TBD 2 | -------------------------------------------------------------------------------- /packages/authentication/docs/track-user-profile/token-based-auth.md: -------------------------------------------------------------------------------- 1 | TBD 2 | -------------------------------------------------------------------------------- /packages/authentication/docs/transport-layer-based-extraction/extract-current-user.md: -------------------------------------------------------------------------------- 1 | ## Extracting current user 2 | 3 | - option1: session 4 | - cookie 5 | - option2: token 6 | - header 7 | - query 8 | - request body 9 | - ... 10 | -------------------------------------------------------------------------------- /packages/authentication/src/decorators/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/authentication 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './authenticate.decorator'; 7 | -------------------------------------------------------------------------------- /packages/authentication/src/providers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2019. All Rights Reserved. 2 | // Node module: @loopback/authentication 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './auth-action.provider'; 7 | export * from './auth-metadata.provider'; 8 | export * from './auth-strategy.provider'; 9 | -------------------------------------------------------------------------------- /packages/authentication/src/services/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved. 2 | // Node module: @loopback/authentication 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './token.service'; 7 | export * from './user-identity.service'; 8 | export * from './user.service'; 9 | -------------------------------------------------------------------------------- /packages/authorization/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/authorization/fixtures/casbin/rbac_model.conf: -------------------------------------------------------------------------------- 1 | [request_definition] 2 | r = sub, obj, act 3 | 4 | [policy_definition] 5 | p = sub, obj, act 6 | 7 | [role_definition] 8 | g = _, _ 9 | 10 | [policy_effect] 11 | e = some(where (p.eft == allow)) 12 | 13 | [matchers] 14 | m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act -------------------------------------------------------------------------------- /packages/authorization/fixtures/casbin/rbac_policy.csv: -------------------------------------------------------------------------------- 1 | p, bob, order, create 2 | p, alice, order, create 3 | p, customer_service, order, read 4 | p, customer_service, order, create 5 | p, customer_service, order, delete 6 | p, customer_service, order, update 7 | g, alice, customer_service 8 | -------------------------------------------------------------------------------- /packages/authorization/imgs/authorization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/packages/authorization/imgs/authorization.png -------------------------------------------------------------------------------- /packages/authorization/imgs/responsibilities.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/packages/authorization/imgs/responsibilities.png -------------------------------------------------------------------------------- /packages/authorization/imgs/use-case.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/packages/authorization/imgs/use-case.png -------------------------------------------------------------------------------- /packages/boot/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/boot/src/__tests__/fixtures/empty.artifact.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/boot 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | // THIS FILE IS INTENTIONALLY LEFT EMPTY! 7 | -------------------------------------------------------------------------------- /packages/boot/src/mixins/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018. All Rights Reserved. 2 | // Node module: @loopback/boot 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './boot.mixin'; 7 | -------------------------------------------------------------------------------- /packages/booter-lb3app/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/booter-lb3app/fixtures/lb3app/server/datasources.json: -------------------------------------------------------------------------------- 1 | { 2 | "db": { 3 | "name": "db", 4 | "connector": "memory" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/build/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/build/config/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | coverage/ 4 | -------------------------------------------------------------------------------- /packages/build/config/.eslintrc.js: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved. 2 | // Node module: @loopback/build 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | module.exports = { 7 | extends: '@loopback/eslint-config', 8 | }; 9 | -------------------------------------------------------------------------------- /packages/build/config/.mocharc.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": ["source-map-support/register"], 3 | "recursive": true, 4 | "exit": true, 5 | "reporter": "dot" 6 | } 7 | 8 | -------------------------------------------------------------------------------- /packages/build/config/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "extension": [".js", ".ts"], 3 | "reporter": ["html"], 4 | "exclude-after-remap": false 5 | } 6 | -------------------------------------------------------------------------------- /packages/build/config/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /packages/build/config/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.common.json", 3 | "compilerOptions": { 4 | "rootDir": "." 5 | }, 6 | "include": [ 7 | "src", 8 | "test" 9 | ], 10 | "exclude": ["node_modules/**", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /packages/build/test/integration/fixtures/.gitignore: -------------------------------------------------------------------------------- 1 | tsconfig.json 2 | dist* 3 | -------------------------------------------------------------------------------- /packages/build/test/integration/fixtures/docs.json: -------------------------------------------------------------------------------- 1 | { 2 | "content": ["src/index.ts"], 3 | "codeSectionDepth": 4, 4 | "assets": {} 5 | } 6 | -------------------------------------------------------------------------------- /packages/build/test/integration/fixtures/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@loopback/ts-test-proj", 3 | "version": "1.0.0", 4 | "description": "Test", 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1" 7 | }, 8 | "dependencies": { 9 | "typescript": "*" 10 | }, 11 | "author": "IBM Corp. and LoopBack contributors", 12 | "license": "MIT" 13 | } 14 | -------------------------------------------------------------------------------- /packages/build/test/integration/fixtures/test/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/packages/build/test/integration/fixtures/test/.gitkeep -------------------------------------------------------------------------------- /packages/cli/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | scripts-prepend-node-path=true 3 | 4 | -------------------------------------------------------------------------------- /packages/cli/generators/app/templates/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | /dist 4 | # Cache used by TypeScript's incremental build 5 | *.tsbuildinfo 6 | -------------------------------------------------------------------------------- /packages/cli/generators/app/templates/src/__tests__/README.md: -------------------------------------------------------------------------------- 1 | # Tests 2 | 3 | Please place your tests in this folder. 4 | -------------------------------------------------------------------------------- /packages/cli/generators/app/templates/src/controllers/index.ts.ejs: -------------------------------------------------------------------------------- 1 | export * from './ping.controller'; 2 | -------------------------------------------------------------------------------- /packages/cli/generators/app/templates/src/datasources/README.md: -------------------------------------------------------------------------------- 1 | # Datasources 2 | 3 | This directory contains config for datasources used by this app. 4 | -------------------------------------------------------------------------------- /packages/cli/generators/app/templates/src/models/README.md: -------------------------------------------------------------------------------- 1 | # Models 2 | 3 | This directory contains code for models provided by this app. 4 | -------------------------------------------------------------------------------- /packages/cli/generators/app/templates/src/repositories/README.md: -------------------------------------------------------------------------------- 1 | # Repositories 2 | 3 | This directory contains code for repositories provided by this app. 4 | -------------------------------------------------------------------------------- /packages/cli/generators/app/templates/src/sequence.ts.ejs: -------------------------------------------------------------------------------- 1 | import {MiddlewareSequence} from '@loopback/rest'; 2 | 3 | export class MySequence extends MiddlewareSequence {} 4 | -------------------------------------------------------------------------------- /packages/cli/generators/controller/templates/src/controllers/controller-template.ts.ejs: -------------------------------------------------------------------------------- 1 | // Uncomment these imports to begin using these cool features! 2 | 3 | // import {inject} from '@loopback/core'; 4 | 5 | 6 | export class <%= className %>Controller { 7 | constructor() {} 8 | } 9 | -------------------------------------------------------------------------------- /packages/cli/generators/extension/templates/src/__tests__/acceptance/README.md: -------------------------------------------------------------------------------- 1 | # Acceptance tests 2 | -------------------------------------------------------------------------------- /packages/cli/generators/extension/templates/src/__tests__/integration/README.md: -------------------------------------------------------------------------------- 1 | # Integration tests 2 | -------------------------------------------------------------------------------- /packages/cli/generators/extension/templates/src/__tests__/unit/README.md: -------------------------------------------------------------------------------- 1 | # Unit tests 2 | -------------------------------------------------------------------------------- /packages/cli/generators/extension/templates/src/controllers/README.md: -------------------------------------------------------------------------------- 1 | # Controllers 2 | 3 | This directory contains source files for the controllers exported by this 4 | extension. 5 | 6 | For more information, see . 7 | -------------------------------------------------------------------------------- /packages/cli/generators/extension/templates/src/index.ts.ejs: -------------------------------------------------------------------------------- 1 | export * from './component'; 2 | export * from './keys'; 3 | export * from './types'; 4 | -------------------------------------------------------------------------------- /packages/cli/generators/extension/templates/src/repositories/README.md: -------------------------------------------------------------------------------- 1 | # Repositories 2 | 3 | This directory contains code for repositories provided by this extension. 4 | 5 | For more information, see . 6 | -------------------------------------------------------------------------------- /packages/cli/generators/openapi/templates/src/models/type-template.ts.ejs: -------------------------------------------------------------------------------- 1 | <%_ 2 | imports.forEach(i => { 3 | -%> 4 | <%- i %> 5 | <%_ 6 | }); 7 | -%> 8 | /** 9 | * The model type is generated from OpenAPI schema - <%- name %> 10 | * <%- escapeComment(description) %> 11 | */ 12 | export type <%- className %> = <%- declaration %>; 13 | 14 | -------------------------------------------------------------------------------- /packages/cli/generators/project/templates/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | max_line_length = 80 10 | -------------------------------------------------------------------------------- /packages/cli/generators/project/templates/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | coverage/ 4 | .eslintrc.js 5 | -------------------------------------------------------------------------------- /packages/cli/generators/project/templates/.eslintrc.js.ejs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: '@loopback/eslint-config', 3 | }; 4 | -------------------------------------------------------------------------------- /packages/cli/generators/project/templates/.mocharc.json: -------------------------------------------------------------------------------- 1 | { 2 | "exit": true, 3 | "recursive": true, 4 | "require": "source-map-support/register" 5 | } 6 | -------------------------------------------------------------------------------- /packages/cli/generators/project/templates/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | scripts-prepend-node-path=true 3 | -------------------------------------------------------------------------------- /packages/cli/generators/project/templates/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | *.json 3 | -------------------------------------------------------------------------------- /packages/cli/generators/project/templates/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": false, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "trailingComma": "all", 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /packages/cli/generators/service/templates/local-service-class-template.ts.ejs: -------------------------------------------------------------------------------- 1 | import {injectable, /* inject, */ BindingScope} from '@loopback/core'; 2 | 3 | @injectable({scope: BindingScope.TRANSIENT}) 4 | export class <%= className %>Service { 5 | constructor(/* Add @inject to inject parameters */) {} 6 | 7 | /* 8 | * Add service methods here 9 | */ 10 | } 11 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/copyright/monorepo/index.js: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved. 2 | // Node module: @loopback/cli 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | // Use the same set of files (except index.js) in this folder 7 | exports.SANDBOX_FILES = require('../index')(__dirname); 8 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/copyright/monorepo/lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../../../../../node_modules/lerna/schemas/lerna-schema.json", 3 | "version": "independent" 4 | } 5 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/copyright/monorepo/lib/no-header.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | // XYZ 4 | exports.xyz = {}; 5 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/copyright/monorepo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mymonorepo", 3 | "copyright.owner": "ACME Inc.", 4 | "license": "MIT", 5 | "workspaces": ["packages/*"] 6 | } 7 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/copyright/monorepo/packages/pkg1/lib/no-header.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | // XYZ 4 | exports.xyz = {}; 5 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/copyright/monorepo/packages/pkg1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pkg1", 3 | "copyright.owner": "ACME Inc.", 4 | "license": "Apache-2.0" 5 | } 6 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/copyright/monorepo/packages/pkg1/src/application.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: myapp 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export class MyApplication {} 7 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/copyright/monorepo/packages/pkg2/lib/no-header.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | // XYZ 4 | exports.xyz = {}; 5 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/copyright/monorepo/packages/pkg2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pkg2", 3 | "author": "ACME Inc.", 4 | "license": "ISC" 5 | } 6 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/copyright/monorepo/packages/pkg2/src/application.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: myapp 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export class MyApplication {} 7 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/copyright/single-package/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/copyright/single-package/lib/no-header.js: -------------------------------------------------------------------------------- 1 | // XYZ 2 | exports.xyz = {}; 3 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/copyright/single-package/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "myapp", 3 | "copyright.owner": "ACME Inc.", 4 | "license": "MIT" 5 | } 6 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/copyright/single-package/src/application.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. 2020. All Rights Reserved. 2 | // Node module: myapp 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export class MyApplication {} 7 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/discover/index.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | 3 | exports.SANDBOX_FILES = [ 4 | { 5 | path: 'dist/datasources', 6 | file: 'mem.datasource.js', 7 | content: fs.readFileSync(require.resolve('./mem.datasource.js.txt')), 8 | }, 9 | ]; 10 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/interceptor/index.js: -------------------------------------------------------------------------------- 1 | const CONFIG_PATH = '.'; 2 | 3 | exports.SANDBOX_FILES = [ 4 | { 5 | path: CONFIG_PATH, 6 | file: 'myinterceptorconfig.json', 7 | content: JSON.stringify({ 8 | name: 'myInterceptor', 9 | group: 'myGroup', 10 | }), 11 | }, 12 | ]; 13 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/observer/index.js: -------------------------------------------------------------------------------- 1 | const CONFIG_PATH = '.'; 2 | 3 | exports.SANDBOX_FILES = [ 4 | { 5 | path: CONFIG_PATH, 6 | file: 'myobserverconfig.json', 7 | content: JSON.stringify({ 8 | name: 'myObserver', 9 | }), 10 | }, 11 | ]; 12 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/openapi/3.0/src/datasources/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/cli 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './pet-store.datasource'; 7 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/relation/controllers/account.controller.ts: -------------------------------------------------------------------------------- 1 | export class AccountController {} 2 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/relation/controllers/address-customer.controller.ts: -------------------------------------------------------------------------------- 1 | export class AddressCustomerController {} 2 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/relation/controllers/customer.controller.ts: -------------------------------------------------------------------------------- 1 | export class CustomerController {} 2 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/relation/controllers/doctor-patient.controller.ts: -------------------------------------------------------------------------------- 1 | export class DoctorPatientController {} 2 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/relation/controllers/employee.controller.ts: -------------------------------------------------------------------------------- 1 | export class EmployeeController {} 2 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/relation/controllers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './customer.controller'; 2 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/relation/controllers/index4.ts: -------------------------------------------------------------------------------- 1 | export * from './order-customer.controller'; 2 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/relation/controllers/order-customer.controller.ts: -------------------------------------------------------------------------------- 1 | export class OrderCustomerController {} 2 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/relation/controllers/user-user.controller.ts: -------------------------------------------------------------------------------- 1 | export class UserUserController {} 2 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/relation/models/customer-inhe.model.ts: -------------------------------------------------------------------------------- 1 | import {model, property} from '@loopback/repository'; 2 | import {IdModel} from './id-model.model'; 3 | 4 | @model() 5 | export class CustomerInheritance extends IdModel { 6 | @property({ 7 | type: 'string', 8 | }) 9 | name?: string; 10 | 11 | constructor(data?: Partial) { 12 | super(data); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/relation/models/id-model.model.ts: -------------------------------------------------------------------------------- 1 | import {Entity, model, property} from '@loopback/repository'; 2 | 3 | @model() 4 | export class IdModel extends Entity { 5 | @property({ 6 | type: 'number', 7 | id: true, 8 | default: 0, 9 | }) 10 | id?: string; 11 | 12 | constructor(data?: Partial) { 13 | super(data); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/cli/test/fixtures/relation/models/order-inhe.model.ts: -------------------------------------------------------------------------------- 1 | import {model, property} from '@loopback/repository'; 2 | import {IdModel} from './id-model.model'; 3 | 4 | @model() 5 | export class OrderInheritance extends IdModel { 6 | @property({ 7 | type: 'string', 8 | }) 9 | des?: string; 10 | 11 | constructor(data?: Partial) { 12 | super(data); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/cli/test/integration/lib/base-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "xyz", 3 | "description": "Test" 4 | } 5 | -------------------------------------------------------------------------------- /packages/context/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/core/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/eslint-config/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/express/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/filter/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | scripts-prepend-node-path=true 3 | -------------------------------------------------------------------------------- /packages/filter/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "extends": "@loopback/build/config/tsconfig.common.json", 4 | "compilerOptions": { 5 | "outDir": "dist", 6 | "rootDir": "src", 7 | "composite": true 8 | }, 9 | "include": [ 10 | "src" 11 | ], 12 | "references": [ 13 | { 14 | "path": "../testlab/tsconfig.json" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /packages/http-caching-proxy/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/http-server/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/http-server/fixtures/pfx.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/packages/http-server/fixtures/pfx.pfx -------------------------------------------------------------------------------- /packages/metadata/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/model-api-builder/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/openapi-spec-builder/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/openapi-v3/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/openapi-v3/src/enhancers/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/openapi-v3 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './keys'; 7 | export * from './spec-enhancer.service'; 8 | export * from './types'; 9 | -------------------------------------------------------------------------------- /packages/repository-json-schema/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/repository-tests/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/repository/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/repository/src/connectors/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/repository 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './connector'; 7 | export * from './crud.connector'; 8 | export * from './kv.connector'; 9 | -------------------------------------------------------------------------------- /packages/repository/src/decorators/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/repository 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './metadata'; 7 | export * from './model.decorator'; 8 | export * from './repository.decorator'; 9 | -------------------------------------------------------------------------------- /packages/repository/src/mixins/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/repository 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './repository.mixin'; 7 | -------------------------------------------------------------------------------- /packages/rest-crud/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/rest-explorer/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/rest/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/rest/fixtures/assets/index.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | Test Page 4 |
5 | 6 |

Hello, World!

7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/rest/fixtures/file-upload-test.txt: -------------------------------------------------------------------------------- 1 | This file is used for file-upload acceptance test. 2 | -------------------------------------------------------------------------------- /packages/rest/fixtures/other-assets/index.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | Other Assets 4 |
5 | 6 |

Hello, World!

7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/rest/fixtures/other-assets/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Allow: / 3 | -------------------------------------------------------------------------------- /packages/rest/fixtures/pfx.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/packages/rest/fixtures/pfx.pfx -------------------------------------------------------------------------------- /packages/security/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/security/security-overview-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/packages/security/security-overview-diagram.png -------------------------------------------------------------------------------- /packages/service-proxy/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/service-proxy/src/mixins/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/service-proxy 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export * from './service.mixin'; 7 | -------------------------------------------------------------------------------- /packages/testlab/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/testlab/fixtures/README.md: -------------------------------------------------------------------------------- 1 | # Static fixtures 2 | 3 | This directory contains test fixture files that we want to use in verbatim and 4 | also files that TypeScript compiler would not copy from `src` to `dist`. 5 | 6 | For example: 7 | 8 | - text files 9 | - JSON files not imported by any `.ts` file 10 | -------------------------------------------------------------------------------- /packages/testlab/fixtures/copy-me.txt: -------------------------------------------------------------------------------- 1 | Hello World! -------------------------------------------------------------------------------- /packages/testlab/fixtures/pfx.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopbackio/loopback-next/13ea0d001836c81cfb4ba6776c45b10a89cda3da/packages/testlab/fixtures/pfx.pfx -------------------------------------------------------------------------------- /packages/testlab/src/__tests__/fixtures/README.md: -------------------------------------------------------------------------------- 1 | # Compiled fixtures 2 | 3 | This directory contains test fixture files that we want to compile by TypeScript 4 | before using in tests. 5 | -------------------------------------------------------------------------------- /packages/testlab/src/__tests__/fixtures/test.ts: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved. 2 | // Node module: @loopback/testlab 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | export function main(): string { 7 | return 'Hello world'; 8 | } 9 | -------------------------------------------------------------------------------- /packages/testlab/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "extends": "@loopback/build/config/tsconfig.common.json", 4 | "compilerOptions": { 5 | "outDir": "dist", 6 | "rootDir": "src", 7 | "composite": true 8 | }, 9 | "include": [ 10 | "src" 11 | ], 12 | "references": [] 13 | } 14 | -------------------------------------------------------------------------------- /packages/tsdocs/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /packages/tsdocs/bin/document-apis.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | // Copyright IBM Corp. and LoopBack contributors 2021. All Rights Reserved. 3 | // Node module: @loopback/tsdocs 4 | // This file is licensed under the MIT License. 5 | // License text available at https://opensource.org/licenses/MIT 6 | 7 | if (require.main === module) { 8 | require('@microsoft/api-documenter/lib/start'); 9 | } 10 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "github>loopbackio/cicd//shared-configs/renovate/base" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /sandbox/example/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=true 2 | -------------------------------------------------------------------------------- /sandbox/example/index.js: -------------------------------------------------------------------------------- 1 | // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved. 2 | // Node module: @loopback/sandbox-example 3 | // This file is licensed under the MIT License. 4 | // License text available at https://opensource.org/licenses/MIT 5 | 6 | const package = require('./package.json'); 7 | console.log('Welcome to %s@%s', package.name, package.version); 8 | --------------------------------------------------------------------------------