cloudcommerce 0.0.126 → 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 (313) hide show
  1. package/.vscode/settings.json +3 -0
  2. package/CHANGELOG.md +43 -0
  3. package/action.yml +50 -10
  4. package/ecomplus-stores/monocard/README.md +0 -15
  5. package/ecomplus-stores/monocard/README.pt-BR.md +0 -15
  6. package/ecomplus-stores/monocard/functions/core/package.json +1 -1
  7. package/ecomplus-stores/monocard/functions/events/package.json +2 -2
  8. package/ecomplus-stores/monocard/functions/modules/package.json +2 -2
  9. package/ecomplus-stores/monocard/functions/passport/package.json +2 -2
  10. package/ecomplus-stores/monocard/functions/ssr/package.json +8 -8
  11. package/ecomplus-stores/monocard/functions/ssr/tailwind.config.cjs +1 -3
  12. package/ecomplus-stores/monocard/functions/ssr/{uno.config.ts → uno.config.cjs} +1 -1
  13. package/ecomplus-stores/monocard/package.json +1 -1
  14. package/ecomplus-stores/tia-sonia/README.md +0 -15
  15. package/ecomplus-stores/tia-sonia/README.pt-BR.md +0 -15
  16. package/ecomplus-stores/tia-sonia/functions/core/package.json +1 -1
  17. package/ecomplus-stores/tia-sonia/functions/events/package.json +2 -2
  18. package/ecomplus-stores/tia-sonia/functions/modules/package.json +2 -2
  19. package/ecomplus-stores/tia-sonia/functions/passport/package.json +2 -2
  20. package/ecomplus-stores/tia-sonia/functions/ssr/package.json +7 -7
  21. package/ecomplus-stores/tia-sonia/functions/ssr/tailwind.config.cjs +1 -3
  22. package/ecomplus-stores/tia-sonia/functions/ssr/{uno.config.ts → uno.config.cjs} +1 -1
  23. package/ecomplus-stores/tia-sonia/package.json +1 -1
  24. package/package.json +14 -14
  25. package/packages/api/lib/api.d.ts +4 -4
  26. package/packages/api/lib/types.d.ts +41 -41
  27. package/packages/api/package.json +1 -1
  28. package/packages/apps/correios/package.json +2 -2
  29. package/packages/apps/custom-shipping/package.json +1 -1
  30. package/packages/apps/discounts/lib-mjs/apply-discount.mjs +94 -20
  31. package/packages/apps/discounts/package.json +2 -2
  32. package/packages/apps/emails/CHANGELOG.md +1 -0
  33. package/packages/apps/emails/README.md +1 -0
  34. package/packages/apps/emails/lib/events-to-app-emails.js +19 -0
  35. package/packages/apps/emails/lib/events-to-app-emails.js.map +1 -0
  36. package/packages/apps/emails/lib/firebase.js +19 -0
  37. package/packages/apps/emails/lib/firebase.js.map +1 -0
  38. package/packages/apps/emails/lib/functios-lib/abandoned-carts.js +86 -0
  39. package/packages/apps/emails/lib/functios-lib/abandoned-carts.js.map +1 -0
  40. package/packages/apps/emails/lib/functios-lib/handle-orders.js +174 -0
  41. package/packages/apps/emails/lib/functios-lib/handle-orders.js.map +1 -0
  42. package/packages/apps/emails/lib/functios-lib/trigger-actions.js +178 -0
  43. package/packages/apps/emails/lib/functios-lib/trigger-actions.js.map +1 -0
  44. package/packages/apps/emails/lib/functios-lib/utils.js +33 -0
  45. package/packages/apps/emails/lib/functios-lib/utils.js.map +1 -0
  46. package/packages/apps/emails/lib/index.js +2 -0
  47. package/packages/apps/emails/lib/index.js.map +1 -0
  48. package/packages/apps/emails/package.json +33 -0
  49. package/packages/apps/emails/src/events-to-app-emails.ts +27 -0
  50. package/packages/apps/emails/src/firebase.ts +25 -0
  51. package/packages/apps/emails/src/functios-lib/abandoned-carts.ts +100 -0
  52. package/packages/apps/emails/src/functios-lib/handle-orders.ts +232 -0
  53. package/packages/apps/emails/src/functios-lib/trigger-actions.ts +177 -0
  54. package/packages/apps/emails/src/functios-lib/utils.ts +44 -0
  55. package/packages/apps/emails/src/index.ts +1 -0
  56. package/packages/apps/emails/tsconfig.json +3 -0
  57. package/packages/apps/frenet/package.json +2 -2
  58. package/packages/apps/infinitepay/CHANGELOG.md +1 -0
  59. package/packages/apps/infinitepay/README.md +1 -0
  60. package/packages/apps/infinitepay/assets/onload-expression.js +57 -0
  61. package/packages/apps/infinitepay/lib/functions-lib/add-installments.d.ts +55 -0
  62. package/packages/apps/infinitepay/lib/functions-lib/add-installments.js +63 -0
  63. package/packages/apps/infinitepay/lib/functions-lib/add-installments.js.map +1 -0
  64. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-access.d.ts +14 -0
  65. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-access.js +63 -0
  66. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-access.js.map +1 -0
  67. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-axios.d.ts +2 -0
  68. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-axios.js +19 -0
  69. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-axios.js.map +1 -0
  70. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/oauth.d.ts +2 -0
  71. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/oauth.js +25 -0
  72. package/packages/apps/infinitepay/lib/functions-lib/ip-auth/oauth.js.map +1 -0
  73. package/packages/apps/infinitepay/lib/functions-lib/utils.d.ts +8 -0
  74. package/packages/apps/infinitepay/lib/functions-lib/utils.js +17 -0
  75. package/packages/apps/infinitepay/lib/functions-lib/utils.js.map +1 -0
  76. package/packages/apps/infinitepay/lib/index.d.ts +1 -0
  77. package/packages/apps/infinitepay/lib/index.js +3 -0
  78. package/packages/apps/infinitepay/lib/index.js.map +1 -0
  79. package/packages/apps/infinitepay/lib/infinitepay.d.ts +76 -0
  80. package/packages/apps/infinitepay/lib/infinitepay.js +13 -0
  81. package/packages/apps/infinitepay/lib/infinitepay.js.map +1 -0
  82. package/packages/apps/infinitepay/lib/ip-create-transaction.d.ts +72 -0
  83. package/packages/apps/infinitepay/lib/ip-create-transaction.js +305 -0
  84. package/packages/apps/infinitepay/lib/ip-create-transaction.js.map +1 -0
  85. package/packages/apps/infinitepay/lib/ip-list-payments.d.ts +8 -0
  86. package/packages/apps/infinitepay/lib/ip-list-payments.js +130 -0
  87. package/packages/apps/infinitepay/lib/ip-list-payments.js.map +1 -0
  88. package/packages/apps/infinitepay/lib/ip-webhook.d.ts +5 -0
  89. package/packages/apps/infinitepay/lib/ip-webhook.js +152 -0
  90. package/packages/apps/infinitepay/lib/ip-webhook.js.map +1 -0
  91. package/packages/apps/infinitepay/package.json +38 -0
  92. package/packages/apps/infinitepay/scripts/build.sh +5 -0
  93. package/packages/apps/infinitepay/src/functions-lib/add-installments.ts +78 -0
  94. package/packages/apps/infinitepay/src/functions-lib/ip-auth/create-access.ts +85 -0
  95. package/packages/apps/infinitepay/src/functions-lib/ip-auth/create-axios.ts +20 -0
  96. package/packages/apps/infinitepay/src/functions-lib/ip-auth/oauth.ts +30 -0
  97. package/packages/apps/infinitepay/src/functions-lib/utils.ts +23 -0
  98. package/packages/apps/infinitepay/src/index.ts +2 -0
  99. package/packages/apps/infinitepay/src/infinitepay.ts +13 -0
  100. package/packages/apps/infinitepay/src/ip-create-transaction.ts +418 -0
  101. package/packages/apps/infinitepay/src/ip-list-payments.ts +158 -0
  102. package/packages/apps/infinitepay/src/ip-webhook.ts +184 -0
  103. package/packages/apps/infinitepay/tsconfig.json +6 -0
  104. package/packages/apps/infinitepay/webhook.js +1 -0
  105. package/packages/apps/mercadopago/lib/mp-create-transaction.js +1 -1
  106. package/packages/apps/mercadopago/lib/mp-create-transaction.js.map +1 -1
  107. package/packages/apps/mercadopago/lib/mp-webhook.js +1 -1
  108. package/packages/apps/mercadopago/lib/mp-webhook.js.map +1 -1
  109. package/packages/apps/mercadopago/package.json +4 -4
  110. package/packages/apps/mercadopago/src/mp-create-transaction.ts +1 -1
  111. package/packages/apps/mercadopago/src/mp-webhook.ts +1 -1
  112. package/packages/apps/pagarme/CHANGELOG.md +1 -0
  113. package/packages/apps/pagarme/README.md +1 -0
  114. package/packages/apps/pagarme/assets/onload-expression.js +18 -0
  115. package/packages/apps/pagarme/lib/functions-lib/add-installments.d.ts +55 -0
  116. package/packages/apps/pagarme/lib/functions-lib/add-installments.js +48 -0
  117. package/packages/apps/pagarme/lib/functions-lib/add-installments.js.map +1 -0
  118. package/packages/apps/pagarme/lib/functions-lib/parse-status-to-ecom.d.ts +2 -0
  119. package/packages/apps/pagarme/lib/functions-lib/parse-status-to-ecom.js +24 -0
  120. package/packages/apps/pagarme/lib/functions-lib/parse-status-to-ecom.js.map +1 -0
  121. package/packages/apps/pagarme/lib/index.d.ts +1 -0
  122. package/packages/apps/pagarme/lib/index.js +3 -0
  123. package/packages/apps/pagarme/lib/index.js.map +1 -0
  124. package/packages/apps/pagarme/lib/pagarme-create-transaction.d.ts +82 -0
  125. package/packages/apps/pagarme/lib/pagarme-create-transaction.js +275 -0
  126. package/packages/apps/pagarme/lib/pagarme-create-transaction.js.map +1 -0
  127. package/packages/apps/pagarme/lib/pagarme-list-payments.d.ts +7 -0
  128. package/packages/apps/pagarme/lib/pagarme-list-payments.js +139 -0
  129. package/packages/apps/pagarme/lib/pagarme-list-payments.js.map +1 -0
  130. package/packages/apps/pagarme/lib/pagarme-webhook.d.ts +4 -0
  131. package/packages/apps/pagarme/lib/pagarme-webhook.js +80 -0
  132. package/packages/apps/pagarme/lib/pagarme-webhook.js.map +1 -0
  133. package/packages/apps/pagarme/lib/pagarme.d.ts +86 -0
  134. package/packages/apps/pagarme/lib/pagarme.js +12 -0
  135. package/packages/apps/pagarme/lib/pagarme.js.map +1 -0
  136. package/packages/apps/pagarme/package.json +38 -0
  137. package/packages/apps/pagarme/scripts/build.sh +5 -0
  138. package/packages/apps/pagarme/src/functions-lib/add-installments.ts +59 -0
  139. package/packages/apps/pagarme/src/functions-lib/parse-status-to-ecom.ts +23 -0
  140. package/packages/apps/pagarme/src/index.ts +2 -0
  141. package/packages/apps/pagarme/src/pagarme-create-transaction.ts +307 -0
  142. package/packages/apps/pagarme/src/pagarme-list-payments.ts +158 -0
  143. package/packages/apps/pagarme/src/pagarme-webhook.ts +88 -0
  144. package/packages/apps/pagarme/src/pagarme.ts +12 -0
  145. package/packages/apps/pagarme/tsconfig.json +6 -0
  146. package/packages/apps/pagarme/webhook.js +1 -0
  147. package/packages/apps/pix/CHANGELOG.md +1 -0
  148. package/packages/apps/pix/README.md +1 -0
  149. package/packages/apps/pix/lib/functions-lib/get-certificate.d.ts +2 -0
  150. package/packages/apps/pix/lib/functions-lib/get-certificate.js +21 -0
  151. package/packages/apps/pix/lib/functions-lib/get-certificate.js.map +1 -0
  152. package/packages/apps/pix/lib/functions-lib/pix-auth/construtor.d.ts +15 -0
  153. package/packages/apps/pix/lib/functions-lib/pix-auth/construtor.js +65 -0
  154. package/packages/apps/pix/lib/functions-lib/pix-auth/construtor.js.map +1 -0
  155. package/packages/apps/pix/lib/functions-lib/pix-auth/create-axios.d.ts +6 -0
  156. package/packages/apps/pix/lib/functions-lib/pix-auth/create-axios.js +20 -0
  157. package/packages/apps/pix/lib/functions-lib/pix-auth/create-axios.js.map +1 -0
  158. package/packages/apps/pix/lib/functions-lib/pix-auth/oauth.d.ts +12 -0
  159. package/packages/apps/pix/lib/functions-lib/pix-auth/oauth.js +36 -0
  160. package/packages/apps/pix/lib/functions-lib/pix-auth/oauth.js.map +1 -0
  161. package/packages/apps/pix/lib/index.d.ts +1 -0
  162. package/packages/apps/pix/lib/index.js +3 -0
  163. package/packages/apps/pix/lib/index.js.map +1 -0
  164. package/packages/apps/pix/lib/pix-create-transaction.d.ts +73 -0
  165. package/packages/apps/pix/lib/pix-create-transaction.js +221 -0
  166. package/packages/apps/pix/lib/pix-create-transaction.js.map +1 -0
  167. package/packages/apps/pix/lib/pix-list-payments.d.ts +14 -0
  168. package/packages/apps/pix/lib/pix-list-payments.js +80 -0
  169. package/packages/apps/pix/lib/pix-list-payments.js.map +1 -0
  170. package/packages/apps/pix/lib/pix-webhook.d.ts +5 -0
  171. package/packages/apps/pix/lib/pix-webhook.js +146 -0
  172. package/packages/apps/pix/lib/pix-webhook.js.map +1 -0
  173. package/packages/apps/pix/lib/pix.d.ts +77 -0
  174. package/packages/apps/pix/lib/pix.js +13 -0
  175. package/packages/apps/pix/lib/pix.js.map +1 -0
  176. package/packages/apps/pix/package.json +36 -0
  177. package/packages/apps/pix/src/functions-lib/get-certificate.ts +24 -0
  178. package/packages/apps/pix/src/functions-lib/pix-auth/construtor.ts +87 -0
  179. package/packages/apps/pix/src/functions-lib/pix-auth/create-axios.ts +24 -0
  180. package/packages/apps/pix/src/functions-lib/pix-auth/oauth.ts +50 -0
  181. package/packages/apps/pix/src/index.ts +2 -0
  182. package/packages/apps/pix/src/pix-create-transaction.ts +261 -0
  183. package/packages/apps/pix/src/pix-list-payments.ts +93 -0
  184. package/packages/apps/pix/src/pix-webhook.ts +171 -0
  185. package/packages/apps/pix/src/pix.ts +13 -0
  186. package/packages/apps/pix/tsconfig.json +6 -0
  187. package/packages/apps/pix/webhook.js +1 -0
  188. package/packages/apps/tiny-erp/package.json +5 -5
  189. package/packages/cli/bin/run.mjs +1 -1
  190. package/packages/cli/lib/build.js +14 -7
  191. package/packages/cli/lib/{index.js → cli.js} +2 -2
  192. package/packages/cli/lib/setup-gcloud.js +1 -1
  193. package/packages/cli/package.json +3 -3
  194. package/packages/cli/src/build.ts +17 -10
  195. package/packages/cli/src/{index.ts → cli.ts} +2 -2
  196. package/packages/cli/src/setup-gcloud.ts +1 -1
  197. package/packages/config/lib/config.d.ts +4 -2
  198. package/packages/config/lib/config.js +11 -4
  199. package/packages/config/lib/config.js.map +1 -1
  200. package/packages/config/lib/env.d.ts +1 -1
  201. package/packages/config/package.json +2 -2
  202. package/packages/config/src/config.ts +14 -5
  203. package/packages/emails/CHANGELOG.md +1 -0
  204. package/packages/emails/README.md +1 -0
  205. package/packages/emails/lib/index.d.ts +56 -0
  206. package/packages/emails/lib/index.js +83 -0
  207. package/packages/emails/lib/index.js.map +1 -0
  208. package/packages/emails/lib/parse-template-to-html.d.ts +3 -0
  209. package/packages/emails/lib/parse-template-to-html.js +16 -0
  210. package/packages/emails/lib/parse-template-to-html.js.map +1 -0
  211. package/packages/emails/lib/providers/sendgrid/index.d.ts +8 -0
  212. package/packages/emails/lib/providers/sendgrid/index.js +54 -0
  213. package/packages/emails/lib/providers/sendgrid/index.js.map +1 -0
  214. package/packages/emails/lib/providers/sendgrid/parse-to-data.d.ts +5 -0
  215. package/packages/emails/lib/providers/sendgrid/parse-to-data.js +55 -0
  216. package/packages/emails/lib/providers/sendgrid/parse-to-data.js.map +1 -0
  217. package/packages/emails/lib/providers/smtp/index.d.ts +13 -0
  218. package/packages/emails/lib/providers/smtp/index.js +79 -0
  219. package/packages/emails/lib/providers/smtp/index.js.map +1 -0
  220. package/packages/emails/package.json +35 -0
  221. package/packages/emails/src/index.ts +144 -0
  222. package/packages/emails/src/parse-template-to-html.ts +19 -0
  223. package/packages/emails/src/providers/sendgrid/index.ts +78 -0
  224. package/packages/emails/src/providers/sendgrid/parse-to-data.ts +92 -0
  225. package/packages/emails/src/providers/smtp/index.ts +115 -0
  226. package/packages/emails/tests/assets/customer.json +68 -0
  227. package/packages/emails/tests/assets/order.json +190 -0
  228. package/packages/emails/tests/assets/store.json +25 -0
  229. package/packages/emails/tests/ex.config-sendgrid.json +19 -0
  230. package/packages/emails/tests/ex.config-smtp.json +21 -0
  231. package/packages/emails/tests/sendgrid.test.ts +156 -0
  232. package/packages/emails/tests/smtp.test.ts +147 -0
  233. package/packages/emails/tests/templates/new-order.ejs +37 -0
  234. package/packages/emails/tsconfig.json +6 -0
  235. package/packages/emails/types/index.d.ts +84 -0
  236. package/packages/emails/types/sendgrid.d.ts +28 -0
  237. package/packages/events/lib/firebase.js +8 -0
  238. package/packages/events/lib/firebase.js.map +1 -1
  239. package/packages/events/package.json +7 -3
  240. package/packages/events/src/firebase.ts +8 -0
  241. package/packages/firebase/lib/config.d.ts +15 -1
  242. package/packages/firebase/lib/config.js +22 -0
  243. package/packages/firebase/lib/config.js.map +1 -1
  244. package/packages/firebase/lib/helpers/pubsub.d.ts +2 -2
  245. package/packages/firebase/package.json +5 -5
  246. package/packages/firebase/src/config.ts +25 -1
  247. package/packages/i18n/package.json +1 -1
  248. package/packages/modules/lib/firebase/call-app-module.js +36 -0
  249. package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
  250. package/packages/modules/package.json +9 -6
  251. package/packages/modules/schemas/apply_discount.cjs +47 -0
  252. package/packages/modules/src/firebase/call-app-module.ts +36 -0
  253. package/packages/passport/lib/firebase/authenticate-customer.js +1 -1
  254. package/packages/passport/lib/firebase/authenticate-customer.js.map +1 -1
  255. package/packages/passport/package.json +3 -3
  256. package/packages/passport/src/firebase/authenticate-customer.ts +2 -2
  257. package/packages/ssr/package.json +8 -8
  258. package/packages/storefront/.eslintrc.cjs +4 -0
  259. package/packages/storefront/astro.config.mjs +12 -6
  260. package/packages/storefront/dist/client/HeaderButtons.bc4a5c97.js +1 -0
  261. package/packages/storefront/dist/client/assets/_...slug_.acb18581.css +1 -0
  262. package/packages/storefront/dist/client/chunks/HeaderButtons.861af799.js +1 -0
  263. package/packages/storefront/dist/client/chunks/{LoginForm.0c5ba697.js → LoginForm.7e9c481c.js} +4 -4
  264. package/packages/storefront/dist/client/chunks/runtime-dom.esm-bundler.1b578f5a.js +1 -0
  265. package/packages/storefront/dist/client/{client.69fdbd1b.js → client.75c18572.js} +1 -1
  266. package/packages/storefront/dist/client/manifest.webmanifest +1 -1
  267. package/packages/storefront/dist/client/page.5a6f3db5.js +1 -0
  268. package/packages/storefront/dist/client/sw.js +1 -1
  269. package/packages/storefront/dist/server/{avif → chunks/avif}/avif_node_dec.wasm +0 -0
  270. package/packages/storefront/dist/server/{avif → chunks/avif}/avif_node_enc.wasm +0 -0
  271. package/packages/storefront/dist/server/chunks/image-pool.f66f99fb.mjs +10791 -0
  272. package/packages/storefront/dist/server/{mozjpeg → chunks/mozjpeg}/mozjpeg_node_dec.wasm +0 -0
  273. package/packages/storefront/dist/server/{mozjpeg → chunks/mozjpeg}/mozjpeg_node_enc.wasm +0 -0
  274. package/packages/storefront/dist/server/{png → chunks/png}/squoosh_oxipng_bg.wasm +0 -0
  275. package/packages/storefront/dist/server/{png → chunks/png}/squoosh_png_bg.wasm +0 -0
  276. package/packages/storefront/dist/server/{resize → chunks/resize}/squoosh_resize_bg.wasm +0 -0
  277. package/packages/storefront/dist/server/{rotate → chunks/rotate}/rotate.wasm +0 -0
  278. package/packages/storefront/dist/server/{webp → chunks/webp}/webp_node_dec.wasm +0 -0
  279. package/packages/storefront/dist/server/{webp → chunks/webp}/webp_node_enc.wasm +0 -0
  280. package/packages/storefront/dist/server/entry.mjs +10832 -13568
  281. package/packages/storefront/dist/server/manifest.webmanifest +1 -1
  282. package/packages/storefront/package.json +22 -18
  283. package/packages/storefront/src/lib/assets/base.css +110 -0
  284. package/packages/storefront/src/lib/assets/dark.css +92 -0
  285. package/packages/storefront/src/lib/assets/forms.css +0 -0
  286. package/packages/storefront/src/lib/assets/pico.css +29 -130
  287. package/packages/storefront/src/lib/assets/preflight.css +362 -0
  288. package/packages/storefront/src/lib/assets/typography.css +15 -0
  289. package/packages/storefront/src/lib/components/ADrawer.vue +11 -11
  290. package/packages/storefront/src/lib/components/LoginDrawer.vue +1 -1
  291. package/packages/storefront/src/lib/layouts/BaseBody.astro +2 -1
  292. package/packages/storefront/src/lib/layouts/BaseHead.astro +13 -3
  293. package/packages/storefront/src/lib/layouts/BaseStateJson.astro +3 -12
  294. package/packages/storefront/src/lib/ssr/image.ts +11 -5
  295. package/packages/storefront/src/lib/ssr-context.ts +3 -3
  296. package/packages/storefront/src/lib/state/shopping-cart/add-cart-item.ts +37 -57
  297. package/packages/storefront/src/lib/state/shopping-cart/parse-product.ts +36 -0
  298. package/packages/storefront/src/lib/state/shopping-cart.ts +32 -1
  299. package/packages/storefront/src/lib/types/cms-settings.d.ts +3 -1
  300. package/packages/storefront/storefront.cms.cjs +41 -0
  301. package/packages/storefront/storefront.cms.mjs +7 -2
  302. package/packages/storefront/storefront.config.mjs +1 -0
  303. package/packages/storefront/tailwind.config.cjs +142 -113
  304. package/packages/storefront/uno.config.cjs +126 -0
  305. package/packages/types/index.ts +21 -0
  306. package/packages/types/modules/apply_discount:response.d.ts +32 -0
  307. package/packages/types/package.json +1 -1
  308. package/packages/storefront/dist/client/HeaderButtons.b5b4a939.js +0 -1
  309. package/packages/storefront/dist/client/assets/_...slug_.8d138f36.css +0 -4
  310. package/packages/storefront/dist/client/chunks/HeaderButtons.308edb4d.js +0 -1
  311. package/packages/storefront/dist/client/chunks/runtime-dom.esm-bundler.f00ab3bd.js +0 -1
  312. package/packages/storefront/dist/client/page.33c44e88.js +0 -1
  313. package/packages/storefront/uno.config.ts +0 -167
@@ -0,0 +1,418 @@
1
+ import type { AppModuleBody } from '@cloudcommerce/types';
2
+ import type { CreateTransactionParams } from '@cloudcommerce/types/modules/create_transaction:params';
3
+ import type { CreateTransactionResponse } from '@cloudcommerce/types/modules/create_transaction:response';
4
+ import type { Firestore } from 'firebase-admin/firestore';
5
+ import config from '@cloudcommerce/firebase/lib/config';
6
+ import logger from 'firebase-functions/logger';
7
+ import IPAxios from './functions-lib/ip-auth/create-access';
8
+ import addInstallments from './functions-lib/add-installments';
9
+ import { responseError, isSandbox } from './functions-lib/utils';
10
+
11
+ type Items = {
12
+ id: string;
13
+ description: string | undefined;
14
+ amount: number;
15
+ quantity: number;
16
+ }[]
17
+
18
+ type ParseHash = {
19
+ amount?: number;
20
+ capture_method?: string;
21
+ metadata: {
22
+ origin?: string;
23
+ payment_method?: string;
24
+ risk?: {
25
+ payer_ip?: string;
26
+ };
27
+ orderId?: string | undefined;
28
+ orderNumber?: number;
29
+ callback_url?: string;
30
+ callback?: {
31
+ validate: string;
32
+ confirm: string;
33
+ secret: string;
34
+ };
35
+ transactionReference?: number;
36
+ };
37
+ customer?: {
38
+ document_number: any;
39
+ email: any; first_name: any;
40
+ last_name: any;
41
+ phone_number: any;
42
+ address?: string | undefined;
43
+ complement?: string | undefined;
44
+ city?: string | undefined;
45
+ state?: string | undefined;
46
+ country?: string;
47
+ zip?: string | undefined;
48
+ };
49
+ payment?: {
50
+ amount: number;
51
+ installments: number | undefined;
52
+ payment_method: string;
53
+ capture_method: string;
54
+ };
55
+ order?: {
56
+ delivery_details: any;
57
+ id?: string | undefined;
58
+ amount?: number;
59
+ items?: Items;
60
+ };
61
+ billing_details?: any;
62
+ };
63
+
64
+ const handleError = (
65
+ error: any,
66
+ transaction: CreateTransactionResponse['transaction'],
67
+ params: CreateTransactionParams,
68
+ orderId?: string,
69
+ ) => {
70
+ let { message } = error;
71
+ // Handle request timeout
72
+ // https://github.com/axios/axios/blob/d59c70fdfd35106130e9f783d0dbdcddd145b58f/lib/adapters/http.js#L213-L218
73
+ if (error.code && error.code === 'ECONNABORTED' && message.includes('timeout')) {
74
+ transaction.intermediator = {
75
+ payment_method: params.payment_method,
76
+ };
77
+ transaction.status = {
78
+ current: 'under_analysis',
79
+ updated_at: new Date().toISOString(),
80
+ };
81
+ return {
82
+ redirect_to_payment: false,
83
+ transaction,
84
+ };
85
+ }
86
+
87
+ logger.log('> (App: InfinitePay) Error=> ', JSON.stringify(error));
88
+
89
+ // try to debug request error
90
+ let errCode = 'INFINITEPAY_TRANSACTION_ERR_';
91
+ const err = {
92
+ message: `PAGARME_TRANSACTION_ERR Order: #${orderId} => ${message}`,
93
+ payment: '',
94
+ status: 0,
95
+ response: '',
96
+ };
97
+
98
+ if (error.response) {
99
+ const { status, data } = error.response;
100
+ if (status !== 401 && status !== 403) {
101
+ err.payment = JSON.stringify(transaction);
102
+ errCode += status;
103
+ err.status = status;
104
+ if (typeof data === 'object' && data) {
105
+ err.response = JSON.stringify(data);
106
+ } else {
107
+ err.response = data;
108
+ }
109
+ } else if (data && Array.isArray(data.errors) && data.errors[0] && data.errors[0].message) {
110
+ message = data.errors[0].message;
111
+ }
112
+ }
113
+
114
+ // logger.error(err);
115
+ return responseError(404, errCode, message);
116
+ };
117
+
118
+ export default async (appData: AppModuleBody, firestore: Firestore) => {
119
+ const locationId = config.get().httpsFunctionOptions.region;
120
+ const baseUri = `https://${locationId}-${process.env.GCLOUD_PROJECT}.cloudfunctions.net`;
121
+ // body was already pre-validated on @/bin/web.js
122
+ // treat module request body
123
+ const { application, storeId } = appData;
124
+ const params = appData.params as CreateTransactionParams;
125
+ // app configured options
126
+ const configApp = { ...application.data, ...application.hidden_data };
127
+ const callbackUrl = `${baseUri}/infinitepay-webhook`;
128
+
129
+ const ipAxios = new IPAxios({
130
+ clientId: configApp.client_id,
131
+ clientSecret: configApp.client_secret,
132
+ typeScope: 'transactions',
133
+ isSandbox,
134
+ });
135
+
136
+ const orderId = params.order_id;
137
+ const orderNumber = params.order_number;
138
+ const {
139
+ amount,
140
+ items,
141
+ buyer,
142
+ to,
143
+ } = params;
144
+
145
+ logger.log('>(App:InfinitePay) Transaction #order:', orderId, ` ${isSandbox ? ' Sandbox' : ''} <`);
146
+
147
+ const transaction: CreateTransactionResponse['transaction'] = {
148
+ amount: amount.total,
149
+ };
150
+
151
+ let finalAmount = Math.floor(amount.total * 100) / 100;
152
+ const paymentMethod = params.payment_method.code;
153
+ const isCreditCard = paymentMethod === 'credit_card';
154
+ const methodConfig = configApp[paymentMethod] || {};
155
+
156
+ let { label } = methodConfig;
157
+ if (!label) {
158
+ label = isCreditCard ? 'Cartão de crédito' : 'Pix';
159
+ }
160
+
161
+ try {
162
+ await ipAxios.preparing;
163
+ } catch (err: any) {
164
+ logger.error('>(App: InfinitePay) Error =>', err);
165
+ return responseError(409, 'NO_INFINITE_AUTH', 'Error getting authentication');
166
+ }
167
+
168
+ let dataHash: ParseHash;
169
+
170
+ if (isCreditCard) {
171
+ const buyerNames = buyer.fullname.split(' ');
172
+ const IPCustumer = {
173
+ document_number: buyer.doc_number,
174
+ first_name: buyerNames[0],
175
+ last_name: buyerNames[buyerNames.length - 1],
176
+ email: buyer.email,
177
+ phone_number: buyer.phone.number,
178
+ address: to?.street,
179
+ complement: to?.complement || undefined,
180
+ city: to?.city,
181
+ state: to?.province || to?.province_code,
182
+ country: to?.country_code || 'BR',
183
+ zip: to?.zip,
184
+ };
185
+
186
+ let installmentsNumber = params.installments_number;
187
+ if (installmentsNumber && installmentsNumber > 1) {
188
+ if (configApp.installments) {
189
+ // list all installment options
190
+ const { gateway } = addInstallments(
191
+ amount.total,
192
+ configApp.installments,
193
+ {
194
+ label,
195
+ payment_method: params.payment_method,
196
+ },
197
+ );
198
+ const installmentOption = gateway.installment_options
199
+ && gateway.installment_options.find(({ number }) => number === installmentsNumber);
200
+ if (installmentOption) {
201
+ transaction.installments = installmentOption;
202
+ finalAmount = Math.round(installmentOption.number * installmentOption.value * 100) / 100;
203
+ transaction.installments.total = finalAmount;
204
+ } else {
205
+ installmentsNumber = 1;
206
+ }
207
+ }
208
+ }
209
+
210
+ const payerIp = params.browser_ip;
211
+ const hash = Buffer.from(params?.credit_card?.hash || '', 'base64').toString();
212
+ dataHash = JSON.parse(hash);
213
+
214
+ if (dataHash.metadata) {
215
+ dataHash.metadata.orderId = orderId;
216
+ dataHash.metadata.orderNumber = orderNumber;
217
+ dataHash.metadata.callback_url = callbackUrl;
218
+ if (dataHash.metadata.risk) {
219
+ dataHash.metadata.risk.payer_ip = payerIp;
220
+ } else {
221
+ dataHash.metadata.risk = {
222
+ payer_ip: payerIp,
223
+ };
224
+ }
225
+ }
226
+
227
+ dataHash.customer = IPCustumer;
228
+ dataHash.payment = {
229
+ amount: Math.floor(finalAmount * 100),
230
+ installments: installmentsNumber,
231
+ payment_method: 'credit',
232
+ capture_method: 'ecommerce',
233
+ };
234
+
235
+ const ipItems: Items = [];
236
+
237
+ items.forEach((item) => {
238
+ ipItems.push({
239
+ id: item.sku || item.variation_id || item.product_id,
240
+ description: item.name || item.sku,
241
+ amount: Math.floor((item.final_price || item.price) * 100),
242
+ quantity: item.quantity,
243
+ });
244
+ });
245
+
246
+ dataHash.order = {
247
+ id: orderId,
248
+ amount: Math.floor(finalAmount * 100),
249
+ items: ipItems,
250
+ delivery_details: {
251
+ document_number: (dataHash.customer && dataHash.customer.document_number)
252
+ || buyer.doc_number,
253
+ email: dataHash.customer.email,
254
+ name: `${dataHash.customer.first_name} ${dataHash.customer.last_name}`,
255
+ phone_number: `${dataHash.customer.phone_number}`,
256
+ line1: `${to?.street}, ${String(to?.number)}` || 's/n',
257
+ line2: to?.complement || '',
258
+ city: to?.city,
259
+ state: to?.province || to?.province_code,
260
+ zip: to?.zip,
261
+ country: to?.country_code || 'BR',
262
+ },
263
+ };
264
+
265
+ dataHash.billing_details = dataHash.order.delivery_details;
266
+ if (ipAxios.axios) {
267
+ //
268
+ // console.log('>> SendTransaction Infinite: ', dataHash, ' <<');
269
+ // url: 'https://cloudwalk.github.io/infinitepay-docs/#autorizando-um-pagamento',
270
+ const headers = {
271
+ Accept: 'application/json',
272
+ };
273
+
274
+ if (isSandbox) {
275
+ Object.assign(headers, { Env: 'mock' });
276
+ }
277
+
278
+ try {
279
+ const timeout = 40000;
280
+ const { data } = (await ipAxios.axios.post(
281
+ '/v2/transactions',
282
+ dataHash,
283
+ { headers, timeout },
284
+ )).data;
285
+
286
+ const { attributes } = data;
287
+ logger.log('>>(App:Infinite) Attributes: ', attributes, ' <<<');
288
+
289
+ const intermediator = {
290
+ transaction_id: attributes.nsu,
291
+ payment_method: params.payment_method,
292
+ transaction_code: '',
293
+ };
294
+ if (attributes.authorization_id) {
295
+ logger.log('>>(App:Infinite) Authorized transaction in InfinitePay Order: #', orderId);
296
+ intermediator.transaction_code = attributes.authorization_id;
297
+
298
+ transaction.status = {
299
+ current: 'paid',
300
+ updated_at: attributes.created_at || new Date().toISOString(),
301
+ };
302
+ } else {
303
+ logger.log('>>(App:Infinite) Unauthorized transaction in InfinitePay Order: #', orderId);
304
+ transaction.status = {
305
+ current: 'unauthorized',
306
+ updated_at: attributes.created_at || new Date().toISOString(),
307
+ };
308
+ }
309
+ transaction.intermediator = intermediator;
310
+
311
+ return {
312
+ redirect_to_payment: false,
313
+ transaction,
314
+ };
315
+ } catch (err) {
316
+ return handleError(
317
+ err,
318
+ transaction,
319
+ params,
320
+ orderId,
321
+ );
322
+ }
323
+ }
324
+ return responseError(409, 'INFINITE_REQUEST_ERR_', 'Unexpected error creating charge');
325
+ }
326
+ // if (paymentMethod === 'account_deposit')
327
+ const firestoreColl = 'infinitepayTransactionsPix';
328
+
329
+ const transactionReference = new Date().getTime();
330
+ const secret = Buffer.from(`${storeId}-${orderId}-${transactionReference}`).toString('base64');
331
+ logger.log('>>(App: Infinite) secret: ', (isSandbox ? secret : ''));
332
+
333
+ dataHash = {
334
+ amount: Math.floor(finalAmount * 100),
335
+ capture_method: 'pix',
336
+ metadata: {
337
+ origin: 'ecomplus',
338
+ payment_method: 'pix',
339
+ callback: {
340
+ validate: `${callbackUrl}?pix=denied`,
341
+ confirm: `${callbackUrl}?pix=confirm`,
342
+ secret,
343
+ },
344
+ orderId,
345
+ transactionReference,
346
+ },
347
+ };
348
+ if (ipAxios.axios) {
349
+ try {
350
+ logger.log('>>(App: Infinite) Send PIX : ', JSON.stringify(dataHash), ' <<');
351
+ // url: 'https://cloudwalk.github.io/infinitepay-docs/#autorizando-um-pagamento',
352
+ const headers = {
353
+ Accept: 'application/json',
354
+ };
355
+ const { data } = (await ipAxios.axios.post(
356
+ '/v2/transactions',
357
+ dataHash,
358
+ { headers },
359
+ )).data;
360
+
361
+ const { attributes } = data;
362
+
363
+ logger.log('>>(App:Infinite) Attributes: ', attributes, ' <<<');
364
+ const intermediator = {
365
+ transaction_code: attributes.nsu,
366
+ payment_method: params.payment_method,
367
+ };
368
+ const brCode = attributes.br_code;
369
+ const transactionId = attributes.nsu_host;
370
+ if (brCode && transactionId) {
371
+ const qrCodeSrc = `https://gerarqrcodepix.com.br/api/v1?brcode=${brCode}&tamanho=256`;
372
+ transaction.notes = '<div style="display:block;margin:0 auto"> '
373
+ + `<img src="${qrCodeSrc}" style="display:block;margin:0 auto"> `
374
+ + `<input readonly type="text" id="pix-copy" value="${brCode}" />`
375
+ + `<button type="button" class="btn btn-sm btn-light"
376
+ onclick="let codePix = document.getElementById('pix-copy') codePix.select()
377
+ document.execCommand('copy')">Copiar Pix</button></div>`;
378
+
379
+ logger.log('>>(App:Infinite) Authorized transaction PIX Order: #', orderId);
380
+ Object.assign(intermediator, {
381
+ transaction_id: transactionId,
382
+ transaction_reference: `${transactionReference}`,
383
+ });
384
+ transaction.status = {
385
+ current: 'pending',
386
+ updated_at: attributes.created_at || new Date().toISOString(),
387
+ };
388
+ const updatedAt = new Date().toISOString();
389
+ const documentRef = firestore.doc(`${firestoreColl}/${transactionId}`);
390
+ if (documentRef) {
391
+ documentRef.set({
392
+ isSandbox,
393
+ orderId,
394
+ orderNumber,
395
+ secret,
396
+ transactionReference,
397
+ status: 'pending',
398
+ updatedAt,
399
+ }).catch(logger.error);
400
+ }
401
+ } else {
402
+ logger.log('>>(App:Infinite) Unauthorized transaction PIX Order: #', orderId);
403
+ transaction.status = {
404
+ current: 'unauthorized',
405
+ updated_at: attributes.created_at || new Date().toISOString(),
406
+ };
407
+ }
408
+ transaction.intermediator = intermediator;
409
+ return {
410
+ redirect_to_payment: false,
411
+ transaction,
412
+ };
413
+ } catch (err) {
414
+ return handleError(err, transaction, params, orderId);
415
+ }
416
+ }
417
+ return responseError(409, 'INFINITE_REQUEST_ERR_', 'Unexpected error creating charge');
418
+ };
@@ -0,0 +1,158 @@
1
+ import type { AppModuleBody } from '@cloudcommerce/types';
2
+ import type { ListPaymentsParams } from '@cloudcommerce/types/modules/list_payments:params';
3
+ import type { ListPaymentsResponse } from '@cloudcommerce/types/modules/list_payments:response';
4
+ import logger from 'firebase-functions/logger';
5
+ import IPAxios from './functions-lib/ip-auth/create-access';
6
+ import addInstallments from './functions-lib/add-installments';
7
+ import { readFile, responseError, isSandbox } from './functions-lib/utils';
8
+
9
+ type Gateway = ListPaymentsResponse['payment_gateways'][number]
10
+ type CodePaymentMethod = Gateway['payment_method']['code']
11
+
12
+ export default async (data: AppModuleBody) => {
13
+ const { application } = data;
14
+ const params = data.params as ListPaymentsParams;
15
+ // https://apx-mods.e-com.plus/api/v1/list_payments/schema.json?store_id=100
16
+ const amount = params.amount || { total: undefined, discount: undefined };
17
+ // const initialTotalAmount = amount.total;
18
+
19
+ const configApp = {
20
+ ...application.data,
21
+ ...application.hidden_data,
22
+ };
23
+
24
+ const disableLinkPayment = configApp.payment_link ? configApp.payment_link.disable : false;
25
+
26
+ if (!configApp.infinitepay_user && !disableLinkPayment) {
27
+ return responseError(409, 'NO_INFINITE_USER', 'Username da InfinitePay não configurado');
28
+ }
29
+ if ((!configApp.client_id || !configApp.client_secret)) {
30
+ return responseError(409, 'NO_INFINITE_KEY', 'Client ID/Client Secrect InfinitePay não configurado');
31
+ }
32
+
33
+ if (configApp.pix && configApp.pix.enable && !configApp.pix.key_pix) {
34
+ return responseError(409, 'NO_INFINITE_KEY_PIX', 'Chave Pix InfinitePay não configurada');
35
+ }
36
+
37
+ logger.log('>(App: InfinitePay) List Payment', `${isSandbox ? ' Sandbox' : ''}`);
38
+
39
+ let tokenJWT: string | undefined;
40
+ try {
41
+ const ipAxios = new IPAxios({
42
+ clientId: configApp.client_id,
43
+ clientSecret: configApp.client_secret,
44
+ typeScope: 'card',
45
+ isSandbox,
46
+ });
47
+
48
+ await ipAxios.preparing;
49
+ tokenJWT = ipAxios.cardTokenization;
50
+ } catch (err: any) {
51
+ logger.error('>(App: InfinitePay) Error =>', err);
52
+ return responseError(409, 'NO_INFINITE_AUTH', 'Error getting authentication');
53
+ }
54
+
55
+ // https://apx-mods.e-com.plus/api/v1/list_payments/response_schema.json?store_id=100
56
+ const response: ListPaymentsResponse = {
57
+ payment_gateways: [],
58
+ };
59
+
60
+ const listPaymentMethods = ['credit_card', 'account_deposit'];
61
+
62
+ const intermediator = {
63
+ name: 'InfinitePay',
64
+ link: 'https://infinitepay.io/',
65
+ code: 'infinitepay',
66
+ };
67
+
68
+ // setup payment gateway object
69
+ listPaymentMethods.forEach((paymentMethod) => {
70
+ const isPix = paymentMethod === 'account_deposit';
71
+ const isCreditCard = paymentMethod === 'credit_card';
72
+ // const isLinkPayment = paymentMethod === 'payment_link';
73
+
74
+ const methodConfig = isPix ? configApp.pix : (configApp[paymentMethod] || {});
75
+ const minAmount = methodConfig.min_amount || 0;
76
+
77
+ const methodEnable = isPix ? methodConfig.enable : !methodConfig.disable;
78
+
79
+ // Workaround for showcase
80
+ const validateAmount = amount.total ? (amount.total >= minAmount) : true;
81
+
82
+ if (methodEnable && validateAmount) {
83
+ const label = methodConfig.label || (isCreditCard ? 'Cartão de crédito' : 'Pix');
84
+
85
+ const gateway: Gateway = {
86
+ label,
87
+ icon: methodConfig.icon,
88
+ text: methodConfig.text,
89
+ payment_method: {
90
+ code: paymentMethod as CodePaymentMethod,
91
+ name: `${label} - ${intermediator.name}`,
92
+ },
93
+ intermediator,
94
+ };
95
+
96
+ const { installments, discount } = configApp;
97
+ if (installments && isCreditCard) {
98
+ // list all installment options and default one
99
+ addInstallments(amount.total, installments, gateway, response);
100
+ }
101
+
102
+ if (isPix && !gateway.icon) {
103
+ gateway.icon = 'https://us-central1-ecom-pix.cloudfunctions.net/app/pix.png';
104
+ }
105
+
106
+ if (isCreditCard) {
107
+ if (!gateway.icon) {
108
+ gateway.icon = 'https://us-central1-ecom-infinitepay.cloudfunctions.net/app/infinitepay.png';
109
+ // gateway.icon = `${baseUri}/infinitepay.png`;
110
+ }
111
+ //
112
+ gateway.js_client = {
113
+ script_uri: `https://ipayjs.infinitepay.io/${isSandbox
114
+ ? 'development' : 'production'}/ipay-latest.min.js`,
115
+ onload_expression: `window._infiniteJwtTokenCard="${tokenJWT}";
116
+ window._infiniteCardSandbox="${isSandbox}";
117
+ ${readFile('../../assets/onload-expression.min.js')}`,
118
+ cc_hash: {
119
+ function: '_infiniteHashCard',
120
+ is_promise: true,
121
+ },
122
+ };
123
+ }
124
+
125
+ if (isPix && discount && discount.value > 0
126
+ && (!amount.discount || discount.cumulative_discount !== false)) {
127
+ gateway.discount = {
128
+ apply_at: discount.apply_at,
129
+ type: discount.type,
130
+ value: discount.value,
131
+ };
132
+
133
+ if (discount.apply_at !== 'freight') {
134
+ // set as default discount option
135
+ response.discount_option = {
136
+ apply_at: discount.apply_at,
137
+ type: discount.type,
138
+ value: discount.value,
139
+ label: configApp.discount_option_label || `${label}`,
140
+ };
141
+ }
142
+
143
+ if (discount.min_amount) {
144
+ // check amount value to apply discount
145
+ if (amount.total && amount.total < discount.min_amount) {
146
+ delete gateway.discount;
147
+ }
148
+ if (response.discount_option) {
149
+ response.discount_option.min_amount = discount.min_amount;
150
+ }
151
+ }
152
+ }
153
+ response.payment_gateways.push(gateway);
154
+ }
155
+ });
156
+
157
+ return response;
158
+ };