@loopback/docs 3.26.1 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/package.json +5 -5
  3. package/site/Authorization-component-authorizer.md +3 -0
  4. package/site/Community-extensions.md +4 -0
  5. package/site/DEVELOPING.md +2 -2
  6. package/site/Examples.md +4 -0
  7. package/site/Include-filter.md +5 -0
  8. package/site/LoopBack-types.md +1 -1
  9. package/site/apidocs/authentication.authenticateactionprovider.md +0 -1
  10. package/site/apidocs/authentication.authenticationbindings.auth_action.md +0 -1
  11. package/site/apidocs/authentication.authenticationbindings.metadata.md +0 -1
  12. package/site/apidocs/authentication.authenticationbindings.strategy.md +0 -1
  13. package/site/apidocs/authentication.authenticationbindings.user_profile_factory.md +0 -1
  14. package/site/apidocs/authentication.userservice.verifycredentials.md +0 -2
  15. package/site/apidocs/authorization.authorizationoptions.md +2 -2
  16. package/site/apidocs/boot.bootmixin.md +2 -2
  17. package/site/apidocs/context.aliasbindingsource.md +1 -1
  18. package/site/apidocs/context.any_tag_value.md +0 -1
  19. package/site/apidocs/context.asyncproxy.md +0 -2
  20. package/site/apidocs/context.binding.apply.md +0 -1
  21. package/site/apidocs/context.binding.configure.md +0 -1
  22. package/site/apidocs/context.binding.getvalue.md +0 -1
  23. package/site/apidocs/context.binding.tag.md +0 -1
  24. package/site/apidocs/context.binding.to.md +0 -1
  25. package/site/apidocs/context.binding.todynamicvalue.md +0 -1
  26. package/site/apidocs/context.binding.toinjectable.md +0 -1
  27. package/site/apidocs/context.binding.toprovider.md +0 -1
  28. package/site/apidocs/context.bindingcomparator.md +0 -1
  29. package/site/apidocs/context.bindingfilter.md +0 -1
  30. package/site/apidocs/context.bindingkey.create.md +0 -1
  31. package/site/apidocs/context.classbindingsource.md +1 -1
  32. package/site/apidocs/context.constantbindingsource.md +1 -1
  33. package/site/apidocs/context.context._constructor_.md +0 -1
  34. package/site/apidocs/context.context._debug.md +0 -1
  35. package/site/apidocs/context.context.createview.md +2 -1
  36. package/site/apidocs/context.context.get.md +0 -1
  37. package/site/apidocs/context.context.get_1.md +0 -1
  38. package/site/apidocs/context.context.getdebugnamespace.md +0 -1
  39. package/site/apidocs/context.context.getscopedcontext.md +1 -1
  40. package/site/apidocs/context.context.getsync.md +0 -1
  41. package/site/apidocs/context.context.getsync_1.md +0 -1
  42. package/site/apidocs/context.context.md +1 -1
  43. package/site/apidocs/context.context.unbind.md +0 -1
  44. package/site/apidocs/context.contextview._constructor_.md +2 -1
  45. package/site/apidocs/context.contextview.asgetter.md +2 -2
  46. package/site/apidocs/context.contextview.md +1 -1
  47. package/site/apidocs/context.contextview.resolve.md +2 -2
  48. package/site/apidocs/context.contextview.singlevalue.md +2 -2
  49. package/site/apidocs/context.contextview.values.md +2 -2
  50. package/site/apidocs/context.createviewgetter_1.md +2 -2
  51. package/site/apidocs/context.dynamicvaluebindingsource.md +1 -1
  52. package/site/apidocs/context.dynamicvalueproviderclass.md +0 -1
  53. package/site/apidocs/context.genericinterceptor.md +0 -1
  54. package/site/apidocs/context.inject.binding.md +0 -1
  55. package/site/apidocs/context.inject.context.md +0 -1
  56. package/site/apidocs/context.inject.tag.md +0 -1
  57. package/site/apidocs/context.inject.view.md +0 -1
  58. package/site/apidocs/context.injectionmetadata.md +2 -2
  59. package/site/apidocs/context.intercept.md +0 -1
  60. package/site/apidocs/context.provider.md +0 -1
  61. package/site/apidocs/context.providerbindingsource.md +1 -1
  62. package/site/apidocs/context.resolvelist.md +0 -2
  63. package/site/apidocs/context.resolvemap.md +0 -2
  64. package/site/apidocs/context.resolverfunction.md +0 -1
  65. package/site/apidocs/context.setter.md +0 -1
  66. package/site/apidocs/context.typenamespacemapping.md +0 -1
  67. package/site/apidocs/core.application.component.md +0 -1
  68. package/site/apidocs/core.application.controller.md +0 -1
  69. package/site/apidocs/core.application.md +1 -1
  70. package/site/apidocs/core.application.server.md +0 -1
  71. package/site/apidocs/core.application.servers.md +0 -1
  72. package/site/apidocs/core.application.service.md +0 -1
  73. package/site/apidocs/core.application.state.md +1 -1
  74. package/site/apidocs/core.component.bindings.md +0 -1
  75. package/site/apidocs/core.component.classes.md +0 -1
  76. package/site/apidocs/core.component.providers.md +0 -1
  77. package/site/apidocs/core.extensionpoint.md +0 -1
  78. package/site/apidocs/core.extensions.list.md +2 -2
  79. package/site/apidocs/core.extensions.md +2 -2
  80. package/site/apidocs/core.extensions.view.md +2 -2
  81. package/site/apidocs/core.lifecycleobserveroptions.md +1 -0
  82. package/site/apidocs/core.md +1 -1
  83. package/site/apidocs/core.mixintarget.md +0 -3
  84. package/site/apidocs/core.service.md +0 -1
  85. package/site/apidocs/cron.cronjob.md +0 -1
  86. package/site/apidocs/express.expressmiddlewareinterceptorprovider.md +0 -2
  87. package/site/apidocs/express.invokeexpressmiddleware.md +0 -1
  88. package/site/apidocs/express.middleware.md +0 -1
  89. package/site/apidocs/express.middlewaremixin.md +2 -2
  90. package/site/apidocs/express.middlewareregistry.expressmiddleware.md +0 -1
  91. package/site/apidocs/express.middlewareregistry.expressmiddleware_1.md +0 -1
  92. package/site/apidocs/express.middlewareregistry.middleware.md +0 -1
  93. package/site/apidocs/express.tointerceptor.md +0 -1
  94. package/site/apidocs/express.tomiddleware.md +0 -1
  95. package/site/apidocs/filter.andclause.md +0 -1
  96. package/site/apidocs/filter.condition.md +0 -1
  97. package/site/apidocs/filter.filterbuilder.md +0 -1
  98. package/site/apidocs/filter.inclusion.md +1 -1
  99. package/site/apidocs/filter.inclusion.scope.md +3 -1
  100. package/site/apidocs/filter.orclause.md +0 -1
  101. package/site/apidocs/filter.where.md +0 -1
  102. package/site/apidocs/filter.wherebuilder.md +0 -1
  103. package/site/apidocs/graphql.graphqlserver.exportgraphqlschema.md +33 -0
  104. package/site/apidocs/graphql.graphqlserver.md +1 -0
  105. package/site/apidocs/logging.loginvocation.md +0 -1
  106. package/site/apidocs/metadata.decoratorfactory.md +0 -3
  107. package/site/apidocs/metadata.designtimemethodmetadata.md +0 -2
  108. package/site/apidocs/metadata.methodmultidecoratorfactory.md +0 -1
  109. package/site/apidocs/metadata.methodparameterdecoratorfactory.md +0 -1
  110. package/site/apidocs/openapi-v3.api.md +0 -1
  111. package/site/apidocs/openapi-v3.deprecated.md +0 -1
  112. package/site/apidocs/openapi-v3.getmodelschemaref.md +0 -1
  113. package/site/apidocs/openapi-v3.param.array.md +0 -1
  114. package/site/apidocs/openapi-v3.param.filter.md +0 -1
  115. package/site/apidocs/openapi-v3.param.where.md +0 -1
  116. package/site/apidocs/openapi-v3.requestbody.array.md +0 -1
  117. package/site/apidocs/openapi-v3.requestbody.file.md +0 -1
  118. package/site/apidocs/openapi-v3.response.file.md +0 -1
  119. package/site/apidocs/openapi-v3.schemaref.md +0 -1
  120. package/site/apidocs/openapi-v3.tags.md +0 -2
  121. package/site/apidocs/openapi-v3.visibility.md +0 -1
  122. package/site/apidocs/repository-json-schema.getjsonschemaref.md +0 -1
  123. package/site/apidocs/repository-json-schema.jsonschemaoptions.partial.md +0 -1
  124. package/site/apidocs/repository-json-schema.optional.md +0 -1
  125. package/site/apidocs/repository.belongstodefinition.md +1 -1
  126. package/site/apidocs/repository.constructorfunction.md +0 -1
  127. package/site/apidocs/repository.crudrepositoryimpl.md +0 -1
  128. package/site/apidocs/repository.defaultcrudrepository.createhasmanyrepositoryfactoryfor.md +0 -1
  129. package/site/apidocs/repository.defaultcrudrepository.createhasmanythroughrepositoryfactoryfor.md +0 -1
  130. package/site/apidocs/repository.defaultcrudrepository.execute.md +0 -1
  131. package/site/apidocs/repository.defaultcrudrepository.execute_1.md +0 -1
  132. package/site/apidocs/repository.definecrudrepositoryclass.md +0 -1
  133. package/site/apidocs/repository.definekeyvaluerepositoryclass.md +0 -1
  134. package/site/apidocs/repository.definemodelclass.md +0 -3
  135. package/site/apidocs/repository.definerepositoryclass.md +0 -1
  136. package/site/apidocs/repository.findbyforeignkeys.md +4 -2
  137. package/site/apidocs/repository.hasmanydefinition.md +1 -1
  138. package/site/apidocs/repository.hasonedefinition.md +1 -1
  139. package/site/apidocs/repository.modeldefinition.idproperties.md +0 -1
  140. package/site/apidocs/repository.repository_1.md +0 -1
  141. package/site/apidocs/repository.repositorymixin.md +2 -3
  142. package/site/apidocs/repository.repositorymixindoc.component.md +0 -1
  143. package/site/apidocs/repository.repositorymixindoc.datasource.md +0 -1
  144. package/site/apidocs/repository.repositorymixindoc.repository.md +0 -1
  145. package/site/apidocs/rest-crud.definecrudrestcontroller.md +0 -1
  146. package/site/apidocs/rest.defaultsequence.md +0 -1
  147. package/site/apidocs/rest.restapplication.exportopenapispec.md +2 -5
  148. package/site/apidocs/rest.restapplication.expressmiddleware.md +0 -1
  149. package/site/apidocs/rest.restapplication.expressmiddleware_1.md +0 -1
  150. package/site/apidocs/rest.restapplication.middleware.md +0 -1
  151. package/site/apidocs/rest.restapplication.redirect.md +0 -1
  152. package/site/apidocs/rest.restapplication.requesthandler.md +0 -1
  153. package/site/apidocs/rest.restapplication.route.md +0 -1
  154. package/site/apidocs/rest.restapplication.route_1.md +0 -1
  155. package/site/apidocs/rest.restapplication.route_2.md +0 -1
  156. package/site/apidocs/rest.restapplication.route_3.md +0 -1
  157. package/site/apidocs/rest.restserver.controller.md +0 -1
  158. package/site/apidocs/rest.restserver.exportopenapispec.md +2 -5
  159. package/site/apidocs/rest.restserver.handler.md +0 -1
  160. package/site/apidocs/rest.restserver.md +0 -3
  161. package/site/apidocs/rest.restserver.oasenhancerservice.md +0 -1
  162. package/site/apidocs/rest.restserver.redirect.md +0 -1
  163. package/site/apidocs/rest.restserver.route.md +0 -1
  164. package/site/apidocs/rest.restserver.route_1.md +0 -1
  165. package/site/apidocs/rest.restserver.route_2.md +0 -1
  166. package/site/apidocs/rest.restserver.sequence.md +0 -1
  167. package/site/apidocs/service-proxy.servicemixin.md +2 -3
  168. package/site/apidocs/service-proxy.servicemixindoc.component.md +0 -1
  169. package/site/apidocs/service-proxy.servicemixindoc.serviceprovider.md +0 -1
  170. package/site/apidocs/socketio.socketio.md +0 -1
  171. package/site/apidocs/socketio.socketio.subscribe.md +0 -1
  172. package/site/apidocs/socketio.socketiobindings.io.md +1 -1
  173. package/site/apidocs/socketio.socketiobindings.socket.md +1 -1
  174. package/site/apidocs/socketio.socketioserver.route.md +2 -2
  175. package/site/apidocs/socketio.socketioserver.use.md +2 -2
  176. package/site/apidocs/testlab.skipif.md +0 -1
  177. package/site/apidocs/testlab.skipontravis.md +0 -1
  178. package/site/apidocs/testlab.testsandbox._constructor_.md +0 -1
  179. package/site/apidocs/typeorm.typeormmixin.md +2 -2
  180. package/site/changelogs/bodyparsers/rest-msgpack/CHANGELOG.md +45 -0
  181. package/site/changelogs/examples/access-control-migration/CHANGELOG.md +56 -0
  182. package/site/changelogs/examples/binding-resolution/CHANGELOG.md +56 -0
  183. package/site/changelogs/examples/context/CHANGELOG.md +56 -0
  184. package/site/changelogs/examples/express-composition/CHANGELOG.md +56 -0
  185. package/site/changelogs/examples/file-transfer/CHANGELOG.md +56 -0
  186. package/site/changelogs/examples/graphql/CHANGELOG.md +56 -0
  187. package/site/changelogs/examples/greeter-extension/CHANGELOG.md +56 -0
  188. package/site/changelogs/examples/greeting-app/CHANGELOG.md +56 -0
  189. package/site/changelogs/examples/hello-world/CHANGELOG.md +56 -0
  190. package/site/changelogs/examples/lb3-application/CHANGELOG.md +56 -0
  191. package/site/changelogs/examples/log-extension/CHANGELOG.md +56 -0
  192. package/site/changelogs/examples/metrics-prometheus/CHANGELOG.md +56 -0
  193. package/site/changelogs/examples/multi-tenancy/CHANGELOG.md +59 -0
  194. package/site/changelogs/examples/passport-login/CHANGELOG.md +56 -0
  195. package/site/changelogs/examples/rest-crud/CHANGELOG.md +56 -0
  196. package/site/changelogs/examples/rpc-server/CHANGELOG.md +56 -0
  197. package/site/changelogs/examples/soap-calculator/CHANGELOG.md +56 -0
  198. package/site/changelogs/examples/socketio/CHANGELOG.md +49 -0
  199. package/site/changelogs/examples/todo/CHANGELOG.md +56 -0
  200. package/site/changelogs/examples/todo-jwt/CHANGELOG.md +56 -0
  201. package/site/changelogs/examples/todo-list/CHANGELOG.md +56 -0
  202. package/site/changelogs/examples/validation-app/CHANGELOG.md +56 -0
  203. package/site/changelogs/examples/webpack/CHANGELOG.md +59 -0
  204. package/site/changelogs/extensions/apiconnect/CHANGELOG.md +45 -0
  205. package/site/changelogs/extensions/authentication-jwt/CHANGELOG.md +54 -0
  206. package/site/changelogs/extensions/authentication-passport/CHANGELOG.md +45 -0
  207. package/site/changelogs/extensions/context-explorer/CHANGELOG.md +45 -0
  208. package/site/changelogs/extensions/cron/CHANGELOG.md +48 -0
  209. package/site/changelogs/extensions/graphql/CHANGELOG.md +48 -0
  210. package/site/changelogs/extensions/health/CHANGELOG.md +45 -0
  211. package/site/changelogs/extensions/logging/CHANGELOG.md +45 -0
  212. package/site/changelogs/extensions/metrics/CHANGELOG.md +50 -0
  213. package/site/changelogs/extensions/pooling/CHANGELOG.md +48 -0
  214. package/site/changelogs/extensions/socketio/CHANGELOG.md +48 -0
  215. package/site/changelogs/extensions/typeorm/CHANGELOG.md +48 -0
  216. package/site/changelogs/fixtures/mock-oauth2-provider/CHANGELOG.md +45 -0
  217. package/site/changelogs/packages/authentication/CHANGELOG.md +45 -0
  218. package/site/changelogs/packages/authorization/CHANGELOG.md +45 -0
  219. package/site/changelogs/packages/boot/CHANGELOG.md +45 -0
  220. package/site/changelogs/packages/booter-lb3app/CHANGELOG.md +45 -0
  221. package/site/changelogs/packages/build/CHANGELOG.md +45 -0
  222. package/site/changelogs/packages/cli/CHANGELOG.md +53 -0
  223. package/site/changelogs/packages/context/CHANGELOG.md +48 -0
  224. package/site/changelogs/packages/core/CHANGELOG.md +56 -0
  225. package/site/changelogs/packages/eslint-config/CHANGELOG.md +45 -0
  226. package/site/changelogs/packages/express/CHANGELOG.md +45 -0
  227. package/site/changelogs/packages/filter/CHANGELOG.md +56 -0
  228. package/site/changelogs/packages/http-caching-proxy/CHANGELOG.md +50 -0
  229. package/site/changelogs/packages/http-server/CHANGELOG.md +45 -0
  230. package/site/changelogs/packages/metadata/CHANGELOG.md +45 -0
  231. package/site/changelogs/packages/model-api-builder/CHANGELOG.md +50 -0
  232. package/site/changelogs/packages/monorepo/CHANGELOG.md +45 -0
  233. package/site/changelogs/packages/openapi-spec-builder/CHANGELOG.md +45 -0
  234. package/site/changelogs/packages/openapi-v3/CHANGELOG.md +59 -0
  235. package/site/changelogs/packages/repository/CHANGELOG.md +48 -0
  236. package/site/changelogs/packages/repository-json-schema/CHANGELOG.md +62 -0
  237. package/site/changelogs/packages/repository-tests/CHANGELOG.md +45 -0
  238. package/site/changelogs/packages/rest/CHANGELOG.md +59 -0
  239. package/site/changelogs/packages/rest-crud/CHANGELOG.md +56 -0
  240. package/site/changelogs/packages/rest-explorer/CHANGELOG.md +45 -0
  241. package/site/changelogs/packages/security/CHANGELOG.md +45 -0
  242. package/site/changelogs/packages/service-proxy/CHANGELOG.md +45 -0
  243. package/site/changelogs/packages/testlab/CHANGELOG.md +45 -0
  244. package/site/changelogs/packages/tsdocs/CHANGELOG.md +51 -0
  245. package/site/index.md +1 -1
  246. package/site/readmes/loopback-next/extensions/authentication-jwt/README.md +3 -2
  247. package/site/readmes/loopback-next/extensions/graphql/README.md +48 -1
  248. package/site/readmes/loopback-next/packages/build/README.md +9 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,65 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.0.1](https://github.com/loopbackio/loopback-next/compare/@loopback/docs@4.0.0...@loopback/docs@4.0.1) (2022-01-11)
7
+
8
+ **Note:** Version bump only for package @loopback/docs
9
+
10
+
11
+
12
+
13
+
14
+ # [4.0.0](https://github.com/loopbackio/loopback-next/compare/@loopback/docs@3.27.1...@loopback/docs@4.0.0) (2021-11-18)
15
+
16
+
17
+ ### Features
18
+
19
+ * drop support for Node.js v10 ([9bcbbb3](https://github.com/loopbackio/loopback-next/commit/9bcbbb358ec3eabc3033d4e7e1c22b524a7069b3))
20
+ * support Node.js v17 ([8d86c03](https://github.com/loopbackio/loopback-next/commit/8d86c03cb7047e2b1f18d05870628ef5783e71b2))
21
+ * upgrade to TypeScript 4.5.2 ([72ece91](https://github.com/loopbackio/loopback-next/commit/72ece91289ecfdfd8747bb9888ad75db73e8ff4b))
22
+
23
+
24
+ ### BREAKING CHANGES
25
+
26
+ * drop support for Node.js v10
27
+
28
+ Co-authored-by: Francisco Buceta <frbuceta@gmail.com>
29
+ Signed-off-by: Rifa Achrinza <25147899+achrinza@users.noreply.github.com>
30
+
31
+
32
+
33
+
34
+
35
+ ## [3.27.1](https://github.com/loopbackio/loopback-next/compare/@loopback/docs@3.27.0...@loopback/docs@3.27.1) (2021-10-18)
36
+
37
+
38
+ ### Bug Fixes
39
+
40
+ * add missing component binding ([33df5b7](https://github.com/loopbackio/loopback-next/commit/33df5b7126630a929c41908d9a38c5d67113e139))
41
+ * **docs:** remove double word ([e40b91b](https://github.com/loopbackio/loopback-next/commit/e40b91b75d3f4a59fd494dd03ab7ebdc71f1a356))
42
+ * make sure scope filters are used for each fk on includes ([5d1a8c7](https://github.com/loopbackio/loopback-next/commit/5d1a8c71d6b79d43bd9b6530f7149fcb1756a71f)), closes [#6832](https://github.com/loopbackio/loopback-next/issues/6832)
43
+
44
+
45
+
46
+
47
+
48
+ # [3.27.0](https://github.com/loopbackio/loopback-next/compare/@loopback/docs@3.26.1...@loopback/docs@3.27.0) (2021-09-16)
49
+
50
+
51
+ ### Bug Fixes
52
+
53
+ * **docs:** fix example for array of number ([3cef26f](https://github.com/loopbackio/loopback-next/commit/3cef26f5e9b0c607373e4b30fae57ea1eba91864))
54
+
55
+
56
+ ### Features
57
+
58
+ * **cli:** update docs and apply suggested changes ([df01aa2](https://github.com/loopbackio/loopback-next/commit/df01aa2a4733cf6c2d4bafc6fba0c1a29e5b7967))
59
+ * **docs:** add loopback4-dynamic-datasource community extension ([813b30a](https://github.com/loopbackio/loopback-next/commit/813b30a6005dd5f7818fd2de611bfe4128d03754))
60
+
61
+
62
+
63
+
64
+
6
65
  ## [3.26.1](https://github.com/loopbackio/loopback-next/compare/@loopback/docs@3.26.0...@loopback/docs@3.26.1) (2021-07-15)
7
66
 
8
67
  **Note:** Version bump only for package @loopback/docs
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@loopback/docs",
3
3
  "description": "Documentation files rendered at [https://loopback.io](https://loopback.io)",
4
- "version": "3.26.1",
4
+ "version": "4.0.1",
5
5
  "keywords": [
6
6
  "LoopBack",
7
7
  "docs"
@@ -16,7 +16,7 @@
16
16
  "directory": "docs"
17
17
  },
18
18
  "engines": {
19
- "node": "^10.16 || 12 || 14 || 16"
19
+ "node": "12 || 14 || 16 || 17"
20
20
  },
21
21
  "scripts": {
22
22
  "version": "node ./bin/copy-readmes.js && node ./bin/copy-changelogs.js && cd .. && npm run tsdocs",
@@ -33,10 +33,10 @@
33
33
  ],
34
34
  "dependencies": {
35
35
  "fs-extra": "^10.0.0",
36
- "tslib": "^2.3.0"
36
+ "tslib": "^2.3.1"
37
37
  },
38
38
  "devDependencies": {
39
- "@loopback/build": "^7.0.0"
39
+ "@loopback/build": "^8.0.1"
40
40
  },
41
- "gitHead": "baac86fff18e0bc88a953814b6b181ebdbb446c3"
41
+ "gitHead": "4a8886403cd9cb3ae529cb69712f077623cba2c2"
42
42
  }
@@ -62,6 +62,9 @@ export class MyApplication extends BootMixin(
62
62
  constructor(options: ApplicationConfig = {}) {
63
63
  super(options);
64
64
 
65
+ // mount authorization component
66
+ this.component(AuthorizationComponent);
67
+
65
68
  // bind the authorizer provider
66
69
  this.bind('authorizationProviders.my-authorizer-provider')
67
70
  .toProvider(MyAuthorizationProvider)
@@ -71,6 +71,10 @@ list.
71
71
  <td><a href="https://www.npmjs.com/package/loopback-rabbitmq">loopback-rabbitmq</a></td>
72
72
  <td>An Rabbitmq extension that implements Queue consumers and producers</td>
73
73
  </tr>
74
+ <tr>
75
+ <td><a href="https://www.npmjs.com/package/loopback4-dynamic-datasource">loopback4-dynamic-datasource</a></td>
76
+ <td>Connect data sources dynamically during runtime</td>
77
+ </tr>
74
78
  </tbody>
75
79
  </table>
76
80
 
@@ -75,7 +75,7 @@ npm ci
75
75
  ```
76
76
 
77
77
  As part of `npm ci` or `npm i`, TypeScript project references are automatically
78
- updated for each package with in the monorepo.
78
+ updated for each package within the monorepo.
79
79
 
80
80
  The next step is to compile all packages from TypeScript to JavaScript:
81
81
 
@@ -213,7 +213,7 @@ We use two tools to keep our codebase healthy:
213
213
  - [ESLint](https://typescript-eslint.io/) to statically analyse our source code
214
214
  and detect common problems.
215
215
  - [Prettier](https://prettier.io/) to keep our code always formatted the same
216
- way, avoid style discussions in code reviews, and save everybody's time an
216
+ way, avoid style discussions in code reviews, and save everybody's time and
217
217
  energy.
218
218
 
219
219
  You can run both linters via the following npm script, just keep in mind that
package/site/Examples.md CHANGED
@@ -47,6 +47,10 @@ LoopBack 4 comes with the following example projects.
47
47
  An example that demonstrates GraphQL integration using
48
48
  [@loopback/graphql](https://github.com/loopbackio/loopback-next/tree/graphql/extensions/graphql).
49
49
 
50
+ - **[socketio](https://github.com/strongloop/loopback-next/tree/master/examples/socketio)**:
51
+ A basic implementation of Socket.IO using
52
+ [@loopback/socketio](https://github.com/strongloop/loopback-next/tree/socketio/extensions/socketio).
53
+
50
54
  ### Examples with migration
51
55
 
52
56
  - **[lb3-application](https://github.com/loopbackio/loopback-next/tree/master/examples/lb3-application)**:
@@ -284,6 +284,11 @@ await postRepository.findById('123', {
284
284
  });
285
285
  ```
286
286
 
287
+ {% include important.html content="The `limit` filter will be applied on a per parent record basis. So each parent record will include a max of `limit` number of records.
288
+ Previously, we had a bug where `limit` will be applied globally, so not all parent's records will include related objects depending on the `limit` value.
289
+ To keep backward compatability with this, in the weird case it is needed, you can use `totalLimit` instead. For more details [see here](https://github.com/loopbackio/loopback-next/issues/6832)
290
+ " %}
291
+
287
292
  #### Access included objects
288
293
 
289
294
  In the Node.js API, you can simply access the returned model instance with
@@ -149,7 +149,7 @@ The following are examples of how you can define array type properties:
149
149
  type: 'array',
150
150
  itemType: 'number',
151
151
  })
152
- numAry?: number[]; // e.g ['42', '998', '1']
152
+ numAry?: number[]; // e.g [42, 998, 1]
153
153
 
154
154
  @property({
155
155
  type: 'array',
@@ -27,7 +27,6 @@ export declare class AuthenticateActionProvider implements Provider<Authenticate
27
27
 
28
28
  ```ts
29
29
  context.bind('authentication.actions.authenticate').toProvider(AuthenticateActionProvider)
30
-
31
30
  ```
32
31
 
33
32
  ## Constructors
@@ -49,7 +49,6 @@ class MySequence implements SequenceHandler {
49
49
  }
50
50
  }
51
51
  }
52
-
53
52
  ```
54
53
 
55
54
 
@@ -36,7 +36,6 @@ class MyPassportStrategyProvider implements Provider<Strategy | undefined> {
36
36
  }
37
37
  }
38
38
  }
39
-
40
39
  ```
41
40
 
42
41
 
@@ -28,7 +28,6 @@ STRATEGY: BindingKey<AuthenticationStrategy | AuthenticationStrategy[] | undefin
28
28
  server
29
29
  .bind(AuthenticationBindings.STRATEGY)
30
30
  .toProvider(MyAuthenticationStrategy);
31
-
32
31
  ```
33
32
 
34
33
 
@@ -28,7 +28,6 @@ USER_PROFILE_FACTORY: BindingKey<UserProfileFactory<any>>
28
28
  server
29
29
  .bind(AuthenticationBindings.USER_PROFILE_FACTORY)
30
30
  .to(myUserProfileFactory);
31
-
32
31
  ```
33
32
 
34
33
 
@@ -44,7 +44,6 @@ verifyCredentials(credentials: C): Promise<U> {
44
44
  // throw a JS error, agnostic of the client type
45
45
  throw new Error('authentication failed');
46
46
  };
47
-
48
47
  ```
49
48
  A pseudo code for 3rd party authentication:
50
49
 
@@ -62,7 +61,6 @@ verifyCredentials(credentials: C): Promise<U> {
62
61
  throw e;
63
62
  }
64
63
  };
65
-
66
64
  ```
67
65
 
68
66
 
@@ -23,9 +23,9 @@ export interface AuthorizationOptions
23
23
 
24
24
  | Property | Type | Description |
25
25
  | --- | --- | --- |
26
- | [defaultDecision?](./authorization.authorizationoptions.defaultdecision.md) | [AuthorizationDecision.DENY](./authorization.authorizationdecision.deny.md) \| [AuthorizationDecision.ALLOW](./authorization.authorizationdecision.allow.md) | <i>(Optional)</i> Default decision if all authorizers vote for ABSTAIN If not set, default to <code>AuthorizationDecision.DENY</code> |
26
+ | [defaultDecision?](./authorization.authorizationoptions.defaultdecision.md) | [AuthorizationDecision.DENY](./authorization.authorizationdecision.md) \| [AuthorizationDecision.ALLOW](./authorization.authorizationdecision.md) | <i>(Optional)</i> Default decision if all authorizers vote for ABSTAIN If not set, default to <code>AuthorizationDecision.DENY</code> |
27
27
  | [defaultMetadata?](./authorization.authorizationoptions.defaultmetadata.md) | [AuthorizationMetadata](./authorization.authorizationmetadata.md) | <i>(Optional)</i> Default authorization metadata if a method is not decorated with <code>@authorize</code>. If not set, no authorization will be enforced for those methods that are not associated with authorization metadata. |
28
28
  | [defaultStatusCodeForDeny?](./authorization.authorizationoptions.defaultstatuscodefordeny.md) | number | <i>(Optional)</i> Default HTTP status code when the final decision is <code>AuthorizationDecision.DENY</code>. If not set, default to 403 |
29
- | [precedence?](./authorization.authorizationoptions.precedence.md) | [AuthorizationDecision.DENY](./authorization.authorizationdecision.deny.md) \| [AuthorizationDecision.ALLOW](./authorization.authorizationdecision.allow.md) | <i>(Optional)</i> Controls if Allow/Deny vote takes precedence and override other votes. If not set, default to <code>AuthorizationDecision.DENY</code>.<!-- -->Once a vote matches the <code>precedence</code>, it becomes the final decision. The rest of votes will be skipped. |
29
+ | [precedence?](./authorization.authorizationoptions.precedence.md) | [AuthorizationDecision.DENY](./authorization.authorizationdecision.md) \| [AuthorizationDecision.ALLOW](./authorization.authorizationdecision.md) | <i>(Optional)</i> Controls if Allow/Deny vote takes precedence and override other votes. If not set, default to <code>AuthorizationDecision.DENY</code>.<!-- -->Once a vote matches the <code>precedence</code>, it becomes the final decision. The rest of votes will be skipped. |
30
30
 
31
31
 
@@ -61,7 +61,7 @@ export declare function BootMixin<T extends MixinTarget<Application>>(superClass
61
61
  unsubscribe: (observer: loopbackContext.ContextEventObserver) => boolean;
62
62
  close: () => void;
63
63
  isSubscribed: (observer: loopbackContext.ContextObserver) => boolean;
64
- createView: <T_7 = unknown>(filter: BindingFilter, comparator?: loopbackContext.BindingComparator | undefined) => loopbackContext.ContextView<T_7>;
64
+ createView: <T_7 = unknown>(filter: BindingFilter, comparator?: loopbackContext.BindingComparator | undefined, options?: Omit<loopbackContext.ResolutionOptions, "session"> | undefined) => loopbackContext.ContextView<T_7>;
65
65
  contains: (key: loopbackContext.BindingAddress<unknown>) => boolean;
66
66
  isBound: (key: loopbackContext.BindingAddress<unknown>) => boolean;
67
67
  getOwnerContext: (keyOrBinding: Readonly<Binding<unknown>> | loopbackContext.BindingAddress<unknown>) => Context | undefined;
@@ -121,7 +121,7 @@ export declare function BootMixin<T extends MixinTarget<Application>>(superClass
121
121
 
122
122
  <b>Returns:</b>
123
123
 
124
- { new (...args: any\[\]): { projectRoot: string; bootOptions?: [BootOptions](./boot.bootoptions.md) \| undefined; booted: boolean; start(): Promise&lt;void&gt;; boot(): Promise&lt;void&gt;; booters(...booterCls: [Constructor](./context.constructor.md)<!-- -->&lt;[Booter](./boot.booter.md)<!-- -->&gt;\[\]): [Binding](./context.binding.md)<!-- -->\[\]; applicationBooter(subApp: [Application](./core.application.md) &amp; [Bootable](./boot.bootable.md)<!-- -->, filter?: [BindingFilter](./context.bindingfilter.md) \| undefined): [Binding](./context.binding.md)<!-- -->&lt;[Booter](./boot.booter.md)<!-- -->&gt;; component&lt;C extends [Component](./core.component.md) = [Component](./core.component.md)<!-- -->&gt;(componentCtor: [Constructor](./context.constructor.md)<!-- -->&lt;C&gt;, nameOrOptions?: string \| [BindingFromClassOptions](./context.bindingfromclassoptions.md) \| undefined): [Binding](./context.binding.md)<!-- -->&lt;C&gt;; mountComponentBooters(componentInstanceOrClass: [Constructor](./context.constructor.md)<!-- -->&lt;unknown&gt; \| [InstanceWithBooters](./boot.instancewithbooters.md)<!-- -->): void; readonly options: loopbackContext.[ApplicationConfig](./core.applicationconfig.md)<!-- -->; readonly state: string; controller: &lt;T\_1&gt;(controllerCtor: loopbackContext.[ControllerClass](./core.controllerclass.md)<!-- -->&lt;T\_1&gt;, nameOrOptions?: string \| [BindingFromClassOptions](./context.bindingfromclassoptions.md) \| undefined) =&gt; [Binding](./context.binding.md)<!-- -->&lt;T\_1&gt;; server: &lt;T\_2 extends loopbackContext.[Server](./core.server.md)<!-- -->&gt;(ctor: [Constructor](./context.constructor.md)<!-- -->&lt;T\_2&gt;, nameOrOptions?: string \| [BindingFromClassOptions](./context.bindingfromclassoptions.md) \| undefined) =&gt; [Binding](./context.binding.md)<!-- -->&lt;T\_2&gt;; servers: &lt;T\_3 extends loopbackContext.[Server](./core.server.md)<!-- -->&gt;(ctors: [Constructor](./context.constructor.md)<!-- -->&lt;T\_3&gt;\[\]) =&gt; [Binding](./context.binding.md)<!-- -->&lt;any&gt;\[\]; getServer: &lt;T\_4 extends loopbackContext.[Server](./core.server.md)<!-- -->&gt;(target: string \| [Constructor](./context.constructor.md)<!-- -->&lt;T\_4&gt;) =&gt; Promise&lt;T\_4&gt;; init: () =&gt; Promise&lt;void&gt;; onInit: (fn: () =&gt; loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- -->&lt;void&gt;) =&gt; [Binding](./context.binding.md)<!-- -->&lt;loopbackContext.[LifeCycleObserver](./core.lifecycleobserver.md)<!-- -->&gt;; onStart: (fn: () =&gt; loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- -->&lt;void&gt;) =&gt; [Binding](./context.binding.md)<!-- -->&lt;loopbackContext.[LifeCycleObserver](./core.lifecycleobserver.md)<!-- -->&gt;; stop: () =&gt; Promise&lt;void&gt;; onStop: (fn: () =&gt; loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- -->&lt;void&gt;) =&gt; [Binding](./context.binding.md)<!-- -->&lt;loopbackContext.[LifeCycleObserver](./core.lifecycleobserver.md)<!-- -->&gt;; setMetadata: (metadata: loopbackContext.[ApplicationMetadata](./core.applicationmetadata.md)<!-- -->) =&gt; void; lifeCycleObserver: &lt;T\_5 extends loopbackContext.[LifeCycleObserver](./core.lifecycleobserver.md)<!-- -->&gt;(ctor: [Constructor](./context.constructor.md)<!-- -->&lt;T\_5&gt;, nameOrOptions?: string \| [BindingFromClassOptions](./context.bindingfromclassoptions.md) \| undefined) =&gt; [Binding](./context.binding.md)<!-- -->&lt;T\_5&gt;; service: &lt;S&gt;(cls: loopbackContext.[ServiceOrProviderClass](./core.serviceorproviderclass.md)<!-- -->&lt;S&gt;, nameOrOptions?: string \| loopbackContext.[ServiceOptions](./core.serviceoptions.md) \| undefined) =&gt; [Binding](./context.binding.md)<!-- -->&lt;S&gt;; interceptor: (interceptor: loopbackContext.[Interceptor](./context.interceptor.md) \| [Constructor](./context.constructor.md)<!-- -->&lt;loopbackContext.[Provider](./context.provider.md)<!-- -->&lt;loopbackContext.[Interceptor](./context.interceptor.md)<!-- -->&gt;&gt;, nameOrOptions?: string \| loopbackContext.[InterceptorBindingOptions](./context.interceptorbindingoptions.md) \| undefined) =&gt; [Binding](./context.binding.md)<!-- -->&lt;loopbackContext.[Interceptor](./context.interceptor.md)<!-- -->&gt;; readonly name: string; readonly subscriptionManager: loopbackContext.[ContextSubscriptionManager](./context.contextsubscriptionmanager.md)<!-- -->; scope: [BindingScope](./context.bindingscope.md)<!-- -->; readonly parent: [Context](./context.context.md) \| undefined; emitEvent: &lt;T\_6 extends loopbackContext.[ContextEvent](./context.contextevent.md)<!-- -->&gt;(type: string, event: T\_6) =&gt; void; emitError: (err: unknown) =&gt; void; bind: &lt;ValueType = any&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType&gt;) =&gt; [Binding](./context.binding.md)<!-- -->&lt;ValueType&gt;; add: (binding: [Binding](./context.binding.md)<!-- -->&lt;unknown&gt;) =&gt; [Application](./core.application.md)<!-- -->; configure: &lt;ConfigValueType = any&gt;(key?: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt; \| undefined) =&gt; [Binding](./context.binding.md)<!-- -->&lt;ConfigValueType&gt;; getConfigAsValueOrPromise: &lt;ConfigValueType\_1&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;, propertyPath?: string \| undefined, resolutionOptions?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined) =&gt; loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- -->&lt;ConfigValueType\_1 \| undefined&gt;; getConfig: &lt;ConfigValueType\_2&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;, propertyPath?: string \| undefined, resolutionOptions?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined) =&gt; Promise&lt;ConfigValueType\_2 \| undefined&gt;; getConfigSync: &lt;ConfigValueType\_3&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;, propertyPath?: string \| undefined, resolutionOptions?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined) =&gt; ConfigValueType\_3 \| undefined; unbind: (key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;) =&gt; boolean; subscribe: (observer: loopbackContext.[ContextEventObserver](./context.contexteventobserver.md)<!-- -->) =&gt; loopbackContext.[Subscription](./context.subscription.md)<!-- -->; unsubscribe: (observer: loopbackContext.[ContextEventObserver](./context.contexteventobserver.md)<!-- -->) =&gt; boolean; close: () =&gt; void; isSubscribed: (observer: loopbackContext.[ContextObserver](./context.contextobserver.md)<!-- -->) =&gt; boolean; createView: &lt;T\_7 = unknown&gt;(filter: [BindingFilter](./context.bindingfilter.md)<!-- -->, comparator?: loopbackContext.[BindingComparator](./context.bindingcomparator.md) \| undefined) =&gt; loopbackContext.[ContextView](./context.contextview.md)<!-- -->&lt;T\_7&gt;; contains: (key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;) =&gt; boolean; isBound: (key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;) =&gt; boolean; getOwnerContext: (keyOrBinding: Readonly&lt;[Binding](./context.binding.md)<!-- -->&lt;unknown&gt;&gt; \| loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;) =&gt; [Context](./context.context.md) \| undefined; getScopedContext: (scope: [BindingScope.APPLICATION](./context.bindingscope.application.md) \| [BindingScope.SERVER](./context.bindingscope.server.md) \| [BindingScope.REQUEST](./context.bindingscope.request.md)<!-- -->) =&gt; [Context](./context.context.md) \| undefined; getResolutionContext: (binding: Readonly&lt;[Binding](./context.binding.md)<!-- -->&lt;unknown&gt;&gt;) =&gt; [Context](./context.context.md) \| undefined; isVisibleTo: (ctx: [Context](./context.context.md)<!-- -->) =&gt; boolean; find: &lt;ValueType\_1 = any&gt;(pattern?: string \| RegExp \| [BindingFilter](./context.bindingfilter.md) \| undefined) =&gt; Readonly&lt;[Binding](./context.binding.md)<!-- -->&lt;ValueType\_1&gt;&gt;\[\]; findByTag: &lt;ValueType\_2 = any&gt;(tagFilter: RegExp \| loopbackContext.[BindingTag](./context.bindingtag.md)<!-- -->) =&gt; Readonly&lt;[Binding](./context.binding.md)<!-- -->&lt;ValueType\_2&gt;&gt;\[\]; get: { &lt;ValueType\_3&gt;(keyWithPath: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_3&gt;, session?: loopbackContext.[ResolutionSession](./context.resolutionsession.md) \| undefined): Promise&lt;ValueType\_3&gt;; &lt;ValueType\_4&gt;(keyWithPath: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_4&gt;, options: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md)<!-- -->): Promise&lt;ValueType\_4 \| undefined&gt;; }; getSync: { &lt;ValueType\_5&gt;(keyWithPath: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_5&gt;, session?: loopbackContext.[ResolutionSession](./context.resolutionsession.md) \| undefined): ValueType\_5; &lt;ValueType\_6&gt;(keyWithPath: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_6&gt;, options?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined): ValueType\_6 \| undefined; }; getBinding: { &lt;ValueType\_7 = any&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_7&gt;): [Binding](./context.binding.md)<!-- -->&lt;ValueType\_7&gt;; &lt;ValueType\_8&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_8&gt;, options?: { optional?: boolean \| undefined; } \| undefined): [Binding](./context.binding.md)<!-- -->&lt;ValueType\_8&gt; \| undefined; }; findOrCreateBinding: &lt;T\_8&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;T\_8&gt;, policy?: loopbackContext.[BindingCreationPolicy](./context.bindingcreationpolicy.md) \| undefined) =&gt; [Binding](./context.binding.md)<!-- -->&lt;T\_8&gt;; getValueOrPromise: &lt;ValueType\_9&gt;(keyWithPath: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_9&gt;, optionsOrSession?: loopbackContext.[ResolutionOptionsOrSession](./context.resolutionoptionsorsession.md) \| undefined) =&gt; loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- -->&lt;ValueType\_9 \| undefined&gt;; toJSON: () =&gt; loopbackContext.[JSONObject](./context.jsonobject.md)<!-- -->; inspect: (options?: loopbackContext.[ContextInspectOptions](./context.contextinspectoptions.md) \| undefined) =&gt; loopbackContext.[JSONObject](./context.jsonobject.md)<!-- -->; on: { (eventName: "bind" \| "unbind", listener: loopbackContext.[ContextEventListener](./context.contexteventlistener.md)<!-- -->): [Application](./core.application.md)<!-- -->; (event: string \| symbol, listener: (...args: any\[\]) =&gt; void): [Application](./core.application.md)<!-- -->; }; once: { (eventName: "bind" \| "unbind", listener: loopbackContext.[ContextEventListener](./context.contexteventlistener.md)<!-- -->): [Application](./core.application.md)<!-- -->; (event: string \| symbol, listener: (...args: any\[\]) =&gt; void): [Application](./core.application.md)<!-- -->; }; addListener: (event: string \| symbol, listener: (...args: any\[\]) =&gt; void) =&gt; [Application](./core.application.md)<!-- -->; removeListener: (event: string \| symbol, listener: (...args: any\[\]) =&gt; void) =&gt; [Application](./core.application.md)<!-- -->; off: (event: string \| symbol, listener: (...args: any\[\]) =&gt; void) =&gt; [Application](./core.application.md)<!-- -->; removeAllListeners: (event?: string \| symbol \| undefined) =&gt; [Application](./core.application.md)<!-- -->; setMaxListeners: (n: number) =&gt; [Application](./core.application.md)<!-- -->; getMaxListeners: () =&gt; number; listeners: (event: string \| symbol) =&gt; Function\[\]; rawListeners: (event: string \| symbol) =&gt; Function\[\]; emit: (event: string \| symbol, ...args: any\[\]) =&gt; boolean; listenerCount: (type: string \| symbol) =&gt; number; prependListener: (event: string \| symbol, listener: (...args: any\[\]) =&gt; void) =&gt; [Application](./core.application.md)<!-- -->; prependOnceListener: (event: string \| symbol, listener: (...args: any\[\]) =&gt; void) =&gt; [Application](./core.application.md)<!-- -->; eventNames: () =&gt; (string \| symbol)\[\]; }; } &amp; T
124
+ { new (...args: any\[\]): { projectRoot: string; bootOptions?: [BootOptions](./boot.bootoptions.md) \| undefined; booted: boolean; start(): Promise&lt;void&gt;; boot(): Promise&lt;void&gt;; booters(...booterCls: [Constructor](./context.constructor.md)<!-- -->&lt;[Booter](./boot.booter.md)<!-- -->&gt;\[\]): [Binding](./context.binding.md)<!-- -->\[\]; applicationBooter(subApp: [Application](./core.application.md) &amp; [Bootable](./boot.bootable.md)<!-- -->, filter?: [BindingFilter](./context.bindingfilter.md) \| undefined): [Binding](./context.binding.md)<!-- -->&lt;[Booter](./boot.booter.md)<!-- -->&gt;; component&lt;C extends [Component](./core.component.md) = [Component](./core.component.md)<!-- -->&gt;(componentCtor: [Constructor](./context.constructor.md)<!-- -->&lt;C&gt;, nameOrOptions?: string \| [BindingFromClassOptions](./context.bindingfromclassoptions.md) \| undefined): [Binding](./context.binding.md)<!-- -->&lt;C&gt;; mountComponentBooters(componentInstanceOrClass: [Constructor](./context.constructor.md)<!-- -->&lt;unknown&gt; \| [InstanceWithBooters](./boot.instancewithbooters.md)<!-- -->): void; readonly options: loopbackContext.[ApplicationConfig](./core.applicationconfig.md)<!-- -->; readonly state: string; controller: &lt;T\_1&gt;(controllerCtor: loopbackContext.[ControllerClass](./core.controllerclass.md)<!-- -->&lt;T\_1&gt;, nameOrOptions?: string \| [BindingFromClassOptions](./context.bindingfromclassoptions.md) \| undefined) =&gt; [Binding](./context.binding.md)<!-- -->&lt;T\_1&gt;; server: &lt;T\_2 extends loopbackContext.[Server](./core.server.md)<!-- -->&gt;(ctor: [Constructor](./context.constructor.md)<!-- -->&lt;T\_2&gt;, nameOrOptions?: string \| [BindingFromClassOptions](./context.bindingfromclassoptions.md) \| undefined) =&gt; [Binding](./context.binding.md)<!-- -->&lt;T\_2&gt;; servers: &lt;T\_3 extends loopbackContext.[Server](./core.server.md)<!-- -->&gt;(ctors: [Constructor](./context.constructor.md)<!-- -->&lt;T\_3&gt;\[\]) =&gt; [Binding](./context.binding.md)<!-- -->&lt;any&gt;\[\]; getServer: &lt;T\_4 extends loopbackContext.[Server](./core.server.md)<!-- -->&gt;(target: string \| [Constructor](./context.constructor.md)<!-- -->&lt;T\_4&gt;) =&gt; Promise&lt;T\_4&gt;; init: () =&gt; Promise&lt;void&gt;; onInit: (fn: () =&gt; loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- -->&lt;void&gt;) =&gt; [Binding](./context.binding.md)<!-- -->&lt;loopbackContext.[LifeCycleObserver](./core.lifecycleobserver.md)<!-- -->&gt;; onStart: (fn: () =&gt; loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- -->&lt;void&gt;) =&gt; [Binding](./context.binding.md)<!-- -->&lt;loopbackContext.[LifeCycleObserver](./core.lifecycleobserver.md)<!-- -->&gt;; stop: () =&gt; Promise&lt;void&gt;; onStop: (fn: () =&gt; loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- -->&lt;void&gt;) =&gt; [Binding](./context.binding.md)<!-- -->&lt;loopbackContext.[LifeCycleObserver](./core.lifecycleobserver.md)<!-- -->&gt;; setMetadata: (metadata: loopbackContext.[ApplicationMetadata](./core.applicationmetadata.md)<!-- -->) =&gt; void; lifeCycleObserver: &lt;T\_5 extends loopbackContext.[LifeCycleObserver](./core.lifecycleobserver.md)<!-- -->&gt;(ctor: [Constructor](./context.constructor.md)<!-- -->&lt;T\_5&gt;, nameOrOptions?: string \| [BindingFromClassOptions](./context.bindingfromclassoptions.md) \| undefined) =&gt; [Binding](./context.binding.md)<!-- -->&lt;T\_5&gt;; service: &lt;S&gt;(cls: loopbackContext.[ServiceOrProviderClass](./core.serviceorproviderclass.md)<!-- -->&lt;S&gt;, nameOrOptions?: string \| loopbackContext.[ServiceOptions](./core.serviceoptions.md) \| undefined) =&gt; [Binding](./context.binding.md)<!-- -->&lt;S&gt;; interceptor: (interceptor: loopbackContext.[Interceptor](./context.interceptor.md) \| [Constructor](./context.constructor.md)<!-- -->&lt;loopbackContext.[Provider](./context.provider.md)<!-- -->&lt;loopbackContext.[Interceptor](./context.interceptor.md)<!-- -->&gt;&gt;, nameOrOptions?: string \| loopbackContext.[InterceptorBindingOptions](./context.interceptorbindingoptions.md) \| undefined) =&gt; [Binding](./context.binding.md)<!-- -->&lt;loopbackContext.[Interceptor](./context.interceptor.md)<!-- -->&gt;; readonly name: string; readonly subscriptionManager: loopbackContext.[ContextSubscriptionManager](./context.contextsubscriptionmanager.md)<!-- -->; scope: [BindingScope](./context.bindingscope.md)<!-- -->; readonly parent: [Context](./context.context.md) \| undefined; emitEvent: &lt;T\_6 extends loopbackContext.[ContextEvent](./context.contextevent.md)<!-- -->&gt;(type: string, event: T\_6) =&gt; void; emitError: (err: unknown) =&gt; void; bind: &lt;ValueType = any&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType&gt;) =&gt; [Binding](./context.binding.md)<!-- -->&lt;ValueType&gt;; add: (binding: [Binding](./context.binding.md)<!-- -->&lt;unknown&gt;) =&gt; [Application](./core.application.md)<!-- -->; configure: &lt;ConfigValueType = any&gt;(key?: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt; \| undefined) =&gt; [Binding](./context.binding.md)<!-- -->&lt;ConfigValueType&gt;; getConfigAsValueOrPromise: &lt;ConfigValueType\_1&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;, propertyPath?: string \| undefined, resolutionOptions?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined) =&gt; loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- -->&lt;ConfigValueType\_1 \| undefined&gt;; getConfig: &lt;ConfigValueType\_2&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;, propertyPath?: string \| undefined, resolutionOptions?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined) =&gt; Promise&lt;ConfigValueType\_2 \| undefined&gt;; getConfigSync: &lt;ConfigValueType\_3&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;, propertyPath?: string \| undefined, resolutionOptions?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined) =&gt; ConfigValueType\_3 \| undefined; unbind: (key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;) =&gt; boolean; subscribe: (observer: loopbackContext.[ContextEventObserver](./context.contexteventobserver.md)<!-- -->) =&gt; loopbackContext.[Subscription](./context.subscription.md)<!-- -->; unsubscribe: (observer: loopbackContext.[ContextEventObserver](./context.contexteventobserver.md)<!-- -->) =&gt; boolean; close: () =&gt; void; isSubscribed: (observer: loopbackContext.[ContextObserver](./context.contextobserver.md)<!-- -->) =&gt; boolean; createView: &lt;T\_7 = unknown&gt;(filter: [BindingFilter](./context.bindingfilter.md)<!-- -->, comparator?: loopbackContext.[BindingComparator](./context.bindingcomparator.md) \| undefined, options?: Omit&lt;loopbackContext.[ResolutionOptions](./context.resolutionoptions.md)<!-- -->, "session"&gt; \| undefined) =&gt; loopbackContext.[ContextView](./context.contextview.md)<!-- -->&lt;T\_7&gt;; contains: (key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;) =&gt; boolean; isBound: (key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;) =&gt; boolean; getOwnerContext: (keyOrBinding: Readonly&lt;[Binding](./context.binding.md)<!-- -->&lt;unknown&gt;&gt; \| loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;unknown&gt;) =&gt; [Context](./context.context.md) \| undefined; getScopedContext: (scope: [BindingScope.APPLICATION](./context.bindingscope.md) \| [BindingScope.SERVER](./context.bindingscope.md) \| [BindingScope.REQUEST](./context.bindingscope.md)<!-- -->) =&gt; [Context](./context.context.md) \| undefined; getResolutionContext: (binding: Readonly&lt;[Binding](./context.binding.md)<!-- -->&lt;unknown&gt;&gt;) =&gt; [Context](./context.context.md) \| undefined; isVisibleTo: (ctx: [Context](./context.context.md)<!-- -->) =&gt; boolean; find: &lt;ValueType\_1 = any&gt;(pattern?: string \| RegExp \| [BindingFilter](./context.bindingfilter.md) \| undefined) =&gt; Readonly&lt;[Binding](./context.binding.md)<!-- -->&lt;ValueType\_1&gt;&gt;\[\]; findByTag: &lt;ValueType\_2 = any&gt;(tagFilter: RegExp \| loopbackContext.[BindingTag](./context.bindingtag.md)<!-- -->) =&gt; Readonly&lt;[Binding](./context.binding.md)<!-- -->&lt;ValueType\_2&gt;&gt;\[\]; get: { &lt;ValueType\_3&gt;(keyWithPath: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_3&gt;, session?: loopbackContext.[ResolutionSession](./context.resolutionsession.md) \| undefined): Promise&lt;ValueType\_3&gt;; &lt;ValueType\_4&gt;(keyWithPath: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_4&gt;, options: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md)<!-- -->): Promise&lt;ValueType\_4 \| undefined&gt;; }; getSync: { &lt;ValueType\_5&gt;(keyWithPath: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_5&gt;, session?: loopbackContext.[ResolutionSession](./context.resolutionsession.md) \| undefined): ValueType\_5; &lt;ValueType\_6&gt;(keyWithPath: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_6&gt;, options?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined): ValueType\_6 \| undefined; }; getBinding: { &lt;ValueType\_7 = any&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_7&gt;): [Binding](./context.binding.md)<!-- -->&lt;ValueType\_7&gt;; &lt;ValueType\_8&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_8&gt;, options?: { optional?: boolean \| undefined; } \| undefined): [Binding](./context.binding.md)<!-- -->&lt;ValueType\_8&gt; \| undefined; }; findOrCreateBinding: &lt;T\_8&gt;(key: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;T\_8&gt;, policy?: loopbackContext.[BindingCreationPolicy](./context.bindingcreationpolicy.md) \| undefined) =&gt; [Binding](./context.binding.md)<!-- -->&lt;T\_8&gt;; getValueOrPromise: &lt;ValueType\_9&gt;(keyWithPath: loopbackContext.[BindingAddress](./context.bindingaddress.md)<!-- -->&lt;ValueType\_9&gt;, optionsOrSession?: loopbackContext.[ResolutionOptionsOrSession](./context.resolutionoptionsorsession.md) \| undefined) =&gt; loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- -->&lt;ValueType\_9 \| undefined&gt;; toJSON: () =&gt; loopbackContext.[JSONObject](./context.jsonobject.md)<!-- -->; inspect: (options?: loopbackContext.[ContextInspectOptions](./context.contextinspectoptions.md) \| undefined) =&gt; loopbackContext.[JSONObject](./context.jsonobject.md)<!-- -->; on: { (eventName: "bind" \| "unbind", listener: loopbackContext.[ContextEventListener](./context.contexteventlistener.md)<!-- -->): [Application](./core.application.md)<!-- -->; (event: string \| symbol, listener: (...args: any\[\]) =&gt; void): [Application](./core.application.md)<!-- -->; }; once: { (eventName: "bind" \| "unbind", listener: loopbackContext.[ContextEventListener](./context.contexteventlistener.md)<!-- -->): [Application](./core.application.md)<!-- -->; (event: string \| symbol, listener: (...args: any\[\]) =&gt; void): [Application](./core.application.md)<!-- -->; }; addListener: (event: string \| symbol, listener: (...args: any\[\]) =&gt; void) =&gt; [Application](./core.application.md)<!-- -->; removeListener: (event: string \| symbol, listener: (...args: any\[\]) =&gt; void) =&gt; [Application](./core.application.md)<!-- -->; off: (event: string \| symbol, listener: (...args: any\[\]) =&gt; void) =&gt; [Application](./core.application.md)<!-- -->; removeAllListeners: (event?: string \| symbol \| undefined) =&gt; [Application](./core.application.md)<!-- -->; setMaxListeners: (n: number) =&gt; [Application](./core.application.md)<!-- -->; getMaxListeners: () =&gt; number; listeners: (event: string \| symbol) =&gt; Function\[\]; rawListeners: (event: string \| symbol) =&gt; Function\[\]; emit: (event: string \| symbol, ...args: any\[\]) =&gt; boolean; listenerCount: (type: string \| symbol) =&gt; number; prependListener: (event: string \| symbol, listener: (...args: any\[\]) =&gt; void) =&gt; [Application](./core.application.md)<!-- -->; prependOnceListener: (event: string \| symbol, listener: (...args: any\[\]) =&gt; void) =&gt; [Application](./core.application.md)<!-- -->; eventNames: () =&gt; (string \| symbol)\[\]; }; } &amp; T
125
125
 
126
126
  A new class that extends the super class with boot related methods
127
127
 
@@ -23,6 +23,6 @@ export declare type AliasBindingSource<T> = {
23
23
  value: BindingAddress<T>;
24
24
  };
25
25
  ```
26
- <b>References:</b> [BindingType.ALIAS](./context.bindingtype.alias.md)<!-- -->, [BindingAddress](./context.bindingaddress.md)
26
+ <b>References:</b> [BindingType.ALIAS](./context.bindingtype.md)<!-- -->, [BindingAddress](./context.bindingaddress.md)
27
27
 
28
28
 
@@ -27,7 +27,6 @@ The following code matches bindings with tag `{controller: 'A'}` or `{controller
27
27
 
28
28
  ```ts
29
29
  ctx.findByTag({controller: ANY_TAG_VALUE})
30
-
31
30
  ```
32
31
 
33
32
 
@@ -39,7 +39,6 @@ class MyController {
39
39
  return `Hello, ${name}`;
40
40
  }
41
41
  }
42
-
43
42
  ```
44
43
  `AsyncProxy<MyController>` will be:
45
44
 
@@ -49,7 +48,6 @@ class MyController {
49
48
  greet(name: string): ValueOrPromise<string>; // the return type becomes `ValueOrPromise<string>`
50
49
  hello(name: string): Promise<string>; // the same as MyController
51
50
  }
52
-
53
51
  ```
54
52
 
55
53
 
@@ -40,7 +40,6 @@ const serverTemplate = (binding: Binding) =>
40
40
 
41
41
  const serverBinding = new Binding<RestServer>('servers.RestServer1');
42
42
  serverBinding.apply(serverTemplate);
43
-
44
43
  ```
45
44
 
46
45
 
@@ -37,7 +37,6 @@ static configure<V = unknown>(key: BindingAddress): Binding<V>;
37
37
  ```ts
38
38
  const configBinding = Binding.configure('servers.RestServer.server1')
39
39
  .to({port: 3000});
40
-
41
40
  ```
42
41
 
43
42
 
@@ -46,7 +46,6 @@ if (isPromiseLike(result)) {
46
46
  } else {
47
47
  doSomething(result);
48
48
  }
49
-
50
49
  ```
51
50
 
52
51
 
@@ -46,7 +46,6 @@ binding.tag('controller', 'rest');
46
46
  // `{name: 'my-controller'}` (name = 'name', value = 'my-controller')
47
47
  binding.tag('controller', {name: 'my-controller'});
48
48
 
49
-
50
49
  ```
51
50
 
52
51
 
@@ -36,7 +36,6 @@ this
36
36
 
37
37
  ```ts
38
38
  ctx.bind('appName').to('CodeHub');
39
-
40
39
  ```
41
40
 
42
41
 
@@ -42,7 +42,6 @@ ctx.bind('now').toDynamicValue(() => Date.now());
42
42
  ctx.bind('something').toDynamicValue(
43
43
  async () => Promise.delay(10).then(doSomething)
44
44
  );
45
-
46
45
  ```
47
46
 
48
47
 
@@ -44,7 +44,6 @@ class MyService {
44
44
 
45
45
  const ctx = new Context();
46
46
  ctx.bind('services.MyService').toInjectable(MyService);
47
-
48
47
  ```
49
48
 
50
49
 
@@ -43,7 +43,6 @@ export class DateProvider implements Provider<Date> {
43
43
  return new Date(param);
44
44
  }
45
45
  }
46
-
47
46
  ```
48
47
 
49
48
 
@@ -26,7 +26,6 @@ export interface BindingComparator
26
26
 
27
27
  ```ts
28
28
  const compareByKey: BindingComparator = (a, b) => a.key.localeCompare(b.key);
29
-
30
29
  ```
31
30
 
32
31
 
@@ -31,7 +31,6 @@ Ideally, `BindingFilter` should be declared as a type guard as follows:
31
31
  export type BindingFilterGuard<ValueType = unknown> = (
32
32
  binding: Readonly<Binding<unknown>>,
33
33
  ) => binding is Readonly<Binding<ValueType>>;
34
-
35
34
  ```
36
35
  But TypeScript treats the following types as incompatible and does not accept type 1 for type 2.
37
36
 
@@ -39,7 +39,6 @@ static create<V>(key: string, propertyPath?: string): BindingKey<V>;
39
39
  BindingKey.create<string>('application.name');
40
40
  BindingKey.create<number>('config', 'rest.port);
41
41
  BindingKey.create<number>('config#rest.port');
42
-
43
42
  ```
44
43
 
45
44
 
@@ -23,6 +23,6 @@ export declare type ClassBindingSource<T> = {
23
23
  value: Constructor<T>;
24
24
  };
25
25
  ```
26
- <b>References:</b> [BindingType.CLASS](./context.bindingtype.class.md)<!-- -->, [Constructor](./context.constructor.md)
26
+ <b>References:</b> [BindingType.CLASS](./context.bindingtype.md)<!-- -->, [Constructor](./context.constructor.md)
27
27
 
28
28
 
@@ -23,6 +23,6 @@ export declare type ConstantBindingSource<T> = {
23
23
  value: T;
24
24
  };
25
25
  ```
26
- <b>References:</b> [BindingType.CONSTANT](./context.bindingtype.constant.md)
26
+ <b>References:</b> [BindingType.CONSTANT](./context.bindingtype.md)
27
27
 
28
28
 
@@ -44,7 +44,6 @@ const appCtx = new Context('application');
44
44
  // Create a new child context called "request" and inheriting bindings
45
45
  // from `appCtx`
46
46
  const reqCtx = new Context(appCtx, 'request');
47
-
48
47
  ```
49
48
 
50
49
 
@@ -31,7 +31,6 @@ export class Application extends Context {
31
31
  super('application');
32
32
  this._debug = debug;
33
33
  }
34
-
35
34
  ```
36
35
 
37
36
 
@@ -18,7 +18,7 @@ Create a view of the context chain with the given binding filter
18
18
  <b>Signature:</b>
19
19
 
20
20
  ```typescript
21
- createView<T = unknown>(filter: BindingFilter, comparator?: BindingComparator): ContextView<T>;
21
+ createView<T = unknown>(filter: BindingFilter, comparator?: BindingComparator, options?: Omit<ResolutionOptions, 'session'>): ContextView<T>;
22
22
  ```
23
23
 
24
24
  ## Parameters
@@ -27,6 +27,7 @@ createView<T = unknown>(filter: BindingFilter, comparator?: BindingComparator):
27
27
  | --- | --- | --- |
28
28
  | filter | [BindingFilter](./context.bindingfilter.md) | A function to match bindings |
29
29
  | comparator | [BindingComparator](./context.bindingcomparator.md) | A function to sort matched bindings |
30
+ | options | Omit&lt;[ResolutionOptions](./context.resolutionoptions.md)<!-- -->, 'session'&gt; | Resolution options |
30
31
 
31
32
  <b>Returns:</b>
32
33
 
@@ -47,7 +47,6 @@ const config = await ctx.get<RestComponentConfig>('config#rest');
47
47
  // get "a" property of "numbers" property from the value bound to "data"
48
48
  ctx.bind('data').to({numbers: {a: 1, b: 2}, port: 3000});
49
49
  const a = await ctx.get<number>('data#numbers.a');
50
-
51
50
  ```
52
51
 
53
52
 
@@ -43,7 +43,6 @@ A promise of the bound value, or a promise of undefined when the optional bindin
43
43
  const config = await ctx.get<RestComponentConfig>('config#rest', {
44
44
  optional: true
45
45
  });
46
-
47
46
  ```
48
47
 
49
48
 
@@ -35,7 +35,6 @@ export class Application extends Context {
35
35
  protected getDebugNamespace() {
36
36
  return 'loopback:context:application';
37
37
  }
38
-
39
38
  ```
40
39
 
41
40
 
@@ -25,7 +25,7 @@ getScopedContext(scope: BindingScope.APPLICATION | BindingScope.SERVER | Binding
25
25
 
26
26
  | Parameter | Type | Description |
27
27
  | --- | --- | --- |
28
- | scope | [BindingScope.APPLICATION](./context.bindingscope.application.md) \| [BindingScope.SERVER](./context.bindingscope.server.md) \| [BindingScope.REQUEST](./context.bindingscope.request.md) | Binding scope |
28
+ | scope | [BindingScope.APPLICATION](./context.bindingscope.md) \| [BindingScope.SERVER](./context.bindingscope.md) \| [BindingScope.REQUEST](./context.bindingscope.md) | Binding scope |
29
29
 
30
30
  <b>Returns:</b>
31
31
 
@@ -45,7 +45,6 @@ const app = ctx.getSync<Application>('application.instance');
45
45
 
46
46
  // get "rest" property from the value bound to "config"
47
47
  const config = await ctx.getSync<RestComponentConfig>('config#rest');
48
-
49
48
  ```
50
49
 
51
50
 
@@ -45,7 +45,6 @@ The bound value, or undefined when an optional binding is not found.
45
45
  const config = await ctx.getSync<RestComponentConfig>('config#rest', {
46
46
  optional: true
47
47
  });
48
-
49
48
  ```
50
49
 
51
50
 
@@ -52,7 +52,7 @@ export declare class Context extends EventEmitter
52
52
  | [close()](./context.context.close.md) | | Close the context: clear observers, stop notifications, and remove event listeners from its parent context. |
53
53
  | [configure(key)](./context.context.configure.md) | | Create a corresponding binding for configuration of the target bound by the given key in the context.<!-- -->For example, <code>ctx.configure('controllers.MyController').to({x: 1})</code> will create binding <code>controllers.MyController:$config</code> with value <code>{x: 1}</code>. |
54
54
  | [contains(key)](./context.context.contains.md) | | Check if a binding exists with the given key in the local context without delegating to the parent context |
55
- | [createView(filter, comparator)](./context.context.createview.md) | | Create a view of the context chain with the given binding filter |
55
+ | [createView(filter, comparator, options)](./context.context.createview.md) | | Create a view of the context chain with the given binding filter |
56
56
  | [debug(args)](./context.context.debug.md) | | Wrap the debug statement so that it always print out the context name as the prefix |
57
57
  | [emitError(err)](./context.context.emiterror.md) | | Emit an <code>error</code> event |
58
58
  | [emitEvent(type, event)](./context.context.emitevent.md) | | A strongly-typed method to emit context events |
@@ -40,7 +40,6 @@ If you need to unbind a binding owned by a parent context, use the code below:
40
40
  ```ts
41
41
  const ownerCtx = ctx.getOwnerContext(key);
42
42
  return ownerCtx != null && ownerCtx.unbind(key);
43
-
44
43
  ```
45
44
 
46
45
 
@@ -18,7 +18,7 @@ Create a context view
18
18
  <b>Signature:</b>
19
19
 
20
20
  ```typescript
21
- constructor(context: Context, filter: BindingFilter, comparator?: BindingComparator | undefined);
21
+ constructor(context: Context, filter: BindingFilter, comparator?: BindingComparator | undefined, resolutionOptions?: Omit<ResolutionOptions, "session"> | undefined);
22
22
  ```
23
23
 
24
24
  ## Parameters
@@ -28,5 +28,6 @@ constructor(context: Context, filter: BindingFilter, comparator?: BindingCompara
28
28
  | context | [Context](./context.context.md) | Context object to watch |
29
29
  | filter | [BindingFilter](./context.bindingfilter.md) | Binding filter to match bindings of interest |
30
30
  | comparator | [BindingComparator](./context.bindingcomparator.md) \| undefined | Comparator to sort the matched bindings |
31
+ | resolutionOptions | Omit&lt;[ResolutionOptions](./context.resolutionoptions.md)<!-- -->, "session"&gt; \| undefined | |
31
32
 
32
33