cloudcommerce 0.0.96 → 0.0.98

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 (84) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/package.json +3 -3
  3. package/packages/api/package.json +1 -1
  4. package/packages/apps/correios/lib-mjs/correios-ws.mjs +2 -1
  5. package/packages/apps/correios/package.json +1 -1
  6. package/packages/apps/custom-shipping/package.json +1 -1
  7. package/packages/apps/discounts/package.json +1 -1
  8. package/packages/apps/frenet/package.json +1 -1
  9. package/packages/apps/tiny-erp/lib/event-to-tiny.js +94 -94
  10. package/packages/apps/tiny-erp/lib/index.js +1 -1
  11. package/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js +74 -71
  12. package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js +73 -70
  13. package/packages/apps/tiny-erp/lib/integration/export-product-to-tiny.js +53 -49
  14. package/packages/apps/tiny-erp/lib/integration/helpers/format-tiny-date.js +3 -3
  15. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js +75 -76
  16. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js +140 -137
  17. package/packages/apps/tiny-erp/lib/integration/parsers/order-from-tiny.js +39 -40
  18. package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js +178 -173
  19. package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js +171 -173
  20. package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js +127 -123
  21. package/packages/apps/tiny-erp/lib/integration/parsers/status-from-tiny.js +32 -32
  22. package/packages/apps/tiny-erp/lib/integration/parsers/status-to-tiny.js +37 -37
  23. package/packages/apps/tiny-erp/lib/integration/post-tiny-erp.js +43 -42
  24. package/packages/apps/tiny-erp/lib/tiny-erp.js +6 -8
  25. package/packages/apps/tiny-erp/lib/tiny-webhook.js +73 -76
  26. package/packages/apps/tiny-erp/package.json +2 -2
  27. package/packages/cli/package.json +1 -1
  28. package/packages/config/package.json +1 -1
  29. package/packages/events/package.json +2 -2
  30. package/packages/firebase/package.json +3 -3
  31. package/packages/modules/lib/firebase/ajv.js +19 -24
  32. package/packages/modules/lib/firebase/call-app-module.js +116 -110
  33. package/packages/modules/lib/firebase/checkout.js +151 -152
  34. package/packages/modules/lib/firebase/functions-checkout/fix-items.js +194 -187
  35. package/packages/modules/lib/firebase/functions-checkout/get-custumerId.js +25 -26
  36. package/packages/modules/lib/firebase/functions-checkout/handle-order-transaction.js +110 -109
  37. package/packages/modules/lib/firebase/functions-checkout/new-order.js +177 -177
  38. package/packages/modules/lib/firebase/functions-checkout/request-to-module.js +59 -59
  39. package/packages/modules/lib/firebase/functions-checkout/utils.js +195 -197
  40. package/packages/modules/lib/firebase/handle-module.js +144 -146
  41. package/packages/modules/lib/firebase/proxy-apps.js +2 -1
  42. package/packages/modules/lib/firebase/serve-modules-api.js +52 -53
  43. package/packages/modules/lib/firebase.js +4 -6
  44. package/packages/modules/lib/index.js +12 -15
  45. package/packages/modules/package.json +2 -2
  46. package/packages/passport/package.json +2 -2
  47. package/packages/ssr/package.json +2 -2
  48. package/packages/storefront/.eslintrc.cjs +1 -0
  49. package/packages/storefront/astro.config.mjs +11 -1
  50. package/packages/storefront/dist/client/LoginOffcanvas.daf3f717.js +1 -0
  51. package/packages/storefront/dist/client/assets/_...522e6bf2.css +4 -0
  52. package/packages/storefront/dist/client/assets/{_...ee104f19.css → _...a48b75c7.css} +1 -1
  53. package/packages/storefront/dist/client/chunks/LoginForm.d9251274.js +1066 -0
  54. package/packages/storefront/dist/client/chunks/LoginOffcanvas.07fe6492.js +1 -0
  55. package/packages/storefront/dist/client/{hoisted.46e058d2.js → chunks/index.esm.84a649c7.js} +77 -17
  56. package/packages/storefront/dist/client/chunks/preload-helper.f15ab524.js +1 -0
  57. package/packages/storefront/dist/client/chunks/runtime-dom.esm-bundler.738639ee.js +1 -0
  58. package/packages/storefront/dist/client/client.b552d86a.js +1 -0
  59. package/packages/storefront/dist/client/hoisted.054c36ac.js +1 -0
  60. package/packages/storefront/dist/client/manifest.webmanifest +1 -1
  61. package/packages/storefront/dist/client/sw.js +1 -1
  62. package/packages/storefront/dist/server/entry.mjs +370 -180
  63. package/packages/storefront/dist/server/manifest.webmanifest +1 -1
  64. package/packages/storefront/package.json +6 -5
  65. package/packages/storefront/src/assets/pico.css +0 -1
  66. package/packages/storefront/src/env.d.ts +1 -1
  67. package/packages/storefront/src/lib/components/AOffcanvas.vue +98 -0
  68. package/packages/storefront/src/lib/components/LoginForm.vue +54 -0
  69. package/packages/storefront/src/lib/components/LoginOffcanvas.vue +41 -0
  70. package/packages/storefront/src/lib/components/TheHeader.vue +37 -3
  71. package/packages/storefront/src/lib/components/TopBar.vue +13 -21
  72. package/packages/storefront/src/lib/layouts/BaseBody.astro +41 -38
  73. package/packages/storefront/src/lib/layouts/BaseHead.astro +0 -5
  74. package/packages/storefront/src/lib/layouts/BaseStateJson.astro +12 -11
  75. package/packages/storefront/src/lib/layouts/PagesHeader.astro +29 -20
  76. package/packages/storefront/src/lib/scripts/firebase-app.ts +16 -0
  77. package/packages/storefront/src/lib/{helpers → ssr}/image.ts +1 -1
  78. package/packages/storefront/src/pages/app/account.astro +0 -0
  79. package/packages/storefront/storefront.config.mjs +1 -1
  80. package/packages/storefront/tsconfig.json +4 -1
  81. package/packages/types/package.json +1 -1
  82. package/packages/storefront/dist/client/assets/_...73e01db2.css +0 -4
  83. package/packages/storefront/dist/client/client.80baece3.js +0 -1
  84. package/packages/storefront/src/lib/components/LoginModal.vue +0 -82
@@ -1,34 +1,34 @@
1
1
  export default (situacao) => {
2
- let financialStatus;
3
- let fulfillmentStatus;
4
- switch (situacao) {
5
- case 'aprovado':
6
- financialStatus = 'paid';
7
- break;
8
- case 'preparando_envio':
9
- case 'preparando envio':
10
- fulfillmentStatus = 'in_separation';
11
- break;
12
- case 'faturado':
13
- case 'faturado (atendido)':
14
- case 'atendido':
15
- fulfillmentStatus = 'invoice_issued';
16
- break;
17
- case 'pronto_envio':
18
- case 'pronto para envio':
19
- fulfillmentStatus = 'ready_for_shipping';
20
- break;
21
- case 'enviado':
22
- fulfillmentStatus = 'shipped';
23
- break;
24
- case 'entregue':
25
- fulfillmentStatus = 'delivered';
26
- break;
27
- case 'cancelado':
28
- financialStatus = 'voided';
29
- break;
30
- default:
31
- }
32
- return { financialStatus, fulfillmentStatus };
2
+ let financialStatus;
3
+ let fulfillmentStatus;
4
+ switch (situacao) {
5
+ case 'aprovado':
6
+ financialStatus = 'paid';
7
+ break;
8
+ case 'preparando_envio':
9
+ case 'preparando envio':
10
+ fulfillmentStatus = 'in_separation';
11
+ break;
12
+ case 'faturado':
13
+ case 'faturado (atendido)':
14
+ case 'atendido':
15
+ fulfillmentStatus = 'invoice_issued';
16
+ break;
17
+ case 'pronto_envio':
18
+ case 'pronto para envio':
19
+ fulfillmentStatus = 'ready_for_shipping';
20
+ break;
21
+ case 'enviado':
22
+ fulfillmentStatus = 'shipped';
23
+ break;
24
+ case 'entregue':
25
+ fulfillmentStatus = 'delivered';
26
+ break;
27
+ case 'cancelado':
28
+ financialStatus = 'voided';
29
+ break;
30
+ default:
31
+ }
32
+ return { financialStatus, fulfillmentStatus };
33
33
  };
34
- // # sourceMappingURL=status-from-tiny.js.map
34
+ //# sourceMappingURL=status-from-tiny.js.map
@@ -1,39 +1,39 @@
1
1
  export default (order) => {
2
- const financialStatus = order.financial_status && order.financial_status.current;
3
- switch (financialStatus) {
4
- case 'pending':
5
- case 'under_analysis':
6
- case 'unknown':
7
- case 'authorized':
8
- case 'partially_paid':
9
- return 'aberto';
10
- case 'voided':
11
- case 'refunded':
12
- case 'in_dispute':
13
- case 'unauthorized':
14
- return 'cancelado';
15
- default:
16
- }
17
- switch (order.fulfillment_status && order.fulfillment_status.current) {
18
- case 'in_production':
19
- case 'in_separation':
20
- return 'preparando_envio';
21
- case 'invoice_issued':
22
- return 'faturado';
23
- case 'ready_for_shipping':
24
- return 'pronto_envio';
25
- case 'shipped':
26
- case 'partially_shipped':
27
- return 'enviado';
28
- case 'delivered':
29
- return 'entregue';
30
- case 'returned':
31
- return 'cancelado';
32
- default:
33
- }
34
- if (financialStatus === 'paid') {
35
- return 'aprovado';
36
- }
37
- return 'aberto';
2
+ const financialStatus = order.financial_status && order.financial_status.current;
3
+ switch (financialStatus) {
4
+ case 'pending':
5
+ case 'under_analysis':
6
+ case 'unknown':
7
+ case 'authorized':
8
+ case 'partially_paid':
9
+ return 'aberto';
10
+ case 'voided':
11
+ case 'refunded':
12
+ case 'in_dispute':
13
+ case 'unauthorized':
14
+ return 'cancelado';
15
+ default:
16
+ }
17
+ switch (order.fulfillment_status && order.fulfillment_status.current) {
18
+ case 'in_production':
19
+ case 'in_separation':
20
+ return 'preparando_envio';
21
+ case 'invoice_issued':
22
+ return 'faturado';
23
+ case 'ready_for_shipping':
24
+ return 'pronto_envio';
25
+ case 'shipped':
26
+ case 'partially_shipped':
27
+ return 'enviado';
28
+ case 'delivered':
29
+ return 'entregue';
30
+ case 'returned':
31
+ return 'cancelado';
32
+ default:
33
+ }
34
+ if (financialStatus === 'paid') {
35
+ return 'aprovado';
36
+ }
37
+ return 'aberto';
38
38
  };
39
- // # sourceMappingURL=status-to-tiny.js.map
39
+ //# sourceMappingURL=status-to-tiny.js.map
@@ -1,47 +1,48 @@
1
1
  import axios from 'axios';
2
-
3
2
  export default (url, body, token = process.env.TINY_ERP_TOKEN, options = {}) => {
4
- // https://www.tiny.com.br/ajuda/api/api2
5
- let data = `token=${token}&formato=JSON`;
6
- if (body) {
7
- Object.keys(body).forEach((field) => {
8
- if (body[field]) {
9
- switch (typeof body[field]) {
10
- case 'object':
11
- data += `&${field}=${JSON.stringify(body[field])}`;
12
- break;
13
- case 'string':
14
- case 'number':
15
- data += `&${field}=${body[field]}`;
16
- break;
17
- default:
3
+ // https://www.tiny.com.br/ajuda/api/api2
4
+ let data = `token=${token}&formato=JSON`;
5
+ if (body) {
6
+ Object.keys(body).forEach((field) => {
7
+ if (body[field]) {
8
+ switch (typeof body[field]) {
9
+ case 'object':
10
+ data += `&${field}=${JSON.stringify(body[field])}`;
11
+ break;
12
+ case 'string':
13
+ case 'number':
14
+ data += `&${field}=${body[field]}`;
15
+ break;
16
+ default:
17
+ }
18
+ }
19
+ });
20
+ }
21
+ return axios.post(url, data, {
22
+ baseURL: 'https://api.tiny.com.br/api2/',
23
+ timeout: 30000,
24
+ ...options,
25
+ })
26
+ .then((response) => {
27
+ const { retorno } = response.data;
28
+ if (retorno.status === 'Erro') {
29
+ const err = new Error('Tiny error response');
30
+ const tinyErrorCode = parseInt(retorno.codigo_erro, 10);
31
+ if (tinyErrorCode <= 2) {
32
+ response.status = 401;
33
+ }
34
+ else if (tinyErrorCode === 6) {
35
+ response.status = 503;
36
+ }
37
+ else if (tinyErrorCode === 20) {
38
+ response.status = 404;
39
+ }
40
+ err.response = response;
41
+ err.config = response.config;
42
+ err.request = response.request;
43
+ throw err;
18
44
  }
19
- }
20
- });
21
- }
22
- return axios.post(url, data, {
23
- baseURL: 'https://api.tiny.com.br/api2/',
24
- timeout: 30000,
25
- ...options,
26
- })
27
- .then((response) => {
28
- const { retorno } = response.data;
29
- if (retorno.status === 'Erro') {
30
- const err = new Error('Tiny error response');
31
- const tinyErrorCode = parseInt(retorno.codigo_erro, 10);
32
- if (tinyErrorCode <= 2) {
33
- response.status = 401;
34
- } else if (tinyErrorCode === 6) {
35
- response.status = 503;
36
- } else if (tinyErrorCode === 20) {
37
- response.status = 404;
38
- }
39
- err.response = response;
40
- err.config = response.config;
41
- err.request = response.request;
42
- throw err;
43
- }
44
- return retorno;
45
+ return retorno;
45
46
  });
46
47
  };
47
- // # sourceMappingURL=post-tiny-erp.js.map
48
+ //# sourceMappingURL=post-tiny-erp.js.map
@@ -3,16 +3,14 @@ import '@cloudcommerce/firebase/lib/init';
3
3
  // eslint-disable-next-line import/no-unresolved
4
4
  import { onRequest } from 'firebase-functions/v2/https';
5
5
  import config from '@cloudcommerce/firebase/lib/config';
6
- import { createAppEventsFunction } from '@cloudcommerce/firebase/lib/helpers/pubsub';
6
+ import { createAppEventsFunction, } from '@cloudcommerce/firebase/lib/helpers/pubsub';
7
7
  import handleApiEvent from './event-to-tiny.js';
8
8
  import handleTinyWebhook from './tiny-webhook.js';
9
-
10
9
  const { httpsFunctionOptions } = config.get();
11
-
12
10
  export const tinyerp = {
13
- onStoreEvent: createAppEventsFunction('tinyErp', handleApiEvent),
14
- webhook: onRequest(httpsFunctionOptions, (req, res) => {
15
- handleTinyWebhook(req, res);
16
- }),
11
+ onStoreEvent: createAppEventsFunction('tinyErp', handleApiEvent),
12
+ webhook: onRequest(httpsFunctionOptions, (req, res) => {
13
+ handleTinyWebhook(req, res);
14
+ }),
17
15
  };
18
- // # sourceMappingURL=tiny-erp.js.map
16
+ //# sourceMappingURL=tiny-erp.js.map
@@ -3,90 +3,87 @@ import api from '@cloudcommerce/api';
3
3
  import config from '@cloudcommerce/firebase/lib/config';
4
4
  import importProduct from './integration/import-product-from-tiny.js';
5
5
  import importOrder from './integration/import-order-from-tiny.js';
6
-
7
6
  let appData = {};
8
7
  let application;
9
-
10
8
  export default async (req, res) => {
11
- const tinyToken = req.query.token;
12
- if (typeof tinyToken === 'string' && tinyToken && req.body) {
13
- const { dados, tipo } = req.body;
14
- if (dados) {
15
- /*
9
+ const tinyToken = req.query.token;
10
+ if (typeof tinyToken === 'string' && tinyToken && req.body) {
11
+ const { dados, tipo } = req.body;
12
+ if (dados) {
13
+ /*
16
14
  TODO: Check Tiny server IPs
17
15
  const clientIp = req.get('x-forwarded-for') || req.connection.remoteAddress
18
16
  */
19
- const { TINY_ERP_TOKEN } = process.env;
20
- if (!TINY_ERP_TOKEN || TINY_ERP_TOKEN !== tinyToken) {
21
- const { apps: { tinyErp: { appId } } } = config.get();
22
- const applicationId = req.query._id;
23
- const appEndpoint = applicationId && typeof applicationId === 'string'
24
- ? `applications/${applicationId}`
25
- : `applications/app_id:${appId}`;
26
- application = (await api.get(appEndpoint)).data;
27
- appData = {
28
- ...application.data,
29
- ...application.hidden_data,
30
- };
31
- if (appData.tiny_api_token !== tinyToken) {
32
- return res.sendStatus(401);
33
- }
34
- process.env.TINY_ERP_TOKEN = tinyToken;
35
- }
36
- if (dados.idVendaTiny) {
37
- const orderNumber = `id:${dados.idVendaTiny}`;
38
- const queueEntry = {
39
- nextId: orderNumber,
40
- isNotQueued: true,
41
- };
42
- await importOrder({}, queueEntry);
43
- } else if ((tipo === 'produto' || tipo === 'estoque')
17
+ const { TINY_ERP_TOKEN } = process.env;
18
+ if (!TINY_ERP_TOKEN || TINY_ERP_TOKEN !== tinyToken) {
19
+ const { apps: { tinyErp: { appId } } } = config.get();
20
+ const applicationId = req.query._id;
21
+ const appEndpoint = applicationId && typeof applicationId === 'string'
22
+ ? `applications/${applicationId}`
23
+ : `applications/app_id:${appId}`;
24
+ application = (await api.get(appEndpoint)).data;
25
+ appData = {
26
+ ...application.data,
27
+ ...application.hidden_data,
28
+ };
29
+ if (appData.tiny_api_token !== tinyToken) {
30
+ return res.sendStatus(401);
31
+ }
32
+ process.env.TINY_ERP_TOKEN = tinyToken;
33
+ }
34
+ if (dados.idVendaTiny) {
35
+ const orderNumber = `id:${dados.idVendaTiny}`;
36
+ const queueEntry = {
37
+ nextId: orderNumber,
38
+ isNotQueued: true,
39
+ };
40
+ await importOrder({}, queueEntry);
41
+ }
42
+ else if ((tipo === 'produto' || tipo === 'estoque')
44
43
  && (dados.id || dados.idProduto)
45
44
  && (dados.codigo || dados.sku)) {
46
- const nextId = String(dados.skuMapeamento || dados.sku || dados.codigo);
47
- const tinyStockUpdate = {
48
- ref: `${nextId}`,
49
- tipo,
50
- produto: {
51
- id: dados.idProduto,
52
- codigo: dados.sku,
53
- ...dados,
54
- },
55
- };
56
- logger.info(`> Tiny webhook: ${nextId} => ${tinyStockUpdate.produto.saldo}`);
57
- const queueEntry = {
58
- nextId,
59
- tinyStockUpdate,
60
- isNotQueued: true,
61
- app: application,
62
- };
63
- await importProduct({}, queueEntry, appData, false, true);
64
- }
65
- if (tipo === 'produto') {
66
- const mapeamentos = [];
67
- const parseTinyItem = (tinyItem) => {
68
- if (tinyItem) {
69
- const {
70
- idMapeamento, id, codigo, sku,
71
- } = tinyItem;
72
- mapeamentos.push({
73
- idMapeamento: idMapeamento || id,
74
- skuMapeamento: codigo || sku,
75
- });
76
- }
77
- };
78
- parseTinyItem(dados);
79
- if (Array.isArray(dados.variacoes)) {
80
- dados.variacoes.forEach((variacao) => {
81
- parseTinyItem(variacao.id ? variacao : variacao.variacao);
82
- });
45
+ const nextId = String(dados.skuMapeamento || dados.sku || dados.codigo);
46
+ const tinyStockUpdate = {
47
+ ref: `${nextId}`,
48
+ tipo,
49
+ produto: {
50
+ id: dados.idProduto,
51
+ codigo: dados.sku,
52
+ ...dados,
53
+ },
54
+ };
55
+ logger.info(`> Tiny webhook: ${nextId} => ${tinyStockUpdate.produto.saldo}`);
56
+ const queueEntry = {
57
+ nextId,
58
+ tinyStockUpdate,
59
+ isNotQueued: true,
60
+ app: application,
61
+ };
62
+ await importProduct({}, queueEntry, appData, false, true);
63
+ }
64
+ if (tipo === 'produto') {
65
+ const mapeamentos = [];
66
+ const parseTinyItem = (tinyItem) => {
67
+ if (tinyItem) {
68
+ const { idMapeamento, id, codigo, sku, } = tinyItem;
69
+ mapeamentos.push({
70
+ idMapeamento: idMapeamento || id,
71
+ skuMapeamento: codigo || sku,
72
+ });
73
+ }
74
+ };
75
+ parseTinyItem(dados);
76
+ if (Array.isArray(dados.variacoes)) {
77
+ dados.variacoes.forEach((variacao) => {
78
+ parseTinyItem(variacao.id ? variacao : variacao.variacao);
79
+ });
80
+ }
81
+ return res.status(200).send(mapeamentos);
82
+ }
83
+ return res.sendStatus(200);
83
84
  }
84
- return res.status(200).send(mapeamentos);
85
- }
86
- return res.sendStatus(200);
85
+ logger.warn('< Invalid Tiny Webhook body', req.body);
87
86
  }
88
- logger.warn('< Invalid Tiny Webhook body', req.body);
89
- }
90
- return res.sendStatus(403);
87
+ return res.sendStatus(403);
91
88
  };
92
- // # sourceMappingURL=tiny-webhook.js.map
89
+ //# sourceMappingURL=tiny-webhook.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-tiny-erp",
3
3
  "type": "module",
4
- "version": "0.0.96",
4
+ "version": "0.0.98",
5
5
  "description": "E-Com Plus Cloud Commerce app for Tiny ERP",
6
6
  "main": "lib/tiny-erp.js",
7
7
  "repository": {
@@ -24,7 +24,7 @@
24
24
  "@ecomplus/utils": "^1.4.1",
25
25
  "axios": "^0.27.2",
26
26
  "firebase-admin": "^11.0.1",
27
- "firebase-functions": "^3.23.0",
27
+ "firebase-functions": "^3.24.0",
28
28
  "form-data": "^4.0.0"
29
29
  },
30
30
  "devDependencies": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/cli",
3
3
  "type": "module",
4
- "version": "0.0.96",
4
+ "version": "0.0.98",
5
5
  "description": "E-Com Plus Cloud Commerce CLI tools",
6
6
  "bin": {
7
7
  "cloudcommerce": "./bin/run.mjs"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/config",
3
3
  "type": "module",
4
- "version": "0.0.96",
4
+ "version": "0.0.98",
5
5
  "description": "E-Com Plus Cloud Commerce base config",
6
6
  "main": "lib/config.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/events",
3
3
  "type": "module",
4
- "version": "0.0.96",
4
+ "version": "0.0.98",
5
5
  "description": "E-Com Plus Cloud Commerce app events",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -27,7 +27,7 @@
27
27
  "@cloudcommerce/app-tiny-erp": "workspace:*",
28
28
  "@cloudcommerce/firebase": "workspace:*",
29
29
  "firebase-admin": "^11.0.1",
30
- "firebase-functions": "^3.23.0",
30
+ "firebase-functions": "^3.24.0",
31
31
  "source-map-support": "^0.5.21"
32
32
  },
33
33
  "devDependencies": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/firebase",
3
3
  "type": "module",
4
- "version": "0.0.96",
4
+ "version": "0.0.98",
5
5
  "description": "E-Com Plus Cloud Commerce on Firebase",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -31,9 +31,9 @@
31
31
  "dependencies": {
32
32
  "@cloudcommerce/api": "workspace:*",
33
33
  "@cloudcommerce/config": "workspace:*",
34
- "@google-cloud/pubsub": "^3.1.1",
34
+ "@google-cloud/pubsub": "^3.2.0",
35
35
  "firebase-admin": "^11.0.1",
36
- "firebase-functions": "^3.23.0",
36
+ "firebase-functions": "^3.24.0",
37
37
  "node-fetch": "^3.2.10",
38
38
  "source-map-support": "^0.5.21"
39
39
  },
@@ -1,34 +1,29 @@
1
1
  import Ajv from 'ajv';
2
2
  import addFormats from 'ajv-formats';
3
-
4
3
  const ajvOptions = {
5
- coerceTypes: false,
6
- useDefaults: true,
7
- removeAdditional: true,
8
- // Explicitly set `allErrors` to false, when set to true a DoS attack is possible
9
- allErrors: false,
10
- multipleOfPrecision: 5,
11
- allowMatchingProperties: true,
4
+ coerceTypes: false,
5
+ useDefaults: true,
6
+ removeAdditional: true,
7
+ // Explicitly set `allErrors` to false, when set to true a DoS attack is possible
8
+ allErrors: false,
9
+ multipleOfPrecision: 5,
10
+ allowMatchingProperties: true,
12
11
  };
13
12
  const ajv = addFormats(new Ajv(ajvOptions));
14
13
  const parseAjvErrors = (errors, ajvInstance = ajv) => {
15
- return ajvInstance.errorsText(errors, { separator: '\n' });
14
+ return ajvInstance.errorsText(errors, { separator: '\n' });
16
15
  };
17
16
  const sendRequestError = (res, modName, errors) => {
18
- res.status(400).send({
19
- status: 400,
20
- error_code: 'MOD901',
21
- message: 'Bad-formatted JSON body (POST) or URL params (GET), details in `user_message`',
22
- user_message: {
23
- en_us: ajv.errorsText(errors, { separator: '\n' }),
24
- },
25
- more_info: `/${modName}/schema`,
26
- });
17
+ res.status(400).send({
18
+ status: 400,
19
+ error_code: 'MOD901',
20
+ message: 'Bad-formatted JSON body (POST) or URL params (GET), details in `user_message`',
21
+ user_message: {
22
+ en_us: ajv.errorsText(errors, { separator: '\n' }),
23
+ },
24
+ more_info: `/${modName}/schema`,
25
+ });
27
26
  };
28
-
29
27
  export default ajv;
30
-
31
- export {
32
- ajv, ajvOptions, parseAjvErrors, sendRequestError,
33
- };
34
- // # sourceMappingURL=ajv.js.map
28
+ export { ajv, ajvOptions, parseAjvErrors, sendRequestError, };
29
+ //# sourceMappingURL=ajv.js.map