breeze-client 2.1.7-mjs → 2.2.0-cjs

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 (377) hide show
  1. package/README.md +8 -4
  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 +14234 -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 +506 -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 +513 -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} +1543 -2039
  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 +13956 -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/config.d.ts +1 -1
  295. package/src/core.d.ts +1 -1
  296. package/src/entity-aspect.d.ts +1 -1
  297. package/src/entity-metadata.d.ts +6 -8
  298. package/src/entity-query.d.ts +1 -1
  299. package/esm2022/adapter-ajax-angularjs/adapter-ajax-angularjs.mjs +0 -135
  300. package/esm2022/adapter-ajax-angularjs/adapter-core.mjs +0 -49
  301. package/esm2022/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.mjs +0 -5
  302. package/esm2022/adapter-ajax-fetch/adapter-ajax-fetch.mjs +0 -135
  303. package/esm2022/adapter-ajax-fetch/adapter-core.mjs +0 -49
  304. package/esm2022/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.mjs +0 -5
  305. package/esm2022/adapter-ajax-httpclient/adapter-ajax-httpclient.mjs +0 -139
  306. package/esm2022/adapter-ajax-httpclient/adapter-core.mjs +0 -49
  307. package/esm2022/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.mjs +0 -5
  308. package/esm2022/adapter-ajax-jquery/adapter-ajax-jquery.mjs +0 -107
  309. package/esm2022/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.mjs +0 -5
  310. package/esm2022/adapter-ajax-post/adapter-ajax-post.mjs +0 -77
  311. package/esm2022/adapter-ajax-post/breeze-client-adapter-ajax-post.mjs +0 -5
  312. package/esm2022/adapter-data-service-odata/adapter-core.mjs +0 -49
  313. package/esm2022/adapter-data-service-odata/breeze-client-adapter-data-service-odata.mjs +0 -5
  314. package/esm2022/adapter-data-service-webapi/adapter-data-service-webapi.mjs +0 -100
  315. package/esm2022/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.mjs +0 -5
  316. package/esm2022/adapter-model-library-backing-store/adapter-model-library-backing-store.mjs +0 -269
  317. package/esm2022/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.mjs +0 -5
  318. package/esm2022/adapter-model-library-ko/adapter-model-library-ko.mjs +0 -241
  319. package/esm2022/adapter-model-library-ko/breeze-client-adapter-model-library-ko.mjs +0 -5
  320. package/esm2022/adapter-uri-builder-json/adapter-core.mjs +0 -49
  321. package/esm2022/adapter-uri-builder-json/adapter-uri-builder-json.mjs +0 -37
  322. package/esm2022/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.mjs +0 -5
  323. package/esm2022/adapter-uri-builder-odata/adapter-core.mjs +0 -49
  324. package/esm2022/adapter-uri-builder-odata/adapter-uri-builder-odata.mjs +0 -191
  325. package/esm2022/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.mjs +0 -5
  326. package/esm2022/breeze-client.mjs +0 -5
  327. package/esm2022/index.mjs +0 -2
  328. package/esm2022/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.mjs +0 -5
  329. package/esm2022/mixin-get-entity-graph/mixin-get-entity-graph.mjs +0 -269
  330. package/esm2022/mixin-save-queuing/breeze-client-mixin-save-queuing.mjs +0 -5
  331. package/esm2022/mixin-save-queuing/mixin-save-queuing.mjs +0 -421
  332. package/esm2022/src/abstract-data-service-adapter.mjs +0 -325
  333. package/esm2022/src/array.mjs +0 -4
  334. package/esm2022/src/assert-param.mjs +0 -330
  335. package/esm2022/src/breeze.mjs +0 -85
  336. package/esm2022/src/complex-array.mjs +0 -117
  337. package/esm2022/src/config.mjs +0 -232
  338. package/esm2022/src/core.mjs +0 -712
  339. package/esm2022/src/csdl-metadata-parser.mjs +0 -385
  340. package/esm2022/src/data-service.mjs +0 -239
  341. package/esm2022/src/data-type.mjs +0 -507
  342. package/esm2022/src/default-property-interceptor.mjs +0 -460
  343. package/esm2022/src/entity-aspect.mjs +0 -897
  344. package/esm2022/src/entity-group.mjs +0 -192
  345. package/esm2022/src/entity-key.mjs +0 -127
  346. package/esm2022/src/entity-manager.mjs +0 -2183
  347. package/esm2022/src/entity-metadata.mjs +0 -2242
  348. package/esm2022/src/entity-query.mjs +0 -1024
  349. package/esm2022/src/entity-state.mjs +0 -107
  350. package/esm2022/src/enum.mjs +0 -143
  351. package/esm2022/src/event.mjs +0 -264
  352. package/esm2022/src/interface-registry.mjs +0 -39
  353. package/esm2022/src/key-generator.mjs +0 -110
  354. package/esm2022/src/local-query-comparison-options.mjs +0 -75
  355. package/esm2022/src/mapping-context.mjs +0 -422
  356. package/esm2022/src/observable-array.mjs +0 -183
  357. package/esm2022/src/predicate.mjs +0 -1259
  358. package/esm2022/src/primitive-array.mjs +0 -85
  359. package/esm2022/src/query-options.mjs +0 -160
  360. package/esm2022/src/relation-array.mjs +0 -173
  361. package/esm2022/src/save-options.mjs +0 -51
  362. package/esm2022/src/unattached-children-map.mjs +0 -56
  363. package/esm2022/src/validation-options.mjs +0 -78
  364. package/fesm2022/breeze-client-adapter-ajax-angularjs.mjs.map +0 -1
  365. package/fesm2022/breeze-client-adapter-ajax-fetch.mjs.map +0 -1
  366. package/fesm2022/breeze-client-adapter-ajax-httpclient.mjs.map +0 -1
  367. package/fesm2022/breeze-client-adapter-ajax-jquery.mjs.map +0 -1
  368. package/fesm2022/breeze-client-adapter-ajax-post.mjs.map +0 -1
  369. package/fesm2022/breeze-client-adapter-data-service-odata.mjs.map +0 -1
  370. package/fesm2022/breeze-client-adapter-data-service-webapi.mjs.map +0 -1
  371. package/fesm2022/breeze-client-adapter-model-library-backing-store.mjs.map +0 -1
  372. package/fesm2022/breeze-client-adapter-model-library-ko.mjs.map +0 -1
  373. package/fesm2022/breeze-client-adapter-uri-builder-json.mjs.map +0 -1
  374. package/fesm2022/breeze-client-adapter-uri-builder-odata.mjs.map +0 -1
  375. package/fesm2022/breeze-client-mixin-get-entity-graph.mjs.map +0 -1
  376. package/fesm2022/breeze-client-mixin-save-queuing.mjs.map +0 -1
  377. 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":"gZAOE,SAAAA,IACEC,KAAKC,KAAO,QAwGhB,OArGSF,EAAAG,SAAP,SAAgBC,GAGd,OAFAA,EAASA,GAAUC,EAAAA,QACZC,gBAAgB,aAAcN,GAC9BI,EAAOG,0BAA0B,aAAc,SAAS,IAGjEP,EAAAQ,UAAAC,WAAA,aAEAT,EAAAQ,UAAAE,SAAA,SAASC,EAAiCC,GAExC,IAAIC,EAAaF,EAAYG,mBAAmBF,GAAe,GAC1DC,IAEHA,EAAa,IAAIE,EAAAA,WAAkBH,IAGrC,IAgCgCI,EAmBDC,EATAC,EA1C3BC,EAAe,GACnBA,EAAsB,QAwBtB,SAA8BC,GAC5B,IAAKA,EAAgB,OAErB,IAAIC,EAAOD,EAAeE,MAAM,CAAET,WAAYA,GAAcU,GAC5D,OAAQF,GAAQA,EAAKG,OAAS,EAAKH,OAAOI,EA5BlBC,CAAqBf,EAAYS,gBAC3DD,EAAuB,UA8BSH,EA9BkBL,EAAYK,gBAgC5DA,EAAcW,SAASd,GACTG,EAAcY,MAAMC,KAAI,SAAUC,GAC9C,OAAOjB,EAAYkB,2BAA2BD,EAAKE,aAAc,MAAQF,EAAKG,OAAS,QAAU,OAGpFC,KAAK,WANA,EA7BlBvB,EAAYwB,YACdhB,EAAoB,MAAIR,EAAYwB,WAGT,MAAzBxB,EAAYyB,YACdjB,EAAmB,KAAIR,EAAYyB,WAGrCjB,EAAsB,SAuCSF,EAvCiBN,EAAYM,cA2C/CA,EAAaoB,cAAcR,KAAI,SAAUS,GAClD,OAAOzB,EAAYkB,2BAA2BO,EAAI,QACjDJ,KAAK,UALW,EAvCrBf,EAAsB,SA6BSD,EA7BiBP,EAAYO,eA+B1DA,EAAaS,SAASd,GACXK,EAAamB,cAAcR,KAAI,SAAUS,GAClD,OAAOzB,EAAYkB,2BAA2BO,EAAI,QACjDJ,KAAK,WAJW,EA5BjBvB,EAAY4B,qBACdpB,EAA2B,aAAI,YAGjC,IAAMqB,EA0CN,SAA8BrB,GAC5B,IAAIsB,EAAsB,cACjBC,GACP,IAAIC,EAAUxB,EAAauB,QACXjB,IAAZkB,IACEA,aAAmBC,MACrBD,EAAQE,SAAQ,SAAUC,GACxBL,EAAUM,KAAKL,EAAS,IAAMM,mBAAmBF,OAGnDL,EAAUM,KAAKL,EAAS,IAAMM,mBAAmBL,MARvD,IAAK,IAAID,KAAUvB,IAAVuB,GAaT,OAAID,EAAUjB,OAAS,EACdiB,EAAUP,KAAK,KAEf,GA5DIe,CAAqB9B,GAEpC,gBC/CuC+B,EAAaC,GACtD,IAAKA,EAAW,OAAOD,EAEvB,IAAIE,EAAYF,EAAIG,SAAS,KAAO,GAAKH,EAAII,SAAS,KAAO,IAAM,IAEnE,OAAOJ,EAAME,EAAYD,ED0ChBI,CAA2B5C,EAAY6C,aAAchB,IAgEhExC,KAECyD,EAAAA,UAAiBjD,UAAkBkD,gBAAkB,SAAUC,GAC9D,OAAO1D,KAAKqB,MAAMqC,EAASpC,UAKR,WACjB,OAAOtB,KAAK2D,OACbC,EAEe,SAAuCF,GACrD,IAAIG,EAAU7D,KAAK8D,KAAKzC,MAAMqC,GAC9B,OAAOK,EAAY/D,MAAZ+D,KAAgCF,EAAU,KAClDG,EAEgB,SAAwCN,GACvD,IAAIO,EAAWjE,KAAKkE,MAAO7C,MAAMqC,GAC7BS,EAAWnE,KAAKoE,MAAO/C,MAAMqC,GAC7BW,EAAUX,EAAgBW,OAC1BA,IACFJ,EAAWI,EAAS,IAAMJ,GAG5B,IAAIK,EAAUP,EAAY/D,MAE1B,MAAoB,OAAhBA,KAAKuE,GAAGC,IACGL,EAASvC,KAAI,SAAU6C,GAClC,MAAO,IAAMR,EAAW,OAASQ,EAAI,OACpCxC,KAAK,QAECjC,KAAKuE,GAAGG,WACD,gBAAZJ,EACKA,EAAU,IAAMH,EAAW,IAAMF,EAAW,YAE5CK,EAAU,IAAML,EAAW,IAAME,EAAW,YAG9CF,EAAW,IAAMK,EAAU,IAAMH,GAE3CQ,EAEe,SAAuCjB,GAKrD,OAJa1D,KAAK4E,MAAMhD,KAAI,SAAUkC,GAEpC,MAAO,IADOA,EAAKzC,MAAMqC,GACF,OACtBzB,KAAK,IAAM8B,EAAY/D,MAAQ,MAEnC6E,EAEgB,SAAwCnB,GACvD,IAAIoB,EAAU9E,KAAK+E,KAAK1D,MAAMqC,GAC9B,IAAK1D,KAAK8D,KAAKS,GACb,OAAOO,EAAU,IAAMf,EAAY/D,MAAQ,KAE7C,IAAIqE,EAAUX,EAAgBW,OAC1BA,GACFS,EAAUT,EAAS,IAAMS,EACzBT,EAAS,KAAOW,SAASX,EAAOY,UAAU,IAAM,IAEhDZ,EAAS,KAGX,IAAIa,EAAaC,EAAAA,KAAYC,OAAO,GAAI1B,GACxCwB,EAAWtE,WAAaZ,KAAK+E,KAAKM,SAClCH,EAAWb,OAASA,EACpB,IAAIiB,EAAatF,KAAK8D,KAAKzC,MAAM6D,GACjC,OAAOJ,EAAU,IAAMf,EAAY/D,MAAQ,IAAMqE,EAAS,KAAOiB,EAAa,KAC/EC,EAEQ,WACP,OAAI5C,MAAM6C,QAAQxF,KAAK2D,OACd3D,KAAK2D,MAAM/B,KAAI,SAAU6C,GAAU,OAAOzE,KAAKqF,SAASI,SAAShB,KAAOzE,MAExEA,KAAKqF,SAASI,SAASzF,KAAK2D,QAEtC+B,EAES,SAAiChC,GACzC,IAAI9C,EAAa8C,EAAQ9C,WAEzB,OAAOA,EAAaA,EAAWkB,2BAA2B9B,KAAK+B,aAAc,KAAO/B,KAAK+B,cAC1F4D,EAEO,SAA+BjC,GACrC,IAAIkC,EAAW5F,KAAK6F,MAAMjE,KAAI,SAAUmD,GACtC,OAAOA,EAAK1D,MAAMqC,MAEpB,OAAO1D,KAAK8F,OAAS,IAAMF,EAAS3D,KAAK,KAAO,KAnFhDX,EAAyB,CAE3ByE,kBAAiBC,EAIjBC,eAAcrC,EAKdsC,gBAAelC,EA0BfmC,eAAcxB,EAQdyB,gBAAevB,EAoBfwB,QAAOd,EAQPe,SAAQZ,EAMRa,OAAMZ,GAQJa,EAAe,CACjBC,SAAY,eAGd,SAAS1C,EAAY2C,GACnB,IAAInC,EAAKmC,EAAKnC,GAAGC,IAEjB,OADcgC,EAAajC,IACTA,EAGpBnE,EAAAA,OAAcC,gBAAgB,aAAcN","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"]}