cloudcommerce 0.0.116 → 0.0.117

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 (68) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/ecomplus-stores/monocard/functions/core/package.json +1 -1
  3. package/ecomplus-stores/monocard/functions/events/package.json +2 -2
  4. package/ecomplus-stores/monocard/functions/modules/package.json +2 -2
  5. package/ecomplus-stores/monocard/functions/passport/package.json +2 -2
  6. package/ecomplus-stores/monocard/functions/ssr/package.json +6 -6
  7. package/ecomplus-stores/monocard/package.json +1 -1
  8. package/package.json +1 -1
  9. package/packages/api/package.json +1 -1
  10. package/packages/apps/correios/package.json +1 -1
  11. package/packages/apps/custom-shipping/package.json +1 -1
  12. package/packages/apps/discounts/package.json +1 -1
  13. package/packages/apps/frenet/package.json +1 -1
  14. package/packages/apps/mercadopago/package.json +1 -1
  15. package/packages/apps/tiny-erp/lib/event-to-tiny.js +115 -0
  16. package/packages/apps/tiny-erp/lib/event-to-tiny.js.map +1 -0
  17. package/packages/apps/tiny-erp/lib/index.js +2 -0
  18. package/packages/apps/tiny-erp/lib/index.js.map +1 -0
  19. package/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js +79 -0
  20. package/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js.map +1 -0
  21. package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js +84 -0
  22. package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js.map +1 -0
  23. package/packages/apps/tiny-erp/lib/integration/export-product-to-tiny.js +58 -0
  24. package/packages/apps/tiny-erp/lib/integration/export-product-to-tiny.js.map +1 -0
  25. package/packages/apps/tiny-erp/lib/integration/helpers/format-tiny-date.js +7 -0
  26. package/packages/apps/tiny-erp/lib/integration/helpers/format-tiny-date.js.map +1 -0
  27. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js +92 -0
  28. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js.map +1 -0
  29. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js +158 -0
  30. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js.map +1 -0
  31. package/packages/apps/tiny-erp/lib/integration/parsers/order-from-tiny.js +46 -0
  32. package/packages/apps/tiny-erp/lib/integration/parsers/order-from-tiny.js.map +1 -0
  33. package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js +193 -0
  34. package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js.map +1 -0
  35. package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js +199 -0
  36. package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js.map +1 -0
  37. package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js +129 -0
  38. package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js.map +1 -0
  39. package/packages/apps/tiny-erp/lib/integration/parsers/status-from-tiny.js +34 -0
  40. package/packages/apps/tiny-erp/lib/integration/parsers/status-from-tiny.js.map +1 -0
  41. package/packages/apps/tiny-erp/lib/integration/parsers/status-to-tiny.js +39 -0
  42. package/packages/apps/tiny-erp/lib/integration/parsers/status-to-tiny.js.map +1 -0
  43. package/packages/apps/tiny-erp/lib/integration/post-tiny-erp.js +47 -0
  44. package/packages/apps/tiny-erp/lib/integration/post-tiny-erp.js.map +1 -0
  45. package/packages/apps/tiny-erp/lib/tiny-erp.js +18 -0
  46. package/packages/apps/tiny-erp/lib/tiny-erp.js.map +1 -0
  47. package/packages/apps/tiny-erp/lib/tiny-webhook.js +92 -0
  48. package/packages/apps/tiny-erp/lib/tiny-webhook.js.map +1 -0
  49. package/packages/apps/tiny-erp/package.json +1 -1
  50. package/packages/cli/package.json +1 -1
  51. package/packages/config/package.json +1 -1
  52. package/packages/events/package.json +1 -1
  53. package/packages/firebase/lib/config.js +34 -38
  54. package/packages/firebase/lib/const.js +2 -3
  55. package/packages/firebase/lib/env.js +1 -2
  56. package/packages/firebase/lib/handlers/check-store-events.js +145 -146
  57. package/packages/firebase/lib/helpers/pubsub.js +18 -20
  58. package/packages/firebase/lib/helpers/update-app-data.js +38 -38
  59. package/packages/firebase/lib/index.js +7 -9
  60. package/packages/firebase/lib/init.js +1 -2
  61. package/packages/firebase/package.json +1 -1
  62. package/packages/i18n/package.json +1 -1
  63. package/packages/modules/package.json +1 -1
  64. package/packages/passport/package.json +1 -1
  65. package/packages/ssr/package.json +1 -1
  66. package/packages/storefront/package.json +1 -1
  67. package/packages/types/package.json +1 -1
  68. package/turbo.json +0 -1
@@ -5,126 +5,125 @@ import { PubSub } from '@google-cloud/pubsub';
5
5
  import api from '@cloudcommerce/api';
6
6
  import config from '../config.js';
7
7
  import { EVENT_SKIP_FLAG, GET_PUBSUB_TOPIC } from '../const.js';
8
-
9
8
  const parseEventName = (evName, baseApiEventsFilter) => {
10
- const [resource, actionName] = evName.split('-');
11
- const params = { ...baseApiEventsFilter };
12
- const bodySet = {};
13
- if (actionName === 'new') {
14
- params.action = 'create';
15
- } else {
16
- switch (resource) {
17
- case 'orders':
18
- switch (actionName) {
19
- case 'paid':
20
- bodySet['financial_status.current'] = 'paid';
21
- break;
22
- case 'readyForShipping':
23
- bodySet['fulfillment_status.current'] = 'ready_for_shipping';
24
- break;
25
- case 'shipped':
26
- case 'delivered':
27
- bodySet['fulfillment_status.current'] = actionName;
28
- break;
29
- case 'cancelled':
30
- bodySet.status = 'cancelled';
31
- break;
32
- default: // anyStatusSet
33
- params.modified_fields = [
34
- 'financial_status',
35
- 'fulfillment_status',
36
- 'status',
37
- ];
9
+ const [resource, actionName] = evName.split('-');
10
+ const params = { ...baseApiEventsFilter };
11
+ const bodySet = {};
12
+ if (actionName === 'new') {
13
+ params.action = 'create';
14
+ }
15
+ else {
16
+ switch (resource) {
17
+ case 'orders':
18
+ switch (actionName) {
19
+ case 'paid':
20
+ bodySet['financial_status.current'] = 'paid';
21
+ break;
22
+ case 'readyForShipping':
23
+ bodySet['fulfillment_status.current'] = 'ready_for_shipping';
24
+ break;
25
+ case 'shipped':
26
+ case 'delivered':
27
+ bodySet['fulfillment_status.current'] = actionName;
28
+ break;
29
+ case 'cancelled':
30
+ bodySet.status = 'cancelled';
31
+ break;
32
+ default: // anyStatusSet
33
+ params.modified_fields = [
34
+ 'financial_status',
35
+ 'fulfillment_status',
36
+ 'status',
37
+ ];
38
+ }
39
+ break;
40
+ case 'products':
41
+ params.modified_fields = actionName === 'priceSet'
42
+ ? ['price', 'variations.price']
43
+ : ['quantity']; // quantitySet
44
+ break;
45
+ case 'carts':
46
+ params.modified_fields = ['customers']; // customerSet
47
+ break;
48
+ case 'applications':
49
+ params.modified_fields = ['data', 'hidden_data']; // dataSet
50
+ break;
51
+ default:
38
52
  }
39
- break;
40
- case 'products':
41
- params.modified_fields = actionName === 'priceSet'
42
- ? ['price', 'variations.price']
43
- : ['quantity']; // quantitySet
44
- break;
45
- case 'carts':
46
- params.modified_fields = ['customers']; // customerSet
47
- break;
48
- case 'applications':
49
- params.modified_fields = ['data', 'hidden_data']; // dataSet
50
- break;
51
- default:
52
53
  }
53
- }
54
- Object.keys(bodySet).forEach((field) => {
55
- params[`body.${field}`] = bodySet[field];
56
- });
57
- return { resource, params };
54
+ Object.keys(bodySet).forEach((field) => {
55
+ params[`body.${field}`] = bodySet[field];
56
+ });
57
+ return { resource, params };
58
58
  };
59
59
  const pubSubClient = new PubSub();
60
60
  const tryPubSubPublish = (topicName, messageObj, retries = 0) => {
61
- pubSubClient.topic(topicName).publishMessage(messageObj)
62
- .catch((err) => {
63
- // eslint-disable-next-line no-param-reassign
64
- err.retries = retries;
65
- logger.error(err);
66
- if (retries <= 3) {
67
- setTimeout(() => {
68
- tryPubSubPublish(topicName, messageObj, retries + 1);
69
- }, 1000 * (2 ** retries));
70
- }
61
+ pubSubClient.topic(topicName).publishMessage(messageObj)
62
+ .catch((err) => {
63
+ // eslint-disable-next-line no-param-reassign
64
+ err.retries = retries;
65
+ logger.error(err);
66
+ if (retries <= 3) {
67
+ setTimeout(() => {
68
+ tryPubSubPublish(topicName, messageObj, retries + 1);
69
+ }, 1000 * (2 ** retries));
70
+ }
71
71
  });
72
72
  };
73
-
74
73
  export default async () => {
75
- const timestamp = Date.now();
76
- const documentRef = getFirestore().doc('storeEvents/last');
77
- const documentSnapshot = await documentRef.get();
78
- const lastRunTimestamp = documentSnapshot.get('timestamp')
74
+ const timestamp = Date.now();
75
+ const documentRef = getFirestore().doc('storeEvents/last');
76
+ const documentSnapshot = await documentRef.get();
77
+ const lastRunTimestamp = documentSnapshot.get('timestamp')
79
78
  || Date.now() - 1000 * 60 * 5;
80
- const lastNonOrdersTimestamp = documentSnapshot.get('nonOrdersTimestamp')
79
+ const lastNonOrdersTimestamp = documentSnapshot.get('nonOrdersTimestamp')
81
80
  || 0;
82
- const baseApiEventsFilter = {
83
- 'flag!': EVENT_SKIP_FLAG,
84
- 'timestamp>': new Date(lastRunTimestamp - 1).toISOString(),
85
- 'timestamp<': new Date(timestamp).toISOString(),
86
- };
87
- const { apps } = config.get();
88
- const subscribersApps = [];
89
- Object.keys(apps).forEach((appName) => {
90
- const appObj = apps[appName];
91
- if (appObj.events && appObj.events.length) {
92
- subscribersApps.push(appObj);
93
- }
94
- });
95
- const activeApps = (await api.get('applications', {
96
- params: {
97
- state: 'active',
98
- app_id: subscribersApps.map(({ appId }) => appId),
99
- fields: '_id,app_id,data,hidden_data',
100
- },
101
- })).data.result;
102
- const listenedEvents = [];
103
- subscribersApps.forEach(({ appId, events }) => {
104
- if (activeApps.find((app) => app.app_id === appId)) {
105
- events.forEach((evName) => {
106
- if (!listenedEvents.includes(evName)) {
107
- listenedEvents.push(evName);
81
+ const baseApiEventsFilter = {
82
+ 'flag!': EVENT_SKIP_FLAG,
83
+ 'timestamp>': new Date(lastRunTimestamp - 1).toISOString(),
84
+ 'timestamp<': new Date(timestamp).toISOString(),
85
+ };
86
+ const { apps } = config.get();
87
+ const subscribersApps = [];
88
+ Object.keys(apps).forEach((appName) => {
89
+ const appObj = apps[appName];
90
+ if (appObj.events && appObj.events.length) {
91
+ subscribersApps.push(appObj);
108
92
  }
109
- });
110
- }
111
- });
112
- // Some resource events are not listened to every minute
113
- const isOrdersOnly = Boolean(new Date().getMinutes() % 5);
114
- listenedEvents.forEach(async (listenedEventName) => {
115
- const { resource, params } = parseEventName(listenedEventName, baseApiEventsFilter);
116
- if (resource !== 'orders') {
117
- if (isOrdersOnly) {
118
- return;
119
- }
120
- if (lastNonOrdersTimestamp) {
121
- params['timestamp>'] = new Date(lastNonOrdersTimestamp).toISOString();
122
- }
123
- }
124
- let { data: { result } } = await api.get(`events/${resource}`, {
125
- params,
126
93
  });
127
- /*
94
+ const activeApps = (await api.get('applications', {
95
+ params: {
96
+ state: 'active',
97
+ app_id: subscribersApps.map(({ appId }) => appId),
98
+ fields: '_id,app_id,data,hidden_data',
99
+ },
100
+ })).data.result;
101
+ const listenedEvents = [];
102
+ subscribersApps.forEach(({ appId, events }) => {
103
+ if (activeApps.find((app) => app.app_id === appId)) {
104
+ events.forEach((evName) => {
105
+ if (!listenedEvents.includes(evName)) {
106
+ listenedEvents.push(evName);
107
+ }
108
+ });
109
+ }
110
+ });
111
+ // Some resource events are not listened to every minute
112
+ const isOrdersOnly = Boolean(new Date().getMinutes() % 5);
113
+ listenedEvents.forEach(async (listenedEventName) => {
114
+ const { resource, params } = parseEventName(listenedEventName, baseApiEventsFilter);
115
+ if (resource !== 'orders') {
116
+ if (isOrdersOnly) {
117
+ return;
118
+ }
119
+ if (lastNonOrdersTimestamp) {
120
+ params['timestamp>'] = new Date(lastNonOrdersTimestamp).toISOString();
121
+ }
122
+ }
123
+ let { data: { result } } = await api.get(`events/${resource}`, {
124
+ params,
125
+ });
126
+ /*
128
127
  global.api_events_middleware = async (
129
128
  resource: string,
130
129
  result: EventsResult,
@@ -135,45 +134,45 @@ export default async () => {
135
134
  return result;
136
135
  };
137
136
  */
138
- const middleware = global.api_events_middleware;
139
- if (typeof middleware === 'function') {
140
- result = await middleware(resource, result);
141
- }
142
- const resourceIdsRead = [];
143
- result.forEach(async (apiEvent) => {
144
- const resourceId = apiEvent.resource_id;
145
- if (resourceIdsRead.includes(resourceId)) {
146
- return;
147
- }
148
- resourceIdsRead.push(resourceId);
149
- const apiDoc = resource !== 'applications'
150
- ? (await api.get(`${resource}/${resourceId}`)).data
151
- : null;
152
- activeApps.forEach((app) => {
153
- const appConfig = subscribersApps.find(({ appId }) => appId === app.app_id);
154
- if (appConfig?.events.includes(listenedEventName)) {
155
- const topicName = GET_PUBSUB_TOPIC(app.app_id);
156
- const json = {
157
- evName: listenedEventName,
158
- apiEvent,
159
- apiDoc: apiDoc || app,
160
- app,
161
- };
162
- const messageObj = {
163
- messageId: `${resourceId}_${apiEvent.timestamp}`,
164
- json,
165
- };
166
- tryPubSubPublish(topicName, messageObj);
137
+ const middleware = global.api_events_middleware;
138
+ if (typeof middleware === 'function') {
139
+ result = await middleware(resource, result);
167
140
  }
168
- });
141
+ const resourceIdsRead = [];
142
+ result.forEach(async (apiEvent) => {
143
+ const resourceId = apiEvent.resource_id;
144
+ if (resourceIdsRead.includes(resourceId)) {
145
+ return;
146
+ }
147
+ resourceIdsRead.push(resourceId);
148
+ const apiDoc = resource !== 'applications'
149
+ ? (await api.get(`${resource}/${resourceId}`)).data
150
+ : null;
151
+ activeApps.forEach((app) => {
152
+ const appConfig = subscribersApps.find(({ appId }) => appId === app.app_id);
153
+ if (appConfig?.events.includes(listenedEventName)) {
154
+ const topicName = GET_PUBSUB_TOPIC(app.app_id);
155
+ const json = {
156
+ evName: listenedEventName,
157
+ apiEvent,
158
+ apiDoc: apiDoc || app,
159
+ app,
160
+ };
161
+ const messageObj = {
162
+ messageId: `${resourceId}_${apiEvent.timestamp}`,
163
+ json,
164
+ };
165
+ tryPubSubPublish(topicName, messageObj);
166
+ }
167
+ });
168
+ });
169
+ logger.info(`> '${listenedEventName}' events: `, result);
170
+ });
171
+ return documentRef.set({
172
+ timestamp,
173
+ nonOrdersTimestamp: isOrdersOnly ? lastNonOrdersTimestamp : timestamp,
174
+ activeApps,
175
+ listenedEvents,
169
176
  });
170
- logger.info(`> '${listenedEventName}' events: `, result);
171
- });
172
- return documentRef.set({
173
- timestamp,
174
- nonOrdersTimestamp: isOrdersOnly ? lastNonOrdersTimestamp : timestamp,
175
- activeApps,
176
- listenedEvents,
177
- });
178
177
  };
179
- // # sourceMappingURL=check-store-events.js.map
178
+ //# sourceMappingURL=check-store-events.js.map
@@ -1,32 +1,30 @@
1
1
  import functions from 'firebase-functions';
2
2
  import config from '../config.js';
3
3
  import { GET_PUBSUB_TOPIC } from '../const.js';
4
-
5
4
  const { logger } = functions;
6
5
  /* eslint-enable no-unused-vars */
7
6
  const createPubSubFunction = (pubSubTopic, fn, eventMaxAgeMs = 60000) => {
8
- const { httpsFunctionOptions: { region } } = config.get();
9
- return functions.region(region)
10
- .runWith({ failurePolicy: true })
11
- .pubsub.topic(pubSubTopic).onPublish((message, context) => {
12
- const eventAgeMs = Date.now() - Date.parse(context.timestamp);
13
- if (eventAgeMs > eventMaxAgeMs) {
14
- logger.warn(`Dropping event ${context.eventId} with age[ms]: ${eventAgeMs}`);
15
- }
16
- fn(message.json, context, message);
7
+ const { httpsFunctionOptions: { region } } = config.get();
8
+ return functions.region(region)
9
+ .runWith({ failurePolicy: true })
10
+ .pubsub.topic(pubSubTopic).onPublish((message, context) => {
11
+ const eventAgeMs = Date.now() - Date.parse(context.timestamp);
12
+ if (eventAgeMs > eventMaxAgeMs) {
13
+ logger.warn(`Dropping event ${context.eventId} with age[ms]: ${eventAgeMs}`);
14
+ }
15
+ fn(message.json, context, message);
17
16
  });
18
17
  };
19
18
  const createAppEventsFunction = (appNameOrId, fn, eventMaxAgeMs = 60000) => {
20
- let appId;
21
- if (typeof appNameOrId === 'string') {
22
- appId = config.get().apps[appNameOrId].appId;
23
- } else {
24
- appId = appNameOrId;
25
- }
26
- return createPubSubFunction(GET_PUBSUB_TOPIC(appId), fn, eventMaxAgeMs);
19
+ let appId;
20
+ if (typeof appNameOrId === 'string') {
21
+ appId = config.get().apps[appNameOrId].appId;
22
+ }
23
+ else {
24
+ appId = appNameOrId;
25
+ }
26
+ return createPubSubFunction(GET_PUBSUB_TOPIC(appId), fn, eventMaxAgeMs);
27
27
  };
28
-
29
28
  export default createPubSubFunction;
30
-
31
29
  export { createPubSubFunction, createAppEventsFunction };
32
- // # sourceMappingURL=pubsub.js.map
30
+ //# sourceMappingURL=pubsub.js.map
@@ -2,44 +2,44 @@ import { PubSub } from '@google-cloud/pubsub';
2
2
  import logger from 'firebase-functions/lib/logger';
3
3
  import api from '@cloudcommerce/api';
4
4
  import { EVENT_SKIP_FLAG, GET_PUBSUB_TOPIC } from '../const.js';
5
-
6
5
  export default async (application, data, { isHiddenData = false, canSendPubSub = true } = {}) => {
7
- const applicationId = typeof application === 'string'
8
- ? application : application._id;
9
- const subresource = isHiddenData ? 'hidden_data' : 'data';
10
- if (application && typeof application === 'object' && canSendPubSub) {
11
- // eslint-disable-next-line no-param-reassign
12
- application[subresource] = data;
13
- const json = {
14
- evName: 'applications-dataSet',
15
- apiEvent: {
16
- timestamp: new Date().toISOString(),
17
- resource_id: applicationId,
18
- action: 'update',
19
- modified_fields: [subresource],
20
- authentication_id: null,
21
- },
22
- apiDoc: application,
23
- app: {
24
- _id: applicationId,
25
- app_id: application.app_id,
26
- data: application.data,
27
- hidden_data: application.hidden_data,
28
- },
29
- isInternal: true,
30
- };
31
- try {
32
- await new PubSub()
33
- .topic(GET_PUBSUB_TOPIC(application.app_id))
34
- .publishMessage({ json });
35
- } catch (err) {
36
- logger.error(err);
6
+ const applicationId = typeof application === 'string'
7
+ ? application : application._id;
8
+ const subresource = isHiddenData ? 'hidden_data' : 'data';
9
+ if (application && typeof application === 'object' && canSendPubSub) {
10
+ // eslint-disable-next-line no-param-reassign
11
+ application[subresource] = data;
12
+ const json = {
13
+ evName: 'applications-dataSet',
14
+ apiEvent: {
15
+ timestamp: new Date().toISOString(),
16
+ resource_id: applicationId,
17
+ action: 'update',
18
+ modified_fields: [subresource],
19
+ authentication_id: null,
20
+ },
21
+ apiDoc: application,
22
+ app: {
23
+ _id: applicationId,
24
+ app_id: application.app_id,
25
+ data: application.data,
26
+ hidden_data: application.hidden_data,
27
+ },
28
+ isInternal: true,
29
+ };
30
+ try {
31
+ await new PubSub()
32
+ .topic(GET_PUBSUB_TOPIC(application.app_id))
33
+ .publishMessage({ json });
34
+ }
35
+ catch (err) {
36
+ logger.error(err);
37
+ }
37
38
  }
38
- }
39
- return api.patch(`applications/${applicationId}/${subresource}`, data, {
40
- headers: {
41
- 'X-Event-Flag': EVENT_SKIP_FLAG,
42
- },
43
- });
39
+ return api.patch(`applications/${applicationId}/${subresource}`, data, {
40
+ headers: {
41
+ 'X-Event-Flag': EVENT_SKIP_FLAG,
42
+ },
43
+ });
44
44
  };
45
- // # sourceMappingURL=update-app-data.js.map
45
+ //# sourceMappingURL=update-app-data.js.map
@@ -3,18 +3,16 @@ import './init.js';
3
3
  import functions from 'firebase-functions';
4
4
  import config from './config.js';
5
5
  import checkStoreEvents from './handlers/check-store-events.js';
6
-
7
6
  const { httpsFunctionOptions: { region } } = config.get();
8
7
  const functionBuilder = functions
9
- .region(region)
10
- .runWith({
8
+ .region(region)
9
+ .runWith({
11
10
  timeoutSeconds: 300,
12
11
  memory: '128MB',
13
- });
14
-
12
+ });
15
13
  export const cronStoreEvents = functionBuilder.pubsub
16
- .schedule('* * * * *')
17
- .onRun(() => {
14
+ .schedule('* * * * *')
15
+ .onRun(() => {
18
16
  return checkStoreEvents();
19
- });
20
- // # sourceMappingURL=index.js.map
17
+ });
18
+ //# sourceMappingURL=index.js.map
@@ -4,6 +4,5 @@ import '@cloudcommerce/api/fetch-polyfill';
4
4
  // https://github.com/import-js/eslint-plugin-import/issues/1810
5
5
  // eslint-disable-next-line import/no-unresolved
6
6
  import { initializeApp } from 'firebase-admin/app';
7
-
8
7
  initializeApp();
9
- // # sourceMappingURL=init.js.map
8
+ //# sourceMappingURL=init.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/firebase",
3
3
  "type": "module",
4
- "version": "0.0.116",
4
+ "version": "0.0.117",
5
5
  "description": "E-Com Plus Cloud Commerce on Firebase",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/i18n",
3
3
  "type": "module",
4
- "version": "0.0.116",
4
+ "version": "0.0.117",
5
5
  "description": "E-Com Plus Cloud Commerce i18n",
6
6
  "main": "lib/all.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/modules",
3
3
  "type": "module",
4
- "version": "0.0.116",
4
+ "version": "0.0.117",
5
5
  "description": "E-Com Plus Cloud Commerce modules API",
6
6
  "main": "lib/index.cjs",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/passport",
3
3
  "type": "module",
4
- "version": "0.0.116",
4
+ "version": "0.0.117",
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.116",
4
+ "version": "0.0.117",
5
5
  "description": "E-Com Plus Cloud Commerce storefront SSR",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/storefront",
3
3
  "type": "module",
4
- "version": "0.0.116",
4
+ "version": "0.0.117",
5
5
  "description": "E-Com Plus Cloud Commerce storefront with Astro",
6
6
  "main": "src/index.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/types",
3
3
  "type": "module",
4
- "version": "0.0.116",
4
+ "version": "0.0.117",
5
5
  "description": "E-Com Plus Cloud Commerce reusable type definitions",
6
6
  "main": "index.ts",
7
7
  "repository": {
package/turbo.json CHANGED
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "$schema": "https://turborepo.org/schema.json",
3
- "baseBranch": "origin/main",
4
3
  "pipeline": {
5
4
  "build": {
6
5
  "dependsOn": [