breeze-client 2.1.6 → 2.1.7-mjs

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 (378) hide show
  1. package/LICENSE +1 -1
  2. package/adapter-ajax-angularjs/{breeze-client-adapter-ajax-angularjs.d.ts → index.d.ts} +1 -0
  3. package/adapter-ajax-fetch/{breeze-client-adapter-ajax-fetch.d.ts → index.d.ts} +1 -0
  4. package/adapter-ajax-httpclient/{breeze-client-adapter-ajax-httpclient.d.ts → index.d.ts} +1 -0
  5. package/adapter-ajax-jquery/{breeze-client-adapter-ajax-jquery.d.ts → index.d.ts} +1 -0
  6. package/adapter-ajax-post/{breeze-client-adapter-ajax-post.d.ts → index.d.ts} +1 -0
  7. package/adapter-data-service-odata/{breeze-client-adapter-data-service-odata.d.ts → index.d.ts} +1 -0
  8. package/adapter-data-service-webapi/{breeze-client-adapter-data-service-webapi.d.ts → index.d.ts} +1 -0
  9. package/adapter-model-library-backing-store/{breeze-client-adapter-model-library-backing-store.d.ts → index.d.ts} +1 -0
  10. package/adapter-model-library-ko/{breeze-client-adapter-model-library-ko.d.ts → index.d.ts} +1 -0
  11. package/adapter-uri-builder-json/{breeze-client-adapter-uri-builder-json.d.ts → index.d.ts} +1 -0
  12. package/adapter-uri-builder-odata/{breeze-client-adapter-uri-builder-odata.d.ts → index.d.ts} +1 -0
  13. package/esm2022/adapter-ajax-angularjs/adapter-ajax-angularjs.mjs +135 -0
  14. package/esm2022/adapter-ajax-angularjs/adapter-core.mjs +49 -0
  15. package/esm2022/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.mjs +5 -0
  16. package/esm2022/adapter-ajax-fetch/adapter-ajax-fetch.mjs +135 -0
  17. package/esm2022/adapter-ajax-fetch/adapter-core.mjs +49 -0
  18. package/esm2022/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.mjs +5 -0
  19. package/esm2022/adapter-ajax-httpclient/adapter-ajax-httpclient.mjs +139 -0
  20. package/esm2022/adapter-ajax-httpclient/adapter-core.mjs +49 -0
  21. package/esm2022/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.mjs +5 -0
  22. package/esm2022/adapter-ajax-jquery/adapter-ajax-jquery.mjs +107 -0
  23. package/esm2022/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.mjs +5 -0
  24. package/esm2022/adapter-ajax-post/adapter-ajax-post.mjs +77 -0
  25. package/esm2022/adapter-ajax-post/breeze-client-adapter-ajax-post.mjs +5 -0
  26. package/esm2022/adapter-data-service-odata/adapter-core.mjs +49 -0
  27. package/{esm5/adapter-data-service-odata/adapter-data-service-odata.js → esm2022/adapter-data-service-odata/adapter-data-service-odata.mjs} +138 -147
  28. package/esm2022/adapter-data-service-odata/breeze-client-adapter-data-service-odata.mjs +5 -0
  29. package/esm2022/adapter-data-service-webapi/adapter-data-service-webapi.mjs +100 -0
  30. package/esm2022/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.mjs +5 -0
  31. package/esm2022/adapter-model-library-backing-store/adapter-model-library-backing-store.mjs +269 -0
  32. package/esm2022/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.mjs +5 -0
  33. package/esm2022/adapter-model-library-ko/adapter-model-library-ko.mjs +241 -0
  34. package/esm2022/adapter-model-library-ko/breeze-client-adapter-model-library-ko.mjs +5 -0
  35. package/esm2022/adapter-uri-builder-json/adapter-core.mjs +49 -0
  36. package/esm2022/adapter-uri-builder-json/adapter-uri-builder-json.mjs +37 -0
  37. package/esm2022/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.mjs +5 -0
  38. package/esm2022/adapter-uri-builder-odata/adapter-core.mjs +49 -0
  39. package/esm2022/adapter-uri-builder-odata/adapter-uri-builder-odata.mjs +191 -0
  40. package/esm2022/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.mjs +5 -0
  41. package/esm2022/breeze-client.mjs +5 -0
  42. package/esm2022/index.mjs +2 -0
  43. package/esm2022/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.mjs +5 -0
  44. package/esm2022/mixin-get-entity-graph/mixin-get-entity-graph.mjs +269 -0
  45. package/esm2022/mixin-save-queuing/breeze-client-mixin-save-queuing.mjs +5 -0
  46. package/esm2022/mixin-save-queuing/mixin-save-queuing.mjs +421 -0
  47. package/esm2022/src/abstract-data-service-adapter.mjs +325 -0
  48. package/esm2022/src/array.mjs +4 -0
  49. package/esm2022/src/assert-param.mjs +330 -0
  50. package/esm2022/src/breeze.mjs +85 -0
  51. package/esm2022/src/complex-array.mjs +117 -0
  52. package/esm2022/src/config.mjs +232 -0
  53. package/esm2022/src/core.mjs +712 -0
  54. package/esm2022/src/csdl-metadata-parser.mjs +385 -0
  55. package/esm2022/src/data-service.mjs +239 -0
  56. package/esm2022/src/data-type.mjs +507 -0
  57. package/esm2022/src/default-property-interceptor.mjs +460 -0
  58. package/{esm2015/src/entity-action.js → esm2022/src/entity-action.mjs} +25 -25
  59. package/esm2022/src/entity-aspect.mjs +897 -0
  60. package/esm2022/src/entity-group.mjs +192 -0
  61. package/esm2022/src/entity-key.mjs +127 -0
  62. package/esm2022/src/entity-manager.mjs +2183 -0
  63. package/esm2022/src/entity-metadata.mjs +2242 -0
  64. package/esm2022/src/entity-query.mjs +1024 -0
  65. package/esm2022/src/entity-state.mjs +107 -0
  66. package/esm2022/src/enum.mjs +143 -0
  67. package/esm2022/src/event.mjs +264 -0
  68. package/esm2022/src/interface-registry.mjs +39 -0
  69. package/esm2022/src/key-generator.mjs +110 -0
  70. package/esm2022/src/local-query-comparison-options.mjs +75 -0
  71. package/esm2022/src/mapping-context.mjs +422 -0
  72. package/{esm5/src/naming-convention.js → esm2022/src/naming-convention.mjs} +35 -29
  73. package/esm2022/src/observable-array.mjs +183 -0
  74. package/esm2022/src/predicate.mjs +1259 -0
  75. package/esm2022/src/primitive-array.mjs +85 -0
  76. package/esm2022/src/query-options.mjs +160 -0
  77. package/esm2022/src/relation-array.mjs +173 -0
  78. package/esm2022/src/save-options.mjs +51 -0
  79. package/esm2022/src/unattached-children-map.mjs +56 -0
  80. package/{esm5/src/validate.js → esm2022/src/validate.mjs} +116 -110
  81. package/esm2022/src/validation-options.mjs +78 -0
  82. package/{fesm2015/breeze-client-adapter-ajax-angularjs.js → fesm2022/breeze-client-adapter-ajax-angularjs.mjs} +6 -1
  83. package/fesm2022/breeze-client-adapter-ajax-angularjs.mjs.map +1 -0
  84. package/{fesm2015/breeze-client-adapter-ajax-fetch.js → fesm2022/breeze-client-adapter-ajax-fetch.mjs} +9 -4
  85. package/fesm2022/breeze-client-adapter-ajax-fetch.mjs.map +1 -0
  86. package/{fesm2015/breeze-client-adapter-ajax-httpclient.js → fesm2022/breeze-client-adapter-ajax-httpclient.mjs} +6 -4
  87. package/fesm2022/breeze-client-adapter-ajax-httpclient.mjs.map +1 -0
  88. package/{fesm2015/breeze-client-adapter-ajax-jquery.js → fesm2022/breeze-client-adapter-ajax-jquery.mjs} +6 -2
  89. package/fesm2022/breeze-client-adapter-ajax-jquery.mjs.map +1 -0
  90. package/{fesm2015/breeze-client-adapter-ajax-post.js → fesm2022/breeze-client-adapter-ajax-post.mjs} +1 -1
  91. package/fesm2022/breeze-client-adapter-ajax-post.mjs.map +1 -0
  92. package/{fesm2015/breeze-client-adapter-data-service-odata.js → fesm2022/breeze-client-adapter-data-service-odata.mjs} +68 -69
  93. package/fesm2022/breeze-client-adapter-data-service-odata.mjs.map +1 -0
  94. package/{fesm2015/breeze-client-adapter-data-service-webapi.js → fesm2022/breeze-client-adapter-data-service-webapi.mjs} +30 -30
  95. package/fesm2022/breeze-client-adapter-data-service-webapi.mjs.map +1 -0
  96. package/{fesm2015/breeze-client-adapter-model-library-backing-store.js → fesm2022/breeze-client-adapter-model-library-backing-store.mjs} +14 -13
  97. package/fesm2022/breeze-client-adapter-model-library-backing-store.mjs.map +1 -0
  98. package/{fesm2015/breeze-client-adapter-model-library-ko.js → fesm2022/breeze-client-adapter-model-library-ko.mjs} +14 -13
  99. package/fesm2022/breeze-client-adapter-model-library-ko.mjs.map +1 -0
  100. package/{fesm2015/breeze-client-adapter-uri-builder-json.js → fesm2022/breeze-client-adapter-uri-builder-json.mjs} +9 -8
  101. package/fesm2022/breeze-client-adapter-uri-builder-json.mjs.map +1 -0
  102. package/{fesm2015/breeze-client-adapter-uri-builder-odata.js → fesm2022/breeze-client-adapter-uri-builder-odata.mjs} +86 -86
  103. package/fesm2022/breeze-client-adapter-uri-builder-odata.mjs.map +1 -0
  104. package/{fesm2015/breeze-client-mixin-get-entity-graph.js → fesm2022/breeze-client-mixin-get-entity-graph.mjs} +1 -1
  105. package/fesm2022/breeze-client-mixin-get-entity-graph.mjs.map +1 -0
  106. package/{fesm2015/breeze-client-mixin-save-queuing.js → fesm2022/breeze-client-mixin-save-queuing.mjs} +23 -2
  107. package/fesm2022/breeze-client-mixin-save-queuing.mjs.map +1 -0
  108. package/{fesm2015/breeze-client.js → fesm2022/breeze-client.mjs} +2126 -1577
  109. package/fesm2022/breeze-client.mjs.map +1 -0
  110. package/mixin-get-entity-graph/{breeze-client-mixin-get-entity-graph.d.ts → index.d.ts} +1 -0
  111. package/mixin-save-queuing/{breeze-client-mixin-save-queuing.d.ts → index.d.ts} +1 -0
  112. package/package.json +93 -11
  113. package/src/abstract-data-service-adapter.d.ts +20 -0
  114. package/src/config.d.ts +1 -1
  115. package/src/core.d.ts +1 -1
  116. package/src/entity-aspect.d.ts +1 -1
  117. package/src/entity-metadata.d.ts +8 -6
  118. package/src/entity-query.d.ts +18 -4
  119. package/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.metadata.json +0 -1
  120. package/adapter-ajax-angularjs/package.json +0 -13
  121. package/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.metadata.json +0 -1
  122. package/adapter-ajax-fetch/package.json +0 -13
  123. package/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.metadata.json +0 -1
  124. package/adapter-ajax-httpclient/package.json +0 -13
  125. package/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.metadata.json +0 -1
  126. package/adapter-ajax-jquery/package.json +0 -13
  127. package/adapter-ajax-post/breeze-client-adapter-ajax-post.metadata.json +0 -1
  128. package/adapter-ajax-post/package.json +0 -13
  129. package/adapter-data-service-odata/breeze-client-adapter-data-service-odata.metadata.json +0 -1
  130. package/adapter-data-service-odata/package.json +0 -13
  131. package/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.metadata.json +0 -1
  132. package/adapter-data-service-webapi/package.json +0 -13
  133. package/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.metadata.json +0 -1
  134. package/adapter-model-library-backing-store/package.json +0 -13
  135. package/adapter-model-library-ko/breeze-client-adapter-model-library-ko.metadata.json +0 -1
  136. package/adapter-model-library-ko/package.json +0 -13
  137. package/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.metadata.json +0 -1
  138. package/adapter-uri-builder-json/package.json +0 -13
  139. package/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.metadata.json +0 -1
  140. package/adapter-uri-builder-odata/package.json +0 -13
  141. package/breeze-client.d.ts +0 -8
  142. package/breeze-client.metadata.json +0 -1
  143. package/bundles/breeze-client-adapter-ajax-angularjs.umd.js +0 -190
  144. package/bundles/breeze-client-adapter-ajax-angularjs.umd.js.map +0 -1
  145. package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js +0 -2
  146. package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js.map +0 -1
  147. package/bundles/breeze-client-adapter-ajax-fetch.umd.js +0 -190
  148. package/bundles/breeze-client-adapter-ajax-fetch.umd.js.map +0 -1
  149. package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js +0 -2
  150. package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js.map +0 -1
  151. package/bundles/breeze-client-adapter-ajax-httpclient.umd.js +0 -195
  152. package/bundles/breeze-client-adapter-ajax-httpclient.umd.js.map +0 -1
  153. package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js +0 -2
  154. package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js.map +0 -1
  155. package/bundles/breeze-client-adapter-ajax-jquery.umd.js +0 -115
  156. package/bundles/breeze-client-adapter-ajax-jquery.umd.js.map +0 -1
  157. package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js +0 -2
  158. package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js.map +0 -1
  159. package/bundles/breeze-client-adapter-ajax-post.umd.js +0 -92
  160. package/bundles/breeze-client-adapter-ajax-post.umd.js.map +0 -1
  161. package/bundles/breeze-client-adapter-ajax-post.umd.min.js +0 -2
  162. package/bundles/breeze-client-adapter-ajax-post.umd.min.js.map +0 -1
  163. package/bundles/breeze-client-adapter-data-service-odata.umd.js +0 -747
  164. package/bundles/breeze-client-adapter-data-service-odata.umd.js.map +0 -1
  165. package/bundles/breeze-client-adapter-data-service-odata.umd.min.js +0 -16
  166. package/bundles/breeze-client-adapter-data-service-odata.umd.min.js.map +0 -1
  167. package/bundles/breeze-client-adapter-data-service-webapi.umd.js +0 -333
  168. package/bundles/breeze-client-adapter-data-service-webapi.umd.js.map +0 -1
  169. package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js +0 -16
  170. package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js.map +0 -1
  171. package/bundles/breeze-client-adapter-model-library-backing-store.umd.js +0 -280
  172. package/bundles/breeze-client-adapter-model-library-backing-store.umd.js.map +0 -1
  173. package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js +0 -2
  174. package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js.map +0 -1
  175. package/bundles/breeze-client-adapter-model-library-ko.umd.js +0 -252
  176. package/bundles/breeze-client-adapter-model-library-ko.umd.js.map +0 -1
  177. package/bundles/breeze-client-adapter-model-library-ko.umd.min.js +0 -2
  178. package/bundles/breeze-client-adapter-model-library-ko.umd.min.js.map +0 -1
  179. package/bundles/breeze-client-adapter-uri-builder-json.umd.js +0 -96
  180. package/bundles/breeze-client-adapter-uri-builder-json.umd.js.map +0 -1
  181. package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js +0 -2
  182. package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js.map +0 -1
  183. package/bundles/breeze-client-adapter-uri-builder-odata.umd.js +0 -262
  184. package/bundles/breeze-client-adapter-uri-builder-odata.umd.js.map +0 -1
  185. package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js +0 -2
  186. package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js.map +0 -1
  187. package/bundles/breeze-client-mixin-get-entity-graph.umd.js +0 -258
  188. package/bundles/breeze-client-mixin-get-entity-graph.umd.js.map +0 -1
  189. package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js +0 -2
  190. package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js.map +0 -1
  191. package/bundles/breeze-client-mixin-save-queuing.umd.js +0 -579
  192. package/bundles/breeze-client-mixin-save-queuing.umd.js.map +0 -1
  193. package/bundles/breeze-client-mixin-save-queuing.umd.min.js +0 -16
  194. package/bundles/breeze-client-mixin-save-queuing.umd.min.js.map +0 -1
  195. package/bundles/breeze-client.umd.js +0 -14181
  196. package/bundles/breeze-client.umd.js.map +0 -1
  197. package/bundles/breeze-client.umd.min.js +0 -16
  198. package/bundles/breeze-client.umd.min.js.map +0 -1
  199. package/esm2015/adapter-ajax-angularjs/adapter-ajax-angularjs.js +0 -130
  200. package/esm2015/adapter-ajax-angularjs/adapter-core.js +0 -49
  201. package/esm2015/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +0 -5
  202. package/esm2015/adapter-ajax-fetch/adapter-ajax-fetch.js +0 -130
  203. package/esm2015/adapter-ajax-fetch/adapter-core.js +0 -49
  204. package/esm2015/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +0 -5
  205. package/esm2015/adapter-ajax-httpclient/adapter-ajax-httpclient.js +0 -137
  206. package/esm2015/adapter-ajax-httpclient/adapter-core.js +0 -49
  207. package/esm2015/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +0 -5
  208. package/esm2015/adapter-ajax-jquery/adapter-ajax-jquery.js +0 -103
  209. package/esm2015/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +0 -5
  210. package/esm2015/adapter-ajax-post/adapter-ajax-post.js +0 -77
  211. package/esm2015/adapter-ajax-post/breeze-client-adapter-ajax-post.js +0 -5
  212. package/esm2015/adapter-data-service-odata/adapter-core.js +0 -49
  213. package/esm2015/adapter-data-service-odata/adapter-data-service-odata.js +0 -463
  214. package/esm2015/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +0 -5
  215. package/esm2015/adapter-data-service-webapi/adapter-data-service-webapi.js +0 -100
  216. package/esm2015/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +0 -5
  217. package/esm2015/adapter-model-library-backing-store/adapter-model-library-backing-store.js +0 -268
  218. package/esm2015/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +0 -5
  219. package/esm2015/adapter-model-library-ko/adapter-model-library-ko.js +0 -240
  220. package/esm2015/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +0 -5
  221. package/esm2015/adapter-uri-builder-json/adapter-core.js +0 -49
  222. package/esm2015/adapter-uri-builder-json/adapter-uri-builder-json.js +0 -36
  223. package/esm2015/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +0 -5
  224. package/esm2015/adapter-uri-builder-odata/adapter-core.js +0 -49
  225. package/esm2015/adapter-uri-builder-odata/adapter-uri-builder-odata.js +0 -192
  226. package/esm2015/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +0 -5
  227. package/esm2015/breeze-client.js +0 -9
  228. package/esm2015/index.js +0 -2
  229. package/esm2015/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +0 -5
  230. package/esm2015/mixin-get-entity-graph/mixin-get-entity-graph.js +0 -269
  231. package/esm2015/mixin-save-queuing/breeze-client-mixin-save-queuing.js +0 -5
  232. package/esm2015/mixin-save-queuing/mixin-save-queuing.js +0 -400
  233. package/esm2015/src/abstract-data-service-adapter.js +0 -296
  234. package/esm2015/src/array.js +0 -4
  235. package/esm2015/src/assert-param.js +0 -312
  236. package/esm2015/src/breeze.js +0 -85
  237. package/esm2015/src/complex-array.js +0 -119
  238. package/esm2015/src/config.js +0 -223
  239. package/esm2015/src/core.js +0 -714
  240. package/esm2015/src/csdl-metadata-parser.js +0 -385
  241. package/esm2015/src/data-service.js +0 -203
  242. package/esm2015/src/data-type.js +0 -503
  243. package/esm2015/src/default-property-interceptor.js +0 -460
  244. package/esm2015/src/entity-aspect.js +0 -804
  245. package/esm2015/src/entity-group.js +0 -187
  246. package/esm2015/src/entity-key.js +0 -116
  247. package/esm2015/src/entity-manager.js +0 -2094
  248. package/esm2015/src/entity-metadata.js +0 -2109
  249. package/esm2015/src/entity-query.js +0 -996
  250. package/esm2015/src/entity-state.js +0 -107
  251. package/esm2015/src/enum.js +0 -141
  252. package/esm2015/src/event.js +0 -256
  253. package/esm2015/src/interface-registry.js +0 -41
  254. package/esm2015/src/key-generator.js +0 -108
  255. package/esm2015/src/local-query-comparison-options.js +0 -65
  256. package/esm2015/src/mapping-context.js +0 -411
  257. package/esm2015/src/naming-convention.js +0 -88
  258. package/esm2015/src/observable-array.js +0 -185
  259. package/esm2015/src/predicate.js +0 -1242
  260. package/esm2015/src/primitive-array.js +0 -87
  261. package/esm2015/src/query-options.js +0 -152
  262. package/esm2015/src/relation-array.js +0 -175
  263. package/esm2015/src/save-options.js +0 -41
  264. package/esm2015/src/unattached-children-map.js +0 -58
  265. package/esm2015/src/validate.js +0 -991
  266. package/esm2015/src/validation-options.js +0 -64
  267. package/esm5/adapter-ajax-angularjs/adapter-ajax-angularjs.js +0 -132
  268. package/esm5/adapter-ajax-angularjs/adapter-core.js +0 -49
  269. package/esm5/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +0 -5
  270. package/esm5/adapter-ajax-fetch/adapter-ajax-fetch.js +0 -132
  271. package/esm5/adapter-ajax-fetch/adapter-core.js +0 -49
  272. package/esm5/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +0 -5
  273. package/esm5/adapter-ajax-httpclient/adapter-ajax-httpclient.js +0 -139
  274. package/esm5/adapter-ajax-httpclient/adapter-core.js +0 -49
  275. package/esm5/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +0 -5
  276. package/esm5/adapter-ajax-jquery/adapter-ajax-jquery.js +0 -105
  277. package/esm5/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +0 -5
  278. package/esm5/adapter-ajax-post/adapter-ajax-post.js +0 -81
  279. package/esm5/adapter-ajax-post/breeze-client-adapter-ajax-post.js +0 -5
  280. package/esm5/adapter-data-service-odata/adapter-core.js +0 -49
  281. package/esm5/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +0 -5
  282. package/esm5/adapter-data-service-webapi/adapter-data-service-webapi.js +0 -105
  283. package/esm5/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +0 -5
  284. package/esm5/adapter-model-library-backing-store/adapter-model-library-backing-store.js +0 -270
  285. package/esm5/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +0 -5
  286. package/esm5/adapter-model-library-ko/adapter-model-library-ko.js +0 -242
  287. package/esm5/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +0 -5
  288. package/esm5/adapter-uri-builder-json/adapter-core.js +0 -49
  289. package/esm5/adapter-uri-builder-json/adapter-uri-builder-json.js +0 -38
  290. package/esm5/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +0 -5
  291. package/esm5/adapter-uri-builder-odata/adapter-core.js +0 -49
  292. package/esm5/adapter-uri-builder-odata/adapter-uri-builder-odata.js +0 -197
  293. package/esm5/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +0 -5
  294. package/esm5/breeze-client.js +0 -9
  295. package/esm5/index.js +0 -2
  296. package/esm5/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +0 -5
  297. package/esm5/mixin-get-entity-graph/mixin-get-entity-graph.js +0 -269
  298. package/esm5/mixin-save-queuing/breeze-client-mixin-save-queuing.js +0 -5
  299. package/esm5/mixin-save-queuing/mixin-save-queuing.js +0 -412
  300. package/esm5/src/abstract-data-service-adapter.js +0 -302
  301. package/esm5/src/array.js +0 -4
  302. package/esm5/src/assert-param.js +0 -317
  303. package/esm5/src/breeze.js +0 -85
  304. package/esm5/src/complex-array.js +0 -119
  305. package/esm5/src/config.js +0 -228
  306. package/esm5/src/core.js +0 -722
  307. package/esm5/src/csdl-metadata-parser.js +0 -385
  308. package/esm5/src/data-service.js +0 -207
  309. package/esm5/src/data-type.js +0 -510
  310. package/esm5/src/default-property-interceptor.js +0 -460
  311. package/esm5/src/entity-action.js +0 -52
  312. package/esm5/src/entity-aspect.js +0 -810
  313. package/esm5/src/entity-group.js +0 -189
  314. package/esm5/src/entity-key.js +0 -118
  315. package/esm5/src/entity-manager.js +0 -2112
  316. package/esm5/src/entity-metadata.js +0 -2144
  317. package/esm5/src/entity-query.js +0 -1023
  318. package/esm5/src/entity-state.js +0 -114
  319. package/esm5/src/enum.js +0 -144
  320. package/esm5/src/event.js +0 -259
  321. package/esm5/src/interface-registry.js +0 -43
  322. package/esm5/src/key-generator.js +0 -111
  323. package/esm5/src/local-query-comparison-options.js +0 -67
  324. package/esm5/src/mapping-context.js +0 -413
  325. package/esm5/src/observable-array.js +0 -201
  326. package/esm5/src/predicate.js +0 -1307
  327. package/esm5/src/primitive-array.js +0 -87
  328. package/esm5/src/query-options.js +0 -167
  329. package/esm5/src/relation-array.js +0 -175
  330. package/esm5/src/save-options.js +0 -43
  331. package/esm5/src/unattached-children-map.js +0 -60
  332. package/esm5/src/validation-options.js +0 -66
  333. package/fesm2015/breeze-client-adapter-ajax-angularjs.js.map +0 -1
  334. package/fesm2015/breeze-client-adapter-ajax-fetch.js.map +0 -1
  335. package/fesm2015/breeze-client-adapter-ajax-httpclient.js.map +0 -1
  336. package/fesm2015/breeze-client-adapter-ajax-jquery.js.map +0 -1
  337. package/fesm2015/breeze-client-adapter-ajax-post.js.map +0 -1
  338. package/fesm2015/breeze-client-adapter-data-service-odata.js.map +0 -1
  339. package/fesm2015/breeze-client-adapter-data-service-webapi.js.map +0 -1
  340. package/fesm2015/breeze-client-adapter-model-library-backing-store.js.map +0 -1
  341. package/fesm2015/breeze-client-adapter-model-library-ko.js.map +0 -1
  342. package/fesm2015/breeze-client-adapter-uri-builder-json.js.map +0 -1
  343. package/fesm2015/breeze-client-adapter-uri-builder-odata.js.map +0 -1
  344. package/fesm2015/breeze-client-mixin-get-entity-graph.js.map +0 -1
  345. package/fesm2015/breeze-client-mixin-save-queuing.js.map +0 -1
  346. package/fesm2015/breeze-client.js.map +0 -1
  347. package/fesm5/breeze-client-adapter-ajax-angularjs.js +0 -186
  348. package/fesm5/breeze-client-adapter-ajax-angularjs.js.map +0 -1
  349. package/fesm5/breeze-client-adapter-ajax-fetch.js +0 -186
  350. package/fesm5/breeze-client-adapter-ajax-fetch.js.map +0 -1
  351. package/fesm5/breeze-client-adapter-ajax-httpclient.js +0 -193
  352. package/fesm5/breeze-client-adapter-ajax-httpclient.js.map +0 -1
  353. package/fesm5/breeze-client-adapter-ajax-jquery.js +0 -111
  354. package/fesm5/breeze-client-adapter-ajax-jquery.js.map +0 -1
  355. package/fesm5/breeze-client-adapter-ajax-post.js +0 -86
  356. package/fesm5/breeze-client-adapter-ajax-post.js.map +0 -1
  357. package/fesm5/breeze-client-adapter-data-service-odata.js +0 -523
  358. package/fesm5/breeze-client-adapter-data-service-odata.js.map +0 -1
  359. package/fesm5/breeze-client-adapter-data-service-webapi.js +0 -111
  360. package/fesm5/breeze-client-adapter-data-service-webapi.js.map +0 -1
  361. package/fesm5/breeze-client-adapter-model-library-backing-store.js +0 -276
  362. package/fesm5/breeze-client-adapter-model-library-backing-store.js.map +0 -1
  363. package/fesm5/breeze-client-adapter-model-library-ko.js +0 -248
  364. package/fesm5/breeze-client-adapter-model-library-ko.js.map +0 -1
  365. package/fesm5/breeze-client-adapter-uri-builder-json.js +0 -92
  366. package/fesm5/breeze-client-adapter-uri-builder-json.js.map +0 -1
  367. package/fesm5/breeze-client-adapter-uri-builder-odata.js +0 -250
  368. package/fesm5/breeze-client-adapter-uri-builder-odata.js.map +0 -1
  369. package/fesm5/breeze-client-mixin-get-entity-graph.js +0 -254
  370. package/fesm5/breeze-client-mixin-get-entity-graph.js.map +0 -1
  371. package/fesm5/breeze-client-mixin-save-queuing.js +0 -356
  372. package/fesm5/breeze-client-mixin-save-queuing.js.map +0 -1
  373. package/fesm5/breeze-client.js +0 -13903
  374. package/fesm5/breeze-client.js.map +0 -1
  375. package/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.metadata.json +0 -1
  376. package/mixin-get-entity-graph/package.json +0 -13
  377. package/mixin-save-queuing/breeze-client-mixin-save-queuing.metadata.json +0 -1
  378. package/mixin-save-queuing/package.json +0 -13
@@ -1,258 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('breeze-client')) :
3
- typeof define === 'function' && define.amd ? define('breeze-client/mixin-get-entity-graph', ['exports', 'breeze-client'], factory) :
4
- (global = global || self, factory((global['breeze-client'] = global['breeze-client'] || {}, global['breeze-client']['mixin-get-entity-graph'] = {}), global['breeze-client']));
5
- }(this, (function (exports, breezeClient) { 'use strict';
6
-
7
- //#region Copyright, Version, and Description
8
- function mixinEntityGraph(emclass) {
9
- var proto = breezeClient.EntityManager.prototype;
10
- if (!proto.getEntityGraph) {
11
- proto.getEntityGraph = getEntityGraph;
12
- }
13
- }
14
- mixinEntityGraph(breezeClient.EntityManager);
15
- function getEntityGraph(roots, expand) {
16
- if (roots instanceof breezeClient.EntityQuery) {
17
- var newRoots = this.executeQueryLocally(roots);
18
- return getEntityGraphCore(newRoots, expand || roots.expandClause);
19
- }
20
- else {
21
- return getEntityGraphCore(roots, expand);
22
- }
23
- }
24
- function getEntityGraphCore(root, expand) {
25
- var entityGroupMap;
26
- var graph = [];
27
- var rootType;
28
- var roots = Array.isArray(root) ? root : [root];
29
- addToGraph(roots); // removes dups & nulls
30
- roots = graph.slice(); // copy of de-duped roots
31
- if (roots.length) {
32
- getRootInfo();
33
- getExpand();
34
- buildGraph();
35
- }
36
- return graph;
37
- function addToGraph(entities) {
38
- entities.forEach(function (entity) {
39
- if (entity && graph.indexOf(entity) < 0) {
40
- graph.push(entity);
41
- }
42
- });
43
- }
44
- function getRootInfo() {
45
- var compatTypes;
46
- roots.forEach(function (root, ix) {
47
- var aspect;
48
- if (!root || !(aspect = root.entityAspect)) {
49
- throw getRootErr(ix, 'is not an entity');
50
- }
51
- if (aspect.entityState === breezeClient.EntityState.Detached) {
52
- throw getRootErr(ix, 'is a detached entity');
53
- }
54
- var em = aspect.entityManager;
55
- if (entityGroupMap) {
56
- if (entityGroupMap !== em._entityGroupMap) {
57
- throw getRootErr(ix, "has a different 'EntityManager' than other roots");
58
- }
59
- }
60
- else {
61
- entityGroupMap = em._entityGroupMap;
62
- }
63
- getRootType(root, ix);
64
- });
65
- function getRootErr(ix, msg) {
66
- return new Error("'getEntityGraph' root[" + ix + "] " + msg);
67
- }
68
- function getRootType(root, ix) {
69
- var thisType = root.entityType;
70
- if (!rootType) {
71
- rootType = thisType;
72
- return;
73
- }
74
- else if (rootType === thisType) {
75
- return;
76
- }
77
- // Types differs. Look for closest common base type
78
- // does thisType derive from current rootType?
79
- var baseType = rootType;
80
- do {
81
- compatTypes = compatTypes || baseType.getSelfAndSubtypes();
82
- if (compatTypes.indexOf(thisType) > -1) {
83
- rootType = baseType;
84
- return;
85
- }
86
- baseType = baseType.baseEntityType;
87
- compatTypes = null;
88
- } while (baseType);
89
- // does current rootType derives from thisType?
90
- baseType = thisType;
91
- do {
92
- compatTypes = baseType.getSelfAndSubtypes();
93
- if (compatTypes.indexOf(rootType) > -1) {
94
- rootType = baseType;
95
- return;
96
- }
97
- baseType = baseType.baseEntityType;
98
- } while (baseType);
99
- throw getRootErr(ix, "is not EntityType-compatible with other roots");
100
- }
101
- }
102
- function getExpand() {
103
- try {
104
- if (!expand) {
105
- expand = [];
106
- }
107
- else if (typeof expand === 'string') {
108
- // tricky because Breeze expandClause not exposed publically
109
- expand = new breezeClient.EntityQuery().expand(expand).expandClause;
110
- }
111
- if (expand instanceof breezeClient.ExpandClause && expand.propertyPaths) { // expand clause
112
- expand = expand.propertyPaths;
113
- }
114
- else if (Array.isArray(expand)) {
115
- if (!expand.every(function (elem) { return typeof elem === 'string'; })) {
116
- throw '';
117
- }
118
- }
119
- else {
120
- throw '';
121
- }
122
- }
123
- catch (_) {
124
- throw new Error("expand must be an expand string, array of string paths, or a query expand clause");
125
- }
126
- }
127
- function buildGraph() {
128
- if (expand && expand instanceof Array && expand.length) {
129
- var fns = expand.map(makePathFn);
130
- fns.forEach(function (fn) { fn(roots); });
131
- }
132
- }
133
- // Make function to get entities along a single expand path
134
- // such as 'Orders.OrderDetails.Product'
135
- function makePathFn(path) {
136
- var fns = [], segments = path.split('.'), type = rootType;
137
- for (var i = 0, slen = segments.length; i < slen; i++) {
138
- var f = makePathSegmentFn(type, segments[i]);
139
- type = f.navType;
140
- fns.push(f);
141
- }
142
- return function pathFn(entities) {
143
- for (var j = 0, flen = fns.length; j < flen; j++) {
144
- var elen = entities.length;
145
- if (elen === 0) {
146
- return;
147
- } // nothing left to explore
148
- // fn to get related entities for this path segment
149
- var fn = fns[j];
150
- // get entities related by this path segment
151
- var related = [];
152
- for (var k = 0; k < elen; k++) {
153
- related = related.concat(fn(entities[k]));
154
- }
155
- addToGraph(related);
156
- if (j >= flen - 1) {
157
- return;
158
- } // no more path segments
159
- // reset entities to deduped related entities
160
- entities = [];
161
- for (var l = 0, rlen = related.length; l < rlen; l++) {
162
- var r = related[l];
163
- if (entities.indexOf(r) < 0) {
164
- entities.push(r);
165
- }
166
- }
167
- }
168
- };
169
- }
170
- // Make function to get entities along a single expand path segment
171
- // such as the 'OrderDetails' in the 'Orders.OrderDetails.Product' path
172
- function makePathSegmentFn(baseType, segment) {
173
- var baseTypeName, fn = undefined, navType;
174
- try {
175
- baseTypeName = baseType.name;
176
- var nav = baseType.getNavigationProperty(segment);
177
- var fkName_1 = nav.foreignKeyNames[0];
178
- if (!nav) {
179
- throw new Error(segment + " is not a navigation property of " + baseTypeName);
180
- }
181
- navType = nav.entityType;
182
- // add derived types
183
- var navTypes = navType.getSelfAndSubtypes();
184
- var grps_1 = []; // non-empty groups for these types
185
- navTypes.forEach(function (t) {
186
- var grp = entityGroupMap[t.name];
187
- if (grp && grp._entities.length > 0) {
188
- grps_1.push(grp);
189
- }
190
- });
191
- var grpCount_1 = grps_1.length;
192
- if (grpCount_1 === 0) {
193
- // no related entities in cache
194
- fn = function () { return []; };
195
- }
196
- else if (fkName_1) {
197
- fn = function (entity) {
198
- var val = null;
199
- try {
200
- var keyValue = entity.getProperty(fkName_1);
201
- for (var i = 0; i < grpCount_1; i += 1) {
202
- val = grps_1[i]._entities[grps_1[i]._indexMap[keyValue]];
203
- if (val) {
204
- break;
205
- }
206
- }
207
- }
208
- catch (e) {
209
- rethrow(e);
210
- }
211
- return val;
212
- };
213
- }
214
- else {
215
- fkName_1 = nav.inverse ?
216
- nav.inverse.foreignKeyNames[0] :
217
- nav.invForeignKeyNames[0];
218
- if (!fkName_1) {
219
- throw new Error("No inverse keys");
220
- }
221
- fn = function (entity) {
222
- var vals = [];
223
- try {
224
- var keyValue_1 = entity.entityAspect.getKey().values[0];
225
- grps_1.forEach(function (grp) {
226
- vals = vals.concat(grp._entities.filter(function (en) {
227
- return en && en.getProperty(fkName_1) === keyValue_1;
228
- }));
229
- });
230
- }
231
- catch (e) {
232
- rethrow(e);
233
- }
234
- return vals;
235
- };
236
- }
237
- fn.navType = navType;
238
- fn.path = segment;
239
- }
240
- catch (err) {
241
- rethrow(err);
242
- }
243
- return fn;
244
- function rethrow(e) {
245
- var typeName = baseTypeName || baseType;
246
- var error = new Error("'getEntityGraph' can't expand '" + segment + "' for " + typeName);
247
- error.innerError = e;
248
- throw error;
249
- }
250
- }
251
- }
252
-
253
- exports.mixinEntityGraph = mixinEntityGraph;
254
-
255
- Object.defineProperty(exports, '__esModule', { value: true });
256
-
257
- })));
258
- //# sourceMappingURL=breeze-client-mixin-get-entity-graph.umd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"breeze-client-mixin-get-entity-graph.umd.js","sources":["ng://breeze-client/mixin-get-entity-graph/mixin-get-entity-graph.ts"],"sourcesContent":["//#region Copyright, Version, and Description\r\n/*\r\n * Copyright 2015-2021 IdeaBlade, Inc. All Rights Reserved.\r\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\r\n * conditions of the IdeaBlade Breeze license, available at http://www.breezejs.com/license\r\n *\r\n * Author: Ward Bell\r\n * Version: 0.9.5 - Steve Schmitt - convert to TypeScript, migrate to breeze-client repo, add HasEntityGraph and mixinEntityGraph\r\n * Version: 0.9.4 - Marcel Good - fix UMD module name\r\n * --------------------------------------------------------------------------------\r\n * Adds getEntityGraph method to Breeze EntityManager prototype.\r\n * Call mixinEntityGraph(EntityManager) to apply the mixin in a tree-shaking-resistant way.\r\n * Then (manager as any).getEntityGraph(entity, \"child\");\r\n *\r\n * Depends on Breeze which it patches\r\n *\r\n * For discussion, see:\r\n * http://www.breezejs.com/documentation/getentitygraph\r\n *\r\n * For example usage, see:\r\n * https://github.com/Breeze/breeze.js.samples/tree/master/net/DocCode/DocCode/tests/getEntityGraphTests.js\r\n */\r\n//#endregion\r\nimport { Entity, EntityManager, EntityQuery, EntityState, EntityType, ExpandClause } from 'breeze-client';\r\n\r\ninterface EntityGroup {\r\n _entities: (Entity | null)[];\r\n _indexMap: { [index: string]: number };\r\n}\r\n\r\n// module augmentation failed to build with ng-packagr, so we have a separate interface\r\nexport interface HasEntityGraph extends EntityManager {\r\n /**\r\n Get related entities of root entity (or root entities) as specified by expand.\r\n @example\r\n var graph = breeze.EntityManager.getEntityGraph(customer, 'Orders.OrderDetails');\r\n // graph will be the customer, all of its orders and their details even if deleted.\r\n @method getEntityGraph\r\n @param roots {Entity|Array of Entity} The root entity or root entities.\r\n @param expand {String|Array of String|Object} an expand string, a query expand clause, or array of string paths\r\n @return {Array of Entity} root entities and their related entities, including deleted entities. Duplicates are removed and entity order is indeterminate.\r\n **/\r\n getEntityGraph(roots: Entity | Array<Entity>, expand: string | Array<string> | ExpandClause): Array<Entity>;\r\n\r\n /**\r\n Execute query locally and return both the query results and their related entities as specified by the optional expand parameter or the query's expand clause.\r\n @example\r\n var query = breeze.EntityQuery.from('Customers')\r\n .where('CompanyName', 'startsWith', 'Alfred')\r\n .expand('Orders.OrderDetails');\r\n var graph = manager.getEntityGraph(query);\r\n // graph will be the 'Alfred' customers, their orders and their details even if deleted.\r\n @method getEntityGraph\r\n @param query {EntityQuery} A query to be executed against the manager's local cache.\r\n @param [expand] {String|Array of String|Object} an expand string, a query expand clause, or array of string paths\r\n @return {Array of Entity} local queried root entities and their related entities, including deleted entities. Duplicates are removed and entity order is indeterminate.\r\n **/\r\n getEntityGraph(query: EntityQuery, expand: string | Array<string> | ExpandClause): Array<Entity>;\r\n\r\n}\r\n\r\nexport function mixinEntityGraph(emclass: { new(): EntityManager }) {\r\n const proto = EntityManager.prototype;\r\n\r\n if (!(proto as any).getEntityGraph) {\r\n (proto as any).getEntityGraph = getEntityGraph;\r\n }\r\n}\r\n\r\nmixinEntityGraph(EntityManager);\r\n\r\n\r\nfunction getEntityGraph(roots: Entity | Array<Entity> | EntityQuery, expand: string | Array<string> | ExpandClause) {\r\n if (roots instanceof EntityQuery) {\r\n let newRoots = this.executeQueryLocally(roots);\r\n return getEntityGraphCore(newRoots, expand || roots.expandClause);\r\n } else {\r\n return getEntityGraphCore(roots, expand);\r\n }\r\n}\r\n\r\nfunction getEntityGraphCore(root: Entity | Array<Entity>, expand: string | Array<string> | ExpandClause) {\r\n let entityGroupMap: { [index: string]: EntityGroup };\r\n let graph = [] as Array<Entity>;\r\n let rootType: EntityType;\r\n let roots = Array.isArray(root) ? root : [root];\r\n addToGraph(roots); // removes dups & nulls\r\n roots = graph.slice(); // copy of de-duped roots\r\n if (roots.length) {\r\n getRootInfo();\r\n getExpand();\r\n buildGraph();\r\n }\r\n return graph;\r\n\r\n function addToGraph(entities: Array<Entity>) {\r\n entities.forEach(function (entity) {\r\n if (entity && graph.indexOf(entity) < 0) {\r\n graph.push(entity);\r\n }\r\n });\r\n }\r\n\r\n function getRootInfo() {\r\n let compatTypes: Array<EntityType>;\r\n\r\n roots.forEach(function (root, ix) {\r\n let aspect;\r\n if (!root || !(aspect = root.entityAspect)) {\r\n throw getRootErr(ix, 'is not an entity');\r\n }\r\n if (aspect.entityState === EntityState.Detached) {\r\n throw getRootErr(ix, 'is a detached entity');\r\n }\r\n\r\n let em = aspect.entityManager;\r\n if (entityGroupMap) {\r\n if (entityGroupMap !== em._entityGroupMap) {\r\n throw getRootErr(ix, \"has a different 'EntityManager' than other roots\");\r\n }\r\n } else {\r\n entityGroupMap = em._entityGroupMap;\r\n }\r\n getRootType(root, ix);\r\n\r\n });\r\n\r\n function getRootErr(ix: number, msg: string) {\r\n return new Error(\"'getEntityGraph' root[\" + ix + \"] \" + msg);\r\n }\r\n\r\n function getRootType(root: Entity, ix: number) {\r\n let thisType = root.entityType;\r\n if (!rootType) {\r\n rootType = thisType;\r\n return;\r\n } else if (rootType === thisType) {\r\n return;\r\n }\r\n // Types differs. Look for closest common base type\r\n // does thisType derive from current rootType?\r\n let baseType = rootType;\r\n do {\r\n compatTypes = compatTypes || baseType.getSelfAndSubtypes();\r\n if (compatTypes.indexOf(thisType) > -1) {\r\n rootType = baseType;\r\n return;\r\n }\r\n baseType = baseType.baseEntityType;\r\n compatTypes = null;\r\n } while (baseType);\r\n\r\n // does current rootType derives from thisType?\r\n baseType = thisType;\r\n do {\r\n compatTypes = baseType.getSelfAndSubtypes();\r\n if (compatTypes.indexOf(rootType) > -1) {\r\n rootType = baseType;\r\n return;\r\n }\r\n baseType = baseType.baseEntityType;\r\n } while (baseType);\r\n\r\n throw getRootErr(ix, \"is not EntityType-compatible with other roots\");\r\n }\r\n }\r\n\r\n function getExpand() {\r\n try {\r\n if (!expand) {\r\n expand = [];\r\n } else if (typeof expand === 'string') {\r\n // tricky because Breeze expandClause not exposed publically\r\n expand = new EntityQuery().expand(expand).expandClause;\r\n }\r\n if (expand instanceof ExpandClause && expand.propertyPaths) { // expand clause\r\n expand = expand.propertyPaths;\r\n } else if (Array.isArray(expand)) {\r\n if (!expand.every(function (elem) { return typeof elem === 'string'; })) {\r\n throw '';\r\n }\r\n } else {\r\n throw '';\r\n }\r\n } catch (_) {\r\n throw new Error(\r\n \"expand must be an expand string, array of string paths, or a query expand clause\");\r\n }\r\n }\r\n\r\n function buildGraph() {\r\n if (expand && expand instanceof Array && expand.length) {\r\n let fns = expand.map(makePathFn);\r\n fns.forEach(function (fn) { fn(roots); });\r\n }\r\n }\r\n\r\n // Make function to get entities along a single expand path\r\n // such as 'Orders.OrderDetails.Product'\r\n function makePathFn(path: string) {\r\n let fns = [] as Array<Function>,\r\n segments = path.split('.'),\r\n type = rootType;\r\n\r\n for (let i = 0, slen = segments.length; i < slen; i++) {\r\n let f = makePathSegmentFn(type, segments[i]);\r\n type = (f as any).navType;\r\n fns.push(f);\r\n }\r\n\r\n return function pathFn(entities: Array<Entity>) {\r\n for (let j = 0, flen = fns.length; j < flen; j++) {\r\n let elen = entities.length;\r\n if (elen === 0) { return; } // nothing left to explore\r\n // fn to get related entities for this path segment\r\n let fn = fns[j];\r\n // get entities related by this path segment\r\n let related = [] as Array<Entity>;\r\n for (let k = 0; k < elen; k++) {\r\n related = related.concat(fn(entities[k]));\r\n }\r\n addToGraph(related);\r\n if (j >= flen - 1) { return; } // no more path segments\r\n\r\n // reset entities to deduped related entities\r\n entities = [];\r\n for (let l = 0, rlen = related.length; l < rlen; l++) {\r\n let r = related[l];\r\n if (entities.indexOf(r) < 0) { entities.push(r); }\r\n }\r\n }\r\n };\r\n }\r\n\r\n // Make function to get entities along a single expand path segment\r\n // such as the 'OrderDetails' in the 'Orders.OrderDetails.Product' path\r\n function makePathSegmentFn(baseType: EntityType, segment: string) {\r\n let baseTypeName: string, fn = undefined, navType;\r\n try {\r\n baseTypeName = baseType.name;\r\n let nav = baseType.getNavigationProperty(segment);\r\n let fkName = nav.foreignKeyNames[0];\r\n if (!nav) {\r\n throw new Error(segment + \" is not a navigation property of \" + baseTypeName);\r\n }\r\n navType = nav.entityType;\r\n // add derived types\r\n let navTypes = navType.getSelfAndSubtypes();\r\n let grps = [] as Array<EntityGroup>; // non-empty groups for these types\r\n navTypes.forEach(function (t) {\r\n let grp = entityGroupMap[t.name];\r\n if (grp && grp._entities.length > 0) {\r\n grps.push(grp);\r\n }\r\n });\r\n let grpCount = grps.length;\r\n if (grpCount === 0) {\r\n // no related entities in cache\r\n fn = function () { return [] as Array<Entity>; };\r\n } else if (fkName) {\r\n fn = function (entity: Entity) {\r\n let val = null;\r\n try {\r\n let keyValue = entity.getProperty(fkName);\r\n for (let i = 0; i < grpCount; i += 1) {\r\n val = grps[i]._entities[grps[i]._indexMap[keyValue]];\r\n if (val) { break; }\r\n }\r\n } catch (e) { rethrow(e); }\r\n return val;\r\n };\r\n } else {\r\n fkName = nav.inverse ?\r\n nav.inverse.foreignKeyNames[0] :\r\n nav.invForeignKeyNames[0];\r\n if (!fkName) { throw new Error(\"No inverse keys\"); }\r\n fn = function (entity: Entity) {\r\n let vals = [] as Array<Entity>;\r\n try {\r\n let keyValue = entity.entityAspect.getKey().values[0];\r\n grps.forEach(function (grp) {\r\n vals = vals.concat(grp._entities.filter(function (en) {\r\n return en && en.getProperty(fkName) === keyValue;\r\n }));\r\n });\r\n } catch (e) { rethrow(e); }\r\n return vals;\r\n };\r\n }\r\n (fn as any).navType = navType;\r\n (fn as any).path = segment;\r\n\r\n } catch (err) { rethrow(err); }\r\n return fn;\r\n\r\n function rethrow(e: Error) {\r\n let typeName = baseTypeName || baseType;\r\n let error = new Error(\"'getEntityGraph' can't expand '\" + segment + \"' for \" + typeName);\r\n (error as any).innerError = e;\r\n throw error;\r\n }\r\n }\r\n}\r\n\r\n\r\n"],"names":["EntityManager","EntityQuery","EntityState","ExpandClause"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("breeze-client")):"function"==typeof define&&define.amd?define("breeze-client/mixin-get-entity-graph",["exports","breeze-client"],t):t(((e=e||self)["breeze-client"]=e["breeze-client"]||{},e["breeze-client"]["mixin-get-entity-graph"]={}),e["breeze-client"])}(this,(function(e,t){"use strict";function n(e){var n=t.EntityManager.prototype;n.getEntityGraph||(n.getEntityGraph=r)}function r(e,n){return e instanceof t.EntityQuery?i(this.executeQueryLocally(e),n||e.expandClause):i(e,n)}function i(e,n){var r,i,a=[],o=Array.isArray(e)?e:[e];return f(o),(o=a.slice()).length&&(function(){var e;function n(e,t){return new Error("'getEntityGraph' root["+e+"] "+t)}o.forEach((function(a,o){var f;if(!a||!(f=a.entityAspect))throw n(o,"is not an entity");if(f.entityState===t.EntityState.Detached)throw n(o,"is a detached entity");var y=f.entityManager;if(r){if(r!==y._entityGroupMap)throw n(o,"has a different 'EntityManager' than other roots")}else r=y._entityGroupMap;!function(t,r){var a=t.entityType;if(i){if(i!==a){var o=i;do{if((e=e||o.getSelfAndSubtypes()).indexOf(a)>-1)return void(i=o);o=o.baseEntityType,e=null}while(o);o=a;do{if((e=o.getSelfAndSubtypes()).indexOf(i)>-1)return void(i=o);o=o.baseEntityType}while(o);throw n(r,"is not EntityType-compatible with other roots")}}else i=a}(a,o)}))}(),function(){try{if(n?"string"==typeof n&&(n=(new t.EntityQuery).expand(n).expandClause):n=[],n instanceof t.ExpandClause&&n.propertyPaths)n=n.propertyPaths;else{if(!Array.isArray(n))throw"";if(!n.every((function(e){return"string"==typeof e})))throw""}}catch(e){throw new Error("expand must be an expand string, array of string paths, or a query expand clause")}}(),function(){if(n&&n instanceof Array&&n.length){n.map(y).forEach((function(e){e(o)}))}}()),a;function f(e){e.forEach((function(e){e&&a.indexOf(e)<0&&a.push(e)}))}function y(e){for(var t=[],n=e.split("."),r=i,a=0,o=n.length;a<o;a++){var y=u(r,n[a]);r=y.navType,t.push(y)}return function(e){for(var n=0,r=t.length;n<r;n++){var i=e.length;if(0===i)return;for(var a=t[n],o=[],y=0;y<i;y++)o=o.concat(a(e[y]));if(f(o),n>=r-1)return;e=[];for(var u=0,c=o.length;u<c;u++){var s=o[u];e.indexOf(s)<0&&e.push(s)}}}}function u(e,t){var n,i,a=void 0;try{n=e.name;var o=e.getNavigationProperty(t),f=o.foreignKeyNames[0];if(!o)throw new Error(t+" is not a navigation property of "+n);var y=(i=o.entityType).getSelfAndSubtypes(),u=[];y.forEach((function(e){var t=r[e.name];t&&t._entities.length>0&&u.push(t)}));var c=u.length;if(0===c)a=function(){return[]};else if(f)a=function(e){var t=null;try{for(var n=e.getProperty(f),r=0;r<c&&!(t=u[r]._entities[u[r]._indexMap[n]]);r+=1);}catch(e){s(e)}return t};else{if(!(f=o.inverse?o.inverse.foreignKeyNames[0]:o.invForeignKeyNames[0]))throw new Error("No inverse keys");a=function(e){var t=[];try{var n=e.entityAspect.getKey().values[0];u.forEach((function(e){t=t.concat(e._entities.filter((function(e){return e&&e.getProperty(f)===n})))}))}catch(e){s(e)}return t}}a.navType=i,a.path=t}catch(e){s(e)}return a;function s(r){var i=new Error("'getEntityGraph' can't expand '"+t+"' for "+(n||e));throw i.innerError=r,i}}}n(t.EntityManager),e.mixinEntityGraph=n,Object.defineProperty(e,"__esModule",{value:!0})}));
2
- //# sourceMappingURL=breeze-client-mixin-get-entity-graph.umd.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["ng://breeze-client/mixin-get-entity-graph/mixin-get-entity-graph.ts"],"names":["mixinEntityGraph","emclass","proto","EntityManager","prototype","getEntityGraph","roots","expand","EntityQuery","getEntityGraphCore","this","executeQueryLocally","expandClause","root","entityGroupMap","rootType","graph","Array","isArray","addToGraph","slice","length","compatTypes","getRootErr","ix","msg","Error","forEach","aspect","entityAspect","entityState","EntityState","Detached","em","entityManager","_entityGroupMap","thisType","entityType","baseType","getSelfAndSubtypes","indexOf","baseEntityType","getRootType","getRootInfo","ExpandClause","propertyPaths","every","elem","_","getExpand","map","makePathFn","fn","buildGraph","entities","entity","push","path","fns","segments","split","type","i","slen","f","makePathSegmentFn","navType","j","flen","elen","related","k","concat","l","rlen","r","segment","baseTypeName","undefined","name","nav","getNavigationProperty","fkName_1","foreignKeyNames","navTypes","grps_1","t","grp","_entities","grpCount_1","val","keyValue","getProperty","_indexMap","e","rethrow","inverse","invForeignKeyNames","vals","keyValue_1","getKey","values","filter","en","err","error","innerError"],"mappings":"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","sourcesContent":["//#region Copyright, Version, and Description\r\n/*\r\n * Copyright 2015-2021 IdeaBlade, Inc. All Rights Reserved.\r\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\r\n * conditions of the IdeaBlade Breeze license, available at http://www.breezejs.com/license\r\n *\r\n * Author: Ward Bell\r\n * Version: 0.9.5 - Steve Schmitt - convert to TypeScript, migrate to breeze-client repo, add HasEntityGraph and mixinEntityGraph\r\n * Version: 0.9.4 - Marcel Good - fix UMD module name\r\n * --------------------------------------------------------------------------------\r\n * Adds getEntityGraph method to Breeze EntityManager prototype.\r\n * Call mixinEntityGraph(EntityManager) to apply the mixin in a tree-shaking-resistant way.\r\n * Then (manager as any).getEntityGraph(entity, \"child\");\r\n *\r\n * Depends on Breeze which it patches\r\n *\r\n * For discussion, see:\r\n * http://www.breezejs.com/documentation/getentitygraph\r\n *\r\n * For example usage, see:\r\n * https://github.com/Breeze/breeze.js.samples/tree/master/net/DocCode/DocCode/tests/getEntityGraphTests.js\r\n */\r\n//#endregion\r\nimport { Entity, EntityManager, EntityQuery, EntityState, EntityType, ExpandClause } from 'breeze-client';\r\n\r\ninterface EntityGroup {\r\n _entities: (Entity | null)[];\r\n _indexMap: { [index: string]: number };\r\n}\r\n\r\n// module augmentation failed to build with ng-packagr, so we have a separate interface\r\nexport interface HasEntityGraph extends EntityManager {\r\n /**\r\n Get related entities of root entity (or root entities) as specified by expand.\r\n @example\r\n var graph = breeze.EntityManager.getEntityGraph(customer, 'Orders.OrderDetails');\r\n // graph will be the customer, all of its orders and their details even if deleted.\r\n @method getEntityGraph\r\n @param roots {Entity|Array of Entity} The root entity or root entities.\r\n @param expand {String|Array of String|Object} an expand string, a query expand clause, or array of string paths\r\n @return {Array of Entity} root entities and their related entities, including deleted entities. Duplicates are removed and entity order is indeterminate.\r\n **/\r\n getEntityGraph(roots: Entity | Array<Entity>, expand: string | Array<string> | ExpandClause): Array<Entity>;\r\n\r\n /**\r\n Execute query locally and return both the query results and their related entities as specified by the optional expand parameter or the query's expand clause.\r\n @example\r\n var query = breeze.EntityQuery.from('Customers')\r\n .where('CompanyName', 'startsWith', 'Alfred')\r\n .expand('Orders.OrderDetails');\r\n var graph = manager.getEntityGraph(query);\r\n // graph will be the 'Alfred' customers, their orders and their details even if deleted.\r\n @method getEntityGraph\r\n @param query {EntityQuery} A query to be executed against the manager's local cache.\r\n @param [expand] {String|Array of String|Object} an expand string, a query expand clause, or array of string paths\r\n @return {Array of Entity} local queried root entities and their related entities, including deleted entities. Duplicates are removed and entity order is indeterminate.\r\n **/\r\n getEntityGraph(query: EntityQuery, expand: string | Array<string> | ExpandClause): Array<Entity>;\r\n\r\n}\r\n\r\nexport function mixinEntityGraph(emclass: { new(): EntityManager }) {\r\n const proto = EntityManager.prototype;\r\n\r\n if (!(proto as any).getEntityGraph) {\r\n (proto as any).getEntityGraph = getEntityGraph;\r\n }\r\n}\r\n\r\nmixinEntityGraph(EntityManager);\r\n\r\n\r\nfunction getEntityGraph(roots: Entity | Array<Entity> | EntityQuery, expand: string | Array<string> | ExpandClause) {\r\n if (roots instanceof EntityQuery) {\r\n let newRoots = this.executeQueryLocally(roots);\r\n return getEntityGraphCore(newRoots, expand || roots.expandClause);\r\n } else {\r\n return getEntityGraphCore(roots, expand);\r\n }\r\n}\r\n\r\nfunction getEntityGraphCore(root: Entity | Array<Entity>, expand: string | Array<string> | ExpandClause) {\r\n let entityGroupMap: { [index: string]: EntityGroup };\r\n let graph = [] as Array<Entity>;\r\n let rootType: EntityType;\r\n let roots = Array.isArray(root) ? root : [root];\r\n addToGraph(roots); // removes dups & nulls\r\n roots = graph.slice(); // copy of de-duped roots\r\n if (roots.length) {\r\n getRootInfo();\r\n getExpand();\r\n buildGraph();\r\n }\r\n return graph;\r\n\r\n function addToGraph(entities: Array<Entity>) {\r\n entities.forEach(function (entity) {\r\n if (entity && graph.indexOf(entity) < 0) {\r\n graph.push(entity);\r\n }\r\n });\r\n }\r\n\r\n function getRootInfo() {\r\n let compatTypes: Array<EntityType>;\r\n\r\n roots.forEach(function (root, ix) {\r\n let aspect;\r\n if (!root || !(aspect = root.entityAspect)) {\r\n throw getRootErr(ix, 'is not an entity');\r\n }\r\n if (aspect.entityState === EntityState.Detached) {\r\n throw getRootErr(ix, 'is a detached entity');\r\n }\r\n\r\n let em = aspect.entityManager;\r\n if (entityGroupMap) {\r\n if (entityGroupMap !== em._entityGroupMap) {\r\n throw getRootErr(ix, \"has a different 'EntityManager' than other roots\");\r\n }\r\n } else {\r\n entityGroupMap = em._entityGroupMap;\r\n }\r\n getRootType(root, ix);\r\n\r\n });\r\n\r\n function getRootErr(ix: number, msg: string) {\r\n return new Error(\"'getEntityGraph' root[\" + ix + \"] \" + msg);\r\n }\r\n\r\n function getRootType(root: Entity, ix: number) {\r\n let thisType = root.entityType;\r\n if (!rootType) {\r\n rootType = thisType;\r\n return;\r\n } else if (rootType === thisType) {\r\n return;\r\n }\r\n // Types differs. Look for closest common base type\r\n // does thisType derive from current rootType?\r\n let baseType = rootType;\r\n do {\r\n compatTypes = compatTypes || baseType.getSelfAndSubtypes();\r\n if (compatTypes.indexOf(thisType) > -1) {\r\n rootType = baseType;\r\n return;\r\n }\r\n baseType = baseType.baseEntityType;\r\n compatTypes = null;\r\n } while (baseType);\r\n\r\n // does current rootType derives from thisType?\r\n baseType = thisType;\r\n do {\r\n compatTypes = baseType.getSelfAndSubtypes();\r\n if (compatTypes.indexOf(rootType) > -1) {\r\n rootType = baseType;\r\n return;\r\n }\r\n baseType = baseType.baseEntityType;\r\n } while (baseType);\r\n\r\n throw getRootErr(ix, \"is not EntityType-compatible with other roots\");\r\n }\r\n }\r\n\r\n function getExpand() {\r\n try {\r\n if (!expand) {\r\n expand = [];\r\n } else if (typeof expand === 'string') {\r\n // tricky because Breeze expandClause not exposed publically\r\n expand = new EntityQuery().expand(expand).expandClause;\r\n }\r\n if (expand instanceof ExpandClause && expand.propertyPaths) { // expand clause\r\n expand = expand.propertyPaths;\r\n } else if (Array.isArray(expand)) {\r\n if (!expand.every(function (elem) { return typeof elem === 'string'; })) {\r\n throw '';\r\n }\r\n } else {\r\n throw '';\r\n }\r\n } catch (_) {\r\n throw new Error(\r\n \"expand must be an expand string, array of string paths, or a query expand clause\");\r\n }\r\n }\r\n\r\n function buildGraph() {\r\n if (expand && expand instanceof Array && expand.length) {\r\n let fns = expand.map(makePathFn);\r\n fns.forEach(function (fn) { fn(roots); });\r\n }\r\n }\r\n\r\n // Make function to get entities along a single expand path\r\n // such as 'Orders.OrderDetails.Product'\r\n function makePathFn(path: string) {\r\n let fns = [] as Array<Function>,\r\n segments = path.split('.'),\r\n type = rootType;\r\n\r\n for (let i = 0, slen = segments.length; i < slen; i++) {\r\n let f = makePathSegmentFn(type, segments[i]);\r\n type = (f as any).navType;\r\n fns.push(f);\r\n }\r\n\r\n return function pathFn(entities: Array<Entity>) {\r\n for (let j = 0, flen = fns.length; j < flen; j++) {\r\n let elen = entities.length;\r\n if (elen === 0) { return; } // nothing left to explore\r\n // fn to get related entities for this path segment\r\n let fn = fns[j];\r\n // get entities related by this path segment\r\n let related = [] as Array<Entity>;\r\n for (let k = 0; k < elen; k++) {\r\n related = related.concat(fn(entities[k]));\r\n }\r\n addToGraph(related);\r\n if (j >= flen - 1) { return; } // no more path segments\r\n\r\n // reset entities to deduped related entities\r\n entities = [];\r\n for (let l = 0, rlen = related.length; l < rlen; l++) {\r\n let r = related[l];\r\n if (entities.indexOf(r) < 0) { entities.push(r); }\r\n }\r\n }\r\n };\r\n }\r\n\r\n // Make function to get entities along a single expand path segment\r\n // such as the 'OrderDetails' in the 'Orders.OrderDetails.Product' path\r\n function makePathSegmentFn(baseType: EntityType, segment: string) {\r\n let baseTypeName: string, fn = undefined, navType;\r\n try {\r\n baseTypeName = baseType.name;\r\n let nav = baseType.getNavigationProperty(segment);\r\n let fkName = nav.foreignKeyNames[0];\r\n if (!nav) {\r\n throw new Error(segment + \" is not a navigation property of \" + baseTypeName);\r\n }\r\n navType = nav.entityType;\r\n // add derived types\r\n let navTypes = navType.getSelfAndSubtypes();\r\n let grps = [] as Array<EntityGroup>; // non-empty groups for these types\r\n navTypes.forEach(function (t) {\r\n let grp = entityGroupMap[t.name];\r\n if (grp && grp._entities.length > 0) {\r\n grps.push(grp);\r\n }\r\n });\r\n let grpCount = grps.length;\r\n if (grpCount === 0) {\r\n // no related entities in cache\r\n fn = function () { return [] as Array<Entity>; };\r\n } else if (fkName) {\r\n fn = function (entity: Entity) {\r\n let val = null;\r\n try {\r\n let keyValue = entity.getProperty(fkName);\r\n for (let i = 0; i < grpCount; i += 1) {\r\n val = grps[i]._entities[grps[i]._indexMap[keyValue]];\r\n if (val) { break; }\r\n }\r\n } catch (e) { rethrow(e); }\r\n return val;\r\n };\r\n } else {\r\n fkName = nav.inverse ?\r\n nav.inverse.foreignKeyNames[0] :\r\n nav.invForeignKeyNames[0];\r\n if (!fkName) { throw new Error(\"No inverse keys\"); }\r\n fn = function (entity: Entity) {\r\n let vals = [] as Array<Entity>;\r\n try {\r\n let keyValue = entity.entityAspect.getKey().values[0];\r\n grps.forEach(function (grp) {\r\n vals = vals.concat(grp._entities.filter(function (en) {\r\n return en && en.getProperty(fkName) === keyValue;\r\n }));\r\n });\r\n } catch (e) { rethrow(e); }\r\n return vals;\r\n };\r\n }\r\n (fn as any).navType = navType;\r\n (fn as any).path = segment;\r\n\r\n } catch (err) { rethrow(err); }\r\n return fn;\r\n\r\n function rethrow(e: Error) {\r\n let typeName = baseTypeName || baseType;\r\n let error = new Error(\"'getEntityGraph' can't expand '\" + segment + \"' for \" + typeName);\r\n (error as any).innerError = e;\r\n throw error;\r\n }\r\n }\r\n}\r\n\r\n\r\n"]}