breeze-client 2.1.3-mjs → 2.1.4

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 (394) hide show
  1. package/README.md +18 -5
  2. package/adapter-ajax-angularjs/{index.d.ts → breeze-client-adapter-ajax-angularjs.d.ts} +0 -1
  3. package/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.metadata.json +1 -0
  4. package/adapter-ajax-angularjs/package.json +13 -0
  5. package/adapter-ajax-fetch/{index.d.ts → breeze-client-adapter-ajax-fetch.d.ts} +0 -1
  6. package/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.metadata.json +1 -0
  7. package/adapter-ajax-fetch/package.json +13 -0
  8. package/adapter-ajax-httpclient/{index.d.ts → breeze-client-adapter-ajax-httpclient.d.ts} +0 -1
  9. package/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.metadata.json +1 -0
  10. package/adapter-ajax-httpclient/package.json +13 -0
  11. package/adapter-ajax-jquery/{index.d.ts → breeze-client-adapter-ajax-jquery.d.ts} +0 -1
  12. package/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.metadata.json +1 -0
  13. package/adapter-ajax-jquery/package.json +13 -0
  14. package/adapter-ajax-post/{index.d.ts → breeze-client-adapter-ajax-post.d.ts} +0 -1
  15. package/adapter-ajax-post/breeze-client-adapter-ajax-post.metadata.json +1 -0
  16. package/adapter-ajax-post/package.json +13 -0
  17. package/adapter-data-service-odata/{index.d.ts → breeze-client-adapter-data-service-odata.d.ts} +0 -1
  18. package/adapter-data-service-odata/breeze-client-adapter-data-service-odata.metadata.json +1 -0
  19. package/adapter-data-service-odata/package.json +13 -0
  20. package/adapter-data-service-webapi/{index.d.ts → breeze-client-adapter-data-service-webapi.d.ts} +0 -1
  21. package/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.metadata.json +1 -0
  22. package/adapter-data-service-webapi/package.json +13 -0
  23. package/adapter-model-library-backing-store/{index.d.ts → breeze-client-adapter-model-library-backing-store.d.ts} +0 -1
  24. package/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.metadata.json +1 -0
  25. package/adapter-model-library-backing-store/package.json +13 -0
  26. package/adapter-model-library-ko/{index.d.ts → breeze-client-adapter-model-library-ko.d.ts} +0 -1
  27. package/adapter-model-library-ko/breeze-client-adapter-model-library-ko.metadata.json +1 -0
  28. package/adapter-model-library-ko/package.json +13 -0
  29. package/adapter-uri-builder-json/{index.d.ts → breeze-client-adapter-uri-builder-json.d.ts} +0 -1
  30. package/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.metadata.json +1 -0
  31. package/adapter-uri-builder-json/package.json +13 -0
  32. package/adapter-uri-builder-odata/{index.d.ts → breeze-client-adapter-uri-builder-odata.d.ts} +0 -1
  33. package/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.metadata.json +1 -0
  34. package/adapter-uri-builder-odata/package.json +13 -0
  35. package/breeze-client.d.ts +8 -0
  36. package/breeze-client.metadata.json +1 -0
  37. package/bundles/breeze-client-adapter-ajax-angularjs.umd.js +190 -0
  38. package/bundles/breeze-client-adapter-ajax-angularjs.umd.js.map +1 -0
  39. package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js +2 -0
  40. package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js.map +1 -0
  41. package/bundles/breeze-client-adapter-ajax-fetch.umd.js +190 -0
  42. package/bundles/breeze-client-adapter-ajax-fetch.umd.js.map +1 -0
  43. package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js +2 -0
  44. package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js.map +1 -0
  45. package/bundles/breeze-client-adapter-ajax-httpclient.umd.js +195 -0
  46. package/bundles/breeze-client-adapter-ajax-httpclient.umd.js.map +1 -0
  47. package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js +2 -0
  48. package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js.map +1 -0
  49. package/bundles/breeze-client-adapter-ajax-jquery.umd.js +115 -0
  50. package/bundles/breeze-client-adapter-ajax-jquery.umd.js.map +1 -0
  51. package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js +2 -0
  52. package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js.map +1 -0
  53. package/bundles/breeze-client-adapter-ajax-post.umd.js +92 -0
  54. package/bundles/breeze-client-adapter-ajax-post.umd.js.map +1 -0
  55. package/bundles/breeze-client-adapter-ajax-post.umd.min.js +2 -0
  56. package/bundles/breeze-client-adapter-ajax-post.umd.min.js.map +1 -0
  57. package/bundles/breeze-client-adapter-data-service-odata.umd.js +743 -0
  58. package/bundles/breeze-client-adapter-data-service-odata.umd.js.map +1 -0
  59. package/bundles/breeze-client-adapter-data-service-odata.umd.min.js +16 -0
  60. package/bundles/breeze-client-adapter-data-service-odata.umd.min.js.map +1 -0
  61. package/bundles/breeze-client-adapter-data-service-webapi.umd.js +326 -0
  62. package/bundles/breeze-client-adapter-data-service-webapi.umd.js.map +1 -0
  63. package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js +16 -0
  64. package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js.map +1 -0
  65. package/bundles/breeze-client-adapter-model-library-backing-store.umd.js +280 -0
  66. package/bundles/breeze-client-adapter-model-library-backing-store.umd.js.map +1 -0
  67. package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js +2 -0
  68. package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js.map +1 -0
  69. package/bundles/breeze-client-adapter-model-library-ko.umd.js +252 -0
  70. package/bundles/breeze-client-adapter-model-library-ko.umd.js.map +1 -0
  71. package/bundles/breeze-client-adapter-model-library-ko.umd.min.js +2 -0
  72. package/bundles/breeze-client-adapter-model-library-ko.umd.min.js.map +1 -0
  73. package/bundles/breeze-client-adapter-uri-builder-json.umd.js +96 -0
  74. package/bundles/breeze-client-adapter-uri-builder-json.umd.js.map +1 -0
  75. package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js +2 -0
  76. package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js.map +1 -0
  77. package/bundles/breeze-client-adapter-uri-builder-odata.umd.js +262 -0
  78. package/bundles/breeze-client-adapter-uri-builder-odata.umd.js.map +1 -0
  79. package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js +2 -0
  80. package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js.map +1 -0
  81. package/bundles/breeze-client-mixin-get-entity-graph.umd.js +258 -0
  82. package/bundles/breeze-client-mixin-get-entity-graph.umd.js.map +1 -0
  83. package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js +2 -0
  84. package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js.map +1 -0
  85. package/bundles/breeze-client-mixin-save-queuing.umd.js +579 -0
  86. package/bundles/breeze-client-mixin-save-queuing.umd.js.map +1 -0
  87. package/bundles/breeze-client-mixin-save-queuing.umd.min.js +16 -0
  88. package/bundles/breeze-client-mixin-save-queuing.umd.min.js.map +1 -0
  89. package/bundles/breeze-client.umd.js +14098 -0
  90. package/bundles/breeze-client.umd.js.map +1 -0
  91. package/bundles/breeze-client.umd.min.js +16 -0
  92. package/bundles/breeze-client.umd.min.js.map +1 -0
  93. package/esm2015/adapter-ajax-angularjs/adapter-ajax-angularjs.js +130 -0
  94. package/esm2015/adapter-ajax-angularjs/adapter-core.js +49 -0
  95. package/esm2015/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +5 -0
  96. package/esm2015/adapter-ajax-fetch/adapter-ajax-fetch.js +130 -0
  97. package/esm2015/adapter-ajax-fetch/adapter-core.js +49 -0
  98. package/esm2015/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +5 -0
  99. package/esm2015/adapter-ajax-httpclient/adapter-ajax-httpclient.js +137 -0
  100. package/esm2015/adapter-ajax-httpclient/adapter-core.js +49 -0
  101. package/esm2015/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +5 -0
  102. package/esm2015/adapter-ajax-jquery/adapter-ajax-jquery.js +103 -0
  103. package/esm2015/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +5 -0
  104. package/esm2015/adapter-ajax-post/adapter-ajax-post.js +77 -0
  105. package/esm2015/adapter-ajax-post/breeze-client-adapter-ajax-post.js +5 -0
  106. package/esm2015/adapter-data-service-odata/adapter-core.js +49 -0
  107. package/esm2015/adapter-data-service-odata/adapter-data-service-odata.js +459 -0
  108. package/esm2015/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +5 -0
  109. package/esm2015/adapter-data-service-webapi/adapter-data-service-webapi.js +93 -0
  110. package/esm2015/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +5 -0
  111. package/esm2015/adapter-model-library-backing-store/adapter-model-library-backing-store.js +268 -0
  112. package/esm2015/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +5 -0
  113. package/esm2015/adapter-model-library-ko/adapter-model-library-ko.js +240 -0
  114. package/esm2015/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +5 -0
  115. package/esm2015/adapter-uri-builder-json/adapter-core.js +49 -0
  116. package/esm2015/adapter-uri-builder-json/adapter-uri-builder-json.js +36 -0
  117. package/esm2015/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +5 -0
  118. package/esm2015/adapter-uri-builder-odata/adapter-core.js +49 -0
  119. package/esm2015/adapter-uri-builder-odata/adapter-uri-builder-odata.js +192 -0
  120. package/esm2015/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +5 -0
  121. package/esm2015/breeze-client.js +9 -0
  122. package/esm2015/index.js +2 -0
  123. package/esm2015/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +5 -0
  124. package/esm2015/mixin-get-entity-graph/mixin-get-entity-graph.js +269 -0
  125. package/esm2015/mixin-save-queuing/breeze-client-mixin-save-queuing.js +5 -0
  126. package/esm2015/mixin-save-queuing/mixin-save-queuing.js +400 -0
  127. package/esm2015/src/abstract-data-service-adapter.js +296 -0
  128. package/esm2015/src/array.js +4 -0
  129. package/esm2015/src/assert-param.js +312 -0
  130. package/esm2015/src/breeze.js +85 -0
  131. package/esm2015/src/complex-array.js +119 -0
  132. package/esm2015/src/config.js +223 -0
  133. package/esm2015/src/core.js +709 -0
  134. package/esm2015/src/csdl-metadata-parser.js +385 -0
  135. package/esm2015/src/data-service.js +203 -0
  136. package/esm2015/src/data-type.js +444 -0
  137. package/esm2015/src/default-property-interceptor.js +460 -0
  138. package/esm2015/src/entity-action.js +45 -0
  139. package/esm2015/src/entity-aspect.js +806 -0
  140. package/esm2015/src/entity-group.js +187 -0
  141. package/esm2015/src/entity-key.js +116 -0
  142. package/esm2015/src/entity-manager.js +2094 -0
  143. package/esm2015/src/entity-metadata.js +2109 -0
  144. package/esm2015/src/entity-query.js +996 -0
  145. package/esm2015/src/entity-state.js +99 -0
  146. package/esm2015/src/enum.js +141 -0
  147. package/esm2015/src/event.js +256 -0
  148. package/esm2015/src/interface-registry.js +41 -0
  149. package/esm2015/src/key-generator.js +108 -0
  150. package/esm2015/src/local-query-comparison-options.js +65 -0
  151. package/esm2015/src/mapping-context.js +405 -0
  152. package/esm2015/src/naming-convention.js +88 -0
  153. package/esm2015/src/observable-array.js +185 -0
  154. package/esm2015/src/predicate.js +1235 -0
  155. package/esm2015/src/primitive-array.js +87 -0
  156. package/esm2015/src/query-options.js +152 -0
  157. package/esm2015/src/relation-array.js +175 -0
  158. package/esm2015/src/save-options.js +41 -0
  159. package/esm2015/src/unattached-children-map.js +58 -0
  160. package/esm2015/src/validate.js +991 -0
  161. package/esm2015/src/validation-options.js +64 -0
  162. package/esm5/adapter-ajax-angularjs/adapter-ajax-angularjs.js +132 -0
  163. package/esm5/adapter-ajax-angularjs/adapter-core.js +49 -0
  164. package/esm5/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +5 -0
  165. package/esm5/adapter-ajax-fetch/adapter-ajax-fetch.js +132 -0
  166. package/esm5/adapter-ajax-fetch/adapter-core.js +49 -0
  167. package/esm5/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +5 -0
  168. package/esm5/adapter-ajax-httpclient/adapter-ajax-httpclient.js +139 -0
  169. package/esm5/adapter-ajax-httpclient/adapter-core.js +49 -0
  170. package/esm5/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +5 -0
  171. package/esm5/adapter-ajax-jquery/adapter-ajax-jquery.js +105 -0
  172. package/esm5/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +5 -0
  173. package/esm5/adapter-ajax-post/adapter-ajax-post.js +81 -0
  174. package/esm5/adapter-ajax-post/breeze-client-adapter-ajax-post.js +5 -0
  175. package/esm5/adapter-data-service-odata/adapter-core.js +49 -0
  176. package/esm5/adapter-data-service-odata/adapter-data-service-odata.js +466 -0
  177. package/esm5/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +5 -0
  178. package/esm5/adapter-data-service-webapi/adapter-data-service-webapi.js +98 -0
  179. package/esm5/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +5 -0
  180. package/esm5/adapter-model-library-backing-store/adapter-model-library-backing-store.js +270 -0
  181. package/esm5/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +5 -0
  182. package/esm5/adapter-model-library-ko/adapter-model-library-ko.js +242 -0
  183. package/esm5/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +5 -0
  184. package/esm5/adapter-uri-builder-json/adapter-core.js +49 -0
  185. package/esm5/adapter-uri-builder-json/adapter-uri-builder-json.js +38 -0
  186. package/esm5/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +5 -0
  187. package/esm5/adapter-uri-builder-odata/adapter-core.js +49 -0
  188. package/esm5/adapter-uri-builder-odata/adapter-uri-builder-odata.js +197 -0
  189. package/esm5/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +5 -0
  190. package/esm5/breeze-client.js +9 -0
  191. package/esm5/index.js +2 -0
  192. package/esm5/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +5 -0
  193. package/esm5/mixin-get-entity-graph/mixin-get-entity-graph.js +269 -0
  194. package/esm5/mixin-save-queuing/breeze-client-mixin-save-queuing.js +5 -0
  195. package/esm5/mixin-save-queuing/mixin-save-queuing.js +412 -0
  196. package/esm5/src/abstract-data-service-adapter.js +302 -0
  197. package/esm5/src/array.js +4 -0
  198. package/esm5/src/assert-param.js +317 -0
  199. package/esm5/src/breeze.js +85 -0
  200. package/esm5/src/complex-array.js +119 -0
  201. package/esm5/src/config.js +228 -0
  202. package/esm5/src/core.js +717 -0
  203. package/esm5/src/csdl-metadata-parser.js +385 -0
  204. package/esm5/src/data-service.js +207 -0
  205. package/esm5/src/data-type.js +451 -0
  206. package/esm5/src/default-property-interceptor.js +460 -0
  207. package/esm5/src/entity-action.js +52 -0
  208. package/esm5/src/entity-aspect.js +812 -0
  209. package/esm5/src/entity-group.js +189 -0
  210. package/esm5/src/entity-key.js +118 -0
  211. package/esm5/src/entity-manager.js +2112 -0
  212. package/esm5/src/entity-metadata.js +2144 -0
  213. package/esm5/src/entity-query.js +1023 -0
  214. package/esm5/src/entity-state.js +106 -0
  215. package/esm5/src/enum.js +144 -0
  216. package/esm5/src/event.js +259 -0
  217. package/esm5/src/interface-registry.js +43 -0
  218. package/esm5/src/key-generator.js +111 -0
  219. package/esm5/src/local-query-comparison-options.js +67 -0
  220. package/esm5/src/mapping-context.js +407 -0
  221. package/esm5/src/naming-convention.js +90 -0
  222. package/esm5/src/observable-array.js +201 -0
  223. package/esm5/src/predicate.js +1300 -0
  224. package/esm5/src/primitive-array.js +87 -0
  225. package/esm5/src/query-options.js +167 -0
  226. package/esm5/src/relation-array.js +175 -0
  227. package/esm5/src/save-options.js +43 -0
  228. package/esm5/src/unattached-children-map.js +60 -0
  229. package/esm5/src/validate.js +996 -0
  230. package/esm5/src/validation-options.js +66 -0
  231. package/fesm2015/{breeze-client-adapter-ajax-angularjs.mjs → breeze-client-adapter-ajax-angularjs.js} +1 -1
  232. package/fesm2015/breeze-client-adapter-ajax-angularjs.js.map +1 -0
  233. package/fesm2015/{breeze-client-adapter-ajax-fetch.mjs → breeze-client-adapter-ajax-fetch.js} +3 -5
  234. package/fesm2015/breeze-client-adapter-ajax-fetch.js.map +1 -0
  235. package/fesm2015/{breeze-client-adapter-ajax-httpclient.mjs → breeze-client-adapter-ajax-httpclient.js} +1 -1
  236. package/fesm2015/breeze-client-adapter-ajax-httpclient.js.map +1 -0
  237. package/fesm2015/{breeze-client-adapter-ajax-jquery.mjs → breeze-client-adapter-ajax-jquery.js} +2 -2
  238. package/fesm2015/breeze-client-adapter-ajax-jquery.js.map +1 -0
  239. package/{fesm2020/breeze-client-adapter-ajax-post.mjs → fesm2015/breeze-client-adapter-ajax-post.js} +1 -1
  240. package/fesm2015/breeze-client-adapter-ajax-post.js.map +1 -0
  241. package/fesm2015/{breeze-client-adapter-data-service-odata.mjs → breeze-client-adapter-data-service-odata.js} +22 -20
  242. package/fesm2015/breeze-client-adapter-data-service-odata.js.map +1 -0
  243. package/fesm2015/{breeze-client-adapter-data-service-webapi.mjs → breeze-client-adapter-data-service-webapi.js} +13 -13
  244. package/fesm2015/breeze-client-adapter-data-service-webapi.js.map +1 -0
  245. package/{fesm2020/breeze-client-adapter-model-library-backing-store.mjs → fesm2015/breeze-client-adapter-model-library-backing-store.js} +13 -13
  246. package/fesm2015/breeze-client-adapter-model-library-backing-store.js.map +1 -0
  247. package/{fesm2020/breeze-client-adapter-model-library-ko.mjs → fesm2015/breeze-client-adapter-model-library-ko.js} +13 -13
  248. package/fesm2015/breeze-client-adapter-model-library-ko.js.map +1 -0
  249. package/{fesm2020/breeze-client-adapter-uri-builder-json.mjs → fesm2015/breeze-client-adapter-uri-builder-json.js} +8 -8
  250. package/fesm2015/breeze-client-adapter-uri-builder-json.js.map +1 -0
  251. package/{fesm2020/breeze-client-adapter-uri-builder-odata.mjs → fesm2015/breeze-client-adapter-uri-builder-odata.js} +86 -85
  252. package/fesm2015/breeze-client-adapter-uri-builder-odata.js.map +1 -0
  253. package/fesm2015/{breeze-client-mixin-get-entity-graph.mjs → breeze-client-mixin-get-entity-graph.js} +1 -1
  254. package/fesm2015/breeze-client-mixin-get-entity-graph.js.map +1 -0
  255. package/fesm2015/{breeze-client-mixin-save-queuing.mjs → breeze-client-mixin-save-queuing.js} +1 -1
  256. package/fesm2015/breeze-client-mixin-save-queuing.js.map +1 -0
  257. package/fesm2015/{breeze-client.mjs → breeze-client.js} +418 -409
  258. package/fesm2015/breeze-client.js.map +1 -0
  259. package/{fesm2020/breeze-client-adapter-ajax-angularjs.mjs → fesm5/breeze-client-adapter-ajax-angularjs.js} +42 -41
  260. package/fesm5/breeze-client-adapter-ajax-angularjs.js.map +1 -0
  261. package/{fesm2020/breeze-client-adapter-ajax-fetch.mjs → fesm5/breeze-client-adapter-ajax-fetch.js} +43 -44
  262. package/fesm5/breeze-client-adapter-ajax-fetch.js.map +1 -0
  263. package/{fesm2020/breeze-client-adapter-ajax-httpclient.mjs → fesm5/breeze-client-adapter-ajax-httpclient.js} +44 -43
  264. package/fesm5/breeze-client-adapter-ajax-httpclient.js.map +1 -0
  265. package/{fesm2020/breeze-client-adapter-ajax-jquery.mjs → fesm5/breeze-client-adapter-ajax-jquery.js} +19 -18
  266. package/fesm5/breeze-client-adapter-ajax-jquery.js.map +1 -0
  267. package/{fesm2015/breeze-client-adapter-ajax-post.mjs → fesm5/breeze-client-adapter-ajax-post.js} +11 -8
  268. package/fesm5/breeze-client-adapter-ajax-post.js.map +1 -0
  269. package/{fesm2020/breeze-client-adapter-data-service-odata.mjs → fesm5/breeze-client-adapter-data-service-odata.js} +134 -126
  270. package/fesm5/breeze-client-adapter-data-service-odata.js.map +1 -0
  271. package/{fesm2020/breeze-client-adapter-data-service-webapi.mjs → fesm5/breeze-client-adapter-data-service-webapi.js} +42 -38
  272. package/fesm5/breeze-client-adapter-data-service-webapi.js.map +1 -0
  273. package/{fesm2015/breeze-client-adapter-model-library-backing-store.mjs → fesm5/breeze-client-adapter-model-library-backing-store.js} +64 -63
  274. package/fesm5/breeze-client-adapter-model-library-backing-store.js.map +1 -0
  275. package/{fesm2015/breeze-client-adapter-model-library-ko.mjs → fesm5/breeze-client-adapter-model-library-ko.js} +58 -57
  276. package/fesm5/breeze-client-adapter-model-library-ko.js.map +1 -0
  277. package/fesm5/breeze-client-adapter-uri-builder-json.js +92 -0
  278. package/fesm5/breeze-client-adapter-uri-builder-json.js.map +1 -0
  279. package/fesm5/breeze-client-adapter-uri-builder-odata.js +250 -0
  280. package/fesm5/breeze-client-adapter-uri-builder-odata.js.map +1 -0
  281. package/{fesm2020/breeze-client-mixin-get-entity-graph.mjs → fesm5/breeze-client-mixin-get-entity-graph.js} +45 -45
  282. package/fesm5/breeze-client-mixin-get-entity-graph.js.map +1 -0
  283. package/{fesm2020/breeze-client-mixin-save-queuing.mjs → fesm5/breeze-client-mixin-save-queuing.js} +126 -116
  284. package/fesm5/breeze-client-mixin-save-queuing.js.map +1 -0
  285. package/{fesm2020/breeze-client.mjs → fesm5/breeze-client.js} +3630 -3414
  286. package/fesm5/breeze-client.js.map +1 -0
  287. package/mixin-get-entity-graph/{index.d.ts → breeze-client-mixin-get-entity-graph.d.ts} +0 -1
  288. package/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.metadata.json +1 -0
  289. package/mixin-get-entity-graph/package.json +13 -0
  290. package/mixin-save-queuing/{index.d.ts → breeze-client-mixin-save-queuing.d.ts} +0 -1
  291. package/mixin-save-queuing/breeze-client-mixin-save-queuing.metadata.json +1 -0
  292. package/mixin-save-queuing/package.json +13 -0
  293. package/package.json +12 -126
  294. package/src/entity-metadata.d.ts +4 -6
  295. package/src/entity-query.d.ts +1 -1
  296. package/esm2020/adapter-ajax-angularjs/adapter-ajax-angularjs.mjs +0 -130
  297. package/esm2020/adapter-ajax-angularjs/adapter-core.mjs +0 -49
  298. package/esm2020/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.mjs +0 -5
  299. package/esm2020/adapter-ajax-fetch/adapter-ajax-fetch.mjs +0 -132
  300. package/esm2020/adapter-ajax-fetch/adapter-core.mjs +0 -49
  301. package/esm2020/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.mjs +0 -5
  302. package/esm2020/adapter-ajax-httpclient/adapter-ajax-httpclient.mjs +0 -137
  303. package/esm2020/adapter-ajax-httpclient/adapter-core.mjs +0 -49
  304. package/esm2020/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.mjs +0 -5
  305. package/esm2020/adapter-ajax-jquery/adapter-ajax-jquery.mjs +0 -103
  306. package/esm2020/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.mjs +0 -5
  307. package/esm2020/adapter-ajax-post/adapter-ajax-post.mjs +0 -77
  308. package/esm2020/adapter-ajax-post/breeze-client-adapter-ajax-post.mjs +0 -5
  309. package/esm2020/adapter-data-service-odata/adapter-core.mjs +0 -49
  310. package/esm2020/adapter-data-service-odata/adapter-data-service-odata.mjs +0 -456
  311. package/esm2020/adapter-data-service-odata/breeze-client-adapter-data-service-odata.mjs +0 -5
  312. package/esm2020/adapter-data-service-webapi/adapter-data-service-webapi.mjs +0 -93
  313. package/esm2020/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.mjs +0 -5
  314. package/esm2020/adapter-model-library-backing-store/adapter-model-library-backing-store.mjs +0 -268
  315. package/esm2020/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.mjs +0 -5
  316. package/esm2020/adapter-model-library-ko/adapter-model-library-ko.mjs +0 -240
  317. package/esm2020/adapter-model-library-ko/breeze-client-adapter-model-library-ko.mjs +0 -5
  318. package/esm2020/adapter-uri-builder-json/adapter-core.mjs +0 -49
  319. package/esm2020/adapter-uri-builder-json/adapter-uri-builder-json.mjs +0 -36
  320. package/esm2020/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.mjs +0 -5
  321. package/esm2020/adapter-uri-builder-odata/adapter-core.mjs +0 -49
  322. package/esm2020/adapter-uri-builder-odata/adapter-uri-builder-odata.mjs +0 -190
  323. package/esm2020/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.mjs +0 -5
  324. package/esm2020/breeze-client.mjs +0 -5
  325. package/esm2020/index.mjs +0 -2
  326. package/esm2020/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.mjs +0 -5
  327. package/esm2020/mixin-get-entity-graph/mixin-get-entity-graph.mjs +0 -269
  328. package/esm2020/mixin-save-queuing/breeze-client-mixin-save-queuing.mjs +0 -5
  329. package/esm2020/mixin-save-queuing/mixin-save-queuing.mjs +0 -400
  330. package/esm2020/src/abstract-data-service-adapter.mjs +0 -296
  331. package/esm2020/src/array.mjs +0 -4
  332. package/esm2020/src/assert-param.mjs +0 -312
  333. package/esm2020/src/breeze.mjs +0 -85
  334. package/esm2020/src/complex-array.mjs +0 -117
  335. package/esm2020/src/config.mjs +0 -223
  336. package/esm2020/src/core.mjs +0 -707
  337. package/esm2020/src/csdl-metadata-parser.mjs +0 -385
  338. package/esm2020/src/data-service.mjs +0 -203
  339. package/esm2020/src/data-type.mjs +0 -444
  340. package/esm2020/src/default-property-interceptor.mjs +0 -460
  341. package/esm2020/src/entity-action.mjs +0 -45
  342. package/esm2020/src/entity-aspect.mjs +0 -806
  343. package/esm2020/src/entity-group.mjs +0 -187
  344. package/esm2020/src/entity-key.mjs +0 -116
  345. package/esm2020/src/entity-manager.mjs +0 -2094
  346. package/esm2020/src/entity-metadata.mjs +0 -2109
  347. package/esm2020/src/entity-query.mjs +0 -996
  348. package/esm2020/src/entity-state.mjs +0 -99
  349. package/esm2020/src/enum.mjs +0 -141
  350. package/esm2020/src/event.mjs +0 -256
  351. package/esm2020/src/interface-registry.mjs +0 -41
  352. package/esm2020/src/key-generator.mjs +0 -108
  353. package/esm2020/src/local-query-comparison-options.mjs +0 -65
  354. package/esm2020/src/mapping-context.mjs +0 -405
  355. package/esm2020/src/naming-convention.mjs +0 -88
  356. package/esm2020/src/observable-array.mjs +0 -183
  357. package/esm2020/src/predicate.mjs +0 -1232
  358. package/esm2020/src/primitive-array.mjs +0 -85
  359. package/esm2020/src/query-options.mjs +0 -152
  360. package/esm2020/src/relation-array.mjs +0 -173
  361. package/esm2020/src/save-options.mjs +0 -41
  362. package/esm2020/src/unattached-children-map.mjs +0 -58
  363. package/esm2020/src/validate.mjs +0 -988
  364. package/esm2020/src/validation-options.mjs +0 -64
  365. package/fesm2015/breeze-client-adapter-ajax-angularjs.mjs.map +0 -1
  366. package/fesm2015/breeze-client-adapter-ajax-fetch.mjs.map +0 -1
  367. package/fesm2015/breeze-client-adapter-ajax-httpclient.mjs.map +0 -1
  368. package/fesm2015/breeze-client-adapter-ajax-jquery.mjs.map +0 -1
  369. package/fesm2015/breeze-client-adapter-ajax-post.mjs.map +0 -1
  370. package/fesm2015/breeze-client-adapter-data-service-odata.mjs.map +0 -1
  371. package/fesm2015/breeze-client-adapter-data-service-webapi.mjs.map +0 -1
  372. package/fesm2015/breeze-client-adapter-model-library-backing-store.mjs.map +0 -1
  373. package/fesm2015/breeze-client-adapter-model-library-ko.mjs.map +0 -1
  374. package/fesm2015/breeze-client-adapter-uri-builder-json.mjs +0 -91
  375. package/fesm2015/breeze-client-adapter-uri-builder-json.mjs.map +0 -1
  376. package/fesm2015/breeze-client-adapter-uri-builder-odata.mjs +0 -245
  377. package/fesm2015/breeze-client-adapter-uri-builder-odata.mjs.map +0 -1
  378. package/fesm2015/breeze-client-mixin-get-entity-graph.mjs.map +0 -1
  379. package/fesm2015/breeze-client-mixin-save-queuing.mjs.map +0 -1
  380. package/fesm2015/breeze-client.mjs.map +0 -1
  381. package/fesm2020/breeze-client-adapter-ajax-angularjs.mjs.map +0 -1
  382. package/fesm2020/breeze-client-adapter-ajax-fetch.mjs.map +0 -1
  383. package/fesm2020/breeze-client-adapter-ajax-httpclient.mjs.map +0 -1
  384. package/fesm2020/breeze-client-adapter-ajax-jquery.mjs.map +0 -1
  385. package/fesm2020/breeze-client-adapter-ajax-post.mjs.map +0 -1
  386. package/fesm2020/breeze-client-adapter-data-service-odata.mjs.map +0 -1
  387. package/fesm2020/breeze-client-adapter-data-service-webapi.mjs.map +0 -1
  388. package/fesm2020/breeze-client-adapter-model-library-backing-store.mjs.map +0 -1
  389. package/fesm2020/breeze-client-adapter-model-library-ko.mjs.map +0 -1
  390. package/fesm2020/breeze-client-adapter-uri-builder-json.mjs.map +0 -1
  391. package/fesm2020/breeze-client-adapter-uri-builder-odata.mjs.map +0 -1
  392. package/fesm2020/breeze-client-mixin-get-entity-graph.mjs.map +0 -1
  393. package/fesm2020/breeze-client-mixin-save-queuing.mjs.map +0 -1
  394. package/fesm2020/breeze-client.mjs.map +0 -1
@@ -1,38 +1,39 @@
1
- import * as breeze from 'breeze-client';
1
+ import { __extends } from 'tslib';
2
+ import { core as core$1, JsonResultsAdapter, MetadataStore, config, AutoGeneratedKeyType, DataProperty, AbstractDataServiceAdapter, DataType } from 'breeze-client';
2
3
 
3
4
  /** Appends parameter to url, with appropriate delimiter */
4
5
  function appendQueryStringParameter(url, parameter) {
5
6
  if (!parameter)
6
7
  return url;
7
- let separator = url.endsWith("?") ? "" : url.includes("?") ? "&" : "?";
8
+ var separator = url.endsWith("?") ? "" : url.includes("?") ? "&" : "?";
8
9
  return url + separator + parameter;
9
10
  }
10
11
  /** Encodes the object into query string parameters */
11
12
  function encodeParams(obj) {
12
- let query = '';
13
- let subValue, innerObj, fullSubName;
14
- for (let name in obj) {
15
- if (!obj.hasOwnProperty(name)) {
13
+ var query = '';
14
+ var subValue, innerObj, fullSubName;
15
+ for (var name_1 in obj) {
16
+ if (!obj.hasOwnProperty(name_1)) {
16
17
  continue;
17
18
  }
18
- let value = obj[name];
19
+ var value = obj[name_1];
19
20
  if (value instanceof Array) {
20
- for (let i = 0; i < value.length; ++i) {
21
+ for (var i = 0; i < value.length; ++i) {
21
22
  subValue = value[i];
22
- fullSubName = name + '[' + i + ']';
23
+ fullSubName = name_1 + '[' + i + ']';
23
24
  innerObj = {};
24
25
  innerObj[fullSubName] = subValue;
25
26
  query += encodeParams(innerObj) + '&';
26
27
  }
27
28
  }
28
29
  else if (value && value.toISOString) { // a feature of Date-like things
29
- query += encodeURIComponent(name) + '=' + encodeURIComponent(value.toISOString()) + '&';
30
+ query += encodeURIComponent(name_1) + '=' + encodeURIComponent(value.toISOString()) + '&';
30
31
  }
31
32
  else if (value instanceof Object) {
32
- for (let subName in value) {
33
- if (obj.hasOwnProperty(name)) {
33
+ for (var subName in value) {
34
+ if (obj.hasOwnProperty(name_1)) {
34
35
  subValue = value[subName];
35
- fullSubName = name + '[' + subName + ']';
36
+ fullSubName = name_1 + '[' + subName + ']';
36
37
  innerObj = {};
37
38
  innerObj[fullSubName] = subValue;
38
39
  query += encodeParams(innerObj) + '&';
@@ -40,35 +41,36 @@ function encodeParams(obj) {
40
41
  }
41
42
  }
42
43
  else if (value === null) {
43
- query += encodeURIComponent(name) + '=&';
44
+ query += encodeURIComponent(name_1) + '=&';
44
45
  }
45
46
  else if (value !== undefined) {
46
- query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';
47
+ query += encodeURIComponent(name_1) + '=' + encodeURIComponent(value) + '&';
47
48
  }
48
49
  }
49
50
  return query.length ? query.substr(0, query.length - 1) : query;
50
51
  }
51
52
 
52
- let core = breeze.core;
53
+ var core = core$1;
53
54
  /** @hidden */
54
- class DataServiceODataAdapter extends breeze.AbstractDataServiceAdapter {
55
- constructor() {
56
- super();
55
+ var DataServiceODataAdapter = /** @class */ (function (_super) {
56
+ __extends(DataServiceODataAdapter, _super);
57
+ function DataServiceODataAdapter() {
58
+ var _this = _super.call(this) || this;
57
59
  // _catchNoConnectionError = abstractDsaProto._catchNoConnectionError;
58
60
  // changeRequestInterceptor = abstractDsaProto.changeRequestInterceptor;
59
61
  // _createChangeRequestInterceptor = abstractDsaProto._createChangeRequestInterceptor;
60
- this.headers = { "DataServiceVersion": "2.0" };
61
- this.jsonResultsAdapter = new breeze.JsonResultsAdapter({
62
+ _this.headers = { "DataServiceVersion": "2.0" };
63
+ _this.jsonResultsAdapter = new JsonResultsAdapter({
62
64
  name: "OData_default",
63
65
  visitNode: function (node, mappingContext, nodeContext) {
64
- let result = {};
66
+ var result = {};
65
67
  if (node == null)
66
68
  return result;
67
- let metadata = node.__metadata;
69
+ var metadata = node.__metadata;
68
70
  if (metadata != null) {
69
71
  // TODO: may be able to make this more efficient by caching of the previous value.
70
- let entityTypeName = breeze.MetadataStore.normalizeTypeName(metadata.type);
71
- let et = entityTypeName && mappingContext.entityManager.metadataStore.getEntityType(entityTypeName, true);
72
+ var entityTypeName = MetadataStore.normalizeTypeName(metadata.type);
73
+ var et = entityTypeName && mappingContext.entityManager.metadataStore.getEntityType(entityTypeName, true);
72
74
  // OData response doesn't distinguish a projection from a whole entity.
73
75
  // We'll assume that whole-entity data would have at least as many properties (<=)
74
76
  // as the EntityType has mapped properties on the basis that
@@ -77,11 +79,11 @@ class DataServiceODataAdapter extends breeze.AbstractDataServiceAdapter {
77
79
  if (et && et._mappedPropertiesCount <= Object.keys(node).length - 1) {
78
80
  // if (et && et._mappedPropertiesCount === Object.keys(node).length - 1) { // OLD
79
81
  result.entityType = et;
80
- let uriKey = metadata.uri || metadata.id;
82
+ var uriKey = metadata.uri || metadata.id;
81
83
  if (uriKey) {
82
84
  // Strip baseUri to make uriKey a relative uri
83
85
  // Todo: why is this necessary when absolute works for every OData source tested?
84
- let re = new RegExp('^' + mappingContext.dataService.serviceName, 'i');
86
+ var re = new RegExp('^' + mappingContext.dataService.serviceName, 'i');
85
87
  uriKey = uriKey.replace(re, '');
86
88
  }
87
89
  result.extraMetadata = {
@@ -94,24 +96,25 @@ class DataServiceODataAdapter extends breeze.AbstractDataServiceAdapter {
94
96
  if (node.results) {
95
97
  result.node = node.results;
96
98
  }
97
- let propertyName = nodeContext.propertyName;
99
+ var propertyName = nodeContext.propertyName;
98
100
  result.ignore = node.__deferred != null || propertyName === "__metadata" ||
99
101
  // EntityKey properties can be produced by EDMX models
100
102
  (propertyName === "EntityKey" && node.$type && core.stringStartsWith(node.$type, "System.Data"));
101
103
  return result;
102
104
  }
103
105
  });
104
- this.name = "OData";
106
+ _this.name = "OData";
107
+ return _this;
105
108
  }
106
- static register(config) {
107
- config = config || breeze.config;
108
- config.registerAdapter("dataService", DataServiceODataAdapter);
109
- return config.initializeAdapterInstance("dataService", "OData", true);
110
- }
111
- initialize() {
109
+ DataServiceODataAdapter.register = function (config$1) {
110
+ config$1 = config$1 || config;
111
+ config$1.registerAdapter("dataService", DataServiceODataAdapter);
112
+ return config$1.initializeAdapterInstance("dataService", "OData", true);
113
+ };
114
+ DataServiceODataAdapter.prototype.initialize = function () {
112
115
  OData = core.requireLib("OData", "Needed to support remote OData services");
113
116
  OData.jsonHandler.recognizeDates = true;
114
- }
117
+ };
115
118
  // Absolute URL is the default as of Breeze 1.5.5.
116
119
  // To use relative URL (like pre-1.5.5), add adapterInstance.relativeUrl = true:
117
120
  //
@@ -125,9 +128,9 @@ class DataServiceODataAdapter extends breeze.AbstractDataServiceAdapter {
125
128
  // return somehowConvert(url);
126
129
  // }
127
130
  //
128
- fetchMetadata(metadataStore, dataService) {
129
- let serviceName = dataService.serviceName;
130
- let url;
131
+ DataServiceODataAdapter.prototype.fetchMetadata = function (metadataStore, dataService) {
132
+ var serviceName = dataService.serviceName;
133
+ var url;
131
134
  if (this.relativeUrl === true) {
132
135
  url = dataService.qualifyUrl('$metadata');
133
136
  }
@@ -137,9 +140,9 @@ class DataServiceODataAdapter extends breeze.AbstractDataServiceAdapter {
137
140
  else {
138
141
  url = this.getAbsoluteUrl(dataService, '$metadata');
139
142
  }
140
- let mheaders = core.extend({}, this.headers);
143
+ var mheaders = core.extend({}, this.headers);
141
144
  mheaders.Accept = 'application/*; odata.metadata=full';
142
- let promise = new Promise((resolve, reject) => {
145
+ var promise = new Promise(function (resolve, reject) {
143
146
  // OData.read(url,
144
147
  OData.read({
145
148
  requestUri: url,
@@ -149,10 +152,10 @@ class DataServiceODataAdapter extends breeze.AbstractDataServiceAdapter {
149
152
  // data.dataServices.schema is an array of schemas. with properties of
150
153
  // entityContainer[], association[], entityType[], and namespace.
151
154
  if (!data || !data.dataServices) {
152
- let error = new Error("Metadata query failed for: " + url);
155
+ var error = new Error("Metadata query failed for: " + url);
153
156
  return reject(error);
154
157
  }
155
- let csdlMetadata = data.dataServices;
158
+ var csdlMetadata = data.dataServices;
156
159
  // might have been fetched by another query
157
160
  if (!metadataStore.hasMetadataFor(serviceName)) {
158
161
  try {
@@ -165,15 +168,16 @@ class DataServiceODataAdapter extends breeze.AbstractDataServiceAdapter {
165
168
  }
166
169
  return resolve(csdlMetadata);
167
170
  }, function (error) {
168
- let err = createError(error, url);
171
+ var err = createError(error, url);
169
172
  err.message = "Metadata query failed for: " + url + "; " + (err.message || "");
170
173
  return reject(err);
171
174
  }, OData.metadataHandler);
172
175
  });
173
176
  return promise;
174
- }
175
- executeQuery(mappingContext) {
176
- let url;
177
+ };
178
+ DataServiceODataAdapter.prototype.executeQuery = function (mappingContext) {
179
+ var _this = this;
180
+ var url;
177
181
  if (this.relativeUrl === true) {
178
182
  url = mappingContext.getUrl();
179
183
  }
@@ -184,17 +188,17 @@ class DataServiceODataAdapter extends breeze.AbstractDataServiceAdapter {
184
188
  url = this.getAbsoluteUrl(mappingContext.dataService, mappingContext.getUrl());
185
189
  }
186
190
  // Add query params if .withParameters was used
187
- let query = mappingContext.query;
191
+ var query = mappingContext.query;
188
192
  if (!core.isEmpty(query.parameters)) {
189
- let paramString = toQueryString(query.parameters);
193
+ var paramString = toQueryString(query.parameters);
190
194
  url = appendQueryStringParameter(url, paramString);
191
195
  }
192
- let promise = new Promise((resolve, reject) => {
196
+ var promise = new Promise(function (resolve, reject) {
193
197
  OData.read({
194
198
  requestUri: url,
195
- headers: core.extend({}, this.headers)
199
+ headers: core.extend({}, _this.headers)
196
200
  }, function (data, response) {
197
- let inlineCount;
201
+ var inlineCount;
198
202
  if (data.__count) {
199
203
  // OData can return data.__count as a string
200
204
  inlineCount = parseInt(data.__count, 10);
@@ -202,7 +206,7 @@ class DataServiceODataAdapter extends breeze.AbstractDataServiceAdapter {
202
206
  // Odata returns different result structure when it returns multiple entities (data.results) vs single entity (data directly).
203
207
  // @see http://www.odata.org/documentation/odata-version-2-0/json-format/#RepresentingCollectionsOfEntries
204
208
  // and http://www.odata.org/documentation/odata-version-2-0/json-format/#RepresentingEntries
205
- let results;
209
+ var results;
206
210
  if (data.results) {
207
211
  results = data.results;
208
212
  }
@@ -215,11 +219,12 @@ class DataServiceODataAdapter extends breeze.AbstractDataServiceAdapter {
215
219
  });
216
220
  });
217
221
  return promise;
218
- }
219
- saveChanges(odataSaveContext, saveBundle) {
220
- let adapter = odataSaveContext.adapter = this;
221
- let saveContext = odataSaveContext;
222
- let url;
222
+ };
223
+ DataServiceODataAdapter.prototype.saveChanges = function (odataSaveContext, saveBundle) {
224
+ var _this = this;
225
+ var adapter = odataSaveContext.adapter = this;
226
+ var saveContext = odataSaveContext;
227
+ var url;
223
228
  if (this.relativeUrl === true) {
224
229
  saveContext.routePrefix = adapter.getRoutePrefix(saveContext.dataService);
225
230
  url = saveContext.dataService.qualifyUrl("$batch");
@@ -232,48 +237,48 @@ class DataServiceODataAdapter extends breeze.AbstractDataServiceAdapter {
232
237
  saveContext.routePrefix = adapter.getAbsoluteUrl(saveContext.dataService, '');
233
238
  url = saveContext.routePrefix + '$batch';
234
239
  }
235
- let requestData = createChangeRequests(saveContext, saveBundle);
236
- let tempKeys = saveContext.tempKeys;
237
- let contentKeys = saveContext.contentKeys;
238
- let promise = new Promise((resolve, reject) => {
240
+ var requestData = createChangeRequests(saveContext, saveBundle);
241
+ var tempKeys = saveContext.tempKeys;
242
+ var contentKeys = saveContext.contentKeys;
243
+ var promise = new Promise(function (resolve, reject) {
239
244
  OData.request({
240
- headers: core.extend({}, this.headers),
245
+ headers: core.extend({}, _this.headers),
241
246
  requestUri: url,
242
247
  method: "POST",
243
248
  data: requestData
244
249
  }, function (data, response) {
245
- let entities = [];
246
- let keyMappings = [];
247
- let saveResult = { entities: entities, keyMappings: keyMappings };
250
+ var entities = [];
251
+ var keyMappings = [];
252
+ var saveResult = { entities: entities, keyMappings: keyMappings };
248
253
  data.__batchResponses.forEach(function (br) {
249
254
  br.__changeResponses.forEach(function (cr) {
250
- let response = cr.response || cr;
251
- let statusCode = response.statusCode;
255
+ var response = cr.response || cr;
256
+ var statusCode = response.statusCode;
252
257
  if ((!statusCode) || statusCode >= 400) {
253
258
  reject(createError(cr, url));
254
259
  return;
255
260
  }
256
- let contentId = cr.headers["Content-ID"];
261
+ var contentId = cr.headers["Content-ID"];
257
262
  // Olingo sends different case of 'ID' for the header name.
258
263
  if (!contentId) {
259
264
  contentId = cr.headers["Content-Id"];
260
265
  }
261
- let rawEntity = cr.data;
266
+ var rawEntity = cr.data;
262
267
  if (rawEntity) {
263
- let tempKey = tempKeys[contentId];
268
+ var tempKey = tempKeys[contentId];
264
269
  if (tempKey) {
265
- let entityType = tempKey.entityType;
266
- if (entityType.autoGeneratedKeyType !== breeze.AutoGeneratedKeyType.None) {
267
- let tempValue = tempKey.values[0];
268
- let realKey = entityType.getEntityKeyFromRawEntity(rawEntity, breeze.DataProperty.getRawValueFromServer);
269
- let keyMapping = { entityTypeName: entityType.name, tempValue: tempValue, realValue: realKey.values[0] };
270
+ var entityType = tempKey.entityType;
271
+ if (entityType.autoGeneratedKeyType !== AutoGeneratedKeyType.None) {
272
+ var tempValue = tempKey.values[0];
273
+ var realKey = entityType.getEntityKeyFromRawEntity(rawEntity, DataProperty.getRawValueFromServer);
274
+ var keyMapping = { entityTypeName: entityType.name, tempValue: tempValue, realValue: realKey.values[0] };
270
275
  keyMappings.push(keyMapping);
271
276
  }
272
277
  }
273
278
  entities.push(rawEntity);
274
279
  }
275
280
  else {
276
- let origEntity = contentKeys[contentId];
281
+ var origEntity = contentKeys[contentId];
277
282
  entities.push(origEntity);
278
283
  }
279
284
  });
@@ -284,11 +289,11 @@ class DataServiceODataAdapter extends breeze.AbstractDataServiceAdapter {
284
289
  }, OData.batchHandler);
285
290
  });
286
291
  return promise;
287
- }
288
- getAbsoluteUrl(dataService, url) {
289
- let serviceName = dataService.qualifyUrl('');
292
+ };
293
+ DataServiceODataAdapter.prototype.getAbsoluteUrl = function (dataService, url) {
294
+ var serviceName = dataService.qualifyUrl('');
290
295
  // only prefix with serviceName if not already on the url
291
- let base = (core.stringStartsWith(url, serviceName)) ? '' : serviceName;
296
+ var base = (core.stringStartsWith(url, serviceName)) ? '' : serviceName;
292
297
  // If no protocol, turn base into an absolute URI
293
298
  if (window && serviceName.indexOf('//') < 0) {
294
299
  // no protocol; make it absolute
@@ -297,14 +302,14 @@ class DataServiceODataAdapter extends breeze.AbstractDataServiceAdapter {
297
302
  base;
298
303
  }
299
304
  return base + url;
300
- }
301
- getRoutePrefix(dataService) {
305
+ };
306
+ DataServiceODataAdapter.prototype.getRoutePrefix = function (dataService) {
302
307
  // Get the routePrefix from a Web API OData service name.
303
308
  // The routePrefix is presumed to be the pathname within the dataService.serviceName
304
309
  // Examples of servicename -> routePrefix:
305
310
  // 'http://localhost:55802/odata/' -> 'odata/'
306
311
  // 'http://198.154.121.75/service/odata/' -> 'service/odata/'
307
- let parser;
312
+ var parser;
308
313
  if (typeof document === 'object') { // browser
309
314
  parser = document.createElement('a');
310
315
  parser.href = dataService.serviceName;
@@ -314,7 +319,7 @@ class DataServiceODataAdapter extends breeze.AbstractDataServiceAdapter {
314
319
  // assumes existence of node's url.parse method.
315
320
  parser = url.parse(dataService.serviceName);
316
321
  }
317
- let prefix = parser.pathname;
322
+ var prefix = parser.pathname;
318
323
  if (prefix[0] === '/') {
319
324
  prefix = prefix.substr(1);
320
325
  } // drop leading '/' (all but IE)
@@ -322,12 +327,13 @@ class DataServiceODataAdapter extends breeze.AbstractDataServiceAdapter {
322
327
  prefix += '/';
323
328
  } // ensure trailing '/'
324
329
  return prefix;
325
- }
326
- }
330
+ };
331
+ return DataServiceODataAdapter;
332
+ }(AbstractDataServiceAdapter));
327
333
  // crude serializer. Doesn't recurse
328
334
  function toQueryString(obj) {
329
- let parts = [];
330
- for (let i in obj) {
335
+ var parts = [];
336
+ for (var i in obj) {
331
337
  if (obj.hasOwnProperty(i)) {
332
338
  parts.push(encodeURIComponent(i) + "=" + encodeURIComponent(obj[i]));
333
339
  }
@@ -337,7 +343,7 @@ function toQueryString(obj) {
337
343
  function transformValue(prop, val) {
338
344
  if (prop.isUnmapped)
339
345
  return undefined;
340
- if (prop.dataType === breeze.DataType.DateTimeOffset) {
346
+ if (prop.dataType === DataType.DateTimeOffset) {
341
347
  // The datajs lib tries to treat client dateTimes that are defined as DateTimeOffset on the server differently
342
348
  // from other dateTimes. This fix compensates before the save.
343
349
  val = val && new Date(val.getTime() - (val.getTimezoneOffset() * 60000));
@@ -348,18 +354,18 @@ function transformValue(prop, val) {
348
354
  return val;
349
355
  }
350
356
  function createChangeRequests(saveContext, saveBundle) {
351
- let changeRequestInterceptor = saveContext.adapter._createChangeRequestInterceptor(saveContext, saveBundle);
352
- let changeRequests = [];
353
- let tempKeys = [];
354
- let contentKeys = [];
355
- let entityManager = saveContext.entityManager;
356
- let helper = entityManager.helper;
357
- let id = 0;
358
- let routePrefix = saveContext.routePrefix;
357
+ var changeRequestInterceptor = saveContext.adapter._createChangeRequestInterceptor(saveContext, saveBundle);
358
+ var changeRequests = [];
359
+ var tempKeys = [];
360
+ var contentKeys = [];
361
+ var entityManager = saveContext.entityManager;
362
+ var helper = entityManager.helper;
363
+ var id = 0;
364
+ var routePrefix = saveContext.routePrefix;
359
365
  saveBundle.entities.forEach(function (entity, index) {
360
- let aspect = entity.entityAspect;
366
+ var aspect = entity.entityAspect;
361
367
  id = id + 1; // we are deliberately skipping id=0 because Content-ID = 0 seems to be ignored.
362
- let request = { headers: { "Content-ID": id, "DataServiceVersion": "2.0" } };
368
+ var request = { headers: { "Content-ID": id, "DataServiceVersion": "2.0" } };
363
369
  contentKeys[id] = entity;
364
370
  if (aspect.entityState.isAdded()) {
365
371
  request.requestUri = routePrefix + entity.entityType.defaultResourceName;
@@ -395,8 +401,8 @@ function createChangeRequests(saveContext, saveBundle) {
395
401
  };
396
402
  }
397
403
  function updateDeleteMergeRequest(request, aspect, routePrefix) {
398
- let uriKey;
399
- let extraMetadata = aspect.extraMetadata;
404
+ var uriKey;
405
+ var extraMetadata = aspect.extraMetadata;
400
406
  if (extraMetadata == null) {
401
407
  uriKey = getUriKey(aspect);
402
408
  aspect.extraMetadata = {
@@ -414,18 +420,18 @@ function updateDeleteMergeRequest(request, aspect, routePrefix) {
414
420
  uriKey.indexOf('//') > 0 ? uriKey : routePrefix + uriKey;
415
421
  }
416
422
  function getUriKey(aspect) {
417
- let entityType = aspect.entity.entityType;
418
- let resourceName = entityType.defaultResourceName;
419
- let kps = entityType.keyProperties;
420
- let uriKey = resourceName + "(";
423
+ var entityType = aspect.entity.entityType;
424
+ var resourceName = entityType.defaultResourceName;
425
+ var kps = entityType.keyProperties;
426
+ var uriKey = resourceName + "(";
421
427
  if (kps.length === 1) {
422
428
  uriKey = uriKey + fmtProperty(kps[0], aspect) + ")";
423
429
  }
424
430
  else {
425
- let delim = "";
431
+ var delim_1 = "";
426
432
  kps.forEach(function (kp) {
427
- uriKey = uriKey + delim + kp.nameOnServer + "=" + fmtProperty(kp, aspect);
428
- delim = ",";
433
+ uriKey = uriKey + delim_1 + kp.nameOnServer + "=" + fmtProperty(kp, aspect);
434
+ delim_1 = ",";
429
435
  });
430
436
  uriKey = uriKey + ")";
431
437
  }
@@ -437,8 +443,8 @@ function fmtProperty(prop, aspect) {
437
443
  function createError(error, url) {
438
444
  // OData errors can have the message buried very deeply - and nonobviously
439
445
  // this code is tricky so be careful changing the response.body parsing.
440
- let result = new Error();
441
- let response = error && error.response;
446
+ var result = new Error();
447
+ var response = error && error.response;
442
448
  if (!response) {
443
449
  // in case DataJS returns "No handler for this data"
444
450
  result.message = error;
@@ -453,15 +459,15 @@ function createError(error, url) {
453
459
  result.url = url;
454
460
  result.body = response.body;
455
461
  if (response.body) {
456
- let nextErr;
462
+ var nextErr = void 0;
457
463
  try {
458
- let body = JSON.parse(response.body);
464
+ var body = JSON.parse(response.body);
459
465
  result.body = body;
460
466
  // OData v3 logic
461
467
  if (body['odata.error']) {
462
468
  body = body['odata.error'];
463
469
  }
464
- let msg = "";
470
+ var msg = "";
465
471
  do {
466
472
  nextErr = body.error || body.innererror;
467
473
  if (!nextErr)
@@ -476,36 +482,38 @@ function createError(error, url) {
476
482
  catch (e) {
477
483
  }
478
484
  }
479
- breeze.AbstractDataServiceAdapter._catchNoConnectionError(result);
485
+ AbstractDataServiceAdapter._catchNoConnectionError(result);
480
486
  return result;
481
487
  }
482
488
  function getMessage(body) {
483
- let msg = body.message || "";
489
+ var msg = body.message || "";
484
490
  return ((typeof (msg) === "string") ? msg : msg.value) + "; ";
485
491
  }
486
- breeze.config.registerAdapter("dataService", DataServiceODataAdapter);
487
- let webApiODataCtor = function () {
492
+ config.registerAdapter("dataService", DataServiceODataAdapter);
493
+ var webApiODataCtor = function () {
488
494
  this.name = "webApiOData";
489
495
  };
490
- breeze.core.extend(webApiODataCtor.prototype, DataServiceODataAdapter.prototype);
491
- breeze.config.registerAdapter("dataService", webApiODataCtor);
496
+ var ɵ0 = webApiODataCtor;
497
+ core$1.extend(webApiODataCtor.prototype, DataServiceODataAdapter.prototype);
498
+ config.registerAdapter("dataService", webApiODataCtor);
492
499
  // OData 4 adapter
493
- let webApiOData4Ctor = function () {
500
+ var webApiOData4Ctor = function () {
494
501
  this.name = "webApiOData4";
495
502
  };
496
- breeze.core.extend(webApiOData4Ctor.prototype, webApiODataCtor.prototype);
503
+ var ɵ1 = webApiOData4Ctor;
504
+ core$1.extend(webApiOData4Ctor.prototype, webApiODataCtor.prototype);
497
505
  webApiOData4Ctor.prototype.initialize = function () {
498
506
  // Aargh... they moved the cheese.
499
- let datajs = core.requireLib("datajs", "Needed to support remote OData v4 services");
507
+ var datajs = core.requireLib("datajs", "Needed to support remote OData v4 services");
500
508
  OData = datajs.V4.oData;
501
509
  OData.json.jsonHandler.recognizeDates = true;
502
510
  };
503
511
  webApiOData4Ctor.prototype.headers = { "OData-Version": "4.0" };
504
- breeze.config.registerAdapter("dataService", webApiOData4Ctor);
512
+ config.registerAdapter("dataService", webApiOData4Ctor);
505
513
 
506
514
  /**
507
515
  * Generated bundle index. Do not edit.
508
516
  */
509
517
 
510
- export { DataServiceODataAdapter };
511
- //# sourceMappingURL=breeze-client-adapter-data-service-odata.mjs.map
518
+ export { DataServiceODataAdapter, ɵ0, ɵ1 };
519
+ //# sourceMappingURL=breeze-client-adapter-data-service-odata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breeze-client-adapter-data-service-odata.js","sources":["ng://breeze-client/adapter-data-service-odata/adapter-core.ts","ng://breeze-client/adapter-data-service-odata/adapter-data-service-odata.ts","ng://breeze-client/adapter-data-service-odata/breeze-client-adapter-data-service-odata.ts"],"sourcesContent":["/** Appends parameter to url, with appropriate delimiter */\r\nexport function appendQueryStringParameter(url: string, parameter: string) {\r\n if (!parameter) return url;\r\n\r\n let separator = url.endsWith(\"?\") ? \"\" : url.includes(\"?\") ? \"&\" : \"?\";\r\n\r\n return url + separator + parameter;\r\n}\r\n\r\n/** Encodes the object into query string parameters */\r\nexport function encodeParams(obj: {}) {\r\n let query = '';\r\n let subValue: any, innerObj: any, fullSubName: any;\r\n\r\n for (let name in obj) {\r\n if (!obj.hasOwnProperty(name)) { continue; }\r\n\r\n let value = obj[name];\r\n\r\n if (value instanceof Array) {\r\n for (let i = 0; i < value.length; ++i) {\r\n subValue = value[i];\r\n fullSubName = name + '[' + i + ']';\r\n innerObj = {};\r\n innerObj[fullSubName] = subValue;\r\n query += encodeParams(innerObj) + '&';\r\n }\r\n } else if (value && value.toISOString) { // a feature of Date-like things\r\n query += encodeURIComponent(name) + '=' + encodeURIComponent(value.toISOString()) + '&';\r\n } else if (value instanceof Object) {\r\n for (let subName in value) {\r\n if (obj.hasOwnProperty(name)) {\r\n subValue = value[subName];\r\n fullSubName = name + '[' + subName + ']';\r\n innerObj = {};\r\n innerObj[fullSubName] = subValue;\r\n query += encodeParams(innerObj) + '&';\r\n }\r\n }\r\n } else if (value === null) {\r\n query += encodeURIComponent(name) + '=&';\r\n } else if (value !== undefined) {\r\n query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';\r\n }\r\n }\r\n\r\n return query.length ? query.substr(0, query.length - 1) : query;\r\n}\r\n","import * as breeze from 'breeze-client';\r\nimport { appendQueryStringParameter } from './adapter-core';\r\n\r\nlet core = breeze.core;\r\n\r\ndeclare var window: any;\r\ndeclare var document: any;\r\ndeclare var url: any; // needed to access node's url.parse\r\ndeclare var OData: any;\r\n\r\ninterface ODataSaveContext extends breeze.SaveContext {\r\n tempKeys: breeze.EntityKey[];\r\n contentKeys: breeze.Entity[];\r\n}\r\n\r\n/** @hidden */\r\nexport class DataServiceODataAdapter extends breeze.AbstractDataServiceAdapter {\r\n name: string;\r\n relativeUrl: boolean | ((ds: breeze.DataService, url: string) => string);\r\n // _catchNoConnectionError = abstractDsaProto._catchNoConnectionError;\r\n // changeRequestInterceptor = abstractDsaProto.changeRequestInterceptor;\r\n // _createChangeRequestInterceptor = abstractDsaProto._createChangeRequestInterceptor;\r\n headers = { \"DataServiceVersion\": \"2.0\" };\r\n\r\n constructor() {\r\n super();\r\n this.name = \"OData\";\r\n }\r\n\r\n static register(config?: breeze.BreezeConfig) {\r\n config = config || breeze.config;\r\n config.registerAdapter(\"dataService\", DataServiceODataAdapter);\r\n return config.initializeAdapterInstance(\"dataService\", \"OData\", true) as DataServiceODataAdapter;\r\n }\r\n\r\n initialize() {\r\n OData = core.requireLib(\"OData\", \"Needed to support remote OData services\");\r\n OData.jsonHandler.recognizeDates = true;\r\n }\r\n\r\n\r\n // Absolute URL is the default as of Breeze 1.5.5. \r\n // To use relative URL (like pre-1.5.5), add adapterInstance.relativeUrl = true:\r\n //\r\n // let ds = breeze.config.initializeAdapterInstance(\"dataService\", \"webApiOData\");\r\n // ds.relativeUrl = true; \r\n //\r\n // To use custom url construction, add adapterInstance.relativeUrl = myfunction(dataService, url):\r\n //\r\n // let ds = breeze.config.initializeAdapterInstance(\"dataService\", \"webApiOData\");\r\n // ds.relativeUrl = function(dataService, url) {\r\n // return somehowConvert(url);\r\n // }\r\n //\r\n\r\n fetchMetadata(metadataStore: breeze.MetadataStore, dataService: breeze.DataService) {\r\n let serviceName = dataService.serviceName;\r\n\r\n let url: string;\r\n if (this.relativeUrl === true) {\r\n url = dataService.qualifyUrl('$metadata');\r\n } else if (core.isFunction(this.relativeUrl)) {\r\n url = (this.relativeUrl as any)(dataService, '$metadata');\r\n } else {\r\n url = this.getAbsoluteUrl(dataService, '$metadata');\r\n }\r\n\r\n let mheaders = core.extend({}, this.headers);\r\n (mheaders as any).Accept = 'application/*; odata.metadata=full';\r\n\r\n let promise = new Promise((resolve, reject) => {\r\n // OData.read(url,\r\n OData.read({\r\n requestUri: url,\r\n // headers: { \"Accept\": \"application/json\"}\r\n headers: mheaders\r\n },\r\n function (data: any) {\r\n // data.dataServices.schema is an array of schemas. with properties of\r\n // entityContainer[], association[], entityType[], and namespace.\r\n if (!data || !data.dataServices) {\r\n let error = new Error(\"Metadata query failed for: \" + url);\r\n return reject(error);\r\n }\r\n let csdlMetadata = data.dataServices;\r\n\r\n // might have been fetched by another query\r\n if (!metadataStore.hasMetadataFor(serviceName)) {\r\n try {\r\n metadataStore.importMetadata(csdlMetadata);\r\n } catch (e) {\r\n return reject(new Error(\"Metadata query failed for \" + url + \"; Unable to process returned metadata: \" + e.message));\r\n }\r\n\r\n metadataStore.addDataService(dataService);\r\n }\r\n\r\n return resolve(csdlMetadata);\r\n\r\n }, function (error: any) {\r\n let err = createError(error, url);\r\n err.message = \"Metadata query failed for: \" + url + \"; \" + (err.message || \"\");\r\n return reject(err);\r\n },\r\n OData.metadataHandler\r\n );\r\n });\r\n\r\n return promise;\r\n }\r\n\r\n\r\n\r\n executeQuery(mappingContext: breeze.MappingContext) {\r\n let url: string;\r\n if (this.relativeUrl === true) {\r\n url = mappingContext.getUrl();\r\n } else if (core.isFunction(this.relativeUrl)) {\r\n url = (this.relativeUrl as any)(mappingContext.dataService, mappingContext.getUrl());\r\n } else {\r\n url = this.getAbsoluteUrl(mappingContext.dataService, mappingContext.getUrl());\r\n }\r\n\r\n // Add query params if .withParameters was used\r\n let query = mappingContext.query as breeze.EntityQuery;\r\n if (!core.isEmpty(query.parameters)) {\r\n let paramString = toQueryString(query.parameters);\r\n url = appendQueryStringParameter(url, paramString);\r\n }\r\n\r\n let promise = new Promise<breeze.QueryResult>((resolve, reject) => {\r\n OData.read({\r\n requestUri: url,\r\n headers: core.extend({}, this.headers)\r\n },\r\n function (data: any, response: any) {\r\n let inlineCount: any;\r\n if (data.__count) {\r\n // OData can return data.__count as a string\r\n inlineCount = parseInt(data.__count, 10);\r\n }\r\n // Odata returns different result structure when it returns multiple entities (data.results) vs single entity (data directly).\r\n // @see http://www.odata.org/documentation/odata-version-2-0/json-format/#RepresentingCollectionsOfEntries\r\n // and http://www.odata.org/documentation/odata-version-2-0/json-format/#RepresentingEntries\r\n let results: any;\r\n if (data.results) {\r\n results = data.results;\r\n } else {\r\n results = data;\r\n }\r\n return resolve({ results: results, inlineCount: inlineCount, httpResponse: response, query: query });\r\n },\r\n function (error: any) {\r\n return reject(createError(error, url));\r\n }\r\n );\r\n });\r\n return promise;\r\n }\r\n\r\n\r\n saveChanges(odataSaveContext: breeze.SaveContext, saveBundle: breeze.SaveBundle): Promise<breeze.SaveResult> {\r\n let adapter = odataSaveContext.adapter = this;\r\n let saveContext = odataSaveContext as ODataSaveContext;\r\n let url: string;\r\n if (this.relativeUrl === true) {\r\n saveContext.routePrefix = adapter.getRoutePrefix(saveContext.dataService);\r\n url = saveContext.dataService.qualifyUrl(\"$batch\");\r\n } else if (core.isFunction(adapter.relativeUrl)) {\r\n saveContext.routePrefix = (adapter.relativeUrl as Function)(saveContext.dataService, '');\r\n url = saveContext.routePrefix + '$batch';\r\n } else {\r\n saveContext.routePrefix = adapter.getAbsoluteUrl(saveContext.dataService, '');\r\n url = saveContext.routePrefix + '$batch';\r\n }\r\n\r\n let requestData = createChangeRequests(saveContext, saveBundle);\r\n let tempKeys = saveContext.tempKeys;\r\n let contentKeys = saveContext.contentKeys;\r\n let promise = new Promise<breeze.SaveResult>((resolve, reject) => {\r\n OData.request({\r\n headers: core.extend({}, this.headers),\r\n requestUri: url,\r\n method: \"POST\",\r\n data: requestData\r\n }, function (data: any, response: any) {\r\n let entities: any[] = [];\r\n let keyMappings: breeze.KeyMapping[] = [];\r\n let saveResult: breeze.SaveResult = { entities: entities, keyMappings: keyMappings };\r\n data.__batchResponses.forEach(function (br: any) {\r\n br.__changeResponses.forEach(function (cr: any) {\r\n let response = cr.response || cr;\r\n let statusCode = response.statusCode;\r\n if ((!statusCode) || statusCode >= 400) {\r\n reject(createError(cr, url));\r\n return;\r\n }\r\n\r\n let contentId = cr.headers[\"Content-ID\"];\r\n // Olingo sends different case of 'ID' for the header name.\r\n if (!contentId) {\r\n contentId = cr.headers[\"Content-Id\"];\r\n }\r\n\r\n let rawEntity = cr.data;\r\n if (rawEntity) {\r\n let tempKey = tempKeys[contentId];\r\n if (tempKey) {\r\n let entityType = tempKey.entityType;\r\n if (entityType.autoGeneratedKeyType !== breeze.AutoGeneratedKeyType.None) {\r\n let tempValue = tempKey.values[0];\r\n let realKey = entityType.getEntityKeyFromRawEntity(rawEntity, breeze.DataProperty.getRawValueFromServer);\r\n let keyMapping = { entityTypeName: entityType.name, tempValue: tempValue, realValue: realKey.values[0] };\r\n keyMappings.push(keyMapping);\r\n }\r\n }\r\n entities.push(rawEntity);\r\n } else {\r\n let origEntity = contentKeys[contentId];\r\n entities.push(origEntity);\r\n }\r\n });\r\n });\r\n return resolve(saveResult);\r\n }, function (err: any) {\r\n return reject(createError(err, url));\r\n }, OData.batchHandler);\r\n });\r\n return promise;\r\n\r\n }\r\n\r\n jsonResultsAdapter: breeze.JsonResultsAdapter = new breeze.JsonResultsAdapter({\r\n name: \"OData_default\",\r\n\r\n visitNode: function (node: any, mappingContext: breeze.MappingContext, nodeContext: breeze.NodeContext) {\r\n let result: any = {};\r\n if (node == null) return result;\r\n let metadata = node.__metadata;\r\n if (metadata != null) {\r\n // TODO: may be able to make this more efficient by caching of the previous value.\r\n let entityTypeName = breeze.MetadataStore.normalizeTypeName(metadata.type);\r\n let et = entityTypeName && mappingContext.entityManager.metadataStore.getEntityType(entityTypeName, true);\r\n // OData response doesn't distinguish a projection from a whole entity.\r\n // We'll assume that whole-entity data would have at least as many properties (<=)\r\n // as the EntityType has mapped properties on the basis that\r\n // most projections remove properties rather than add them.\r\n // If not, assume it's a projection and do NOT treat as an entity\r\n if (et && et._mappedPropertiesCount <= Object.keys(node).length - 1) {\r\n // if (et && et._mappedPropertiesCount === Object.keys(node).length - 1) { // OLD\r\n result.entityType = et;\r\n let uriKey = metadata.uri || metadata.id;\r\n if (uriKey) {\r\n // Strip baseUri to make uriKey a relative uri\r\n // Todo: why is this necessary when absolute works for every OData source tested?\r\n let re = new RegExp('^' + mappingContext.dataService.serviceName, 'i');\r\n uriKey = uriKey.replace(re, '');\r\n }\r\n result.extraMetadata = {\r\n uriKey: uriKey,\r\n etag: metadata.etag\r\n };\r\n }\r\n }\r\n // OData v3 - projection arrays will be enclosed in a results array\r\n if (node.results) {\r\n result.node = node.results;\r\n }\r\n\r\n let propertyName = nodeContext.propertyName;\r\n result.ignore = node.__deferred != null || propertyName === \"__metadata\" ||\r\n // EntityKey properties can be produced by EDMX models\r\n (propertyName === \"EntityKey\" && node.$type && core.stringStartsWith(node.$type, \"System.Data\"));\r\n return result;\r\n }\r\n\r\n });\r\n\r\n getAbsoluteUrl(dataService: breeze.DataService, url: string) {\r\n let serviceName = dataService.qualifyUrl('');\r\n // only prefix with serviceName if not already on the url\r\n let base = (core.stringStartsWith(url, serviceName)) ? '' : serviceName;\r\n // If no protocol, turn base into an absolute URI\r\n if (window && serviceName.indexOf('//') < 0) {\r\n // no protocol; make it absolute\r\n base = window.location.protocol + '//' + window.location.host +\r\n (core.stringStartsWith(serviceName, '/') ? '' : '/') +\r\n base;\r\n }\r\n return base + url;\r\n }\r\n\r\n getRoutePrefix(dataService: breeze.DataService) {\r\n // Get the routePrefix from a Web API OData service name.\r\n // The routePrefix is presumed to be the pathname within the dataService.serviceName\r\n // Examples of servicename -> routePrefix:\r\n // 'http://localhost:55802/odata/' -> 'odata/'\r\n // 'http://198.154.121.75/service/odata/' -> 'service/odata/'\r\n let parser: any;\r\n if (typeof document === 'object') { // browser\r\n parser = document.createElement('a');\r\n parser.href = dataService.serviceName;\r\n } else { // node\r\n // TODO: how to best handle this\r\n // assumes existence of node's url.parse method.\r\n parser = url.parse(dataService.serviceName);\r\n }\r\n let prefix = parser.pathname;\r\n if (prefix[0] === '/') {\r\n prefix = prefix.substr(1);\r\n } // drop leading '/' (all but IE)\r\n if (prefix.substr(-1) !== '/') {\r\n prefix += '/';\r\n } // ensure trailing '/'\r\n return prefix;\r\n }\r\n\r\n}\r\n\r\n// crude serializer. Doesn't recurse\r\nfunction toQueryString(obj: Object) {\r\n let parts: string[] = [];\r\n for (let i in obj) {\r\n if (obj.hasOwnProperty(i)) {\r\n parts.push(encodeURIComponent(i) + \"=\" + encodeURIComponent(obj[i]));\r\n }\r\n }\r\n return parts.join(\"&\");\r\n}\r\n\r\nfunction transformValue(prop: breeze.DataProperty, val: any) {\r\n if (prop.isUnmapped) return undefined;\r\n if (prop.dataType === breeze.DataType.DateTimeOffset) {\r\n // The datajs lib tries to treat client dateTimes that are defined as DateTimeOffset on the server differently\r\n // from other dateTimes. This fix compensates before the save.\r\n val = val && new Date(val.getTime() - (val.getTimezoneOffset() * 60000));\r\n } else if ((prop.dataType as breeze.DataType).quoteJsonOData) {\r\n val = val != null ? val.toString() : val;\r\n }\r\n return val;\r\n}\r\n\r\nfunction createChangeRequests(saveContext: ODataSaveContext, saveBundle: breeze.SaveBundle) {\r\n let changeRequestInterceptor = (saveContext.adapter as DataServiceODataAdapter)._createChangeRequestInterceptor(saveContext, saveBundle);\r\n let changeRequests: any[] = [];\r\n let tempKeys: breeze.EntityKey[] = [];\r\n let contentKeys: breeze.Entity[] = [];\r\n let entityManager = saveContext.entityManager;\r\n let helper = entityManager.helper;\r\n let id = 0;\r\n let routePrefix = saveContext.routePrefix;\r\n\r\n saveBundle.entities.forEach(function (entity, index) {\r\n let aspect = entity.entityAspect;\r\n id = id + 1; // we are deliberately skipping id=0 because Content-ID = 0 seems to be ignored.\r\n let request = { headers: { \"Content-ID\": id, \"DataServiceVersion\": \"2.0\" } } as any;\r\n contentKeys[id] = entity;\r\n if (aspect.entityState.isAdded()) {\r\n request.requestUri = routePrefix + entity.entityType.defaultResourceName;\r\n request.method = \"POST\";\r\n request.data = helper.unwrapInstance(entity, transformValue);\r\n tempKeys[id] = aspect.getKey();\r\n } else if (aspect.entityState.isModified()) {\r\n updateDeleteMergeRequest(request, aspect, routePrefix!);\r\n request.method = \"MERGE\";\r\n request.data = helper.unwrapChangedValues(entity, entityManager.metadataStore, transformValue);\r\n // should be a PATCH/MERGE\r\n } else if (aspect.entityState.isDeleted()) {\r\n updateDeleteMergeRequest(request, aspect, routePrefix!);\r\n request.method = \"DELETE\";\r\n } else {\r\n return;\r\n }\r\n request = changeRequestInterceptor.getRequest(request, entity, index);\r\n changeRequests.push(request);\r\n });\r\n saveContext.contentKeys = contentKeys;\r\n saveContext.tempKeys = tempKeys;\r\n changeRequestInterceptor.done(changeRequests);\r\n return {\r\n __batchRequests: [\r\n {\r\n __changeRequests: changeRequests\r\n }\r\n ]\r\n };\r\n\r\n}\r\n\r\nfunction updateDeleteMergeRequest(request: any, aspect: breeze.EntityAspect, routePrefix: string) {\r\n let uriKey: string;\r\n let extraMetadata = aspect.extraMetadata;\r\n if (extraMetadata == null) {\r\n uriKey = getUriKey(aspect);\r\n aspect.extraMetadata = {\r\n uriKey: uriKey\r\n };\r\n } else {\r\n uriKey = extraMetadata.uriKey;\r\n if (extraMetadata.etag) {\r\n request.headers[\"If-Match\"] = extraMetadata.etag;\r\n }\r\n }\r\n request.requestUri =\r\n // use routePrefix if uriKey lacks protocol (i.e., relative uri)\r\n uriKey.indexOf('//') > 0 ? uriKey : routePrefix + uriKey;\r\n}\r\n\r\nfunction getUriKey(aspect: breeze.EntityAspect) {\r\n let entityType = aspect.entity!.entityType;\r\n let resourceName = entityType.defaultResourceName;\r\n let kps = entityType.keyProperties;\r\n let uriKey = resourceName + \"(\";\r\n if (kps.length === 1) {\r\n uriKey = uriKey + fmtProperty(kps[0], aspect) + \")\";\r\n } else {\r\n let delim = \"\";\r\n kps.forEach(function (kp) {\r\n uriKey = uriKey + delim + kp.nameOnServer + \"=\" + fmtProperty(kp, aspect);\r\n delim = \",\";\r\n });\r\n uriKey = uriKey + \")\";\r\n }\r\n return uriKey;\r\n}\r\n\r\nfunction fmtProperty(prop: breeze.DataProperty, aspect: breeze.EntityAspect) {\r\n return (prop.dataType as breeze.DataType).fmtOData!(aspect.getPropertyValue(prop.name));\r\n}\r\n\r\nfunction createError(error: any, url: string) {\r\n // OData errors can have the message buried very deeply - and nonobviously\r\n // this code is tricky so be careful changing the response.body parsing.\r\n let result = new Error() as breeze.ServerError;\r\n let response = error && error.response;\r\n if (!response) {\r\n // in case DataJS returns \"No handler for this data\"\r\n result.message = error;\r\n result.statusText = error;\r\n return result;\r\n }\r\n result.message = response.statusText;\r\n result.statusText = response.statusText;\r\n result.status = response.statusCode;\r\n // non std\r\n if (url) result.url = url;\r\n result.body = response.body;\r\n if (response.body) {\r\n let nextErr: any;\r\n try {\r\n let body = JSON.parse(response.body);\r\n result.body = body;\r\n // OData v3 logic\r\n if (body['odata.error']) {\r\n body = body['odata.error'];\r\n }\r\n let msg = \"\";\r\n do {\r\n nextErr = body.error || body.innererror;\r\n if (!nextErr) msg = msg + getMessage(body);\r\n nextErr = nextErr || body.internalexception;\r\n body = nextErr || body;\r\n } while (nextErr);\r\n if (msg.length > 0) {\r\n result.message = msg;\r\n }\r\n } catch (e) {\r\n\r\n }\r\n }\r\n breeze.AbstractDataServiceAdapter._catchNoConnectionError(result);\r\n return result;\r\n}\r\n\r\nfunction getMessage(body: any) {\r\n let msg = body.message || \"\";\r\n return ((typeof (msg) === \"string\") ? msg : msg.value) + \"; \";\r\n}\r\n\r\nbreeze.config.registerAdapter(\"dataService\", DataServiceODataAdapter);\r\n\r\n\r\nlet webApiODataCtor = function () {\r\n this.name = \"webApiOData\";\r\n};\r\n\r\nbreeze.core.extend(webApiODataCtor.prototype, DataServiceODataAdapter.prototype);\r\n\r\nbreeze.config.registerAdapter(\"dataService\", webApiODataCtor as any);\r\n// OData 4 adapter\r\nlet webApiOData4Ctor = function () {\r\n this.name = \"webApiOData4\";\r\n};\r\nbreeze.core.extend(webApiOData4Ctor.prototype, webApiODataCtor.prototype);\r\nwebApiOData4Ctor.prototype.initialize = function () {\r\n // Aargh... they moved the cheese.\r\n let datajs = core.requireLib(\"datajs\", \"Needed to support remote OData v4 services\");\r\n OData = datajs.V4.oData;\r\n OData.json.jsonHandler.recognizeDates = true;\r\n};\r\nwebApiOData4Ctor.prototype.headers = { \"OData-Version\": \"4.0\" };\r\nbreeze.config.registerAdapter(\"dataService\", webApiOData4Ctor as any);\r\n\r\n\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './adapter-data-service-odata';\n"],"names":["breeze.core","breeze.JsonResultsAdapter","breeze.MetadataStore","config","breeze.config","breeze.AutoGeneratedKeyType","breeze.DataProperty","breeze.AbstractDataServiceAdapter","breeze.DataType"],"mappings":";;;AAAA;SACgB,0BAA0B,CAAC,GAAW,EAAE,SAAiB;IACvE,IAAI,CAAC,SAAS;QAAE,OAAO,GAAG,CAAC;IAE3B,IAAI,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IAEvE,OAAO,GAAG,GAAG,SAAS,GAAG,SAAS,CAAC;AACrC,CAAC;AAED;SACgB,YAAY,CAAC,GAAO;IAClC,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,QAAa,EAAE,QAAa,EAAE,WAAgB,CAAC;IAEnD,KAAK,IAAI,MAAI,IAAI,GAAG,EAAE;QACpB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAI,CAAC,EAAE;YAAE,SAAS;SAAE;QAE5C,IAAI,KAAK,GAAG,GAAG,CAAC,MAAI,CAAC,CAAC;QAEtB,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;gBACrC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,WAAW,GAAG,MAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;gBACnC,QAAQ,GAAG,EAAE,CAAC;gBACd,QAAQ,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;gBACjC,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;aACvC;SACF;aAAM,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE;YACrC,KAAK,IAAI,kBAAkB,CAAC,MAAI,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC;SACzF;aAAM,IAAI,KAAK,YAAY,MAAM,EAAE;YAClC,KAAK,IAAI,OAAO,IAAI,KAAK,EAAE;gBACzB,IAAI,GAAG,CAAC,cAAc,CAAC,MAAI,CAAC,EAAE;oBAC5B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC1B,WAAW,GAAG,MAAI,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC;oBACzC,QAAQ,GAAG,EAAE,CAAC;oBACd,QAAQ,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;oBACjC,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;iBACvC;aACF;SACF;aAAM,IAAI,KAAK,KAAK,IAAI,EAAE;YACzB,KAAK,IAAI,kBAAkB,CAAC,MAAI,CAAC,GAAG,IAAI,CAAC;SAC1C;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE;YAC9B,KAAK,IAAI,kBAAkB,CAAC,MAAI,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;SAC3E;KACF;IAED,OAAO,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AAClE;;AC5CA,IAAI,IAAI,GAAGA,MAAW,CAAC;AAYvB;;IAC6C,2CAAiC;IAQ5E;QAAA,YACE,iBAAO,SAER;;;;QALD,aAAO,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;QAkN1C,wBAAkB,GAA8B,IAAIC,kBAAyB,CAAC;YAC5E,IAAI,EAAE,eAAe;YAErB,SAAS,EAAE,UAAU,IAAS,EAAE,cAAqC,EAAE,WAA+B;gBACpG,IAAI,MAAM,GAAQ,EAAE,CAAC;gBACrB,IAAI,IAAI,IAAI,IAAI;oBAAE,OAAO,MAAM,CAAC;gBAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC/B,IAAI,QAAQ,IAAI,IAAI,EAAE;;oBAEpB,IAAI,cAAc,GAAGC,aAAoB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC3E,IAAI,EAAE,GAAG,cAAc,IAAI,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;;;;;;oBAM1G,IAAI,EAAE,IAAI,EAAE,CAAC,sBAAsB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;;wBAEnE,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;wBACvB,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC;wBACzC,IAAI,MAAM,EAAE;;;4BAGV,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;4BACvE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;yBACjC;wBACD,MAAM,CAAC,aAAa,GAAG;4BACrB,MAAM,EAAE,MAAM;4BACd,IAAI,EAAE,QAAQ,CAAC,IAAI;yBACpB,CAAC;qBACH;iBACF;;gBAED,IAAI,IAAI,CAAC,OAAO,EAAE;oBAChB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;iBAC5B;gBAED,IAAI,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;gBAC5C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,YAAY,KAAK,YAAY;;qBAErE,YAAY,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;gBACnG,OAAO,MAAM,CAAC;aACf;SAEF,CAAC,CAAC;QA1PD,KAAI,CAAC,IAAI,GAAG,OAAO,CAAC;;KACrB;IAEM,gCAAQ,GAAf,UAAgBC,QAA4B;QAC1CA,QAAM,GAAGA,QAAM,IAAIC,MAAa,CAAC;QACjCD,QAAM,CAAC,eAAe,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;QAC/D,OAAOA,QAAM,CAAC,yBAAyB,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAA4B,CAAC;KAClG;IAED,4CAAU,GAAV;QACE,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,yCAAyC,CAAC,CAAC;QAC5E,KAAK,CAAC,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC;KACzC;;;;;;;;;;;;;;IAiBD,+CAAa,GAAb,UAAc,aAAmC,EAAE,WAA+B;QAChF,IAAI,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;QAE1C,IAAI,GAAW,CAAC;QAChB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YAC7B,GAAG,GAAG,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;SAC3C;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAC5C,GAAG,GAAI,IAAI,CAAC,WAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;SAC3D;aAAM;YACL,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;SACrD;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,QAAgB,CAAC,MAAM,GAAG,oCAAoC,CAAC;QAEhE,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;;YAExC,KAAK,CAAC,IAAI,CAAC;gBACT,UAAU,EAAE,GAAG;;gBAEf,OAAO,EAAE,QAAQ;aAClB,EACC,UAAU,IAAS;;;gBAGjB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;oBAC/B,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,6BAA6B,GAAG,GAAG,CAAC,CAAC;oBAC3D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;iBACtB;gBACD,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;;gBAGrC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;oBAC9C,IAAI;wBACF,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;qBAC5C;oBAAC,OAAO,CAAC,EAAE;wBACV,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,GAAG,GAAG,GAAG,yCAAyC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;qBACtH;oBAED,aAAa,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;iBAC3C;gBAED,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC;aAE9B,EAAE,UAAU,KAAU;gBACrB,IAAI,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAClC,GAAG,CAAC,OAAO,GAAG,6BAA6B,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBAC/E,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;aACpB,EACD,KAAK,CAAC,eAAe,CACtB,CAAC;SACH,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;KAChB;IAID,8CAAY,GAAZ,UAAa,cAAqC;QAAlD,iBA6CC;QA5CC,IAAI,GAAW,CAAC;QAChB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YAC7B,GAAG,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC;SAC/B;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAC5C,GAAG,GAAI,IAAI,CAAC,WAAmB,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;SACtF;aAAM;YACL,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;SAChF;;QAGD,IAAI,KAAK,GAAG,cAAc,CAAC,KAA2B,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;YACnC,IAAI,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAClD,GAAG,GAAG,0BAA0B,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;SACpD;QAED,IAAI,OAAO,GAAG,IAAI,OAAO,CAAqB,UAAC,OAAO,EAAE,MAAM;YAC5D,KAAK,CAAC,IAAI,CAAC;gBACT,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAI,CAAC,OAAO,CAAC;aACvC,EACC,UAAU,IAAS,EAAE,QAAa;gBAChC,IAAI,WAAgB,CAAC;gBACrB,IAAI,IAAI,CAAC,OAAO,EAAE;;oBAEhB,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;iBAC1C;;;;gBAID,IAAI,OAAY,CAAC;gBACjB,IAAI,IAAI,CAAC,OAAO,EAAE;oBAChB,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;iBACxB;qBAAM;oBACL,OAAO,GAAG,IAAI,CAAC;iBAChB;gBACD,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;aACtG,EACD,UAAU,KAAU;gBAClB,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;aACxC,CACF,CAAC;SACH,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;KAChB;IAGD,6CAAW,GAAX,UAAY,gBAAoC,EAAE,UAA6B;QAA/E,iBAqEC;QApEC,IAAI,OAAO,GAAG,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;QAC9C,IAAI,WAAW,GAAG,gBAAoC,CAAC;QACvD,IAAI,GAAW,CAAC;QAChB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YAC7B,WAAW,CAAC,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC1E,GAAG,GAAG,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SACpD;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC/C,WAAW,CAAC,WAAW,GAAI,OAAO,CAAC,WAAwB,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACzF,GAAG,GAAG,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC;SAC1C;aAAM;YACL,WAAW,CAAC,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC9E,GAAG,GAAG,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC;SAC1C;QAED,IAAI,WAAW,GAAG,oBAAoB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAChE,IAAI,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;QACpC,IAAI,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;QAC1C,IAAI,OAAO,GAAG,IAAI,OAAO,CAAoB,UAAC,OAAO,EAAE,MAAM;YAC3D,KAAK,CAAC,OAAO,CAAC;gBACZ,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAI,CAAC,OAAO,CAAC;gBACtC,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,WAAW;aAClB,EAAE,UAAU,IAAS,EAAE,QAAa;gBACnC,IAAI,QAAQ,GAAU,EAAE,CAAC;gBACzB,IAAI,WAAW,GAAwB,EAAE,CAAC;gBAC1C,IAAI,UAAU,GAAsB,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;gBACrF,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAAO;oBAC7C,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAO;wBAC5C,IAAI,QAAQ,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;wBACjC,IAAI,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;wBACrC,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,IAAI,GAAG,EAAE;4BACtC,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;4BAC7B,OAAO;yBACR;wBAED,IAAI,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;;wBAEzC,IAAI,CAAC,SAAS,EAAE;4BACd,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;yBACtC;wBAED,IAAI,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC;wBACxB,IAAI,SAAS,EAAE;4BACb,IAAI,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;4BAClC,IAAI,OAAO,EAAE;gCACX,IAAI,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;gCACpC,IAAI,UAAU,CAAC,oBAAoB,KAAKE,oBAA2B,CAAC,IAAI,EAAE;oCACxE,IAAI,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oCAClC,IAAI,OAAO,GAAG,UAAU,CAAC,yBAAyB,CAAC,SAAS,EAAEC,YAAmB,CAAC,qBAAqB,CAAC,CAAC;oCACzG,IAAI,UAAU,GAAG,EAAE,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iCAC9B;6BACF;4BACD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;yBAC1B;6BAAM;4BACL,IAAI,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;4BACxC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;yBAC3B;qBACF,CAAC,CAAC;iBACJ,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC;aAC5B,EAAE,UAAU,GAAQ;gBACnB,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;aACtC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;SACxB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;KAEhB;IAgDD,gDAAc,GAAd,UAAe,WAA+B,EAAE,GAAW;QACzD,IAAI,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;;QAE7C,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC;;QAExE,IAAI,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;;YAE3C,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI;iBAC1D,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;gBACpD,IAAI,CAAC;SACR;QACD,OAAO,IAAI,GAAG,GAAG,CAAC;KACnB;IAED,gDAAc,GAAd,UAAe,WAA+B;;;;;;QAM5C,IAAI,MAAW,CAAC;QAChB,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAChC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC,WAAW,CAAC;SACvC;aAAM;;;YAGL,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;SAC7C;QACD,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC7B,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YACrB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC3B;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC7B,MAAM,IAAI,GAAG,CAAC;SACf;QACD,OAAO,MAAM,CAAC;KACf;IAEH,8BAAC;AAAD,CAAC,CA7S4CC,0BAAiC,GA6S7E;AAED;AACA,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,KAAK,GAAa,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;QACjB,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;YACzB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACtE;KACF;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,cAAc,CAAC,IAAyB,EAAE,GAAQ;IACzD,IAAI,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IACtC,IAAI,IAAI,CAAC,QAAQ,KAAKC,QAAe,CAAC,cAAc,EAAE;;;QAGpD,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;KAC1E;SAAM,IAAK,IAAI,CAAC,QAA4B,CAAC,cAAc,EAAE;QAC5D,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC;KAC1C;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,oBAAoB,CAAC,WAA6B,EAAE,UAA6B;IACxF,IAAI,wBAAwB,GAAI,WAAW,CAAC,OAAmC,CAAC,+BAA+B,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACzI,IAAI,cAAc,GAAU,EAAE,CAAC;IAC/B,IAAI,QAAQ,GAAuB,EAAE,CAAC;IACtC,IAAI,WAAW,GAAoB,EAAE,CAAC;IACtC,IAAI,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;IAC9C,IAAI,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;IAE1C,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE,KAAK;QACjD,IAAI,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;QACjC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACZ,IAAI,OAAO,GAAG,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAS,CAAC;QACpF,WAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;QACzB,IAAI,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE;YAChC,OAAO,CAAC,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC;YACzE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;YACxB,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAC7D,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;SAChC;aAAM,IAAI,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE;YAC1C,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAY,CAAC,CAAC;YACxD,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;YACzB,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;;SAEhG;aAAM,IAAI,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE;YACzC,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAY,CAAC,CAAC;YACxD,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;SAC3B;aAAM;YACL,OAAO;SACR;QACD,OAAO,GAAG,wBAAwB,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACtE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC9B,CAAC,CAAC;IACH,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;IACtC,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAChC,wBAAwB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9C,OAAO;QACL,eAAe,EAAE;YACf;gBACE,gBAAgB,EAAE,cAAc;aACjC;SACF;KACF,CAAC;AAEJ,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAY,EAAE,MAA2B,EAAE,WAAmB;IAC9F,IAAI,MAAc,CAAC;IACnB,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IACzC,IAAI,aAAa,IAAI,IAAI,EAAE;QACzB,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,aAAa,GAAG;YACrB,MAAM,EAAE,MAAM;SACf,CAAC;KACH;SAAM;QACL,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;QAC9B,IAAI,aAAa,CAAC,IAAI,EAAE;YACtB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC;SAClD;KACF;IACD,OAAO,CAAC,UAAU;;QAEhB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAC7D,CAAC;AAED,SAAS,SAAS,CAAC,MAA2B;IAC5C,IAAI,UAAU,GAAG,MAAM,CAAC,MAAO,CAAC,UAAU,CAAC;IAC3C,IAAI,YAAY,GAAG,UAAU,CAAC,mBAAmB,CAAC;IAClD,IAAI,GAAG,GAAG,UAAU,CAAC,aAAa,CAAC;IACnC,IAAI,MAAM,GAAG,YAAY,GAAG,GAAG,CAAC;IAChC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC;KACrD;SAAM;QACL,IAAI,OAAK,GAAG,EAAE,CAAC;QACf,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE;YACtB,MAAM,GAAG,MAAM,GAAG,OAAK,GAAG,EAAE,CAAC,YAAY,GAAG,GAAG,GAAG,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC1E,OAAK,GAAG,GAAG,CAAC;SACb,CAAC,CAAC;QACH,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;KACvB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,IAAyB,EAAE,MAA2B;IACzE,OAAQ,IAAI,CAAC,QAA4B,CAAC,QAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,WAAW,CAAC,KAAU,EAAE,GAAW;;;IAG1C,IAAI,MAAM,GAAG,IAAI,KAAK,EAAwB,CAAC;IAC/C,IAAI,QAAQ,GAAG,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC;IACvC,IAAI,CAAC,QAAQ,EAAE;;QAEb,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,OAAO,MAAM,CAAC;KACf;IACD,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC;IACrC,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACxC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC;;IAEpC,IAAI,GAAG;QAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC5B,IAAI,QAAQ,CAAC,IAAI,EAAE;QACjB,IAAI,OAAO,SAAK,CAAC;QACjB,IAAI;YACF,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;;YAEnB,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE;gBACvB,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;aAC5B;YACD,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,GAAG;gBACD,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC;gBACxC,IAAI,CAAC,OAAO;oBAAE,GAAG,GAAG,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC3C,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC;gBAC5C,IAAI,GAAG,OAAO,IAAI,IAAI,CAAC;aACxB,QAAQ,OAAO,EAAE;YAClB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;aACtB;SACF;QAAC,OAAO,CAAC,EAAE;SAEX;KACF;IACDD,0BAAiC,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAClE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,IAAS;IAC3B,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IAC7B,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,KAAK,QAAQ,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC;AAChE,CAAC;AAEDH,MAAa,CAAC,eAAe,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;AAGtE,IAAI,eAAe,GAAG;IACpB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;AAC5B,CAAC,CAAC;;AAEFJ,MAAW,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAEjFI,MAAa,CAAC,eAAe,CAAC,aAAa,EAAE,eAAsB,CAAC,CAAC;AACrE;AACA,IAAI,gBAAgB,GAAG;IACrB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;AAC7B,CAAC,CAAC;;AACFJ,MAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;AAC1E,gBAAgB,CAAC,SAAS,CAAC,UAAU,GAAG;;IAEtC,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,4CAA4C,CAAC,CAAC;IACrF,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;IACxB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC;AAC/C,CAAC,CAAC;AACF,gBAAgB,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;AAChEI,MAAa,CAAC,eAAe,CAAC,aAAa,EAAE,gBAAuB,CAAC;;ACrfrE;;;;;;"}