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.
- package/.vscode/settings.json +3 -0
- package/CHANGELOG.md +50 -0
- package/action.yml +50 -10
- 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 -8
- 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/README.md +0 -15
- package/ecomplus-stores/tia-sonia/README.pt-BR.md +0 -15
- package/ecomplus-stores/tia-sonia/functions/core/package.json +1 -1
- package/ecomplus-stores/tia-sonia/functions/events/package.json +2 -2
- package/ecomplus-stores/tia-sonia/functions/modules/package.json +2 -2
- package/ecomplus-stores/tia-sonia/functions/passport/package.json +2 -2
- package/ecomplus-stores/tia-sonia/functions/ssr/package.json +7 -7
- package/ecomplus-stores/tia-sonia/functions/ssr/tailwind.config.cjs +1 -3
- package/ecomplus-stores/tia-sonia/functions/ssr/{uno.config.ts → uno.config.cjs} +1 -1
- package/ecomplus-stores/tia-sonia/package.json +1 -1
- package/package.json +14 -14
- 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/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 -1
- package/packages/apps/mercadopago/lib/mp-webhook.js.map +1 -1
- package/packages/apps/mercadopago/package.json +4 -4
- package/packages/apps/mercadopago/src/mp-create-transaction.ts +1 -1
- package/packages/apps/mercadopago/src/mp-webhook.ts +1 -1
- 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/package.json +5 -5
- 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 +7 -3
- package/packages/events/src/firebase.ts +8 -0
- package/packages/firebase/lib/config.d.ts +15 -1
- package/packages/firebase/lib/config.js +28 -1
- package/packages/firebase/lib/config.js.map +1 -1
- package/packages/firebase/lib/helpers/pubsub.d.ts +2 -2
- package/packages/firebase/package.json +5 -5
- package/packages/firebase/src/config.ts +31 -1
- package/packages/i18n/package.json +1 -1
- package/packages/modules/lib/firebase/call-app-module.js +36 -0
- package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
- package/packages/modules/package.json +9 -6
- package/packages/modules/schemas/apply_discount.cjs +47 -0
- package/packages/modules/src/firebase/call-app-module.ts +36 -0
- package/packages/passport/lib/firebase/authenticate-customer.js +1 -1
- package/packages/passport/lib/firebase/authenticate-customer.js.map +1 -1
- package/packages/passport/package.json +3 -3
- package/packages/passport/src/firebase/authenticate-customer.ts +2 -2
- package/packages/ssr/package.json +8 -8
- package/packages/storefront/.eslintrc.cjs +4 -0
- package/packages/storefront/astro.config.mjs +12 -6
- 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.0c5ba697.js → LoginForm.7e9c481c.js} +4 -4
- package/packages/storefront/dist/client/chunks/runtime-dom.esm-bundler.1b578f5a.js +1 -0
- package/packages/storefront/dist/client/{client.69fdbd1b.js → client.75c18572.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 +10832 -13568
- package/packages/storefront/dist/server/manifest.webmanifest +1 -1
- package/packages/storefront/package.json +22 -18
- 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 +29 -130
- 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/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 -5
- package/packages/storefront/src/lib/ssr-context.ts +3 -3
- package/packages/storefront/src/lib/state/shopping-cart/add-cart-item.ts +37 -57
- package/packages/storefront/src/lib/state/shopping-cart/parse-product.ts +36 -0
- package/packages/storefront/src/lib/state/shopping-cart.ts +32 -1
- 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 +142 -113
- 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.b5b4a939.js +0 -1
- package/packages/storefront/dist/client/assets/_...slug_.8d138f36.css +0 -4
- package/packages/storefront/dist/client/chunks/HeaderButtons.308edb4d.js +0 -1
- package/packages/storefront/dist/client/chunks/runtime-dom.esm-bundler.f00ab3bd.js +0 -1
- package/packages/storefront/dist/client/page.33c44e88.js +0 -1
- package/packages/storefront/uno.config.ts +0 -167
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_id": "5a674f224e0dcec2c3353d9d",
|
|
3
|
+
"created_at": "2017-11-19T13:10:00.612Z",
|
|
4
|
+
"store_id": 100,
|
|
5
|
+
"name": "Minha Loja Online",
|
|
6
|
+
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
|
7
|
+
"segment_id": 23,
|
|
8
|
+
"doc_type": "CNPJ",
|
|
9
|
+
"doc_number": "12345678901234",
|
|
10
|
+
"corporate_name": "Minha Loja Online LTDA",
|
|
11
|
+
"address": "Rua Exemplar 100, Bairro Examplar, São Paulo, SP",
|
|
12
|
+
"phone": "31988887777",
|
|
13
|
+
"representant_name": "Fulano Ciclano",
|
|
14
|
+
"representant_email": "fulano@sample.shop.eg",
|
|
15
|
+
"contact_email": "contato@sample.shop.eg",
|
|
16
|
+
"financial_email": "financeiro@sample.shop.eg",
|
|
17
|
+
"logo": {
|
|
18
|
+
"url": "https://sample.shop.eg/assets/logo.png",
|
|
19
|
+
"size": "120x80"
|
|
20
|
+
},
|
|
21
|
+
"brand_colors": {
|
|
22
|
+
"primary": "#03a9b3",
|
|
23
|
+
"secondary": "#ffffff"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ecomAuthenticationId": "",
|
|
3
|
+
"ecomApiKey": "",
|
|
4
|
+
"ecomStoreId": "",
|
|
5
|
+
"apiKey": "",
|
|
6
|
+
"from": {
|
|
7
|
+
"email": "",
|
|
8
|
+
"name": ""
|
|
9
|
+
},
|
|
10
|
+
"to": [
|
|
11
|
+
{
|
|
12
|
+
"email": "",
|
|
13
|
+
"name": ""
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"templateIdOrders": "",
|
|
17
|
+
"templateIdCarts": "",
|
|
18
|
+
"templateIdProducts": ""
|
|
19
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ecomAuthenticationId": "",
|
|
3
|
+
"ecomApiKey": "",
|
|
4
|
+
"ecomStoreId": "",
|
|
5
|
+
"smtp": {
|
|
6
|
+
"host": "",
|
|
7
|
+
"port": "",
|
|
8
|
+
"user": "",
|
|
9
|
+
"pass": ""
|
|
10
|
+
},
|
|
11
|
+
"from": {
|
|
12
|
+
"email": "",
|
|
13
|
+
"name": ""
|
|
14
|
+
},
|
|
15
|
+
"to": [
|
|
16
|
+
{
|
|
17
|
+
"email": "",
|
|
18
|
+
"name": ""
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies */
|
|
2
|
+
import url from 'url';
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import { test, expect } from 'vitest';
|
|
5
|
+
import email, { sendGrid } from '../src/index';
|
|
6
|
+
|
|
7
|
+
const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
|
|
8
|
+
|
|
9
|
+
const readFile = (path: string) => fs.readFileSync(`${__dirname}/${path}`, 'utf-8');
|
|
10
|
+
|
|
11
|
+
const readJson = (path: string) => JSON.parse(readFile(path));
|
|
12
|
+
|
|
13
|
+
const config = readJson('config-sendgrid.json');
|
|
14
|
+
const order = readJson('assets/order.json');
|
|
15
|
+
const store = readJson('/assets/store.json');
|
|
16
|
+
const customer = readJson('/assets/customer.json');
|
|
17
|
+
const templateNewOrder = readFile('templates/new-order.ejs');
|
|
18
|
+
|
|
19
|
+
const header = {
|
|
20
|
+
to: config.to,
|
|
21
|
+
subject: '',
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
process.env.ECOM_STORE_ID = config.ecomStoreId;
|
|
25
|
+
process.env.ECOM_AUTHENTICATION_ID = config.ecomAuthenticationId;
|
|
26
|
+
process.env.ECOM_API_KEY = config.ecomApiKey;
|
|
27
|
+
|
|
28
|
+
process.env.MAIL_SENDER = config.from.email;
|
|
29
|
+
process.env.MAIL_SENDER_NAME = config.from.name;
|
|
30
|
+
|
|
31
|
+
const timeOut = 10000;
|
|
32
|
+
|
|
33
|
+
test('Error settings not found', async () => {
|
|
34
|
+
try {
|
|
35
|
+
await email.send({
|
|
36
|
+
...header,
|
|
37
|
+
templateData: {
|
|
38
|
+
store,
|
|
39
|
+
order,
|
|
40
|
+
customer,
|
|
41
|
+
},
|
|
42
|
+
template: templateNewOrder,
|
|
43
|
+
});
|
|
44
|
+
} catch (err: any) {
|
|
45
|
+
expect(err.message).toBe('Provider settings or smtp not found');
|
|
46
|
+
}
|
|
47
|
+
}, timeOut);
|
|
48
|
+
|
|
49
|
+
test('Error template not found', async () => {
|
|
50
|
+
process.env.SENDGRID_API_KEY = config.apiKey;
|
|
51
|
+
try {
|
|
52
|
+
await email.send({
|
|
53
|
+
...header,
|
|
54
|
+
templateData: {
|
|
55
|
+
store,
|
|
56
|
+
order,
|
|
57
|
+
customer,
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
} catch (err: any) {
|
|
61
|
+
expect(err.message).toBe('TemplateId, template or html not found');
|
|
62
|
+
}
|
|
63
|
+
}, timeOut);
|
|
64
|
+
|
|
65
|
+
test('Send email with templateId for order', async () => {
|
|
66
|
+
header.subject = 'Test email with order templateId';
|
|
67
|
+
const data = await email.send({
|
|
68
|
+
...header,
|
|
69
|
+
templateData: {
|
|
70
|
+
store,
|
|
71
|
+
order,
|
|
72
|
+
customer,
|
|
73
|
+
},
|
|
74
|
+
templateId: config.templateIdOrders,
|
|
75
|
+
});
|
|
76
|
+
expect(data?.status).toBe(202);
|
|
77
|
+
}, timeOut);
|
|
78
|
+
|
|
79
|
+
test('Send email with template for order', async () => {
|
|
80
|
+
header.subject = 'Test email with order template';
|
|
81
|
+
const data = await email.send({
|
|
82
|
+
...header,
|
|
83
|
+
templateData: {
|
|
84
|
+
store,
|
|
85
|
+
order,
|
|
86
|
+
customer,
|
|
87
|
+
},
|
|
88
|
+
template: templateNewOrder,
|
|
89
|
+
});
|
|
90
|
+
expect(data?.status).toBe(202);
|
|
91
|
+
}, timeOut);
|
|
92
|
+
|
|
93
|
+
test('Send email retry with template for templateId error', async () => {
|
|
94
|
+
header.subject = 'Test retry email';
|
|
95
|
+
const data = await email.send({
|
|
96
|
+
...header,
|
|
97
|
+
templateData: {
|
|
98
|
+
store,
|
|
99
|
+
order,
|
|
100
|
+
customer,
|
|
101
|
+
},
|
|
102
|
+
templateId: 'd-00000000000000000000000000000000',
|
|
103
|
+
template: templateNewOrder,
|
|
104
|
+
});
|
|
105
|
+
expect(data?.status).toBe(202);
|
|
106
|
+
}, timeOut * 1.5);
|
|
107
|
+
|
|
108
|
+
test('Error templateId not found', async () => {
|
|
109
|
+
header.subject = 'Test email, templateId error';
|
|
110
|
+
try {
|
|
111
|
+
await email.send({
|
|
112
|
+
...header,
|
|
113
|
+
templateData: {
|
|
114
|
+
store,
|
|
115
|
+
order,
|
|
116
|
+
customer,
|
|
117
|
+
},
|
|
118
|
+
templateId: 'd-00000000000000000000000000000000',
|
|
119
|
+
});
|
|
120
|
+
} catch (err: any) {
|
|
121
|
+
expect(err.response.status).toBe(400);
|
|
122
|
+
}
|
|
123
|
+
}, timeOut);
|
|
124
|
+
|
|
125
|
+
test('Unauthorized Error API Key', async () => {
|
|
126
|
+
sendGrid.setConfig('dadasdas');
|
|
127
|
+
header.subject = 'Test email, Unauthorized Error API Key';
|
|
128
|
+
try {
|
|
129
|
+
await email.send({
|
|
130
|
+
...header,
|
|
131
|
+
templateData: {
|
|
132
|
+
store,
|
|
133
|
+
order,
|
|
134
|
+
customer,
|
|
135
|
+
},
|
|
136
|
+
template: templateNewOrder,
|
|
137
|
+
});
|
|
138
|
+
} catch (err: any) {
|
|
139
|
+
expect(err.response.status).toBe(401);
|
|
140
|
+
}
|
|
141
|
+
}, timeOut);
|
|
142
|
+
|
|
143
|
+
test('Back to original sendGrid settings', async () => {
|
|
144
|
+
sendGrid.setConfig(config.apiKey);
|
|
145
|
+
header.subject = 'Test email with order templateId';
|
|
146
|
+
const data = await email.send({
|
|
147
|
+
...header,
|
|
148
|
+
templateData: {
|
|
149
|
+
store,
|
|
150
|
+
order,
|
|
151
|
+
customer,
|
|
152
|
+
},
|
|
153
|
+
templateId: config.templateIdOrders,
|
|
154
|
+
});
|
|
155
|
+
expect(data?.status).toBe(202);
|
|
156
|
+
}, timeOut);
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies */
|
|
2
|
+
import url from 'url';
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import { test, expect } from 'vitest';
|
|
5
|
+
import email, { smtp as smtpSend } from '../src/index';
|
|
6
|
+
|
|
7
|
+
const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
|
|
8
|
+
|
|
9
|
+
const readFile = (path: string) => fs.readFileSync(`${__dirname}/${path}`, 'utf-8');
|
|
10
|
+
|
|
11
|
+
const readJson = (path: string) => JSON.parse(readFile(path));
|
|
12
|
+
|
|
13
|
+
const config = readJson('config-smtp.json');
|
|
14
|
+
const order = readJson('assets/order.json');
|
|
15
|
+
const store = readJson('assets/store.json');
|
|
16
|
+
const customer = readJson('assets/customer.json');
|
|
17
|
+
const templateNewOrder = readFile('templates/new-order.ejs');
|
|
18
|
+
|
|
19
|
+
const header = {
|
|
20
|
+
to: config.to,
|
|
21
|
+
subject: '',
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const {
|
|
25
|
+
ecomStoreId,
|
|
26
|
+
ecomAuthenticationId,
|
|
27
|
+
ecomApiKey,
|
|
28
|
+
smtp,
|
|
29
|
+
} = config;
|
|
30
|
+
|
|
31
|
+
process.env.ECOM_STORE_ID = ecomStoreId;
|
|
32
|
+
process.env.ECOM_AUTHENTICATION_ID = ecomAuthenticationId;
|
|
33
|
+
process.env.ECOM_API_KEY = ecomApiKey;
|
|
34
|
+
|
|
35
|
+
process.env.MAIL_SENDER = config.from.email;
|
|
36
|
+
process.env.MAIL_SENDER_NAME = config.from.name;
|
|
37
|
+
|
|
38
|
+
const timeOut = 10000;
|
|
39
|
+
|
|
40
|
+
test('Error settings not found', async () => {
|
|
41
|
+
try {
|
|
42
|
+
await email.send({
|
|
43
|
+
...header,
|
|
44
|
+
templateData: {
|
|
45
|
+
store,
|
|
46
|
+
order,
|
|
47
|
+
customer,
|
|
48
|
+
},
|
|
49
|
+
template: templateNewOrder,
|
|
50
|
+
});
|
|
51
|
+
} catch (err: any) {
|
|
52
|
+
expect(err.message).toBe('Provider settings or smtp not found');
|
|
53
|
+
}
|
|
54
|
+
}, timeOut);
|
|
55
|
+
|
|
56
|
+
test('Error template not found', async () => {
|
|
57
|
+
process.env.SMTP_HOST = smtp.host;
|
|
58
|
+
process.env.SMTP_PORT = smtp.port;
|
|
59
|
+
process.env.SMTP_USER = smtp.user;
|
|
60
|
+
process.env.SMTP_PASS = smtp.pass;
|
|
61
|
+
|
|
62
|
+
try {
|
|
63
|
+
await email.send({
|
|
64
|
+
...header,
|
|
65
|
+
templateData: {
|
|
66
|
+
store,
|
|
67
|
+
order,
|
|
68
|
+
customer,
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
} catch (err: any) {
|
|
72
|
+
expect(err?.message).toBe('TemplateId, template or html not found');
|
|
73
|
+
}
|
|
74
|
+
}, timeOut);
|
|
75
|
+
|
|
76
|
+
test('Send email with template for order', async () => {
|
|
77
|
+
header.subject = 'Test email with order template, using smtp';
|
|
78
|
+
const data = await email.send({
|
|
79
|
+
...header,
|
|
80
|
+
templateData: {
|
|
81
|
+
store,
|
|
82
|
+
order,
|
|
83
|
+
customer,
|
|
84
|
+
},
|
|
85
|
+
template: templateNewOrder,
|
|
86
|
+
});
|
|
87
|
+
expect(data?.status).toBe(202);
|
|
88
|
+
}, timeOut);
|
|
89
|
+
|
|
90
|
+
test('Smtp configuration error', async () => {
|
|
91
|
+
smtpSend.setConfig({
|
|
92
|
+
host: 'smtp',
|
|
93
|
+
port: 453,
|
|
94
|
+
secure: true,
|
|
95
|
+
auth: { user: 'user', pass: 'pass' },
|
|
96
|
+
});
|
|
97
|
+
try {
|
|
98
|
+
header.subject = 'Test email with order template, using smtp';
|
|
99
|
+
await email.send({
|
|
100
|
+
...header,
|
|
101
|
+
templateData: {
|
|
102
|
+
store,
|
|
103
|
+
order,
|
|
104
|
+
customer,
|
|
105
|
+
},
|
|
106
|
+
template: templateNewOrder,
|
|
107
|
+
});
|
|
108
|
+
// expect(data?.status).toBe(202);
|
|
109
|
+
} catch (err: any) {
|
|
110
|
+
expect(err.message).toBe('getaddrinfo ENOTFOUND smtp');
|
|
111
|
+
}
|
|
112
|
+
}, timeOut);
|
|
113
|
+
|
|
114
|
+
test('Back to original smtp settings', async () => {
|
|
115
|
+
smtpSend.setConfig({
|
|
116
|
+
host: smtp.host,
|
|
117
|
+
port: smtp.port,
|
|
118
|
+
secure: false,
|
|
119
|
+
auth: { user: smtp.user, pass: smtp.pass },
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
header.subject = 'Back to original smtp settings, using smtp';
|
|
123
|
+
const data = await email.send({
|
|
124
|
+
...header,
|
|
125
|
+
templateData: {
|
|
126
|
+
store,
|
|
127
|
+
order,
|
|
128
|
+
customer,
|
|
129
|
+
},
|
|
130
|
+
template: templateNewOrder,
|
|
131
|
+
});
|
|
132
|
+
expect(data?.status).toBe(202);
|
|
133
|
+
}, timeOut * 1.5);
|
|
134
|
+
|
|
135
|
+
test('Another email send test, to confirm smtp configuration', async () => {
|
|
136
|
+
header.subject = 'Test email to confirm smtp configuration';
|
|
137
|
+
const data = await email.send({
|
|
138
|
+
...header,
|
|
139
|
+
templateData: {
|
|
140
|
+
store,
|
|
141
|
+
order,
|
|
142
|
+
customer,
|
|
143
|
+
},
|
|
144
|
+
template: templateNewOrder,
|
|
145
|
+
});
|
|
146
|
+
expect(data?.status).toBe(202);
|
|
147
|
+
}, timeOut);
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
|
|
3
|
+
<body>
|
|
4
|
+
<h1>Hello <%= customer.display_name %> ! We just recived your order <a href="<%= order.status_link %>">#<%=
|
|
5
|
+
order.number %></a>
|
|
6
|
+
</h1>
|
|
7
|
+
<p> Your package will be delivered in
|
|
8
|
+
<% order.shipping_lines.forEach(shipping_line=> { %>
|
|
9
|
+
<%= shipping_line.delivery_time.days %> working days
|
|
10
|
+
<% }) %>
|
|
11
|
+
</p>
|
|
12
|
+
|
|
13
|
+
<h3> Order details:</h3>
|
|
14
|
+
<ul>
|
|
15
|
+
<% order.items.forEach(item=> { %>
|
|
16
|
+
<li>
|
|
17
|
+
<%= item.name %> x <%= item.quantity %>
|
|
18
|
+
<br />
|
|
19
|
+
|
|
20
|
+
Price: <%= (item.final_price || item.price) %> Total: <%= (item.final_price || item.price)* item.quantity %>
|
|
21
|
+
</li>
|
|
22
|
+
<% }) %>
|
|
23
|
+
|
|
24
|
+
</ul>
|
|
25
|
+
<p>
|
|
26
|
+
Subtotal: <%= order.currency_symbol %>
|
|
27
|
+
<%= order.amount.subtotal %> <br>
|
|
28
|
+
Freight: <%= order.currency_symbol %>
|
|
29
|
+
<%= order.amount.freight %> <br>
|
|
30
|
+
Discount: <%= order.currency_symbol %>
|
|
31
|
+
<%= order.amount.discount %> <br>
|
|
32
|
+
Total: <%= order.currency_symbol %>
|
|
33
|
+
<%= order.amount.total %>
|
|
34
|
+
</p>
|
|
35
|
+
</body>
|
|
36
|
+
|
|
37
|
+
</html>
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Stores, Orders, Carts, Products, Customers } from '@cloudcommerce/types'
|
|
2
|
+
import { DataEmailSendGrid } from './sendgrid'
|
|
3
|
+
|
|
4
|
+
type EmailAdrress = {
|
|
5
|
+
name: string,
|
|
6
|
+
email: string,
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
type EmailHeaders = {
|
|
10
|
+
from: EmailAdrress,
|
|
11
|
+
to: EmailAdrress[],
|
|
12
|
+
subject: string,
|
|
13
|
+
cc?: EmailAdrress[],
|
|
14
|
+
sender?: EmailAdrress,
|
|
15
|
+
replyTo?: EmailAdrress | EmailAdrress[]
|
|
16
|
+
bcc?: EmailAdrress[],
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
type TemplateData = { [key: string]: any }
|
|
20
|
+
|
|
21
|
+
// TODO: in the future the template can be an object, to accept other types of template besides EJS
|
|
22
|
+
type Template = string
|
|
23
|
+
|
|
24
|
+
type EmailConfig = {
|
|
25
|
+
to: EmailAdrress[]
|
|
26
|
+
subject: string,
|
|
27
|
+
cc?: EmailAdrress[],
|
|
28
|
+
sender?: EmailAdrress,
|
|
29
|
+
bcc?: EmailAdrress[],
|
|
30
|
+
text?: string,
|
|
31
|
+
html?: string,
|
|
32
|
+
templateData?: TemplateData,
|
|
33
|
+
templateId?: string,
|
|
34
|
+
template?: string,
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// https://nodemailer.com/smtp/oauth2/
|
|
38
|
+
|
|
39
|
+
type SmtpAuth = {
|
|
40
|
+
user: string,
|
|
41
|
+
pass: string,
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
type SmtpAuthToken = {
|
|
45
|
+
type: 'OAuth2',
|
|
46
|
+
user: string,
|
|
47
|
+
accessToken: string,
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
type SmtpAuth3LO = {
|
|
51
|
+
type: 'OAuth2',
|
|
52
|
+
user: string,
|
|
53
|
+
clientId: string,
|
|
54
|
+
clientSecret: string,
|
|
55
|
+
refreshToken: string,
|
|
56
|
+
accessToken: string,
|
|
57
|
+
expires: number,
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
type SmtpAuth2LO = {
|
|
61
|
+
type: 'OAuth2',
|
|
62
|
+
user: string,
|
|
63
|
+
serviceClient: string,
|
|
64
|
+
privateKey?: string,
|
|
65
|
+
accessToken: string,
|
|
66
|
+
expires: number,
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
type SmtpConfig = {
|
|
70
|
+
host: string,
|
|
71
|
+
port: number,
|
|
72
|
+
secure: boolean,
|
|
73
|
+
auth: SmtpAuth | SmtpAuthToken | SmtpAuth2LO | SmtpAuth3LO
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export type {
|
|
77
|
+
EmailAdrress,
|
|
78
|
+
EmailHeaders,
|
|
79
|
+
TemplateData,
|
|
80
|
+
Template,
|
|
81
|
+
EmailConfig,
|
|
82
|
+
DataEmailSendGrid,
|
|
83
|
+
SmtpConfig,
|
|
84
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { EmailHeaders, TemplateData, EmailAdrress } from './index';
|
|
2
|
+
|
|
3
|
+
type DataEmailSendGrid = {
|
|
4
|
+
personalizations: [
|
|
5
|
+
{
|
|
6
|
+
to: EmailHeaders['to'],
|
|
7
|
+
cc?: EmailAdrress[],
|
|
8
|
+
bcc?: EmailAdrress[],
|
|
9
|
+
dynamic_template_data?: TemplateData,
|
|
10
|
+
substitutions?: TemplateData
|
|
11
|
+
},
|
|
12
|
+
],
|
|
13
|
+
from: EmailAdrress,
|
|
14
|
+
reply_to?: EmailAdrress,
|
|
15
|
+
reply_to_list?: EmailAdrress[],
|
|
16
|
+
subject: string,
|
|
17
|
+
template_id?: string,
|
|
18
|
+
content?: [
|
|
19
|
+
{
|
|
20
|
+
type: 'text/html',
|
|
21
|
+
value: string
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type {
|
|
27
|
+
DataEmailSendGrid
|
|
28
|
+
};
|
|
@@ -4,4 +4,12 @@ import '@cloudcommerce/firebase/lib/init';
|
|
|
4
4
|
export * from '@cloudcommerce/app-tiny-erp';
|
|
5
5
|
|
|
6
6
|
export * from '@cloudcommerce/app-mercadopago/webhook';
|
|
7
|
+
|
|
8
|
+
export * from '@cloudcommerce/app-emails';
|
|
9
|
+
|
|
10
|
+
export * from '@cloudcommerce/app-pagarme/webhook';
|
|
11
|
+
|
|
12
|
+
export * from '@cloudcommerce/app-pix/webhook';
|
|
13
|
+
|
|
14
|
+
export * from '@cloudcommerce/app-infinitepay/webhook';
|
|
7
15
|
// # sourceMappingURL=firebase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase.js","sourceRoot":"","sources":["../src/firebase.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,kCAAkC,CAAC;AAE1C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,wCAAwC,CAAC"}
|
|
1
|
+
{"version":3,"file":"firebase.js","sourceRoot":"","sources":["../src/firebase.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,kCAAkC,CAAC;AAE1C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,wCAAwC,CAAC;AAEvD,cAAc,2BAA2B,CAAC;AAE1C,cAAc,oCAAoC,CAAC;AAEnD,cAAc,gCAAgC,CAAC;AAE/C,cAAc,wCAAwC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcommerce/events",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.128",
|
|
5
5
|
"description": "E-Com Plus Cloud Commerce app events",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"exports": {
|
|
@@ -24,11 +24,15 @@
|
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@cloudcommerce/api": "workspace:*",
|
|
27
|
+
"@cloudcommerce/app-emails": "workspace:*",
|
|
28
|
+
"@cloudcommerce/app-infinitepay": "workspace:*",
|
|
27
29
|
"@cloudcommerce/app-mercadopago": "workspace:*",
|
|
30
|
+
"@cloudcommerce/app-pagarme": "workspace:*",
|
|
31
|
+
"@cloudcommerce/app-pix": "workspace:*",
|
|
28
32
|
"@cloudcommerce/app-tiny-erp": "workspace:*",
|
|
29
33
|
"@cloudcommerce/firebase": "workspace:*",
|
|
30
|
-
"firebase-admin": "^11.
|
|
31
|
-
"firebase-functions": "^4.0
|
|
34
|
+
"firebase-admin": "^11.3.0",
|
|
35
|
+
"firebase-functions": "^4.1.0",
|
|
32
36
|
"source-map-support": "^0.5.21"
|
|
33
37
|
},
|
|
34
38
|
"devDependencies": {
|
|
@@ -4,3 +4,11 @@ import '@cloudcommerce/firebase/lib/init';
|
|
|
4
4
|
export * from '@cloudcommerce/app-tiny-erp';
|
|
5
5
|
|
|
6
6
|
export * from '@cloudcommerce/app-mercadopago/webhook';
|
|
7
|
+
|
|
8
|
+
export * from '@cloudcommerce/app-emails';
|
|
9
|
+
|
|
10
|
+
export * from '@cloudcommerce/app-pagarme/webhook';
|
|
11
|
+
|
|
12
|
+
export * from '@cloudcommerce/app-pix/webhook';
|
|
13
|
+
|
|
14
|
+
export * from '@cloudcommerce/app-infinitepay/webhook';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ApiEventName } from '@cloudcommerce/types';
|
|
1
|
+
import type { ApiEventName, CmsSettings } from '@cloudcommerce/types';
|
|
2
2
|
import { BaseConfig } from '@cloudcommerce/config';
|
|
3
3
|
declare const mergeConfig: {
|
|
4
4
|
hello: string;
|
|
@@ -31,7 +31,21 @@ declare const mergeConfig: {
|
|
|
31
31
|
mercadoPago: {
|
|
32
32
|
appId: number;
|
|
33
33
|
};
|
|
34
|
+
emails: {
|
|
35
|
+
appId: number;
|
|
36
|
+
events: ApiEventName[];
|
|
37
|
+
};
|
|
38
|
+
pagarMe: {
|
|
39
|
+
appId: number;
|
|
40
|
+
};
|
|
41
|
+
pix: {
|
|
42
|
+
appId: number;
|
|
43
|
+
};
|
|
44
|
+
infinitePay: {
|
|
45
|
+
appId: number;
|
|
46
|
+
};
|
|
34
47
|
};
|
|
48
|
+
cmsSettings: CmsSettings;
|
|
35
49
|
};
|
|
36
50
|
declare const _default: {
|
|
37
51
|
get(): BaseConfig & typeof mergeConfig;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { join as joinPath } from 'node:path';
|
|
2
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
1
3
|
import config from '@cloudcommerce/config';
|
|
2
4
|
|
|
3
5
|
const tinyErpEvents = [
|
|
@@ -6,9 +8,20 @@ const tinyErpEvents = [
|
|
|
6
8
|
'products-priceSet',
|
|
7
9
|
'applications-dataSet',
|
|
8
10
|
];
|
|
11
|
+
const emailsEvents = [
|
|
12
|
+
'orders-new',
|
|
13
|
+
'orders-anyStatusSet',
|
|
14
|
+
];
|
|
9
15
|
const {
|
|
10
|
-
DEPLOY_REGION, SSR_DEPLOY_REGION, SSR_DEPLOY_MEMORY, SSR_DEPLOY_TIMEOUT_SECONDS, SSR_DEPLOY_MIN_INSTANCES,
|
|
16
|
+
SETTINGS_FILEPATH, DEPLOY_REGION, SSR_DEPLOY_REGION, SSR_DEPLOY_MEMORY, SSR_DEPLOY_TIMEOUT_SECONDS, SSR_DEPLOY_MIN_INSTANCES,
|
|
11
17
|
} = process.env;
|
|
18
|
+
let cmsSettingsFile = SETTINGS_FILEPATH && existsSync(SETTINGS_FILEPATH)
|
|
19
|
+
? SETTINGS_FILEPATH
|
|
20
|
+
: joinPath(process.cwd(), 'content/settings.json');
|
|
21
|
+
if (!existsSync(cmsSettingsFile)) {
|
|
22
|
+
cmsSettingsFile = joinPath(process.cwd(), 'functions/ssr/content/settings.json');
|
|
23
|
+
}
|
|
24
|
+
const cmsSettings = JSON.parse(readFileSync(cmsSettingsFile, 'utf-8'));
|
|
12
25
|
const mergeConfig = {
|
|
13
26
|
hello: 'from @cloudcommerce/firebase',
|
|
14
27
|
httpsFunctionOptions: {
|
|
@@ -40,7 +53,21 @@ const mergeConfig = {
|
|
|
40
53
|
mercadoPago: {
|
|
41
54
|
appId: 111223,
|
|
42
55
|
},
|
|
56
|
+
emails: {
|
|
57
|
+
appId: 1243,
|
|
58
|
+
events: emailsEvents,
|
|
59
|
+
},
|
|
60
|
+
pagarMe: {
|
|
61
|
+
appId: 117391,
|
|
62
|
+
},
|
|
63
|
+
pix: {
|
|
64
|
+
appId: 101827,
|
|
65
|
+
},
|
|
66
|
+
infinitePay: {
|
|
67
|
+
appId: 110373,
|
|
68
|
+
},
|
|
43
69
|
},
|
|
70
|
+
cmsSettings,
|
|
44
71
|
};
|
|
45
72
|
config.set(mergeConfig);
|
|
46
73
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,MAAsB,MAAM,uBAAuB,CAAC;AAE3D,MAAM,aAAa,GAAmB;IACpC,qBAAqB;IACrB,cAAc;IACd,mBAAmB;IACnB,sBAAsB;CACvB,CAAC;AAEF,MAAM,EACJ,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,GACzB,GAAG,OAAO,CAAC,GAAG,CAAC;AAEhB,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,8BAA8B;IACrC,oBAAoB,EAAE;QACpB,MAAM,EAAE,aAAa,IAAI,oBAAoB;KAC9C;IACD,kBAAkB,EAAE;QAClB,MAAM,EAAE,iBAAiB,IAAI,aAAa;QAC1C,MAAM,EAAG,iBAA6D,IAAI,QAAQ;QAClF,cAAc,EAAE,0BAA0B,CAAC,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;QACpF,YAAY,EAAE,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9E;IACD,IAAI,EAAE;QACJ,SAAS,EAAE;YACT,KAAK,EAAE,IAAI;SACZ;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,IAAI;SACZ;QACD,cAAc,EAAE;YACd,KAAK,EAAE,IAAI;SACZ;QACD,MAAM,EAAE;YACN,KAAK,EAAE,IAAI;SACZ;QACD,OAAO,EAAE;YACP,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,aAAa;SACtB;QACD,WAAW,EAAE;YACX,KAAK,EAAE,MAAM;SACd;KACF;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,MAAsB,MAAM,uBAAuB,CAAC;AAE3D,MAAM,aAAa,GAAmB;IACpC,qBAAqB;IACrB,cAAc;IACd,mBAAmB;IACnB,sBAAsB;CACvB,CAAC;AAEF,MAAM,YAAY,GAAmB;IACnC,YAAY;IACZ,qBAAqB;CACtB,CAAC;AAEF,MAAM,EACJ,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,GACzB,GAAG,OAAO,CAAC,GAAG,CAAC;AAEhB,IAAI,eAAe,GAAG,iBAAiB,IAAI,UAAU,CAAC,iBAAiB,CAAC;IACtE,CAAC,CAAC,iBAAiB;IACnB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAC,CAAC;AACrD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;IAChC,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qCAAqC,CAAC,CAAC;CAClF;AACD,MAAM,WAAW,GAAgB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;AAEpF,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,8BAA8B;IACrC,oBAAoB,EAAE;QACpB,MAAM,EAAE,aAAa,IAAI,oBAAoB;KAC9C;IACD,kBAAkB,EAAE;QAClB,MAAM,EAAE,iBAAiB,IAAI,aAAa;QAC1C,MAAM,EAAG,iBAA6D,IAAI,QAAQ;QAClF,cAAc,EAAE,0BAA0B,CAAC,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;QACpF,YAAY,EAAE,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9E;IACD,IAAI,EAAE;QACJ,SAAS,EAAE;YACT,KAAK,EAAE,IAAI;SACZ;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,IAAI;SACZ;QACD,cAAc,EAAE;YACd,KAAK,EAAE,IAAI;SACZ;QACD,MAAM,EAAE;YACN,KAAK,EAAE,IAAI;SACZ;QACD,OAAO,EAAE;YACP,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,aAAa;SACtB;QACD,WAAW,EAAE;YACX,KAAK,EAAE,MAAM;SACd;QACD,MAAM,EAAE;YACN,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,YAAY;SACrB;QACD,OAAO,EAAE;YACP,KAAK,EAAE,MAAM;SACd;QACD,GAAG,EAAE;YACH,KAAK,EAAE,MAAM;SACd;QACD,WAAW,EAAE;YACX,KAAK,EAAE,MAAM;SACd;KACF;IACD,WAAW;CACZ,CAAC;AACF,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAExB,eAAe,MAId,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AppEventsPayload } from '@cloudcommerce/types';
|
|
2
2
|
import functions from 'firebase-functions';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
type PubSubHandler<TMessage> = (json: TMessage, context: functions.EventContext, message: functions.pubsub.Message) => void;
|
|
4
|
+
type ApiEventHandler = PubSubHandler<AppEventsPayload>;
|
|
5
5
|
declare const createPubSubFunction: (pubSubTopic: string, fn: PubSubHandler<any>, eventMaxAgeMs?: number) => functions.CloudFunction<functions.pubsub.Message>;
|
|
6
6
|
declare const createAppEventsFunction: (appNameOrId: string | number, fn: ApiEventHandler, eventMaxAgeMs?: number) => functions.CloudFunction<functions.pubsub.Message>;
|
|
7
7
|
export default createPubSubFunction;
|