@loopback/repository 4.0.0-alpha.8 → 4.1.0

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 (463) hide show
  1. package/LICENSE +25 -0
  2. package/README.md +93 -389
  3. package/dist/common-types.d.ts +96 -0
  4. package/dist/common-types.js +24 -0
  5. package/dist/common-types.js.map +1 -0
  6. package/dist/connectors/connector.d.ts +48 -0
  7. package/{lib → dist/connectors}/connector.js +1 -1
  8. package/dist/connectors/connector.js.map +1 -0
  9. package/{lib/crud-connector.d.ts → dist/connectors/crud.connector.d.ts} +51 -51
  10. package/{lib/common-types.js → dist/connectors/crud.connector.js} +2 -2
  11. package/dist/connectors/crud.connector.js.map +1 -0
  12. package/dist/connectors/index.d.ts +3 -0
  13. package/dist/connectors/index.js +11 -0
  14. package/dist/connectors/index.js.map +1 -0
  15. package/{lib6/kv-connector.d.ts → dist/connectors/kv.connector.d.ts} +28 -28
  16. package/{lib/datasource.js → dist/connectors/kv.connector.js} +2 -2
  17. package/dist/connectors/kv.connector.js.map +1 -0
  18. package/dist/datasource.d.ts +27 -0
  19. package/{lib6 → dist}/datasource.js +1 -1
  20. package/dist/datasource.js.map +1 -0
  21. package/dist/decorators/index.d.ts +3 -0
  22. package/dist/decorators/index.js +11 -0
  23. package/dist/decorators/index.js.map +1 -0
  24. package/dist/decorators/metadata.d.ts +12 -0
  25. package/dist/decorators/metadata.js +51 -0
  26. package/dist/decorators/metadata.js.map +1 -0
  27. package/dist/decorators/model.decorator.d.ts +40 -0
  28. package/dist/decorators/model.decorator.js +112 -0
  29. package/dist/decorators/model.decorator.js.map +1 -0
  30. package/dist/decorators/repository.decorator.d.ts +106 -0
  31. package/dist/decorators/repository.decorator.js +114 -0
  32. package/dist/decorators/repository.decorator.js.map +1 -0
  33. package/dist/define-model-class.d.ts +55 -0
  34. package/dist/define-model-class.js +57 -0
  35. package/dist/define-model-class.js.map +1 -0
  36. package/dist/define-repository-class.d.ts +119 -0
  37. package/dist/define-repository-class.js +98 -0
  38. package/dist/define-repository-class.js.map +1 -0
  39. package/dist/errors/entity-not-found.error.d.ts +8 -0
  40. package/dist/errors/entity-not-found.error.js +28 -0
  41. package/dist/errors/entity-not-found.error.js.map +1 -0
  42. package/dist/errors/index.d.ts +2 -0
  43. package/dist/errors/index.js +10 -0
  44. package/dist/errors/index.js.map +1 -0
  45. package/dist/errors/invalid-relation.error.d.ts +10 -0
  46. package/dist/errors/invalid-relation.error.js +28 -0
  47. package/dist/errors/invalid-relation.error.js.map +1 -0
  48. package/dist/index.d.ts +30 -0
  49. package/dist/index.js +39 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/keys.d.ts +34 -0
  52. package/dist/keys.js +44 -0
  53. package/dist/keys.js.map +1 -0
  54. package/dist/mixins/index.d.ts +1 -0
  55. package/dist/mixins/index.js +9 -0
  56. package/dist/mixins/index.js.map +1 -0
  57. package/dist/mixins/repository.mixin.d.ts +377 -0
  58. package/dist/mixins/repository.mixin.js +405 -0
  59. package/dist/mixins/repository.mixin.js.map +1 -0
  60. package/dist/model.d.ts +232 -0
  61. package/dist/model.js +367 -0
  62. package/dist/model.js.map +1 -0
  63. package/dist/relations/belongs-to/belongs-to.accessor.d.ts +17 -0
  64. package/dist/relations/belongs-to/belongs-to.accessor.js +40 -0
  65. package/dist/relations/belongs-to/belongs-to.accessor.js.map +1 -0
  66. package/dist/relations/belongs-to/belongs-to.decorator.d.ts +11 -0
  67. package/dist/relations/belongs-to/belongs-to.decorator.js +64 -0
  68. package/dist/relations/belongs-to/belongs-to.decorator.js.map +1 -0
  69. package/dist/relations/belongs-to/belongs-to.helpers.d.ts +17 -0
  70. package/dist/relations/belongs-to/belongs-to.helpers.js +63 -0
  71. package/dist/relations/belongs-to/belongs-to.helpers.js.map +1 -0
  72. package/dist/relations/belongs-to/belongs-to.inclusion-resolver.d.ts +14 -0
  73. package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js +36 -0
  74. package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js.map +1 -0
  75. package/dist/relations/belongs-to/belongs-to.repository.d.ts +28 -0
  76. package/dist/relations/belongs-to/belongs-to.repository.js +33 -0
  77. package/dist/relations/belongs-to/belongs-to.repository.js.map +1 -0
  78. package/dist/relations/belongs-to/index.d.ts +4 -0
  79. package/dist/relations/belongs-to/index.js +12 -0
  80. package/dist/relations/belongs-to/index.js.map +1 -0
  81. package/dist/relations/has-many/has-many-through.helpers.d.ts +182 -0
  82. package/dist/relations/has-many/has-many-through.helpers.js +282 -0
  83. package/dist/relations/has-many/has-many-through.helpers.js.map +1 -0
  84. package/dist/relations/has-many/has-many-through.inclusion-resolver.d.ts +16 -0
  85. package/dist/relations/has-many/has-many-through.inclusion-resolver.js +78 -0
  86. package/dist/relations/has-many/has-many-through.inclusion-resolver.js.map +1 -0
  87. package/dist/relations/has-many/has-many-through.repository-factory.d.ts +17 -0
  88. package/dist/relations/has-many/has-many-through.repository-factory.js +37 -0
  89. package/dist/relations/has-many/has-many-through.repository-factory.js.map +1 -0
  90. package/dist/relations/has-many/has-many-through.repository.d.ts +114 -0
  91. package/dist/relations/has-many/has-many-through.repository.js +103 -0
  92. package/dist/relations/has-many/has-many-through.repository.js.map +1 -0
  93. package/dist/relations/has-many/has-many.decorator.d.ts +11 -0
  94. package/dist/relations/has-many/has-many.decorator.js +36 -0
  95. package/dist/relations/has-many/has-many.decorator.js.map +1 -0
  96. package/dist/relations/has-many/has-many.helpers.d.ts +26 -0
  97. package/dist/relations/has-many/has-many.helpers.js +78 -0
  98. package/dist/relations/has-many/has-many.helpers.js.map +1 -0
  99. package/dist/relations/has-many/has-many.inclusion-resolver.d.ts +14 -0
  100. package/dist/relations/has-many/has-many.inclusion-resolver.js +45 -0
  101. package/dist/relations/has-many/has-many.inclusion-resolver.js.map +1 -0
  102. package/dist/relations/has-many/has-many.repository-factory.d.ts +28 -0
  103. package/dist/relations/has-many/has-many.repository-factory.js +39 -0
  104. package/dist/relations/has-many/has-many.repository-factory.js.map +1 -0
  105. package/dist/relations/has-many/has-many.repository.d.ts +54 -0
  106. package/dist/relations/has-many/has-many.repository.js +38 -0
  107. package/dist/relations/has-many/has-many.repository.js.map +1 -0
  108. package/dist/relations/has-many/index.d.ts +6 -0
  109. package/dist/relations/has-many/index.js +14 -0
  110. package/dist/relations/has-many/index.js.map +1 -0
  111. package/dist/relations/has-one/has-one.decorator.d.ts +3 -0
  112. package/dist/relations/has-one/has-one.decorator.js +37 -0
  113. package/dist/relations/has-one/has-one.decorator.js.map +1 -0
  114. package/dist/relations/has-one/has-one.helpers.d.ts +17 -0
  115. package/dist/relations/has-one/has-one.helpers.js +64 -0
  116. package/dist/relations/has-one/has-one.helpers.js.map +1 -0
  117. package/dist/relations/has-one/has-one.inclusion-resolver.d.ts +14 -0
  118. package/dist/relations/has-one/has-one.inclusion-resolver.js +35 -0
  119. package/dist/relations/has-one/has-one.inclusion-resolver.js.map +1 -0
  120. package/dist/relations/has-one/has-one.repository-factory.d.ts +28 -0
  121. package/dist/relations/has-one/has-one.repository-factory.js +39 -0
  122. package/dist/relations/has-one/has-one.repository-factory.js.map +1 -0
  123. package/dist/relations/has-one/has-one.repository.d.ts +53 -0
  124. package/dist/relations/has-one/has-one.repository.js +45 -0
  125. package/dist/relations/has-one/has-one.repository.js.map +1 -0
  126. package/dist/relations/has-one/index.d.ts +3 -0
  127. package/dist/relations/has-one/index.js +11 -0
  128. package/dist/relations/has-one/index.js.map +1 -0
  129. package/dist/relations/index.d.ts +6 -0
  130. package/dist/relations/index.js +14 -0
  131. package/dist/relations/index.js.map +1 -0
  132. package/dist/relations/relation.decorator.d.ts +39 -0
  133. package/dist/relations/relation.decorator.js +88 -0
  134. package/dist/relations/relation.decorator.js.map +1 -0
  135. package/dist/relations/relation.helpers.d.ts +105 -0
  136. package/dist/relations/relation.helpers.js +304 -0
  137. package/dist/relations/relation.helpers.js.map +1 -0
  138. package/dist/relations/relation.types.d.ts +142 -0
  139. package/dist/relations/relation.types.js +21 -0
  140. package/dist/relations/relation.types.js.map +1 -0
  141. package/dist/repositories/constraint-utils.d.ts +49 -0
  142. package/dist/repositories/constraint-utils.js +87 -0
  143. package/dist/repositories/constraint-utils.js.map +1 -0
  144. package/dist/repositories/index.d.ts +5 -0
  145. package/dist/repositories/index.js +13 -0
  146. package/dist/repositories/index.js.map +1 -0
  147. package/dist/repositories/kv.repository.bridge.d.ts +30 -0
  148. package/dist/repositories/kv.repository.bridge.js +76 -0
  149. package/dist/repositories/kv.repository.bridge.js.map +1 -0
  150. package/dist/repositories/kv.repository.d.ts +74 -0
  151. package/{lib/crud-connector.js → dist/repositories/kv.repository.js} +2 -2
  152. package/dist/repositories/kv.repository.js.map +1 -0
  153. package/dist/repositories/legacy-juggler-bridge.d.ts +305 -0
  154. package/dist/repositories/legacy-juggler-bridge.js +452 -0
  155. package/dist/repositories/legacy-juggler-bridge.js.map +1 -0
  156. package/dist/repositories/repository.d.ts +223 -0
  157. package/dist/repositories/repository.js +157 -0
  158. package/dist/repositories/repository.js.map +1 -0
  159. package/dist/transaction.d.ts +30 -0
  160. package/dist/transaction.js +18 -0
  161. package/dist/transaction.js.map +1 -0
  162. package/dist/type-resolver.d.ts +42 -0
  163. package/dist/type-resolver.js +61 -0
  164. package/dist/type-resolver.js.map +1 -0
  165. package/{lib → dist}/types/any.d.ts +1 -1
  166. package/{lib6 → dist}/types/any.js +3 -2
  167. package/dist/types/any.js.map +1 -0
  168. package/{lib6 → dist}/types/array.d.ts +4 -4
  169. package/{lib → dist}/types/array.js +6 -4
  170. package/dist/types/array.js.map +1 -0
  171. package/{lib → dist}/types/boolean.d.ts +1 -1
  172. package/{lib6 → dist}/types/boolean.js +3 -2
  173. package/dist/types/boolean.js.map +1 -0
  174. package/{lib6 → dist}/types/buffer.d.ts +2 -2
  175. package/{lib → dist}/types/buffer.js +8 -6
  176. package/dist/types/buffer.js.map +1 -0
  177. package/{lib → dist}/types/date.d.ts +1 -1
  178. package/{lib → dist}/types/date.js +6 -4
  179. package/dist/types/date.js.map +1 -0
  180. package/{lib → dist}/types/index.d.ts +11 -9
  181. package/dist/types/index.js +49 -0
  182. package/dist/types/index.js.map +1 -0
  183. package/{lib6 → dist}/types/model.d.ts +2 -1
  184. package/{lib6 → dist}/types/model.js +2 -2
  185. package/dist/types/model.js.map +1 -0
  186. package/dist/types/null.d.ts +12 -0
  187. package/{lib/types/boolean.js → dist/types/null.js} +12 -11
  188. package/dist/types/null.js.map +1 -0
  189. package/{lib6 → dist}/types/number.d.ts +1 -1
  190. package/{lib → dist}/types/number.js +6 -4
  191. package/dist/types/number.js.map +1 -0
  192. package/{lib → dist}/types/object.d.ts +1 -1
  193. package/{lib → dist}/types/object.js +7 -6
  194. package/dist/types/object.js.map +1 -0
  195. package/{lib → dist}/types/string.d.ts +1 -1
  196. package/{lib → dist}/types/string.js +3 -2
  197. package/dist/types/string.js.map +1 -0
  198. package/{lib6 → dist}/types/type.d.ts +7 -7
  199. package/{lib6 → dist}/types/type.js +1 -1
  200. package/dist/types/type.js.map +1 -0
  201. package/{lib → dist}/types/union.d.ts +1 -1
  202. package/{lib → dist}/types/union.js +6 -4
  203. package/dist/types/union.js.map +1 -0
  204. package/package.json +49 -33
  205. package/src/common-types.ts +123 -0
  206. package/src/connectors/connector.ts +70 -0
  207. package/src/connectors/crud.connector.ts +208 -0
  208. package/src/connectors/index.ts +8 -0
  209. package/src/connectors/kv.connector.ts +113 -0
  210. package/src/datasource.ts +37 -0
  211. package/src/decorators/index.ts +8 -0
  212. package/src/decorators/metadata.ts +84 -0
  213. package/src/decorators/model.decorator.ts +166 -0
  214. package/src/decorators/repository.decorator.ts +223 -0
  215. package/src/define-model-class.ts +90 -0
  216. package/src/define-repository-class.ts +170 -0
  217. package/src/errors/entity-not-found.error.ts +40 -0
  218. package/src/errors/index.ts +7 -0
  219. package/src/errors/invalid-relation.error.ts +39 -0
  220. package/src/index.ts +36 -0
  221. package/src/keys.ts +40 -0
  222. package/{index.d.ts → src/mixins/index.ts} +2 -2
  223. package/src/mixins/repository.mixin.ts +499 -0
  224. package/src/model.ts +539 -0
  225. package/src/relations/belongs-to/belongs-to.accessor.ts +74 -0
  226. package/src/relations/belongs-to/belongs-to.decorator.ts +81 -0
  227. package/src/relations/belongs-to/belongs-to.helpers.ts +78 -0
  228. package/src/relations/belongs-to/belongs-to.inclusion-resolver.ts +71 -0
  229. package/src/relations/belongs-to/belongs-to.repository.ts +55 -0
  230. package/src/relations/belongs-to/index.ts +9 -0
  231. package/src/relations/has-many/has-many-through.helpers.ts +361 -0
  232. package/src/relations/has-many/has-many-through.inclusion-resolver.ts +135 -0
  233. package/src/relations/has-many/has-many-through.repository-factory.ts +121 -0
  234. package/src/relations/has-many/has-many-through.repository.ts +318 -0
  235. package/src/relations/has-many/has-many.decorator.ts +38 -0
  236. package/src/relations/has-many/has-many.helpers.ts +100 -0
  237. package/src/relations/has-many/has-many.inclusion-resolver.ts +88 -0
  238. package/src/relations/has-many/has-many.repository-factory.ts +76 -0
  239. package/src/relations/has-many/has-many.repository.ts +118 -0
  240. package/src/relations/has-many/index.ts +11 -0
  241. package/src/relations/has-one/has-one.decorator.ts +40 -0
  242. package/src/relations/has-one/has-one.helpers.ts +84 -0
  243. package/src/relations/has-one/has-one.inclusion-resolver.ts +65 -0
  244. package/src/relations/has-one/has-one.repository-factory.ts +72 -0
  245. package/src/relations/has-one/has-one.repository.ts +127 -0
  246. package/src/relations/has-one/index.ts +8 -0
  247. package/src/relations/index.ts +11 -0
  248. package/src/relations/relation.decorator.ts +90 -0
  249. package/src/relations/relation.helpers.ts +373 -0
  250. package/src/relations/relation.types.ts +180 -0
  251. package/src/repositories/constraint-utils.ts +98 -0
  252. package/src/repositories/index.ts +10 -0
  253. package/src/repositories/kv.repository.bridge.ts +97 -0
  254. package/src/repositories/kv.repository.ts +87 -0
  255. package/src/repositories/legacy-juggler-bridge.ts +788 -0
  256. package/src/repositories/repository.ts +441 -0
  257. package/src/transaction.ts +39 -0
  258. package/src/type-resolver.ts +98 -0
  259. package/src/types/any.ts +38 -0
  260. package/src/types/array.ts +53 -0
  261. package/src/types/boolean.ts +35 -0
  262. package/src/types/buffer.ts +53 -0
  263. package/src/types/date.ts +61 -0
  264. package/src/types/index.ts +52 -0
  265. package/src/types/model.ts +24 -0
  266. package/src/types/null.ts +35 -0
  267. package/src/types/number.ts +42 -0
  268. package/src/types/object.ts +53 -0
  269. package/src/types/string.ts +42 -0
  270. package/src/types/type.ts +51 -0
  271. package/src/types/union.ts +55 -0
  272. package/api-docs/apple-touch-icon-114x114-precomposed.png +0 -0
  273. package/api-docs/apple-touch-icon-144x144-precomposed.png +0 -0
  274. package/api-docs/apple-touch-icon-57x57-precomposed.png +0 -0
  275. package/api-docs/apple-touch-icon-72x72-precomposed.png +0 -0
  276. package/api-docs/apple-touch-icon-precomposed.png +0 -0
  277. package/api-docs/apple-touch-icon.png +0 -0
  278. package/api-docs/css/bootstrap.min.css +0 -9
  279. package/api-docs/css/code-themes/arta.css +0 -158
  280. package/api-docs/css/code-themes/ascetic.css +0 -50
  281. package/api-docs/css/code-themes/brown_paper.css +0 -104
  282. package/api-docs/css/code-themes/brown_papersq.png +0 -0
  283. package/api-docs/css/code-themes/dark.css +0 -103
  284. package/api-docs/css/code-themes/default.css +0 -135
  285. package/api-docs/css/code-themes/far.css +0 -111
  286. package/api-docs/css/code-themes/github.css +0 -127
  287. package/api-docs/css/code-themes/googlecode.css +0 -144
  288. package/api-docs/css/code-themes/idea.css +0 -121
  289. package/api-docs/css/code-themes/ir_black.css +0 -104
  290. package/api-docs/css/code-themes/magula.css +0 -121
  291. package/api-docs/css/code-themes/monokai.css +0 -114
  292. package/api-docs/css/code-themes/pojoaque.css +0 -104
  293. package/api-docs/css/code-themes/pojoaque.jpg +0 -0
  294. package/api-docs/css/code-themes/rainbow.css +0 -114
  295. package/api-docs/css/code-themes/school_book.css +0 -111
  296. package/api-docs/css/code-themes/school_book.png +0 -0
  297. package/api-docs/css/code-themes/sl-theme.css +0 -45
  298. package/api-docs/css/code-themes/solarized_dark.css +0 -88
  299. package/api-docs/css/code-themes/solarized_light.css +0 -88
  300. package/api-docs/css/code-themes/sunburst.css +0 -158
  301. package/api-docs/css/code-themes/tomorrow-night-blue.css +0 -52
  302. package/api-docs/css/code-themes/tomorrow-night-bright.css +0 -51
  303. package/api-docs/css/code-themes/tomorrow-night-eighties.css +0 -51
  304. package/api-docs/css/code-themes/tomorrow-night.css +0 -52
  305. package/api-docs/css/code-themes/tomorrow.css +0 -49
  306. package/api-docs/css/code-themes/vs.css +0 -86
  307. package/api-docs/css/code-themes/xcode.css +0 -154
  308. package/api-docs/css/code-themes/zenburn.css +0 -115
  309. package/api-docs/css/main.css +0 -139
  310. package/api-docs/favicon.ico +0 -0
  311. package/api-docs/fonts/0ihfXUL2emPh0ROJezvraLO3LdcAZYWl9Si6vvxL-qU.woff +0 -0
  312. package/api-docs/fonts/OsJ2DjdpjqFRVUSto6IffLO3LdcAZYWl9Si6vvxL-qU.woff +0 -0
  313. package/api-docs/fonts/_aijTyevf54tkVDLy-dlnLO3LdcAZYWl9Si6vvxL-qU.woff +0 -0
  314. package/api-docs/index.html +0 -18017
  315. package/api-docs/js/main.js +0 -19
  316. package/api-docs/js/vendor/bootstrap.min.js +0 -6
  317. package/api-docs/js/vendor/jquery-1.10.1.min.js +0 -6
  318. package/api-docs/js/vendor/jquery.scrollTo-1.4.3.1.js +0 -218
  319. package/api-docs/js/vendor/modernizr-2.6.2-respond-1.1.0.min.js +0 -11
  320. package/index.js +0 -9
  321. package/lib/common-types.d.ts +0 -44
  322. package/lib/common-types.js.map +0 -1
  323. package/lib/connector.d.ts +0 -12
  324. package/lib/connector.js.map +0 -1
  325. package/lib/crud-connector.js.map +0 -1
  326. package/lib/datasource.d.ts +0 -11
  327. package/lib/datasource.js.map +0 -1
  328. package/lib/decorators/model.d.ts +0 -17
  329. package/lib/decorators/model.js +0 -55
  330. package/lib/decorators/model.js.map +0 -1
  331. package/lib/decorators/relation.d.ts +0 -65
  332. package/lib/decorators/relation.js +0 -126
  333. package/lib/decorators/relation.js.map +0 -1
  334. package/lib/decorators/repository.d.ts +0 -61
  335. package/lib/decorators/repository.js +0 -107
  336. package/lib/decorators/repository.js.map +0 -1
  337. package/lib/index.d.ts +0 -17
  338. package/lib/index.js +0 -21
  339. package/lib/index.js.map +0 -1
  340. package/lib/kv-connector.d.ts +0 -77
  341. package/lib/kv-connector.js +0 -7
  342. package/lib/kv-connector.js.map +0 -1
  343. package/lib/kv-repository.d.ts +0 -78
  344. package/lib/kv-repository.js +0 -7
  345. package/lib/kv-repository.js.map +0 -1
  346. package/lib/legacy-juggler-bridge.d.ts +0 -53
  347. package/lib/legacy-juggler-bridge.js +0 -142
  348. package/lib/legacy-juggler-bridge.js.map +0 -1
  349. package/lib/loopback-datasource-juggler.d.ts +0 -666
  350. package/lib/loopback-datasource-juggler.js +0 -8
  351. package/lib/loopback-datasource-juggler.js.map +0 -1
  352. package/lib/mixin.d.ts +0 -43
  353. package/lib/mixin.js +0 -34
  354. package/lib/mixin.js.map +0 -1
  355. package/lib/model.d.ts +0 -137
  356. package/lib/model.js +0 -182
  357. package/lib/model.js.map +0 -1
  358. package/lib/query.d.ts +0 -112
  359. package/lib/query.js +0 -25
  360. package/lib/query.js.map +0 -1
  361. package/lib/repository-mixin.d.ts +0 -20
  362. package/lib/repository-mixin.js +0 -111
  363. package/lib/repository-mixin.js.map +0 -1
  364. package/lib/repository.d.ts +0 -172
  365. package/lib/repository.js +0 -127
  366. package/lib/repository.js.map +0 -1
  367. package/lib/types/any.js +0 -35
  368. package/lib/types/any.js.map +0 -1
  369. package/lib/types/array.d.ts +0 -14
  370. package/lib/types/array.js.map +0 -1
  371. package/lib/types/boolean.js.map +0 -1
  372. package/lib/types/buffer.d.ts +0 -14
  373. package/lib/types/buffer.js.map +0 -1
  374. package/lib/types/date.js.map +0 -1
  375. package/lib/types/index.js +0 -33
  376. package/lib/types/index.js.map +0 -1
  377. package/lib/types/model.d.ts +0 -11
  378. package/lib/types/model.js +0 -25
  379. package/lib/types/model.js.map +0 -1
  380. package/lib/types/number.d.ts +0 -12
  381. package/lib/types/number.js.map +0 -1
  382. package/lib/types/object.js.map +0 -1
  383. package/lib/types/string.js.map +0 -1
  384. package/lib/types/type.d.ts +0 -38
  385. package/lib/types/type.js +0 -7
  386. package/lib/types/type.js.map +0 -1
  387. package/lib/types/union.js.map +0 -1
  388. package/lib6/common-types.d.ts +0 -44
  389. package/lib6/common-types.js +0 -7
  390. package/lib6/common-types.js.map +0 -1
  391. package/lib6/connector.d.ts +0 -12
  392. package/lib6/connector.js +0 -7
  393. package/lib6/connector.js.map +0 -1
  394. package/lib6/crud-connector.d.ts +0 -130
  395. package/lib6/crud-connector.js +0 -7
  396. package/lib6/crud-connector.js.map +0 -1
  397. package/lib6/datasource.d.ts +0 -11
  398. package/lib6/datasource.js.map +0 -1
  399. package/lib6/decorators/model.d.ts +0 -17
  400. package/lib6/decorators/model.js +0 -55
  401. package/lib6/decorators/model.js.map +0 -1
  402. package/lib6/decorators/relation.d.ts +0 -65
  403. package/lib6/decorators/relation.js +0 -126
  404. package/lib6/decorators/relation.js.map +0 -1
  405. package/lib6/decorators/repository.d.ts +0 -61
  406. package/lib6/decorators/repository.js +0 -117
  407. package/lib6/decorators/repository.js.map +0 -1
  408. package/lib6/index.d.ts +0 -17
  409. package/lib6/index.js +0 -21
  410. package/lib6/index.js.map +0 -1
  411. package/lib6/kv-connector.js +0 -7
  412. package/lib6/kv-connector.js.map +0 -1
  413. package/lib6/kv-repository.d.ts +0 -78
  414. package/lib6/kv-repository.js +0 -7
  415. package/lib6/kv-repository.js.map +0 -1
  416. package/lib6/legacy-juggler-bridge.d.ts +0 -53
  417. package/lib6/legacy-juggler-bridge.js +0 -158
  418. package/lib6/legacy-juggler-bridge.js.map +0 -1
  419. package/lib6/loopback-datasource-juggler.d.ts +0 -666
  420. package/lib6/loopback-datasource-juggler.js +0 -8
  421. package/lib6/loopback-datasource-juggler.js.map +0 -1
  422. package/lib6/mixin.d.ts +0 -43
  423. package/lib6/mixin.js +0 -34
  424. package/lib6/mixin.js.map +0 -1
  425. package/lib6/model.d.ts +0 -137
  426. package/lib6/model.js +0 -182
  427. package/lib6/model.js.map +0 -1
  428. package/lib6/query.d.ts +0 -112
  429. package/lib6/query.js +0 -25
  430. package/lib6/query.js.map +0 -1
  431. package/lib6/repository-mixin.d.ts +0 -20
  432. package/lib6/repository-mixin.js +0 -111
  433. package/lib6/repository-mixin.js.map +0 -1
  434. package/lib6/repository.d.ts +0 -172
  435. package/lib6/repository.js +0 -127
  436. package/lib6/repository.js.map +0 -1
  437. package/lib6/types/any.d.ts +0 -12
  438. package/lib6/types/any.js.map +0 -1
  439. package/lib6/types/array.js +0 -53
  440. package/lib6/types/array.js.map +0 -1
  441. package/lib6/types/boolean.d.ts +0 -12
  442. package/lib6/types/boolean.js.map +0 -1
  443. package/lib6/types/buffer.js +0 -57
  444. package/lib6/types/buffer.js.map +0 -1
  445. package/lib6/types/date.d.ts +0 -12
  446. package/lib6/types/date.js +0 -60
  447. package/lib6/types/date.js.map +0 -1
  448. package/lib6/types/index.d.ts +0 -30
  449. package/lib6/types/index.js +0 -33
  450. package/lib6/types/index.js.map +0 -1
  451. package/lib6/types/model.js.map +0 -1
  452. package/lib6/types/number.js +0 -40
  453. package/lib6/types/number.js.map +0 -1
  454. package/lib6/types/object.d.ts +0 -15
  455. package/lib6/types/object.js +0 -49
  456. package/lib6/types/object.js.map +0 -1
  457. package/lib6/types/string.d.ts +0 -12
  458. package/lib6/types/string.js +0 -40
  459. package/lib6/types/string.js.map +0 -1
  460. package/lib6/types/type.js.map +0 -1
  461. package/lib6/types/union.d.ts +0 -14
  462. package/lib6/types/union.js +0 -51
  463. package/lib6/types/union.js.map +0 -1
@@ -0,0 +1,54 @@
1
+ import { Getter } from '@loopback/core';
2
+ import { Filter, Where } from '@loopback/filter';
3
+ import { Count, DataObject, Options } from '../../common-types';
4
+ import { Entity } from '../../model';
5
+ import { EntityCrudRepository } from '../../repositories';
6
+ /**
7
+ * CRUD operations for a target repository of a HasMany relation
8
+ */
9
+ export interface HasManyRepository<Target extends Entity> {
10
+ /**
11
+ * Create a target model instance
12
+ * @param targetModelData - The target model data
13
+ * @param options - Options for the operation
14
+ * @returns A promise which resolves to the newly created target model instance
15
+ */
16
+ create(targetModelData: DataObject<Target>, options?: Options): Promise<Target>;
17
+ /**
18
+ * Find target model instance(s)
19
+ * @param filter - A filter object for where, order, limit, etc.
20
+ * @param options - Options for the operation
21
+ * @returns A promise which resolves with the found target instance(s)
22
+ */
23
+ find(filter?: Filter<Target>, options?: Options): Promise<Target[]>;
24
+ /**
25
+ * Delete multiple target model instances
26
+ * @param where - Instances within the where scope are deleted
27
+ * @param options
28
+ * @returns A promise which resolves the deleted target model instances
29
+ */
30
+ delete(where?: Where<Target>, options?: Options): Promise<Count>;
31
+ /**
32
+ * Patch multiple target model instances
33
+ * @param dataObject - The fields and their new values to patch
34
+ * @param where - Instances within the where scope are patched
35
+ * @param options
36
+ * @returns A promise which resolves the patched target model instances
37
+ */
38
+ patch(dataObject: DataObject<Target>, where?: Where<Target>, options?: Options): Promise<Count>;
39
+ }
40
+ export declare class DefaultHasManyRepository<TargetEntity extends Entity, TargetID, TargetRepository extends EntityCrudRepository<TargetEntity, TargetID>> implements HasManyRepository<TargetEntity> {
41
+ getTargetRepository: Getter<TargetRepository>;
42
+ constraint: DataObject<TargetEntity>;
43
+ /**
44
+ * Constructor of DefaultHasManyEntityCrudRepository
45
+ * @param getTargetRepository - the getter of the related target model repository instance
46
+ * @param constraint - the key value pair representing foreign key name to constrain
47
+ * the target repository instance
48
+ */
49
+ constructor(getTargetRepository: Getter<TargetRepository>, constraint: DataObject<TargetEntity>);
50
+ create(targetModelData: DataObject<TargetEntity>, options?: Options): Promise<TargetEntity>;
51
+ find(filter?: Filter<TargetEntity>, options?: Options): Promise<TargetEntity[]>;
52
+ delete(where?: Where<TargetEntity>, options?: Options): Promise<Count>;
53
+ patch(dataObject: DataObject<TargetEntity>, where?: Where<TargetEntity>, options?: Options): Promise<Count>;
54
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ // Copyright IBM Corp. 2018,2020. All Rights Reserved.
3
+ // Node module: @loopback/repository
4
+ // This file is licensed under the MIT License.
5
+ // License text available at https://opensource.org/licenses/MIT
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DefaultHasManyRepository = void 0;
8
+ const repositories_1 = require("../../repositories");
9
+ class DefaultHasManyRepository {
10
+ /**
11
+ * Constructor of DefaultHasManyEntityCrudRepository
12
+ * @param getTargetRepository - the getter of the related target model repository instance
13
+ * @param constraint - the key value pair representing foreign key name to constrain
14
+ * the target repository instance
15
+ */
16
+ constructor(getTargetRepository, constraint) {
17
+ this.getTargetRepository = getTargetRepository;
18
+ this.constraint = constraint;
19
+ }
20
+ async create(targetModelData, options) {
21
+ const targetRepository = await this.getTargetRepository();
22
+ return targetRepository.create((0, repositories_1.constrainDataObject)(targetModelData, this.constraint), options);
23
+ }
24
+ async find(filter, options) {
25
+ const targetRepository = await this.getTargetRepository();
26
+ return targetRepository.find((0, repositories_1.constrainFilter)(filter, this.constraint), options);
27
+ }
28
+ async delete(where, options) {
29
+ const targetRepository = await this.getTargetRepository();
30
+ return targetRepository.deleteAll((0, repositories_1.constrainWhere)(where, this.constraint), options);
31
+ }
32
+ async patch(dataObject, where, options) {
33
+ const targetRepository = await this.getTargetRepository();
34
+ return targetRepository.updateAll((0, repositories_1.constrainDataObject)(dataObject, this.constraint), (0, repositories_1.constrainWhere)(where, this.constraint), options);
35
+ }
36
+ }
37
+ exports.DefaultHasManyRepository = DefaultHasManyRepository;
38
+ //# sourceMappingURL=has-many.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-many.repository.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.repository.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAMhE,qDAK4B;AA4C5B,MAAa,wBAAwB;IAMnC;;;;;OAKG;IACH,YACS,mBAA6C,EAC7C,UAAoC;QADpC,wBAAmB,GAAnB,mBAAmB,CAA0B;QAC7C,eAAU,GAAV,UAAU,CAA0B;IAC1C,CAAC;IAEJ,KAAK,CAAC,MAAM,CACV,eAAyC,EACzC,OAAiB;QAEjB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,MAAM,CAC5B,IAAA,kCAAmB,EAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,EACrD,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CACR,MAA6B,EAC7B,OAAiB;QAEjB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,IAAI,CAC1B,IAAA,8BAAe,EAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,EACxC,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAA2B,EAAE,OAAiB;QACzD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,SAAS,CAC/B,IAAA,6BAAc,EAAC,KAAK,EAAE,IAAI,CAAC,UAAiC,CAAC,EAC7D,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CACT,UAAoC,EACpC,KAA2B,EAC3B,OAAiB;QAEjB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,SAAS,CAC/B,IAAA,kCAAmB,EAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,EAChD,IAAA,6BAAc,EAAC,KAAK,EAAE,IAAI,CAAC,UAAiC,CAAC,EAC7D,OAAO,CACR,CAAC;IACJ,CAAC;CACF;AA3DD,4DA2DC"}
@@ -0,0 +1,6 @@
1
+ export * from './has-many.repository-factory';
2
+ export * from './has-many-through.repository-factory';
3
+ export * from './has-many-through.repository';
4
+ export * from './has-many.decorator';
5
+ export * from './has-many.inclusion-resolver';
6
+ export * from './has-many.repository';
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ // Copyright IBM Corp. 2018,2020. All Rights Reserved.
3
+ // Node module: @loopback/repository
4
+ // This file is licensed under the MIT License.
5
+ // License text available at https://opensource.org/licenses/MIT
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const tslib_1 = require("tslib");
8
+ (0, tslib_1.__exportStar)(require("./has-many.repository-factory"), exports);
9
+ (0, tslib_1.__exportStar)(require("./has-many-through.repository-factory"), exports);
10
+ (0, tslib_1.__exportStar)(require("./has-many-through.repository"), exports);
11
+ (0, tslib_1.__exportStar)(require("./has-many.decorator"), exports);
12
+ (0, tslib_1.__exportStar)(require("./has-many.inclusion-resolver"), exports);
13
+ (0, tslib_1.__exportStar)(require("./has-many.repository"), exports);
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/relations/has-many/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,6EAA8C;AAC9C,qFAAsD;AACtD,6EAA8C;AAC9C,oEAAqC;AACrC,6EAA8C;AAC9C,qEAAsC"}
@@ -0,0 +1,3 @@
1
+ import { Entity, EntityResolver } from '../../model';
2
+ import { HasOneDefinition } from '../relation.types';
3
+ export declare function hasOne<T extends Entity>(targetResolver: EntityResolver<T>, definition?: Partial<HasOneDefinition>): (decoratedTarget: object, key: string) => void;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ // Copyright IBM Corp. 2018,2020. All Rights Reserved.
3
+ // Node module: @loopback/repository
4
+ // This file is licensed under the MIT License.
5
+ // License text available at https://opensource.org/licenses/MIT
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.hasOne = void 0;
8
+ const relation_decorator_1 = require("../relation.decorator");
9
+ const relation_types_1 = require("../relation.types");
10
+ /*
11
+ * Decorator for hasOne
12
+ * infers foreign key name from target model name unless explicitly specified
13
+ * @param targetResolver - Target model for hasOne relation
14
+ * @param definition - Optional metadata for setting up hasOne relation
15
+ * @returns A property decorator
16
+ */
17
+ function hasOne(targetResolver, definition) {
18
+ return function (decoratedTarget, key) {
19
+ // property.array(targetResolver)(decoratedTarget, key);
20
+ const meta = Object.assign(
21
+ // default values, can be customized by the caller
22
+ {},
23
+ // properties provided by the caller
24
+ definition,
25
+ // properties enforced by the decorator
26
+ {
27
+ type: relation_types_1.RelationType.hasOne,
28
+ targetsMany: false,
29
+ name: key,
30
+ source: decoratedTarget.constructor,
31
+ target: targetResolver,
32
+ });
33
+ (0, relation_decorator_1.relation)(meta)(decoratedTarget, key);
34
+ };
35
+ }
36
+ exports.hasOne = hasOne;
37
+ //# sourceMappingURL=has-one.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-one.decorator.js","sourceRoot":"","sources":["../../../src/relations/has-one/has-one.decorator.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAGhE,8DAA+C;AAC/C,sDAAiE;AAEjE;;;;;;GAMG;AACH,SAAgB,MAAM,CACpB,cAAiC,EACjC,UAAsC;IAEtC,OAAO,UAAU,eAAuB,EAAE,GAAW;QACnD,wDAAwD;QAExD,MAAM,IAAI,GAAqB,MAAM,CAAC,MAAM;QAC1C,kDAAkD;QAClD,EAAE;QACF,oCAAoC;QACpC,UAAU;QACV,uCAAuC;QACvC;YACE,IAAI,EAAE,6BAAY,CAAC,MAAM;YACzB,WAAW,EAAE,KAAK;YAClB,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,eAAe,CAAC,WAAW;YACnC,MAAM,EAAE,cAAc;SACvB,CACF,CAAC;QACF,IAAA,6BAAQ,EAAC,IAAI,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC;AAvBD,wBAuBC"}
@@ -0,0 +1,17 @@
1
+ import { HasOneDefinition } from '../relation.types';
2
+ /**
3
+ * Relation definition with optional metadata (e.g. `keyTo`) filled in.
4
+ * @internal
5
+ */
6
+ export declare type HasOneResolvedDefinition = HasOneDefinition & {
7
+ keyFrom: string;
8
+ keyTo: string;
9
+ };
10
+ /**
11
+ * Resolves given hasOne metadata if target is specified to be a resolver.
12
+ * Mainly used to infer what the `keyTo` property should be from the target's
13
+ * hasOne metadata
14
+ * @param relationMeta - hasOne metadata to resolve
15
+ * @internal
16
+ */
17
+ export declare function resolveHasOneMetadata(relationMeta: HasOneDefinition): HasOneResolvedDefinition;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ // Copyright IBM Corp. 2019,2020. All Rights Reserved.
3
+ // Node module: @loopback/repository
4
+ // This file is licensed under the MIT License.
5
+ // License text available at https://opensource.org/licenses/MIT
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.resolveHasOneMetadata = void 0;
8
+ const tslib_1 = require("tslib");
9
+ const debug_1 = (0, tslib_1.__importDefault)(require("debug"));
10
+ const lodash_1 = require("lodash");
11
+ const errors_1 = require("../../errors");
12
+ const type_resolver_1 = require("../../type-resolver");
13
+ const relation_types_1 = require("../relation.types");
14
+ const debug = (0, debug_1.default)('loopback:repository:relations:has-one:helpers');
15
+ /**
16
+ * Resolves given hasOne metadata if target is specified to be a resolver.
17
+ * Mainly used to infer what the `keyTo` property should be from the target's
18
+ * hasOne metadata
19
+ * @param relationMeta - hasOne metadata to resolve
20
+ * @internal
21
+ */
22
+ function resolveHasOneMetadata(relationMeta) {
23
+ var _a;
24
+ if (relationMeta.type !== relation_types_1.RelationType.hasOne) {
25
+ const reason = 'relation type must be HasOne';
26
+ throw new errors_1.InvalidRelationError(reason, relationMeta);
27
+ }
28
+ if (!(0, type_resolver_1.isTypeResolver)(relationMeta.target)) {
29
+ const reason = 'target must be a type resolver';
30
+ throw new errors_1.InvalidRelationError(reason, relationMeta);
31
+ }
32
+ const targetModel = relationMeta.target();
33
+ const targetModelProperties = (_a = targetModel.definition) === null || _a === void 0 ? void 0 : _a.properties;
34
+ const sourceModel = relationMeta.source;
35
+ if (!sourceModel || !sourceModel.modelName) {
36
+ const reason = 'source model must be defined';
37
+ throw new errors_1.InvalidRelationError(reason, relationMeta);
38
+ }
39
+ // keyFrom defaults to id property
40
+ let keyFrom;
41
+ if (relationMeta.keyFrom &&
42
+ relationMeta.source.definition.properties[relationMeta.keyFrom]) {
43
+ keyFrom = relationMeta.keyFrom;
44
+ }
45
+ else {
46
+ keyFrom = sourceModel.getIdProperties()[0];
47
+ }
48
+ // Make sure that if it already keys to the foreign key property,
49
+ // the key exists in the target model
50
+ if (relationMeta.keyTo && targetModelProperties[relationMeta.keyTo]) {
51
+ // The explicit cast is needed because of a limitation of type inference
52
+ return Object.assign(relationMeta, { keyFrom });
53
+ }
54
+ debug('Resolved model %s from given metadata: %o', targetModel.modelName, targetModel);
55
+ const defaultFkName = (0, lodash_1.camelCase)(sourceModel.modelName + '_id');
56
+ const hasDefaultFkProperty = targetModelProperties[defaultFkName];
57
+ if (!hasDefaultFkProperty) {
58
+ const reason = `target model ${targetModel.name} is missing definition of foreign key ${defaultFkName}`;
59
+ throw new errors_1.InvalidRelationError(reason, relationMeta);
60
+ }
61
+ return Object.assign(relationMeta, { keyFrom, keyTo: defaultFkName });
62
+ }
63
+ exports.resolveHasOneMetadata = resolveHasOneMetadata;
64
+ //# sourceMappingURL=has-one.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-one.helpers.js","sourceRoot":"","sources":["../../../src/relations/has-one/has-one.helpers.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,+DAAiC;AACjC,mCAAiC;AACjC,yCAAkD;AAClD,uDAAmD;AACnD,sDAAiE;AAEjE,MAAM,KAAK,GAAG,IAAA,eAAY,EAAC,+CAA+C,CAAC,CAAC;AAW5E;;;;;;GAMG;AACH,SAAgB,qBAAqB,CACnC,YAA8B;;IAE9B,IAAK,YAAY,CAAC,IAAqB,KAAK,6BAAY,CAAC,MAAM,EAAE;QAC/D,MAAM,MAAM,GAAG,8BAA8B,CAAC;QAC9C,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,IAAI,CAAC,IAAA,8BAAc,EAAC,YAAY,CAAC,MAAM,CAAC,EAAE;QACxC,MAAM,MAAM,GAAG,gCAAgC,CAAC;QAChD,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IAC1C,MAAM,qBAAqB,GAAG,MAAA,WAAW,CAAC,UAAU,0CAAE,UAAU,CAAC;IAEjE,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;IACxC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;QAC1C,MAAM,MAAM,GAAG,8BAA8B,CAAC;QAC9C,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,kCAAkC;IAClC,IAAI,OAAO,CAAC;IACZ,IACE,YAAY,CAAC,OAAO;QACpB,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,EAC/D;QACA,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;KAChC;SAAM;QACL,OAAO,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;KAC5C;IAED,iEAAiE;IACjE,qCAAqC;IACrC,IAAI,YAAY,CAAC,KAAK,IAAI,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;QACnE,wEAAwE;QACxE,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAC,OAAO,EAAC,CAA6B,CAAC;KAC3E;IAED,KAAK,CACH,2CAA2C,EAC3C,WAAW,CAAC,SAAS,EACrB,WAAW,CACZ,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,kBAAS,EAAC,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;IAC/D,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;IAElE,IAAI,CAAC,oBAAoB,EAAE;QACzB,MAAM,MAAM,GAAG,gBAAgB,WAAW,CAAC,IAAI,yCAAyC,aAAa,EAAE,CAAC;QACxG,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAC,CAAC,CAAC;AACtE,CAAC;AAtDD,sDAsDC"}
@@ -0,0 +1,14 @@
1
+ import { Entity } from '../../model';
2
+ import { EntityCrudRepository } from '../../repositories';
3
+ import { Getter, HasOneDefinition, InclusionResolver } from '../relation.types';
4
+ /**
5
+ * Creates InclusionResolver for HasOne relation.
6
+ * Notice that this function only generates the inclusionResolver.
7
+ * It doesn't register it for the source repository.
8
+ *
9
+ * Notice: scope field for inclusion is not supported yet.
10
+ *
11
+ * @param meta
12
+ * @param getTargetRepo
13
+ */
14
+ export declare function createHasOneInclusionResolver<Target extends Entity, TargetID, TargetRelations extends object>(meta: HasOneDefinition, getTargetRepo: Getter<EntityCrudRepository<Target, TargetID, TargetRelations>>): InclusionResolver<Entity, Target>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ // Copyright IBM Corp. 2019,2020. All Rights Reserved.
3
+ // Node module: @loopback/repository
4
+ // This file is licensed under the MIT License.
5
+ // License text available at https://opensource.org/licenses/MIT
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.createHasOneInclusionResolver = void 0;
8
+ const relation_helpers_1 = require("../relation.helpers");
9
+ const has_one_helpers_1 = require("./has-one.helpers");
10
+ /**
11
+ * Creates InclusionResolver for HasOne relation.
12
+ * Notice that this function only generates the inclusionResolver.
13
+ * It doesn't register it for the source repository.
14
+ *
15
+ * Notice: scope field for inclusion is not supported yet.
16
+ *
17
+ * @param meta
18
+ * @param getTargetRepo
19
+ */
20
+ function createHasOneInclusionResolver(meta, getTargetRepo) {
21
+ const relationMeta = (0, has_one_helpers_1.resolveHasOneMetadata)(meta);
22
+ return async function fetchHasOneModel(entities, inclusion, options) {
23
+ if (!entities.length)
24
+ return [];
25
+ const sourceKey = relationMeta.keyFrom;
26
+ const sourceIds = entities.map(e => e[sourceKey]);
27
+ const targetKey = relationMeta.keyTo;
28
+ const scope = typeof inclusion === 'string' ? {} : inclusion.scope;
29
+ const targetRepo = await getTargetRepo();
30
+ const targetsFound = await (0, relation_helpers_1.findByForeignKeys)(targetRepo, targetKey, sourceIds, scope, options);
31
+ return (0, relation_helpers_1.flattenTargetsOfOneToOneRelation)(sourceIds, targetsFound, targetKey);
32
+ };
33
+ }
34
+ exports.createHasOneInclusionResolver = createHasOneInclusionResolver;
35
+ //# sourceMappingURL=has-one.inclusion-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-one.inclusion-resolver.js","sourceRoot":"","sources":["../../../src/relations/has-one/has-one.inclusion-resolver.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAMhE,0DAI6B;AAE7B,uDAAwD;AAExD;;;;;;;;;GASG;AACH,SAAgB,6BAA6B,CAK3C,IAAsB,EACtB,aAEC;IAED,MAAM,YAAY,GAAG,IAAA,uCAAqB,EAAC,IAAI,CAAC,CAAC;IAEjD,OAAO,KAAK,UAAU,gBAAgB,CACpC,QAAkB,EAClB,SAA0B,EAC1B,OAAiB;QAEjB,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;QACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,YAAY,CAAC,KAA4B,CAAC;QAE5D,MAAM,KAAK,GACT,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,SAAS,CAAC,KAAwB,CAAC;QAE3E,MAAM,UAAU,GAAG,MAAM,aAAa,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,MAAM,IAAA,oCAAiB,EAC1C,UAAU,EACV,SAAS,EACT,SAAS,EACT,KAAK,EACL,OAAO,CACR,CAAC;QAEF,OAAO,IAAA,mDAAgC,EAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAC9E,CAAC,CAAC;AACJ,CAAC;AArCD,sEAqCC"}
@@ -0,0 +1,28 @@
1
+ import { Entity } from '../../model';
2
+ import { EntityCrudRepository } from '../../repositories';
3
+ import { Getter, HasOneDefinition, InclusionResolver } from '../relation.types';
4
+ import { HasOneRepository } from './has-one.repository';
5
+ export interface HasOneRepositoryFactory<Target extends Entity, ForeignKeyType> {
6
+ /**
7
+ * Invoke the function to obtain HasOneRepository.
8
+ */
9
+ (fkValue: ForeignKeyType): HasOneRepository<Target>;
10
+ /**
11
+ * Use `resolver` property to obtain an InclusionResolver for this relation.
12
+ */
13
+ inclusionResolver: InclusionResolver<Entity, Target>;
14
+ }
15
+ /**
16
+ * Enforces a constraint on a repository based on a relationship contract
17
+ * between models. For example, if a Customer model is related to an Address model
18
+ * via a HasOne relation, then, the relational repository returned by the
19
+ * factory function would be constrained by a Customer model instance's id(s).
20
+ *
21
+ * @param relationMetadata - The relation metadata used to describe the
22
+ * relationship and determine how to apply the constraint.
23
+ * @param targetRepositoryGetter - The repository which represents the target model of a
24
+ * relation attached to a datasource.
25
+ * @returns The factory function which accepts a foreign key value to constrain
26
+ * the given target repository
27
+ */
28
+ export declare function createHasOneRepositoryFactory<Target extends Entity, TargetID, ForeignKeyType>(relationMetadata: HasOneDefinition, targetRepositoryGetter: Getter<EntityCrudRepository<Target, TargetID>>): HasOneRepositoryFactory<Target, ForeignKeyType>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ // Copyright IBM Corp. 2018,2020. All Rights Reserved.
3
+ // Node module: @loopback/repository
4
+ // This file is licensed under the MIT License.
5
+ // License text available at https://opensource.org/licenses/MIT
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.createHasOneRepositoryFactory = void 0;
8
+ const tslib_1 = require("tslib");
9
+ const debug_1 = (0, tslib_1.__importDefault)(require("debug"));
10
+ const has_one_helpers_1 = require("./has-one.helpers");
11
+ const has_one_inclusion_resolver_1 = require("./has-one.inclusion-resolver");
12
+ const has_one_repository_1 = require("./has-one.repository");
13
+ const debug = (0, debug_1.default)('loopback:repository:relations:has-one:repository-factory');
14
+ /**
15
+ * Enforces a constraint on a repository based on a relationship contract
16
+ * between models. For example, if a Customer model is related to an Address model
17
+ * via a HasOne relation, then, the relational repository returned by the
18
+ * factory function would be constrained by a Customer model instance's id(s).
19
+ *
20
+ * @param relationMetadata - The relation metadata used to describe the
21
+ * relationship and determine how to apply the constraint.
22
+ * @param targetRepositoryGetter - The repository which represents the target model of a
23
+ * relation attached to a datasource.
24
+ * @returns The factory function which accepts a foreign key value to constrain
25
+ * the given target repository
26
+ */
27
+ function createHasOneRepositoryFactory(relationMetadata, targetRepositoryGetter) {
28
+ const meta = (0, has_one_helpers_1.resolveHasOneMetadata)(relationMetadata);
29
+ debug('Resolved HasOne relation metadata: %o', meta);
30
+ const result = function (fkValue) {
31
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
+ const constraint = { [meta.keyTo]: fkValue };
33
+ return new has_one_repository_1.DefaultHasOneRepository(targetRepositoryGetter, constraint);
34
+ };
35
+ result.inclusionResolver = (0, has_one_inclusion_resolver_1.createHasOneInclusionResolver)(meta, targetRepositoryGetter);
36
+ return result;
37
+ }
38
+ exports.createHasOneRepositoryFactory = createHasOneRepositoryFactory;
39
+ //# sourceMappingURL=has-one.repository-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-one.repository-factory.js","sourceRoot":"","sources":["../../../src/relations/has-one/has-one.repository-factory.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,+DAAiC;AAKjC,uDAAwD;AACxD,6EAA2E;AAC3E,6DAA+E;AAE/E,MAAM,KAAK,GAAG,IAAA,eAAY,EACxB,0DAA0D,CAC3D,CAAC;AAgBF;;;;;;;;;;;;GAYG;AACH,SAAgB,6BAA6B,CAK3C,gBAAkC,EAClC,sBAAsE;IAEtE,MAAM,IAAI,GAAG,IAAA,uCAAqB,EAAC,gBAAgB,CAAC,CAAC;IACrD,KAAK,CAAC,uCAAuC,EAAE,IAAI,CAAC,CAAC;IACrD,MAAM,MAAM,GAAoD,UAC9D,OAAuB;QAEvB,8DAA8D;QAC9D,MAAM,UAAU,GAAQ,EAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAC,CAAC;QAChD,OAAO,IAAI,4CAAuB,CAIhC,sBAAsB,EAAE,UAAgC,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,MAAM,CAAC,iBAAiB,GAAG,IAAA,0DAA6B,EACtD,IAAI,EACJ,sBAAsB,CACvB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AA1BD,sEA0BC"}
@@ -0,0 +1,53 @@
1
+ import { Getter } from '@loopback/core';
2
+ import { Filter } from '@loopback/filter';
3
+ import { Count, DataObject, Options } from '../../common-types';
4
+ import { Entity } from '../../model';
5
+ import { EntityCrudRepository } from '../../repositories';
6
+ /**
7
+ * CRUD operations for a target repository of a HasMany relation
8
+ */
9
+ export interface HasOneRepository<Target extends Entity> {
10
+ /**
11
+ * Create a target model instance
12
+ * @param targetModelData - The target model data
13
+ * @param options - Options for the operation
14
+ * @returns A promise which resolves to the newly created target model instance
15
+ */
16
+ create(targetModelData: DataObject<Target>, options?: Options): Promise<Target>;
17
+ /**
18
+ * Find the only target model instance that belongs to the declaring model.
19
+ * @param filter - Query filter without a Where condition
20
+ * @param options - Options for the operations
21
+ * @returns A promise resolved with the target object or rejected
22
+ * with an EntityNotFoundError when target model instance was not found.
23
+ */
24
+ get(filter?: Pick<Filter<Target>, Exclude<keyof Filter<Target>, 'where'>>, options?: Options): Promise<Target>;
25
+ /**
26
+ * Delete the related target model instance
27
+ * @param options
28
+ * @returns A promise which resolves the deleted target model instances
29
+ */
30
+ delete(options?: Options): Promise<Count>;
31
+ /**
32
+ * Patch the related target model instance
33
+ * @param dataObject - The target model fields and their new values to patch
34
+ * @param options
35
+ * @returns A promise which resolves the patched target model instances
36
+ */
37
+ patch(dataObject: DataObject<Target>, options?: Options): Promise<Count>;
38
+ }
39
+ export declare class DefaultHasOneRepository<TargetEntity extends Entity, TargetID, TargetRepository extends EntityCrudRepository<TargetEntity, TargetID>> implements HasOneRepository<TargetEntity> {
40
+ getTargetRepository: Getter<TargetRepository>;
41
+ constraint: DataObject<TargetEntity>;
42
+ /**
43
+ * Constructor of DefaultHasOneEntityCrudRepository
44
+ * @param getTargetRepository - the getter of the related target model repository instance
45
+ * @param constraint - the key value pair representing foreign key name to constrain
46
+ * the target repository instance
47
+ */
48
+ constructor(getTargetRepository: Getter<TargetRepository>, constraint: DataObject<TargetEntity>);
49
+ create(targetModelData: DataObject<TargetEntity>, options?: Options): Promise<TargetEntity>;
50
+ get(filter?: Pick<Filter<TargetEntity>, Exclude<keyof Filter<TargetEntity>, 'where'>>, options?: Options): Promise<TargetEntity>;
51
+ delete(options?: Options): Promise<Count>;
52
+ patch(dataObject: DataObject<TargetEntity>, options?: Options): Promise<Count>;
53
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ // Copyright IBM Corp. 2018,2020. All Rights Reserved.
3
+ // Node module: @loopback/repository
4
+ // This file is licensed under the MIT License.
5
+ // License text available at https://opensource.org/licenses/MIT
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DefaultHasOneRepository = void 0;
8
+ const errors_1 = require("../../errors");
9
+ const repositories_1 = require("../../repositories");
10
+ class DefaultHasOneRepository {
11
+ /**
12
+ * Constructor of DefaultHasOneEntityCrudRepository
13
+ * @param getTargetRepository - the getter of the related target model repository instance
14
+ * @param constraint - the key value pair representing foreign key name to constrain
15
+ * the target repository instance
16
+ */
17
+ constructor(getTargetRepository, constraint) {
18
+ this.getTargetRepository = getTargetRepository;
19
+ this.constraint = constraint;
20
+ }
21
+ async create(targetModelData, options) {
22
+ const targetRepository = await this.getTargetRepository();
23
+ return targetRepository.create((0, repositories_1.constrainDataObject)(targetModelData, this.constraint), options);
24
+ }
25
+ async get(filter, options) {
26
+ const targetRepository = await this.getTargetRepository();
27
+ const found = await targetRepository.find(Object.assign({ limit: 1 }, (0, repositories_1.constrainFilter)(filter, this.constraint)), options);
28
+ if (found.length < 1) {
29
+ // We don't have a direct access to the foreign key value here :(
30
+ const id = 'constraint ' + JSON.stringify(this.constraint);
31
+ throw new errors_1.EntityNotFoundError(targetRepository.entityClass, id);
32
+ }
33
+ return found[0];
34
+ }
35
+ async delete(options) {
36
+ const targetRepository = await this.getTargetRepository();
37
+ return targetRepository.deleteAll((0, repositories_1.constrainWhere)({}, this.constraint), options);
38
+ }
39
+ async patch(dataObject, options) {
40
+ const targetRepository = await this.getTargetRepository();
41
+ return targetRepository.updateAll((0, repositories_1.constrainDataObject)(dataObject, this.constraint), (0, repositories_1.constrainWhere)({}, this.constraint), options);
42
+ }
43
+ }
44
+ exports.DefaultHasOneRepository = DefaultHasOneRepository;
45
+ //# sourceMappingURL=has-one.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-one.repository.js","sourceRoot":"","sources":["../../../src/relations/has-one/has-one.repository.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAKhE,yCAAiD;AAEjD,qDAK4B;AA6C5B,MAAa,uBAAuB;IAMlC;;;;;OAKG;IACH,YACS,mBAA6C,EAC7C,UAAoC;QADpC,wBAAmB,GAAnB,mBAAmB,CAA0B;QAC7C,eAAU,GAAV,UAAU,CAA0B;IAC1C,CAAC;IAEJ,KAAK,CAAC,MAAM,CACV,eAAyC,EACzC,OAAiB;QAEjB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,MAAM,CAC5B,IAAA,kCAAmB,EAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,EACrD,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CACP,MAGC,EACD,OAAiB;QAEjB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,CACvC,MAAM,CAAC,MAAM,CAAC,EAAC,KAAK,EAAE,CAAC,EAAC,EAAE,IAAA,8BAAe,EAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,EACnE,OAAO,CACR,CAAC;QACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,iEAAiE;YACjE,MAAM,EAAE,GAAG,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3D,MAAM,IAAI,4BAAmB,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;SACjE;QACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,OAAiB;QAC5B,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,SAAS,CAC/B,IAAA,6BAAc,EAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,EACnC,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CACT,UAAoC,EACpC,OAAiB;QAEjB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,SAAS,CAC/B,IAAA,kCAAmB,EAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,EAChD,IAAA,6BAAc,EAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,EACnC,OAAO,CACR,CAAC;IACJ,CAAC;CACF;AAlED,0DAkEC"}
@@ -0,0 +1,3 @@
1
+ export * from './has-one.decorator';
2
+ export * from './has-one.repository';
3
+ export * from './has-one.repository-factory';
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ // Copyright IBM Corp. 2018,2020. All Rights Reserved.
3
+ // Node module: @loopback/repository
4
+ // This file is licensed under the MIT License.
5
+ // License text available at https://opensource.org/licenses/MIT
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const tslib_1 = require("tslib");
8
+ (0, tslib_1.__exportStar)(require("./has-one.decorator"), exports);
9
+ (0, tslib_1.__exportStar)(require("./has-one.repository"), exports);
10
+ (0, tslib_1.__exportStar)(require("./has-one.repository-factory"), exports);
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/relations/has-one/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,mEAAoC;AACpC,oEAAqC;AACrC,4EAA6C"}
@@ -0,0 +1,6 @@
1
+ export * from './belongs-to';
2
+ export * from './has-many';
3
+ export * from './has-one';
4
+ export * from './relation.decorator';
5
+ export * from './relation.helpers';
6
+ export * from './relation.types';
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ // Copyright IBM Corp. 2018,2020. All Rights Reserved.
3
+ // Node module: @loopback/repository
4
+ // This file is licensed under the MIT License.
5
+ // License text available at https://opensource.org/licenses/MIT
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const tslib_1 = require("tslib");
8
+ (0, tslib_1.__exportStar)(require("./belongs-to"), exports);
9
+ (0, tslib_1.__exportStar)(require("./has-many"), exports);
10
+ (0, tslib_1.__exportStar)(require("./has-one"), exports);
11
+ (0, tslib_1.__exportStar)(require("./relation.decorator"), exports);
12
+ (0, tslib_1.__exportStar)(require("./relation.helpers"), exports);
13
+ (0, tslib_1.__exportStar)(require("./relation.types"), exports);
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/relations/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,4DAA6B;AAC7B,0DAA2B;AAC3B,yDAA0B;AAC1B,oEAAqC;AACrC,kEAAmC;AACnC,gEAAiC"}
@@ -0,0 +1,39 @@
1
+ import { Model, RelationDefinitionMap } from '../model';
2
+ export declare const RELATIONS_KEY = "loopback:relations";
3
+ /**
4
+ * Decorator for relations
5
+ * @param definition
6
+ * @returns A property decorator
7
+ */
8
+ export declare function relation(definition?: Object): PropertyDecorator;
9
+ /**
10
+ * Get metadata of all relations defined on a given model class.
11
+ *
12
+ * @param modelCtor - The model class (the constructor function).
13
+ * @returns A map of relation definitions
14
+ */
15
+ export declare function getModelRelations(modelCtor: typeof Model): RelationDefinitionMap;
16
+ /**
17
+ * Decorator for embedsOne
18
+ * @param definition
19
+ * @returns A property decorator
20
+ */
21
+ export declare function embedsOne(definition?: Object): PropertyDecorator;
22
+ /**
23
+ * Decorator for embedsMany
24
+ * @param definition
25
+ * @returns A property decorator
26
+ */
27
+ export declare function embedsMany(definition?: Object): PropertyDecorator;
28
+ /**
29
+ * Decorator for referencesOne
30
+ * @param definition
31
+ * @returns A property decorator
32
+ */
33
+ export declare function referencesOne(definition?: Object): PropertyDecorator;
34
+ /**
35
+ * Decorator for referencesMany
36
+ * @param definition
37
+ * @returns A property decorator
38
+ */
39
+ export declare function referencesMany(definition?: Object): PropertyDecorator;