cloudcommerce 0.0.112 → 0.0.113

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/.gitmodules +1 -1
  2. package/CHANGELOG.md +9 -0
  3. package/{.ecomplus/stores → ecomplus-stores}/monocard/.firebaserc +0 -0
  4. package/{.ecomplus/stores → ecomplus-stores}/monocard/.github/renovate.json +0 -0
  5. package/{.ecomplus/stores → ecomplus-stores}/monocard/.github/workflows/build-and-deploy.yml +0 -0
  6. package/{.ecomplus/stores → ecomplus-stores}/monocard/.github/workflows/calibreapp-image-actions.yml +0 -0
  7. package/{.ecomplus/stores → ecomplus-stores}/monocard/.vscode/extensions.json +0 -0
  8. package/{.ecomplus/stores → ecomplus-stores}/monocard/.vscode/settings.json +0 -0
  9. package/{.ecomplus/stores → ecomplus-stores}/monocard/LICENSE.md +0 -0
  10. package/{.ecomplus/stores → ecomplus-stores}/monocard/README.md +0 -0
  11. package/{.ecomplus/stores → ecomplus-stores}/monocard/README.pt-BR.md +0 -0
  12. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/config.json +0 -0
  13. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/core/index.js +0 -0
  14. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/core/package.json +1 -1
  15. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/events/index.js +0 -0
  16. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/events/package.json +2 -2
  17. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/example.env +0 -0
  18. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/modules/index.js +0 -0
  19. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/modules/package.json +2 -2
  20. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/passport/index.js +0 -0
  21. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/passport/package.json +2 -2
  22. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/astro.config.mjs +0 -0
  23. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/blog.json +0 -0
  24. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/brands.json +0 -0
  25. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/categories.json +0 -0
  26. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/code.json +0 -0
  27. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/collections.json +0 -0
  28. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/contacts.json +0 -0
  29. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/footer.json +0 -0
  30. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/header.json +0 -0
  31. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/home.json +0 -0
  32. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/info.json +0 -0
  33. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/maintenance.json +0 -0
  34. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/menu.json +0 -0
  35. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/pages/contato.json +0 -0
  36. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/pages/entrega.json +0 -0
  37. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/pages/faq.json +0 -0
  38. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/pages/pagamentos.json +0 -0
  39. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/pages/privacidade.json +0 -0
  40. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/pages/sobre-nos.json +0 -0
  41. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/pages/termos.json +0 -0
  42. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/pages/trocas.json +0 -0
  43. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/posts/esta-loja-e-um-pwa.json +0 -0
  44. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/products.json +0 -0
  45. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/search.json +0 -0
  46. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/settings.json +7 -7
  47. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/social.json +0 -0
  48. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/widgets/analytics.json +0 -0
  49. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/widgets/compre-confie.json +0 -0
  50. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/widgets/ebit.json +0 -0
  51. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/widgets/fb-pixel.json +0 -0
  52. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/widgets/gmc-ratings.json +0 -0
  53. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/widgets/minicart.json +0 -0
  54. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/widgets/offers-notification.json +0 -0
  55. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/widgets/opinioes-verificadas.json +0 -0
  56. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/widgets/product-card.json +0 -0
  57. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/widgets/product.json +0 -0
  58. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/widgets/search-engine.json +0 -0
  59. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/widgets/search.json +0 -0
  60. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/widgets/tag-manager.json +0 -0
  61. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/widgets/tawkto.json +0 -0
  62. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/widgets/trustvox.json +0 -0
  63. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/content/widgets/user.json +0 -0
  64. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/index.js +0 -0
  65. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/package.json +4 -4
  66. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/admin/config.json +0 -0
  67. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/assets/cms-preview.css +0 -0
  68. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/assets/cms.css +0 -0
  69. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/assets/cvv.png +0 -0
  70. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/assets/icons/bootstrap-icons/font/storefront-icons.woff2 +0 -0
  71. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/assets/icons/feather-icons/font/storefront-icons.woff2 +0 -0
  72. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/assets/icons/font-awesome/font/storefront-icons.woff2 +0 -0
  73. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/assets/icons/line-awesome/font/storefront-icons.woff2 +0 -0
  74. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/assets/icons/tabler-icons/font/storefront-icons.woff2 +0 -0
  75. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/assets/img-placeholder.png +0 -0
  76. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/assets/payments.png +0 -0
  77. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/assets/ssl-safe.png +0 -0
  78. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/icon.png +0 -0
  79. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/large-icon.png +0 -0
  80. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/banner1.png +0 -0
  81. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/banner2.png +0 -0
  82. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/banner2.webp +0 -0
  83. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/favicon.png +0 -0
  84. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/headless.png +0 -0
  85. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/headphone.png +0 -0
  86. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/headphone.webp +0 -0
  87. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/icon.png +0 -0
  88. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/large-icon.png +0 -0
  89. package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/logo.png +0 -0
  90. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/og-image.png +0 -0
  91. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/passion.png +0 -0
  92. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/passion.webp +0 -0
  93. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/pwa-reliable.png +0 -0
  94. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/rect8589.png +0 -0
  95. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/rect859.png +0 -0
  96. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/rect89.png +0 -0
  97. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/rect89.webp +0 -0
  98. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/img/uploads/ssl-safe.png +0 -0
  99. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/public/robots.txt +0 -0
  100. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/src/env.d.ts +0 -0
  101. package/ecomplus-stores/monocard/functions/ssr/src/layouts/Pages.astro +23 -0
  102. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/src/pages/[...slug].astro +0 -0
  103. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/src/pages/fallback.astro +0 -0
  104. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/src/pages/index.astro +1 -3
  105. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/src/scripts/InlineScripts.astro +0 -0
  106. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/tailwind.config.cjs +0 -0
  107. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/tsconfig.json +0 -0
  108. package/{.ecomplus/stores → ecomplus-stores}/monocard/functions/ssr/uno.config.ts +0 -0
  109. package/{.ecomplus/stores → ecomplus-stores}/monocard/package.json +1 -1
  110. package/{.ecomplus/stores → ecomplus-stores}/monocard/scripts/install.sh +0 -0
  111. package/package.json +2 -1
  112. package/packages/api/package.json +1 -1
  113. package/packages/apps/correios/package.json +1 -1
  114. package/packages/apps/custom-shipping/package.json +1 -1
  115. package/packages/apps/discounts/package.json +1 -1
  116. package/packages/apps/frenet/package.json +1 -1
  117. package/packages/apps/mercadopago/CHANGELOG.md +1 -0
  118. package/packages/apps/mercadopago/README.md +1 -0
  119. package/packages/apps/mercadopago/assets/onload-expression.js +138 -0
  120. package/packages/apps/mercadopago/lib/index.d.ts +1 -0
  121. package/packages/apps/mercadopago/lib/index.js +3 -0
  122. package/packages/apps/mercadopago/lib/index.js.map +1 -0
  123. package/packages/apps/mercadopago/lib/mercadopago.d.ts +86 -0
  124. package/packages/apps/mercadopago/lib/mercadopago.js +15 -0
  125. package/packages/apps/mercadopago/lib/mercadopago.js.map +1 -0
  126. package/packages/apps/mercadopago/lib/mp-create-transaction.d.ts +85 -0
  127. package/packages/apps/mercadopago/lib/mp-create-transaction.js +270 -0
  128. package/packages/apps/mercadopago/lib/mp-create-transaction.js.map +1 -0
  129. package/packages/apps/mercadopago/lib/mp-list-payments.d.ts +7 -0
  130. package/packages/apps/mercadopago/lib/mp-list-payments.js +175 -0
  131. package/packages/apps/mercadopago/lib/mp-list-payments.js.map +1 -0
  132. package/packages/apps/mercadopago/lib/mp-webhook.d.ts +5 -0
  133. package/packages/apps/mercadopago/lib/mp-webhook.js +119 -0
  134. package/packages/apps/mercadopago/lib/mp-webhook.js.map +1 -0
  135. package/packages/apps/mercadopago/package.json +36 -0
  136. package/packages/apps/mercadopago/scripts/build.sh +5 -0
  137. package/packages/apps/mercadopago/src/index.ts +2 -0
  138. package/packages/apps/mercadopago/src/mercadopago.ts +16 -0
  139. package/packages/apps/mercadopago/src/mp-create-transaction.ts +290 -0
  140. package/packages/apps/mercadopago/src/mp-list-payments.ts +198 -0
  141. package/packages/apps/mercadopago/src/mp-webhook.ts +136 -0
  142. package/packages/apps/mercadopago/tsconfig.json +6 -0
  143. package/packages/apps/mercadopago/webhook.js +1 -0
  144. package/packages/apps/tiny-erp/package.json +1 -1
  145. package/packages/cli/lib/index.js +4 -0
  146. package/packages/cli/package.json +1 -1
  147. package/packages/cli/src/index.ts +5 -0
  148. package/packages/config/package.json +1 -1
  149. package/packages/events/lib/firebase.js +2 -0
  150. package/packages/events/lib/firebase.js.map +1 -1
  151. package/packages/events/package.json +2 -1
  152. package/packages/events/src/firebase.ts +2 -0
  153. package/packages/firebase/lib/config.d.ts +3 -0
  154. package/packages/firebase/lib/config.js +3 -0
  155. package/packages/firebase/lib/config.js.map +1 -1
  156. package/packages/firebase/package.json +1 -1
  157. package/packages/firebase/src/config.ts +3 -0
  158. package/packages/i18n/package.json +1 -1
  159. package/packages/modules/lib/firebase/call-app-module.js +14 -0
  160. package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
  161. package/packages/modules/package.json +2 -1
  162. package/packages/modules/src/firebase/call-app-module.ts +14 -0
  163. package/packages/passport/package.json +1 -1
  164. package/packages/ssr/package.json +1 -1
  165. package/packages/storefront/dist/server/entry.mjs +6 -4
  166. package/packages/storefront/package.json +1 -1
  167. package/packages/storefront/src/lib/layouts/Pages.astro +4 -3
  168. package/packages/storefront/src/lib/layouts/PagesHeader.astro +3 -0
  169. package/packages/types/package.json +1 -1
  170. package/pnpm-workspace.yaml +3 -3
  171. package/.ecomplus/stores/monocard/functions/ssr/public/img/uploads/logo.png +0 -0
  172. package/.ecomplus/stores/monocard/functions/ssr/public/img/uploads/logo.webp +0 -0
@@ -0,0 +1,198 @@
1
+ import type { AppModuleBody } from '@cloudcommerce/types';
2
+ import type{ ListPaymentsParams } from '@cloudcommerce/types/modules/list_payments:params';
3
+ import type{ ListPaymentsResponse } from '@cloudcommerce/types/modules/list_payments:response';
4
+ import * as path from 'path';
5
+ import * as fs from 'fs';
6
+ import url from 'url';
7
+
8
+ type Gateway = ListPaymentsResponse['payment_gateways'][number]
9
+ type CodePaymentMethod = Gateway['payment_method']['code']
10
+
11
+ const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
12
+
13
+ export default (data: AppModuleBody) => {
14
+ const { application } = data;
15
+ const params = data.params as ListPaymentsParams;
16
+ // https://apx-mods.e-com.plus/api/v1/list_payments/schema.json?store_id=100
17
+ const amount = params.amount || { total: undefined };
18
+ // const initialTotalAmount = amount.total;
19
+
20
+ const config = {
21
+ ...application.data,
22
+ ...application.hidden_data,
23
+ };
24
+
25
+ if (!config.mp_public_key || !config.mp_access_token) {
26
+ // must have configured PayPal app ID and secret
27
+ return {
28
+ error: 'LIST_PAYMENTS_ERR',
29
+ message: 'MP Public Key or Access Token is unset on app hidden data (merchant must configure the app)',
30
+ };
31
+ }
32
+
33
+ // start mounting response body
34
+ // https://apx-mods.e-com.plus/api/v1/list_payments/response_schema.json?store_id=100
35
+ const response: ListPaymentsResponse = {
36
+ payment_gateways: [],
37
+ };
38
+
39
+ // calculate discount value
40
+ const { discount } = config;
41
+ if (discount && discount.value) {
42
+ if (discount.apply_at !== 'freight') {
43
+ // default discount option
44
+ const { value } = discount;
45
+ response.discount_option = {
46
+ label: config.discount_option_label,
47
+ value,
48
+ };
49
+ // specify the discount type and min amount is optional
50
+ const discountTypeMinAmount = ['type', 'min_amount'];
51
+ discountTypeMinAmount.forEach(
52
+ (prop) => {
53
+ if (response.discount_option && discount[prop]) {
54
+ response.discount_option[prop] = discount[prop];
55
+ }
56
+ },
57
+ );
58
+ }
59
+
60
+ if (amount.total) {
61
+ // check amount value to apply discount
62
+ if (amount.total < discount.min_amount) {
63
+ discount.value = 0;
64
+ } else {
65
+ delete discount.min_amount;
66
+
67
+ // fix local amount object
68
+ const maxDiscount = amount[discount.apply_at || 'subtotal'];
69
+ let discountValue:number;
70
+ if (discount.type === 'percentage') {
71
+ discountValue = (maxDiscount * discount.value) / 100;
72
+ } else {
73
+ discountValue = discount.value;
74
+ if (discountValue > maxDiscount) {
75
+ discountValue = maxDiscount;
76
+ }
77
+ }
78
+ if (discountValue) {
79
+ amount.discount = (amount.discount || 0) + discountValue;
80
+ amount.total -= discountValue;
81
+ if (amount.total < 0) {
82
+ amount.total = 0;
83
+ }
84
+ }
85
+ }
86
+ }
87
+ }
88
+
89
+ // setup payment gateway objects
90
+ const intermediator = {
91
+ code: 'mercadopago',
92
+ link: 'https://www.mercadopago.com.br',
93
+ name: 'Mercado Pago',
94
+ };
95
+ const listPaymentMethods = ['banking_billet', 'credit_card'];
96
+ if (config.account_deposit && config.account_deposit.key_pix) {
97
+ // pix Configured
98
+ listPaymentMethods.push('account_deposit');
99
+ }
100
+ listPaymentMethods.forEach((paymentMethod) => {
101
+ const isCreditCard = paymentMethod === 'credit_card';
102
+ const methodConfig = isCreditCard ? config : config[paymentMethod];
103
+ const minAmount = methodConfig.min_amount || 0;
104
+ const methodEnable = methodConfig.enable || (isCreditCard && !methodConfig.disable);
105
+ if (methodConfig && methodEnable && (amount.total === undefined || amount.total >= minAmount)) {
106
+ let label: string;
107
+ if (methodConfig.label) {
108
+ label = methodConfig.label;
109
+ } else if (isCreditCard) {
110
+ label = 'Cartão de crédito';
111
+ } else {
112
+ label = paymentMethod === 'account_deposit' ? 'Pix' : 'Boleto bancário';
113
+ }
114
+ const gateway:Gateway = {
115
+ label,
116
+ icon: methodConfig.icon,
117
+ text: methodConfig.text,
118
+ payment_method: {
119
+ code: paymentMethod as CodePaymentMethod,
120
+ name: `${label} - ${intermediator.name}`,
121
+ },
122
+ intermediator,
123
+ type: 'payment',
124
+ };
125
+
126
+ if (isCreditCard) {
127
+ if (!gateway.icon) {
128
+ // gateway.icon = `${baseUri}/checkout-stamp.png`; // TODO: baseUri
129
+ gateway.icon = 'https://us-central1-mercadopago-ecom.cloudfunctions.net/app/checkout-stamp.png';
130
+ }
131
+ gateway.js_client = {
132
+ script_uri: 'https://secure.mlstatic.com/sdk/javascript/v1/mercadopago.js',
133
+ onload_expression: `window.Mercadopago.setPublishableKey("${config.mp_public_key}");${
134
+ fs.readFileSync(path.join(__dirname, '../../assets/onload-expression.min.js'), 'utf8')}`,
135
+ cc_brand: {
136
+ function: '_mpBrand',
137
+ is_promise: true,
138
+ },
139
+ cc_hash: {
140
+ function: '_mpHash',
141
+ is_promise: true,
142
+ },
143
+ cc_installments: {
144
+ function: '_mpInstallments',
145
+ is_promise: true,
146
+ },
147
+ };
148
+
149
+ // default configured default installments option
150
+ const installmentsOption = config.installments_option;
151
+ if (installmentsOption && installmentsOption.max_number) {
152
+ response.installments_option = installmentsOption;
153
+ const minInstallment = installmentsOption.min_installment;
154
+
155
+ // optional configured installments list
156
+ if (amount.total && Array.isArray(config.installments) && config.installments.length) {
157
+ gateway.installment_options = [];
158
+ config.installments.forEach(({ number, interest }) => {
159
+ if (number >= 2) {
160
+ const value = amount.total / number;
161
+ if (gateway.installment_options && value >= minInstallment) {
162
+ gateway.installment_options.push({
163
+ number,
164
+ value: interest > 0 ? (value + value * interest) / 100 : value,
165
+ tax: Boolean(interest),
166
+ });
167
+ }
168
+ }
169
+ });
170
+ }
171
+ }
172
+ }
173
+
174
+ // check available discount by payment method
175
+ if (discount && discount.value && discount[paymentMethod] !== false) {
176
+ gateway.discount = {
177
+ apply_at: 'total',
178
+ type: 'fixed',
179
+ value: 0,
180
+ };
181
+ ['apply_at', 'type', 'value'].forEach(
182
+ (field) => {
183
+ if (gateway.discount && discount[field]) {
184
+ gateway.discount[field] = discount[field];
185
+ }
186
+ },
187
+ );
188
+ if (response.discount_option && !response.discount_option.label) {
189
+ response.discount_option.label = label;
190
+ }
191
+ }
192
+
193
+ response.payment_gateways.push(gateway);
194
+ }
195
+ });
196
+
197
+ return response;
198
+ };
@@ -0,0 +1,136 @@
1
+ /* eslint-disable import/prefer-default-export */
2
+ import '@cloudcommerce/firebase/lib/init';
3
+ import { logger } from 'firebase-functions';
4
+ import axios from 'axios';
5
+ import api from '@cloudcommerce/api';
6
+ // eslint-disable-next-line import/no-unresolved
7
+ import { getFirestore } from 'firebase-admin/firestore';
8
+ // eslint-disable-next-line import/no-unresolved
9
+ import * as functions from 'firebase-functions/v1';
10
+ import config from '@cloudcommerce/firebase/lib/config';
11
+ import { parsePaymentStatus } from './mp-create-transaction';
12
+
13
+ const ECHO_SKIP = 'SKIP';
14
+ let ECHO_SUCCESS = 'OK';
15
+
16
+ export const mercadopago = {
17
+ webhook: functions
18
+ .region(config.get().httpsFunctionOptions.region)
19
+ .https.onRequest(async (req, res) => {
20
+ const { method } = req;
21
+ if (method === 'POST') {
22
+ const { body } = req;
23
+ logger.log('>> Webhook MP #', JSON.stringify(body), ' <<');
24
+ try {
25
+ const app = (await api.get(
26
+ 'applications?app_id=111223&fields=hidden_data',
27
+ )).data.result;
28
+ const accessTokenMp = app[0].hidden_data?.mp_access_token;
29
+ if (accessTokenMp) {
30
+ const notification = req.body;
31
+ if (notification.type !== 'payment' || !notification.data || !notification.data.id) {
32
+ res.status(404).send(ECHO_SKIP);
33
+ }
34
+
35
+ // setTimeout(() => {
36
+ logger.log('> MP Notification for Payment #', notification.data.id);
37
+
38
+ const docRef = getFirestore().collection('mp_payments')
39
+ .doc(String(notification.data.id));
40
+
41
+ docRef.get()
42
+ .then(async (doc) => {
43
+ if (doc.exists) {
44
+ const data = doc.data();
45
+ const orderId = data?.order_id;
46
+ const order = (await api.get(
47
+ `orders/${orderId}`,
48
+ )).data;
49
+ logger.log('>order ', JSON.stringify(order), '<');
50
+ if (order && order.transactions) {
51
+ const payment = (await axios.get(
52
+ `https://api.mercadopago.com/v1/payments/${notification.data.id}`,
53
+ {
54
+ headers: {
55
+ Authorization: `Bearer ${accessTokenMp}`,
56
+ 'Content-Type': 'application/json',
57
+ },
58
+ },
59
+ )).data;
60
+ logger.log('>payment ', JSON.stringify(payment), ' <');
61
+ const methodPayment = payment.payment_method_id;
62
+
63
+ const transaction = order.transactions.find(({ intermediator }) => {
64
+ return intermediator
65
+ && intermediator.transaction_code === notification.data.id;
66
+ });
67
+ const status = parsePaymentStatus(payment.status);
68
+ if (transaction) {
69
+ const bodyPaymentHistory = {
70
+ transaction_id: transaction._id,
71
+ date_time: new Date().toISOString(),
72
+ status,
73
+ notification_code: String(notification.id),
74
+ flags: [
75
+ 'mercadopago',
76
+ ],
77
+ } as any; // TODO: incompatible type=> amount and status
78
+
79
+ if (status !== order.financial_status?.current) {
80
+ // avoid unnecessary API request
81
+ await api.post(`orders/${orderId}/payments_history`, bodyPaymentHistory);
82
+ const updatedAt = new Date().toISOString();
83
+ docRef.set({ status, updatedAt }, { merge: true }).catch(logger.error);
84
+ }
85
+
86
+ if ((status === 'paid' && methodPayment === 'pix' && transaction)) {
87
+ let { notes } = transaction;
88
+ notes = notes?.replace('display:block', 'display:none'); // disable QR Code
89
+ notes = `${notes} # PIX Aprovado`;
90
+
91
+ // orders/${order._id}/transactions/${transactionId}.json { notes }
92
+ // Update to disable QR Code
93
+ try {
94
+ await api.patch(
95
+ `orders/${order._id}/transactions/${transaction._id}`,
96
+ { notes },
97
+ );
98
+ ECHO_SUCCESS = 'SUCCESS';
99
+ } catch (e) {
100
+ logger.error(e);
101
+ }
102
+ }
103
+
104
+ res.status(200).send(ECHO_SUCCESS);
105
+ } else {
106
+ // transaction not found
107
+ logger.log('> Transaction not found #', notification.data.id);
108
+ res.sendStatus(404);
109
+ }
110
+ } else {
111
+ // order or order transaction not found
112
+ logger.log('> Order Not Found #', orderId);
113
+ res.sendStatus(404);
114
+ }
115
+ } else {
116
+ logger.log('> Payment not found in Firestore #', notification.data.id);
117
+ res.sendStatus(404);
118
+ }
119
+ })
120
+ .catch((err) => {
121
+ logger.error(err);
122
+ res.sendStatus(503);
123
+ });
124
+ // }, 3000);
125
+ } else {
126
+ res.sendStatus(406);
127
+ }
128
+ } catch (e) {
129
+ logger.error(e);
130
+ res.sendStatus(500);
131
+ }
132
+ } else {
133
+ res.sendStatus(405);
134
+ }
135
+ }),
136
+ };
@@ -0,0 +1,6 @@
1
+ {
2
+ "extends": "../../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "declaration": true
5
+ }
6
+ }
@@ -0,0 +1 @@
1
+ export * from './lib/mp-webhook.js';
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-tiny-erp",
3
3
  "type": "module",
4
- "version": "0.0.112",
4
+ "version": "0.0.113",
5
5
  "description": "E-Com Plus Cloud Commerce app for Tiny ERP",
6
6
  "main": "lib/tiny-erp.js",
7
7
  "repository": {
@@ -140,5 +140,9 @@ Finish by saving the following secrets to your GitHub repository:
140
140
  -- More info at https://github.com/ecomplus/store#getting-started
141
141
  `;
142
142
  }
143
+ if (argv._.includes('dev') || !argv._.length) {
144
+ await $`npm run build -- --codebase ssr`;
145
+ return $`npm --prefix "${path.join(pwd, 'functions/ssr')}" run dev`;
146
+ }
143
147
  return $`echo 'Hello from @cloudcommerce/cli'`;
144
148
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/cli",
3
3
  "type": "module",
4
- "version": "0.0.112",
4
+ "version": "0.0.113",
5
5
  "description": "E-Com Plus Cloud Commerce CLI tools",
6
6
  "bin": {
7
7
  "cloudcommerce": "./bin/run.mjs"
@@ -171,5 +171,10 @@ Finish by saving the following secrets to your GitHub repository:
171
171
  -- More info at https://github.com/ecomplus/store#getting-started
172
172
  `;
173
173
  }
174
+
175
+ if (argv._.includes('dev') || !argv._.length) {
176
+ await $`npm run build -- --codebase ssr`;
177
+ return $`npm --prefix "${path.join(pwd, 'functions/ssr')}" run dev`;
178
+ }
174
179
  return $`echo 'Hello from @cloudcommerce/cli'`;
175
180
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/config",
3
3
  "type": "module",
4
- "version": "0.0.112",
4
+ "version": "0.0.113",
5
5
  "description": "E-Com Plus Cloud Commerce base config",
6
6
  "main": "lib/config.js",
7
7
  "exports": {
@@ -2,4 +2,6 @@
2
2
  import '@cloudcommerce/firebase/lib/init';
3
3
 
4
4
  export * from '@cloudcommerce/app-tiny-erp';
5
+
6
+ export * from '@cloudcommerce/app-mercadopago/webhook';
5
7
  // # 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"}
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,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/events",
3
3
  "type": "module",
4
- "version": "0.0.112",
4
+ "version": "0.0.113",
5
5
  "description": "E-Com Plus Cloud Commerce app events",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -25,6 +25,7 @@
25
25
  "dependencies": {
26
26
  "@cloudcommerce/api": "workspace:*",
27
27
  "@cloudcommerce/app-tiny-erp": "workspace:*",
28
+ "@cloudcommerce/app-mercadopago": "workspace:*",
28
29
  "@cloudcommerce/firebase": "workspace:*",
29
30
  "firebase-admin": "^11.0.1",
30
31
  "firebase-functions": "^3.24.1",
@@ -2,3 +2,5 @@
2
2
  import '@cloudcommerce/firebase/lib/init';
3
3
 
4
4
  export * from '@cloudcommerce/app-tiny-erp';
5
+
6
+ export * from '@cloudcommerce/app-mercadopago/webhook';
@@ -28,6 +28,9 @@ declare const mergeConfig: {
28
28
  appId: number;
29
29
  events: ApiEventName[];
30
30
  };
31
+ mercadoPago: {
32
+ appId: number;
33
+ };
31
34
  };
32
35
  };
33
36
  declare const _default: {
@@ -37,6 +37,9 @@ const mergeConfig = {
37
37
  appId: 105922,
38
38
  events: tinyErpEvents,
39
39
  },
40
+ mercadoPago: {
41
+ appId: 111223,
42
+ },
40
43
  },
41
44
  };
42
45
  config.set(mergeConfig);
@@ -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;KACF;CACF,CAAC;AACF,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAExB,eAAe,MAId,CAAC"}
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;CACF,CAAC;AACF,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAExB,eAAe,MAId,CAAC"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/firebase",
3
3
  "type": "module",
4
- "version": "0.0.112",
4
+ "version": "0.0.113",
5
5
  "description": "E-Com Plus Cloud Commerce on Firebase",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -44,6 +44,9 @@ const mergeConfig = {
44
44
  appId: 105922,
45
45
  events: tinyErpEvents,
46
46
  },
47
+ mercadoPago: {
48
+ appId: 111223,
49
+ },
47
50
  },
48
51
  };
49
52
  config.set(mergeConfig);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/i18n",
3
3
  "type": "module",
4
- "version": "0.0.112",
4
+ "version": "0.0.113",
5
5
  "description": "E-Com Plus Cloud Commerce i18n",
6
6
  "main": "lib/all.js",
7
7
  "repository": {
@@ -67,6 +67,20 @@ export default async (appId, modName, url, data, isBigTimeout) => {
67
67
  .then(({ calculateShipping }) => calculateShipping(_data));
68
68
  };
69
69
  }
70
+ } else if (modName === 'list_payments') {
71
+ if (appId === apps.mercadoPago.appId) {
72
+ internalModuleFn = async (_data = data) => {
73
+ return import('@cloudcommerce/app-mercadopago')
74
+ .then(({ listPayments }) => listPayments(_data));
75
+ };
76
+ }
77
+ } else if (modName === 'create_transaction') {
78
+ if (appId === apps.mercadoPago.appId) {
79
+ internalModuleFn = async (_data = data) => {
80
+ return import('@cloudcommerce/app-mercadopago')
81
+ .then(({ createTransaction }) => createTransaction(_data));
82
+ };
83
+ }
70
84
  }
71
85
  if (internalModuleFn) {
72
86
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"call-app-module.js","sourceRoot":"","sources":["../../src/firebase/call-app-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"call-app-module.js","sourceRoot":"","sources":["../../src/firebase/call-app-module.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/modules",
3
3
  "type": "module",
4
- "version": "0.0.112",
4
+ "version": "0.0.113",
5
5
  "description": "E-Com Plus Cloud Commerce modules API",
6
6
  "main": "lib/index.cjs",
7
7
  "exports": {
@@ -29,6 +29,7 @@
29
29
  "@cloudcommerce/app-custom-shipping": "workspace:*",
30
30
  "@cloudcommerce/app-discounts": "workspace:*",
31
31
  "@cloudcommerce/app-frenet": "workspace:*",
32
+ "@cloudcommerce/app-mercadopago": "workspace:*",
32
33
  "@cloudcommerce/firebase": "workspace:*",
33
34
  "@ecomplus/utils": "^1.4.1",
34
35
  "ajv": "^8.11.0",
@@ -77,6 +77,20 @@ export default async (
77
77
  .then(({ calculateShipping }) => calculateShipping(_data));
78
78
  };
79
79
  }
80
+ } else if (modName === 'list_payments') {
81
+ if (appId === apps.mercadoPago.appId) {
82
+ internalModuleFn = async (_data: AppModuleBody = data) => {
83
+ return import('@cloudcommerce/app-mercadopago')
84
+ .then(({ listPayments }) => listPayments(_data));
85
+ };
86
+ }
87
+ } else if (modName === 'create_transaction') {
88
+ if (appId === apps.mercadoPago.appId) {
89
+ internalModuleFn = async (_data: AppModuleBody = data) => {
90
+ return import('@cloudcommerce/app-mercadopago')
91
+ .then(({ createTransaction }) => createTransaction(_data));
92
+ };
93
+ }
80
94
  }
81
95
  if (internalModuleFn) {
82
96
  /*
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/passport",
3
3
  "type": "module",
4
- "version": "0.0.112",
4
+ "version": "0.0.113",
5
5
  "description": "E-Com Plus Cloud Commerce customers authentication (passport) API",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/ssr",
3
3
  "type": "module",
4
- "version": "0.0.112",
4
+ "version": "0.0.113",
5
5
  "description": "E-Com Plus Cloud Commerce storefront SSR",
6
6
  "main": "lib/index.js",
7
7
  "exports": {