@infrab4a/connect 4.1.0-beta.10 → 4.1.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 (463) hide show
  1. package/domain/catalog/models/category-collection-children.d.ts +1 -1
  2. package/domain/catalog/models/category-filter.d.ts +1 -1
  3. package/domain/catalog/models/kit-product.d.ts +1 -1
  4. package/domain/catalog/models/types/category-condition.type.d.ts +1 -1
  5. package/domain/catalog/models/types/category-metadata.type.d.ts +1 -1
  6. package/domain/catalog/models/types/category-product.d.ts +1 -1
  7. package/domain/catalog/models/types/product-evaluation.type.d.ts +1 -1
  8. package/domain/catalog/models/types/product-gender.type.d.ts +1 -1
  9. package/domain/catalog/models/types/product-metadata.type.d.ts +1 -1
  10. package/domain/catalog/models/types/product-review.type.d.ts +1 -1
  11. package/domain/catalog/models/types/shop-description.type.d.ts +1 -1
  12. package/domain/catalog/models/types/shop-price.type.d.ts +1 -1
  13. package/domain/catalog/models/types/stock.type.d.ts +1 -1
  14. package/domain/catalog/models/types/variant-grade.type.d.ts +1 -1
  15. package/domain/catalog/models/variant.d.ts +1 -1
  16. package/domain/catalog/models/wishlist.d.ts +0 -2
  17. package/domain/catalog/repositories/product.repository.d.ts +2 -2
  18. package/domain/generic/model/base.model.d.ts +1 -1
  19. package/domain/generic/model/types/identifier-model.type.d.ts +3 -3
  20. package/domain/generic/model/types/model-base-structure.type.d.ts +2 -2
  21. package/domain/generic/model/types/non-function-properties.type.d.ts +6 -6
  22. package/domain/generic/model/types/non-function-property-name.type.d.ts +5 -5
  23. package/domain/generic/repository/create.repository.d.ts +1 -1
  24. package/domain/generic/repository/crud.repository.d.ts +2 -2
  25. package/domain/generic/repository/delete.repository.d.ts +1 -1
  26. package/domain/generic/repository/find.repository.d.ts +1 -1
  27. package/domain/generic/repository/get.repository.d.ts +1 -1
  28. package/domain/generic/repository/read.repository.d.ts +2 -2
  29. package/domain/generic/repository/types/repository-find-filters.type.d.ts +4 -4
  30. package/domain/generic/repository/types/repository-find-result.type.d.ts +2 -2
  31. package/domain/generic/repository/types/repository-limit-options.type.d.ts +1 -1
  32. package/domain/generic/repository/types/repository-order-by-list.type.d.ts +2 -2
  33. package/domain/generic/repository/types/repository-update-params.type.d.ts +3 -3
  34. package/domain/generic/repository/types/where-options.type.d.ts +1 -1
  35. package/domain/generic/repository/update.repository.d.ts +1 -1
  36. package/domain/location/models/types/location-bound.type.d.ts +1 -1
  37. package/domain/location/models/types/location-geometry.type.d.ts +1 -1
  38. package/domain/location/models/types/location-lat-lng.type.d.ts +1 -1
  39. package/domain/shop-settings/helpers/beauty-questions.helper.d.ts +1 -1
  40. package/domain/shop-settings/models/types/banner.type.d.ts +1 -1
  41. package/domain/shop-settings/models/types/benefit.type.d.ts +1 -1
  42. package/domain/shop-settings/models/types/campaign-page.d.ts +4 -4
  43. package/domain/shop-settings/models/types/home-data.type.d.ts +3 -3
  44. package/domain/shop-settings/models/types/index.d.ts +0 -2
  45. package/domain/shop-settings/models/types/menu-nav.type.d.ts +1 -1
  46. package/domain/shop-settings/models/types/sections.type.d.ts +11 -14
  47. package/domain/shop-settings/models/types/shop-carousel.type.d.ts +2 -1
  48. package/domain/shop-settings/models/types/shop-home.d.ts +2 -2
  49. package/domain/shop-settings/models/types/shop-section.type.d.ts +1 -1
  50. package/domain/shop-settings/models/types/sub-menu.type.d.ts +2 -2
  51. package/domain/shopping/models/types/payment-address.type.d.ts +1 -1
  52. package/domain/shopping/models/types/payment-billing.type.d.ts +1 -1
  53. package/domain/shopping/models/types/payment-card.type.d.ts +1 -1
  54. package/domain/shopping/models/types/payment-customer.type.d.ts +1 -1
  55. package/domain/shopping/models/types/payment-document.type.d.ts +1 -1
  56. package/domain/shopping/models/types/payment-item.type.d.ts +1 -1
  57. package/domain/shopping/models/types/payment-shipping.type.d.ts +1 -1
  58. package/domain/users/models/beauty-profile.d.ts +1 -1
  59. package/domain/users/models/subscription/edition.d.ts +1 -1
  60. package/domain/users/models/subscription/payment.d.ts +1 -1
  61. package/domain/users/models/user-address.d.ts +1 -1
  62. package/domain/users/models/user-payment-method.d.ts +1 -1
  63. package/domain/users/services/authentication.service.d.ts +1 -1
  64. package/domain/users/services/register.service.d.ts +1 -1
  65. package/domain/users/services/types/basic-user-data.type.d.ts +1 -1
  66. package/domain/users/use-cases/authentication.d.ts +2 -2
  67. package/domain/users/use-cases/register.d.ts +1 -1
  68. package/{esm2020 → esm2022}/domain/catalog/models/wishlist.mjs +1 -1
  69. package/esm2022/domain/shop-settings/models/types/index.mjs +15 -0
  70. package/{esm2020 → esm2022}/domain/shop-settings/models/types/sections.type.mjs +1 -1
  71. package/{esm2020 → esm2022}/domain/shop-settings/models/types/shop-carousel.type.mjs +1 -1
  72. package/{esm2020 → esm2022}/infra/hasura-graphql/mixins/helpers/attribute-option.helper.mjs +32 -32
  73. package/esm2022/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.mjs +71 -0
  74. package/esm2022/infra/hasura-graphql/mixins/helpers/filter-option.helper.mjs +22 -0
  75. package/esm2022/infra/hasura-graphql/mixins/helpers/graphql-field.helper.mjs +125 -0
  76. package/esm2022/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.mjs +108 -0
  77. package/esm2022/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.mjs +339 -0
  78. package/esm2022/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.mjs +516 -0
  79. package/esm2022/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.mjs +236 -0
  80. package/{esm2020 → esm2022}/utils/helpers/debug-decorator.helper.mjs +2 -2
  81. package/esm2022/utils/helpers/debug.helper.mjs +150 -0
  82. package/{esm2020 → esm2022}/utils/helpers/reflect.helper.mjs +2 -2
  83. package/{fesm2020 → fesm2022}/infrab4a-connect.mjs +262 -263
  84. package/fesm2022/infrab4a-connect.mjs.map +1 -0
  85. package/infra/elasticsearch/adapters/axios.adapter.d.ts +1 -1
  86. package/infra/elasticsearch/types/elastic-search-result.d.ts +1 -1
  87. package/infra/firebase/auth/types/firebase-user-with-id.type.d.ts +1 -1
  88. package/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +1 -1
  89. package/infra/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +1 -1
  90. package/infra/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +1 -1
  91. package/infra/firebase/firestore/types/firestore-interceptors.type.d.ts +1 -1
  92. package/infra/firebase/firestore/types/firestore-sub.repository.type.d.ts +1 -1
  93. package/infra/firebase/firestore/types/firestore.repository.type.d.ts +1 -1
  94. package/infra/hasura-graphql/mixins/helpers/attribute-option.helper.d.ts +1 -1
  95. package/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.d.ts +1 -1
  96. package/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.d.ts +1 -1
  97. package/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.d.ts +1 -1
  98. package/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.d.ts +3 -3
  99. package/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.d.ts +2 -2
  100. package/infra/hasura-graphql/types/fields.type.d.ts +1 -1
  101. package/infra/hasura-graphql/types/graphql.repository.type.d.ts +2 -2
  102. package/infra/hasura-graphql/types/hasura-graphql-auth-options.type.d.ts +1 -1
  103. package/infra/hasura-graphql/types/hasura-graphql-fields.type.d.ts +6 -6
  104. package/infra/hasura-graphql/types/hasura-graphql-headers.type.d.ts +1 -1
  105. package/infra/hasura-graphql/types/nested-field.type.d.ts +1 -1
  106. package/infra/hasura-graphql/types/variable-options.type.d.ts +1 -1
  107. package/package.json +5 -11
  108. package/utils/decorators/trace.method.decorator.d.ts +3 -3
  109. package/utils/helpers/debug-decorator.helper.d.ts +1 -1
  110. package/utils/helpers/debug.helper.d.ts +3 -3
  111. package/utils/helpers/reflect.helper.d.ts +7 -7
  112. package/utils/index.d.ts +1 -1
  113. package/utils/mixins/merge-constructor-params.type.d.ts +2 -2
  114. package/utils/mixins/mixin-ctor.type.d.ts +1 -1
  115. package/utils/types/array-element.type.d.ts +1 -1
  116. package/utils/types/prop.type.d.ts +1 -1
  117. package/domain/shop-settings/models/types/landing-page.d.ts +0 -8
  118. package/esm2020/domain/shop-settings/models/types/index.mjs +0 -17
  119. package/esm2020/domain/shop-settings/models/types/landing-page.mjs +0 -2
  120. package/esm2020/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.mjs +0 -71
  121. package/esm2020/infra/hasura-graphql/mixins/helpers/filter-option.helper.mjs +0 -22
  122. package/esm2020/infra/hasura-graphql/mixins/helpers/graphql-field.helper.mjs +0 -125
  123. package/esm2020/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.mjs +0 -108
  124. package/esm2020/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.mjs +0 -338
  125. package/esm2020/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.mjs +0 -516
  126. package/esm2020/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.mjs +0 -238
  127. package/esm2020/utils/helpers/debug.helper.mjs +0 -150
  128. package/fesm2015/infrab4a-connect.mjs +0 -4976
  129. package/fesm2015/infrab4a-connect.mjs.map +0 -1
  130. package/fesm2020/infrab4a-connect.mjs.map +0 -1
  131. /package/{esm2020 → esm2022}/domain/catalog/helpers/index.mjs +0 -0
  132. /package/{esm2020 → esm2022}/domain/catalog/helpers/round-product-price.helper.mjs +0 -0
  133. /package/{esm2020 → esm2022}/domain/catalog/index.mjs +0 -0
  134. /package/{esm2020 → esm2022}/domain/catalog/models/category-base.mjs +0 -0
  135. /package/{esm2020 → esm2022}/domain/catalog/models/category-collection-children.mjs +0 -0
  136. /package/{esm2020 → esm2022}/domain/catalog/models/category-filter.mjs +0 -0
  137. /package/{esm2020 → esm2022}/domain/catalog/models/category-for-product.mjs +0 -0
  138. /package/{esm2020 → esm2022}/domain/catalog/models/category.mjs +0 -0
  139. /package/{esm2020 → esm2022}/domain/catalog/models/enums/index.mjs +0 -0
  140. /package/{esm2020 → esm2022}/domain/catalog/models/enums/product-genders.enum.mjs +0 -0
  141. /package/{esm2020 → esm2022}/domain/catalog/models/enums/shops.enum.mjs +0 -0
  142. /package/{esm2020 → esm2022}/domain/catalog/models/filter-option.mjs +0 -0
  143. /package/{esm2020 → esm2022}/domain/catalog/models/filter.mjs +0 -0
  144. /package/{esm2020 → esm2022}/domain/catalog/models/index.mjs +0 -0
  145. /package/{esm2020 → esm2022}/domain/catalog/models/kit-product.mjs +0 -0
  146. /package/{esm2020 → esm2022}/domain/catalog/models/product-base.mjs +0 -0
  147. /package/{esm2020 → esm2022}/domain/catalog/models/product-for-category.mjs +0 -0
  148. /package/{esm2020 → esm2022}/domain/catalog/models/product-for-kit.mjs +0 -0
  149. /package/{esm2020 → esm2022}/domain/catalog/models/product.mjs +0 -0
  150. /package/{esm2020 → esm2022}/domain/catalog/models/types/category-condition.type.mjs +0 -0
  151. /package/{esm2020 → esm2022}/domain/catalog/models/types/category-metadata.type.mjs +0 -0
  152. /package/{esm2020 → esm2022}/domain/catalog/models/types/category-product.mjs +0 -0
  153. /package/{esm2020 → esm2022}/domain/catalog/models/types/index.mjs +0 -0
  154. /package/{esm2020 → esm2022}/domain/catalog/models/types/product-evaluation.type.mjs +0 -0
  155. /package/{esm2020 → esm2022}/domain/catalog/models/types/product-gender.type.mjs +0 -0
  156. /package/{esm2020 → esm2022}/domain/catalog/models/types/product-metadata.type.mjs +0 -0
  157. /package/{esm2020 → esm2022}/domain/catalog/models/types/product-review.type.mjs +0 -0
  158. /package/{esm2020 → esm2022}/domain/catalog/models/types/shop-description.type.mjs +0 -0
  159. /package/{esm2020 → esm2022}/domain/catalog/models/types/shop-price.type.mjs +0 -0
  160. /package/{esm2020 → esm2022}/domain/catalog/models/types/stock.type.mjs +0 -0
  161. /package/{esm2020 → esm2022}/domain/catalog/models/types/variant-grade.type.mjs +0 -0
  162. /package/{esm2020 → esm2022}/domain/catalog/models/variant.mjs +0 -0
  163. /package/{esm2020 → esm2022}/domain/catalog/repositories/category-collection-children.repository.mjs +0 -0
  164. /package/{esm2020 → esm2022}/domain/catalog/repositories/category-filter.repository.mjs +0 -0
  165. /package/{esm2020 → esm2022}/domain/catalog/repositories/category.repository.mjs +0 -0
  166. /package/{esm2020 → esm2022}/domain/catalog/repositories/filter-option.repository.mjs +0 -0
  167. /package/{esm2020 → esm2022}/domain/catalog/repositories/filter.repository.mjs +0 -0
  168. /package/{esm2020 → esm2022}/domain/catalog/repositories/index.mjs +0 -0
  169. /package/{esm2020 → esm2022}/domain/catalog/repositories/product.repository.mjs +0 -0
  170. /package/{esm2020 → esm2022}/domain/catalog/repositories/subscription-product.repository.mjs +0 -0
  171. /package/{esm2020 → esm2022}/domain/catalog/repositories/variant.repository.mjs +0 -0
  172. /package/{esm2020 → esm2022}/domain/catalog/repositories/wishlist.repository.mjs +0 -0
  173. /package/{esm2020 → esm2022}/domain/generic/index.mjs +0 -0
  174. /package/{esm2020 → esm2022}/domain/generic/model/base.model.mjs +0 -0
  175. /package/{esm2020 → esm2022}/domain/generic/model/identifier-fields.mjs +0 -0
  176. /package/{esm2020 → esm2022}/domain/generic/model/index.mjs +0 -0
  177. /package/{esm2020 → esm2022}/domain/generic/model/types/base-model-builder.type.mjs +0 -0
  178. /package/{esm2020 → esm2022}/domain/generic/model/types/identifier-model.type.mjs +0 -0
  179. /package/{esm2020 → esm2022}/domain/generic/model/types/index.mjs +0 -0
  180. /package/{esm2020 → esm2022}/domain/generic/model/types/model-base-structure.type.mjs +0 -0
  181. /package/{esm2020 → esm2022}/domain/generic/model/types/non-function-properties.type.mjs +0 -0
  182. /package/{esm2020 → esm2022}/domain/generic/model/types/non-function-property-name.type.mjs +0 -0
  183. /package/{esm2020 → esm2022}/domain/generic/repository/create.repository.mjs +0 -0
  184. /package/{esm2020 → esm2022}/domain/generic/repository/crud.repository.mjs +0 -0
  185. /package/{esm2020 → esm2022}/domain/generic/repository/delete.repository.mjs +0 -0
  186. /package/{esm2020 → esm2022}/domain/generic/repository/enums/index.mjs +0 -0
  187. /package/{esm2020 → esm2022}/domain/generic/repository/enums/update-option-actions.enum.mjs +0 -0
  188. /package/{esm2020 → esm2022}/domain/generic/repository/enums/where.enum.mjs +0 -0
  189. /package/{esm2020 → esm2022}/domain/generic/repository/find.repository.mjs +0 -0
  190. /package/{esm2020 → esm2022}/domain/generic/repository/get.repository.mjs +0 -0
  191. /package/{esm2020 → esm2022}/domain/generic/repository/index.mjs +0 -0
  192. /package/{esm2020 → esm2022}/domain/generic/repository/read.repository.mjs +0 -0
  193. /package/{esm2020 → esm2022}/domain/generic/repository/types/index.mjs +0 -0
  194. /package/{esm2020 → esm2022}/domain/generic/repository/types/repository-find-filters.type.mjs +0 -0
  195. /package/{esm2020 → esm2022}/domain/generic/repository/types/repository-find-result.type.mjs +0 -0
  196. /package/{esm2020 → esm2022}/domain/generic/repository/types/repository-limit-options.type.mjs +0 -0
  197. /package/{esm2020 → esm2022}/domain/generic/repository/types/repository-order-by-list.type.mjs +0 -0
  198. /package/{esm2020 → esm2022}/domain/generic/repository/types/repository-update-params.type.mjs +0 -0
  199. /package/{esm2020 → esm2022}/domain/generic/repository/types/where-options.type.mjs +0 -0
  200. /package/{esm2020 → esm2022}/domain/generic/repository/update.repository.mjs +0 -0
  201. /package/{esm2020 → esm2022}/domain/index.mjs +0 -0
  202. /package/{esm2020 → esm2022}/domain/location/index.mjs +0 -0
  203. /package/{esm2020 → esm2022}/domain/location/models/address.mjs +0 -0
  204. /package/{esm2020 → esm2022}/domain/location/models/index.mjs +0 -0
  205. /package/{esm2020 → esm2022}/domain/location/models/types/index.mjs +0 -0
  206. /package/{esm2020 → esm2022}/domain/location/models/types/location-bound.type.mjs +0 -0
  207. /package/{esm2020 → esm2022}/domain/location/models/types/location-geometry.type.mjs +0 -0
  208. /package/{esm2020 → esm2022}/domain/location/models/types/location-lat-lng.type.mjs +0 -0
  209. /package/{esm2020 → esm2022}/domain/shop-settings/enums/filter-type.enum.mjs +0 -0
  210. /package/{esm2020 → esm2022}/domain/shop-settings/enums/index.mjs +0 -0
  211. /package/{esm2020 → esm2022}/domain/shop-settings/enums/questions-filters.enum.mjs +0 -0
  212. /package/{esm2020 → esm2022}/domain/shop-settings/enums/shop-page-name.enum.mjs +0 -0
  213. /package/{esm2020 → esm2022}/domain/shop-settings/helpers/beauty-questions.helper.mjs +0 -0
  214. /package/{esm2020 → esm2022}/domain/shop-settings/helpers/index.mjs +0 -0
  215. /package/{esm2020 → esm2022}/domain/shop-settings/index.mjs +0 -0
  216. /package/{esm2020 → esm2022}/domain/shop-settings/models/campaign-banner.mjs +0 -0
  217. /package/{esm2020 → esm2022}/domain/shop-settings/models/campaign.mjs +0 -0
  218. /package/{esm2020 → esm2022}/domain/shop-settings/models/home.mjs +0 -0
  219. /package/{esm2020 → esm2022}/domain/shop-settings/models/index.mjs +0 -0
  220. /package/{esm2020 → esm2022}/domain/shop-settings/models/shop-menu.mjs +0 -0
  221. /package/{esm2020 → esm2022}/domain/shop-settings/models/shop-settings.mjs +0 -0
  222. /package/{esm2020 → esm2022}/domain/shop-settings/models/types/banner.type.mjs +0 -0
  223. /package/{esm2020 → esm2022}/domain/shop-settings/models/types/benefit.type.mjs +0 -0
  224. /package/{esm2020 → esm2022}/domain/shop-settings/models/types/campaign-page.mjs +0 -0
  225. /package/{esm2020 → esm2022}/domain/shop-settings/models/types/home-data.type.mjs +0 -0
  226. /package/{esm2020 → esm2022}/domain/shop-settings/models/types/menu-nav.type.mjs +0 -0
  227. /package/{esm2020 → esm2022}/domain/shop-settings/models/types/shop-banner.type.mjs +0 -0
  228. /package/{esm2020 → esm2022}/domain/shop-settings/models/types/shop-brands.type.mjs +0 -0
  229. /package/{esm2020 → esm2022}/domain/shop-settings/models/types/shop-collection.type.mjs +0 -0
  230. /package/{esm2020 → esm2022}/domain/shop-settings/models/types/shop-gift.type.mjs +0 -0
  231. /package/{esm2020 → esm2022}/domain/shop-settings/models/types/shop-home.mjs +0 -0
  232. /package/{esm2020 → esm2022}/domain/shop-settings/models/types/shop-post.type.mjs +0 -0
  233. /package/{esm2020 → esm2022}/domain/shop-settings/models/types/shop-section.type.mjs +0 -0
  234. /package/{esm2020 → esm2022}/domain/shop-settings/models/types/sub-menu.type.mjs +0 -0
  235. /package/{esm2020 → esm2022}/domain/shop-settings/repositories/campaign-banner.repository.mjs +0 -0
  236. /package/{esm2020 → esm2022}/domain/shop-settings/repositories/campaign.repository.mjs +0 -0
  237. /package/{esm2020 → esm2022}/domain/shop-settings/repositories/home.repository.mjs +0 -0
  238. /package/{esm2020 → esm2022}/domain/shop-settings/repositories/index.mjs +0 -0
  239. /package/{esm2020 → esm2022}/domain/shop-settings/repositories/shop-menu.repository.mjs +0 -0
  240. /package/{esm2020 → esm2022}/domain/shop-settings/repositories/shop-settings.repository.mjs +0 -0
  241. /package/{esm2020 → esm2022}/domain/shopping/index.mjs +0 -0
  242. /package/{esm2020 → esm2022}/domain/shopping/models/buy-2-win.mjs +0 -0
  243. /package/{esm2020 → esm2022}/domain/shopping/models/campaign-dashboard.mjs +0 -0
  244. /package/{esm2020 → esm2022}/domain/shopping/models/campaign-hashtag.mjs +0 -0
  245. /package/{esm2020 → esm2022}/domain/shopping/models/checkout.mjs +0 -0
  246. /package/{esm2020 → esm2022}/domain/shopping/models/coupons/coupon.mjs +0 -0
  247. /package/{esm2020 → esm2022}/domain/shopping/models/coupons/enums/coupon-club-mens.enum.mjs +0 -0
  248. /package/{esm2020 → esm2022}/domain/shopping/models/coupons/enums/coupon-subtypes.enum.mjs +0 -0
  249. /package/{esm2020 → esm2022}/domain/shopping/models/coupons/enums/coupon-types.enum.mjs +0 -0
  250. /package/{esm2020 → esm2022}/domain/shopping/models/coupons/enums/exclusivities.enum.mjs +0 -0
  251. /package/{esm2020 → esm2022}/domain/shopping/models/coupons/enums/index.mjs +0 -0
  252. /package/{esm2020 → esm2022}/domain/shopping/models/coupons/index.mjs +0 -0
  253. /package/{esm2020 → esm2022}/domain/shopping/models/enums/checkout-types.enum.mjs +0 -0
  254. /package/{esm2020 → esm2022}/domain/shopping/models/enums/index.mjs +0 -0
  255. /package/{esm2020 → esm2022}/domain/shopping/models/enums/order-status.enum.mjs +0 -0
  256. /package/{esm2020 → esm2022}/domain/shopping/models/index.mjs +0 -0
  257. /package/{esm2020 → esm2022}/domain/shopping/models/line-item.mjs +0 -0
  258. /package/{esm2020 → esm2022}/domain/shopping/models/order.mjs +0 -0
  259. /package/{esm2020 → esm2022}/domain/shopping/models/payment.mjs +0 -0
  260. /package/{esm2020 → esm2022}/domain/shopping/models/shipping-method.mjs +0 -0
  261. /package/{esm2020 → esm2022}/domain/shopping/models/subscription/checkout.mjs +0 -0
  262. /package/{esm2020 → esm2022}/domain/shopping/models/subscription/index.mjs +0 -0
  263. /package/{esm2020 → esm2022}/domain/shopping/models/subscription/plan.mjs +0 -0
  264. /package/{esm2020 → esm2022}/domain/shopping/models/types/index.mjs +0 -0
  265. /package/{esm2020 → esm2022}/domain/shopping/models/types/payment-address.type.mjs +0 -0
  266. /package/{esm2020 → esm2022}/domain/shopping/models/types/payment-billing.type.mjs +0 -0
  267. /package/{esm2020 → esm2022}/domain/shopping/models/types/payment-card.type.mjs +0 -0
  268. /package/{esm2020 → esm2022}/domain/shopping/models/types/payment-customer.type.mjs +0 -0
  269. /package/{esm2020 → esm2022}/domain/shopping/models/types/payment-document.type.mjs +0 -0
  270. /package/{esm2020 → esm2022}/domain/shopping/models/types/payment-item.type.mjs +0 -0
  271. /package/{esm2020 → esm2022}/domain/shopping/models/types/payment-shipping.type.mjs +0 -0
  272. /package/{esm2020 → esm2022}/domain/shopping/repositories/buy-2-win.repository.mjs +0 -0
  273. /package/{esm2020 → esm2022}/domain/shopping/repositories/campaign-dashboard.repository.mjs +0 -0
  274. /package/{esm2020 → esm2022}/domain/shopping/repositories/campaign-hashtag.repository.mjs +0 -0
  275. /package/{esm2020 → esm2022}/domain/shopping/repositories/checkout.repository.mjs +0 -0
  276. /package/{esm2020 → esm2022}/domain/shopping/repositories/coupon.repository.mjs +0 -0
  277. /package/{esm2020 → esm2022}/domain/shopping/repositories/index.mjs +0 -0
  278. /package/{esm2020 → esm2022}/domain/shopping/repositories/legacy-order.repository.mjs +0 -0
  279. /package/{esm2020 → esm2022}/domain/shopping/repositories/order.repository.mjs +0 -0
  280. /package/{esm2020 → esm2022}/domain/shopping/repositories/payment.repository.mjs +0 -0
  281. /package/{esm2020 → esm2022}/domain/shopping/repositories/subscription/checkout.repository.mjs +0 -0
  282. /package/{esm2020 → esm2022}/domain/shopping/repositories/subscription/index.mjs +0 -0
  283. /package/{esm2020 → esm2022}/domain/shopping/repositories/subscription/plan.repository.mjs +0 -0
  284. /package/{esm2020 → esm2022}/domain/users/errors/index.mjs +0 -0
  285. /package/{esm2020 → esm2022}/domain/users/errors/unauthorized.error.mjs +0 -0
  286. /package/{esm2020 → esm2022}/domain/users/errors/user-already-registered.error.mjs +0 -0
  287. /package/{esm2020 → esm2022}/domain/users/errors/weak-password.error.mjs +0 -0
  288. /package/{esm2020 → esm2022}/domain/users/index.mjs +0 -0
  289. /package/{esm2020 → esm2022}/domain/users/models/beauty-profile.mjs +0 -0
  290. /package/{esm2020 → esm2022}/domain/users/models/enums/accessory-importances.enum.mjs +0 -0
  291. /package/{esm2020 → esm2022}/domain/users/models/enums/area.enum.mjs +0 -0
  292. /package/{esm2020 → esm2022}/domain/users/models/enums/beard-problems.enum.mjs +0 -0
  293. /package/{esm2020 → esm2022}/domain/users/models/enums/beard-sizes.enum.mjs +0 -0
  294. /package/{esm2020 → esm2022}/domain/users/models/enums/beauty-product-importances.enum.mjs +0 -0
  295. /package/{esm2020 → esm2022}/domain/users/models/enums/body-problems.enum.mjs +0 -0
  296. /package/{esm2020 → esm2022}/domain/users/models/enums/body-shapes.enum.mjs +0 -0
  297. /package/{esm2020 → esm2022}/domain/users/models/enums/body-tattoos.enum.mjs +0 -0
  298. /package/{esm2020 → esm2022}/domain/users/models/enums/face-skin-oilinesses.enum.mjs +0 -0
  299. /package/{esm2020 → esm2022}/domain/users/models/enums/face-skin-problems.enum.mjs +0 -0
  300. /package/{esm2020 → esm2022}/domain/users/models/enums/face-skin-tones.enum.mjs +0 -0
  301. /package/{esm2020 → esm2022}/domain/users/models/enums/family-incomes.enum.mjs +0 -0
  302. /package/{esm2020 → esm2022}/domain/users/models/enums/fragrance-importances.enum.mjs +0 -0
  303. /package/{esm2020 → esm2022}/domain/users/models/enums/hair-colors.enum.mjs +0 -0
  304. /package/{esm2020 → esm2022}/domain/users/models/enums/hair-problems.enum.mjs +0 -0
  305. /package/{esm2020 → esm2022}/domain/users/models/enums/hair-strands.enum.mjs +0 -0
  306. /package/{esm2020 → esm2022}/domain/users/models/enums/hair-types.enum.mjs +0 -0
  307. /package/{esm2020 → esm2022}/domain/users/models/enums/index.mjs +0 -0
  308. /package/{esm2020 → esm2022}/domain/users/models/enums/office-position.enum.mjs +0 -0
  309. /package/{esm2020 → esm2022}/domain/users/models/enums/product-spents.enum.mjs +0 -0
  310. /package/{esm2020 → esm2022}/domain/users/models/enums/user-type.enum.mjs +0 -0
  311. /package/{esm2020 → esm2022}/domain/users/models/index.mjs +0 -0
  312. /package/{esm2020 → esm2022}/domain/users/models/lead.mjs +0 -0
  313. /package/{esm2020 → esm2022}/domain/users/models/subscription/edition.mjs +0 -0
  314. /package/{esm2020 → esm2022}/domain/users/models/subscription/enums/billing-status.enum.mjs +0 -0
  315. /package/{esm2020 → esm2022}/domain/users/models/subscription/enums/edition-status.enum.mjs +0 -0
  316. /package/{esm2020 → esm2022}/domain/users/models/subscription/enums/index.mjs +0 -0
  317. /package/{esm2020 → esm2022}/domain/users/models/subscription/enums/payment-type.enum.mjs +0 -0
  318. /package/{esm2020 → esm2022}/domain/users/models/subscription/enums/status.enum.mjs +0 -0
  319. /package/{esm2020 → esm2022}/domain/users/models/subscription/index.mjs +0 -0
  320. /package/{esm2020 → esm2022}/domain/users/models/subscription/payment.mjs +0 -0
  321. /package/{esm2020 → esm2022}/domain/users/models/subscription/subscription.mjs +0 -0
  322. /package/{esm2020 → esm2022}/domain/users/models/user-address.mjs +0 -0
  323. /package/{esm2020 → esm2022}/domain/users/models/user-payment-method.mjs +0 -0
  324. /package/{esm2020 → esm2022}/domain/users/models/user.mjs +0 -0
  325. /package/{esm2020 → esm2022}/domain/users/repositories/beauty-profile.repository.mjs +0 -0
  326. /package/{esm2020 → esm2022}/domain/users/repositories/edition.repository.mjs +0 -0
  327. /package/{esm2020 → esm2022}/domain/users/repositories/index.mjs +0 -0
  328. /package/{esm2020 → esm2022}/domain/users/repositories/lead.repository.mjs +0 -0
  329. /package/{esm2020 → esm2022}/domain/users/repositories/subscription-payment.repository.mjs +0 -0
  330. /package/{esm2020 → esm2022}/domain/users/repositories/subscription.repository.mjs +0 -0
  331. /package/{esm2020 → esm2022}/domain/users/repositories/user-address.repository.mjs +0 -0
  332. /package/{esm2020 → esm2022}/domain/users/repositories/user-payment-method.repository.mjs +0 -0
  333. /package/{esm2020 → esm2022}/domain/users/repositories/user.repository.mjs +0 -0
  334. /package/{esm2020 → esm2022}/domain/users/services/authentication.service.mjs +0 -0
  335. /package/{esm2020 → esm2022}/domain/users/services/index.mjs +0 -0
  336. /package/{esm2020 → esm2022}/domain/users/services/register.service.mjs +0 -0
  337. /package/{esm2020 → esm2022}/domain/users/services/types/basic-user-data.type.mjs +0 -0
  338. /package/{esm2020 → esm2022}/domain/users/services/types/index.mjs +0 -0
  339. /package/{esm2020 → esm2022}/domain/users/use-cases/authentication.mjs +0 -0
  340. /package/{esm2020 → esm2022}/domain/users/use-cases/index.mjs +0 -0
  341. /package/{esm2020 → esm2022}/domain/users/use-cases/recovery-password.mjs +0 -0
  342. /package/{esm2020 → esm2022}/domain/users/use-cases/register.mjs +0 -0
  343. /package/{esm2020 → esm2022}/domain/users/use-cases/signout.mjs +0 -0
  344. /package/{esm2020 → esm2022}/errors/duplicated-results.error.mjs +0 -0
  345. /package/{esm2020 → esm2022}/errors/index.mjs +0 -0
  346. /package/{esm2020 → esm2022}/errors/invalid-argument.error.mjs +0 -0
  347. /package/{esm2020 → esm2022}/errors/not-found.error.mjs +0 -0
  348. /package/{esm2020 → esm2022}/errors/required-argument.error.mjs +0 -0
  349. /package/{esm2020 → esm2022}/index.mjs +0 -0
  350. /package/{esm2020 → esm2022}/infra/elasticsearch/adapters/axios.adapter.mjs +0 -0
  351. /package/{esm2020 → esm2022}/infra/elasticsearch/adapters/elastic-search.adapter.mjs +0 -0
  352. /package/{esm2020 → esm2022}/infra/elasticsearch/adapters/index.mjs +0 -0
  353. /package/{esm2020 → esm2022}/infra/elasticsearch/index.mjs +0 -0
  354. /package/{esm2020 → esm2022}/infra/elasticsearch/indexes/index.mjs +0 -0
  355. /package/{esm2020 → esm2022}/infra/elasticsearch/indexes/products-index.mjs +0 -0
  356. /package/{esm2020 → esm2022}/infra/elasticsearch/types/elastic-search-result.mjs +0 -0
  357. /package/{esm2020 → esm2022}/infra/elasticsearch/types/index.mjs +0 -0
  358. /package/{esm2020 → esm2022}/infra/firebase/auth/authentication-firebase-auth.service.mjs +0 -0
  359. /package/{esm2020 → esm2022}/infra/firebase/auth/index.mjs +0 -0
  360. /package/{esm2020 → esm2022}/infra/firebase/auth/register-firebase-auth.service.mjs +0 -0
  361. /package/{esm2020 → esm2022}/infra/firebase/auth/types/firebase-user-with-id.type.mjs +0 -0
  362. /package/{esm2020 → esm2022}/infra/firebase/firestore/enums/firestore-field-type.enum.mjs +0 -0
  363. /package/{esm2020 → esm2022}/infra/firebase/firestore/enums/index.mjs +0 -0
  364. /package/{esm2020 → esm2022}/infra/firebase/firestore/index.mjs +0 -0
  365. /package/{esm2020 → esm2022}/infra/firebase/firestore/mixins/index.mjs +0 -0
  366. /package/{esm2020 → esm2022}/infra/firebase/firestore/mixins/with-create-firestore.mixin.mjs +0 -0
  367. /package/{esm2020 → esm2022}/infra/firebase/firestore/mixins/with-crud-firestore.mixin.mjs +0 -0
  368. /package/{esm2020 → esm2022}/infra/firebase/firestore/mixins/with-delete-firestore.mixin.mjs +0 -0
  369. /package/{esm2020 → esm2022}/infra/firebase/firestore/mixins/with-find-firestore.mixin.mjs +0 -0
  370. /package/{esm2020 → esm2022}/infra/firebase/firestore/mixins/with-firestore.mixin.mjs +0 -0
  371. /package/{esm2020 → esm2022}/infra/firebase/firestore/mixins/with-get-firestore.mixin.mjs +0 -0
  372. /package/{esm2020 → esm2022}/infra/firebase/firestore/mixins/with-helpers.mixin.mjs +0 -0
  373. /package/{esm2020 → esm2022}/infra/firebase/firestore/mixins/with-sub-collection.mixin.mjs +0 -0
  374. /package/{esm2020 → esm2022}/infra/firebase/firestore/mixins/with-update-firestore.mixin.mjs +0 -0
  375. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/catalog/category-firestore.repository.mjs +0 -0
  376. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/catalog/index.mjs +0 -0
  377. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/catalog/product-firestore.repository.mjs +0 -0
  378. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.mjs +0 -0
  379. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.mjs +0 -0
  380. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/index.mjs +0 -0
  381. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.mjs +0 -0
  382. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/shop-settings/index.mjs +0 -0
  383. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.mjs +0 -0
  384. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.mjs +0 -0
  385. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.mjs +0 -0
  386. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.mjs +0 -0
  387. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.mjs +0 -0
  388. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.mjs +0 -0
  389. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.mjs +0 -0
  390. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.mjs +0 -0
  391. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/shopping/index.mjs +0 -0
  392. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.mjs +0 -0
  393. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/shopping/order-firestore.repository.mjs +0 -0
  394. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.mjs +0 -0
  395. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.mjs +0 -0
  396. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/users/index.mjs +0 -0
  397. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/users/lead-firestore.repository.mjs +0 -0
  398. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.mjs +0 -0
  399. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/users/subscription-firestore.repository.mjs +0 -0
  400. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.mjs +0 -0
  401. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/users/user-address-firestore.repository.mjs +0 -0
  402. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.mjs +0 -0
  403. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/users/user-firestore.repository.mjs +0 -0
  404. /package/{esm2020 → esm2022}/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.mjs +0 -0
  405. /package/{esm2020 → esm2022}/infra/firebase/firestore/types/firestore-interceptors.type.mjs +0 -0
  406. /package/{esm2020 → esm2022}/infra/firebase/firestore/types/firestore-sub.repository.type.mjs +0 -0
  407. /package/{esm2020 → esm2022}/infra/firebase/firestore/types/firestore.helpers.type.mjs +0 -0
  408. /package/{esm2020 → esm2022}/infra/firebase/firestore/types/firestore.repository.type.mjs +0 -0
  409. /package/{esm2020 → esm2022}/infra/firebase/firestore/types/index.mjs +0 -0
  410. /package/{esm2020 → esm2022}/infra/firebase/index.mjs +0 -0
  411. /package/{esm2020 → esm2022}/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.mjs +0 -0
  412. /package/{esm2020 → esm2022}/infra/hasura-graphql/enums/hasura-graphql-where.enum.mjs +0 -0
  413. /package/{esm2020 → esm2022}/infra/hasura-graphql/enums/index.mjs +0 -0
  414. /package/{esm2020 → esm2022}/infra/hasura-graphql/index.mjs +0 -0
  415. /package/{esm2020 → esm2022}/infra/hasura-graphql/mixins/helpers/index.mjs +0 -0
  416. /package/{esm2020 → esm2022}/infra/hasura-graphql/mixins/index.mjs +0 -0
  417. /package/{esm2020 → esm2022}/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.mjs +0 -0
  418. /package/{esm2020 → esm2022}/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.mjs +0 -0
  419. /package/{esm2020 → esm2022}/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.mjs +0 -0
  420. /package/{esm2020 → esm2022}/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.mjs +0 -0
  421. /package/{esm2020 → esm2022}/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.mjs +0 -0
  422. /package/{esm2020 → esm2022}/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.mjs +0 -0
  423. /package/{esm2020 → esm2022}/infra/hasura-graphql/models/category-hasura-graphql.mjs +0 -0
  424. /package/{esm2020 → esm2022}/infra/hasura-graphql/models/index.mjs +0 -0
  425. /package/{esm2020 → esm2022}/infra/hasura-graphql/models/kit-product-hasura-graphql.mjs +0 -0
  426. /package/{esm2020 → esm2022}/infra/hasura-graphql/models/product-hasura-graphql.mjs +0 -0
  427. /package/{esm2020 → esm2022}/infra/hasura-graphql/models/variant-hasura-graphql.mjs +0 -0
  428. /package/{esm2020 → esm2022}/infra/hasura-graphql/repositories/catalog/category-collection-children-hasura-graphql.repository.mjs +0 -0
  429. /package/{esm2020 → esm2022}/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.mjs +0 -0
  430. /package/{esm2020 → esm2022}/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.mjs +0 -0
  431. /package/{esm2020 → esm2022}/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.mjs +0 -0
  432. /package/{esm2020 → esm2022}/infra/hasura-graphql/repositories/catalog/index.mjs +0 -0
  433. /package/{esm2020 → esm2022}/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.mjs +0 -0
  434. /package/{esm2020 → esm2022}/infra/hasura-graphql/repositories/index.mjs +0 -0
  435. /package/{esm2020 → esm2022}/infra/hasura-graphql/types/fields.type.mjs +0 -0
  436. /package/{esm2020 → esm2022}/infra/hasura-graphql/types/graphql.repository.type.mjs +0 -0
  437. /package/{esm2020 → esm2022}/infra/hasura-graphql/types/hasura-graphql-auth-options.type.mjs +0 -0
  438. /package/{esm2020 → esm2022}/infra/hasura-graphql/types/hasura-graphql-fields.type.mjs +0 -0
  439. /package/{esm2020 → esm2022}/infra/hasura-graphql/types/hasura-graphql-headers.type.mjs +0 -0
  440. /package/{esm2020 → esm2022}/infra/hasura-graphql/types/index.mjs +0 -0
  441. /package/{esm2020 → esm2022}/infra/hasura-graphql/types/nested-field.type.mjs +0 -0
  442. /package/{esm2020 → esm2022}/infra/hasura-graphql/types/query-builder-options.type.mjs +0 -0
  443. /package/{esm2020 → esm2022}/infra/hasura-graphql/types/variable-options.type.mjs +0 -0
  444. /package/{esm2020 → esm2022}/infra/index.mjs +0 -0
  445. /package/{esm2020 → esm2022}/infrab4a-connect.mjs +0 -0
  446. /package/{esm2020 → esm2022}/utils/decorators/debug.class.decorator.mjs +0 -0
  447. /package/{esm2020 → esm2022}/utils/decorators/index.mjs +0 -0
  448. /package/{esm2020 → esm2022}/utils/decorators/trace.method.decorator.mjs +0 -0
  449. /package/{esm2020 → esm2022}/utils/get.mjs +0 -0
  450. /package/{esm2020 → esm2022}/utils/helpers/class-name.helper.mjs +0 -0
  451. /package/{esm2020 → esm2022}/utils/helpers/index.mjs +0 -0
  452. /package/{esm2020 → esm2022}/utils/index.mjs +0 -0
  453. /package/{esm2020 → esm2022}/utils/is-uuid.mjs +0 -0
  454. /package/{esm2020 → esm2022}/utils/is.mjs +0 -0
  455. /package/{esm2020 → esm2022}/utils/log.utils.mjs +0 -0
  456. /package/{esm2020 → esm2022}/utils/mixins/base.mixin.mjs +0 -0
  457. /package/{esm2020 → esm2022}/utils/mixins/index.mjs +0 -0
  458. /package/{esm2020 → esm2022}/utils/mixins/merge-constructor-params.type.mjs +0 -0
  459. /package/{esm2020 → esm2022}/utils/mixins/mixin-ctor.type.mjs +0 -0
  460. /package/{esm2020 → esm2022}/utils/parse-datetime.mjs +0 -0
  461. /package/{esm2020 → esm2022}/utils/types/array-element.type.mjs +0 -0
  462. /package/{esm2020 → esm2022}/utils/types/index.mjs +0 -0
  463. /package/{esm2020 → esm2022}/utils/types/prop.type.mjs +0 -0
@@ -1,6 +1,6 @@
1
1
  import { BaseModel } from '../../generic/model/base.model';
2
2
  import { BeardSizes, HairTypes } from './enums';
3
- export declare type BeautyProfileIdentifiers = 'id' | 'userId';
3
+ export type BeautyProfileIdentifiers = 'id' | 'userId';
4
4
  export declare class BeautyProfile extends BaseModel<BeautyProfile, BeautyProfileIdentifiers> {
5
5
  id: string;
6
6
  userId: string;
@@ -1,6 +1,6 @@
1
1
  import { BaseModel } from '../../../generic/model/base.model';
2
2
  import { EditionStatus, BillingStatus } from './enums';
3
- export declare type EditionIdentifiers = 'id' | 'subscriptionId';
3
+ export type EditionIdentifiers = 'id' | 'subscriptionId';
4
4
  export declare class Edition extends BaseModel<Edition, EditionIdentifiers> {
5
5
  id: string;
6
6
  subscriptionId: string;
@@ -1,7 +1,7 @@
1
1
  import { BaseModel } from '../../../generic/model/base.model';
2
2
  import { Payment } from '../../../shopping/models/payment';
3
3
  import { PaymentType } from './enums/payment-type.enum';
4
- export declare type SubscriptionPaymentIdentifiers = 'id' | 'subscriptionId';
4
+ export type SubscriptionPaymentIdentifiers = 'id' | 'subscriptionId';
5
5
  export declare class SubscriptionPayment extends BaseModel<SubscriptionPayment, SubscriptionPaymentIdentifiers> {
6
6
  id: string;
7
7
  subscriptionId: string;
@@ -1,5 +1,5 @@
1
1
  import { Address } from '../../location/models/address';
2
- export declare type UserAddressIdentifiers = 'id' | 'userId';
2
+ export type UserAddressIdentifiers = 'id' | 'userId';
3
3
  export declare class UserAddress extends Address<UserAddress, UserAddressIdentifiers> {
4
4
  userId: string;
5
5
  static get identifiersFields(): UserAddressIdentifiers[];
@@ -1,5 +1,5 @@
1
1
  import { BaseModel } from '../../generic/model/base.model';
2
- export declare type UserPaymentIdentifiers = 'id' | 'userId';
2
+ export type UserPaymentIdentifiers = 'id' | 'userId';
3
3
  export declare class UserPaymentMethod extends BaseModel<UserPaymentMethod, UserPaymentIdentifiers> {
4
4
  brand: string;
5
5
  cpf: string;
@@ -1,5 +1,5 @@
1
1
  import { BasicUserData } from './types/basic-user-data.type';
2
- export declare type LoginAndPasswordParams = {
2
+ export type LoginAndPasswordParams = {
3
3
  email: string;
4
4
  password: string;
5
5
  };
@@ -1,5 +1,5 @@
1
1
  import { BasicUserData } from './types/basic-user-data.type';
2
- export declare type RegisterParams = Omit<BasicUserData, 'isAnonymous'> & {
2
+ export type RegisterParams = Omit<BasicUserData, 'isAnonymous'> & {
3
3
  password: string;
4
4
  };
5
5
  export interface RegisterService {
@@ -1,4 +1,4 @@
1
1
  import { User } from '../../models/user';
2
- export declare type BasicUserData = Partial<Pick<User, 'id' | 'cpf' | 'email' | 'firstName' | 'lastName' | 'displayName' | 'phone' | 'birthday'>> & {
2
+ export type BasicUserData = Partial<Pick<User, 'id' | 'cpf' | 'email' | 'firstName' | 'lastName' | 'displayName' | 'phone' | 'birthday'>> & {
3
3
  isAnonymous: boolean;
4
4
  };
@@ -5,8 +5,8 @@ export declare enum SignInMethods {
5
5
  EMAIL_PASSWORD = "email_password",
6
6
  GOOGLE = "google"
7
7
  }
8
- declare type SignInMethod = Lowercase<keyof typeof SignInMethods>;
9
- declare type SignInParams = {
8
+ type SignInMethod = Lowercase<keyof typeof SignInMethods>;
9
+ type SignInParams = {
10
10
  email?: string;
11
11
  password?: string;
12
12
  };
@@ -1,7 +1,7 @@
1
1
  import { User } from '../models';
2
2
  import { RegisterService } from '../services/register.service';
3
3
  import { UserRepository } from '../repositories/user.repository';
4
- declare type RegisterParams = Partial<User> & {
4
+ type RegisterParams = Partial<User> & {
5
5
  password: string;
6
6
  };
7
7
  export declare class Register {
@@ -4,4 +4,4 @@ export class Wishlist extends Category {
4
4
  return ['id'];
5
5
  }
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9kb21haW4vY2F0YWxvZy9tb2RlbHMvd2lzaGxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVyQyxNQUFNLE9BQU8sUUFBUyxTQUFRLFFBQVE7SUFLcEMsTUFBTSxLQUFjLGlCQUFpQjtRQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmljSWRlbnRpZmllciB9IGZyb20gJy4uLy4uL2dlbmVyaWMvbW9kZWwnXHJcbmltcG9ydCB7IENhdGVnb3J5IH0gZnJvbSAnLi9jYXRlZ29yeSdcclxuXHJcbmV4cG9ydCBjbGFzcyBXaXNobGlzdCBleHRlbmRzIENhdGVnb3J5IHtcclxuICBwZXJzb25JZD86IHN0cmluZ1xyXG4gIHBlcnNvbk5hbWU/OiBzdHJpbmdcclxuICBwZXJzb25QaG90bz86IHN0cmluZ1xyXG5cclxuICBzdGF0aWMgb3ZlcnJpZGUgZ2V0IGlkZW50aWZpZXJzRmllbGRzKCk6IEdlbmVyaWNJZGVudGlmaWVyW10ge1xyXG4gICAgcmV0dXJuIFsnaWQnXVxyXG4gIH1cclxufVxyXG4iXX0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9kb21haW4vY2F0YWxvZy9tb2RlbHMvd2lzaGxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVyQyxNQUFNLE9BQU8sUUFBUyxTQUFRLFFBQVE7SUFHcEMsTUFBTSxLQUFjLGlCQUFpQjtRQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmljSWRlbnRpZmllciB9IGZyb20gJy4uLy4uL2dlbmVyaWMvbW9kZWwnXHJcbmltcG9ydCB7IENhdGVnb3J5IH0gZnJvbSAnLi9jYXRlZ29yeSdcclxuXHJcbmV4cG9ydCBjbGFzcyBXaXNobGlzdCBleHRlbmRzIENhdGVnb3J5IHtcclxuICBwZXJzb25JZD86IHN0cmluZ1xyXG5cclxuICBzdGF0aWMgb3ZlcnJpZGUgZ2V0IGlkZW50aWZpZXJzRmllbGRzKCk6IEdlbmVyaWNJZGVudGlmaWVyW10ge1xyXG4gICAgcmV0dXJuIFsnaWQnXVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,15 @@
1
+ export * from './banner.type';
2
+ export * from './benefit.type';
3
+ export * from './campaign-page';
4
+ export * from './home-data.type';
5
+ export * from './menu-nav.type';
6
+ export * from './sections.type';
7
+ export * from './shop-banner.type';
8
+ export * from './shop-brands.type';
9
+ export * from './shop-carousel.type';
10
+ export * from './shop-collection.type';
11
+ export * from './shop-gift.type';
12
+ export * from './shop-post.type';
13
+ export * from './shop-section.type';
14
+ export * from './sub-menu.type';
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9kb21haW4vc2hvcC1zZXR0aW5ncy9tb2RlbHMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUE7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsa0JBQWtCLENBQUE7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsb0JBQW9CLENBQUE7QUFDbEMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLHNCQUFzQixDQUFBO0FBQ3BDLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxrQkFBa0IsQ0FBQTtBQUNoQyxjQUFjLGtCQUFrQixDQUFBO0FBQ2hDLGNBQWMscUJBQXFCLENBQUE7QUFDbkMsY0FBYyxpQkFBaUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmFubmVyLnR5cGUnXHJcbmV4cG9ydCAqIGZyb20gJy4vYmVuZWZpdC50eXBlJ1xyXG5leHBvcnQgKiBmcm9tICcuL2NhbXBhaWduLXBhZ2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vaG9tZS1kYXRhLnR5cGUnXHJcbmV4cG9ydCAqIGZyb20gJy4vbWVudS1uYXYudHlwZSdcclxuZXhwb3J0ICogZnJvbSAnLi9zZWN0aW9ucy50eXBlJ1xyXG5leHBvcnQgKiBmcm9tICcuL3Nob3AtYmFubmVyLnR5cGUnXHJcbmV4cG9ydCAqIGZyb20gJy4vc2hvcC1icmFuZHMudHlwZSdcclxuZXhwb3J0ICogZnJvbSAnLi9zaG9wLWNhcm91c2VsLnR5cGUnXHJcbmV4cG9ydCAqIGZyb20gJy4vc2hvcC1jb2xsZWN0aW9uLnR5cGUnXHJcbmV4cG9ydCAqIGZyb20gJy4vc2hvcC1naWZ0LnR5cGUnXHJcbmV4cG9ydCAqIGZyb20gJy4vc2hvcC1wb3N0LnR5cGUnXHJcbmV4cG9ydCAqIGZyb20gJy4vc2hvcC1zZWN0aW9uLnR5cGUnXHJcbmV4cG9ydCAqIGZyb20gJy4vc3ViLW1lbnUudHlwZSdcclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbnMudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2RvbWFpbi9zaG9wLXNldHRpbmdzL21vZGVscy90eXBlcy9zZWN0aW9ucy50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYW5kaW5nUGFnZSB9IGZyb20gJy4vbGFuZGluZy1wYWdlJ1xyXG5pbXBvcnQgeyBTaG9wQmFubmVyIH0gZnJvbSAnLi9zaG9wLWJhbm5lci50eXBlJ1xyXG5pbXBvcnQgeyBTaG9wQ2Fyb3VzZWwgfSBmcm9tICcuL3Nob3AtY2Fyb3VzZWwudHlwZSdcclxuaW1wb3J0IHsgU2hvcEdpZnQgfSBmcm9tICcuL3Nob3AtZ2lmdC50eXBlJ1xyXG5pbXBvcnQgeyBTaG9wSG9tZSB9IGZyb20gJy4vc2hvcC1ob21lJ1xyXG5pbXBvcnQgeyBTaG9wUG9zdCB9IGZyb20gJy4vc2hvcC1wb3N0LnR5cGUnXHJcbmltcG9ydCB7IFNob3BTZWN0aW9uIH0gZnJvbSAnLi9zaG9wLXNlY3Rpb24udHlwZSdcclxuXHJcbmV4cG9ydCB0eXBlIEhvbWVTZWN0aW9uID0gW1Nob3BIb21lPGFueT5dXHJcbmV4cG9ydCB0eXBlIExQQ2x1YmVTaG9wU2VjdGlvbiA9IFtTaG9wQ2Fyb3VzZWxdXHJcbmV4cG9ydCB0eXBlIFN1YnNjcmliZXJQYW5lbFNob3BTZWN0aW9uID0gW1Nob3BDYXJvdXNlbFtdXVxyXG5leHBvcnQgdHlwZSBJbnZpdGVGcmllbmRzU2hvcFNlY3Rpb24gPSBbU2hvcENhcm91c2VsXVxyXG5leHBvcnQgdHlwZSBJbnZpdGVBbmRXaW5TaG9wU2VjdGlvbiA9IFtTaG9wR2lmdF1cclxuZXhwb3J0IHR5cGUgV2luR2xhbXBvaW50c1Nob3BTZWN0aW9uID0gW1Nob3BHaWZ0XVxyXG5leHBvcnQgdHlwZSBQb3N0c1Nob3BTZWN0aW9uID0gW1Nob3BTZWN0aW9uICYgeyBwb3N0czogU2hvcFBvc3RbXSB9XVxyXG5leHBvcnQgdHlwZSBHbGFtcG9pbnRzVml0cmluZVNob3BTZWN0aW9uID0gW1Nob3BCYW5uZXJdXHJcbmV4cG9ydCB0eXBlIFNpbXBsZUxQU2hvcFNlY3Rpb24gPSBbKFNob3BCYW5uZXIgJiB7IGNhcm91c2VsQ29sb3I/OiBzdHJpbmcgfSlbXV1cclxuZXhwb3J0IHR5cGUgTGFuZGluZ1BhZ2VTZWN0aW9uID0gW0xhbmRpbmdQYWdlPGFueT5dXHJcblxyXG5leHBvcnQgdHlwZSBTZWN0aW9uTGlzdCA9IHtcclxuICBIb21lU2VjdGlvbjogSG9tZVNlY3Rpb25cclxuICBMUENsdWJlU2hvcFNlY3Rpb246IExQQ2x1YmVTaG9wU2VjdGlvblxyXG4gIFN1YnNjcmliZXJQYW5lbFNob3BTZWN0aW9uOiBTdWJzY3JpYmVyUGFuZWxTaG9wU2VjdGlvblxyXG4gIEludml0ZUZyaWVuZHNTaG9wU2VjdGlvbjogSW52aXRlRnJpZW5kc1Nob3BTZWN0aW9uXHJcbiAgSW52aXRlQW5kV2luU2hvcFNlY3Rpb246IEludml0ZUFuZFdpblNob3BTZWN0aW9uXHJcbiAgV2luR2xhbXBvaW50c1Nob3BTZWN0aW9uOiBXaW5HbGFtcG9pbnRzU2hvcFNlY3Rpb25cclxuICBQb3N0c1Nob3BTZWN0aW9uOiBQb3N0c1Nob3BTZWN0aW9uXHJcbiAgR2xhbXBvaW50c1ZpdHJpbmVTaG9wU2VjdGlvbjogR2xhbXBvaW50c1ZpdHJpbmVTaG9wU2VjdGlvblxyXG4gIFNpbXBsZUxQU2hvcFNlY3Rpb246IFNpbXBsZUxQU2hvcFNlY3Rpb25cclxuICBMYW5kaW5nUGFnZVNlY3Rpb246IExhbmRpbmdQYWdlU2VjdGlvblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTZWN0aW9uPFQgZXh0ZW5kcyBrZXlvZiBTZWN0aW9uTGlzdD4gPSBTZWN0aW9uTGlzdFtUXVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbnMudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2RvbWFpbi9zaG9wLXNldHRpbmdzL21vZGVscy90eXBlcy9zZWN0aW9ucy50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaG9wQmFubmVyIH0gZnJvbSAnLi9zaG9wLWJhbm5lci50eXBlJ1xyXG5pbXBvcnQgeyBTaG9wQ2Fyb3VzZWwgfSBmcm9tICcuL3Nob3AtY2Fyb3VzZWwudHlwZSdcclxuaW1wb3J0IHsgU2hvcEdpZnQgfSBmcm9tICcuL3Nob3AtZ2lmdC50eXBlJ1xyXG5pbXBvcnQgeyBTaG9wSG9tZSB9IGZyb20gJy4vc2hvcC1ob21lJ1xyXG5pbXBvcnQgeyBTaG9wUG9zdCB9IGZyb20gJy4vc2hvcC1wb3N0LnR5cGUnXHJcbmltcG9ydCB7IFNob3BTZWN0aW9uIH0gZnJvbSAnLi9zaG9wLXNlY3Rpb24udHlwZSdcclxuXHJcbmV4cG9ydCB0eXBlIEhvbWVTZWN0aW9uID0gW1Nob3BIb21lPGFueT5dXHJcbmV4cG9ydCB0eXBlIExQQ2x1YmVTaG9wU2VjdGlvbiA9IFtTaG9wQmFubmVyW11dXHJcbmV4cG9ydCB0eXBlIFN1YnNjcmliZXJQYW5lbFNob3BTZWN0aW9uID0gW1Nob3BDYXJvdXNlbFtdXVxyXG5leHBvcnQgdHlwZSBJbnZpdGVGcmllbmRzU2hvcFNlY3Rpb24gPSBbU2hvcENhcm91c2VsXVxyXG5leHBvcnQgdHlwZSBJbnZpdGVBbmRXaW5TaG9wU2VjdGlvbiA9IFtTaG9wR2lmdF1cclxuZXhwb3J0IHR5cGUgV2luR2xhbXBvaW50c1Nob3BTZWN0aW9uID0gW1Nob3BHaWZ0XVxyXG5leHBvcnQgdHlwZSBQb3N0c1Nob3BTZWN0aW9uID0gW1Nob3BTZWN0aW9uICYgeyBwb3N0czogU2hvcFBvc3RbXSB9XVxyXG5leHBvcnQgdHlwZSBHbGFtcG9pbnRzVml0cmluZVNob3BTZWN0aW9uID0gW1Nob3BCYW5uZXJdXHJcbmV4cG9ydCB0eXBlIFNpbXBsZUxQU2hvcFNlY3Rpb24gPSBbKFNob3BCYW5uZXIgJiB7IGNhcm91c2VsQ29sb3I/OiBzdHJpbmcgfSlbXV1cclxuXHJcbmV4cG9ydCB0eXBlIFNlY3Rpb25MaXN0ID0ge1xyXG4gIEhvbWVTZWN0aW9uOiBIb21lU2VjdGlvblxyXG4gIExQQ2x1YmVTaG9wU2VjdGlvbjogTFBDbHViZVNob3BTZWN0aW9uXHJcbiAgU3Vic2NyaWJlclBhbmVsU2hvcFNlY3Rpb246IFN1YnNjcmliZXJQYW5lbFNob3BTZWN0aW9uXHJcbiAgSW52aXRlRnJpZW5kc1Nob3BTZWN0aW9uOiBJbnZpdGVGcmllbmRzU2hvcFNlY3Rpb25cclxuICBJbnZpdGVBbmRXaW5TaG9wU2VjdGlvbjogSW52aXRlQW5kV2luU2hvcFNlY3Rpb25cclxuICBXaW5HbGFtcG9pbnRzU2hvcFNlY3Rpb246IFdpbkdsYW1wb2ludHNTaG9wU2VjdGlvblxyXG4gIFBvc3RzU2hvcFNlY3Rpb246IFBvc3RzU2hvcFNlY3Rpb25cclxuICBHbGFtcG9pbnRzVml0cmluZVNob3BTZWN0aW9uOiBHbGFtcG9pbnRzVml0cmluZVNob3BTZWN0aW9uXHJcbiAgU2ltcGxlTFBTaG9wU2VjdGlvbjogU2ltcGxlTFBTaG9wU2VjdGlvblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTZWN0aW9uPFQgZXh0ZW5kcyBrZXlvZiBTZWN0aW9uTGlzdD4gPSBTZWN0aW9uTGlzdFtUXVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcC1jYXJvdXNlbC50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvZG9tYWluL3Nob3Atc2V0dGluZ3MvbW9kZWxzL3R5cGVzL3Nob3AtY2Fyb3VzZWwudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2hvcEJhbm5lciB9IGZyb20gJy4vc2hvcC1iYW5uZXIudHlwZSdcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hvcENhcm91c2VsIHtcclxuICBiYW5uZXJzOiBTaG9wQmFubmVyW11cclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcC1jYXJvdXNlbC50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvZG9tYWluL3Nob3Atc2V0dGluZ3MvbW9kZWxzL3R5cGVzL3Nob3AtY2Fyb3VzZWwudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2hvcEJhbm5lciB9IGZyb20gJy4vc2hvcC1iYW5uZXIudHlwZSdcclxuaW1wb3J0IHsgU2hvcFNlY3Rpb24gfSBmcm9tICcuL3Nob3Atc2VjdGlvbi50eXBlJ1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaG9wQ2Fyb3VzZWwgZXh0ZW5kcyBTaG9wU2VjdGlvbiB7XHJcbiAgYmFubmVyczogU2hvcEJhbm5lcltdXHJcbn1cclxuIl19
@@ -1,35 +1,35 @@
1
1
  import { is, isNil, isObject } from '../../../../utils';
2
2
  export class AttributeOptionHelper {
3
+ static { this.FindByAttribute = (attributeName, fields) => {
4
+ if (fields.includes(attributeName))
5
+ return { columnName: attributeName.toString(), attributeName, to: (value) => value, from: (value) => value };
6
+ const field = fields.find((columnOption) => isObject(columnOption) && Object.keys(columnOption).includes(attributeName.toString()));
7
+ const fieldOption = is(field)?.[attributeName];
8
+ if (isNil(fieldOption))
9
+ return { columnName: attributeName.toString(), attributeName };
10
+ if (Array.isArray(fieldOption))
11
+ return { columnName: attributeName.toString(), attributeName, fields: fieldOption };
12
+ return { attributeName, columnName: attributeName.toString(), ...fieldOption };
13
+ }; }
14
+ static { this.CheckIsColumnOption = (fieldValue) => !!fieldValue?.columnName; }
15
+ static { this.FindColumnOptionFromList = (columnName, fields) => {
16
+ if (fields.includes(columnName))
17
+ return { columnName, attributeName: columnName };
18
+ const field = is(fields.find((field) => {
19
+ if (!isObject(field))
20
+ return false;
21
+ const columnOption = Object.values(field).find((option) => AttributeOptionHelper.CheckIsColumnOption(option) && option.columnName === columnName ? option : {});
22
+ return AttributeOptionHelper.CheckIsColumnOption(columnOption) && columnOption?.columnName === columnName;
23
+ }) || {});
24
+ const attributeName = Object.keys(field).find((fieldOptionFromList) => AttributeOptionHelper.CheckIsColumnOption(field[fieldOptionFromList]) || Array.isArray(field[fieldOptionFromList]));
25
+ const fieldOption = field?.[attributeName];
26
+ if (Array.isArray(fieldOption))
27
+ return { attributeName: attributeName, fields: fieldOption };
28
+ return {
29
+ attributeName: attributeName || columnName,
30
+ columnName,
31
+ ...fieldOption,
32
+ };
33
+ }; }
3
34
  }
4
- AttributeOptionHelper.FindByAttribute = (attributeName, fields) => {
5
- if (fields.includes(attributeName))
6
- return { columnName: attributeName.toString(), attributeName, to: (value) => value, from: (value) => value };
7
- const field = fields.find((columnOption) => isObject(columnOption) && Object.keys(columnOption).includes(attributeName.toString()));
8
- const fieldOption = is(field)?.[attributeName];
9
- if (isNil(fieldOption))
10
- return { columnName: attributeName.toString(), attributeName };
11
- if (Array.isArray(fieldOption))
12
- return { columnName: attributeName.toString(), attributeName, fields: fieldOption };
13
- return { attributeName, columnName: attributeName.toString(), ...fieldOption };
14
- };
15
- AttributeOptionHelper.CheckIsColumnOption = (fieldValue) => !!fieldValue?.columnName;
16
- AttributeOptionHelper.FindColumnOptionFromList = (columnName, fields) => {
17
- if (fields.includes(columnName))
18
- return { columnName, attributeName: columnName };
19
- const field = is(fields.find((field) => {
20
- if (!isObject(field))
21
- return false;
22
- const columnOption = Object.values(field).find((option) => AttributeOptionHelper.CheckIsColumnOption(option) && option.columnName === columnName ? option : {});
23
- return AttributeOptionHelper.CheckIsColumnOption(columnOption) && columnOption?.columnName === columnName;
24
- }) || {});
25
- const attributeName = Object.keys(field).find((fieldOptionFromList) => AttributeOptionHelper.CheckIsColumnOption(field[fieldOptionFromList]) || Array.isArray(field[fieldOptionFromList]));
26
- const fieldOption = field?.[attributeName];
27
- if (Array.isArray(fieldOption))
28
- return { attributeName: attributeName, fields: fieldOption };
29
- return {
30
- attributeName: attributeName || columnName,
31
- columnName,
32
- ...fieldOption,
33
- };
34
- };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLW9wdGlvbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9hdHRyaWJ1dGUtb3B0aW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQVF2RCxNQUFNLE9BQU8scUJBQXFCOztBQUN6QixxQ0FBZSxHQUFHLENBSXZCLGFBQXdCLEVBQ3hCLE1BQWtDLEVBQ08sRUFBRTtJQUMzQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBb0IsQ0FBQztRQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUU5RyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUN2QixDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUN6RyxDQUFBO0lBQ0QsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUE0RCxLQUFLLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBRXpHLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxFQUFFLGFBQWEsRUFBRSxDQUFBO0lBQ3RGLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFBO0lBRW5ILE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFBO0FBQ2hGLENBQUMsQ0FBQTtBQUVNLHlDQUFtQixHQUFHLENBQzNCLFVBQW1ELEVBQ0YsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFBO0FBRXZFLDhDQUF3QixHQUFHLENBQ2hDLFVBQWtCLEVBQ2xCLE1BQXdDLEVBQ21FLEVBQUU7SUFDN0csSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQXNELENBQUM7UUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsVUFBZ0UsRUFBRSxDQUFBO0lBRXhHLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FDZCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQTtRQUVsQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ3hELHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDcEcsQ0FBQTtRQUVELE9BQU8scUJBQXFCLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLElBQUksWUFBWSxFQUFFLFVBQVUsS0FBSyxVQUFVLENBQUE7SUFDM0csQ0FBQyxDQUFDLElBQUksRUFBRSxDQUNULENBQUE7SUFDRCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDM0MsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQ3RCLHFCQUFxQixDQUFDLG1CQUFtQixDQUN2QyxLQUFLLENBQUMsbUJBQXlFLENBQUMsQ0FDakYsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBeUUsQ0FBQyxDQUFDLENBQ2pELENBQUE7SUFDdkQsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUE7SUFFMUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQW1FLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFBO0lBRXBILE9BQU87UUFDTCxhQUFhLEVBQUUsYUFBYSxJQUFLLFVBQWlFO1FBQ2xHLFVBQVU7UUFDVixHQUFHLFdBQVc7S0FDZixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxCYXNlU3RydWN0dXJlLCBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xyXG5pbXBvcnQgeyBpcywgaXNOaWwsIGlzT2JqZWN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXHJcbmltcG9ydCB7IENvbHVtbk9wdGlvbnMsIEhhc3VyYUdyYXBoUUxGaWVsZHMgfSBmcm9tICcuLi8uLi90eXBlcydcclxuXHJcbnR5cGUgRmluZEJ5QXR0cmlidXRlUmVzdWx0PFxyXG4gIE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1CYXNlPixcclxuICBBdHRyaWJ1dGUgZXh0ZW5kcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcclxuPiA9IENvbHVtbk9wdGlvbnM8TUJhc2VbQXR0cmlidXRlXSwgTUJhc2U+ICYgeyBhdHRyaWJ1dGVOYW1lOiBBdHRyaWJ1dGUgfVxyXG5cclxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZU9wdGlvbkhlbHBlciB7XHJcbiAgc3RhdGljIEZpbmRCeUF0dHJpYnV0ZSA9IDxcclxuICAgIE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1CYXNlLCBNQmFzZVsnaWRlbnRpZmllcnNGaWVsZHMnXVtudW1iZXJdPixcclxuICAgIEF0dHJpYnV0ZSBleHRlbmRzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+ID0gTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXHJcbiAgPihcclxuICAgIGF0dHJpYnV0ZU5hbWU6IEF0dHJpYnV0ZSxcclxuICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT4sXHJcbiAgKTogRmluZEJ5QXR0cmlidXRlUmVzdWx0PE1CYXNlLCBBdHRyaWJ1dGU+ID0+IHtcclxuICAgIGlmIChmaWVsZHMuaW5jbHVkZXMoYXR0cmlidXRlTmFtZSBhcyBhbnkpKVxyXG4gICAgICByZXR1cm4geyBjb2x1bW5OYW1lOiBhdHRyaWJ1dGVOYW1lLnRvU3RyaW5nKCksIGF0dHJpYnV0ZU5hbWUsIHRvOiAodmFsdWUpID0+IHZhbHVlLCBmcm9tOiAodmFsdWUpID0+IHZhbHVlIH1cclxuXHJcbiAgICBjb25zdCBmaWVsZCA9IGZpZWxkcy5maW5kKFxyXG4gICAgICAoY29sdW1uT3B0aW9uKSA9PiBpc09iamVjdChjb2x1bW5PcHRpb24pICYmIE9iamVjdC5rZXlzKGNvbHVtbk9wdGlvbikuaW5jbHVkZXMoYXR0cmlidXRlTmFtZS50b1N0cmluZygpKSxcclxuICAgIClcclxuICAgIGNvbnN0IGZpZWxkT3B0aW9uID0gaXM8UmVjb3JkPEF0dHJpYnV0ZSwgQ29sdW1uT3B0aW9uczxNQmFzZVtBdHRyaWJ1dGVdLCBNQmFzZT4+PihmaWVsZCk/LlthdHRyaWJ1dGVOYW1lXVxyXG5cclxuICAgIGlmIChpc05pbChmaWVsZE9wdGlvbikpIHJldHVybiB7IGNvbHVtbk5hbWU6IGF0dHJpYnV0ZU5hbWUudG9TdHJpbmcoKSwgYXR0cmlidXRlTmFtZSB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZE9wdGlvbikpIHJldHVybiB7IGNvbHVtbk5hbWU6IGF0dHJpYnV0ZU5hbWUudG9TdHJpbmcoKSwgYXR0cmlidXRlTmFtZSwgZmllbGRzOiBmaWVsZE9wdGlvbiB9XHJcblxyXG4gICAgcmV0dXJuIHsgYXR0cmlidXRlTmFtZSwgY29sdW1uTmFtZTogYXR0cmlidXRlTmFtZS50b1N0cmluZygpLCAuLi5maWVsZE9wdGlvbiB9XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgQ2hlY2tJc0NvbHVtbk9wdGlvbiA9IDxNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNb2RlbD4sIFBhcmVudE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPihcclxuICAgIGZpZWxkVmFsdWU6IENvbHVtbk9wdGlvbnM8TW9kZWwsIFBhcmVudE1vZGVsPiB8IGFueSxcclxuICApOiBmaWVsZFZhbHVlIGlzIENvbHVtbk9wdGlvbnM8TW9kZWwsIFBhcmVudE1vZGVsPiA9PiAhIWZpZWxkVmFsdWU/LmNvbHVtbk5hbWVcclxuXHJcbiAgc3RhdGljIEZpbmRDb2x1bW5PcHRpb25Gcm9tTGlzdCA9IDxNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZSwgUGFyZW50TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+KFxyXG4gICAgY29sdW1uTmFtZTogc3RyaW5nLFxyXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPFBhcmVudE1vZGVsPixcclxuICApOiBDb2x1bW5PcHRpb25zPE1vZGVsLCBQYXJlbnRNb2RlbD4gJiB7IGF0dHJpYnV0ZU5hbWU6IE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8UGFyZW50TW9kZWw+IH0gPT4ge1xyXG4gICAgaWYgKGZpZWxkcy5pbmNsdWRlcyhjb2x1bW5OYW1lIGFzIEhhc3VyYUdyYXBoUUxGaWVsZHM8UGFyZW50TW9kZWw+W251bWJlcl0pKVxyXG4gICAgICByZXR1cm4geyBjb2x1bW5OYW1lLCBhdHRyaWJ1dGVOYW1lOiBjb2x1bW5OYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8UGFyZW50TW9kZWw+IH1cclxuXHJcbiAgICBjb25zdCBmaWVsZCA9IGlzPFJlY29yZDxOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFBhcmVudE1vZGVsPiwgQ29sdW1uT3B0aW9uczxNb2RlbCwgUGFyZW50TW9kZWw+Pj4oXHJcbiAgICAgIGZpZWxkcy5maW5kKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIGlmICghaXNPYmplY3QoZmllbGQpKSByZXR1cm4gZmFsc2VcclxuXHJcbiAgICAgICAgY29uc3QgY29sdW1uT3B0aW9uID0gT2JqZWN0LnZhbHVlcyhmaWVsZCkuZmluZCgob3B0aW9uKSA9PlxyXG4gICAgICAgICAgQXR0cmlidXRlT3B0aW9uSGVscGVyLkNoZWNrSXNDb2x1bW5PcHRpb24ob3B0aW9uKSAmJiBvcHRpb24uY29sdW1uTmFtZSA9PT0gY29sdW1uTmFtZSA/IG9wdGlvbiA6IHt9LFxyXG4gICAgICAgIClcclxuXHJcbiAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5DaGVja0lzQ29sdW1uT3B0aW9uKGNvbHVtbk9wdGlvbikgJiYgY29sdW1uT3B0aW9uPy5jb2x1bW5OYW1lID09PSBjb2x1bW5OYW1lXHJcbiAgICAgIH0pIHx8IHt9LFxyXG4gICAgKVxyXG4gICAgY29uc3QgYXR0cmlidXRlTmFtZSA9IE9iamVjdC5rZXlzKGZpZWxkKS5maW5kKFxyXG4gICAgICAoZmllbGRPcHRpb25Gcm9tTGlzdCkgPT5cclxuICAgICAgICBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuQ2hlY2tJc0NvbHVtbk9wdGlvbihcclxuICAgICAgICAgIGZpZWxkW2ZpZWxkT3B0aW9uRnJvbUxpc3QgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxQYXJlbnRNb2RlbD5dLFxyXG4gICAgICAgICkgfHwgQXJyYXkuaXNBcnJheShmaWVsZFtmaWVsZE9wdGlvbkZyb21MaXN0IGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8UGFyZW50TW9kZWw+XSksXHJcbiAgICApIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8UGFyZW50TW9kZWw+XHJcbiAgICBjb25zdCBmaWVsZE9wdGlvbiA9IGZpZWxkPy5bYXR0cmlidXRlTmFtZV1cclxuXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZE9wdGlvbikpXHJcbiAgICAgIHJldHVybiB7IGF0dHJpYnV0ZU5hbWU6IGF0dHJpYnV0ZU5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxQYXJlbnRNb2RlbD4sIGZpZWxkczogZmllbGRPcHRpb24gfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGF0dHJpYnV0ZU5hbWU6IGF0dHJpYnV0ZU5hbWUgfHwgKGNvbHVtbk5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxQYXJlbnRNb2RlbD4pLFxyXG4gICAgICBjb2x1bW5OYW1lLFxyXG4gICAgICAuLi5maWVsZE9wdGlvbixcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLW9wdGlvbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9hdHRyaWJ1dGUtb3B0aW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQVF2RCxNQUFNLE9BQU8scUJBQXFCO2FBQ3pCLG9CQUFlLEdBQUcsQ0FJdkIsYUFBd0IsRUFDeEIsTUFBa0MsRUFDTyxFQUFFO1FBQzNDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFvQixDQUFDO1lBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBRTlHLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ3ZCLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQ3pHLENBQUE7UUFDRCxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQTRELEtBQUssQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUE7UUFFekcsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDO1lBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUE7UUFDdEYsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUE7UUFFbkgsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsV0FBVyxFQUFFLENBQUE7SUFDaEYsQ0FBQyxDQUFBO2FBRU0sd0JBQW1CLEdBQUcsQ0FDM0IsVUFBbUQsRUFDRixFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUE7YUFFdkUsNkJBQXdCLEdBQUcsQ0FDaEMsVUFBa0IsRUFDbEIsTUFBd0MsRUFDbUUsRUFBRTtRQUM3RyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBc0QsQ0FBQztZQUN6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFnRSxFQUFFLENBQUE7UUFFeEcsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFBRSxPQUFPLEtBQUssQ0FBQTtZQUVsQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ3hELHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDcEcsQ0FBQTtZQUVELE9BQU8scUJBQXFCLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLElBQUksWUFBWSxFQUFFLFVBQVUsS0FBSyxVQUFVLENBQUE7UUFDM0csQ0FBQyxDQUFDLElBQUksRUFBRSxDQUNULENBQUE7UUFDRCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDM0MsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQ3RCLHFCQUFxQixDQUFDLG1CQUFtQixDQUN2QyxLQUFLLENBQUMsbUJBQXlFLENBQUMsQ0FDakYsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBeUUsQ0FBQyxDQUFDLENBQ2pELENBQUE7UUFDdkQsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUE7UUFFMUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQW1FLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFBO1FBRXBILE9BQU87WUFDTCxhQUFhLEVBQUUsYUFBYSxJQUFLLFVBQWlFO1lBQ2xHLFVBQVU7WUFDVixHQUFHLFdBQVc7U0FDZixDQUFBO0lBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxCYXNlU3RydWN0dXJlLCBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xyXG5pbXBvcnQgeyBpcywgaXNOaWwsIGlzT2JqZWN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXHJcbmltcG9ydCB7IENvbHVtbk9wdGlvbnMsIEhhc3VyYUdyYXBoUUxGaWVsZHMgfSBmcm9tICcuLi8uLi90eXBlcydcclxuXHJcbnR5cGUgRmluZEJ5QXR0cmlidXRlUmVzdWx0PFxyXG4gIE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1CYXNlPixcclxuICBBdHRyaWJ1dGUgZXh0ZW5kcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcclxuPiA9IENvbHVtbk9wdGlvbnM8TUJhc2VbQXR0cmlidXRlXSwgTUJhc2U+ICYgeyBhdHRyaWJ1dGVOYW1lOiBBdHRyaWJ1dGUgfVxyXG5cclxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZU9wdGlvbkhlbHBlciB7XHJcbiAgc3RhdGljIEZpbmRCeUF0dHJpYnV0ZSA9IDxcclxuICAgIE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1CYXNlLCBNQmFzZVsnaWRlbnRpZmllcnNGaWVsZHMnXVtudW1iZXJdPixcclxuICAgIEF0dHJpYnV0ZSBleHRlbmRzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+ID0gTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXHJcbiAgPihcclxuICAgIGF0dHJpYnV0ZU5hbWU6IEF0dHJpYnV0ZSxcclxuICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT4sXHJcbiAgKTogRmluZEJ5QXR0cmlidXRlUmVzdWx0PE1CYXNlLCBBdHRyaWJ1dGU+ID0+IHtcclxuICAgIGlmIChmaWVsZHMuaW5jbHVkZXMoYXR0cmlidXRlTmFtZSBhcyBhbnkpKVxyXG4gICAgICByZXR1cm4geyBjb2x1bW5OYW1lOiBhdHRyaWJ1dGVOYW1lLnRvU3RyaW5nKCksIGF0dHJpYnV0ZU5hbWUsIHRvOiAodmFsdWUpID0+IHZhbHVlLCBmcm9tOiAodmFsdWUpID0+IHZhbHVlIH1cclxuXHJcbiAgICBjb25zdCBmaWVsZCA9IGZpZWxkcy5maW5kKFxyXG4gICAgICAoY29sdW1uT3B0aW9uKSA9PiBpc09iamVjdChjb2x1bW5PcHRpb24pICYmIE9iamVjdC5rZXlzKGNvbHVtbk9wdGlvbikuaW5jbHVkZXMoYXR0cmlidXRlTmFtZS50b1N0cmluZygpKSxcclxuICAgIClcclxuICAgIGNvbnN0IGZpZWxkT3B0aW9uID0gaXM8UmVjb3JkPEF0dHJpYnV0ZSwgQ29sdW1uT3B0aW9uczxNQmFzZVtBdHRyaWJ1dGVdLCBNQmFzZT4+PihmaWVsZCk/LlthdHRyaWJ1dGVOYW1lXVxyXG5cclxuICAgIGlmIChpc05pbChmaWVsZE9wdGlvbikpIHJldHVybiB7IGNvbHVtbk5hbWU6IGF0dHJpYnV0ZU5hbWUudG9TdHJpbmcoKSwgYXR0cmlidXRlTmFtZSB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZE9wdGlvbikpIHJldHVybiB7IGNvbHVtbk5hbWU6IGF0dHJpYnV0ZU5hbWUudG9TdHJpbmcoKSwgYXR0cmlidXRlTmFtZSwgZmllbGRzOiBmaWVsZE9wdGlvbiB9XHJcblxyXG4gICAgcmV0dXJuIHsgYXR0cmlidXRlTmFtZSwgY29sdW1uTmFtZTogYXR0cmlidXRlTmFtZS50b1N0cmluZygpLCAuLi5maWVsZE9wdGlvbiB9XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgQ2hlY2tJc0NvbHVtbk9wdGlvbiA9IDxNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNb2RlbD4sIFBhcmVudE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPihcclxuICAgIGZpZWxkVmFsdWU6IENvbHVtbk9wdGlvbnM8TW9kZWwsIFBhcmVudE1vZGVsPiB8IGFueSxcclxuICApOiBmaWVsZFZhbHVlIGlzIENvbHVtbk9wdGlvbnM8TW9kZWwsIFBhcmVudE1vZGVsPiA9PiAhIWZpZWxkVmFsdWU/LmNvbHVtbk5hbWVcclxuXHJcbiAgc3RhdGljIEZpbmRDb2x1bW5PcHRpb25Gcm9tTGlzdCA9IDxNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZSwgUGFyZW50TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+KFxyXG4gICAgY29sdW1uTmFtZTogc3RyaW5nLFxyXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPFBhcmVudE1vZGVsPixcclxuICApOiBDb2x1bW5PcHRpb25zPE1vZGVsLCBQYXJlbnRNb2RlbD4gJiB7IGF0dHJpYnV0ZU5hbWU6IE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8UGFyZW50TW9kZWw+IH0gPT4ge1xyXG4gICAgaWYgKGZpZWxkcy5pbmNsdWRlcyhjb2x1bW5OYW1lIGFzIEhhc3VyYUdyYXBoUUxGaWVsZHM8UGFyZW50TW9kZWw+W251bWJlcl0pKVxyXG4gICAgICByZXR1cm4geyBjb2x1bW5OYW1lLCBhdHRyaWJ1dGVOYW1lOiBjb2x1bW5OYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8UGFyZW50TW9kZWw+IH1cclxuXHJcbiAgICBjb25zdCBmaWVsZCA9IGlzPFJlY29yZDxOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFBhcmVudE1vZGVsPiwgQ29sdW1uT3B0aW9uczxNb2RlbCwgUGFyZW50TW9kZWw+Pj4oXHJcbiAgICAgIGZpZWxkcy5maW5kKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIGlmICghaXNPYmplY3QoZmllbGQpKSByZXR1cm4gZmFsc2VcclxuXHJcbiAgICAgICAgY29uc3QgY29sdW1uT3B0aW9uID0gT2JqZWN0LnZhbHVlcyhmaWVsZCkuZmluZCgob3B0aW9uKSA9PlxyXG4gICAgICAgICAgQXR0cmlidXRlT3B0aW9uSGVscGVyLkNoZWNrSXNDb2x1bW5PcHRpb24ob3B0aW9uKSAmJiBvcHRpb24uY29sdW1uTmFtZSA9PT0gY29sdW1uTmFtZSA/IG9wdGlvbiA6IHt9LFxyXG4gICAgICAgIClcclxuXHJcbiAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5DaGVja0lzQ29sdW1uT3B0aW9uKGNvbHVtbk9wdGlvbikgJiYgY29sdW1uT3B0aW9uPy5jb2x1bW5OYW1lID09PSBjb2x1bW5OYW1lXHJcbiAgICAgIH0pIHx8IHt9LFxyXG4gICAgKVxyXG4gICAgY29uc3QgYXR0cmlidXRlTmFtZSA9IE9iamVjdC5rZXlzKGZpZWxkKS5maW5kKFxyXG4gICAgICAoZmllbGRPcHRpb25Gcm9tTGlzdCkgPT5cclxuICAgICAgICBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuQ2hlY2tJc0NvbHVtbk9wdGlvbihcclxuICAgICAgICAgIGZpZWxkW2ZpZWxkT3B0aW9uRnJvbUxpc3QgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxQYXJlbnRNb2RlbD5dLFxyXG4gICAgICAgICkgfHwgQXJyYXkuaXNBcnJheShmaWVsZFtmaWVsZE9wdGlvbkZyb21MaXN0IGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8UGFyZW50TW9kZWw+XSksXHJcbiAgICApIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8UGFyZW50TW9kZWw+XHJcbiAgICBjb25zdCBmaWVsZE9wdGlvbiA9IGZpZWxkPy5bYXR0cmlidXRlTmFtZV1cclxuXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZE9wdGlvbikpXHJcbiAgICAgIHJldHVybiB7IGF0dHJpYnV0ZU5hbWU6IGF0dHJpYnV0ZU5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxQYXJlbnRNb2RlbD4sIGZpZWxkczogZmllbGRPcHRpb24gfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGF0dHJpYnV0ZU5hbWU6IGF0dHJpYnV0ZU5hbWUgfHwgKGNvbHVtbk5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxQYXJlbnRNb2RlbD4pLFxyXG4gICAgICBjb2x1bW5OYW1lLFxyXG4gICAgICAuLi5maWVsZE9wdGlvbixcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,71 @@
1
+ import { Where, } from '../../../../domain';
2
+ import { is, isNil, isObject } from '../../../../utils';
3
+ import { HasuraGraphQLColumnType, HasuraGraphQLWhere } from '../../enums';
4
+ import { AttributeOptionHelper } from './attribute-option.helper';
5
+ import { FilterOptionHelper } from './filter-option.helper';
6
+ export class BindFilterQueryHelper {
7
+ static { this.MakeGraphQLWhere = (filter, fields) => Object.keys(filter).reduce((variables, fieldName) => {
8
+ const columnOption = AttributeOptionHelper.FindByAttribute(fieldName, fields);
9
+ if (!columnOption.bindFindFilter)
10
+ return {
11
+ ...variables,
12
+ ...{
13
+ [columnOption.columnName]: BindFilterQueryHelper.BuildWhereSentence(fieldName, filter[fieldName], fields),
14
+ },
15
+ };
16
+ const builtFilter = columnOption.bindFindFilter(filter[fieldName]);
17
+ return {
18
+ ...variables,
19
+ ...Object.keys(builtFilter).reduce((variablesList, columnName) => ({
20
+ ...variablesList,
21
+ [columnName]: BindFilterQueryHelper.BuildWhereSentence(fieldName, builtFilter[columnName], fields),
22
+ }), {}),
23
+ };
24
+ }, {}); }
25
+ static { this.BuildWhereSentence = (field, options, fields) => {
26
+ const fieldSentenceOptions = AttributeOptionHelper.FindByAttribute(field, fields);
27
+ const isNestedField = !Array.isArray(options) &&
28
+ isObject(options) &&
29
+ isNil(options?.operator) &&
30
+ isNil(options?.value) &&
31
+ isNil(fieldSentenceOptions?.to);
32
+ if (isNestedField)
33
+ return Object.keys(options).reduce((variables, key) => {
34
+ const fieldOptions = AttributeOptionHelper.FindByAttribute(key, fieldSentenceOptions?.fields || fields);
35
+ const columnName = fieldOptions.columnName;
36
+ const columnFields = fieldOptions.fields;
37
+ return {
38
+ ...variables,
39
+ [columnName]: BindFilterQueryHelper.BuildWhereSentence(key, is(is(options)[key]), fieldSentenceOptions?.fields || columnFields || fields),
40
+ };
41
+ }, {});
42
+ if (!Array.isArray(options) && !isNil(fieldSentenceOptions.fields))
43
+ return {
44
+ [fieldSentenceOptions.fields[0]]: BindFilterQueryHelper.BuildOperatorSentence(options, fieldSentenceOptions),
45
+ };
46
+ if (!Array.isArray(options) && isObject(options) && !FilterOptionHelper.CheckIfIsFilterOption(options))
47
+ options = Object.values(options)[0];
48
+ return Array.isArray(options)
49
+ ? options.reduce((whereSentence, option) => ({
50
+ ...whereSentence,
51
+ ...BindFilterQueryHelper.BuildOperatorSentence(option, fieldSentenceOptions),
52
+ }), {})
53
+ : BindFilterQueryHelper.BuildOperatorSentence(options, fieldSentenceOptions);
54
+ }; }
55
+ static { this.BuildOperatorSentence = (options, fieldOption) => ({
56
+ [BindFilterQueryHelper.GetHasuraOperator(options, fieldOption)]: FilterOptionHelper.GetValueFromFilter(options, fieldOption),
57
+ }); }
58
+ static { this.GetHasuraOperator = (options, fieldOption) => FilterOptionHelper.CheckIfIsFilterOption(options)
59
+ ? fieldOption.type === HasuraGraphQLColumnType.Jsonb
60
+ ? BindFilterQueryHelper.GetHasuraJsonbOperator(options)
61
+ : HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find((graphQLOperator) => graphQLOperator ===
62
+ Object.keys(Where).find((operator) => Where[operator] === options?.operator))]
63
+ : HasuraGraphQLWhere.EQUALS; }
64
+ static { this.GetHasuraJsonbOperator = (options) => options.operator === Where.IN
65
+ ? HasuraGraphQLWhere.JSON_CONTAINS
66
+ : options.operator === Where.LIKE
67
+ ? HasuraGraphQLWhere.JSON_HAS_KEYS_ANY
68
+ : HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find((graphQLOperator) => graphQLOperator ===
69
+ Object.keys(Where).find((operator) => Where[operator] === options?.operator))]; }
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZC1maWx0ZXItcXVlcnkuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvbWl4aW5zL2hlbHBlcnMvYmluZC1maWx0ZXItcXVlcnkuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFNTCxLQUFLLEdBQ04sTUFBTSxvQkFBb0IsQ0FBQTtBQUMzQixPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFFM0QsTUFBTSxPQUFPLHFCQUFxQjthQUN6QixxQkFBZ0IsR0FBRyxDQUN4QixNQUFxQyxFQUNyQyxNQUFrQyxFQUNqQixFQUFFLENBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBMEIsRUFBRSxTQUFpQixFQUFFLEVBQUU7UUFDM0UsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUMsZUFBZSxDQUN4RCxTQUF5RCxFQUN6RCxNQUFNLENBQ1AsQ0FBQTtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYztZQUM5QixPQUFPO2dCQUNMLEdBQUcsU0FBUztnQkFDWixHQUFHO29CQUNELENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLGtCQUFrQixDQUNqRSxTQUF5RCxFQUN6RCxNQUFNLENBQUMsU0FBeUQsQ0FHL0QsRUFDRCxNQUFNLENBQ1A7aUJBQ0Y7YUFDRixDQUFBO1FBRUgsTUFBTSxXQUFXLEdB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QUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxJQUFJO1lBQ2pDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUI7WUFDdEMsQ0FBQyxDQUFDLGtCQUFrQixDQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUNsQyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQ2xCLGVBQWU7Z0JBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUE4QixDQUFDLEtBQUssT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUNsRSxDQUNyQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBNb2RlbEJhc2VTdHJ1Y3R1cmUsXHJcbiAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lcyxcclxuICBOb25GdW5jdGlvblByb3BlcnR5TmFtZXMsXHJcbiAgUmVwb3NpdG9yeUZpbmRGaWVsdGVycyxcclxuICBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9ucyxcclxuICBXaGVyZSxcclxufSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nXHJcbmltcG9ydCB7IGlzLCBpc05pbCwgaXNPYmplY3QgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscydcclxuaW1wb3J0IHsgSGFzdXJhR3JhcGhRTENvbHVtblR5cGUsIEhhc3VyYUdyYXBoUUxXaGVyZSB9IGZyb20gJy4uLy4uL2VudW1zJ1xyXG5pbXBvcnQgeyBDb2x1bW5PcHRpb25zLCBIYXN1cmFHcmFwaFFMRmllbGRzLCBWYXJpYWJsZU9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcydcclxuaW1wb3J0IHsgQXR0cmlidXRlT3B0aW9uSGVscGVyIH0gZnJvbSAnLi9hdHRyaWJ1dGUtb3B0aW9uLmhlbHBlcidcclxuaW1wb3J0IHsgRmlsdGVyT3B0aW9uSGVscGVyIH0gZnJvbSAnLi9maWx0ZXItb3B0aW9uLmhlbHBlcidcclxuXHJcbmV4cG9ydCBjbGFzcyBCaW5kRmlsdGVyUXVlcnlIZWxwZXIge1xyXG4gIHN0YXRpYyBNYWtlR3JhcGhRTFdoZXJlID0gPE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1CYXNlPj4oXHJcbiAgICBmaWx0ZXI6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8TUJhc2U+LFxyXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcclxuICApOiBWYXJpYWJsZU9wdGlvbnMgPT5cclxuICAgIE9iamVjdC5rZXlzKGZpbHRlcikucmVkdWNlKCh2YXJpYWJsZXM6IFZhcmlhYmxlT3B0aW9ucywgZmllbGROYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgY29sdW1uT3B0aW9uID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShcclxuICAgICAgICBmaWVsZE5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXHJcbiAgICAgICAgZmllbGRzLFxyXG4gICAgICApXHJcblxyXG4gICAgICBpZiAoIWNvbHVtbk9wdGlvbi5iaW5kRmluZEZpbHRlcilcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4udmFyaWFibGVzLFxyXG4gICAgICAgICAgLi4ue1xyXG4gICAgICAgICAgICBbY29sdW1uT3B0aW9uLmNvbHVtbk5hbWVdOiBCaW5kRmlsdGVyUXVlcnlIZWxwZXIuQnVpbGRXaGVyZVNlbnRlbmNlKFxyXG4gICAgICAgICAgICAgIGZpZWxkTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcclxuICAgICAgICAgICAgICBmaWx0ZXJbZmllbGROYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+XSBhcyBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxcclxuICAgICAgICAgICAgICAgIE1CYXNlLFxyXG4gICAgICAgICAgICAgICAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT5cclxuICAgICAgICAgICAgICA+LFxyXG4gICAgICAgICAgICAgIGZpZWxkcyxcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgYnVpbHRGaWx0ZXI6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8TUJhc2U+ID0gY29sdW1uT3B0aW9uLmJpbmRGaW5kRmlsdGVyKFxyXG4gICAgICAgIGZpbHRlcltmaWVsZE5hbWUgYXMgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPE1CYXNlPl0gYXMgUmVwb3NpdG9yeUZpbmRGaWVsdGVyc09wdGlvbnM8XHJcbiAgICAgICAgICBNQmFzZSxcclxuICAgICAgICAgIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxNQmFzZT5cclxuICAgICAgICA+LFxyXG4gICAgICApXHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnZhcmlhYmxlcyxcclxuICAgICAgICAuLi5PYmplY3Qua2V5cyhidWlsdEZpbHRlcikucmVkdWNlKFxyXG4gICAgICAgICAgKHZhcmlhYmxlc0xpc3Q6IFZhcmlhYmxlT3B0aW9ucywgY29sdW1uTmFtZTogc3RyaW5nKSA9PiAoe1xyXG4gICAgICAgICAgICAuLi52YXJpYWJsZXNMaXN0LFxyXG4gICAgICAgICAgICBbY29sdW1uTmFtZV06IEJpbmRGaWx0ZXJRdWVyeUhlbHBlci5CdWlsZFdoZXJlU2VudGVuY2UoXHJcbiAgICAgICAgICAgICAgZmllbGROYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+LFxyXG4gICAgICAgICAgICAgIGJ1aWx0RmlsdGVyW2NvbHVtbk5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT5dIGFzIFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPFxyXG4gICAgICAgICAgICAgICAgTUJhc2UsXHJcbiAgICAgICAgICAgICAgICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPlxyXG4gICAgICAgICAgICAgID4sXHJcbiAgICAgICAgICAgICAgZmllbGRzLFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICB7fSxcclxuICAgICAgICApLFxyXG4gICAgICB9XHJcbiAgICB9LCB7fSlcclxuXHJcbiAgc3RhdGljIEJ1aWxkV2hlcmVTZW50ZW5jZSA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxyXG4gICAgZmllbGQ6IE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+LFxyXG4gICAgb3B0aW9uczogUmVwb3NpdG9yeUZpbmRGaWVsdGVyc09wdGlvbnM8TUJhc2UsIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+PixcclxuICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT4sXHJcbiAgKTogVmFyaWFibGVPcHRpb25zID0+IHtcclxuICAgIGNvbnN0IGZpZWxkU2VudGVuY2VPcHRpb25zID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZTxNQmFzZT4oZmllbGQsIGZpZWxkcylcclxuICAgIGNvbnN0IGlzTmVzdGVkRmllbGQgPVxyXG4gICAgICAhQXJyYXkuaXNBcnJheShvcHRpb25zKSAmJlxyXG4gICAgICBpc09iamVjdChvcHRpb25zKSAmJlxyXG4gICAgICBpc05pbChvcHRpb25zPy5vcGVyYXRvcikgJiZcclxuICAgICAgaXNOaWwob3B0aW9ucz8udmFsdWUpICYmXHJcbiAgICAgIGlzTmlsKGZpZWxkU2VudGVuY2VPcHRpb25zPy50bylcclxuXHJcbiAgICBpZiAoaXNOZXN0ZWRGaWVsZClcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLnJlZHVjZSgodmFyaWFibGVzLCBrZXkpID0+IHtcclxuICAgICAgICBjb25zdCBmaWVsZE9wdGlvbnMgPSBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuRmluZEJ5QXR0cmlidXRlPE1CYXNlPihcclxuICAgICAgICAgIGtleSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcclxuICAgICAgICAgIGZpZWxkU2VudGVuY2VPcHRpb25zPy5maWVsZHMgfHwgKGZpZWxkcyBhcyBhbnkpLFxyXG4gICAgICAgIClcclxuICAgICAgICBjb25zdCBjb2x1bW5OYW1lID0gZmllbGRPcHRpb25zLmNvbHVtbk5hbWVcclxuICAgICAgICBjb25zdCBjb2x1bW5GaWVsZHMgPSBmaWVsZE9wdGlvbnMuZmllbGRzXHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi52YXJpYWJsZXMsXHJcbiAgICAgICAgICBbY29sdW1uTmFtZV06IEJpbmRGaWx0ZXJRdWVyeUhlbHBlci5CdWlsZFdoZXJlU2VudGVuY2U8TUJhc2U+KFxyXG4gICAgICAgICAgICBrZXkgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXHJcbiAgICAgICAgICAgIGlzPFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPj4+KFxyXG4gICAgICAgICAgICAgIGlzPFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8TUJhc2U+PihvcHRpb25zKVtrZXkgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT5dLFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBmaWVsZFNlbnRlbmNlT3B0aW9ucz8uZmllbGRzIHx8IGNvbHVtbkZpZWxkcyB8fCAoZmllbGRzIGFzIGFueSksXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgIH1cclxuICAgICAgfSwge30pXHJcblxyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG9wdGlvbnMpICYmICFpc05pbChmaWVsZFNlbnRlbmNlT3B0aW9ucy5maWVsZHMpKVxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIFtmaWVsZFNlbnRlbmNlT3B0aW9ucy5maWVsZHNbMF0gYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT5dOlxyXG4gICAgICAgICAgQmluZEZpbHRlclF1ZXJ5SGVscGVyLkJ1aWxkT3BlcmF0b3JTZW50ZW5jZShcclxuICAgICAgICAgICAgb3B0aW9ucyxcclxuICAgICAgICAgICAgZmllbGRTZW50ZW5jZU9wdGlvbnMgYXMgQ29sdW1uT3B0aW9uczxNQmFzZVtOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPl0sIE1CYXNlPixcclxuICAgICAgICAgICksXHJcbiAgICAgIH1cclxuXHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkob3B0aW9ucykgJiYgaXNPYmplY3Qob3B0aW9ucykgJiYgIUZpbHRlck9wdGlvbkhlbHBlci5DaGVja0lmSXNGaWx0ZXJPcHRpb24ob3B0aW9ucykpXHJcbiAgICAgIG9wdGlvbnMgPSBPYmplY3QudmFsdWVzKG9wdGlvbnMpWzBdIGFzIFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBhbnk+XHJcblxyXG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkob3B0aW9ucylcclxuICAgICAgPyBvcHRpb25zLnJlZHVjZShcclxuICAgICAgICAgICh3aGVyZVNlbnRlbmNlLCBvcHRpb24pID0+ICh7XHJcbiAgICAgICAgICAgIC4uLndoZXJlU2VudGVuY2UsXHJcbiAgICAgICAgICAgIC4uLkJpbmRGaWx0ZXJRdWVyeUhlbHBlci5CdWlsZE9wZXJhdG9yU2VudGVuY2UoXHJcbiAgICAgICAgICAgICAgb3B0aW9uLFxyXG4gICAgICAgICAgICAgIGZpZWxkU2VudGVuY2VPcHRpb25zIGFzIENvbHVtbk9wdGlvbnM8TUJhc2VbTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT5dLCBNQmFzZT4sXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIHt9LFxyXG4gICAgICAgIClcclxuICAgICAgOiBCaW5kRmlsdGVyUXVlcnlIZWxwZXIuQnVpbGRPcGVyYXRvclNlbnRlbmNlKFxyXG4gICAgICAgICAgb3B0aW9ucyxcclxuICAgICAgICAgIGZpZWxkU2VudGVuY2VPcHRpb25zIGFzIENvbHVtbk9wdGlvbnM8TUJhc2VbTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT5dLCBNQmFzZT4sXHJcbiAgICAgICAgKVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIEJ1aWxkT3BlcmF0b3JTZW50ZW5jZSA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxyXG4gICAgb3B0aW9uczogUmVwb3NpdG9yeUZpbmRGaWVsdGVyc09wdGlvbnM8TUJhc2UsIGFueT4sXHJcbiAgICBmaWVsZE9wdGlvbjogQ29sdW1uT3B0aW9uczxhbnksIGFueT4sXHJcbiAgKTogVmFyaWFibGVPcHRpb25zID0+ICh7XHJcbiAgICBbQmluZEZpbHRlclF1ZXJ5SGVscGVyLkdldEhhc3VyYU9wZXJhdG9yKG9wdGlvbnMsIGZpZWxkT3B0aW9uKV06IEZpbHRlck9wdGlvbkhlbHBlci5HZXRWYWx1ZUZyb21GaWx0ZXIoXHJcbiAgICAgIG9wdGlvbnMsXHJcbiAgICAgIGZpZWxkT3B0aW9uLFxyXG4gICAgKSxcclxuICB9KVxyXG5cclxuICBzdGF0aWMgR2V0SGFzdXJhT3BlcmF0b3IgPSA8TUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TUJhc2U+PihcclxuICAgIG9wdGlvbnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8TUJhc2U+PixcclxuICAgIGZpZWxkT3B0aW9uOiBDb2x1bW5PcHRpb25zPGFueSwgYW55PixcclxuICApOiBIYXN1cmFHcmFwaFFMV2hlcmUgPT5cclxuICAgIEZpbHRlck9wdGlvbkhlbHBlci5DaGVja0lmSXNGaWx0ZXJPcHRpb24ob3B0aW9ucylcclxuICAgICAgPyBmaWVsZE9wdGlvbi50eXBlID09PSBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZS5Kc29uYlxyXG4gICAgICAgID8gQmluZEZpbHRlclF1ZXJ5SGVscGVyLkdldEhhc3VyYUpzb25iT3BlcmF0b3Iob3B0aW9ucylcclxuICAgICAgICA6IEhhc3VyYUdyYXBoUUxXaGVyZVtcclxuICAgICAgICAgICAgT2JqZWN0LmtleXMoSGFzdXJhR3JhcGhRTFdoZXJlKS5maW5kKFxyXG4gICAgICAgICAgICAgIChncmFwaFFMT3BlcmF0b3IpID0+XHJcbiAgICAgICAgICAgICAgICBncmFwaFFMT3BlcmF0b3IgPT09XHJcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhXaGVyZSkuZmluZCgob3BlcmF0b3IpID0+IFdoZXJlW29wZXJhdG9yIGFzIGtleW9mIHR5cGVvZiBXaGVyZV0gPT09IG9wdGlvbnM/Lm9wZXJhdG9yKSxcclxuICAgICAgICAgICAgKSBhcyBrZXlvZiB0eXBlb2YgSGFzdXJhR3JhcGhRTFdoZXJlXHJcbiAgICAgICAgICBdXHJcbiAgICAgIDogSGFzdXJhR3JhcGhRTFdoZXJlLkVRVUFMU1xyXG5cclxuICBzdGF0aWMgR2V0SGFzdXJhSnNvbmJPcGVyYXRvciA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxyXG4gICAgb3B0aW9uczogUmVwb3NpdG9yeUZpbmRGaWVsdGVyc09wdGlvbnM8TUJhc2UsIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxNQmFzZT4+LFxyXG4gICk6IEhhc3VyYUdyYXBoUUxXaGVyZSA9PlxyXG4gICAgb3B0aW9ucy5vcGVyYXRvciA9PT0gV2hlcmUuSU5cclxuICAgICAgPyBIYXN1cmFHcmFwaFFMV2hlcmUuSlNPTl9DT05UQUlOU1xyXG4gICAgICA6IG9wdGlvbnMub3BlcmF0b3IgPT09IFdoZXJlLkxJS0VcclxuICAgICAgPyBIYXN1cmFHcmFwaFFMV2hlcmUuSlNPTl9IQVNfS0VZU19BTllcclxuICAgICAgOiBIYXN1cmFHcmFwaFFMV2hlcmVbXHJcbiAgICAgICAgICBPYmplY3Qua2V5cyhIYXN1cmFHcmFwaFFMV2hlcmUpLmZpbmQoXHJcbiAgICAgICAgICAgIChncmFwaFFMT3BlcmF0b3IpID0+XHJcbiAgICAgICAgICAgICAgZ3JhcGhRTE9wZXJhdG9yID09PVxyXG4gICAgICAgICAgICAgIE9iamVjdC5rZXlzKFdoZXJlKS5maW5kKChvcGVyYXRvcikgPT4gV2hlcmVbb3BlcmF0b3IgYXMga2V5b2YgdHlwZW9mIFdoZXJlXSA9PT0gb3B0aW9ucz8ub3BlcmF0b3IpLFxyXG4gICAgICAgICAgKSBhcyBrZXlvZiB0eXBlb2YgSGFzdXJhR3JhcGhRTFdoZXJlXHJcbiAgICAgICAgXVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { Where } from '../../../../domain';
2
+ import { isNil } from '../../../../utils';
3
+ export class FilterOptionHelper {
4
+ static { this.CheckIfIsFilterOption = (filter) => !isNil(filter?.operator); }
5
+ static { this.GetValueFromFilter = (filter, fieldOption) => {
6
+ if (!FilterOptionHelper.CheckIfIsFilterOption(filter))
7
+ return filter;
8
+ if (filter.operator === Where.ISNULL)
9
+ return true;
10
+ if (filter.operator === Where.ISNOTNULL)
11
+ return false;
12
+ const converter = fieldOption.to
13
+ ? fieldOption.to
14
+ : (value) => filter.operator === Where.LIKE && !Array.isArray(filter.value) && value.indexOf('%') < 0
15
+ ? `%${value}%`
16
+ : value;
17
+ return Array.isArray(filter.value) && !fieldOption.fields && [Where.IN, Where.NOTIN].includes(filter.operator)
18
+ ? filter.value.map((fieldValue) => converter(fieldValue))
19
+ : converter(filter.value);
20
+ }; }
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLW9wdGlvbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9maWx0ZXItb3B0aW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFELEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzdGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUd6QyxNQUFNLE9BQU8sa0JBQWtCO2FBQ3RCLDBCQUFxQixHQUFHLENBQzdCLE1BQVcsRUFDMEMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQTthQUUzRSx1QkFBa0IsR0FBRyxDQUMxQixNQUFpRCxFQUNqRCxXQUFvQyxFQUMvQixFQUFFO1FBQ1AsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQztZQUFFLE9BQU8sTUFBTSxDQUFBO1FBQ3BFLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxLQUFLLENBQUMsTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFBO1FBQ2pELElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxLQUFLLENBQUMsU0FBUztZQUFFLE9BQU8sS0FBSyxDQUFBO1FBRXJELE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxFQUFFO1lBQzlCLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNoQixDQUFDLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUNiLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztnQkFDdEYsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHO2dCQUNkLENBQUMsQ0FBQyxLQUFLLENBQUE7UUFFZixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQzVHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pELENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQVksQ0FBQyxDQUFBO0lBQ3BDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsQmFzZVN0cnVjdHVyZSwgUmVwb3NpdG9yeUZpbmRGaWVsdGVyc09wdGlvbnMsIFdoZXJlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xyXG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xyXG5pbXBvcnQgeyBDb2x1bW5PcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMnXHJcblxyXG5leHBvcnQgY2xhc3MgRmlsdGVyT3B0aW9uSGVscGVyIHtcclxuICBzdGF0aWMgQ2hlY2tJZklzRmlsdGVyT3B0aW9uID0gPE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPihcclxuICAgIGZpbHRlcjogYW55LFxyXG4gICk6IGZpbHRlciBpcyBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNb2RlbCwgYW55PiA9PiAhaXNOaWwoZmlsdGVyPy5vcGVyYXRvcilcclxuXHJcbiAgc3RhdGljIEdldFZhbHVlRnJvbUZpbHRlciA9IDxNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNb2RlbD4+KFxyXG4gICAgZmlsdGVyOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNb2RlbCwgYW55PixcclxuICAgIGZpZWxkT3B0aW9uOiBDb2x1bW5PcHRpb25zPGFueSwgYW55PixcclxuICApOiBhbnkgPT4ge1xyXG4gICAgaWYgKCFGaWx0ZXJPcHRpb25IZWxwZXIuQ2hlY2tJZklzRmlsdGVyT3B0aW9uKGZpbHRlcikpIHJldHVybiBmaWx0ZXJcclxuICAgIGlmIChmaWx0ZXIub3BlcmF0b3IgPT09IFdoZXJlLklTTlVMTCkgcmV0dXJuIHRydWVcclxuICAgIGlmIChmaWx0ZXIub3BlcmF0b3IgPT09IFdoZXJlLklTTk9UTlVMTCkgcmV0dXJuIGZhbHNlXHJcblxyXG4gICAgY29uc3QgY29udmVydGVyID0gZmllbGRPcHRpb24udG9cclxuICAgICAgPyBmaWVsZE9wdGlvbi50b1xyXG4gICAgICA6ICh2YWx1ZTogYW55KSA9PlxyXG4gICAgICAgICAgZmlsdGVyLm9wZXJhdG9yID09PSBXaGVyZS5MSUtFICYmICFBcnJheS5pc0FycmF5KGZpbHRlci52YWx1ZSkgJiYgdmFsdWUuaW5kZXhPZignJScpIDwgMFxyXG4gICAgICAgICAgICA/IGAlJHt2YWx1ZX0lYFxyXG4gICAgICAgICAgICA6IHZhbHVlXHJcblxyXG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoZmlsdGVyLnZhbHVlKSAmJiAhZmllbGRPcHRpb24uZmllbGRzICYmIFtXaGVyZS5JTiwgV2hlcmUuTk9USU5dLmluY2x1ZGVzKGZpbHRlci5vcGVyYXRvcilcclxuICAgICAgPyBmaWx0ZXIudmFsdWUubWFwKChmaWVsZFZhbHVlKSA9PiBjb252ZXJ0ZXIoZmllbGRWYWx1ZSkpXHJcbiAgICAgIDogY29udmVydGVyKGZpbHRlci52YWx1ZSBhcyBhbnkpXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,125 @@
1
+ import { BaseModel, } from '../../../../domain';
2
+ import { is, isDate, isEmpty, isNil, isObject, isString, parseDateTime } from '../../../../utils';
3
+ import { AttributeOptionHelper } from './attribute-option.helper';
4
+ import { BindFilterQueryHelper } from './bind-filter-query.helper';
5
+ export class GraphQLFieldHelper {
6
+ static { this.CheckIsGraphQLParams = (params) => !isString(params) && Array.isArray(params) && params.length >= 0 && !!params[0].operation; }
7
+ static { this.ConvertModelFieldsToGraphQLFields = (fields) => {
8
+ return fields
9
+ ?.map((field) => {
10
+ if (isString(field))
11
+ return field.toString();
12
+ if (field === 'affected_rows')
13
+ return field;
14
+ const fieldName = Object.keys(field).shift();
15
+ const fieldValue = is(field[fieldName]);
16
+ if (Array.isArray(fieldValue))
17
+ return { [fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue) };
18
+ if (!AttributeOptionHelper.CheckIsColumnOption(fieldValue))
19
+ return;
20
+ const isNestedField = !!fieldValue.fields;
21
+ if (isNestedField)
22
+ return GraphQLFieldHelper.ConvertNestedFieldsToGraphQLFields(fieldName, fieldValue);
23
+ return fieldValue.columnName;
24
+ })
25
+ .filter((field) => !!field);
26
+ }; }
27
+ static { this.ConvertFieldValueFrom = (data, fields) => Object.keys(data).reduce((result, columnName) => {
28
+ const { attributeName, fields: attributeFields, from, } = AttributeOptionHelper.FindColumnOptionFromList(columnName, fields);
29
+ if (!!attributeFields && Array.isArray(attributeFields)) {
30
+ if (Array.isArray(data[columnName]))
31
+ return {
32
+ ...result,
33
+ [attributeName]: from
34
+ ? from(data[columnName], data)
35
+ : is(data[columnName]).map((value) => GraphQLFieldHelper.ConvertFieldValueFrom(is(value), attributeFields)),
36
+ };
37
+ if (isObject(data[columnName]))
38
+ return {
39
+ ...result,
40
+ [attributeName]: !!from
41
+ ? from(data[columnName])
42
+ : GraphQLFieldHelper.ConvertFieldValueFrom(is(data[columnName]), attributeFields),
43
+ };
44
+ }
45
+ if (!!from)
46
+ return { ...result, [attributeName]: from(data[columnName], data) };
47
+ return {
48
+ ...result,
49
+ [attributeName]: isString(data[columnName]) ? parseDateTime(data[columnName].toString()) : data[columnName],
50
+ };
51
+ }, {}); }
52
+ static { this.ConvertFieldValueTo = (instance, fields, update = false) => {
53
+ const data = instance.toPlain?.() || instance;
54
+ return Object.keys(data).reduce((result, attributeName) => {
55
+ const { columnName, fields: attributeFields, foreignKeyColumn, to, bindPersistData, } = AttributeOptionHelper.FindByAttribute(attributeName, fields);
56
+ if (bindPersistData)
57
+ return {
58
+ ...result,
59
+ ...bindPersistData(data[attributeName], instance),
60
+ };
61
+ if (isNil(columnName))
62
+ return result;
63
+ if (!!foreignKeyColumn &&
64
+ !isEmpty(foreignKeyColumn) &&
65
+ !Object.keys(foreignKeyColumn).filter((key) => !is(data[attributeName])?.[key]).length)
66
+ return Object.keys(foreignKeyColumn).reduce((object, current) => {
67
+ const { columnName: foreignColumnName } = AttributeOptionHelper.FindByAttribute(foreignKeyColumn[current], fields);
68
+ return {
69
+ ...object,
70
+ [foreignColumnName]: data[attributeName]?.[current],
71
+ };
72
+ }, { ...result });
73
+ if (update &&
74
+ isObject(data[attributeName]) &&
75
+ !isNil(attributeFields) &&
76
+ !isDate(data[attributeName]))
77
+ return result;
78
+ if (!!columnName &&
79
+ Array.isArray(attributeFields) &&
80
+ isObject(data[attributeName])) {
81
+ const converted = !isNil(columnName) && to
82
+ ? to(instance[attributeName], instance)
83
+ : data[attributeName];
84
+ return {
85
+ ...result,
86
+ ...(converted !== undefined
87
+ ? {
88
+ [columnName]: {
89
+ data: instance[attributeName] instanceof BaseModel
90
+ ? GraphQLFieldHelper.ConvertFieldValueTo(data[attributeName], attributeFields)
91
+ : converted,
92
+ },
93
+ }
94
+ : {}),
95
+ };
96
+ }
97
+ if (!!to)
98
+ return {
99
+ ...result,
100
+ [columnName]: to(instance[attributeName], instance),
101
+ };
102
+ return { ...result, [columnName]: data[attributeName] };
103
+ }, {});
104
+ }; }
105
+ static { this.ConvertNestedFieldsToGraphQLFields = (fieldName, fieldValue) => {
106
+ const hasCustomFilters = !!fieldValue.filters;
107
+ if (hasCustomFilters)
108
+ return {
109
+ operation: fieldValue.columnName || fieldName,
110
+ fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
111
+ variables: {
112
+ [`${fieldValue.columnName}_where`]: {
113
+ name: 'where',
114
+ type: fieldValue.filters.filterType,
115
+ value: BindFilterQueryHelper.MakeGraphQLWhere(fieldValue.filters.filters, fieldValue.fields),
116
+ required: true,
117
+ },
118
+ },
119
+ };
120
+ return {
121
+ [fieldValue.columnName || fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
122
+ };
123
+ }; }
124
+ }
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1maWVsZC5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9ncmFwaHFsLWZpZWxkLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsU0FBUyxHQUtWLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRWpHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBRWxFLE1BQU0sT0FBTyxrQkFBa0I7YUFDdEIseUJBQW9CLEdBQUcsQ0FDNUIsTUFBb0QsRUFDbEIsRUFBRSxDQUNwQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO2FBRXBGLHNDQUFpQyxHQUFHLENBQ3pDLE1BQWtDLEVBQzFCLEVBQUU7UUFDVixPQUFPLE1BQU07WUFDWCxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2QsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFBO1lBQzVDLElBQUksS0FBSyxLQUFLLGVBQWU7Z0JBQUUsT0FBTyxLQUFLLENBQUE7WUFFM0MsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFL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QUFDO1NBQzlHLENBQUE7SUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJT3BlcmF0aW9uIH0gZnJvbSAnZ3FsLXF1ZXJ5LWJ1aWxkZXIvYnVpbGQvSVF1ZXJ5QnVpbGRlck9wdGlvbnMnXHJcbmltcG9ydCB7XHJcbiAgQmFzZU1vZGVsLFxyXG4gIE1vZGVsQmFzZVN0cnVjdHVyZSxcclxuICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0aWVzV2l0aE5vUGFydGlhbCxcclxuICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzLFxyXG4gIFBhcnRpYWxJZGVudGlmaWVyc01vZGVsLFxyXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcclxuaW1wb3J0IHsgaXMsIGlzRGF0ZSwgaXNFbXB0eSwgaXNOaWwsIGlzT2JqZWN0LCBpc1N0cmluZywgcGFyc2VEYXRlVGltZSB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xyXG5pbXBvcnQgeyBDb2x1bW5PcHRpb25zLCBGaWVsZHMsIEdyYXBoUUxQYXJhbXMsIEhhc3VyYUdyYXBoUUxGaWVsZHMgfSBmcm9tICcuLi8uLi90eXBlcydcclxuaW1wb3J0IHsgQXR0cmlidXRlT3B0aW9uSGVscGVyIH0gZnJvbSAnLi9hdHRyaWJ1dGUtb3B0aW9uLmhlbHBlcidcclxuaW1wb3J0IHsgQmluZEZpbHRlclF1ZXJ5SGVscGVyIH0gZnJvbSAnLi9iaW5kLWZpbHRlci1xdWVyeS5oZWxwZXInXHJcblxyXG5leHBvcnQgY2xhc3MgR3JhcGhRTEZpZWxkSGVscGVyIHtcclxuICBzdGF0aWMgQ2hlY2tJc0dyYXBoUUxQYXJhbXMgPSA8TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TW9kZWw+PihcclxuICAgIHBhcmFtczogc3RyaW5nIHwgSU9wZXJhdGlvbiB8IEdyYXBoUUxQYXJhbXM8TW9kZWw+W10sXHJcbiAgKTogcGFyYW1zIGlzIEdyYXBoUUxQYXJhbXM8TW9kZWw+W10gPT5cclxuICAgICFpc1N0cmluZyhwYXJhbXMpICYmIEFycmF5LmlzQXJyYXkocGFyYW1zKSAmJiBwYXJhbXMubGVuZ3RoID49IDAgJiYgISFwYXJhbXNbMF0ub3BlcmF0aW9uXHJcblxyXG4gIHN0YXRpYyBDb252ZXJ0TW9kZWxGaWVsZHNUb0dyYXBoUUxGaWVsZHMgPSA8TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TW9kZWw+PihcclxuICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD4sXHJcbiAgKTogRmllbGRzID0+IHtcclxuICAgIHJldHVybiBmaWVsZHNcclxuICAgICAgPy5tYXAoKGZpZWxkKSA9PiB7XHJcbiAgICAgICAgaWYgKGlzU3RyaW5nKGZpZWxkKSkgcmV0dXJuIGZpZWxkLnRvU3RyaW5nKClcclxuICAgICAgICBpZiAoZmllbGQgPT09ICdhZmZlY3RlZF9yb3dzJykgcmV0dXJuIGZpZWxkXHJcblxyXG4gICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IE9iamVjdC5rZXlzKGZpZWxkKS5zaGlmdCgpXHJcbiAgICAgICAgY29uc3QgZmllbGRWYWx1ZSA9IGlzPENvbHVtbk9wdGlvbnM8YW55LCBNb2RlbD4+KGZpZWxkW2ZpZWxkTmFtZSBhcyBrZXlvZiB0eXBlb2YgZmllbGRdKVxyXG5cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZFZhbHVlKSlcclxuICAgICAgICAgIHJldHVybiB7IFtmaWVsZE5hbWVdOiBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydE1vZGVsRmllbGRzVG9HcmFwaFFMRmllbGRzKGZpZWxkVmFsdWUpIH1cclxuICAgICAgICBpZiAoIUF0dHJpYnV0ZU9wdGlvbkhlbHBlci5DaGVja0lzQ29sdW1uT3B0aW9uKGZpZWxkVmFsdWUpKSByZXR1cm5cclxuXHJcbiAgICAgICAgY29uc3QgaXNOZXN0ZWRGaWVsZCA9ICEhZmllbGRWYWx1ZS5maWVsZHNcclxuXHJcbiAgICAgICAgaWYgKGlzTmVzdGVkRmllbGQpIHJldHVybiBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydE5lc3RlZEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhmaWVsZE5hbWUsIGZpZWxkVmFsdWUgYXMgYW55KVxyXG5cclxuICAgICAgICByZXR1cm4gZmllbGRWYWx1ZS5jb2x1bW5OYW1lXHJcbiAgICAgIH0pXHJcbiAgICAgIC5maWx0ZXIoKGZpZWxkKSA9PiAhIWZpZWxkKVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIENvbnZlcnRGaWVsZFZhbHVlRnJvbSA9IDxcclxuICAgIE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlLFxyXG4gICAgUmVjb3JkRGF0YVR5cGUgZXh0ZW5kcyBzdHJpbmcgfCBudW1iZXIgfCBEYXRhVHlwZSB8IERhdGUsXHJcbiAgICBEYXRhVHlwZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIFJlY29yZERhdGFUeXBlIHwgUmVjb3JkRGF0YVR5cGVbXT4sXHJcbiAgPihcclxuICAgIGRhdGE6IERhdGFUeXBlLFxyXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPixcclxuICApOiBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0aWVzV2l0aE5vUGFydGlhbDxNb2RlbD4gfCBQYXJ0aWFsSWRlbnRpZmllcnNNb2RlbDxNb2RlbD4gPT5cclxuICAgIE9iamVjdC5rZXlzKGRhdGEpLnJlZHVjZSgocmVzdWx0LCBjb2x1bW5OYW1lKSA9PiB7XHJcbiAgICAgIGNvbnN0IHtcclxuICAgICAgICBhdHRyaWJ1dGVOYW1lLFxyXG4gICAgICAgIGZpZWxkczogYXR0cmlidXRlRmllbGRzLFxyXG4gICAgICAgIGZyb20sXHJcbiAgICAgIH0gPSBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuRmluZENvbHVtbk9wdGlvbkZyb21MaXN0KGNvbHVtbk5hbWUsIGZpZWxkcylcclxuXHJcbiAgICAgIGlmICghIWF0dHJpYnV0ZUZpZWxkcyAmJiBBcnJheS5pc0FycmF5KGF0dHJpYnV0ZUZpZWxkcykpIHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhW2NvbHVtbk5hbWVdKSlcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLnJlc3VsdCxcclxuICAgICAgICAgICAgW2F0dHJpYnV0ZU5hbWVdOiBmcm9tXHJcbiAgICAgICAgICAgICAgPyBmcm9tKGRhdGFbY29sdW1uTmFtZV0sIGRhdGEpXHJcbiAgICAgICAgICAgICAgOiBpczxSZWNvcmREYXRhVHlwZVtdPihkYXRhW2NvbHVtbk5hbWVdKS5tYXAoKHZhbHVlKSA9PlxyXG4gICAgICAgICAgICAgICAgICBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydEZpZWxkVmFsdWVGcm9tKGlzPERhdGFUeXBlPih2YWx1ZSksIGF0dHJpYnV0ZUZpZWxkcyksXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIGlmIChpc09iamVjdChkYXRhW2NvbHVtbk5hbWVdKSlcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLnJlc3VsdCxcclxuICAgICAgICAgICAgW2F0dHJpYnV0ZU5hbWVdOiAhIWZyb21cclxuICAgICAgICAgICAgICA/IGZyb20oZGF0YVtjb2x1bW5OYW1lXSlcclxuICAgICAgICAgICAgICA6IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0RmllbGRWYWx1ZUZyb20oaXM8RGF0YVR5cGU+KGRhdGFbY29sdW1uTmFtZV0pLCBhdHRyaWJ1dGVGaWVsZHMpLFxyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoISFmcm9tKSByZXR1cm4geyAuLi5yZXN1bHQsIFthdHRyaWJ1dGVOYW1lXTogZnJvbShkYXRhW2NvbHVtbk5hbWVdLCBkYXRhKSB9XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnJlc3VsdCxcclxuICAgICAgICBbYXR0cmlidXRlTmFtZV06IGlzU3RyaW5nKGRhdGFbY29sdW1uTmFtZV0pID8gcGFyc2VEYXRlVGltZShkYXRhW2NvbHVtbk5hbWVdLnRvU3RyaW5nKCkpIDogZGF0YVtjb2x1bW5OYW1lXSxcclxuICAgICAgfVxyXG4gICAgfSwge30pXHJcblxyXG4gIHN0YXRpYyBDb252ZXJ0RmllbGRWYWx1ZVRvID0gPFxyXG4gICAgTW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TW9kZWw+LFxyXG4gICAgRGF0YVR5cGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBEYXRhVHlwZSB8IERhdGU+LFxyXG4gID4oXHJcbiAgICBpbnN0YW5jZTogTW9kZWwsXHJcbiAgICBmaWVsZHM6IEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+LFxyXG4gICAgdXBkYXRlID0gZmFsc2UsXHJcbiAgKTogRGF0YVR5cGUgPT4ge1xyXG4gICAgY29uc3QgZGF0YTogUGFydGlhbDxNb2RlbD4gPSBpbnN0YW5jZS50b1BsYWluPy4oKSB8fCBpbnN0YW5jZVxyXG5cclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhkYXRhKS5yZWR1Y2UoKHJlc3VsdCwgYXR0cmlidXRlTmFtZSkgPT4ge1xyXG4gICAgICBjb25zdCB7XHJcbiAgICAgICAgY29sdW1uTmFtZSxcclxuICAgICAgICBmaWVsZHM6IGF0dHJpYnV0ZUZpZWxkcyxcclxuICAgICAgICBmb3JlaWduS2V5Q29sdW1uLFxyXG4gICAgICAgIHRvLFxyXG4gICAgICAgIGJpbmRQZXJzaXN0RGF0YSxcclxuICAgICAgfSA9IEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1vZGVsPiwgZmllbGRzKVxyXG5cclxuICAgICAgaWYgKGJpbmRQZXJzaXN0RGF0YSlcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4ucmVzdWx0LFxyXG4gICAgICAgICAgLi4uYmluZFBlcnNpc3REYXRhKGRhdGFbYXR0cmlidXRlTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1vZGVsPl0sIGluc3RhbmNlKSxcclxuICAgICAgICB9XHJcbiAgICAgIGlmIChpc05pbChjb2x1bW5OYW1lKSkgcmV0dXJuIHJlc3VsdFxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgISFmb3JlaWduS2V5Q29sdW1uICYmXHJcbiAgICAgICAgIWlzRW1wdHkoZm9yZWlnbktleUNvbHVtbikgJiZcclxuICAgICAgICAhT2JqZWN0LmtleXMoZm9yZWlnbktleUNvbHVtbikuZmlsdGVyKFxyXG4gICAgICAgICAgKGtleSkgPT5cclxuICAgICAgICAgICAgIWlzPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KGRhdGFbYXR0cmlidXRlTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1vZGVsPl0pPy5ba2V5XSxcclxuICAgICAgICApLmxlbmd0aFxyXG4gICAgICApXHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGZvcmVpZ25LZXlDb2x1bW4pLnJlZHVjZShcclxuICAgICAgICAgIChvYmplY3QsIGN1cnJlbnQpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgeyBjb2x1bW5OYW1lOiBmb3JlaWduQ29sdW1uTmFtZSB9ID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShcclxuICAgICAgICAgICAgICBmb3JlaWduS2V5Q29sdW1uW2N1cnJlbnQgYXMga2V5b2YgSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD5bbnVtYmVyXV0sXHJcbiAgICAgICAgICAgICAgZmllbGRzLFxyXG4gICAgICAgICAgICApXHJcblxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIC4uLm9iamVjdCxcclxuICAgICAgICAgICAgICBbZm9yZWlnbkNvbHVtbk5hbWVdOiBkYXRhW2F0dHJpYnV0ZU5hbWUgYXMga2V5b2YgSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD5bbnVtYmVyXV0/LltjdXJyZW50XSxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHsgLi4ucmVzdWx0IH0sXHJcbiAgICAgICAgKVxyXG5cclxuICAgICAgaWYgKFxyXG4gICAgICAgIHVwZGF0ZSAmJlxyXG4gICAgICAgIGlzT2JqZWN0KGRhdGFbYXR0cmlidXRlTmFtZSBhcyBrZXlvZiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPltudW1iZXJdXSkgJiZcclxuICAgICAgICAhaXNOaWwoYXR0cmlidXRlRmllbGRzKSAmJlxyXG4gICAgICAgICFpc0RhdGUoZGF0YVthdHRyaWJ1dGVOYW1lIGFzIGtleW9mIEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+W251bWJlcl1dKVxyXG4gICAgICApXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdFxyXG5cclxuICAgICAgaWYgKFxyXG4gICAgICAgICEhY29sdW1uTmFtZSAmJlxyXG4gICAgICAgIEFycmF5LmlzQXJyYXkoYXR0cmlidXRlRmllbGRzKSAmJlxyXG4gICAgICAgIGlzT2JqZWN0KGRhdGFbYXR0cmlidXRlTmFtZSBhcyBrZXlvZiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPltudW1iZXJdXSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3QgY29udmVydGVkID1cclxuICAgICAgICAgICFpc05pbChjb2x1bW5OYW1lKSAmJiB0b1xyXG4gICAgICAgICAgICA/IHRvKGluc3RhbmNlW2F0dHJpYnV0ZU5hbWUgYXMga2V5b2YgSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD5bbnVtYmVyXV0sIGluc3RhbmNlKVxyXG4gICAgICAgICAgICA6IGRhdGFbYXR0cmlidXRlTmFtZSBhcyBrZXlvZiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPltudW1iZXJdXVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4ucmVzdWx0LFxyXG4gICAgICAgICAgLi4uKGNvbnZlcnRlZCAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgID8ge1xyXG4gICAgICAgICAgICAgICAgW2NvbHVtbk5hbWVdOiB7XHJcbiAgICAgICAgICAgICAgICAgIGRhdGE6XHJcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2VbYXR0cmlidXRlTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1vZGVsPl0gaW5zdGFuY2VvZiBCYXNlTW9kZWxcclxuICAgICAgICAgICAgICAgICAgICAgID8gR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRGaWVsZFZhbHVlVG8oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVthdHRyaWJ1dGVOYW1lIGFzIGtleW9mIEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+W251bWJlcl1dLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZUZpZWxkcyBhcyBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPixcclxuICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgOiBjb252ZXJ0ZWQsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgOiB7fSksXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoISF0bylcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4ucmVzdWx0LFxyXG4gICAgICAgICAgW2NvbHVtbk5hbWVdOiB0byhpbnN0YW5jZVthdHRyaWJ1dGVOYW1lIGFzIGtleW9mIEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+W251bWJlcl1dLCBpbnN0YW5jZSksXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHsgLi4ucmVzdWx0LCBbY29sdW1uTmFtZV06IGRhdGFbYXR0cmlidXRlTmFtZSBhcyBrZXlvZiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPltudW1iZXJdXSB9XHJcbiAgICB9LCB7fSBhcyBEYXRhVHlwZSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIENvbnZlcnROZXN0ZWRGaWVsZHNUb0dyYXBoUUxGaWVsZHMgPSA8XHJcbiAgICBUIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPFQ+LFxyXG4gICAgUCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxQPixcclxuICA+KFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICBmaWVsZFZhbHVlOiBDb2x1bW5PcHRpb25zPFQsIFA+LFxyXG4gICkgPT4ge1xyXG4gICAgY29uc3QgaGFzQ3VzdG9tRmlsdGVycyA9ICEhZmllbGRWYWx1ZS5maWx0ZXJzXHJcblxyXG4gICAgaWYgKGhhc0N1c3RvbUZpbHRlcnMpXHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgb3BlcmF0aW9uOiBmaWVsZFZhbHVlLmNvbHVtbk5hbWUgfHwgZmllbGROYW1lLFxyXG4gICAgICAgIGZpZWxkczogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhmaWVsZFZhbHVlLmZpZWxkcyksXHJcbiAgICAgICAgdmFyaWFibGVzOiB7XHJcbiAgICAgICAgICBbYCR7ZmllbGRWYWx1ZS5jb2x1bW5OYW1lfV93aGVyZWBdOiB7XHJcbiAgICAgICAgICAgIG5hbWU6ICd3aGVyZScsXHJcbiAgICAgICAgICAgIHR5cGU6IGZpZWxkVmFsdWUuZmlsdGVycy5maWx0ZXJUeXBlLFxyXG4gICAgICAgICAgICB2YWx1ZTogQmluZEZpbHRlclF1ZXJ5SGVscGVyLk1ha2VHcmFwaFFMV2hlcmUoZmllbGRWYWx1ZS5maWx0ZXJzLmZpbHRlcnMsIGZpZWxkVmFsdWUuZmllbGRzKSxcclxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBbZmllbGRWYWx1ZS5jb2x1bW5OYW1lIHx8IGZpZWxkTmFtZV06IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0TW9kZWxGaWVsZHNUb0dyYXBoUUxGaWVsZHMoZmllbGRWYWx1ZS5maWVsZHMpLFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=