@uappi/public-sdk 1.0.0

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 (158) hide show
  1. package/.editorconfig +6 -0
  2. package/.vscode/extensions.json +5 -0
  3. package/.vscode/settings.json +7 -0
  4. package/components/Animations/ExpandTransition.ts +89 -0
  5. package/components/Animations/index.ts +1 -0
  6. package/components/Themes/CustomTheme.ts +77 -0
  7. package/components/Themes/index.ts +1 -0
  8. package/main.ts +16 -0
  9. package/modules/Api/README.md +469 -0
  10. package/modules/Api/endpoints/BannerComposable.ts +31 -0
  11. package/modules/Api/endpoints/BrandComposable.ts +21 -0
  12. package/modules/Api/endpoints/CartComposable.ts +121 -0
  13. package/modules/Api/endpoints/CommonComposable.ts +24 -0
  14. package/modules/Api/endpoints/CouponComposable.ts +18 -0
  15. package/modules/Api/endpoints/CustomerComposable.ts +255 -0
  16. package/modules/Api/endpoints/InterestComposable.ts +11 -0
  17. package/modules/Api/endpoints/LoggoutComposable.ts +8 -0
  18. package/modules/Api/endpoints/MenuComposable.ts +25 -0
  19. package/modules/Api/endpoints/PairOfferComposable.ts +14 -0
  20. package/modules/Api/endpoints/PaymentComposable.ts +14 -0
  21. package/modules/Api/endpoints/ProductCommentComposable.ts +51 -0
  22. package/modules/Api/endpoints/ProductQuoteShipment.ts +20 -0
  23. package/modules/Api/endpoints/PublicComposable.ts +9 -0
  24. package/modules/Api/endpoints/ReviewComposable.ts +64 -0
  25. package/modules/Api/endpoints/SearchComposable.ts +27 -0
  26. package/modules/Api/endpoints/ShowcaseComposable.ts +45 -0
  27. package/modules/Api/endpoints/TemplateComposable.ts +8 -0
  28. package/modules/Api/endpoints/ThirdPartyComposable.ts +14 -0
  29. package/modules/Api/endpoints/UpsellComposable.ts +18 -0
  30. package/modules/Api/endpoints/UrlComposable.ts +26 -0
  31. package/modules/Api/endpoints/VariationComposable.ts +36 -0
  32. package/modules/Api/endpoints/WalletComposable.ts +36 -0
  33. package/modules/Api/endpoints/ZipcodeComposable.ts +10 -0
  34. package/modules/Api/index.ts +194 -0
  35. package/modules/Api/paramsSerializer/encodeWafNormalizer.ts +7 -0
  36. package/modules/Api/types/context/api-config.types.ts +68 -0
  37. package/modules/Api/types/context/api-params.types.ts +74 -0
  38. package/modules/Api/types/endpoints/attribute/attribute.interfaces.ts +42 -0
  39. package/modules/Api/types/endpoints/banner/banner.interfaces.ts +45 -0
  40. package/modules/Api/types/endpoints/brand/brand-field.types.ts +3 -0
  41. package/modules/Api/types/endpoints/brand/brand.interfaces.ts +23 -0
  42. package/modules/Api/types/endpoints/cart/cart.interfaces.ts +161 -0
  43. package/modules/Api/types/endpoints/cart/cart.types.ts +27 -0
  44. package/modules/Api/types/endpoints/common/common.interfaces.ts +21 -0
  45. package/modules/Api/types/endpoints/context/context.types.ts +1 -0
  46. package/modules/Api/types/endpoints/country/country.types.ts +7502 -0
  47. package/modules/Api/types/endpoints/coupon/coupon.interfaces.ts +13 -0
  48. package/modules/Api/types/endpoints/customer/customer-erros.ts +13 -0
  49. package/modules/Api/types/endpoints/customer/customer-obsearch.ts +103 -0
  50. package/modules/Api/types/endpoints/customer/customer.interfaces.ts +448 -0
  51. package/modules/Api/types/endpoints/customer/customer.types.ts +3 -0
  52. package/modules/Api/types/endpoints/description/description.interfaces.ts +30 -0
  53. package/modules/Api/types/endpoints/discounts/discounts.interfaces.ts +9 -0
  54. package/modules/Api/types/endpoints/discounts/discounts.types.ts +5 -0
  55. package/modules/Api/types/endpoints/filters/filter.type.ts +1 -0
  56. package/modules/Api/types/endpoints/filters/filters.interfaces.ts +26 -0
  57. package/modules/Api/types/endpoints/interest/interest.interfaces.ts +22 -0
  58. package/modules/Api/types/endpoints/media/media.interfaces.ts +13 -0
  59. package/modules/Api/types/endpoints/menu/menu.enums.ts +8 -0
  60. package/modules/Api/types/endpoints/menu/menu.interfaces.ts +26 -0
  61. package/modules/Api/types/endpoints/order/order.interfaces.ts +63 -0
  62. package/modules/Api/types/endpoints/page/page.interfaces.ts +15 -0
  63. package/modules/Api/types/endpoints/pagination/pagination.interfaces.ts +6 -0
  64. package/modules/Api/types/endpoints/pair-offer/pair-offer.interfaces.ts +19 -0
  65. package/modules/Api/types/endpoints/payment/payment.interfaces.ts +103 -0
  66. package/modules/Api/types/endpoints/payment/payment.types.ts +27 -0
  67. package/modules/Api/types/endpoints/price/price.interfaces.ts +22 -0
  68. package/modules/Api/types/endpoints/product/product-obsearch.types.ts +63 -0
  69. package/modules/Api/types/endpoints/product/product.interfaces.ts +109 -0
  70. package/modules/Api/types/endpoints/product/product.types.ts +3 -0
  71. package/modules/Api/types/endpoints/product-comment/product-comment-obsearch.types.ts +24 -0
  72. package/modules/Api/types/endpoints/product-comment/product-comment.interfaces.ts +32 -0
  73. package/modules/Api/types/endpoints/redirect/redirect.interfaces.ts +7 -0
  74. package/modules/Api/types/endpoints/review/review-obsearch.types.ts +18 -0
  75. package/modules/Api/types/endpoints/review/review.interfaces.ts +34 -0
  76. package/modules/Api/types/endpoints/seal/seal.interfaces.ts +21 -0
  77. package/modules/Api/types/endpoints/seal/seal.types.ts +3 -0
  78. package/modules/Api/types/endpoints/search/search.interfaces.ts +11 -0
  79. package/modules/Api/types/endpoints/seo/seo.interfaces.ts +11 -0
  80. package/modules/Api/types/endpoints/shipment/shipment.interfaces.ts +137 -0
  81. package/modules/Api/types/endpoints/showcase/showcase.enums.ts +8 -0
  82. package/modules/Api/types/endpoints/showcase/showcase.interfaces.ts +10 -0
  83. package/modules/Api/types/endpoints/simple-product/simple-product.interfaces.ts +15 -0
  84. package/modules/Api/types/endpoints/storage/storage.interfaces.ts +16 -0
  85. package/modules/Api/types/endpoints/template/template.interfaces.ts +30 -0
  86. package/modules/Api/types/endpoints/third-party/oauth.interfaces.ts +6 -0
  87. package/modules/Api/types/endpoints/upsell/upsell.interfaces.ts +13 -0
  88. package/modules/Api/types/endpoints/url/url.interfaces.ts +85 -0
  89. package/modules/Api/types/endpoints/wallet/wallet-obsearch.ts +8 -0
  90. package/modules/Api/types/endpoints/wallet/wallet.interfaces.ts +57 -0
  91. package/modules/Api/types/endpoints/zipcode/zipcode.interfaces.ts +23 -0
  92. package/modules/Api/types/index.ts +459 -0
  93. package/modules/Api/usePublicApi.ts +68 -0
  94. package/modules/Tracking/endpoints/BannerComposable.ts +33 -0
  95. package/modules/Tracking/endpoints/CartComposable.ts +75 -0
  96. package/modules/Tracking/endpoints/CustomerComposable.ts +68 -0
  97. package/modules/Tracking/endpoints/ProductQuoteShipment.ts +14 -0
  98. package/modules/Tracking/endpoints/SearchComposable.ts +32 -0
  99. package/modules/Tracking/endpoints/ShowcaseComposable.ts +54 -0
  100. package/modules/Tracking/endpoints/UrlComposable.ts +41 -0
  101. package/modules/Tracking/endpoints/types.ts +11 -0
  102. package/modules/Tracking/events/actions/addPaymentInfo.ts +31 -0
  103. package/modules/Tracking/events/actions/addShippingInfo.ts +27 -0
  104. package/modules/Tracking/events/actions/addToCart.ts +35 -0
  105. package/modules/Tracking/events/actions/beginCheckout.ts +28 -0
  106. package/modules/Tracking/events/actions/customerProfile.ts +36 -0
  107. package/modules/Tracking/events/actions/generateLead.ts +12 -0
  108. package/modules/Tracking/events/actions/login.ts +8 -0
  109. package/modules/Tracking/events/actions/purchase.ts +42 -0
  110. package/modules/Tracking/events/actions/removeFromCart.ts +52 -0
  111. package/modules/Tracking/events/actions/search.ts +8 -0
  112. package/modules/Tracking/events/actions/selectItem.ts +64 -0
  113. package/modules/Tracking/events/actions/selectPromotion.ts +24 -0
  114. package/modules/Tracking/events/actions/shippingCalculation.ts +7 -0
  115. package/modules/Tracking/events/actions/signup.ts +8 -0
  116. package/modules/Tracking/events/actions/upsertToCart.ts +62 -0
  117. package/modules/Tracking/events/views/viewCart.ts +28 -0
  118. package/modules/Tracking/events/views/viewHome.ts +5 -0
  119. package/modules/Tracking/events/views/viewItem.ts +31 -0
  120. package/modules/Tracking/events/views/viewItemList.ts +65 -0
  121. package/modules/Tracking/events/views/viewNotFound.ts +5 -0
  122. package/modules/Tracking/events/views/viewOther.ts +5 -0
  123. package/modules/Tracking/events/views/viewPayment.ts +7 -0
  124. package/modules/Tracking/events/views/viewPromotion.ts +28 -0
  125. package/modules/Tracking/events/views/viewShipping.ts +7 -0
  126. package/modules/Tracking/index.ts +84 -0
  127. package/modules/Tracking/publicApiTracking.ts +36 -0
  128. package/modules/Tracking/types/actions/add-payment-info.interfaces.ts +12 -0
  129. package/modules/Tracking/types/actions/add-shipping-info.interfaces.ts +11 -0
  130. package/modules/Tracking/types/actions/add-to-cart.interfaces.ts +10 -0
  131. package/modules/Tracking/types/actions/begin-checkout.interfaces.ts +12 -0
  132. package/modules/Tracking/types/actions/customer-profile.interfaces.ts +19 -0
  133. package/modules/Tracking/types/actions/file-download.interfaces.ts +4 -0
  134. package/modules/Tracking/types/actions/generate-lead.interfaces.ts +12 -0
  135. package/modules/Tracking/types/actions/login.interfaces.ts +4 -0
  136. package/modules/Tracking/types/actions/purchase.interfaces.ts +18 -0
  137. package/modules/Tracking/types/actions/remove-from-cart.interfaces.ts +10 -0
  138. package/modules/Tracking/types/actions/search.interfaces.ts +4 -0
  139. package/modules/Tracking/types/actions/select-item.interfaces.ts +16 -0
  140. package/modules/Tracking/types/actions/select-promotion.interfaces.ts +8 -0
  141. package/modules/Tracking/types/actions/share.interfaces.ts +4 -0
  142. package/modules/Tracking/types/actions/shipping-calculation.interfaces.ts +3 -0
  143. package/modules/Tracking/types/actions/signup.interfaces.ts +4 -0
  144. package/modules/Tracking/types/event.types.ts +54 -0
  145. package/modules/Tracking/types/index.ts +37 -0
  146. package/modules/Tracking/types/item.interfaces.ts +30 -0
  147. package/modules/Tracking/types/views/view-cart.interfaces.ts +11 -0
  148. package/modules/Tracking/types/views/view-home.interfaces.ts +3 -0
  149. package/modules/Tracking/types/views/view-item-list.interfaces.ts +11 -0
  150. package/modules/Tracking/types/views/view-item.interfaces.ts +15 -0
  151. package/modules/Tracking/types/views/view-not-found.interfaces.ts +3 -0
  152. package/modules/Tracking/types/views/view-other.interfaces.ts +3 -0
  153. package/modules/Tracking/types/views/view-payment.interfaces.ts +3 -0
  154. package/modules/Tracking/types/views/view-promotion.interfaces.ts +8 -0
  155. package/modules/Tracking/types/views/view-shipping.interfaces.ts +3 -0
  156. package/modules/Tracking/utils/cart.ts +100 -0
  157. package/modules/Tracking/utils/pushDatalayer.ts +7 -0
  158. package/package.json +27 -0
@@ -0,0 +1,100 @@
1
+ import type { UpsertTrackingCartRequest } from '../types';
2
+ import type {
3
+ CartResponse,
4
+ Order,
5
+ OrderItem,
6
+ Product,
7
+ } from '../../Api/types';
8
+
9
+ export function getVariant(orderItem: OrderItem | Product) {
10
+ if ('product' in orderItem)
11
+ return orderItem.product.currentAttributes
12
+ .map(attribute => attribute.value.label)
13
+ .join(', ');
14
+
15
+ return orderItem.currentAttributes
16
+ .map(attribute => attribute.value.label)
17
+ .join(', ');
18
+ }
19
+
20
+ export function getAllOrderItems(orders: Array<Order>) {
21
+ return orders.map(order => order.items).flat();
22
+ }
23
+
24
+ export function groupOrderItemById(orders: Array<Order>) {
25
+ const orderItems = getAllOrderItems(orders) || [];
26
+ const uniqOrderItemById: Array<OrderItem> = [];
27
+
28
+ orderItems?.forEach(orderItem => {
29
+ const orderItemIndex = uniqOrderItemById.findIndex(
30
+ uniqOrderItem =>
31
+ uniqOrderItem.product.productId === orderItem.product.productId,
32
+ );
33
+
34
+ if (orderItemIndex === -1) {
35
+ uniqOrderItemById.push(orderItem);
36
+ return;
37
+ }
38
+
39
+ uniqOrderItemById[orderItemIndex] = {
40
+ ...uniqOrderItemById[orderItemIndex],
41
+ quantity: orderItem.quantity + uniqOrderItemById[orderItemIndex].quantity,
42
+ totalValue:
43
+ orderItem.totalValue + uniqOrderItemById[orderItemIndex].totalValue,
44
+ subtotalValue:
45
+ orderItem.subtotalValue +
46
+ uniqOrderItemById[orderItemIndex].subtotalValue,
47
+ };
48
+
49
+ return;
50
+ });
51
+
52
+ return uniqOrderItemById;
53
+ }
54
+
55
+ export function getAddedCartItems(
56
+ cartPayload: CartResponse,
57
+ upsertPayload?: UpsertTrackingCartRequest,
58
+ ) {
59
+ return groupOrderItemById(cartPayload.orders)
60
+ .filter(orderItem => {
61
+ if (!upsertPayload) return orderItem;
62
+
63
+ return upsertPayload.items.some(
64
+ upsert => upsert.productId === orderItem.product.productId,
65
+ );
66
+ })
67
+ .map(orderItem => {
68
+ if (!upsertPayload) {
69
+ return {
70
+ ...orderItem,
71
+ oldQuantity: 0,
72
+ };
73
+ }
74
+
75
+ const upsertItem = upsertPayload.items.find(
76
+ upsert => upsert.productId === orderItem.product.productId,
77
+ )!;
78
+
79
+ if (!upsertItem.oldQuantity) {
80
+ return {
81
+ ...orderItem,
82
+ oldQuantity: upsertItem.oldQuantity,
83
+ };
84
+ }
85
+
86
+ return {
87
+ ...orderItem,
88
+ oldQuantity: upsertItem.oldQuantity,
89
+ };
90
+ });
91
+ }
92
+
93
+ export function totalValue(
94
+ cartPayload: CartResponse,
95
+ upsertPayload?: UpsertTrackingCartRequest,
96
+ ) {
97
+ return getAddedCartItems(cartPayload, upsertPayload)
98
+ .map(orderItem => orderItem.subtotalValue)
99
+ .reduce((acc, current) => acc + current, 0);
100
+ }
@@ -0,0 +1,7 @@
1
+ import type { Event } from '../types';
2
+
3
+ export function pushDatalayer(event: Event) {
4
+ if (!window.dataLayer) return;
5
+
6
+ window.dataLayer.push(event);
7
+ }
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@uappi/public-sdk",
3
+ "version": "1.0.0",
4
+ "description": "Pacotes públicos para desenvolvimento do ecossistema Uappi",
5
+ "main": "main.ts",
6
+ "scripts": {
7
+ "publish": "npm publish --access public"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://gitlab.com/agenciawebart/uappi/plataforma/frontend/packages/public/composables/use-public-api.git"
12
+ },
13
+ "keywords": [
14
+ "[\"uappi\"",
15
+ "\"api\"",
16
+ "\"publica\"",
17
+ "\"cliente\"",
18
+ "\"vue3\"",
19
+ "\"typescript\"]"
20
+ ],
21
+ "author": "Leonardo Freedy",
22
+ "license": "ISC",
23
+ "bugs": {
24
+ "url": "https://gitlab.com/agenciawebart/uappi/plataforma/frontend/packages/public/composables/use-public-api/issues"
25
+ },
26
+ "homepage": "https://gitlab.com/agenciawebart/uappi/plataforma/frontend/packages/public/composables/use-public-api#readme"
27
+ }