pure-orm 4.0.0-5 → 4.0.0-8

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 (311) hide show
  1. package/README.md +14 -20
  2. package/coverage/clover.xml +375 -577
  3. package/coverage/coverage-final.json +18 -20
  4. package/coverage/lcov-report/dist/src/core.js.html +1038 -0
  5. package/coverage/lcov-report/dist/src/drivers/index.html +97 -0
  6. package/coverage/lcov-report/dist/src/drivers/pgp.js.html +240 -0
  7. package/coverage/lcov-report/dist/src/factory.js.html +293 -197
  8. package/coverage/lcov-report/dist/src/index.html +20 -33
  9. package/coverage/lcov-report/dist/src/index.js.html +16 -10
  10. package/coverage/lcov-report/dist/src/orm.js.html +645 -0
  11. package/coverage/lcov-report/dist/test-utils/blog/entities.js.html +108 -0
  12. package/coverage/lcov-report/dist/test-utils/blog/index.html +6 -6
  13. package/coverage/lcov-report/dist/test-utils/blog/models/article.js.html +1 -1
  14. package/coverage/lcov-report/dist/test-utils/blog/models/article_tag.js.html +1 -1
  15. package/coverage/lcov-report/dist/test-utils/blog/models/index.html +1 -1
  16. package/coverage/lcov-report/dist/test-utils/blog/models/person.js.html +1 -1
  17. package/coverage/lcov-report/dist/test-utils/blog/models/tag.js.html +1 -1
  18. package/coverage/lcov-report/dist/test-utils/blog/orm.js.html +1 -1
  19. package/coverage/lcov-report/dist/test-utils/five/entities.js.html +114 -0
  20. package/coverage/lcov-report/dist/test-utils/five/index.html +6 -6
  21. package/coverage/lcov-report/dist/test-utils/five/models/index.html +1 -1
  22. package/coverage/lcov-report/dist/test-utils/five/models/line-item.js.html +1 -1
  23. package/coverage/lcov-report/dist/test-utils/five/models/order.js.html +1 -1
  24. package/coverage/lcov-report/dist/test-utils/five/models/parcel-event.js.html +1 -1
  25. package/coverage/lcov-report/dist/test-utils/five/models/parcel-line-item.js.html +1 -1
  26. package/coverage/lcov-report/dist/test-utils/five/models/parcel.js.html +1 -1
  27. package/coverage/lcov-report/dist/test-utils/five/orm.js.html +1 -1
  28. package/coverage/lcov-report/dist/test-utils/nine/entities.js.html +84 -0
  29. package/coverage/lcov-report/dist/test-utils/nine/index.html +6 -6
  30. package/coverage/lcov-report/dist/test-utils/nine/models/feature-switch.js.html +1 -1
  31. package/coverage/lcov-report/dist/test-utils/nine/models/index.html +1 -1
  32. package/coverage/lcov-report/dist/test-utils/nine/orm.js.html +1 -1
  33. package/coverage/lcov-report/dist/test-utils/order/entities.js.html +114 -0
  34. package/coverage/lcov-report/dist/test-utils/order/index.html +6 -6
  35. package/coverage/lcov-report/dist/test-utils/order/models/index.html +1 -1
  36. package/coverage/lcov-report/dist/test-utils/order/models/line-item.js.html +1 -1
  37. package/coverage/lcov-report/dist/test-utils/order/models/order.js.html +1 -1
  38. package/coverage/lcov-report/dist/test-utils/order/models/product-variant.js.html +1 -1
  39. package/coverage/lcov-report/dist/test-utils/order/models/product.js.html +1 -1
  40. package/coverage/lcov-report/dist/test-utils/order/models/utm-source.js.html +1 -1
  41. package/coverage/lcov-report/dist/test-utils/order/orm.js.html +1 -1
  42. package/coverage/lcov-report/dist/test-utils/order-more/entities.js.html +204 -0
  43. package/coverage/lcov-report/dist/test-utils/order-more/index.html +6 -6
  44. package/coverage/lcov-report/dist/test-utils/order-more/models/actual-product-variant.js.html +1 -1
  45. package/coverage/lcov-report/dist/test-utils/order-more/models/color.js.html +1 -1
  46. package/coverage/lcov-report/dist/test-utils/order-more/models/customer.js.html +1 -1
  47. package/coverage/lcov-report/dist/test-utils/order-more/models/gender.js.html +1 -1
  48. package/coverage/lcov-report/dist/test-utils/order-more/models/index.html +1 -1
  49. package/coverage/lcov-report/dist/test-utils/order-more/models/inventory-level.js.html +1 -1
  50. package/coverage/lcov-report/dist/test-utils/order-more/models/line-item.js.html +1 -1
  51. package/coverage/lcov-report/dist/test-utils/order-more/models/order.js.html +1 -1
  52. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-event.js.html +1 -1
  53. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-line-item.js.html +1 -1
  54. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel.js.html +1 -1
  55. package/coverage/lcov-report/dist/test-utils/order-more/models/physical-address.js.html +1 -1
  56. package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant-image.js.html +1 -1
  57. package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant.js.html +1 -1
  58. package/coverage/lcov-report/dist/test-utils/order-more/models/product.js.html +1 -1
  59. package/coverage/lcov-report/dist/test-utils/order-more/models/refund.js.html +1 -1
  60. package/coverage/lcov-report/dist/test-utils/order-more/models/shipment-actual-product-variant.js.html +1 -1
  61. package/coverage/lcov-report/dist/test-utils/order-more/models/shipment.js.html +1 -1
  62. package/coverage/lcov-report/dist/test-utils/order-more/models/size.js.html +1 -1
  63. package/coverage/lcov-report/dist/test-utils/order-more/models/utm-medium.js.html +1 -1
  64. package/coverage/lcov-report/dist/test-utils/order-more/models/utm-source.js.html +1 -1
  65. package/coverage/lcov-report/dist/test-utils/order-more/orm.js.html +1 -1
  66. package/coverage/lcov-report/dist/test-utils/six/entities.js.html +114 -0
  67. package/coverage/lcov-report/dist/test-utils/six/index.html +6 -6
  68. package/coverage/lcov-report/dist/test-utils/six/models/customer.js.html +1 -1
  69. package/coverage/lcov-report/dist/test-utils/six/models/index.html +1 -1
  70. package/coverage/lcov-report/dist/test-utils/six/models/line-item.js.html +1 -1
  71. package/coverage/lcov-report/dist/test-utils/six/models/order.js.html +1 -1
  72. package/coverage/lcov-report/dist/test-utils/six/models/parcel-line-item.js.html +1 -1
  73. package/coverage/lcov-report/dist/test-utils/six/models/parcel.js.html +1 -1
  74. package/coverage/lcov-report/dist/test-utils/six/orm.js.html +1 -1
  75. package/coverage/lcov-report/dist/test-utils/thirteen/entities.js.html +132 -0
  76. package/coverage/lcov-report/dist/test-utils/thirteen/index.html +6 -6
  77. package/coverage/lcov-report/dist/test-utils/thirteen/models/audience.js.html +1 -1
  78. package/coverage/lcov-report/dist/test-utils/thirteen/models/brand.js.html +1 -1
  79. package/coverage/lcov-report/dist/test-utils/thirteen/models/category.js.html +1 -1
  80. package/coverage/lcov-report/dist/test-utils/thirteen/models/index.html +1 -1
  81. package/coverage/lcov-report/dist/test-utils/thirteen/models/member.js.html +1 -1
  82. package/coverage/lcov-report/dist/test-utils/thirteen/models/passion.js.html +1 -1
  83. package/coverage/lcov-report/dist/test-utils/thirteen/models/product.js.html +1 -1
  84. package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation-audience.js.html +1 -1
  85. package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation.js.html +1 -1
  86. package/coverage/lcov-report/dist/test-utils/thirteen/orm.js.html +1 -1
  87. package/coverage/lcov-report/dist/test-utils/three/index.html +1 -1
  88. package/coverage/lcov-report/dist/test-utils/three/results.js.html +1 -1
  89. package/coverage/lcov-report/dist/test-utils/twelve/entities.js.html +87 -0
  90. package/coverage/lcov-report/dist/test-utils/twelve/index.html +6 -6
  91. package/coverage/lcov-report/dist/test-utils/twelve/models/index.html +1 -1
  92. package/coverage/lcov-report/dist/test-utils/twelve/models/member.js.html +1 -1
  93. package/coverage/lcov-report/dist/test-utils/twelve/models/prompt.js.html +1 -1
  94. package/coverage/lcov-report/dist/test-utils/twelve/orm.js.html +1 -1
  95. package/coverage/lcov-report/dist/test-utils/two/index.html +1 -1
  96. package/coverage/lcov-report/dist/test-utils/two/results.js.html +1 -1
  97. package/coverage/lcov-report/index.html +47 -47
  98. package/coverage/lcov-report/src/core.ts.html +1593 -0
  99. package/coverage/lcov-report/src/drivers/index.html +97 -0
  100. package/coverage/lcov-report/src/drivers/pgp.ts.html +516 -0
  101. package/coverage/lcov-report/src/factory.ts.html +436 -250
  102. package/coverage/lcov-report/src/index.html +20 -33
  103. package/coverage/lcov-report/src/index.ts.html +23 -5
  104. package/coverage/lcov-report/src/orm.ts.html +954 -0
  105. package/coverage/lcov-report/test-utils/blog/entities.ts.html +102 -0
  106. package/coverage/lcov-report/test-utils/blog/index.html +6 -6
  107. package/coverage/lcov-report/test-utils/blog/models/article.ts.html +1 -1
  108. package/coverage/lcov-report/test-utils/blog/models/article_tag.ts.html +1 -1
  109. package/coverage/lcov-report/test-utils/blog/models/index.html +1 -1
  110. package/coverage/lcov-report/test-utils/blog/models/person.ts.html +1 -1
  111. package/coverage/lcov-report/test-utils/blog/models/tag.ts.html +1 -1
  112. package/coverage/lcov-report/test-utils/blog/orm.ts.html +1 -1
  113. package/coverage/lcov-report/test-utils/five/entities.ts.html +105 -0
  114. package/coverage/lcov-report/test-utils/five/index.html +2 -2
  115. package/coverage/lcov-report/test-utils/five/models/index.html +1 -1
  116. package/coverage/lcov-report/test-utils/five/models/line-item.ts.html +1 -1
  117. package/coverage/lcov-report/test-utils/five/models/order.ts.html +1 -1
  118. package/coverage/lcov-report/test-utils/five/models/parcel-event.ts.html +1 -1
  119. package/coverage/lcov-report/test-utils/five/models/parcel-line-item.ts.html +1 -1
  120. package/coverage/lcov-report/test-utils/five/models/parcel.ts.html +1 -1
  121. package/coverage/lcov-report/test-utils/five/orm.ts.html +1 -1
  122. package/coverage/lcov-report/test-utils/nine/entities.ts.html +75 -0
  123. package/coverage/lcov-report/test-utils/nine/index.html +2 -2
  124. package/coverage/lcov-report/test-utils/nine/models/feature-switch.ts.html +1 -1
  125. package/coverage/lcov-report/test-utils/nine/models/index.html +1 -1
  126. package/coverage/lcov-report/test-utils/nine/orm.ts.html +1 -1
  127. package/coverage/lcov-report/test-utils/order/entities.ts.html +108 -0
  128. package/coverage/lcov-report/test-utils/order/index.html +2 -2
  129. package/coverage/lcov-report/test-utils/order/models/index.html +1 -1
  130. package/coverage/lcov-report/test-utils/order/models/line-item.ts.html +1 -1
  131. package/coverage/lcov-report/test-utils/order/models/order.ts.html +1 -1
  132. package/coverage/lcov-report/test-utils/order/models/product-variant.ts.html +1 -1
  133. package/coverage/lcov-report/test-utils/order/models/product.ts.html +1 -1
  134. package/coverage/lcov-report/test-utils/order/models/utm-source.ts.html +1 -1
  135. package/coverage/lcov-report/test-utils/order/orm.ts.html +1 -1
  136. package/coverage/lcov-report/test-utils/order-more/entities.ts.html +198 -0
  137. package/coverage/lcov-report/test-utils/order-more/index.html +2 -2
  138. package/coverage/lcov-report/test-utils/order-more/models/actual-product-variant.ts.html +1 -1
  139. package/coverage/lcov-report/test-utils/order-more/models/color.ts.html +1 -1
  140. package/coverage/lcov-report/test-utils/order-more/models/customer.ts.html +1 -1
  141. package/coverage/lcov-report/test-utils/order-more/models/gender.ts.html +1 -1
  142. package/coverage/lcov-report/test-utils/order-more/models/index.html +1 -1
  143. package/coverage/lcov-report/test-utils/order-more/models/inventory-level.ts.html +1 -1
  144. package/coverage/lcov-report/test-utils/order-more/models/line-item.ts.html +1 -1
  145. package/coverage/lcov-report/test-utils/order-more/models/order.ts.html +1 -1
  146. package/coverage/lcov-report/test-utils/order-more/models/parcel-event.ts.html +1 -1
  147. package/coverage/lcov-report/test-utils/order-more/models/parcel-line-item.ts.html +1 -1
  148. package/coverage/lcov-report/test-utils/order-more/models/parcel.ts.html +1 -1
  149. package/coverage/lcov-report/test-utils/order-more/models/physical-address.ts.html +1 -1
  150. package/coverage/lcov-report/test-utils/order-more/models/product-variant-image.ts.html +1 -1
  151. package/coverage/lcov-report/test-utils/order-more/models/product-variant.ts.html +1 -1
  152. package/coverage/lcov-report/test-utils/order-more/models/product.ts.html +1 -1
  153. package/coverage/lcov-report/test-utils/order-more/models/refund.ts.html +1 -1
  154. package/coverage/lcov-report/test-utils/order-more/models/shipment-actual-product-variant.ts.html +1 -1
  155. package/coverage/lcov-report/test-utils/order-more/models/shipment.ts.html +1 -1
  156. package/coverage/lcov-report/test-utils/order-more/models/size.ts.html +1 -1
  157. package/coverage/lcov-report/test-utils/order-more/models/utm-medium.ts.html +1 -1
  158. package/coverage/lcov-report/test-utils/order-more/models/utm-source.ts.html +1 -1
  159. package/coverage/lcov-report/test-utils/order-more/orm.ts.html +1 -1
  160. package/coverage/lcov-report/test-utils/six/entities.ts.html +105 -0
  161. package/coverage/lcov-report/test-utils/six/index.html +2 -2
  162. package/coverage/lcov-report/test-utils/six/models/customer.ts.html +1 -1
  163. package/coverage/lcov-report/test-utils/six/models/index.html +1 -1
  164. package/coverage/lcov-report/test-utils/six/models/line-item.ts.html +1 -1
  165. package/coverage/lcov-report/test-utils/six/models/order.ts.html +1 -1
  166. package/coverage/lcov-report/test-utils/six/models/parcel-line-item.ts.html +1 -1
  167. package/coverage/lcov-report/test-utils/six/models/parcel.ts.html +1 -1
  168. package/coverage/lcov-report/test-utils/six/orm.ts.html +1 -1
  169. package/coverage/lcov-report/test-utils/thirteen/entities.ts.html +123 -0
  170. package/coverage/lcov-report/test-utils/thirteen/index.html +2 -2
  171. package/coverage/lcov-report/test-utils/thirteen/models/audience.ts.html +1 -1
  172. package/coverage/lcov-report/test-utils/thirteen/models/brand.ts.html +1 -1
  173. package/coverage/lcov-report/test-utils/thirteen/models/category.ts.html +1 -1
  174. package/coverage/lcov-report/test-utils/thirteen/models/index.html +1 -1
  175. package/coverage/lcov-report/test-utils/thirteen/models/member.ts.html +1 -1
  176. package/coverage/lcov-report/test-utils/thirteen/models/passion.ts.html +1 -1
  177. package/coverage/lcov-report/test-utils/thirteen/models/product.ts.html +1 -1
  178. package/coverage/lcov-report/test-utils/thirteen/models/recommendation-audience.ts.html +1 -1
  179. package/coverage/lcov-report/test-utils/thirteen/models/recommendation.ts.html +1 -1
  180. package/coverage/lcov-report/test-utils/thirteen/orm.ts.html +1 -1
  181. package/coverage/lcov-report/test-utils/three/index.html +1 -1
  182. package/coverage/lcov-report/test-utils/three/results.js.html +1 -1
  183. package/coverage/lcov-report/test-utils/twelve/entities.ts.html +78 -0
  184. package/coverage/lcov-report/test-utils/twelve/index.html +2 -2
  185. package/coverage/lcov-report/test-utils/twelve/models/index.html +1 -1
  186. package/coverage/lcov-report/test-utils/twelve/models/member.ts.html +1 -1
  187. package/coverage/lcov-report/test-utils/twelve/models/prompt.ts.html +1 -1
  188. package/coverage/lcov-report/test-utils/twelve/orm.ts.html +1 -1
  189. package/coverage/lcov-report/test-utils/two/index.html +1 -1
  190. package/coverage/lcov-report/test-utils/two/results.js.html +1 -1
  191. package/coverage/lcov.info +726 -1143
  192. package/dist/example/factories/orm.d.ts +1 -47
  193. package/dist/example/models/employer.d.ts +1 -1
  194. package/dist/example/models/job.d.ts +1 -1
  195. package/dist/example/models/person.d.ts +1 -1
  196. package/dist/src/core.d.ts +66 -0
  197. package/dist/src/{factory.js → core.js} +51 -245
  198. package/dist/src/{factory.spec.d.ts → core.spec.d.ts} +0 -0
  199. package/dist/src/{factory.spec.js → core.spec.js} +56 -43
  200. package/dist/src/driver-integrations/index.d.ts +13 -0
  201. package/dist/src/driver-integrations/index.js +2 -0
  202. package/dist/src/driver-integrations/pgp.d.ts +2 -0
  203. package/dist/src/driver-integrations/pgp.js +57 -0
  204. package/dist/src/index.d.ts +2 -1
  205. package/dist/src/index.js +5 -3
  206. package/dist/src/orm.d.ts +20 -0
  207. package/dist/src/orm.js +190 -0
  208. package/dist/test-utils/blog/entities.d.ts +1 -0
  209. package/dist/test-utils/blog/{orm.js → entities.js} +7 -6
  210. package/dist/test-utils/blog/{orm.ts → entities.ts} +6 -6
  211. package/dist/test-utils/blog/models/article.d.ts +1 -1
  212. package/dist/test-utils/blog/models/article_tag.d.ts +1 -1
  213. package/dist/test-utils/blog/models/person.d.ts +1 -1
  214. package/dist/test-utils/blog/models/tag.d.ts +1 -1
  215. package/dist/test-utils/five/entities.d.ts +6 -0
  216. package/dist/test-utils/five/{orm.js → entities.js} +8 -12
  217. package/dist/test-utils/five/{orm.ts → entities.ts} +7 -12
  218. package/dist/test-utils/five/models/line-item.d.ts +1 -1
  219. package/dist/test-utils/five/models/order.d.ts +1 -1
  220. package/dist/test-utils/five/models/parcel-event.d.ts +1 -1
  221. package/dist/test-utils/five/models/parcel-line-item.d.ts +1 -1
  222. package/dist/test-utils/five/models/parcel.d.ts +1 -1
  223. package/dist/test-utils/nine/entities.d.ts +6 -0
  224. package/dist/test-utils/nine/entities.js +5 -0
  225. package/dist/test-utils/nine/entities.ts +2 -0
  226. package/dist/test-utils/nine/models/feature-switch.d.ts +1 -1
  227. package/dist/test-utils/order/entities.d.ts +26 -0
  228. package/dist/test-utils/order/{orm.js → entities.js} +8 -12
  229. package/{test-utils/order/orm.ts → dist/test-utils/order/entities.ts} +7 -12
  230. package/dist/test-utils/order/models/line-item.d.ts +1 -1
  231. package/dist/test-utils/order/models/order.d.ts +1 -1
  232. package/dist/test-utils/order/models/product-variant.d.ts +1 -1
  233. package/dist/test-utils/order/models/product.d.ts +1 -1
  234. package/dist/test-utils/order/models/utm-source.d.ts +1 -1
  235. package/dist/test-utils/order-more/entities.d.ts +6 -0
  236. package/dist/test-utils/order-more/{orm.js → entities.js} +23 -27
  237. package/dist/test-utils/order-more/{orm.ts → entities.ts} +22 -27
  238. package/dist/test-utils/order-more/models/actual-product-variant.d.ts +1 -1
  239. package/dist/test-utils/order-more/models/color.d.ts +1 -1
  240. package/dist/test-utils/order-more/models/customer.d.ts +1 -1
  241. package/dist/test-utils/order-more/models/gender.d.ts +1 -1
  242. package/dist/test-utils/order-more/models/inventory-level.d.ts +1 -1
  243. package/dist/test-utils/order-more/models/line-item.d.ts +1 -1
  244. package/dist/test-utils/order-more/models/order.d.ts +1 -1
  245. package/dist/test-utils/order-more/models/parcel-event.d.ts +1 -1
  246. package/dist/test-utils/order-more/models/parcel-line-item.d.ts +1 -1
  247. package/dist/test-utils/order-more/models/parcel.d.ts +1 -1
  248. package/dist/test-utils/order-more/models/physical-address.d.ts +1 -1
  249. package/dist/test-utils/order-more/models/product-variant-image.d.ts +1 -1
  250. package/dist/test-utils/order-more/models/product-variant.d.ts +1 -1
  251. package/dist/test-utils/order-more/models/product.d.ts +1 -1
  252. package/dist/test-utils/order-more/models/refund.d.ts +1 -1
  253. package/dist/test-utils/order-more/models/shipment-actual-product-variant.d.ts +1 -1
  254. package/dist/test-utils/order-more/models/shipment.d.ts +1 -1
  255. package/dist/test-utils/order-more/models/size.d.ts +1 -1
  256. package/dist/test-utils/order-more/models/utm-medium.d.ts +1 -1
  257. package/dist/test-utils/order-more/models/utm-source.d.ts +1 -1
  258. package/dist/test-utils/six/entities.d.ts +6 -0
  259. package/dist/test-utils/six/{orm.js → entities.js} +8 -12
  260. package/{test-utils/six/orm.ts → dist/test-utils/six/entities.ts} +7 -12
  261. package/dist/test-utils/six/models/customer.d.ts +1 -1
  262. package/dist/test-utils/six/models/line-item.d.ts +1 -1
  263. package/dist/test-utils/six/models/order.d.ts +1 -1
  264. package/dist/test-utils/six/models/parcel-line-item.d.ts +1 -1
  265. package/dist/test-utils/six/models/parcel.d.ts +1 -1
  266. package/dist/test-utils/thirteen/entities.d.ts +6 -0
  267. package/dist/test-utils/thirteen/{orm.js → entities.js} +11 -15
  268. package/dist/test-utils/thirteen/{orm.ts → entities.ts} +10 -15
  269. package/dist/test-utils/thirteen/models/audience.d.ts +1 -1
  270. package/dist/test-utils/thirteen/models/brand.d.ts +1 -1
  271. package/dist/test-utils/thirteen/models/category.d.ts +1 -1
  272. package/dist/test-utils/thirteen/models/member.d.ts +1 -1
  273. package/dist/test-utils/thirteen/models/passion.d.ts +1 -1
  274. package/dist/test-utils/thirteen/models/product.d.ts +1 -1
  275. package/dist/test-utils/thirteen/models/recommendation-audience.d.ts +1 -1
  276. package/dist/test-utils/thirteen/models/recommendation.d.ts +1 -1
  277. package/dist/test-utils/twelve/entities.d.ts +6 -0
  278. package/dist/test-utils/twelve/entities.js +6 -0
  279. package/dist/test-utils/twelve/entities.ts +3 -0
  280. package/dist/test-utils/twelve/models/member.d.ts +1 -1
  281. package/dist/test-utils/twelve/models/prompt.d.ts +1 -1
  282. package/package.json +4 -3
  283. package/src/{factory.spec.ts → core.spec.ts} +55 -41
  284. package/src/{factory.ts → core.ts} +102 -338
  285. package/src/driver-integrations/index.ts +56 -0
  286. package/src/driver-integrations/pgp.ts +92 -0
  287. package/src/index.ts +5 -3
  288. package/src/orm.ts +291 -0
  289. package/test-utils/blog/{orm.ts → entities.ts} +6 -6
  290. package/test-utils/five/{orm.ts → entities.ts} +7 -12
  291. package/test-utils/nine/entities.ts +2 -0
  292. package/{dist/test-utils/order/orm.ts → test-utils/order/entities.ts} +7 -12
  293. package/test-utils/order-more/{orm.ts → entities.ts} +22 -27
  294. package/{dist/test-utils/six/orm.ts → test-utils/six/entities.ts} +7 -12
  295. package/test-utils/thirteen/{orm.ts → entities.ts} +10 -15
  296. package/test-utils/twelve/entities.ts +3 -0
  297. package/dist/src/factory.d.ts +0 -100
  298. package/dist/test-utils/blog/orm.d.ts +0 -2
  299. package/dist/test-utils/five/orm.d.ts +0 -48
  300. package/dist/test-utils/nine/orm.d.ts +0 -48
  301. package/dist/test-utils/nine/orm.js +0 -9
  302. package/dist/test-utils/nine/orm.ts +0 -7
  303. package/dist/test-utils/order/orm.d.ts +0 -48
  304. package/dist/test-utils/order-more/orm.d.ts +0 -48
  305. package/dist/test-utils/six/orm.d.ts +0 -48
  306. package/dist/test-utils/thirteen/orm.d.ts +0 -48
  307. package/dist/test-utils/twelve/orm.d.ts +0 -48
  308. package/dist/test-utils/twelve/orm.js +0 -10
  309. package/dist/test-utils/twelve/orm.ts +0 -8
  310. package/test-utils/nine/orm.ts +0 -7
  311. package/test-utils/twelve/orm.ts +0 -8
@@ -0,0 +1,1593 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Code coverage report for src/core.ts</title>
5
+ <meta charset="utf-8" />
6
+ <link rel="stylesheet" href="../prettify.css" />
7
+ <link rel="stylesheet" href="../base.css" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1">
9
+ <style type='text/css'>
10
+ .coverage-summary .sorter {
11
+ background-image: url(../sort-arrow-sprite.png);
12
+ }
13
+ </style>
14
+ </head>
15
+ <body>
16
+ <div class='wrapper'>
17
+ <div class='pad1'>
18
+ <h1>
19
+ <a href="../index.html">All files</a> / <a href="index.html">src</a> core.ts
20
+ </h1>
21
+ <div class='clearfix'>
22
+ <div class='fl pad1y space-right2'>
23
+ <span class="strong">88.27% </span>
24
+ <span class="quiet">Statements</span>
25
+ <span class='fraction'>158/179</span>
26
+ </div>
27
+ <div class='fl pad1y space-right2'>
28
+ <span class="strong">70.1% </span>
29
+ <span class="quiet">Branches</span>
30
+ <span class='fraction'>68/97</span>
31
+ </div>
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">91.49% </span>
34
+ <span class="quiet">Functions</span>
35
+ <span class='fraction'>43/47</span>
36
+ </div>
37
+ <div class='fl pad1y space-right2'>
38
+ <span class="strong">88.37% </span>
39
+ <span class="quiet">Lines</span>
40
+ <span class='fraction'>152/172</span>
41
+ </div>
42
+ </div>
43
+ <p class="quiet">
44
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
45
+ </p>
46
+ </div>
47
+ <div class='status-line high'></div>
48
+ <pre><table class="coverage">
49
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
50
+ <a name='L2'></a><a href='#L2'>2</a>
51
+ <a name='L3'></a><a href='#L3'>3</a>
52
+ <a name='L4'></a><a href='#L4'>4</a>
53
+ <a name='L5'></a><a href='#L5'>5</a>
54
+ <a name='L6'></a><a href='#L6'>6</a>
55
+ <a name='L7'></a><a href='#L7'>7</a>
56
+ <a name='L8'></a><a href='#L8'>8</a>
57
+ <a name='L9'></a><a href='#L9'>9</a>
58
+ <a name='L10'></a><a href='#L10'>10</a>
59
+ <a name='L11'></a><a href='#L11'>11</a>
60
+ <a name='L12'></a><a href='#L12'>12</a>
61
+ <a name='L13'></a><a href='#L13'>13</a>
62
+ <a name='L14'></a><a href='#L14'>14</a>
63
+ <a name='L15'></a><a href='#L15'>15</a>
64
+ <a name='L16'></a><a href='#L16'>16</a>
65
+ <a name='L17'></a><a href='#L17'>17</a>
66
+ <a name='L18'></a><a href='#L18'>18</a>
67
+ <a name='L19'></a><a href='#L19'>19</a>
68
+ <a name='L20'></a><a href='#L20'>20</a>
69
+ <a name='L21'></a><a href='#L21'>21</a>
70
+ <a name='L22'></a><a href='#L22'>22</a>
71
+ <a name='L23'></a><a href='#L23'>23</a>
72
+ <a name='L24'></a><a href='#L24'>24</a>
73
+ <a name='L25'></a><a href='#L25'>25</a>
74
+ <a name='L26'></a><a href='#L26'>26</a>
75
+ <a name='L27'></a><a href='#L27'>27</a>
76
+ <a name='L28'></a><a href='#L28'>28</a>
77
+ <a name='L29'></a><a href='#L29'>29</a>
78
+ <a name='L30'></a><a href='#L30'>30</a>
79
+ <a name='L31'></a><a href='#L31'>31</a>
80
+ <a name='L32'></a><a href='#L32'>32</a>
81
+ <a name='L33'></a><a href='#L33'>33</a>
82
+ <a name='L34'></a><a href='#L34'>34</a>
83
+ <a name='L35'></a><a href='#L35'>35</a>
84
+ <a name='L36'></a><a href='#L36'>36</a>
85
+ <a name='L37'></a><a href='#L37'>37</a>
86
+ <a name='L38'></a><a href='#L38'>38</a>
87
+ <a name='L39'></a><a href='#L39'>39</a>
88
+ <a name='L40'></a><a href='#L40'>40</a>
89
+ <a name='L41'></a><a href='#L41'>41</a>
90
+ <a name='L42'></a><a href='#L42'>42</a>
91
+ <a name='L43'></a><a href='#L43'>43</a>
92
+ <a name='L44'></a><a href='#L44'>44</a>
93
+ <a name='L45'></a><a href='#L45'>45</a>
94
+ <a name='L46'></a><a href='#L46'>46</a>
95
+ <a name='L47'></a><a href='#L47'>47</a>
96
+ <a name='L48'></a><a href='#L48'>48</a>
97
+ <a name='L49'></a><a href='#L49'>49</a>
98
+ <a name='L50'></a><a href='#L50'>50</a>
99
+ <a name='L51'></a><a href='#L51'>51</a>
100
+ <a name='L52'></a><a href='#L52'>52</a>
101
+ <a name='L53'></a><a href='#L53'>53</a>
102
+ <a name='L54'></a><a href='#L54'>54</a>
103
+ <a name='L55'></a><a href='#L55'>55</a>
104
+ <a name='L56'></a><a href='#L56'>56</a>
105
+ <a name='L57'></a><a href='#L57'>57</a>
106
+ <a name='L58'></a><a href='#L58'>58</a>
107
+ <a name='L59'></a><a href='#L59'>59</a>
108
+ <a name='L60'></a><a href='#L60'>60</a>
109
+ <a name='L61'></a><a href='#L61'>61</a>
110
+ <a name='L62'></a><a href='#L62'>62</a>
111
+ <a name='L63'></a><a href='#L63'>63</a>
112
+ <a name='L64'></a><a href='#L64'>64</a>
113
+ <a name='L65'></a><a href='#L65'>65</a>
114
+ <a name='L66'></a><a href='#L66'>66</a>
115
+ <a name='L67'></a><a href='#L67'>67</a>
116
+ <a name='L68'></a><a href='#L68'>68</a>
117
+ <a name='L69'></a><a href='#L69'>69</a>
118
+ <a name='L70'></a><a href='#L70'>70</a>
119
+ <a name='L71'></a><a href='#L71'>71</a>
120
+ <a name='L72'></a><a href='#L72'>72</a>
121
+ <a name='L73'></a><a href='#L73'>73</a>
122
+ <a name='L74'></a><a href='#L74'>74</a>
123
+ <a name='L75'></a><a href='#L75'>75</a>
124
+ <a name='L76'></a><a href='#L76'>76</a>
125
+ <a name='L77'></a><a href='#L77'>77</a>
126
+ <a name='L78'></a><a href='#L78'>78</a>
127
+ <a name='L79'></a><a href='#L79'>79</a>
128
+ <a name='L80'></a><a href='#L80'>80</a>
129
+ <a name='L81'></a><a href='#L81'>81</a>
130
+ <a name='L82'></a><a href='#L82'>82</a>
131
+ <a name='L83'></a><a href='#L83'>83</a>
132
+ <a name='L84'></a><a href='#L84'>84</a>
133
+ <a name='L85'></a><a href='#L85'>85</a>
134
+ <a name='L86'></a><a href='#L86'>86</a>
135
+ <a name='L87'></a><a href='#L87'>87</a>
136
+ <a name='L88'></a><a href='#L88'>88</a>
137
+ <a name='L89'></a><a href='#L89'>89</a>
138
+ <a name='L90'></a><a href='#L90'>90</a>
139
+ <a name='L91'></a><a href='#L91'>91</a>
140
+ <a name='L92'></a><a href='#L92'>92</a>
141
+ <a name='L93'></a><a href='#L93'>93</a>
142
+ <a name='L94'></a><a href='#L94'>94</a>
143
+ <a name='L95'></a><a href='#L95'>95</a>
144
+ <a name='L96'></a><a href='#L96'>96</a>
145
+ <a name='L97'></a><a href='#L97'>97</a>
146
+ <a name='L98'></a><a href='#L98'>98</a>
147
+ <a name='L99'></a><a href='#L99'>99</a>
148
+ <a name='L100'></a><a href='#L100'>100</a>
149
+ <a name='L101'></a><a href='#L101'>101</a>
150
+ <a name='L102'></a><a href='#L102'>102</a>
151
+ <a name='L103'></a><a href='#L103'>103</a>
152
+ <a name='L104'></a><a href='#L104'>104</a>
153
+ <a name='L105'></a><a href='#L105'>105</a>
154
+ <a name='L106'></a><a href='#L106'>106</a>
155
+ <a name='L107'></a><a href='#L107'>107</a>
156
+ <a name='L108'></a><a href='#L108'>108</a>
157
+ <a name='L109'></a><a href='#L109'>109</a>
158
+ <a name='L110'></a><a href='#L110'>110</a>
159
+ <a name='L111'></a><a href='#L111'>111</a>
160
+ <a name='L112'></a><a href='#L112'>112</a>
161
+ <a name='L113'></a><a href='#L113'>113</a>
162
+ <a name='L114'></a><a href='#L114'>114</a>
163
+ <a name='L115'></a><a href='#L115'>115</a>
164
+ <a name='L116'></a><a href='#L116'>116</a>
165
+ <a name='L117'></a><a href='#L117'>117</a>
166
+ <a name='L118'></a><a href='#L118'>118</a>
167
+ <a name='L119'></a><a href='#L119'>119</a>
168
+ <a name='L120'></a><a href='#L120'>120</a>
169
+ <a name='L121'></a><a href='#L121'>121</a>
170
+ <a name='L122'></a><a href='#L122'>122</a>
171
+ <a name='L123'></a><a href='#L123'>123</a>
172
+ <a name='L124'></a><a href='#L124'>124</a>
173
+ <a name='L125'></a><a href='#L125'>125</a>
174
+ <a name='L126'></a><a href='#L126'>126</a>
175
+ <a name='L127'></a><a href='#L127'>127</a>
176
+ <a name='L128'></a><a href='#L128'>128</a>
177
+ <a name='L129'></a><a href='#L129'>129</a>
178
+ <a name='L130'></a><a href='#L130'>130</a>
179
+ <a name='L131'></a><a href='#L131'>131</a>
180
+ <a name='L132'></a><a href='#L132'>132</a>
181
+ <a name='L133'></a><a href='#L133'>133</a>
182
+ <a name='L134'></a><a href='#L134'>134</a>
183
+ <a name='L135'></a><a href='#L135'>135</a>
184
+ <a name='L136'></a><a href='#L136'>136</a>
185
+ <a name='L137'></a><a href='#L137'>137</a>
186
+ <a name='L138'></a><a href='#L138'>138</a>
187
+ <a name='L139'></a><a href='#L139'>139</a>
188
+ <a name='L140'></a><a href='#L140'>140</a>
189
+ <a name='L141'></a><a href='#L141'>141</a>
190
+ <a name='L142'></a><a href='#L142'>142</a>
191
+ <a name='L143'></a><a href='#L143'>143</a>
192
+ <a name='L144'></a><a href='#L144'>144</a>
193
+ <a name='L145'></a><a href='#L145'>145</a>
194
+ <a name='L146'></a><a href='#L146'>146</a>
195
+ <a name='L147'></a><a href='#L147'>147</a>
196
+ <a name='L148'></a><a href='#L148'>148</a>
197
+ <a name='L149'></a><a href='#L149'>149</a>
198
+ <a name='L150'></a><a href='#L150'>150</a>
199
+ <a name='L151'></a><a href='#L151'>151</a>
200
+ <a name='L152'></a><a href='#L152'>152</a>
201
+ <a name='L153'></a><a href='#L153'>153</a>
202
+ <a name='L154'></a><a href='#L154'>154</a>
203
+ <a name='L155'></a><a href='#L155'>155</a>
204
+ <a name='L156'></a><a href='#L156'>156</a>
205
+ <a name='L157'></a><a href='#L157'>157</a>
206
+ <a name='L158'></a><a href='#L158'>158</a>
207
+ <a name='L159'></a><a href='#L159'>159</a>
208
+ <a name='L160'></a><a href='#L160'>160</a>
209
+ <a name='L161'></a><a href='#L161'>161</a>
210
+ <a name='L162'></a><a href='#L162'>162</a>
211
+ <a name='L163'></a><a href='#L163'>163</a>
212
+ <a name='L164'></a><a href='#L164'>164</a>
213
+ <a name='L165'></a><a href='#L165'>165</a>
214
+ <a name='L166'></a><a href='#L166'>166</a>
215
+ <a name='L167'></a><a href='#L167'>167</a>
216
+ <a name='L168'></a><a href='#L168'>168</a>
217
+ <a name='L169'></a><a href='#L169'>169</a>
218
+ <a name='L170'></a><a href='#L170'>170</a>
219
+ <a name='L171'></a><a href='#L171'>171</a>
220
+ <a name='L172'></a><a href='#L172'>172</a>
221
+ <a name='L173'></a><a href='#L173'>173</a>
222
+ <a name='L174'></a><a href='#L174'>174</a>
223
+ <a name='L175'></a><a href='#L175'>175</a>
224
+ <a name='L176'></a><a href='#L176'>176</a>
225
+ <a name='L177'></a><a href='#L177'>177</a>
226
+ <a name='L178'></a><a href='#L178'>178</a>
227
+ <a name='L179'></a><a href='#L179'>179</a>
228
+ <a name='L180'></a><a href='#L180'>180</a>
229
+ <a name='L181'></a><a href='#L181'>181</a>
230
+ <a name='L182'></a><a href='#L182'>182</a>
231
+ <a name='L183'></a><a href='#L183'>183</a>
232
+ <a name='L184'></a><a href='#L184'>184</a>
233
+ <a name='L185'></a><a href='#L185'>185</a>
234
+ <a name='L186'></a><a href='#L186'>186</a>
235
+ <a name='L187'></a><a href='#L187'>187</a>
236
+ <a name='L188'></a><a href='#L188'>188</a>
237
+ <a name='L189'></a><a href='#L189'>189</a>
238
+ <a name='L190'></a><a href='#L190'>190</a>
239
+ <a name='L191'></a><a href='#L191'>191</a>
240
+ <a name='L192'></a><a href='#L192'>192</a>
241
+ <a name='L193'></a><a href='#L193'>193</a>
242
+ <a name='L194'></a><a href='#L194'>194</a>
243
+ <a name='L195'></a><a href='#L195'>195</a>
244
+ <a name='L196'></a><a href='#L196'>196</a>
245
+ <a name='L197'></a><a href='#L197'>197</a>
246
+ <a name='L198'></a><a href='#L198'>198</a>
247
+ <a name='L199'></a><a href='#L199'>199</a>
248
+ <a name='L200'></a><a href='#L200'>200</a>
249
+ <a name='L201'></a><a href='#L201'>201</a>
250
+ <a name='L202'></a><a href='#L202'>202</a>
251
+ <a name='L203'></a><a href='#L203'>203</a>
252
+ <a name='L204'></a><a href='#L204'>204</a>
253
+ <a name='L205'></a><a href='#L205'>205</a>
254
+ <a name='L206'></a><a href='#L206'>206</a>
255
+ <a name='L207'></a><a href='#L207'>207</a>
256
+ <a name='L208'></a><a href='#L208'>208</a>
257
+ <a name='L209'></a><a href='#L209'>209</a>
258
+ <a name='L210'></a><a href='#L210'>210</a>
259
+ <a name='L211'></a><a href='#L211'>211</a>
260
+ <a name='L212'></a><a href='#L212'>212</a>
261
+ <a name='L213'></a><a href='#L213'>213</a>
262
+ <a name='L214'></a><a href='#L214'>214</a>
263
+ <a name='L215'></a><a href='#L215'>215</a>
264
+ <a name='L216'></a><a href='#L216'>216</a>
265
+ <a name='L217'></a><a href='#L217'>217</a>
266
+ <a name='L218'></a><a href='#L218'>218</a>
267
+ <a name='L219'></a><a href='#L219'>219</a>
268
+ <a name='L220'></a><a href='#L220'>220</a>
269
+ <a name='L221'></a><a href='#L221'>221</a>
270
+ <a name='L222'></a><a href='#L222'>222</a>
271
+ <a name='L223'></a><a href='#L223'>223</a>
272
+ <a name='L224'></a><a href='#L224'>224</a>
273
+ <a name='L225'></a><a href='#L225'>225</a>
274
+ <a name='L226'></a><a href='#L226'>226</a>
275
+ <a name='L227'></a><a href='#L227'>227</a>
276
+ <a name='L228'></a><a href='#L228'>228</a>
277
+ <a name='L229'></a><a href='#L229'>229</a>
278
+ <a name='L230'></a><a href='#L230'>230</a>
279
+ <a name='L231'></a><a href='#L231'>231</a>
280
+ <a name='L232'></a><a href='#L232'>232</a>
281
+ <a name='L233'></a><a href='#L233'>233</a>
282
+ <a name='L234'></a><a href='#L234'>234</a>
283
+ <a name='L235'></a><a href='#L235'>235</a>
284
+ <a name='L236'></a><a href='#L236'>236</a>
285
+ <a name='L237'></a><a href='#L237'>237</a>
286
+ <a name='L238'></a><a href='#L238'>238</a>
287
+ <a name='L239'></a><a href='#L239'>239</a>
288
+ <a name='L240'></a><a href='#L240'>240</a>
289
+ <a name='L241'></a><a href='#L241'>241</a>
290
+ <a name='L242'></a><a href='#L242'>242</a>
291
+ <a name='L243'></a><a href='#L243'>243</a>
292
+ <a name='L244'></a><a href='#L244'>244</a>
293
+ <a name='L245'></a><a href='#L245'>245</a>
294
+ <a name='L246'></a><a href='#L246'>246</a>
295
+ <a name='L247'></a><a href='#L247'>247</a>
296
+ <a name='L248'></a><a href='#L248'>248</a>
297
+ <a name='L249'></a><a href='#L249'>249</a>
298
+ <a name='L250'></a><a href='#L250'>250</a>
299
+ <a name='L251'></a><a href='#L251'>251</a>
300
+ <a name='L252'></a><a href='#L252'>252</a>
301
+ <a name='L253'></a><a href='#L253'>253</a>
302
+ <a name='L254'></a><a href='#L254'>254</a>
303
+ <a name='L255'></a><a href='#L255'>255</a>
304
+ <a name='L256'></a><a href='#L256'>256</a>
305
+ <a name='L257'></a><a href='#L257'>257</a>
306
+ <a name='L258'></a><a href='#L258'>258</a>
307
+ <a name='L259'></a><a href='#L259'>259</a>
308
+ <a name='L260'></a><a href='#L260'>260</a>
309
+ <a name='L261'></a><a href='#L261'>261</a>
310
+ <a name='L262'></a><a href='#L262'>262</a>
311
+ <a name='L263'></a><a href='#L263'>263</a>
312
+ <a name='L264'></a><a href='#L264'>264</a>
313
+ <a name='L265'></a><a href='#L265'>265</a>
314
+ <a name='L266'></a><a href='#L266'>266</a>
315
+ <a name='L267'></a><a href='#L267'>267</a>
316
+ <a name='L268'></a><a href='#L268'>268</a>
317
+ <a name='L269'></a><a href='#L269'>269</a>
318
+ <a name='L270'></a><a href='#L270'>270</a>
319
+ <a name='L271'></a><a href='#L271'>271</a>
320
+ <a name='L272'></a><a href='#L272'>272</a>
321
+ <a name='L273'></a><a href='#L273'>273</a>
322
+ <a name='L274'></a><a href='#L274'>274</a>
323
+ <a name='L275'></a><a href='#L275'>275</a>
324
+ <a name='L276'></a><a href='#L276'>276</a>
325
+ <a name='L277'></a><a href='#L277'>277</a>
326
+ <a name='L278'></a><a href='#L278'>278</a>
327
+ <a name='L279'></a><a href='#L279'>279</a>
328
+ <a name='L280'></a><a href='#L280'>280</a>
329
+ <a name='L281'></a><a href='#L281'>281</a>
330
+ <a name='L282'></a><a href='#L282'>282</a>
331
+ <a name='L283'></a><a href='#L283'>283</a>
332
+ <a name='L284'></a><a href='#L284'>284</a>
333
+ <a name='L285'></a><a href='#L285'>285</a>
334
+ <a name='L286'></a><a href='#L286'>286</a>
335
+ <a name='L287'></a><a href='#L287'>287</a>
336
+ <a name='L288'></a><a href='#L288'>288</a>
337
+ <a name='L289'></a><a href='#L289'>289</a>
338
+ <a name='L290'></a><a href='#L290'>290</a>
339
+ <a name='L291'></a><a href='#L291'>291</a>
340
+ <a name='L292'></a><a href='#L292'>292</a>
341
+ <a name='L293'></a><a href='#L293'>293</a>
342
+ <a name='L294'></a><a href='#L294'>294</a>
343
+ <a name='L295'></a><a href='#L295'>295</a>
344
+ <a name='L296'></a><a href='#L296'>296</a>
345
+ <a name='L297'></a><a href='#L297'>297</a>
346
+ <a name='L298'></a><a href='#L298'>298</a>
347
+ <a name='L299'></a><a href='#L299'>299</a>
348
+ <a name='L300'></a><a href='#L300'>300</a>
349
+ <a name='L301'></a><a href='#L301'>301</a>
350
+ <a name='L302'></a><a href='#L302'>302</a>
351
+ <a name='L303'></a><a href='#L303'>303</a>
352
+ <a name='L304'></a><a href='#L304'>304</a>
353
+ <a name='L305'></a><a href='#L305'>305</a>
354
+ <a name='L306'></a><a href='#L306'>306</a>
355
+ <a name='L307'></a><a href='#L307'>307</a>
356
+ <a name='L308'></a><a href='#L308'>308</a>
357
+ <a name='L309'></a><a href='#L309'>309</a>
358
+ <a name='L310'></a><a href='#L310'>310</a>
359
+ <a name='L311'></a><a href='#L311'>311</a>
360
+ <a name='L312'></a><a href='#L312'>312</a>
361
+ <a name='L313'></a><a href='#L313'>313</a>
362
+ <a name='L314'></a><a href='#L314'>314</a>
363
+ <a name='L315'></a><a href='#L315'>315</a>
364
+ <a name='L316'></a><a href='#L316'>316</a>
365
+ <a name='L317'></a><a href='#L317'>317</a>
366
+ <a name='L318'></a><a href='#L318'>318</a>
367
+ <a name='L319'></a><a href='#L319'>319</a>
368
+ <a name='L320'></a><a href='#L320'>320</a>
369
+ <a name='L321'></a><a href='#L321'>321</a>
370
+ <a name='L322'></a><a href='#L322'>322</a>
371
+ <a name='L323'></a><a href='#L323'>323</a>
372
+ <a name='L324'></a><a href='#L324'>324</a>
373
+ <a name='L325'></a><a href='#L325'>325</a>
374
+ <a name='L326'></a><a href='#L326'>326</a>
375
+ <a name='L327'></a><a href='#L327'>327</a>
376
+ <a name='L328'></a><a href='#L328'>328</a>
377
+ <a name='L329'></a><a href='#L329'>329</a>
378
+ <a name='L330'></a><a href='#L330'>330</a>
379
+ <a name='L331'></a><a href='#L331'>331</a>
380
+ <a name='L332'></a><a href='#L332'>332</a>
381
+ <a name='L333'></a><a href='#L333'>333</a>
382
+ <a name='L334'></a><a href='#L334'>334</a>
383
+ <a name='L335'></a><a href='#L335'>335</a>
384
+ <a name='L336'></a><a href='#L336'>336</a>
385
+ <a name='L337'></a><a href='#L337'>337</a>
386
+ <a name='L338'></a><a href='#L338'>338</a>
387
+ <a name='L339'></a><a href='#L339'>339</a>
388
+ <a name='L340'></a><a href='#L340'>340</a>
389
+ <a name='L341'></a><a href='#L341'>341</a>
390
+ <a name='L342'></a><a href='#L342'>342</a>
391
+ <a name='L343'></a><a href='#L343'>343</a>
392
+ <a name='L344'></a><a href='#L344'>344</a>
393
+ <a name='L345'></a><a href='#L345'>345</a>
394
+ <a name='L346'></a><a href='#L346'>346</a>
395
+ <a name='L347'></a><a href='#L347'>347</a>
396
+ <a name='L348'></a><a href='#L348'>348</a>
397
+ <a name='L349'></a><a href='#L349'>349</a>
398
+ <a name='L350'></a><a href='#L350'>350</a>
399
+ <a name='L351'></a><a href='#L351'>351</a>
400
+ <a name='L352'></a><a href='#L352'>352</a>
401
+ <a name='L353'></a><a href='#L353'>353</a>
402
+ <a name='L354'></a><a href='#L354'>354</a>
403
+ <a name='L355'></a><a href='#L355'>355</a>
404
+ <a name='L356'></a><a href='#L356'>356</a>
405
+ <a name='L357'></a><a href='#L357'>357</a>
406
+ <a name='L358'></a><a href='#L358'>358</a>
407
+ <a name='L359'></a><a href='#L359'>359</a>
408
+ <a name='L360'></a><a href='#L360'>360</a>
409
+ <a name='L361'></a><a href='#L361'>361</a>
410
+ <a name='L362'></a><a href='#L362'>362</a>
411
+ <a name='L363'></a><a href='#L363'>363</a>
412
+ <a name='L364'></a><a href='#L364'>364</a>
413
+ <a name='L365'></a><a href='#L365'>365</a>
414
+ <a name='L366'></a><a href='#L366'>366</a>
415
+ <a name='L367'></a><a href='#L367'>367</a>
416
+ <a name='L368'></a><a href='#L368'>368</a>
417
+ <a name='L369'></a><a href='#L369'>369</a>
418
+ <a name='L370'></a><a href='#L370'>370</a>
419
+ <a name='L371'></a><a href='#L371'>371</a>
420
+ <a name='L372'></a><a href='#L372'>372</a>
421
+ <a name='L373'></a><a href='#L373'>373</a>
422
+ <a name='L374'></a><a href='#L374'>374</a>
423
+ <a name='L375'></a><a href='#L375'>375</a>
424
+ <a name='L376'></a><a href='#L376'>376</a>
425
+ <a name='L377'></a><a href='#L377'>377</a>
426
+ <a name='L378'></a><a href='#L378'>378</a>
427
+ <a name='L379'></a><a href='#L379'>379</a>
428
+ <a name='L380'></a><a href='#L380'>380</a>
429
+ <a name='L381'></a><a href='#L381'>381</a>
430
+ <a name='L382'></a><a href='#L382'>382</a>
431
+ <a name='L383'></a><a href='#L383'>383</a>
432
+ <a name='L384'></a><a href='#L384'>384</a>
433
+ <a name='L385'></a><a href='#L385'>385</a>
434
+ <a name='L386'></a><a href='#L386'>386</a>
435
+ <a name='L387'></a><a href='#L387'>387</a>
436
+ <a name='L388'></a><a href='#L388'>388</a>
437
+ <a name='L389'></a><a href='#L389'>389</a>
438
+ <a name='L390'></a><a href='#L390'>390</a>
439
+ <a name='L391'></a><a href='#L391'>391</a>
440
+ <a name='L392'></a><a href='#L392'>392</a>
441
+ <a name='L393'></a><a href='#L393'>393</a>
442
+ <a name='L394'></a><a href='#L394'>394</a>
443
+ <a name='L395'></a><a href='#L395'>395</a>
444
+ <a name='L396'></a><a href='#L396'>396</a>
445
+ <a name='L397'></a><a href='#L397'>397</a>
446
+ <a name='L398'></a><a href='#L398'>398</a>
447
+ <a name='L399'></a><a href='#L399'>399</a>
448
+ <a name='L400'></a><a href='#L400'>400</a>
449
+ <a name='L401'></a><a href='#L401'>401</a>
450
+ <a name='L402'></a><a href='#L402'>402</a>
451
+ <a name='L403'></a><a href='#L403'>403</a>
452
+ <a name='L404'></a><a href='#L404'>404</a>
453
+ <a name='L405'></a><a href='#L405'>405</a>
454
+ <a name='L406'></a><a href='#L406'>406</a>
455
+ <a name='L407'></a><a href='#L407'>407</a>
456
+ <a name='L408'></a><a href='#L408'>408</a>
457
+ <a name='L409'></a><a href='#L409'>409</a>
458
+ <a name='L410'></a><a href='#L410'>410</a>
459
+ <a name='L411'></a><a href='#L411'>411</a>
460
+ <a name='L412'></a><a href='#L412'>412</a>
461
+ <a name='L413'></a><a href='#L413'>413</a>
462
+ <a name='L414'></a><a href='#L414'>414</a>
463
+ <a name='L415'></a><a href='#L415'>415</a>
464
+ <a name='L416'></a><a href='#L416'>416</a>
465
+ <a name='L417'></a><a href='#L417'>417</a>
466
+ <a name='L418'></a><a href='#L418'>418</a>
467
+ <a name='L419'></a><a href='#L419'>419</a>
468
+ <a name='L420'></a><a href='#L420'>420</a>
469
+ <a name='L421'></a><a href='#L421'>421</a>
470
+ <a name='L422'></a><a href='#L422'>422</a>
471
+ <a name='L423'></a><a href='#L423'>423</a>
472
+ <a name='L424'></a><a href='#L424'>424</a>
473
+ <a name='L425'></a><a href='#L425'>425</a>
474
+ <a name='L426'></a><a href='#L426'>426</a>
475
+ <a name='L427'></a><a href='#L427'>427</a>
476
+ <a name='L428'></a><a href='#L428'>428</a>
477
+ <a name='L429'></a><a href='#L429'>429</a>
478
+ <a name='L430'></a><a href='#L430'>430</a>
479
+ <a name='L431'></a><a href='#L431'>431</a>
480
+ <a name='L432'></a><a href='#L432'>432</a>
481
+ <a name='L433'></a><a href='#L433'>433</a>
482
+ <a name='L434'></a><a href='#L434'>434</a>
483
+ <a name='L435'></a><a href='#L435'>435</a>
484
+ <a name='L436'></a><a href='#L436'>436</a>
485
+ <a name='L437'></a><a href='#L437'>437</a>
486
+ <a name='L438'></a><a href='#L438'>438</a>
487
+ <a name='L439'></a><a href='#L439'>439</a>
488
+ <a name='L440'></a><a href='#L440'>440</a>
489
+ <a name='L441'></a><a href='#L441'>441</a>
490
+ <a name='L442'></a><a href='#L442'>442</a>
491
+ <a name='L443'></a><a href='#L443'>443</a>
492
+ <a name='L444'></a><a href='#L444'>444</a>
493
+ <a name='L445'></a><a href='#L445'>445</a>
494
+ <a name='L446'></a><a href='#L446'>446</a>
495
+ <a name='L447'></a><a href='#L447'>447</a>
496
+ <a name='L448'></a><a href='#L448'>448</a>
497
+ <a name='L449'></a><a href='#L449'>449</a>
498
+ <a name='L450'></a><a href='#L450'>450</a>
499
+ <a name='L451'></a><a href='#L451'>451</a>
500
+ <a name='L452'></a><a href='#L452'>452</a>
501
+ <a name='L453'></a><a href='#L453'>453</a>
502
+ <a name='L454'></a><a href='#L454'>454</a>
503
+ <a name='L455'></a><a href='#L455'>455</a>
504
+ <a name='L456'></a><a href='#L456'>456</a>
505
+ <a name='L457'></a><a href='#L457'>457</a>
506
+ <a name='L458'></a><a href='#L458'>458</a>
507
+ <a name='L459'></a><a href='#L459'>459</a>
508
+ <a name='L460'></a><a href='#L460'>460</a>
509
+ <a name='L461'></a><a href='#L461'>461</a>
510
+ <a name='L462'></a><a href='#L462'>462</a>
511
+ <a name='L463'></a><a href='#L463'>463</a>
512
+ <a name='L464'></a><a href='#L464'>464</a>
513
+ <a name='L465'></a><a href='#L465'>465</a>
514
+ <a name='L466'></a><a href='#L466'>466</a>
515
+ <a name='L467'></a><a href='#L467'>467</a>
516
+ <a name='L468'></a><a href='#L468'>468</a>
517
+ <a name='L469'></a><a href='#L469'>469</a>
518
+ <a name='L470'></a><a href='#L470'>470</a>
519
+ <a name='L471'></a><a href='#L471'>471</a>
520
+ <a name='L472'></a><a href='#L472'>472</a>
521
+ <a name='L473'></a><a href='#L473'>473</a>
522
+ <a name='L474'></a><a href='#L474'>474</a>
523
+ <a name='L475'></a><a href='#L475'>475</a>
524
+ <a name='L476'></a><a href='#L476'>476</a>
525
+ <a name='L477'></a><a href='#L477'>477</a>
526
+ <a name='L478'></a><a href='#L478'>478</a>
527
+ <a name='L479'></a><a href='#L479'>479</a>
528
+ <a name='L480'></a><a href='#L480'>480</a>
529
+ <a name='L481'></a><a href='#L481'>481</a>
530
+ <a name='L482'></a><a href='#L482'>482</a>
531
+ <a name='L483'></a><a href='#L483'>483</a>
532
+ <a name='L484'></a><a href='#L484'>484</a>
533
+ <a name='L485'></a><a href='#L485'>485</a>
534
+ <a name='L486'></a><a href='#L486'>486</a>
535
+ <a name='L487'></a><a href='#L487'>487</a>
536
+ <a name='L488'></a><a href='#L488'>488</a>
537
+ <a name='L489'></a><a href='#L489'>489</a>
538
+ <a name='L490'></a><a href='#L490'>490</a>
539
+ <a name='L491'></a><a href='#L491'>491</a>
540
+ <a name='L492'></a><a href='#L492'>492</a>
541
+ <a name='L493'></a><a href='#L493'>493</a>
542
+ <a name='L494'></a><a href='#L494'>494</a>
543
+ <a name='L495'></a><a href='#L495'>495</a>
544
+ <a name='L496'></a><a href='#L496'>496</a>
545
+ <a name='L497'></a><a href='#L497'>497</a>
546
+ <a name='L498'></a><a href='#L498'>498</a>
547
+ <a name='L499'></a><a href='#L499'>499</a>
548
+ <a name='L500'></a><a href='#L500'>500</a>
549
+ <a name='L501'></a><a href='#L501'>501</a>
550
+ <a name='L502'></a><a href='#L502'>502</a>
551
+ <a name='L503'></a><a href='#L503'>503</a>
552
+ <a name='L504'></a><a href='#L504'>504</a>
553
+ <a name='L505'></a><a href='#L505'>505</a>
554
+ <a name='L506'></a><a href='#L506'>506</a>
555
+ <a name='L507'></a><a href='#L507'>507</a>
556
+ <a name='L508'></a><a href='#L508'>508</a>
557
+ <a name='L509'></a><a href='#L509'>509</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
558
+ <span class="cline-any cline-neutral">&nbsp;</span>
559
+ <span class="cline-any cline-neutral">&nbsp;</span>
560
+ <span class="cline-any cline-neutral">&nbsp;</span>
561
+ <span class="cline-any cline-neutral">&nbsp;</span>
562
+ <span class="cline-any cline-neutral">&nbsp;</span>
563
+ <span class="cline-any cline-neutral">&nbsp;</span>
564
+ <span class="cline-any cline-neutral">&nbsp;</span>
565
+ <span class="cline-any cline-neutral">&nbsp;</span>
566
+ <span class="cline-any cline-neutral">&nbsp;</span>
567
+ <span class="cline-any cline-neutral">&nbsp;</span>
568
+ <span class="cline-any cline-neutral">&nbsp;</span>
569
+ <span class="cline-any cline-neutral">&nbsp;</span>
570
+ <span class="cline-any cline-neutral">&nbsp;</span>
571
+ <span class="cline-any cline-neutral">&nbsp;</span>
572
+ <span class="cline-any cline-neutral">&nbsp;</span>
573
+ <span class="cline-any cline-neutral">&nbsp;</span>
574
+ <span class="cline-any cline-neutral">&nbsp;</span>
575
+ <span class="cline-any cline-neutral">&nbsp;</span>
576
+ <span class="cline-any cline-neutral">&nbsp;</span>
577
+ <span class="cline-any cline-neutral">&nbsp;</span>
578
+ <span class="cline-any cline-neutral">&nbsp;</span>
579
+ <span class="cline-any cline-neutral">&nbsp;</span>
580
+ <span class="cline-any cline-neutral">&nbsp;</span>
581
+ <span class="cline-any cline-neutral">&nbsp;</span>
582
+ <span class="cline-any cline-neutral">&nbsp;</span>
583
+ <span class="cline-any cline-neutral">&nbsp;</span>
584
+ <span class="cline-any cline-neutral">&nbsp;</span>
585
+ <span class="cline-any cline-neutral">&nbsp;</span>
586
+ <span class="cline-any cline-neutral">&nbsp;</span>
587
+ <span class="cline-any cline-neutral">&nbsp;</span>
588
+ <span class="cline-any cline-neutral">&nbsp;</span>
589
+ <span class="cline-any cline-neutral">&nbsp;</span>
590
+ <span class="cline-any cline-neutral">&nbsp;</span>
591
+ <span class="cline-any cline-neutral">&nbsp;</span>
592
+ <span class="cline-any cline-neutral">&nbsp;</span>
593
+ <span class="cline-any cline-neutral">&nbsp;</span>
594
+ <span class="cline-any cline-neutral">&nbsp;</span>
595
+ <span class="cline-any cline-neutral">&nbsp;</span>
596
+ <span class="cline-any cline-neutral">&nbsp;</span>
597
+ <span class="cline-any cline-neutral">&nbsp;</span>
598
+ <span class="cline-any cline-neutral">&nbsp;</span>
599
+ <span class="cline-any cline-neutral">&nbsp;</span>
600
+ <span class="cline-any cline-neutral">&nbsp;</span>
601
+ <span class="cline-any cline-neutral">&nbsp;</span>
602
+ <span class="cline-any cline-neutral">&nbsp;</span>
603
+ <span class="cline-any cline-neutral">&nbsp;</span>
604
+ <span class="cline-any cline-neutral">&nbsp;</span>
605
+ <span class="cline-any cline-neutral">&nbsp;</span>
606
+ <span class="cline-any cline-neutral">&nbsp;</span>
607
+ <span class="cline-any cline-neutral">&nbsp;</span>
608
+ <span class="cline-any cline-neutral">&nbsp;</span>
609
+ <span class="cline-any cline-neutral">&nbsp;</span>
610
+ <span class="cline-any cline-neutral">&nbsp;</span>
611
+ <span class="cline-any cline-neutral">&nbsp;</span>
612
+ <span class="cline-any cline-neutral">&nbsp;</span>
613
+ <span class="cline-any cline-neutral">&nbsp;</span>
614
+ <span class="cline-any cline-neutral">&nbsp;</span>
615
+ <span class="cline-any cline-neutral">&nbsp;</span>
616
+ <span class="cline-any cline-neutral">&nbsp;</span>
617
+ <span class="cline-any cline-neutral">&nbsp;</span>
618
+ <span class="cline-any cline-neutral">&nbsp;</span>
619
+ <span class="cline-any cline-neutral">&nbsp;</span>
620
+ <span class="cline-any cline-neutral">&nbsp;</span>
621
+ <span class="cline-any cline-neutral">&nbsp;</span>
622
+ <span class="cline-any cline-neutral">&nbsp;</span>
623
+ <span class="cline-any cline-neutral">&nbsp;</span>
624
+ <span class="cline-any cline-neutral">&nbsp;</span>
625
+ <span class="cline-any cline-neutral">&nbsp;</span>
626
+ <span class="cline-any cline-neutral">&nbsp;</span>
627
+ <span class="cline-any cline-neutral">&nbsp;</span>
628
+ <span class="cline-any cline-neutral">&nbsp;</span>
629
+ <span class="cline-any cline-neutral">&nbsp;</span>
630
+ <span class="cline-any cline-neutral">&nbsp;</span>
631
+ <span class="cline-any cline-neutral">&nbsp;</span>
632
+ <span class="cline-any cline-neutral">&nbsp;</span>
633
+ <span class="cline-any cline-neutral">&nbsp;</span>
634
+ <span class="cline-any cline-neutral">&nbsp;</span>
635
+ <span class="cline-any cline-neutral">&nbsp;</span>
636
+ <span class="cline-any cline-neutral">&nbsp;</span>
637
+ <span class="cline-any cline-neutral">&nbsp;</span>
638
+ <span class="cline-any cline-neutral">&nbsp;</span>
639
+ <span class="cline-any cline-neutral">&nbsp;</span>
640
+ <span class="cline-any cline-neutral">&nbsp;</span>
641
+ <span class="cline-any cline-neutral">&nbsp;</span>
642
+ <span class="cline-any cline-neutral">&nbsp;</span>
643
+ <span class="cline-any cline-neutral">&nbsp;</span>
644
+ <span class="cline-any cline-neutral">&nbsp;</span>
645
+ <span class="cline-any cline-neutral">&nbsp;</span>
646
+ <span class="cline-any cline-neutral">&nbsp;</span>
647
+ <span class="cline-any cline-neutral">&nbsp;</span>
648
+ <span class="cline-any cline-neutral">&nbsp;</span>
649
+ <span class="cline-any cline-neutral">&nbsp;</span>
650
+ <span class="cline-any cline-neutral">&nbsp;</span>
651
+ <span class="cline-any cline-neutral">&nbsp;</span>
652
+ <span class="cline-any cline-neutral">&nbsp;</span>
653
+ <span class="cline-any cline-neutral">&nbsp;</span>
654
+ <span class="cline-any cline-yes">1x</span>
655
+ <span class="cline-any cline-neutral">&nbsp;</span>
656
+ <span class="cline-any cline-neutral">&nbsp;</span>
657
+ <span class="cline-any cline-yes">14x</span>
658
+ <span class="cline-any cline-neutral">&nbsp;</span>
659
+ <span class="cline-any cline-yes">139x</span>
660
+ <span class="cline-any cline-yes">139x</span>
661
+ <span class="cline-any cline-neutral">&nbsp;</span>
662
+ <span class="cline-any cline-yes">139x</span>
663
+ <span class="cline-any cline-yes">139x</span>
664
+ <span class="cline-any cline-neutral">&nbsp;</span>
665
+ <span class="cline-any cline-neutral">&nbsp;</span>
666
+ <span class="cline-any cline-yes">899x</span>
667
+ <span class="cline-any cline-yes">767x</span>
668
+ <span class="cline-any cline-neutral">&nbsp;</span>
669
+ <span class="cline-any cline-neutral">&nbsp;</span>
670
+ <span class="cline-any cline-neutral">&nbsp;</span>
671
+ <span class="cline-any cline-neutral">&nbsp;</span>
672
+ <span class="cline-any cline-neutral">&nbsp;</span>
673
+ <span class="cline-any cline-yes">132x</span>
674
+ <span class="cline-any cline-neutral">&nbsp;</span>
675
+ <span class="cline-any cline-neutral">&nbsp;</span>
676
+ <span class="cline-any cline-neutral">&nbsp;</span>
677
+ <span class="cline-any cline-neutral">&nbsp;</span>
678
+ <span class="cline-any cline-neutral">&nbsp;</span>
679
+ <span class="cline-any cline-neutral">&nbsp;</span>
680
+ <span class="cline-any cline-yes">139x</span>
681
+ <span class="cline-any cline-yes">899x</span>
682
+ <span class="cline-any cline-neutral">&nbsp;</span>
683
+ <span class="cline-any cline-yes">899x</span>
684
+ <span class="cline-any cline-yes">139x</span>
685
+ <span class="cline-any cline-yes">899x</span>
686
+ <span class="cline-any cline-neutral">&nbsp;</span>
687
+ <span class="cline-any cline-yes">139x</span>
688
+ <span class="cline-any cline-yes">139x</span>
689
+ <span class="cline-any cline-neutral">&nbsp;</span>
690
+ <span class="cline-any cline-yes">139x</span>
691
+ <span class="cline-any cline-yes">899x</span>
692
+ <span class="cline-any cline-neutral">&nbsp;</span>
693
+ <span class="cline-any cline-yes">139x</span>
694
+ <span class="cline-any cline-yes">139x</span>
695
+ <span class="cline-any cline-neutral">&nbsp;</span>
696
+ <span class="cline-any cline-neutral">&nbsp;</span>
697
+ <span class="cline-any cline-yes">139x</span>
698
+ <span class="cline-any cline-yes">2379x</span>
699
+ <span class="cline-any cline-yes">2379x</span>
700
+ <span class="cline-any cline-neutral">&nbsp;</span>
701
+ <span class="cline-any cline-neutral">&nbsp;</span>
702
+ <span class="cline-any cline-neutral">&nbsp;</span>
703
+ <span class="cline-any cline-yes">139x</span>
704
+ <span class="cline-any cline-yes">899x</span>
705
+ <span class="cline-any cline-neutral">&nbsp;</span>
706
+ <span class="cline-any cline-neutral">&nbsp;</span>
707
+ <span class="cline-any cline-yes">132x</span>
708
+ <span class="cline-any cline-neutral">&nbsp;</span>
709
+ <span class="cline-any cline-neutral">&nbsp;</span>
710
+ <span class="cline-any cline-neutral">&nbsp;</span>
711
+ <span class="cline-any cline-neutral">&nbsp;</span>
712
+ <span class="cline-any cline-neutral">&nbsp;</span>
713
+ <span class="cline-any cline-yes">139x</span>
714
+ <span class="cline-any cline-neutral">&nbsp;</span>
715
+ <span class="cline-any cline-neutral">&nbsp;</span>
716
+ <span class="cline-any cline-yes">899x</span>
717
+ <span class="cline-any cline-neutral">&nbsp;</span>
718
+ <span class="cline-any cline-neutral">&nbsp;</span>
719
+ <span class="cline-any cline-neutral">&nbsp;</span>
720
+ <span class="cline-any cline-yes">139x</span>
721
+ <span class="cline-any cline-neutral">&nbsp;</span>
722
+ <span class="cline-any cline-neutral">&nbsp;</span>
723
+ <span class="cline-any cline-neutral">&nbsp;</span>
724
+ <span class="cline-any cline-neutral">&nbsp;</span>
725
+ <span class="cline-any cline-neutral">&nbsp;</span>
726
+ <span class="cline-any cline-neutral">&nbsp;</span>
727
+ <span class="cline-any cline-neutral">&nbsp;</span>
728
+ <span class="cline-any cline-neutral">&nbsp;</span>
729
+ <span class="cline-any cline-neutral">&nbsp;</span>
730
+ <span class="cline-any cline-neutral">&nbsp;</span>
731
+ <span class="cline-any cline-neutral">&nbsp;</span>
732
+ <span class="cline-any cline-neutral">&nbsp;</span>
733
+ <span class="cline-any cline-neutral">&nbsp;</span>
734
+ <span class="cline-any cline-neutral">&nbsp;</span>
735
+ <span class="cline-any cline-neutral">&nbsp;</span>
736
+ <span class="cline-any cline-neutral">&nbsp;</span>
737
+ <span class="cline-any cline-neutral">&nbsp;</span>
738
+ <span class="cline-any cline-yes">14x</span>
739
+ <span class="cline-any cline-neutral">&nbsp;</span>
740
+ <span class="cline-any cline-neutral">&nbsp;</span>
741
+ <span class="cline-any cline-neutral">&nbsp;</span>
742
+ <span class="cline-any cline-neutral">&nbsp;</span>
743
+ <span class="cline-any cline-yes">139x</span>
744
+ <span class="cline-any cline-yes">139x</span>
745
+ <span class="cline-any cline-neutral">&nbsp;</span>
746
+ <span class="cline-any cline-neutral">&nbsp;</span>
747
+ <span class="cline-any cline-neutral">&nbsp;</span>
748
+ <span class="cline-any cline-neutral">&nbsp;</span>
749
+ <span class="cline-any cline-yes">14x</span>
750
+ <span class="cline-any cline-yes">1104x</span>
751
+ <span class="cline-any cline-yes">1104x</span>
752
+ <span class="cline-any cline-no">&nbsp;</span>
753
+ <span class="cline-any cline-neutral">&nbsp;</span>
754
+ <span class="cline-any cline-yes">1104x</span>
755
+ <span class="cline-any cline-neutral">&nbsp;</span>
756
+ <span class="cline-any cline-neutral">&nbsp;</span>
757
+ <span class="cline-any cline-yes">14x</span>
758
+ <span class="cline-any cline-neutral">&nbsp;</span>
759
+ <span class="cline-any cline-neutral">&nbsp;</span>
760
+ <span class="cline-any cline-neutral">&nbsp;</span>
761
+ <span class="cline-any cline-neutral">&nbsp;</span>
762
+ <span class="cline-any cline-yes">139x</span>
763
+ <span class="cline-any cline-yes">139x</span>
764
+ <span class="cline-any cline-neutral">&nbsp;</span>
765
+ <span class="cline-any cline-neutral">&nbsp;</span>
766
+ <span class="cline-any cline-neutral">&nbsp;</span>
767
+ <span class="cline-any cline-neutral">&nbsp;</span>
768
+ <span class="cline-any cline-yes">14x</span>
769
+ <span class="cline-any cline-yes">38207x</span>
770
+ <span class="cline-any cline-yes">38207x</span>
771
+ <span class="cline-any cline-no">&nbsp;</span>
772
+ <span class="cline-any cline-neutral">&nbsp;</span>
773
+ <span class="cline-any cline-yes">38207x</span>
774
+ <span class="cline-any cline-neutral">&nbsp;</span>
775
+ <span class="cline-any cline-neutral">&nbsp;</span>
776
+ <span class="cline-any cline-neutral">&nbsp;</span>
777
+ <span class="cline-any cline-neutral">&nbsp;</span>
778
+ <span class="cline-any cline-neutral">&nbsp;</span>
779
+ <span class="cline-any cline-neutral">&nbsp;</span>
780
+ <span class="cline-any cline-neutral">&nbsp;</span>
781
+ <span class="cline-any cline-neutral">&nbsp;</span>
782
+ <span class="cline-any cline-neutral">&nbsp;</span>
783
+ <span class="cline-any cline-neutral">&nbsp;</span>
784
+ <span class="cline-any cline-neutral">&nbsp;</span>
785
+ <span class="cline-any cline-yes">14x</span>
786
+ <span class="cline-any cline-yes">111x</span>
787
+ <span class="cline-any cline-yes">26x</span>
788
+ <span class="cline-any cline-yes">26x</span>
789
+ <span class="cline-any cline-yes">1104x</span>
790
+ <span class="cline-any cline-neutral">&nbsp;</span>
791
+ <span class="cline-any cline-yes">26x</span>
792
+ <span class="cline-any cline-neutral">&nbsp;</span>
793
+ <span class="cline-any cline-yes">26x</span>
794
+ <span class="cline-any cline-neutral">&nbsp;</span>
795
+ <span class="cline-any cline-neutral">&nbsp;</span>
796
+ <span class="cline-any cline-yes">26x</span>
797
+ <span class="cline-any cline-yes">111x</span>
798
+ <span class="cline-any cline-yes">993x</span>
799
+ <span class="cline-any cline-neutral">&nbsp;</span>
800
+ <span class="cline-any cline-yes">18827x</span>
801
+ <span class="cline-any cline-neutral">&nbsp;</span>
802
+ <span class="cline-any cline-neutral">&nbsp;</span>
803
+ <span class="cline-any cline-neutral">&nbsp;</span>
804
+ <span class="cline-any cline-yes">993x</span>
805
+ <span class="cline-any cline-yes">993x</span>
806
+ <span class="cline-any cline-yes">993x</span>
807
+ <span class="cline-any cline-yes">27484x</span>
808
+ <span class="cline-any cline-neutral">&nbsp;</span>
809
+ <span class="cline-any cline-yes">26688x</span>
810
+ <span class="cline-any cline-neutral">&nbsp;</span>
811
+ <span class="cline-any cline-yes">26688x</span>
812
+ <span class="cline-any cline-yes">27484x</span>
813
+ <span class="cline-any cline-yes">26812x</span>
814
+ <span class="cline-any cline-neutral">&nbsp;</span>
815
+ <span class="cline-any cline-yes">672x</span>
816
+ <span class="cline-any cline-yes">673x</span>
817
+ <span class="cline-any cline-neutral">&nbsp;</span>
818
+ <span class="cline-any cline-neutral">&nbsp;</span>
819
+ <span class="cline-any cline-yes">673x</span>
820
+ <span class="cline-any cline-yes">646x</span>
821
+ <span class="cline-any cline-neutral">&nbsp;</span>
822
+ <span class="cline-any cline-neutral">&nbsp;</span>
823
+ <span class="cline-any cline-yes">26x</span>
824
+ <span class="cline-any cline-neutral">&nbsp;</span>
825
+ <span class="cline-any cline-neutral">&nbsp;</span>
826
+ <span class="cline-any cline-neutral">&nbsp;</span>
827
+ <span class="cline-any cline-neutral">&nbsp;</span>
828
+ <span class="cline-any cline-yes">993x</span>
829
+ <span class="cline-any cline-yes">11737x</span>
830
+ <span class="cline-any cline-yes">9876x</span>
831
+ <span class="cline-any cline-neutral">&nbsp;</span>
832
+ <span class="cline-any cline-yes">1861x</span>
833
+ <span class="cline-any cline-yes">48580x</span>
834
+ <span class="cline-any cline-neutral">&nbsp;</span>
835
+ <span class="cline-any cline-yes">1861x</span>
836
+ <span class="cline-any cline-yes">963x</span>
837
+ <span class="cline-any cline-neutral">&nbsp;</span>
838
+ <span class="cline-any cline-yes">898x</span>
839
+ <span class="cline-any cline-neutral">&nbsp;</span>
840
+ <span class="cline-any cline-yes">993x</span>
841
+ <span class="cline-any cline-neutral">&nbsp;</span>
842
+ <span class="cline-any cline-neutral">&nbsp;</span>
843
+ <span class="cline-any cline-neutral">&nbsp;</span>
844
+ <span class="cline-any cline-yes">993x</span>
845
+ <span class="cline-any cline-yes">5858x</span>
846
+ <span class="cline-any cline-neutral">&nbsp;</span>
847
+ <span class="cline-any cline-neutral">&nbsp;</span>
848
+ <span class="cline-any cline-yes">5858x</span>
849
+ <span class="cline-any cline-yes">5526x</span>
850
+ <span class="cline-any cline-neutral">&nbsp;</span>
851
+ <span class="cline-any cline-yes">332x</span>
852
+ <span class="cline-any cline-neutral">&nbsp;</span>
853
+ <span class="cline-any cline-neutral">&nbsp;</span>
854
+ <span class="cline-any cline-yes">332x</span>
855
+ <span class="cline-any cline-neutral">&nbsp;</span>
856
+ <span class="cline-any cline-yes">993x</span>
857
+ <span class="cline-any cline-yes">538x</span>
858
+ <span class="cline-any cline-yes">75x</span>
859
+ <span class="cline-any cline-yes">75x</span>
860
+ <span class="cline-any cline-neutral">&nbsp;</span>
861
+ <span class="cline-any cline-neutral">&nbsp;</span>
862
+ <span class="cline-any cline-neutral">&nbsp;</span>
863
+ <span class="cline-any cline-neutral">&nbsp;</span>
864
+ <span class="cline-any cline-neutral">&nbsp;</span>
865
+ <span class="cline-any cline-neutral">&nbsp;</span>
866
+ <span class="cline-any cline-yes">463x</span>
867
+ <span class="cline-any cline-neutral">&nbsp;</span>
868
+ <span class="cline-any cline-yes">463x</span>
869
+ <span class="cline-any cline-neutral">&nbsp;</span>
870
+ <span class="cline-any cline-neutral">&nbsp;</span>
871
+ <span class="cline-any cline-neutral">&nbsp;</span>
872
+ <span class="cline-any cline-yes">463x</span>
873
+ <span class="cline-any cline-yes">61x</span>
874
+ <span class="cline-any cline-yes">61x</span>
875
+ <span class="cline-any cline-neutral">&nbsp;</span>
876
+ <span class="cline-any cline-neutral">&nbsp;</span>
877
+ <span class="cline-any cline-neutral">&nbsp;</span>
878
+ <span class="cline-any cline-yes">857x</span>
879
+ <span class="cline-any cline-yes">585x</span>
880
+ <span class="cline-any cline-yes">272x</span>
881
+ <span class="cline-any cline-neutral">&nbsp;</span>
882
+ <span class="cline-any cline-yes">151x</span>
883
+ <span class="cline-any cline-yes">151x</span>
884
+ <span class="cline-any cline-yes">85x</span>
885
+ <span class="cline-any cline-neutral">&nbsp;</span>
886
+ <span class="cline-any cline-yes">66x</span>
887
+ <span class="cline-any cline-yes">66x</span>
888
+ <span class="cline-any cline-neutral">&nbsp;</span>
889
+ <span class="cline-any cline-neutral">&nbsp;</span>
890
+ <span class="cline-any cline-neutral">&nbsp;</span>
891
+ <span class="cline-any cline-neutral">&nbsp;</span>
892
+ <span class="cline-any cline-neutral">&nbsp;</span>
893
+ <span class="cline-any cline-yes">121x</span>
894
+ <span class="cline-any cline-neutral">&nbsp;</span>
895
+ <span class="cline-any cline-yes">121x</span>
896
+ <span class="cline-any cline-neutral">&nbsp;</span>
897
+ <span class="cline-any cline-no">&nbsp;</span>
898
+ <span class="cline-any cline-neutral">&nbsp;</span>
899
+ <span class="cline-any cline-neutral">&nbsp;</span>
900
+ <span class="cline-any cline-neutral">&nbsp;</span>
901
+ <span class="cline-any cline-neutral">&nbsp;</span>
902
+ <span class="cline-any cline-neutral">&nbsp;</span>
903
+ <span class="cline-any cline-yes">736x</span>
904
+ <span class="cline-any cline-neutral">&nbsp;</span>
905
+ <span class="cline-any cline-neutral">&nbsp;</span>
906
+ <span class="cline-any cline-neutral">&nbsp;</span>
907
+ <span class="cline-any cline-yes">26x</span>
908
+ <span class="cline-any cline-neutral">&nbsp;</span>
909
+ <span class="cline-any cline-neutral">&nbsp;</span>
910
+ <span class="cline-any cline-neutral">&nbsp;</span>
911
+ <span class="cline-any cline-neutral">&nbsp;</span>
912
+ <span class="cline-any cline-neutral">&nbsp;</span>
913
+ <span class="cline-any cline-neutral">&nbsp;</span>
914
+ <span class="cline-any cline-neutral">&nbsp;</span>
915
+ <span class="cline-any cline-neutral">&nbsp;</span>
916
+ <span class="cline-any cline-neutral">&nbsp;</span>
917
+ <span class="cline-any cline-neutral">&nbsp;</span>
918
+ <span class="cline-any cline-neutral">&nbsp;</span>
919
+ <span class="cline-any cline-neutral">&nbsp;</span>
920
+ <span class="cline-any cline-neutral">&nbsp;</span>
921
+ <span class="cline-any cline-neutral">&nbsp;</span>
922
+ <span class="cline-any cline-neutral">&nbsp;</span>
923
+ <span class="cline-any cline-neutral">&nbsp;</span>
924
+ <span class="cline-any cline-neutral">&nbsp;</span>
925
+ <span class="cline-any cline-neutral">&nbsp;</span>
926
+ <span class="cline-any cline-neutral">&nbsp;</span>
927
+ <span class="cline-any cline-neutral">&nbsp;</span>
928
+ <span class="cline-any cline-neutral">&nbsp;</span>
929
+ <span class="cline-any cline-yes">14x</span>
930
+ <span class="cline-any cline-neutral">&nbsp;</span>
931
+ <span class="cline-any cline-neutral">&nbsp;</span>
932
+ <span class="cline-any cline-yes">13x</span>
933
+ <span class="cline-any cline-yes">13x</span>
934
+ <span class="cline-any cline-yes">13x</span>
935
+ <span class="cline-any cline-yes">111x</span>
936
+ <span class="cline-any cline-neutral">&nbsp;</span>
937
+ <span class="cline-any cline-neutral">&nbsp;</span>
938
+ <span class="cline-any cline-yes">111x</span>
939
+ <span class="cline-any cline-neutral">&nbsp;</span>
940
+ <span class="cline-any cline-neutral">&nbsp;</span>
941
+ <span class="cline-any cline-yes">111x</span>
942
+ <span class="cline-any cline-yes">85x</span>
943
+ <span class="cline-any cline-neutral">&nbsp;</span>
944
+ <span class="cline-any cline-yes">26x</span>
945
+ <span class="cline-any cline-neutral">&nbsp;</span>
946
+ <span class="cline-any cline-yes">111x</span>
947
+ <span class="cline-any cline-neutral">&nbsp;</span>
948
+ <span class="cline-any cline-yes">13x</span>
949
+ <span class="cline-any cline-neutral">&nbsp;</span>
950
+ <span class="cline-any cline-neutral">&nbsp;</span>
951
+ <span class="cline-any cline-yes">14x</span>
952
+ <span class="cline-any cline-yes">111x</span>
953
+ <span class="cline-any cline-yes">1104x</span>
954
+ <span class="cline-any cline-yes">1104x</span>
955
+ <span class="cline-any cline-neutral">&nbsp;</span>
956
+ <span class="cline-any cline-neutral">&nbsp;</span>
957
+ <span class="cline-any cline-yes">3703x</span>
958
+ <span class="cline-any cline-yes">3703x</span>
959
+ <span class="cline-any cline-no">&nbsp;</span>
960
+ <span class="cline-any cline-no">&nbsp;</span>
961
+ <span class="cline-any cline-neutral">&nbsp;</span>
962
+ <span class="cline-any cline-no">&nbsp;</span>
963
+ <span class="cline-any cline-neutral">&nbsp;</span>
964
+ <span class="cline-any cline-neutral">&nbsp;</span>
965
+ <span class="cline-any cline-neutral">&nbsp;</span>
966
+ <span class="cline-any cline-neutral">&nbsp;</span>
967
+ <span class="cline-any cline-yes">3703x</span>
968
+ <span class="cline-any cline-yes">3703x</span>
969
+ <span class="cline-any cline-neutral">&nbsp;</span>
970
+ <span class="cline-any cline-neutral">&nbsp;</span>
971
+ <span class="cline-any cline-neutral">&nbsp;</span>
972
+ <span class="cline-any cline-yes">1104x</span>
973
+ <span class="cline-any cline-neutral">&nbsp;</span>
974
+ <span class="cline-any cline-neutral">&nbsp;</span>
975
+ <span class="cline-any cline-neutral">&nbsp;</span>
976
+ <span class="cline-any cline-neutral">&nbsp;</span>
977
+ <span class="cline-any cline-neutral">&nbsp;</span>
978
+ <span class="cline-any cline-neutral">&nbsp;</span>
979
+ <span class="cline-any cline-neutral">&nbsp;</span>
980
+ <span class="cline-any cline-yes">14x</span>
981
+ <span class="cline-any cline-yes">111x</span>
982
+ <span class="cline-any cline-yes">3703x</span>
983
+ <span class="cline-any cline-yes">3703x</span>
984
+ <span class="cline-any cline-yes">3703x</span>
985
+ <span class="cline-any cline-no">&nbsp;</span>
986
+ <span class="cline-any cline-neutral">&nbsp;</span>
987
+ <span class="cline-any cline-yes">3703x</span>
988
+ <span class="cline-any cline-yes">3703x</span>
989
+ <span class="cline-any cline-yes">3703x</span>
990
+ <span class="cline-any cline-neutral">&nbsp;</span>
991
+ <span class="cline-any cline-neutral">&nbsp;</span>
992
+ <span class="cline-any cline-neutral">&nbsp;</span>
993
+ <span class="cline-any cline-yes">14x</span>
994
+ <span class="cline-any cline-yes">13x</span>
995
+ <span class="cline-any cline-yes">13x</span>
996
+ <span class="cline-any cline-yes">13x</span>
997
+ <span class="cline-any cline-yes">13x</span>
998
+ <span class="cline-any cline-yes">13x</span>
999
+ <span class="cline-any cline-yes">26x</span>
1000
+ <span class="cline-any cline-yes">13x</span>
1001
+ <span class="cline-any cline-yes">13x</span>
1002
+ <span class="cline-any cline-neutral">&nbsp;</span>
1003
+ <span class="cline-any cline-neutral">&nbsp;</span>
1004
+ <span class="cline-any cline-yes">14x</span>
1005
+ <span class="cline-any cline-neutral">&nbsp;</span>
1006
+ <span class="cline-any cline-neutral">&nbsp;</span>
1007
+ <span class="cline-any cline-neutral">&nbsp;</span>
1008
+ <span class="cline-any cline-no">&nbsp;</span>
1009
+ <span class="cline-any cline-neutral">&nbsp;</span>
1010
+ <span class="cline-any cline-no">&nbsp;</span>
1011
+ <span class="cline-any cline-neutral">&nbsp;</span>
1012
+ <span class="cline-any cline-neutral">&nbsp;</span>
1013
+ <span class="cline-any cline-no">&nbsp;</span>
1014
+ <span class="cline-any cline-neutral">&nbsp;</span>
1015
+ <span class="cline-any cline-no">&nbsp;</span>
1016
+ <span class="cline-any cline-neutral">&nbsp;</span>
1017
+ <span class="cline-any cline-neutral">&nbsp;</span>
1018
+ <span class="cline-any cline-yes">14x</span>
1019
+ <span class="cline-any cline-yes">4x</span>
1020
+ <span class="cline-any cline-no">&nbsp;</span>
1021
+ <span class="cline-any cline-neutral">&nbsp;</span>
1022
+ <span class="cline-any cline-yes">4x</span>
1023
+ <span class="cline-any cline-yes">4x</span>
1024
+ <span class="cline-any cline-no">&nbsp;</span>
1025
+ <span class="cline-any cline-yes">4x</span>
1026
+ <span class="cline-any cline-no">&nbsp;</span>
1027
+ <span class="cline-any cline-neutral">&nbsp;</span>
1028
+ <span class="cline-any cline-yes">4x</span>
1029
+ <span class="cline-any cline-neutral">&nbsp;</span>
1030
+ <span class="cline-any cline-neutral">&nbsp;</span>
1031
+ <span class="cline-any cline-yes">14x</span>
1032
+ <span class="cline-any cline-neutral">&nbsp;</span>
1033
+ <span class="cline-any cline-neutral">&nbsp;</span>
1034
+ <span class="cline-any cline-no">&nbsp;</span>
1035
+ <span class="cline-any cline-no">&nbsp;</span>
1036
+ <span class="cline-any cline-neutral">&nbsp;</span>
1037
+ <span class="cline-any cline-no">&nbsp;</span>
1038
+ <span class="cline-any cline-neutral">&nbsp;</span>
1039
+ <span class="cline-any cline-neutral">&nbsp;</span>
1040
+ <span class="cline-any cline-yes">14x</span>
1041
+ <span class="cline-any cline-neutral">&nbsp;</span>
1042
+ <span class="cline-any cline-neutral">&nbsp;</span>
1043
+ <span class="cline-any cline-no">&nbsp;</span>
1044
+ <span class="cline-any cline-no">&nbsp;</span>
1045
+ <span class="cline-any cline-neutral">&nbsp;</span>
1046
+ <span class="cline-any cline-no">&nbsp;</span>
1047
+ <span class="cline-any cline-neutral">&nbsp;</span>
1048
+ <span class="cline-any cline-neutral">&nbsp;</span>
1049
+ <span class="cline-any cline-yes">14x</span>
1050
+ <span class="cline-any cline-neutral">&nbsp;</span>
1051
+ <span class="cline-any cline-neutral">&nbsp;</span>
1052
+ <span class="cline-any cline-neutral">&nbsp;</span>
1053
+ <span class="cline-any cline-neutral">&nbsp;</span>
1054
+ <span class="cline-any cline-neutral">&nbsp;</span>
1055
+ <span class="cline-any cline-neutral">&nbsp;</span>
1056
+ <span class="cline-any cline-neutral">&nbsp;</span>
1057
+ <span class="cline-any cline-neutral">&nbsp;</span>
1058
+ <span class="cline-any cline-yes">139x</span>
1059
+ <span class="cline-any cline-neutral">&nbsp;</span>
1060
+ <span class="cline-any cline-neutral">&nbsp;</span>
1061
+ <span class="cline-any cline-yes">139x</span>
1062
+ <span class="cline-any cline-neutral">&nbsp;</span>
1063
+ <span class="cline-any cline-neutral">&nbsp;</span>
1064
+ <span class="cline-any cline-neutral">&nbsp;</span>
1065
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import camelCase from 'camelcase';
1066
+ &nbsp;
1067
+ export interface IColumnData {
1068
+ column: string;
1069
+ property?: string;
1070
+ references?: IModelClass;
1071
+ primaryKey?: boolean;
1072
+ }
1073
+ export type IColumn = IColumnData | string;
1074
+ export type IColumns = Array&lt;IColumn&gt; | (() =&gt; Array&lt;IColumn&gt;);
1075
+ &nbsp;
1076
+ export interface IColumnInternalData {
1077
+ column: string;
1078
+ property: string;
1079
+ references?: IModelClass;
1080
+ primaryKey: boolean;
1081
+ }
1082
+ export type IColumnInternal = IColumnInternalData;
1083
+ export type IColumnsInternal = Array&lt;IColumnInternal&gt;;
1084
+ &nbsp;
1085
+ export interface IModel {
1086
+ [key: string]: any;
1087
+ }
1088
+ // IModel used as a type refers to an instance of IModel;
1089
+ // IModelClass used as a type refers to the class itself
1090
+ export type IModelClass = new (props: any) =&gt; IModel;
1091
+ export interface ICollection&lt;T extends IModel&gt; {
1092
+ models: Array&lt;T&gt;;
1093
+ }
1094
+ export interface IEntity&lt;T extends IModel&gt; {
1095
+ tableName: string;
1096
+ displayName?: string;
1097
+ collectionDisplayName?: string;
1098
+ columns: IColumns;
1099
+ Model: new (props: any) =&gt; T;
1100
+ Collection: new ({ models }: any) =&gt; ICollection&lt;T&gt;;
1101
+ }
1102
+ export type IEntities&lt;T extends IModel&gt; = Array&lt;IEntity&lt;T&gt;&gt;;
1103
+ &nbsp;
1104
+ export interface IEntityInternal&lt;T extends IModel&gt; {
1105
+ tableName: string;
1106
+ displayName: string;
1107
+ collectionDisplayName: string;
1108
+ columns: IColumnsInternal;
1109
+ propertyNames: Array&lt;string&gt;;
1110
+ Model: new (props: any) =&gt; T;
1111
+ Collection: new ({ models }: any) =&gt; ICollection&lt;T&gt;;
1112
+ columnNames: Array&lt;string&gt;;
1113
+ prefixedColumnNames: Array&lt;string&gt;;
1114
+ primaryKeys: Array&lt;string&gt;;
1115
+ references: object;
1116
+ selectColumnsClause: string;
1117
+ getPkId: (model: IModel) =&gt; string;
1118
+ }
1119
+ export type IEntitiesInternal&lt;T extends IModel&gt; = Array&lt;IEntityInternal&lt;T&gt;&gt;;
1120
+ &nbsp;
1121
+ export interface ICreateCoreOptions {
1122
+ entities: IEntities&lt;IModel&gt;;
1123
+ }
1124
+ &nbsp;
1125
+ export interface ICore {
1126
+ /* ------------------------------------------------------------------------*/
1127
+ /* Object Relational Mapping methods --------------------------------------*/
1128
+ /* ------------------------------------------------------------------------*/
1129
+ &nbsp;
1130
+ /* Note these construction methods ensure their count against the number of
1131
+ * generated top level business objects - independent of the number of
1132
+ * relational rows passed in as a result from a database driver query.
1133
+ * Thus, for example, `one` understands that there may be multiple result
1134
+ * rows (which a database driver's `one` query method would throw at) but
1135
+ * which correctly nest into one Model.)
1136
+ */
1137
+ &nbsp;
1138
+ createFromDatabase: &lt;T extends ICollection&lt;IModel&gt;&gt;(rows: any) =&gt; T;
1139
+ createAnyFromDatabase: &lt;T extends ICollection&lt;IModel&gt;&gt;(
1140
+ rows: any,
1141
+ rootKey: string | IModel
1142
+ ) =&gt; T;
1143
+ createOneFromDatabase: &lt;T extends IModel&gt;(rows: any) =&gt; T;
1144
+ createOneOrNoneFromDatabase: &lt;T extends IModel&gt;(rows: any) =&gt; T | void;
1145
+ createManyFromDatabase: &lt;T extends ICollection&lt;IModel&gt;&gt;(rows: any) =&gt; T;
1146
+ &nbsp;
1147
+ /* ------------------------------------------------------------------------*/
1148
+ /* Helpful Properties -----------------------------------------------------*/
1149
+ /* ------------------------------------------------------------------------*/
1150
+ &nbsp;
1151
+ /* The tables property gives access to the sql select clause string for
1152
+ * each entity based on it's `displayName`. This property can be used when
1153
+ * writing raw SQL as the select clause, which handles quoting column names
1154
+ * and namespacing them to the table to avoid collisions and as required
1155
+ * for PureORM mapping.
1156
+ */
1157
+ tables: { [key: string]: { columns: string } };
1158
+ getEntityByModel: (model: IModel) =&gt; IEntityInternal&lt;IModel&gt;;
1159
+ getEntityByTableName: (tableName: string) =&gt; IEntityInternal&lt;IModel&gt;;
1160
+ }
1161
+ &nbsp;
1162
+ export const createCore = ({
1163
+ entities: externalEntities
1164
+ }: ICreateCoreOptions): ICore =&gt; {
1165
+ const entities: IEntitiesInternal&lt;IModel&gt; = externalEntities.map(
1166
+ (d: IEntity&lt;IModel&gt;) =&gt; {
1167
+ const tableName = d.tableName;
1168
+ const displayName = d.displayName || camelCase(d.tableName);
1169
+ const collectionDisplayName =
1170
+ d.collectionDisplayName || `${displayName}s`;
1171
+ const columns = (
1172
+ typeof d.columns === 'function' ? <span class="branch-0 cbranch-no" title="branch not covered" >d.columns() </span>: d.columns
1173
+ ).map((d: IColumn) =&gt; {
1174
+ if (typeof d === 'string') {
1175
+ return {
1176
+ column: d,
1177
+ property: camelCase(d),
1178
+ primaryKey: false
1179
+ };
1180
+ }
1181
+ return {
1182
+ column: d.column,
1183
+ property: d.property || camelCase(d.column),
1184
+ primaryKey: d.primaryKey || false,
1185
+ ...(d.references ? { references: d.references } : <span class="branch-1 cbranch-no" title="branch not covered" >{})</span>
1186
+ };
1187
+ });
1188
+ const propertyNames = columns.map(
1189
+ (x: IColumnInternal): string =&gt; x.property
1190
+ );
1191
+ const columnNames = columns.map((x: IColumnInternal): string =&gt; x.column);
1192
+ const prefixedColumnNames = columnNames.map(
1193
+ (col: string) =&gt; `${tableName}#${col}`
1194
+ );
1195
+ const Model = d.Model;
1196
+ const Collection = d.Collection;
1197
+ &nbsp;
1198
+ const pkColumnsData = columns.filter(
1199
+ (x: IColumnInternal) =&gt; x.primaryKey
1200
+ );
1201
+ const _primaryKeys = pkColumnsData.map(<span class="fstat-no" title="function not covered" >(x</span>: IColumnInternal) =&gt; <span class="cstat-no" title="statement not covered" >x.column)</span>;
1202
+ const primaryKeys = _primaryKeys.length &gt; 0 ? <span class="branch-0 cbranch-no" title="branch not covered" >_primaryKeys </span>: ['id'];
1203
+ &nbsp;
1204
+ // Returns unique identifier of model (the values of the primary keys)
1205
+ const getPkId = (model: IModel): string =&gt; {
1206
+ return primaryKeys
1207
+ .map((key: string) =&gt; model[key as keyof typeof model])
1208
+ .join('');
1209
+ };
1210
+ &nbsp;
1211
+ const references = columns
1212
+ .filter((x: IColumnInternal) =&gt; x.references)
1213
+ .reduce(
1214
+ (accum: any, item: IColumnInternal) =&gt;
1215
+ Object.assign({}, accum, {
1216
+ [item.property]: item.references
1217
+ }),
1218
+ {}
1219
+ );
1220
+ &nbsp;
1221
+ const selectColumnsClause = prefixedColumnNames
1222
+ .map(
1223
+ (prefixed: string, index: number) =&gt;
1224
+ `"${tableName}".${columnNames[index]} as "${prefixed}"`
1225
+ )
1226
+ .join(', ');
1227
+ &nbsp;
1228
+ return {
1229
+ tableName,
1230
+ displayName,
1231
+ collectionDisplayName,
1232
+ columns,
1233
+ propertyNames,
1234
+ Model,
1235
+ Collection,
1236
+ columnNames,
1237
+ prefixedColumnNames,
1238
+ primaryKeys,
1239
+ references,
1240
+ selectColumnsClause,
1241
+ getPkId
1242
+ };
1243
+ }
1244
+ );
1245
+ &nbsp;
1246
+ const tableNameToEntityMap = entities.reduce(
1247
+ (
1248
+ map: Map&lt;string, IEntityInternal&lt;IModel&gt;&gt;,
1249
+ entity: IEntityInternal&lt;IModel&gt;
1250
+ ) =&gt; {
1251
+ map.set(entity.tableName, entity);
1252
+ return map;
1253
+ },
1254
+ new Map()
1255
+ );
1256
+ &nbsp;
1257
+ const getEntityByTableName = (tableName: string): IEntityInternal&lt;IModel&gt; =&gt; {
1258
+ const entity = tableNameToEntityMap.get(tableName);
1259
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!entity) {
1260
+ <span class="cstat-no" title="statement not covered" > throw new Error(`Could not find entity for table ${tableName}`);</span>
1261
+ }
1262
+ return entity;
1263
+ };
1264
+ &nbsp;
1265
+ const modelToEntityMap = entities.reduce(
1266
+ (
1267
+ map: Map&lt;IModel, IEntityInternal&lt;IModel&gt;&gt;,
1268
+ entity: IEntityInternal&lt;IModel&gt;
1269
+ ) =&gt; {
1270
+ map.set(entity.Model, entity);
1271
+ return map;
1272
+ },
1273
+ new Map()
1274
+ );
1275
+ &nbsp;
1276
+ const getEntityByModel = (model: IModel): IEntityInternal&lt;IModel&gt; =&gt; {
1277
+ const entity = modelToEntityMap.get(model.constructor);
1278
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!entity) {
1279
+ <span class="cstat-no" title="statement not covered" > throw new Error(`Could not find entity for class ${model.constructor}`);</span>
1280
+ }
1281
+ return entity;
1282
+ };
1283
+ &nbsp;
1284
+ /*
1285
+ * In:
1286
+ * [
1287
+ * [Article {id: 32}, ArticleTag {id: 54}]
1288
+ * [Article {id: 32}, ArticleTag {id: 55}]
1289
+ * ]
1290
+ * Out:
1291
+ * Article {id: 32, ArticleTags articleTags: [ArticleTag {id: 54}, ArticleTag {id: 55}]
1292
+ */
1293
+ const nestClump = (clump: Array&lt;Array&lt;IModel&gt;&gt;): object =&gt; {
1294
+ clump = clump.map((x: Array&lt;IModel&gt;) =&gt; Object.values(x));
1295
+ const root = clump[0][0];
1296
+ clump = clump.map((row: Array&lt;IModel&gt;) =&gt;
1297
+ row.filter((item: IModel, index: number) =&gt; index !== 0)
1298
+ );
1299
+ const built = { [getEntityByModel(root).displayName]: root };
1300
+ &nbsp;
1301
+ let nodes = [root];
1302
+ &nbsp;
1303
+ // Wowzer is this both CPU and Memory inefficient
1304
+ clump.forEach((array: Array&lt;IModel&gt;) =&gt; {
1305
+ array.forEach((_model: IModel) =&gt; {
1306
+ const nodeAlreadySeen = nodes.find(
1307
+ (x: IModel) =&gt;
1308
+ x.constructor.name === _model.constructor.name &amp;&amp;
1309
+ getEntityByModel(x).getPkId(x) ===
1310
+ getEntityByModel(_model).getPkId(_model)
1311
+ );
1312
+ const model = nodeAlreadySeen || _model;
1313
+ const isNodeAlreadySeen = !!nodeAlreadySeen;
1314
+ const nodePointingToIt = nodes.find((node) =&gt; {
1315
+ const indexes = Object.values(getEntityByModel(node).references)
1316
+ .map((x: IModelClass, i: number) =&gt;
1317
+ x === model.constructor ? i : null
1318
+ )
1319
+ .filter((x: number | null, i) =&gt; x != null) as Array&lt;number&gt;;
1320
+ if (!indexes.length) {
1321
+ return false;
1322
+ }
1323
+ for (const index of indexes) {
1324
+ const property = Object.keys(getEntityByModel(node).references)[
1325
+ index
1326
+ ];
1327
+ if (node[property] === model.id) {
1328
+ return true;
1329
+ }
1330
+ }
1331
+ return false;
1332
+ });
1333
+ // For first obj type which is has an instance in nodes array,
1334
+ // get its index in nodes array
1335
+ const indexOfOldestParent =
1336
+ array.reduce((answer: number | null, obj: IModel) =&gt; {
1337
+ if (answer != null) {
1338
+ return answer;
1339
+ }
1340
+ const index = nodes.findIndex(
1341
+ (n) =&gt; n.constructor === obj.constructor
1342
+ );
1343
+ if (index !== -1) {
1344
+ return index;
1345
+ }
1346
+ return null;
1347
+ }, null) || 0;
1348
+ const parentHeirarchy = [
1349
+ root,
1350
+ ...nodes.slice(0, indexOfOldestParent + 1).reverse()
1351
+ ];
1352
+ const nodeItPointsTo = parentHeirarchy.find((parent) =&gt; {
1353
+ const index = Object.values(
1354
+ getEntityByModel(model).references
1355
+ ).indexOf(parent.constructor);
1356
+ if (index === -1) {
1357
+ return false;
1358
+ }
1359
+ const property = Object.keys(getEntityByModel(model).references)[
1360
+ index
1361
+ ];
1362
+ return model[property as keyof typeof model] === parent.id;
1363
+ });
1364
+ if (isNodeAlreadySeen) {
1365
+ if (nodeItPointsTo &amp;&amp; !nodePointingToIt) {
1366
+ nodes = [model, ...nodes];
1367
+ return;
1368
+ }
1369
+ // If the nodePointingToIt (eg, parcel_event) is part of an
1370
+ // existing collection on this node (eg, parcel) which is a
1371
+ // nodeAlreadySeen, early return so we don't create it (parcel) on
1372
+ // the nodePointingToIt (parcel_event), since it (parcel) has been
1373
+ // shown to be the parent (of parcel_events).
1374
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (nodePointingToIt) {
1375
+ const ec =
1376
+ model[
1377
+ getEntityByModel(nodePointingToIt)
1378
+ .collectionDisplayName as keyof typeof model
1379
+ ];
1380
+ if (ec &amp;&amp; ec.models.find((m: IModel) =&gt; m === nodePointingToIt)) {
1381
+ nodes = [model, ...nodes];
1382
+ return;
1383
+ }
1384
+ }
1385
+ }
1386
+ if (nodePointingToIt) {
1387
+ nodePointingToIt[getEntityByModel(model).displayName] = model;
1388
+ } else if (nodeItPointsTo) {
1389
+ let collection =
1390
+ nodeItPointsTo[getEntityByModel(model).collectionDisplayName];
1391
+ if (collection) {
1392
+ collection.models.push(model);
1393
+ } else {
1394
+ const Collection = getEntityByModel(model).Collection;
1395
+ nodeItPointsTo[getEntityByModel(model).collectionDisplayName] =
1396
+ new Collection({
1397
+ models: [model]
1398
+ });
1399
+ }
1400
+ } else {
1401
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!getEntityByModel(model).getPkId(model)) {
1402
+ // If the join is fruitless; todo: add a test for this path
1403
+ return;
1404
+ }
1405
+ <span class="cstat-no" title="statement not covered" > throw Error(</span>
1406
+ `Could not find how this BO fits: ${JSON.stringify(model)} ${
1407
+ getEntityByModel(model).tableName
1408
+ }`
1409
+ );
1410
+ }
1411
+ nodes = [model, ...nodes];
1412
+ });
1413
+ });
1414
+ &nbsp;
1415
+ return built;
1416
+ };
1417
+ &nbsp;
1418
+ /*
1419
+ * Clump array of flat objects into groups based on id of root
1420
+ * In:
1421
+ * [
1422
+ * [Article {id: 32}, ArticleTag {id: 54}]
1423
+ * [Article {id: 32}, ArticleTag {id: 55}]
1424
+ * [Article {id: 33}, ArticleTag {id: 56}]
1425
+ * ]
1426
+ * Out:
1427
+ * [
1428
+ * [
1429
+ * [Article {id: 32}, ArticleTag {id: 54}]
1430
+ * [Article {id: 32}, ArticleTag {id: 55}]
1431
+ * ]
1432
+ * [
1433
+ * [Article {id: 33}, ArticleTag {id: 56}]
1434
+ * ]
1435
+ * ]
1436
+ */
1437
+ const clumpIntoGroups = (
1438
+ processed: Array&lt;Array&lt;IModel&gt;&gt;
1439
+ ): Array&lt;Array&lt;Array&lt;IModel&gt;&gt;&gt; =&gt; {
1440
+ const root = processed[0][0];
1441
+ const rootBo = root.constructor;
1442
+ const clumps = processed.reduce((accum: any, item: Array&lt;IModel&gt;) =&gt; {
1443
+ const id = getEntityByModel(root)
1444
+ .primaryKeys.map(
1445
+ (key: string) =&gt;
1446
+ item.find((x: IModel) =&gt; x.constructor === rootBo)?.[key]
1447
+ )
1448
+ .join('@');
1449
+ if (accum.has(id)) {
1450
+ accum.set(id, [...accum.get(id), item]);
1451
+ } else {
1452
+ accum.set(id, [item]);
1453
+ }
1454
+ return accum;
1455
+ }, new Map());
1456
+ return [...clumps.values()];
1457
+ };
1458
+ &nbsp;
1459
+ const mapToBos = (objectified: any) =&gt; {
1460
+ return Object.keys(objectified).map((tableName) =&gt; {
1461
+ const entity = getEntityByTableName(tableName);
1462
+ const propified = Object.keys(objectified[tableName]).reduce(
1463
+ (obj: any, column) =&gt; {
1464
+ let propertyName =
1465
+ entity.propertyNames[entity.columnNames.indexOf(column)];
1466
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!propertyName) {
1467
+ <span class="cstat-no" title="statement not covered" > if (column.startsWith('meta_')) {</span>
1468
+ <span class="cstat-no" title="statement not covered" > propertyName = camelCase(column);</span>
1469
+ } else {
1470
+ <span class="cstat-no" title="statement not covered" > throw Error(</span>
1471
+ `No property name for "${column}" in business object "${entity.displayName}". Non-spec'd columns must begin with "meta_".`
1472
+ );
1473
+ }
1474
+ }
1475
+ obj[propertyName] = objectified[tableName][column];
1476
+ return obj;
1477
+ },
1478
+ {}
1479
+ );
1480
+ return new entity.Model(propified);
1481
+ });
1482
+ };
1483
+ &nbsp;
1484
+ /*
1485
+ * Make objects (based on special table#column names) from flat database
1486
+ * return value.
1487
+ */
1488
+ const objectifyDatabaseResult = (result: object) =&gt; {
1489
+ return Object.keys(result).reduce((obj: any, text: string) =&gt; {
1490
+ const tableName = text.split('#')[0];
1491
+ const column = text.split('#')[1];
1492
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!tableName || !column) {
1493
+ <span class="cstat-no" title="statement not covered" > throw new Error('Column names must be namespaced to table');</span>
1494
+ }
1495
+ obj[tableName] = obj[tableName] || {};
1496
+ obj[tableName][column] = result[text as keyof typeof result];
1497
+ return obj;
1498
+ }, {});
1499
+ };
1500
+ &nbsp;
1501
+ const createFromDatabase = &lt;T extends ICollection&lt;IModel&gt;&gt;(rows: any): T =&gt; {
1502
+ const result = Array.isArray(rows) ? rows : <span class="branch-1 cbranch-no" title="branch not covered" >[rows];</span>
1503
+ const objectified = result.map(objectifyDatabaseResult);
1504
+ const boified = objectified.map(mapToBos);
1505
+ const clumps = clumpIntoGroups(boified);
1506
+ const nested = clumps.map(nestClump);
1507
+ const models = nested.map((n) =&gt; Object.values(n)[0]);
1508
+ const Collection = getEntityByModel(models[0]).Collection;
1509
+ return &lt;T&gt;new Collection({ models });
1510
+ };
1511
+ &nbsp;
1512
+ const createAnyFromDatabase = <span class="fstat-no" title="function not covered" >&lt;T</span> extends ICollection&lt;IModel&gt;&gt;(
1513
+ rows: any,
1514
+ rootKey: string | IModel
1515
+ ): T =&gt; {
1516
+ <span class="cstat-no" title="statement not covered" > if (!rows || !rows.length) {</span>
1517
+ const Collection =
1518
+ <span class="cstat-no" title="statement not covered" > typeof rootKey === 'string'</span>
1519
+ ? getEntityByTableName(rootKey).Collection
1520
+ : getEntityByModel(rootKey).Collection;
1521
+ <span class="cstat-no" title="statement not covered" > return new Collection({ models: [] }) as T;</span>
1522
+ }
1523
+ <span class="cstat-no" title="statement not covered" > return &lt;T&gt;createFromDatabase&lt;T&gt;(rows);</span>
1524
+ };
1525
+ &nbsp;
1526
+ const createOneFromDatabase = &lt;T extends IModel&gt;(rows: any): T =&gt; {
1527
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!rows || !rows.length) {
1528
+ <span class="cstat-no" title="statement not covered" > throw Error('Did not get one.');</span>
1529
+ }
1530
+ const collection = createFromDatabase&lt;ICollection&lt;IModel&gt;&gt;(rows);
1531
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!collection || !collection.models || collection.models.length === 0) {
1532
+ <span class="cstat-no" title="statement not covered" > throw Error('Did not get one.');</span>
1533
+ } else <span class="missing-if-branch" title="if path not taken" >I</span>if (collection.models.length &gt; 1) {
1534
+ <span class="cstat-no" title="statement not covered" > throw Error('Got more than one.');</span>
1535
+ }
1536
+ return &lt;T&gt;collection.models[0];
1537
+ };
1538
+ &nbsp;
1539
+ const createOneOrNoneFromDatabase = <span class="fstat-no" title="function not covered" >&lt;T</span> extends IModel&gt;(
1540
+ rows: any
1541
+ ): T | void =&gt; {
1542
+ <span class="cstat-no" title="statement not covered" > if (!rows || !rows.length) {</span>
1543
+ <span class="cstat-no" title="statement not covered" > return void 0;</span>
1544
+ }
1545
+ <span class="cstat-no" title="statement not covered" > return &lt;T&gt;createOneFromDatabase(rows);</span>
1546
+ };
1547
+ &nbsp;
1548
+ const createManyFromDatabase = <span class="fstat-no" title="function not covered" >&lt;T</span> extends ICollection&lt;IModel&gt;&gt;(
1549
+ rows: any
1550
+ ): T =&gt; {
1551
+ <span class="cstat-no" title="statement not covered" > if (!rows || !rows.length) {</span>
1552
+ <span class="cstat-no" title="statement not covered" > throw Error('Did not get at least one.');</span>
1553
+ }
1554
+ <span class="cstat-no" title="statement not covered" > return &lt;T&gt;createFromDatabase(rows);</span>
1555
+ };
1556
+ &nbsp;
1557
+ return {
1558
+ getEntityByModel,
1559
+ getEntityByTableName,
1560
+ createFromDatabase,
1561
+ createAnyFromDatabase,
1562
+ createOneFromDatabase,
1563
+ createOneOrNoneFromDatabase,
1564
+ createManyFromDatabase,
1565
+ tables: entities.reduce((accum: any, data: IEntityInternal&lt;IModel&gt;) =&gt; {
1566
+ accum[data.displayName] = {
1567
+ columns: data.selectColumnsClause
1568
+ };
1569
+ return accum;
1570
+ }, {})
1571
+ };
1572
+ };
1573
+ &nbsp;</pre></td></tr>
1574
+ </table></pre>
1575
+ <div class='push'></div><!-- for sticky footer -->
1576
+ </div><!-- /wrapper -->
1577
+ <div class='footer quiet pad2 space-top1 center small'>
1578
+ Code coverage
1579
+ generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Tue May 10 2022 08:39:04 GMT-0400 (Eastern Daylight Time)
1580
+ </div>
1581
+ </div>
1582
+ <script src="../prettify.js"></script>
1583
+ <script>
1584
+ window.onload = function () {
1585
+ if (typeof prettyPrint === 'function') {
1586
+ prettyPrint();
1587
+ }
1588
+ };
1589
+ </script>
1590
+ <script src="../sorter.js"></script>
1591
+ <script src="../block-navigation.js"></script>
1592
+ </body>
1593
+ </html>