cloudcommerce 0.0.126 → 0.0.128

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 +50 -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 +28 -1
  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 +31 -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,275 @@
1
+ import logger from 'firebase-functions/logger';
2
+ import config from '@cloudcommerce/firebase/lib/config';
3
+ import axios from 'axios';
4
+ import addInstallments from './functions-lib/add-installments.js';
5
+ import parseStatus from './functions-lib/parse-status-to-ecom.js';
6
+
7
+ const parseAddress = (to) => ({
8
+ street: to.street,
9
+ neighborhood: to.borough,
10
+ city: to.city,
11
+ state: to.province || to.province_code,
12
+ country: to.country_code ? to.country_code.toLowerCase() : 'br',
13
+ zipcode: to.zip,
14
+ street_number: String(to.number) || 's/n',
15
+ complementary: to.complement || undefined,
16
+ });
17
+
18
+ export default async (appData) => {
19
+ const locationId = config.get().httpsFunctionOptions.region;
20
+ const baseUri = `https://${locationId}-${process.env.GCLOUD_PROJECT}.cloudfunctions.net`;
21
+ const { application, storeId } = appData;
22
+ const { params } = appData;
23
+ // app configured options
24
+ const configApp = { ...application.data, ...application.hidden_data };
25
+ const notificationUrl = `${baseUri}/pagarme-webhook`;
26
+ const orderId = params.order_id;
27
+ const {
28
+ amount, buyer, payer, to, items,
29
+ } = params;
30
+ logger.log('>(App:PagarMe) Transaction #', orderId);
31
+ // https://apx-mods.e-com.plus/api/v1/create_transaction/response_schema.json?store_id=100
32
+ const transaction = {
33
+ amount: amount.total,
34
+ };
35
+ const paymentMethod = params.payment_method.code;
36
+ const methodConfig = configApp[paymentMethod] || {};
37
+ const isPix = paymentMethod === 'account_deposit';
38
+ const isCreditCard = paymentMethod === 'credit_card';
39
+ let { label } = methodConfig;
40
+ if (!label) {
41
+ if (isCreditCard) {
42
+ label = 'Cartão de crédito';
43
+ } else {
44
+ label = !isPix ? 'Boleto bancário' : 'Pix';
45
+ }
46
+ }
47
+ // https://docs.pagar.me/docs/realizando-uma-transacao-de-cartao-de-credito
48
+ // https://docs.pagar.me/docs/realizando-uma-transacao-de-boleto-bancario
49
+ let pagarmeTransaction;
50
+ if (isCreditCard) {
51
+ let installmentsNumber = params.installments_number;
52
+ let finalAmount = amount.total;
53
+ if (installmentsNumber && installmentsNumber > 1) {
54
+ if (configApp.installments) {
55
+ // list all installment options
56
+ const { gateway } = addInstallments(amount.total, configApp.installments, {
57
+ label,
58
+ payment_method: params.payment_method,
59
+ });
60
+ const installmentOption = gateway.installment_options
61
+ && gateway.installment_options.find(({ number }) => number === installmentsNumber);
62
+ if (installmentOption) {
63
+ transaction.installments = installmentOption;
64
+ finalAmount = installmentOption.number * installmentOption.value;
65
+ transaction.installments.total = finalAmount;
66
+ } else {
67
+ installmentsNumber = 1;
68
+ }
69
+ }
70
+ }
71
+ pagarmeTransaction = {
72
+ payment_method: 'credit_card',
73
+ amount: Math.floor(finalAmount * 100),
74
+ installments: installmentsNumber,
75
+ card_hash: params.credit_card && params.credit_card.hash,
76
+ };
77
+ } else if (params.payment_method.code === 'account_deposit') {
78
+ const finalAmount = amount.total;
79
+ const pixConfig = configApp.account_deposit;
80
+ const dueTime = pixConfig.due_time || 60;
81
+ const date = new Date();
82
+ date.setTime(date.getTime() + dueTime * 60000);
83
+ pagarmeTransaction = {
84
+ payment_method: 'pix',
85
+ amount: Math.floor(finalAmount * 100),
86
+ pix_expiration_date: date.toISOString(),
87
+ };
88
+ } else {
89
+ // banking billet
90
+ transaction.banking_billet = {};
91
+ pagarmeTransaction = {
92
+ payment_method: 'boleto',
93
+ async: false,
94
+ amount: Math.floor(amount.total * 100),
95
+ };
96
+ const boleto = configApp.banking_billet;
97
+ if (boleto) {
98
+ if (boleto.instructions) {
99
+ pagarmeTransaction.boleto_instructions = boleto.instructions
100
+ .replace(/\r\n/g, '\n')
101
+ .replace(/\r/g, '\n')
102
+ .substr(0, 255);
103
+ transaction.banking_billet.text_lines = [pagarmeTransaction.boleto_instructions];
104
+ }
105
+ if (boleto.days_due_date) {
106
+ const date = new Date();
107
+ date.setDate(date.getDate() + boleto.days_due_date);
108
+ pagarmeTransaction.boleto_expiration_date = date.toISOString().substring(0, 10);
109
+ }
110
+ }
111
+ }
112
+ pagarmeTransaction.api_key = configApp.pagarme_api_key;
113
+ pagarmeTransaction.postback_url = notificationUrl;
114
+ pagarmeTransaction.soft_descriptor = (configApp.soft_descriptor
115
+ || `${params.domain}_PagarMe`).substring(0, 13);
116
+ pagarmeTransaction.metadata = {
117
+ order_number: params.order_number,
118
+ store_id: storeId,
119
+ order_id: orderId,
120
+ platform_integration: 'ecomplus',
121
+ };
122
+ pagarmeTransaction.customer = {
123
+ email: buyer.email,
124
+ name: buyer.fullname,
125
+ external_id: buyer.customer_id,
126
+ type: buyer.registry_type === 'j' ? 'corporation' : 'individual',
127
+ country: (buyer.doc_country || 'BR').toLowerCase(),
128
+ phone_numbers: [`+${(buyer.phone.country_code || '55')}${buyer.phone.number}`],
129
+ documents: [{
130
+ type: buyer.registry_type === 'j' ? 'cnpj' : 'cpf',
131
+ number: buyer.doc_number,
132
+ }],
133
+ };
134
+ const birthDate = buyer.birth_date;
135
+ if (birthDate && birthDate.year && birthDate.day && birthDate.month) {
136
+ pagarmeTransaction.customer.birthday = `${birthDate.year}-`
137
+ + `${birthDate.month.toString().padStart(2, '0')}-${birthDate.day.toString().padStart(2, '0')}`;
138
+ }
139
+ if (to && to.street) {
140
+ pagarmeTransaction.shipping = {
141
+ name: to.name || buyer.fullname,
142
+ fee: Math.floor((amount.freight || 0) * 100),
143
+ address: parseAddress(to),
144
+ };
145
+ pagarmeTransaction.billing = {
146
+ name: (payer || buyer).fullname,
147
+ address: params.billing_address
148
+ ? parseAddress(params.billing_address)
149
+ : pagarmeTransaction.shipping.address,
150
+ };
151
+ } else if (params.billing_address) {
152
+ pagarmeTransaction.billing = {
153
+ name: (payer || buyer).fullname,
154
+ address: parseAddress(params.billing_address),
155
+ };
156
+ }
157
+ pagarmeTransaction.items = [];
158
+ items.forEach((item) => {
159
+ if (item.quantity > 0) {
160
+ pagarmeTransaction.items.push({
161
+ id: item.sku || item.variation_id || item.product_id,
162
+ title: item.name || item.sku,
163
+ unit_price: Math.floor((item.final_price || item.price) * 100),
164
+ quantity: item.quantity,
165
+ tangible: Boolean(to && to.street),
166
+ });
167
+ }
168
+ });
169
+ try {
170
+ // https://docs.pagar.me/reference#criar-transacao
171
+ const { data } = await axios({
172
+ url: 'https://api.pagar.me/1/transactions',
173
+ method: 'post',
174
+ data: pagarmeTransaction,
175
+ });
176
+ if (data) {
177
+ if (data.authorized_amount) {
178
+ transaction.amount = data.authorized_amount / 100;
179
+ } else if (data.amount) {
180
+ transaction.amount = data.amount / 100;
181
+ }
182
+ const paymentMethodPagarMe = data.payment_method === 'pix'
183
+ ? 'account_deposit'
184
+ : data.payment_method;
185
+ transaction.intermediator = {
186
+ payment_method: {
187
+ code: paymentMethodPagarMe || params.payment_method.code,
188
+ },
189
+ };
190
+ [
191
+ ['id', 'transaction_id'],
192
+ ['tid', 'transaction_code'],
193
+ ['reference_key', 'transaction_reference'],
194
+ ].forEach(([dataField, transactionField]) => {
195
+ if (data[dataField] && transaction.intermediator) {
196
+ transaction.intermediator[transactionField] = String(data[dataField]);
197
+ }
198
+ });
199
+ if (data.customer && data.customer.id) {
200
+ transaction.intermediator.buyer_id = String(data.customer.id);
201
+ }
202
+ if (transaction.banking_billet) {
203
+ if (data.boleto_barcode) {
204
+ transaction.banking_billet.code = data.boleto_barcode;
205
+ }
206
+ if (data.boleto_url && transaction.banking_billet.link) {
207
+ transaction.banking_billet.link = data.boleto_url;
208
+ transaction.payment_link = transaction.banking_billet.link;
209
+ }
210
+ if (data.boleto_expiration_date) {
211
+ transaction.banking_billet.valid_thru = new Date(data.boleto_expiration_date)
212
+ .toISOString();
213
+ }
214
+ } else if (data.card) {
215
+ transaction.credit_card = {
216
+ holder_name: data.card.holder_name,
217
+ last_digits: data.card.last_digits,
218
+ company: data.card.brand,
219
+ token: data.card.fingerprint,
220
+ };
221
+ } else if (paymentMethodPagarMe === 'account_deposit') {
222
+ const qrCode = data.pix_qr_code;
223
+ transaction.intermediator.transaction_code = qrCode;
224
+ const qrCodeSrc = `https://gerarqrcodepix.com.br/api/v1?brcode=${qrCode}&tamanho=256`;
225
+ transaction.notes = `<img src="${qrCodeSrc}" style="display:block;margin:0 auto">`;
226
+ }
227
+ transaction.status = {
228
+ updated_at: data.date_created || data.date_updated || new Date().toISOString(),
229
+ current: parseStatus(data.status),
230
+ };
231
+ return {
232
+ status: 200,
233
+ redirect_to_payment: false,
234
+ transaction,
235
+ };
236
+ }
237
+ return {
238
+ status: 409,
239
+ message: `PAGARME_TRANSACTION_ERR Order: #${orderId} => Pagar.Me not response`,
240
+ };
241
+ } catch (error) {
242
+ logger.error('(App:PagarMe) =>', error);
243
+ let { message } = error;
244
+ //
245
+ const err = {
246
+ message: `PAGARME_TRANSACTION_ERR Order: #${orderId} => ${message}`,
247
+ payment: '',
248
+ status: 0,
249
+ response: '',
250
+ };
251
+ let errCode = 'PAGARME_TRANSACTION_ERR_';
252
+ if (error.response) {
253
+ const { status, data } = error.response;
254
+ if (status !== 401 && status !== 403) {
255
+ err.payment = JSON.stringify(pagarmeTransaction);
256
+ errCode += status;
257
+ err.status = status;
258
+ if (typeof data === 'object' && data) {
259
+ err.response = JSON.stringify(data);
260
+ } else {
261
+ err.response = data;
262
+ }
263
+ } else if (data && Array.isArray(data.errors) && data.errors[0] && data.errors[0].message) {
264
+ message = data.errors[0].message;
265
+ }
266
+ }
267
+ // logger.error(err);
268
+ return {
269
+ status: 409,
270
+ error: errCode,
271
+ message,
272
+ };
273
+ }
274
+ };
275
+ // # sourceMappingURL=pagarme-create-transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagarme-create-transaction.js","sourceRoot":"","sources":["../src/pagarme-create-transaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { AppModuleBody } from '@cloudcommerce/types';
2
+ import type { ListPaymentsResponse } from '@cloudcommerce/types/modules/list_payments:response';
3
+ declare const _default: (data: AppModuleBody) => ListPaymentsResponse | {
4
+ error: string;
5
+ message: string;
6
+ };
7
+ export default _default;
@@ -0,0 +1,139 @@
1
+ import * as path from 'path';
2
+ import * as fs from 'fs';
3
+ import url from 'url';
4
+ import addInstallments from './functions-lib/add-installments.js';
5
+
6
+ const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
7
+
8
+ export default (data) => {
9
+ const { application } = data;
10
+ const { params } = data;
11
+ // https://apx-mods.e-com.plus/api/v1/list_payments/schema.json?store_id=100
12
+ const amount = params.amount || { total: undefined };
13
+ const initialTotalAmount = amount.total;
14
+ const configApp = {
15
+ ...application.data,
16
+ ...application.hidden_data,
17
+ };
18
+ if (!configApp.pagarme_encryption_key || !configApp.pagarme_api_key) {
19
+ return {
20
+ error: 'NO_PAGARME_KEYS',
21
+ message: 'Chave de API e/ou criptografia não configurada (lojista deve configurar o aplicativo)',
22
+ };
23
+ }
24
+ // https://apx-mods.e-com.plus/api/v1/list_payments/response_schema.json?store_id=100
25
+ const response = {
26
+ payment_gateways: [],
27
+ };
28
+ const { discount } = configApp;
29
+ if (discount && discount.value > 0) {
30
+ if (discount.apply_at !== 'freight') {
31
+ // default discount option
32
+ const { value } = discount;
33
+ response.discount_option = {
34
+ label: configApp.discount_option_label,
35
+ value,
36
+ };
37
+ // specify the discount type and min amount is optional
38
+ const discountTypeMinAmount = ['type', 'min_amount'];
39
+ discountTypeMinAmount.forEach((prop) => {
40
+ if (response.discount_option && discount[prop]) {
41
+ response.discount_option[prop] = discount[prop];
42
+ }
43
+ });
44
+ }
45
+ if (amount.total) {
46
+ // check amount value to apply discount
47
+ if (amount.total < discount.min_amount) {
48
+ discount.value = 0;
49
+ } else {
50
+ delete discount.min_amount;
51
+ // fix local amount object
52
+ const maxDiscount = amount[discount.apply_at || 'subtotal'];
53
+ let discountValue;
54
+ if (discount.type === 'percentage') {
55
+ discountValue = (maxDiscount * discount.value) / 100;
56
+ } else {
57
+ discountValue = discount.value;
58
+ if (discountValue > maxDiscount) {
59
+ discountValue = maxDiscount;
60
+ }
61
+ }
62
+ if (discountValue > 0) {
63
+ amount.discount = (amount.discount || 0) + discountValue;
64
+ amount.total -= discountValue;
65
+ if (amount.total < 0) {
66
+ amount.total = 0;
67
+ }
68
+ }
69
+ }
70
+ }
71
+ }
72
+ // setup payment gateway objects
73
+ const intermediator = {
74
+ name: 'Pagar.me',
75
+ link: 'https://pagar.me/',
76
+ code: 'pagarme',
77
+ };
78
+ const listPaymentMethods = ['credit_card', 'banking_billet', 'account_deposit'];
79
+ listPaymentMethods.forEach((paymentMethod) => {
80
+ const methodConfig = configApp[paymentMethod] || {};
81
+ const isPix = paymentMethod === 'account_deposit';
82
+ if (!methodConfig.disable && (!isPix || methodConfig.enable)) {
83
+ const isCreditCard = paymentMethod === 'credit_card';
84
+ let { label } = methodConfig;
85
+ if (!label) {
86
+ if (isCreditCard) {
87
+ label = 'Cartão de crédito';
88
+ } else {
89
+ label = !isPix ? 'Boleto bancário' : 'Pix';
90
+ }
91
+ }
92
+ const gateway = {
93
+ label,
94
+ icon: methodConfig.icon,
95
+ text: methodConfig.text,
96
+ payment_method: {
97
+ code: paymentMethod,
98
+ name: `${label} - ${intermediator.name}`,
99
+ },
100
+ intermediator,
101
+ };
102
+ if (methodConfig.discount) {
103
+ gateway.discount = methodConfig.discount;
104
+ } else if (discount
105
+ && (discount[paymentMethod] === true
106
+ || (!isCreditCard && discount[paymentMethod] !== false))) {
107
+ gateway.discount = discount;
108
+ if (response.discount_option && !response.discount_option.label) {
109
+ response.discount_option.label = label;
110
+ }
111
+ }
112
+ if (isCreditCard) {
113
+ if (!gateway.icon) {
114
+ // gateway.icon = `${baseUri}/credit-card.png`; // TODO: baseUri
115
+ gateway.icon = 'https://us-central1-ecom-pagarme.cloudfunctions.net/app/credit-card.png';
116
+ }
117
+ // https://github.com/pagarme/pagarme-js
118
+ gateway.js_client = {
119
+ script_uri: 'https://assets.pagar.me/pagarme-js/4.8/pagarme.min.js',
120
+ onload_expression: `window._pagarmeKey="${configApp.pagarme_encryption_key}";
121
+ ${fs.readFileSync(path.join(__dirname, '../../assets/onload-expression.min.js'), 'utf8')}`,
122
+ cc_hash: {
123
+ function: '_pagarmeHash',
124
+ is_promise: true,
125
+ },
126
+ };
127
+ const { installments } = configApp;
128
+ if (installments) {
129
+ const installmentsTotal = gateway.discount ? amount.total : initialTotalAmount;
130
+ // list all installment options and default one
131
+ addInstallments(installmentsTotal, installments, gateway, response);
132
+ }
133
+ }
134
+ response.payment_gateways.push(gateway);
135
+ }
136
+ });
137
+ return response;
138
+ };
139
+ // # sourceMappingURL=pagarme-list-payments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagarme-list-payments.js","sourceRoot":"","sources":["../src/pagarme-list-payments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import * as functions from 'firebase-functions/v1';
2
+ export declare const pagarme: {
3
+ webhook: functions.HttpsFunction;
4
+ };
@@ -0,0 +1,80 @@
1
+ /* eslint-disable import/prefer-default-export */
2
+ import logger from 'firebase-functions/logger';
3
+ import api from '@cloudcommerce/api';
4
+ import * as functions from 'firebase-functions/v1';
5
+ import config from '@cloudcommerce/firebase/lib/config';
6
+ import Pagarme from 'pagarme';
7
+ import qs from 'qs';
8
+ import parseStatus from './functions-lib/parse-status-to-ecom.js';
9
+
10
+ const ECHO_SUCCESS = 'OK';
11
+
12
+ export const pagarme = {
13
+ webhook: functions
14
+ .region(config.get().httpsFunctionOptions.region)
15
+ .https.onRequest(async (req, res) => {
16
+ const { method } = req;
17
+ if (method !== 'POST') {
18
+ res.sendStatus(405);
19
+ } else {
20
+ // read configured E-Com Plus app data
21
+ const app = (await api.get('applications?app_id=117391&fields=hidden_data')).data.result;
22
+ const apiKeyPagame = app[0].hidden_data?.pagarme_api_key;
23
+ // https://docs.pagar.me/docs/gerenciando-postbacks
24
+ const pagarmeTransaction = req.body && req.body.transaction;
25
+ if (pagarmeTransaction && pagarmeTransaction.metadata) {
26
+ // const storeId = parseInt(pagarmeTransaction.metadata.store_id, 10);
27
+ const orderId = pagarmeTransaction.metadata.order_id;
28
+ if (/^[a-f0-9]{24}$/.test(orderId)) {
29
+ logger.log('>(App:PagarMe) Webhook Order: ', orderId);
30
+ // validate Pagar.me postback
31
+ // https://github.com/pagarme/pagarme-js/issues/170#issuecomment-503729557
32
+ const verifyBody = qs.stringify(req.body);
33
+ const headerSignature = req.headers['x-hub-signature'];
34
+ if (headerSignature && !Array.isArray(headerSignature)) {
35
+ const signature = headerSignature.replace('sha1=', '');
36
+ if (!Pagarme.postback.verifySignature(apiKeyPagame, verifyBody, signature)) {
37
+ res.sendStatus(403);
38
+ } else {
39
+ try {
40
+ // get E-Com Plus order
41
+ const order = (await api.get(`orders/${orderId}`)).data;
42
+ if (order && order.transactions) {
43
+ // add new transaction status to payment history
44
+ const transaction = order.transactions?.find(({ intermediator }) => {
45
+ return intermediator
46
+ && intermediator.transaction_id === String(pagarmeTransaction.id);
47
+ });
48
+ const bodyPaymentHistory = {
49
+ date_time: new Date().toISOString(),
50
+ status: parseStatus(req.body.current_status || pagarmeTransaction.status),
51
+ notification_code: req.body.fingerprint,
52
+ flags: ['pagarme'],
53
+ }; // TODO: incompatible type=> amount and status
54
+ if (transaction) {
55
+ Object.assign(bodyPaymentHistory, { transaction_id: transaction._id });
56
+ }
57
+ if (req.body.old_status) {
58
+ bodyPaymentHistory.flags.push(`old:${req.body.old_status}`.substring(0, 20));
59
+ }
60
+ // return appSdk.apiRequest(storeId, resource, method, body);
61
+ await api.post(`orders/${orderId}/payments_history`, bodyPaymentHistory);
62
+ res.status(200).send(ECHO_SUCCESS);
63
+ } else {
64
+ //
65
+ res.status(404).send('>(App:PagarMe) Order not found');
66
+ }
67
+ } catch (err) {
68
+ err.metadata = pagarmeTransaction.metadata;
69
+ logger.error('(App:PagarMe) =>', err);
70
+ res.sendStatus(500);
71
+ }
72
+ }
73
+ }
74
+ }
75
+ }
76
+ res.sendStatus(404);
77
+ }
78
+ }),
79
+ };
80
+ // # sourceMappingURL=pagarme-webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagarme-webhook.js","sourceRoot":"","sources":["../src/pagarme-webhook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import '@cloudcommerce/firebase/lib/init';
2
+ import type { AppModuleBody } from '@cloudcommerce/types';
3
+ export declare const listPayments: (modBody: AppModuleBody) => Promise<import("@cloudcommerce/types").ListPaymentsResponse | {
4
+ error: string;
5
+ message: string;
6
+ }>;
7
+ export declare const createTransaction: (modBody: AppModuleBody) => Promise<{
8
+ status: number;
9
+ redirect_to_payment: boolean;
10
+ transaction: {
11
+ payment_link?: string | undefined;
12
+ payment_instructions?: string | undefined;
13
+ intermediator?: {
14
+ transaction_id?: string | undefined;
15
+ transaction_code?: string | undefined;
16
+ transaction_reference?: string | undefined;
17
+ payment_method?: {
18
+ code: string;
19
+ name?: string | undefined;
20
+ } | undefined;
21
+ buyer_id?: string | undefined;
22
+ } | undefined;
23
+ credit_card?: {
24
+ holder_name?: string | undefined;
25
+ avs_result_code?: string | null | undefined;
26
+ cvv_result_code?: string | null | undefined;
27
+ bin?: number | undefined;
28
+ company?: string | undefined;
29
+ last_digits?: string | undefined;
30
+ token?: string | undefined;
31
+ error_code?: "incorrect_number" | "invalid_number" | "invalid_expiry_date" | "invalid_cvc" | "expired_card" | "incorrect_cvc" | "incorrect_zip" | "incorrect_address" | "card_declined" | "processing_error" | "call_issuer" | "pick_up_card" | undefined;
32
+ } | undefined;
33
+ banking_billet?: {
34
+ code?: string | undefined;
35
+ valid_thru?: string | undefined;
36
+ text_lines?: string[] | undefined;
37
+ link?: string | undefined;
38
+ } | undefined;
39
+ loyalty_points?: {
40
+ name?: string | undefined;
41
+ program_id: string;
42
+ points_value: number;
43
+ ratio?: number | undefined;
44
+ } | undefined;
45
+ currency_id?: string | undefined;
46
+ currency_symbol?: string | undefined;
47
+ discount?: number | undefined;
48
+ amount: number;
49
+ installments?: {
50
+ number: number;
51
+ value?: number | undefined;
52
+ tax?: boolean | undefined;
53
+ total?: number | undefined;
54
+ } | undefined;
55
+ creditor_fees?: {
56
+ installment?: number | undefined;
57
+ operational?: number | undefined;
58
+ intermediation?: number | undefined;
59
+ other?: number | undefined;
60
+ } | undefined;
61
+ status?: {
62
+ updated_at?: string | undefined;
63
+ current: "under_analysis" | "authorized" | "paid" | "refunded" | "pending" | "in_dispute" | "unauthorized" | "unknown" | "voided";
64
+ } | undefined;
65
+ flags?: string[] | undefined;
66
+ custom_fields?: {
67
+ field: string;
68
+ value: string;
69
+ }[] | undefined;
70
+ notes?: string | undefined;
71
+ };
72
+ message?: undefined;
73
+ error?: undefined;
74
+ } | {
75
+ status: number;
76
+ message: string;
77
+ redirect_to_payment?: undefined;
78
+ transaction?: undefined;
79
+ error?: undefined;
80
+ } | {
81
+ status: number;
82
+ error: string;
83
+ message: any;
84
+ redirect_to_payment?: undefined;
85
+ transaction?: undefined;
86
+ }>;
@@ -0,0 +1,12 @@
1
+ import '@cloudcommerce/firebase/lib/init';
2
+ import handleListPayments from './pagarme-list-payments.js';
3
+ import handleCreateTransaction from './pagarme-create-transaction.js';
4
+
5
+ export const listPayments = async (modBody) => {
6
+ return handleListPayments(modBody);
7
+ };
8
+
9
+ export const createTransaction = async (modBody) => {
10
+ return handleCreateTransaction(modBody);
11
+ };
12
+ // # sourceMappingURL=pagarme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagarme.js","sourceRoot":"","sources":["../src/pagarme.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAE1C,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,OAAsB,EAAE,EAAE;IAC3D,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAsB,EAAE,EAAE;IAChE,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC,CAAC"}