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.
- package/.eslintrc.cjs +26 -7
- package/.gitmodules +3 -0
- package/.vscode/settings.json +3 -0
- package/CHANGELOG.md +56 -0
- package/action.yml +51 -7
- package/ecomplus-stores/monocard/README.md +0 -15
- package/ecomplus-stores/monocard/README.pt-BR.md +0 -15
- package/ecomplus-stores/monocard/functions/core/package.json +1 -1
- package/ecomplus-stores/monocard/functions/events/package.json +2 -2
- package/ecomplus-stores/monocard/functions/modules/package.json +2 -2
- package/ecomplus-stores/monocard/functions/passport/package.json +2 -2
- package/ecomplus-stores/monocard/functions/ssr/package.json +8 -5
- package/ecomplus-stores/monocard/functions/ssr/src/main/Home.astro +1 -1
- package/ecomplus-stores/monocard/functions/ssr/tailwind.config.cjs +1 -3
- package/ecomplus-stores/monocard/functions/ssr/{uno.config.ts → uno.config.cjs} +1 -1
- package/ecomplus-stores/monocard/package.json +1 -1
- package/ecomplus-stores/tia-sonia/.github/renovate.json +5 -0
- package/ecomplus-stores/tia-sonia/.github/workflows/build-and-deploy.yml +41 -0
- package/ecomplus-stores/tia-sonia/.github/workflows/calibreapp-image-actions.yml +23 -0
- package/ecomplus-stores/tia-sonia/.vscode/extensions.json +8 -0
- package/ecomplus-stores/tia-sonia/.vscode/settings.json +5 -0
- package/ecomplus-stores/tia-sonia/LICENSE.md +230 -0
- package/ecomplus-stores/tia-sonia/README.md +102 -0
- package/ecomplus-stores/tia-sonia/README.pt-BR.md +102 -0
- package/ecomplus-stores/tia-sonia/functions/config.json +3 -0
- package/ecomplus-stores/tia-sonia/functions/core/index.js +9 -0
- package/ecomplus-stores/tia-sonia/functions/core/package.json +20 -0
- package/ecomplus-stores/tia-sonia/functions/events/index.js +9 -0
- package/ecomplus-stores/tia-sonia/functions/events/package.json +21 -0
- package/ecomplus-stores/tia-sonia/functions/example.env +10 -0
- package/ecomplus-stores/tia-sonia/functions/modules/index.js +9 -0
- package/ecomplus-stores/tia-sonia/functions/modules/package.json +21 -0
- package/ecomplus-stores/tia-sonia/functions/passport/index.js +9 -0
- package/ecomplus-stores/tia-sonia/functions/passport/package.json +21 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/.eslintrc.cjs +6 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/astro.config.mjs +4 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/blog.json +18 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/brands.json +24 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/categories.json +24 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/code.json +5 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/collections.json +24 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/contacts.json +13 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/footer.json +46 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/header.json +35 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/home.json +45 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/info.json +18 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/maintenance.json +6 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/menu.json +6 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/pages/contato.json +6 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/pages/entrega.json +6 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/pages/faq.json +6 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/pages/pagamentos.json +6 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/pages/privacidade.json +6 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/pages/sobre-nos.json +6 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/pages/termos.json +6 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/pages/trocas.json +6 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/posts/esta-loja-e-um-pwa.json +9 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/products.json +32 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/search.json +8 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/settings.json +14 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/social.json +5 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/analytics.json +11 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/compre-confie.json +11 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/ebit.json +11 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/fb-pixel.json +12 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/gmc-ratings.json +12 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/minicart.json +6 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/offers-notification.json +11 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/opinioes-verificadas.json +18 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/product-card.json +10 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/product.json +13 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/search-engine.json +8 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/search.json +6 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/tag-manager.json +12 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/tawkto.json +12 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/trustvox.json +15 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/content/widgets/user.json +5 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/index.js +18 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/package.json +30 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/admin/config.json +1 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/cms-preview.css +274 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/cms.css +114 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/cvv.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/icons/bootstrap-icons/font/storefront-icons.woff2 +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/icons/feather-icons/font/storefront-icons.woff2 +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/icons/font-awesome/font/storefront-icons.woff2 +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/icons/line-awesome/font/storefront-icons.woff2 +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/icons/tabler-icons/font/storefront-icons.woff2 +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/img-placeholder.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/payments.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/assets/ssl-safe.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/icon.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/large-icon.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/banner1.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/banner2.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/banner2.webp +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/favicon.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/headless.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/headphone.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/headphone.webp +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/icon.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/large-icon.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/logo.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/logo.webp +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/og-image.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/passion.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/passion.webp +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/pwa-reliable.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/rect8589.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/rect859.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/rect89.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/rect89.webp +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/ssl-safe.png +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/public/robots.txt +8 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/assets/.gitkeep +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/components/TheHeader.vue +42 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/components/TopBar.vue +133 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/components/header/HeaderButtonLink.vue +5 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/components/header/HeaderButtons.vue +46 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/components/header/HeaderNav.vue +9 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/components/header/HeaderNavLink.vue +5 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/env.d.ts +3 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/Base.astro +34 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/Checkout.astro +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/Pages.astro +19 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/PagesHeader.astro +117 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/main/Fallback.astro +15 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/main/Home.astro +19 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/main/Wildcard.astro +21 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/pages/[...slug].astro +36 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/pages/app/account.astro +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/pages/app/index.astro +0 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/pages/fallback.astro +19 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/pages/index.astro +31 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/scripts/InlineScripts.astro +11 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/tailwind.config.cjs +2 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/tsconfig.json +16 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/uno.config.cjs +4 -0
- package/ecomplus-stores/tia-sonia/package.json +28 -0
- package/ecomplus-stores/tia-sonia/scripts/install.sh +9 -0
- package/package.json +17 -17
- package/packages/api/lib/api.d.ts +4 -4
- package/packages/api/lib/types.d.ts +41 -41
- package/packages/api/package.json +1 -1
- package/packages/apps/correios/package.json +2 -2
- package/packages/apps/custom-shipping/package.json +1 -1
- package/packages/apps/discounts/lib-mjs/apply-discount.mjs +94 -20
- package/packages/apps/discounts/package.json +2 -2
- package/packages/apps/emails/CHANGELOG.md +1 -0
- package/packages/apps/emails/README.md +1 -0
- package/packages/apps/emails/lib/events-to-app-emails.js +19 -0
- package/packages/apps/emails/lib/events-to-app-emails.js.map +1 -0
- package/packages/apps/emails/lib/firebase.js +19 -0
- package/packages/apps/emails/lib/firebase.js.map +1 -0
- package/packages/apps/emails/lib/functios-lib/abandoned-carts.js +86 -0
- package/packages/apps/emails/lib/functios-lib/abandoned-carts.js.map +1 -0
- package/packages/apps/emails/lib/functios-lib/handle-orders.js +174 -0
- package/packages/apps/emails/lib/functios-lib/handle-orders.js.map +1 -0
- package/packages/apps/emails/lib/functios-lib/trigger-actions.js +178 -0
- package/packages/apps/emails/lib/functios-lib/trigger-actions.js.map +1 -0
- package/packages/apps/emails/lib/functios-lib/utils.js +33 -0
- package/packages/apps/emails/lib/functios-lib/utils.js.map +1 -0
- package/packages/apps/emails/lib/index.js +2 -0
- package/packages/apps/emails/lib/index.js.map +1 -0
- package/packages/apps/emails/package.json +33 -0
- package/packages/apps/emails/src/events-to-app-emails.ts +27 -0
- package/packages/apps/emails/src/firebase.ts +25 -0
- package/packages/apps/emails/src/functios-lib/abandoned-carts.ts +100 -0
- package/packages/apps/emails/src/functios-lib/handle-orders.ts +232 -0
- package/packages/apps/emails/src/functios-lib/trigger-actions.ts +177 -0
- package/packages/apps/emails/src/functios-lib/utils.ts +44 -0
- package/packages/apps/emails/src/index.ts +1 -0
- package/packages/apps/emails/tsconfig.json +3 -0
- package/packages/apps/frenet/package.json +2 -2
- package/packages/apps/infinitepay/CHANGELOG.md +1 -0
- package/packages/apps/infinitepay/README.md +1 -0
- package/packages/apps/infinitepay/assets/onload-expression.js +57 -0
- package/packages/apps/infinitepay/lib/functions-lib/add-installments.d.ts +55 -0
- package/packages/apps/infinitepay/lib/functions-lib/add-installments.js +63 -0
- package/packages/apps/infinitepay/lib/functions-lib/add-installments.js.map +1 -0
- package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-access.d.ts +14 -0
- package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-access.js +63 -0
- package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-access.js.map +1 -0
- package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-axios.d.ts +2 -0
- package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-axios.js +19 -0
- package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-axios.js.map +1 -0
- package/packages/apps/infinitepay/lib/functions-lib/ip-auth/oauth.d.ts +2 -0
- package/packages/apps/infinitepay/lib/functions-lib/ip-auth/oauth.js +25 -0
- package/packages/apps/infinitepay/lib/functions-lib/ip-auth/oauth.js.map +1 -0
- package/packages/apps/infinitepay/lib/functions-lib/utils.d.ts +8 -0
- package/packages/apps/infinitepay/lib/functions-lib/utils.js +17 -0
- package/packages/apps/infinitepay/lib/functions-lib/utils.js.map +1 -0
- package/packages/apps/infinitepay/lib/index.d.ts +1 -0
- package/packages/apps/infinitepay/lib/index.js +3 -0
- package/packages/apps/infinitepay/lib/index.js.map +1 -0
- package/packages/apps/infinitepay/lib/infinitepay.d.ts +76 -0
- package/packages/apps/infinitepay/lib/infinitepay.js +13 -0
- package/packages/apps/infinitepay/lib/infinitepay.js.map +1 -0
- package/packages/apps/infinitepay/lib/ip-create-transaction.d.ts +72 -0
- package/packages/apps/infinitepay/lib/ip-create-transaction.js +305 -0
- package/packages/apps/infinitepay/lib/ip-create-transaction.js.map +1 -0
- package/packages/apps/infinitepay/lib/ip-list-payments.d.ts +8 -0
- package/packages/apps/infinitepay/lib/ip-list-payments.js +130 -0
- package/packages/apps/infinitepay/lib/ip-list-payments.js.map +1 -0
- package/packages/apps/infinitepay/lib/ip-webhook.d.ts +5 -0
- package/packages/apps/infinitepay/lib/ip-webhook.js +152 -0
- package/packages/apps/infinitepay/lib/ip-webhook.js.map +1 -0
- package/packages/apps/infinitepay/package.json +38 -0
- package/packages/apps/infinitepay/scripts/build.sh +5 -0
- package/packages/apps/infinitepay/src/functions-lib/add-installments.ts +78 -0
- package/packages/apps/infinitepay/src/functions-lib/ip-auth/create-access.ts +85 -0
- package/packages/apps/infinitepay/src/functions-lib/ip-auth/create-axios.ts +20 -0
- package/packages/apps/infinitepay/src/functions-lib/ip-auth/oauth.ts +30 -0
- package/packages/apps/infinitepay/src/functions-lib/utils.ts +23 -0
- package/packages/apps/infinitepay/src/index.ts +2 -0
- package/packages/apps/infinitepay/src/infinitepay.ts +13 -0
- package/packages/apps/infinitepay/src/ip-create-transaction.ts +418 -0
- package/packages/apps/infinitepay/src/ip-list-payments.ts +158 -0
- package/packages/apps/infinitepay/src/ip-webhook.ts +184 -0
- package/packages/apps/infinitepay/tsconfig.json +6 -0
- package/packages/apps/infinitepay/webhook.js +1 -0
- package/packages/apps/mercadopago/lib/mercadopago.js +0 -2
- package/packages/apps/mercadopago/lib/mercadopago.js.map +1 -1
- package/packages/apps/mercadopago/lib/mp-create-transaction.js +1 -1
- package/packages/apps/mercadopago/lib/mp-create-transaction.js.map +1 -1
- package/packages/apps/mercadopago/lib/mp-webhook.js +1 -3
- package/packages/apps/mercadopago/lib/mp-webhook.js.map +1 -1
- package/packages/apps/mercadopago/package.json +5 -5
- package/packages/apps/mercadopago/src/mercadopago.ts +0 -3
- package/packages/apps/mercadopago/src/mp-create-transaction.ts +1 -1
- package/packages/apps/mercadopago/src/mp-webhook.ts +1 -3
- package/packages/apps/pagarme/CHANGELOG.md +1 -0
- package/packages/apps/pagarme/README.md +1 -0
- package/packages/apps/pagarme/assets/onload-expression.js +18 -0
- package/packages/apps/pagarme/lib/functions-lib/add-installments.d.ts +55 -0
- package/packages/apps/pagarme/lib/functions-lib/add-installments.js +48 -0
- package/packages/apps/pagarme/lib/functions-lib/add-installments.js.map +1 -0
- package/packages/apps/pagarme/lib/functions-lib/parse-status-to-ecom.d.ts +2 -0
- package/packages/apps/pagarme/lib/functions-lib/parse-status-to-ecom.js +24 -0
- package/packages/apps/pagarme/lib/functions-lib/parse-status-to-ecom.js.map +1 -0
- package/packages/apps/pagarme/lib/index.d.ts +1 -0
- package/packages/apps/pagarme/lib/index.js +3 -0
- package/packages/apps/pagarme/lib/index.js.map +1 -0
- package/packages/apps/pagarme/lib/pagarme-create-transaction.d.ts +82 -0
- package/packages/apps/pagarme/lib/pagarme-create-transaction.js +275 -0
- package/packages/apps/pagarme/lib/pagarme-create-transaction.js.map +1 -0
- package/packages/apps/pagarme/lib/pagarme-list-payments.d.ts +7 -0
- package/packages/apps/pagarme/lib/pagarme-list-payments.js +139 -0
- package/packages/apps/pagarme/lib/pagarme-list-payments.js.map +1 -0
- package/packages/apps/pagarme/lib/pagarme-webhook.d.ts +4 -0
- package/packages/apps/pagarme/lib/pagarme-webhook.js +80 -0
- package/packages/apps/pagarme/lib/pagarme-webhook.js.map +1 -0
- package/packages/apps/pagarme/lib/pagarme.d.ts +86 -0
- package/packages/apps/pagarme/lib/pagarme.js +12 -0
- package/packages/apps/pagarme/lib/pagarme.js.map +1 -0
- package/packages/apps/pagarme/package.json +38 -0
- package/packages/apps/pagarme/scripts/build.sh +5 -0
- package/packages/apps/pagarme/src/functions-lib/add-installments.ts +59 -0
- package/packages/apps/pagarme/src/functions-lib/parse-status-to-ecom.ts +23 -0
- package/packages/apps/pagarme/src/index.ts +2 -0
- package/packages/apps/pagarme/src/pagarme-create-transaction.ts +307 -0
- package/packages/apps/pagarme/src/pagarme-list-payments.ts +158 -0
- package/packages/apps/pagarme/src/pagarme-webhook.ts +88 -0
- package/packages/apps/pagarme/src/pagarme.ts +12 -0
- package/packages/apps/pagarme/tsconfig.json +6 -0
- package/packages/apps/pagarme/webhook.js +1 -0
- package/packages/apps/pix/CHANGELOG.md +1 -0
- package/packages/apps/pix/README.md +1 -0
- package/packages/apps/pix/lib/functions-lib/get-certificate.d.ts +2 -0
- package/packages/apps/pix/lib/functions-lib/get-certificate.js +21 -0
- package/packages/apps/pix/lib/functions-lib/get-certificate.js.map +1 -0
- package/packages/apps/pix/lib/functions-lib/pix-auth/construtor.d.ts +15 -0
- package/packages/apps/pix/lib/functions-lib/pix-auth/construtor.js +65 -0
- package/packages/apps/pix/lib/functions-lib/pix-auth/construtor.js.map +1 -0
- package/packages/apps/pix/lib/functions-lib/pix-auth/create-axios.d.ts +6 -0
- package/packages/apps/pix/lib/functions-lib/pix-auth/create-axios.js +20 -0
- package/packages/apps/pix/lib/functions-lib/pix-auth/create-axios.js.map +1 -0
- package/packages/apps/pix/lib/functions-lib/pix-auth/oauth.d.ts +12 -0
- package/packages/apps/pix/lib/functions-lib/pix-auth/oauth.js +36 -0
- package/packages/apps/pix/lib/functions-lib/pix-auth/oauth.js.map +1 -0
- package/packages/apps/pix/lib/index.d.ts +1 -0
- package/packages/apps/pix/lib/index.js +3 -0
- package/packages/apps/pix/lib/index.js.map +1 -0
- package/packages/apps/pix/lib/pix-create-transaction.d.ts +73 -0
- package/packages/apps/pix/lib/pix-create-transaction.js +221 -0
- package/packages/apps/pix/lib/pix-create-transaction.js.map +1 -0
- package/packages/apps/pix/lib/pix-list-payments.d.ts +14 -0
- package/packages/apps/pix/lib/pix-list-payments.js +80 -0
- package/packages/apps/pix/lib/pix-list-payments.js.map +1 -0
- package/packages/apps/pix/lib/pix-webhook.d.ts +5 -0
- package/packages/apps/pix/lib/pix-webhook.js +146 -0
- package/packages/apps/pix/lib/pix-webhook.js.map +1 -0
- package/packages/apps/pix/lib/pix.d.ts +77 -0
- package/packages/apps/pix/lib/pix.js +13 -0
- package/packages/apps/pix/lib/pix.js.map +1 -0
- package/packages/apps/pix/package.json +36 -0
- package/packages/apps/pix/src/functions-lib/get-certificate.ts +24 -0
- package/packages/apps/pix/src/functions-lib/pix-auth/construtor.ts +87 -0
- package/packages/apps/pix/src/functions-lib/pix-auth/create-axios.ts +24 -0
- package/packages/apps/pix/src/functions-lib/pix-auth/oauth.ts +50 -0
- package/packages/apps/pix/src/index.ts +2 -0
- package/packages/apps/pix/src/pix-create-transaction.ts +261 -0
- package/packages/apps/pix/src/pix-list-payments.ts +93 -0
- package/packages/apps/pix/src/pix-webhook.ts +171 -0
- package/packages/apps/pix/src/pix.ts +13 -0
- package/packages/apps/pix/tsconfig.json +6 -0
- package/packages/apps/pix/webhook.js +1 -0
- package/packages/apps/tiny-erp/lib/event-to-tiny.js +1 -1
- package/packages/apps/tiny-erp/lib/event-to-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js +1 -1
- package/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js +1 -1
- package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js +1 -2
- package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js +1 -1
- package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js +1 -1
- package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/tiny-erp.js +0 -1
- package/packages/apps/tiny-erp/lib/tiny-erp.js.map +1 -1
- package/packages/apps/tiny-erp/lib/tiny-webhook.js +1 -1
- package/packages/apps/tiny-erp/lib/tiny-webhook.js.map +1 -1
- package/packages/apps/tiny-erp/package.json +6 -6
- package/packages/apps/tiny-erp/src/event-to-tiny.ts +1 -1
- package/packages/apps/tiny-erp/src/integration/after-tiny-queue.ts +1 -1
- package/packages/apps/tiny-erp/src/integration/export-order-to-tiny.ts +1 -1
- package/packages/apps/tiny-erp/src/integration/import-order-from-tiny.ts +1 -2
- package/packages/apps/tiny-erp/src/integration/import-product-from-tiny.ts +1 -1
- package/packages/apps/tiny-erp/src/integration/parsers/product-from-tiny.ts +1 -1
- package/packages/apps/tiny-erp/src/tiny-erp.ts +0 -1
- package/packages/apps/tiny-erp/src/tiny-webhook.ts +1 -1
- package/packages/cli/bin/run.mjs +1 -1
- package/packages/cli/lib/build.js +14 -7
- package/packages/cli/lib/{index.js → cli.js} +2 -2
- package/packages/cli/lib/setup-gcloud.js +1 -1
- package/packages/cli/package.json +3 -3
- package/packages/cli/src/build.ts +17 -10
- package/packages/cli/src/{index.ts → cli.ts} +2 -2
- package/packages/cli/src/setup-gcloud.ts +1 -1
- package/packages/config/lib/config.d.ts +4 -2
- package/packages/config/lib/config.js +11 -4
- package/packages/config/lib/config.js.map +1 -1
- package/packages/config/lib/env.d.ts +1 -1
- package/packages/config/package.json +2 -2
- package/packages/config/src/config.ts +14 -5
- package/packages/emails/CHANGELOG.md +1 -0
- package/packages/emails/README.md +1 -0
- package/packages/emails/lib/index.d.ts +56 -0
- package/packages/emails/lib/index.js +83 -0
- package/packages/emails/lib/index.js.map +1 -0
- package/packages/emails/lib/parse-template-to-html.d.ts +3 -0
- package/packages/emails/lib/parse-template-to-html.js +16 -0
- package/packages/emails/lib/parse-template-to-html.js.map +1 -0
- package/packages/emails/lib/providers/sendgrid/index.d.ts +8 -0
- package/packages/emails/lib/providers/sendgrid/index.js +54 -0
- package/packages/emails/lib/providers/sendgrid/index.js.map +1 -0
- package/packages/emails/lib/providers/sendgrid/parse-to-data.d.ts +5 -0
- package/packages/emails/lib/providers/sendgrid/parse-to-data.js +55 -0
- package/packages/emails/lib/providers/sendgrid/parse-to-data.js.map +1 -0
- package/packages/emails/lib/providers/smtp/index.d.ts +13 -0
- package/packages/emails/lib/providers/smtp/index.js +79 -0
- package/packages/emails/lib/providers/smtp/index.js.map +1 -0
- package/packages/emails/package.json +35 -0
- package/packages/emails/src/index.ts +144 -0
- package/packages/emails/src/parse-template-to-html.ts +19 -0
- package/packages/emails/src/providers/sendgrid/index.ts +78 -0
- package/packages/emails/src/providers/sendgrid/parse-to-data.ts +92 -0
- package/packages/emails/src/providers/smtp/index.ts +115 -0
- package/packages/emails/tests/assets/customer.json +68 -0
- package/packages/emails/tests/assets/order.json +190 -0
- package/packages/emails/tests/assets/store.json +25 -0
- package/packages/emails/tests/ex.config-sendgrid.json +19 -0
- package/packages/emails/tests/ex.config-smtp.json +21 -0
- package/packages/emails/tests/sendgrid.test.ts +156 -0
- package/packages/emails/tests/smtp.test.ts +147 -0
- package/packages/emails/tests/templates/new-order.ejs +37 -0
- package/packages/emails/tsconfig.json +6 -0
- package/packages/emails/types/index.d.ts +84 -0
- package/packages/emails/types/sendgrid.d.ts +28 -0
- package/packages/events/lib/firebase.js +8 -0
- package/packages/events/lib/firebase.js.map +1 -1
- package/packages/events/package.json +8 -4
- package/packages/events/src/firebase.ts +8 -0
- package/packages/firebase/lib/config.d.ts +15 -1
- package/packages/firebase/lib/config.js +25 -3
- package/packages/firebase/lib/config.js.map +1 -1
- package/packages/firebase/lib/handlers/check-store-events.js +1 -2
- package/packages/firebase/lib/handlers/check-store-events.js.map +1 -1
- package/packages/firebase/lib/helpers/pubsub.d.ts +2 -2
- package/packages/firebase/lib/helpers/update-app-data.js +1 -1
- package/packages/firebase/lib/helpers/update-app-data.js.map +1 -1
- package/packages/firebase/lib/init.js +0 -2
- package/packages/firebase/lib/init.js.map +1 -1
- package/packages/firebase/package.json +6 -6
- package/packages/firebase/src/config.ts +28 -4
- package/packages/firebase/src/handlers/check-store-events.ts +1 -2
- package/packages/firebase/src/helpers/update-app-data.ts +1 -1
- package/packages/firebase/src/init.ts +0 -2
- package/packages/i18n/package.json +1 -1
- package/packages/modules/lib/firebase/call-app-module.js +37 -1
- package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
- package/packages/modules/lib/firebase/checkout.js +9 -7
- package/packages/modules/lib/firebase/checkout.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/fix-items.js +80 -18
- package/packages/modules/lib/firebase/functions-checkout/fix-items.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/get-custumerId.js +1 -1
- package/packages/modules/lib/firebase/functions-checkout/get-custumerId.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/handle-order-transaction.js +16 -16
- package/packages/modules/lib/firebase/functions-checkout/handle-order-transaction.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/new-order.js +8 -8
- package/packages/modules/lib/firebase/functions-checkout/new-order.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/request-to-module.js +23 -6
- package/packages/modules/lib/firebase/functions-checkout/request-to-module.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/utils.js +1 -2
- package/packages/modules/lib/firebase/functions-checkout/utils.js.map +1 -1
- package/packages/modules/lib/firebase/handle-module.js +1 -1
- package/packages/modules/lib/firebase/handle-module.js.map +1 -1
- package/packages/modules/lib/firebase.js +0 -1
- package/packages/modules/lib/firebase.js.map +1 -1
- package/packages/modules/package.json +10 -7
- package/packages/modules/schemas/apply_discount.cjs +47 -0
- package/packages/modules/src/firebase/call-app-module.ts +37 -1
- package/packages/modules/src/firebase/checkout.ts +13 -10
- package/packages/modules/src/firebase/functions-checkout/fix-items.ts +88 -20
- package/packages/modules/src/firebase/functions-checkout/get-custumerId.ts +1 -1
- package/packages/modules/src/firebase/functions-checkout/handle-order-transaction.ts +24 -23
- package/packages/modules/src/firebase/functions-checkout/new-order.ts +15 -14
- package/packages/modules/src/firebase/functions-checkout/request-to-module.ts +30 -8
- package/packages/modules/src/firebase/functions-checkout/utils.ts +3 -5
- package/packages/modules/src/firebase/handle-module.ts +1 -1
- package/packages/modules/src/firebase.ts +0 -1
- package/packages/modules/src/types/index.d.ts +7 -6
- package/packages/passport/lib/firebase/authenticate-customer.js +1 -1
- package/packages/passport/lib/firebase/authenticate-customer.js.map +1 -1
- package/packages/passport/lib/firebase/serve-passport-api.js +1 -1
- package/packages/passport/lib/firebase/serve-passport-api.js.map +1 -1
- package/packages/passport/lib/firebase.js +0 -1
- package/packages/passport/lib/firebase.js.map +1 -1
- package/packages/passport/package.json +4 -4
- package/packages/passport/src/firebase/authenticate-customer.ts +2 -2
- package/packages/passport/src/firebase/serve-passport-api.ts +1 -1
- package/packages/passport/src/firebase.ts +0 -1
- package/packages/ssr/package.json +9 -9
- package/packages/storefront/.eslintrc.cjs +4 -1
- package/packages/storefront/astro.config.mjs +15 -8
- package/packages/storefront/dist/client/HeaderButtons.bc4a5c97.js +1 -0
- package/packages/storefront/dist/client/assets/_...slug_.acb18581.css +1 -0
- package/packages/storefront/dist/client/chunks/HeaderButtons.861af799.js +1 -0
- package/packages/storefront/dist/client/chunks/{LoginForm.e02dee3d.js → LoginForm.7e9c481c.js} +95 -95
- package/packages/storefront/dist/client/chunks/preload-helper.1de719f8.js +1 -0
- package/packages/storefront/dist/client/chunks/runtime-dom.esm-bundler.1b578f5a.js +1 -0
- package/packages/storefront/dist/client/client.75c18572.js +1 -0
- package/packages/storefront/dist/client/{hoisted.3f1cf839.js → hoisted.4f689abe.js} +1 -1
- package/packages/storefront/dist/client/manifest.webmanifest +1 -1
- package/packages/storefront/dist/client/page.5a6f3db5.js +1 -0
- package/packages/storefront/dist/client/sw.js +1 -1
- package/packages/storefront/dist/server/{avif → chunks/avif}/avif_node_dec.wasm +0 -0
- package/packages/storefront/dist/server/{avif → chunks/avif}/avif_node_enc.wasm +0 -0
- package/packages/storefront/dist/server/chunks/image-pool.f66f99fb.mjs +10791 -0
- package/packages/storefront/dist/server/{mozjpeg → chunks/mozjpeg}/mozjpeg_node_dec.wasm +0 -0
- package/packages/storefront/dist/server/{mozjpeg → chunks/mozjpeg}/mozjpeg_node_enc.wasm +0 -0
- package/packages/storefront/dist/server/{png → chunks/png}/squoosh_oxipng_bg.wasm +0 -0
- package/packages/storefront/dist/server/{png → chunks/png}/squoosh_png_bg.wasm +0 -0
- package/packages/storefront/dist/server/{resize → chunks/resize}/squoosh_resize_bg.wasm +0 -0
- package/packages/storefront/dist/server/{rotate → chunks/rotate}/rotate.wasm +0 -0
- package/packages/storefront/dist/server/{webp → chunks/webp}/webp_node_dec.wasm +0 -0
- package/packages/storefront/dist/server/{webp → chunks/webp}/webp_node_enc.wasm +0 -0
- package/packages/storefront/dist/server/entry.mjs +10835 -14275
- package/packages/storefront/dist/server/manifest.webmanifest +1 -1
- package/packages/storefront/package.json +23 -22
- package/packages/storefront/src/lib/assets/base.css +110 -0
- package/packages/storefront/src/lib/assets/dark.css +92 -0
- package/packages/storefront/src/lib/assets/forms.css +0 -0
- package/packages/storefront/src/lib/assets/pico.css +48 -154
- package/packages/storefront/src/lib/assets/preflight.css +362 -0
- package/packages/storefront/src/lib/assets/typography.css +15 -0
- package/packages/storefront/src/lib/components/ADrawer.vue +11 -11
- package/packages/storefront/src/lib/components/LoginDrawer.vue +1 -1
- package/packages/storefront/src/lib/components/LoginForm.vue +4 -13
- package/packages/storefront/src/lib/layouts/BaseBody.astro +2 -1
- package/packages/storefront/src/lib/layouts/BaseHead.astro +13 -3
- package/packages/storefront/src/lib/layouts/BaseStateJson.astro +3 -12
- package/packages/storefront/src/lib/ssr/image.ts +11 -6
- package/packages/storefront/src/lib/ssr-context.ts +3 -3
- package/packages/storefront/src/lib/state/customer-session.ts +29 -37
- package/packages/storefront/src/lib/state/shopping-cart/add-cart-item.ts +69 -0
- package/packages/storefront/src/lib/state/shopping-cart/parse-product.ts +36 -0
- package/packages/storefront/src/lib/state/shopping-cart.ts +83 -0
- package/packages/storefront/src/lib/state/use-storage.ts +19 -0
- package/packages/storefront/src/lib/types/cms-settings.d.ts +3 -1
- package/packages/storefront/storefront.cms.cjs +41 -0
- package/packages/storefront/storefront.cms.mjs +7 -2
- package/packages/storefront/storefront.config.mjs +1 -0
- package/packages/storefront/tailwind.config.cjs +143 -109
- package/packages/storefront/uno.config.cjs +126 -0
- package/packages/types/index.ts +21 -0
- package/packages/types/modules/apply_discount:response.d.ts +32 -0
- package/packages/types/package.json +1 -1
- package/packages/storefront/dist/client/HeaderButtons.75084c8f.js +0 -1
- package/packages/storefront/dist/client/assets/_...slug_.5d8e6131.css +0 -4
- package/packages/storefront/dist/client/chunks/HeaderButtons.d1f8a21f.js +0 -1
- package/packages/storefront/dist/client/chunks/preload-helper.f15ab524.js +0 -1
- package/packages/storefront/dist/client/chunks/runtime-dom.esm-bundler.9119f0ff.js +0 -1
- package/packages/storefront/dist/client/client.671d7334.js +0 -1
- package/packages/storefront/dist/client/page.b906f867.js +0 -1
- 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,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,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,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
|
+
};
|