@loopback/docs 4.0.4 → 5.1.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 (691) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/LICENSE +2 -2
  3. package/package.json +8 -8
  4. package/site/BelongsTo-relation.md +1 -1
  5. package/site/CHANGELOG.md +1 -0
  6. package/site/Context.md +1 -1
  7. package/site/Copyright-generator.md +8 -7
  8. package/site/Crafting-LoopBack-4.md +3 -3
  9. package/site/DEVELOPING.md +2 -2
  10. package/site/Discovering-models.md +5 -0
  11. package/site/Dynamic-models-repositories-controllers.md +2 -2
  12. package/site/Implementing-features.shelved.md +1 -1
  13. package/site/Include-filter.md +1 -1
  14. package/site/Interceptor-generator.md +1 -1
  15. package/site/LB3-vs-LB4-request-response-cycle.md +4 -4
  16. package/site/MONOREPO.md +1 -0
  17. package/site/Model-generator.md +1 -1
  18. package/site/Model.md +2 -2
  19. package/site/Polymorphic-relation.md +123 -0
  20. package/site/REST-middleware-sequence.md +1 -1
  21. package/site/ReferencesMany-relation.md +379 -0
  22. package/site/Relation-generator.md +1 -0
  23. package/site/Relations.md +1 -0
  24. package/site/Repository-generator.md +2 -2
  25. package/site/Repository.md +1 -1
  26. package/site/Request-response-cycle.md +6 -6
  27. package/site/Rest-Crud-generator.md +7 -1
  28. package/site/Serving-static-files.md +1 -1
  29. package/site/Testing-your-application.md +1 -1
  30. package/site/apidocs/apiconnect.apiconnectspecenhancer._constructor_.md +1 -1
  31. package/site/apidocs/authentication-jwt.myuserservice.md +1 -1
  32. package/site/apidocs/authentication-jwt.refreshtoken._constructor_.md +1 -1
  33. package/site/apidocs/authentication-jwt.refreshtokenrepository.md +1 -1
  34. package/site/apidocs/authentication-jwt.user._constructor_.md +1 -1
  35. package/site/apidocs/authentication-jwt.usercredentials._constructor_.md +1 -1
  36. package/site/apidocs/authentication-jwt.usercredentialsrepository.md +1 -1
  37. package/site/apidocs/authentication-jwt.userrepository.md +1 -1
  38. package/site/apidocs/authentication-passport.strategyadapter._constructor_.md +1 -1
  39. package/site/apidocs/authentication-passport.strategyadapter.authenticate.md +1 -1
  40. package/site/apidocs/authentication.authenticateactionprovider._constructor_.md +1 -1
  41. package/site/apidocs/authentication.authenticateactionprovider.md +1 -1
  42. package/site/apidocs/authentication.authenticationmiddlewareprovider.md +1 -1
  43. package/site/apidocs/authentication.authenticationstrategyprovider._constructor_.md +1 -1
  44. package/site/apidocs/authentication.authenticationstrategyprovider.md +1 -1
  45. package/site/apidocs/authentication.authmetadataprovider._constructor_.md +1 -1
  46. package/site/apidocs/authentication.authmetadataprovider.md +1 -1
  47. package/site/apidocs/authorization.authorizationinterceptor._constructor_.md +1 -1
  48. package/site/apidocs/authorization.authorizationinterceptor.md +1 -1
  49. package/site/apidocs/authorization.authorizemethoddecoratorfactory.md +1 -1
  50. package/site/apidocs/authorization.authorizemethoddecoratorfactory.mergewithown.md +2 -2
  51. package/site/apidocs/boot.bootmixin.md +44 -44
  52. package/site/apidocs/boot.bootstrapper._constructor_.md +1 -1
  53. package/site/apidocs/boot.bootstrapper.boot.md +2 -2
  54. package/site/apidocs/boot.controllerbooter._constructor_.md +1 -1
  55. package/site/apidocs/boot.createbooterforcomponentapplication.md +1 -1
  56. package/site/apidocs/boot.createcomponentapplicationbooterbinding.md +1 -1
  57. package/site/apidocs/boot.datasourcebooter._constructor_.md +1 -1
  58. package/site/apidocs/boot.interceptorproviderbooter._constructor_.md +1 -1
  59. package/site/apidocs/boot.lifecycleobserverbooter._constructor_.md +1 -1
  60. package/site/apidocs/boot.modelapibooter._constructor_.md +1 -1
  61. package/site/apidocs/boot.modelbooter._constructor_.md +1 -1
  62. package/site/apidocs/boot.repositorybooter._constructor_.md +1 -1
  63. package/site/apidocs/boot.servicebooter._constructor_.md +1 -1
  64. package/site/apidocs/context-explorer.contextexplorercomponent._constructor_.md +1 -1
  65. package/site/apidocs/context-explorer.contextgraph._constructor_.md +1 -1
  66. package/site/apidocs/context-explorer.rendergraph.md +1 -1
  67. package/site/apidocs/context.asglobalinterceptor.md +1 -1
  68. package/site/apidocs/context.asresolutionoptions.md +1 -1
  69. package/site/apidocs/context.asserttargettype.md +1 -1
  70. package/site/apidocs/context.binding._constructor_.md +1 -1
  71. package/site/apidocs/context.binding.getvalue.md +1 -1
  72. package/site/apidocs/context.binding.getvalue_1.md +1 -1
  73. package/site/apidocs/context.binding.inspect.md +1 -1
  74. package/site/apidocs/context.bindingkey.buildkeyforconfig.md +1 -1
  75. package/site/apidocs/context.bindingkey.create.md +1 -1
  76. package/site/apidocs/context.bindingkey.generate.md +1 -1
  77. package/site/apidocs/context.bindingtemplatefor.md +1 -1
  78. package/site/apidocs/context.comparebindingsbytag.md +2 -2
  79. package/site/apidocs/context.comparebyorder.md +1 -1
  80. package/site/apidocs/context.config.getter.md +1 -1
  81. package/site/apidocs/context.config.view.md +1 -1
  82. package/site/apidocs/context.configbindingkeyfor.md +1 -1
  83. package/site/apidocs/context.configurationresolver.getconfigasvalueorpromise.md +2 -2
  84. package/site/apidocs/context.context._constructor_.md +2 -2
  85. package/site/apidocs/context.context._mergewithparent.md +1 -1
  86. package/site/apidocs/context.context.configure.md +1 -1
  87. package/site/apidocs/context.context.createview.md +2 -2
  88. package/site/apidocs/context.context.find.md +1 -1
  89. package/site/apidocs/context.context.findorcreatebinding.md +1 -1
  90. package/site/apidocs/context.context.get.md +1 -1
  91. package/site/apidocs/context.context.getbinding_1.md +1 -1
  92. package/site/apidocs/context.context.getconfig.md +2 -2
  93. package/site/apidocs/context.context.getconfigasvalueorpromise.md +2 -2
  94. package/site/apidocs/context.context.getconfigsync.md +2 -2
  95. package/site/apidocs/context.context.getsync.md +1 -1
  96. package/site/apidocs/context.context.getsync_1.md +1 -1
  97. package/site/apidocs/context.context.inspect.md +1 -1
  98. package/site/apidocs/context.contextsubscriptionmanager.notifyobservers.md +1 -1
  99. package/site/apidocs/context.contextsubscriptionmanager.waituntilpendingnotificationsdone.md +1 -1
  100. package/site/apidocs/context.contextview._constructor_.md +2 -2
  101. package/site/apidocs/context.contextview.asgetter.md +1 -1
  102. package/site/apidocs/context.contextview.resolve.md +1 -1
  103. package/site/apidocs/context.contextview.singlevalue.md +1 -1
  104. package/site/apidocs/context.contextview.values.md +1 -1
  105. package/site/apidocs/context.createbindingfromclass.md +1 -1
  106. package/site/apidocs/context.createproxywithinterceptors.md +3 -3
  107. package/site/apidocs/context.createviewgetter.md +1 -1
  108. package/site/apidocs/context.createviewgetter_1.md +2 -2
  109. package/site/apidocs/context.defaultconfigurationresolver.getconfigasvalueorpromise.md +2 -2
  110. package/site/apidocs/context.describeinjectedarguments.md +1 -1
  111. package/site/apidocs/context.filterbykey.md +1 -1
  112. package/site/apidocs/context.genericinterceptorchain._constructor__1.md +1 -1
  113. package/site/apidocs/context.genericinterceptorchain.invokeinterceptors.md +1 -1
  114. package/site/apidocs/context.globalinterceptor.md +1 -1
  115. package/site/apidocs/context.inject.binding.md +1 -1
  116. package/site/apidocs/context.inject.getter.md +1 -1
  117. package/site/apidocs/context.inject.setter.md +1 -1
  118. package/site/apidocs/context.inject.tag.md +1 -1
  119. package/site/apidocs/context.inject.view.md +1 -1
  120. package/site/apidocs/context.injectionmetadata.md +1 -1
  121. package/site/apidocs/context.instantiateclass.md +2 -2
  122. package/site/apidocs/context.intercept.md +2 -2
  123. package/site/apidocs/context.interceptionhandler._constructor_.md +3 -3
  124. package/site/apidocs/context.interceptionhandler.md +1 -1
  125. package/site/apidocs/context.interceptor.md +1 -1
  126. package/site/apidocs/context.invocationcontext._constructor_.md +1 -1
  127. package/site/apidocs/context.invocationcontext.invoketargetmethod.md +1 -1
  128. package/site/apidocs/context.invokemethod.md +2 -2
  129. package/site/apidocs/context.invokemethodwithinterceptors.md +1 -1
  130. package/site/apidocs/context.isbindingtagfilter.md +1 -1
  131. package/site/apidocs/context.jsonarray.md +1 -1
  132. package/site/apidocs/context.jsonobject.md +1 -1
  133. package/site/apidocs/context.proxysource.md +1 -1
  134. package/site/apidocs/context.registerinterceptor.md +1 -1
  135. package/site/apidocs/context.resolutionsession.fork.md +1 -1
  136. package/site/apidocs/context.resolutionsession.runwithbinding.md +1 -1
  137. package/site/apidocs/context.resolutionsession.runwithinjection.md +1 -1
  138. package/site/apidocs/context.resolveinjectedarguments.md +2 -2
  139. package/site/apidocs/context.resolveinjectedproperties.md +1 -1
  140. package/site/apidocs/context.sortbindingsbyphase.md +2 -2
  141. package/site/apidocs/context.trycatchfinally.md +2 -2
  142. package/site/apidocs/core.addextension.md +1 -1
  143. package/site/apidocs/core.application._constructor__1.md +2 -2
  144. package/site/apidocs/core.application.component.md +1 -1
  145. package/site/apidocs/core.application.controller.md +1 -1
  146. package/site/apidocs/core.application.interceptor.md +1 -1
  147. package/site/apidocs/core.application.lifecycleobserver.md +1 -1
  148. package/site/apidocs/core.application.server.md +1 -1
  149. package/site/apidocs/core.application.service.md +1 -1
  150. package/site/apidocs/core.createservicebinding.md +1 -1
  151. package/site/apidocs/core.extensions.list.md +2 -2
  152. package/site/apidocs/core.extensions.view.md +2 -2
  153. package/site/apidocs/core.lifecycleobserverregistry._constructor_.md +1 -1
  154. package/site/apidocs/core.lifecycleobserverregistry.notifygroups.md +1 -1
  155. package/site/apidocs/core.service.md +2 -2
  156. package/site/apidocs/express.asmiddleware.md +1 -1
  157. package/site/apidocs/express.buildname.md +2 -2
  158. package/site/apidocs/express.createinterceptor.md +1 -1
  159. package/site/apidocs/express.createmiddleware.md +1 -1
  160. package/site/apidocs/express.createmiddlewarebinding.md +1 -1
  161. package/site/apidocs/express.createmiddlewareinterceptorbinding.md +1 -1
  162. package/site/apidocs/express.defineinterceptorprovider.md +2 -2
  163. package/site/apidocs/express.expressapplication._constructor_.md +1 -1
  164. package/site/apidocs/express.expressmiddlewareinterceptorprovider._constructor_.md +1 -1
  165. package/site/apidocs/express.expressmiddlewareinterceptorprovider.md +1 -1
  166. package/site/apidocs/express.expressserver._constructor_.md +2 -2
  167. package/site/apidocs/express.getmiddlewarecontext.md +1 -1
  168. package/site/apidocs/express.invokemiddlewareprovider.action.md +1 -1
  169. package/site/apidocs/express.invokemiddlewareprovider.value.md +1 -1
  170. package/site/apidocs/express.middleware.md +1 -1
  171. package/site/apidocs/express.middlewarebindingoptions.md +1 -1
  172. package/site/apidocs/express.middlewarechain.md +1 -1
  173. package/site/apidocs/express.middlewarecontext._constructor_.md +2 -2
  174. package/site/apidocs/express.middlewareinterceptorbindingoptions.md +1 -1
  175. package/site/apidocs/express.middlewaremixin.md +28 -28
  176. package/site/apidocs/express.middlewareregistry.expressmiddleware.md +1 -1
  177. package/site/apidocs/express.middlewareregistry.expressmiddleware_1.md +2 -2
  178. package/site/apidocs/express.middlewareregistry.middleware.md +1 -1
  179. package/site/apidocs/express.middlewareview._constructor_.md +1 -1
  180. package/site/apidocs/express.registerexpressmiddleware.md +2 -2
  181. package/site/apidocs/express.registerexpressmiddlewareinterceptor.md +2 -2
  182. package/site/apidocs/filter.filterbuilder._constructor_.md +1 -1
  183. package/site/apidocs/filter.inclusion.md +1 -0
  184. package/site/apidocs/filter.inclusion.targettype.md +21 -0
  185. package/site/apidocs/filter.wherebuilder._constructor_.md +1 -1
  186. package/site/apidocs/filter.wherebuilder.exists.md +1 -1
  187. package/site/apidocs/graphql.graphqlserver._constructor_.md +2 -2
  188. package/site/apidocs/graphql.graphqlserver.exportgraphqlschema.md +2 -2
  189. package/site/apidocs/graphql.graphqlserver.resolver.md +1 -1
  190. package/site/apidocs/graphql.registerresolver.md +1 -1
  191. package/site/apidocs/health.healthcomponent._constructor_.md +1 -1
  192. package/site/apidocs/http-server.basehttpoptions.md +1 -1
  193. package/site/apidocs/http-server.httpserver._constructor_.md +1 -1
  194. package/site/apidocs/logging.winstonloggerprovider._constructor_.md +1 -1
  195. package/site/apidocs/logging.winstonloggerprovider.md +1 -1
  196. package/site/apidocs/metadata.classdecoratorfactory.createdecorator.md +1 -1
  197. package/site/apidocs/metadata.classdecoratorfactory.md +1 -1
  198. package/site/apidocs/metadata.classdecoratorfactory.mergewithinherited.md +2 -2
  199. package/site/apidocs/metadata.classdecoratorfactory.mergewithown.md +2 -2
  200. package/site/apidocs/metadata.decoratorfactory._constructor_.md +1 -1
  201. package/site/apidocs/metadata.decoratorfactory._createdecorator.md +1 -1
  202. package/site/apidocs/metadata.decoratorfactory.decorate.md +2 -2
  203. package/site/apidocs/metadata.decoratorfactory.duplicatedecorationerror.md +2 -2
  204. package/site/apidocs/metadata.decoratorfactory.getnumberofparameters.md +1 -1
  205. package/site/apidocs/metadata.decoratorfactory.gettargetname.md +2 -2
  206. package/site/apidocs/metadata.decoratorfactory.mergewithinherited.md +2 -2
  207. package/site/apidocs/metadata.decoratorfactory.mergewithown.md +2 -2
  208. package/site/apidocs/metadata.metadatainspector.definemetadata.md +1 -1
  209. package/site/apidocs/metadata.metadatainspector.getallmethodmetadata.md +1 -1
  210. package/site/apidocs/metadata.metadatainspector.getallparametermetadata.md +2 -2
  211. package/site/apidocs/metadata.metadatainspector.getallpropertymetadata.md +1 -1
  212. package/site/apidocs/metadata.metadatainspector.getclassmetadata.md +1 -1
  213. package/site/apidocs/metadata.metadatainspector.getmethodmetadata.md +2 -2
  214. package/site/apidocs/metadata.metadatainspector.getparametermetadata.md +1 -1
  215. package/site/apidocs/metadata.metadatainspector.getpropertymetadata.md +1 -1
  216. package/site/apidocs/metadata.methoddecoratorfactory.createdecorator.md +1 -1
  217. package/site/apidocs/metadata.methoddecoratorfactory.md +1 -1
  218. package/site/apidocs/metadata.methoddecoratorfactory.mergewithinherited.md +2 -2
  219. package/site/apidocs/metadata.methoddecoratorfactory.mergewithown.md +2 -2
  220. package/site/apidocs/metadata.methodmultidecoratorfactory.md +1 -1
  221. package/site/apidocs/metadata.methodmultidecoratorfactory.mergewithinherited.md +1 -1
  222. package/site/apidocs/metadata.methodmultidecoratorfactory.mergewithown.md +2 -2
  223. package/site/apidocs/metadata.methodparameterdecoratorfactory.createdecorator.md +1 -1
  224. package/site/apidocs/metadata.methodparameterdecoratorfactory.md +1 -1
  225. package/site/apidocs/metadata.methodparameterdecoratorfactory.mergewithinherited.md +2 -2
  226. package/site/apidocs/metadata.methodparameterdecoratorfactory.mergewithown.md +2 -2
  227. package/site/apidocs/metadata.namespacedreflect._constructor_.md +1 -1
  228. package/site/apidocs/metadata.namespacedreflect.decorate.md +2 -2
  229. package/site/apidocs/metadata.namespacedreflect.definemetadata.md +1 -1
  230. package/site/apidocs/metadata.namespacedreflect.deletemetadata.md +1 -1
  231. package/site/apidocs/metadata.namespacedreflect.getmetadata.md +1 -1
  232. package/site/apidocs/metadata.namespacedreflect.getmetadatakeys.md +1 -1
  233. package/site/apidocs/metadata.namespacedreflect.getownmetadata.md +1 -1
  234. package/site/apidocs/metadata.namespacedreflect.getownmetadatakeys.md +1 -1
  235. package/site/apidocs/metadata.namespacedreflect.hasmetadata.md +1 -1
  236. package/site/apidocs/metadata.namespacedreflect.hasownmetadata.md +1 -1
  237. package/site/apidocs/metadata.parameterdecoratorfactory.createdecorator.md +1 -1
  238. package/site/apidocs/metadata.parameterdecoratorfactory.md +1 -1
  239. package/site/apidocs/metadata.parameterdecoratorfactory.mergewithinherited.md +2 -2
  240. package/site/apidocs/metadata.parameterdecoratorfactory.mergewithown.md +2 -2
  241. package/site/apidocs/metadata.propertydecoratorfactory.createdecorator.md +1 -1
  242. package/site/apidocs/metadata.propertydecoratorfactory.md +1 -1
  243. package/site/apidocs/metadata.propertydecoratorfactory.mergewithinherited.md +2 -2
  244. package/site/apidocs/metadata.propertydecoratorfactory.mergewithown.md +2 -2
  245. package/site/apidocs/metrics.metricscomponent._constructor_.md +1 -1
  246. package/site/apidocs/openapi-spec-builder.componentsspecbuilder.md +1 -1
  247. package/site/apidocs/openapi-spec-builder.openapispecbuilder.md +1 -1
  248. package/site/apidocs/openapi-spec-builder.openapispecbuilder.withoperationreturningstring.md +1 -1
  249. package/site/apidocs/openapi-spec-builder.operationspecbuilder.md +1 -1
  250. package/site/apidocs/openapi-spec-builder.operationspecbuilder.withstringresponse.md +1 -1
  251. package/site/apidocs/openapi-v3.del.md +1 -1
  252. package/site/apidocs/openapi-v3.deprecated.md +3 -3
  253. package/site/apidocs/openapi-v3.get.md +1 -1
  254. package/site/apidocs/openapi-v3.getfilterschemafor.md +1 -1
  255. package/site/apidocs/openapi-v3.getmodelschemaref.md +1 -1
  256. package/site/apidocs/openapi-v3.jsontoschemaobject.md +1 -1
  257. package/site/apidocs/openapi-v3.oasenhancerservice._constructor_.md +1 -1
  258. package/site/apidocs/openapi-v3.oasenhancerservice.applyallenhancers.md +1 -1
  259. package/site/apidocs/openapi-v3.operation.md +1 -1
  260. package/site/apidocs/openapi-v3.param.filter.md +1 -1
  261. package/site/apidocs/openapi-v3.param.query.md +1 -1
  262. package/site/apidocs/openapi-v3.param.where.md +1 -1
  263. package/site/apidocs/openapi-v3.patch.md +1 -1
  264. package/site/apidocs/openapi-v3.post.md +1 -1
  265. package/site/apidocs/openapi-v3.put.md +1 -1
  266. package/site/apidocs/openapi-v3.requestbody.array.md +3 -3
  267. package/site/apidocs/openapi-v3.requestbody.file.md +3 -3
  268. package/site/apidocs/openapi-v3.tags.md +2 -2
  269. package/site/apidocs/openapi-v3.visibility.md +2 -2
  270. package/site/apidocs/pooling.getpooledvalue.md +1 -1
  271. package/site/apidocs/pooling.poolfactory.md +1 -1
  272. package/site/apidocs/pooling.poolingservice.acquire.md +1 -1
  273. package/site/apidocs/pooling.poolingservice.run.md +1 -1
  274. package/site/apidocs/repository-json-schema.getfieldsjsonschemafor.md +1 -1
  275. package/site/apidocs/repository-json-schema.getfilterjsonschemafor.md +1 -1
  276. package/site/apidocs/repository-json-schema.getjsonschema.md +1 -1
  277. package/site/apidocs/repository-json-schema.getjsonschemaref.md +1 -1
  278. package/site/apidocs/repository-json-schema.getscopefilterjsonschemafor.md +1 -1
  279. package/site/apidocs/repository-json-schema.getwherejsonschemafor.md +1 -1
  280. package/site/apidocs/repository-json-schema.modeltojsonschema.md +1 -1
  281. package/site/apidocs/repository.anytype.md +1 -1
  282. package/site/apidocs/repository.applicationwithrepositories.component.md +1 -1
  283. package/site/apidocs/repository.applicationwithrepositories.datasource.md +1 -1
  284. package/site/apidocs/repository.applicationwithrepositories.migrateschema.md +1 -1
  285. package/site/apidocs/repository.applicationwithrepositories.repository.md +1 -1
  286. package/site/apidocs/repository.arraytype.md +1 -1
  287. package/site/apidocs/repository.belongsto.md +2 -2
  288. package/site/apidocs/repository.belongstodefinition.md +1 -0
  289. package/site/apidocs/repository.belongstodefinition.polymorphic.md +25 -0
  290. package/site/apidocs/repository.belongstorepository.get.md +4 -2
  291. package/site/apidocs/repository.booleantype.md +1 -1
  292. package/site/apidocs/repository.buffertype.coerce.md +1 -1
  293. package/site/apidocs/repository.buffertype.md +1 -1
  294. package/site/apidocs/repository.buffertype.serialize.md +1 -1
  295. package/site/apidocs/repository.buildmodeldefinition.md +1 -1
  296. package/site/apidocs/repository.connector.execute.md +1 -1
  297. package/site/apidocs/repository.createbelongstoaccessor.md +5 -3
  298. package/site/apidocs/repository.createbelongstoinclusionresolver.md +4 -2
  299. package/site/apidocs/repository.createhasmanythroughrepositoryfactory.md +4 -2
  300. package/site/apidocs/repository.createhasonerepositoryfactory.md +6 -2
  301. package/site/apidocs/repository.createreferencesmanyaccessor.md +36 -0
  302. package/site/apidocs/repository.createreferencesmanyinclusionresolver.md +37 -0
  303. package/site/apidocs/repository.crudconnector.count.md +2 -2
  304. package/site/apidocs/repository.crudconnector.create.md +1 -1
  305. package/site/apidocs/repository.crudconnector.createall.md +1 -1
  306. package/site/apidocs/repository.crudconnector.delete.md +1 -1
  307. package/site/apidocs/repository.crudconnector.deleteall.md +2 -2
  308. package/site/apidocs/repository.crudconnector.deletebyid.md +1 -1
  309. package/site/apidocs/repository.crudconnector.exists.md +1 -1
  310. package/site/apidocs/repository.crudconnector.find.md +2 -2
  311. package/site/apidocs/repository.crudconnector.findbyid.md +1 -1
  312. package/site/apidocs/repository.crudconnector.replacebyid.md +1 -1
  313. package/site/apidocs/repository.crudconnector.save.md +1 -1
  314. package/site/apidocs/repository.crudconnector.update.md +1 -1
  315. package/site/apidocs/repository.crudconnector.updateall.md +2 -2
  316. package/site/apidocs/repository.crudconnector.updatebyid.md +1 -1
  317. package/site/apidocs/repository.crudrepository.count.md +2 -2
  318. package/site/apidocs/repository.crudrepository.create.md +1 -1
  319. package/site/apidocs/repository.crudrepository.createall.md +1 -1
  320. package/site/apidocs/repository.crudrepository.deleteall.md +2 -2
  321. package/site/apidocs/repository.crudrepository.find.md +2 -2
  322. package/site/apidocs/repository.crudrepository.md +1 -1
  323. package/site/apidocs/repository.crudrepository.updateall.md +2 -2
  324. package/site/apidocs/repository.crudrepositoryimpl.count.md +2 -2
  325. package/site/apidocs/repository.crudrepositoryimpl.create.md +1 -1
  326. package/site/apidocs/repository.crudrepositoryimpl.createall.md +1 -1
  327. package/site/apidocs/repository.crudrepositoryimpl.delete.md +1 -1
  328. package/site/apidocs/repository.crudrepositoryimpl.deleteall.md +2 -2
  329. package/site/apidocs/repository.crudrepositoryimpl.deletebyid.md +1 -1
  330. package/site/apidocs/repository.crudrepositoryimpl.execute.md +1 -1
  331. package/site/apidocs/repository.crudrepositoryimpl.exists.md +1 -1
  332. package/site/apidocs/repository.crudrepositoryimpl.find.md +2 -2
  333. package/site/apidocs/repository.crudrepositoryimpl.findbyid.md +2 -2
  334. package/site/apidocs/repository.crudrepositoryimpl.md +1 -1
  335. package/site/apidocs/repository.crudrepositoryimpl.replacebyid.md +1 -1
  336. package/site/apidocs/repository.crudrepositoryimpl.save.md +1 -1
  337. package/site/apidocs/repository.crudrepositoryimpl.update.md +1 -1
  338. package/site/apidocs/repository.crudrepositoryimpl.updateall.md +2 -2
  339. package/site/apidocs/repository.crudrepositoryimpl.updatebyid.md +1 -1
  340. package/site/apidocs/repository.datetype.md +1 -1
  341. package/site/apidocs/repository.defaultbelongstorepository._constructor_.md +5 -2
  342. package/site/apidocs/repository.defaultbelongstorepository.get.md +4 -2
  343. package/site/apidocs/repository.defaultbelongstorepository.gettargetrepository.md +3 -1
  344. package/site/apidocs/repository.defaultbelongstorepository.gettargetrepositorydict.md +23 -0
  345. package/site/apidocs/repository.defaultbelongstorepository.md +5 -3
  346. package/site/apidocs/repository.defaultbelongstorepository.targetresolver.md +21 -0
  347. package/site/apidocs/repository.defaultcrudrepository._createbelongstoaccessorfor.md +4 -2
  348. package/site/apidocs/repository.defaultcrudrepository._createhasmanyrepositoryfactoryfor.md +2 -2
  349. package/site/apidocs/repository.defaultcrudrepository._createhasonerepositoryfactoryfor.md +4 -2
  350. package/site/apidocs/repository.defaultcrudrepository._createreferencesmanyaccessorfor.md +40 -0
  351. package/site/apidocs/repository.defaultcrudrepository.count.md +2 -2
  352. package/site/apidocs/repository.defaultcrudrepository.create.md +1 -1
  353. package/site/apidocs/repository.defaultcrudrepository.createall.md +1 -1
  354. package/site/apidocs/repository.defaultcrudrepository.createbelongstoaccessorfor.md +4 -2
  355. package/site/apidocs/repository.defaultcrudrepository.createhasmanyrepositoryfactoryfor.md +2 -2
  356. package/site/apidocs/repository.defaultcrudrepository.createhasmanythroughrepositoryfactoryfor.md +5 -3
  357. package/site/apidocs/repository.defaultcrudrepository.createhasonerepositoryfactoryfor.md +4 -2
  358. package/site/apidocs/repository.defaultcrudrepository.createreferencesmanyaccessorfor.md +35 -0
  359. package/site/apidocs/repository.defaultcrudrepository.definepersistedmodel.md +1 -1
  360. package/site/apidocs/repository.defaultcrudrepository.delete.md +1 -1
  361. package/site/apidocs/repository.defaultcrudrepository.deleteall.md +2 -2
  362. package/site/apidocs/repository.defaultcrudrepository.deletebyid.md +1 -1
  363. package/site/apidocs/repository.defaultcrudrepository.ensurepersistable.md +1 -1
  364. package/site/apidocs/repository.defaultcrudrepository.entitytodata.md +1 -1
  365. package/site/apidocs/repository.defaultcrudrepository.execute.md +1 -1
  366. package/site/apidocs/repository.defaultcrudrepository.exists.md +1 -1
  367. package/site/apidocs/repository.defaultcrudrepository.find.md +2 -2
  368. package/site/apidocs/repository.defaultcrudrepository.findbyid.md +2 -2
  369. package/site/apidocs/repository.defaultcrudrepository.findone.md +2 -2
  370. package/site/apidocs/repository.defaultcrudrepository.includerelatedmodels.md +2 -2
  371. package/site/apidocs/repository.defaultcrudrepository.md +11 -9
  372. package/site/apidocs/repository.defaultcrudrepository.normalizefilter.md +1 -1
  373. package/site/apidocs/repository.defaultcrudrepository.replacebyid.md +1 -1
  374. package/site/apidocs/repository.defaultcrudrepository.save.md +1 -1
  375. package/site/apidocs/repository.defaultcrudrepository.update.md +1 -1
  376. package/site/apidocs/repository.defaultcrudrepository.updateall.md +2 -2
  377. package/site/apidocs/repository.defaultcrudrepository.updatebyid.md +1 -1
  378. package/site/apidocs/repository.defaulthasmanyrepository.create.md +1 -1
  379. package/site/apidocs/repository.defaulthasmanyrepository.delete.md +2 -2
  380. package/site/apidocs/repository.defaulthasmanyrepository.find.md +2 -2
  381. package/site/apidocs/repository.defaulthasmanyrepository.md +1 -1
  382. package/site/apidocs/repository.defaulthasmanyrepository.patch.md +2 -2
  383. package/site/apidocs/repository.defaulthasmanythroughrepository._constructor_.md +6 -2
  384. package/site/apidocs/repository.defaulthasmanythroughrepository.create.md +3 -1
  385. package/site/apidocs/repository.defaulthasmanythroughrepository.delete.md +7 -3
  386. package/site/apidocs/repository.defaulthasmanythroughrepository.find.md +7 -3
  387. package/site/apidocs/repository.defaulthasmanythroughrepository.gettargetrepository.md +3 -1
  388. package/site/apidocs/repository.defaulthasmanythroughrepository.gettargetrepositorydict.md +23 -0
  389. package/site/apidocs/repository.defaulthasmanythroughrepository.link.md +1 -1
  390. package/site/apidocs/repository.defaulthasmanythroughrepository.md +6 -3
  391. package/site/apidocs/repository.defaulthasmanythroughrepository.patch.md +11 -5
  392. package/site/apidocs/repository.defaulthasmanythroughrepository.targetresolver.md +21 -0
  393. package/site/apidocs/repository.defaulthasmanythroughrepository.throughresolver.md +21 -0
  394. package/site/apidocs/repository.defaulthasmanythroughrepository.unlink.md +1 -1
  395. package/site/apidocs/repository.defaulthasmanythroughrepository.unlinkall.md +1 -1
  396. package/site/apidocs/repository.defaulthasonerepository._constructor_.md +5 -2
  397. package/site/apidocs/repository.defaulthasonerepository.create.md +4 -2
  398. package/site/apidocs/repository.defaulthasonerepository.delete.md +4 -2
  399. package/site/apidocs/repository.defaulthasonerepository.get.md +5 -3
  400. package/site/apidocs/repository.defaulthasonerepository.gettargetrepository.md +3 -1
  401. package/site/apidocs/repository.defaulthasonerepository.gettargetrepositorydict.md +23 -0
  402. package/site/apidocs/repository.defaulthasonerepository.md +5 -3
  403. package/site/apidocs/repository.defaulthasonerepository.patch.md +7 -3
  404. package/site/apidocs/repository.defaulthasonerepository.targetresolver.md +21 -0
  405. package/site/apidocs/repository.defaultkeyvaluerepository.delete.md +1 -1
  406. package/site/apidocs/repository.defaultkeyvaluerepository.deleteall.md +1 -1
  407. package/site/apidocs/repository.defaultkeyvaluerepository.expire.md +1 -1
  408. package/site/apidocs/repository.defaultkeyvaluerepository.get.md +1 -1
  409. package/site/apidocs/repository.defaultkeyvaluerepository.keys.md +2 -2
  410. package/site/apidocs/repository.defaultkeyvaluerepository.md +1 -1
  411. package/site/apidocs/repository.defaultkeyvaluerepository.set.md +1 -1
  412. package/site/apidocs/repository.defaultkeyvaluerepository.ttl.md +1 -1
  413. package/site/apidocs/repository.defaultreferencesmanyrepository._constructor_.md +31 -0
  414. package/site/apidocs/repository.defaultreferencesmanyrepository.constraint.md +21 -0
  415. package/site/apidocs/repository.defaultreferencesmanyrepository.get.md +32 -0
  416. package/site/apidocs/repository.defaultreferencesmanyrepository.gettargetrepository.md +21 -0
  417. package/site/apidocs/repository.defaultreferencesmanyrepository.md +42 -0
  418. package/site/apidocs/repository.defaulttransactionalrepository.begintransaction.md +1 -1
  419. package/site/apidocs/repository.defaulttransactionalrepository.md +2 -2
  420. package/site/apidocs/repository.embedsmany.md +1 -1
  421. package/site/apidocs/repository.embedsone.md +1 -1
  422. package/site/apidocs/repository.entitycrudrepository.delete.md +1 -1
  423. package/site/apidocs/repository.entitycrudrepository.deletebyid.md +1 -1
  424. package/site/apidocs/repository.entitycrudrepository.exists.md +1 -1
  425. package/site/apidocs/repository.entitycrudrepository.findbyid.md +2 -2
  426. package/site/apidocs/repository.entitycrudrepository.md +1 -1
  427. package/site/apidocs/repository.entitycrudrepository.replacebyid.md +1 -1
  428. package/site/apidocs/repository.entitycrudrepository.save.md +1 -1
  429. package/site/apidocs/repository.entitycrudrepository.update.md +1 -1
  430. package/site/apidocs/repository.entitycrudrepository.updatebyid.md +1 -1
  431. package/site/apidocs/repository.entitynotfounderror._constructor_.md +1 -1
  432. package/site/apidocs/repository.entityrepository.md +1 -1
  433. package/site/apidocs/repository.executablerepository.execute.md +1 -1
  434. package/site/apidocs/repository.executablerepository.md +1 -1
  435. package/site/apidocs/repository.findbyforeignkeys.md +2 -2
  436. package/site/apidocs/repository.hasmany.md +1 -1
  437. package/site/apidocs/repository.hasmanydefinition.md +1 -1
  438. package/site/apidocs/repository.hasmanydefinition.through.md +3 -0
  439. package/site/apidocs/repository.hasmanyrepository.create.md +1 -1
  440. package/site/apidocs/repository.hasmanyrepository.delete.md +2 -2
  441. package/site/apidocs/repository.hasmanyrepository.find.md +2 -2
  442. package/site/apidocs/repository.hasmanyrepository.patch.md +2 -2
  443. package/site/apidocs/repository.hasmanythroughrepository.create.md +3 -1
  444. package/site/apidocs/repository.hasmanythroughrepository.delete.md +7 -3
  445. package/site/apidocs/repository.hasmanythroughrepository.find.md +7 -3
  446. package/site/apidocs/repository.hasmanythroughrepository.link.md +1 -1
  447. package/site/apidocs/repository.hasmanythroughrepository.patch.md +11 -5
  448. package/site/apidocs/repository.hasmanythroughrepository.unlink.md +1 -1
  449. package/site/apidocs/repository.hasmanythroughrepository.unlinkall.md +1 -1
  450. package/site/apidocs/repository.hasone.md +1 -1
  451. package/site/apidocs/repository.hasonedefinition.md +1 -0
  452. package/site/apidocs/repository.hasonedefinition.polymorphic.md +25 -0
  453. package/site/apidocs/repository.hasonerepository.create.md +4 -2
  454. package/site/apidocs/repository.hasonerepository.delete.md +4 -2
  455. package/site/apidocs/repository.hasonerepository.get.md +5 -3
  456. package/site/apidocs/repository.hasonerepository.patch.md +7 -3
  457. package/site/apidocs/repository.includefieldifnot.md +33 -0
  458. package/site/apidocs/repository.includerelatedmodels.md +2 -2
  459. package/site/apidocs/repository.invalidpolymorphismerror._constructor_.md +32 -0
  460. package/site/apidocs/repository.invalidpolymorphismerror.code.md +21 -0
  461. package/site/apidocs/repository.invalidpolymorphismerror.md +35 -0
  462. package/site/apidocs/repository.invalidrelationerror._constructor_.md +1 -1
  463. package/site/apidocs/repository.isinvalidpolymorphismerror.md +32 -0
  464. package/site/apidocs/repository.keyvaluerepository.delete.md +1 -1
  465. package/site/apidocs/repository.keyvaluerepository.deleteall.md +1 -1
  466. package/site/apidocs/repository.keyvaluerepository.expire.md +1 -1
  467. package/site/apidocs/repository.keyvaluerepository.get.md +1 -1
  468. package/site/apidocs/repository.keyvaluerepository.keys.md +2 -2
  469. package/site/apidocs/repository.keyvaluerepository.md +1 -1
  470. package/site/apidocs/repository.keyvaluerepository.set.md +1 -1
  471. package/site/apidocs/repository.keyvaluerepository.ttl.md +1 -1
  472. package/site/apidocs/repository.kvconnector.delete.md +1 -1
  473. package/site/apidocs/repository.kvconnector.deleteall.md +1 -1
  474. package/site/apidocs/repository.kvconnector.expire.md +1 -1
  475. package/site/apidocs/repository.kvconnector.get.md +1 -1
  476. package/site/apidocs/repository.kvconnector.iteratekeys.md +2 -2
  477. package/site/apidocs/repository.kvconnector.keys.md +1 -1
  478. package/site/apidocs/repository.kvconnector.set.md +1 -1
  479. package/site/apidocs/repository.kvconnector.ttl.md +1 -1
  480. package/site/apidocs/repository.md +13 -4
  481. package/site/apidocs/repository.model._constructor_.md +1 -1
  482. package/site/apidocs/repository.model.md +1 -1
  483. package/site/apidocs/repository.model.toobject.md +1 -1
  484. package/site/apidocs/repository.modeldefinition.md +1 -0
  485. package/site/apidocs/repository.modeldefinition.referencesmany.md +35 -0
  486. package/site/apidocs/repository.modelmetadatahelper.getmodelmetadata.md +1 -1
  487. package/site/apidocs/repository.modeltype.md +1 -1
  488. package/site/apidocs/repository.nulltype.md +1 -1
  489. package/site/apidocs/repository.numbertype.md +1 -1
  490. package/site/apidocs/repository.objecttype.md +1 -1
  491. package/site/apidocs/repository.property.array.md +1 -1
  492. package/site/apidocs/repository.referencesmany.md +5 -3
  493. package/site/apidocs/repository.referencesmanyaccessor.inclusionresolver.md +23 -0
  494. package/site/apidocs/repository.referencesmanyaccessor.md +28 -0
  495. package/site/apidocs/repository.referencesmanydefinition.keyfrom.md +21 -0
  496. package/site/apidocs/repository.referencesmanydefinition.keyto.md +25 -0
  497. package/site/apidocs/repository.referencesmanydefinition.md +32 -0
  498. package/site/apidocs/repository.referencesmanydefinition.targetsmany.md +21 -0
  499. package/site/apidocs/repository.referencesmanydefinition.type.md +21 -0
  500. package/site/apidocs/repository.referencesmanyrepository.get.md +36 -0
  501. package/site/apidocs/repository.referencesmanyrepository.md +30 -0
  502. package/site/apidocs/repository.referencesone.md +1 -1
  503. package/site/apidocs/repository.relation.md +1 -1
  504. package/site/apidocs/repository.relationmetadata.md +2 -2
  505. package/site/apidocs/repository.repositorymetadata._constructor_.md +1 -1
  506. package/site/apidocs/repository.repositorymixin.md +50 -50
  507. package/site/apidocs/repository.repositorymixindoc.datasource.md +1 -1
  508. package/site/apidocs/repository.repositorymixindoc.migrateschema.md +1 -1
  509. package/site/apidocs/repository.stringtype.md +1 -1
  510. package/site/apidocs/repository.transactionalrepository.begintransaction.md +1 -1
  511. package/site/apidocs/repository.transactionalrepository.md +1 -1
  512. package/site/apidocs/repository.type.coerce.md +1 -1
  513. package/site/apidocs/repository.type.iscoercible.md +1 -1
  514. package/site/apidocs/repository.type.serialize.md +1 -1
  515. package/site/apidocs/repository.uniontype.md +1 -1
  516. package/site/apidocs/{rest-crud.crudrestcontroller.create.md → rest-crud.crudrestcontroller.find.md} +8 -8
  517. package/site/apidocs/rest-crud.crudrestcontroller.md +1 -1
  518. package/site/apidocs/rest-crud.crudrestcontrolleroptions.md +1 -0
  519. package/site/apidocs/rest-crud.crudrestcontrolleroptions.readonly.md +23 -0
  520. package/site/apidocs/rest-crud.modelcrudrestapiconfig.md +1 -0
  521. package/site/apidocs/rest-crud.modelcrudrestapiconfig.readonly.md +23 -0
  522. package/site/apidocs/rest-explorer.restexplorercomponent._constructor_.md +1 -1
  523. package/site/apidocs/rest-msgpack.msgpackbodyparser._constructor_.md +1 -1
  524. package/site/apidocs/rest-msgpack.msgpackbodyparsercomponent._constructor_.md +1 -1
  525. package/site/apidocs/rest.controllerroute._constructor_.md +2 -2
  526. package/site/apidocs/rest.createbodyparserbinding.md +1 -1
  527. package/site/apidocs/rest.createroutesforcontroller.md +1 -1
  528. package/site/apidocs/rest.findroutemiddlewareprovider.md +1 -1
  529. package/site/apidocs/rest.httphandler._constructor_.md +1 -1
  530. package/site/apidocs/rest.httphandler.registercontroller.md +1 -1
  531. package/site/apidocs/rest.infospecenhancer._constructor_.md +1 -1
  532. package/site/apidocs/rest.invokemethodmiddlewareprovider.md +1 -1
  533. package/site/apidocs/rest.jsonbodyparser._constructor_.md +1 -1
  534. package/site/apidocs/rest.middlewaresequence._constructor_.md +1 -1
  535. package/site/apidocs/rest.parsejson.md +2 -2
  536. package/site/apidocs/rest.parseoperationargs.md +2 -2
  537. package/site/apidocs/rest.parseparamsmiddlewareprovider.md +1 -1
  538. package/site/apidocs/rest.rawbodyparser._constructor_.md +1 -1
  539. package/site/apidocs/rest.redirectroute._constructor_.md +1 -1
  540. package/site/apidocs/rest.regexprouter._constructor_.md +1 -1
  541. package/site/apidocs/rest.rejectprovider.value.md +1 -1
  542. package/site/apidocs/rest.requestbodyparser._constructor_.md +2 -2
  543. package/site/apidocs/rest.requestcontext._constructor_.md +1 -1
  544. package/site/apidocs/rest.restapplication._constructor__1.md +2 -2
  545. package/site/apidocs/rest.restapplication.basepath.md +1 -1
  546. package/site/apidocs/rest.restapplication.bodyparser.md +1 -1
  547. package/site/apidocs/rest.restapplication.exportopenapispec.md +2 -2
  548. package/site/apidocs/rest.restapplication.expressmiddleware.md +1 -1
  549. package/site/apidocs/rest.restapplication.expressmiddleware_1.md +2 -2
  550. package/site/apidocs/rest.restapplication.middleware.md +1 -1
  551. package/site/apidocs/rest.restapplication.mountexpressrouter.md +1 -1
  552. package/site/apidocs/rest.restapplication.redirect.md +1 -1
  553. package/site/apidocs/rest.restapplication.server.md +1 -1
  554. package/site/apidocs/rest.restapplication.static.md +1 -1
  555. package/site/apidocs/rest.restcomponent._constructor_.md +1 -1
  556. package/site/apidocs/rest.resthttperrors.invaliddata.md +1 -1
  557. package/site/apidocs/rest.resthttperrors.unsupportedmediatype.md +1 -1
  558. package/site/apidocs/rest.restserver._constructor_.md +1 -1
  559. package/site/apidocs/rest.restserver.addopenapispecendpoint.md +1 -1
  560. package/site/apidocs/rest.restserver.basepath.md +1 -1
  561. package/site/apidocs/rest.restserver.bodyparser.md +1 -1
  562. package/site/apidocs/rest.restserver.exportopenapispec.md +2 -2
  563. package/site/apidocs/rest.restserver.getapispec.md +1 -1
  564. package/site/apidocs/rest.restserver.mountexpressrouter.md +1 -1
  565. package/site/apidocs/rest.restserver.redirect.md +1 -1
  566. package/site/apidocs/rest.restserver.static.md +1 -1
  567. package/site/apidocs/rest.routesource.md +1 -1
  568. package/site/apidocs/rest.routingtable._constructor_.md +2 -2
  569. package/site/apidocs/rest.routingtable.registercontroller.md +1 -1
  570. package/site/apidocs/rest.sanitizejsonparse.md +2 -2
  571. package/site/apidocs/rest.sendresponsemiddlewareprovider.md +1 -1
  572. package/site/apidocs/rest.textbodyparser._constructor_.md +1 -1
  573. package/site/apidocs/rest.trierouter._constructor_.md +1 -1
  574. package/site/apidocs/rest.urlencodedbodyparser._constructor_.md +1 -1
  575. package/site/apidocs/rest.validateapipath.md +1 -1
  576. package/site/apidocs/rest.validaterequestbody.md +3 -3
  577. package/site/apidocs/rest.validatevalueagainstschema.md +2 -2
  578. package/site/apidocs/service-proxy.applicationwithservices.component.md +1 -1
  579. package/site/apidocs/service-proxy.applicationwithservices.serviceprovider.md +1 -1
  580. package/site/apidocs/service-proxy.servicemixin.md +43 -43
  581. package/site/apidocs/service-proxy.serviceproxy.md +2 -2
  582. package/site/apidocs/socketio.socketioapplication._constructor_.md +1 -1
  583. package/site/apidocs/socketio.socketioapplication.server.md +1 -1
  584. package/site/apidocs/socketio.socketioinvokemethodprovider.md +1 -1
  585. package/site/apidocs/socketio.socketiorejectprovider.md +1 -1
  586. package/site/apidocs/socketio.socketiosendprovider.md +1 -1
  587. package/site/apidocs/socketio.socketioserver._constructor_.md +1 -1
  588. package/site/apidocs/socketio.socketioserver.route.md +1 -1
  589. package/site/apidocs/testlab.createunexpectedhttperrorlogger.md +1 -1
  590. package/site/apidocs/testlab.givenhttpserverconfig.md +1 -1
  591. package/site/apidocs/testlab.httpgetasync.md +1 -1
  592. package/site/apidocs/testlab.httpsgetasync.md +1 -1
  593. package/site/apidocs/testlab.stubexpresscontext.md +1 -1
  594. package/site/apidocs/testlab.stubhandlercontext.md +1 -1
  595. package/site/apidocs/testlab.testsandbox._constructor_.md +1 -1
  596. package/site/apidocs/testlab.testsandbox.copyfile.md +2 -2
  597. package/site/apidocs/tsdocs.getpackages.md +1 -1
  598. package/site/apidocs/tsdocs.getpackageswithtsdocs.md +1 -1
  599. package/site/apidocs/tsdocs.runextractorformonorepo.md +1 -1
  600. package/site/apidocs/tsdocs.runextractorforpackage.md +2 -2
  601. package/site/apidocs/tsdocs.updateapidocs.md +1 -1
  602. package/site/apidocs/typeorm.getmodelschema.md +1 -1
  603. package/site/apidocs/typeorm.typeorm.repository.md +1 -1
  604. package/site/apidocs/typeorm.typeormcomponent._constructor_.md +1 -1
  605. package/site/apidocs/typeorm.typeormconnectionbooter._constructor_.md +1 -1
  606. package/site/apidocs/typeorm.typeormmixin.md +61 -61
  607. package/site/changelogs/bodyparsers/rest-msgpack/CHANGELOG.md +30 -0
  608. package/site/changelogs/examples/access-control-migration/CHANGELOG.md +30 -0
  609. package/site/changelogs/examples/binding-resolution/CHANGELOG.md +30 -0
  610. package/site/changelogs/examples/context/CHANGELOG.md +30 -0
  611. package/site/changelogs/examples/express-composition/CHANGELOG.md +30 -0
  612. package/site/changelogs/examples/file-transfer/CHANGELOG.md +30 -0
  613. package/site/changelogs/examples/graphql/CHANGELOG.md +30 -0
  614. package/site/changelogs/examples/greeter-extension/CHANGELOG.md +30 -0
  615. package/site/changelogs/examples/greeting-app/CHANGELOG.md +30 -0
  616. package/site/changelogs/examples/hello-world/CHANGELOG.md +30 -0
  617. package/site/changelogs/examples/lb3-application/CHANGELOG.md +30 -0
  618. package/site/changelogs/examples/log-extension/CHANGELOG.md +30 -0
  619. package/site/changelogs/examples/metrics-prometheus/CHANGELOG.md +30 -0
  620. package/site/changelogs/examples/multi-tenancy/CHANGELOG.md +31 -1
  621. package/site/changelogs/examples/passport-login/CHANGELOG.md +30 -0
  622. package/site/changelogs/examples/references-many/CHANGELOG.md +36 -0
  623. package/site/changelogs/examples/rest-crud/CHANGELOG.md +30 -0
  624. package/site/changelogs/examples/rpc-server/CHANGELOG.md +30 -0
  625. package/site/changelogs/examples/soap-calculator/CHANGELOG.md +30 -0
  626. package/site/changelogs/examples/socketio/CHANGELOG.md +30 -0
  627. package/site/changelogs/examples/todo/CHANGELOG.md +30 -0
  628. package/site/changelogs/examples/todo-jwt/CHANGELOG.md +30 -0
  629. package/site/changelogs/examples/todo-list/CHANGELOG.md +30 -0
  630. package/site/changelogs/examples/validation-app/CHANGELOG.md +30 -0
  631. package/site/changelogs/examples/webpack/CHANGELOG.md +30 -0
  632. package/site/changelogs/extensions/apiconnect/CHANGELOG.md +30 -0
  633. package/site/changelogs/extensions/authentication-jwt/CHANGELOG.md +30 -0
  634. package/site/changelogs/extensions/authentication-passport/CHANGELOG.md +30 -0
  635. package/site/changelogs/extensions/context-explorer/CHANGELOG.md +30 -0
  636. package/site/changelogs/extensions/cron/CHANGELOG.md +30 -0
  637. package/site/changelogs/extensions/graphql/CHANGELOG.md +30 -0
  638. package/site/changelogs/extensions/health/CHANGELOG.md +30 -0
  639. package/site/changelogs/extensions/logging/CHANGELOG.md +30 -0
  640. package/site/changelogs/extensions/metrics/CHANGELOG.md +30 -0
  641. package/site/changelogs/extensions/pooling/CHANGELOG.md +30 -0
  642. package/site/changelogs/extensions/socketio/CHANGELOG.md +30 -0
  643. package/site/changelogs/extensions/typeorm/CHANGELOG.md +32 -0
  644. package/site/changelogs/fixtures/mock-oauth2-provider/CHANGELOG.md +30 -0
  645. package/site/changelogs/packages/authentication/CHANGELOG.md +30 -0
  646. package/site/changelogs/packages/authorization/CHANGELOG.md +30 -0
  647. package/site/changelogs/packages/boot/CHANGELOG.md +30 -0
  648. package/site/changelogs/packages/booter-lb3app/CHANGELOG.md +30 -0
  649. package/site/changelogs/packages/build/CHANGELOG.md +34 -0
  650. package/site/changelogs/packages/cli/CHANGELOG.md +49 -0
  651. package/site/changelogs/packages/context/CHANGELOG.md +30 -0
  652. package/site/changelogs/packages/core/CHANGELOG.md +30 -0
  653. package/site/changelogs/packages/eslint-config/CHANGELOG.md +38 -0
  654. package/site/changelogs/packages/express/CHANGELOG.md +30 -0
  655. package/site/changelogs/packages/filter/CHANGELOG.md +34 -0
  656. package/site/changelogs/packages/http-caching-proxy/CHANGELOG.md +30 -0
  657. package/site/changelogs/packages/http-server/CHANGELOG.md +35 -0
  658. package/site/changelogs/packages/metadata/CHANGELOG.md +30 -0
  659. package/site/changelogs/packages/model-api-builder/CHANGELOG.md +30 -0
  660. package/site/changelogs/packages/monorepo/CHANGELOG.md +30 -0
  661. package/site/changelogs/packages/openapi-spec-builder/CHANGELOG.md +38 -0
  662. package/site/changelogs/packages/openapi-v3/CHANGELOG.md +36 -0
  663. package/site/changelogs/packages/repository/CHANGELOG.md +35 -0
  664. package/site/changelogs/packages/repository-json-schema/CHANGELOG.md +33 -0
  665. package/site/changelogs/packages/repository-tests/CHANGELOG.md +31 -0
  666. package/site/changelogs/packages/rest/CHANGELOG.md +30 -0
  667. package/site/changelogs/packages/rest-crud/CHANGELOG.md +33 -0
  668. package/site/changelogs/packages/rest-explorer/CHANGELOG.md +30 -0
  669. package/site/changelogs/packages/security/CHANGELOG.md +30 -0
  670. package/site/changelogs/packages/service-proxy/CHANGELOG.md +30 -0
  671. package/site/changelogs/packages/testlab/CHANGELOG.md +30 -0
  672. package/site/changelogs/packages/tsdocs/CHANGELOG.md +30 -0
  673. package/site/decorators/Decorators_openapi.md +3 -3
  674. package/site/decorators/Decorators_repository.md +25 -0
  675. package/site/deployment/Deploy-for-GDPR-readiness.md +1 -1
  676. package/site/migration/LB3-vs-LB4-booting.md +1 -1
  677. package/site/migration/auth/passport.md +2 -2
  678. package/site/migration/models/relations.md +1 -2
  679. package/site/readmes/loopback-next/examples/lb3-application/README.md +1 -1
  680. package/site/readmes/loopback-next/examples/log-extension/README.md +1 -1
  681. package/site/readmes/loopback-next/examples/references-many/README.md +49 -0
  682. package/site/readmes/loopback-next/examples/rest-crud/README.md +1 -1
  683. package/site/readmes/loopback-next/examples/todo-jwt/README.md +1 -1
  684. package/site/readmes/loopback-next/packages/boot/README.md +1 -1
  685. package/site/readmes/loopback-next/packages/build/README.md +2 -2
  686. package/site/readmes/loopback-next/packages/rest-crud/README.md +3 -2
  687. package/site/sidebars/lb4_sidebar.yml +8 -0
  688. package/site/tutorials/core/11-summary.md +1 -1
  689. package/site/tutorials/core/3-context-in-action.md +3 -3
  690. package/site/tutorials/soap-calculator/soap-calculator-tutorial-add-controller.md +1 -1
  691. package/site/tutorials/soap-calculator/soap-calculator-tutorial-scaffolding.md +1 -1
@@ -0,0 +1,379 @@
1
+ ---
2
+ lang: en
3
+ title: 'referencesMany Relation'
4
+ keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI, Model Relation
5
+ sidebar: lb4_sidebar
6
+ permalink: /doc/en/lb4/ReferencesMany-relation.html
7
+ ---
8
+
9
+ ## Overview
10
+
11
+ {% include important.html content="Please read [Relations](Relations.md) first." %}
12
+
13
+ LoopBack relations enable you to create connections between models and provide
14
+ navigation APIs to deal with a graph of model instances. In addition to the
15
+ traditional ones, LoopBack supports `referencesMany` relation that embeds an
16
+ array of foreign keys to reference other objects. For example:
17
+
18
+ ```json
19
+ {
20
+ "id": 1,
21
+ "name": "John Smith",
22
+ "accountIds": ["saving-01", "checking-01"]
23
+ }
24
+ ```
25
+
26
+ To add a `referencesMany` relation to your LoopBack application, you need to
27
+ perform the following steps:
28
+
29
+ 1. Add a property to your source model to define the array of foreign keys.
30
+ 2. Modify the source model repository class to provide an accessor function for
31
+ obtaining the target model instances.
32
+ 3. Call the accessor function in your controller methods.
33
+
34
+ ## Defining a referencesMany relation
35
+
36
+ This section describes how to define a `referencesMany` relation at the model
37
+ level using the `@referencesMany` decorator to define the array of foreign keys.
38
+
39
+ LB4 also provides an CLI tool `lb4 relation` to generate `referencesMany`
40
+ relation for you. Before you check out the
41
+ [`Relation Generator`](https://loopback.io/doc/en/lb4/Relation-generator.html)
42
+ page, read on to learn how you can define relations to meet your requirements.
43
+
44
+ ### Relation Metadata
45
+
46
+ LB4 uses three `keyFrom`, `keyTo` and `name` fields in the `referencesMany`
47
+ relation metadata to configure relations. The relation metadata has its own
48
+ default values for these three fields:
49
+
50
+ <table>
51
+ <thead>
52
+ <tr>
53
+ <th width="95">Field Name</th>
54
+ <th width="260">Description</th>
55
+ <th width="260">Default Value</th>
56
+ <th>Example</th>
57
+ </tr>
58
+ </thead>
59
+ <tbody>
60
+ <tr>
61
+ <td><code>keyFrom</code></td>
62
+ <td>the array property of foreign keys</td>
63
+ <td>the target model name appended with `Ids` in camel case</td>
64
+ <td><code>Customer.accountIds</code></td>
65
+ </tr>
66
+ <tr>
67
+ <td><code>keyTo</code></td>
68
+ <td>the source key of the target model</td>
69
+ <td>the primary key in the target model</td>
70
+ <td><code>Account.id</code></td>
71
+ </tr>
72
+ <tr>
73
+ <td><code>name</code></td>
74
+ <td>the name of the relation</td>
75
+ <td>the plural name of target model</td>
76
+ <td><code>accounts</code></td>
77
+ </tr>
78
+
79
+ </tbody>
80
+ </table>
81
+
82
+ We recommend to use default values. If you'd like to customize the name of
83
+ foreign keys or the relation name, you'll need to specify some fields through
84
+ the relation decorator.
85
+
86
+ The standard naming convention for the property of foreign keys in the source
87
+ model is `target name` + `Ids` (for example, Customer.accountIds).
88
+
89
+ {% include code-caption.html content="/src/models/customer.model.ts" %}
90
+
91
+ ```ts
92
+ import {referencesMany, Entity, model, property} from '@loopback/repository';
93
+ import {Account} from './account.model';
94
+
95
+ @model()
96
+ export class Customer extends Entity {
97
+ @property({
98
+ type: 'number',
99
+ id: true,
100
+ })
101
+ id: number;
102
+
103
+ @property({
104
+ type: 'string',
105
+ })
106
+ name: string;
107
+
108
+ @referencesMany(() => Account)
109
+ accountIds: number[]; // relation name will default to `accounts`
110
+
111
+ constructor(data: Partial<Customer>) {
112
+ super(data);
113
+ }
114
+ }
115
+
116
+ export interface CustomerRelations {
117
+ // describe navigational properties here
118
+ }
119
+
120
+ export type CustomerWithRelations = Customer & CustomerRelations;
121
+ ```
122
+
123
+ If the property name of foreign keys in the source model has to be customized
124
+ (`account_ids` instead of `accountIds` for example), the relation name has to be
125
+ explicitly specified in the `name` attribute of the relation definition.
126
+ Otherwise the _default relation name_ generates by LB4 (`account_ids` in this
127
+ case) will be the same as the customized name of foreign keys, which is invalid.
128
+
129
+ {% include warning.html content="Make sure that you have different names for the property name of foreign keys and the relation name in ReferencesMany relations."%}
130
+
131
+ ```ts
132
+ // import statements
133
+ @model()
134
+ export class Customer extends Entity {
135
+ @property({
136
+ type: 'number',
137
+ id: true,
138
+ })
139
+ id: number;
140
+
141
+ @property({
142
+ type: 'string',
143
+ })
144
+ name: string;
145
+
146
+ @referencesMany(
147
+ () => Account,
148
+ {name: 'accounts'}, // specify the relation name if fk is customized
149
+ )
150
+ account_ids: number[]; // customized foreign keys
151
+
152
+ // other properties, constructor, etc.
153
+ }
154
+ ```
155
+
156
+ If you need to use _different names for models and database columns_, to use
157
+ `account_ids` as db column name other than `accountIds` for example, passing the
158
+ column name in the third argument to the `referencesMany` decorator would allow
159
+ you to do so:
160
+
161
+ ```ts
162
+ class Customer extends Entity {
163
+ // constructor, properties, etc.
164
+ @referencesMany(() => Account, {keyFrom: 'accountIds'}, {name: 'account_ids'})
165
+ accountIds: number[];
166
+ }
167
+ ```
168
+
169
+ If you need to use another attribute other than the id property to be the source
170
+ key of the target model (joining two tables on non-primary attribute), the
171
+ `keyTo` attribute in the relation definition has to be stated explicitly.
172
+
173
+ ```ts
174
+ class Customer extends Entity {
175
+ // constructor, properties, etc.
176
+ @referencesMany(() => Account, {keyTo: 'customized_target_property'})
177
+ accountIds: number[];
178
+ }
179
+
180
+ export interface CustomerRelations {
181
+ accounts?: AccountWithRelations[];
182
+ }
183
+ ```
184
+
185
+ {% include important.html content="LB4 doesn't support composite keys for now. e.g joining two tables with more than one source key. Related GitHub issue: [Composite primary/foreign keys](https://github.com/loopbackio/loopback-next/issues/1830)" %}
186
+
187
+ ## Configuring a referencesMany relation
188
+
189
+ The configuration and resolution of a `referencesMany` relation takes place at
190
+ the repository level. Once `referencesMany` relation is defined on the source
191
+ model, then there are a couple of steps involved to configure it and use it. On
192
+ the source repository, the following are required:
193
+
194
+ - In the constructor of your source repository class, use
195
+ [Dependency Injection](Dependency-injection.md) to receive a getter function
196
+ for obtaining an instance of the target repository.
197
+ - Declare a property with the factory function type
198
+ `ReferencesManyAccessor<targetModel, typeof sourceModel.prototype.id>` on the
199
+ source repository class.
200
+ - call the `createReferencesManyAccessorFor` function in the constructor of the
201
+ source repository class with the relation name (decorated relation property on
202
+ the source model) and target repository instance and assign it the property
203
+ mentioned above.
204
+
205
+ The following code snippet shows how it would look like:
206
+
207
+ {% include code-caption.html
208
+ content="/src/repositories/customer.repository.ts" %}
209
+
210
+ ```ts
211
+ import {Getter, inject} from '@loopback/core';
212
+ import {
213
+ ReferencesManyAccessor,
214
+ DefaultCrudRepository,
215
+ juggler,
216
+ repository,
217
+ } from '@loopback/repository';
218
+ import {Account, Customer, CustomerRelations} from '../models';
219
+ import {AccountRepository} from '../repositories';
220
+
221
+ export class CustomerRepository extends DefaultCrudRepository<
222
+ Customer,
223
+ typeof Customer.prototype.id,
224
+ CustomerRelations
225
+ > {
226
+ public readonly accounts: ReferencesManyAccessor<
227
+ Account,
228
+ typeof Customer.prototype.id
229
+ >;
230
+
231
+ constructor(
232
+ @inject('datasources.db') protected db: juggler.DataSource,
233
+ @repository.getter('AccountRepository')
234
+ accountRepositoryGetter: Getter<AccountRepository>,
235
+ ) {
236
+ super(Customer, db);
237
+ this.accounts = this.createReferencesManyAccessorFor(
238
+ 'accounts',
239
+ accountRepositoryGetter,
240
+ );
241
+ }
242
+ }
243
+ ```
244
+
245
+ `ReferencesManyAccessor` is a function accepting the primary key (id) of a
246
+ source model instance (e.g. `customer.id`) and returning back the related target
247
+ model instances (e.g. a `Account[]`). See also
248
+ [API Docs](https://loopback.io/doc/en/lb4/apidocs.repository.belongstoaccessor.html)
249
+
250
+ {% include note.html content="Notice that `CustomerRepository.create()` expects an `Customer` model only, navigational properties are not expected to be included in the target data. For instance, the following request will be rejected:
251
+ `customerRepository.create({`
252
+ ` id: 1,`
253
+ ` name: 'John'`
254
+ ` accountIds: [1]`
255
+ ` accounts:[{id: 1, balance: 0}] // rejected`
256
+ `})`" %}
257
+
258
+ ## Querying related models
259
+
260
+ Different from LB3, LB4 creates a different inclusion resolver for each relation
261
+ type to query related models. Each **relation** has its own inclusion resolver
262
+ `inclusionResolver`. And each **repository** has a built-in property
263
+ `inclusionResolvers` as a registry for its inclusionResolvers.
264
+
265
+ A `referencesMany` relation has an `inclusionResolver` function as a property.
266
+ It fetches target models for the given list of source model instances.
267
+
268
+ ### Use the relation between `Customer` and `Account` we show above.
269
+
270
+ After setting up the relation in the repository class, the inclusion resolver
271
+ allows users to retrieve all customers along with their related accounts through
272
+ the following code at the repository level:
273
+
274
+ ```ts
275
+ customerRepo.find({include: ['accounts']});
276
+ ```
277
+
278
+ or use APIs with controllers:
279
+
280
+ ```
281
+ GET http://localhost:3000/customers?filter[include][]=accounts
282
+ ```
283
+
284
+ ### Enable/disable the inclusion resolvers
285
+
286
+ - Base repository classes have a public property `inclusionResolvers`, which
287
+ maintains a map containing inclusion resolvers for each relation.
288
+ - The `inclusionResolver` of a certain relation is built when the source
289
+ repository class calls the `createReferencesManyAccessorFor` function in the
290
+ constructor with the relation name.
291
+ - Call `registerInclusionResolver` to add the resolver of that relation to the
292
+ `inclusionResolvers` map. (As we realized in LB3, not all relations are
293
+ allowed to be traversed. Users can decide to which resolvers can be added.)
294
+ The first parameter is the name of the relation.
295
+
296
+ The following code snippet shows how to register the inclusion resolver for the
297
+ referencesMany relation 'accounts':
298
+
299
+ ```ts
300
+ export class CustomerRepository extends DefaultCrudRepository {
301
+ accounts: ReferencesManyAccessor<Account, typeof Customer.prototype.id>;
302
+
303
+ constructor(
304
+ dataSource: juggler.DataSource,
305
+ accountRepositoryGetter: Getter<AccountRepository>,
306
+ ) {
307
+ super(Customer, dataSource);
308
+
309
+ // we already have this line to create a ReferencesManyRepository factory
310
+ this.accounts = this.createReferencesManyAccessorFor(
311
+ 'accounts',
312
+ accountRepositoryGetter,
313
+ );
314
+
315
+ // add this line to register inclusion resolver.
316
+ this.registerInclusionResolver('accounts', this.accounts.inclusionResolver);
317
+ }
318
+ }
319
+ ```
320
+
321
+ - We can simply include the relation in queries via `find()`, `findOne()`, and
322
+ `findById()` methods. For example, these queries return all customers with
323
+ their accounts:
324
+
325
+ if you process data at the repository level:
326
+
327
+ ```ts
328
+ customerRepository.find({include: ['accounts']});
329
+ ```
330
+
331
+ this is the same as the url:
332
+
333
+ ```
334
+ GET http://localhost:3000/customers?filter[include][]=accounts
335
+ ```
336
+
337
+ which returns:
338
+
339
+ ```ts
340
+ [
341
+ {
342
+ id: 1,
343
+ name: 'John',
344
+ accountIds: [12, 16],
345
+ accounts: [
346
+ {
347
+ id: 12,
348
+ balance: 99,
349
+ },
350
+ {
351
+ id: 16,
352
+ balance: 0,
353
+ },
354
+ ],
355
+ },
356
+ {
357
+ id: 2,
358
+ name: 'Dave',
359
+ accountIds: [4],
360
+ accounts: [
361
+ {
362
+ id: 4,
363
+ balance: 10,
364
+ },
365
+ ],
366
+ },
367
+ ];
368
+ ```
369
+
370
+ - You can delete a relation from `inclusionResolvers` to disable the inclusion
371
+ for a certain relation. e.g
372
+ `customerRepository.inclusionResolvers.delete('accounts')`
373
+
374
+ ### Query multiple relations
375
+
376
+ It is possible to query several relations or nested include relations with
377
+ custom scope once you have the inclusion resolver of each relation set up. Check
378
+ [HasMany - Query multiple relations](HasMany-relation.md#query-multiple-relations)
379
+ for the usage and examples.
@@ -138,6 +138,7 @@ The tool will prompt you for:
138
138
  - [HasManyThrough](HasManyThrough-relation.md)
139
139
  - [HasOne](HasOne-relation.md)
140
140
  - [BelongsTo](BelongsTo-relation.md)
141
+ - [ReferencesMany](ReferencesMany-relation.md)
141
142
 
142
143
  - Name of the source model (`sourceModel`). Prompts a list of available models
143
144
  to choose from as the source model of the relation.
package/site/Relations.md CHANGED
@@ -45,6 +45,7 @@ Here are the currently supported relations:
45
45
  - [BelongsTo](BelongsTo-relation.md)
46
46
  - [HasOne](HasOne-relation.md)
47
47
  - [HasManyThrough](HasManyThrough-relation.md)
48
+ - [ReferencesMany](ReferencesMany-relation.md)
48
49
 
49
50
  {% include note.html content="
50
51
  The `hasMany` relation may alternatively be implemented using the
@@ -62,7 +62,7 @@ model already created in their respective directories.
62
62
 
63
63
  ### Arguments
64
64
 
65
- `<name>` - Optional argument specifyng the respository name to be generated. In
65
+ `<name>` - Optional argument specifying the repository name to be generated. In
66
66
  case you select multiple models, the first model will take this argument for its
67
67
  repository file name.
68
68
 
@@ -91,7 +91,7 @@ The tool will prompt you for:
91
91
  - **Please select the repository base class.** _(repository)_ if the name of a
92
92
  valid base class has been supplied from the command line, the prompt is
93
93
  skipped, otherwise it will present you a list of repositories. The default
94
- repository is infered from the datasource type.
94
+ repository is inferred from the datasource type.
95
95
 
96
96
  Any repository in the `src/repository` folder with the file format
97
97
  `*.repository.base.ts` will be added to the list too.
@@ -105,7 +105,7 @@ When a `DataSource` is instantiated, the configuration properties will be used
105
105
  to initialize the connector to connect to the backend system. You can define a
106
106
  DataSource using Juggler in your LoopBack 4 app as follows:
107
107
 
108
- {% include code-caption.html content="src/datsources/db.datasource.ts" %}
108
+ {% include code-caption.html content="src/datasources/db.datasource.ts" %}
109
109
 
110
110
  ```ts
111
111
  import {juggler} from '@loopback/repository';
@@ -13,7 +13,7 @@ the APIs that create the endpoints on the server. We will then follow the path
13
13
  taken by a request, to see how it makes its way through the various parts of the
14
14
  framework to return a result.
15
15
 
16
- ### Setting up the request/response infrastruture
16
+ ### Setting up the request/response infrastructure
17
17
 
18
18
  The endpoints on a LoopBack app can be categorized into controller endpoints and
19
19
  non-controller endpoints. Controller endpoints are those that are created by
@@ -30,7 +30,7 @@ controller method.
30
30
  {% include tip.html content="Apart from controller files in the `controllers` directory,
31
31
  controllers may be added to the app by [components](https://loopback.io/doc/en/lb4/Components.html)." %}
32
32
 
33
- In the request/response cycle section we will see how implemenation details
33
+ In the request/response cycle section we will see how implementation details
34
34
  determine the course of a request to these endpoints - they may or may not
35
35
  actually interact with a model.
36
36
 
@@ -116,7 +116,7 @@ route for invocation.
116
116
  ##### 2. ParseParams
117
117
 
118
118
  [ParseParams](https://loopback.io/doc/en/lb4/apidocs.rest.parseparamsprovider.html)
119
- parses LoopBack-relevant request paremeters from the request body, URL segment,
119
+ parses LoopBack-relevant request parameters from the request body, URL segment,
120
120
  and query parameters.
121
121
 
122
122
  It is also responsible for validating the property types of the request body, as
@@ -127,7 +127,7 @@ HTTP 422 error.
127
127
 
128
128
  [InvokeMethod](https://loopback.io/doc/en/lb4/apidocs.rest.invokemethodprovider.html)
129
129
  is responsible for calling the endpoint handler, passing in the route found by
130
- `FindRoute` and the paremeters found by `ParseParams`.
130
+ `FindRoute` and the parameters found by `ParseParams`.
131
131
 
132
132
  For non-controller endpoints, control is passed on to the respective handlers at
133
133
  this stage, which may then handle the response sending process themselves. For
@@ -234,8 +234,8 @@ use them.
234
234
  between controllers and the data. They use an underlying datasource and a
235
235
  connector to interact with the data.
236
236
 
237
- Controller methods can call corresponding methods in the respository to read
238
- from or write to the database.
237
+ Controller methods can call corresponding methods in the repository to read from
238
+ or write to the database.
239
239
 
240
240
  Repositories can be injected in the controller constructor so controller methods
241
241
  may use them.
@@ -27,6 +27,8 @@ src/datasources
27
27
 
28
28
  `--basePath` : _(Optional)_ base path of the model endpoint
29
29
 
30
+ `--readonly` : _(Optional)_ create readonly APIs e.g find and count
31
+
30
32
  ### Configuration file
31
33
 
32
34
  This generator supports a config file with the following format, see the
@@ -37,7 +39,8 @@ file.
37
39
  {
38
40
  "datasource": "validDataSourceName",
39
41
  "model": "validModelName",
40
- "basePath": "/<base-path>"
42
+ "basePath": "/<base-path>",
43
+ "readonly": "<boolean>"
41
44
  }
42
45
  ```
43
46
 
@@ -74,6 +77,9 @@ The tool will prompt you for:
74
77
  supplied from the command line with `--basePath` option or more than one
75
78
  models are selected, the prompt is skipped.
76
79
 
80
+ - **Create readonly APIs.** _(readonly)_ If readonly had been supplied from the
81
+ command line with `--readonly` option, the prompt is skipped.
82
+
77
83
  ### Output
78
84
 
79
85
  Once all the prompts have been answered, the CLI will do the following for each
@@ -43,7 +43,7 @@ export class TodoListApplication extends BootMixin(
43
43
  ```
44
44
 
45
45
  You can call `app.static()` multiple times to configure the app to serve static
46
- assets from different drectories.
46
+ assets from different directories.
47
47
 
48
48
  ```ts
49
49
  app.static('/files', path.join(__dirname, 'files'));
@@ -970,7 +970,7 @@ describe('Product (acceptance)', () => {
970
970
  await app.boot();
971
971
 
972
972
  // change to use the test datasource after the app has been booted so that
973
- // it is not overriden
973
+ // it is not overridden
974
974
  app.dataSource(testdb);
975
975
  await app.start();
976
976
 
@@ -26,6 +26,6 @@ constructor(options: ApiConnectSpecOptions, appMetadata?: ApplicationMetadata);
26
26
  | Parameter | Type | Description |
27
27
  | --- | --- | --- |
28
28
  | options | [ApiConnectSpecOptions](./apiconnect.apiconnectspecoptions.md) | |
29
- | appMetadata | [ApplicationMetadata](./core.applicationmetadata.md) | |
29
+ | appMetadata | [ApplicationMetadata](./core.applicationmetadata.md) | <i>(Optional)</i> |
30
30
 
31
31
 
@@ -18,7 +18,7 @@ permalink: /doc/en/lb4/apidocs.authentication-jwt.myuserservice.html
18
18
  ```typescript
19
19
  export declare class MyUserService implements UserService<User, Credentials>
20
20
  ```
21
- <b>Implements:</b> [UserService](./authentication.userservice.md)<!-- -->&lt;[User](./authentication-jwt.user.md)<!-- -->, [Credentials](./authentication-jwt.credentials.md)<!-- -->&gt;
21
+ <b>Implements:</b> [UserService](./authentication.userservice.md)<!-- -->&lt;[User](./authentication-jwt.user.md)<!-- -->, [Credentials](./authentication-jwt.credentials.md)
22
22
 
23
23
  ## Constructors
24
24
 
@@ -25,6 +25,6 @@ constructor(data?: Partial<RefreshToken>);
25
25
 
26
26
  | Parameter | Type | Description |
27
27
  | --- | --- | --- |
28
- | data | Partial&lt;[RefreshToken](./authentication-jwt.refreshtoken.md)<!-- -->&gt; | |
28
+ | data | Partial&lt;[RefreshToken](./authentication-jwt.refreshtoken.md)<!-- -->&gt; | <i>(Optional)</i> |
29
29
 
30
30
 
@@ -18,7 +18,7 @@ permalink: /doc/en/lb4/apidocs.authentication-jwt.refreshtokenrepository.html
18
18
  ```typescript
19
19
  export declare class RefreshTokenRepository extends DefaultCrudRepository<RefreshToken, typeof RefreshToken.prototype.id, RefreshTokenRelations>
20
20
  ```
21
- <b>Extends:</b> [DefaultCrudRepository](./repository.defaultcrudrepository.md)<!-- -->&lt;[RefreshToken](./authentication-jwt.refreshtoken.md)<!-- -->, typeof [RefreshToken.prototype.id](./authentication-jwt.refreshtoken.id.md)<!-- -->, [RefreshTokenRelations](./authentication-jwt.refreshtokenrelations.md)<!-- -->&gt;
21
+ <b>Extends:</b> [DefaultCrudRepository](./repository.defaultcrudrepository.md)<!-- -->&lt;[RefreshToken](./authentication-jwt.refreshtoken.md)<!-- -->, typeof [RefreshToken.prototype.id](./authentication-jwt.refreshtoken.id.md)<!-- -->, [RefreshTokenRelations](./authentication-jwt.refreshtokenrelations.md)
22
22
 
23
23
  ## Constructors
24
24
 
@@ -25,6 +25,6 @@ constructor(data?: Partial<User>);
25
25
 
26
26
  | Parameter | Type | Description |
27
27
  | --- | --- | --- |
28
- | data | Partial&lt;[User](./authentication-jwt.user.md)<!-- -->&gt; | |
28
+ | data | Partial&lt;[User](./authentication-jwt.user.md)<!-- -->&gt; | <i>(Optional)</i> |
29
29
 
30
30
 
@@ -25,6 +25,6 @@ constructor(data?: Partial<UserCredentials>);
25
25
 
26
26
  | Parameter | Type | Description |
27
27
  | --- | --- | --- |
28
- | data | Partial&lt;[UserCredentials](./authentication-jwt.usercredentials.md)<!-- -->&gt; | |
28
+ | data | Partial&lt;[UserCredentials](./authentication-jwt.usercredentials.md)<!-- -->&gt; | <i>(Optional)</i> |
29
29
 
30
30
 
@@ -18,7 +18,7 @@ permalink: /doc/en/lb4/apidocs.authentication-jwt.usercredentialsrepository.html
18
18
  ```typescript
19
19
  export declare class UserCredentialsRepository extends DefaultCrudRepository<UserCredentials, typeof UserCredentials.prototype.id, UserCredentialsRelations>
20
20
  ```
21
- <b>Extends:</b> [DefaultCrudRepository](./repository.defaultcrudrepository.md)<!-- -->&lt;[UserCredentials](./authentication-jwt.usercredentials.md)<!-- -->, typeof [UserCredentials.prototype.id](./authentication-jwt.usercredentials.id.md)<!-- -->, [UserCredentialsRelations](./authentication-jwt.usercredentialsrelations.md)<!-- -->&gt;
21
+ <b>Extends:</b> [DefaultCrudRepository](./repository.defaultcrudrepository.md)<!-- -->&lt;[UserCredentials](./authentication-jwt.usercredentials.md)<!-- -->, typeof [UserCredentials.prototype.id](./authentication-jwt.usercredentials.id.md)<!-- -->, [UserCredentialsRelations](./authentication-jwt.usercredentialsrelations.md)
22
22
 
23
23
  ## Constructors
24
24
 
@@ -18,7 +18,7 @@ permalink: /doc/en/lb4/apidocs.authentication-jwt.userrepository.html
18
18
  ```typescript
19
19
  export declare class UserRepository extends DefaultCrudRepository<User, typeof User.prototype.id, UserRelations>
20
20
  ```
21
- <b>Extends:</b> [DefaultCrudRepository](./repository.defaultcrudrepository.md)<!-- -->&lt;[User](./authentication-jwt.user.md)<!-- -->, typeof [User.prototype.id](./authentication-jwt.user.id.md)<!-- -->, [UserRelations](./authentication-jwt.userrelations.md)<!-- -->&gt;
21
+ <b>Extends:</b> [DefaultCrudRepository](./repository.defaultcrudrepository.md)<!-- -->&lt;[User](./authentication-jwt.user.md)<!-- -->, typeof [User.prototype.id](./authentication-jwt.user.id.md)<!-- -->, [UserRelations](./authentication-jwt.userrelations.md)
22
22
 
23
23
  ## Constructors
24
24
 
@@ -27,6 +27,6 @@ constructor(strategy: Strategy, name: string, userProfileFactory?: UserProfileFa
27
27
  | --- | --- | --- |
28
28
  | strategy | Strategy | instance of a class which implements a [passport-strategy](http://passportjs.org/)<!-- -->. |
29
29
  | name | string | |
30
- | userProfileFactory | [UserProfileFactory](./authentication.userprofilefactory.md)<!-- -->&lt;U&gt; | |
30
+ | userProfileFactory | [UserProfileFactory](./authentication.userprofilefactory.md)<!-- -->&lt;U&gt; | <i>(Optional)</i> |
31
31
 
32
32
 
@@ -26,7 +26,7 @@ authenticate(request: Request, options?: AuthenticateOptions): Promise<UserProfi
26
26
  | Parameter | Type | Description |
27
27
  | --- | --- | --- |
28
28
  | request | Request | The incoming request. |
29
- | options | AuthenticateOptions | Options passed through to strategy.authenticate. |
29
+ | options | AuthenticateOptions | <i>(Optional)</i> Options passed through to strategy.authenticate. |
30
30
 
31
31
  <b>Returns:</b>
32
32
 
@@ -29,6 +29,6 @@ constructor(getStrategies: Getter<AuthenticationStrategy | AuthenticationStrateg
29
29
  | setCurrentUser | [Setter](./context.setter.md)<!-- -->&lt;[UserProfile](./security.userprofile.md)<!-- -->&gt; | |
30
30
  | setRedirectUrl | [Setter](./context.setter.md)<!-- -->&lt;string&gt; | |
31
31
  | setRedirectStatus | [Setter](./context.setter.md)<!-- -->&lt;number&gt; | |
32
- | options | [AuthenticationOptions](./authentication.authenticationoptions.md) | |
32
+ | options | [AuthenticationOptions](./authentication.authenticationoptions.md) | <i>(Optional)</i> |
33
33
 
34
34
 
@@ -20,7 +20,7 @@ Provides the authentication action for a sequence
20
20
  ```typescript
21
21
  export declare class AuthenticateActionProvider implements Provider<AuthenticateFn>
22
22
  ```
23
- <b>Implements:</b> [Provider](./context.provider.md)<!-- -->&lt;[AuthenticateFn](./authentication.authenticatefn.md)<!-- -->&gt;
23
+ <b>Implements:</b> [Provider](./context.provider.md)<!-- -->&lt;[AuthenticateFn](./authentication.authenticatefn.md)
24
24
 
25
25
  ## Example
26
26
 
@@ -18,7 +18,7 @@ permalink: /doc/en/lb4/apidocs.authentication.authenticationmiddlewareprovider.h
18
18
  ```typescript
19
19
  export declare class AuthenticationMiddlewareProvider implements Provider<Middleware>
20
20
  ```
21
- <b>Implements:</b> [Provider](./context.provider.md)<!-- -->&lt;[Middleware](./express.middleware.md)<!-- -->&gt;
21
+ <b>Implements:</b> [Provider](./context.provider.md)<!-- -->&lt;[Middleware](./express.middleware.md)
22
22
 
23
23
  ## Constructors
24
24
 
@@ -26,6 +26,6 @@ constructor(authenticationStrategies: Getter<AuthenticationStrategy[]>, metadata
26
26
  | Parameter | Type | Description |
27
27
  | --- | --- | --- |
28
28
  | authenticationStrategies | [Getter](./context.getter.md)<!-- -->&lt;[AuthenticationStrategy](./authentication.authenticationstrategy.md)<!-- -->\[\]&gt; | |
29
- | metadata | [AuthenticationMetadata](./authentication.authenticationmetadata.md)<!-- -->\[\] \| undefined | |
29
+ | metadata | [AuthenticationMetadata](./authentication.authenticationmetadata.md)<!-- -->\[\] \| undefined | <i>(Optional)</i> |
30
30
 
31
31
 
@@ -22,7 +22,7 @@ It declares an extension point to which all authentication strategy implementati
22
22
  ```typescript
23
23
  export declare class AuthenticationStrategyProvider implements Provider<AuthenticationStrategy[] | undefined>
24
24
  ```
25
- <b>Implements:</b> [Provider](./context.provider.md)<!-- -->&lt;[AuthenticationStrategy](./authentication.authenticationstrategy.md)<!-- -->\[\] \| undefined&gt;
25
+ <b>Implements:</b> [Provider](./context.provider.md)<!-- -->&lt;[AuthenticationStrategy](./authentication.authenticationstrategy.md)
26
26
 
27
27
  ## Example
28
28