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,333 +0,0 @@
1
- import { core } from './core';
2
- import { config } from './config';
3
- import { JsonResultsAdapter } from './data-service';
4
- import { EntityType, MetadataStore } from './entity-metadata';
5
- /** For use by breeze plugin authors only. The class is used as the base class for most [[IDataServiceAdapter]] implementations
6
- @adapter (see [[IDataServiceAdapter]])
7
- @hidden
8
- */
9
- var AbstractDataServiceAdapter = /** @class */ (function () {
10
- function AbstractDataServiceAdapter() {
11
- /**
12
- Returns a constructor function for a "ChangeRequestInterceptor"
13
- that can tweak the saveBundle both as it is built and when it is completed
14
- by a concrete DataServiceAdapater.
15
-
16
- Initialized with a default, no-op implementation that developers can replace with a
17
- substantive implementation that changes the individual entity change requests
18
- or aspects of the entire 'saveBundle' without having to write their own DataService adapters.
19
- > let adapter = breeze.config.getAdapterInstance('dataService');
20
- > adapter.changeRequestInterceptor = function (saveContext, saveBundle) {
21
- > this.getRequest = function (request, entity, index) {
22
- > // alter the request that the adapter prepared for this entity
23
- > // based on the entity, saveContext, and saveBundle
24
- > // e.g., add a custom header or prune the originalValuesMap
25
- > return request;
26
- > };
27
- > this.done = function (requests) {
28
- > // alter the array of requests representing the entire change-set
29
- > // based on the saveContext and saveBundle
30
- > };
31
- > }
32
-
33
- @param saveContext - The BreezeJS "context" for the save operation.
34
- @param saveBundle - Contains the array of entities-to-be-saved (AKA, the entity change-set).
35
- @return Constructor for a "ChangeRequestInterceptor".
36
- **/
37
- this.changeRequestInterceptor = DefaultChangeRequestInterceptor;
38
- this.jsonResultsAdapter = new JsonResultsAdapter({
39
- name: "noop",
40
- visitNode: function ( /* node, mappingContext, nodeContext */) {
41
- return {};
42
- }
43
- });
44
- }
45
- // TODO use interface
46
- AbstractDataServiceAdapter.prototype.checkForRecomposition = function (interfaceInitializedArgs) {
47
- if (interfaceInitializedArgs.interfaceName === "ajax" && interfaceInitializedArgs.isDefault) {
48
- this.initialize();
49
- }
50
- };
51
- AbstractDataServiceAdapter.prototype.initialize = function () {
52
- this.ajaxImpl = config.getAdapterInstance("ajax");
53
- // don't cache 'ajax' because then we would need to ".bind" it, and don't want to because of brower support issues.
54
- if (this.ajaxImpl && this.ajaxImpl.ajax) {
55
- return;
56
- }
57
- throw new Error("Unable to find ajax adapter for dataservice adapter '" + (this.name || '') + "'.");
58
- };
59
- AbstractDataServiceAdapter.prototype.fetchMetadata = function (metadataStore, dataService) {
60
- var _this = this;
61
- var serviceName = dataService.serviceName;
62
- var url = dataService.qualifyUrl("Metadata");
63
- var promise = new Promise(function (resolve, reject) {
64
- _this.ajaxImpl.ajax({
65
- type: "GET",
66
- url: url,
67
- dataType: 'json',
68
- success: function (httpResponse) {
69
- // might have been fetched by another query
70
- if (metadataStore.hasMetadataFor(serviceName)) {
71
- return resolve("already fetched");
72
- }
73
- var data = httpResponse.data;
74
- var metadata;
75
- try {
76
- metadata = typeof (data) === "string" ? JSON.parse(data) : data;
77
- metadataStore.importMetadata(metadata);
78
- }
79
- catch (e) {
80
- var errMsg = "Unable to either parse or import metadata: " + e.message;
81
- handleHttpError(reject, httpResponse, "Metadata query failed for: " + url + ". " + errMsg);
82
- }
83
- // import may have brought in the service.
84
- if (!metadataStore.hasMetadataFor(serviceName)) {
85
- metadataStore.addDataService(dataService);
86
- }
87
- resolve(metadata);
88
- },
89
- error: function (httpResponse) {
90
- handleHttpError(reject, httpResponse, "Metadata query failed for: " + url);
91
- }
92
- });
93
- });
94
- return promise;
95
- };
96
- /** Execute the query in the mappingContext using the ajaxImpl. */
97
- AbstractDataServiceAdapter.prototype.executeQuery = function (mappingContext) {
98
- var _this = this;
99
- mappingContext.adapter = this;
100
- var usePost = mappingContext.query.usePostEnabled;
101
- var params = usePost ? this._makeQueryPostParams(mappingContext) : this._makeQueryGetParams(mappingContext);
102
- var promise = new Promise(function (resolve, reject) {
103
- params.success = function (httpResponse) {
104
- var data = httpResponse.data;
105
- try {
106
- var rData = void 0;
107
- var results = data && (data.results || data.Results);
108
- if (results) {
109
- rData = { results: results, inlineCount: data.inlineCount || data.InlineCount,
110
- httpResponse: httpResponse, query: mappingContext.query };
111
- }
112
- else {
113
- rData = { results: data, httpResponse: httpResponse, query: mappingContext.query };
114
- }
115
- resolve(rData);
116
- }
117
- catch (e) {
118
- if (e instanceof Error) {
119
- reject(e);
120
- }
121
- else {
122
- handleHttpError(reject, httpResponse);
123
- }
124
- }
125
- };
126
- params.error = function (httpResponse) {
127
- handleHttpError(reject, httpResponse);
128
- };
129
- _this.ajaxImpl.ajax(params);
130
- });
131
- return promise;
132
- };
133
- /** Set up ajax parameters for query GET. This puts the query into the request querystring in either JSON or OData-style syntax, depending upon the UriBuilder. */
134
- AbstractDataServiceAdapter.prototype._makeQueryGetParams = function (mappingContext) {
135
- var url = mappingContext.getUrl();
136
- var params = {
137
- type: "GET",
138
- url: url,
139
- params: mappingContext.query.parameters,
140
- dataType: 'json',
141
- crossDomain: false,
142
- };
143
- if (mappingContext.dataService.useJsonp) {
144
- params.dataType = 'jsonp';
145
- params.crossDomain = true;
146
- }
147
- return params;
148
- };
149
- /** Set up ajax parameters for query POST. This put the query into the request body as JSON. */
150
- AbstractDataServiceAdapter.prototype._makeQueryPostParams = function (mappingContext) {
151
- var entityQuery = mappingContext.query;
152
- var metadataStore = mappingContext.entityManager.metadataStore;
153
- var url = mappingContext.dataService.qualifyUrl(entityQuery.resourceName);
154
- var entityType = entityQuery._getFromEntityType(metadataStore, false);
155
- if (!entityType) {
156
- entityType = new EntityType(metadataStore);
157
- }
158
- var json = entityQuery.toJSONExt({ entityType: entityType, toNameOnServer: true });
159
- json.from = undefined;
160
- json.queryOptions = undefined;
161
- var params = {
162
- type: "POST",
163
- url: url,
164
- params: mappingContext.query.parameters,
165
- dataType: 'json',
166
- processData: false,
167
- contentType: "application/json; charset=UTF-8",
168
- data: JSON.stringify(json),
169
- crossDomain: false,
170
- };
171
- return params;
172
- };
173
- AbstractDataServiceAdapter.prototype.saveChanges = function (saveContext, saveBundle) {
174
- var _this = this;
175
- var adapter = saveContext.adapter = this;
176
- var saveBundleSer = adapter._prepareSaveBundle(saveContext, saveBundle);
177
- var bundle = JSON.stringify(saveBundleSer);
178
- var url = saveContext.dataService.qualifyUrl(saveContext.resourceName);
179
- var promise = new Promise(function (resolve, reject) {
180
- _this.ajaxImpl.ajax({
181
- type: "POST",
182
- url: url,
183
- dataType: 'json',
184
- contentType: "application/json",
185
- data: bundle,
186
- success: function (httpResponse) {
187
- httpResponse.saveContext = saveContext;
188
- var data = httpResponse.data;
189
- if (data.Errors || data.errors) {
190
- handleHttpError(reject, httpResponse);
191
- }
192
- else {
193
- var saveResult = adapter._prepareSaveResult(saveContext, data);
194
- saveResult.httpResponse = httpResponse;
195
- resolve(saveResult);
196
- }
197
- },
198
- error: function (httpResponse) {
199
- httpResponse.saveContext = saveContext;
200
- handleHttpError(reject, httpResponse);
201
- }
202
- });
203
- });
204
- return promise;
205
- };
206
- /** Abstract method that needs to be overwritten in any concrete DataServiceAdapter subclass.
207
- The return value from this method should be a serializable object that will be sent to the server after calling JSON.stringify on it.
208
- */
209
- AbstractDataServiceAdapter.prototype._prepareSaveBundle = function (saveContext, saveBundle) {
210
- // The implementor should call _createChangeRequestInterceptor
211
- throw new Error("Need a concrete implementation of _prepareSaveBundle");
212
- };
213
- /** @hidden @internal */
214
- AbstractDataServiceAdapter.prototype._createChangeRequestInterceptor = function (saveContext, saveBundle) {
215
- var adapter = saveContext.adapter;
216
- var cri = adapter.changeRequestInterceptor;
217
- var isFn = core.isFunction;
218
- if (isFn(cri)) {
219
- var pre = adapter.name + " DataServiceAdapter's ChangeRequestInterceptor";
220
- var post = " is missing or not a function.";
221
- var interceptor = new cri(saveContext, saveBundle);
222
- if (!isFn(interceptor.getRequest)) {
223
- throw new Error(pre + '.getRequest' + post);
224
- }
225
- if (!isFn(interceptor.done)) {
226
- throw new Error(pre + '.done' + post);
227
- }
228
- return interceptor;
229
- }
230
- else {
231
- return new DefaultChangeRequestInterceptor(saveContext, saveBundle);
232
- }
233
- };
234
- /** Abstract method that needs to be overwritten in any concrete DataServiceAdapter sublclass.
235
- This method needs to take the result returned the server and convert it into an ISaveResult.
236
- */
237
- AbstractDataServiceAdapter.prototype._prepareSaveResult = function (saveContext, data) {
238
- throw new Error("Need a concrete implementation of _prepareSaveResult");
239
- };
240
- /** Utility method that may be used in any concrete DataServiceAdapter sublclass to handle any
241
- http connection issues.
242
- */
243
- // Put this at the bottom of your http error analysis
244
- AbstractDataServiceAdapter._catchNoConnectionError = function (err) {
245
- if (err.status === 0 && err.message == null) {
246
- err.message = "HTTP response status 0 and no message. " +
247
- "Likely did not or could not reach server. Is the server running?";
248
- }
249
- };
250
- return AbstractDataServiceAdapter;
251
- }());
252
- export { AbstractDataServiceAdapter };
253
- function handleHttpError(reject, httpResponse, messagePrefix) {
254
- var err = createError(httpResponse);
255
- AbstractDataServiceAdapter._catchNoConnectionError(err);
256
- if (messagePrefix) {
257
- err.message = messagePrefix + "; " + err.message;
258
- }
259
- reject(err);
260
- }
261
- function createError(httpResponse) {
262
- var err = new Error();
263
- err.httpResponse = httpResponse;
264
- err.status = httpResponse.status;
265
- var errObj = httpResponse.data;
266
- if (!errObj) {
267
- err.message = httpResponse.error && httpResponse.error.toString();
268
- return err;
269
- }
270
- // some ajax providers will convert errant result into an object (angularjs), others will not (jQuery)
271
- // if not do it here.
272
- if (typeof errObj === "string") {
273
- try {
274
- errObj = JSON.parse(errObj);
275
- }
276
- catch (e) {
277
- // sometimes httpResponse.data is just the error message itself
278
- err.message = errObj;
279
- return err;
280
- }
281
- }
282
- var saveContext = httpResponse.saveContext;
283
- // if any of the follow properties exist the source is .NET
284
- var tmp = errObj.Message || errObj.ExceptionMessage || errObj.EntityErrors || errObj.Errors;
285
- var isDotNet = !!tmp;
286
- var message, entityErrors;
287
- if (!isDotNet) {
288
- message = errObj.message;
289
- entityErrors = errObj.errors || errObj.entityErrors;
290
- }
291
- else {
292
- var tmp_1 = errObj;
293
- do {
294
- // .NET exceptions can provide both ExceptionMessage and Message but ExceptionMethod if it
295
- // exists has a more detailed message.
296
- message = tmp_1.ExceptionMessage || tmp_1.Message;
297
- tmp_1 = tmp_1.InnerException;
298
- } while (tmp_1);
299
- // .EntityErrors will only occur as a result of an EntityErrorsException being deliberately thrown on the server
300
- entityErrors = errObj.Errors || errObj.EntityErrors;
301
- entityErrors = entityErrors && entityErrors.map(function (e) {
302
- return {
303
- errorName: e.ErrorName,
304
- entityTypeName: MetadataStore.normalizeTypeName(e.EntityTypeName),
305
- keyValues: e.KeyValues,
306
- propertyName: e.PropertyName,
307
- errorMessage: e.ErrorMessage,
308
- custom: e.Custom
309
- };
310
- });
311
- }
312
- if (saveContext && entityErrors) {
313
- var propNameFn_1 = saveContext.entityManager.metadataStore.namingConvention.serverPropertyNameToClient;
314
- entityErrors.forEach(function (e) {
315
- e.propertyName = e.propertyName && propNameFn_1(e.propertyName);
316
- });
317
- err.entityErrors = entityErrors;
318
- }
319
- err.message = message || "Server side errors encountered - see the entityErrors collection on this object for more detail";
320
- return err;
321
- }
322
- /** This is a default, no-op implementation that developers can replace. */
323
- var DefaultChangeRequestInterceptor = /** @class */ (function () {
324
- function DefaultChangeRequestInterceptor(saveContext, saveBundle) {
325
- }
326
- DefaultChangeRequestInterceptor.prototype.getRequest = function (request, entity, index) {
327
- return request;
328
- };
329
- DefaultChangeRequestInterceptor.prototype.done = function (requests) {
330
- };
331
- return DefaultChangeRequestInterceptor;
332
- }());
333
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGF0YS1zZXJ2aWNlLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9icmVlemUtY2xpZW50LyIsInNvdXJjZXMiOlsic3JjL2Fic3RyYWN0LWRhdGEtc2VydmljZS1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUtsQyxPQUFPLEVBQWUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTlEOzs7RUFHRTtBQUNGO0lBQUE7UUE4TEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7V0F5Qkc7UUFDSCw2QkFBd0IsR0FBaUMsK0JBQStCLENBQUM7UUEyQ3pGLHVCQUFrQixHQUFHLElBQUksa0JBQWtCLENBQUM7WUFDMUMsSUFBSSxFQUFFLE1BQU07WUFFWixTQUFTLEVBQUUsV0FBVSx1Q0FBdUM7Z0JBQzFELE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFsUUMscUJBQXFCO0lBQ3JCLDBEQUFxQixHQUFyQixVQUFzQix3QkFBNkI7UUFDakQsSUFBSSx3QkFBd0IsQ0FBQyxhQUFhLEtBQUssTUFBTSxJQUFJLHdCQUF3QixDQUFDLFNBQVMsRUFBRTtZQUMzRixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRUQsK0NBQVUsR0FBVjtRQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFjLE1BQU0sQ0FBRyxDQUFDO1FBRWpFLG1IQUFtSDtRQUNuSCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDdkMsT0FBTztTQUNSO1FB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TyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELDhDQUFJLEdBQUosVUFBSyxRQUFrQjtJQUN2QixDQUFDO0lBQ0gsc0NBQUM7QUFBRCxDQUFDLEFBWEQsSUFXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvcmUgfSBmcm9tICcuL2NvcmUnO1xyXG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XHJcbmltcG9ydCB7IEVudGl0eVF1ZXJ5IH0gZnJvbSAnLi9lbnRpdHktcXVlcnknO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUFkYXB0ZXIsIEFqYXhBZGFwdGVyLCBDaGFuZ2VSZXF1ZXN0SW50ZXJjZXB0b3JDdG9yLCBDaGFuZ2VSZXF1ZXN0SW50ZXJjZXB0b3IgfSBmcm9tICcuL2ludGVyZmFjZS1yZWdpc3RyeSc7XHJcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4vZW50aXR5LWFzcGVjdCc7XHJcbmltcG9ydCB7IE1hcHBpbmdDb250ZXh0IH0gZnJvbSAnLi9tYXBwaW5nLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSwgSnNvblJlc3VsdHNBZGFwdGVyIH0gZnJvbSAnLi9kYXRhLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdHRwUmVzcG9uc2UsIFNhdmVDb250ZXh0LCBTYXZlQnVuZGxlLCBTZXJ2ZXJFcnJvciwgU2F2ZVJlc3VsdCwgU2F2ZUVycm9yRnJvbVNlcnZlciwgUXVlcnlSZXN1bHQgfSBmcm9tICcuL2VudGl0eS1tYW5hZ2VyJztcclxuaW1wb3J0IHsgRW50aXR5VHlwZSwgTWV0YWRhdGFTdG9yZSB9IGZyb20gJy4vZW50aXR5LW1ldGFkYXRhJztcclxuXHJcbi8qKiBGb3IgdXNlIGJ5IGJyZWV6ZSBwbHVnaW4gYXV0aG9ycyBvbmx5LiAgVGhlIGNsYXNzIGlzIHVzZWQgYXMgdGhlIGJhc2UgY2xhc3MgZm9yIG1vc3QgW1tJRGF0YVNlcnZpY2VBZGFwdGVyXV0gaW1wbGVtZW50YXRpb25zXHJcbkBhZGFwdGVyIChzZWUgW1tJRGF0YVNlcnZpY2VBZGFwdGVyXV0pICAgIFxyXG5AaGlkZGVuXHJcbiovXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdERhdGFTZXJ2aWNlQWRhcHRlciBpbXBsZW1lbnRzIERhdGFTZXJ2aWNlQWRhcHRlciB7XHJcbiAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbiAgZGVjbGFyZSBfJGltcGw/OiBhbnk7XHJcbiAgLyoqIFRoZSBuYW1lIG9mIHRoaXMgYWRhcHRlci4gKi9cclxuICBkZWNsYXJlIG5hbWU6IHN0cmluZztcclxuICAvKiogVGhlIFtbSUFqYXhBZGFwdGVyXV0gdXNlZCBieSB0aGlzIFtbSURhdGFTZXJ2aWNlQWRhcHRlcl1dLiAqL1xyXG4gIGRlY2xhcmUgYWpheEltcGw6IEFqYXhBZGFwdGVyO1xyXG5cclxuICAvLyBUT0RPIHVzZSBpbnRlcmZhY2VcclxuICBjaGVja0ZvclJlY29tcG9zaXRpb24oaW50ZXJmYWNlSW5pdGlhbGl6ZWRBcmdzOiBhbnkpIHtcclxuICAgIGlmIChpbnRlcmZhY2VJbml0aWFsaXplZEFyZ3MuaW50ZXJmYWNlTmFtZSA9PT0gXCJhamF4XCIgJiYgaW50ZXJmYWNlSW5pdGlhbGl6ZWRBcmdzLmlzRGVmYXVsdCkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXRpYWxpemUoKSB7XHJcbiAgICB0aGlzLmFqYXhJbXBsID0gY29uZmlnLmdldEFkYXB0ZXJJbnN0YW5jZTxBamF4QWRhcHRlcj4oXCJhamF4XCIpICE7XHJcblxyXG4gICAgLy8gZG9uJ3QgY2FjaGUgJ2FqYXgnIGJlY2F1c2UgdGhlbiB3ZSB3b3VsZCBuZWVkIHRvIFwiLmJpbmRcIiBpdCwgYW5kIGRvbid0IHdhbnQgdG8gYmVjYXVzZSBvZiBicm93ZXIgc3VwcG9ydCBpc3N1ZXMuXHJcbiAgICBpZiAodGhpcy5hamF4SW1wbCAmJiB0aGlzLmFqYXhJbXBsLmFqYXgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIGZpbmQgYWpheCBhZGFwdGVyIGZvciBkYXRhc2VydmljZSBhZGFwdGVyICdcIiArICh0aGlzLm5hbWUgfHwgJycpICsgXCInLlwiKTtcclxuICB9XHJcblxyXG4gIGZldGNoTWV0YWRhdGEobWV0YWRhdGFTdG9yZTogTWV0YWRhdGFTdG9yZSwgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlKSB7XHJcbiAgICBsZXQgc2VydmljZU5hbWUgPSBkYXRhU2VydmljZS5zZXJ2aWNlTmFtZTtcclxuICAgIGxldCB1cmwgPSBkYXRhU2VydmljZS5xdWFsaWZ5VXJsKFwiTWV0YWRhdGFcIik7XHJcblxyXG4gICAgbGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblxyXG4gICAgICB0aGlzLmFqYXhJbXBsLmFqYXgoe1xyXG4gICAgICAgIHR5cGU6IFwiR0VUXCIsXHJcbiAgICAgICAgdXJsOiB1cmwsXHJcbiAgICAgICAgZGF0YVR5cGU6ICdqc29uJyxcclxuICAgICAgICBzdWNjZXNzOiAoaHR0cFJlc3BvbnNlOiBIdHRwUmVzcG9uc2UpID0+IHtcclxuXHJcbiAgICAgICAgICAvLyBtaWdodCBoYXZlIGJlZW4gZmV0Y2hlZCBieSBhbm90aGVyIHF1ZXJ5XHJcbiAgICAgICAgICBpZiAobWV0YWRhdGFTdG9yZS5oYXNNZXRhZGF0YUZvcihzZXJ2aWNlTmFtZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoXCJhbHJlYWR5IGZldGNoZWRcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBsZXQgZGF0YSA9IGh0dHBSZXNwb25zZS5kYXRhO1xyXG4gICAgICAgICAgbGV0IG1ldGFkYXRhOiBhbnk7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBtZXRhZGF0YSA9IHR5cGVvZiAoZGF0YSkgPT09IFwic3RyaW5nXCIgPyBKU09OLnBhcnNlKGRhdGEpIDogZGF0YTtcclxuICAgICAgICAgICAgbWV0YWRhdGFTdG9yZS5pbXBvcnRNZXRhZGF0YShtZXRhZGF0YSk7XHJcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIGxldCBlcnJNc2cgPSBcIlVuYWJsZSB0byBlaXRoZXIgcGFyc2Ugb3IgaW1wb3J0IG1ldGFkYXRhOiBcIiArIGUubWVzc2FnZTtcclxuICAgICAgICAgICAgaGFuZGxlSHR0cEVycm9yKHJlamVjdCwgaHR0cFJlc3BvbnNlLCBcIk1ldGFkYXRhIHF1ZXJ5IGZhaWxlZCBmb3I6IFwiICsgdXJsICsgXCIuIFwiICsgZXJyTXNnKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAvLyBpbXBvcnQgbWF5IGhhdmUgYnJvdWdodCBpbiB0aGUgc2VydmljZS5cclxuICAgICAgICAgIGlmICghbWV0YWRhdGFTdG9yZS5oYXNNZXRhZGF0YUZvcihzZXJ2aWNlTmFtZSkpIHtcclxuICAgICAgICAgICAgbWV0YWRhdGFTdG9yZS5hZGREYXRhU2VydmljZShkYXRhU2VydmljZSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcmVzb2x2ZShtZXRhZGF0YSk7XHJcblxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChodHRwUmVzcG9uc2U6IEh0dHBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaGFuZGxlSHR0cEVycm9yKHJlamVjdCwgaHR0cFJlc3BvbnNlLCBcIk1ldGFkYXRhIHF1ZXJ5IGZhaWxlZCBmb3I6IFwiICsgdXJsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcHJvbWlzZTtcclxuICB9XHJcblxyXG4gIC8qKiBFeGVjdXRlIHRoZSBxdWVyeSBpbiB0aGUgbWFwcGluZ0NvbnRleHQgdXNpbmcgdGhlIGFqYXhJbXBsLiAqL1xyXG4gIGV4ZWN1dGVRdWVyeShtYXBwaW5nQ29udGV4dDogTWFwcGluZ0NvbnRleHQpIHtcclxuICAgIG1hcHBpbmdDb250ZXh0LmFkYXB0ZXIgPSB0aGlzO1xyXG5cclxuICAgIGNvbnN0IHVzZVBvc3QgPSAobWFwcGluZ0NvbnRleHQucXVlcnkgYXMgRW50aXR5UXVlcnkpLnVzZVBvc3RFbmFibGVkO1xyXG4gICAgY29uc3QgcGFyYW1zID0gdXNlUG9zdCA/IHRoaXMuX21ha2VRdWVyeVBvc3RQYXJhbXMobWFwcGluZ0NvbnRleHQpIDogdGhpcy5fbWFrZVF1ZXJ5R2V0UGFyYW1zKG1hcHBpbmdDb250ZXh0KSBhcyBhbnk7XHJcblxyXG4gICAgbGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZTxRdWVyeVJlc3VsdD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBwYXJhbXMuc3VjY2VzcyA9IGZ1bmN0aW9uIChodHRwUmVzcG9uc2U6IEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgIGxldCBkYXRhID0gaHR0cFJlc3BvbnNlLmRhdGE7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGxldCByRGF0YTogUXVlcnlSZXN1bHQ7XHJcbiAgICAgICAgICBsZXQgcmVzdWx0cyA9IGRhdGEgJiYgKGRhdGEucmVzdWx0cyB8fCBkYXRhLlJlc3VsdHMpO1xyXG4gICAgICAgICAgaWYgKHJlc3VsdHMpIHtcclxuICAgICAgICAgICAgckRhdGEgPSB7IHJlc3VsdHM6IHJlc3VsdHMsIGlubGluZUNvdW50OiBkYXRhLmlubGluZUNvdW50IHx8IGRhdGEuSW5saW5lQ291bnQsIFxyXG4gICAgICAgICAgICAgIGh0dHBSZXNwb25zZTogaHR0cFJlc3BvbnNlLCBxdWVyeTogbWFwcGluZ0NvbnRleHQucXVlcnkgfTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJEYXRhID0geyByZXN1bHRzOiBkYXRhLCBodHRwUmVzcG9uc2U6IGh0dHBSZXNwb25zZSwgcXVlcnk6IG1hcHBpbmdDb250ZXh0LnF1ZXJ5IH07XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcmVzb2x2ZShyRGF0YSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xyXG4gICAgICAgICAgICByZWplY3QoZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBoYW5kbGVIdHRwRXJyb3IocmVqZWN0LCBodHRwUmVzcG9uc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgcGFyYW1zLmVycm9yID0gZnVuY3Rpb24gKGh0dHBSZXNwb25zZTogSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgaGFuZGxlSHR0cEVycm9yKHJlamVjdCwgaHR0cFJlc3BvbnNlKTtcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5hamF4SW1wbC5hamF4KHBhcmFtcyk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBwcm9taXNlO1xyXG4gIH1cclxuXHJcbiAgLyoqIFNldCB1cCBhamF4IHBhcmFtZXRlcnMgZm9yIHF1ZXJ5IEdFVC4gIFRoaXMgcHV0cyB0aGUgcXVlcnkgaW50byB0aGUgcmVxdWVzdCBxdWVyeXN0cmluZyBpbiBlaXRoZXIgSlNPTiBvciBPRGF0YS1zdHlsZSBzeW50YXgsIGRlcGVuZGluZyB1cG9uIHRoZSBVcmlCdWlsZGVyLiAqL1xyXG4gIF9tYWtlUXVlcnlHZXRQYXJhbXMobWFwcGluZ0NvbnRleHQ6IE1hcHBpbmdDb250ZXh0KSB7XHJcbiAgICBjb25zdCB1cmwgPSBtYXBwaW5nQ29udGV4dC5nZXRVcmwoKTtcclxuXHJcbiAgICBjb25zdCBwYXJhbXMgPSB7XHJcbiAgICAgIHR5cGU6IFwiR0VUXCIsXHJcbiAgICAgIHVybDogdXJsLFxyXG4gICAgICBwYXJhbXM6IChtYXBwaW5nQ29udGV4dC5xdWVyeSBhcyBFbnRpdHlRdWVyeSkucGFyYW1ldGVycyxcclxuICAgICAgZGF0YVR5cGU6ICdqc29uJyxcclxuICAgICAgY3Jvc3NEb21haW46IGZhbHNlLFxyXG4gICAgfTtcclxuICAgIGlmIChtYXBwaW5nQ29udGV4dC5kYXRhU2VydmljZS51c2VKc29ucCkge1xyXG4gICAgICBwYXJhbXMuZGF0YVR5cGUgPSAnanNvbnAnO1xyXG4gICAgICBwYXJhbXMuY3Jvc3NEb21haW4gPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhcmFtcztcclxuICB9XHJcblxyXG4gIC8qKiBTZXQgdXAgYWpheCBwYXJhbWV0ZXJzIGZvciBxdWVyeSBQT1NULiAgVGhpcyBwdXQgdGhlIHF1ZXJ5IGludG8gdGhlIHJlcXVlc3QgYm9keSBhcyBKU09OLiAqL1xyXG4gIF9tYWtlUXVlcnlQb3N0UGFyYW1zKG1hcHBpbmdDb250ZXh0OiBNYXBwaW5nQ29udGV4dCkge1xyXG4gICAgY29uc3QgZW50aXR5UXVlcnkgPSBtYXBwaW5nQ29udGV4dC5xdWVyeSBhcyBFbnRpdHlRdWVyeTtcclxuICAgIGNvbnN0IG1ldGFkYXRhU3RvcmUgPSBtYXBwaW5nQ29udGV4dC5lbnRpdHlNYW5hZ2VyLm1ldGFkYXRhU3RvcmU7XHJcbiAgICBjb25zdCB1cmwgPSBtYXBwaW5nQ29udGV4dC5kYXRhU2VydmljZS5xdWFsaWZ5VXJsKGVudGl0eVF1ZXJ5LnJlc291cmNlTmFtZSk7XHJcblxyXG4gICAgbGV0IGVudGl0eVR5cGUgPSBlbnRpdHlRdWVyeS5fZ2V0RnJvbUVudGl0eVR5cGUobWV0YWRhdGFTdG9yZSwgZmFsc2UpO1xyXG4gICAgaWYgKCFlbnRpdHlUeXBlKSB7IGVudGl0eVR5cGUgPSBuZXcgRW50aXR5VHlwZShtZXRhZGF0YVN0b3JlKTsgfVxyXG4gICAgY29uc3QganNvbiA9IGVudGl0eVF1ZXJ5LnRvSlNPTkV4dCh7IGVudGl0eVR5cGU6IGVudGl0eVR5cGUsIHRvTmFtZU9uU2VydmVyOiB0cnVlfSkgYXMgYW55O1xyXG4gICAganNvbi5mcm9tID0gdW5kZWZpbmVkO1xyXG4gICAganNvbi5xdWVyeU9wdGlvbnMgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgY29uc3QgcGFyYW1zID0ge1xyXG4gICAgICB0eXBlOiBcIlBPU1RcIixcclxuICAgICAgdXJsOiB1cmwsXHJcbiAgICAgIHBhcmFtczogKG1hcHBpbmdDb250ZXh0LnF1ZXJ5IGFzIEVudGl0eVF1ZXJ5KS5wYXJhbWV0ZXJzLFxyXG4gICAgICBkYXRhVHlwZTogJ2pzb24nLFxyXG4gICAgICBwcm9jZXNzRGF0YTogZmFsc2UsIC8vIGRvbid0IGxldCBKUXVlcnkgZm9ybS1lbmNvZGUgaXRcclxuICAgICAgY29udGVudFR5cGU6IFwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOFwiLFxyXG4gICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShqc29uKSxcclxuICAgICAgY3Jvc3NEb21haW46IGZhbHNlLFxyXG4gICAgfTtcclxuICAgIHJldHVybiBwYXJhbXM7XHJcbiAgfVxyXG5cclxuICBzYXZlQ2hhbmdlcyhzYXZlQ29udGV4dDogU2F2ZUNvbnRleHQsIHNhdmVCdW5kbGU6IFNhdmVCdW5kbGUpIHtcclxuICAgIGxldCBhZGFwdGVyID0gc2F2ZUNvbnRleHQuYWRhcHRlciA9IHRoaXM7XHJcblxyXG4gICAgbGV0IHNhdmVCdW5kbGVTZXIgPSBhZGFwdGVyLl9wcmVwYXJlU2F2ZUJ1bmRsZShzYXZlQ29udGV4dCwgc2F2ZUJ1bmRsZSk7XHJcbiAgICBsZXQgYnVuZGxlID0gSlNPTi5zdHJpbmdpZnkoc2F2ZUJ1bmRsZVNlcik7XHJcblxyXG4gICAgbGV0IHVybCA9IHNhdmVDb250ZXh0LmRhdGFTZXJ2aWNlLnF1YWxpZnlVcmwoc2F2ZUNvbnRleHQucmVzb3VyY2VOYW1lKTtcclxuICAgIGxldCBwcm9taXNlID0gbmV3IFByb21pc2U8U2F2ZVJlc3VsdD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLmFqYXhJbXBsLmFqYXgoe1xyXG4gICAgICAgIHR5cGU6IFwiUE9TVFwiLFxyXG4gICAgICAgIHVybDogdXJsLFxyXG4gICAgICAgIGRhdGFUeXBlOiAnanNvbicsXHJcbiAgICAgICAgY29udGVudFR5cGU6IFwiYXBwbGljYXRpb24vanNvblwiLFxyXG4gICAgICAgIGRhdGE6IGJ1bmRsZSxcclxuICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoaHR0cFJlc3BvbnNlOiBIdHRwUmVzcG9uc2UpIHtcclxuICAgICAgICAgIGh0dHBSZXNwb25zZS5zYXZlQ29udGV4dCA9IHNhdmVDb250ZXh0O1xyXG4gICAgICAgICAgbGV0IGRhdGEgPSBodHRwUmVzcG9uc2UuZGF0YTtcclxuICAgICAgICAgIGlmIChkYXRhLkVycm9ycyB8fCBkYXRhLmVycm9ycykge1xyXG4gICAgICAgICAgICBoYW5kbGVIdHRwRXJyb3IocmVqZWN0LCBodHRwUmVzcG9uc2UpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHNhdmVSZXN1bHQgPSBhZGFwdGVyLl9wcmVwYXJlU2F2ZVJlc3VsdChzYXZlQ29udGV4dCwgZGF0YSk7XHJcbiAgICAgICAgICAgIHNhdmVSZXN1bHQuaHR0cFJlc3BvbnNlID0gaHR0cFJlc3BvbnNlO1xyXG4gICAgICAgICAgICByZXNvbHZlKHNhdmVSZXN1bHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IGZ1bmN0aW9uIChodHRwUmVzcG9uc2U6IEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgaHR0cFJlc3BvbnNlLnNhdmVDb250ZXh0ID0gc2F2ZUNvbnRleHQ7XHJcbiAgICAgICAgICBoYW5kbGVIdHRwRXJyb3IocmVqZWN0LCBodHRwUmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcHJvbWlzZTtcclxuICB9XHJcblxyXG4gIC8qKiBBYnN0cmFjdCBtZXRob2QgdGhhdCBuZWVkcyB0byBiZSBvdmVyd3JpdHRlbiBpbiBhbnkgY29uY3JldGUgRGF0YVNlcnZpY2VBZGFwdGVyIHN1YmNsYXNzLiBcclxuICBUaGUgcmV0dXJuIHZhbHVlIGZyb20gdGhpcyBtZXRob2Qgc2hvdWxkIGJlIGEgc2VyaWFsaXphYmxlIG9iamVjdCB0aGF0IHdpbGwgYmUgc2VudCB0byB0aGUgc2VydmVyIGFmdGVyIGNhbGxpbmcgSlNPTi5zdHJpbmdpZnkgb24gaXQuXHJcbiAgKi9cclxuICBfcHJlcGFyZVNhdmVCdW5kbGUoc2F2ZUNvbnRleHQ6IFNhdmVDb250ZXh0LCBzYXZlQnVuZGxlOiBTYXZlQnVuZGxlKTogYW55IHtcclxuICAgIC8vIFRoZSBpbXBsZW1lbnRvciBzaG91bGQgY2FsbCBfY3JlYXRlQ2hhbmdlUmVxdWVzdEludGVyY2VwdG9yXHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJOZWVkIGEgY29uY3JldGUgaW1wbGVtZW50YXRpb24gb2YgX3ByZXBhcmVTYXZlQnVuZGxlXCIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgUmV0dXJucyBhIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIGZvciBhIFwiQ2hhbmdlUmVxdWVzdEludGVyY2VwdG9yXCJcclxuICB0aGF0IGNhbiB0d2VhayB0aGUgc2F2ZUJ1bmRsZSBib3RoIGFzIGl0IGlzIGJ1aWx0IGFuZCB3aGVuIGl0IGlzIGNvbXBsZXRlZFxyXG4gIGJ5IGEgY29uY3JldGUgRGF0YVNlcnZpY2VBZGFwYXRlci5cclxuXHJcbiAgSW5pdGlhbGl6ZWQgd2l0aCBhIGRlZmF1bHQsIG5vLW9wIGltcGxlbWVudGF0aW9uIHRoYXQgZGV2ZWxvcGVycyBjYW4gcmVwbGFjZSB3aXRoIGFcclxuICBzdWJzdGFudGl2ZSBpbXBsZW1lbnRhdGlvbiB0aGF0IGNoYW5nZXMgdGhlIGluZGl2aWR1YWwgZW50aXR5IGNoYW5nZSByZXF1ZXN0c1xyXG4gIG9yIGFzcGVjdHMgb2YgdGhlIGVudGlyZSAnc2F2ZUJ1bmRsZScgd2l0aG91dCBoYXZpbmcgdG8gd3JpdGUgdGhlaXIgb3duIERhdGFTZXJ2aWNlIGFkYXB0ZXJzLlxyXG4gID4gICAgIGxldCBhZGFwdGVyID0gYnJlZXplLmNvbmZpZy5nZXRBZGFwdGVySW5zdGFuY2UoJ2RhdGFTZXJ2aWNlJyk7XHJcbiAgPiAgICAgYWRhcHRlci5jaGFuZ2VSZXF1ZXN0SW50ZXJjZXB0b3IgPSBmdW5jdGlvbiAoc2F2ZUNvbnRleHQsIHNhdmVCdW5kbGUpIHtcclxuICA+ICAgICAgICAgdGhpcy5nZXRSZXF1ZXN0ID0gZnVuY3Rpb24gKHJlcXVlc3QsIGVudGl0eSwgaW5kZXgpIHtcclxuICA+ICAgICAgICAgICAgLy8gYWx0ZXIgdGhlIHJlcXVlc3QgdGhhdCB0aGUgYWRhcHRlciBwcmVwYXJlZCBmb3IgdGhpcyBlbnRpdHlcclxuICA+ICAgICAgICAgICAgLy8gYmFzZWQgb24gdGhlIGVudGl0eSwgc2F2ZUNvbnRleHQsIGFuZCBzYXZlQnVuZGxlXHJcbiAgPiAgICAgICAgICAgIC8vIGUuZy4sIGFkZCBhIGN1c3RvbSBoZWFkZXIgb3IgcHJ1bmUgdGhlIG9yaWdpbmFsVmFsdWVzTWFwXHJcbiAgPiAgICAgICAgICAgIHJldHVybiByZXF1ZXN0O1xyXG4gID4gICAgICAgIH07XHJcbiAgPiAgICAgICAgdGhpcy5kb25lID0gZnVuY3Rpb24gKHJlcXVlc3RzKSB7XHJcbiAgPiAgICAgICAgICAgIC8vIGFsdGVyIHRoZSBhcnJheSBvZiByZXF1ZXN0cyByZXByZXNlbnRpbmcgdGhlIGVudGlyZSBjaGFuZ2Utc2V0XHJcbiAgPiAgICAgICAgICAgIC8vIGJhc2VkIG9uIHRoZSBzYXZlQ29udGV4dCBhbmQgc2F2ZUJ1bmRsZVxyXG4gID4gICAgICAgIH07XHJcbiAgPiAgICAgfVxyXG5cclxuICBAcGFyYW0gc2F2ZUNvbnRleHQgLSBUaGUgQnJlZXplSlMgXCJjb250ZXh0XCIgZm9yIHRoZSBzYXZlIG9wZXJhdGlvbi5cclxuICBAcGFyYW0gc2F2ZUJ1bmRsZSAtIENvbnRhaW5zIHRoZSBhcnJheSBvZiBlbnRpdGllcy10by1iZS1zYXZlZCAoQUtBLCB0aGUgZW50aXR5IGNoYW5nZS1zZXQpLlxyXG4gIEByZXR1cm4gQ29uc3RydWN0b3IgZm9yIGEgXCJDaGFuZ2VSZXF1ZXN0SW50ZXJjZXB0b3JcIi5cclxuICAqKi9cclxuICBjaGFuZ2VSZXF1ZXN0SW50ZXJjZXB0b3I6IENoYW5nZVJlcXVlc3RJbnRlcmNlcHRvckN0b3IgPSBEZWZhdWx0Q2hhbmdlUmVxdWVzdEludGVyY2VwdG9yO1xyXG5cclxuICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxuICBfY3JlYXRlQ2hhbmdlUmVxdWVzdEludGVyY2VwdG9yKHNhdmVDb250ZXh0OiBTYXZlQ29udGV4dCwgc2F2ZUJ1bmRsZTogU2F2ZUJ1bmRsZSkge1xyXG4gICAgbGV0IGFkYXB0ZXIgPSBzYXZlQ29udGV4dC5hZGFwdGVyITtcclxuICAgIGxldCBjcmkgPSBhZGFwdGVyLmNoYW5nZVJlcXVlc3RJbnRlcmNlcHRvcjtcclxuICAgIGxldCBpc0ZuID0gY29yZS5pc0Z1bmN0aW9uO1xyXG5cclxuICAgIGlmIChpc0ZuKGNyaSkpIHtcclxuICAgICAgbGV0IHByZSA9IGFkYXB0ZXIubmFtZSArIFwiIERhdGFTZXJ2aWNlQWRhcHRlcidzIENoYW5nZVJlcXVlc3RJbnRlcmNlcHRvclwiO1xyXG4gICAgICBsZXQgcG9zdCA9IFwiIGlzIG1pc3Npbmcgb3Igbm90IGEgZnVuY3Rpb24uXCI7XHJcbiAgICAgIGxldCBpbnRlcmNlcHRvciA9IG5ldyBjcmkoc2F2ZUNvbnRleHQsIHNhdmVCdW5kbGUpO1xyXG4gICAgICBpZiAoIWlzRm4oaW50ZXJjZXB0b3IuZ2V0UmVxdWVzdCkpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IocHJlICsgJy5nZXRSZXF1ZXN0JyArIHBvc3QpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghaXNGbihpbnRlcmNlcHRvci5kb25lKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihwcmUgKyAnLmRvbmUnICsgcG9zdCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGludGVyY2VwdG9yO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG5ldyBEZWZhdWx0Q2hhbmdlUmVxdWVzdEludGVyY2VwdG9yKHNhdmVDb250ZXh0LCBzYXZlQnVuZGxlKSBhcyBDaGFuZ2VSZXF1ZXN0SW50ZXJjZXB0b3I7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogQWJzdHJhY3QgbWV0aG9kIHRoYXQgbmVlZHMgdG8gYmUgb3ZlcndyaXR0ZW4gaW4gYW55IGNvbmNyZXRlIERhdGFTZXJ2aWNlQWRhcHRlciBzdWJsY2xhc3MuIFxyXG4gIFRoaXMgbWV0aG9kIG5lZWRzIHRvIHRha2UgdGhlIHJlc3VsdCByZXR1cm5lZCB0aGUgc2VydmVyIGFuZCBjb252ZXJ0IGl0IGludG8gYW4gSVNhdmVSZXN1bHQuIFxyXG4gICovXHJcbiAgX3ByZXBhcmVTYXZlUmVzdWx0KHNhdmVDb250ZXh0OiBTYXZlQ29udGV4dCwgZGF0YTogYW55KTogU2F2ZVJlc3VsdCB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJOZWVkIGEgY29uY3JldGUgaW1wbGVtZW50YXRpb24gb2YgX3ByZXBhcmVTYXZlUmVzdWx0XCIpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKiBVdGlsaXR5IG1ldGhvZCB0aGF0IG1heSBiZSB1c2VkIGluIGFueSBjb25jcmV0ZSBEYXRhU2VydmljZUFkYXB0ZXIgc3VibGNsYXNzIHRvIGhhbmRsZSBhbnkgXHJcbiAgaHR0cCBjb25uZWN0aW9uIGlzc3Vlcy4gXHJcbiAgKi9cclxuICAvLyBQdXQgdGhpcyBhdCB0aGUgYm90dG9tIG9mIHlvdXIgaHR0cCBlcnJvciBhbmFseXNpc1xyXG4gIHN0YXRpYyBfY2F0Y2hOb0Nvbm5lY3Rpb25FcnJvcihlcnI6IFNlcnZlckVycm9yKSB7XHJcbiAgICBpZiAoZXJyLnN0YXR1cyA9PT0gMCAmJiBlcnIubWVzc2FnZSA9PSBudWxsKSB7XHJcbiAgICAgIGVyci5tZXNzYWdlID0gXCJIVFRQIHJlc3BvbnNlIHN0YXR1cyAwIGFuZCBubyBtZXNzYWdlLiAgXCIgK1xyXG4gICAgICAgIFwiTGlrZWx5IGRpZCBub3Qgb3IgY291bGQgbm90IHJlYWNoIHNlcnZlci4gSXMgdGhlIHNlcnZlciBydW5uaW5nP1wiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAganNvblJlc3VsdHNBZGFwdGVyID0gbmV3IEpzb25SZXN1bHRzQWRhcHRlcih7XHJcbiAgICBuYW1lOiBcIm5vb3BcIixcclxuXHJcbiAgICB2aXNpdE5vZGU6IGZ1bmN0aW9uICgvKiBub2RlLCBtYXBwaW5nQ29udGV4dCwgbm9kZUNvbnRleHQgKi8pIHtcclxuICAgICAgcmV0dXJuIHt9O1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBoYW5kbGVIdHRwRXJyb3IocmVqZWN0OiAocmVhc29uPzogYW55KSA9PiB2b2lkLCBodHRwUmVzcG9uc2U6IEh0dHBSZXNwb25zZSwgbWVzc2FnZVByZWZpeD86IHN0cmluZykge1xyXG4gIGxldCBlcnIgPSBjcmVhdGVFcnJvcihodHRwUmVzcG9uc2UpO1xyXG4gIEFic3RyYWN0RGF0YVNlcnZpY2VBZGFwdGVyLl9jYXRjaE5vQ29ubmVjdGlvbkVycm9yKGVycik7XHJcbiAgaWYgKG1lc3NhZ2VQcmVmaXgpIHtcclxuICAgIGVyci5tZXNzYWdlID0gbWVzc2FnZVByZWZpeCArIFwiOyBcIiArIGVyci5tZXNzYWdlO1xyXG4gIH1cclxuICByZWplY3QoZXJyKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlRXJyb3IoaHR0cFJlc3BvbnNlOiBIdHRwUmVzcG9uc2UpIHtcclxuICBsZXQgZXJyID0gbmV3IEVycm9yKCkgYXMgU2VydmVyRXJyb3I7XHJcbiAgZXJyLmh0dHBSZXNwb25zZSA9IGh0dHBSZXNwb25zZTtcclxuICBlcnIuc3RhdHVzID0gaHR0cFJlc3BvbnNlLnN0YXR1cztcclxuXHJcbiAgbGV0IGVyck9iaiA9IGh0dHBSZXNwb25zZS5kYXRhO1xyXG5cclxuICBpZiAoIWVyck9iaikge1xyXG4gICAgZXJyLm1lc3NhZ2UgPSBodHRwUmVzcG9uc2UuZXJyb3IgJiYgaHR0cFJlc3BvbnNlLmVycm9yLnRvU3RyaW5nKCk7XHJcbiAgICByZXR1cm4gZXJyO1xyXG4gIH1cclxuXHJcbiAgLy8gc29tZSBhamF4IHByb3ZpZGVycyB3aWxsIGNvbnZlcnQgZXJyYW50IHJlc3VsdCBpbnRvIGFuIG9iamVjdCAoYW5ndWxhcmpzKSwgb3RoZXJzIHdpbGwgbm90IChqUXVlcnkpXHJcbiAgLy8gaWYgbm90IGRvIGl0IGhlcmUuXHJcbiAgaWYgKHR5cGVvZiBlcnJPYmogPT09IFwic3RyaW5nXCIpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGVyck9iaiA9IEpTT04ucGFyc2UoZXJyT2JqKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgLy8gc29tZXRpbWVzIGh0dHBSZXNwb25zZS5kYXRhIGlzIGp1c3QgdGhlIGVycm9yIG1lc3NhZ2UgaXRzZWxmXHJcbiAgICAgIGVyci5tZXNzYWdlID0gZXJyT2JqO1xyXG4gICAgICByZXR1cm4gZXJyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGV0IHNhdmVDb250ZXh0ID0gaHR0cFJlc3BvbnNlLnNhdmVDb250ZXh0O1xyXG5cclxuICAvLyBpZiBhbnkgb2YgdGhlIGZvbGxvdyBwcm9wZXJ0aWVzIGV4aXN0IHRoZSBzb3VyY2UgaXMgLk5FVFxyXG4gIGxldCB0bXAgPSBlcnJPYmouTWVzc2FnZSB8fCBlcnJPYmouRXhjZXB0aW9uTWVzc2FnZSB8fCBlcnJPYmouRW50aXR5RXJyb3JzIHx8IGVyck9iai5FcnJvcnM7XHJcbiAgbGV0IGlzRG90TmV0ID0gISF0bXA7XHJcbiAgbGV0IG1lc3NhZ2U6IHN0cmluZywgZW50aXR5RXJyb3JzOiBhbnlbXTtcclxuICBpZiAoIWlzRG90TmV0KSB7XHJcbiAgICBtZXNzYWdlID0gZXJyT2JqLm1lc3NhZ2U7XHJcbiAgICBlbnRpdHlFcnJvcnMgPSBlcnJPYmouZXJyb3JzIHx8IGVyck9iai5lbnRpdHlFcnJvcnM7XHJcbiAgfSBlbHNlIHtcclxuICAgIGxldCB0bXAgPSBlcnJPYmo7XHJcbiAgICBkbyB7XHJcbiAgICAgIC8vIC5ORVQgZXhjZXB0aW9ucyBjYW4gcHJvdmlkZSBib3RoIEV4Y2VwdGlvbk1lc3NhZ2UgYW5kIE1lc3NhZ2UgYnV0IEV4Y2VwdGlvbk1ldGhvZCBpZiBpdFxyXG4gICAgICAvLyBleGlzdHMgaGFzIGEgbW9yZSBkZXRhaWxlZCBtZXNzYWdlLlxyXG4gICAgICBtZXNzYWdlID0gdG1wLkV4Y2VwdGlvbk1lc3NhZ2UgfHwgdG1wLk1lc3NhZ2U7XHJcbiAgICAgIHRtcCA9IHRtcC5Jbm5lckV4Y2VwdGlvbjtcclxuICAgIH0gd2hpbGUgKHRtcCk7XHJcbiAgICAvLyAuRW50aXR5RXJyb3JzIHdpbGwgb25seSBvY2N1ciBhcyBhIHJlc3VsdCBvZiBhbiBFbnRpdHlFcnJvcnNFeGNlcHRpb24gYmVpbmcgZGVsaWJlcmF0ZWx5IHRocm93biBvbiB0aGUgc2VydmVyXHJcbiAgICBlbnRpdHlFcnJvcnMgPSBlcnJPYmouRXJyb3JzIHx8IGVyck9iai5FbnRpdHlFcnJvcnM7XHJcbiAgICBlbnRpdHlFcnJvcnMgPSBlbnRpdHlFcnJvcnMgJiYgZW50aXR5RXJyb3JzLm1hcChmdW5jdGlvbiAoZSkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGVycm9yTmFtZTogZS5FcnJvck5hbWUsXHJcbiAgICAgICAgZW50aXR5VHlwZU5hbWU6IE1ldGFkYXRhU3RvcmUubm9ybWFsaXplVHlwZU5hbWUoZS5FbnRpdHlUeXBlTmFtZSksXHJcbiAgICAgICAga2V5VmFsdWVzOiBlLktleVZhbHVlcyxcclxuICAgICAgICBwcm9wZXJ0eU5hbWU6IGUuUHJvcGVydHlOYW1lLFxyXG4gICAgICAgIGVycm9yTWVzc2FnZTogZS5FcnJvck1lc3NhZ2UsXHJcbiAgICAgICAgY3VzdG9tOiBlLkN1c3RvbVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpZiAoc2F2ZUNvbnRleHQgJiYgZW50aXR5RXJyb3JzKSB7XHJcblxyXG4gICAgbGV0IHByb3BOYW1lRm4gPSBzYXZlQ29udGV4dC5lbnRpdHlNYW5hZ2VyLm1ldGFkYXRhU3RvcmUubmFtaW5nQ29udmVudGlvbi5zZXJ2ZXJQcm9wZXJ0eU5hbWVUb0NsaWVudDtcclxuICAgIGVudGl0eUVycm9ycy5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgIGUucHJvcGVydHlOYW1lID0gZS5wcm9wZXJ0eU5hbWUgJiYgcHJvcE5hbWVGbihlLnByb3BlcnR5TmFtZSk7XHJcbiAgICB9KTtcclxuICAgIChlcnIgYXMgU2F2ZUVycm9yRnJvbVNlcnZlcikuZW50aXR5RXJyb3JzID0gZW50aXR5RXJyb3JzO1xyXG4gIH1cclxuXHJcbiAgZXJyLm1lc3NhZ2UgPSBtZXNzYWdlIHx8IFwiU2VydmVyIHNpZGUgZXJyb3JzIGVuY291bnRlcmVkIC0gc2VlIHRoZSBlbnRpdHlFcnJvcnMgY29sbGVjdGlvbiBvbiB0aGlzIG9iamVjdCBmb3IgbW9yZSBkZXRhaWxcIjtcclxuICByZXR1cm4gZXJyO1xyXG59XHJcblxyXG5cclxuLyoqIFRoaXMgaXMgYSBkZWZhdWx0LCBuby1vcCBpbXBsZW1lbnRhdGlvbiB0aGF0IGRldmVsb3BlcnMgY2FuIHJlcGxhY2UuICovXHJcbmNsYXNzIERlZmF1bHRDaGFuZ2VSZXF1ZXN0SW50ZXJjZXB0b3Ige1xyXG4gIGNvbnN0cnVjdG9yKHNhdmVDb250ZXh0OiBTYXZlQ29udGV4dCwgc2F2ZUJ1bmRsZTogU2F2ZUJ1bmRsZSkge1xyXG5cclxuICB9XHJcblxyXG4gIGdldFJlcXVlc3QocmVxdWVzdDogYW55LCBlbnRpdHk6IEVudGl0eSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBkb25lKHJlcXVlc3RzOiBPYmplY3RbXSkge1xyXG4gIH1cclxufVxyXG4iXX0=
package/esm5/src/array.js DELETED
@@ -1,4 +0,0 @@
1
- export { makeRelationArray } from './relation-array';
2
- export { makeComplexArray } from './complex-array';
3
- export { makePrimitiveArray } from './primitive-array';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9icmVlemUtY2xpZW50LyIsInNvdXJjZXMiOlsic3JjL2FycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgbWFrZVJlbGF0aW9uQXJyYXkgfSBmcm9tICcuL3JlbGF0aW9uLWFycmF5JztcclxuZXhwb3J0IHsgbWFrZUNvbXBsZXhBcnJheSB9IGZyb20gJy4vY29tcGxleC1hcnJheSc7XHJcbmV4cG9ydCB7IG1ha2VQcmltaXRpdmVBcnJheSB9IGZyb20gJy4vcHJpbWl0aXZlLWFycmF5JztcclxuIl19