breeze-client 2.2.1-cjs → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/adapter-ajax-angularjs/{breeze-client-adapter-ajax-angularjs.d.ts → index.d.ts} +1 -0
  2. package/adapter-ajax-fetch/{breeze-client-adapter-ajax-fetch.d.ts → index.d.ts} +1 -0
  3. package/adapter-ajax-httpclient/{breeze-client-adapter-ajax-httpclient.d.ts → index.d.ts} +1 -0
  4. package/adapter-ajax-jquery/{breeze-client-adapter-ajax-jquery.d.ts → index.d.ts} +1 -0
  5. package/adapter-ajax-post/{breeze-client-adapter-ajax-post.d.ts → index.d.ts} +1 -0
  6. package/adapter-data-service-odata/{breeze-client-adapter-data-service-odata.d.ts → index.d.ts} +1 -0
  7. package/adapter-data-service-webapi/{breeze-client-adapter-data-service-webapi.d.ts → index.d.ts} +1 -0
  8. package/adapter-model-library-backing-store/{breeze-client-adapter-model-library-backing-store.d.ts → index.d.ts} +1 -0
  9. package/adapter-model-library-ko/{breeze-client-adapter-model-library-ko.d.ts → index.d.ts} +1 -0
  10. package/adapter-uri-builder-json/{breeze-client-adapter-uri-builder-json.d.ts → index.d.ts} +1 -0
  11. package/adapter-uri-builder-odata/{breeze-client-adapter-uri-builder-odata.d.ts → index.d.ts} +1 -0
  12. package/esm2022/adapter-ajax-angularjs/adapter-ajax-angularjs.mjs +135 -0
  13. package/esm2022/adapter-ajax-angularjs/adapter-core.mjs +49 -0
  14. package/esm2022/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.mjs +5 -0
  15. package/esm2022/adapter-ajax-fetch/adapter-ajax-fetch.mjs +135 -0
  16. package/esm2022/adapter-ajax-fetch/adapter-core.mjs +49 -0
  17. package/esm2022/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.mjs +5 -0
  18. package/esm2022/adapter-ajax-httpclient/adapter-ajax-httpclient.mjs +139 -0
  19. package/esm2022/adapter-ajax-httpclient/adapter-core.mjs +49 -0
  20. package/esm2022/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.mjs +5 -0
  21. package/esm2022/adapter-ajax-jquery/adapter-ajax-jquery.mjs +107 -0
  22. package/esm2022/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.mjs +5 -0
  23. package/esm2022/adapter-ajax-post/adapter-ajax-post.mjs +77 -0
  24. package/esm2022/adapter-ajax-post/breeze-client-adapter-ajax-post.mjs +5 -0
  25. package/esm2022/adapter-data-service-odata/adapter-core.mjs +49 -0
  26. package/{esm5/adapter-data-service-odata/adapter-data-service-odata.js → esm2022/adapter-data-service-odata/adapter-data-service-odata.mjs} +138 -147
  27. package/esm2022/adapter-data-service-odata/breeze-client-adapter-data-service-odata.mjs +5 -0
  28. package/esm2022/adapter-data-service-webapi/adapter-data-service-webapi.mjs +100 -0
  29. package/esm2022/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.mjs +5 -0
  30. package/esm2022/adapter-model-library-backing-store/adapter-model-library-backing-store.mjs +269 -0
  31. package/esm2022/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.mjs +5 -0
  32. package/esm2022/adapter-model-library-ko/adapter-model-library-ko.mjs +241 -0
  33. package/esm2022/adapter-model-library-ko/breeze-client-adapter-model-library-ko.mjs +5 -0
  34. package/esm2022/adapter-uri-builder-json/adapter-core.mjs +49 -0
  35. package/esm2022/adapter-uri-builder-json/adapter-uri-builder-json.mjs +37 -0
  36. package/esm2022/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.mjs +5 -0
  37. package/esm2022/adapter-uri-builder-odata/adapter-core.mjs +49 -0
  38. package/esm2022/adapter-uri-builder-odata/adapter-uri-builder-odata.mjs +191 -0
  39. package/esm2022/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.mjs +5 -0
  40. package/esm2022/breeze-client.mjs +5 -0
  41. package/esm2022/index.mjs +2 -0
  42. package/esm2022/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.mjs +5 -0
  43. package/esm2022/mixin-get-entity-graph/mixin-get-entity-graph.mjs +269 -0
  44. package/esm2022/mixin-save-queuing/breeze-client-mixin-save-queuing.mjs +5 -0
  45. package/esm2022/mixin-save-queuing/mixin-save-queuing.mjs +421 -0
  46. package/esm2022/src/abstract-data-service-adapter.mjs +325 -0
  47. package/esm2022/src/array.mjs +4 -0
  48. package/esm2022/src/assert-param.mjs +330 -0
  49. package/esm2022/src/breeze.mjs +85 -0
  50. package/esm2022/src/complex-array.mjs +117 -0
  51. package/esm2022/src/config.mjs +232 -0
  52. package/esm2022/src/core.mjs +712 -0
  53. package/esm2022/src/csdl-metadata-parser.mjs +385 -0
  54. package/esm2022/src/data-service.mjs +221 -0
  55. package/esm2022/src/data-type.mjs +510 -0
  56. package/esm2022/src/default-property-interceptor.mjs +460 -0
  57. package/{esm2015/src/entity-action.js → esm2022/src/entity-action.mjs} +25 -25
  58. package/esm2022/src/entity-aspect.mjs +897 -0
  59. package/esm2022/src/entity-group.mjs +192 -0
  60. package/esm2022/src/entity-key.mjs +125 -0
  61. package/esm2022/src/entity-manager.mjs +2163 -0
  62. package/esm2022/src/entity-metadata.mjs +2242 -0
  63. package/esm2022/src/entity-query.mjs +1024 -0
  64. package/esm2022/src/entity-state.mjs +107 -0
  65. package/esm2022/src/enum.mjs +143 -0
  66. package/esm2022/src/event.mjs +264 -0
  67. package/esm2022/src/interface-registry.mjs +39 -0
  68. package/esm2022/src/key-generator.mjs +110 -0
  69. package/esm2022/src/local-query-comparison-options.mjs +65 -0
  70. package/esm2022/src/mapping-context.mjs +411 -0
  71. package/esm2022/src/naming-convention.mjs +92 -0
  72. package/esm2022/src/observable-array.mjs +183 -0
  73. package/esm2022/src/predicate.mjs +1259 -0
  74. package/esm2022/src/primitive-array.mjs +85 -0
  75. package/esm2022/src/query-options.mjs +152 -0
  76. package/esm2022/src/relation-array.mjs +173 -0
  77. package/esm2022/src/save-options.mjs +41 -0
  78. package/esm2022/src/unattached-children-map.mjs +56 -0
  79. package/esm2022/src/validate.mjs +995 -0
  80. package/esm2022/src/validation-options.mjs +64 -0
  81. package/{fesm2015/breeze-client-adapter-ajax-angularjs.js → fesm2022/breeze-client-adapter-ajax-angularjs.mjs} +6 -1
  82. package/fesm2022/breeze-client-adapter-ajax-angularjs.mjs.map +1 -0
  83. package/{fesm2015/breeze-client-adapter-ajax-fetch.js → fesm2022/breeze-client-adapter-ajax-fetch.mjs} +9 -4
  84. package/fesm2022/breeze-client-adapter-ajax-fetch.mjs.map +1 -0
  85. package/{fesm2015/breeze-client-adapter-ajax-httpclient.js → fesm2022/breeze-client-adapter-ajax-httpclient.mjs} +6 -4
  86. package/fesm2022/breeze-client-adapter-ajax-httpclient.mjs.map +1 -0
  87. package/{fesm2015/breeze-client-adapter-ajax-jquery.js → fesm2022/breeze-client-adapter-ajax-jquery.mjs} +6 -2
  88. package/fesm2022/breeze-client-adapter-ajax-jquery.mjs.map +1 -0
  89. package/{fesm2015/breeze-client-adapter-ajax-post.js → fesm2022/breeze-client-adapter-ajax-post.mjs} +1 -1
  90. package/fesm2022/breeze-client-adapter-ajax-post.mjs.map +1 -0
  91. package/{fesm2015/breeze-client-adapter-data-service-odata.js → fesm2022/breeze-client-adapter-data-service-odata.mjs} +68 -69
  92. package/fesm2022/breeze-client-adapter-data-service-odata.mjs.map +1 -0
  93. package/{fesm2015/breeze-client-adapter-data-service-webapi.js → fesm2022/breeze-client-adapter-data-service-webapi.mjs} +30 -30
  94. package/fesm2022/breeze-client-adapter-data-service-webapi.mjs.map +1 -0
  95. package/{fesm2015/breeze-client-adapter-model-library-backing-store.js → fesm2022/breeze-client-adapter-model-library-backing-store.mjs} +14 -13
  96. package/fesm2022/breeze-client-adapter-model-library-backing-store.mjs.map +1 -0
  97. package/{fesm2015/breeze-client-adapter-model-library-ko.js → fesm2022/breeze-client-adapter-model-library-ko.mjs} +14 -13
  98. package/fesm2022/breeze-client-adapter-model-library-ko.mjs.map +1 -0
  99. package/{fesm2015/breeze-client-adapter-uri-builder-json.js → fesm2022/breeze-client-adapter-uri-builder-json.mjs} +9 -8
  100. package/fesm2022/breeze-client-adapter-uri-builder-json.mjs.map +1 -0
  101. package/{fesm2015/breeze-client-adapter-uri-builder-odata.js → fesm2022/breeze-client-adapter-uri-builder-odata.mjs} +86 -86
  102. package/fesm2022/breeze-client-adapter-uri-builder-odata.mjs.map +1 -0
  103. package/{fesm2015/breeze-client-mixin-get-entity-graph.js → fesm2022/breeze-client-mixin-get-entity-graph.mjs} +1 -1
  104. package/fesm2022/breeze-client-mixin-get-entity-graph.mjs.map +1 -0
  105. package/{fesm2015/breeze-client-mixin-save-queuing.js → fesm2022/breeze-client-mixin-save-queuing.mjs} +23 -2
  106. package/fesm2022/breeze-client-mixin-save-queuing.mjs.map +1 -0
  107. package/{fesm2015/breeze-client.js → fesm2022/breeze-client.mjs} +1933 -1538
  108. package/fesm2022/breeze-client.mjs.map +1 -0
  109. package/mixin-get-entity-graph/{breeze-client-mixin-get-entity-graph.d.ts → index.d.ts} +1 -0
  110. package/mixin-save-queuing/{breeze-client-mixin-save-queuing.d.ts → index.d.ts} +1 -0
  111. package/package.json +94 -12
  112. package/src/config.d.ts +1 -1
  113. package/src/core.d.ts +1 -1
  114. package/src/entity-aspect.d.ts +1 -1
  115. package/src/entity-metadata.d.ts +8 -6
  116. package/src/entity-query.d.ts +1 -1
  117. package/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.metadata.json +0 -1
  118. package/adapter-ajax-angularjs/package.json +0 -13
  119. package/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.metadata.json +0 -1
  120. package/adapter-ajax-fetch/package.json +0 -13
  121. package/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.metadata.json +0 -1
  122. package/adapter-ajax-httpclient/package.json +0 -13
  123. package/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.metadata.json +0 -1
  124. package/adapter-ajax-jquery/package.json +0 -13
  125. package/adapter-ajax-post/breeze-client-adapter-ajax-post.metadata.json +0 -1
  126. package/adapter-ajax-post/package.json +0 -13
  127. package/adapter-data-service-odata/breeze-client-adapter-data-service-odata.metadata.json +0 -1
  128. package/adapter-data-service-odata/package.json +0 -13
  129. package/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.metadata.json +0 -1
  130. package/adapter-data-service-webapi/package.json +0 -13
  131. package/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.metadata.json +0 -1
  132. package/adapter-model-library-backing-store/package.json +0 -13
  133. package/adapter-model-library-ko/breeze-client-adapter-model-library-ko.metadata.json +0 -1
  134. package/adapter-model-library-ko/package.json +0 -13
  135. package/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.metadata.json +0 -1
  136. package/adapter-uri-builder-json/package.json +0 -13
  137. package/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.metadata.json +0 -1
  138. package/adapter-uri-builder-odata/package.json +0 -13
  139. package/breeze-client.d.ts +0 -8
  140. package/breeze-client.metadata.json +0 -1
  141. package/bundles/breeze-client-adapter-ajax-angularjs.umd.js +0 -190
  142. package/bundles/breeze-client-adapter-ajax-angularjs.umd.js.map +0 -1
  143. package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js +0 -2
  144. package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js.map +0 -1
  145. package/bundles/breeze-client-adapter-ajax-fetch.umd.js +0 -190
  146. package/bundles/breeze-client-adapter-ajax-fetch.umd.js.map +0 -1
  147. package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js +0 -2
  148. package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js.map +0 -1
  149. package/bundles/breeze-client-adapter-ajax-httpclient.umd.js +0 -195
  150. package/bundles/breeze-client-adapter-ajax-httpclient.umd.js.map +0 -1
  151. package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js +0 -2
  152. package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js.map +0 -1
  153. package/bundles/breeze-client-adapter-ajax-jquery.umd.js +0 -115
  154. package/bundles/breeze-client-adapter-ajax-jquery.umd.js.map +0 -1
  155. package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js +0 -2
  156. package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js.map +0 -1
  157. package/bundles/breeze-client-adapter-ajax-post.umd.js +0 -92
  158. package/bundles/breeze-client-adapter-ajax-post.umd.js.map +0 -1
  159. package/bundles/breeze-client-adapter-ajax-post.umd.min.js +0 -2
  160. package/bundles/breeze-client-adapter-ajax-post.umd.min.js.map +0 -1
  161. package/bundles/breeze-client-adapter-data-service-odata.umd.js +0 -747
  162. package/bundles/breeze-client-adapter-data-service-odata.umd.js.map +0 -1
  163. package/bundles/breeze-client-adapter-data-service-odata.umd.min.js +0 -16
  164. package/bundles/breeze-client-adapter-data-service-odata.umd.min.js.map +0 -1
  165. package/bundles/breeze-client-adapter-data-service-webapi.umd.js +0 -333
  166. package/bundles/breeze-client-adapter-data-service-webapi.umd.js.map +0 -1
  167. package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js +0 -16
  168. package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js.map +0 -1
  169. package/bundles/breeze-client-adapter-model-library-backing-store.umd.js +0 -280
  170. package/bundles/breeze-client-adapter-model-library-backing-store.umd.js.map +0 -1
  171. package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js +0 -2
  172. package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js.map +0 -1
  173. package/bundles/breeze-client-adapter-model-library-ko.umd.js +0 -252
  174. package/bundles/breeze-client-adapter-model-library-ko.umd.js.map +0 -1
  175. package/bundles/breeze-client-adapter-model-library-ko.umd.min.js +0 -2
  176. package/bundles/breeze-client-adapter-model-library-ko.umd.min.js.map +0 -1
  177. package/bundles/breeze-client-adapter-uri-builder-json.umd.js +0 -96
  178. package/bundles/breeze-client-adapter-uri-builder-json.umd.js.map +0 -1
  179. package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js +0 -2
  180. package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js.map +0 -1
  181. package/bundles/breeze-client-adapter-uri-builder-odata.umd.js +0 -262
  182. package/bundles/breeze-client-adapter-uri-builder-odata.umd.js.map +0 -1
  183. package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js +0 -2
  184. package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js.map +0 -1
  185. package/bundles/breeze-client-mixin-get-entity-graph.umd.js +0 -258
  186. package/bundles/breeze-client-mixin-get-entity-graph.umd.js.map +0 -1
  187. package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js +0 -2
  188. package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js.map +0 -1
  189. package/bundles/breeze-client-mixin-save-queuing.umd.js +0 -579
  190. package/bundles/breeze-client-mixin-save-queuing.umd.js.map +0 -1
  191. package/bundles/breeze-client-mixin-save-queuing.umd.min.js +0 -16
  192. package/bundles/breeze-client-mixin-save-queuing.umd.min.js.map +0 -1
  193. package/bundles/breeze-client.umd.js +0 -14234
  194. package/bundles/breeze-client.umd.js.map +0 -1
  195. package/bundles/breeze-client.umd.min.js +0 -16
  196. package/bundles/breeze-client.umd.min.js.map +0 -1
  197. package/esm2015/adapter-ajax-angularjs/adapter-ajax-angularjs.js +0 -130
  198. package/esm2015/adapter-ajax-angularjs/adapter-core.js +0 -49
  199. package/esm2015/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +0 -5
  200. package/esm2015/adapter-ajax-fetch/adapter-ajax-fetch.js +0 -130
  201. package/esm2015/adapter-ajax-fetch/adapter-core.js +0 -49
  202. package/esm2015/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +0 -5
  203. package/esm2015/adapter-ajax-httpclient/adapter-ajax-httpclient.js +0 -137
  204. package/esm2015/adapter-ajax-httpclient/adapter-core.js +0 -49
  205. package/esm2015/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +0 -5
  206. package/esm2015/adapter-ajax-jquery/adapter-ajax-jquery.js +0 -103
  207. package/esm2015/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +0 -5
  208. package/esm2015/adapter-ajax-post/adapter-ajax-post.js +0 -77
  209. package/esm2015/adapter-ajax-post/breeze-client-adapter-ajax-post.js +0 -5
  210. package/esm2015/adapter-data-service-odata/adapter-core.js +0 -49
  211. package/esm2015/adapter-data-service-odata/adapter-data-service-odata.js +0 -463
  212. package/esm2015/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +0 -5
  213. package/esm2015/adapter-data-service-webapi/adapter-data-service-webapi.js +0 -100
  214. package/esm2015/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +0 -5
  215. package/esm2015/adapter-model-library-backing-store/adapter-model-library-backing-store.js +0 -268
  216. package/esm2015/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +0 -5
  217. package/esm2015/adapter-model-library-ko/adapter-model-library-ko.js +0 -240
  218. package/esm2015/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +0 -5
  219. package/esm2015/adapter-uri-builder-json/adapter-core.js +0 -49
  220. package/esm2015/adapter-uri-builder-json/adapter-uri-builder-json.js +0 -36
  221. package/esm2015/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +0 -5
  222. package/esm2015/adapter-uri-builder-odata/adapter-core.js +0 -49
  223. package/esm2015/adapter-uri-builder-odata/adapter-uri-builder-odata.js +0 -192
  224. package/esm2015/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +0 -5
  225. package/esm2015/breeze-client.js +0 -9
  226. package/esm2015/index.js +0 -2
  227. package/esm2015/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +0 -5
  228. package/esm2015/mixin-get-entity-graph/mixin-get-entity-graph.js +0 -269
  229. package/esm2015/mixin-save-queuing/breeze-client-mixin-save-queuing.js +0 -5
  230. package/esm2015/mixin-save-queuing/mixin-save-queuing.js +0 -400
  231. package/esm2015/src/abstract-data-service-adapter.js +0 -327
  232. package/esm2015/src/array.js +0 -4
  233. package/esm2015/src/assert-param.js +0 -312
  234. package/esm2015/src/breeze.js +0 -85
  235. package/esm2015/src/complex-array.js +0 -119
  236. package/esm2015/src/config.js +0 -223
  237. package/esm2015/src/core.js +0 -714
  238. package/esm2015/src/csdl-metadata-parser.js +0 -385
  239. package/esm2015/src/data-service.js +0 -203
  240. package/esm2015/src/data-type.js +0 -506
  241. package/esm2015/src/default-property-interceptor.js +0 -460
  242. package/esm2015/src/entity-aspect.js +0 -804
  243. package/esm2015/src/entity-group.js +0 -187
  244. package/esm2015/src/entity-key.js +0 -116
  245. package/esm2015/src/entity-manager.js +0 -2094
  246. package/esm2015/src/entity-metadata.js +0 -2109
  247. package/esm2015/src/entity-query.js +0 -1015
  248. package/esm2015/src/entity-state.js +0 -107
  249. package/esm2015/src/enum.js +0 -141
  250. package/esm2015/src/event.js +0 -256
  251. package/esm2015/src/interface-registry.js +0 -41
  252. package/esm2015/src/key-generator.js +0 -108
  253. package/esm2015/src/local-query-comparison-options.js +0 -65
  254. package/esm2015/src/mapping-context.js +0 -411
  255. package/esm2015/src/naming-convention.js +0 -88
  256. package/esm2015/src/observable-array.js +0 -185
  257. package/esm2015/src/predicate.js +0 -1242
  258. package/esm2015/src/primitive-array.js +0 -87
  259. package/esm2015/src/query-options.js +0 -152
  260. package/esm2015/src/relation-array.js +0 -175
  261. package/esm2015/src/save-options.js +0 -41
  262. package/esm2015/src/unattached-children-map.js +0 -58
  263. package/esm2015/src/validate.js +0 -991
  264. package/esm2015/src/validation-options.js +0 -64
  265. package/esm5/adapter-ajax-angularjs/adapter-ajax-angularjs.js +0 -132
  266. package/esm5/adapter-ajax-angularjs/adapter-core.js +0 -49
  267. package/esm5/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +0 -5
  268. package/esm5/adapter-ajax-fetch/adapter-ajax-fetch.js +0 -132
  269. package/esm5/adapter-ajax-fetch/adapter-core.js +0 -49
  270. package/esm5/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +0 -5
  271. package/esm5/adapter-ajax-httpclient/adapter-ajax-httpclient.js +0 -139
  272. package/esm5/adapter-ajax-httpclient/adapter-core.js +0 -49
  273. package/esm5/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +0 -5
  274. package/esm5/adapter-ajax-jquery/adapter-ajax-jquery.js +0 -105
  275. package/esm5/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +0 -5
  276. package/esm5/adapter-ajax-post/adapter-ajax-post.js +0 -81
  277. package/esm5/adapter-ajax-post/breeze-client-adapter-ajax-post.js +0 -5
  278. package/esm5/adapter-data-service-odata/adapter-core.js +0 -49
  279. package/esm5/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +0 -5
  280. package/esm5/adapter-data-service-webapi/adapter-data-service-webapi.js +0 -105
  281. package/esm5/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +0 -5
  282. package/esm5/adapter-model-library-backing-store/adapter-model-library-backing-store.js +0 -270
  283. package/esm5/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +0 -5
  284. package/esm5/adapter-model-library-ko/adapter-model-library-ko.js +0 -242
  285. package/esm5/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +0 -5
  286. package/esm5/adapter-uri-builder-json/adapter-core.js +0 -49
  287. package/esm5/adapter-uri-builder-json/adapter-uri-builder-json.js +0 -38
  288. package/esm5/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +0 -5
  289. package/esm5/adapter-uri-builder-odata/adapter-core.js +0 -49
  290. package/esm5/adapter-uri-builder-odata/adapter-uri-builder-odata.js +0 -197
  291. package/esm5/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +0 -5
  292. package/esm5/breeze-client.js +0 -9
  293. package/esm5/index.js +0 -2
  294. package/esm5/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +0 -5
  295. package/esm5/mixin-get-entity-graph/mixin-get-entity-graph.js +0 -269
  296. package/esm5/mixin-save-queuing/breeze-client-mixin-save-queuing.js +0 -5
  297. package/esm5/mixin-save-queuing/mixin-save-queuing.js +0 -412
  298. package/esm5/src/abstract-data-service-adapter.js +0 -333
  299. package/esm5/src/array.js +0 -4
  300. package/esm5/src/assert-param.js +0 -317
  301. package/esm5/src/breeze.js +0 -85
  302. package/esm5/src/complex-array.js +0 -119
  303. package/esm5/src/config.js +0 -228
  304. package/esm5/src/core.js +0 -722
  305. package/esm5/src/csdl-metadata-parser.js +0 -385
  306. package/esm5/src/data-service.js +0 -207
  307. package/esm5/src/data-type.js +0 -513
  308. package/esm5/src/default-property-interceptor.js +0 -460
  309. package/esm5/src/entity-action.js +0 -52
  310. package/esm5/src/entity-aspect.js +0 -810
  311. package/esm5/src/entity-group.js +0 -189
  312. package/esm5/src/entity-key.js +0 -118
  313. package/esm5/src/entity-manager.js +0 -2112
  314. package/esm5/src/entity-metadata.js +0 -2144
  315. package/esm5/src/entity-query.js +0 -1042
  316. package/esm5/src/entity-state.js +0 -114
  317. package/esm5/src/enum.js +0 -144
  318. package/esm5/src/event.js +0 -259
  319. package/esm5/src/interface-registry.js +0 -43
  320. package/esm5/src/key-generator.js +0 -111
  321. package/esm5/src/local-query-comparison-options.js +0 -67
  322. package/esm5/src/mapping-context.js +0 -413
  323. package/esm5/src/naming-convention.js +0 -90
  324. package/esm5/src/observable-array.js +0 -201
  325. package/esm5/src/predicate.js +0 -1307
  326. package/esm5/src/primitive-array.js +0 -87
  327. package/esm5/src/query-options.js +0 -167
  328. package/esm5/src/relation-array.js +0 -175
  329. package/esm5/src/save-options.js +0 -43
  330. package/esm5/src/unattached-children-map.js +0 -60
  331. package/esm5/src/validate.js +0 -996
  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 -13956
  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"]}