@infrab4a/connect 1.0.0-beta.38 → 1.0.0-beta.4

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 (364) hide show
  1. package/bundles/infrab4a-connect.umd.js +212 -2112
  2. package/bundles/infrab4a-connect.umd.js.map +1 -1
  3. package/domain/catalog/models/category.d.ts +4 -5
  4. package/domain/catalog/models/index.d.ts +2 -3
  5. package/domain/catalog/models/product.d.ts +4 -9
  6. package/domain/catalog/models/types/product-review.type.d.ts +8 -10
  7. package/domain/catalog/models/variant.d.ts +3 -7
  8. package/domain/catalog/repositories/category.repository.d.ts +1 -1
  9. package/domain/catalog/repositories/product.repository.d.ts +3 -10
  10. package/domain/catalog/repositories/subscription-product.repository.d.ts +1 -1
  11. package/domain/catalog/repositories/variant.repository.d.ts +1 -1
  12. package/domain/general/model/base-model-with-identifier-fields.d.ts +3 -0
  13. package/domain/general/model/base.model.d.ts +6 -0
  14. package/domain/{generic → general}/model/index.d.ts +1 -0
  15. package/domain/general/model/types/base-model-builder.type.d.ts +5 -0
  16. package/domain/{generic → general}/model/types/index.d.ts +0 -2
  17. package/domain/general/model/types/non-function-properties.type.d.ts +2 -0
  18. package/domain/general/model/types/non-function-property-name.type.d.ts +3 -0
  19. package/domain/general/repository/create.repository.d.ts +5 -0
  20. package/domain/general/repository/crud.repository.d.ts +7 -0
  21. package/domain/general/repository/delete.repository.d.ts +5 -0
  22. package/domain/{generic → general}/repository/enums/where.enum.d.ts +2 -5
  23. package/domain/general/repository/find.repository.d.ts +5 -0
  24. package/domain/general/repository/get.repository.d.ts +5 -0
  25. package/domain/general/repository/read.repository.d.ts +5 -0
  26. package/domain/{generic → general}/repository/types/index.d.ts +0 -1
  27. package/domain/general/repository/types/repository-find-filters.type.d.ts +14 -0
  28. package/domain/{generic → general}/repository/types/repository-update-params.type.d.ts +4 -4
  29. package/domain/general/repository/update.repository.d.ts +5 -0
  30. package/domain/index.d.ts +1 -1
  31. package/domain/location/models/address.d.ts +2 -3
  32. package/domain/shop-settings/models/home.d.ts +3 -3
  33. package/domain/shop-settings/models/shop-menu.d.ts +3 -3
  34. package/domain/shop-settings/repositories/home.repository.d.ts +1 -1
  35. package/domain/shop-settings/repositories/shop-menu.repository.d.ts +1 -1
  36. package/domain/shopping/models/buy-2-win.d.ts +5 -3
  37. package/domain/shopping/models/checkout.d.ts +9 -7
  38. package/domain/shopping/models/coupons/club-coupon.d.ts +7 -0
  39. package/domain/shopping/models/coupons/coupon.d.ts +15 -13
  40. package/domain/shopping/models/coupons/enums/discount-type.enum.d.ts +5 -0
  41. package/domain/shopping/models/coupons/enums/index.d.ts +1 -2
  42. package/domain/shopping/models/coupons/index.d.ts +2 -1
  43. package/domain/shopping/models/coupons/store-coupon.d.ts +8 -0
  44. package/domain/shopping/models/payment.d.ts +5 -3
  45. package/domain/shopping/models/shipping-method.d.ts +5 -3
  46. package/domain/shopping/models/subscription/checkout.d.ts +5 -3
  47. package/domain/shopping/models/subscription/plan.d.ts +5 -3
  48. package/domain/shopping/repositories/buy-2-win.repository.d.ts +1 -1
  49. package/domain/shopping/repositories/checkout.repository.d.ts +1 -1
  50. package/domain/shopping/repositories/coupon.repository.d.ts +1 -1
  51. package/domain/shopping/repositories/order.repository.d.ts +1 -1
  52. package/domain/shopping/repositories/payment.repository.d.ts +1 -1
  53. package/domain/shopping/repositories/subscription/checkout.repository.d.ts +1 -1
  54. package/domain/shopping/repositories/subscription/plan.repository.d.ts +1 -1
  55. package/domain/users/errors/unauthorized.error.d.ts +1 -2
  56. package/domain/users/errors/user-already-registered.error.d.ts +1 -2
  57. package/domain/users/errors/weak-password.error.d.ts +1 -2
  58. package/domain/users/models/beauty-profile.d.ts +5 -4
  59. package/domain/users/models/lead.d.ts +5 -3
  60. package/domain/users/models/subscription/edition.d.ts +5 -4
  61. package/domain/users/models/subscription/payment.d.ts +5 -4
  62. package/domain/users/models/subscription/subscription.d.ts +5 -3
  63. package/domain/users/models/user-address.d.ts +3 -3
  64. package/domain/users/models/user-payment-method.d.ts +4 -4
  65. package/domain/users/models/user.d.ts +10 -11
  66. package/domain/users/repositories/beauty-profile.repository.d.ts +1 -1
  67. package/domain/users/repositories/edition.repository.d.ts +1 -1
  68. package/domain/users/repositories/lead.repository.d.ts +1 -1
  69. package/domain/users/repositories/subscription-payment.repository.d.ts +1 -1
  70. package/domain/users/repositories/subscription.repository.d.ts +1 -1
  71. package/domain/users/repositories/user-address.repository.d.ts +1 -1
  72. package/domain/users/repositories/user-payment-method.repository.d.ts +1 -1
  73. package/domain/users/repositories/user.repository.d.ts +2 -2
  74. package/errors/duplicated-results.error.d.ts +1 -2
  75. package/errors/invalid-argument.error.d.ts +1 -2
  76. package/errors/not-found.error.d.ts +1 -2
  77. package/errors/required-argument.error.d.ts +1 -2
  78. package/esm2015/domain/catalog/models/category.js +2 -5
  79. package/esm2015/domain/catalog/models/index.js +3 -4
  80. package/esm2015/domain/catalog/models/product.js +2 -12
  81. package/esm2015/domain/catalog/models/types/product-review.type.js +1 -1
  82. package/esm2015/domain/catalog/models/variant.js +2 -5
  83. package/esm2015/domain/catalog/repositories/category.repository.js +1 -1
  84. package/esm2015/domain/catalog/repositories/product.repository.js +1 -1
  85. package/esm2015/domain/catalog/repositories/subscription-product.repository.js +1 -1
  86. package/esm2015/domain/catalog/repositories/variant.repository.js +1 -1
  87. package/esm2015/domain/{generic → general}/index.js +1 -1
  88. package/esm2015/domain/general/model/base-model-with-identifier-fields.js +2 -0
  89. package/esm2015/domain/general/model/base.model.js +13 -0
  90. package/esm2015/domain/{generic → general}/model/identifier-fields.js +1 -1
  91. package/esm2015/domain/general/model/index.js +5 -0
  92. package/esm2015/domain/general/model/types/base-model-builder.type.js +2 -0
  93. package/esm2015/domain/general/model/types/index.js +4 -0
  94. package/esm2015/domain/general/model/types/non-function-properties.type.js +2 -0
  95. package/esm2015/domain/general/model/types/non-function-property-name.type.js +2 -0
  96. package/esm2015/domain/general/repository/create.repository.js +2 -0
  97. package/esm2015/domain/general/repository/crud.repository.js +2 -0
  98. package/esm2015/domain/general/repository/delete.repository.js +2 -0
  99. package/esm2015/domain/{generic → general}/repository/enums/index.js +1 -1
  100. package/esm2015/domain/{generic → general}/repository/enums/update-option-actions.enum.js +1 -1
  101. package/esm2015/domain/general/repository/enums/where.enum.js +12 -0
  102. package/esm2015/domain/general/repository/find.repository.js +2 -0
  103. package/esm2015/domain/general/repository/get.repository.js +2 -0
  104. package/esm2015/domain/{generic → general}/repository/index.js +1 -1
  105. package/esm2015/domain/general/repository/read.repository.js +2 -0
  106. package/esm2015/domain/general/repository/types/index.js +6 -0
  107. package/esm2015/domain/general/repository/types/repository-find-filters.type.js +2 -0
  108. package/esm2015/domain/{generic → general}/repository/types/repository-find-result.type.js +1 -1
  109. package/esm2015/domain/{generic → general}/repository/types/repository-limit-options.type.js +1 -1
  110. package/esm2015/domain/{generic → general}/repository/types/repository-order-by-list.type.js +1 -1
  111. package/esm2015/domain/general/repository/types/repository-update-params.type.js +2 -0
  112. package/esm2015/domain/general/repository/update.repository.js +2 -0
  113. package/esm2015/domain/index.js +2 -2
  114. package/esm2015/domain/location/models/address.js +2 -5
  115. package/esm2015/domain/shop-settings/models/home.js +3 -3
  116. package/esm2015/domain/shop-settings/models/shop-menu.js +3 -3
  117. package/esm2015/domain/shop-settings/repositories/home.repository.js +1 -1
  118. package/esm2015/domain/shop-settings/repositories/shop-menu.repository.js +1 -1
  119. package/esm2015/domain/shopping/models/buy-2-win.js +3 -3
  120. package/esm2015/domain/shopping/models/checkout.js +14 -6
  121. package/esm2015/domain/shopping/models/coupons/club-coupon.js +18 -0
  122. package/esm2015/domain/shopping/models/coupons/coupon.js +12 -4
  123. package/esm2015/domain/shopping/models/coupons/enums/discount-type.enum.js +7 -0
  124. package/esm2015/domain/shopping/models/coupons/enums/index.js +2 -3
  125. package/esm2015/domain/shopping/models/coupons/index.js +3 -2
  126. package/esm2015/domain/shopping/models/coupons/store-coupon.js +23 -0
  127. package/esm2015/domain/shopping/models/payment.js +3 -3
  128. package/esm2015/domain/shopping/models/shipping-method.js +3 -3
  129. package/esm2015/domain/shopping/models/subscription/checkout.js +3 -3
  130. package/esm2015/domain/shopping/models/subscription/plan.js +3 -3
  131. package/esm2015/domain/shopping/repositories/buy-2-win.repository.js +1 -1
  132. package/esm2015/domain/shopping/repositories/checkout.repository.js +1 -1
  133. package/esm2015/domain/shopping/repositories/coupon.repository.js +1 -1
  134. package/esm2015/domain/shopping/repositories/order.repository.js +1 -1
  135. package/esm2015/domain/shopping/repositories/payment.repository.js +1 -1
  136. package/esm2015/domain/shopping/repositories/subscription/checkout.repository.js +1 -1
  137. package/esm2015/domain/shopping/repositories/subscription/plan.repository.js +1 -1
  138. package/esm2015/domain/users/errors/unauthorized.error.js +2 -3
  139. package/esm2015/domain/users/errors/user-already-registered.error.js +2 -3
  140. package/esm2015/domain/users/errors/weak-password.error.js +2 -3
  141. package/esm2015/domain/users/models/beauty-profile.js +4 -4
  142. package/esm2015/domain/users/models/lead.js +3 -3
  143. package/esm2015/domain/users/models/subscription/edition.js +4 -4
  144. package/esm2015/domain/users/models/subscription/payment.js +4 -4
  145. package/esm2015/domain/users/models/subscription/subscription.js +3 -3
  146. package/esm2015/domain/users/models/user-address.js +3 -3
  147. package/esm2015/domain/users/models/user-payment-method.js +4 -4
  148. package/esm2015/domain/users/models/user.js +5 -5
  149. package/esm2015/domain/users/repositories/beauty-profile.repository.js +1 -1
  150. package/esm2015/domain/users/repositories/edition.repository.js +1 -1
  151. package/esm2015/domain/users/repositories/lead.repository.js +1 -1
  152. package/esm2015/domain/users/repositories/subscription-payment.repository.js +1 -1
  153. package/esm2015/domain/users/repositories/subscription.repository.js +1 -1
  154. package/esm2015/domain/users/repositories/user-address.repository.js +1 -1
  155. package/esm2015/domain/users/repositories/user-payment-method.repository.js +1 -1
  156. package/esm2015/domain/users/repositories/user.repository.js +1 -1
  157. package/esm2015/errors/duplicated-results.error.js +2 -3
  158. package/esm2015/errors/invalid-argument.error.js +2 -3
  159. package/esm2015/errors/not-found.error.js +2 -3
  160. package/esm2015/errors/required-argument.error.js +2 -3
  161. package/esm2015/infra/elasticsearch/adapters/axios.adapter.js +1 -36
  162. package/esm2015/infra/elasticsearch/adapters/elastic-search.adapter.js +1 -1
  163. package/esm2015/infra/elasticsearch/indexes/products-index.js +1 -35
  164. package/esm2015/infra/firebase/auth/authentication-firebase-auth.service.js +2 -2
  165. package/esm2015/infra/firebase/auth/register-firebase-auth.service.js +1 -1
  166. package/esm2015/infra/firebase/firestore/mixins/with-create-firestore.mixin.js +2 -2
  167. package/esm2015/infra/firebase/firestore/mixins/with-crud-firestore.mixin.js +1 -1
  168. package/esm2015/infra/firebase/firestore/mixins/with-delete-firestore.mixin.js +1 -1
  169. package/esm2015/infra/firebase/firestore/mixins/with-find-firestore.mixin.js +10 -9
  170. package/esm2015/infra/firebase/firestore/mixins/with-firestore.mixin.js +6 -2
  171. package/esm2015/infra/firebase/firestore/mixins/with-get-firestore.mixin.js +1 -1
  172. package/esm2015/infra/firebase/firestore/mixins/with-helpers.mixin.js +1 -1
  173. package/esm2015/infra/firebase/firestore/mixins/with-sub-collection.mixin.js +1 -1
  174. package/esm2015/infra/firebase/firestore/mixins/with-update-firestore.mixin.js +4 -4
  175. package/esm2015/infra/firebase/firestore/models/user-search.js +3 -3
  176. package/esm2015/infra/firebase/firestore/repositories/catalog/category-firestore.repository.js +2 -4
  177. package/esm2015/infra/firebase/firestore/repositories/catalog/product-firestore.repository.js +8 -37
  178. package/esm2015/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.js +21 -11
  179. package/esm2015/infra/firebase/firestore/repositories/users/user-firestore.repository.js +2 -2
  180. package/esm2015/infra/firebase/firestore/types/firestore-sub.repository.type.js +1 -1
  181. package/esm2015/infra/firebase/firestore/types/firestore.helpers.type.js +1 -1
  182. package/esm2015/infra/firebase/firestore/types/firestore.repository.type.js +1 -1
  183. package/esm2015/infra/index.js +1 -2
  184. package/esm2015/utils/index.js +4 -6
  185. package/esm2015/utils/mixins/index.js +1 -2
  186. package/esm2015/utils/mixins/mixin-ctor.type.js +1 -1
  187. package/esm2015/utils/types/index.js +1 -2
  188. package/fesm2015/infrab4a-connect.js +141 -1368
  189. package/fesm2015/infrab4a-connect.js.map +1 -1
  190. package/infra/elasticsearch/adapters/axios.adapter.d.ts +0 -3
  191. package/infra/elasticsearch/adapters/elastic-search.adapter.d.ts +0 -3
  192. package/infra/elasticsearch/indexes/products-index.d.ts +1 -5
  193. package/infra/firebase/auth/authentication-firebase-auth.service.d.ts +1 -1
  194. package/infra/firebase/auth/register-firebase-auth.service.d.ts +1 -1
  195. package/infra/firebase/firestore/mixins/with-create-firestore.mixin.d.ts +16 -3
  196. package/infra/firebase/firestore/mixins/with-crud-firestore.mixin.d.ts +28 -3
  197. package/infra/firebase/firestore/mixins/with-delete-firestore.mixin.d.ts +14 -3
  198. package/infra/firebase/firestore/mixins/with-find-firestore.mixin.d.ts +19 -3
  199. package/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +14 -3
  200. package/infra/firebase/firestore/mixins/with-get-firestore.mixin.d.ts +14 -3
  201. package/infra/firebase/firestore/mixins/with-helpers.mixin.d.ts +4 -5
  202. package/infra/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +14 -7
  203. package/infra/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +15 -6
  204. package/infra/firebase/firestore/models/user-search.d.ts +3 -3
  205. package/infra/firebase/firestore/repositories/catalog/category-firestore.repository.d.ts +42 -1
  206. package/infra/firebase/firestore/repositories/catalog/product-firestore.repository.d.ts +44 -5
  207. package/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.d.ts +51 -4
  208. package/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.d.ts +42 -1
  209. package/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.d.ts +42 -1
  210. package/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.d.ts +42 -1
  211. package/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.d.ts +42 -1
  212. package/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.d.ts +42 -1
  213. package/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.d.ts +42 -1
  214. package/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.d.ts +42 -1
  215. package/infra/firebase/firestore/repositories/shopping/order-firestore.repository.d.ts +42 -1
  216. package/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.d.ts +42 -1
  217. package/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.d.ts +42 -1
  218. package/infra/firebase/firestore/repositories/users/lead-firestore.repository.d.ts +42 -1
  219. package/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.d.ts +51 -4
  220. package/infra/firebase/firestore/repositories/users/subscription-firestore.repository.d.ts +42 -1
  221. package/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.d.ts +51 -4
  222. package/infra/firebase/firestore/repositories/users/user-address-firestore.repository.d.ts +51 -4
  223. package/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.d.ts +51 -4
  224. package/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +42 -1
  225. package/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.d.ts +51 -4
  226. package/infra/firebase/firestore/repositories/users/user-search-firestore.repository.d.ts +42 -1
  227. package/infra/firebase/firestore/types/firestore-sub.repository.type.d.ts +3 -3
  228. package/infra/firebase/firestore/types/firestore.helpers.type.d.ts +3 -3
  229. package/infra/firebase/firestore/types/firestore.repository.type.d.ts +3 -7
  230. package/infra/index.d.ts +0 -1
  231. package/package.json +3 -5
  232. package/utils/index.d.ts +4 -5
  233. package/utils/mixins/index.d.ts +0 -1
  234. package/utils/mixins/mixin-ctor.type.d.ts +1 -1
  235. package/utils/types/index.d.ts +0 -1
  236. package/domain/catalog/models/kit-product.d.ts +0 -12
  237. package/domain/generic/model/base.model.d.ts +0 -10
  238. package/domain/generic/model/types/base-model-builder.type.d.ts +0 -15
  239. package/domain/generic/model/types/identifier-model.type.d.ts +0 -7
  240. package/domain/generic/model/types/model-base-structure.type.d.ts +0 -6
  241. package/domain/generic/model/types/non-function-properties.type.d.ts +0 -12
  242. package/domain/generic/model/types/non-function-property-name.type.d.ts +0 -4
  243. package/domain/generic/repository/create.repository.d.ts +0 -8
  244. package/domain/generic/repository/crud.repository.d.ts +0 -19
  245. package/domain/generic/repository/delete.repository.d.ts +0 -7
  246. package/domain/generic/repository/find.repository.d.ts +0 -11
  247. package/domain/generic/repository/get.repository.d.ts +0 -5
  248. package/domain/generic/repository/read.repository.d.ts +0 -14
  249. package/domain/generic/repository/types/repository-find-filters.type.d.ts +0 -13
  250. package/domain/generic/repository/types/where-options.type.d.ts +0 -2
  251. package/domain/generic/repository/update.repository.d.ts +0 -6
  252. package/domain/shopping/models/coupons/enums/coupon-subtypes.enum.d.ts +0 -4
  253. package/domain/shopping/models/coupons/enums/coupon-types.enum.d.ts +0 -6
  254. package/domain/shopping/models/coupons/financial-coupon.d.ts +0 -9
  255. package/esm2015/domain/catalog/models/kit-product.js +0 -18
  256. package/esm2015/domain/generic/model/base.model.js +0 -23
  257. package/esm2015/domain/generic/model/index.js +0 -4
  258. package/esm2015/domain/generic/model/types/base-model-builder.type.js +0 -2
  259. package/esm2015/domain/generic/model/types/identifier-model.type.js +0 -2
  260. package/esm2015/domain/generic/model/types/index.js +0 -6
  261. package/esm2015/domain/generic/model/types/model-base-structure.type.js +0 -2
  262. package/esm2015/domain/generic/model/types/non-function-properties.type.js +0 -2
  263. package/esm2015/domain/generic/model/types/non-function-property-name.type.js +0 -2
  264. package/esm2015/domain/generic/repository/create.repository.js +0 -2
  265. package/esm2015/domain/generic/repository/crud.repository.js +0 -2
  266. package/esm2015/domain/generic/repository/delete.repository.js +0 -2
  267. package/esm2015/domain/generic/repository/enums/where.enum.js +0 -15
  268. package/esm2015/domain/generic/repository/find.repository.js +0 -2
  269. package/esm2015/domain/generic/repository/get.repository.js +0 -2
  270. package/esm2015/domain/generic/repository/read.repository.js +0 -2
  271. package/esm2015/domain/generic/repository/types/index.js +0 -7
  272. package/esm2015/domain/generic/repository/types/repository-find-filters.type.js +0 -2
  273. package/esm2015/domain/generic/repository/types/repository-update-params.type.js +0 -2
  274. package/esm2015/domain/generic/repository/types/where-options.type.js +0 -2
  275. package/esm2015/domain/generic/repository/update.repository.js +0 -2
  276. package/esm2015/domain/shopping/models/coupons/enums/coupon-subtypes.enum.js +0 -6
  277. package/esm2015/domain/shopping/models/coupons/enums/coupon-types.enum.js +0 -8
  278. package/esm2015/domain/shopping/models/coupons/financial-coupon.js +0 -28
  279. package/esm2015/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.js +0 -13
  280. package/esm2015/infra/hasura-graphql/enums/hasura-graphql-where.enum.js +0 -15
  281. package/esm2015/infra/hasura-graphql/enums/index.js +0 -3
  282. package/esm2015/infra/hasura-graphql/index.js +0 -5
  283. package/esm2015/infra/hasura-graphql/mixins/helpers/attribute-option.helper.js +0 -31
  284. package/esm2015/infra/hasura-graphql/mixins/helpers/filter-option.helper.js +0 -18
  285. package/esm2015/infra/hasura-graphql/mixins/helpers/graphql-field.helper.js +0 -72
  286. package/esm2015/infra/hasura-graphql/mixins/helpers/index.js +0 -4
  287. package/esm2015/infra/hasura-graphql/mixins/index.js +0 -8
  288. package/esm2015/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.js +0 -45
  289. package/esm2015/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.js +0 -10
  290. package/esm2015/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.js +0 -29
  291. package/esm2015/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.js +0 -93
  292. package/esm2015/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.js +0 -35
  293. package/esm2015/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.js +0 -94
  294. package/esm2015/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.js +0 -56
  295. package/esm2015/infra/hasura-graphql/models/category-hasura-graphql.js +0 -4
  296. package/esm2015/infra/hasura-graphql/models/index.js +0 -5
  297. package/esm2015/infra/hasura-graphql/models/kit-product-hasura-graphql.js +0 -15
  298. package/esm2015/infra/hasura-graphql/models/product-hasura-graphql.js +0 -11
  299. package/esm2015/infra/hasura-graphql/models/variant-hasura-graphql.js +0 -9
  300. package/esm2015/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.js +0 -135
  301. package/esm2015/infra/hasura-graphql/repositories/catalog/index.js +0 -4
  302. package/esm2015/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.js +0 -375
  303. package/esm2015/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.js +0 -100
  304. package/esm2015/infra/hasura-graphql/repositories/index.js +0 -2
  305. package/esm2015/infra/hasura-graphql/types/fields.type.js +0 -2
  306. package/esm2015/infra/hasura-graphql/types/graphql.repository.type.js +0 -2
  307. package/esm2015/infra/hasura-graphql/types/hasura-graphql-auth-options.type.js +0 -2
  308. package/esm2015/infra/hasura-graphql/types/hasura-graphql-fields.type.js +0 -2
  309. package/esm2015/infra/hasura-graphql/types/hasura-graphql-headers.type.js +0 -2
  310. package/esm2015/infra/hasura-graphql/types/index.js +0 -9
  311. package/esm2015/infra/hasura-graphql/types/nested-field.type.js +0 -2
  312. package/esm2015/infra/hasura-graphql/types/query-builder-options.type.js +0 -2
  313. package/esm2015/infra/hasura-graphql/types/variable-options.type.js +0 -2
  314. package/esm2015/utils/is-uuid.js +0 -3
  315. package/esm2015/utils/mixins/merge-constructor-params.type.js +0 -2
  316. package/esm2015/utils/parse-datetime.js +0 -14
  317. package/esm2015/utils/types/array-element.type.js +0 -2
  318. package/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.d.ts +0 -11
  319. package/infra/hasura-graphql/enums/hasura-graphql-where.enum.d.ts +0 -13
  320. package/infra/hasura-graphql/enums/index.d.ts +0 -2
  321. package/infra/hasura-graphql/index.d.ts +0 -4
  322. package/infra/hasura-graphql/mixins/helpers/attribute-option.helper.d.ts +0 -13
  323. package/infra/hasura-graphql/mixins/helpers/filter-option.helper.d.ts +0 -6
  324. package/infra/hasura-graphql/mixins/helpers/graphql-field.helper.d.ts +0 -8
  325. package/infra/hasura-graphql/mixins/helpers/index.d.ts +0 -3
  326. package/infra/hasura-graphql/mixins/index.d.ts +0 -7
  327. package/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.d.ts +0 -8
  328. package/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.d.ts +0 -11
  329. package/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.d.ts +0 -7
  330. package/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.d.ts +0 -31
  331. package/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.d.ts +0 -24
  332. package/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.d.ts +0 -11
  333. package/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.d.ts +0 -14
  334. package/infra/hasura-graphql/models/category-hasura-graphql.d.ts +0 -6
  335. package/infra/hasura-graphql/models/index.d.ts +0 -4
  336. package/infra/hasura-graphql/models/kit-product-hasura-graphql.d.ts +0 -6
  337. package/infra/hasura-graphql/models/product-hasura-graphql.d.ts +0 -9
  338. package/infra/hasura-graphql/models/variant-hasura-graphql.d.ts +0 -9
  339. package/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.d.ts +0 -22
  340. package/infra/hasura-graphql/repositories/catalog/index.d.ts +0 -3
  341. package/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.d.ts +0 -26
  342. package/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.d.ts +0 -13
  343. package/infra/hasura-graphql/repositories/index.d.ts +0 -1
  344. package/infra/hasura-graphql/types/fields.type.d.ts +0 -2
  345. package/infra/hasura-graphql/types/graphql.repository.type.d.ts +0 -21
  346. package/infra/hasura-graphql/types/hasura-graphql-auth-options.type.d.ts +0 -8
  347. package/infra/hasura-graphql/types/hasura-graphql-fields.type.d.ts +0 -36
  348. package/infra/hasura-graphql/types/hasura-graphql-headers.type.d.ts +0 -7
  349. package/infra/hasura-graphql/types/index.d.ts +0 -8
  350. package/infra/hasura-graphql/types/nested-field.type.d.ts +0 -7
  351. package/infra/hasura-graphql/types/query-builder-options.type.d.ts +0 -7
  352. package/infra/hasura-graphql/types/variable-options.type.d.ts +0 -9
  353. package/utils/is-uuid.d.ts +0 -1
  354. package/utils/mixins/merge-constructor-params.type.d.ts +0 -3
  355. package/utils/parse-datetime.d.ts +0 -1
  356. package/utils/types/array-element.type.d.ts +0 -1
  357. /package/domain/{generic → general}/index.d.ts +0 -0
  358. /package/domain/{generic → general}/model/identifier-fields.d.ts +0 -0
  359. /package/domain/{generic → general}/repository/enums/index.d.ts +0 -0
  360. /package/domain/{generic → general}/repository/enums/update-option-actions.enum.d.ts +0 -0
  361. /package/domain/{generic → general}/repository/index.d.ts +0 -0
  362. /package/domain/{generic → general}/repository/types/repository-find-result.type.d.ts +0 -0
  363. /package/domain/{generic → general}/repository/types/repository-limit-options.type.d.ts +0 -0
  364. /package/domain/{generic → general}/repository/types/repository-order-by-list.type.d.ts +0 -0
@@ -1,375 +0,0 @@
1
- import { __awaiter, __rest } from "tslib";
2
- import { Shops, } from '../../../../domain';
3
- import { NotFoundError } from '../../../../errors';
4
- import { Base, isNil, omit } from '../../../../utils';
5
- import { HasuraGraphQLColumnType, HasuraGraphQLWhere } from '../../enums';
6
- import { withCrudHasuraGraphQL, withHasuraGraphQL } from '../../mixins';
7
- import { ProductHasuraGraphQL } from '../../models';
8
- export class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGraphQL(Base)) {
9
- constructor(endpoint, authOptions) {
10
- super({
11
- tableName: 'product',
12
- model: ProductHasuraGraphQL,
13
- endpoint,
14
- authOptions,
15
- fields: [],
16
- });
17
- this.bindReviewToModel = (plain) => (Object.assign(Object.assign({}, omit(plain, ['product_id', 'created_at', 'updated_at', 'person_id', 'order_id'])), { createdAt: typeof plain.created_at === 'string' ? new Date(plain.created_at) : plain.created_at, updatedAt: typeof plain.updated_at === 'string' ? new Date(plain.updated_at) : plain.updated_at, personId: plain.person_id, orderId: plain.order_id }));
18
- this.bindReviewToHasura = (review) => (Object.assign(Object.assign({}, omit(review, ['productId', 'createdAt', 'updatedAt', 'personId', 'orderId'])), { person_id: review.personId, order_id: review.orderId }));
19
- const commonFields = [
20
- { id: { columnName: 'id', to: (value) => +value, from: (value) => value.toString() } },
21
- { firestoreId: { columnName: 'firestore_id' } },
22
- { CEST: { columnName: 'cest' } },
23
- { EAN: { columnName: 'ean' } },
24
- { NCM: { columnName: 'ncm' } },
25
- 'brand',
26
- { costPrice: { columnName: 'cost_price' } },
27
- {
28
- description: {
29
- columnName: 'description',
30
- from: (description) => Object.values(Shops).reduce((shops, shop) => (Object.assign(Object.assign({}, shops), { [shop]: { description } })), {}),
31
- to: (value) => Object.values(value).shift().description,
32
- },
33
- },
34
- { hasVariants: { columnName: 'has_variants' } },
35
- { images: { columnName: 'images', to: (value) => { var _a; return `{"${((_a = value === null || value === void 0 ? void 0 : value.join) === null || _a === void 0 ? void 0 : _a.call(value, `","`)) || ''}"}`; } } },
36
- { miniatures: { columnName: 'miniatures', to: (value) => { var _a; return `{"${((_a = value === null || value === void 0 ? void 0 : value.join) === null || _a === void 0 ? void 0 : _a.call(value, `","`)) || ''}"}`; } } },
37
- 'name',
38
- {
39
- price: {
40
- columnName: 'price',
41
- from: (price, data) => Object.values(Shops).reduce((prices, shop) => (Object.assign(Object.assign({}, prices), { [shop]: {
42
- price,
43
- fullPrice: data.full_price,
44
- subscriberDiscountPercentage: data.subscriber_discount_percentage,
45
- subscriberPrice: data.subscriber_price,
46
- } })), {}),
47
- bindFindFilter: (sentence) => {
48
- const filters = Object.values(sentence).shift();
49
- return Object.assign(Object.assign(Object.assign(Object.assign({}, (((filters === null || filters === void 0 ? void 0 : filters.price) || (filters === null || filters === void 0 ? void 0 : filters.price) === 0) && { price: filters.price })), ((filters.fullPrice || filters.fullPrice === 0) && { full_price: filters.fullPrice })), ((filters.subscriberDiscountPercentage || filters.subscriberDiscountPercentage === 0) && {
50
- subscriber_discount_percentage: filters.subscriberDiscountPercentage,
51
- })), ((filters.subscriberPrice || filters.subscriberPrice === 0) && {
52
- subscriber_price: filters.subscriberPrice,
53
- }));
54
- },
55
- bindPersistData: (value) => {
56
- const priceData = Object.values(value).shift();
57
- return Object.assign(Object.assign(Object.assign(Object.assign({}, ((priceData === null || priceData === void 0 ? void 0 : priceData.price) >= 0 && { price: priceData.price })), (priceData.fullPrice >= 0 && { full_price: priceData.fullPrice })), (priceData.subscriberDiscountPercentage >= 0 && {
58
- subscriber_discount_percentage: priceData.subscriberDiscountPercentage,
59
- })), (priceData.subscriberPrice >= 0 && { subscriber_price: priceData.subscriberPrice }));
60
- },
61
- },
62
- },
63
- { fullPrice: { columnName: 'full_price' } },
64
- { subscriberDiscountPercentage: { columnName: 'subscriber_discount_percentage' } },
65
- { subscriberPrice: { columnName: 'subscriber_price' } },
66
- 'published',
67
- { publishedGlam: { columnName: 'published_glam' } },
68
- 'sku',
69
- {
70
- stock: {
71
- columnName: 'stock',
72
- from: (quantity) => ({ quantity }),
73
- to: (value) => (isNil(value === null || value === void 0 ? void 0 : value.quantity) ? value : value === null || value === void 0 ? void 0 : value.quantity),
74
- },
75
- },
76
- 'slug',
77
- 'type',
78
- 'video',
79
- 'weight',
80
- {
81
- shopAvailability: {
82
- columnName: 'shop_availabilities',
83
- fields: ['shop'],
84
- from: (shop) => (Array.isArray(shop) ? shop.map((row) => row.shop) : []),
85
- bindPersistData: (shops) => ({ shop_availabilities: { data: shops.map((shop) => ({ shop })) } }),
86
- },
87
- },
88
- { tags: { columnName: 'tags', type: HasuraGraphQLColumnType.Jsonb } },
89
- { isKit: { columnName: 'is_kit' } },
90
- { createdAt: { columnName: 'created_at' } },
91
- { updatedAt: { columnName: 'updated_at' } },
92
- {
93
- rate: {
94
- columnName: 'reviews_aggregate',
95
- fields: [{ aggregate: [{ avg: ['rate'] }] }],
96
- from: (value) => value.aggregate.avg.rate,
97
- },
98
- },
99
- ];
100
- this.fields = [
101
- ...commonFields,
102
- {
103
- categories: {
104
- columnName: 'categories',
105
- fields: ['category_id'],
106
- bindPersistData: (value) => ({
107
- categories: { data: value.map((category) => ({ category_id: +category })) },
108
- }),
109
- to: (categories) => categories.map((categoryId) => +categoryId),
110
- from: (categories) => (categories === null || categories === void 0 ? void 0 : categories.map((category) => { var _a; return (_a = category === null || category === void 0 ? void 0 : category.category_id) === null || _a === void 0 ? void 0 : _a.toString(); })) || [],
111
- },
112
- },
113
- {
114
- kitProducts: {
115
- columnName: 'kit_products',
116
- foreignKeyColumn: { productId: 'id' },
117
- fields: [
118
- { productId: { columnName: 'product_id' } },
119
- { kitProductId: { columnName: 'kit_product_id' } },
120
- 'quantity',
121
- { product: { columnName: 'product', foreignKeyColumn: { id: 'product_id' }, fields: commonFields } },
122
- ],
123
- },
124
- },
125
- ];
126
- }
127
- get reviewsFields() {
128
- return [
129
- 'id',
130
- 'shop',
131
- 'rate',
132
- 'author',
133
- 'email',
134
- 'location',
135
- 'review',
136
- 'status',
137
- 'title',
138
- 'person_id',
139
- 'points',
140
- 'order_id',
141
- 'created_at',
142
- 'updated_at',
143
- ];
144
- }
145
- create(data) {
146
- const _super = Object.create(null, {
147
- create: { get: () => super.create }
148
- });
149
- return __awaiter(this, void 0, void 0, function* () {
150
- const product = yield _super.create.call(this, omit(data, ['reviews']));
151
- try {
152
- product.reviews = yield this.updateReviews(+product.id, data);
153
- }
154
- catch (error) {
155
- yield this.delete({ id: product.id });
156
- throw error;
157
- }
158
- return product;
159
- });
160
- }
161
- get(identifiers) {
162
- const _super = Object.create(null, {
163
- get: { get: () => super.get }
164
- });
165
- var _a;
166
- return __awaiter(this, void 0, void 0, function* () {
167
- const product = Number.isNaN(+identifiers.id)
168
- ? (_a = (yield this.find({ filters: { firestoreId: identifiers.id } })).data) === null || _a === void 0 ? void 0 : _a[0]
169
- : yield _super.get.call(this, identifiers);
170
- product.reviews = yield this.findReviewsByProduct(+product.id);
171
- return product;
172
- });
173
- }
174
- getBySlug(slug) {
175
- var _a;
176
- return __awaiter(this, void 0, void 0, function* () {
177
- const result = yield this.find({
178
- filters: {
179
- slug,
180
- },
181
- });
182
- const product = (_a = result === null || result === void 0 ? void 0 : result.data) === null || _a === void 0 ? void 0 : _a.shift();
183
- product.reviews = yield this.findReviewsByProduct(+product.id);
184
- return product;
185
- });
186
- }
187
- update(params) {
188
- const _super = Object.create(null, {
189
- update: { get: () => super.update }
190
- });
191
- return __awaiter(this, void 0, void 0, function* () {
192
- const { categories, kitProducts, reviews, id: checkId } = params, data = __rest(params, ["categories", "kitProducts", "reviews", "id"]);
193
- const plainData = this.paramsToPlain({ id: checkId });
194
- const id = yield this.getId(plainData.id);
195
- const product = yield _super.update.call(this, Object.assign({ id }, data));
196
- product.categories = categories && (yield this.updateCategories(+id, { categories }));
197
- product.kitProducts = kitProducts && (yield this.updateKitProducts(+id, { kitProducts }));
198
- product.reviews = reviews && (yield this.updateReviews(+id, { reviews }));
199
- return product;
200
- });
201
- }
202
- fetchReviews(status) {
203
- return __awaiter(this, void 0, void 0, function* () {
204
- const reviews = {
205
- status: status === 'pending'
206
- ? { [HasuraGraphQLWhere.ISNULL]: true }
207
- : { [HasuraGraphQLWhere.EQUALS]: status === 'approved' },
208
- };
209
- const { product: data } = yield this.query('product', ['id', 'name', 'sku', { reviews: { columnName: 'reviews', fields: this.reviewsFields } }], {
210
- where: { value: { reviews }, type: 'product_bool_exp', required: true },
211
- });
212
- return data.reduce((reviews, product) => [
213
- ...reviews,
214
- ...product.reviews
215
- .filter((review) => (status === 'pending' && [undefined, null].includes(review.status)) ||
216
- (status === 'approved' && review.status === true) ||
217
- (status === 'rejected' && review.status === false))
218
- .map((review) => (Object.assign(Object.assign({}, this.bindReviewToModel(review)), { productId: product.id, productName: product.name, productSku: product.sku }))),
219
- ], []);
220
- });
221
- }
222
- updateCategories(productId, { categories }) {
223
- return __awaiter(this, void 0, void 0, function* () {
224
- const plainData = this.paramsToPlain({ categories });
225
- yield this.mutation('delete_category_product', ['affected_rows'], {
226
- where: {
227
- type: 'category_product_bool_exp',
228
- required: true,
229
- value: { product_id: { _eq: productId } },
230
- },
231
- });
232
- yield this.mutation('insert_category_product', ['affected_rows'], {
233
- objects: {
234
- type: '[category_product_insert_input!]',
235
- required: true,
236
- value: plainData.categories.map((categoryId) => ({ category_id: categoryId, product_id: productId })),
237
- },
238
- });
239
- return plainData.categories;
240
- });
241
- }
242
- updateKitProducts(productId, { kitProducts }) {
243
- return __awaiter(this, void 0, void 0, function* () {
244
- const plainData = this.paramsToPlain({ kitProducts });
245
- yield this.mutation('delete_product_kit', ['affected_rows'], {
246
- where: {
247
- type: 'product_kit_bool_exp',
248
- required: true,
249
- value: { product_id: { _eq: productId } },
250
- },
251
- });
252
- yield this.mutation('insert_product_kit', ['affected_rows'], {
253
- objects: {
254
- type: '[product_kit_insert_input!]',
255
- required: true,
256
- value: plainData.kitProducts.map((kitProduct) => ({
257
- kit_product_id: kitProduct.productId || kitProduct.product.id,
258
- product_id: productId,
259
- quantity: kitProduct.quantity,
260
- })),
261
- },
262
- });
263
- return plainData.kitProducts;
264
- });
265
- }
266
- updateReviews(productId, { reviews }) {
267
- return __awaiter(this, void 0, void 0, function* () {
268
- if (!reviews)
269
- return [];
270
- if ('action' in reviews && reviews.action === 'remove') {
271
- const reviewIds = yield Promise.all(reviews.value.map((reviewData) => __awaiter(this, void 0, void 0, function* () {
272
- const review = yield this.findReview(reviewData, productId);
273
- return review === null || review === void 0 ? void 0 : review.id;
274
- })));
275
- yield this.mutation('delete_product_review', ['affected_rows'], {
276
- where: { value: { id: { _in: reviewIds.filter(Boolean) } }, type: 'product_review_bool_exp', required: true },
277
- });
278
- return reviews.value.map((review, index) => !reviewIds[index] && review).filter(Boolean);
279
- }
280
- const plainData = this.paramsToPlain({ reviews });
281
- return Promise.all(plainData.reviews.map((reviewData) => __awaiter(this, void 0, void 0, function* () {
282
- const review = yield this.findReview(reviewData, productId);
283
- if (review.id)
284
- return this.bindReviewToModel((yield this.mutation('update_product_review_by_pk', this.reviewsFields, {
285
- pk_columns: {
286
- value: { id: review.id },
287
- type: 'product_review_pk_columns_input',
288
- required: true,
289
- },
290
- _set: {
291
- value: omit(this.bindReviewToHasura(reviewData), ['id', 'product_id']),
292
- type: 'product_review_set_input',
293
- required: true,
294
- },
295
- })).update_product_review_by_pk);
296
- return this.bindReviewToModel((yield this.mutation('insert_product_review_one', this.reviewsFields, {
297
- object: {
298
- value: omit(Object.assign(Object.assign({}, this.bindReviewToHasura(reviewData)), { product_id: productId }), ['id']),
299
- type: 'product_review_insert_input',
300
- required: true,
301
- },
302
- })).insert_product_review_one);
303
- })));
304
- });
305
- }
306
- getId(id) {
307
- var _a, _b;
308
- return __awaiter(this, void 0, void 0, function* () {
309
- if (!Number.isNaN(+id))
310
- return id;
311
- const { data } = yield this.find({ filters: { firestoreId: id } });
312
- if ((_a = data === null || data === void 0 ? void 0 : data[0]) === null || _a === void 0 ? void 0 : _a.id)
313
- return (_b = data === null || data === void 0 ? void 0 : data[0]) === null || _b === void 0 ? void 0 : _b.id;
314
- throw new NotFoundError(`Product with id ${id} not found`);
315
- });
316
- }
317
- findReviewsByProduct(productId) {
318
- return __awaiter(this, void 0, void 0, function* () {
319
- const { product_review: data } = yield this.query('product_review', this.reviewsFields, {
320
- where: {
321
- value: {
322
- product_id: { _eq: productId },
323
- },
324
- type: 'product_review_bool_exp',
325
- required: true,
326
- },
327
- });
328
- return data && data.map((review) => this.bindReviewToModel(review));
329
- });
330
- }
331
- findReview(review, productId) {
332
- return __awaiter(this, void 0, void 0, function* () {
333
- if (review.id)
334
- return review;
335
- let loadedReview;
336
- if (review.personId)
337
- loadedReview = yield this.getReviewByPersonId(review.personId, productId);
338
- if (!loadedReview && review.author && review.email)
339
- loadedReview = yield this.getReviewByAuthorAndEmail(review.author, review.email, productId);
340
- return loadedReview || review;
341
- });
342
- }
343
- getReviewByPersonId(personId, productId) {
344
- return __awaiter(this, void 0, void 0, function* () {
345
- const { product_review: data } = yield this.query('product_review', this.reviewsFields, {
346
- where: {
347
- value: {
348
- product_id: { _eq: productId },
349
- person_id: { _eq: personId },
350
- },
351
- type: `product_review_bool_exp`,
352
- required: true,
353
- },
354
- });
355
- return data && data[0] && this.bindReviewToModel(data[0]);
356
- });
357
- }
358
- getReviewByAuthorAndEmail(author, email, productId) {
359
- return __awaiter(this, void 0, void 0, function* () {
360
- const { product_review: data } = yield this.query('product_review', this.reviewsFields, {
361
- where: {
362
- value: {
363
- product_id: { _eq: productId },
364
- author: { _eq: author },
365
- email: { _eq: email },
366
- },
367
- type: `product_review_bool_exp`,
368
- required: true,
369
- },
370
- });
371
- return data && data[0] && this.bindReviewToModel(data[0]);
372
- });
373
- }
374
- }
375
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvcmVwb3NpdG9yaWVzL2NhdGFsb2cvcHJvZHVjdC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBT0wsS0FBSyxHQUdOLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3JELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDdkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBb0JuRCxNQUFNLE9BQU8sOEJBQ1gsU0FBUSxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBdUIsSUFBSSxDQUFDLENBQUM7SUFzQjVFLFlBQVksUUFBZ0IsRUFBRSxXQUFxQztRQUNqRSxLQUFLLENBQUM7WUFDSixTQUFTLEVBQUUsU0FBUztZQUNwQixLQUFLLEVBQUUsb0JBQW9CO1lBQzNCLFFBQVE7WUFDUixXQUFXO1lBQ1gsTUFBTSxFQUFFLEVBQUU7U0FDWCxDQUFDLENBQUE7UUFpWkksc0JBQWlCLEdBQUcsQ0FBQyxLQUEwQixFQUFpQixFQUFFLENBQUMsaUNBQ3RFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUMsS0FDbkYsU0FBUyxFQUFFLE9BQU8s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QUUseUJBQXlCO29CQUMvQixRQUFRLEVBQUUsSUFBSTtpQkFDZjthQUNGLENBQUMsQ0FBQTtZQUVGLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDM0QsQ0FBQztLQUFBO0lBRWEseUJBQXlCLENBQUMsTUFBYyxFQUFFLEtBQWEsRUFBRSxTQUFpQjs7WUFDdEYsTUFBTSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdEYsS0FBSyxFQUFFO29CQUNMLEtBQUssRUFBRTt3QkFDTCxVQUFVLEVBQUUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFO3dCQUM5QixNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFO3dCQUN2QixLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFO3FCQUN0QjtvQkFDRCxJQUFJLEVBQUUseUJBQXlCO29CQUMvQixRQUFRLEVBQUUsSUFBSTtpQkFDZjthQUNGLENBQUMsQ0FBQTtZQUVGLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDM0QsQ0FBQztLQUFBO0NBZUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDcmVhdGVSZXBvc2l0b3J5UGFyYW1zLFxuICBHZXRSZXBvc2l0b3J5UGFyYW1zLFxuICBQcm9kdWN0UmVwb3NpdG9yeSxcbiAgUHJvZHVjdFJldmlldyxcbiAgUmV2aWV3U3RhdHVzUGFyYW1zLFxuICBSZXZpZXdXaXRoUHJvZHVjdERhdGEsXG4gIFNob3BzLFxuICBTaG9wc1ByaWNlLFxuICBVcGRhdGVSZXBvc2l0b3J5UGFyYW1zLFxufSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nXG5pbXBvcnQgeyBOb3RGb3VuZEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vZXJyb3JzJ1xuaW1wb3J0IHsgQmFzZSwgaXNOaWwsIG9taXQgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscydcbmltcG9ydCB7IEhhc3VyYUdyYXBoUUxDb2x1bW5UeXBlLCBIYXN1cmFHcmFwaFFMV2hlcmUgfSBmcm9tICcuLi8uLi9lbnVtcydcbmltcG9ydCB7IHdpdGhDcnVkSGFzdXJhR3JhcGhRTCwgd2l0aEhhc3VyYUdyYXBoUUwgfSBmcm9tICcuLi8uLi9taXhpbnMnXG5pbXBvcnQgeyBQcm9kdWN0SGFzdXJhR3JhcGhRTCB9IGZyb20gJy4uLy4uL21vZGVscydcbmltcG9ydCB7IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9ucywgSGFzdXJhR3JhcGhRTEZpZWxkcyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG50eXBlIFByb2R1Y3RSZXZpZXdGaWVsZHMgPSB7XG4gIGlkPzogc3RyaW5nXG4gIHNob3A6IFNob3BzXG4gIHJhdGU6IG51bWJlclxuICBhdXRob3I/OiBzdHJpbmdcbiAgZW1haWw/OiBzdHJpbmdcbiAgbG9jYXRpb24/OiBzdHJpbmdcbiAgcmV2aWV3Pzogc3RyaW5nXG4gIHN0YXR1cz86IGJvb2xlYW5cbiAgdGl0bGU/OiBzdHJpbmdcbiAgcGVyc29uX2lkPzogbnVtYmVyXG4gIHBvaW50cz86IG51bWJlclxuICBvcmRlcl9pZD86IHN0cmluZ1xuICBjcmVhdGVkX2F0PzogRGF0ZVxuICB1cGRhdGVkX2F0PzogRGF0ZVxufVxuXG5leHBvcnQgY2xhc3MgUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5XG4gIGV4dGVuZHMgd2l0aENydWRIYXN1cmFHcmFwaFFMKHdpdGhIYXN1cmFHcmFwaFFMPFByb2R1Y3RIYXN1cmFHcmFwaFFMPihCYXNlKSlcbiAgaW1wbGVtZW50cyBQcm9kdWN0UmVwb3NpdG9yeVxue1xuICBwcml2YXRlIGdldCByZXZpZXdzRmllbGRzKCk6IEFycmF5PGtleW9mIFByb2R1Y3RSZXZpZXdGaWVsZHM+IHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2lkJyxcbiAgICAgICdzaG9wJyxcbiAgICAgICdyYXRlJyxcbiAgICAgICdhdXRob3InLFxuICAgICAgJ2VtYWlsJyxcbiAgICAgICdsb2NhdGlvbicsXG4gICAgICAncmV2aWV3JyxcbiAgICAgICdzdGF0dXMnLFxuICAgICAgJ3RpdGxlJyxcbiAgICAgICdwZXJzb25faWQnLFxuICAgICAgJ3BvaW50cycsXG4gICAgICAnb3JkZXJfaWQnLFxuICAgICAgJ2NyZWF0ZWRfYXQnLFxuICAgICAgJ3VwZGF0ZWRfYXQnLFxuICAgIF1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGVuZHBvaW50OiBzdHJpbmcsIGF1dGhPcHRpb25zOiBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICB0YWJsZU5hbWU6ICdwcm9kdWN0JyxcbiAgICAgIG1vZGVsOiBQcm9kdWN0SGFzdXJhR3JhcGhRTCxcbiAgICAgIGVuZHBvaW50LFxuICAgICAgYXV0aE9wdGlvbnMsXG4gICAgICBmaWVsZHM6IFtdLFxuICAgIH0pXG5cbiAgICBjb25zdCBjb21tb25GaWVsZHM6IEhhc3VyYUdyYXBoUUxGaWVsZHM8UHJvZHVjdEhhc3VyYUdyYXBoUUw+ID0gW1xuICAgICAgeyBpZDogeyBjb2x1bW5OYW1lOiAnaWQnLCB0bzogKHZhbHVlKSA9PiArdmFsdWUsIGZyb206ICh2YWx1ZSkgPT4gdmFsdWUudG9TdHJpbmcoKSB9IH0sXG4gICAgICB7IGZpcmVzdG9yZUlkOiB7IGNvbHVtbk5hbWU6ICdmaXJlc3RvcmVfaWQnIH0gfSxcbiAgICAgIHsgQ0VTVDogeyBjb2x1bW5OYW1lOiAnY2VzdCcgfSB9LFxuICAgICAgeyBFQU46IHsgY29sdW1uTmFtZTogJ2VhbicgfSB9LFxuICAgICAgeyBOQ006IHsgY29sdW1uTmFtZTogJ25jbScgfSB9LFxuICAgICAgJ2JyYW5kJyxcbiAgICAgIHsgY29zdFByaWNlOiB7IGNvbHVtbk5hbWU6ICdjb3N0X3ByaWNlJyB9IH0sXG4gICAgICB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgY29sdW1uTmFtZTogJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgICBmcm9tOiAoZGVzY3JpcHRpb24pID0+XG4gICAgICAgICAgICBPYmplY3QudmFsdWVzKFNob3BzKS5yZWR1Y2UoKHNob3BzLCBzaG9wKSA9PiAoeyAuLi5zaG9wcywgW3Nob3BdOiB7IGRlc2NyaXB0aW9uIH0gfSksIHt9KSxcbiAgICAgICAgICB0bzogKHZhbHVlKSA9PiBPYmplY3QudmFsdWVzKHZhbHVlKS5zaGlmdCgpLmRlc2NyaXB0aW9uLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHsgaGFzVmFyaWFudHM6IHsgY29sdW1uTmFtZTogJ2hhc192YXJpYW50cycgfSB9LFxuICAgICAgeyBpbWFnZXM6IHsgY29sdW1uTmFtZTogJ2ltYWdlcycsIHRvOiAodmFsdWUpID0+IGB7XCIke3ZhbHVlPy5qb2luPy4oYFwiLFwiYCkgfHwgJyd9XCJ9YCB9IH0sXG4gICAgICB7IG1pbmlhdHVyZXM6IHsgY29sdW1uTmFtZTogJ21pbmlhdHVyZXMnLCB0bzogKHZhbHVlKSA9PiBge1wiJHt2YWx1ZT8uam9pbj8uKGBcIixcImApIHx8ICcnfVwifWAgfSB9LFxuICAgICAgJ25hbWUnLFxuICAgICAge1xuICAgICAgICBwcmljZToge1xuICAgICAgICAgIGNvbHVtbk5hbWU6ICdwcmljZScsXG4gICAgICAgICAgZnJvbTogKHByaWNlLCBkYXRhKTogU2hvcHNQcmljZSA9PlxuICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhTaG9wcykucmVkdWNlKFxuICAgICAgICAgICAgICAocHJpY2VzOiBTaG9wc1ByaWNlLCBzaG9wKSA9PiAoe1xuICAgICAgICAgICAgICAgIC4uLnByaWNlcyxcbiAgICAgICAgICAgICAgICBbc2hvcF06IHtcbiAgICAgICAgICAgICAgICAgIHByaWNlLFxuICAgICAgICAgICAgICAgICAgZnVsbFByaWNlOiBkYXRhLmZ1bGxfcHJpY2UsXG4gICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlOiBkYXRhLnN1YnNjcmliZXJfZGlzY291bnRfcGVyY2VudGFnZSxcbiAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXJQcmljZTogZGF0YS5zdWJzY3JpYmVyX3ByaWNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgYmluZEZpbmRGaWx0ZXI6IChzZW50ZW5jZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVycyA9IE9iamVjdC52YWx1ZXMoc2VudGVuY2UpLnNoaWZ0KClcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uKChmaWx0ZXJzPy5wcmljZSB8fCBmaWx0ZXJzPy5wcmljZSA9PT0gMCkgJiYgeyBwcmljZTogZmlsdGVycy5wcmljZSB9KSxcbiAgICAgICAgICAgICAgLi4uKChmaWx0ZXJzLmZ1bGxQcmljZSB8fCBmaWx0ZXJzLmZ1bGxQcmljZSA9PT0gMCkgJiYgeyBmdWxsX3ByaWNlOiBmaWx0ZXJzLmZ1bGxQcmljZSB9KSxcbiAgICAgICAgICAgICAgLi4uKChmaWx0ZXJzLnN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2UgfHwgZmlsdGVycy5zdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlID09PSAwKSAmJiB7XG4gICAgICAgICAgICAgICAgc3Vic2NyaWJlcl9kaXNjb3VudF9wZXJjZW50YWdlOiBmaWx0ZXJzLnN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2UsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAuLi4oKGZpbHRlcnMuc3Vic2NyaWJlclByaWNlIHx8IGZpbHRlcnMuc3Vic2NyaWJlclByaWNlID09PSAwKSAmJiB7XG4gICAgICAgICAgICAgICAgc3Vic2NyaWJlcl9wcmljZTogZmlsdGVycy5zdWJzY3JpYmVyUHJpY2UsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgYmluZFBlcnNpc3REYXRhOiAodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByaWNlRGF0YSA9IE9iamVjdC52YWx1ZXModmFsdWUpLnNoaWZ0KClcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uKHByaWNlRGF0YT8ucHJpY2UgPj0gMCAmJiB7IHByaWNlOiBwcmljZURhdGEucHJpY2UgfSksXG4gICAgICAgICAgICAgIC4uLihwcmljZURhdGEuZnVsbFByaWNlID49IDAgJiYgeyBmdWxsX3ByaWNlOiBwcmljZURhdGEuZnVsbFByaWNlIH0pLFxuICAgICAgICAgICAgICAuLi4ocHJpY2VEYXRhLnN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2UgPj0gMCAmJiB7XG4gICAgICAgICAgICAgICAgc3Vic2NyaWJlcl9kaXNjb3VudF9wZXJjZW50YWdlOiBwcmljZURhdGEuc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIC4uLihwcmljZURhdGEuc3Vic2NyaWJlclByaWNlID49IDAgJiYgeyBzdWJzY3JpYmVyX3ByaWNlOiBwcmljZURhdGEuc3Vic2NyaWJlclByaWNlIH0pLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgeyBmdWxsUHJpY2U6IHsgY29sdW1uTmFtZTogJ2Z1bGxfcHJpY2UnIH0gfSxcbiAgICAgIHsgc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZTogeyBjb2x1bW5OYW1lOiAnc3Vic2NyaWJlcl9kaXNjb3VudF9wZXJjZW50YWdlJyB9IH0sXG4gICAgICB7IHN1YnNjcmliZXJQcmljZTogeyBjb2x1bW5OYW1lOiAnc3Vic2NyaWJlcl9wcmljZScgfSB9LFxuICAgICAgJ3B1Ymxpc2hlZCcsXG4gICAgICB7IHB1Ymxpc2hlZEdsYW06IHsgY29sdW1uTmFtZTogJ3B1Ymxpc2hlZF9nbGFtJyB9IH0sXG4gICAgICAnc2t1JyxcbiAgICAgIHtcbiAgICAgICAgc3RvY2s6IHtcbiAgICAgICAgICBjb2x1bW5OYW1lOiAnc3RvY2snLFxuICAgICAgICAgIGZyb206IChxdWFudGl0eTogbnVtYmVyKSA9PiAoeyBxdWFudGl0eSB9KSxcbiAgICAgICAgICB0bzogKHZhbHVlKSA9PiAoaXNOaWwodmFsdWU/LnF1YW50aXR5KSA/IHZhbHVlIDogdmFsdWU/LnF1YW50aXR5KSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICAnc2x1ZycsXG4gICAgICAndHlwZScsXG4gICAgICAndmlkZW8nLFxuICAgICAgJ3dlaWdodCcsXG4gICAgICB7XG4gICAgICAgIHNob3BBdmFpbGFiaWxpdHk6IHtcbiAgICAgICAgICBjb2x1bW5OYW1lOiAnc2hvcF9hdmFpbGFiaWxpdGllcycsXG4gICAgICAgICAgZmllbGRzOiBbJ3Nob3AnXSxcbiAgICAgICAgICBmcm9tOiAoc2hvcCkgPT4gKEFycmF5LmlzQXJyYXkoc2hvcCkgPyBzaG9wLm1hcCgocm93OiB7IHNob3A6IFNob3BzIH0pID0+IHJvdy5zaG9wKSA6IFtdKSxcbiAgICAgICAgICBiaW5kUGVyc2lzdERhdGE6IChzaG9wcykgPT4gKHsgc2hvcF9hdmFpbGFiaWxpdGllczogeyBkYXRhOiBzaG9wcy5tYXAoKHNob3A6IFNob3BzKSA9PiAoeyBzaG9wIH0pKSB9IH0pLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHsgdGFnczogeyBjb2x1bW5OYW1lOiAndGFncycsIHR5cGU6IEhhc3VyYUdyYXBoUUxDb2x1bW5UeXBlLkpzb25iIH0gfSxcbiAgICAgIHsgaXNLaXQ6IHsgY29sdW1uTmFtZTogJ2lzX2tpdCcgfSB9LFxuICAgICAgeyBjcmVhdGVkQXQ6IHsgY29sdW1uTmFtZTogJ2NyZWF0ZWRfYXQnIH0gfSxcbiAgICAgIHsgdXBkYXRlZEF0OiB7IGNvbHVtbk5hbWU6ICd1cGRhdGVkX2F0JyB9IH0sXG4gICAgICB7XG4gICAgICAgIHJhdGU6IHtcbiAgICAgICAgICBjb2x1bW5OYW1lOiAncmV2aWV3c19hZ2dyZWdhdGUnLFxuICAgICAgICAgIGZpZWxkczogW3sgYWdncmVnYXRlOiBbeyBhdmc6IFsncmF0ZSddIH1dIH1dLFxuICAgICAgICAgIGZyb206ICh2YWx1ZSkgPT4gdmFsdWUuYWdncmVnYXRlLmF2Zy5yYXRlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdXG5cbiAgICB0aGlzLmZpZWxkcyA9IFtcbiAgICAgIC4uLmNvbW1vbkZpZWxkcyxcbiAgICAgIHtcbiAgICAgICAgY2F0ZWdvcmllczoge1xuICAgICAgICAgIGNvbHVtbk5hbWU6ICdjYXRlZ29yaWVzJyxcbiAgICAgICAgICBmaWVsZHM6IFsnY2F0ZWdvcnlfaWQnXSxcbiAgICAgICAgICBiaW5kUGVyc2lzdERhdGE6ICh2YWx1ZSkgPT4gKHtcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IHsgZGF0YTogdmFsdWUubWFwKChjYXRlZ29yeSkgPT4gKHsgY2F0ZWdvcnlfaWQ6ICtjYXRlZ29yeSB9KSkgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0bzogKGNhdGVnb3JpZXMpID0+IGNhdGVnb3JpZXMubWFwKChjYXRlZ29yeUlkKSA9PiArY2F0ZWdvcnlJZCksXG4gICAgICAgICAgZnJvbTogKGNhdGVnb3JpZXM6IHsgY2F0ZWdvcnlfaWQ6IG51bWJlciB9W10pID0+XG4gICAgICAgICAgICBjYXRlZ29yaWVzPy5tYXAoKGNhdGVnb3J5KSA9PiBjYXRlZ29yeT8uY2F0ZWdvcnlfaWQ/LnRvU3RyaW5nKCkpIHx8IFtdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2l0UHJvZHVjdHM6IHtcbiAgICAgICAgICBjb2x1bW5OYW1lOiAna2l0X3Byb2R1Y3RzJyxcbiAgICAgICAgICBmb3JlaWduS2V5Q29sdW1uOiB7IHByb2R1Y3RJZDogJ2lkJyB9LFxuICAgICAgICAgIGZpZWxkczogW1xuICAgICAgICAgICAgeyBwcm9kdWN0SWQ6IHsgY29sdW1uTmFtZTogJ3Byb2R1Y3RfaWQnIH0gfSxcbiAgICAgICAgICAgIHsga2l0UHJvZHVjdElkOiB7IGNvbHVtbk5hbWU6ICdraXRfcHJvZHVjdF9pZCcgfSB9LFxuICAgICAgICAgICAgJ3F1YW50aXR5JyxcbiAgICAgICAgICAgIHsgcHJvZHVjdDogeyBjb2x1bW5OYW1lOiAncHJvZHVjdCcsIGZvcmVpZ25LZXlDb2x1bW46IHsgaWQ6ICdwcm9kdWN0X2lkJyB9LCBmaWVsZHM6IGNvbW1vbkZpZWxkcyB9IH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlKGRhdGE6IENyZWF0ZVJlcG9zaXRvcnlQYXJhbXM8UHJvZHVjdEhhc3VyYUdyYXBoUUw+KTogUHJvbWlzZTxQcm9kdWN0SGFzdXJhR3JhcGhRTD4ge1xuICAgIGNvbnN0IHByb2R1Y3QgPSBhd2FpdCBzdXBlci5jcmVhdGUob21pdChkYXRhLCBbJ3Jldmlld3MnXSkpXG5cbiAgICB0cnkge1xuICAgICAgcHJvZHVjdC5yZXZpZXdzID0gYXdhaXQgdGhpcy51cGRhdGVSZXZpZXdzKCtwcm9kdWN0LmlkLCBkYXRhKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBhd2FpdCB0aGlzLmRlbGV0ZSh7IGlkOiBwcm9kdWN0LmlkIH0pXG5cbiAgICAgIHRocm93IGVycm9yXG4gICAgfVxuXG4gICAgcmV0dXJuIHByb2R1Y3RcbiAgfVxuXG4gIGFzeW5jIGdldChpZGVudGlmaWVyczogR2V0UmVwb3NpdG9yeVBhcmFtczxQcm9kdWN0SGFzdXJhR3JhcGhRTD4pOiBQcm9taXNlPFByb2R1Y3RIYXN1cmFHcmFwaFFMPiB7XG4gICAgY29uc3QgcHJvZHVjdCA9IE51bWJlci5pc05hTigraWRlbnRpZmllcnMuaWQpXG4gICAgICA/IChhd2FpdCB0aGlzLmZpbmQoeyBmaWx0ZXJzOiB7IGZpcmVzdG9yZUlkOiBpZGVudGlmaWVycy5pZCB9IH0pKS5kYXRhPy5bMF1cbiAgICAgIDogYXdhaXQgc3VwZXIuZ2V0KGlkZW50aWZpZXJzKVxuXG4gICAgcHJvZHVjdC5yZXZpZXdzID0gYXdhaXQgdGhpcy5maW5kUmV2aWV3c0J5UHJvZHVjdCgrcHJvZHVjdC5pZClcblxuICAgIHJldHVybiBwcm9kdWN0XG4gIH1cblxuICBhc3luYyBnZXRCeVNsdWcoc2x1Zzogc3RyaW5nKTogUHJvbWlzZTxQcm9kdWN0SGFzdXJhR3JhcGhRTD4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZmluZCh7XG4gICAgICBmaWx0ZXJzOiB7XG4gICAgICAgIHNsdWcsXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBjb25zdCBwcm9kdWN0ID0gcmVzdWx0Py5kYXRhPy5zaGlmdCgpXG5cbiAgICBwcm9kdWN0LnJldmlld3MgPSBhd2FpdCB0aGlzLmZpbmRSZXZpZXdzQnlQcm9kdWN0KCtwcm9kdWN0LmlkKVxuXG4gICAgcmV0dXJuIHByb2R1Y3RcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZShwYXJhbXM6IFVwZGF0ZVJlcG9zaXRvcnlQYXJhbXM8UHJvZHVjdEhhc3VyYUdyYXBoUUw+KTogUHJvbWlzZTxQcm9kdWN0SGFzdXJhR3JhcGhRTD4ge1xuICAgIGNvbnN0IHsgY2F0ZWdvcmllcywga2l0UHJvZHVjdHMsIHJldmlld3MsIGlkOiBjaGVja0lkLCAuLi5kYXRhIH0gPSBwYXJhbXNcbiAgICBjb25zdCBwbGFpbkRhdGEgPSB0aGlzLnBhcmFtc1RvUGxhaW4oeyBpZDogY2hlY2tJZCB9KVxuICAgIGNvbnN0IGlkID0gYXdhaXQgdGhpcy5nZXRJZChwbGFpbkRhdGEuaWQpXG4gICAgY29uc3QgcHJvZHVjdCA9IGF3YWl0IHN1cGVyLnVwZGF0ZSh7IGlkLCAuLi5kYXRhIH0pXG5cbiAgICBwcm9kdWN0LmNhdGVnb3JpZXMgPSBjYXRlZ29yaWVzICYmIChhd2FpdCB0aGlzLnVwZGF0ZUNhdGVnb3JpZXMoK2lkLCB7IGNhdGVnb3JpZXMgfSkpXG4gICAgcHJvZHVjdC5raXRQcm9kdWN0cyA9IGtpdFByb2R1Y3RzICYmIChhd2FpdCB0aGlzLnVwZGF0ZUtpdFByb2R1Y3RzKCtpZCwgeyBraXRQcm9kdWN0cyB9KSlcbiAgICBwcm9kdWN0LnJldmlld3MgPSByZXZpZXdzICYmIChhd2FpdCB0aGlzLnVwZGF0ZVJldmlld3MoK2lkLCB7IHJldmlld3MgfSkpXG5cbiAgICByZXR1cm4gcHJvZHVjdFxuICB9XG5cbiAgYXN5bmMgZmV0Y2hSZXZpZXdzKHN0YXR1czogUmV2aWV3U3RhdHVzUGFyYW1zKTogUHJvbWlzZTxSZXZpZXdXaXRoUHJvZHVjdERhdGFbXT4ge1xuICAgIGNvbnN0IHJldmlld3MgPSB7XG4gICAgICBzdGF0dXM6XG4gICAgICAgIHN0YXR1cyA9PT0gJ3BlbmRpbmcnXG4gICAgICAgICAgPyB7IFtIYXN1cmFHcmFwaFFMV2hlcmUuSVNOVUxMXTogdHJ1ZSB9XG4gICAgICAgICAgOiB7IFtIYXN1cmFHcmFwaFFMV2hlcmUuRVFVQUxTXTogc3RhdHVzID09PSAnYXBwcm92ZWQnIH0sXG4gICAgfVxuICAgIGNvbnN0IHsgcHJvZHVjdDogZGF0YSB9ID0gYXdhaXQgdGhpcy5xdWVyeShcbiAgICAgICdwcm9kdWN0JyxcbiAgICAgIFsnaWQnLCAnbmFtZScsICdza3UnLCB7IHJldmlld3M6IHsgY29sdW1uTmFtZTogJ3Jldmlld3MnLCBmaWVsZHM6IHRoaXMucmV2aWV3c0ZpZWxkcyB9IH1dLFxuICAgICAge1xuICAgICAgICB3aGVyZTogeyB2YWx1ZTogeyByZXZpZXdzIH0sIHR5cGU6ICdwcm9kdWN0X2Jvb2xfZXhwJywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgIH0sXG4gICAgKVxuXG4gICAgcmV0dXJuIGRhdGEucmVkdWNlKFxuICAgICAgKHJldmlld3MsIHByb2R1Y3QpID0+IFtcbiAgICAgICAgLi4ucmV2aWV3cyxcbiAgICAgICAgLi4ucHJvZHVjdC5yZXZpZXdzXG4gICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgIChyZXZpZXcpID0+XG4gICAgICAgICAgICAgIChzdGF0dXMgPT09ICdwZW5kaW5nJyAmJiBbdW5kZWZpbmVkLCBudWxsXS5pbmNsdWRlcyhyZXZpZXcuc3RhdHVzKSkgfHxcbiAgICAgICAgICAgICAgKHN0YXR1cyA9PT0gJ2FwcHJvdmVkJyAmJiByZXZpZXcuc3RhdHVzID09PSB0cnVlKSB8fFxuICAgICAgICAgICAgICAoc3RhdHVzID09PSAncmVqZWN0ZWQnICYmIHJldmlldy5zdGF0dXMgPT09IGZhbHNlKSxcbiAgICAgICAgICApXG4gICAgICAgICAgLm1hcCgocmV2aWV3KSA9PiAoe1xuICAgICAgICAgICAgLi4udGhpcy5iaW5kUmV2aWV3VG9Nb2RlbChyZXZpZXcpLFxuICAgICAgICAgICAgcHJvZHVjdElkOiBwcm9kdWN0LmlkLFxuICAgICAgICAgICAgcHJvZHVjdE5hbWU6IHByb2R1Y3QubmFtZSxcbiAgICAgICAgICAgIHByb2R1Y3RTa3U6IHByb2R1Y3Quc2t1LFxuICAgICAgICAgIH0pKSxcbiAgICAgIF0sXG4gICAgICBbXSBhcyBSZXZpZXdXaXRoUHJvZHVjdERhdGFbXSxcbiAgICApXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUNhdGVnb3JpZXMoXG4gICAgcHJvZHVjdElkOiBudW1iZXIsXG4gICAgeyBjYXRlZ29yaWVzIH06IFBpY2s8VXBkYXRlUmVwb3NpdG9yeVBhcmFtczxQcm9kdWN0SGFzdXJhR3JhcGhRTD4sICdjYXRlZ29yaWVzJz4sXG4gICk6IFByb21pc2U8UHJvZHVjdEhhc3VyYUdyYXBoUUxbJ2NhdGVnb3JpZXMnXT4ge1xuICAgIGNvbnN0IHBsYWluRGF0YSA9IHRoaXMucGFyYW1zVG9QbGFpbih7IGNhdGVnb3JpZXMgfSlcblxuICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ2RlbGV0ZV9jYXRlZ29yeV9wcm9kdWN0JywgWydhZmZlY3RlZF9yb3dzJ10sIHtcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIHR5cGU6ICdjYXRlZ29yeV9wcm9kdWN0X2Jvb2xfZXhwJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIHZhbHVlOiB7IHByb2R1Y3RfaWQ6IHsgX2VxOiBwcm9kdWN0SWQgfSB9LFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgYXdhaXQgdGhpcy5tdXRhdGlvbignaW5zZXJ0X2NhdGVnb3J5X3Byb2R1Y3QnLCBbJ2FmZmVjdGVkX3Jvd3MnXSwge1xuICAgICAgb2JqZWN0czoge1xuICAgICAgICB0eXBlOiAnW2NhdGVnb3J5X3Byb2R1Y3RfaW5zZXJ0X2lucHV0IV0nLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IHBsYWluRGF0YS5jYXRlZ29yaWVzLm1hcCgoY2F0ZWdvcnlJZCkgPT4gKHsgY2F0ZWdvcnlfaWQ6IGNhdGVnb3J5SWQsIHByb2R1Y3RfaWQ6IHByb2R1Y3RJZCB9KSksXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICByZXR1cm4gcGxhaW5EYXRhLmNhdGVnb3JpZXNcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlS2l0UHJvZHVjdHMoXG4gICAgcHJvZHVjdElkOiBudW1iZXIsXG4gICAgeyBraXRQcm9kdWN0cyB9OiBQaWNrPFVwZGF0ZVJlcG9zaXRvcnlQYXJhbXM8UHJvZHVjdEhhc3VyYUdyYXBoUUw+LCAna2l0UHJvZHVjdHMnPixcbiAgKTogUHJvbWlzZTxQcm9kdWN0SGFzdXJhR3JhcGhRTFsna2l0UHJvZHVjdHMnXT4ge1xuICAgIGNvbnN0IHBsYWluRGF0YSA9IHRoaXMucGFyYW1zVG9QbGFpbih7IGtpdFByb2R1Y3RzIH0pXG5cbiAgICBhd2FpdCB0aGlzLm11dGF0aW9uKCdkZWxldGVfcHJvZHVjdF9raXQnLCBbJ2FmZmVjdGVkX3Jvd3MnXSwge1xuICAgICAgd2hlcmU6IHtcbiAgICAgICAgdHlwZTogJ3Byb2R1Y3Rfa2l0X2Jvb2xfZXhwJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIHZhbHVlOiB7IHByb2R1Y3RfaWQ6IHsgX2VxOiBwcm9kdWN0SWQgfSB9LFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgYXdhaXQgdGhpcy5tdXRhdGlvbignaW5zZXJ0X3Byb2R1Y3Rfa2l0JywgWydhZmZlY3RlZF9yb3dzJ10sIHtcbiAgICAgIG9iamVjdHM6IHtcbiAgICAgICAgdHlwZTogJ1twcm9kdWN0X2tpdF9pbnNlcnRfaW5wdXQhXScsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB2YWx1ZTogcGxhaW5EYXRhLmtpdFByb2R1Y3RzLm1hcCgoa2l0UHJvZHVjdCkgPT4gKHtcbiAgICAgICAgICBraXRfcHJvZHVjdF9pZDoga2l0UHJvZHVjdC5wcm9kdWN0SWQgfHwga2l0UHJvZHVjdC5wcm9kdWN0LmlkLFxuICAgICAgICAgIHByb2R1Y3RfaWQ6IHByb2R1Y3RJZCxcbiAgICAgICAgICBxdWFudGl0eToga2l0UHJvZHVjdC5xdWFudGl0eSxcbiAgICAgICAgfSkpLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgcmV0dXJuIHBsYWluRGF0YS5raXRQcm9kdWN0c1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVSZXZpZXdzKFxuICAgIHByb2R1Y3RJZDogbnVtYmVyLFxuICAgIHsgcmV2aWV3cyB9OiBQaWNrPFVwZGF0ZVJlcG9zaXRvcnlQYXJhbXM8UHJvZHVjdEhhc3VyYUdyYXBoUUw+LCAncmV2aWV3cyc+LFxuICApOiBQcm9taXNlPFByb2R1Y3RSZXZpZXdbXT4ge1xuICAgIGlmICghcmV2aWV3cykgcmV0dXJuIFtdXG4gICAgaWYgKCdhY3Rpb24nIGluIHJldmlld3MgJiYgcmV2aWV3cy5hY3Rpb24gPT09ICdyZW1vdmUnKSB7XG4gICAgICBjb25zdCByZXZpZXdJZHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgcmV2aWV3cy52YWx1ZS5tYXAoYXN5bmMgKHJldmlld0RhdGEpID0+IHtcbiAgICAgICAgICBjb25zdCByZXZpZXcgPSBhd2FpdCB0aGlzLmZpbmRSZXZpZXcocmV2aWV3RGF0YSwgcHJvZHVjdElkKVxuXG4gICAgICAgICAgcmV0dXJuIHJldmlldz8uaWRcbiAgICAgICAgfSksXG4gICAgICApXG5cbiAgICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ2RlbGV0ZV9wcm9kdWN0X3JldmlldycsIFsnYWZmZWN0ZWRfcm93cyddLCB7XG4gICAgICAgIHdoZXJlOiB7IHZhbHVlOiB7IGlkOiB7IF9pbjogcmV2aWV3SWRzLmZpbHRlcihCb29sZWFuKSB9IH0sIHR5cGU6ICdwcm9kdWN0X3Jldmlld19ib29sX2V4cCcsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICB9KVxuXG4gICAgICByZXR1cm4gcmV2aWV3cy52YWx1ZS5tYXAoKHJldmlldywgaW5kZXgpID0+ICFyZXZpZXdJZHNbaW5kZXhdICYmIHJldmlldykuZmlsdGVyKEJvb2xlYW4pXG4gICAgfVxuXG4gICAgY29uc3QgcGxhaW5EYXRhID0gdGhpcy5wYXJhbXNUb1BsYWluKHsgcmV2aWV3cyB9KVxuXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgICAgcGxhaW5EYXRhLnJldmlld3MubWFwKGFzeW5jIChyZXZpZXdEYXRhKSA9PiB7XG4gICAgICAgIGNvbnN0IHJldmlldyA9IGF3YWl0IHRoaXMuZmluZFJldmlldyhyZXZpZXdEYXRhLCBwcm9kdWN0SWQpXG5cbiAgICAgICAgaWYgKHJldmlldy5pZClcbiAgICAgICAgICByZXR1cm4gdGhpcy5iaW5kUmV2aWV3VG9Nb2RlbChcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5tdXRhdGlvbigndXBkYXRlX3Byb2R1Y3RfcmV2aWV3X2J5X3BrJywgdGhpcy5yZXZpZXdzRmllbGRzLCB7XG4gICAgICAgICAgICAgICAgcGtfY29sdW1uczoge1xuICAgICAgICAgICAgICAgICAgdmFsdWU6IHsgaWQ6IHJldmlldy5pZCB9LFxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3Byb2R1Y3RfcmV2aWV3X3BrX2NvbHVtbnNfaW5wdXQnLFxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBfc2V0OiB7XG4gICAgICAgICAgICAgICAgICB2YWx1ZTogb21pdCh0aGlzLmJpbmRSZXZpZXdUb0hhc3VyYShyZXZpZXdEYXRhKSwgWydpZCcsICdwcm9kdWN0X2lkJ10pLFxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3Byb2R1Y3RfcmV2aWV3X3NldF9pbnB1dCcsXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKS51cGRhdGVfcHJvZHVjdF9yZXZpZXdfYnlfcGssXG4gICAgICAgICAgKVxuXG4gICAgICAgIHJldHVybiB0aGlzLmJpbmRSZXZpZXdUb01vZGVsKFxuICAgICAgICAgIChcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ2luc2VydF9wcm9kdWN0X3Jldmlld19vbmUnLCB0aGlzLnJldmlld3NGaWVsZHMsIHtcbiAgICAgICAgICAgICAgb2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IG9taXQoeyAuLi50aGlzLmJpbmRSZXZpZXdUb0hhc3VyYShyZXZpZXdEYXRhKSwgcHJvZHVjdF9pZDogcHJvZHVjdElkIH0sIFsnaWQnXSksXG4gICAgICAgICAgICAgICAgdHlwZTogJ3Byb2R1Y3RfcmV2aWV3X2luc2VydF9pbnB1dCcsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICkuaW5zZXJ0X3Byb2R1Y3RfcmV2aWV3X29uZSxcbiAgICAgICAgKVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRJZChpZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAoIU51bWJlci5pc05hTigraWQpKSByZXR1cm4gaWRcblxuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5maW5kKHsgZmlsdGVyczogeyBmaXJlc3RvcmVJZDogaWQgfSB9KVxuXG4gICAgaWYgKGRhdGE/LlswXT8uaWQpIHJldHVybiBkYXRhPy5bMF0/LmlkXG5cbiAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgUHJvZHVjdCB3aXRoIGlkICR7aWR9IG5vdCBmb3VuZGApXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZpbmRSZXZpZXdzQnlQcm9kdWN0KHByb2R1Y3RJZDogbnVtYmVyKTogUHJvbWlzZTxQcm9kdWN0UmV2aWV3W10+IHtcbiAgICBjb25zdCB7IHByb2R1Y3RfcmV2aWV3OiBkYXRhIH0gPSBhd2FpdCB0aGlzLnF1ZXJ5KCdwcm9kdWN0X3JldmlldycsIHRoaXMucmV2aWV3c0ZpZWxkcywge1xuICAgICAgd2hlcmU6IHtcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICBwcm9kdWN0X2lkOiB7IF9lcTogcHJvZHVjdElkIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6ICdwcm9kdWN0X3Jldmlld19ib29sX2V4cCcsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgcmV0dXJuIGRhdGEgJiYgZGF0YS5tYXAoKHJldmlldykgPT4gdGhpcy5iaW5kUmV2aWV3VG9Nb2RlbChyZXZpZXcpKVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmaW5kUmV2aWV3KHJldmlldzogUHJvZHVjdFJldmlldywgcHJvZHVjdElkOiBudW1iZXIpOiBQcm9taXNlPFByb2R1Y3RSZXZpZXc+IHtcbiAgICBpZiAocmV2aWV3LmlkKSByZXR1cm4gcmV2aWV3XG5cbiAgICBsZXQgbG9hZGVkUmV2aWV3OiBQcm9kdWN0UmV2aWV3XG5cbiAgICBpZiAocmV2aWV3LnBlcnNvbklkKSBsb2FkZWRSZXZpZXcgPSBhd2FpdCB0aGlzLmdldFJldmlld0J5UGVyc29uSWQocmV2aWV3LnBlcnNvbklkLCBwcm9kdWN0SWQpXG4gICAgaWYgKCFsb2FkZWRSZXZpZXcgJiYgcmV2aWV3LmF1dGhvciAmJiByZXZpZXcuZW1haWwpXG4gICAgICBsb2FkZWRSZXZpZXcgPSBhd2FpdCB0aGlzLmdldFJldmlld0J5QXV0aG9yQW5kRW1haWwocmV2aWV3LmF1dGhvciwgcmV2aWV3LmVtYWlsLCBwcm9kdWN0SWQpXG5cbiAgICByZXR1cm4gbG9hZGVkUmV2aWV3IHx8IHJldmlld1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRSZXZpZXdCeVBlcnNvbklkKHBlcnNvbklkOiBudW1iZXIsIHByb2R1Y3RJZDogbnVtYmVyKTogUHJvbWlzZTxQcm9kdWN0UmV2aWV3PiB7XG4gICAgY29uc3QgeyBwcm9kdWN0X3JldmlldzogZGF0YSB9ID0gYXdhaXQgdGhpcy5xdWVyeSgncHJvZHVjdF9yZXZpZXcnLCB0aGlzLnJldmlld3NGaWVsZHMsIHtcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgcHJvZHVjdF9pZDogeyBfZXE6IHByb2R1Y3RJZCB9LFxuICAgICAgICAgIHBlcnNvbl9pZDogeyBfZXE6IHBlcnNvbklkIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IGBwcm9kdWN0X3Jldmlld19ib29sX2V4cGAsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgcmV0dXJuIGRhdGEgJiYgZGF0YVswXSAmJiB0aGlzLmJpbmRSZXZpZXdUb01vZGVsKGRhdGFbMF0pXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFJldmlld0J5QXV0aG9yQW5kRW1haWwoYXV0aG9yOiBzdHJpbmcsIGVtYWlsOiBzdHJpbmcsIHByb2R1Y3RJZDogbnVtYmVyKTogUHJvbWlzZTxQcm9kdWN0UmV2aWV3PiB7XG4gICAgY29uc3QgeyBwcm9kdWN0X3JldmlldzogZGF0YSB9ID0gYXdhaXQgdGhpcy5xdWVyeSgncHJvZHVjdF9yZXZpZXcnLCB0aGlzLnJldmlld3NGaWVsZHMsIHtcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgcHJvZHVjdF9pZDogeyBfZXE6IHByb2R1Y3RJZCB9LFxuICAgICAgICAgIGF1dGhvcjogeyBfZXE6IGF1dGhvciB9LFxuICAgICAgICAgIGVtYWlsOiB7IF9lcTogZW1haWwgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogYHByb2R1Y3RfcmV2aWV3X2Jvb2xfZXhwYCxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICByZXR1cm4gZGF0YSAmJiBkYXRhWzBdICYmIHRoaXMuYmluZFJldmlld1RvTW9kZWwoZGF0YVswXSlcbiAgfVxuXG4gIHByaXZhdGUgYmluZFJldmlld1RvTW9kZWwgPSAocGxhaW46IFJlY29yZDxzdHJpbmcsIGFueT4pOiBQcm9kdWN0UmV2aWV3ID0+ICh7XG4gICAgLi4ub21pdChwbGFpbiwgWydwcm9kdWN0X2lkJywgJ2NyZWF0ZWRfYXQnLCAndXBkYXRlZF9hdCcsICdwZXJzb25faWQnLCAnb3JkZXJfaWQnXSksXG4gICAgY3JlYXRlZEF0OiB0eXBlb2YgcGxhaW4uY3JlYXRlZF9hdCA9PT0gJ3N0cmluZycgPyBuZXcgRGF0ZShwbGFpbi5jcmVhdGVkX2F0KSA6IHBsYWluLmNyZWF0ZWRfYXQsXG4gICAgdXBkYXRlZEF0OiB0eXBlb2YgcGxhaW4udXBkYXRlZF9hdCA9PT0gJ3N0cmluZycgPyBuZXcgRGF0ZShwbGFpbi51cGRhdGVkX2F0KSA6IHBsYWluLnVwZGF0ZWRfYXQsXG4gICAgcGVyc29uSWQ6IHBsYWluLnBlcnNvbl9pZCxcbiAgICBvcmRlcklkOiBwbGFpbi5vcmRlcl9pZCxcbiAgfSlcblxuICBwcml2YXRlIGJpbmRSZXZpZXdUb0hhc3VyYSA9IChyZXZpZXc6IFByb2R1Y3RSZXZpZXcpOiBQcm9kdWN0UmV2aWV3RmllbGRzID0+ICh7XG4gICAgLi4ub21pdChyZXZpZXcsIFsncHJvZHVjdElkJywgJ2NyZWF0ZWRBdCcsICd1cGRhdGVkQXQnLCAncGVyc29uSWQnLCAnb3JkZXJJZCddKSxcbiAgICBwZXJzb25faWQ6IHJldmlldy5wZXJzb25JZCxcbiAgICBvcmRlcl9pZDogcmV2aWV3Lm9yZGVySWQsXG4gIH0pXG59XG4iXX0=
@@ -1,100 +0,0 @@
1
- import { __awaiter, __rest } from "tslib";
2
- import { Shops } from '../../../../domain';
3
- import { NotFoundError } from '../../../../errors';
4
- import { Base, isNil } from '../../../../utils';
5
- import { withCrudHasuraGraphQL, withHasuraGraphQL } from '../../mixins';
6
- import { VariantHasuraGraphQL } from '../../models';
7
- export class VariantHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGraphQL(Base)) {
8
- constructor(endpoint, authOptions) {
9
- super({
10
- tableName: 'product',
11
- model: VariantHasuraGraphQL,
12
- endpoint,
13
- authOptions,
14
- fields: [
15
- { id: { columnName: 'id', to: (value) => +value, from: (value) => value.toString() } },
16
- { firestoreId: { columnName: 'firestore_id' } },
17
- { productId: { columnName: 'main_product_id', to: (value) => +value, from: (value) => value === null || value === void 0 ? void 0 : value.toString() } },
18
- { EAN: { columnName: 'ean' } },
19
- { costPrice: { columnName: 'cost_price' } },
20
- {
21
- price: {
22
- columnName: 'price',
23
- from: (price, data) => Object.values(Shops).reduce((prices, shop) => (Object.assign(Object.assign({}, prices), { [shop]: {
24
- price,
25
- fullPrice: data.full_price,
26
- subscriberDiscountPercentage: data.subscriber_discount_percentage,
27
- subscriberPrice: data.subscriber_price,
28
- } })), {}),
29
- bindFindFilter: (sentence) => {
30
- const filters = Object.values(sentence).shift();
31
- return Object.assign(Object.assign(Object.assign(Object.assign({}, (((filters === null || filters === void 0 ? void 0 : filters.price) || (filters === null || filters === void 0 ? void 0 : filters.price) === 0) && { price: filters.price })), ((filters.fullPrice || filters.fullPrice === 0) && { full_price: filters.fullPrice })), ((filters.subscriberDiscountPercentage || filters.subscriberDiscountPercentage === 0) && {
32
- subscriber_discount_percentage: filters.subscriberDiscountPercentage,
33
- })), ((filters.subscriberPrice || filters.subscriberPrice === 0) && {
34
- subscriber_price: filters.subscriberPrice,
35
- }));
36
- },
37
- bindPersistData: (value) => {
38
- const priceData = Object.values(value).shift();
39
- return Object.assign(Object.assign(Object.assign(Object.assign({}, ((priceData === null || priceData === void 0 ? void 0 : priceData.price) >= 0 && { price: priceData.price })), (priceData.fullPrice >= 0 && { full_price: priceData.fullPrice })), (priceData.subscriberDiscountPercentage >= 0 && {
40
- subscriber_discount_percentage: priceData.subscriberDiscountPercentage,
41
- })), (priceData.subscriberPrice >= 0 && { subscriber_price: priceData.subscriberPrice }));
42
- },
43
- },
44
- },
45
- { fullPrice: { columnName: 'full_price' } },
46
- { subscriberDiscountPercentage: { columnName: 'subscriber_discount_percentage' } },
47
- { subscriberPrice: { columnName: 'subscriber_price' } },
48
- 'sku',
49
- {
50
- stock: {
51
- columnName: 'stock',
52
- from: (quantity) => ({ quantity }),
53
- to: (value) => (isNil(value === null || value === void 0 ? void 0 : value.quantity) ? value : value === null || value === void 0 ? void 0 : value.quantity),
54
- },
55
- },
56
- 'weight',
57
- { name: { to: () => '', from: () => undefined } },
58
- { hasVariants: { columnName: 'has_variants', to: () => false, from: () => undefined } },
59
- { createdAt: { columnName: 'created_at' } },
60
- { updatedAt: { columnName: 'updated_at' } },
61
- ],
62
- });
63
- }
64
- get(identifiers) {
65
- const _super = Object.create(null, {
66
- get: { get: () => super.get }
67
- });
68
- var _a;
69
- return __awaiter(this, void 0, void 0, function* () {
70
- return Number.isNaN(+identifiers.id)
71
- ? (_a = (yield this.find({ filters: { firestoreId: identifiers.id } })).data) === null || _a === void 0 ? void 0 : _a[0]
72
- : _super.get.call(this, identifiers);
73
- });
74
- }
75
- update(params) {
76
- const _super = Object.create(null, {
77
- update: { get: () => super.update }
78
- });
79
- return __awaiter(this, void 0, void 0, function* () {
80
- const { productId, id: checkId } = params, data = __rest(params, ["productId", "id"]);
81
- const dataWithProductId = this.paramsToPlain({ id: checkId, productId });
82
- const id = yield this.getId(dataWithProductId.id);
83
- const product = yield _super.update.call(this, Object.assign({ id }, data));
84
- product.productId = dataWithProductId.productId;
85
- return product;
86
- });
87
- }
88
- getId(id) {
89
- var _a, _b;
90
- return __awaiter(this, void 0, void 0, function* () {
91
- if (!Number.isNaN(+id))
92
- return id;
93
- const { data } = yield this.find({ filters: { firestoreId: id } });
94
- if ((_a = data === null || data === void 0 ? void 0 : data[0]) === null || _a === void 0 ? void 0 : _a.id)
95
- return (_b = data === null || data === void 0 ? void 0 : data[0]) === null || _b === void 0 ? void 0 : _b.id;
96
- throw new NotFoundError(`Product with id ${id} not found`);
97
- });
98
- }
99
- }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvcmVwb3NpdG9yaWVzL2NhdGFsb2cvdmFyaWFudC1oYXN1cmEtZ3JhcGhxbC5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQXVCLEtBQUssRUFBeUQsTUFBTSxvQkFBb0IsQ0FBQTtBQUN0SCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDdkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBR25ELE1BQU0sT0FBTyw4QkFDWCxTQUFRLHFCQUFxQixDQUFDLGlCQUFpQixDQUF1QixJQUFJLENBQUMsQ0FBQztJQUc1RSxZQUFZLFFBQWdCLEVBQUUsV0FBcUM7UUFDakUsS0FBSyxDQUFDO1lBQ0osU0FBUyxFQUFFLFNBQVM7WUFDcEIsS0FBSyxFQUFFLG9CQUFvQjtZQUMzQixRQUFRO1lBQ1IsV0FBVztZQUNYLE1BQU0sRUFBRTtnQkFDTixFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFO2dCQUN0RixFQUFFLFdBQVcsRUFBRSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsRUFBRTtnQkFDL0MsRUFBRSxTQUFTLEVBQUUsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO2dCQUMzRyxFQUFFLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDOUIsRUFBRSxTQUFTLEVBQUUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEVBQUU7Z0JBQzNDO29CQUNFLEtBQUssRUFBRTt3QkFDTCxVQUFVLEVBQUUsT0FBTzt3QkFDbkIsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksRUFBYyxFQUFFLENBQ2hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUN6QixDQUFDLE1BQWtCLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxpQ0FDekIsTUFBTSxLQUNULENBQUMsSUFBSSxDQUFDLEVBQUU7Z0NBQ04sS0FBSztnQ0FDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0NBQzFCLDRCQUE0QixFQUFFLElBQUksQ0FBQyw4QkFBOEI7Z0NBQ2pFLGVBQWUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCOzZCQUN2QyxJQUNELEVBQ0YsRUFBRSxDQUNIO3dCQUNILGNBQWMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFOzRCQUMzQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBOzRCQUUvQyxtRUFDSyxDQUFDLENBQUMsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsS0FBSyxLQUFJLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEtBQUssTUFBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsR0FDdEUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsR0FDckYsQ0FBQyxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsSUFBSSxPQUFPLENBQUMsNEJBQTRCLEtBQUssQ0FBQyxDQUFDLElBQUk7Z0NBQzFGLDhCQUE4QixFQUFFLE9BQU8sQ0FBQyw0QkFBNEI7NkJBQ3JFLENBQUMsR0FDQyxDQUFDLENBQUMsT0FBTyxDQUFDLGVBQWUsSUFBSSxPQUFPLENBQUMsZUFBZSxLQUFLLENBQUMsQ0FBQyxJQUFJO2dDQUNoRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZUFBZTs2QkFDMUMsQ0FBQyxFQUNIO3dCQUNILENBQUM7d0JBQ0QsZUFBZSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7NEJBQ3pCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUE7NEJBRTlDLG1FQUNLLENBQUMsQ0FBQSxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsS0FBSyxLQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsR0FDckQsQ0FBQyxTQUFTLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsR0FDakUsQ0FBQyxTQUFTLENBQUMsNEJBQTRCLElBQUksQ0FBQyxJQUFJO2dDQUNqRCw4QkFBOEIsRUFBRSxTQUFTLENBQUMsNEJBQTRCOzZCQUN2RSxDQUFDLEdBQ0MsQ0FBQyxTQUFTLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxFQUN2Rjt3QkFDSCxDQUFDO3FCQUNGO2lCQUNGO2dCQUNELEVBQUUsU0FBUyxFQUFFLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxFQUFFO2dCQUMzQyxFQUFFLDRCQUE0QixFQUFFLEVBQUUsVUFBVSxFQUFFLGdDQUFnQyxFQUFFLEVBQUU7Z0JBQ2xGLEVBQUUsZUFBZSxFQUFFLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLEVBQUU7Z0JBQ3ZELEtBQUs7Z0JBQ0w7b0JBQ0UsS0FBSyxFQUFFO3dCQUNMLFVBQVUsRUFBRSxPQUFPO3dCQUNuQixJQUFJLEVBQUUsQ0FBQyxRQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUM7d0JBQzFDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxRQUFRLENBQUM7cUJBQ2xFO2lCQUNGO2dCQUNELFFBQVE7Z0JBQ1IsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDakQsRUFBRSxXQUFXLEVBQUUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUN2RixFQUFFLFNBQVMsRUFBRSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsRUFBRTtnQkFDM0MsRUFBRSxTQUFTLEVBQUUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEVBQUU7YUFDNUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUssR0FBRyxDQUFDLFdBQXNEOzs7Ozs7WUFDOUQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLE1BQUEsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksMENBQUcsQ0FBQyxDQUFDO2dCQUMzRSxDQUFDLENBQUMsT0FBTSxHQUFHLFlBQUMsV0FBVyxDQUFDLENBQUE7O0tBQzNCO0lBRUssTUFBTSxDQUFDLE1BQW9EOzs7OztZQUMvRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxPQUFPLEtBQWMsTUFBTSxFQUFmLElBQUksVUFBSyxNQUFNLEVBQTVDLG1CQUFtQyxDQUFTLENBQUE7WUFDbEQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO1lBQ3hFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUNqRCxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU0sTUFBTSw0QkFBRyxFQUFFLElBQUssSUFBSSxFQUFHLENBQUE7WUFFbkQsT0FBTyxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUE7WUFFL0MsT0FBTyxPQUFPLENBQUE7UUFDaEIsQ0FBQztLQUFBO0lBRWEsS0FBSyxDQUFDLEVBQVU7OztZQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFBRSxPQUFPLEVBQUUsQ0FBQTtZQUVqQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtZQUVsRSxJQUFJLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFHLENBQUMsQ0FBQywwQ0FBRSxFQUFFO2dCQUFFLE9BQU8sTUFBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUcsQ0FBQyxDQUFDLDBDQUFFLEVBQUUsQ0FBQTtZQUV2QyxNQUFNLElBQUksYUFBYSxDQUFDLG1CQUFtQixFQUFFLFlBQVksQ0FBQyxDQUFBOztLQUMzRDtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0UmVwb3NpdG9yeVBhcmFtcywgU2hvcHMsIFNob3BzUHJpY2UsIFVwZGF0ZVJlcG9zaXRvcnlQYXJhbXMsIFZhcmlhbnRSZXBvc2l0b3J5IH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgTm90Rm91bmRFcnJvciB9IGZyb20gJy4uLy4uLy4uLy4uL2Vycm9ycydcbmltcG9ydCB7IEJhc2UsIGlzTmlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyB3aXRoQ3J1ZEhhc3VyYUdyYXBoUUwsIHdpdGhIYXN1cmFHcmFwaFFMIH0gZnJvbSAnLi4vLi4vbWl4aW5zJ1xuaW1wb3J0IHsgVmFyaWFudEhhc3VyYUdyYXBoUUwgfSBmcm9tICcuLi8uLi9tb2RlbHMnXG5pbXBvcnQgeyBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcydcblxuZXhwb3J0IGNsYXNzIFZhcmlhbnRIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeVxuICBleHRlbmRzIHdpdGhDcnVkSGFzdXJhR3JhcGhRTCh3aXRoSGFzdXJhR3JhcGhRTDxWYXJpYW50SGFzdXJhR3JhcGhRTD4oQmFzZSkpXG4gIGltcGxlbWVudHMgVmFyaWFudFJlcG9zaXRvcnlcbntcbiAgY29uc3RydWN0b3IoZW5kcG9pbnQ6IHN0cmluZywgYXV0aE9wdGlvbnM6IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIHRhYmxlTmFtZTogJ3Byb2R1Y3QnLFxuICAgICAgbW9kZWw6IFZhcmlhbnRIYXN1cmFHcmFwaFFMLFxuICAgICAgZW5kcG9pbnQsXG4gICAgICBhdXRoT3B0aW9ucyxcbiAgICAgIGZpZWxkczogW1xuICAgICAgICB7IGlkOiB7IGNvbHVtbk5hbWU6ICdpZCcsIHRvOiAodmFsdWUpID0+ICt2YWx1ZSwgZnJvbTogKHZhbHVlKSA9PiB2YWx1ZS50b1N0cmluZygpIH0gfSxcbiAgICAgICAgeyBmaXJlc3RvcmVJZDogeyBjb2x1bW5OYW1lOiAnZmlyZXN0b3JlX2lkJyB9IH0sXG4gICAgICAgIHsgcHJvZHVjdElkOiB7IGNvbHVtbk5hbWU6ICdtYWluX3Byb2R1Y3RfaWQnLCB0bzogKHZhbHVlKSA9PiArdmFsdWUsIGZyb206ICh2YWx1ZSkgPT4gdmFsdWU/LnRvU3RyaW5nKCkgfSB9LFxuICAgICAgICB7IEVBTjogeyBjb2x1bW5OYW1lOiAnZWFuJyB9IH0sXG4gICAgICAgIHsgY29zdFByaWNlOiB7IGNvbHVtbk5hbWU6ICdjb3N0X3ByaWNlJyB9IH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcmljZToge1xuICAgICAgICAgICAgY29sdW1uTmFtZTogJ3ByaWNlJyxcbiAgICAgICAgICAgIGZyb206IChwcmljZSwgZGF0YSk6IFNob3BzUHJpY2UgPT5cbiAgICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhTaG9wcykucmVkdWNlKFxuICAgICAgICAgICAgICAgIChwcmljZXM6IFNob3BzUHJpY2UsIHNob3ApID0+ICh7XG4gICAgICAgICAgICAgICAgICAuLi5wcmljZXMsXG4gICAgICAgICAgICAgICAgICBbc2hvcF06IHtcbiAgICAgICAgICAgICAgICAgICAgcHJpY2UsXG4gICAgICAgICAgICAgICAgICAgIGZ1bGxQcmljZTogZGF0YS5mdWxsX3ByaWNlLFxuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlOiBkYXRhLnN1YnNjcmliZXJfZGlzY291bnRfcGVyY2VudGFnZSxcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlclByaWNlOiBkYXRhLnN1YnNjcmliZXJfcHJpY2UsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgYmluZEZpbmRGaWx0ZXI6IChzZW50ZW5jZSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJzID0gT2JqZWN0LnZhbHVlcyhzZW50ZW5jZSkuc2hpZnQoKVxuXG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uKChmaWx0ZXJzPy5wcmljZSB8fCBmaWx0ZXJzPy5wcmljZSA9PT0gMCkgJiYgeyBwcmljZTogZmlsdGVycy5wcmljZSB9KSxcbiAgICAgICAgICAgICAgICAuLi4oKGZpbHRlcnMuZnVsbFByaWNlIHx8IGZpbHRlcnMuZnVsbFByaWNlID09PSAwKSAmJiB7IGZ1bGxfcHJpY2U6IGZpbHRlcnMuZnVsbFByaWNlIH0pLFxuICAgICAgICAgICAgICAgIC4uLigoZmlsdGVycy5zdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlIHx8IGZpbHRlcnMuc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZSA9PT0gMCkgJiYge1xuICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlcl9kaXNjb3VudF9wZXJjZW50YWdlOiBmaWx0ZXJzLnN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2UsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgLi4uKChmaWx0ZXJzLnN1YnNjcmliZXJQcmljZSB8fCBmaWx0ZXJzLnN1YnNjcmliZXJQcmljZSA9PT0gMCkgJiYge1xuICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlcl9wcmljZTogZmlsdGVycy5zdWJzY3JpYmVyUHJpY2UsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBiaW5kUGVyc2lzdERhdGE6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBwcmljZURhdGEgPSBPYmplY3QudmFsdWVzKHZhbHVlKS5zaGlmdCgpXG5cbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi4ocHJpY2VEYXRhPy5wcmljZSA+PSAwICYmIHsgcHJpY2U6IHByaWNlRGF0YS5wcmljZSB9KSxcbiAgICAgICAgICAgICAgICAuLi4ocHJpY2VEYXRhLmZ1bGxQcmljZSA+PSAwICYmIHsgZnVsbF9wcmljZTogcHJpY2VEYXRhLmZ1bGxQcmljZSB9KSxcbiAgICAgICAgICAgICAgICAuLi4ocHJpY2VEYXRhLnN1YnNjcmliZXJEaXNjb3VudFBlcmNlbnRhZ2UgPj0gMCAmJiB7XG4gICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyX2Rpc2NvdW50X3BlcmNlbnRhZ2U6IHByaWNlRGF0YS5zdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIC4uLihwcmljZURhdGEuc3Vic2NyaWJlclByaWNlID49IDAgJiYgeyBzdWJzY3JpYmVyX3ByaWNlOiBwcmljZURhdGEuc3Vic2NyaWJlclByaWNlIH0pLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHsgZnVsbFByaWNlOiB7IGNvbHVtbk5hbWU6ICdmdWxsX3ByaWNlJyB9IH0sXG4gICAgICAgIHsgc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZTogeyBjb2x1bW5OYW1lOiAnc3Vic2NyaWJlcl9kaXNjb3VudF9wZXJjZW50YWdlJyB9IH0sXG4gICAgICAgIHsgc3Vic2NyaWJlclByaWNlOiB7IGNvbHVtbk5hbWU6ICdzdWJzY3JpYmVyX3ByaWNlJyB9IH0sXG4gICAgICAgICdza3UnLFxuICAgICAgICB7XG4gICAgICAgICAgc3RvY2s6IHtcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6ICdzdG9jaycsXG4gICAgICAgICAgICBmcm9tOiAocXVhbnRpdHk6IG51bWJlcikgPT4gKHsgcXVhbnRpdHkgfSksXG4gICAgICAgICAgICB0bzogKHZhbHVlKSA9PiAoaXNOaWwodmFsdWU/LnF1YW50aXR5KSA/IHZhbHVlIDogdmFsdWU/LnF1YW50aXR5KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICAnd2VpZ2h0JyxcbiAgICAgICAgeyBuYW1lOiB7IHRvOiAoKSA9PiAnJywgZnJvbTogKCkgPT4gdW5kZWZpbmVkIH0gfSxcbiAgICAgICAgeyBoYXNWYXJpYW50czogeyBjb2x1bW5OYW1lOiAnaGFzX3ZhcmlhbnRzJywgdG86ICgpID0+IGZhbHNlLCBmcm9tOiAoKSA9PiB1bmRlZmluZWQgfSB9LFxuICAgICAgICB7IGNyZWF0ZWRBdDogeyBjb2x1bW5OYW1lOiAnY3JlYXRlZF9hdCcgfSB9LFxuICAgICAgICB7IHVwZGF0ZWRBdDogeyBjb2x1bW5OYW1lOiAndXBkYXRlZF9hdCcgfSB9LFxuICAgICAgXSxcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0KGlkZW50aWZpZXJzOiBHZXRSZXBvc2l0b3J5UGFyYW1zPFZhcmlhbnRIYXN1cmFHcmFwaFFMPik6IFByb21pc2U8VmFyaWFudEhhc3VyYUdyYXBoUUw+IHtcbiAgICByZXR1cm4gTnVtYmVyLmlzTmFOKCtpZGVudGlmaWVycy5pZClcbiAgICAgID8gKGF3YWl0IHRoaXMuZmluZCh7IGZpbHRlcnM6IHsgZmlyZXN0b3JlSWQ6IGlkZW50aWZpZXJzLmlkIH0gfSkpLmRhdGE/LlswXVxuICAgICAgOiBzdXBlci5nZXQoaWRlbnRpZmllcnMpXG4gIH1cblxuICBhc3luYyB1cGRhdGUocGFyYW1zOiBVcGRhdGVSZXBvc2l0b3J5UGFyYW1zPFZhcmlhbnRIYXN1cmFHcmFwaFFMPik6IFByb21pc2U8VmFyaWFudEhhc3VyYUdyYXBoUUw+IHtcbiAgICBjb25zdCB7IHByb2R1Y3RJZCwgaWQ6IGNoZWNrSWQsIC4uLmRhdGEgfSA9IHBhcmFtc1xuICAgIGNvbnN0IGRhdGFXaXRoUHJvZHVjdElkID0gdGhpcy5wYXJhbXNUb1BsYWluKHsgaWQ6IGNoZWNrSWQsIHByb2R1Y3RJZCB9KVxuICAgIGNvbnN0IGlkID0gYXdhaXQgdGhpcy5nZXRJZChkYXRhV2l0aFByb2R1Y3RJZC5pZClcbiAgICBjb25zdCBwcm9kdWN0ID0gYXdhaXQgc3VwZXIudXBkYXRlKHsgaWQsIC4uLmRhdGEgfSlcblxuICAgIHByb2R1Y3QucHJvZHVjdElkID0gZGF0YVdpdGhQcm9kdWN0SWQucHJvZHVjdElkXG5cbiAgICByZXR1cm4gcHJvZHVjdFxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRJZChpZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAoIU51bWJlci5pc05hTigraWQpKSByZXR1cm4gaWRcblxuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5maW5kKHsgZmlsdGVyczogeyBmaXJlc3RvcmVJZDogaWQgfSB9KVxuXG4gICAgaWYgKGRhdGE/LlswXT8uaWQpIHJldHVybiBkYXRhPy5bMF0/LmlkXG5cbiAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgUHJvZHVjdCB3aXRoIGlkICR7aWR9IG5vdCBmb3VuZGApXG4gIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './catalog';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9yZXBvc2l0b3JpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhdGFsb2cnXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC90eXBlcy9maWVsZHMudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmVzdGVkRmllbGQgfSBmcm9tICcuL25lc3RlZC1maWVsZC50eXBlJ1xuXG5leHBvcnQgdHlwZSBGaWVsZHMgPSBBcnJheTxzdHJpbmcgfCBvYmplY3QgfCBOZXN0ZWRGaWVsZCB8ICdhZ2dyZWdhdGUnIHwgJ25vZGVzJz5cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC5yZXBvc2l0b3J5LnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC90eXBlcy9ncmFwaHFsLnJlcG9zaXRvcnkudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZU1vZGVsQnVpbGRlciwgTW9kZWxCYXNlU3RydWN0dXJlIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJ1xuXG5pbXBvcnQgeyBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnMgfSBmcm9tICcuL2hhc3VyYS1ncmFwaHFsLWF1dGgtb3B0aW9ucy50eXBlJ1xuaW1wb3J0IHsgSGFzdXJhR3JhcGhRTEZpZWxkcyB9IGZyb20gJy4vaGFzdXJhLWdyYXBocWwtZmllbGRzLnR5cGUnXG5pbXBvcnQgeyBWYXJpYWJsZU9wdGlvbnMgfSBmcm9tICcuL3ZhcmlhYmxlLW9wdGlvbnMudHlwZSdcblxuZXhwb3J0IHR5cGUgR3JhcGhRTFBhcmFtczxNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZT4gPSB7XG4gIG9wZXJhdGlvbjogc3RyaW5nXG4gIGZpZWxkcz86IEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+XG4gIHZhcmlhYmxlcz86IFZhcmlhYmxlT3B0aW9uc1xufVxuXG5leHBvcnQgdHlwZSBHcmFwaFFMUmVwb3NpdG9yeTxNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZT4gPSB7XG4gIHRhYmxlTmFtZTogc3RyaW5nXG4gIG1vZGVsOiBCYXNlTW9kZWxCdWlsZGVyPE1vZGVsPlxuICBmaWVsZHM6IEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+XG4gIGVuZHBvaW50OiBzdHJpbmdcbiAgYXV0aE9wdGlvbnM6IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9uc1xuICBtdXRhdGlvbjogPFJldHVybkZpZWxkcyA9IGFueT4oXG4gICAgb3BlcmF0aW9uOiBzdHJpbmcsXG4gICAgZmllbGRzPzogc3RyaW5nW10gfCBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPixcbiAgICB2YXJpYWJsZXM/OiBWYXJpYWJsZU9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxSZXR1cm5GaWVsZHM+XG4gIHF1ZXJ5OiA8UmV0dXJuRmllbGRzID0gYW55PihcbiAgICBvcGVyYXRpb246IHN0cmluZyB8IEdyYXBoUUxQYXJhbXM8TW9kZWw+W10sXG4gICAgZmllbGRzPzogc3RyaW5nW10gfCBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPixcbiAgICB2YXJpYWJsZXM/OiBWYXJpYWJsZU9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxSZXR1cm5GaWVsZHM+XG4gIGdldEF0dHJpYnV0ZUdyYXBoUUxUeXBlT2Y6IDxGaWVsZFZhbHVlPih2YWx1ZTogRmllbGRWYWx1ZSkgPT4gc3RyaW5nXG4gIGNvbnZlcnREYXRhRnJvbUhhc3VyYTogKGRhdGE6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4pID0+IE1vZGVsXG4gIGNvbnZlcnREYXRhVG9IYXN1cmEoaW5zdGFuY2U6IE1vZGVsLCB1cGRhdGU/OiBib29sZWFuKTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPlxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLWdyYXBocWwtYXV0aC1vcHRpb25zLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC90eXBlcy9oYXN1cmEtZ3JhcGhxbC1hdXRoLW9wdGlvbnMudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zID0ge1xuICBhZG1pblNlY3JldD86IHN0cmluZ1xuICBhdXRoUm9sZT86IHtcbiAgICByb2xlOiBzdHJpbmdcbiAgICB1c2VySWQ6IHN0cmluZ1xuICB9XG4gIGF1dGhUb2tlbj86IHN0cmluZ1xufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLWdyYXBocWwtZmllbGRzLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC90eXBlcy9oYXN1cmEtZ3JhcGhxbC1maWVsZHMudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxCYXNlU3RydWN0dXJlLCBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzLCBSZXBvc2l0b3J5RmluZEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgUHJvcFR5cGUgfSBmcm9tICcuLi8uLi8uLi91dGlscydcbmltcG9ydCB7IEhhc3VyYUdyYXBoUUxDb2x1bW5UeXBlIH0gZnJvbSAnLi4vZW51bXMnXG5cbmV4cG9ydCB0eXBlIENvbHVtbk9wdGlvbnM8RmllbGRUeXBlLCBNb2RlbCwgVmFsdWVGcm9tID0gYW55PiA9IHtcbiAgdHlwZT86IEhhc3VyYUdyYXBoUUxDb2x1bW5UeXBlXG4gIGNvbHVtbk5hbWU/OiBzdHJpbmdcbiAgZmllbGRzPzogSGFzdXJhR3JhcGhRTEZpZWxkczxGaWVsZFR5cGUgZXh0ZW5kcyBhbnlbXSA/IEZpZWxkVHlwZVtudW1iZXJdIDogRmllbGRUeXBlPlxuICBmb3JlaWduS2V5Q29sdW1uPzogUGFydGlhbDxcbiAgICBSZWNvcmQ8XG4gICAgICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPEZpZWxkVHlwZSBleHRlbmRzIGFueVtdID8gRmllbGRUeXBlW251bWJlcl0gOiBGaWVsZFR5cGU+LFxuICAgICAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNb2RlbD4gfCBzdHJpbmdcbiAgICA+XG4gID5cbiAgZnJvbT86ICh2YWx1ZTogVmFsdWVGcm9tIHwgVmFsdWVGcm9tW10sIGRhdGE/OiBhbnkpID0+IEZpZWxkVHlwZVxuICB0bz86ICh2YWx1ZTogRmllbGRUeXBlLCBpbnN0YW5jZT86IE1vZGVsKSA9PiBWYWx1ZUZyb21cbiAgYmluZEZpbmRGaWx0ZXI/OiAoXG4gICAgc2VudGVuY2U6IFJlcG9zaXRvcnlGaW5kRmllbGQ8TW9kZWwsIGtleW9mIE1vZGVsPixcbiAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBSZXBvc2l0b3J5RmluZEZpZWxkPGFueSwgYW55PiB8IFZhbHVlRnJvbT4gfCBSZXBvc2l0b3J5RmluZEZpZWxkPGFueSwgYW55PiB8IFZhbHVlRnJvbVxuICBiaW5kUGVyc2lzdERhdGE/OiAodmFsdWU6IEZpZWxkVHlwZSwgaW5zdGFuY2U/OiBNb2RlbCkgPT4gUmVjb3JkPHN0cmluZywgVmFsdWVGcm9tPlxufVxuZXhwb3J0IHR5cGUgQWdncmVnYXRlT3B0aW9uTmFtZXMgPVxuICB8ICdhdmcnXG4gIHwgJ2NvdW50J1xuICB8ICdtYXgnXG4gIHwgJ21pbidcbiAgfCAnc3RkZGV2J1xuICB8ICdzdGRkZXZfcG9wJ1xuICB8ICdzdGRkZXZfc2FtcCdcbiAgfCAnc3VtJ1xuICB8ICd2YXJfcG9wJ1xuICB8ICd2YXJfc2FtcCdcbiAgfCAndmFyaWFuY2UnXG5leHBvcnQgdHlwZSBBZ2dyZWdhdGVPcHRpb25GaWVsZHM8TW9kZWwsIFR5cGUsIFByb3BlcnRpZXMgZXh0ZW5kcyBrZXlvZiBNb2RlbCA9IGtleW9mIE1vZGVsPiA9XG4gIHwge1xuICAgICAgW0sgaW4gUHJvcGVydGllc106IFByb3BUeXBlPE1vZGVsLCBLPiBleHRlbmRzIFR5cGUgPyBLIDogbmV2ZXJcbiAgICB9W1Byb3BlcnRpZXNdXG4gIHwgc3RyaW5nXG5leHBvcnQgdHlwZSBBZ2dyZWdhdGVPcHRpb25zPE1vZGVsPiA9IHtcbiAgYXZnPzogQXJyYXk8QWdncmVnYXRlT3B0aW9uRmllbGRzPE1vZGVsLCBudW1iZXI+PlxuICBtYXg/OiBBcnJheTxBZ2dyZWdhdGVPcHRpb25GaWVsZHM8TW9kZWwsIG51bWJlciB8IERhdGU+PlxuICBtaW4/OiBBcnJheTxBZ2dyZWdhdGVPcHRpb25GaWVsZHM8TW9kZWwsIG51bWJlciB8IERhdGU+PlxuICBzdGRkZXY/OiBBcnJheTxBZ2dyZWdhdGVPcHRpb25GaWVsZHM8TW9kZWwsIG51bWJlcj4+XG4gIHN0ZGRldl9wb3A/OiBBcnJheTxBZ2dyZWdhdGVPcHRpb25GaWVsZHM8TW9kZWwsIG51bWJlcj4+XG4gIHN0ZGRldl9zYW1wPzogQXJyYXk8QWdncmVnYXRlT3B0aW9uRmllbGRzPE1vZGVsLCBudW1iZXI+PlxuICBzdW0/OiBBcnJheTxBZ2dyZWdhdGVPcHRpb25GaWVsZHM8TW9kZWwsIG51bWJlcj4+XG4gIHZhcl9wb3A/OiBBcnJheTxBZ2dyZWdhdGVPcHRpb25GaWVsZHM8TW9kZWwsIG51bWJlcj4+XG4gIHZhcl9zYW1wPzogQXJyYXk8QWdncmVnYXRlT3B0aW9uRmllbGRzPE1vZGVsLCBudW1iZXI+PlxuICB2YXJpYW5jZT86IEFycmF5PEFnZ3JlZ2F0ZU9wdGlvbkZpZWxkczxNb2RlbCwgbnVtYmVyPj5cbn1cblxuZXhwb3J0IHR5cGUgSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD4gPSAoXG4gIHwgKE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlXG4gICAgICA/XG4gICAgICAgICAgfCBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1vZGVsPlxuICAgICAgICAgIHwge1xuICAgICAgICAgICAgICBba2V5IGluIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TW9kZWw+XT86IFByb3BUeXBlPE1vZGVsLCBrZXk+IGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlXG4gICAgICAgICAgICAgICAgPyBIYXN1cmFHcmFwaFFMRmllbGRzPFByb3BUeXBlPE1vZGVsLCBrZXk+PlxuICAgICAgICAgICAgICAgIDogUHJvcFR5cGU8TW9kZWwsIGtleT4gZXh0ZW5kcyBhbnlbXVxuICAgICAgICAgICAgICAgID8gUHJvcFR5cGU8TW9kZWwsIGtleT5bXSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZVtdXG4gICAgICAgICAgICAgICAgICA/IEhhc3VyYUdyYXBoUUxGaWVsZHM8UHJvcFR5cGU8TW9kZWwsIGtleT5bXT5cbiAgICAgICAgICAgICAgICAgIDogbmV2ZXJcbiAgICAgICAgICAgICAgICA6IG5ldmVyXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfCB7XG4gICAgICAgICAgICAgIFtrZXkgaW4gTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNb2RlbD5dPzoga2V5IGV4dGVuZHMgJ2FnZ3JlZ2F0ZSdcbiAgICAgICAgICAgICAgICA/IG5ldmVyXG4gICAgICAgICAgICAgICAgOiBQcm9wVHlwZTxNb2RlbCwga2V5PiBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZVxuICAgICAgICAgICAgICAgID8gQ29sdW1uT3B0aW9uczxQcm9wVHlwZTxNb2RlbCwga2V5PiwgTW9kZWw+XG4gICAgICAgICAgICAgICAgOiBDb2x1bW5PcHRpb25zPFByb3BUeXBlPE1vZGVsLCBrZXk+LCBNb2RlbD5cbiAgICAgICAgICAgIH1cbiAgICAgIDogc3RyaW5nKVxuICB8IHsgYWdncmVnYXRlOiBBcnJheTxBZ2dyZWdhdGVPcHRpb25zPE1vZGVsPiB8ICdjb3VudCc+IH1cbiAgfCAnYWZmZWN0ZWRfcm93cydcbilbXVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLWdyYXBocWwtaGVhZGVycy50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvdHlwZXMvaGFzdXJhLWdyYXBocWwtaGVhZGVycy50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBIYXN1cmFHcmFwaFFMSGVhZGVycyA9IHtcbiAgQXV0aG9yaXphdGlvbj86IHN0cmluZ1xuICAnQ29udGVudC1UeXBlJzogc3RyaW5nXG4gICdYLUhhc3VyYS1BZG1pbi1TZWNyZXQnPzogc3RyaW5nXG4gICdYLUhhc3VyYS1Sb2xlJz86IHN0cmluZ1xuICAnWC1IYXN1cmEtVXNlci1JZCc/OiBzdHJpbmdcbn1cbiJdfQ==