@cloudcommerce/app-melhor-envio 0.3.0

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 (43) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/CHANGELOG.md +1 -0
  3. package/LICENSE.md +230 -0
  4. package/README.md +1 -0
  5. package/events.js +1 -0
  6. package/lib/functions-lib/database.d.ts +18 -0
  7. package/lib/functions-lib/database.js +115 -0
  8. package/lib/functions-lib/database.js.map +1 -0
  9. package/lib/functions-lib/events-to-melhor-envio.d.ts +7 -0
  10. package/lib/functions-lib/events-to-melhor-envio.js +112 -0
  11. package/lib/functions-lib/events-to-melhor-envio.js.map +1 -0
  12. package/lib/functions-lib/new-label.d.ts +42 -0
  13. package/lib/functions-lib/new-label.js +185 -0
  14. package/lib/functions-lib/new-label.js.map +1 -0
  15. package/lib/functions-lib/order-is-valid.d.ts +5 -0
  16. package/lib/functions-lib/order-is-valid.js +40 -0
  17. package/lib/functions-lib/order-is-valid.js.map +1 -0
  18. package/lib/functions-lib/tracking-codes.d.ts +2 -0
  19. package/lib/functions-lib/tracking-codes.js +164 -0
  20. package/lib/functions-lib/tracking-codes.js.map +1 -0
  21. package/lib/index.d.ts +1 -0
  22. package/lib/index.js +2 -0
  23. package/lib/index.js.map +1 -0
  24. package/lib/melhor-envio-events.d.ts +6 -0
  25. package/lib/melhor-envio-events.js +17 -0
  26. package/lib/melhor-envio-events.js.map +1 -0
  27. package/lib/melhor-envio.d.ts +2 -0
  28. package/lib/melhor-envio.js +6 -0
  29. package/lib/melhor-envio.js.map +1 -0
  30. package/lib-mjs/calculate-melhor-envio.mjs +341 -0
  31. package/lib-mjs/functions/client-melhor-envio.mjs +14 -0
  32. package/lib-mjs/functions/error-handling.mjs +62 -0
  33. package/lib-mjs/functions/new-shipment.mjs +119 -0
  34. package/package.json +36 -0
  35. package/src/functions-lib/database.ts +140 -0
  36. package/src/functions-lib/events-to-melhor-envio.ts +137 -0
  37. package/src/functions-lib/new-label.ts +214 -0
  38. package/src/functions-lib/order-is-valid.ts +51 -0
  39. package/src/functions-lib/tracking-codes.ts +191 -0
  40. package/src/index.ts +1 -0
  41. package/src/melhor-envio-events.ts +24 -0
  42. package/src/melhor-envio.ts +7 -0
  43. package/tsconfig.json +6 -0
@@ -0,0 +1,185 @@
1
+ export default (order, appConfig, merchantData) => {
2
+ const {
3
+ firstname, lastname, phone, email, address,
4
+ } = merchantData;
5
+ const from = {
6
+ name: `${firstname} ${lastname}`,
7
+ phone: (phone && phone.phone) || '',
8
+ email,
9
+ };
10
+ if (merchantData.company_document) {
11
+ from.company_document = merchantData.company_document;
12
+ }
13
+ if (merchantData.document) {
14
+ const field = merchantData.document.length > 11 ? 'company_document' : 'document';
15
+ from[field] = merchantData.document;
16
+ }
17
+ if (address) {
18
+ if (typeof address === 'string') {
19
+ from.address = address;
20
+ } else {
21
+ [
22
+ 'address',
23
+ 'complement',
24
+ 'number',
25
+ 'district',
26
+ 'postal_code',
27
+ 'city',
28
+ 'state_abbr',
29
+ 'country_id',
30
+ ].forEach((field) => {
31
+ from[field] = address[field] || '';
32
+ });
33
+ if (typeof address.city === 'object') {
34
+ from.city = address.city.city || '';
35
+ if (address.city.state) {
36
+ from.state_abbr = address.city.state.state_abbr || '';
37
+ from.country_id = (address.city.state.country && address.city.state.country.id) || '';
38
+ }
39
+ }
40
+ }
41
+ }
42
+ const shippingLine = (order.shipping_lines && order.shipping_lines[0]);
43
+ // || {};
44
+ const buyer = order.buyers && order.buyers[0];
45
+ const to = {
46
+ email: '',
47
+ };
48
+ if (buyer && buyer.main_email) {
49
+ to.email = buyer.main_email;
50
+ if (buyer.registry_type === 'j') {
51
+ Object.assign(to, { company_document: buyer.doc_number || '' });
52
+ } else {
53
+ Object.assign(to, { document: buyer.doc_number || '' });
54
+ }
55
+ if (buyer.phones && buyer.phones[0]) {
56
+ Object.assign(to, { phone: buyer.phones[0].number });
57
+ }
58
+ }
59
+ if (shippingLine?.to) {
60
+ const {
61
+ name, street, complement, number, borough, city, zip,
62
+ } = shippingLine.to;
63
+ Object.assign(to, {
64
+ name,
65
+ address: street || '',
66
+ complement,
67
+ number,
68
+ district: borough || '',
69
+ city,
70
+ state_abbr: shippingLine.to.province_code || '',
71
+ country_id: shippingLine.to.country_code || 'BR',
72
+ postal_code: zip || '',
73
+ note: shippingLine.to.near_to || '',
74
+ });
75
+ }
76
+ let physicalWeight = 0;
77
+ if (shippingLine?.package) {
78
+ const { weight } = shippingLine.package;
79
+ if (weight && weight.value) {
80
+ switch (weight.unit) {
81
+ case 'kg':
82
+ physicalWeight = weight.value;
83
+ break;
84
+ case 'g':
85
+ physicalWeight = weight.value / 1000;
86
+ break;
87
+ case 'mg':
88
+ physicalWeight = weight.value / 1000000;
89
+ break;
90
+ default:
91
+ break;
92
+ }
93
+ }
94
+ }
95
+ const getDimensions = (side) => {
96
+ const dimensions = shippingLine?.package && shippingLine.package.dimensions;
97
+ if (dimensions && dimensions[side]) {
98
+ const dimension = dimensions[side];
99
+ if (dimension && dimension.unit) {
100
+ let dimensionValue = 0;
101
+ switch (dimension.unit) {
102
+ case 'cm':
103
+ dimensionValue = dimension.value;
104
+ break;
105
+ case 'm':
106
+ dimensionValue = dimension.value * 100;
107
+ break;
108
+ case 'mm':
109
+ dimensionValue = dimension.value / 10;
110
+ break;
111
+ default:
112
+ break;
113
+ }
114
+ return dimensionValue;
115
+ }
116
+ }
117
+ return 0;
118
+ };
119
+ const products = [];
120
+ let insuranceValue = 0;
121
+ if (order.items) {
122
+ order.items.forEach((item) => {
123
+ products.push({
124
+ name: item.name || item.product_id,
125
+ quantity: item.quantity,
126
+ unitary_value: item.price,
127
+ });
128
+ insuranceValue += item.final_price || item.price;
129
+ });
130
+ }
131
+ const options = {
132
+ insurance_value: insuranceValue,
133
+ receipt: (appConfig.receipt),
134
+ own_hand: (appConfig.own_hand),
135
+ collect: false,
136
+ reverse: false,
137
+ platform: 'E-Com Plus',
138
+ tags: [
139
+ {
140
+ tag: `Etiqueta referente ao pedido: #${order.number}`,
141
+ },
142
+ {
143
+ tag: 'order_id',
144
+ url: order._id,
145
+ },
146
+ ],
147
+ };
148
+ // https://docs.menv.io/?version=latest#9a8f308b-4872-4268-b402-e1b0d64d1f1c
149
+ if (appConfig.enabled_non_commercial) {
150
+ Object.assign(options, { non_commercial: true });
151
+ }
152
+ const invoices = shippingLine?.invoices;
153
+ if (invoices && Array.isArray(invoices) && invoices[0].number) {
154
+ Object.assign(options, {
155
+ invoice: {
156
+ number: invoices[0].number,
157
+ key: invoices[0].access_key,
158
+ },
159
+ });
160
+ }
161
+ const label = {
162
+ from,
163
+ to,
164
+ package: {
165
+ weight: physicalWeight,
166
+ width: getDimensions('width'),
167
+ height: getDimensions('height'),
168
+ length: getDimensions('length'),
169
+ },
170
+ products,
171
+ options,
172
+ };
173
+ if (shippingLine?.app && shippingLine.app.service_code) {
174
+ Object.assign(label, {
175
+ service: parseInt(shippingLine.app.service_code.replace('ME ', ''), 10),
176
+ });
177
+ }
178
+ if (appConfig.jadlog_agency) {
179
+ Object.assign(label, {
180
+ agency: appConfig.jadlog_agency,
181
+ });
182
+ }
183
+ return label;
184
+ };
185
+ // # sourceMappingURL=new-label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-label.js","sourceRoot":"","sources":["../../src/functions-lib/new-label.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Orders } from '@cloudcommerce/types';
2
+ declare const _default: (order: Orders, appConfig: {
3
+ [x: string]: any;
4
+ }) => boolean;
5
+ export default _default;
@@ -0,0 +1,40 @@
1
+ export default (order, appConfig) => {
2
+ if (!order.fulfillment_status || !order.shipping_lines) {
3
+ return false;
4
+ }
5
+ // check if the shipping calculation was done with the app-melhor-envio
6
+ const isByMelhorEnvio = Boolean(order.shipping_lines.find((shippingLine) => {
7
+ return shippingLine.custom_fields && shippingLine.custom_fields.find(({ field }) => {
8
+ return field === 'by_melhor_envio';
9
+ });
10
+ }));
11
+ // checks if the non-commercial shipping option is enabled
12
+ const isNonCommercial = () => (appConfig.enabled_non_commercial);
13
+ // checks if order is ready to ship by last
14
+ // entry in fulfillments instead of checking fulfillment_status
15
+ const isReadyForShipping = () => {
16
+ const current = order.fulfillment_status?.current;
17
+ return (current && current === 'ready_for_shipping');
18
+ };
19
+ // check if nf was issued for the order
20
+ const hasInvoice = () => {
21
+ return Boolean(order.shipping_lines?.find(({ invoices }) => {
22
+ return invoices && invoices[0] && invoices[0].number;
23
+ }));
24
+ };
25
+ const hasLabelBuyIt = () => {
26
+ if (order.hidden_metafields) {
27
+ return order.hidden_metafields
28
+ .find(({ field }) => field === 'melhor_envio_label_id');
29
+ }
30
+ return false;
31
+ };
32
+ if (!isByMelhorEnvio || !isReadyForShipping() || hasLabelBuyIt()) {
33
+ return false;
34
+ }
35
+ if (isNonCommercial() || hasInvoice()) {
36
+ return true;
37
+ }
38
+ return false;
39
+ };
40
+ // # sourceMappingURL=order-is-valid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-is-valid.js","sourceRoot":"","sources":["../../src/functions-lib/order-is-valid.ts"],"names":[],"mappings":"AAEA,eAAe,CAAC,KAAa,EAAE,SAAgC,EAAE,EAAE;IACjE,IAAI,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;QACtD,OAAO,KAAK,CAAC;KACd;IAED,uEAAuE;IACvE,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;QACzE,OAAO,YAAY,CAAC,aAAa,IAAI,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YACjF,OAAO,KAAK,KAAK,iBAAiB,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC,CAAC;IAEJ,0DAA0D;IAC1D,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAEjE,2CAA2C;IAC3C,+DAA+D;IAE/D,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,kBAAkB,EAAE,OAAO,CAAC;QAClD,OAAO,CAAC,OAAO,IAAI,OAAO,KAAK,oBAAoB,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,uCAAuC;IACvC,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,OAAO,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YACzD,OAAO,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACvD,CAAC,CAAC,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,IAAI,KAAK,CAAC,iBAAiB,EAAE;YAC3B,OAAO,KAAK,CAAC,iBAAiB;iBAC3B,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,uBAAuB,CAAC,CAAC;SAC3D;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,IAAI,CAAC,eAAe,IAAI,CAAC,kBAAkB,EAAE,IAAI,aAAa,EAAE,EAAE;QAChE,OAAO,KAAK,CAAC;KACd;IAED,IAAI,eAAe,EAAE,IAAI,UAAU,EAAE,EAAE;QACrC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const handleTrackingCodes: () => Promise<void>;
2
+ export default handleTrackingCodes;
@@ -0,0 +1,164 @@
1
+ import logger from 'firebase-functions/logger';
2
+ import api from '@cloudcommerce/api';
3
+ import config from '@cloudcommerce/firebase/lib/config';
4
+ import meClient from '../../lib-mjs/functions/client-melhor-envio.mjs';
5
+ import errorHandling from '../../lib-mjs/functions/error-handling.mjs';
6
+ import db from './database.js';
7
+
8
+ const getConfig = async () => {
9
+ try {
10
+ const app = (await api.get(`applications?app_id=${config.get().apps.melhorEnvio}&fields=hidden_data`)).data.result;
11
+ return app[0].hidden_data;
12
+ } catch (err) {
13
+ logger.error('Error =>', err);
14
+ return null;
15
+ }
16
+ };
17
+ const handleTrackingCodes = async () => {
18
+ const appConfig = await getConfig();
19
+ const accessToken = appConfig?.access_token;
20
+ const isSandbox = appConfig?.sandbox;
21
+ // eslint-disable-next-line no-async-promise-executor
22
+ const trackingCodes = new Promise(async (resolve, reject) => {
23
+ logger.log('>> Inciando rastreio de etiquetas');
24
+ try {
25
+ const labels = await db.getAllLabels();
26
+ // .then(labels => {
27
+ const checkStatus = async (queue = 0) => {
28
+ const label = labels[queue];
29
+ if (!label) {
30
+ return resolve(null);
31
+ }
32
+ const next = () => {
33
+ queue += 1;
34
+ return checkStatus(queue);
35
+ };
36
+ // evita buscar configuração do app para o mesmo storeId
37
+ let order;
38
+ try {
39
+ order = (await api.get(`orders/${label.resourceId}`)).data;
40
+ } catch (err) {
41
+ errorHandling(err);
42
+ if (err.response && err.response.status === 404) {
43
+ await db.deleteLabel(label.id).catch(logger.error);
44
+ }
45
+ return next();
46
+ }
47
+ try {
48
+ const { data } = await meClient(accessToken, isSandbox)
49
+ .post('/shipment/tracking', { orders: [label.labelId] });
50
+ const orderLabel = order.hidden_metafields?.find((metafield) => {
51
+ return metafield.field === 'melhor_envio_label_id' && data[metafield.value];
52
+ });
53
+ if (!orderLabel || !orderLabel.value) {
54
+ return null;
55
+ }
56
+ const tracking = data[orderLabel.value];
57
+ const shippingLine = order.shipping_lines && order.shipping_lines
58
+ .find(({ app }) => app && app.service_code && app.service_code.startsWith('ME'));
59
+ if (!shippingLine) {
60
+ return null;
61
+ }
62
+ let shippingLineCurrentStatus = '';
63
+ if (shippingLine.status) {
64
+ shippingLineCurrentStatus = shippingLine.status.current;
65
+ } else {
66
+ shippingLineCurrentStatus = order.fulfillment_status
67
+ ? order.fulfillment_status.current : '';
68
+ }
69
+ let updateTo;
70
+ switch (tracking.status) {
71
+ case 'posted':
72
+ if (shippingLineCurrentStatus !== 'shipped' && shippingLineCurrentStatus !== 'delivered') {
73
+ updateTo = 'shipped';
74
+ }
75
+ break;
76
+ case 'delivered':
77
+ if (shippingLineCurrentStatus !== 'delivered' && tracking.tracking) {
78
+ updateTo = 'delivered';
79
+ }
80
+ break;
81
+ case 'undelivered':
82
+ if (shippingLineCurrentStatus !== 'returned') {
83
+ updateTo = 'returned';
84
+ }
85
+ break;
86
+ default:
87
+ break;
88
+ }
89
+ if (tracking.tracking && (!shippingLine.tracking_codes
90
+ || !shippingLine.tracking_codes.length)) {
91
+ try {
92
+ await api.patch(`orders/${label.resourceId}/shipping_lines/${shippingLine._id}`, {
93
+ tracking_codes: [{
94
+ code: tracking.tracking,
95
+ link: `https://www.melhorrastreio.com.br/rastreio/${tracking.tracking}`,
96
+ }],
97
+ });
98
+ logger.log(`Tracking code para ${order._id} / Pro.: ${tracking.protocol}`);
99
+ } catch (err) {
100
+ logger.error(`> Error updating shipping_lines on order #${label.resourceId} => `, err);
101
+ next();
102
+ }
103
+ }
104
+ if (updateTo) {
105
+ const body = {
106
+ shipping_line_id: shippingLine._id,
107
+ date_time: new Date().toISOString(),
108
+ status: updateTo,
109
+ notification_code: tracking.id,
110
+ };
111
+ await api.post(`orders/${label.resourceId}/fulfillments`, body);
112
+ logger.log(`Status do pedido ${order._id} alterado com sucesso para ${updateTo}`);
113
+ }
114
+ if (tracking.status) {
115
+ switch (tracking.status) {
116
+ case 'delivered':
117
+ case 'undelivered':
118
+ case 'canceled':
119
+ await db.deleteLabel(label.id);
120
+ break;
121
+ default:
122
+ break;
123
+ }
124
+ } else {
125
+ await db.updateLabel(tracking.status, label.labelId);
126
+ }
127
+ } catch (err) {
128
+ if (err.isAxiosError) {
129
+ const { response } = err;
130
+ if (response && response.status < 500) {
131
+ const payload = {
132
+ labelId: label.labelId,
133
+ status: response.status,
134
+ data: response.data,
135
+ config: response.config,
136
+ };
137
+ logger.error('Tracking_codes_err', JSON.stringify(payload, undefined, 4));
138
+ }
139
+ } else {
140
+ err.libCode = 'Tracking_codes_err';
141
+ logger.error(err);
142
+ }
143
+ }
144
+ return next();
145
+ };
146
+ await checkStatus();
147
+ } catch (err) {
148
+ reject(err);
149
+ }
150
+ });
151
+ if (appConfig && accessToken && appConfig.disable_tracking) {
152
+ await trackingCodes.catch((err) => {
153
+ logger.error('> Error => ', err);
154
+ });
155
+ if (new Date().getHours() === 23) {
156
+ await db.clearLabels().catch((err) => {
157
+ logger.error('> Error removing old Lables => ', err);
158
+ });
159
+ }
160
+ }
161
+ };
162
+
163
+ export default handleTrackingCodes;
164
+ // # sourceMappingURL=tracking-codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracking-codes.js","sourceRoot":"","sources":["../../src/functions-lib/tracking-codes.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './melhor-envio';
package/lib/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './melhor-envio.js';
2
+ // # sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import '@cloudcommerce/firebase/lib/init';
2
+ import * as functions from 'firebase-functions/v1';
3
+ export declare const melhorenvio: {
4
+ cronTrackingCodes: functions.CloudFunction<unknown>;
5
+ onStoreEvent: functions.CloudFunction<functions.pubsub.Message>;
6
+ };
@@ -0,0 +1,17 @@
1
+ /* eslint-disable import/prefer-default-export */
2
+ import '@cloudcommerce/firebase/lib/init';
3
+ import * as functions from 'firebase-functions/v1';
4
+ import config from '@cloudcommerce/firebase/lib/config';
5
+ import { createAppEventsFunction } from '@cloudcommerce/firebase/lib/helpers/pubsub';
6
+ import handleApiEvent from './functions-lib/events-to-melhor-envio.js';
7
+ import handleTrackingCodes from './functions-lib/tracking-codes.js';
8
+
9
+ export const melhorenvio = {
10
+ cronTrackingCodes: functions.region(config.get().httpsFunctionOptions.region).pubsub
11
+ .schedule('*/30 * * * *')
12
+ .onRun(() => {
13
+ return handleTrackingCodes;
14
+ }),
15
+ onStoreEvent: createAppEventsFunction('melhorEnvio', handleApiEvent),
16
+ };
17
+ // # sourceMappingURL=melhor-envio-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"melhor-envio-events.js","sourceRoot":"","sources":["../src/melhor-envio-events.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,kCAAkC,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,OAAO,MAAM,MAAM,oCAAoC,CAAC;AACxD,OAAO,EACL,uBAAuB,GAExB,MAAM,4CAA4C,CAAC;AACpD,OAAO,cAAc,MAAM,wCAAwC,CAAC;AACpE,OAAO,mBAAmB,MAAM,gCAAgC,CAAC;AAEjE,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAM;SACjF,QAAQ,CAAC,cAAc,CAAC;SACxB,KAAK,CAAC,GAAG,EAAE;QACV,OAAO,mBAAmB,CAAC;IAC7B,CAAC,CAAC;IAEJ,YAAY,EAAE,uBAAuB,CACnC,aAAa,EACb,cAAiC,CAClC;CAEF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { AppModuleBody } from '@cloudcommerce/types';
2
+ export declare const calculateShipping: (modBody: AppModuleBody) => Promise<any>;
@@ -0,0 +1,6 @@
1
+ import handleCalculateShipping from '../lib-mjs/calculate-melhor-envio.mjs';
2
+
3
+ export const calculateShipping = async (modBody) => {
4
+ return handleCalculateShipping(modBody);
5
+ };
6
+ // # sourceMappingURL=melhor-envio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"melhor-envio.js","sourceRoot":"","sources":["../src/melhor-envio.ts"],"names":[],"mappings":"AAEA,OAAO,uBAAuB,MAAM,uCAAuC,CAAC;AAE5E,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAsB,EAAE,EAAE;IAChE,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC,CAAC"}