cloudcommerce 0.0.125 → 0.0.127

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 (507) hide show
  1. package/.eslintrc.cjs +26 -7
  2. package/.gitmodules +3 -0
  3. package/.vscode/settings.json +3 -0
  4. package/CHANGELOG.md +56 -0
  5. package/action.yml +51 -7
  6. package/ecomplus-stores/monocard/README.md +0 -15
  7. package/ecomplus-stores/monocard/README.pt-BR.md +0 -15
  8. package/ecomplus-stores/monocard/functions/core/package.json +1 -1
  9. package/ecomplus-stores/monocard/functions/events/package.json +2 -2
  10. package/ecomplus-stores/monocard/functions/modules/package.json +2 -2
  11. package/ecomplus-stores/monocard/functions/passport/package.json +2 -2
  12. package/ecomplus-stores/monocard/functions/ssr/package.json +8 -5
  13. package/ecomplus-stores/monocard/functions/ssr/src/main/Home.astro +1 -1
  14. package/ecomplus-stores/monocard/functions/ssr/tailwind.config.cjs +1 -3
  15. package/ecomplus-stores/monocard/functions/ssr/{uno.config.ts → uno.config.cjs} +1 -1
  16. package/ecomplus-stores/monocard/package.json +1 -1
  17. package/ecomplus-stores/tia-sonia/.github/renovate.json +5 -0
  18. package/ecomplus-stores/tia-sonia/.github/workflows/build-and-deploy.yml +41 -0
  19. package/ecomplus-stores/tia-sonia/.github/workflows/calibreapp-image-actions.yml +23 -0
  20. package/ecomplus-stores/tia-sonia/.vscode/extensions.json +8 -0
  21. package/ecomplus-stores/tia-sonia/.vscode/settings.json +5 -0
  22. package/ecomplus-stores/tia-sonia/LICENSE.md +230 -0
  23. package/ecomplus-stores/tia-sonia/README.md +102 -0
  24. package/ecomplus-stores/tia-sonia/README.pt-BR.md +102 -0
  25. package/ecomplus-stores/tia-sonia/functions/config.json +3 -0
  26. package/ecomplus-stores/tia-sonia/functions/core/index.js +9 -0
  27. package/ecomplus-stores/tia-sonia/functions/core/package.json +20 -0
  28. package/ecomplus-stores/tia-sonia/functions/events/index.js +9 -0
  29. package/ecomplus-stores/tia-sonia/functions/events/package.json +21 -0
  30. package/ecomplus-stores/tia-sonia/functions/example.env +10 -0
  31. package/ecomplus-stores/tia-sonia/functions/modules/index.js +9 -0
  32. package/ecomplus-stores/tia-sonia/functions/modules/package.json +21 -0
  33. package/ecomplus-stores/tia-sonia/functions/passport/index.js +9 -0
  34. package/ecomplus-stores/tia-sonia/functions/passport/package.json +21 -0
  35. package/ecomplus-stores/tia-sonia/functions/ssr/.eslintrc.cjs +6 -0
  36. package/ecomplus-stores/tia-sonia/functions/ssr/astro.config.mjs +4 -0
  37. package/ecomplus-stores/tia-sonia/functions/ssr/content/blog.json +18 -0
  38. package/ecomplus-stores/tia-sonia/functions/ssr/content/brands.json +24 -0
  39. package/ecomplus-stores/tia-sonia/functions/ssr/content/categories.json +24 -0
  40. package/ecomplus-stores/tia-sonia/functions/ssr/content/code.json +5 -0
  41. package/ecomplus-stores/tia-sonia/functions/ssr/content/collections.json +24 -0
  42. package/ecomplus-stores/tia-sonia/functions/ssr/content/contacts.json +13 -0
  43. package/ecomplus-stores/tia-sonia/functions/ssr/content/footer.json +46 -0
  44. package/ecomplus-stores/tia-sonia/functions/ssr/content/header.json +35 -0
  45. package/ecomplus-stores/tia-sonia/functions/ssr/content/home.json +45 -0
  46. package/ecomplus-stores/tia-sonia/functions/ssr/content/info.json +18 -0
  47. package/ecomplus-stores/tia-sonia/functions/ssr/content/maintenance.json +6 -0
  48. package/ecomplus-stores/tia-sonia/functions/ssr/content/menu.json +6 -0
  49. package/ecomplus-stores/tia-sonia/functions/ssr/content/pages/contato.json +6 -0
  50. package/ecomplus-stores/tia-sonia/functions/ssr/content/pages/entrega.json +6 -0
  51. package/ecomplus-stores/tia-sonia/functions/ssr/content/pages/faq.json +6 -0
  52. package/ecomplus-stores/tia-sonia/functions/ssr/content/pages/pagamentos.json +6 -0
  53. package/ecomplus-stores/tia-sonia/functions/ssr/content/pages/privacidade.json +6 -0
  54. package/ecomplus-stores/tia-sonia/functions/ssr/content/pages/sobre-nos.json +6 -0
  55. package/ecomplus-stores/tia-sonia/functions/ssr/content/pages/termos.json +6 -0
  56. package/ecomplus-stores/tia-sonia/functions/ssr/content/pages/trocas.json +6 -0
  57. package/ecomplus-stores/tia-sonia/functions/ssr/content/posts/esta-loja-e-um-pwa.json +9 -0
  58. package/ecomplus-stores/tia-sonia/functions/ssr/content/products.json +32 -0
  59. package/ecomplus-stores/tia-sonia/functions/ssr/content/search.json +8 -0
  60. package/ecomplus-stores/tia-sonia/functions/ssr/content/settings.json +14 -0
  61. package/ecomplus-stores/tia-sonia/functions/ssr/content/social.json +5 -0
  62. package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/analytics.json +11 -0
  63. package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/compre-confie.json +11 -0
  64. package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/ebit.json +11 -0
  65. package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/fb-pixel.json +12 -0
  66. package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/gmc-ratings.json +12 -0
  67. package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/minicart.json +6 -0
  68. package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/offers-notification.json +11 -0
  69. package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/opinioes-verificadas.json +18 -0
  70. package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/product-card.json +10 -0
  71. package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/product.json +13 -0
  72. package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/search-engine.json +8 -0
  73. package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/search.json +6 -0
  74. package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/tag-manager.json +12 -0
  75. package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/tawkto.json +12 -0
  76. package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/trustvox.json +15 -0
  77. package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/user.json +5 -0
  78. package/ecomplus-stores/tia-sonia/functions/ssr/index.js +18 -0
  79. package/ecomplus-stores/tia-sonia/functions/ssr/package.json +30 -0
  80. package/ecomplus-stores/tia-sonia/functions/ssr/public/admin/config.json +1 -0
  81. package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/cms-preview.css +274 -0
  82. package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/cms.css +114 -0
  83. package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/cvv.png +0 -0
  84. package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/icons/bootstrap-icons/font/storefront-icons.woff2 +0 -0
  85. package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/icons/feather-icons/font/storefront-icons.woff2 +0 -0
  86. package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/icons/font-awesome/font/storefront-icons.woff2 +0 -0
  87. package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/icons/line-awesome/font/storefront-icons.woff2 +0 -0
  88. package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/icons/tabler-icons/font/storefront-icons.woff2 +0 -0
  89. package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/img-placeholder.png +0 -0
  90. package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/payments.png +0 -0
  91. package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/ssl-safe.png +0 -0
  92. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/icon.png +0 -0
  93. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/large-icon.png +0 -0
  94. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/banner1.png +0 -0
  95. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/banner2.png +0 -0
  96. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/banner2.webp +0 -0
  97. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/favicon.png +0 -0
  98. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/headless.png +0 -0
  99. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/headphone.png +0 -0
  100. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/headphone.webp +0 -0
  101. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/icon.png +0 -0
  102. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/large-icon.png +0 -0
  103. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/logo.png +0 -0
  104. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/logo.webp +0 -0
  105. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/og-image.png +0 -0
  106. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/passion.png +0 -0
  107. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/passion.webp +0 -0
  108. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/pwa-reliable.png +0 -0
  109. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/rect8589.png +0 -0
  110. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/rect859.png +0 -0
  111. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/rect89.png +0 -0
  112. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/rect89.webp +0 -0
  113. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/ssl-safe.png +0 -0
  114. package/ecomplus-stores/tia-sonia/functions/ssr/public/robots.txt +8 -0
  115. package/ecomplus-stores/tia-sonia/functions/ssr/src/assets/.gitkeep +0 -0
  116. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/TheHeader.vue +42 -0
  117. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/TopBar.vue +133 -0
  118. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/header/HeaderButtonLink.vue +5 -0
  119. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/header/HeaderButtons.vue +46 -0
  120. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/header/HeaderNav.vue +9 -0
  121. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/header/HeaderNavLink.vue +5 -0
  122. package/ecomplus-stores/tia-sonia/functions/ssr/src/env.d.ts +3 -0
  123. package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/Base.astro +34 -0
  124. package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/Checkout.astro +0 -0
  125. package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/Pages.astro +19 -0
  126. package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/PagesHeader.astro +117 -0
  127. package/ecomplus-stores/tia-sonia/functions/ssr/src/main/Fallback.astro +15 -0
  128. package/ecomplus-stores/tia-sonia/functions/ssr/src/main/Home.astro +19 -0
  129. package/ecomplus-stores/tia-sonia/functions/ssr/src/main/Wildcard.astro +21 -0
  130. package/ecomplus-stores/tia-sonia/functions/ssr/src/pages/[...slug].astro +36 -0
  131. package/ecomplus-stores/tia-sonia/functions/ssr/src/pages/app/account.astro +0 -0
  132. package/ecomplus-stores/tia-sonia/functions/ssr/src/pages/app/index.astro +0 -0
  133. package/ecomplus-stores/tia-sonia/functions/ssr/src/pages/fallback.astro +19 -0
  134. package/ecomplus-stores/tia-sonia/functions/ssr/src/pages/index.astro +31 -0
  135. package/ecomplus-stores/tia-sonia/functions/ssr/src/scripts/InlineScripts.astro +11 -0
  136. package/ecomplus-stores/tia-sonia/functions/ssr/tailwind.config.cjs +2 -0
  137. package/ecomplus-stores/tia-sonia/functions/ssr/tsconfig.json +16 -0
  138. package/ecomplus-stores/tia-sonia/functions/ssr/uno.config.cjs +4 -0
  139. package/ecomplus-stores/tia-sonia/package.json +28 -0
  140. package/ecomplus-stores/tia-sonia/scripts/install.sh +9 -0
  141. package/package.json +17 -17
  142. package/packages/api/lib/api.d.ts +4 -4
  143. package/packages/api/lib/types.d.ts +41 -41
  144. package/packages/api/package.json +1 -1
  145. package/packages/apps/correios/package.json +2 -2
  146. package/packages/apps/custom-shipping/package.json +1 -1
  147. package/packages/apps/discounts/lib-mjs/apply-discount.mjs +94 -20
  148. package/packages/apps/discounts/package.json +2 -2
  149. package/packages/apps/emails/CHANGELOG.md +1 -0
  150. package/packages/apps/emails/README.md +1 -0
  151. package/packages/apps/emails/lib/events-to-app-emails.js +19 -0
  152. package/packages/apps/emails/lib/events-to-app-emails.js.map +1 -0
  153. package/packages/apps/emails/lib/firebase.js +19 -0
  154. package/packages/apps/emails/lib/firebase.js.map +1 -0
  155. package/packages/apps/emails/lib/functios-lib/abandoned-carts.js +86 -0
  156. package/packages/apps/emails/lib/functios-lib/abandoned-carts.js.map +1 -0
  157. package/packages/apps/emails/lib/functios-lib/handle-orders.js +174 -0
  158. package/packages/apps/emails/lib/functios-lib/handle-orders.js.map +1 -0
  159. package/packages/apps/emails/lib/functios-lib/trigger-actions.js +178 -0
  160. package/packages/apps/emails/lib/functios-lib/trigger-actions.js.map +1 -0
  161. package/packages/apps/emails/lib/functios-lib/utils.js +33 -0
  162. package/packages/apps/emails/lib/functios-lib/utils.js.map +1 -0
  163. package/packages/apps/emails/lib/index.js +2 -0
  164. package/packages/apps/emails/lib/index.js.map +1 -0
  165. package/packages/apps/emails/package.json +33 -0
  166. package/packages/apps/emails/src/events-to-app-emails.ts +27 -0
  167. package/packages/apps/emails/src/firebase.ts +25 -0
  168. package/packages/apps/emails/src/functios-lib/abandoned-carts.ts +100 -0
  169. package/packages/apps/emails/src/functios-lib/handle-orders.ts +232 -0
  170. package/packages/apps/emails/src/functios-lib/trigger-actions.ts +177 -0
  171. package/packages/apps/emails/src/functios-lib/utils.ts +44 -0
  172. package/packages/apps/emails/src/index.ts +1 -0
  173. package/packages/apps/emails/tsconfig.json +3 -0
  174. package/packages/apps/frenet/package.json +2 -2
  175. package/packages/apps/infinitepay/CHANGELOG.md +1 -0
  176. package/packages/apps/infinitepay/README.md +1 -0
  177. package/packages/apps/infinitepay/assets/onload-expression.js +57 -0
  178. package/packages/apps/infinitepay/lib/functions-lib/add-installments.d.ts +55 -0
  179. package/packages/apps/infinitepay/lib/functions-lib/add-installments.js +63 -0
  180. package/packages/apps/infinitepay/lib/functions-lib/add-installments.js.map +1 -0
  181. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-access.d.ts +14 -0
  182. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-access.js +63 -0
  183. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-access.js.map +1 -0
  184. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-axios.d.ts +2 -0
  185. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-axios.js +19 -0
  186. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-axios.js.map +1 -0
  187. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/oauth.d.ts +2 -0
  188. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/oauth.js +25 -0
  189. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/oauth.js.map +1 -0
  190. package/packages/apps/infinitepay/lib/functions-lib/utils.d.ts +8 -0
  191. package/packages/apps/infinitepay/lib/functions-lib/utils.js +17 -0
  192. package/packages/apps/infinitepay/lib/functions-lib/utils.js.map +1 -0
  193. package/packages/apps/infinitepay/lib/index.d.ts +1 -0
  194. package/packages/apps/infinitepay/lib/index.js +3 -0
  195. package/packages/apps/infinitepay/lib/index.js.map +1 -0
  196. package/packages/apps/infinitepay/lib/infinitepay.d.ts +76 -0
  197. package/packages/apps/infinitepay/lib/infinitepay.js +13 -0
  198. package/packages/apps/infinitepay/lib/infinitepay.js.map +1 -0
  199. package/packages/apps/infinitepay/lib/ip-create-transaction.d.ts +72 -0
  200. package/packages/apps/infinitepay/lib/ip-create-transaction.js +305 -0
  201. package/packages/apps/infinitepay/lib/ip-create-transaction.js.map +1 -0
  202. package/packages/apps/infinitepay/lib/ip-list-payments.d.ts +8 -0
  203. package/packages/apps/infinitepay/lib/ip-list-payments.js +130 -0
  204. package/packages/apps/infinitepay/lib/ip-list-payments.js.map +1 -0
  205. package/packages/apps/infinitepay/lib/ip-webhook.d.ts +5 -0
  206. package/packages/apps/infinitepay/lib/ip-webhook.js +152 -0
  207. package/packages/apps/infinitepay/lib/ip-webhook.js.map +1 -0
  208. package/packages/apps/infinitepay/package.json +38 -0
  209. package/packages/apps/infinitepay/scripts/build.sh +5 -0
  210. package/packages/apps/infinitepay/src/functions-lib/add-installments.ts +78 -0
  211. package/packages/apps/infinitepay/src/functions-lib/ip-auth/create-access.ts +85 -0
  212. package/packages/apps/infinitepay/src/functions-lib/ip-auth/create-axios.ts +20 -0
  213. package/packages/apps/infinitepay/src/functions-lib/ip-auth/oauth.ts +30 -0
  214. package/packages/apps/infinitepay/src/functions-lib/utils.ts +23 -0
  215. package/packages/apps/infinitepay/src/index.ts +2 -0
  216. package/packages/apps/infinitepay/src/infinitepay.ts +13 -0
  217. package/packages/apps/infinitepay/src/ip-create-transaction.ts +418 -0
  218. package/packages/apps/infinitepay/src/ip-list-payments.ts +158 -0
  219. package/packages/apps/infinitepay/src/ip-webhook.ts +184 -0
  220. package/packages/apps/infinitepay/tsconfig.json +6 -0
  221. package/packages/apps/infinitepay/webhook.js +1 -0
  222. package/packages/apps/mercadopago/lib/mercadopago.js +0 -2
  223. package/packages/apps/mercadopago/lib/mercadopago.js.map +1 -1
  224. package/packages/apps/mercadopago/lib/mp-create-transaction.js +1 -1
  225. package/packages/apps/mercadopago/lib/mp-create-transaction.js.map +1 -1
  226. package/packages/apps/mercadopago/lib/mp-webhook.js +1 -3
  227. package/packages/apps/mercadopago/lib/mp-webhook.js.map +1 -1
  228. package/packages/apps/mercadopago/package.json +5 -5
  229. package/packages/apps/mercadopago/src/mercadopago.ts +0 -3
  230. package/packages/apps/mercadopago/src/mp-create-transaction.ts +1 -1
  231. package/packages/apps/mercadopago/src/mp-webhook.ts +1 -3
  232. package/packages/apps/pagarme/CHANGELOG.md +1 -0
  233. package/packages/apps/pagarme/README.md +1 -0
  234. package/packages/apps/pagarme/assets/onload-expression.js +18 -0
  235. package/packages/apps/pagarme/lib/functions-lib/add-installments.d.ts +55 -0
  236. package/packages/apps/pagarme/lib/functions-lib/add-installments.js +48 -0
  237. package/packages/apps/pagarme/lib/functions-lib/add-installments.js.map +1 -0
  238. package/packages/apps/pagarme/lib/functions-lib/parse-status-to-ecom.d.ts +2 -0
  239. package/packages/apps/pagarme/lib/functions-lib/parse-status-to-ecom.js +24 -0
  240. package/packages/apps/pagarme/lib/functions-lib/parse-status-to-ecom.js.map +1 -0
  241. package/packages/apps/pagarme/lib/index.d.ts +1 -0
  242. package/packages/apps/pagarme/lib/index.js +3 -0
  243. package/packages/apps/pagarme/lib/index.js.map +1 -0
  244. package/packages/apps/pagarme/lib/pagarme-create-transaction.d.ts +82 -0
  245. package/packages/apps/pagarme/lib/pagarme-create-transaction.js +275 -0
  246. package/packages/apps/pagarme/lib/pagarme-create-transaction.js.map +1 -0
  247. package/packages/apps/pagarme/lib/pagarme-list-payments.d.ts +7 -0
  248. package/packages/apps/pagarme/lib/pagarme-list-payments.js +139 -0
  249. package/packages/apps/pagarme/lib/pagarme-list-payments.js.map +1 -0
  250. package/packages/apps/pagarme/lib/pagarme-webhook.d.ts +4 -0
  251. package/packages/apps/pagarme/lib/pagarme-webhook.js +80 -0
  252. package/packages/apps/pagarme/lib/pagarme-webhook.js.map +1 -0
  253. package/packages/apps/pagarme/lib/pagarme.d.ts +86 -0
  254. package/packages/apps/pagarme/lib/pagarme.js +12 -0
  255. package/packages/apps/pagarme/lib/pagarme.js.map +1 -0
  256. package/packages/apps/pagarme/package.json +38 -0
  257. package/packages/apps/pagarme/scripts/build.sh +5 -0
  258. package/packages/apps/pagarme/src/functions-lib/add-installments.ts +59 -0
  259. package/packages/apps/pagarme/src/functions-lib/parse-status-to-ecom.ts +23 -0
  260. package/packages/apps/pagarme/src/index.ts +2 -0
  261. package/packages/apps/pagarme/src/pagarme-create-transaction.ts +307 -0
  262. package/packages/apps/pagarme/src/pagarme-list-payments.ts +158 -0
  263. package/packages/apps/pagarme/src/pagarme-webhook.ts +88 -0
  264. package/packages/apps/pagarme/src/pagarme.ts +12 -0
  265. package/packages/apps/pagarme/tsconfig.json +6 -0
  266. package/packages/apps/pagarme/webhook.js +1 -0
  267. package/packages/apps/pix/CHANGELOG.md +1 -0
  268. package/packages/apps/pix/README.md +1 -0
  269. package/packages/apps/pix/lib/functions-lib/get-certificate.d.ts +2 -0
  270. package/packages/apps/pix/lib/functions-lib/get-certificate.js +21 -0
  271. package/packages/apps/pix/lib/functions-lib/get-certificate.js.map +1 -0
  272. package/packages/apps/pix/lib/functions-lib/pix-auth/construtor.d.ts +15 -0
  273. package/packages/apps/pix/lib/functions-lib/pix-auth/construtor.js +65 -0
  274. package/packages/apps/pix/lib/functions-lib/pix-auth/construtor.js.map +1 -0
  275. package/packages/apps/pix/lib/functions-lib/pix-auth/create-axios.d.ts +6 -0
  276. package/packages/apps/pix/lib/functions-lib/pix-auth/create-axios.js +20 -0
  277. package/packages/apps/pix/lib/functions-lib/pix-auth/create-axios.js.map +1 -0
  278. package/packages/apps/pix/lib/functions-lib/pix-auth/oauth.d.ts +12 -0
  279. package/packages/apps/pix/lib/functions-lib/pix-auth/oauth.js +36 -0
  280. package/packages/apps/pix/lib/functions-lib/pix-auth/oauth.js.map +1 -0
  281. package/packages/apps/pix/lib/index.d.ts +1 -0
  282. package/packages/apps/pix/lib/index.js +3 -0
  283. package/packages/apps/pix/lib/index.js.map +1 -0
  284. package/packages/apps/pix/lib/pix-create-transaction.d.ts +73 -0
  285. package/packages/apps/pix/lib/pix-create-transaction.js +221 -0
  286. package/packages/apps/pix/lib/pix-create-transaction.js.map +1 -0
  287. package/packages/apps/pix/lib/pix-list-payments.d.ts +14 -0
  288. package/packages/apps/pix/lib/pix-list-payments.js +80 -0
  289. package/packages/apps/pix/lib/pix-list-payments.js.map +1 -0
  290. package/packages/apps/pix/lib/pix-webhook.d.ts +5 -0
  291. package/packages/apps/pix/lib/pix-webhook.js +146 -0
  292. package/packages/apps/pix/lib/pix-webhook.js.map +1 -0
  293. package/packages/apps/pix/lib/pix.d.ts +77 -0
  294. package/packages/apps/pix/lib/pix.js +13 -0
  295. package/packages/apps/pix/lib/pix.js.map +1 -0
  296. package/packages/apps/pix/package.json +36 -0
  297. package/packages/apps/pix/src/functions-lib/get-certificate.ts +24 -0
  298. package/packages/apps/pix/src/functions-lib/pix-auth/construtor.ts +87 -0
  299. package/packages/apps/pix/src/functions-lib/pix-auth/create-axios.ts +24 -0
  300. package/packages/apps/pix/src/functions-lib/pix-auth/oauth.ts +50 -0
  301. package/packages/apps/pix/src/index.ts +2 -0
  302. package/packages/apps/pix/src/pix-create-transaction.ts +261 -0
  303. package/packages/apps/pix/src/pix-list-payments.ts +93 -0
  304. package/packages/apps/pix/src/pix-webhook.ts +171 -0
  305. package/packages/apps/pix/src/pix.ts +13 -0
  306. package/packages/apps/pix/tsconfig.json +6 -0
  307. package/packages/apps/pix/webhook.js +1 -0
  308. package/packages/apps/tiny-erp/lib/event-to-tiny.js +1 -1
  309. package/packages/apps/tiny-erp/lib/event-to-tiny.js.map +1 -1
  310. package/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js +1 -1
  311. package/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js.map +1 -1
  312. package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js +1 -1
  313. package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js.map +1 -1
  314. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js +1 -2
  315. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js.map +1 -1
  316. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js +1 -1
  317. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js.map +1 -1
  318. package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js +1 -1
  319. package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js.map +1 -1
  320. package/packages/apps/tiny-erp/lib/tiny-erp.js +0 -1
  321. package/packages/apps/tiny-erp/lib/tiny-erp.js.map +1 -1
  322. package/packages/apps/tiny-erp/lib/tiny-webhook.js +1 -1
  323. package/packages/apps/tiny-erp/lib/tiny-webhook.js.map +1 -1
  324. package/packages/apps/tiny-erp/package.json +6 -6
  325. package/packages/apps/tiny-erp/src/event-to-tiny.ts +1 -1
  326. package/packages/apps/tiny-erp/src/integration/after-tiny-queue.ts +1 -1
  327. package/packages/apps/tiny-erp/src/integration/export-order-to-tiny.ts +1 -1
  328. package/packages/apps/tiny-erp/src/integration/import-order-from-tiny.ts +1 -2
  329. package/packages/apps/tiny-erp/src/integration/import-product-from-tiny.ts +1 -1
  330. package/packages/apps/tiny-erp/src/integration/parsers/product-from-tiny.ts +1 -1
  331. package/packages/apps/tiny-erp/src/tiny-erp.ts +0 -1
  332. package/packages/apps/tiny-erp/src/tiny-webhook.ts +1 -1
  333. package/packages/cli/bin/run.mjs +1 -1
  334. package/packages/cli/lib/build.js +14 -7
  335. package/packages/cli/lib/{index.js → cli.js} +2 -2
  336. package/packages/cli/lib/setup-gcloud.js +1 -1
  337. package/packages/cli/package.json +3 -3
  338. package/packages/cli/src/build.ts +17 -10
  339. package/packages/cli/src/{index.ts → cli.ts} +2 -2
  340. package/packages/cli/src/setup-gcloud.ts +1 -1
  341. package/packages/config/lib/config.d.ts +4 -2
  342. package/packages/config/lib/config.js +11 -4
  343. package/packages/config/lib/config.js.map +1 -1
  344. package/packages/config/lib/env.d.ts +1 -1
  345. package/packages/config/package.json +2 -2
  346. package/packages/config/src/config.ts +14 -5
  347. package/packages/emails/CHANGELOG.md +1 -0
  348. package/packages/emails/README.md +1 -0
  349. package/packages/emails/lib/index.d.ts +56 -0
  350. package/packages/emails/lib/index.js +83 -0
  351. package/packages/emails/lib/index.js.map +1 -0
  352. package/packages/emails/lib/parse-template-to-html.d.ts +3 -0
  353. package/packages/emails/lib/parse-template-to-html.js +16 -0
  354. package/packages/emails/lib/parse-template-to-html.js.map +1 -0
  355. package/packages/emails/lib/providers/sendgrid/index.d.ts +8 -0
  356. package/packages/emails/lib/providers/sendgrid/index.js +54 -0
  357. package/packages/emails/lib/providers/sendgrid/index.js.map +1 -0
  358. package/packages/emails/lib/providers/sendgrid/parse-to-data.d.ts +5 -0
  359. package/packages/emails/lib/providers/sendgrid/parse-to-data.js +55 -0
  360. package/packages/emails/lib/providers/sendgrid/parse-to-data.js.map +1 -0
  361. package/packages/emails/lib/providers/smtp/index.d.ts +13 -0
  362. package/packages/emails/lib/providers/smtp/index.js +79 -0
  363. package/packages/emails/lib/providers/smtp/index.js.map +1 -0
  364. package/packages/emails/package.json +35 -0
  365. package/packages/emails/src/index.ts +144 -0
  366. package/packages/emails/src/parse-template-to-html.ts +19 -0
  367. package/packages/emails/src/providers/sendgrid/index.ts +78 -0
  368. package/packages/emails/src/providers/sendgrid/parse-to-data.ts +92 -0
  369. package/packages/emails/src/providers/smtp/index.ts +115 -0
  370. package/packages/emails/tests/assets/customer.json +68 -0
  371. package/packages/emails/tests/assets/order.json +190 -0
  372. package/packages/emails/tests/assets/store.json +25 -0
  373. package/packages/emails/tests/ex.config-sendgrid.json +19 -0
  374. package/packages/emails/tests/ex.config-smtp.json +21 -0
  375. package/packages/emails/tests/sendgrid.test.ts +156 -0
  376. package/packages/emails/tests/smtp.test.ts +147 -0
  377. package/packages/emails/tests/templates/new-order.ejs +37 -0
  378. package/packages/emails/tsconfig.json +6 -0
  379. package/packages/emails/types/index.d.ts +84 -0
  380. package/packages/emails/types/sendgrid.d.ts +28 -0
  381. package/packages/events/lib/firebase.js +8 -0
  382. package/packages/events/lib/firebase.js.map +1 -1
  383. package/packages/events/package.json +8 -4
  384. package/packages/events/src/firebase.ts +8 -0
  385. package/packages/firebase/lib/config.d.ts +15 -1
  386. package/packages/firebase/lib/config.js +25 -3
  387. package/packages/firebase/lib/config.js.map +1 -1
  388. package/packages/firebase/lib/handlers/check-store-events.js +1 -2
  389. package/packages/firebase/lib/handlers/check-store-events.js.map +1 -1
  390. package/packages/firebase/lib/helpers/pubsub.d.ts +2 -2
  391. package/packages/firebase/lib/helpers/update-app-data.js +1 -1
  392. package/packages/firebase/lib/helpers/update-app-data.js.map +1 -1
  393. package/packages/firebase/lib/init.js +0 -2
  394. package/packages/firebase/lib/init.js.map +1 -1
  395. package/packages/firebase/package.json +6 -6
  396. package/packages/firebase/src/config.ts +28 -4
  397. package/packages/firebase/src/handlers/check-store-events.ts +1 -2
  398. package/packages/firebase/src/helpers/update-app-data.ts +1 -1
  399. package/packages/firebase/src/init.ts +0 -2
  400. package/packages/i18n/package.json +1 -1
  401. package/packages/modules/lib/firebase/call-app-module.js +37 -1
  402. package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
  403. package/packages/modules/lib/firebase/checkout.js +9 -7
  404. package/packages/modules/lib/firebase/checkout.js.map +1 -1
  405. package/packages/modules/lib/firebase/functions-checkout/fix-items.js +80 -18
  406. package/packages/modules/lib/firebase/functions-checkout/fix-items.js.map +1 -1
  407. package/packages/modules/lib/firebase/functions-checkout/get-custumerId.js +1 -1
  408. package/packages/modules/lib/firebase/functions-checkout/get-custumerId.js.map +1 -1
  409. package/packages/modules/lib/firebase/functions-checkout/handle-order-transaction.js +16 -16
  410. package/packages/modules/lib/firebase/functions-checkout/handle-order-transaction.js.map +1 -1
  411. package/packages/modules/lib/firebase/functions-checkout/new-order.js +8 -8
  412. package/packages/modules/lib/firebase/functions-checkout/new-order.js.map +1 -1
  413. package/packages/modules/lib/firebase/functions-checkout/request-to-module.js +23 -6
  414. package/packages/modules/lib/firebase/functions-checkout/request-to-module.js.map +1 -1
  415. package/packages/modules/lib/firebase/functions-checkout/utils.js +1 -2
  416. package/packages/modules/lib/firebase/functions-checkout/utils.js.map +1 -1
  417. package/packages/modules/lib/firebase/handle-module.js +1 -1
  418. package/packages/modules/lib/firebase/handle-module.js.map +1 -1
  419. package/packages/modules/lib/firebase.js +0 -1
  420. package/packages/modules/lib/firebase.js.map +1 -1
  421. package/packages/modules/package.json +10 -7
  422. package/packages/modules/schemas/apply_discount.cjs +47 -0
  423. package/packages/modules/src/firebase/call-app-module.ts +37 -1
  424. package/packages/modules/src/firebase/checkout.ts +13 -10
  425. package/packages/modules/src/firebase/functions-checkout/fix-items.ts +88 -20
  426. package/packages/modules/src/firebase/functions-checkout/get-custumerId.ts +1 -1
  427. package/packages/modules/src/firebase/functions-checkout/handle-order-transaction.ts +24 -23
  428. package/packages/modules/src/firebase/functions-checkout/new-order.ts +15 -14
  429. package/packages/modules/src/firebase/functions-checkout/request-to-module.ts +30 -8
  430. package/packages/modules/src/firebase/functions-checkout/utils.ts +3 -5
  431. package/packages/modules/src/firebase/handle-module.ts +1 -1
  432. package/packages/modules/src/firebase.ts +0 -1
  433. package/packages/modules/src/types/index.d.ts +7 -6
  434. package/packages/passport/lib/firebase/authenticate-customer.js +1 -1
  435. package/packages/passport/lib/firebase/authenticate-customer.js.map +1 -1
  436. package/packages/passport/lib/firebase/serve-passport-api.js +1 -1
  437. package/packages/passport/lib/firebase/serve-passport-api.js.map +1 -1
  438. package/packages/passport/lib/firebase.js +0 -1
  439. package/packages/passport/lib/firebase.js.map +1 -1
  440. package/packages/passport/package.json +4 -4
  441. package/packages/passport/src/firebase/authenticate-customer.ts +2 -2
  442. package/packages/passport/src/firebase/serve-passport-api.ts +1 -1
  443. package/packages/passport/src/firebase.ts +0 -1
  444. package/packages/ssr/package.json +9 -9
  445. package/packages/storefront/.eslintrc.cjs +4 -1
  446. package/packages/storefront/astro.config.mjs +15 -8
  447. package/packages/storefront/dist/client/HeaderButtons.bc4a5c97.js +1 -0
  448. package/packages/storefront/dist/client/assets/_...slug_.acb18581.css +1 -0
  449. package/packages/storefront/dist/client/chunks/HeaderButtons.861af799.js +1 -0
  450. package/packages/storefront/dist/client/chunks/{LoginForm.e02dee3d.js → LoginForm.7e9c481c.js} +95 -95
  451. package/packages/storefront/dist/client/chunks/preload-helper.1de719f8.js +1 -0
  452. package/packages/storefront/dist/client/chunks/runtime-dom.esm-bundler.1b578f5a.js +1 -0
  453. package/packages/storefront/dist/client/client.75c18572.js +1 -0
  454. package/packages/storefront/dist/client/{hoisted.3f1cf839.js → hoisted.4f689abe.js} +1 -1
  455. package/packages/storefront/dist/client/manifest.webmanifest +1 -1
  456. package/packages/storefront/dist/client/page.5a6f3db5.js +1 -0
  457. package/packages/storefront/dist/client/sw.js +1 -1
  458. package/packages/storefront/dist/server/{avif → chunks/avif}/avif_node_dec.wasm +0 -0
  459. package/packages/storefront/dist/server/{avif → chunks/avif}/avif_node_enc.wasm +0 -0
  460. package/packages/storefront/dist/server/chunks/image-pool.f66f99fb.mjs +10791 -0
  461. package/packages/storefront/dist/server/{mozjpeg → chunks/mozjpeg}/mozjpeg_node_dec.wasm +0 -0
  462. package/packages/storefront/dist/server/{mozjpeg → chunks/mozjpeg}/mozjpeg_node_enc.wasm +0 -0
  463. package/packages/storefront/dist/server/{png → chunks/png}/squoosh_oxipng_bg.wasm +0 -0
  464. package/packages/storefront/dist/server/{png → chunks/png}/squoosh_png_bg.wasm +0 -0
  465. package/packages/storefront/dist/server/{resize → chunks/resize}/squoosh_resize_bg.wasm +0 -0
  466. package/packages/storefront/dist/server/{rotate → chunks/rotate}/rotate.wasm +0 -0
  467. package/packages/storefront/dist/server/{webp → chunks/webp}/webp_node_dec.wasm +0 -0
  468. package/packages/storefront/dist/server/{webp → chunks/webp}/webp_node_enc.wasm +0 -0
  469. package/packages/storefront/dist/server/entry.mjs +10835 -14275
  470. package/packages/storefront/dist/server/manifest.webmanifest +1 -1
  471. package/packages/storefront/package.json +23 -22
  472. package/packages/storefront/src/lib/assets/base.css +110 -0
  473. package/packages/storefront/src/lib/assets/dark.css +92 -0
  474. package/packages/storefront/src/lib/assets/forms.css +0 -0
  475. package/packages/storefront/src/lib/assets/pico.css +48 -154
  476. package/packages/storefront/src/lib/assets/preflight.css +362 -0
  477. package/packages/storefront/src/lib/assets/typography.css +15 -0
  478. package/packages/storefront/src/lib/components/ADrawer.vue +11 -11
  479. package/packages/storefront/src/lib/components/LoginDrawer.vue +1 -1
  480. package/packages/storefront/src/lib/components/LoginForm.vue +4 -13
  481. package/packages/storefront/src/lib/layouts/BaseBody.astro +2 -1
  482. package/packages/storefront/src/lib/layouts/BaseHead.astro +13 -3
  483. package/packages/storefront/src/lib/layouts/BaseStateJson.astro +3 -12
  484. package/packages/storefront/src/lib/ssr/image.ts +11 -6
  485. package/packages/storefront/src/lib/ssr-context.ts +3 -3
  486. package/packages/storefront/src/lib/state/customer-session.ts +29 -37
  487. package/packages/storefront/src/lib/state/shopping-cart/add-cart-item.ts +69 -0
  488. package/packages/storefront/src/lib/state/shopping-cart/parse-product.ts +36 -0
  489. package/packages/storefront/src/lib/state/shopping-cart.ts +83 -0
  490. package/packages/storefront/src/lib/state/use-storage.ts +19 -0
  491. package/packages/storefront/src/lib/types/cms-settings.d.ts +3 -1
  492. package/packages/storefront/storefront.cms.cjs +41 -0
  493. package/packages/storefront/storefront.cms.mjs +7 -2
  494. package/packages/storefront/storefront.config.mjs +1 -0
  495. package/packages/storefront/tailwind.config.cjs +143 -109
  496. package/packages/storefront/uno.config.cjs +126 -0
  497. package/packages/types/index.ts +21 -0
  498. package/packages/types/modules/apply_discount:response.d.ts +32 -0
  499. package/packages/types/package.json +1 -1
  500. package/packages/storefront/dist/client/HeaderButtons.75084c8f.js +0 -1
  501. package/packages/storefront/dist/client/assets/_...slug_.5d8e6131.css +0 -4
  502. package/packages/storefront/dist/client/chunks/HeaderButtons.d1f8a21f.js +0 -1
  503. package/packages/storefront/dist/client/chunks/preload-helper.f15ab524.js +0 -1
  504. package/packages/storefront/dist/client/chunks/runtime-dom.esm-bundler.9119f0ff.js +0 -1
  505. package/packages/storefront/dist/client/client.671d7334.js +0 -1
  506. package/packages/storefront/dist/client/page.b906f867.js +0 -1
  507. package/packages/storefront/uno.config.ts +0 -167
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ip-create-transaction.js","sourceRoot":"","sources":["../src/ip-create-transaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { AppModuleBody } from '@cloudcommerce/types';
2
+ import type { ListPaymentsResponse } from '@cloudcommerce/types/modules/list_payments:response';
3
+ declare const _default: (data: AppModuleBody) => Promise<ListPaymentsResponse | {
4
+ status: number;
5
+ error: string;
6
+ message: string;
7
+ }>;
8
+ export default _default;
@@ -0,0 +1,130 @@
1
+ import logger from 'firebase-functions/logger';
2
+ import IPAxios from './functions-lib/ip-auth/create-access.js';
3
+ import addInstallments from './functions-lib/add-installments.js';
4
+ import { readFile, responseError, isSandbox } from './functions-lib/utils.js';
5
+
6
+ export default async (data) => {
7
+ const { application } = data;
8
+ const { params } = data;
9
+ // https://apx-mods.e-com.plus/api/v1/list_payments/schema.json?store_id=100
10
+ const amount = params.amount || { total: undefined, discount: undefined };
11
+ // const initialTotalAmount = amount.total;
12
+ const configApp = {
13
+ ...application.data,
14
+ ...application.hidden_data,
15
+ };
16
+ const disableLinkPayment = configApp.payment_link ? configApp.payment_link.disable : false;
17
+ if (!configApp.infinitepay_user && !disableLinkPayment) {
18
+ return responseError(409, 'NO_INFINITE_USER', 'Username da InfinitePay não configurado');
19
+ }
20
+ if ((!configApp.client_id || !configApp.client_secret)) {
21
+ return responseError(409, 'NO_INFINITE_KEY', 'Client ID/Client Secrect InfinitePay não configurado');
22
+ }
23
+ if (configApp.pix && configApp.pix.enable && !configApp.pix.key_pix) {
24
+ return responseError(409, 'NO_INFINITE_KEY_PIX', 'Chave Pix InfinitePay não configurada');
25
+ }
26
+ logger.log('>(App: InfinitePay) List Payment', `${isSandbox ? ' Sandbox' : ''}`);
27
+ let tokenJWT;
28
+ try {
29
+ const ipAxios = new IPAxios({
30
+ clientId: configApp.client_id,
31
+ clientSecret: configApp.client_secret,
32
+ typeScope: 'card',
33
+ isSandbox,
34
+ });
35
+ await ipAxios.preparing;
36
+ tokenJWT = ipAxios.cardTokenization;
37
+ } catch (err) {
38
+ logger.error('>(App: InfinitePay) Error =>', err);
39
+ return responseError(409, 'NO_INFINITE_AUTH', 'Error getting authentication');
40
+ }
41
+ // https://apx-mods.e-com.plus/api/v1/list_payments/response_schema.json?store_id=100
42
+ const response = {
43
+ payment_gateways: [],
44
+ };
45
+ const listPaymentMethods = ['credit_card', 'account_deposit'];
46
+ const intermediator = {
47
+ name: 'InfinitePay',
48
+ link: 'https://infinitepay.io/',
49
+ code: 'infinitepay',
50
+ };
51
+ // setup payment gateway object
52
+ listPaymentMethods.forEach((paymentMethod) => {
53
+ const isPix = paymentMethod === 'account_deposit';
54
+ const isCreditCard = paymentMethod === 'credit_card';
55
+ // const isLinkPayment = paymentMethod === 'payment_link';
56
+ const methodConfig = isPix ? configApp.pix : (configApp[paymentMethod] || {});
57
+ const minAmount = methodConfig.min_amount || 0;
58
+ const methodEnable = isPix ? methodConfig.enable : !methodConfig.disable;
59
+ // Workaround for showcase
60
+ const validateAmount = amount.total ? (amount.total >= minAmount) : true;
61
+ if (methodEnable && validateAmount) {
62
+ const label = methodConfig.label || (isCreditCard ? 'Cartão de crédito' : 'Pix');
63
+ const gateway = {
64
+ label,
65
+ icon: methodConfig.icon,
66
+ text: methodConfig.text,
67
+ payment_method: {
68
+ code: paymentMethod,
69
+ name: `${label} - ${intermediator.name}`,
70
+ },
71
+ intermediator,
72
+ };
73
+ const { installments, discount } = configApp;
74
+ if (installments && isCreditCard) {
75
+ // list all installment options and default one
76
+ addInstallments(amount.total, installments, gateway, response);
77
+ }
78
+ if (isPix && !gateway.icon) {
79
+ gateway.icon = 'https://us-central1-ecom-pix.cloudfunctions.net/app/pix.png';
80
+ }
81
+ if (isCreditCard) {
82
+ if (!gateway.icon) {
83
+ gateway.icon = 'https://us-central1-ecom-infinitepay.cloudfunctions.net/app/infinitepay.png';
84
+ // gateway.icon = `${baseUri}/infinitepay.png`;
85
+ }
86
+ //
87
+ gateway.js_client = {
88
+ script_uri: `https://ipayjs.infinitepay.io/${isSandbox
89
+ ? 'development' : 'production'}/ipay-latest.min.js`,
90
+ onload_expression: `window._infiniteJwtTokenCard="${tokenJWT}";
91
+ window._infiniteCardSandbox="${isSandbox}";
92
+ ${readFile('../../assets/onload-expression.min.js')}`,
93
+ cc_hash: {
94
+ function: '_infiniteHashCard',
95
+ is_promise: true,
96
+ },
97
+ };
98
+ }
99
+ if (isPix && discount && discount.value > 0
100
+ && (!amount.discount || discount.cumulative_discount !== false)) {
101
+ gateway.discount = {
102
+ apply_at: discount.apply_at,
103
+ type: discount.type,
104
+ value: discount.value,
105
+ };
106
+ if (discount.apply_at !== 'freight') {
107
+ // set as default discount option
108
+ response.discount_option = {
109
+ apply_at: discount.apply_at,
110
+ type: discount.type,
111
+ value: discount.value,
112
+ label: configApp.discount_option_label || `${label}`,
113
+ };
114
+ }
115
+ if (discount.min_amount) {
116
+ // check amount value to apply discount
117
+ if (amount.total && amount.total < discount.min_amount) {
118
+ delete gateway.discount;
119
+ }
120
+ if (response.discount_option) {
121
+ response.discount_option.min_amount = discount.min_amount;
122
+ }
123
+ }
124
+ }
125
+ response.payment_gateways.push(gateway);
126
+ }
127
+ });
128
+ return response;
129
+ };
130
+ // # sourceMappingURL=ip-list-payments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ip-list-payments.js","sourceRoot":"","sources":["../src/ip-list-payments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import '@cloudcommerce/firebase/lib/init';
2
+ import * as functions from 'firebase-functions/v1';
3
+ export declare const infinitepay: {
4
+ webhook: functions.HttpsFunction;
5
+ };
@@ -0,0 +1,152 @@
1
+ import '@cloudcommerce/firebase/lib/init';
2
+ import api from '@cloudcommerce/api';
3
+ import logger from 'firebase-functions/logger';
4
+ import { getFirestore } from 'firebase-admin/firestore';
5
+ import * as functions from 'firebase-functions/v1';
6
+ import config from '@cloudcommerce/firebase/lib/config';
7
+ import cryptoJS from 'crypto-js';
8
+
9
+ const handleError = (error, res, status) => {
10
+ const { response } = error;
11
+ if (response) {
12
+ status = response.status;
13
+ const err = {
14
+ message: `InfinitePay callback PIX error ${status}`,
15
+ url: '',
16
+ status: 0,
17
+ response: '',
18
+ };
19
+ err.url = error.config && error.config.url;
20
+ err.status = status || 500;
21
+ err.response = JSON.stringify(response.data);
22
+ logger.error(err);
23
+ }
24
+ return res.send({
25
+ status: status || 500,
26
+ message: '#InfinitePay callback PIX error',
27
+ });
28
+ };
29
+ const getTransactionPix = (collectionTransactions, transactionId) => {
30
+ return new Promise((resolve, reject) => {
31
+ const transaction = collectionTransactions.doc(transactionId);
32
+ transaction.get()
33
+ .then((documentSnapshot) => {
34
+ if (documentSnapshot.exists) {
35
+ const documentData = documentSnapshot.data();
36
+ const { orderId } = documentData;
37
+ const { secret } = documentData;
38
+ const { transactionReference } = documentData;
39
+ if (orderId && secret && transactionReference) {
40
+ resolve({
41
+ orderId, secret, transactionReference,
42
+ });
43
+ }
44
+ reject(new Error('Transaction properties not found'));
45
+ }
46
+ reject(new Error('Transaction not found'));
47
+ })
48
+ .catch((e) => {
49
+ reject(e);
50
+ });
51
+ });
52
+ };
53
+ const handler = async (req, res) => {
54
+ // https://gist.github.com/luisbebop/ca87e04da04bcf662f732b1b6848d6ca#integration-
55
+ // const transactionId = req.body && req.body.transaction_id;
56
+ const hasPix = req.query && req.query.pix;
57
+ const firestoreColl = 'infinitepayTransactionsPix';
58
+ logger.log(`>> >(App: Infinite) Webhook ${hasPix ? 'pix' : ''} <`);
59
+ if (hasPix && hasPix === 'confirm') {
60
+ const collectionTransactions = getFirestore().collection(firestoreColl);
61
+ // console.log('>Has Pix: ', hasPix, ' <');
62
+ const pixId = req.body.transaction_identification;
63
+ if (pixId) {
64
+ let orderId;
65
+ let secret;
66
+ let transactionReference;
67
+ let order;
68
+ try {
69
+ const pixInfo = await getTransactionPix(collectionTransactions, pixId);
70
+ orderId = pixInfo.orderId;
71
+ secret = pixInfo.secret;
72
+ transactionReference = pixInfo.transactionReference;
73
+ // console.log('>PIX o: ', orderId, ' code: ', transactionReference, ' <');
74
+ if (secret && orderId && transactionReference) {
75
+ // https://www.infinitepay.io/docs#validacao-de-callback-do-pix-pago
76
+ const signature = req.headers['x-callback-signature'];
77
+ const generatedSignature = cryptoJS.HmacSHA256(JSON.stringify(req.body), secret)
78
+ .toString();
79
+ if (generatedSignature === signature) {
80
+ // get E-Com Plus order
81
+ order = (await api.get(`orders/${orderId}`)).data;
82
+ // add new transaction status to payment history
83
+ const transaction = order.transactions?.find(({ intermediator }) => {
84
+ return intermediator
85
+ && intermediator.transaction_reference === `${transactionReference}`;
86
+ });
87
+ // console.log('>>Transaction ', JSON.stringify(transaction), ' <<')
88
+ const bodyPaymentHistory = {
89
+ date_time: new Date().toISOString(),
90
+ status: 'paid',
91
+ flags: ['infinitepay'],
92
+ }; // TODO: incompatible type=> amount and status;
93
+ if (transaction) {
94
+ bodyPaymentHistory.transaction_id = transaction._id;
95
+ await api.post(`orders/${orderId}/payments_history`, bodyPaymentHistory);
96
+ res.sendStatus(200); // response SUCCESS
97
+ let { notes } = transaction;
98
+ notes = notes && notes.replace('display:block', 'display:none'); // disable QR Code
99
+ notes = `${notes} # PIX Aprovado`;
100
+ transaction.notes = notes;
101
+ await api.patch(`orders/${order._id}/transactions/${transaction._id}`, { notes });
102
+ const updatedAt = new Date().toISOString();
103
+ collectionTransactions.doc(pixId)
104
+ .set({
105
+ status: 'paid',
106
+ updatedAt,
107
+ }, { merge: true })
108
+ .catch(logger.error);
109
+ return null;
110
+ }
111
+ return res.send({
112
+ status: 404,
113
+ message: `InfinitePay transaction not found in order #${orderId}`,
114
+ });
115
+ }
116
+ // logger.log('>Signature: ', signature, ' Gerate:', generatedSignature);
117
+ return res.send({
118
+ status: 403,
119
+ message: 'InfinitePay callback PIX error, signature invalid ',
120
+ });
121
+ }
122
+ return res.send({
123
+ status: 404,
124
+ message: `Transaction error #${pixId}, property not found invalid store`,
125
+ });
126
+ } catch (err) {
127
+ logger.error('>(App: Infinite) Error=>', err);
128
+ return handleError(err, res);
129
+ }
130
+ } else {
131
+ return res.send({
132
+ status: 404,
133
+ message: `Transaction error #${pixId}, property not found invalid store`,
134
+ });
135
+ }
136
+ }
137
+ return res.sendStatus(403);
138
+ };
139
+
140
+ export const infinitepay = {
141
+ webhook: functions
142
+ .region(config.get().httpsFunctionOptions.region)
143
+ .https.onRequest(async (req, res) => {
144
+ const { method } = req;
145
+ if (method === 'POST') {
146
+ handler(req, res);
147
+ } else {
148
+ res.sendStatus(405);
149
+ }
150
+ }),
151
+ };
152
+ // # sourceMappingURL=ip-webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ip-webhook.js","sourceRoot":"","sources":["../src/ip-webhook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "@cloudcommerce/app-infinitepay",
3
+ "type": "module",
4
+ "version": "0.0.127",
5
+ "description": "E-Com Plus Cloud Commerce app to integrate InfinitePay",
6
+ "main": "lib/infinitepay.js",
7
+ "exports": {
8
+ ".": "./lib/infinitepay.js",
9
+ "./webhook": "./lib/ip-webhook.js"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/ecomplus/cloud-commerce.git",
14
+ "directory": "packages/apps/infinitepay"
15
+ },
16
+ "author": "E-Com Club Softwares para E-commerce <ti@e-com.club>",
17
+ "license": "Apache 2.0 with Commons Clause",
18
+ "bugs": {
19
+ "url": "https://github.com/ecomplus/cloud-commerce/issues"
20
+ },
21
+ "homepage": "https://github.com/ecomplus/cloud-commerce/tree/main/packages/apps/infinitepay#readme",
22
+ "scripts": {
23
+ "build": "sh scripts/build.sh"
24
+ },
25
+ "dependencies": {
26
+ "@cloudcommerce/api": "workspace:*",
27
+ "@cloudcommerce/firebase": "workspace:*",
28
+ "axios": "^1.1.3",
29
+ "crypto-js": "^4.1.1",
30
+ "firebase-admin": "^11.3.0",
31
+ "firebase-functions": "^4.1.0"
32
+ },
33
+ "devDependencies": {
34
+ "@cloudcommerce/types": "workspace:*",
35
+ "@firebase/app-types": "^0.8.1",
36
+ "@types/crypto-js": "^4.1.1"
37
+ }
38
+ }
@@ -0,0 +1,5 @@
1
+ #!/bin/bash
2
+
3
+ node ../../../scripts/assets-minification.mjs
4
+ sh ../../../scripts/build-lib.sh
5
+
@@ -0,0 +1,78 @@
1
+ import type { ListPaymentsResponse } from '@cloudcommerce/types/modules/list_payments:response';
2
+
3
+ const standardMonthlyInterest = [
4
+ 4.20,
5
+ 1.3390,
6
+ 1.5041,
7
+ 1.5992,
8
+ 1.6630,
9
+ 1.7057,
10
+ 2.3454,
11
+ 2.3053,
12
+ 2.2755,
13
+ 2.2490,
14
+ 2.2306,
15
+ 2.2111,
16
+ ];
17
+
18
+ type Gateway = ListPaymentsResponse['payment_gateways'][number]
19
+
20
+ const addInstallments = (
21
+ total: number | undefined,
22
+ installments: { [key: string]: any },
23
+ gateway: Gateway,
24
+ response?: ListPaymentsResponse,
25
+ ) => {
26
+ const maxInterestFree = installments.max_interest_free;
27
+ const minInstallment = installments.min_installment || 5;
28
+ const qtyPosssibleInstallment = total ? Math.floor((total / minInstallment)) : 12;
29
+ const maxInstallments = installments.max_number
30
+ || (qtyPosssibleInstallment < 12 ? qtyPosssibleInstallment : 12);
31
+
32
+ const monthlyInterest = installments.monthly_interest || 0;
33
+ let monthlyInstallmentInterest = 0;
34
+
35
+ if (maxInterestFree <= 1) {
36
+ const IPInterestMonthly = standardMonthlyInterest[maxInstallments - 1];
37
+
38
+ monthlyInstallmentInterest = (monthlyInterest > IPInterestMonthly ? monthlyInterest
39
+ : IPInterestMonthly);
40
+ }
41
+
42
+ if (maxInstallments > 1) {
43
+ if (response) {
44
+ response.installments_option = {
45
+ min_installment: minInstallment,
46
+ max_number: maxInterestFree > 1 ? maxInterestFree : maxInstallments,
47
+ monthly_interest: monthlyInstallmentInterest,
48
+ };
49
+ }
50
+
51
+ // list installment options
52
+ gateway.installment_options = [];
53
+ if (total) {
54
+ for (let number = 2; number <= maxInstallments; number++) {
55
+ const tax = !(maxInterestFree >= number);
56
+ let interest;
57
+ if (tax) {
58
+ const IPMonthInterestRate = standardMonthlyInterest[number - 1];
59
+ interest = (monthlyInterest > IPMonthInterestRate ? monthlyInterest : IPMonthInterestRate)
60
+ / 100;
61
+ }
62
+ const value = !tax ? (total / number)
63
+ : total * (interest / (1 - (1 + interest) ** -number));
64
+
65
+ if (value && value >= 1) {
66
+ gateway.installment_options.push({
67
+ number,
68
+ value,
69
+ tax,
70
+ });
71
+ }
72
+ }
73
+ }
74
+ }
75
+ return { response, gateway };
76
+ };
77
+
78
+ export default addInstallments;
@@ -0,0 +1,85 @@
1
+ import type { AxiosInstance } from 'axios';
2
+ import { getFirestore } from 'firebase-admin/firestore';
3
+ import logger from 'firebase-functions/logger';
4
+ import auth from './oauth';
5
+ import Axios from './create-axios';
6
+
7
+ const firestoreColl = 'infinitepayTokens';
8
+
9
+ type Option = {
10
+ clientId: string;
11
+ clientSecret: string;
12
+ typeScope: string,
13
+ isSandbox?: boolean
14
+ }
15
+
16
+ export default class IPAxios {
17
+ preparing: Promise<unknown>;
18
+ axios: AxiosInstance | undefined;
19
+ cardTokenization: string | undefined;
20
+
21
+ constructor(options: Option) {
22
+ const {
23
+ clientId,
24
+ clientSecret,
25
+ typeScope,
26
+ isSandbox,
27
+ } = options;
28
+
29
+ const self = this;
30
+
31
+ let documentRef;
32
+ if (firestoreColl) {
33
+ documentRef = getFirestore()
34
+ .doc(`${firestoreColl}/${typeScope}`);
35
+ }
36
+
37
+ this.preparing = new Promise((resolve, reject) => {
38
+ // typeScope === card, if scope card_tokenization
39
+ // typeScope === transaction, if scope for transaction
40
+
41
+ let scope = 'transactions';
42
+ if (typeScope === 'card') {
43
+ scope = 'card_tokenization';
44
+ }
45
+
46
+ const authenticate = (accessToken: string) => {
47
+ if (scope === 'transactions') {
48
+ self.axios = Axios(accessToken, isSandbox);
49
+ } else {
50
+ self.cardTokenization = accessToken;
51
+ }
52
+ resolve(self);
53
+ };
54
+
55
+ const handleAuth = () => {
56
+ logger.log('>(App: InfinitePay) Auth ');
57
+
58
+ auth(clientId, clientSecret, scope, isSandbox)
59
+ .then((resp: any) => {
60
+ authenticate(resp.access_token);
61
+ if (documentRef) {
62
+ documentRef.set({ ...resp, isSandbox }).catch(logger.error);
63
+ }
64
+ })
65
+ .catch(reject);
66
+ };
67
+
68
+ if (documentRef) {
69
+ documentRef.get()
70
+ .then((documentSnapshot) => {
71
+ const data = documentSnapshot.data() || null;
72
+ if (documentSnapshot.exists && data && data.expires_in
73
+ && new Date(data.expires_in).getTime() > Date.now()) {
74
+ authenticate(data.access_token);
75
+ } else {
76
+ handleAuth();
77
+ }
78
+ })
79
+ .catch(logger.error);
80
+ } else {
81
+ handleAuth();
82
+ }
83
+ });
84
+ }
85
+ }
@@ -0,0 +1,20 @@
1
+ import axios from 'axios';
2
+
3
+ export default (accessToken: null | string, isSandbox?: boolean) => {
4
+ // https://github.com/ecomplus/app-infinitepay/issues/77#issuecomment-1189795488
5
+
6
+ const headers = {
7
+ 'Content-Type': 'application/json',
8
+ };
9
+ if (accessToken) {
10
+ // logger.log('> token ', accessToken);
11
+ Object.assign(headers, {
12
+ Authorization: `Bearer ${accessToken}`,
13
+ });
14
+ }
15
+
16
+ return axios.create({
17
+ baseURL: `https://api${isSandbox ? '-staging' : ''}.infinitepay.io`,
18
+ headers,
19
+ });
20
+ };
@@ -0,0 +1,30 @@
1
+ import logger from 'firebase-functions/logger';
2
+ import Axios from './create-axios';
3
+
4
+ export default (
5
+ clienId: string,
6
+ clientSecret: string,
7
+ scope: string,
8
+ isSandbox?: boolean,
9
+ ) => new Promise((resolve, reject) => {
10
+ // https://github.com/ecomplus/app-infinitepay/issues/77#issuecomment-1189795488
11
+ const axios = Axios(null, isSandbox);
12
+
13
+ const request = (isRetry?: boolean) => {
14
+ logger.log(`>>(App: InfinitePay) Auth ${scope} ${isSandbox ? 'Sandbox' : ''}`);
15
+ axios.post('/v2/oauth/token', {
16
+ grant_type: 'client_credentials',
17
+ client_id: clienId,
18
+ client_secret: clientSecret,
19
+ scope,
20
+ })
21
+ .then(({ data }) => resolve(data))
22
+ .catch((err: any) => {
23
+ if (!isRetry && err.response && err.response.status >= 429) {
24
+ setTimeout(() => request(true), 7000);
25
+ }
26
+ reject(err);
27
+ });
28
+ };
29
+ request();
30
+ });
@@ -0,0 +1,23 @@
1
+ import * as fs from 'fs';
2
+ import url from 'url';
3
+ import { join as joinPath } from 'path';
4
+
5
+ const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
6
+
7
+ const readFile = (path: string) => fs.readFileSync(joinPath(__dirname, path), 'utf8');
8
+
9
+ const responseError = (status: number | null, error: string, message: string) => {
10
+ return {
11
+ status: status || 409,
12
+ error,
13
+ message: `${message} (shopkeeper must configure the application)`,
14
+ };
15
+ };
16
+
17
+ const isSandbox = false; // TODO: false
18
+
19
+ export {
20
+ readFile,
21
+ responseError,
22
+ isSandbox,
23
+ };
@@ -0,0 +1,2 @@
1
+ // eslint-disable-next-line import/prefer-default-export
2
+ export * from './infinitepay';
@@ -0,0 +1,13 @@
1
+ import type { AppModuleBody } from '@cloudcommerce/types';
2
+ import '@cloudcommerce/firebase/lib/init';
3
+ import { getFirestore } from 'firebase-admin/firestore';
4
+ import handleListPayments from './ip-list-payments';
5
+ import handleCreateTransaction from './ip-create-transaction';
6
+
7
+ export const listPayments = async (modBody: AppModuleBody) => {
8
+ return handleListPayments(modBody);
9
+ };
10
+
11
+ export const createTransaction = async (modBody: AppModuleBody) => {
12
+ return handleCreateTransaction(modBody, getFirestore());
13
+ };