breeze-client 2.1.6 → 2.1.7-mjs

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