breeze-client 2.2.0 → 2.2.1-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/adapter-ajax-angularjs/{index.d.ts → breeze-client-adapter-ajax-angularjs.d.ts} +0 -1
  2. package/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.metadata.json +1 -0
  3. package/adapter-ajax-angularjs/package.json +13 -0
  4. package/adapter-ajax-fetch/{index.d.ts → breeze-client-adapter-ajax-fetch.d.ts} +0 -1
  5. package/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.metadata.json +1 -0
  6. package/adapter-ajax-fetch/package.json +13 -0
  7. package/adapter-ajax-httpclient/{index.d.ts → breeze-client-adapter-ajax-httpclient.d.ts} +0 -1
  8. package/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.metadata.json +1 -0
  9. package/adapter-ajax-httpclient/package.json +13 -0
  10. package/adapter-ajax-jquery/{index.d.ts → breeze-client-adapter-ajax-jquery.d.ts} +0 -1
  11. package/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.metadata.json +1 -0
  12. package/adapter-ajax-jquery/package.json +13 -0
  13. package/adapter-ajax-post/{index.d.ts → breeze-client-adapter-ajax-post.d.ts} +0 -1
  14. package/adapter-ajax-post/breeze-client-adapter-ajax-post.metadata.json +1 -0
  15. package/adapter-ajax-post/package.json +13 -0
  16. package/adapter-data-service-odata/{index.d.ts → breeze-client-adapter-data-service-odata.d.ts} +0 -1
  17. package/adapter-data-service-odata/breeze-client-adapter-data-service-odata.metadata.json +1 -0
  18. package/adapter-data-service-odata/package.json +13 -0
  19. package/adapter-data-service-webapi/{index.d.ts → breeze-client-adapter-data-service-webapi.d.ts} +0 -1
  20. package/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.metadata.json +1 -0
  21. package/adapter-data-service-webapi/package.json +13 -0
  22. package/adapter-model-library-backing-store/{index.d.ts → breeze-client-adapter-model-library-backing-store.d.ts} +0 -1
  23. package/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.metadata.json +1 -0
  24. package/adapter-model-library-backing-store/package.json +13 -0
  25. package/adapter-model-library-ko/{index.d.ts → breeze-client-adapter-model-library-ko.d.ts} +0 -1
  26. package/adapter-model-library-ko/breeze-client-adapter-model-library-ko.metadata.json +1 -0
  27. package/adapter-model-library-ko/package.json +13 -0
  28. package/adapter-uri-builder-json/{index.d.ts → breeze-client-adapter-uri-builder-json.d.ts} +0 -1
  29. package/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.metadata.json +1 -0
  30. package/adapter-uri-builder-json/package.json +13 -0
  31. package/adapter-uri-builder-odata/{index.d.ts → breeze-client-adapter-uri-builder-odata.d.ts} +0 -1
  32. package/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.metadata.json +1 -0
  33. package/adapter-uri-builder-odata/package.json +13 -0
  34. package/breeze-client.d.ts +8 -0
  35. package/breeze-client.metadata.json +1 -0
  36. package/bundles/breeze-client-adapter-ajax-angularjs.umd.js +190 -0
  37. package/bundles/breeze-client-adapter-ajax-angularjs.umd.js.map +1 -0
  38. package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js +2 -0
  39. package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js.map +1 -0
  40. package/bundles/breeze-client-adapter-ajax-fetch.umd.js +190 -0
  41. package/bundles/breeze-client-adapter-ajax-fetch.umd.js.map +1 -0
  42. package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js +2 -0
  43. package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js.map +1 -0
  44. package/bundles/breeze-client-adapter-ajax-httpclient.umd.js +195 -0
  45. package/bundles/breeze-client-adapter-ajax-httpclient.umd.js.map +1 -0
  46. package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js +2 -0
  47. package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js.map +1 -0
  48. package/bundles/breeze-client-adapter-ajax-jquery.umd.js +115 -0
  49. package/bundles/breeze-client-adapter-ajax-jquery.umd.js.map +1 -0
  50. package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js +2 -0
  51. package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js.map +1 -0
  52. package/bundles/breeze-client-adapter-ajax-post.umd.js +92 -0
  53. package/bundles/breeze-client-adapter-ajax-post.umd.js.map +1 -0
  54. package/bundles/breeze-client-adapter-ajax-post.umd.min.js +2 -0
  55. package/bundles/breeze-client-adapter-ajax-post.umd.min.js.map +1 -0
  56. package/bundles/breeze-client-adapter-data-service-odata.umd.js +747 -0
  57. package/bundles/breeze-client-adapter-data-service-odata.umd.js.map +1 -0
  58. package/bundles/breeze-client-adapter-data-service-odata.umd.min.js +16 -0
  59. package/bundles/breeze-client-adapter-data-service-odata.umd.min.js.map +1 -0
  60. package/bundles/breeze-client-adapter-data-service-webapi.umd.js +333 -0
  61. package/bundles/breeze-client-adapter-data-service-webapi.umd.js.map +1 -0
  62. package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js +16 -0
  63. package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js.map +1 -0
  64. package/bundles/breeze-client-adapter-model-library-backing-store.umd.js +280 -0
  65. package/bundles/breeze-client-adapter-model-library-backing-store.umd.js.map +1 -0
  66. package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js +2 -0
  67. package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js.map +1 -0
  68. package/bundles/breeze-client-adapter-model-library-ko.umd.js +252 -0
  69. package/bundles/breeze-client-adapter-model-library-ko.umd.js.map +1 -0
  70. package/bundles/breeze-client-adapter-model-library-ko.umd.min.js +2 -0
  71. package/bundles/breeze-client-adapter-model-library-ko.umd.min.js.map +1 -0
  72. package/bundles/breeze-client-adapter-uri-builder-json.umd.js +96 -0
  73. package/bundles/breeze-client-adapter-uri-builder-json.umd.js.map +1 -0
  74. package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js +2 -0
  75. package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js.map +1 -0
  76. package/bundles/breeze-client-adapter-uri-builder-odata.umd.js +262 -0
  77. package/bundles/breeze-client-adapter-uri-builder-odata.umd.js.map +1 -0
  78. package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js +2 -0
  79. package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js.map +1 -0
  80. package/bundles/breeze-client-mixin-get-entity-graph.umd.js +258 -0
  81. package/bundles/breeze-client-mixin-get-entity-graph.umd.js.map +1 -0
  82. package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js +2 -0
  83. package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js.map +1 -0
  84. package/bundles/breeze-client-mixin-save-queuing.umd.js +579 -0
  85. package/bundles/breeze-client-mixin-save-queuing.umd.js.map +1 -0
  86. package/bundles/breeze-client-mixin-save-queuing.umd.min.js +16 -0
  87. package/bundles/breeze-client-mixin-save-queuing.umd.min.js.map +1 -0
  88. package/bundles/breeze-client.umd.js +14234 -0
  89. package/bundles/breeze-client.umd.js.map +1 -0
  90. package/bundles/breeze-client.umd.min.js +16 -0
  91. package/bundles/breeze-client.umd.min.js.map +1 -0
  92. package/esm2015/adapter-ajax-angularjs/adapter-ajax-angularjs.js +130 -0
  93. package/esm2015/adapter-ajax-angularjs/adapter-core.js +49 -0
  94. package/esm2015/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +5 -0
  95. package/esm2015/adapter-ajax-fetch/adapter-ajax-fetch.js +130 -0
  96. package/esm2015/adapter-ajax-fetch/adapter-core.js +49 -0
  97. package/esm2015/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +5 -0
  98. package/esm2015/adapter-ajax-httpclient/adapter-ajax-httpclient.js +137 -0
  99. package/esm2015/adapter-ajax-httpclient/adapter-core.js +49 -0
  100. package/esm2015/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +5 -0
  101. package/esm2015/adapter-ajax-jquery/adapter-ajax-jquery.js +103 -0
  102. package/esm2015/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +5 -0
  103. package/esm2015/adapter-ajax-post/adapter-ajax-post.js +77 -0
  104. package/esm2015/adapter-ajax-post/breeze-client-adapter-ajax-post.js +5 -0
  105. package/esm2015/adapter-data-service-odata/adapter-core.js +49 -0
  106. package/esm2015/adapter-data-service-odata/adapter-data-service-odata.js +463 -0
  107. package/esm2015/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +5 -0
  108. package/esm2015/adapter-data-service-webapi/adapter-data-service-webapi.js +100 -0
  109. package/esm2015/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +5 -0
  110. package/esm2015/adapter-model-library-backing-store/adapter-model-library-backing-store.js +268 -0
  111. package/esm2015/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +5 -0
  112. package/esm2015/adapter-model-library-ko/adapter-model-library-ko.js +240 -0
  113. package/esm2015/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +5 -0
  114. package/esm2015/adapter-uri-builder-json/adapter-core.js +49 -0
  115. package/esm2015/adapter-uri-builder-json/adapter-uri-builder-json.js +36 -0
  116. package/esm2015/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +5 -0
  117. package/esm2015/adapter-uri-builder-odata/adapter-core.js +49 -0
  118. package/esm2015/adapter-uri-builder-odata/adapter-uri-builder-odata.js +192 -0
  119. package/esm2015/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +5 -0
  120. package/esm2015/breeze-client.js +9 -0
  121. package/esm2015/index.js +2 -0
  122. package/esm2015/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +5 -0
  123. package/esm2015/mixin-get-entity-graph/mixin-get-entity-graph.js +269 -0
  124. package/esm2015/mixin-save-queuing/breeze-client-mixin-save-queuing.js +5 -0
  125. package/esm2015/mixin-save-queuing/mixin-save-queuing.js +400 -0
  126. package/esm2015/src/abstract-data-service-adapter.js +327 -0
  127. package/esm2015/src/array.js +4 -0
  128. package/esm2015/src/assert-param.js +312 -0
  129. package/esm2015/src/breeze.js +85 -0
  130. package/esm2015/src/complex-array.js +119 -0
  131. package/esm2015/src/config.js +223 -0
  132. package/esm2015/src/core.js +714 -0
  133. package/esm2015/src/csdl-metadata-parser.js +385 -0
  134. package/esm2015/src/data-service.js +203 -0
  135. package/esm2015/src/data-type.js +506 -0
  136. package/esm2015/src/default-property-interceptor.js +460 -0
  137. package/{esm2022/src/entity-action.mjs → esm2015/src/entity-action.js} +25 -25
  138. package/esm2015/src/entity-aspect.js +804 -0
  139. package/esm2015/src/entity-group.js +187 -0
  140. package/esm2015/src/entity-key.js +116 -0
  141. package/esm2015/src/entity-manager.js +2094 -0
  142. package/esm2015/src/entity-metadata.js +2109 -0
  143. package/esm2015/src/entity-query.js +1015 -0
  144. package/esm2015/src/entity-state.js +107 -0
  145. package/esm2015/src/enum.js +141 -0
  146. package/esm2015/src/event.js +256 -0
  147. package/esm2015/src/interface-registry.js +41 -0
  148. package/esm2015/src/key-generator.js +108 -0
  149. package/esm2015/src/local-query-comparison-options.js +65 -0
  150. package/esm2015/src/mapping-context.js +411 -0
  151. package/esm2015/src/naming-convention.js +88 -0
  152. package/esm2015/src/observable-array.js +185 -0
  153. package/esm2015/src/predicate.js +1242 -0
  154. package/esm2015/src/primitive-array.js +87 -0
  155. package/esm2015/src/query-options.js +152 -0
  156. package/esm2015/src/relation-array.js +175 -0
  157. package/esm2015/src/save-options.js +41 -0
  158. package/esm2015/src/unattached-children-map.js +58 -0
  159. package/esm2015/src/validate.js +991 -0
  160. package/esm2015/src/validation-options.js +64 -0
  161. package/esm5/adapter-ajax-angularjs/adapter-ajax-angularjs.js +132 -0
  162. package/esm5/adapter-ajax-angularjs/adapter-core.js +49 -0
  163. package/esm5/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +5 -0
  164. package/esm5/adapter-ajax-fetch/adapter-ajax-fetch.js +132 -0
  165. package/esm5/adapter-ajax-fetch/adapter-core.js +49 -0
  166. package/esm5/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +5 -0
  167. package/esm5/adapter-ajax-httpclient/adapter-ajax-httpclient.js +139 -0
  168. package/esm5/adapter-ajax-httpclient/adapter-core.js +49 -0
  169. package/esm5/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +5 -0
  170. package/esm5/adapter-ajax-jquery/adapter-ajax-jquery.js +105 -0
  171. package/esm5/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +5 -0
  172. package/esm5/adapter-ajax-post/adapter-ajax-post.js +81 -0
  173. package/esm5/adapter-ajax-post/breeze-client-adapter-ajax-post.js +5 -0
  174. package/esm5/adapter-data-service-odata/adapter-core.js +49 -0
  175. package/{esm2022/adapter-data-service-odata/adapter-data-service-odata.mjs → esm5/adapter-data-service-odata/adapter-data-service-odata.js} +147 -138
  176. package/esm5/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +5 -0
  177. package/esm5/adapter-data-service-webapi/adapter-data-service-webapi.js +105 -0
  178. package/esm5/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +5 -0
  179. package/esm5/adapter-model-library-backing-store/adapter-model-library-backing-store.js +270 -0
  180. package/esm5/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +5 -0
  181. package/esm5/adapter-model-library-ko/adapter-model-library-ko.js +242 -0
  182. package/esm5/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +5 -0
  183. package/esm5/adapter-uri-builder-json/adapter-core.js +49 -0
  184. package/esm5/adapter-uri-builder-json/adapter-uri-builder-json.js +38 -0
  185. package/esm5/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +5 -0
  186. package/esm5/adapter-uri-builder-odata/adapter-core.js +49 -0
  187. package/esm5/adapter-uri-builder-odata/adapter-uri-builder-odata.js +197 -0
  188. package/esm5/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +5 -0
  189. package/esm5/breeze-client.js +9 -0
  190. package/esm5/index.js +2 -0
  191. package/esm5/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +5 -0
  192. package/esm5/mixin-get-entity-graph/mixin-get-entity-graph.js +269 -0
  193. package/esm5/mixin-save-queuing/breeze-client-mixin-save-queuing.js +5 -0
  194. package/esm5/mixin-save-queuing/mixin-save-queuing.js +412 -0
  195. package/esm5/src/abstract-data-service-adapter.js +333 -0
  196. package/esm5/src/array.js +4 -0
  197. package/esm5/src/assert-param.js +317 -0
  198. package/esm5/src/breeze.js +85 -0
  199. package/esm5/src/complex-array.js +119 -0
  200. package/esm5/src/config.js +228 -0
  201. package/esm5/src/core.js +722 -0
  202. package/esm5/src/csdl-metadata-parser.js +385 -0
  203. package/esm5/src/data-service.js +207 -0
  204. package/esm5/src/data-type.js +513 -0
  205. package/esm5/src/default-property-interceptor.js +460 -0
  206. package/esm5/src/entity-action.js +52 -0
  207. package/esm5/src/entity-aspect.js +810 -0
  208. package/esm5/src/entity-group.js +189 -0
  209. package/esm5/src/entity-key.js +118 -0
  210. package/esm5/src/entity-manager.js +2112 -0
  211. package/esm5/src/entity-metadata.js +2144 -0
  212. package/esm5/src/entity-query.js +1042 -0
  213. package/esm5/src/entity-state.js +114 -0
  214. package/esm5/src/enum.js +144 -0
  215. package/esm5/src/event.js +259 -0
  216. package/esm5/src/interface-registry.js +43 -0
  217. package/esm5/src/key-generator.js +111 -0
  218. package/esm5/src/local-query-comparison-options.js +67 -0
  219. package/esm5/src/mapping-context.js +413 -0
  220. package/esm5/src/naming-convention.js +90 -0
  221. package/esm5/src/observable-array.js +201 -0
  222. package/esm5/src/predicate.js +1307 -0
  223. package/esm5/src/primitive-array.js +87 -0
  224. package/esm5/src/query-options.js +167 -0
  225. package/esm5/src/relation-array.js +175 -0
  226. package/esm5/src/save-options.js +43 -0
  227. package/esm5/src/unattached-children-map.js +60 -0
  228. package/{esm2022/src/validate.mjs → esm5/src/validate.js} +110 -116
  229. package/esm5/src/validation-options.js +66 -0
  230. package/{fesm2022/breeze-client-adapter-ajax-angularjs.mjs → fesm2015/breeze-client-adapter-ajax-angularjs.js} +1 -6
  231. package/fesm2015/breeze-client-adapter-ajax-angularjs.js.map +1 -0
  232. package/{fesm2022/breeze-client-adapter-ajax-fetch.mjs → fesm2015/breeze-client-adapter-ajax-fetch.js} +4 -9
  233. package/fesm2015/breeze-client-adapter-ajax-fetch.js.map +1 -0
  234. package/{fesm2022/breeze-client-adapter-ajax-httpclient.mjs → fesm2015/breeze-client-adapter-ajax-httpclient.js} +4 -6
  235. package/fesm2015/breeze-client-adapter-ajax-httpclient.js.map +1 -0
  236. package/{fesm2022/breeze-client-adapter-ajax-jquery.mjs → fesm2015/breeze-client-adapter-ajax-jquery.js} +2 -6
  237. package/fesm2015/breeze-client-adapter-ajax-jquery.js.map +1 -0
  238. package/{fesm2022/breeze-client-adapter-ajax-post.mjs → fesm2015/breeze-client-adapter-ajax-post.js} +1 -1
  239. package/fesm2015/breeze-client-adapter-ajax-post.js.map +1 -0
  240. package/{fesm2022/breeze-client-adapter-data-service-odata.mjs → fesm2015/breeze-client-adapter-data-service-odata.js} +69 -68
  241. package/fesm2015/breeze-client-adapter-data-service-odata.js.map +1 -0
  242. package/{fesm2022/breeze-client-adapter-data-service-webapi.mjs → fesm2015/breeze-client-adapter-data-service-webapi.js} +30 -30
  243. package/fesm2015/breeze-client-adapter-data-service-webapi.js.map +1 -0
  244. package/{fesm2022/breeze-client-adapter-model-library-backing-store.mjs → fesm2015/breeze-client-adapter-model-library-backing-store.js} +13 -14
  245. package/fesm2015/breeze-client-adapter-model-library-backing-store.js.map +1 -0
  246. package/{fesm2022/breeze-client-adapter-model-library-ko.mjs → fesm2015/breeze-client-adapter-model-library-ko.js} +13 -14
  247. package/fesm2015/breeze-client-adapter-model-library-ko.js.map +1 -0
  248. package/{fesm2022/breeze-client-adapter-uri-builder-json.mjs → fesm2015/breeze-client-adapter-uri-builder-json.js} +8 -9
  249. package/fesm2015/breeze-client-adapter-uri-builder-json.js.map +1 -0
  250. package/{fesm2022/breeze-client-adapter-uri-builder-odata.mjs → fesm2015/breeze-client-adapter-uri-builder-odata.js} +86 -86
  251. package/fesm2015/breeze-client-adapter-uri-builder-odata.js.map +1 -0
  252. package/{fesm2022/breeze-client-mixin-get-entity-graph.mjs → fesm2015/breeze-client-mixin-get-entity-graph.js} +1 -1
  253. package/fesm2015/breeze-client-mixin-get-entity-graph.js.map +1 -0
  254. package/{fesm2022/breeze-client-mixin-save-queuing.mjs → fesm2015/breeze-client-mixin-save-queuing.js} +2 -23
  255. package/fesm2015/breeze-client-mixin-save-queuing.js.map +1 -0
  256. package/{fesm2022/breeze-client.mjs → fesm2015/breeze-client.js} +1543 -2042
  257. package/fesm2015/breeze-client.js.map +1 -0
  258. package/fesm5/breeze-client-adapter-ajax-angularjs.js +186 -0
  259. package/fesm5/breeze-client-adapter-ajax-angularjs.js.map +1 -0
  260. package/fesm5/breeze-client-adapter-ajax-fetch.js +186 -0
  261. package/fesm5/breeze-client-adapter-ajax-fetch.js.map +1 -0
  262. package/fesm5/breeze-client-adapter-ajax-httpclient.js +193 -0
  263. package/fesm5/breeze-client-adapter-ajax-httpclient.js.map +1 -0
  264. package/fesm5/breeze-client-adapter-ajax-jquery.js +111 -0
  265. package/fesm5/breeze-client-adapter-ajax-jquery.js.map +1 -0
  266. package/fesm5/breeze-client-adapter-ajax-post.js +86 -0
  267. package/fesm5/breeze-client-adapter-ajax-post.js.map +1 -0
  268. package/fesm5/breeze-client-adapter-data-service-odata.js +523 -0
  269. package/fesm5/breeze-client-adapter-data-service-odata.js.map +1 -0
  270. package/fesm5/breeze-client-adapter-data-service-webapi.js +111 -0
  271. package/fesm5/breeze-client-adapter-data-service-webapi.js.map +1 -0
  272. package/fesm5/breeze-client-adapter-model-library-backing-store.js +276 -0
  273. package/fesm5/breeze-client-adapter-model-library-backing-store.js.map +1 -0
  274. package/fesm5/breeze-client-adapter-model-library-ko.js +248 -0
  275. package/fesm5/breeze-client-adapter-model-library-ko.js.map +1 -0
  276. package/fesm5/breeze-client-adapter-uri-builder-json.js +92 -0
  277. package/fesm5/breeze-client-adapter-uri-builder-json.js.map +1 -0
  278. package/fesm5/breeze-client-adapter-uri-builder-odata.js +250 -0
  279. package/fesm5/breeze-client-adapter-uri-builder-odata.js.map +1 -0
  280. package/fesm5/breeze-client-mixin-get-entity-graph.js +254 -0
  281. package/fesm5/breeze-client-mixin-get-entity-graph.js.map +1 -0
  282. package/fesm5/breeze-client-mixin-save-queuing.js +356 -0
  283. package/fesm5/breeze-client-mixin-save-queuing.js.map +1 -0
  284. package/fesm5/breeze-client.js +13956 -0
  285. package/fesm5/breeze-client.js.map +1 -0
  286. package/mixin-get-entity-graph/{index.d.ts → breeze-client-mixin-get-entity-graph.d.ts} +0 -1
  287. package/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.metadata.json +1 -0
  288. package/mixin-get-entity-graph/package.json +13 -0
  289. package/mixin-save-queuing/{index.d.ts → breeze-client-mixin-save-queuing.d.ts} +0 -1
  290. package/mixin-save-queuing/breeze-client-mixin-save-queuing.metadata.json +1 -0
  291. package/mixin-save-queuing/package.json +13 -0
  292. package/package.json +12 -94
  293. package/src/config.d.ts +1 -1
  294. package/src/core.d.ts +1 -1
  295. package/src/entity-aspect.d.ts +1 -1
  296. package/src/entity-metadata.d.ts +6 -8
  297. package/src/entity-query.d.ts +1 -1
  298. package/esm2022/adapter-ajax-angularjs/adapter-ajax-angularjs.mjs +0 -135
  299. package/esm2022/adapter-ajax-angularjs/adapter-core.mjs +0 -49
  300. package/esm2022/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.mjs +0 -5
  301. package/esm2022/adapter-ajax-fetch/adapter-ajax-fetch.mjs +0 -135
  302. package/esm2022/adapter-ajax-fetch/adapter-core.mjs +0 -49
  303. package/esm2022/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.mjs +0 -5
  304. package/esm2022/adapter-ajax-httpclient/adapter-ajax-httpclient.mjs +0 -139
  305. package/esm2022/adapter-ajax-httpclient/adapter-core.mjs +0 -49
  306. package/esm2022/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.mjs +0 -5
  307. package/esm2022/adapter-ajax-jquery/adapter-ajax-jquery.mjs +0 -107
  308. package/esm2022/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.mjs +0 -5
  309. package/esm2022/adapter-ajax-post/adapter-ajax-post.mjs +0 -77
  310. package/esm2022/adapter-ajax-post/breeze-client-adapter-ajax-post.mjs +0 -5
  311. package/esm2022/adapter-data-service-odata/adapter-core.mjs +0 -49
  312. package/esm2022/adapter-data-service-odata/breeze-client-adapter-data-service-odata.mjs +0 -5
  313. package/esm2022/adapter-data-service-webapi/adapter-data-service-webapi.mjs +0 -100
  314. package/esm2022/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.mjs +0 -5
  315. package/esm2022/adapter-model-library-backing-store/adapter-model-library-backing-store.mjs +0 -269
  316. package/esm2022/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.mjs +0 -5
  317. package/esm2022/adapter-model-library-ko/adapter-model-library-ko.mjs +0 -241
  318. package/esm2022/adapter-model-library-ko/breeze-client-adapter-model-library-ko.mjs +0 -5
  319. package/esm2022/adapter-uri-builder-json/adapter-core.mjs +0 -49
  320. package/esm2022/adapter-uri-builder-json/adapter-uri-builder-json.mjs +0 -37
  321. package/esm2022/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.mjs +0 -5
  322. package/esm2022/adapter-uri-builder-odata/adapter-core.mjs +0 -49
  323. package/esm2022/adapter-uri-builder-odata/adapter-uri-builder-odata.mjs +0 -191
  324. package/esm2022/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.mjs +0 -5
  325. package/esm2022/breeze-client.mjs +0 -5
  326. package/esm2022/index.mjs +0 -2
  327. package/esm2022/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.mjs +0 -5
  328. package/esm2022/mixin-get-entity-graph/mixin-get-entity-graph.mjs +0 -269
  329. package/esm2022/mixin-save-queuing/breeze-client-mixin-save-queuing.mjs +0 -5
  330. package/esm2022/mixin-save-queuing/mixin-save-queuing.mjs +0 -421
  331. package/esm2022/src/abstract-data-service-adapter.mjs +0 -325
  332. package/esm2022/src/array.mjs +0 -4
  333. package/esm2022/src/assert-param.mjs +0 -330
  334. package/esm2022/src/breeze.mjs +0 -85
  335. package/esm2022/src/complex-array.mjs +0 -117
  336. package/esm2022/src/config.mjs +0 -232
  337. package/esm2022/src/core.mjs +0 -712
  338. package/esm2022/src/csdl-metadata-parser.mjs +0 -385
  339. package/esm2022/src/data-service.mjs +0 -239
  340. package/esm2022/src/data-type.mjs +0 -510
  341. package/esm2022/src/default-property-interceptor.mjs +0 -460
  342. package/esm2022/src/entity-aspect.mjs +0 -897
  343. package/esm2022/src/entity-group.mjs +0 -192
  344. package/esm2022/src/entity-key.mjs +0 -127
  345. package/esm2022/src/entity-manager.mjs +0 -2183
  346. package/esm2022/src/entity-metadata.mjs +0 -2242
  347. package/esm2022/src/entity-query.mjs +0 -1024
  348. package/esm2022/src/entity-state.mjs +0 -107
  349. package/esm2022/src/enum.mjs +0 -143
  350. package/esm2022/src/event.mjs +0 -264
  351. package/esm2022/src/interface-registry.mjs +0 -39
  352. package/esm2022/src/key-generator.mjs +0 -110
  353. package/esm2022/src/local-query-comparison-options.mjs +0 -75
  354. package/esm2022/src/mapping-context.mjs +0 -422
  355. package/esm2022/src/naming-convention.mjs +0 -96
  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,100 @@
1
+ import * as breeze from 'breeze-client';
2
+ // import { JsonResultsAdapter, KeyMapping } from './breeze';
3
+ /** @hidden */
4
+ export class DataServiceWebApiAdapter extends breeze.AbstractDataServiceAdapter {
5
+ constructor() {
6
+ super();
7
+ this.jsonResultsAdapter = new breeze.JsonResultsAdapter({
8
+ name: "webApi_default",
9
+ visitNode: function (node, mappingContext, nodeContext) {
10
+ if (node == null)
11
+ return {};
12
+ let entityTypeName = breeze.MetadataStore.normalizeTypeName(node.$type);
13
+ let entityType = entityTypeName && mappingContext.entityManager.metadataStore.getEntityType(entityTypeName, true);
14
+ let propertyName = nodeContext.propertyName;
15
+ let ignore = propertyName && propertyName.substr(0, 1) === "$";
16
+ return {
17
+ entityType: entityType,
18
+ nodeId: node.$id,
19
+ nodeRefId: node.$ref,
20
+ ignore: ignore
21
+ };
22
+ }
23
+ });
24
+ this.name = "webApi";
25
+ }
26
+ static register(config) {
27
+ config = config || breeze.config;
28
+ config.registerAdapter("dataService", DataServiceWebApiAdapter);
29
+ return config.initializeAdapterInstance("dataService", "webApi", true);
30
+ }
31
+ /** @hidden @internal */
32
+ _prepareSaveBundle(saveContext, saveBundle) {
33
+ let changeRequestInterceptor = this._createChangeRequestInterceptor(saveContext, saveBundle);
34
+ let em = saveContext.entityManager;
35
+ let metadataStore = em.metadataStore;
36
+ let helper = em.helper;
37
+ let serSaveBundle = {};
38
+ serSaveBundle.entities = saveBundle.entities.map(function (e, ix) {
39
+ let rawEntity = helper.unwrapInstance(e, transformValue);
40
+ let autoGeneratedKey;
41
+ if (e.entityType.autoGeneratedKeyType !== breeze.AutoGeneratedKeyType.None) {
42
+ autoGeneratedKey = {
43
+ propertyName: e.entityType.keyProperties[0].nameOnServer,
44
+ autoGeneratedKeyType: e.entityType.autoGeneratedKeyType.name
45
+ };
46
+ }
47
+ let originalValuesOnServer = helper.unwrapOriginalValues(e, metadataStore);
48
+ rawEntity.entityAspect = {
49
+ entityTypeName: e.entityType.name,
50
+ defaultResourceName: e.entityType.defaultResourceName,
51
+ entityState: e.entityAspect.entityState.name,
52
+ originalValuesMap: originalValuesOnServer,
53
+ autoGeneratedKey: autoGeneratedKey
54
+ };
55
+ rawEntity = changeRequestInterceptor.getRequest(rawEntity, e, ix);
56
+ return rawEntity;
57
+ });
58
+ serSaveBundle.saveOptions = { tag: saveBundle.saveOptions.tag };
59
+ changeRequestInterceptor.done(serSaveBundle.entities);
60
+ return serSaveBundle;
61
+ }
62
+ /** @hidden @internal */
63
+ _prepareSaveResult(saveContext, data) {
64
+ // use the jsonResultAdapter to extractResults and extractKeyMappings
65
+ let jra = saveContext.dataService.jsonResultsAdapter || this.jsonResultsAdapter;
66
+ let entities = jra.extractSaveResults(data) || [];
67
+ let keyMappings = jra.extractKeyMappings(data) || [];
68
+ let deletedKeys = jra.extractDeletedKeys ? (jra.extractDeletedKeys(data)) || [] : [];
69
+ if (keyMappings.length) {
70
+ // HACK: need to change the 'case' of properties in the saveResult
71
+ // but KeyMapping properties internally are still ucase. ugh...
72
+ keyMappings = keyMappings.map(function (km) {
73
+ if (km.entityTypeName)
74
+ return km; // it's already lower case
75
+ let kmHack = km;
76
+ let entityTypeName = breeze.MetadataStore.normalizeTypeName(kmHack.EntityTypeName);
77
+ return { entityTypeName: entityTypeName, tempValue: kmHack.TempValue, realValue: kmHack.RealValue };
78
+ });
79
+ }
80
+ if (deletedKeys.length) {
81
+ deletedKeys = deletedKeys.map(function (dk) {
82
+ if (dk.entityTypeName)
83
+ return dk; // it's already lower case
84
+ let entityTypeName = breeze.MetadataStore.normalizeTypeName(dk.EntityTypeName);
85
+ // NOTE the dk.KeyValue => keyValues transition - needed because we are deserializing an .NET EntityKey
86
+ return { entityTypeName: entityTypeName, keyValues: dk.KeyValue };
87
+ });
88
+ }
89
+ return { entities: entities, keyMappings: keyMappings, deletedKeys: deletedKeys };
90
+ }
91
+ }
92
+ /** Transform data properties while unwrapping entities before save */
93
+ function transformValue(prop, val) {
94
+ if (prop.dataType === breeze.DataType.DateOnly) {
95
+ val = breeze.DataType.toDateOnlyString(val);
96
+ }
97
+ return val;
98
+ }
99
+ breeze.config.registerAdapter("dataService", DataServiceWebApiAdapter);
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci1kYXRhLXNlcnZpY2Utd2ViYXBpLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYnJlZXplLWNsaWVudC9hZGFwdGVyLWRhdGEtc2VydmljZS13ZWJhcGkvIiwic291cmNlcyI6WyJhZGFwdGVyLWRhdGEtc2VydmljZS13ZWJhcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDeEMsNkRBQTZEO0FBRTdELGNBQWM7QUFDZCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsTUFBTSxDQUFDLDBCQUEwQjtJQUU3RTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBNkVWLHVCQUFrQixHQUE4QixJQUFJLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztZQUU1RSxJQUFJLEVBQUUsZ0JBQWdCO1lBRXRCLFNBQVMsRUFBRSxVQUFVLElBQVMsRUFBRSxjQUFxQyxFQUFFLFdBQStCO2dCQUNwRyxJQUFJLElBQUksSUFBSSxJQUFJO29CQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUM1QixJQUFJLGNBQWMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEUsSUFBSSxVQUFVLEdBQUcsY0FBYyxJQUFJLGNBQWMsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2xILElBQUksWUFBWSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUM7Z0JBQzVDLElBQUksTUFBTSxHQUFHLFlBQVksSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUM7Z0JBRS9ELE9BQU87b0JBQ0wsVUFBVSxFQUFFLFVBQVU7b0JBQ3RCLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRztvQkFDaEIsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJO29CQUNwQixNQUFNLEVBQUUsTUFBTTtpQkFDUixDQUFDO1lBQ1gsQ0FBQztTQUVGLENBQUMsQ0FBQztRQS9GRCxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUE0QjtRQUMxQyxNQUFNLEdBQUcsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDakMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztRQUNoRSxPQUFPLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBNkIsQ0FBQztJQUNyRyxDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLGtCQUFrQixDQUFDLFdBQStCLEVBQUUsVUFBNkI7UUFDL0UsSUFBSSx3QkFBd0IsR0FBRyxJQUFJLENBQUMsK0JBQStCLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdGLElBQUksRUFBRSxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUM7UUFDbkMsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUNyQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLElBQUksYUFBYSxHQUFRLEVBQUUsQ0FBQztRQUM1QixhQUFhLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUU7WUFDOUQsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFFekQsSUFBSSxnQkFBb0MsQ0FBQztZQUN6QyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsb0JBQW9CLEtBQUssTUFBTSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRTtnQkFDMUUsZ0JBQWdCLEdBQUc7b0JBQ2pCLFlBQVksRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZO29CQUN4RCxvQkFBb0IsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLElBQUk7aUJBQzdELENBQUM7YUFDSDtZQUVELElBQUksc0JBQXNCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUMzRSxTQUFTLENBQUMsWUFBWSxHQUFHO2dCQUN2QixjQUFjLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJO2dCQUNqQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLG1CQUFtQjtnQkFDckQsV0FBVyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUk7Z0JBQzVDLGlCQUFpQixFQUFFLHNCQUFzQjtnQkFDekMsZ0JBQWdCLEVBQUUsZ0JBQWdCO2FBQ25DLENBQUM7WUFDRixTQUFTLEdBQUcsd0JBQXdCLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbEUsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxhQUFhLENBQUMsV0FBVyxHQUFHLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDaEUsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLGtCQUFrQixDQUFDLFdBQStCLEVBQUUsSUFBUztRQUMzRCxxRUFBcUU7UUFDckUsSUFBSSxHQUFHLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDaEYsSUFBSSxRQUFRLEdBQUcsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsRCxJQUFJLFdBQVcsR0FBd0IsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxRSxJQUFJLFdBQVcsR0FBRyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFckYsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQ3RCLGtFQUFrRTtZQUNsRSwrREFBK0Q7WUFDL0QsV0FBVyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFO2dCQUN4QyxJQUFJLEVBQUUsQ0FBQyxjQUFjO29CQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsMEJBQTBCO2dCQUM1RCxJQUFJLE1BQU0sR0FBRyxFQUFTLENBQUM7Z0JBQ3ZCLElBQUksY0FBYyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RHLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsV0FBVyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFO2dCQUN4QyxJQUFJLEVBQUUsQ0FBQyxjQUFjO29CQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsMEJBQTBCO2dCQUM1RCxJQUFJLGNBQWMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDL0UsdUdBQXVHO2dCQUN2RyxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BFLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUVwRixDQUFDO0NBdUJGO0FBRUQsc0VBQXNFO0FBQ3RFLFNBQVMsY0FBYyxDQUFDLElBQXlCLEVBQUUsR0FBUTtJQUN6RCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7UUFDOUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDN0M7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFHRCxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGJyZWV6ZSBmcm9tICdicmVlemUtY2xpZW50JztcclxuLy8gaW1wb3J0IHsgSnNvblJlc3VsdHNBZGFwdGVyLCBLZXlNYXBwaW5nIH0gZnJvbSAnLi9icmVlemUnO1xyXG5cclxuLyoqIEBoaWRkZW4gKi9cclxuZXhwb3J0IGNsYXNzIERhdGFTZXJ2aWNlV2ViQXBpQWRhcHRlciBleHRlbmRzIGJyZWV6ZS5BYnN0cmFjdERhdGFTZXJ2aWNlQWRhcHRlciB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMubmFtZSA9IFwid2ViQXBpXCI7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcmVnaXN0ZXIoY29uZmlnPzogYnJlZXplLkJyZWV6ZUNvbmZpZykge1xyXG4gICAgY29uZmlnID0gY29uZmlnIHx8IGJyZWV6ZS5jb25maWc7XHJcbiAgICBjb25maWcucmVnaXN0ZXJBZGFwdGVyKFwiZGF0YVNlcnZpY2VcIiwgRGF0YVNlcnZpY2VXZWJBcGlBZGFwdGVyKTtcclxuICAgIHJldHVybiBjb25maWcuaW5pdGlhbGl6ZUFkYXB0ZXJJbnN0YW5jZShcImRhdGFTZXJ2aWNlXCIsIFwid2ViQXBpXCIsIHRydWUpIGFzIERhdGFTZXJ2aWNlV2ViQXBpQWRhcHRlcjtcclxuICB9XHJcblxyXG4gIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xyXG4gIF9wcmVwYXJlU2F2ZUJ1bmRsZShzYXZlQ29udGV4dDogYnJlZXplLlNhdmVDb250ZXh0LCBzYXZlQnVuZGxlOiBicmVlemUuU2F2ZUJ1bmRsZSkge1xyXG4gICAgbGV0IGNoYW5nZVJlcXVlc3RJbnRlcmNlcHRvciA9IHRoaXMuX2NyZWF0ZUNoYW5nZVJlcXVlc3RJbnRlcmNlcHRvcihzYXZlQ29udGV4dCwgc2F2ZUJ1bmRsZSk7XHJcbiAgICBsZXQgZW0gPSBzYXZlQ29udGV4dC5lbnRpdHlNYW5hZ2VyO1xyXG4gICAgbGV0IG1ldGFkYXRhU3RvcmUgPSBlbS5tZXRhZGF0YVN0b3JlO1xyXG4gICAgbGV0IGhlbHBlciA9IGVtLmhlbHBlcjtcclxuICAgIGxldCBzZXJTYXZlQnVuZGxlOiBhbnkgPSB7fTtcclxuICAgIHNlclNhdmVCdW5kbGUuZW50aXRpZXMgPSBzYXZlQnVuZGxlLmVudGl0aWVzLm1hcChmdW5jdGlvbiAoZSwgaXgpIHtcclxuICAgICAgbGV0IHJhd0VudGl0eSA9IGhlbHBlci51bndyYXBJbnN0YW5jZShlLCB0cmFuc2Zvcm1WYWx1ZSk7XHJcblxyXG4gICAgICBsZXQgYXV0b0dlbmVyYXRlZEtleTogT2JqZWN0IHwgdW5kZWZpbmVkO1xyXG4gICAgICBpZiAoZS5lbnRpdHlUeXBlLmF1dG9HZW5lcmF0ZWRLZXlUeXBlICE9PSBicmVlemUuQXV0b0dlbmVyYXRlZEtleVR5cGUuTm9uZSkge1xyXG4gICAgICAgIGF1dG9HZW5lcmF0ZWRLZXkgPSB7XHJcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IGUuZW50aXR5VHlwZS5rZXlQcm9wZXJ0aWVzWzBdLm5hbWVPblNlcnZlcixcclxuICAgICAgICAgIGF1dG9HZW5lcmF0ZWRLZXlUeXBlOiBlLmVudGl0eVR5cGUuYXV0b0dlbmVyYXRlZEtleVR5cGUubmFtZVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBvcmlnaW5hbFZhbHVlc09uU2VydmVyID0gaGVscGVyLnVud3JhcE9yaWdpbmFsVmFsdWVzKGUsIG1ldGFkYXRhU3RvcmUpO1xyXG4gICAgICByYXdFbnRpdHkuZW50aXR5QXNwZWN0ID0ge1xyXG4gICAgICAgIGVudGl0eVR5cGVOYW1lOiBlLmVudGl0eVR5cGUubmFtZSxcclxuICAgICAgICBkZWZhdWx0UmVzb3VyY2VOYW1lOiBlLmVudGl0eVR5cGUuZGVmYXVsdFJlc291cmNlTmFtZSxcclxuICAgICAgICBlbnRpdHlTdGF0ZTogZS5lbnRpdHlBc3BlY3QuZW50aXR5U3RhdGUubmFtZSxcclxuICAgICAgICBvcmlnaW5hbFZhbHVlc01hcDogb3JpZ2luYWxWYWx1ZXNPblNlcnZlcixcclxuICAgICAgICBhdXRvR2VuZXJhdGVkS2V5OiBhdXRvR2VuZXJhdGVkS2V5XHJcbiAgICAgIH07XHJcbiAgICAgIHJhd0VudGl0eSA9IGNoYW5nZVJlcXVlc3RJbnRlcmNlcHRvci5nZXRSZXF1ZXN0KHJhd0VudGl0eSwgZSwgaXgpO1xyXG4gICAgICByZXR1cm4gcmF3RW50aXR5O1xyXG4gICAgfSk7XHJcblxyXG4gICAgc2VyU2F2ZUJ1bmRsZS5zYXZlT3B0aW9ucyA9IHsgdGFnOiBzYXZlQnVuZGxlLnNhdmVPcHRpb25zLnRhZyB9O1xyXG4gICAgY2hhbmdlUmVxdWVzdEludGVyY2VwdG9yLmRvbmUoc2VyU2F2ZUJ1bmRsZS5lbnRpdGllcyk7XHJcbiAgICByZXR1cm4gc2VyU2F2ZUJ1bmRsZTtcclxuICB9XHJcblxyXG4gIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xyXG4gIF9wcmVwYXJlU2F2ZVJlc3VsdChzYXZlQ29udGV4dDogYnJlZXplLlNhdmVDb250ZXh0LCBkYXRhOiBhbnkpIHtcclxuICAgIC8vIHVzZSB0aGUganNvblJlc3VsdEFkYXB0ZXIgdG8gZXh0cmFjdFJlc3VsdHMgYW5kIGV4dHJhY3RLZXlNYXBwaW5nc1xyXG4gICAgbGV0IGpyYSA9IHNhdmVDb250ZXh0LmRhdGFTZXJ2aWNlLmpzb25SZXN1bHRzQWRhcHRlciB8fCB0aGlzLmpzb25SZXN1bHRzQWRhcHRlcjtcclxuICAgIGxldCBlbnRpdGllcyA9IGpyYS5leHRyYWN0U2F2ZVJlc3VsdHMoZGF0YSkgfHwgW107XHJcbiAgICBsZXQga2V5TWFwcGluZ3M6IGJyZWV6ZS5LZXlNYXBwaW5nW10gPSBqcmEuZXh0cmFjdEtleU1hcHBpbmdzKGRhdGEpIHx8IFtdO1xyXG4gICAgbGV0IGRlbGV0ZWRLZXlzID0ganJhLmV4dHJhY3REZWxldGVkS2V5cyA/IChqcmEuZXh0cmFjdERlbGV0ZWRLZXlzKGRhdGEpKSB8fCBbXSA6IFtdO1xyXG5cclxuICAgIGlmIChrZXlNYXBwaW5ncy5sZW5ndGgpIHtcclxuICAgICAgLy8gSEFDSzogbmVlZCB0byBjaGFuZ2UgdGhlICdjYXNlJyBvZiBwcm9wZXJ0aWVzIGluIHRoZSBzYXZlUmVzdWx0XHJcbiAgICAgIC8vIGJ1dCBLZXlNYXBwaW5nIHByb3BlcnRpZXMgaW50ZXJuYWxseSBhcmUgc3RpbGwgdWNhc2UuIHVnaC4uLlxyXG4gICAgICBrZXlNYXBwaW5ncyA9IGtleU1hcHBpbmdzLm1hcChmdW5jdGlvbiAoa20pIHtcclxuICAgICAgICBpZiAoa20uZW50aXR5VHlwZU5hbWUpIHJldHVybiBrbTsgLy8gaXQncyBhbHJlYWR5IGxvd2VyIGNhc2VcclxuICAgICAgICBsZXQga21IYWNrID0ga20gYXMgYW55O1xyXG4gICAgICAgIGxldCBlbnRpdHlUeXBlTmFtZSA9IGJyZWV6ZS5NZXRhZGF0YVN0b3JlLm5vcm1hbGl6ZVR5cGVOYW1lKGttSGFjay5FbnRpdHlUeXBlTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIHsgZW50aXR5VHlwZU5hbWU6IGVudGl0eVR5cGVOYW1lLCB0ZW1wVmFsdWU6IGttSGFjay5UZW1wVmFsdWUsIHJlYWxWYWx1ZToga21IYWNrLlJlYWxWYWx1ZSB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZGVsZXRlZEtleXMubGVuZ3RoKSB7XHJcbiAgICAgIGRlbGV0ZWRLZXlzID0gZGVsZXRlZEtleXMubWFwKGZ1bmN0aW9uIChkaykge1xyXG4gICAgICAgIGlmIChkay5lbnRpdHlUeXBlTmFtZSkgcmV0dXJuIGRrOyAvLyBpdCdzIGFscmVhZHkgbG93ZXIgY2FzZVxyXG4gICAgICAgIGxldCBlbnRpdHlUeXBlTmFtZSA9IGJyZWV6ZS5NZXRhZGF0YVN0b3JlLm5vcm1hbGl6ZVR5cGVOYW1lKGRrLkVudGl0eVR5cGVOYW1lKTtcclxuICAgICAgICAvLyBOT1RFIHRoZSBkay5LZXlWYWx1ZSA9PiBrZXlWYWx1ZXMgdHJhbnNpdGlvbiAtIG5lZWRlZCBiZWNhdXNlIHdlIGFyZSBkZXNlcmlhbGl6aW5nIGFuIC5ORVQgRW50aXR5S2V5XHJcbiAgICAgICAgcmV0dXJuIHsgZW50aXR5VHlwZU5hbWU6IGVudGl0eVR5cGVOYW1lLCBrZXlWYWx1ZXM6IGRrLktleVZhbHVlIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7IGVudGl0aWVzOiBlbnRpdGllcywga2V5TWFwcGluZ3M6IGtleU1hcHBpbmdzLCBkZWxldGVkS2V5czogZGVsZXRlZEtleXMgfTtcclxuXHJcbiAgfVxyXG5cclxuICBqc29uUmVzdWx0c0FkYXB0ZXI6IGJyZWV6ZS5Kc29uUmVzdWx0c0FkYXB0ZXIgPSBuZXcgYnJlZXplLkpzb25SZXN1bHRzQWRhcHRlcih7XHJcblxyXG4gICAgbmFtZTogXCJ3ZWJBcGlfZGVmYXVsdFwiLFxyXG5cclxuICAgIHZpc2l0Tm9kZTogZnVuY3Rpb24gKG5vZGU6IGFueSwgbWFwcGluZ0NvbnRleHQ6IGJyZWV6ZS5NYXBwaW5nQ29udGV4dCwgbm9kZUNvbnRleHQ6IGJyZWV6ZS5Ob2RlQ29udGV4dCkge1xyXG4gICAgICBpZiAobm9kZSA9PSBudWxsKSByZXR1cm4ge307XHJcbiAgICAgIGxldCBlbnRpdHlUeXBlTmFtZSA9IGJyZWV6ZS5NZXRhZGF0YVN0b3JlLm5vcm1hbGl6ZVR5cGVOYW1lKG5vZGUuJHR5cGUpO1xyXG4gICAgICBsZXQgZW50aXR5VHlwZSA9IGVudGl0eVR5cGVOYW1lICYmIG1hcHBpbmdDb250ZXh0LmVudGl0eU1hbmFnZXIubWV0YWRhdGFTdG9yZS5nZXRFbnRpdHlUeXBlKGVudGl0eVR5cGVOYW1lLCB0cnVlKTtcclxuICAgICAgbGV0IHByb3BlcnR5TmFtZSA9IG5vZGVDb250ZXh0LnByb3BlcnR5TmFtZTtcclxuICAgICAgbGV0IGlnbm9yZSA9IHByb3BlcnR5TmFtZSAmJiBwcm9wZXJ0eU5hbWUuc3Vic3RyKDAsIDEpID09PSBcIiRcIjtcclxuXHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZW50aXR5VHlwZTogZW50aXR5VHlwZSxcclxuICAgICAgICBub2RlSWQ6IG5vZGUuJGlkLFxyXG4gICAgICAgIG5vZGVSZWZJZDogbm9kZS4kcmVmLFxyXG4gICAgICAgIGlnbm9yZTogaWdub3JlXHJcbiAgICAgIH0gYXMgYW55O1xyXG4gICAgfVxyXG5cclxuICB9KTtcclxuXHJcbn1cclxuXHJcbi8qKiBUcmFuc2Zvcm0gZGF0YSBwcm9wZXJ0aWVzIHdoaWxlIHVud3JhcHBpbmcgZW50aXRpZXMgYmVmb3JlIHNhdmUgKi9cclxuZnVuY3Rpb24gdHJhbnNmb3JtVmFsdWUocHJvcDogYnJlZXplLkRhdGFQcm9wZXJ0eSwgdmFsOiBhbnkpIHtcclxuICBpZiAocHJvcC5kYXRhVHlwZSA9PT0gYnJlZXplLkRhdGFUeXBlLkRhdGVPbmx5KSB7XHJcbiAgICB2YWwgPSBicmVlemUuRGF0YVR5cGUudG9EYXRlT25seVN0cmluZyh2YWwpO1xyXG4gIH1cclxuICByZXR1cm4gdmFsO1xyXG59XHJcblxyXG5cclxuYnJlZXplLmNvbmZpZy5yZWdpc3RlckFkYXB0ZXIoXCJkYXRhU2VydmljZVwiLCBEYXRhU2VydmljZVdlYkFwaUFkYXB0ZXIpO1xyXG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './adapter-data-service-webapi';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlZXplLWNsaWVudC1hZGFwdGVyLWRhdGEtc2VydmljZS13ZWJhcGkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9icmVlemUtY2xpZW50L2FkYXB0ZXItZGF0YS1zZXJ2aWNlLXdlYmFwaS8iLCJzb3VyY2VzIjpbImJyZWV6ZS1jbGllbnQtYWRhcHRlci1kYXRhLXNlcnZpY2Utd2ViYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9hZGFwdGVyLWRhdGEtc2VydmljZS13ZWJhcGknO1xuIl19
@@ -0,0 +1,268 @@
1
+ import * as breeze from 'breeze-client';
2
+ let core = breeze.core;
3
+ export class ModelLibraryBackingStoreAdapter {
4
+ constructor() {
5
+ this.name = "backingStore";
6
+ }
7
+ static register(config) {
8
+ config = config || breeze.config;
9
+ config.registerAdapter("modelLibrary", ModelLibraryBackingStoreAdapter);
10
+ return config.initializeAdapterInstance("modelLibrary", "backingStore", true);
11
+ }
12
+ initialize() {
13
+ }
14
+ getTrackablePropertyNames(entity) {
15
+ let names = [];
16
+ for (let p in entity) {
17
+ if (p === "entityAspect" || p === "entityType")
18
+ continue;
19
+ if (p === "_$typeName" || p === "_pendingSets" || p === "_backingStore")
20
+ continue;
21
+ let val = entity[p];
22
+ if (!core.isFunction(val)) {
23
+ names.push(p);
24
+ }
25
+ }
26
+ return names;
27
+ }
28
+ // This method is called during Metadata initialization
29
+ initializeEntityPrototype(proto) {
30
+ proto.getProperty = function (propertyName) {
31
+ return this[propertyName];
32
+ };
33
+ proto.setProperty = function (propertyName, value) {
34
+ //if (!this._backingStore.hasOwnProperty(propertyName)) {
35
+ // throw new Error("Unknown property name:" + propertyName);
36
+ //}
37
+ this[propertyName] = value;
38
+ // allow setProperty chaining.
39
+ return this;
40
+ };
41
+ movePropDefsToProto(proto);
42
+ }
43
+ // This method is called when an EntityAspect is first created - this will occur as part of the entityType.createEntity call.
44
+ // which can be called either directly or via standard query materialization
45
+ // entity is either an entity or a complexObject
46
+ startTracking(entity, proto) {
47
+ // can't touch the normal property sets within this method - access the backingStore directly instead.
48
+ let bs = movePropsToBackingStore(entity);
49
+ // assign default values to the entity
50
+ let stype = breeze.EntityAspect.isEntity(entity) ? entity.entityType : entity.complexType;
51
+ stype.getProperties().forEach(function (prop) {
52
+ let propName = prop.name;
53
+ let val = entity[propName];
54
+ if (prop instanceof breeze.DataProperty) {
55
+ if (prop.isComplexProperty) {
56
+ if (prop.isScalar) {
57
+ val = prop.dataType._createInstanceCore(entity, prop);
58
+ }
59
+ else {
60
+ val = breeze.makeComplexArray([], entity, prop);
61
+ }
62
+ }
63
+ else if (!prop.isScalar) {
64
+ val = breeze.makePrimitiveArray([], entity, prop);
65
+ }
66
+ else if (val === undefined) {
67
+ val = prop.defaultValue;
68
+ }
69
+ }
70
+ else if (prop.isNavigationProperty) {
71
+ if (val !== undefined && val !== null) {
72
+ throw new Error("Cannot assign a navigation property in an entity ctor.: " + propName);
73
+ }
74
+ if (prop.isScalar) {
75
+ // TODO: change this to nullstob later.
76
+ val = null;
77
+ }
78
+ else {
79
+ val = breeze.makeRelationArray([], entity, prop);
80
+ }
81
+ }
82
+ else {
83
+ throw new Error("unknown property: " + propName);
84
+ }
85
+ // can't touch the normal property sets within this method (IE9 Bug) - so we access the backingStore directly instead.
86
+ // otherwise we could just do
87
+ // entity[propName] = val
88
+ // after all of the interception logic had been injected.
89
+ if (prop.isSettable || prop.isNavigationProperty) {
90
+ bs[propName] = val;
91
+ }
92
+ });
93
+ }
94
+ }
95
+ breeze.config.registerAdapter("modelLibrary", ModelLibraryBackingStoreAdapter);
96
+ // private methods
97
+ // This method is called during Metadata initialization to correctly "wrap" properties.
98
+ function movePropDefsToProto(proto) {
99
+ let stype = (proto.entityType || proto.complexType);
100
+ let extra = stype._extra;
101
+ let alreadyWrapped = extra.alreadyWrappedProps || {};
102
+ stype.getProperties().forEach(function (prop) {
103
+ let propName = prop.name;
104
+ // we only want to wrap props that haven't already been wrapped
105
+ if (alreadyWrapped[propName])
106
+ return;
107
+ // If property is already defined on the prototype then wrap it in another propertyDescriptor.
108
+ // otherwise create a propDescriptor for it.
109
+ let descr;
110
+ if (propName in proto) {
111
+ descr = wrapPropDescription(proto, prop);
112
+ }
113
+ else {
114
+ descr = makePropDescription(proto, prop);
115
+ }
116
+ // descr will be null for a wrapped descr that is not configurable
117
+ if (descr != null) {
118
+ Object.defineProperty(proto, propName, descr);
119
+ }
120
+ alreadyWrapped[propName] = true;
121
+ });
122
+ extra.alreadyWrappedProps = alreadyWrapped;
123
+ }
124
+ // This method is called when an instance is first created via materialization or createEntity.
125
+ // this method cannot be called while a 'defineProperty' accessor is executing
126
+ // because of IE bug mentioned above.
127
+ function movePropsToBackingStore(instance) {
128
+ let bs = getBackingStore(instance);
129
+ let proto = Object.getPrototypeOf(instance);
130
+ let stype = (proto.entityType || proto.complexType);
131
+ stype.getProperties().forEach(function (prop) {
132
+ let propName = prop.name;
133
+ if (prop.isUnmapped) {
134
+ // insure that any unmapped properties that were added after entityType
135
+ // was first created are wrapped with a property descriptor.
136
+ if (!core.getPropertyDescriptor(proto, propName)) {
137
+ let descr = makePropDescription(proto, prop);
138
+ Object.defineProperty(proto, propName, descr);
139
+ }
140
+ }
141
+ if (!instance.hasOwnProperty(propName))
142
+ return;
143
+ // pulls off the value, removes the instance property and then rewrites it via ES5 accessor
144
+ let value = instance[propName];
145
+ delete instance[propName];
146
+ instance[propName] = value;
147
+ });
148
+ return bs;
149
+ }
150
+ function makePropDescription(proto, property) {
151
+ let propName = property.name;
152
+ let pendingStores = proto._pendingBackingStores;
153
+ if (!pendingStores) {
154
+ pendingStores = [];
155
+ proto._pendingBackingStores = pendingStores;
156
+ }
157
+ let descr = {
158
+ get: function () {
159
+ let bs = this._backingStore || getBackingStore(this);
160
+ return bs[propName];
161
+ },
162
+ set: function (value) {
163
+ // IE9 cannot touch instance._backingStore here
164
+ let bs = this._backingStore || getPendingBackingStore(this);
165
+ let accessorFn = getAccessorFn(bs, propName);
166
+ this._$interceptor(property, value, accessorFn);
167
+ },
168
+ enumerable: true,
169
+ configurable: true
170
+ };
171
+ descr.set.rawSet = function (value) {
172
+ let bs = this._backingStore || getPendingBackingStore(this);
173
+ let accessorFn = getAccessorFn(bs, propName);
174
+ accessorFn(value);
175
+ };
176
+ return descr;
177
+ }
178
+ function getAccessorFn(bs, propName) {
179
+ return function () {
180
+ if (arguments.length === 0) {
181
+ return bs[propName];
182
+ }
183
+ else {
184
+ bs[propName] = arguments[0];
185
+ return undefined;
186
+ }
187
+ };
188
+ }
189
+ function wrapPropDescription(proto, property) {
190
+ if (!proto.hasOwnProperty(property.name)) {
191
+ let nextProto = Object.getPrototypeOf(proto);
192
+ return wrapPropDescription(nextProto, property);
193
+ }
194
+ let propDescr = Object.getOwnPropertyDescriptor(proto, property.name);
195
+ if (!propDescr)
196
+ return undefined;
197
+ // if not configurable; we can't touch it - so leave.
198
+ if (!propDescr.configurable)
199
+ return undefined;
200
+ // if a data descriptor - don't change it - this is basically a static property - i.e. defined on every instance of the type with the same value.
201
+ if (propDescr.value)
202
+ return undefined;
203
+ // if a read only property descriptor - no need to change it.
204
+ if (!propDescr.set)
205
+ return undefined;
206
+ let localAccessorFn = function (entity) {
207
+ return function () {
208
+ if (!propDescr)
209
+ return undefined;
210
+ if (arguments.length === 0) {
211
+ return propDescr.get.bind(entity)();
212
+ }
213
+ else {
214
+ let set = propDescr.set;
215
+ let rawSet = set.rawSet || set;
216
+ rawSet.bind(entity)(arguments[0]);
217
+ return undefined;
218
+ }
219
+ };
220
+ };
221
+ let newDescr = {
222
+ get: function () {
223
+ if (!propDescr)
224
+ return undefined;
225
+ return propDescr.get.bind(this)();
226
+ },
227
+ set: function (value) {
228
+ this._$interceptor(property, value, localAccessorFn(this));
229
+ },
230
+ enumerable: propDescr.enumerable,
231
+ configurable: true
232
+ };
233
+ newDescr.set.rawSet = propDescr.set;
234
+ return newDescr;
235
+ }
236
+ function getBackingStore(instance) {
237
+ let proto = Object.getPrototypeOf(instance);
238
+ processPendingStores(proto);
239
+ let bs = instance._backingStore;
240
+ if (!bs) {
241
+ bs = {};
242
+ instance._backingStore = bs;
243
+ }
244
+ return bs;
245
+ }
246
+ // workaround for IE9 bug where instance properties cannot be changed when executing a property 'set' method.
247
+ function getPendingBackingStore(instance) {
248
+ let proto = Object.getPrototypeOf(instance);
249
+ let pendingStores = proto._pendingBackingStores;
250
+ let pending = core.arrayFirst(pendingStores, function (pending) {
251
+ return pending.entity === instance;
252
+ });
253
+ if (pending)
254
+ return pending.backingStore;
255
+ let bs = {};
256
+ pendingStores.push({ entity: instance, backingStore: bs });
257
+ return bs;
258
+ }
259
+ function processPendingStores(proto) {
260
+ let pendingStores = proto._pendingBackingStores;
261
+ if (pendingStores) {
262
+ pendingStores.forEach(function (pending) {
263
+ pending.entity._backingStore = pending.backingStore;
264
+ });
265
+ pendingStores.length = 0;
266
+ }
267
+ }
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci1tb2RlbC1saWJyYXJ5LWJhY2tpbmctc3RvcmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9icmVlemUtY2xpZW50L2FkYXB0ZXItbW9kZWwtbGlicmFyeS1iYWNraW5nLXN0b3JlLyIsInNvdXJjZXMiOlsiYWRhcHRlci1tb2RlbC1saWJyYXJ5LWJhY2tpbmctc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFFeEMsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztBQUV2QixNQUFNLE9BQU8sK0JBQStCO0lBRzFDO1FBQ0UsSUFBSSxDQUFDLElBQUksR0FBRyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBNEI7UUFDMUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxlQUFlLENBQUMsY0FBYyxFQUFFLCtCQUErQixDQUFDLENBQUM7UUFDeEUsT0FBTyxNQUFNLENBQUMseUJBQXlCLENBQUMsY0FBYyxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQW9DLENBQUM7SUFDbkgsQ0FBQztJQUVELFVBQVU7SUFDVixDQUFDO0lBRUQseUJBQXlCLENBQUMsTUFBcUI7UUFDN0MsSUFBSSxLQUFLLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLEtBQUssSUFBSSxDQUFDLElBQUksTUFBTSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLGNBQWMsSUFBSSxDQUFDLEtBQUssWUFBWTtnQkFBRSxTQUFTO1lBQ3pELElBQUksQ0FBQyxLQUFLLFlBQVksSUFBSSxDQUFDLEtBQUssY0FBYyxJQUFJLENBQUMsS0FBSyxlQUFlO2dCQUFFLFNBQVM7WUFDbEYsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcs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RSxDQUFDO0FBQ1osQ0FBQztBQUVELDZHQUE2RztBQUM3RyxTQUFTLHNCQUFzQixDQUFDLFFBQWE7SUFDM0MsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QyxJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUMscUJBQXFCLENBQUM7SUFDaEQsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxPQUFPO1FBQzVELE9BQU8sT0FBTyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUM7SUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDSCxJQUFJLE9BQU87UUFBRSxPQUFRLE9BQWUsQ0FBQyxZQUFZLENBQUM7SUFDbEQsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ1osYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxLQUFVO0lBQ3RDLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQztJQUNoRCxJQUFJLGFBQWEsRUFBRTtRQUNqQixhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsT0FBWTtZQUMxQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO1FBQ0gsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7S0FDMUI7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYnJlZXplIGZyb20gJ2JyZWV6ZS1jbGllbnQnO1xyXG5cclxubGV0IGNvcmUgPSBicmVlemUuY29yZTtcclxuXHJcbmV4cG9ydCBjbGFzcyBNb2RlbExpYnJhcnlCYWNraW5nU3RvcmVBZGFwdGVyIGltcGxlbWVudHMgYnJlZXplLk1vZGVsTGlicmFyeUFkYXB0ZXIge1xyXG4gIG5hbWU6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLm5hbWUgPSBcImJhY2tpbmdTdG9yZVwiO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHJlZ2lzdGVyKGNvbmZpZz86IGJyZWV6ZS5CcmVlemVDb25maWcpIHtcclxuICAgIGNvbmZpZyA9IGNvbmZpZyB8fCBicmVlemUuY29uZmlnO1xyXG4gICAgY29uZmlnLnJlZ2lzdGVyQWRhcHRlcihcIm1vZGVsTGlicmFyeVwiLCBNb2RlbExpYnJhcnlCYWNraW5nU3RvcmVBZGFwdGVyKTtcclxuICAgIHJldHVybiBjb25maWcuaW5pdGlhbGl6ZUFkYXB0ZXJJbnN0YW5jZShcIm1vZGVsTGlicmFyeVwiLCBcImJhY2tpbmdTdG9yZVwiLCB0cnVlKSBhcyBNb2RlbExpYnJhcnlCYWNraW5nU3RvcmVBZGFwdGVyO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZSgpIHtcclxuICB9XHJcblxyXG4gIGdldFRyYWNrYWJsZVByb3BlcnR5TmFtZXMoZW50aXR5OiBicmVlemUuRW50aXR5KSB7XHJcbiAgICBsZXQgbmFtZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICBmb3IgKGxldCBwIGluIGVudGl0eSkge1xyXG4gICAgICBpZiAocCA9PT0gXCJlbnRpdHlBc3BlY3RcIiB8fCBwID09PSBcImVudGl0eVR5cGVcIikgY29udGludWU7XHJcbiAgICAgIGlmIChwID09PSBcIl8kdHlwZU5hbWVcIiB8fCBwID09PSBcIl9wZW5kaW5nU2V0c1wiIHx8IHAgPT09IFwiX2JhY2tpbmdTdG9yZVwiKSBjb250aW51ZTtcclxuICAgICAgbGV0IHZhbCA9IGVudGl0eVtwXTtcclxuICAgICAgaWYgKCFjb3JlLmlzRnVuY3Rpb24odmFsKSkge1xyXG4gICAgICAgIG5hbWVzLnB1c2gocCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBuYW1lcztcclxuICB9XHJcblxyXG4gIC8vIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBkdXJpbmcgTWV0YWRhdGEgaW5pdGlhbGl6YXRpb25cclxuICBpbml0aWFsaXplRW50aXR5UHJvdG90eXBlKHByb3RvOiBhbnkpIHtcclxuXHJcbiAgICBwcm90by5nZXRQcm9wZXJ0eSA9IGZ1bmN0aW9uIChwcm9wZXJ0eU5hbWU6IHN0cmluZykge1xyXG4gICAgICByZXR1cm4gdGhpc1twcm9wZXJ0eU5hbWVdO1xyXG4gICAgfTtcclxuXHJcbiAgICBwcm90by5zZXRQcm9wZXJ0eSA9IGZ1bmN0aW9uIChwcm9wZXJ0eU5hbWU6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgICAvL2lmICghdGhpcy5fYmFja2luZ1N0b3JlLmhhc093blByb3BlcnR5KHByb3BlcnR5TmFtZSkpIHtcclxuICAgICAgLy8gICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBwcm9wZXJ0eSBuYW1lOlwiICsgcHJvcGVydHlOYW1lKTtcclxuICAgICAgLy99XHJcbiAgICAgIHRoaXNbcHJvcGVydHlOYW1lXSA9IHZhbHVlO1xyXG4gICAgICAvLyBhbGxvdyBzZXRQcm9wZXJ0eSBjaGFpbmluZy5cclxuICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9O1xyXG5cclxuICAgIG1vdmVQcm9wRGVmc1RvUHJvdG8ocHJvdG8pO1xyXG4gIH1cclxuXHJcbiAgLy8gVGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW4gYW4gRW50aXR5QXNwZWN0IGlzIGZpcnN0IGNyZWF0ZWQgLSB0aGlzIHdpbGwgb2NjdXIgYXMgcGFydCBvZiB0aGUgZW50aXR5VHlwZS5jcmVhdGVFbnRpdHkgY2FsbC5cclxuICAvLyB3aGljaCBjYW4gYmUgY2FsbGVkIGVpdGhlciBkaXJlY3RseSBvciB2aWEgc3RhbmRhcmQgcXVlcnkgbWF0ZXJpYWxpemF0aW9uXHJcblxyXG4gIC8vIGVudGl0eSBpcyBlaXRoZXIgYW4gZW50aXR5IG9yIGEgY29tcGxleE9iamVjdFxyXG4gIHN0YXJ0VHJhY2tpbmcoZW50aXR5OiBicmVlemUuU3RydWN0dXJhbE9iamVjdCwgcHJvdG86IGFueSkge1xyXG4gICAgLy8gY2FuJ3QgdG91Y2ggdGhlIG5vcm1hbCBwcm9wZXJ0eSBzZXRzIHdpdGhpbiB0aGlzIG1ldGhvZCAtIGFjY2VzcyB0aGUgYmFja2luZ1N0b3JlIGRpcmVjdGx5IGluc3RlYWQuXHJcbiAgICBsZXQgYnMgPSBtb3ZlUHJvcHNUb0JhY2tpbmdTdG9yZShlbnRpdHkpO1xyXG5cclxuICAgIC8vIGFzc2lnbiBkZWZhdWx0IHZhbHVlcyB0byB0aGUgZW50aXR5XHJcbiAgICBsZXQgc3R5cGUgPSBicmVlemUuRW50aXR5QXNwZWN0LmlzRW50aXR5KGVudGl0eSkgPyBlbnRpdHkuZW50aXR5VHlwZSA6IGVudGl0eS5jb21wbGV4VHlwZTtcclxuICAgIHN0eXBlLmdldFByb3BlcnRpZXMoKS5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wKSB7XHJcblxyXG4gICAgICBsZXQgcHJvcE5hbWUgPSBwcm9wLm5hbWU7XHJcbiAgICAgIGxldCB2YWwgPSBlbnRpdHlbcHJvcE5hbWVdO1xyXG5cclxuICAgICAgaWYgKHByb3AgaW5zdGFuY2VvZiBicmVlemUuRGF0YVByb3BlcnR5KSB7XHJcbiAgICAgICAgaWYgKHByb3AuaXNDb21wbGV4UHJvcGVydHkpIHtcclxuICAgICAgICAgIGlmIChwcm9wLmlzU2NhbGFyKSB7XHJcbiAgICAgICAgICAgIHZhbCA9IChwcm9wLmRhdGFUeXBlIGFzIGJyZWV6ZS5Db21wbGV4VHlwZSkuX2NyZWF0ZUluc3RhbmNlQ29yZShlbnRpdHksIHByb3ApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdmFsID0gYnJlZXplLm1ha2VDb21wbGV4QXJyYXkoW10sIGVudGl0eSwgcHJvcCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICghcHJvcC5pc1NjYWxhcikge1xyXG4gICAgICAgICAgdmFsID0gYnJlZXplLm1ha2VQcmltaXRpdmVBcnJheShbXSwgZW50aXR5LCBwcm9wKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHZhbCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB2YWwgPSBwcm9wLmRlZmF1bHRWYWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9IGVsc2UgaWYgKHByb3AuaXNOYXZpZ2F0aW9uUHJvcGVydHkpIHtcclxuICAgICAgICBpZiAodmFsICE9PSB1bmRlZmluZWQgJiYgdmFsICE9PSBudWxsKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgYXNzaWduIGEgbmF2aWdhdGlvbiBwcm9wZXJ0eSBpbiBhbiBlbnRpdHkgY3Rvci46IFwiICsgcHJvcE5hbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocHJvcC5pc1NjYWxhcikge1xyXG4gICAgICAgICAgLy8gVE9ETzogY2hhbmdlIHRoaXMgdG8gbnVsbHN0b2IgbGF0ZXIuXHJcbiAgICAgICAgICB2YWwgPSBudWxsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB2YWwgPSBicmVlemUubWFrZVJlbGF0aW9uQXJyYXkoW10sIGVudGl0eSBhcyBicmVlemUuRW50aXR5LCBwcm9wKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biBwcm9wZXJ0eTogXCIgKyBwcm9wTmFtZSk7XHJcbiAgICAgIH1cclxuICAgICAgLy8gY2FuJ3QgdG91Y2ggdGhlIG5vcm1hbCBwcm9wZXJ0eSBzZXRzIHdpdGhpbiB0aGlzIG1ldGhvZCAoSUU5IEJ1ZykgLSBzbyB3ZSBhY2Nlc3MgdGhlIGJhY2tpbmdTdG9yZSBkaXJlY3RseSBpbnN0ZWFkLlxyXG4gICAgICAvLyBvdGhlcndpc2Ugd2UgY291bGQganVzdCBkb1xyXG4gICAgICAvLyBlbnRpdHlbcHJvcE5hbWVdID0gdmFsXHJcbiAgICAgIC8vIGFmdGVyIGFsbCBvZiB0aGUgaW50ZXJjZXB0aW9uIGxvZ2ljIGhhZCBiZWVuIGluamVjdGVkLlxyXG4gICAgICBpZiAoKHByb3AgYXMgYnJlZXplLkRhdGFQcm9wZXJ0eSkuaXNTZXR0YWJsZSB8fCBwcm9wLmlzTmF2aWdhdGlvblByb3BlcnR5KSB7XHJcbiAgICAgICAgYnNbcHJvcE5hbWVdID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmJyZWV6ZS5jb25maWcucmVnaXN0ZXJBZGFwdGVyKFwibW9kZWxMaWJyYXJ5XCIsIE1vZGVsTGlicmFyeUJhY2tpbmdTdG9yZUFkYXB0ZXIpO1xyXG5cclxuLy8gcHJpdmF0ZSBtZXRob2RzXHJcblxyXG4vLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgZHVyaW5nIE1ldGFkYXRhIGluaXRpYWxpemF0aW9uIHRvIGNvcnJlY3RseSBcIndyYXBcIiBwcm9wZXJ0aWVzLlxyXG5mdW5jdGlvbiBtb3ZlUHJvcERlZnNUb1Byb3RvKHByb3RvOiBhbnkpIHtcclxuICBsZXQgc3R5cGUgPSAocHJvdG8uZW50aXR5VHlwZSB8fCBwcm90by5jb21wbGV4VHlwZSkgYXMgYnJlZXplLlN0cnVjdHVyYWxUeXBlO1xyXG4gIGxldCBleHRyYSA9IHN0eXBlLl9leHRyYTtcclxuXHJcbiAgbGV0IGFscmVhZHlXcmFwcGVkID0gZXh0cmEuYWxyZWFkeVdyYXBwZWRQcm9wcyB8fCB7fTtcclxuXHJcbiAgc3R5cGUuZ2V0UHJvcGVydGllcygpLmZvckVhY2goZnVuY3Rpb24gKHByb3ApIHtcclxuICAgIGxldCBwcm9wTmFtZSA9IHByb3AubmFtZTtcclxuICAgIC8vIHdlIG9ubHkgd2FudCB0byB3cmFwIHByb3BzIHRoYXQgaGF2ZW4ndCBhbHJlYWR5IGJlZW4gd3JhcHBlZFxyXG4gICAgaWYgKGFscmVhZHlXcmFwcGVkW3Byb3BOYW1lXSkgcmV0dXJuO1xyXG5cclxuICAgIC8vIElmIHByb3BlcnR5IGlzIGFscmVhZHkgZGVmaW5lZCBvbiB0aGUgcHJvdG90eXBlIHRoZW4gd3JhcCBpdCBpbiBhbm90aGVyIHByb3BlcnR5RGVzY3JpcHRvci5cclxuICAgIC8vIG90aGVyd2lzZSBjcmVhdGUgYSBwcm9wRGVzY3JpcHRvciBmb3IgaXQuXHJcbiAgICBsZXQgZGVzY3I6IGFueTtcclxuICAgIGlmIChwcm9wTmFtZSBpbiBwcm90bykge1xyXG4gICAgICBkZXNjciA9IHdyYXBQcm9wRGVzY3JpcHRpb24ocHJvdG8sIHByb3ApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGVzY3IgPSBtYWtlUHJvcERlc2NyaXB0aW9uKHByb3RvLCBwcm9wKTtcclxuICAgIH1cclxuICAgIC8vIGRlc2NyIHdpbGwgYmUgbnVsbCBmb3IgYSB3cmFwcGVkIGRlc2NyIHRoYXQgaXMgbm90IGNvbmZpZ3VyYWJsZVxyXG4gICAgaWYgKGRlc2NyICE9IG51bGwpIHtcclxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCBwcm9wTmFtZSwgZGVzY3IpO1xyXG4gICAgfVxyXG4gICAgYWxyZWFkeVdyYXBwZWRbcHJvcE5hbWVdID0gdHJ1ZTtcclxuICB9KTtcclxuICBleHRyYS5hbHJlYWR5V3JhcHBlZFByb3BzID0gYWxyZWFkeVdyYXBwZWQ7XHJcbn1cclxuXHJcbi8vIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIGFuIGluc3RhbmNlIGlzIGZpcnN0IGNyZWF0ZWQgdmlhIG1hdGVyaWFsaXphdGlvbiBvciBjcmVhdGVFbnRpdHkuXHJcbi8vIHRoaXMgbWV0aG9kIGNhbm5vdCBiZSBjYWxsZWQgd2hpbGUgYSAnZGVmaW5lUHJvcGVydHknIGFjY2Vzc29yIGlzIGV4ZWN1dGluZ1xyXG4vLyBiZWNhdXNlIG9mIElFIGJ1ZyBtZW50aW9uZWQgYWJvdmUuXHJcblxyXG5mdW5jdGlvbiBtb3ZlUHJvcHNUb0JhY2tpbmdTdG9yZShpbnN0YW5jZTogYW55KSB7XHJcblxyXG4gIGxldCBicyA9IGdldEJhY2tpbmdTdG9yZShpbnN0YW5jZSk7XHJcbiAgbGV0IHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGluc3RhbmNlKTtcclxuICBsZXQgc3R5cGUgPSAocHJvdG8uZW50aXR5VHlwZSB8fCBwcm90by5jb21wbGV4VHlwZSkgYXMgYnJlZXplLlN0cnVjdHVyYWxUeXBlO1xyXG4gIHN0eXBlLmdldFByb3BlcnRpZXMoKS5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wKSB7XHJcbiAgICBsZXQgcHJvcE5hbWUgPSBwcm9wLm5hbWU7XHJcbiAgICBpZiAocHJvcC5pc1VubWFwcGVkKSB7XHJcbiAgICAgIC8vIGluc3VyZSB0aGF0IGFueSB1bm1hcHBlZCBwcm9wZXJ0aWVzIHRoYXQgd2VyZSBhZGRlZCBhZnRlciBlbnRpdHlUeXBlXHJcbiAgICAgIC8vIHdhcyBmaXJzdCBjcmVhdGVkIGFyZSB3cmFwcGVkIHdpdGggYSBwcm9wZXJ0eSBkZXNjcmlwdG9yLlxyXG4gICAgICBpZiAoIWNvcmUuZ2V0UHJvcGVydHlEZXNjcmlwdG9yKHByb3RvLCBwcm9wTmFtZSkpIHtcclxuICAgICAgICBsZXQgZGVzY3IgPSBtYWtlUHJvcERlc2NyaXB0aW9uKHByb3RvLCBwcm9wKTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sIHByb3BOYW1lLCBkZXNjcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghaW5zdGFuY2UuaGFzT3duUHJvcGVydHkocHJvcE5hbWUpKSByZXR1cm47XHJcbiAgICAvLyBwdWxscyBvZmYgdGhlIHZhbHVlLCByZW1vdmVzIHRoZSBpbnN0YW5jZSBwcm9wZXJ0eSBhbmQgdGhlbiByZXdyaXRlcyBpdCB2aWEgRVM1IGFjY2Vzc29yXHJcbiAgICBsZXQgdmFsdWUgPSBpbnN0YW5jZVtwcm9wTmFtZV07XHJcbiAgICBkZWxldGUgaW5zdGFuY2VbcHJvcE5hbWVdO1xyXG4gICAgaW5zdGFuY2VbcHJvcE5hbWVdID0gdmFsdWU7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIGJzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBtYWtlUHJvcERlc2NyaXB0aW9uKHByb3RvOiBhbnksIHByb3BlcnR5OiBicmVlemUuRW50aXR5UHJvcGVydHkpIHtcclxuICBsZXQgcHJvcE5hbWUgPSBwcm9wZXJ0eS5uYW1lO1xyXG4gIGxldCBwZW5kaW5nU3RvcmVzID0gcHJvdG8uX3BlbmRpbmdCYWNraW5nU3RvcmVzO1xyXG4gIGlmICghcGVuZGluZ1N0b3Jlcykge1xyXG4gICAgcGVuZGluZ1N0b3JlcyA9IFtdO1xyXG4gICAgcHJvdG8uX3BlbmRpbmdCYWNraW5nU3RvcmVzID0gcGVuZGluZ1N0b3JlcztcclxuICB9XHJcbiAgbGV0IGRlc2NyID0ge1xyXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIGxldCBicyA9IHRoaXMuX2JhY2tpbmdTdG9yZSB8fCBnZXRCYWNraW5nU3RvcmUodGhpcyk7XHJcbiAgICAgIHJldHVybiBic1twcm9wTmFtZV07XHJcbiAgICB9LFxyXG4gICAgc2V0OiBmdW5jdGlvbiAodmFsdWU6IGFueSkge1xyXG4gICAgICAvLyBJRTkgY2Fubm90IHRvdWNoIGluc3RhbmNlLl9iYWNraW5nU3RvcmUgaGVyZVxyXG4gICAgICBsZXQgYnMgPSB0aGlzLl9iYWNraW5nU3RvcmUgfHwgZ2V0UGVuZGluZ0JhY2tpbmdTdG9yZSh0aGlzKTtcclxuICAgICAgbGV0IGFjY2Vzc29yRm4gPSBnZXRBY2Nlc3NvckZuKGJzLCBwcm9wTmFtZSk7XHJcbiAgICAgIHRoaXMuXyRpbnRlcmNlcHRvcihwcm9wZXJ0eSwgdmFsdWUsIGFjY2Vzc29yRm4pO1xyXG4gICAgfSxcclxuICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICBjb25maWd1cmFibGU6IHRydWVcclxuICB9O1xyXG5cclxuICAoZGVzY3Iuc2V0IGFzIGFueSkucmF3U2V0ID0gZnVuY3Rpb24gKHZhbHVlOiBhbnkpIHtcclxuICAgIGxldCBicyA9IHRoaXMuX2JhY2tpbmdTdG9yZSB8fCBnZXRQZW5kaW5nQmFja2luZ1N0b3JlKHRoaXMpO1xyXG4gICAgbGV0IGFjY2Vzc29yRm4gPSBnZXRBY2Nlc3NvckZuKGJzLCBwcm9wTmFtZSk7XHJcbiAgICBhY2Nlc3NvckZuKHZhbHVlKTtcclxuICB9O1xyXG4gIHJldHVybiBkZXNjcjtcclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFjY2Vzc29yRm4oYnM6IHt9LCBwcm9wTmFtZTogc3RyaW5nKTogYW55IHtcclxuICByZXR1cm4gZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIGJzW3Byb3BOYW1lXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGJzW3Byb3BOYW1lXSA9IGFyZ3VtZW50c1swXTtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiB3cmFwUHJvcERlc2NyaXB0aW9uKHByb3RvOiBhbnksIHByb3BlcnR5OiBicmVlemUuRW50aXR5UHJvcGVydHkpOiBhbnkge1xyXG4gIGlmICghcHJvdG8uaGFzT3duUHJvcGVydHkocHJvcGVydHkubmFtZSkpIHtcclxuICAgIGxldCBuZXh0UHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8pO1xyXG4gICAgcmV0dXJuIHdyYXBQcm9wRGVzY3JpcHRpb24obmV4dFByb3RvLCBwcm9wZXJ0eSk7XHJcbiAgfVxyXG5cclxuICBsZXQgcHJvcERlc2NyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwcm90bywgcHJvcGVydHkubmFtZSk7XHJcbiAgaWYgKCFwcm9wRGVzY3IpIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgLy8gaWYgbm90IGNvbmZpZ3VyYWJsZTsgd2UgY2FuJ3QgdG91Y2ggaXQgLSBzbyBsZWF2ZS5cclxuICBpZiAoIXByb3BEZXNjci5jb25maWd1cmFibGUpIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgLy8gaWYgYSBkYXRhIGRlc2NyaXB0b3IgLSBkb24ndCBjaGFuZ2UgaXQgLSB0aGlzIGlzIGJhc2ljYWxseSBhIHN0YXRpYyBwcm9wZXJ0eSAtIGkuZS4gZGVmaW5lZCBvbiBldmVyeSBpbnN0YW5jZSBvZiB0aGUgdHlwZSB3aXRoIHRoZSBzYW1lIHZhbHVlLlxyXG4gIGlmIChwcm9wRGVzY3IudmFsdWUpIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgLy8gaWYgYSByZWFkIG9ubHkgcHJvcGVydHkgZGVzY3JpcHRvciAtIG5vIG5lZWQgdG8gY2hhbmdlIGl0LlxyXG4gIGlmICghcHJvcERlc2NyLnNldCkgcmV0dXJuIHVuZGVmaW5lZDtcclxuXHJcbiAgbGV0IGxvY2FsQWNjZXNzb3JGbiA9IGZ1bmN0aW9uIChlbnRpdHk6IGFueSkge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcclxuICAgICAgaWYgKCFwcm9wRGVzY3IpIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuIHByb3BEZXNjci5nZXQhLmJpbmQoZW50aXR5KSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBzZXQgPSBwcm9wRGVzY3Iuc2V0O1xyXG4gICAgICAgIGxldCByYXdTZXQgPSAoc2V0IGFzIGFueSkucmF3U2V0IHx8IHNldDtcclxuICAgICAgICByYXdTZXQuYmluZChlbnRpdHkpKGFyZ3VtZW50c1swXSk7XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICBsZXQgbmV3RGVzY3IgPSB7XHJcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgaWYgKCFwcm9wRGVzY3IpIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgIHJldHVybiBwcm9wRGVzY3IuZ2V0IS5iaW5kKHRoaXMpKCk7XHJcbiAgICB9LFxyXG4gICAgc2V0OiBmdW5jdGlvbiAodmFsdWU6IGFueSkge1xyXG4gICAgICB0aGlzLl8kaW50ZXJjZXB0b3IocHJvcGVydHksIHZhbHVlLCBsb2NhbEFjY2Vzc29yRm4odGhpcykpO1xyXG4gICAgfSxcclxuICAgIGVudW1lcmFibGU6IHByb3BEZXNjci5lbnVtZXJhYmxlLFxyXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXHJcbiAgfTtcclxuICAobmV3RGVzY3Iuc2V0IGFzIGFueSkucmF3U2V0ID0gcHJvcERlc2NyLnNldDtcclxuICByZXR1cm4gbmV3RGVzY3I7XHJcbn1cclxuXHJcblxyXG5mdW5jdGlvbiBnZXRCYWNraW5nU3RvcmUoaW5zdGFuY2U6IGFueSkge1xyXG4gIGxldCBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihpbnN0YW5jZSk7XHJcbiAgcHJvY2Vzc1BlbmRpbmdTdG9yZXMocHJvdG8pO1xyXG4gIGxldCBicyA9IGluc3RhbmNlLl9iYWNraW5nU3RvcmU7XHJcbiAgaWYgKCFicykge1xyXG4gICAgYnMgPSB7fTtcclxuICAgIGluc3RhbmNlLl9iYWNraW5nU3RvcmUgPSBicztcclxuICB9XHJcbiAgcmV0dXJuIGJzO1xyXG59XHJcblxyXG4vLyB3b3JrYXJvdW5kIGZvciBJRTkgYnVnIHdoZXJlIGluc3RhbmNlIHByb3BlcnRpZXMgY2Fubm90IGJlIGNoYW5nZWQgd2hlbiBleGVjdXRpbmcgYSBwcm9wZXJ0eSAnc2V0JyBtZXRob2QuXHJcbmZ1bmN0aW9uIGdldFBlbmRpbmdCYWNraW5nU3RvcmUoaW5zdGFuY2U6IGFueSkge1xyXG4gIGxldCBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihpbnN0YW5jZSk7XHJcbiAgbGV0IHBlbmRpbmdTdG9yZXMgPSBwcm90by5fcGVuZGluZ0JhY2tpbmdTdG9yZXM7XHJcbiAgbGV0IHBlbmRpbmcgPSBjb3JlLmFycmF5Rmlyc3QocGVuZGluZ1N0b3JlcywgZnVuY3Rpb24gKHBlbmRpbmcpIHtcclxuICAgIHJldHVybiBwZW5kaW5nLmVudGl0eSA9PT0gaW5zdGFuY2U7XHJcbiAgfSk7XHJcbiAgaWYgKHBlbmRpbmcpIHJldHVybiAocGVuZGluZyBhcyBhbnkpLmJhY2tpbmdTdG9yZTtcclxuICBsZXQgYnMgPSB7fTtcclxuICBwZW5kaW5nU3RvcmVzLnB1c2goeyBlbnRpdHk6IGluc3RhbmNlLCBiYWNraW5nU3RvcmU6IGJzIH0pO1xyXG4gIHJldHVybiBicztcclxufVxyXG5cclxuZnVuY3Rpb24gcHJvY2Vzc1BlbmRpbmdTdG9yZXMocHJvdG86IGFueSkge1xyXG4gIGxldCBwZW5kaW5nU3RvcmVzID0gcHJvdG8uX3BlbmRpbmdCYWNraW5nU3RvcmVzO1xyXG4gIGlmIChwZW5kaW5nU3RvcmVzKSB7XHJcbiAgICBwZW5kaW5nU3RvcmVzLmZvckVhY2goZnVuY3Rpb24gKHBlbmRpbmc6IGFueSkge1xyXG4gICAgICBwZW5kaW5nLmVudGl0eS5fYmFja2luZ1N0b3JlID0gcGVuZGluZy5iYWNraW5nU3RvcmU7XHJcbiAgICB9KTtcclxuICAgIHBlbmRpbmdTdG9yZXMubGVuZ3RoID0gMDtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './adapter-model-library-backing-store';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlZXplLWNsaWVudC1hZGFwdGVyLW1vZGVsLWxpYnJhcnktYmFja2luZy1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2JyZWV6ZS1jbGllbnQvYWRhcHRlci1tb2RlbC1saWJyYXJ5LWJhY2tpbmctc3RvcmUvIiwic291cmNlcyI6WyJicmVlemUtY2xpZW50LWFkYXB0ZXItbW9kZWwtbGlicmFyeS1iYWNraW5nLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9hZGFwdGVyLW1vZGVsLWxpYnJhcnktYmFja2luZy1zdG9yZSc7XG4iXX0=