cloudcommerce 0.14.0 → 0.15.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 (383) hide show
  1. package/.github/renovate.json +20 -3
  2. package/.github/workflows/{e2e-tests.yml → test-e2e.yml} +28 -19
  3. package/.vscode/settings.json +6 -0
  4. package/CHANGELOG.md +99 -0
  5. package/action.yml +74 -2
  6. package/ecomplus-stores/monocard/README.md +1 -1
  7. package/ecomplus-stores/monocard/README.pt-BR.md +1 -1
  8. package/ecomplus-stores/monocard/functions/ssr/tailwind.config.cjs +2 -3
  9. package/ecomplus-stores/monocard/functions/ssr/uno.config.cjs +3 -3
  10. package/ecomplus-stores/tia-sonia/README.md +1 -1
  11. package/ecomplus-stores/tia-sonia/README.pt-BR.md +1 -1
  12. package/ecomplus-stores/tia-sonia/functions/ssr/tailwind.config.cjs +2 -3
  13. package/ecomplus-stores/tia-sonia/functions/ssr/uno.config.cjs +3 -3
  14. package/package.json +14 -14
  15. package/packages/api/lib/api.d.ts +13 -12
  16. package/packages/api/lib/api.js +51 -29
  17. package/packages/api/lib/api.js.map +1 -1
  18. package/packages/api/package.json +3 -3
  19. package/packages/api/src/api.ts +52 -22
  20. package/packages/api/tests/index.test.ts +18 -3
  21. package/packages/api/{src/types → types}/brands.d.ts +1 -1
  22. package/packages/api/{lib/types → types}/carts.d.ts +5 -5
  23. package/packages/api/{src/types → types}/categories.d.ts +2 -2
  24. package/packages/api/{src/types → types}/collections.d.ts +2 -2
  25. package/packages/api/{src/types → types}/customers.d.ts +1 -1
  26. package/packages/api/{src/types → types}/grids.d.ts +1 -1
  27. package/packages/api/{lib/types → types}/orders.d.ts +13 -13
  28. package/packages/api/{lib/types → types}/products.d.ts +10 -10
  29. package/packages/api/{src/types.ts → types.d.ts} +254 -31
  30. package/packages/api/types.ts +1 -1
  31. package/packages/apps/affilate-program/CHANGELOG.md +1 -0
  32. package/packages/apps/affilate-program/README.md +1 -0
  33. package/packages/apps/affilate-program/lib/affilate-program.js +9 -0
  34. package/packages/apps/affilate-program/lib/affilate-program.js.map +1 -0
  35. package/packages/apps/affilate-program/lib/events-to-affilate-program.js +154 -0
  36. package/packages/apps/affilate-program/lib/events-to-affilate-program.js.map +1 -0
  37. package/packages/apps/affilate-program/lib/index.js +2 -0
  38. package/packages/apps/affilate-program/lib/index.js.map +1 -0
  39. package/packages/apps/affilate-program/package.json +30 -0
  40. package/packages/apps/affilate-program/src/affilate-program.ts +14 -0
  41. package/packages/apps/affilate-program/src/events-to-affilate-program.ts +184 -0
  42. package/packages/apps/affilate-program/src/index.ts +1 -0
  43. package/packages/apps/affilate-program/tsconfig.json +3 -0
  44. package/packages/apps/correios/package.json +2 -2
  45. package/packages/apps/custom-payment/lib/custom-payment-create-transaction.d.ts +4 -0
  46. package/packages/apps/custom-payment/lib/custom-payment.d.ts +4 -0
  47. package/packages/apps/custom-payment/package.json +1 -1
  48. package/packages/apps/custom-shipping/package.json +1 -1
  49. package/packages/apps/datafrete/package.json +4 -4
  50. package/packages/apps/discounts/lib-mjs/apply-discount.mjs +27 -2
  51. package/packages/apps/discounts/lib-mjs/helpers.mjs +4 -2
  52. package/packages/apps/discounts/package.json +2 -2
  53. package/packages/apps/emails/lib/functios-lib/utils.js.map +1 -1
  54. package/packages/apps/emails/package.json +3 -3
  55. package/packages/apps/emails/src/functios-lib/utils.ts +2 -1
  56. package/packages/apps/fb-conversions/lib/fb-conversions-events.js +20 -6
  57. package/packages/apps/fb-conversions/lib/fb-conversions-events.js.map +1 -1
  58. package/packages/apps/fb-conversions/package.json +3 -3
  59. package/packages/apps/fb-conversions/src/fb-conversions-events.ts +21 -6
  60. package/packages/apps/flash-courier/CHANGELOG.md +1 -0
  61. package/packages/apps/flash-courier/README.md +1 -0
  62. package/packages/apps/flash-courier/events.js +1 -0
  63. package/packages/apps/flash-courier/lib/flash-courier-events.d.ts +5 -0
  64. package/packages/apps/flash-courier/lib/flash-courier-events.js +14 -0
  65. package/packages/apps/flash-courier/lib/flash-courier-events.js.map +1 -0
  66. package/packages/apps/flash-courier/lib/flash-courier.d.ts +2 -0
  67. package/packages/apps/flash-courier/lib/flash-courier.js +6 -0
  68. package/packages/apps/flash-courier/lib/flash-courier.js.map +1 -0
  69. package/packages/apps/flash-courier/lib/index.d.ts +1 -0
  70. package/packages/apps/flash-courier/lib/index.js +2 -0
  71. package/packages/apps/flash-courier/lib/index.js.map +1 -0
  72. package/packages/apps/flash-courier/lib-mjs/calculate-flash-courier.mjs +246 -0
  73. package/packages/apps/flash-courier/lib-mjs/update-tracking.mjs +176 -0
  74. package/packages/apps/flash-courier/package.json +34 -0
  75. package/packages/apps/flash-courier/src/flash-courier-events.ts +13 -0
  76. package/packages/apps/flash-courier/src/flash-courier.ts +7 -0
  77. package/packages/apps/flash-courier/src/index.ts +1 -0
  78. package/packages/apps/flash-courier/tsconfig.json +6 -0
  79. package/packages/apps/frenet/lib/functions-lib/database.d.ts +4 -3
  80. package/packages/apps/frenet/lib/functions-lib/database.js.map +1 -1
  81. package/packages/apps/frenet/lib/functions-lib/update-fulfillments.d.ts +3 -2
  82. package/packages/apps/frenet/lib/functions-lib/update-fulfillments.js.map +1 -1
  83. package/packages/apps/frenet/lib-mjs/calculate-frenet.mjs +13 -6
  84. package/packages/apps/frenet/package.json +3 -3
  85. package/packages/apps/frenet/src/functions-lib/database.ts +4 -3
  86. package/packages/apps/frenet/src/functions-lib/update-fulfillments.ts +2 -1
  87. package/packages/apps/galaxpay/lib/functions-lib/all-parses.js +1 -1
  88. package/packages/apps/galaxpay/lib/functions-lib/all-parses.js.map +1 -1
  89. package/packages/apps/galaxpay/lib/functions-lib/ecom/events-to-galaxpay.js +18 -2
  90. package/packages/apps/galaxpay/lib/functions-lib/ecom/events-to-galaxpay.js.map +1 -1
  91. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/auth/create-access.d.ts +2 -2
  92. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/handle-plans.d.ts +1 -1
  93. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/handle-plans.js.map +1 -1
  94. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/update-subscription.js +19 -2
  95. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/update-subscription.js.map +1 -1
  96. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/webhook.js +18 -2
  97. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/webhook.js.map +1 -1
  98. package/packages/apps/galaxpay/lib/functions-lib/utils.js +3 -3
  99. package/packages/apps/galaxpay/lib/functions-lib/utils.js.map +1 -1
  100. package/packages/apps/galaxpay/lib/galaxpay-create-transaction.d.ts +4 -0
  101. package/packages/apps/galaxpay/lib/galaxpay-create-transaction.js +19 -3
  102. package/packages/apps/galaxpay/lib/galaxpay-create-transaction.js.map +1 -1
  103. package/packages/apps/galaxpay/lib/galaxpay-list-payments.js +17 -1
  104. package/packages/apps/galaxpay/lib/galaxpay-list-payments.js.map +1 -1
  105. package/packages/apps/galaxpay/lib/galaxpay.d.ts +4 -0
  106. package/packages/apps/galaxpay/package.json +3 -3
  107. package/packages/apps/galaxpay/src/functions-lib/all-parses.ts +1 -1
  108. package/packages/apps/galaxpay/src/functions-lib/ecom/events-to-galaxpay.ts +21 -2
  109. package/packages/apps/galaxpay/src/functions-lib/galaxpay/auth/create-access.ts +2 -2
  110. package/packages/apps/galaxpay/src/functions-lib/galaxpay/handle-plans.ts +1 -2
  111. package/packages/apps/galaxpay/src/functions-lib/galaxpay/update-subscription.ts +21 -2
  112. package/packages/apps/galaxpay/src/functions-lib/galaxpay/webhook.ts +23 -5
  113. package/packages/apps/galaxpay/src/functions-lib/utils.ts +3 -3
  114. package/packages/apps/galaxpay/src/galaxpay-create-transaction.ts +19 -2
  115. package/packages/apps/galaxpay/src/galaxpay-list-payments.ts +19 -1
  116. package/packages/apps/google-analytics/lib/google-analytics-events.js +20 -4
  117. package/packages/apps/google-analytics/lib/google-analytics-events.js.map +1 -1
  118. package/packages/apps/google-analytics/package.json +3 -3
  119. package/packages/apps/google-analytics/src/google-analytics-events.ts +21 -4
  120. package/packages/apps/infinitepay/lib/functions-lib/add-installments.d.ts +1 -1
  121. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-access.d.ts +2 -2
  122. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-access.js +12 -8
  123. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-access.js.map +1 -1
  124. package/packages/apps/infinitepay/lib/functions-lib/utils.js +3 -3
  125. package/packages/apps/infinitepay/lib/functions-lib/utils.js.map +1 -1
  126. package/packages/apps/infinitepay/lib/infinitepay.d.ts +4 -0
  127. package/packages/apps/infinitepay/lib/ip-create-transaction.d.ts +4 -0
  128. package/packages/apps/infinitepay/lib/ip-create-transaction.js +18 -2
  129. package/packages/apps/infinitepay/lib/ip-create-transaction.js.map +1 -1
  130. package/packages/apps/infinitepay/lib/ip-list-payments.js +19 -3
  131. package/packages/apps/infinitepay/lib/ip-list-payments.js.map +1 -1
  132. package/packages/apps/infinitepay/lib/ip-webhook.js.map +1 -1
  133. package/packages/apps/infinitepay/package.json +3 -3
  134. package/packages/apps/infinitepay/src/functions-lib/add-installments.ts +1 -1
  135. package/packages/apps/infinitepay/src/functions-lib/ip-auth/create-access.ts +14 -10
  136. package/packages/apps/infinitepay/src/functions-lib/utils.ts +3 -3
  137. package/packages/apps/infinitepay/src/ip-create-transaction.ts +20 -2
  138. package/packages/apps/infinitepay/src/ip-list-payments.ts +21 -3
  139. package/packages/apps/infinitepay/src/ip-webhook.ts +4 -5
  140. package/packages/apps/jadlog/lib-mjs/calculate-jadlog.mjs +19 -6
  141. package/packages/apps/jadlog/package.json +1 -1
  142. package/packages/apps/loyalty-points/lib/functions-lib/handle-loyalty-points-event.js.map +1 -1
  143. package/packages/apps/loyalty-points/lib/loyalty-create-transaction.d.ts +4 -0
  144. package/packages/apps/loyalty-points/lib/loyalty-create-transaction.js.map +1 -1
  145. package/packages/apps/loyalty-points/lib/loyalty-points.d.ts +4 -0
  146. package/packages/apps/loyalty-points/package.json +1 -1
  147. package/packages/apps/loyalty-points/src/functions-lib/handle-loyalty-points-event.ts +2 -2
  148. package/packages/apps/loyalty-points/src/loyalty-create-transaction.ts +4 -3
  149. package/packages/apps/melhor-envio/lib/functions-lib/events-to-melhor-envio.js +18 -14
  150. package/packages/apps/melhor-envio/lib/functions-lib/events-to-melhor-envio.js.map +1 -1
  151. package/packages/apps/melhor-envio/lib-mjs/calculate-melhor-envio.mjs +21 -15
  152. package/packages/apps/melhor-envio/package.json +3 -3
  153. package/packages/apps/melhor-envio/src/functions-lib/events-to-melhor-envio.ts +34 -22
  154. package/packages/apps/mercadopago/lib/mercadopago.d.ts +4 -0
  155. package/packages/apps/mercadopago/lib/mp-create-transaction.d.ts +4 -0
  156. package/packages/apps/mercadopago/lib/mp-create-transaction.js +14 -1
  157. package/packages/apps/mercadopago/lib/mp-create-transaction.js.map +1 -1
  158. package/packages/apps/mercadopago/lib/mp-list-payments.js +16 -7
  159. package/packages/apps/mercadopago/lib/mp-list-payments.js.map +1 -1
  160. package/packages/apps/mercadopago/lib/mp-webhook.js +10 -3
  161. package/packages/apps/mercadopago/lib/mp-webhook.js.map +1 -1
  162. package/packages/apps/mercadopago/package.json +3 -3
  163. package/packages/apps/mercadopago/src/mp-create-transaction.ts +15 -1
  164. package/packages/apps/mercadopago/src/mp-list-payments.ts +17 -7
  165. package/packages/apps/mercadopago/src/mp-webhook.ts +11 -3
  166. package/packages/apps/pagarme/assets/onload-expression.js +22 -8
  167. package/packages/apps/pagarme/assets/onload-expression.min.js +1 -1
  168. package/packages/apps/pagarme/lib/functions-lib/add-installments.d.ts +3 -3
  169. package/packages/apps/pagarme/lib/functions-lib/add-installments.js +5 -1
  170. package/packages/apps/pagarme/lib/functions-lib/add-installments.js.map +1 -1
  171. package/packages/apps/pagarme/lib/pagarme-create-transaction.d.ts +4 -0
  172. package/packages/apps/pagarme/lib/pagarme-create-transaction.js +27 -2
  173. package/packages/apps/pagarme/lib/pagarme-create-transaction.js.map +1 -1
  174. package/packages/apps/pagarme/lib/pagarme-list-payments.js +28 -6
  175. package/packages/apps/pagarme/lib/pagarme-list-payments.js.map +1 -1
  176. package/packages/apps/pagarme/lib/pagarme-webhook.js +10 -2
  177. package/packages/apps/pagarme/lib/pagarme-webhook.js.map +1 -1
  178. package/packages/apps/pagarme/lib/pagarme.d.ts +4 -0
  179. package/packages/apps/pagarme/package.json +3 -3
  180. package/packages/apps/pagarme/src/functions-lib/add-installments.ts +8 -2
  181. package/packages/apps/pagarme/src/pagarme-create-transaction.ts +28 -2
  182. package/packages/apps/pagarme/src/pagarme-list-payments.ts +37 -6
  183. package/packages/apps/pagarme/src/pagarme-webhook.ts +11 -2
  184. package/packages/apps/paghiper/lib/functions-lib/handle-webhook.js +11 -3
  185. package/packages/apps/paghiper/lib/functions-lib/handle-webhook.js.map +1 -1
  186. package/packages/apps/paghiper/lib/paghiper-create-transaction.d.ts +4 -0
  187. package/packages/apps/paghiper/lib/paghiper-create-transaction.js +9 -1
  188. package/packages/apps/paghiper/lib/paghiper-create-transaction.js.map +1 -1
  189. package/packages/apps/paghiper/lib/paghiper-list-payments.js +11 -4
  190. package/packages/apps/paghiper/lib/paghiper-list-payments.js.map +1 -1
  191. package/packages/apps/paghiper/lib/paghiper.d.ts +4 -0
  192. package/packages/apps/paghiper/package.json +3 -3
  193. package/packages/apps/paghiper/src/functions-lib/handle-webhook.ts +13 -4
  194. package/packages/apps/paghiper/src/paghiper-create-transaction.ts +9 -1
  195. package/packages/apps/paghiper/src/paghiper-list-payments.ts +15 -8
  196. package/packages/apps/pix/lib/functions-lib/get-certificate.js +3 -3
  197. package/packages/apps/pix/lib/functions-lib/get-certificate.js.map +1 -1
  198. package/packages/apps/pix/lib/pix-create-transaction.d.ts +4 -0
  199. package/packages/apps/pix/lib/pix-create-transaction.js +23 -3
  200. package/packages/apps/pix/lib/pix-create-transaction.js.map +1 -1
  201. package/packages/apps/pix/lib/pix-list-payments.js +23 -1
  202. package/packages/apps/pix/lib/pix-list-payments.js.map +1 -1
  203. package/packages/apps/pix/lib/pix.d.ts +4 -0
  204. package/packages/apps/pix/package.json +3 -3
  205. package/packages/apps/pix/src/functions-lib/get-certificate.ts +3 -3
  206. package/packages/apps/pix/src/pix-create-transaction.ts +26 -3
  207. package/packages/apps/pix/src/pix-list-payments.ts +26 -1
  208. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js +8 -7
  209. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js.map +1 -1
  210. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js +4 -2
  211. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js.map +1 -1
  212. package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js.map +1 -1
  213. package/packages/apps/tiny-erp/package.json +4 -4
  214. package/packages/apps/tiny-erp/src/integration/import-order-from-tiny.ts +9 -9
  215. package/packages/apps/tiny-erp/src/integration/import-product-from-tiny.ts +4 -2
  216. package/packages/apps/tiny-erp/src/integration/parsers/product-from-tiny.ts +1 -1
  217. package/packages/apps/webhooks/lib/events-to-webhooks-app.js +12 -8
  218. package/packages/apps/webhooks/lib/events-to-webhooks-app.js.map +1 -1
  219. package/packages/apps/webhooks/package.json +3 -3
  220. package/packages/apps/webhooks/src/events-to-webhooks-app.ts +22 -12
  221. package/packages/cli/package.json +1 -1
  222. package/packages/config/lib/config.js +2 -4
  223. package/packages/config/lib/config.js.map +1 -1
  224. package/packages/config/lib/env.js +2 -4
  225. package/packages/config/lib/env.js.map +1 -1
  226. package/packages/config/package.json +1 -1
  227. package/packages/config/src/config.ts +4 -4
  228. package/packages/config/src/env.ts +4 -4
  229. package/packages/emails/package.json +3 -3
  230. package/packages/emails/tests/sendgrid.test.ts +2 -2
  231. package/packages/emails/tests/smtp.test.ts +2 -2
  232. package/packages/events/lib/firebase.js +4 -0
  233. package/packages/events/lib/firebase.js.map +1 -1
  234. package/packages/events/package.json +5 -3
  235. package/packages/events/src/firebase.ts +4 -0
  236. package/packages/feeds/lib/firebase.js +3 -3
  237. package/packages/feeds/lib/firebase.js.map +1 -1
  238. package/packages/feeds/package.json +2 -2
  239. package/packages/feeds/src/firebase.ts +5 -3
  240. package/packages/firebase/lib/config.d.ts +11 -1
  241. package/packages/firebase/lib/config.js +12 -0
  242. package/packages/firebase/lib/config.js.map +1 -1
  243. package/packages/firebase/lib/helpers/update-app-data.d.ts +1 -1
  244. package/packages/firebase/package.json +4 -4
  245. package/packages/firebase/src/config.ts +14 -1
  246. package/packages/i18n/package.json +1 -1
  247. package/packages/modules/lib/firebase/call-app-module.js +5 -0
  248. package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
  249. package/packages/modules/lib/firebase/checkout.js.map +1 -1
  250. package/packages/modules/lib/firebase/functions-checkout/fix-items.js.map +1 -1
  251. package/packages/modules/lib/firebase/functions-checkout/handle-order-transaction.js.map +1 -1
  252. package/packages/modules/lib/firebase/functions-checkout/new-order.js.map +1 -1
  253. package/packages/modules/lib/firebase/functions-checkout/request-to-module.js +1 -1
  254. package/packages/modules/lib/firebase/functions-checkout/request-to-module.js.map +1 -1
  255. package/packages/modules/lib/firebase/functions-checkout/utils.js +1 -1
  256. package/packages/modules/lib/firebase/functions-checkout/utils.js.map +1 -1
  257. package/packages/modules/package.json +6 -5
  258. package/packages/modules/schemas/@checkout.cjs +5 -0
  259. package/packages/modules/schemas/apply_discount.cjs +6 -0
  260. package/packages/modules/schemas/create_transaction.cjs +22 -0
  261. package/packages/modules/src/firebase/call-app-module.ts +5 -0
  262. package/packages/modules/src/firebase/checkout.ts +9 -9
  263. package/packages/modules/src/firebase/functions-checkout/fix-items.ts +3 -3
  264. package/packages/modules/src/firebase/functions-checkout/handle-order-transaction.ts +8 -8
  265. package/packages/modules/src/firebase/functions-checkout/new-order.ts +6 -7
  266. package/packages/modules/src/firebase/functions-checkout/request-to-module.ts +2 -4
  267. package/packages/modules/src/firebase/functions-checkout/utils.ts +23 -23
  268. package/packages/modules/src/types/index.d.ts +4 -8
  269. package/packages/modules/tests/modules.test.mjs +1 -1
  270. package/packages/passport/package.json +3 -3
  271. package/packages/ssr/lib/firebase/serve-storefront.js +2 -2
  272. package/packages/ssr/lib/firebase/serve-storefront.js.map +1 -1
  273. package/packages/ssr/package.json +10 -10
  274. package/packages/ssr/src/firebase/serve-storefront.ts +2 -2
  275. package/packages/storefront/.base.eslintrc.cjs +4 -0
  276. package/packages/storefront/.eslintrc.cjs +4 -1
  277. package/packages/storefront/astro.config.mjs +6 -2
  278. package/packages/storefront/config/{storefront.cms.cjs → storefront.cms.js} +6 -5
  279. package/packages/storefront/{storefront.config.mjs → config/storefront.config.mjs} +5 -5
  280. package/packages/storefront/config/storefront.tailwind.cjs +266 -0
  281. package/packages/storefront/config/storefront.unocss.cjs +139 -0
  282. package/packages/storefront/dist/client/_astro/Carousel.93c2309b.js +1 -0
  283. package/packages/storefront/dist/client/_astro/HeroSlider.c5b673b3.js +1 -0
  284. package/packages/storefront/dist/client/_astro/{PitchBar.94f525f9.js → PitchBar.d0e3362e.js} +1 -1
  285. package/packages/storefront/dist/client/_astro/Prices.51598206.js +1 -0
  286. package/packages/storefront/dist/client/_astro/Prices.5186c09f.js +1 -0
  287. package/packages/storefront/dist/client/_astro/ProductShelf.d90bfc6e.js +1 -0
  288. package/packages/storefront/dist/client/_astro/ShopHeader.06c4c46e.js +4 -0
  289. package/packages/storefront/dist/client/_astro/_...slug_.ab554647.css +1 -0
  290. package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.8870d8dc.js +1 -0
  291. package/packages/storefront/dist/client/_astro/api.7f62c1ff.js +1 -0
  292. package/packages/storefront/dist/client/_astro/client.06720904.js +1 -0
  293. package/packages/storefront/dist/client/_astro/{firebase-app.d513d4b8.js → firebase-app.4381f424.js} +17 -4
  294. package/packages/storefront/dist/client/_astro/{format-money.1a95a3b5.js → format-money.3868f219.js} +1 -1
  295. package/packages/storefront/dist/client/_astro/{hoisted.be7b77c7.js → hoisted.6aebc438.js} +1 -1
  296. package/packages/storefront/dist/client/_astro/img.2ae78c70.js +1 -0
  297. package/packages/storefront/dist/client/_astro/index.3de006ba.js +1 -0
  298. package/packages/storefront/dist/client/_astro/{modules-info.bc2146d9.js → modules-info.c65d970c.js} +1 -1
  299. package/packages/storefront/dist/client/_astro/{runtime-dom.esm-bundler.e2053595.js → runtime-dom.esm-bundler.7a95af90.js} +1 -1
  300. package/packages/storefront/dist/client/_astro/{workbox-window.prod.es5.dc90f814.js → workbox-window.prod.es5.a7b12eab.js} +2 -2
  301. package/packages/storefront/dist/client/sw.js +1 -1
  302. package/packages/storefront/dist/client/{workbox-e0d788d4.js → workbox-5e0bf4e4.js} +1 -1
  303. package/packages/storefront/dist/server/_empty-middleware.mjs +3 -0
  304. package/packages/storefront/dist/server/chunks/_...51f243e0.mjs +35 -0
  305. package/packages/storefront/dist/server/chunks/account@_@astro.70d0a2b6.mjs +35 -0
  306. package/packages/storefront/dist/server/chunks/{astro.7ac24846.mjs → astro.c449fda8.mjs} +1479 -1217
  307. package/packages/storefront/dist/server/chunks/endpoint@_@js.58e19bda.mjs +35 -0
  308. package/packages/storefront/dist/server/chunks/fallback@_@astro.6c6e2bf9.mjs +35 -0
  309. package/packages/storefront/dist/server/chunks/index@_@astro.09a10813.mjs +35 -0
  310. package/packages/storefront/dist/server/chunks/index@_@astro.81422b02.mjs +35 -0
  311. package/packages/storefront/dist/server/chunks/pages/{all.a42f9fc6.mjs → _...slug_.astro.5667273a.mjs} +215 -1017
  312. package/packages/storefront/dist/server/chunks/pages/account.astro.72dc24f9.mjs +23 -0
  313. package/packages/storefront/dist/server/chunks/pages/endpoint.js.5d128d9d.mjs +119 -0
  314. package/packages/storefront/dist/server/chunks/pages/fallback.astro.72b8d520.mjs +64 -0
  315. package/packages/storefront/dist/server/chunks/pages/index.astro.e80eea52.mjs +1098 -0
  316. package/packages/storefront/dist/server/entry.mjs +57 -313
  317. package/packages/storefront/dist/server/renderers.mjs +333 -0
  318. package/packages/storefront/package.json +18 -21
  319. package/packages/storefront/scripts/prepare-monorepo.sh +0 -1
  320. package/packages/storefront/server.d.ts +8 -1
  321. package/packages/storefront/src/env.d.ts +0 -1
  322. package/packages/storefront/src/helpers/afetch.ts +2 -2
  323. package/packages/storefront/src/lib/assets/components.css +28 -0
  324. package/packages/storefront/src/lib/components/Carousel.vue +9 -23
  325. package/packages/storefront/src/lib/components/CarouselControl.vue +2 -2
  326. package/packages/storefront/src/lib/components/globals/AImg.vue +4 -7
  327. package/packages/storefront/src/lib/components/globals/ALink.vue +1 -1
  328. package/packages/storefront/src/lib/components/globals/Fade.vue +5 -30
  329. package/packages/storefront/src/lib/composables/use-hero-slider.ts +2 -0
  330. package/packages/storefront/src/lib/composables/use-prices.ts +4 -1
  331. package/packages/storefront/src/lib/composables/use-product-card.ts +104 -0
  332. package/packages/storefront/src/lib/composables/use-product-shelf.ts +91 -0
  333. package/packages/storefront/src/lib/composables/use-shop-header-submenu.ts +2 -0
  334. package/packages/storefront/src/lib/composables/use-sticky-header.ts +2 -0
  335. package/packages/storefront/src/lib/content.d.ts +3 -4
  336. package/packages/storefront/src/lib/layouts/Base.astro +5 -7
  337. package/packages/storefront/src/lib/layouts/BaseBody.astro +4 -8
  338. package/packages/storefront/src/lib/layouts/BaseHead.astro +1 -7
  339. package/packages/storefront/src/lib/layouts/BaseStateJson.astro +11 -18
  340. package/packages/storefront/src/lib/layouts/{sections/use-hero-section.ts → main/use-page-hero.ts} +7 -8
  341. package/packages/storefront/src/lib/layouts/main/use-page-sections.ts +98 -0
  342. package/packages/storefront/src/lib/layouts/use-page-layout.ts +4 -4
  343. package/packages/storefront/src/lib/ssr-context.ts +26 -19
  344. package/packages/storefront/src/lib/state/customer-session.ts +1 -1
  345. package/packages/storefront/tailwind.config.cjs +2 -225
  346. package/packages/storefront/uno.config.cjs +2 -141
  347. package/packages/types/index.ts +5 -1
  348. package/packages/types/modules/@checkout:params.d.ts +4 -0
  349. package/packages/types/modules/apply_discount:params.d.ts +4 -0
  350. package/packages/types/modules/create_transaction:response.d.ts +15 -0
  351. package/packages/types/package.json +1 -1
  352. package/packages/api/lib/types/brands.d.ts +0 -157
  353. package/packages/api/lib/types/categories.d.ts +0 -199
  354. package/packages/api/lib/types/collections.d.ts +0 -159
  355. package/packages/api/lib/types/customers.d.ts +0 -523
  356. package/packages/api/lib/types/grids.d.ts +0 -157
  357. package/packages/api/lib/types.d.ts +0 -132
  358. package/packages/api/lib/types.js +0 -2
  359. package/packages/api/lib/types.js.map +0 -1
  360. package/packages/api/src/types/applications.d.ts +0 -165
  361. package/packages/api/src/types/authentications.d.ts +0 -107
  362. package/packages/api/src/types/carts.d.ts +0 -360
  363. package/packages/api/src/types/orders.d.ts +0 -1720
  364. package/packages/api/src/types/products.d.ts +0 -1424
  365. package/packages/api/src/types/stores.d.ts +0 -123
  366. package/packages/storefront/.astro/types.d.ts +0 -117
  367. package/packages/storefront/config/storefront.cms.mjs +0 -72
  368. package/packages/storefront/dist/client/_astro/Carousel.e137cab2.js +0 -1
  369. package/packages/storefront/dist/client/_astro/HeroSlider.d677b64a.js +0 -1
  370. package/packages/storefront/dist/client/_astro/Prices.b8d4b8e4.js +0 -1
  371. package/packages/storefront/dist/client/_astro/ShopHeader.f12e72f6.js +0 -4
  372. package/packages/storefront/dist/client/_astro/_...slug_.48ea2ee1.css +0 -1
  373. package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.116fec5b.js +0 -1
  374. package/packages/storefront/dist/client/_astro/client.c2102734.js +0 -1
  375. package/packages/storefront/dist/client/_astro/index.1190ddf5.js +0 -1
  376. package/packages/storefront/dist/client/_astro/index.1eaf97c3.css +0 -1
  377. package/packages/storefront/dist/client/_astro/index.e56fc6b3.css +0 -1
  378. package/packages/storefront/dist/client/_astro/server.1dabec03.css +0 -1
  379. package/packages/storefront/src/lib/layouts/use-home-main.ts +0 -16
  380. /package/packages/api/{lib/types → types}/applications.d.ts +0 -0
  381. /package/packages/api/{lib/types → types}/authentications.d.ts +0 -0
  382. /package/packages/api/{lib/types → types}/stores.d.ts +0 -0
  383. /package/packages/storefront/src/lib/assets/{preflight.css → reset.css} +0 -0
@@ -280,7 +280,7 @@ export interface Products {
280
280
  /**
281
281
  * Brand ID (ObjectID)
282
282
  */
283
- _id?: string;
283
+ _id?: string & { length: 24 };
284
284
  /**
285
285
  * Brand name
286
286
  */
@@ -333,7 +333,7 @@ export interface Products {
333
333
  /**
334
334
  * Category ID (ObjectID)
335
335
  */
336
- _id?: string;
336
+ _id?: string & { length: 24 };
337
337
  /**
338
338
  * Category name
339
339
  */
@@ -366,7 +366,7 @@ export interface Products {
366
366
  /**
367
367
  * Parent category ID (ObjectID)
368
368
  */
369
- _id?: string;
369
+ _id?: string & { length: 24 };
370
370
  /**
371
371
  * Parent category name
372
372
  */
@@ -423,7 +423,7 @@ export interface Products {
423
423
  /**
424
424
  * Grid ID (ObjectID)
425
425
  */
426
- _id?: string;
426
+ _id?: string & { length: 24 };
427
427
  /**
428
428
  * Grid title
429
429
  */
@@ -806,7 +806,7 @@ export interface Products {
806
806
  /**
807
807
  * Picture ID (ObjectID) [auto]
808
808
  */
809
- _id?: string;
809
+ _id?: string & { length: 24 };
810
810
  /**
811
811
  * Tag to identify object, use only lowercase letters, digits and underscore
812
812
  */
@@ -853,7 +853,7 @@ export interface Products {
853
853
  /**
854
854
  * Variation ID (ObjectID) [auto]
855
855
  */
856
- _id?: string;
856
+ _id?: string & { length: 24 };
857
857
  /**
858
858
  * Item unique reference code
859
859
  */
@@ -1165,7 +1165,7 @@ export interface Products {
1165
1165
  /**
1166
1166
  * ID of one of the preferred product picture for this variation
1167
1167
  */
1168
- picture_id?: string;
1168
+ picture_id?: string & { length: 24 };
1169
1169
  /**
1170
1170
  * Flags to associate additional info
1171
1171
  *
@@ -1215,12 +1215,12 @@ export interface Products {
1215
1215
  /**
1216
1216
  * Optional variation ID (ObjectID) if `has_variations` is true
1217
1217
  */
1218
- variation_id?: string;
1218
+ variation_id?: string & { length: 24 };
1219
1219
  }[];
1220
1220
  /**
1221
1221
  * Parent product ID, if this product is contained or represented by another
1222
1222
  */
1223
- parent_item_id?: string;
1223
+ parent_item_id?: string & { length: 24 };
1224
1224
  /**
1225
1225
  * Lists of related products
1226
1226
  *
@@ -1240,7 +1240,7 @@ export interface Products {
1240
1240
  *
1241
1241
  * @maxItems 100
1242
1242
  */
1243
- product_ids: string[];
1243
+ product_ids: Array<string & { length: 24 }>;
1244
1244
  /**
1245
1245
  * Tag to identify object, use only lowercase letters, digits and underscore
1246
1246
  */
@@ -23,20 +23,24 @@ type Resource = 'products'
23
23
  | 'authentications';
24
24
 
25
25
  type ResourceId = string & { length: 24 };
26
-
27
26
  type ResourceAndId = `${Resource}/${ResourceId}`;
28
-
27
+ type ResourceAndFind = ResourceAndId | `${Resource}/${string}:${string}`;
29
28
  type ResourceOpQuery = Resource | `${Resource}?${string}`;
30
29
 
30
+ type SearchOpQuery = 'search/v1'
31
+ | `search/v1?${string}`
32
+ | 'search/_els'
33
+ | `search/_els?${string}`;
34
+
31
35
  type EventsEndpoint = `events/${Resource}`
32
36
  | `events/${ResourceAndId}`
33
37
  | 'events/me';
34
38
 
35
39
  type Endpoint = ResourceOpQuery
36
- | ResourceAndId
37
- | `${ResourceAndId}/${string}`
40
+ | ResourceAndFind
41
+ | `${ResourceAndFind}/${string}`
38
42
  | `slugs/${string}`
39
- | 'search/v1'
43
+ | SearchOpQuery
40
44
  | EventsEndpoint
41
45
  | 'login'
42
46
  | 'authenticate'
@@ -57,6 +61,14 @@ type Config = {
57
61
  lang?: string,
58
62
  method?: Method,
59
63
  endpoint: Endpoint,
64
+ fields?: readonly string[],
65
+ sort?: readonly string[],
66
+ limit?: number,
67
+ offset?: number,
68
+ count?: boolean,
69
+ buckets?: boolean,
70
+ verbose?: boolean,
71
+ concise?: boolean,
60
72
  params?: Record<string, string | number | boolean | string[] | number[]> | string,
61
73
  headers?: Headers | Record<string, string>,
62
74
  timeout?: number,
@@ -72,33 +84,156 @@ type BaseListResultMeta = {
72
84
  fields: Array<string>,
73
85
  };
74
86
 
75
- type ListResultDocs<Document extends any> = Array<Partial<Document> & { _id: ResourceId }>;
76
- type ProductsList = ListResultDocs<Products>;
77
- type CategoriesList = ListResultDocs<Categories>;
78
- type BrandsList = ListResultDocs<Brands>;
79
- type CollectionsList = ListResultDocs<Collections>;
80
- type GridsList = ListResultDocs<Grids>;
81
- type CartsList = ListResultDocs<Carts>;
82
- type OrdersList = ListResultDocs<Orders>;
83
- type CustomersList = ListResultDocs<Customers>;
84
- type StoresList = ListResultDocs<Stores>;
85
- type ApplicationsList = ListResultDocs<Applications>;
86
- type AuthenticationsList = ListResultDocs<Authentications>;
87
+ type DocField<T extends string> = T extends `${infer U}.${string}` ? U : T;
88
+ type ListResultDocs<
89
+ Document extends Record<string, any>,
90
+ Fields extends string[] | '*' = '*',
91
+ > = Array<Omit<(
92
+ Fields extends '*' ? Partial<Document> :
93
+ Pick<Document, Extract<keyof Document, DocField<Fields[number]>>>
94
+ ), '_id'> & { _id: ResourceId }>;
95
+
96
+ type DefaultProductsFields = [
97
+ 'sku',
98
+ 'slug',
99
+ ];
100
+ type ProductsList<Fields extends null | string[] | '*' = '*'> =
101
+ ListResultDocs<Products, Fields extends null ? DefaultProductsFields : Fields>;
102
+
103
+ type DefaultCategoriesFields = [
104
+ 'name',
105
+ 'slug',
106
+ 'parent',
107
+ 'icon',
108
+ 'pictures.0',
109
+ ];
110
+ type CategoriesList<Fields extends null | string[] | '*' = '*'> =
111
+ ListResultDocs<Categories, Fields extends null ? DefaultCategoriesFields : Fields>;
112
+
113
+ type DefaultBrandsFields = [
114
+ 'name',
115
+ 'slug',
116
+ 'logo',
117
+ 'pictures.0',
118
+ ];
119
+ type BrandsList<Fields extends null | string[] | '*' = '*'> =
120
+ ListResultDocs<Brands, Fields extends null ? DefaultBrandsFields : Fields>;
121
+
122
+ type DefaultCollectionsFields = [
123
+ 'name',
124
+ 'slug',
125
+ 'products',
126
+ 'pictures.0',
127
+ ];
128
+ type CollectionsList<Fields extends null | string[] | '*' = '*'> =
129
+ ListResultDocs<Collections, Fields extends null ? DefaultCollectionsFields : Fields>;
130
+
131
+ type DefaultGridsFields = [
132
+ 'title',
133
+ 'grid_id',
134
+ 'options.text',
135
+ 'options.colors',
136
+ ];
137
+ type GridsList<Fields extends null | string[] | '*' = '*'> =
138
+ ListResultDocs<Grids, Fields extends null ? DefaultGridsFields : Fields>;
139
+
140
+ type DefaultCartsFields = [
141
+ 'available',
142
+ 'completed',
143
+ 'permalink',
144
+ 'status',
145
+ 'customers',
146
+ 'other_customers',
147
+ 'items.product_id',
148
+ 'items.sku',
149
+ 'items.name',
150
+ 'items.quantity',
151
+ 'items.final_price',
152
+ 'subtotal',
153
+ ];
154
+ type CartsList<Fields extends null | string[] | '*' = '*'> =
155
+ ListResultDocs<Carts, Fields extends null ? DefaultCartsFields : Fields>;
156
+
157
+ type DefaultOrdersFields = [
158
+ 'channel_id',
159
+ 'number',
160
+ 'code',
161
+ 'status',
162
+ 'financial_status.updated_at',
163
+ 'financial_status.current',
164
+ 'fulfillment_status.updated_at',
165
+ 'fulfillment_status.current',
166
+ 'amount',
167
+ 'payment_method_label',
168
+ 'shipping_method_label',
169
+ 'buyers._id',
170
+ 'buyers.main_email',
171
+ 'buyers.display_name',
172
+ 'items.product_id',
173
+ 'items.sku',
174
+ 'items.name',
175
+ 'items.quantity',
176
+ ];
177
+ type OrdersList<Fields extends null | string[] | '*' = '*'> =
178
+ ListResultDocs<Orders, Fields extends null ? DefaultOrdersFields : Fields>;
179
+
180
+ type DefaultCustomersFields = [
181
+ 'state',
182
+ 'enabled',
183
+ 'login',
184
+ 'status',
185
+ 'main_email',
186
+ 'accepts_marketing',
187
+ 'display_name',
188
+ 'orders_count',
189
+ 'orders_total_value',
190
+ ];
191
+ type CustomersList<Fields extends null | string[] | '*' = '*'> =
192
+ ListResultDocs<Customers, Fields extends null ? DefaultCustomersFields : Fields>;
193
+
194
+ type DefaultStoresFields = [
195
+ 'store_id',
196
+ 'name',
197
+ 'domain',
198
+ ];
199
+ type StoresList<Fields extends null | string[] | '*' = '*'> =
200
+ ListResultDocs<Stores, Fields extends null ? DefaultStoresFields : Fields>;
201
+
202
+ type DefaultApplicationsFields = [
203
+ 'app_id',
204
+ 'title',
205
+ 'state',
206
+ 'version',
207
+ 'type',
208
+ ];
209
+ type ApplicationsList<Fields extends null | string[] | '*' = '*'> =
210
+ ListResultDocs<Applications, Fields extends null ? DefaultApplicationsFields : Fields>;
211
+
212
+ type DefaultAuthenticationsFields = [
213
+ 'username',
214
+ 'email',
215
+ 'app',
216
+ ];
217
+ type AuthenticationsList<Fields extends null | string[] | '*' = '*'> =
218
+ ListResultDocs<Authentications, Fields extends null ? DefaultAuthenticationsFields : Fields>;
87
219
 
88
220
  type ListEndpoint<TResource extends Resource> = TResource | `${TResource}?${string}`;
89
- type ResourceListResult<TEndpoint extends ResourceOpQuery> = {
221
+ type ResourceListResult<
222
+ TEndpoint extends ResourceOpQuery,
223
+ Fields extends string[] | null = TEndpoint extends Resource ? null : '*',
224
+ > = {
90
225
  result:
91
- TEndpoint extends ListEndpoint<'products'> ? ProductsList :
92
- TEndpoint extends ListEndpoint<'categories'> ? CategoriesList :
93
- TEndpoint extends ListEndpoint<'brands'> ? BrandsList :
94
- TEndpoint extends ListEndpoint<'collections'> ? CollectionsList :
95
- TEndpoint extends ListEndpoint<'grids'> ? GridsList :
96
- TEndpoint extends ListEndpoint<'carts'> ? CartsList :
97
- TEndpoint extends ListEndpoint<'orders'> ? OrdersList :
98
- TEndpoint extends ListEndpoint<'customers'> ? CustomersList :
99
- TEndpoint extends ListEndpoint<'stores'> ? StoresList :
100
- TEndpoint extends ListEndpoint<'applications'> ? ApplicationsList :
101
- TEndpoint extends ListEndpoint<'authentications'> ? AuthenticationsList :
226
+ TEndpoint extends ListEndpoint<'products'> ? ProductsList<Fields> :
227
+ TEndpoint extends ListEndpoint<'categories'> ? CategoriesList<Fields> :
228
+ TEndpoint extends ListEndpoint<'brands'> ? BrandsList<Fields> :
229
+ TEndpoint extends ListEndpoint<'collections'> ? CollectionsList<Fields> :
230
+ TEndpoint extends ListEndpoint<'grids'> ? GridsList<Fields> :
231
+ TEndpoint extends ListEndpoint<'carts'> ? CartsList<Fields> :
232
+ TEndpoint extends ListEndpoint<'orders'> ? OrdersList<Fields> :
233
+ TEndpoint extends ListEndpoint<'customers'> ? CustomersList<Fields> :
234
+ TEndpoint extends ListEndpoint<'stores'> ? StoresList<Fields> :
235
+ TEndpoint extends ListEndpoint<'applications'> ? ApplicationsList<Fields> :
236
+ TEndpoint extends ListEndpoint<'authentications'> ? AuthenticationsList<Fields> :
102
237
  never,
103
238
  meta: BaseListResultMeta & {
104
239
  count?: number,
@@ -110,6 +245,83 @@ type ResourceListResult<TEndpoint extends ResourceOpQuery> = {
110
245
  },
111
246
  };
112
247
 
248
+ interface SearchProducts extends Products {
249
+ has_variations: boolean;
250
+ _score: number;
251
+ }
252
+ type DefaultSearchFields = [
253
+ 'sku',
254
+ 'name',
255
+ 'slug',
256
+ 'available',
257
+ 'visible',
258
+ 'price',
259
+ 'base_price',
260
+ 'quantity',
261
+ 'min_quantity',
262
+ 'inventory',
263
+ 'measurement',
264
+ 'condition',
265
+ 'warranty',
266
+ 'pictures.normal',
267
+ 'has_variations',
268
+ ];
269
+
270
+ type SearchItem<Fields extends null | string[] | '*' = '*'> = Omit<(
271
+ Fields extends '*' ? Partial<SearchProducts> :
272
+ Pick<
273
+ SearchProducts,
274
+ Extract<keyof SearchProducts,
275
+ DocField<Fields extends null ? DefaultSearchFields[number] : Fields[number]>>
276
+ >
277
+ ), '_id' | '_score'> & {
278
+ _id: ResourceId,
279
+ _score: number,
280
+ };
281
+
282
+ type SearchResult<
283
+ TEndpoint extends SearchOpQuery | 'v1' | 'els',
284
+ Fields extends string[] | null = TEndpoint extends 'search/v1' | 'v1' ? null : '*',
285
+ > =
286
+ TEndpoint extends 'search/v1' | `search/v1?${string}` | 'v1' ? {
287
+ result: SearchItem<Fields>[],
288
+ meta: BaseListResultMeta & {
289
+ count?: number,
290
+ sort: Array<{
291
+ field: string,
292
+ order: 1 | -1,
293
+ }>,
294
+ query: { [key: string]: any },
295
+ buckets?: {
296
+ prices?: Array<{
297
+ min: null | number,
298
+ max: null | number,
299
+ avg: null | number,
300
+ count: number,
301
+ }>,
302
+ 'brands/name'?: {
303
+ [key: string]: number,
304
+ },
305
+ 'categories/name'?: {
306
+ [key: string]: number,
307
+ },
308
+ specs?: {
309
+ [key: string]: number,
310
+ },
311
+ },
312
+ },
313
+ } :
314
+ TEndpoint extends 'search/_els' | `search/_els?${string}` | 'els' ? {
315
+ hits: {
316
+ hits: SearchItem<'*'>[],
317
+ total: number,
318
+ max_score: null,
319
+ },
320
+ aggregations: Record<string, any>,
321
+ took: number,
322
+ } :
323
+ never;
324
+
113
325
  type EventFieldsByEndpoint<TEndpoint extends EventsEndpoint> =
114
326
  TEndpoint extends `events/${Resource}` ? {
115
327
  resource_id: ResourceId,
@@ -141,7 +353,14 @@ type EventsResult<TEndpoint extends EventsEndpoint> = {
141
353
  meta: BaseListResultMeta,
142
354
  };
143
355
 
144
- type ResponseBody<TConfig extends Config> =
356
+ type ResponseBody<
357
+ TConfig extends Config,
358
+ ListFields extends string[] | null = TConfig['endpoint'] extends Resource
359
+ ? TConfig['params']['fields'] extends string ? '*'
360
+ : TConfig['fields'] extends readonly string[] ? TConfig['fields']
361
+ : null
362
+ : '*',
363
+ > =
145
364
  TConfig['method'] extends 'post' ?
146
365
  TConfig['endpoint'] extends 'login' ? { _id: ResourceId, store_ids: number[], api_key: string } :
147
366
  TConfig['endpoint'] extends 'authenticate' ? { my_id: string, access_token: string, expires: string } :
@@ -160,7 +379,8 @@ type ResponseBody<TConfig extends Config> =
160
379
  TConfig['endpoint'] extends `stores/${ResourceId}` ? Stores :
161
380
  TConfig['endpoint'] extends `applications/${ResourceId}` ? Applications :
162
381
  TConfig['endpoint'] extends `authentications/${ResourceId}` ? Authentications :
163
- TConfig['endpoint'] extends ResourceOpQuery ? ResourceListResult<TConfig['endpoint']> :
382
+ TConfig['endpoint'] extends ResourceOpQuery ? ResourceListResult<TConfig['endpoint'], ListFields> :
383
+ TConfig['endpoint'] extends SearchOpQuery ? SearchResult<TConfig['endpoint'], ListFields> :
164
384
  TConfig['endpoint'] extends EventsEndpoint ? EventsResult<TConfig['endpoint']> :
165
385
  any;
166
386
 
@@ -245,11 +465,14 @@ export type {
245
465
  Resource,
246
466
  ResourceId,
247
467
  ResourceAndId,
468
+ ResourceAndFind,
248
469
  ResourceOpQuery,
249
470
  Endpoint,
250
471
  Method,
251
472
  Config,
252
473
  ResourceListResult,
474
+ SearchItem,
475
+ SearchResult,
253
476
  EventsResult,
254
477
  ResponseBody,
255
478
  RequestBody,
@@ -1,2 +1,2 @@
1
1
  /* eslint-disable */
2
- export * from './lib/types.d';
2
+ export * from './types.d';
@@ -0,0 +1 @@
1
+ Please refer to GitHub [repository releases](https://github.com/ecomplus/cloud-commerce/releases) or monorepo unified [CHANGELOG.md](https://github.com/ecomplus/cloud-commerce/blob/main/CHANGELOG.md).
@@ -0,0 +1 @@
1
+ # `@cloudcommerce/app-affilate-program`
@@ -0,0 +1,9 @@
1
+ /* eslint-disable import/prefer-default-export */
2
+ import '@cloudcommerce/firebase/lib/init';
3
+ import { createAppEventsFunction } from '@cloudcommerce/firebase/lib/helpers/pubsub';
4
+ import handleApiEvent from './events-to-affilate-program.js';
5
+
6
+ export const affilateapp = {
7
+ onStoreEvent: createAppEventsFunction('affilateProgram', handleApiEvent),
8
+ };
9
+ // # sourceMappingURL=affilate-program.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"affilate-program.js","sourceRoot":"","sources":["../src/affilate-program.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,kCAAkC,CAAC;AAC1C,OAAO,EACL,uBAAuB,GAExB,MAAM,4CAA4C,CAAC;AACpD,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAE1D,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY,EAAE,uBAAuB,CACnC,iBAAiB,EACjB,cAAiC,CAClC;CACF,CAAC"}
@@ -0,0 +1,154 @@
1
+ import { getFirestore, Timestamp } from 'firebase-admin/firestore';
2
+ import { logger } from 'firebase-functions/v1';
3
+ import api from '@cloudcommerce/api';
4
+
5
+ const handleApiEvent = async ({
6
+ evName, apiEvent, apiDoc, app,
7
+ }) => {
8
+ const appData = { ...app.data, ...app.hidden_data };
9
+ const resourceId = apiEvent.resource_id;
10
+ const key = `${evName}_${resourceId}`;
11
+ const isOrder = evName.startsWith('orders-');
12
+ const isCustomer = evName.startsWith('customers-');
13
+ const firestoreColl = getFirestore().collection('affilateProgramOrders');
14
+ if ((Array.isArray(appData.ignore_events)
15
+ && appData.ignore_events.includes(evName))
16
+ || (!isCustomer && !isOrder)) {
17
+ logger.info('>> ', key, ' - Ignored event');
18
+ return null;
19
+ }
20
+ let newCustomerId;
21
+ let newCustomerEmail;
22
+ let referralId;
23
+ if (isCustomer) {
24
+ const customer = apiDoc;
25
+ newCustomerId = customer._id;
26
+ referralId = customer.affiliate_code;
27
+ newCustomerEmail = customer.main_email;
28
+ if (!newCustomerId || !newCustomerEmail || !referralId) {
29
+ return null;
30
+ }
31
+ if (!/^[a-f0-9]{24}$/.test(referralId)) {
32
+ return null;
33
+ }
34
+ }
35
+ let orderId;
36
+ let buyerId;
37
+ let orderSubtotal = 0;
38
+ let isPaid = false;
39
+ let isCancelled = false;
40
+ if (isOrder) {
41
+ const order = apiDoc;
42
+ orderId = order._id;
43
+ orderSubtotal = order.amount?.subtotal || 0;
44
+ const orderStatus = order.financial_status?.current;
45
+ buyerId = order.buyers?.[0]?._id;
46
+ if (!orderId || !orderSubtotal || !orderStatus || !buyerId) {
47
+ return null;
48
+ }
49
+ switch (orderStatus) {
50
+ case 'paid':
51
+ isPaid = true;
52
+ break;
53
+ case 'unauthorized':
54
+ case 'partially_refunded':
55
+ case 'refunded':
56
+ case 'voided':
57
+ isCancelled = true;
58
+ break;
59
+ default:
60
+ break;
61
+ }
62
+ if (!isPaid && !isCancelled) {
63
+ return null;
64
+ }
65
+ }
66
+ logger.info(`${isOrder ? 'Orders' : 'Customers'}`);
67
+ try {
68
+ if (isCustomer && appData.points_on_signup) {
69
+ const referralCustomer = (await api.get(`customers/${referralId}`)).data;
70
+ if (!referralCustomer?.enabled) {
71
+ logger.warn('Inactive customer');
72
+ return null;
73
+ }
74
+ if (referralCustomer.main_email === newCustomerEmail) {
75
+ logger.warn('new customer is the affiliate, same email');
76
+ return null;
77
+ }
78
+ // save new customer points
79
+ // TODO: set type for partial body in post method
80
+ const pointsEndpoint = `customers/${newCustomerId}/loyalty_points_entries`;
81
+ const d = new Date();
82
+ d.setDate(d.getDate() + 120);
83
+ const validThru = d.toISOString();
84
+ await api.post(pointsEndpoint, {
85
+ name: 'Convite',
86
+ program_id: 'referreds0',
87
+ earned_points: appData.points_on_signup,
88
+ active_points: appData.points_on_signup,
89
+ ratio: 1,
90
+ valid_thru: validThru,
91
+ });
92
+ }
93
+ if (isOrder && isPaid && appData.points_on_referral && orderId) {
94
+ if (appData.min_subtotal_to_earn > orderSubtotal) {
95
+ return null;
96
+ }
97
+ const buyerCustomer = (await api.get(`customers/${buyerId}`)).data;
98
+ if (!buyerCustomer?.enabled) {
99
+ logger.warn('Inactive customer');
100
+ return null;
101
+ }
102
+ if (!buyerCustomer.affiliate_code) {
103
+ return null;
104
+ }
105
+ const referralCustomer = (await api.get(`customers/${buyerCustomer.affiliate_code}`)).data;
106
+ if (referralCustomer.doc_number === buyerCustomer.doc_number) {
107
+ logger.warn('Order placed by affiliate');
108
+ return null;
109
+ }
110
+ logger.info(`Order ${orderId} paid by ${buyerId} validated`);
111
+ const docRef = firestoreColl.doc(`${orderId}`);
112
+ if (!appData.on_all_orders) {
113
+ // check if points not already paid for this order
114
+ const docSnapshot = await docRef.get();
115
+ if (docSnapshot.exists) {
116
+ return null;
117
+ }
118
+ }
119
+ let earnedPoints;
120
+ if (typeof appData.points_on_referral === 'number') {
121
+ earnedPoints = appData.points_on_referral;
122
+ } else if (appData.points_on_referral.type === 'percentage') {
123
+ earnedPoints = (orderSubtotal * appData.points_on_referral.value) / 100;
124
+ } else {
125
+ earnedPoints = appData.points_on_referral.value;
126
+ }
127
+ if (!(earnedPoints > 0)) {
128
+ return null;
129
+ }
130
+ // TODO: set type for partial body in post method
131
+ const pointsEndpoint = `/customers/${buyerCustomer.affiliate_code}/loyalty_points_entries`;
132
+ await api.post(pointsEndpoint, {
133
+ name: 'Afiliado',
134
+ program_id: 'affiliates0',
135
+ earned_points: earnedPoints,
136
+ active_points: earnedPoints,
137
+ ratio: 1,
138
+ });
139
+ await docRef.set({
140
+ buyerId,
141
+ referralId: buyerCustomer.affiliate_code,
142
+ earnedPoints,
143
+ t: Timestamp.fromDate(new Date()),
144
+ });
145
+ }
146
+ return null;
147
+ } catch (err) {
148
+ logger.error(err);
149
+ return null;
150
+ }
151
+ };
152
+
153
+ export default handleApiEvent;
154
+ // # sourceMappingURL=events-to-affilate-program.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events-to-affilate-program.js","sourceRoot":"","sources":["../src/events-to-affilate-program.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './affilate-program.js';
2
+ // # sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "@cloudcommerce/app-affilate-program",
3
+ "type": "module",
4
+ "version": "0.15.0",
5
+ "description": "E-Com Plus Cloud Commerce app for simple affiliate program",
6
+ "main": "lib/index.js",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/ecomplus/cloud-commerce.git",
10
+ "directory": "packages/apps/app-affilate-program"
11
+ },
12
+ "author": "E-Com Club Softwares para E-commerce <ti@e-com.club>",
13
+ "license": "Apache 2.0 with Commons Clause",
14
+ "bugs": {
15
+ "url": "https://github.com/ecomplus/cloud-commerce/issues"
16
+ },
17
+ "homepage": "https://github.com/ecomplus/cloud-commerce/tree/main/packages/apps/app-affilate-program#readme",
18
+ "scripts": {
19
+ "build": "bash ../../../scripts/build-lib.sh"
20
+ },
21
+ "dependencies": {
22
+ "@cloudcommerce/api": "workspace:*",
23
+ "@cloudcommerce/firebase": "workspace:*",
24
+ "firebase-admin": "^11.9.0",
25
+ "firebase-functions": "^4.4.1"
26
+ },
27
+ "devDependencies": {
28
+ "@cloudcommerce/types": "workspace:*"
29
+ }
30
+ }
@@ -0,0 +1,14 @@
1
+ /* eslint-disable import/prefer-default-export */
2
+ import '@cloudcommerce/firebase/lib/init';
3
+ import {
4
+ createAppEventsFunction,
5
+ ApiEventHandler,
6
+ } from '@cloudcommerce/firebase/lib/helpers/pubsub';
7
+ import handleApiEvent from './events-to-affilate-program';
8
+
9
+ export const affilateapp = {
10
+ onStoreEvent: createAppEventsFunction(
11
+ 'affilateProgram',
12
+ handleApiEvent as ApiEventHandler,
13
+ ),
14
+ };