breeze-client 2.1.6-mjs → 2.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/LICENSE +1 -1
  2. package/adapter-ajax-angularjs/{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 +747 -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 +333 -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 +14231 -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 +463 -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 +100 -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 +327 -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 +714 -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 +503 -0
  137. package/esm2015/src/default-property-interceptor.js +460 -0
  138. package/{esm2022/src/entity-action.mjs → esm2015/src/entity-action.js} +25 -25
  139. package/esm2015/src/entity-aspect.js +804 -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 +1015 -0
  145. package/esm2015/src/entity-state.js +107 -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 +411 -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 +1242 -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/{esm2022/adapter-data-service-odata/adapter-data-service-odata.mjs → esm5/adapter-data-service-odata/adapter-data-service-odata.js} +147 -138
  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 +105 -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 +333 -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 +722 -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 +510 -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 +810 -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 +1042 -0
  214. package/esm5/src/entity-state.js +114 -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 +413 -0
  221. package/{esm2022/src/naming-convention.mjs → esm5/src/naming-convention.js} +29 -35
  222. package/esm5/src/observable-array.js +201 -0
  223. package/esm5/src/predicate.js +1307 -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/{esm2022/src/validate.mjs → esm5/src/validate.js} +110 -116
  230. package/esm5/src/validation-options.js +66 -0
  231. package/{fesm2022/breeze-client-adapter-ajax-angularjs.mjs → fesm2015/breeze-client-adapter-ajax-angularjs.js} +1 -6
  232. package/fesm2015/breeze-client-adapter-ajax-angularjs.js.map +1 -0
  233. package/{fesm2022/breeze-client-adapter-ajax-fetch.mjs → fesm2015/breeze-client-adapter-ajax-fetch.js} +4 -9
  234. package/fesm2015/breeze-client-adapter-ajax-fetch.js.map +1 -0
  235. package/{fesm2022/breeze-client-adapter-ajax-httpclient.mjs → fesm2015/breeze-client-adapter-ajax-httpclient.js} +4 -6
  236. package/fesm2015/breeze-client-adapter-ajax-httpclient.js.map +1 -0
  237. package/{fesm2022/breeze-client-adapter-ajax-jquery.mjs → fesm2015/breeze-client-adapter-ajax-jquery.js} +2 -6
  238. package/fesm2015/breeze-client-adapter-ajax-jquery.js.map +1 -0
  239. package/{fesm2022/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/{fesm2022/breeze-client-adapter-data-service-odata.mjs → fesm2015/breeze-client-adapter-data-service-odata.js} +69 -68
  242. package/fesm2015/breeze-client-adapter-data-service-odata.js.map +1 -0
  243. package/{fesm2022/breeze-client-adapter-data-service-webapi.mjs → fesm2015/breeze-client-adapter-data-service-webapi.js} +30 -30
  244. package/fesm2015/breeze-client-adapter-data-service-webapi.js.map +1 -0
  245. package/{fesm2022/breeze-client-adapter-model-library-backing-store.mjs → fesm2015/breeze-client-adapter-model-library-backing-store.js} +13 -14
  246. package/fesm2015/breeze-client-adapter-model-library-backing-store.js.map +1 -0
  247. package/{fesm2022/breeze-client-adapter-model-library-ko.mjs → fesm2015/breeze-client-adapter-model-library-ko.js} +13 -14
  248. package/fesm2015/breeze-client-adapter-model-library-ko.js.map +1 -0
  249. package/{fesm2022/breeze-client-adapter-uri-builder-json.mjs → fesm2015/breeze-client-adapter-uri-builder-json.js} +8 -9
  250. package/fesm2015/breeze-client-adapter-uri-builder-json.js.map +1 -0
  251. package/{fesm2022/breeze-client-adapter-uri-builder-odata.mjs → fesm2015/breeze-client-adapter-uri-builder-odata.js} +86 -86
  252. package/fesm2015/breeze-client-adapter-uri-builder-odata.js.map +1 -0
  253. package/{fesm2022/breeze-client-mixin-get-entity-graph.mjs → fesm2015/breeze-client-mixin-get-entity-graph.js} +1 -1
  254. package/fesm2015/breeze-client-mixin-get-entity-graph.js.map +1 -0
  255. package/{fesm2022/breeze-client-mixin-save-queuing.mjs → fesm2015/breeze-client-mixin-save-queuing.js} +2 -23
  256. package/fesm2015/breeze-client-mixin-save-queuing.js.map +1 -0
  257. package/{fesm2022/breeze-client.mjs → fesm2015/breeze-client.js} +1624 -2073
  258. package/fesm2015/breeze-client.js.map +1 -0
  259. package/fesm5/breeze-client-adapter-ajax-angularjs.js +186 -0
  260. package/fesm5/breeze-client-adapter-ajax-angularjs.js.map +1 -0
  261. package/fesm5/breeze-client-adapter-ajax-fetch.js +186 -0
  262. package/fesm5/breeze-client-adapter-ajax-fetch.js.map +1 -0
  263. package/fesm5/breeze-client-adapter-ajax-httpclient.js +193 -0
  264. package/fesm5/breeze-client-adapter-ajax-httpclient.js.map +1 -0
  265. package/fesm5/breeze-client-adapter-ajax-jquery.js +111 -0
  266. package/fesm5/breeze-client-adapter-ajax-jquery.js.map +1 -0
  267. package/fesm5/breeze-client-adapter-ajax-post.js +86 -0
  268. package/fesm5/breeze-client-adapter-ajax-post.js.map +1 -0
  269. package/fesm5/breeze-client-adapter-data-service-odata.js +523 -0
  270. package/fesm5/breeze-client-adapter-data-service-odata.js.map +1 -0
  271. package/fesm5/breeze-client-adapter-data-service-webapi.js +111 -0
  272. package/fesm5/breeze-client-adapter-data-service-webapi.js.map +1 -0
  273. package/fesm5/breeze-client-adapter-model-library-backing-store.js +276 -0
  274. package/fesm5/breeze-client-adapter-model-library-backing-store.js.map +1 -0
  275. package/fesm5/breeze-client-adapter-model-library-ko.js +248 -0
  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/fesm5/breeze-client-mixin-get-entity-graph.js +254 -0
  282. package/fesm5/breeze-client-mixin-get-entity-graph.js.map +1 -0
  283. package/fesm5/breeze-client-mixin-save-queuing.js +356 -0
  284. package/fesm5/breeze-client-mixin-save-queuing.js.map +1 -0
  285. package/fesm5/breeze-client.js +13953 -0
  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 +11 -93
  294. package/src/abstract-data-service-adapter.d.ts +20 -0
  295. package/src/config.d.ts +1 -1
  296. package/src/core.d.ts +1 -1
  297. package/src/entity-aspect.d.ts +1 -1
  298. package/src/entity-metadata.d.ts +6 -8
  299. package/src/entity-query.d.ts +18 -4
  300. package/esm2022/adapter-ajax-angularjs/adapter-ajax-angularjs.mjs +0 -135
  301. package/esm2022/adapter-ajax-angularjs/adapter-core.mjs +0 -49
  302. package/esm2022/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.mjs +0 -5
  303. package/esm2022/adapter-ajax-fetch/adapter-ajax-fetch.mjs +0 -135
  304. package/esm2022/adapter-ajax-fetch/adapter-core.mjs +0 -49
  305. package/esm2022/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.mjs +0 -5
  306. package/esm2022/adapter-ajax-httpclient/adapter-ajax-httpclient.mjs +0 -139
  307. package/esm2022/adapter-ajax-httpclient/adapter-core.mjs +0 -49
  308. package/esm2022/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.mjs +0 -5
  309. package/esm2022/adapter-ajax-jquery/adapter-ajax-jquery.mjs +0 -107
  310. package/esm2022/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.mjs +0 -5
  311. package/esm2022/adapter-ajax-post/adapter-ajax-post.mjs +0 -77
  312. package/esm2022/adapter-ajax-post/breeze-client-adapter-ajax-post.mjs +0 -5
  313. package/esm2022/adapter-data-service-odata/adapter-core.mjs +0 -49
  314. package/esm2022/adapter-data-service-odata/breeze-client-adapter-data-service-odata.mjs +0 -5
  315. package/esm2022/adapter-data-service-webapi/adapter-data-service-webapi.mjs +0 -100
  316. package/esm2022/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.mjs +0 -5
  317. package/esm2022/adapter-model-library-backing-store/adapter-model-library-backing-store.mjs +0 -269
  318. package/esm2022/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.mjs +0 -5
  319. package/esm2022/adapter-model-library-ko/adapter-model-library-ko.mjs +0 -241
  320. package/esm2022/adapter-model-library-ko/breeze-client-adapter-model-library-ko.mjs +0 -5
  321. package/esm2022/adapter-uri-builder-json/adapter-core.mjs +0 -49
  322. package/esm2022/adapter-uri-builder-json/adapter-uri-builder-json.mjs +0 -37
  323. package/esm2022/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.mjs +0 -5
  324. package/esm2022/adapter-uri-builder-odata/adapter-core.mjs +0 -49
  325. package/esm2022/adapter-uri-builder-odata/adapter-uri-builder-odata.mjs +0 -191
  326. package/esm2022/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.mjs +0 -5
  327. package/esm2022/breeze-client.mjs +0 -5
  328. package/esm2022/index.mjs +0 -2
  329. package/esm2022/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.mjs +0 -5
  330. package/esm2022/mixin-get-entity-graph/mixin-get-entity-graph.mjs +0 -269
  331. package/esm2022/mixin-save-queuing/breeze-client-mixin-save-queuing.mjs +0 -5
  332. package/esm2022/mixin-save-queuing/mixin-save-queuing.mjs +0 -421
  333. package/esm2022/src/abstract-data-service-adapter.mjs +0 -294
  334. package/esm2022/src/array.mjs +0 -4
  335. package/esm2022/src/assert-param.mjs +0 -330
  336. package/esm2022/src/breeze.mjs +0 -85
  337. package/esm2022/src/complex-array.mjs +0 -117
  338. package/esm2022/src/config.mjs +0 -232
  339. package/esm2022/src/core.mjs +0 -712
  340. package/esm2022/src/csdl-metadata-parser.mjs +0 -385
  341. package/esm2022/src/data-service.mjs +0 -239
  342. package/esm2022/src/data-type.mjs +0 -507
  343. package/esm2022/src/default-property-interceptor.mjs +0 -460
  344. package/esm2022/src/entity-aspect.mjs +0 -897
  345. package/esm2022/src/entity-group.mjs +0 -192
  346. package/esm2022/src/entity-key.mjs +0 -127
  347. package/esm2022/src/entity-manager.mjs +0 -2183
  348. package/esm2022/src/entity-metadata.mjs +0 -2242
  349. package/esm2022/src/entity-query.mjs +0 -1005
  350. package/esm2022/src/entity-state.mjs +0 -107
  351. package/esm2022/src/enum.mjs +0 -143
  352. package/esm2022/src/event.mjs +0 -264
  353. package/esm2022/src/interface-registry.mjs +0 -39
  354. package/esm2022/src/key-generator.mjs +0 -110
  355. package/esm2022/src/local-query-comparison-options.mjs +0 -75
  356. package/esm2022/src/mapping-context.mjs +0 -422
  357. package/esm2022/src/observable-array.mjs +0 -183
  358. package/esm2022/src/predicate.mjs +0 -1259
  359. package/esm2022/src/primitive-array.mjs +0 -85
  360. package/esm2022/src/query-options.mjs +0 -160
  361. package/esm2022/src/relation-array.mjs +0 -173
  362. package/esm2022/src/save-options.mjs +0 -51
  363. package/esm2022/src/unattached-children-map.mjs +0 -56
  364. package/esm2022/src/validation-options.mjs +0 -78
  365. package/fesm2022/breeze-client-adapter-ajax-angularjs.mjs.map +0 -1
  366. package/fesm2022/breeze-client-adapter-ajax-fetch.mjs.map +0 -1
  367. package/fesm2022/breeze-client-adapter-ajax-httpclient.mjs.map +0 -1
  368. package/fesm2022/breeze-client-adapter-ajax-jquery.mjs.map +0 -1
  369. package/fesm2022/breeze-client-adapter-ajax-post.mjs.map +0 -1
  370. package/fesm2022/breeze-client-adapter-data-service-odata.mjs.map +0 -1
  371. package/fesm2022/breeze-client-adapter-data-service-webapi.mjs.map +0 -1
  372. package/fesm2022/breeze-client-adapter-model-library-backing-store.mjs.map +0 -1
  373. package/fesm2022/breeze-client-adapter-model-library-ko.mjs.map +0 -1
  374. package/fesm2022/breeze-client-adapter-uri-builder-json.mjs.map +0 -1
  375. package/fesm2022/breeze-client-adapter-uri-builder-odata.mjs.map +0 -1
  376. package/fesm2022/breeze-client-mixin-get-entity-graph.mjs.map +0 -1
  377. package/fesm2022/breeze-client-mixin-save-queuing.mjs.map +0 -1
  378. package/fesm2022/breeze-client.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breeze-client-adapter-model-library-ko.umd.js","sources":["ng://breeze-client/adapter-model-library-ko/adapter-model-library-ko.ts"],"sourcesContent":["import * as breeze from 'breeze-client';\r\n\r\nlet core = breeze.core;\r\n\r\nlet canIsolateES5Props = core.isES5Supported;\r\nlet ko: any;\r\n\r\nexport class ModelLibraryKnockoutAdapter implements breeze.ModelLibraryAdapter {\r\n name: string;\r\n constructor() {\r\n this.name = \"ko\";\r\n }\r\n\r\n static register(config?: breeze.BreezeConfig) {\r\n config = config || breeze.config;\r\n config.registerAdapter(\"modelLibrary\", ModelLibraryKnockoutAdapter);\r\n return config.initializeAdapterInstance(\"modelLibrary\", \"ko\", true) as ModelLibraryKnockoutAdapter;\r\n }\r\n\r\n initialize() {\r\n ko = core.requireLib(\"ko;knockout\", \"The Knockout library\");\r\n ko.extenders.intercept = function (target: any, interceptorOptions: any) {\r\n let instance = interceptorOptions.instance;\r\n let property = interceptorOptions.property;\r\n\r\n // create a computed observable to intercept writes to our observable\r\n let result: any;\r\n if (target.splice) {\r\n result = ko.computed({\r\n read: target //always return the original observables value\r\n });\r\n } else {\r\n result = ko.computed({\r\n read: target, //always return the original observables value\r\n write: function (newValue: any) {\r\n instance._$interceptor(property, newValue, target);\r\n return instance;\r\n }\r\n });\r\n }\r\n //return the new computed observable\r\n return result;\r\n };\r\n\r\n }\r\n\r\n getTrackablePropertyNames(entity: any) {\r\n let names: string[] = [];\r\n for (let p in entity) {\r\n if (p === \"entityType\") continue;\r\n if (p === \"_$typeName\") continue;\r\n\r\n let propDescr = getES5PropDescriptor(entity, p);\r\n if (propDescr && propDescr.get) {\r\n names.push(p);\r\n } else {\r\n let val = entity[p];\r\n if (ko.isObservable(val)) {\r\n names.push(p);\r\n } else if (!core.isFunction(val)) {\r\n names.push(p);\r\n }\r\n }\r\n }\r\n return names;\r\n }\r\n\r\n initializeEntityPrototype(proto: any) {\r\n\r\n proto.getProperty = function (propertyName: string) {\r\n return this[propertyName]();\r\n };\r\n\r\n proto.setProperty = function (propertyName: string, value: any) {\r\n this[propertyName](value);\r\n // allow set property chaining.\r\n return this;\r\n };\r\n\r\n if (canIsolateES5Props) {\r\n isolateES5Props(proto);\r\n }\r\n\r\n }\r\n\r\n startTracking(entity: any, proto: any) {\r\n // create ko's for each property and assign defaultValues\r\n\r\n let stype = (entity.entityType || entity.complexType) as breeze.StructuralType;\r\n let es5Descriptors = stype._extra.es5Descriptors || {};\r\n\r\n // sort unmapped properties to the end\r\n stype.getProperties().sort(function (p1, p2) {\r\n let v1 = p1.isUnmapped ? 1 : 0;\r\n let v2 = p2.isUnmapped ? 1 : 0;\r\n return v1 - v2;\r\n }).forEach(function (prop) {\r\n let propName = prop.name;\r\n let val = entity[propName];\r\n let propDescr = es5Descriptors[propName];\r\n let koObj: any;\r\n\r\n // check if property is an ES5 property\r\n if (propDescr) {\r\n let getFn = propDescr.get.bind(entity);\r\n if (propDescr.set) {\r\n let setFn = propDescr.set.bind(entity);\r\n let rawAccessorFn = function (newValue: any) {\r\n if (arguments.length === 0) {\r\n getFn();\r\n return;\r\n } else {\r\n setFn(newValue);\r\n }\r\n };\r\n koObj = ko.computed({\r\n read: function () {\r\n (stype as any)._koDummy();\r\n return getFn();\r\n },\r\n write: function (newValue: any) {\r\n entity._$interceptor(prop, newValue, rawAccessorFn);\r\n (stype as any)._koDummy.valueHasMutated();\r\n return entity;\r\n }\r\n });\r\n } else {\r\n koObj = ko.computed({\r\n read: getFn,\r\n write: function () {\r\n }\r\n\r\n });\r\n }\r\n // check if property is already exposed as a ko object\r\n } else if (ko.isObservable(val)) {\r\n if (prop.isNavigationProperty) {\r\n throw new Error(\"Cannot assign a navigation property in an entity ctor.: \" + propName);\r\n }\r\n koObj = val;\r\n // otherwise\r\n } else {\r\n val = initializeValueForProp(entity, prop, val);\r\n koObj = prop.isScalar ? ko.observable(val) : ko.observableArray(val);\r\n }\r\n\r\n\r\n if (prop.isScalar) {\r\n if (propDescr) {\r\n Object.defineProperty(entity, propName, {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: koObj\r\n });\r\n } else {\r\n let koExt = koObj.extend({ intercept: { instance: entity, property: prop } });\r\n entity[propName] = koExt;\r\n }\r\n } else {\r\n val._koObj = koObj;\r\n // code to suppress extra breeze notification when\r\n // ko's array methods are called.\r\n koObj.subscribe(onBeforeChange, null, \"beforeChange\");\r\n // code to insure that any direct breeze changes notify ko\r\n val.arrayChanged.subscribe(onArrayChanged);\r\n\r\n koObj.equalityComparer = function () {\r\n throw new Error(\"Collection navigation properties may NOT be set.\");\r\n };\r\n entity[propName] = koObj;\r\n }\r\n\r\n });\r\n\r\n }\r\n}\r\n\r\nbreeze.config.registerAdapter(\"modelLibrary\", ModelLibraryKnockoutAdapter);\r\n\r\n\r\n// private fns\r\n\r\nfunction getES5PropDescriptor(proto: any, propName: string): any {\r\n if (!canIsolateES5Props) {\r\n return null;\r\n }\r\n if (proto.hasOwnProperty(propName)) {\r\n return Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor(proto, propName);\r\n } else {\r\n let nextProto = Object.getPrototypeOf(proto);\r\n return nextProto ? getES5PropDescriptor(nextProto, propName) : null;\r\n }\r\n}\r\n\r\nfunction initializeValueForProp(entity: any, prop: breeze.EntityProperty, val: any) {\r\n if (prop instanceof breeze.DataProperty) {\r\n if (prop.isComplexProperty) {\r\n // TODO: right now we create Empty complexObjects here - these should actually come from the entity\r\n if (prop.isScalar) {\r\n val = (prop.dataType as breeze.ComplexType)._createInstanceCore(entity, prop);\r\n } else {\r\n val = breeze.makeComplexArray([], entity, prop);\r\n }\r\n } else if (!prop.isScalar) {\r\n val = breeze.makePrimitiveArray([], entity, prop);\r\n } else if (val === undefined) {\r\n val = prop.defaultValue;\r\n }\r\n\r\n } else if (prop instanceof breeze.NavigationProperty) {\r\n if (val !== undefined) {\r\n throw new Error(\"Cannot assign a navigation property in an entity ctor.: \" + prop.name);\r\n }\r\n if (prop.isScalar) {\r\n // TODO: change this to nullEntity later.\r\n val = null;\r\n } else {\r\n val = breeze.makeRelationArray([], entity, prop);\r\n }\r\n } else {\r\n throw new Error(\"unknown property: \" + (prop as any).name);\r\n }\r\n return val;\r\n}\r\n\r\n\r\nfunction onBeforeChange(args: any) {\r\n args._koObj._suppressBreeze = true;\r\n}\r\n\r\nfunction onArrayChanged(args: any) {\r\n let koObj = args.array._koObj;\r\n if (koObj._suppressBreeze) {\r\n koObj._suppressBreeze = false;\r\n } else {\r\n koObj.valueHasMutated();\r\n }\r\n}\r\n\r\nfunction isolateES5Props(proto: any) {\r\n let stype = (proto.entityType || proto.complexType) as breeze.StructuralType;\r\n let es5Descriptors = {};\r\n stype.getProperties().forEach(function (prop) {\r\n let propDescr = getES5PropDescriptor(proto, prop.name);\r\n if (propDescr) {\r\n es5Descriptors[prop.name] = propDescr;\r\n }\r\n });\r\n if (!core.isEmpty(es5Descriptors)) {\r\n let extra = stype._extra;\r\n extra.es5Descriptors = es5Descriptors;\r\n (stype as any)._koDummy = ko.observable(null);\r\n }\r\n}\r\n\r\n"],"names":["breeze.core","config","breeze.config","breeze.DataProperty","breeze.makeComplexArray","breeze.makePrimitiveArray","breeze.NavigationProperty","breeze.makeRelationArray"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ !function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("breeze-client")):"function"==typeof define&&define.amd?define("breeze-client/adapter-model-library-ko",["exports","breeze-client"],r):r(((e=e||self)["breeze-client"]=e["breeze-client"]||{},e["breeze-client"]["adapter-model-library-ko"]={}),e["breeze-client"])}(this,(function(e,r){"use strict";var t,n=r.core,i=n.isES5Supported,o=function(){function e(){this.name="ko"}return e.register=function(t){return(t=t||r.config).registerAdapter("modelLibrary",e),t.initializeAdapterInstance("modelLibrary","ko",!0)},e.prototype.initialize=function(){(t=n.requireLib("ko;knockout","The Knockout library")).extenders.intercept=function(e,r){var n=r.instance,i=r.property;return e.splice?t.computed({read:e}):t.computed({read:e,write:function(r){return n._$interceptor(i,r,e),n}})}},e.prototype.getTrackablePropertyNames=function(e){var r=[];for(var i in e)if("entityType"!==i&&"_$typeName"!==i){var o=a(e,i);if(o&&o.get)r.push(i);else{var s=e[i];t.isObservable(s)?r.push(i):n.isFunction(s)||r.push(i)}}return r},e.prototype.initializeEntityPrototype=function(e){e.getProperty=function(e){return this[e]()},e.setProperty=function(e,r){return this[e](r),this},i&&function(e){var r=e.entityType||e.complexType,i={};if(r.getProperties().forEach((function(r){var t=a(e,r.name);t&&(i[r.name]=t)})),!n.isEmpty(i)){r._extra.es5Descriptors=i,r._koDummy=t.observable(null)}}(e)},e.prototype.startTracking=function(e,n){var i=e.entityType||e.complexType,o=i._extra.es5Descriptors||{};i.getProperties().sort((function(e,r){return(e.isUnmapped?1:0)-(r.isUnmapped?1:0)})).forEach((function(n){var a,c=n.name,u=e[c],l=o[c];if(l){var f=l.get.bind(e);if(l.set){var y=l.set.bind(e),b=function(e){0!==arguments.length?y(e):f()};a=t.computed({read:function(){return i._koDummy(),f()},write:function(r){return e._$interceptor(n,r,b),i._koDummy.valueHasMutated(),e}})}else a=t.computed({read:f,write:function(){}})}else if(t.isObservable(u)){if(n.isNavigationProperty)throw new Error("Cannot assign a navigation property in an entity ctor.: "+c);a=u}else u=function(e,t,n){if(t instanceof r.DataProperty)t.isComplexProperty?n=t.isScalar?t.dataType._createInstanceCore(e,t):r.makeComplexArray([],e,t):t.isScalar?void 0===n&&(n=t.defaultValue):n=r.makePrimitiveArray([],e,t);else{if(!(t instanceof r.NavigationProperty))throw new Error("unknown property: "+t.name);if(void 0!==n)throw new Error("Cannot assign a navigation property in an entity ctor.: "+t.name);n=t.isScalar?null:r.makeRelationArray([],e,t)}return n}(e,n,u),a=n.isScalar?t.observable(u):t.observableArray(u);if(n.isScalar)if(l)Object.defineProperty(e,c,{enumerable:!0,configurable:!0,writable:!0,value:a});else{var d=a.extend({intercept:{instance:e,property:n}});e[c]=d}else u._koObj=a,a.subscribe(s,null,"beforeChange"),u.arrayChanged.subscribe(p),a.equalityComparer=function(){throw new Error("Collection navigation properties may NOT be set.")},e[c]=a}))},e}();function a(e,r){if(!i)return null;if(e.hasOwnProperty(r))return Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(e,r);var t=Object.getPrototypeOf(e);return t?a(t,r):null}function s(e){e._koObj._suppressBreeze=!0}function p(e){var r=e.array._koObj;r._suppressBreeze?r._suppressBreeze=!1:r.valueHasMutated()}r.config.registerAdapter("modelLibrary",o),e.ModelLibraryKnockoutAdapter=o,Object.defineProperty(e,"__esModule",{value:!0})}));
2
+ //# sourceMappingURL=breeze-client-adapter-model-library-ko.umd.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ng://breeze-client/adapter-model-library-ko/adapter-model-library-ko.ts"],"names":["ko","core","breeze.core","canIsolateES5Props","isES5Supported","ModelLibraryKnockoutAdapter","this","name","register","config","breeze.config","registerAdapter","initializeAdapterInstance","prototype","initialize","requireLib","extenders","intercept","target","interceptorOptions","instance","property","splice","computed","read","write","newValue","_$interceptor","getTrackablePropertyNames","entity","names","p","propDescr","getES5PropDescriptor","get","push","val","isObservable","isFunction","initializeEntityPrototype","proto","getProperty","propertyName","setProperty","value","stype","entityType","complexType","es5Descriptors","getProperties","forEach","prop","isEmpty","_extra","_koDummy","observable","isolateES5Props","startTracking","sort","p1","p2","isUnmapped","koObj","propName","getFn_1","bind","set","setFn_1","rawAccessorFn_1","arguments","length","valueHasMutated","isNavigationProperty","Error","breeze.DataProperty","isComplexProperty","isScalar","dataType","_createInstanceCore","breeze.makeComplexArray","undefined","defaultValue","breeze.makePrimitiveArray","breeze.NavigationProperty","breeze.makeRelationArray","initializeValueForProp","observableArray","Object","defineProperty","enumerable","configurable","writable","koExt","extend","_koObj","subscribe","onBeforeChange","arrayChanged","onArrayChanged","equalityComparer","hasOwnProperty","getOwnPropertyDescriptor","nextProto","getPrototypeOf","args","_suppressBreeze","array"],"mappings":"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","sourcesContent":["import * as breeze from 'breeze-client';\r\n\r\nlet core = breeze.core;\r\n\r\nlet canIsolateES5Props = core.isES5Supported;\r\nlet ko: any;\r\n\r\nexport class ModelLibraryKnockoutAdapter implements breeze.ModelLibraryAdapter {\r\n name: string;\r\n constructor() {\r\n this.name = \"ko\";\r\n }\r\n\r\n static register(config?: breeze.BreezeConfig) {\r\n config = config || breeze.config;\r\n config.registerAdapter(\"modelLibrary\", ModelLibraryKnockoutAdapter);\r\n return config.initializeAdapterInstance(\"modelLibrary\", \"ko\", true) as ModelLibraryKnockoutAdapter;\r\n }\r\n\r\n initialize() {\r\n ko = core.requireLib(\"ko;knockout\", \"The Knockout library\");\r\n ko.extenders.intercept = function (target: any, interceptorOptions: any) {\r\n let instance = interceptorOptions.instance;\r\n let property = interceptorOptions.property;\r\n\r\n // create a computed observable to intercept writes to our observable\r\n let result: any;\r\n if (target.splice) {\r\n result = ko.computed({\r\n read: target //always return the original observables value\r\n });\r\n } else {\r\n result = ko.computed({\r\n read: target, //always return the original observables value\r\n write: function (newValue: any) {\r\n instance._$interceptor(property, newValue, target);\r\n return instance;\r\n }\r\n });\r\n }\r\n //return the new computed observable\r\n return result;\r\n };\r\n\r\n }\r\n\r\n getTrackablePropertyNames(entity: any) {\r\n let names: string[] = [];\r\n for (let p in entity) {\r\n if (p === \"entityType\") continue;\r\n if (p === \"_$typeName\") continue;\r\n\r\n let propDescr = getES5PropDescriptor(entity, p);\r\n if (propDescr && propDescr.get) {\r\n names.push(p);\r\n } else {\r\n let val = entity[p];\r\n if (ko.isObservable(val)) {\r\n names.push(p);\r\n } else if (!core.isFunction(val)) {\r\n names.push(p);\r\n }\r\n }\r\n }\r\n return names;\r\n }\r\n\r\n initializeEntityPrototype(proto: any) {\r\n\r\n proto.getProperty = function (propertyName: string) {\r\n return this[propertyName]();\r\n };\r\n\r\n proto.setProperty = function (propertyName: string, value: any) {\r\n this[propertyName](value);\r\n // allow set property chaining.\r\n return this;\r\n };\r\n\r\n if (canIsolateES5Props) {\r\n isolateES5Props(proto);\r\n }\r\n\r\n }\r\n\r\n startTracking(entity: any, proto: any) {\r\n // create ko's for each property and assign defaultValues\r\n\r\n let stype = (entity.entityType || entity.complexType) as breeze.StructuralType;\r\n let es5Descriptors = stype._extra.es5Descriptors || {};\r\n\r\n // sort unmapped properties to the end\r\n stype.getProperties().sort(function (p1, p2) {\r\n let v1 = p1.isUnmapped ? 1 : 0;\r\n let v2 = p2.isUnmapped ? 1 : 0;\r\n return v1 - v2;\r\n }).forEach(function (prop) {\r\n let propName = prop.name;\r\n let val = entity[propName];\r\n let propDescr = es5Descriptors[propName];\r\n let koObj: any;\r\n\r\n // check if property is an ES5 property\r\n if (propDescr) {\r\n let getFn = propDescr.get.bind(entity);\r\n if (propDescr.set) {\r\n let setFn = propDescr.set.bind(entity);\r\n let rawAccessorFn = function (newValue: any) {\r\n if (arguments.length === 0) {\r\n getFn();\r\n return;\r\n } else {\r\n setFn(newValue);\r\n }\r\n };\r\n koObj = ko.computed({\r\n read: function () {\r\n (stype as any)._koDummy();\r\n return getFn();\r\n },\r\n write: function (newValue: any) {\r\n entity._$interceptor(prop, newValue, rawAccessorFn);\r\n (stype as any)._koDummy.valueHasMutated();\r\n return entity;\r\n }\r\n });\r\n } else {\r\n koObj = ko.computed({\r\n read: getFn,\r\n write: function () {\r\n }\r\n\r\n });\r\n }\r\n // check if property is already exposed as a ko object\r\n } else if (ko.isObservable(val)) {\r\n if (prop.isNavigationProperty) {\r\n throw new Error(\"Cannot assign a navigation property in an entity ctor.: \" + propName);\r\n }\r\n koObj = val;\r\n // otherwise\r\n } else {\r\n val = initializeValueForProp(entity, prop, val);\r\n koObj = prop.isScalar ? ko.observable(val) : ko.observableArray(val);\r\n }\r\n\r\n\r\n if (prop.isScalar) {\r\n if (propDescr) {\r\n Object.defineProperty(entity, propName, {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: koObj\r\n });\r\n } else {\r\n let koExt = koObj.extend({ intercept: { instance: entity, property: prop } });\r\n entity[propName] = koExt;\r\n }\r\n } else {\r\n val._koObj = koObj;\r\n // code to suppress extra breeze notification when\r\n // ko's array methods are called.\r\n koObj.subscribe(onBeforeChange, null, \"beforeChange\");\r\n // code to insure that any direct breeze changes notify ko\r\n val.arrayChanged.subscribe(onArrayChanged);\r\n\r\n koObj.equalityComparer = function () {\r\n throw new Error(\"Collection navigation properties may NOT be set.\");\r\n };\r\n entity[propName] = koObj;\r\n }\r\n\r\n });\r\n\r\n }\r\n}\r\n\r\nbreeze.config.registerAdapter(\"modelLibrary\", ModelLibraryKnockoutAdapter);\r\n\r\n\r\n// private fns\r\n\r\nfunction getES5PropDescriptor(proto: any, propName: string): any {\r\n if (!canIsolateES5Props) {\r\n return null;\r\n }\r\n if (proto.hasOwnProperty(propName)) {\r\n return Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor(proto, propName);\r\n } else {\r\n let nextProto = Object.getPrototypeOf(proto);\r\n return nextProto ? getES5PropDescriptor(nextProto, propName) : null;\r\n }\r\n}\r\n\r\nfunction initializeValueForProp(entity: any, prop: breeze.EntityProperty, val: any) {\r\n if (prop instanceof breeze.DataProperty) {\r\n if (prop.isComplexProperty) {\r\n // TODO: right now we create Empty complexObjects here - these should actually come from the entity\r\n if (prop.isScalar) {\r\n val = (prop.dataType as breeze.ComplexType)._createInstanceCore(entity, prop);\r\n } else {\r\n val = breeze.makeComplexArray([], entity, prop);\r\n }\r\n } else if (!prop.isScalar) {\r\n val = breeze.makePrimitiveArray([], entity, prop);\r\n } else if (val === undefined) {\r\n val = prop.defaultValue;\r\n }\r\n\r\n } else if (prop instanceof breeze.NavigationProperty) {\r\n if (val !== undefined) {\r\n throw new Error(\"Cannot assign a navigation property in an entity ctor.: \" + prop.name);\r\n }\r\n if (prop.isScalar) {\r\n // TODO: change this to nullEntity later.\r\n val = null;\r\n } else {\r\n val = breeze.makeRelationArray([], entity, prop);\r\n }\r\n } else {\r\n throw new Error(\"unknown property: \" + (prop as any).name);\r\n }\r\n return val;\r\n}\r\n\r\n\r\nfunction onBeforeChange(args: any) {\r\n args._koObj._suppressBreeze = true;\r\n}\r\n\r\nfunction onArrayChanged(args: any) {\r\n let koObj = args.array._koObj;\r\n if (koObj._suppressBreeze) {\r\n koObj._suppressBreeze = false;\r\n } else {\r\n koObj.valueHasMutated();\r\n }\r\n}\r\n\r\nfunction isolateES5Props(proto: any) {\r\n let stype = (proto.entityType || proto.complexType) as breeze.StructuralType;\r\n let es5Descriptors = {};\r\n stype.getProperties().forEach(function (prop) {\r\n let propDescr = getES5PropDescriptor(proto, prop.name);\r\n if (propDescr) {\r\n es5Descriptors[prop.name] = propDescr;\r\n }\r\n });\r\n if (!core.isEmpty(es5Descriptors)) {\r\n let extra = stype._extra;\r\n extra.es5Descriptors = es5Descriptors;\r\n (stype as any)._koDummy = ko.observable(null);\r\n }\r\n}\r\n\r\n"]}
@@ -0,0 +1,96 @@
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/adapter-uri-builder-json', ['exports', 'breeze-client'], factory) :
4
+ (global = global || self, factory((global['breeze-client'] = global['breeze-client'] || {}, global['breeze-client']['adapter-uri-builder-json'] = {}), global['breeze-client']));
5
+ }(this, (function (exports, breezeClient) { 'use strict';
6
+
7
+ /** Appends parameter to url, with appropriate delimiter */
8
+ function appendQueryStringParameter(url, parameter) {
9
+ if (!parameter)
10
+ return url;
11
+ var separator = url.endsWith("?") ? "" : url.includes("?") ? "&" : "?";
12
+ return url + separator + parameter;
13
+ }
14
+ /** Encodes the object into query string parameters */
15
+ function encodeParams(obj) {
16
+ var query = '';
17
+ var subValue, innerObj, fullSubName;
18
+ for (var name_1 in obj) {
19
+ if (!obj.hasOwnProperty(name_1)) {
20
+ continue;
21
+ }
22
+ var value = obj[name_1];
23
+ if (value instanceof Array) {
24
+ for (var i = 0; i < value.length; ++i) {
25
+ subValue = value[i];
26
+ fullSubName = name_1 + '[' + i + ']';
27
+ innerObj = {};
28
+ innerObj[fullSubName] = subValue;
29
+ query += encodeParams(innerObj) + '&';
30
+ }
31
+ }
32
+ else if (value && value.toISOString) { // a feature of Date-like things
33
+ query += encodeURIComponent(name_1) + '=' + encodeURIComponent(value.toISOString()) + '&';
34
+ }
35
+ else if (value instanceof Object) {
36
+ for (var subName in value) {
37
+ if (obj.hasOwnProperty(name_1)) {
38
+ subValue = value[subName];
39
+ fullSubName = name_1 + '[' + subName + ']';
40
+ innerObj = {};
41
+ innerObj[fullSubName] = subValue;
42
+ query += encodeParams(innerObj) + '&';
43
+ }
44
+ }
45
+ }
46
+ else if (value === null) {
47
+ query += encodeURIComponent(name_1) + '=&';
48
+ }
49
+ else if (value !== undefined) {
50
+ query += encodeURIComponent(name_1) + '=' + encodeURIComponent(value) + '&';
51
+ }
52
+ }
53
+ return query.length ? query.substr(0, query.length - 1) : query;
54
+ }
55
+
56
+ var UriBuilderJsonAdapter = /** @class */ (function () {
57
+ function UriBuilderJsonAdapter() {
58
+ this.name = "json";
59
+ }
60
+ UriBuilderJsonAdapter.register = function (config$1) {
61
+ config$1 = config$1 || breezeClient.config;
62
+ config$1.registerAdapter("uriBuilder", UriBuilderJsonAdapter);
63
+ return config$1.initializeAdapterInstance("uriBuilder", "json", true);
64
+ };
65
+ UriBuilderJsonAdapter.prototype.initialize = function () { };
66
+ UriBuilderJsonAdapter.prototype.buildUri = function (entityQuery, metadataStore) {
67
+ // force entityType validation;
68
+ var entityType = entityQuery._getFromEntityType(metadataStore, false);
69
+ if (!entityType)
70
+ entityType = new breezeClient.EntityType(metadataStore);
71
+ var json = entityQuery.toJSONExt({ entityType: entityType, toNameOnServer: true });
72
+ json.from = undefined;
73
+ json.queryOptions = undefined;
74
+ if (json.parameters && json.parameters.$data) {
75
+ // remove parameters if doing ajax post
76
+ json.parameters = undefined;
77
+ }
78
+ var jsonString = JSON.stringify(json);
79
+ if (jsonString.length > 2) {
80
+ var urlBody = encodeURIComponent(jsonString);
81
+ return appendQueryStringParameter(entityQuery.resourceName, urlBody);
82
+ }
83
+ else {
84
+ return entityQuery.resourceName;
85
+ }
86
+ };
87
+ return UriBuilderJsonAdapter;
88
+ }());
89
+ breezeClient.config.registerAdapter("uriBuilder", UriBuilderJsonAdapter);
90
+
91
+ exports.UriBuilderJsonAdapter = UriBuilderJsonAdapter;
92
+
93
+ Object.defineProperty(exports, '__esModule', { value: true });
94
+
95
+ })));
96
+ //# sourceMappingURL=breeze-client-adapter-uri-builder-json.umd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breeze-client-adapter-uri-builder-json.umd.js","sources":["ng://breeze-client/adapter-uri-builder-json/adapter-core.ts","ng://breeze-client/adapter-uri-builder-json/adapter-uri-builder-json.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\nexport class UriBuilderJsonAdapter implements breeze.UriBuilderAdapter {\r\n name: string;\r\n\r\n constructor() {\r\n this.name = \"json\";\r\n }\r\n\r\n static register(config?: breeze.BreezeConfig) {\r\n config = config || breeze.config;\r\n config.registerAdapter(\"uriBuilder\", UriBuilderJsonAdapter);\r\n return config.initializeAdapterInstance(\"uriBuilder\", \"json\", true) as UriBuilderJsonAdapter;\r\n }\r\n\r\n initialize() {}\r\n\r\n buildUri(entityQuery: breeze.EntityQuery, metadataStore: breeze.MetadataStore) {\r\n // force entityType validation;\r\n let entityType = entityQuery._getFromEntityType(metadataStore, false);\r\n if (!entityType) entityType = new breeze.EntityType(metadataStore);\r\n let json = entityQuery.toJSONExt( { entityType: entityType, toNameOnServer: true}) as any;\r\n json.from = undefined;\r\n json.queryOptions = undefined;\r\n if (json.parameters && json.parameters.$data) {\r\n // remove parameters if doing ajax post\r\n json.parameters = undefined;\r\n }\r\n\r\n let jsonString = JSON.stringify(json);\r\n if (jsonString.length > 2) {\r\n let urlBody = encodeURIComponent(jsonString);\r\n return appendQueryStringParameter(entityQuery.resourceName, urlBody);\r\n } else {\r\n return entityQuery.resourceName;\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\nbreeze.config.registerAdapter(\"uriBuilder\", UriBuilderJsonAdapter);\r\n\r\n\r\n\r\n"],"names":["config","breeze.config","breeze.EntityType"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ !function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("breeze-client")):"function"==typeof define&&define.amd?define("breeze-client/adapter-uri-builder-json",["exports","breeze-client"],r):r(((e=e||self)["breeze-client"]=e["breeze-client"]||{},e["breeze-client"]["adapter-uri-builder-json"]={}),e["breeze-client"])}(this,(function(e,r){"use strict";var t=function(){function e(){this.name="json"}return e.register=function(t){return(t=t||r.config).registerAdapter("uriBuilder",e),t.initializeAdapterInstance("uriBuilder","json",!0)},e.prototype.initialize=function(){},e.prototype.buildUri=function(e,t){var i=e._getFromEntityType(t,!1);i||(i=new r.EntityType(t));var n=e.toJSONExt({entityType:i,toNameOnServer:!0});n.from=void 0,n.queryOptions=void 0,n.parameters&&n.parameters.$data&&(n.parameters=void 0);var o=JSON.stringify(n);if(o.length>2){var u=encodeURIComponent(o);return function(e,r){if(!r)return e;var t=e.endsWith("?")?"":e.includes("?")?"&":"?";return e+t+r}(e.resourceName,u)}return e.resourceName},e}();r.config.registerAdapter("uriBuilder",t),e.UriBuilderJsonAdapter=t,Object.defineProperty(e,"__esModule",{value:!0})}));
2
+ //# sourceMappingURL=breeze-client-adapter-uri-builder-json.umd.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ng://breeze-client/adapter-uri-builder-json/adapter-uri-builder-json.ts","ng://breeze-client/adapter-uri-builder-json/adapter-core.ts"],"names":["UriBuilderJsonAdapter","this","name","register","config","breeze.config","registerAdapter","initializeAdapterInstance","prototype","initialize","buildUri","entityQuery","metadataStore","entityType","_getFromEntityType","breeze.EntityType","json","toJSONExt","toNameOnServer","from","undefined","queryOptions","parameters","$data","jsonString","JSON","stringify","length","urlBody","encodeURIComponent","url","parameter","separator","endsWith","includes","appendQueryStringParameter","resourceName"],"mappings":"8YAME,SAAAA,IACEC,KAAKC,KAAO,OAiChB,OA9BSF,EAAAG,SAAP,SAAgBC,GAGd,OAFAA,EAASA,GAAUC,EAAAA,QACZC,gBAAgB,aAAcN,GAC9BI,EAAOG,0BAA0B,aAAc,QAAQ,IAGhEP,EAAAQ,UAAAC,WAAA,aAEAT,EAAAQ,UAAAE,SAAA,SAASC,EAAiCC,GAExC,IAAIC,EAAaF,EAAYG,mBAAmBF,GAAe,GAC1DC,IAAYA,EAAa,IAAIE,EAAAA,WAAkBH,IACpD,IAAII,EAAOL,EAAYM,UAAW,CAAEJ,WAAYA,EAAYK,gBAAgB,IAC5EF,EAAKG,UAAOC,EACZJ,EAAKK,kBAAeD,EAChBJ,EAAKM,YAAcN,EAAKM,WAAWC,QAErCP,EAAKM,gBAAaF,GAGpB,IAAII,EAAaC,KAAKC,UAAUV,GAChC,GAAIQ,EAAWG,OAAS,EAAG,CACzB,IAAIC,EAAUC,mBAAmBL,GACjC,gBChCqCM,EAAaC,GACtD,IAAKA,EAAW,OAAOD,EAEvB,IAAIE,EAAYF,EAAIG,SAAS,KAAO,GAAKH,EAAII,SAAS,KAAO,IAAM,IAEnE,OAAOJ,EAAME,EAAYD,ED2BdI,CAA2BxB,EAAYyB,aAAcR,GAE5D,OAAOjB,EAAYyB,cAKzBpC,KAEAK,EAAAA,OAAcC,gBAAgB,aAAcN","sourcesContent":["import * as breeze from 'breeze-client';\r\nimport { appendQueryStringParameter } from './adapter-core';\r\n\r\nexport class UriBuilderJsonAdapter implements breeze.UriBuilderAdapter {\r\n name: string;\r\n\r\n constructor() {\r\n this.name = \"json\";\r\n }\r\n\r\n static register(config?: breeze.BreezeConfig) {\r\n config = config || breeze.config;\r\n config.registerAdapter(\"uriBuilder\", UriBuilderJsonAdapter);\r\n return config.initializeAdapterInstance(\"uriBuilder\", \"json\", true) as UriBuilderJsonAdapter;\r\n }\r\n\r\n initialize() {}\r\n\r\n buildUri(entityQuery: breeze.EntityQuery, metadataStore: breeze.MetadataStore) {\r\n // force entityType validation;\r\n let entityType = entityQuery._getFromEntityType(metadataStore, false);\r\n if (!entityType) entityType = new breeze.EntityType(metadataStore);\r\n let json = entityQuery.toJSONExt( { entityType: entityType, toNameOnServer: true}) as any;\r\n json.from = undefined;\r\n json.queryOptions = undefined;\r\n if (json.parameters && json.parameters.$data) {\r\n // remove parameters if doing ajax post\r\n json.parameters = undefined;\r\n }\r\n\r\n let jsonString = JSON.stringify(json);\r\n if (jsonString.length > 2) {\r\n let urlBody = encodeURIComponent(jsonString);\r\n return appendQueryStringParameter(entityQuery.resourceName, urlBody);\r\n } else {\r\n return entityQuery.resourceName;\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\nbreeze.config.registerAdapter(\"uriBuilder\", UriBuilderJsonAdapter);\r\n\r\n\r\n\r\n","/** 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"]}
@@ -0,0 +1,262 @@
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/adapter-uri-builder-odata', ['exports', 'breeze-client'], factory) :
4
+ (global = global || self, factory((global['breeze-client'] = global['breeze-client'] || {}, global['breeze-client']['adapter-uri-builder-odata'] = {}), global['breeze-client']));
5
+ }(this, (function (exports, breezeClient) { 'use strict';
6
+
7
+ /** Appends parameter to url, with appropriate delimiter */
8
+ function appendQueryStringParameter(url, parameter) {
9
+ if (!parameter)
10
+ return url;
11
+ var separator = url.endsWith("?") ? "" : url.includes("?") ? "&" : "?";
12
+ return url + separator + parameter;
13
+ }
14
+ /** Encodes the object into query string parameters */
15
+ function encodeParams(obj) {
16
+ var query = '';
17
+ var subValue, innerObj, fullSubName;
18
+ for (var name_1 in obj) {
19
+ if (!obj.hasOwnProperty(name_1)) {
20
+ continue;
21
+ }
22
+ var value = obj[name_1];
23
+ if (value instanceof Array) {
24
+ for (var i = 0; i < value.length; ++i) {
25
+ subValue = value[i];
26
+ fullSubName = name_1 + '[' + i + ']';
27
+ innerObj = {};
28
+ innerObj[fullSubName] = subValue;
29
+ query += encodeParams(innerObj) + '&';
30
+ }
31
+ }
32
+ else if (value && value.toISOString) { // a feature of Date-like things
33
+ query += encodeURIComponent(name_1) + '=' + encodeURIComponent(value.toISOString()) + '&';
34
+ }
35
+ else if (value instanceof Object) {
36
+ for (var subName in value) {
37
+ if (obj.hasOwnProperty(name_1)) {
38
+ subValue = value[subName];
39
+ fullSubName = name_1 + '[' + subName + ']';
40
+ innerObj = {};
41
+ innerObj[fullSubName] = subValue;
42
+ query += encodeParams(innerObj) + '&';
43
+ }
44
+ }
45
+ }
46
+ else if (value === null) {
47
+ query += encodeURIComponent(name_1) + '=&';
48
+ }
49
+ else if (value !== undefined) {
50
+ query += encodeURIComponent(name_1) + '=' + encodeURIComponent(value) + '&';
51
+ }
52
+ }
53
+ return query.length ? query.substr(0, query.length - 1) : query;
54
+ }
55
+
56
+ var UriBuilderODataAdapter = /** @class */ (function () {
57
+ function UriBuilderODataAdapter() {
58
+ this.name = "odata";
59
+ }
60
+ UriBuilderODataAdapter.register = function (config$1) {
61
+ config$1 = config$1 || breezeClient.config;
62
+ config$1.registerAdapter("uriBuilder", UriBuilderODataAdapter);
63
+ return config$1.initializeAdapterInstance("uriBuilder", "odata", true);
64
+ };
65
+ UriBuilderODataAdapter.prototype.initialize = function () { };
66
+ UriBuilderODataAdapter.prototype.buildUri = function (entityQuery, metadataStore) {
67
+ // force entityType validation;
68
+ var entityType = entityQuery._getFromEntityType(metadataStore, false);
69
+ if (!entityType) {
70
+ // anonymous type but still has naming convention info avail
71
+ entityType = new breezeClient.EntityType(metadataStore);
72
+ }
73
+ var queryOptions = {};
74
+ queryOptions["$filter"] = toWhereODataFragment(entityQuery.wherePredicate);
75
+ queryOptions["$orderby"] = toOrderByODataFragment(entityQuery.orderByClause);
76
+ if (entityQuery.skipCount) {
77
+ queryOptions["$skip"] = entityQuery.skipCount;
78
+ }
79
+ if (entityQuery.takeCount != null) {
80
+ queryOptions["$top"] = entityQuery.takeCount;
81
+ }
82
+ queryOptions["$expand"] = toExpandODataFragment(entityQuery.expandClause);
83
+ queryOptions["$select"] = toSelectODataFragment(entityQuery.selectClause);
84
+ if (entityQuery.inlineCountEnabled) {
85
+ queryOptions["$inlinecount"] = "allpages";
86
+ }
87
+ var qoText = toQueryOptionsString(queryOptions);
88
+ return appendQueryStringParameter(entityQuery.resourceName, qoText);
89
+ // private methods to this func.
90
+ function toWhereODataFragment(wherePredicate) {
91
+ if (!wherePredicate)
92
+ return undefined;
93
+ // validation occurs inside of the toODataFragment call here.
94
+ var frag = wherePredicate.visit({ entityType: entityType }, toODataFragmentVisitor);
95
+ return (frag && frag.length > 0) ? frag : undefined;
96
+ }
97
+ function toOrderByODataFragment(orderByClause) {
98
+ if (!orderByClause)
99
+ return undefined;
100
+ orderByClause.validate(entityType);
101
+ var strings = orderByClause.items.map(function (item) {
102
+ return entityType.clientPropertyPathToServer(item.propertyPath, "/") + (item.isDesc ? " desc" : "");
103
+ });
104
+ // should return something like CompanyName,Address/City desc
105
+ return strings.join(',');
106
+ }
107
+ function toSelectODataFragment(selectClause) {
108
+ if (!selectClause)
109
+ return undefined;
110
+ selectClause.validate(entityType);
111
+ var frag = selectClause.propertyPaths.map(function (pp) {
112
+ return entityType.clientPropertyPathToServer(pp, "/");
113
+ }).join(",");
114
+ return frag;
115
+ }
116
+ function toExpandODataFragment(expandClause) {
117
+ if (!expandClause)
118
+ return undefined;
119
+ // no validate on expand clauses currently.
120
+ // expandClause.validate(entityType);
121
+ var frag = expandClause.propertyPaths.map(function (pp) {
122
+ return entityType.clientPropertyPathToServer(pp, "/");
123
+ }).join(",");
124
+ return frag;
125
+ }
126
+ function toQueryOptionsString(queryOptions) {
127
+ var qoStrings = [];
128
+ var _loop_1 = function (qoName) {
129
+ var qoValue = queryOptions[qoName];
130
+ if (qoValue !== undefined) {
131
+ if (qoValue instanceof Array) {
132
+ qoValue.forEach(function (qov) {
133
+ qoStrings.push(qoName + "=" + encodeURIComponent(qov));
134
+ });
135
+ }
136
+ else {
137
+ qoStrings.push(qoName + "=" + encodeURIComponent(qoValue));
138
+ }
139
+ }
140
+ };
141
+ for (var qoName in queryOptions) {
142
+ _loop_1(qoName);
143
+ }
144
+ if (qoStrings.length > 0) {
145
+ return qoStrings.join("&");
146
+ }
147
+ else {
148
+ return "";
149
+ }
150
+ }
151
+ };
152
+ return UriBuilderODataAdapter;
153
+ }());
154
+ breezeClient.Predicate.prototype.toODataFragment = function (context) {
155
+ return this.visit(context, toODataFragmentVisitor);
156
+ };
157
+ var ɵ0 = function () {
158
+ return this.value;
159
+ }, ɵ1 = function (context) {
160
+ var predVal = this.pred.visit(context);
161
+ return odataOpFrom(this) + " " + "(" + predVal + ")";
162
+ }, ɵ2 = function (context) {
163
+ var expr1Val = this.expr1.visit(context);
164
+ var expr2Val = this.expr2.visit(context);
165
+ var prefix = context.prefix;
166
+ if (prefix) {
167
+ expr1Val = prefix + "/" + expr1Val;
168
+ }
169
+ var odataOp = odataOpFrom(this);
170
+ if (this.op.key === 'in') {
171
+ var result = expr2Val.map(function (v) {
172
+ return "(" + expr1Val + " eq " + v + ")";
173
+ }).join(" or ");
174
+ return result;
175
+ }
176
+ else if (this.op.isFunction) {
177
+ if (odataOp === "substringof") {
178
+ return odataOp + "(" + expr2Val + "," + expr1Val + ") eq true";
179
+ }
180
+ else {
181
+ return odataOp + "(" + expr1Val + "," + expr2Val + ") eq true";
182
+ }
183
+ }
184
+ else {
185
+ return expr1Val + " " + odataOp + " " + expr2Val;
186
+ }
187
+ }, ɵ3 = function (context) {
188
+ var result = this.preds.map(function (pred) {
189
+ var predVal = pred.visit(context);
190
+ return "(" + predVal + ")";
191
+ }).join(" " + odataOpFrom(this) + " ");
192
+ return result;
193
+ }, ɵ4 = function (context) {
194
+ var exprVal = this.expr.visit(context);
195
+ if (!this.pred.op) { // added 21-Oct-2016 to fix breeze.js issue #172
196
+ return exprVal + "/" + odataOpFrom(this) + "()";
197
+ }
198
+ var prefix = context.prefix;
199
+ if (prefix) {
200
+ exprVal = prefix + "/" + exprVal;
201
+ prefix = "x" + (parseInt(prefix.substring(1)) + 1);
202
+ }
203
+ else {
204
+ prefix = "x1";
205
+ }
206
+ // need to create a new context because of 'prefix'
207
+ var newContext = breezeClient.core.extend({}, context);
208
+ newContext.entityType = this.expr.dataType;
209
+ newContext.prefix = prefix;
210
+ var newPredVal = this.pred.visit(newContext);
211
+ return exprVal + "/" + odataOpFrom(this) + "(" + prefix + ": " + newPredVal + ")";
212
+ }, ɵ5 = function () {
213
+ if (Array.isArray(this.value)) {
214
+ return this.value.map(function (v) { return this.dataType.fmtOData(v); }, this);
215
+ }
216
+ else {
217
+ return this.dataType.fmtOData(this.value);
218
+ }
219
+ }, ɵ6 = function (context) {
220
+ var entityType = context.entityType;
221
+ // '/' is the OData path delimiter
222
+ return entityType ? entityType.clientPropertyPathToServer(this.propertyPath, "/") : this.propertyPath;
223
+ }, ɵ7 = function (context) {
224
+ var exprVals = this.exprs.map(function (expr) {
225
+ return expr.visit(context);
226
+ });
227
+ return this.fnName + "(" + exprVals.join(",") + ")";
228
+ };
229
+ var toODataFragmentVisitor = {
230
+ passthruPredicate: ɵ0,
231
+ unaryPredicate: ɵ1,
232
+ binaryPredicate: ɵ2,
233
+ andOrPredicate: ɵ3,
234
+ anyAllPredicate: ɵ4,
235
+ litExpr: ɵ5,
236
+ propExpr: ɵ6,
237
+ fnExpr: ɵ7
238
+ };
239
+ var _operatorMap = {
240
+ 'contains': 'substringof'
241
+ };
242
+ function odataOpFrom(node) {
243
+ var op = node.op.key;
244
+ var odataOp = _operatorMap[op];
245
+ return odataOp || op;
246
+ }
247
+ breezeClient.config.registerAdapter("uriBuilder", UriBuilderODataAdapter);
248
+
249
+ exports.UriBuilderODataAdapter = UriBuilderODataAdapter;
250
+ exports.ɵ0 = ɵ0;
251
+ exports.ɵ1 = ɵ1;
252
+ exports.ɵ2 = ɵ2;
253
+ exports.ɵ3 = ɵ3;
254
+ exports.ɵ4 = ɵ4;
255
+ exports.ɵ5 = ɵ5;
256
+ exports.ɵ6 = ɵ6;
257
+ exports.ɵ7 = ɵ7;
258
+
259
+ Object.defineProperty(exports, '__esModule', { value: true });
260
+
261
+ })));
262
+ //# sourceMappingURL=breeze-client-adapter-uri-builder-odata.umd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breeze-client-adapter-uri-builder-odata.umd.js","sources":["ng://breeze-client/adapter-uri-builder-odata/adapter-core.ts","ng://breeze-client/adapter-uri-builder-odata/adapter-uri-builder-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\nexport class UriBuilderODataAdapter implements breeze.UriBuilderAdapter {\r\n\r\n name: string;\r\n\r\n constructor() {\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(\"uriBuilder\", UriBuilderODataAdapter);\r\n return config.initializeAdapterInstance(\"uriBuilder\", \"odata\", true) as UriBuilderODataAdapter;\r\n }\r\n\r\n initialize() { }\r\n\r\n buildUri(entityQuery: breeze.EntityQuery, metadataStore: breeze.MetadataStore) {\r\n // force entityType validation;\r\n let entityType = entityQuery._getFromEntityType(metadataStore, false);\r\n if (!entityType) {\r\n // anonymous type but still has naming convention info avail\r\n entityType = new breeze.EntityType(metadataStore);\r\n }\r\n\r\n let queryOptions = {};\r\n queryOptions[\"$filter\"] = toWhereODataFragment(entityQuery.wherePredicate);\r\n queryOptions[\"$orderby\"] = toOrderByODataFragment(entityQuery.orderByClause!);\r\n\r\n if (entityQuery.skipCount) {\r\n queryOptions[\"$skip\"] = entityQuery.skipCount;\r\n }\r\n\r\n if (entityQuery.takeCount != null) {\r\n queryOptions[\"$top\"] = entityQuery.takeCount;\r\n }\r\n\r\n queryOptions[\"$expand\"] = toExpandODataFragment(entityQuery.expandClause);\r\n queryOptions[\"$select\"] = toSelectODataFragment(entityQuery.selectClause!);\r\n\r\n if (entityQuery.inlineCountEnabled) {\r\n queryOptions[\"$inlinecount\"] = \"allpages\";\r\n }\r\n\r\n const qoText = toQueryOptionsString(queryOptions as breeze.QueryOptions);\r\n\r\n return appendQueryStringParameter(entityQuery.resourceName, qoText);\r\n\r\n // private methods to this func.\r\n\r\n function toWhereODataFragment(wherePredicate: breeze.Predicate) {\r\n if (!wherePredicate) return undefined;\r\n // validation occurs inside of the toODataFragment call here.\r\n let frag = wherePredicate.visit({ entityType: entityType }, toODataFragmentVisitor);\r\n return (frag && frag.length > 0) ? frag : undefined;\r\n }\r\n\r\n function toOrderByODataFragment(orderByClause: breeze.OrderByClause) {\r\n if (!orderByClause) return undefined;\r\n orderByClause.validate(entityType!);\r\n let strings = orderByClause.items.map(function (item) {\r\n return entityType!.clientPropertyPathToServer(item.propertyPath, \"/\") + (item.isDesc ? \" desc\" : \"\");\r\n });\r\n // should return something like CompanyName,Address/City desc\r\n return strings.join(',');\r\n }\r\n\r\n function toSelectODataFragment(selectClause?: breeze.SelectClause) {\r\n if (!selectClause) return undefined;\r\n selectClause.validate(entityType!);\r\n let frag = selectClause.propertyPaths.map(function (pp) {\r\n return entityType!.clientPropertyPathToServer(pp, \"/\");\r\n }).join(\",\");\r\n return frag;\r\n }\r\n\r\n function toExpandODataFragment(expandClause?: breeze.ExpandClause) {\r\n if (!expandClause) return undefined;\r\n // no validate on expand clauses currently.\r\n // expandClause.validate(entityType);\r\n let frag = expandClause.propertyPaths.map(function (pp) {\r\n return entityType!.clientPropertyPathToServer(pp, \"/\");\r\n }).join(\",\");\r\n return frag;\r\n }\r\n\r\n function toQueryOptionsString(queryOptions: breeze.QueryOptions) {\r\n let qoStrings: string[] = [];\r\n for (let qoName in queryOptions) {\r\n let qoValue = queryOptions[qoName];\r\n if (qoValue !== undefined) {\r\n if (qoValue instanceof Array) {\r\n qoValue.forEach(function (qov) {\r\n qoStrings.push(qoName + \"=\" + encodeURIComponent(qov));\r\n });\r\n } else {\r\n qoStrings.push(qoName + \"=\" + encodeURIComponent(qoValue));\r\n }\r\n }\r\n }\r\n\r\n if (qoStrings.length > 0) {\r\n return qoStrings.join(\"&\");\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n }\r\n\r\n\r\n}\r\n\r\n(breeze.Predicate.prototype as any).toODataFragment = function (context: breeze.VisitContext) {\r\n return this.visit(context, toODataFragmentVisitor);\r\n};\r\n\r\nlet toODataFragmentVisitor = {\r\n\r\n passthruPredicate: function () {\r\n return this.value;\r\n },\r\n\r\n unaryPredicate: function (this: breeze.UnaryPredicate, context: breeze.VisitContext) {\r\n let predVal = this.pred.visit(context);\r\n return odataOpFrom(this) + \" \" + \"(\" + predVal + \")\";\r\n },\r\n\r\n binaryPredicate: function (this: breeze.BinaryPredicate, context: breeze.VisitContext) {\r\n let expr1Val = this.expr1!.visit(context);\r\n let expr2Val = this.expr2!.visit(context);\r\n let prefix = (context as any).prefix;\r\n if (prefix) {\r\n expr1Val = prefix + \"/\" + expr1Val;\r\n }\r\n\r\n let odataOp = odataOpFrom(this);\r\n\r\n if (this.op.key === 'in') {\r\n let result = expr2Val.map(function (v: any) {\r\n return \"(\" + expr1Val + \" eq \" + v + \")\";\r\n }).join(\" or \");\r\n return result;\r\n } else if (this.op.isFunction) {\r\n if (odataOp === \"substringof\") {\r\n return odataOp + \"(\" + expr2Val + \",\" + expr1Val + \") eq true\";\r\n } else {\r\n return odataOp + \"(\" + expr1Val + \",\" + expr2Val + \") eq true\";\r\n }\r\n } else {\r\n return expr1Val + \" \" + odataOp + \" \" + expr2Val;\r\n }\r\n },\r\n\r\n andOrPredicate: function (this: breeze.AndOrPredicate, context: breeze.VisitContext) {\r\n let result = this.preds.map(function (pred) {\r\n let predVal = pred.visit(context);\r\n return \"(\" + predVal + \")\";\r\n }).join(\" \" + odataOpFrom(this) + \" \");\r\n return result;\r\n },\r\n\r\n anyAllPredicate: function (this: breeze.AnyAllPredicate, context: breeze.VisitContext) {\r\n let exprVal = this.expr.visit(context);\r\n if (!this.pred.op) { // added 21-Oct-2016 to fix breeze.js issue #172\r\n return exprVal + \"/\" + odataOpFrom(this) + \"()\";\r\n }\r\n let prefix = (context as any).prefix;\r\n if (prefix) {\r\n exprVal = prefix + \"/\" + exprVal;\r\n prefix = \"x\" + (parseInt(prefix.substring(1)) + 1);\r\n } else {\r\n prefix = \"x1\";\r\n }\r\n // need to create a new context because of 'prefix'\r\n let newContext = breeze.core.extend({}, context) as any;\r\n newContext.entityType = this.expr.dataType;\r\n newContext.prefix = prefix;\r\n let newPredVal = this.pred.visit(newContext);\r\n return exprVal + \"/\" + odataOpFrom(this) + \"(\" + prefix + \": \" + newPredVal + \")\";\r\n },\r\n\r\n litExpr: function () {\r\n if (Array.isArray(this.value)) {\r\n return this.value.map(function (v: any) { return this.dataType.fmtOData(v); }, this);\r\n } else {\r\n return this.dataType.fmtOData(this.value);\r\n }\r\n },\r\n\r\n propExpr: function (this: breeze.PropExpr, context: breeze.ExpressionContext) {\r\n let entityType = context.entityType;\r\n // '/' is the OData path delimiter\r\n return entityType ? entityType.clientPropertyPathToServer(this.propertyPath, \"/\") : this.propertyPath;\r\n },\r\n\r\n fnExpr: function (this: breeze.FnExpr, context: breeze.ExpressionContext) {\r\n let exprVals = this.exprs.map(function (expr) {\r\n return expr.visit(context);\r\n });\r\n return this.fnName + \"(\" + exprVals.join(\",\") + \")\";\r\n }\r\n};\r\n\r\nlet _operatorMap = {\r\n 'contains': 'substringof'\r\n};\r\n\r\nfunction odataOpFrom(node: any) {\r\n let op = node.op.key;\r\n let odataOp = _operatorMap[op];\r\n return odataOp || op;\r\n}\r\n\r\nbreeze.config.registerAdapter(\"uriBuilder\", UriBuilderODataAdapter);\r\n\r\n\r\n\r\n"],"names":["config","breeze.config","breeze.EntityType","breeze.Predicate","breeze.core"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("breeze-client")):"function"==typeof define&&define.amd?define("breeze-client/adapter-uri-builder-odata",["exports","breeze-client"],t):t(((e=e||self)["breeze-client"]=e["breeze-client"]||{},e["breeze-client"]["adapter-uri-builder-odata"]={}),e["breeze-client"])}(this,(function(e,t){"use strict";var r=function(){function e(){this.name="odata"}return e.register=function(r){return(r=r||t.config).registerAdapter("uriBuilder",e),r.initializeAdapterInstance("uriBuilder","odata",!0)},e.prototype.initialize=function(){},e.prototype.buildUri=function(e,r){var i=e._getFromEntityType(r,!1);i||(i=new t.EntityType(r));var n,a,o,u={};u.$filter=function(e){if(!e)return;var t=e.visit({entityType:i},d);return t&&t.length>0?t:void 0}(e.wherePredicate),u.$orderby=(n=e.orderByClause)?(n.validate(i),n.items.map((function(e){return i.clientPropertyPathToServer(e.propertyPath,"/")+(e.isDesc?" desc":"")})).join(",")):void 0,e.skipCount&&(u.$skip=e.skipCount),null!=e.takeCount&&(u.$top=e.takeCount),u.$expand=(a=e.expandClause)?a.propertyPaths.map((function(e){return i.clientPropertyPathToServer(e,"/")})).join(","):void 0,u.$select=(o=e.selectClause)?(o.validate(i),o.propertyPaths.map((function(e){return i.clientPropertyPathToServer(e,"/")})).join(",")):void 0,e.inlineCountEnabled&&(u.$inlinecount="allpages");var s=function(e){var t=[],r=function(r){var i=e[r];void 0!==i&&(i instanceof Array?i.forEach((function(e){t.push(r+"="+encodeURIComponent(e))})):t.push(r+"="+encodeURIComponent(i)))};for(var i in e)r(i);return t.length>0?t.join("&"):""}(u);return function(e,t){if(!t)return e;var r=e.endsWith("?")?"":e.includes("?")?"&":"?";return e+r+t}(e.resourceName,s)},e}();t.Predicate.prototype.toODataFragment=function(e){return this.visit(e,d)};var i=function(){return this.value},n=function(e){var t=this.pred.visit(e);return l(this)+" ("+t+")"},a=function(e){var t=this.expr1.visit(e),r=this.expr2.visit(e),i=e.prefix;i&&(t=i+"/"+t);var n=l(this);return"in"===this.op.key?r.map((function(e){return"("+t+" eq "+e+")"})).join(" or "):this.op.isFunction?"substringof"===n?n+"("+r+","+t+") eq true":n+"("+t+","+r+") eq true":t+" "+n+" "+r},o=function(e){return this.preds.map((function(t){return"("+t.visit(e)+")"})).join(" "+l(this)+" ")},u=function(e){var r=this.expr.visit(e);if(!this.pred.op)return r+"/"+l(this)+"()";var i=e.prefix;i?(r=i+"/"+r,i="x"+(parseInt(i.substring(1))+1)):i="x1";var n=t.core.extend({},e);n.entityType=this.expr.dataType,n.prefix=i;var a=this.pred.visit(n);return r+"/"+l(this)+"("+i+": "+a+")"},s=function(){return Array.isArray(this.value)?this.value.map((function(e){return this.dataType.fmtOData(e)}),this):this.dataType.fmtOData(this.value)},p=function(e){var t=e.entityType;return t?t.clientPropertyPathToServer(this.propertyPath,"/"):this.propertyPath},c=function(e){var t=this.exprs.map((function(t){return t.visit(e)}));return this.fnName+"("+t.join(",")+")"},d={passthruPredicate:i,unaryPredicate:n,binaryPredicate:a,andOrPredicate:o,anyAllPredicate:u,litExpr:s,propExpr:p,fnExpr:c},f={contains:"substringof"};function l(e){var t=e.op.key;return f[t]||t}t.config.registerAdapter("uriBuilder",r),e.UriBuilderODataAdapter=r,e.ɵ0=i,e.ɵ1=n,e.ɵ2=a,e.ɵ3=o,e.ɵ4=u,e.ɵ5=s,e.ɵ6=p,e.ɵ7=c,Object.defineProperty(e,"__esModule",{value:!0})}));
2
+ //# sourceMappingURL=breeze-client-adapter-uri-builder-odata.umd.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ng://breeze-client/adapter-uri-builder-odata/adapter-uri-builder-odata.ts","ng://breeze-client/adapter-uri-builder-odata/adapter-core.ts"],"names":["UriBuilderODataAdapter","this","name","register","config","breeze.config","registerAdapter","initializeAdapterInstance","prototype","initialize","buildUri","entityQuery","metadataStore","entityType","_getFromEntityType","breeze.EntityType","orderByClause","expandClause","selectClause","queryOptions","wherePredicate","frag","visit","toODataFragmentVisitor","length","undefined","toWhereODataFragment","validate","items","map","item","clientPropertyPathToServer","propertyPath","isDesc","join","skipCount","takeCount","propertyPaths","pp","inlineCountEnabled","qoText","qoStrings","qoName","qoValue","Array","forEach","qov","push","encodeURIComponent","toQueryOptionsString","url","parameter","separator","endsWith","includes","appendQueryStringParameter","resourceName","breeze.Predicate","toODataFragment","context","value","ɵ1","predVal","pred","odataOpFrom","ɵ2","expr1Val","expr1","expr2Val","expr2","prefix","odataOp","op","key","v","isFunction","ɵ3","preds","ɵ4","exprVal","expr","parseInt","substring","newContext","breeze.core","extend","dataType","newPredVal","ɵ5","isArray","fmtOData","ɵ6","ɵ7","exprVals","exprs","fnName","passthruPredicate","ɵ0","unaryPredicate","binaryPredicate","andOrPredicate","anyAllPredicate","litExpr","propExpr","fnExpr","_operatorMap","contains","node"],"mappings":"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","sourcesContent":["import * as breeze from 'breeze-client';\r\nimport { appendQueryStringParameter } from './adapter-core';\r\n\r\nexport class UriBuilderODataAdapter implements breeze.UriBuilderAdapter {\r\n\r\n name: string;\r\n\r\n constructor() {\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(\"uriBuilder\", UriBuilderODataAdapter);\r\n return config.initializeAdapterInstance(\"uriBuilder\", \"odata\", true) as UriBuilderODataAdapter;\r\n }\r\n\r\n initialize() { }\r\n\r\n buildUri(entityQuery: breeze.EntityQuery, metadataStore: breeze.MetadataStore) {\r\n // force entityType validation;\r\n let entityType = entityQuery._getFromEntityType(metadataStore, false);\r\n if (!entityType) {\r\n // anonymous type but still has naming convention info avail\r\n entityType = new breeze.EntityType(metadataStore);\r\n }\r\n\r\n let queryOptions = {};\r\n queryOptions[\"$filter\"] = toWhereODataFragment(entityQuery.wherePredicate);\r\n queryOptions[\"$orderby\"] = toOrderByODataFragment(entityQuery.orderByClause!);\r\n\r\n if (entityQuery.skipCount) {\r\n queryOptions[\"$skip\"] = entityQuery.skipCount;\r\n }\r\n\r\n if (entityQuery.takeCount != null) {\r\n queryOptions[\"$top\"] = entityQuery.takeCount;\r\n }\r\n\r\n queryOptions[\"$expand\"] = toExpandODataFragment(entityQuery.expandClause);\r\n queryOptions[\"$select\"] = toSelectODataFragment(entityQuery.selectClause!);\r\n\r\n if (entityQuery.inlineCountEnabled) {\r\n queryOptions[\"$inlinecount\"] = \"allpages\";\r\n }\r\n\r\n const qoText = toQueryOptionsString(queryOptions as breeze.QueryOptions);\r\n\r\n return appendQueryStringParameter(entityQuery.resourceName, qoText);\r\n\r\n // private methods to this func.\r\n\r\n function toWhereODataFragment(wherePredicate: breeze.Predicate) {\r\n if (!wherePredicate) return undefined;\r\n // validation occurs inside of the toODataFragment call here.\r\n let frag = wherePredicate.visit({ entityType: entityType }, toODataFragmentVisitor);\r\n return (frag && frag.length > 0) ? frag : undefined;\r\n }\r\n\r\n function toOrderByODataFragment(orderByClause: breeze.OrderByClause) {\r\n if (!orderByClause) return undefined;\r\n orderByClause.validate(entityType!);\r\n let strings = orderByClause.items.map(function (item) {\r\n return entityType!.clientPropertyPathToServer(item.propertyPath, \"/\") + (item.isDesc ? \" desc\" : \"\");\r\n });\r\n // should return something like CompanyName,Address/City desc\r\n return strings.join(',');\r\n }\r\n\r\n function toSelectODataFragment(selectClause?: breeze.SelectClause) {\r\n if (!selectClause) return undefined;\r\n selectClause.validate(entityType!);\r\n let frag = selectClause.propertyPaths.map(function (pp) {\r\n return entityType!.clientPropertyPathToServer(pp, \"/\");\r\n }).join(\",\");\r\n return frag;\r\n }\r\n\r\n function toExpandODataFragment(expandClause?: breeze.ExpandClause) {\r\n if (!expandClause) return undefined;\r\n // no validate on expand clauses currently.\r\n // expandClause.validate(entityType);\r\n let frag = expandClause.propertyPaths.map(function (pp) {\r\n return entityType!.clientPropertyPathToServer(pp, \"/\");\r\n }).join(\",\");\r\n return frag;\r\n }\r\n\r\n function toQueryOptionsString(queryOptions: breeze.QueryOptions) {\r\n let qoStrings: string[] = [];\r\n for (let qoName in queryOptions) {\r\n let qoValue = queryOptions[qoName];\r\n if (qoValue !== undefined) {\r\n if (qoValue instanceof Array) {\r\n qoValue.forEach(function (qov) {\r\n qoStrings.push(qoName + \"=\" + encodeURIComponent(qov));\r\n });\r\n } else {\r\n qoStrings.push(qoName + \"=\" + encodeURIComponent(qoValue));\r\n }\r\n }\r\n }\r\n\r\n if (qoStrings.length > 0) {\r\n return qoStrings.join(\"&\");\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n }\r\n\r\n\r\n}\r\n\r\n(breeze.Predicate.prototype as any).toODataFragment = function (context: breeze.VisitContext) {\r\n return this.visit(context, toODataFragmentVisitor);\r\n};\r\n\r\nlet toODataFragmentVisitor = {\r\n\r\n passthruPredicate: function () {\r\n return this.value;\r\n },\r\n\r\n unaryPredicate: function (this: breeze.UnaryPredicate, context: breeze.VisitContext) {\r\n let predVal = this.pred.visit(context);\r\n return odataOpFrom(this) + \" \" + \"(\" + predVal + \")\";\r\n },\r\n\r\n binaryPredicate: function (this: breeze.BinaryPredicate, context: breeze.VisitContext) {\r\n let expr1Val = this.expr1!.visit(context);\r\n let expr2Val = this.expr2!.visit(context);\r\n let prefix = (context as any).prefix;\r\n if (prefix) {\r\n expr1Val = prefix + \"/\" + expr1Val;\r\n }\r\n\r\n let odataOp = odataOpFrom(this);\r\n\r\n if (this.op.key === 'in') {\r\n let result = expr2Val.map(function (v: any) {\r\n return \"(\" + expr1Val + \" eq \" + v + \")\";\r\n }).join(\" or \");\r\n return result;\r\n } else if (this.op.isFunction) {\r\n if (odataOp === \"substringof\") {\r\n return odataOp + \"(\" + expr2Val + \",\" + expr1Val + \") eq true\";\r\n } else {\r\n return odataOp + \"(\" + expr1Val + \",\" + expr2Val + \") eq true\";\r\n }\r\n } else {\r\n return expr1Val + \" \" + odataOp + \" \" + expr2Val;\r\n }\r\n },\r\n\r\n andOrPredicate: function (this: breeze.AndOrPredicate, context: breeze.VisitContext) {\r\n let result = this.preds.map(function (pred) {\r\n let predVal = pred.visit(context);\r\n return \"(\" + predVal + \")\";\r\n }).join(\" \" + odataOpFrom(this) + \" \");\r\n return result;\r\n },\r\n\r\n anyAllPredicate: function (this: breeze.AnyAllPredicate, context: breeze.VisitContext) {\r\n let exprVal = this.expr.visit(context);\r\n if (!this.pred.op) { // added 21-Oct-2016 to fix breeze.js issue #172\r\n return exprVal + \"/\" + odataOpFrom(this) + \"()\";\r\n }\r\n let prefix = (context as any).prefix;\r\n if (prefix) {\r\n exprVal = prefix + \"/\" + exprVal;\r\n prefix = \"x\" + (parseInt(prefix.substring(1)) + 1);\r\n } else {\r\n prefix = \"x1\";\r\n }\r\n // need to create a new context because of 'prefix'\r\n let newContext = breeze.core.extend({}, context) as any;\r\n newContext.entityType = this.expr.dataType;\r\n newContext.prefix = prefix;\r\n let newPredVal = this.pred.visit(newContext);\r\n return exprVal + \"/\" + odataOpFrom(this) + \"(\" + prefix + \": \" + newPredVal + \")\";\r\n },\r\n\r\n litExpr: function () {\r\n if (Array.isArray(this.value)) {\r\n return this.value.map(function (v: any) { return this.dataType.fmtOData(v); }, this);\r\n } else {\r\n return this.dataType.fmtOData(this.value);\r\n }\r\n },\r\n\r\n propExpr: function (this: breeze.PropExpr, context: breeze.ExpressionContext) {\r\n let entityType = context.entityType;\r\n // '/' is the OData path delimiter\r\n return entityType ? entityType.clientPropertyPathToServer(this.propertyPath, \"/\") : this.propertyPath;\r\n },\r\n\r\n fnExpr: function (this: breeze.FnExpr, context: breeze.ExpressionContext) {\r\n let exprVals = this.exprs.map(function (expr) {\r\n return expr.visit(context);\r\n });\r\n return this.fnName + \"(\" + exprVals.join(\",\") + \")\";\r\n }\r\n};\r\n\r\nlet _operatorMap = {\r\n 'contains': 'substringof'\r\n};\r\n\r\nfunction odataOpFrom(node: any) {\r\n let op = node.op.key;\r\n let odataOp = _operatorMap[op];\r\n return odataOp || op;\r\n}\r\n\r\nbreeze.config.registerAdapter(\"uriBuilder\", UriBuilderODataAdapter);\r\n\r\n\r\n\r\n","/** 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"]}