breeze-client 2.2.1-cjs → 2.2.1

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/adapter-ajax-angularjs/{breeze-client-adapter-ajax-angularjs.d.ts → index.d.ts} +1 -0
  2. package/adapter-ajax-fetch/{breeze-client-adapter-ajax-fetch.d.ts → index.d.ts} +1 -0
  3. package/adapter-ajax-httpclient/{breeze-client-adapter-ajax-httpclient.d.ts → index.d.ts} +1 -0
  4. package/adapter-ajax-jquery/{breeze-client-adapter-ajax-jquery.d.ts → index.d.ts} +1 -0
  5. package/adapter-ajax-post/{breeze-client-adapter-ajax-post.d.ts → index.d.ts} +1 -0
  6. package/adapter-data-service-odata/{breeze-client-adapter-data-service-odata.d.ts → index.d.ts} +1 -0
  7. package/adapter-data-service-webapi/{breeze-client-adapter-data-service-webapi.d.ts → index.d.ts} +1 -0
  8. package/adapter-model-library-backing-store/{breeze-client-adapter-model-library-backing-store.d.ts → index.d.ts} +1 -0
  9. package/adapter-model-library-ko/{breeze-client-adapter-model-library-ko.d.ts → index.d.ts} +1 -0
  10. package/adapter-uri-builder-json/{breeze-client-adapter-uri-builder-json.d.ts → index.d.ts} +1 -0
  11. package/adapter-uri-builder-odata/{breeze-client-adapter-uri-builder-odata.d.ts → index.d.ts} +1 -0
  12. package/esm2022/adapter-ajax-angularjs/adapter-ajax-angularjs.mjs +135 -0
  13. package/esm2022/adapter-ajax-angularjs/adapter-core.mjs +49 -0
  14. package/esm2022/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.mjs +5 -0
  15. package/esm2022/adapter-ajax-fetch/adapter-ajax-fetch.mjs +135 -0
  16. package/esm2022/adapter-ajax-fetch/adapter-core.mjs +49 -0
  17. package/esm2022/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.mjs +5 -0
  18. package/esm2022/adapter-ajax-httpclient/adapter-ajax-httpclient.mjs +139 -0
  19. package/esm2022/adapter-ajax-httpclient/adapter-core.mjs +49 -0
  20. package/esm2022/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.mjs +5 -0
  21. package/esm2022/adapter-ajax-jquery/adapter-ajax-jquery.mjs +107 -0
  22. package/esm2022/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.mjs +5 -0
  23. package/esm2022/adapter-ajax-post/adapter-ajax-post.mjs +77 -0
  24. package/esm2022/adapter-ajax-post/breeze-client-adapter-ajax-post.mjs +5 -0
  25. package/esm2022/adapter-data-service-odata/adapter-core.mjs +49 -0
  26. package/{esm5/adapter-data-service-odata/adapter-data-service-odata.js → esm2022/adapter-data-service-odata/adapter-data-service-odata.mjs} +138 -147
  27. package/esm2022/adapter-data-service-odata/breeze-client-adapter-data-service-odata.mjs +5 -0
  28. package/esm2022/adapter-data-service-webapi/adapter-data-service-webapi.mjs +100 -0
  29. package/esm2022/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.mjs +5 -0
  30. package/esm2022/adapter-model-library-backing-store/adapter-model-library-backing-store.mjs +269 -0
  31. package/esm2022/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.mjs +5 -0
  32. package/esm2022/adapter-model-library-ko/adapter-model-library-ko.mjs +241 -0
  33. package/esm2022/adapter-model-library-ko/breeze-client-adapter-model-library-ko.mjs +5 -0
  34. package/esm2022/adapter-uri-builder-json/adapter-core.mjs +49 -0
  35. package/esm2022/adapter-uri-builder-json/adapter-uri-builder-json.mjs +37 -0
  36. package/esm2022/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.mjs +5 -0
  37. package/esm2022/adapter-uri-builder-odata/adapter-core.mjs +49 -0
  38. package/esm2022/adapter-uri-builder-odata/adapter-uri-builder-odata.mjs +191 -0
  39. package/esm2022/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.mjs +5 -0
  40. package/esm2022/breeze-client.mjs +5 -0
  41. package/esm2022/index.mjs +2 -0
  42. package/esm2022/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.mjs +5 -0
  43. package/esm2022/mixin-get-entity-graph/mixin-get-entity-graph.mjs +269 -0
  44. package/esm2022/mixin-save-queuing/breeze-client-mixin-save-queuing.mjs +5 -0
  45. package/esm2022/mixin-save-queuing/mixin-save-queuing.mjs +421 -0
  46. package/esm2022/src/abstract-data-service-adapter.mjs +325 -0
  47. package/esm2022/src/array.mjs +4 -0
  48. package/esm2022/src/assert-param.mjs +330 -0
  49. package/esm2022/src/breeze.mjs +85 -0
  50. package/esm2022/src/complex-array.mjs +117 -0
  51. package/esm2022/src/config.mjs +232 -0
  52. package/esm2022/src/core.mjs +712 -0
  53. package/esm2022/src/csdl-metadata-parser.mjs +385 -0
  54. package/esm2022/src/data-service.mjs +221 -0
  55. package/esm2022/src/data-type.mjs +510 -0
  56. package/esm2022/src/default-property-interceptor.mjs +460 -0
  57. package/{esm2015/src/entity-action.js → esm2022/src/entity-action.mjs} +25 -25
  58. package/esm2022/src/entity-aspect.mjs +897 -0
  59. package/esm2022/src/entity-group.mjs +192 -0
  60. package/esm2022/src/entity-key.mjs +125 -0
  61. package/esm2022/src/entity-manager.mjs +2163 -0
  62. package/esm2022/src/entity-metadata.mjs +2242 -0
  63. package/esm2022/src/entity-query.mjs +1024 -0
  64. package/esm2022/src/entity-state.mjs +107 -0
  65. package/esm2022/src/enum.mjs +143 -0
  66. package/esm2022/src/event.mjs +264 -0
  67. package/esm2022/src/interface-registry.mjs +39 -0
  68. package/esm2022/src/key-generator.mjs +110 -0
  69. package/esm2022/src/local-query-comparison-options.mjs +65 -0
  70. package/esm2022/src/mapping-context.mjs +411 -0
  71. package/esm2022/src/naming-convention.mjs +92 -0
  72. package/esm2022/src/observable-array.mjs +183 -0
  73. package/esm2022/src/predicate.mjs +1259 -0
  74. package/esm2022/src/primitive-array.mjs +85 -0
  75. package/esm2022/src/query-options.mjs +152 -0
  76. package/esm2022/src/relation-array.mjs +173 -0
  77. package/esm2022/src/save-options.mjs +41 -0
  78. package/esm2022/src/unattached-children-map.mjs +56 -0
  79. package/esm2022/src/validate.mjs +995 -0
  80. package/esm2022/src/validation-options.mjs +64 -0
  81. package/{fesm2015/breeze-client-adapter-ajax-angularjs.js → fesm2022/breeze-client-adapter-ajax-angularjs.mjs} +6 -1
  82. package/fesm2022/breeze-client-adapter-ajax-angularjs.mjs.map +1 -0
  83. package/{fesm2015/breeze-client-adapter-ajax-fetch.js → fesm2022/breeze-client-adapter-ajax-fetch.mjs} +9 -4
  84. package/fesm2022/breeze-client-adapter-ajax-fetch.mjs.map +1 -0
  85. package/{fesm2015/breeze-client-adapter-ajax-httpclient.js → fesm2022/breeze-client-adapter-ajax-httpclient.mjs} +6 -4
  86. package/fesm2022/breeze-client-adapter-ajax-httpclient.mjs.map +1 -0
  87. package/{fesm2015/breeze-client-adapter-ajax-jquery.js → fesm2022/breeze-client-adapter-ajax-jquery.mjs} +6 -2
  88. package/fesm2022/breeze-client-adapter-ajax-jquery.mjs.map +1 -0
  89. package/{fesm2015/breeze-client-adapter-ajax-post.js → fesm2022/breeze-client-adapter-ajax-post.mjs} +1 -1
  90. package/fesm2022/breeze-client-adapter-ajax-post.mjs.map +1 -0
  91. package/{fesm2015/breeze-client-adapter-data-service-odata.js → fesm2022/breeze-client-adapter-data-service-odata.mjs} +68 -69
  92. package/fesm2022/breeze-client-adapter-data-service-odata.mjs.map +1 -0
  93. package/{fesm2015/breeze-client-adapter-data-service-webapi.js → fesm2022/breeze-client-adapter-data-service-webapi.mjs} +30 -30
  94. package/fesm2022/breeze-client-adapter-data-service-webapi.mjs.map +1 -0
  95. package/{fesm2015/breeze-client-adapter-model-library-backing-store.js → fesm2022/breeze-client-adapter-model-library-backing-store.mjs} +14 -13
  96. package/fesm2022/breeze-client-adapter-model-library-backing-store.mjs.map +1 -0
  97. package/{fesm2015/breeze-client-adapter-model-library-ko.js → fesm2022/breeze-client-adapter-model-library-ko.mjs} +14 -13
  98. package/fesm2022/breeze-client-adapter-model-library-ko.mjs.map +1 -0
  99. package/{fesm2015/breeze-client-adapter-uri-builder-json.js → fesm2022/breeze-client-adapter-uri-builder-json.mjs} +9 -8
  100. package/fesm2022/breeze-client-adapter-uri-builder-json.mjs.map +1 -0
  101. package/{fesm2015/breeze-client-adapter-uri-builder-odata.js → fesm2022/breeze-client-adapter-uri-builder-odata.mjs} +86 -86
  102. package/fesm2022/breeze-client-adapter-uri-builder-odata.mjs.map +1 -0
  103. package/{fesm2015/breeze-client-mixin-get-entity-graph.js → fesm2022/breeze-client-mixin-get-entity-graph.mjs} +1 -1
  104. package/fesm2022/breeze-client-mixin-get-entity-graph.mjs.map +1 -0
  105. package/{fesm2015/breeze-client-mixin-save-queuing.js → fesm2022/breeze-client-mixin-save-queuing.mjs} +23 -2
  106. package/fesm2022/breeze-client-mixin-save-queuing.mjs.map +1 -0
  107. package/{fesm2015/breeze-client.js → fesm2022/breeze-client.mjs} +1933 -1538
  108. package/fesm2022/breeze-client.mjs.map +1 -0
  109. package/mixin-get-entity-graph/{breeze-client-mixin-get-entity-graph.d.ts → index.d.ts} +1 -0
  110. package/mixin-save-queuing/{breeze-client-mixin-save-queuing.d.ts → index.d.ts} +1 -0
  111. package/package.json +94 -12
  112. package/src/config.d.ts +1 -1
  113. package/src/core.d.ts +1 -1
  114. package/src/entity-aspect.d.ts +1 -1
  115. package/src/entity-metadata.d.ts +8 -6
  116. package/src/entity-query.d.ts +1 -1
  117. package/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.metadata.json +0 -1
  118. package/adapter-ajax-angularjs/package.json +0 -13
  119. package/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.metadata.json +0 -1
  120. package/adapter-ajax-fetch/package.json +0 -13
  121. package/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.metadata.json +0 -1
  122. package/adapter-ajax-httpclient/package.json +0 -13
  123. package/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.metadata.json +0 -1
  124. package/adapter-ajax-jquery/package.json +0 -13
  125. package/adapter-ajax-post/breeze-client-adapter-ajax-post.metadata.json +0 -1
  126. package/adapter-ajax-post/package.json +0 -13
  127. package/adapter-data-service-odata/breeze-client-adapter-data-service-odata.metadata.json +0 -1
  128. package/adapter-data-service-odata/package.json +0 -13
  129. package/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.metadata.json +0 -1
  130. package/adapter-data-service-webapi/package.json +0 -13
  131. package/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.metadata.json +0 -1
  132. package/adapter-model-library-backing-store/package.json +0 -13
  133. package/adapter-model-library-ko/breeze-client-adapter-model-library-ko.metadata.json +0 -1
  134. package/adapter-model-library-ko/package.json +0 -13
  135. package/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.metadata.json +0 -1
  136. package/adapter-uri-builder-json/package.json +0 -13
  137. package/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.metadata.json +0 -1
  138. package/adapter-uri-builder-odata/package.json +0 -13
  139. package/breeze-client.d.ts +0 -8
  140. package/breeze-client.metadata.json +0 -1
  141. package/bundles/breeze-client-adapter-ajax-angularjs.umd.js +0 -190
  142. package/bundles/breeze-client-adapter-ajax-angularjs.umd.js.map +0 -1
  143. package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js +0 -2
  144. package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js.map +0 -1
  145. package/bundles/breeze-client-adapter-ajax-fetch.umd.js +0 -190
  146. package/bundles/breeze-client-adapter-ajax-fetch.umd.js.map +0 -1
  147. package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js +0 -2
  148. package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js.map +0 -1
  149. package/bundles/breeze-client-adapter-ajax-httpclient.umd.js +0 -195
  150. package/bundles/breeze-client-adapter-ajax-httpclient.umd.js.map +0 -1
  151. package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js +0 -2
  152. package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js.map +0 -1
  153. package/bundles/breeze-client-adapter-ajax-jquery.umd.js +0 -115
  154. package/bundles/breeze-client-adapter-ajax-jquery.umd.js.map +0 -1
  155. package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js +0 -2
  156. package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js.map +0 -1
  157. package/bundles/breeze-client-adapter-ajax-post.umd.js +0 -92
  158. package/bundles/breeze-client-adapter-ajax-post.umd.js.map +0 -1
  159. package/bundles/breeze-client-adapter-ajax-post.umd.min.js +0 -2
  160. package/bundles/breeze-client-adapter-ajax-post.umd.min.js.map +0 -1
  161. package/bundles/breeze-client-adapter-data-service-odata.umd.js +0 -747
  162. package/bundles/breeze-client-adapter-data-service-odata.umd.js.map +0 -1
  163. package/bundles/breeze-client-adapter-data-service-odata.umd.min.js +0 -16
  164. package/bundles/breeze-client-adapter-data-service-odata.umd.min.js.map +0 -1
  165. package/bundles/breeze-client-adapter-data-service-webapi.umd.js +0 -333
  166. package/bundles/breeze-client-adapter-data-service-webapi.umd.js.map +0 -1
  167. package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js +0 -16
  168. package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js.map +0 -1
  169. package/bundles/breeze-client-adapter-model-library-backing-store.umd.js +0 -280
  170. package/bundles/breeze-client-adapter-model-library-backing-store.umd.js.map +0 -1
  171. package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js +0 -2
  172. package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js.map +0 -1
  173. package/bundles/breeze-client-adapter-model-library-ko.umd.js +0 -252
  174. package/bundles/breeze-client-adapter-model-library-ko.umd.js.map +0 -1
  175. package/bundles/breeze-client-adapter-model-library-ko.umd.min.js +0 -2
  176. package/bundles/breeze-client-adapter-model-library-ko.umd.min.js.map +0 -1
  177. package/bundles/breeze-client-adapter-uri-builder-json.umd.js +0 -96
  178. package/bundles/breeze-client-adapter-uri-builder-json.umd.js.map +0 -1
  179. package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js +0 -2
  180. package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js.map +0 -1
  181. package/bundles/breeze-client-adapter-uri-builder-odata.umd.js +0 -262
  182. package/bundles/breeze-client-adapter-uri-builder-odata.umd.js.map +0 -1
  183. package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js +0 -2
  184. package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js.map +0 -1
  185. package/bundles/breeze-client-mixin-get-entity-graph.umd.js +0 -258
  186. package/bundles/breeze-client-mixin-get-entity-graph.umd.js.map +0 -1
  187. package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js +0 -2
  188. package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js.map +0 -1
  189. package/bundles/breeze-client-mixin-save-queuing.umd.js +0 -579
  190. package/bundles/breeze-client-mixin-save-queuing.umd.js.map +0 -1
  191. package/bundles/breeze-client-mixin-save-queuing.umd.min.js +0 -16
  192. package/bundles/breeze-client-mixin-save-queuing.umd.min.js.map +0 -1
  193. package/bundles/breeze-client.umd.js +0 -14234
  194. package/bundles/breeze-client.umd.js.map +0 -1
  195. package/bundles/breeze-client.umd.min.js +0 -16
  196. package/bundles/breeze-client.umd.min.js.map +0 -1
  197. package/esm2015/adapter-ajax-angularjs/adapter-ajax-angularjs.js +0 -130
  198. package/esm2015/adapter-ajax-angularjs/adapter-core.js +0 -49
  199. package/esm2015/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +0 -5
  200. package/esm2015/adapter-ajax-fetch/adapter-ajax-fetch.js +0 -130
  201. package/esm2015/adapter-ajax-fetch/adapter-core.js +0 -49
  202. package/esm2015/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +0 -5
  203. package/esm2015/adapter-ajax-httpclient/adapter-ajax-httpclient.js +0 -137
  204. package/esm2015/adapter-ajax-httpclient/adapter-core.js +0 -49
  205. package/esm2015/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +0 -5
  206. package/esm2015/adapter-ajax-jquery/adapter-ajax-jquery.js +0 -103
  207. package/esm2015/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +0 -5
  208. package/esm2015/adapter-ajax-post/adapter-ajax-post.js +0 -77
  209. package/esm2015/adapter-ajax-post/breeze-client-adapter-ajax-post.js +0 -5
  210. package/esm2015/adapter-data-service-odata/adapter-core.js +0 -49
  211. package/esm2015/adapter-data-service-odata/adapter-data-service-odata.js +0 -463
  212. package/esm2015/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +0 -5
  213. package/esm2015/adapter-data-service-webapi/adapter-data-service-webapi.js +0 -100
  214. package/esm2015/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +0 -5
  215. package/esm2015/adapter-model-library-backing-store/adapter-model-library-backing-store.js +0 -268
  216. package/esm2015/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +0 -5
  217. package/esm2015/adapter-model-library-ko/adapter-model-library-ko.js +0 -240
  218. package/esm2015/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +0 -5
  219. package/esm2015/adapter-uri-builder-json/adapter-core.js +0 -49
  220. package/esm2015/adapter-uri-builder-json/adapter-uri-builder-json.js +0 -36
  221. package/esm2015/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +0 -5
  222. package/esm2015/adapter-uri-builder-odata/adapter-core.js +0 -49
  223. package/esm2015/adapter-uri-builder-odata/adapter-uri-builder-odata.js +0 -192
  224. package/esm2015/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +0 -5
  225. package/esm2015/breeze-client.js +0 -9
  226. package/esm2015/index.js +0 -2
  227. package/esm2015/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +0 -5
  228. package/esm2015/mixin-get-entity-graph/mixin-get-entity-graph.js +0 -269
  229. package/esm2015/mixin-save-queuing/breeze-client-mixin-save-queuing.js +0 -5
  230. package/esm2015/mixin-save-queuing/mixin-save-queuing.js +0 -400
  231. package/esm2015/src/abstract-data-service-adapter.js +0 -327
  232. package/esm2015/src/array.js +0 -4
  233. package/esm2015/src/assert-param.js +0 -312
  234. package/esm2015/src/breeze.js +0 -85
  235. package/esm2015/src/complex-array.js +0 -119
  236. package/esm2015/src/config.js +0 -223
  237. package/esm2015/src/core.js +0 -714
  238. package/esm2015/src/csdl-metadata-parser.js +0 -385
  239. package/esm2015/src/data-service.js +0 -203
  240. package/esm2015/src/data-type.js +0 -506
  241. package/esm2015/src/default-property-interceptor.js +0 -460
  242. package/esm2015/src/entity-aspect.js +0 -804
  243. package/esm2015/src/entity-group.js +0 -187
  244. package/esm2015/src/entity-key.js +0 -116
  245. package/esm2015/src/entity-manager.js +0 -2094
  246. package/esm2015/src/entity-metadata.js +0 -2109
  247. package/esm2015/src/entity-query.js +0 -1015
  248. package/esm2015/src/entity-state.js +0 -107
  249. package/esm2015/src/enum.js +0 -141
  250. package/esm2015/src/event.js +0 -256
  251. package/esm2015/src/interface-registry.js +0 -41
  252. package/esm2015/src/key-generator.js +0 -108
  253. package/esm2015/src/local-query-comparison-options.js +0 -65
  254. package/esm2015/src/mapping-context.js +0 -411
  255. package/esm2015/src/naming-convention.js +0 -88
  256. package/esm2015/src/observable-array.js +0 -185
  257. package/esm2015/src/predicate.js +0 -1242
  258. package/esm2015/src/primitive-array.js +0 -87
  259. package/esm2015/src/query-options.js +0 -152
  260. package/esm2015/src/relation-array.js +0 -175
  261. package/esm2015/src/save-options.js +0 -41
  262. package/esm2015/src/unattached-children-map.js +0 -58
  263. package/esm2015/src/validate.js +0 -991
  264. package/esm2015/src/validation-options.js +0 -64
  265. package/esm5/adapter-ajax-angularjs/adapter-ajax-angularjs.js +0 -132
  266. package/esm5/adapter-ajax-angularjs/adapter-core.js +0 -49
  267. package/esm5/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +0 -5
  268. package/esm5/adapter-ajax-fetch/adapter-ajax-fetch.js +0 -132
  269. package/esm5/adapter-ajax-fetch/adapter-core.js +0 -49
  270. package/esm5/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +0 -5
  271. package/esm5/adapter-ajax-httpclient/adapter-ajax-httpclient.js +0 -139
  272. package/esm5/adapter-ajax-httpclient/adapter-core.js +0 -49
  273. package/esm5/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +0 -5
  274. package/esm5/adapter-ajax-jquery/adapter-ajax-jquery.js +0 -105
  275. package/esm5/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +0 -5
  276. package/esm5/adapter-ajax-post/adapter-ajax-post.js +0 -81
  277. package/esm5/adapter-ajax-post/breeze-client-adapter-ajax-post.js +0 -5
  278. package/esm5/adapter-data-service-odata/adapter-core.js +0 -49
  279. package/esm5/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +0 -5
  280. package/esm5/adapter-data-service-webapi/adapter-data-service-webapi.js +0 -105
  281. package/esm5/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +0 -5
  282. package/esm5/adapter-model-library-backing-store/adapter-model-library-backing-store.js +0 -270
  283. package/esm5/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +0 -5
  284. package/esm5/adapter-model-library-ko/adapter-model-library-ko.js +0 -242
  285. package/esm5/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +0 -5
  286. package/esm5/adapter-uri-builder-json/adapter-core.js +0 -49
  287. package/esm5/adapter-uri-builder-json/adapter-uri-builder-json.js +0 -38
  288. package/esm5/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +0 -5
  289. package/esm5/adapter-uri-builder-odata/adapter-core.js +0 -49
  290. package/esm5/adapter-uri-builder-odata/adapter-uri-builder-odata.js +0 -197
  291. package/esm5/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +0 -5
  292. package/esm5/breeze-client.js +0 -9
  293. package/esm5/index.js +0 -2
  294. package/esm5/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +0 -5
  295. package/esm5/mixin-get-entity-graph/mixin-get-entity-graph.js +0 -269
  296. package/esm5/mixin-save-queuing/breeze-client-mixin-save-queuing.js +0 -5
  297. package/esm5/mixin-save-queuing/mixin-save-queuing.js +0 -412
  298. package/esm5/src/abstract-data-service-adapter.js +0 -333
  299. package/esm5/src/array.js +0 -4
  300. package/esm5/src/assert-param.js +0 -317
  301. package/esm5/src/breeze.js +0 -85
  302. package/esm5/src/complex-array.js +0 -119
  303. package/esm5/src/config.js +0 -228
  304. package/esm5/src/core.js +0 -722
  305. package/esm5/src/csdl-metadata-parser.js +0 -385
  306. package/esm5/src/data-service.js +0 -207
  307. package/esm5/src/data-type.js +0 -513
  308. package/esm5/src/default-property-interceptor.js +0 -460
  309. package/esm5/src/entity-action.js +0 -52
  310. package/esm5/src/entity-aspect.js +0 -810
  311. package/esm5/src/entity-group.js +0 -189
  312. package/esm5/src/entity-key.js +0 -118
  313. package/esm5/src/entity-manager.js +0 -2112
  314. package/esm5/src/entity-metadata.js +0 -2144
  315. package/esm5/src/entity-query.js +0 -1042
  316. package/esm5/src/entity-state.js +0 -114
  317. package/esm5/src/enum.js +0 -144
  318. package/esm5/src/event.js +0 -259
  319. package/esm5/src/interface-registry.js +0 -43
  320. package/esm5/src/key-generator.js +0 -111
  321. package/esm5/src/local-query-comparison-options.js +0 -67
  322. package/esm5/src/mapping-context.js +0 -413
  323. package/esm5/src/naming-convention.js +0 -90
  324. package/esm5/src/observable-array.js +0 -201
  325. package/esm5/src/predicate.js +0 -1307
  326. package/esm5/src/primitive-array.js +0 -87
  327. package/esm5/src/query-options.js +0 -167
  328. package/esm5/src/relation-array.js +0 -175
  329. package/esm5/src/save-options.js +0 -43
  330. package/esm5/src/unattached-children-map.js +0 -60
  331. package/esm5/src/validate.js +0 -996
  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 -13956
  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
@@ -1,201 +0,0 @@
1
- import { core } from './core';
2
- var ɵ0 = function () {
3
- var args = [];
4
- for (var _i = 0; _i < arguments.length; _i++) {
5
- args[_i] = arguments[_i];
6
- }
7
- if (this._inProgress) {
8
- return -1;
9
- }
10
- var goodAdds = this._getGoodAdds(args);
11
- if (!goodAdds.length) {
12
- return this.length;
13
- }
14
- this._beforeChange();
15
- var result;
16
- var objPrototype = Object.getPrototypeOf(this);
17
- if (objPrototype.push) {
18
- result = objPrototype.push.apply(this, goodAdds);
19
- }
20
- else {
21
- result = Array.prototype.push.apply(this, goodAdds);
22
- }
23
- processAdds(this, goodAdds);
24
- return result;
25
- }, ɵ1 = function () {
26
- var args = [];
27
- for (var _i = 0; _i < arguments.length; _i++) {
28
- args[_i] = arguments[_i];
29
- }
30
- if (this._inProgress) {
31
- return -1;
32
- }
33
- var goodAdds = args;
34
- this._beforeChange();
35
- var result;
36
- var objPrototype = Object.getPrototypeOf(this);
37
- if (objPrototype.push) {
38
- result = objPrototype.push.apply(this, goodAdds);
39
- }
40
- else {
41
- result = Array.prototype.push.apply(this, goodAdds);
42
- }
43
- processAdds(this, goodAdds);
44
- return result;
45
- }, ɵ2 = function () {
46
- var args = [];
47
- for (var _i = 0; _i < arguments.length; _i++) {
48
- args[_i] = arguments[_i];
49
- }
50
- var goodAdds = this._getGoodAdds(args);
51
- if (!goodAdds.length) {
52
- return this.length;
53
- }
54
- this._beforeChange();
55
- var result;
56
- var objPrototype = Object.getPrototypeOf(this);
57
- if (objPrototype.unshift) {
58
- result = objPrototype.unshift.apply(this, goodAdds);
59
- }
60
- else {
61
- result = Array.prototype.unshift.apply(this, goodAdds);
62
- }
63
- processAdds(this, goodAdds);
64
- return result;
65
- }, ɵ3 = function () {
66
- this._beforeChange();
67
- var result;
68
- var objPrototype = Object.getPrototypeOf(this);
69
- if (objPrototype.pop) {
70
- result = objPrototype.pop.apply(this);
71
- }
72
- else {
73
- result = Array.prototype.pop.apply(this);
74
- }
75
- processRemoves(this, [result]);
76
- return result;
77
- }, ɵ4 = function () {
78
- this._beforeChange();
79
- var result;
80
- var objPrototype = Object.getPrototypeOf(this);
81
- if (objPrototype.shift) {
82
- result = objPrototype.shift.apply(this);
83
- }
84
- else {
85
- result = Array.prototype.shift.apply(this);
86
- }
87
- processRemoves(this, [result]);
88
- return result;
89
- }, ɵ5 = function () {
90
- var args = [];
91
- for (var _i = 0; _i < arguments.length; _i++) {
92
- args[_i] = arguments[_i];
93
- }
94
- var goodAdds = this._getGoodAdds(core.arraySlice(args, 2));
95
- var newArgs = core.arraySlice(args, 0, 2).concat(goodAdds);
96
- this._beforeChange();
97
- var result;
98
- var objPrototype = Object.getPrototypeOf(this);
99
- if (objPrototype.splice) {
100
- result = objPrototype.splice.apply(this, newArgs);
101
- }
102
- else {
103
- result = Array.prototype.splice.apply(this, newArgs);
104
- }
105
- processRemoves(this, result);
106
- if (goodAdds.length) {
107
- processAdds(this, goodAdds);
108
- }
109
- return result;
110
- }, ɵ6 = function () {
111
- return this.parent.entityAspect || this.parent.complexAspect.getEntityAspect();
112
- }, ɵ7 = function () {
113
- return this.getEntityAspect();
114
- }, ɵ8 = function () {
115
- var em = this.getEntityAspect().entityManager;
116
- return em && em._pendingPubs;
117
- }, ɵ9 = function () {
118
- // default is to do nothing
119
- };
120
- var mixin = {
121
- push: ɵ0,
122
- _push: ɵ1,
123
- unshift: ɵ2,
124
- pop: ɵ3,
125
- shift: ɵ4,
126
- splice: ɵ5,
127
- getEntityAspect: ɵ6,
128
- _getEventParent: ɵ7,
129
- _getPendingPubs: ɵ8,
130
- _beforeChange: ɵ9
131
- };
132
- function updateEntityState(obsArray) {
133
- var entityAspect = obsArray.getEntityAspect();
134
- if (entityAspect.entityState.isUnchanged()) {
135
- entityAspect.setModified();
136
- }
137
- if (entityAspect.entityState.isModified() && !obsArray._origValues) {
138
- obsArray._origValues = obsArray.slice(0);
139
- }
140
- }
141
- function publish(publisher, eventName, eventArgs) {
142
- var pendingPubs = publisher._getPendingPubs();
143
- if (pendingPubs) {
144
- if (!publisher._pendingArgs) {
145
- publisher._pendingArgs = eventArgs;
146
- pendingPubs.push(function () {
147
- publisher[eventName].publish(publisher._pendingArgs);
148
- publisher._pendingArgs = null;
149
- });
150
- }
151
- else {
152
- combineArgs(publisher._pendingArgs, eventArgs);
153
- }
154
- }
155
- else {
156
- publisher[eventName].publish(eventArgs);
157
- }
158
- }
159
- function initializeParent(obsArray, parent, parentProperty) {
160
- obsArray.parent = parent;
161
- obsArray.parentProperty = parentProperty;
162
- }
163
- function processAdds(obsArray, adds) {
164
- obsArray._processAdds(adds);
165
- // this is referencing the name of the method on the complexArray not the name of the event
166
- //var args = { added: adds };
167
- //args[obsArray._typeName] = obsArray;
168
- publish(obsArray, "arrayChanged", { array: obsArray, added: adds });
169
- }
170
- function processRemoves(obsArray, removes) {
171
- obsArray._processRemoves(removes);
172
- // this is referencing the name of the method on the array not the name of the event
173
- publish(obsArray, "arrayChanged", { array: obsArray, removed: removes });
174
- }
175
- // TODO: see if this function already exists in core and can be imported.
176
- function combineArgs(target, source) {
177
- for (var key in source) {
178
- if (key !== "array" && target.hasOwnProperty(key)) {
179
- var sourceValue = source[key];
180
- var targetValue = target[key];
181
- if (targetValue) {
182
- if (!Array.isArray(targetValue)) {
183
- throw new Error("Cannot combine non array args");
184
- }
185
- Array.prototype.push.apply(targetValue, sourceValue);
186
- }
187
- else {
188
- target[key] = sourceValue;
189
- }
190
- }
191
- }
192
- }
193
- /** @hidden @internal */
194
- export var observableArray = {
195
- mixin: mixin,
196
- updateEntityState: updateEntityState,
197
- publish: publish,
198
- initializeParent: initializeParent
199
- };
200
- export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6, ɵ7, ɵ8, ɵ9 };
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS1hcnJheS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2JyZWV6ZS1jbGllbnQvIiwic291cmNlcyI6WyJzcmMvb2JzZXJ2YWJsZS1hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO1NBb0N0QjtJQUFTLGNBQWM7U0FBZCxVQUFjLEVBQWQscUJBQWMsRUFBZCxJQUFjO1FBQWQseUJBQWM7O0lBQzNCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNwQixPQUFPLENBQUMsQ0FBQyxDQUFDO0tBQ1g7SUFFRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztLQUNwQjtJQUNELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNyQixJQUFJLE1BQU0sQ0FBQztJQUNYLElBQUksWUFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFO1FBQ25CLE1BQU0sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7S0FDcEQ7U0FBTTtRQUNILE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0tBQ3ZEO0lBQ0QsV0FBVyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM1QixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLE9BRU07SUFBUyxjQUFjO1NBQWQsVUFBYyxFQUFkLHFCQUFjLEVBQWQsSUFBYztRQUFkLHlCQUFjOztJQUM1QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDcEIs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QUFJLFdBQVcsRUFBRTtnQkFDZixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtvQkFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO2lCQUNsRDtnQkFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO2FBQ3REO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUM7YUFDM0I7U0FDRjtLQUNGO0FBQ0gsQ0FBQztBQUNELHdCQUF3QjtBQUN4QixNQUFNLENBQUMsSUFBTSxlQUFlLEdBQUc7SUFDN0IsS0FBSyxFQUFFLEtBQUs7SUFDWixpQkFBaUIsRUFBRSxpQkFBaUI7SUFDcEMsT0FBTyxFQUFFLE9BQU87SUFDaEIsZ0JBQWdCLEVBQUUsZ0JBQWdCO0NBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb3JlIH0gZnJvbSAnLi9jb3JlJztcclxuaW1wb3J0IHsgQnJlZXplRXZlbnQgfSBmcm9tICcuL2V2ZW50JztcclxuaW1wb3J0IHsgRW50aXR5QXNwZWN0IH0gZnJvbSAnLi9lbnRpdHktYXNwZWN0JztcclxuaW1wb3J0IHsgRGF0YVByb3BlcnR5IH0gZnJvbSAnLi9lbnRpdHktbWV0YWRhdGEnO1xyXG5cclxuLyoqIEBoaWRkZW4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBPYnNlcnZhYmxlQXJyYXkge1xyXG4gIHB1c2g6ICguLi5hcmdzOiBhbnlbXSkgPT4gbnVtYmVyO1xyXG4gIF9wdXNoOiAoLi4uYXJnczogYW55W10pID0+IG51bWJlcjtcclxuICB1bnNoaWZ0OiAoLi4uYXJnczogYW55W10pID0+ICBudW1iZXI7XHJcbiAgcG9wOiAoKSA9PiBhbnk7XHJcbiAgc2hpZnQ6ICgpID0+IGFueTtcclxuICBzcGxpY2U6ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55W107XHJcbiAgc2xpY2U6IChhOiBudW1iZXIsIGI/OiBudW1iZXIpID0+IGFueVtdOyAvLyBpbXBsZW1lbnRlZCBvbiB0aGUgbmF0aXZlIGFycmF5XHJcbiAgbGVuZ3RoOiBudW1iZXI7XHJcbiAgXHJcbiAgZ2V0RW50aXR5QXNwZWN0OiAoKSA9PiBFbnRpdHlBc3BlY3Q7XHJcbiAgYXJyYXlDaGFuZ2VkOiBCcmVlemVFdmVudDxBcnJheUNoYW5nZWRBcmdzPjtcclxuICBwYXJlbnQ/OiBPYmplY3Q7XHJcbiAgcGFyZW50UHJvcGVydHk/OiBEYXRhUHJvcGVydHk7XHJcbiAgX2dldEV2ZW50UGFyZW50OiAoKSA9PiBPYmplY3Q7XHJcbiAgX2dldFBlbmRpbmdQdWJzOiAoKSA9PiBhbnlbXTsgLy8gVE9ETzogUHViW11cclxuICBfYmVmb3JlQ2hhbmdlOiAoKSA9PiB2b2lkO1xyXG4gIF9wcm9jZXNzQWRkcyhpdGVtczogYW55W10pOiB2b2lkO1xyXG4gIF9wcm9jZXNzUmVtb3ZlcyhpdGVtczogYW55W10pOiB2b2lkO1xyXG4gIF9vcmlnVmFsdWVzOiBhbnlbXTtcclxuICBfcGVuZGluZ0FyZ3M6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcnJheUNoYW5nZWRBcmdzIHtcclxuICBhcnJheTogYW55W107XHJcbiAgYWRkZWQ/OiBhbnlbXTsgXHJcbiAgcmVtb3ZlZD86IGFueVtdO1xyXG59XHJcblxyXG5sZXQgbWl4aW4gPSB7XHJcbiAgcHVzaDogZnVuY3Rpb24oLi4uYXJnczogYW55W10pIHtcclxuICAgIGlmICh0aGlzLl9pblByb2dyZXNzKSB7XHJcbiAgICAgIHJldHVybiAtMTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZ29vZEFkZHMgPSB0aGlzLl9nZXRHb29kQWRkcyhhcmdzKTtcclxuICAgIGlmICghZ29vZEFkZHMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxlbmd0aDtcclxuICAgIH1cclxuICAgIHRoaXMuX2JlZm9yZUNoYW5nZSgpO1xyXG4gICAgbGV0IHJlc3VsdDtcclxuICAgIGxldCBvYmpQcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyk7XHJcbiAgICBpZiAob2JqUHJvdG90eXBlLnB1c2gpIHtcclxuICAgICAgICByZXN1bHQgPSBvYmpQcm90b3R5cGUucHVzaC5hcHBseSh0aGlzLCBnb29kQWRkcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlc3VsdCA9IEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHRoaXMsIGdvb2RBZGRzKTtcclxuICAgIH1cclxuICAgIHByb2Nlc3NBZGRzKHRoaXMsIGdvb2RBZGRzKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfSxcclxuXHJcbiAgX3B1c2g6IGZ1bmN0aW9uKC4uLmFyZ3M6IGFueVtdKSB7XHJcbiAgICBpZiAodGhpcy5faW5Qcm9ncmVzcykge1xyXG4gICAgICByZXR1cm4gLTE7XHJcbiAgICB9XHJcbiAgICBsZXQgZ29vZEFkZHMgPSBhcmdzO1xyXG4gICAgdGhpcy5fYmVmb3JlQ2hhbmdlKCk7XHJcbiAgICBsZXQgcmVzdWx0O1xyXG4gICAgbGV0IG9ialByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKTtcclxuICAgIGlmIChvYmpQcm90b3R5cGUucHVzaCkge1xyXG4gICAgICAgIHJlc3VsdCA9IG9ialByb3RvdHlwZS5wdXNoLmFwcGx5KHRoaXMsIGdvb2RBZGRzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodGhpcywgZ29vZEFkZHMpO1xyXG4gICAgfVxyXG4gICAgcHJvY2Vzc0FkZHModGhpcywgZ29vZEFkZHMpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9LFxyXG5cclxuICB1bnNoaWZ0OiBmdW5jdGlvbiguLi5hcmdzOiBhbnlbXSkge1xyXG4gICAgbGV0IGdvb2RBZGRzID0gdGhpcy5fZ2V0R29vZEFkZHMoYXJncyk7XHJcbiAgICBpZiAoIWdvb2RBZGRzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9iZWZvcmVDaGFuZ2UoKTtcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICBsZXQgb2JqUHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO1xyXG4gICAgaWYgKG9ialByb3RvdHlwZS51bnNoaWZ0KSB7XHJcbiAgICAgICAgcmVzdWx0ID0gb2JqUHJvdG90eXBlLnVuc2hpZnQuYXBwbHkodGhpcywgZ29vZEFkZHMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICByZXN1bHQgPSBBcnJheS5wcm90b3R5cGUudW5zaGlmdC5hcHBseSh0aGlzLCBnb29kQWRkcyk7XHJcbiAgICB9XHJcbiAgICBwcm9jZXNzQWRkcyh0aGlzLCBnb29kQWRkcyk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH0sXHJcblxyXG4gIHBvcDogZnVuY3Rpb24oKSB7XHJcbiAgICB0aGlzLl9iZWZvcmVDaGFuZ2UoKTtcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICBsZXQgb2JqUHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO1xyXG4gICAgaWYgKG9ialByb3RvdHlwZS5wb3ApIHtcclxuICAgICAgICByZXN1bHQgPSBvYmpQcm90b3R5cGUucG9wLmFwcGx5KHRoaXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICByZXN1bHQgPSBBcnJheS5wcm90b3R5cGUucG9wLmFwcGx5KHRoaXMpO1xyXG4gICAgfVxyXG4gICAgcHJvY2Vzc1JlbW92ZXModGhpcywgW3Jlc3VsdF0pO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9LFxyXG5cclxuICBzaGlmdDogZnVuY3Rpb24oKSB7XHJcbiAgICB0aGlzLl9iZWZvcmVDaGFuZ2UoKTtcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICBsZXQgb2JqUHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO1xyXG4gICAgaWYgKG9ialByb3RvdHlwZS5zaGlmdCkge1xyXG4gICAgICAgIHJlc3VsdCA9IG9ialByb3RvdHlwZS5zaGlmdC5hcHBseSh0aGlzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLnNoaWZ0LmFwcGx5KHRoaXMpO1xyXG4gICAgfSAgICBcclxuICAgIHByb2Nlc3NSZW1vdmVzKHRoaXMsIFtyZXN1bHRdKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfSxcclxuXHJcbiAgc3BsaWNlOiBmdW5jdGlvbiguLi5hcmdzOiBhbnlbXSkge1xyXG4gICAgbGV0IGdvb2RBZGRzID0gdGhpcy5fZ2V0R29vZEFkZHMoY29yZS5hcnJheVNsaWNlKGFyZ3MsIDIpKTtcclxuICAgIGxldCBuZXdBcmdzID0gY29yZS5hcnJheVNsaWNlKGFyZ3MsIDAsIDIpLmNvbmNhdChnb29kQWRkcyk7XHJcbiAgICB0aGlzLl9iZWZvcmVDaGFuZ2UoKTtcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICBsZXQgb2JqUHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO1xyXG4gICAgaWYgKG9ialByb3RvdHlwZS5zcGxpY2UpIHtcclxuICAgICAgICByZXN1bHQgPSBvYmpQcm90b3R5cGUuc3BsaWNlLmFwcGx5KHRoaXMsIG5ld0FyZ3MpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICByZXN1bHQgPSBBcnJheS5wcm90b3R5cGUuc3BsaWNlLmFwcGx5KHRoaXMsIG5ld0FyZ3MpO1xyXG4gICAgfVxyXG4gICAgcHJvY2Vzc1JlbW92ZXModGhpcywgcmVzdWx0KTtcclxuXHJcbiAgICBpZiAoZ29vZEFkZHMubGVuZ3RoKSB7XHJcbiAgICAgIHByb2Nlc3NBZGRzKHRoaXMsIGdvb2RBZGRzKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfSxcclxuXHJcbiAgZ2V0RW50aXR5QXNwZWN0OiBmdW5jdGlvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnBhcmVudC5lbnRpdHlBc3BlY3QgfHwgdGhpcy5wYXJlbnQuY29tcGxleEFzcGVjdC5nZXRFbnRpdHlBc3BlY3QoKTtcclxuICB9LFxyXG5cclxuICBfZ2V0RXZlbnRQYXJlbnQ6IGZ1bmN0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5QXNwZWN0KCk7XHJcbiAgfSxcclxuXHJcbiAgX2dldFBlbmRpbmdQdWJzOiBmdW5jdGlvbiAoKSB7XHJcbiAgICBsZXQgZW0gPSB0aGlzLmdldEVudGl0eUFzcGVjdCgpLmVudGl0eU1hbmFnZXI7XHJcbiAgICByZXR1cm4gZW0gJiYgZW0uX3BlbmRpbmdQdWJzO1xyXG4gIH0sXHJcblxyXG4gIF9iZWZvcmVDaGFuZ2U6ICBmdW5jdGlvbiAoKSB7XHJcbiAgICAvLyBkZWZhdWx0IGlzIHRvIGRvIG5vdGhpbmdcclxuICB9XHJcbn07XHJcblxyXG5mdW5jdGlvbiB1cGRhdGVFbnRpdHlTdGF0ZShvYnNBcnJheTogT2JzZXJ2YWJsZUFycmF5KSB7XHJcbiAgbGV0IGVudGl0eUFzcGVjdCA9IG9ic0FycmF5LmdldEVudGl0eUFzcGVjdCgpO1xyXG4gIGlmIChlbnRpdHlBc3BlY3QuZW50aXR5U3RhdGUuaXNVbmNoYW5nZWQoKSkge1xyXG4gICAgZW50aXR5QXNwZWN0LnNldE1vZGlmaWVkKCk7XHJcbiAgfVxyXG4gIGlmIChlbnRpdHlBc3BlY3QuZW50aXR5U3RhdGUuaXNNb2RpZmllZCgpICYmICFvYnNBcnJheS5fb3JpZ1ZhbHVlcykge1xyXG4gICAgb2JzQXJyYXkuX29yaWdWYWx1ZXMgPSBvYnNBcnJheS5zbGljZSgwKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHB1Ymxpc2gocHVibGlzaGVyOiBPYnNlcnZhYmxlQXJyYXksIGV2ZW50TmFtZTogc3RyaW5nLCBldmVudEFyZ3M6IGFueSkge1xyXG4gIGxldCBwZW5kaW5nUHVicyA9IHB1Ymxpc2hlci5fZ2V0UGVuZGluZ1B1YnMoKTtcclxuICBpZiAocGVuZGluZ1B1YnMpIHtcclxuICAgIGlmICghcHVibGlzaGVyLl9wZW5kaW5nQXJncykge1xyXG4gICAgICBwdWJsaXNoZXIuX3BlbmRpbmdBcmdzID0gZXZlbnRBcmdzO1xyXG4gICAgICBwZW5kaW5nUHVicy5wdXNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBwdWJsaXNoZXJbZXZlbnROYW1lXS5wdWJsaXNoKHB1Ymxpc2hlci5fcGVuZGluZ0FyZ3MpO1xyXG4gICAgICAgIHB1Ymxpc2hlci5fcGVuZGluZ0FyZ3MgPSBudWxsO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbWJpbmVBcmdzKHB1Ymxpc2hlci5fcGVuZGluZ0FyZ3MsIGV2ZW50QXJncyk7XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIHB1Ymxpc2hlcltldmVudE5hbWVdLnB1Ymxpc2goZXZlbnRBcmdzKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGluaXRpYWxpemVQYXJlbnQob2JzQXJyYXk6IGFueSwgcGFyZW50OiBPYmplY3QsIHBhcmVudFByb3BlcnR5OiBEYXRhUHJvcGVydHkpIHtcclxuICBvYnNBcnJheS5wYXJlbnQgPSBwYXJlbnQ7XHJcbiAgb2JzQXJyYXkucGFyZW50UHJvcGVydHkgPSBwYXJlbnRQcm9wZXJ0eTtcclxufVxyXG5cclxuZnVuY3Rpb24gcHJvY2Vzc0FkZHMob2JzQXJyYXk6IE9ic2VydmFibGVBcnJheSwgYWRkczogYW55W10pIHtcclxuICBvYnNBcnJheS5fcHJvY2Vzc0FkZHMoYWRkcyk7XHJcbiAgLy8gdGhpcyBpcyByZWZlcmVuY2luZyB0aGUgbmFtZSBvZiB0aGUgbWV0aG9kIG9uIHRoZSBjb21wbGV4QXJyYXkgbm90IHRoZSBuYW1lIG9mIHRoZSBldmVudFxyXG4gIC8vdmFyIGFyZ3MgPSB7IGFkZGVkOiBhZGRzIH07XHJcbiAgLy9hcmdzW29ic0FycmF5Ll90eXBlTmFtZV0gPSBvYnNBcnJheTtcclxuICBwdWJsaXNoKG9ic0FycmF5LCBcImFycmF5Q2hhbmdlZFwiLCB7IGFycmF5OiBvYnNBcnJheSwgYWRkZWQ6IGFkZHMgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHByb2Nlc3NSZW1vdmVzKG9ic0FycmF5OiBPYnNlcnZhYmxlQXJyYXksIHJlbW92ZXM6IGFueVtdKSB7XHJcbiAgb2JzQXJyYXkuX3Byb2Nlc3NSZW1vdmVzKHJlbW92ZXMpO1xyXG4gIC8vIHRoaXMgaXMgcmVmZXJlbmNpbmcgdGhlIG5hbWUgb2YgdGhlIG1ldGhvZCBvbiB0aGUgYXJyYXkgbm90IHRoZSBuYW1lIG9mIHRoZSBldmVudFxyXG4gIHB1Ymxpc2gob2JzQXJyYXksIFwiYXJyYXlDaGFuZ2VkXCIsIHsgYXJyYXk6IG9ic0FycmF5LCByZW1vdmVkOiByZW1vdmVzIH0pO1xyXG59XHJcblxyXG4vLyBUT0RPOiBzZWUgaWYgdGhpcyBmdW5jdGlvbiBhbHJlYWR5IGV4aXN0cyBpbiBjb3JlIGFuZCBjYW4gYmUgaW1wb3J0ZWQuXHJcbmZ1bmN0aW9uIGNvbWJpbmVBcmdzKHRhcmdldDogT2JqZWN0LCBzb3VyY2U6IE9iamVjdCkge1xyXG4gIGZvciAobGV0IGtleSBpbiBzb3VyY2UpIHtcclxuICAgIGlmIChrZXkgIT09IFwiYXJyYXlcIiAmJiB0YXJnZXQuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICBsZXQgc291cmNlVmFsdWUgPSBzb3VyY2Vba2V5XTtcclxuICAgICAgbGV0IHRhcmdldFZhbHVlID0gdGFyZ2V0W2tleV07XHJcbiAgICAgIGlmICh0YXJnZXRWYWx1ZSkge1xyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh0YXJnZXRWYWx1ZSkpIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBjb21iaW5lIG5vbiBhcnJheSBhcmdzXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh0YXJnZXRWYWx1ZSwgc291cmNlVmFsdWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRhcmdldFtrZXldID0gc291cmNlVmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbmV4cG9ydCBjb25zdCBvYnNlcnZhYmxlQXJyYXkgPSB7XHJcbiAgbWl4aW46IG1peGluLFxyXG4gIHVwZGF0ZUVudGl0eVN0YXRlOiB1cGRhdGVFbnRpdHlTdGF0ZSxcclxuICBwdWJsaXNoOiBwdWJsaXNoLFxyXG4gIGluaXRpYWxpemVQYXJlbnQ6IGluaXRpYWxpemVQYXJlbnRcclxufTtcclxuIl19