cloudcommerce 0.0.59 → 0.0.60

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 (135) hide show
  1. package/.eslintrc.cjs +2 -0
  2. package/CHANGELOG.md +23 -0
  3. package/package.json +9 -8
  4. package/packages/api/lib/api.d.ts +5036 -0
  5. package/packages/api/lib/{index.js → api.js} +16 -10
  6. package/packages/api/lib/api.js.map +1 -0
  7. package/packages/api/lib/types.d.ts +1 -0
  8. package/packages/api/package.json +3 -3
  9. package/packages/api/src/{index.ts → api.ts} +21 -17
  10. package/packages/api/src/types.ts +1 -0
  11. package/packages/api/tests/index.test.ts +2 -2
  12. package/packages/apps/discounts/lib/discounts.js +1 -1
  13. package/packages/apps/discounts/lib/discounts.js.map +1 -1
  14. package/packages/apps/discounts/{lib-cjs/apply-discount.cjs → lib-mjs/apply-discount.mjs} +7 -9
  15. package/packages/apps/discounts/{lib-cjs/helpers.cjs → lib-mjs/helpers.mjs} +2 -2
  16. package/packages/apps/discounts/package.json +1 -1
  17. package/packages/apps/discounts/src/discounts.ts +1 -1
  18. package/packages/apps/tiny-erp/lib/event-to-tiny.js +111 -0
  19. package/packages/apps/tiny-erp/lib/event-to-tiny.js.map +1 -0
  20. package/packages/apps/tiny-erp/lib/index.js +2 -0
  21. package/packages/apps/tiny-erp/lib/index.js.map +1 -0
  22. package/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js +79 -0
  23. package/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js.map +1 -0
  24. package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js +81 -0
  25. package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js.map +1 -0
  26. package/packages/apps/tiny-erp/lib/integration/export-product-to-tiny.js +58 -0
  27. package/packages/apps/tiny-erp/lib/integration/export-product-to-tiny.js.map +1 -0
  28. package/packages/apps/tiny-erp/lib/integration/helpers/format-tiny-date.js +7 -0
  29. package/packages/apps/tiny-erp/lib/integration/helpers/format-tiny-date.js.map +1 -0
  30. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js +94 -0
  31. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js.map +1 -0
  32. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js +169 -0
  33. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js.map +1 -0
  34. package/packages/apps/tiny-erp/lib/integration/parsers/order-from-tiny.js +46 -0
  35. package/packages/apps/tiny-erp/lib/integration/parsers/order-from-tiny.js.map +1 -0
  36. package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js +193 -0
  37. package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js.map +1 -0
  38. package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js +199 -0
  39. package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js.map +1 -0
  40. package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js +129 -0
  41. package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js.map +1 -0
  42. package/packages/apps/tiny-erp/lib/integration/parsers/status-from-tiny.js +34 -0
  43. package/packages/apps/tiny-erp/lib/integration/parsers/status-from-tiny.js.map +1 -0
  44. package/packages/apps/tiny-erp/lib/integration/parsers/status-to-tiny.js +39 -0
  45. package/packages/apps/tiny-erp/lib/integration/parsers/status-to-tiny.js.map +1 -0
  46. package/packages/apps/tiny-erp/lib/integration/post-tiny-erp.js +47 -0
  47. package/packages/apps/tiny-erp/lib/integration/post-tiny-erp.js.map +1 -0
  48. package/packages/apps/tiny-erp/lib/tiny-erp.js +17 -0
  49. package/packages/apps/tiny-erp/lib/tiny-erp.js.map +1 -0
  50. package/packages/apps/tiny-erp/lib/tiny-webhook.js +135 -0
  51. package/packages/apps/tiny-erp/lib/tiny-webhook.js.map +1 -0
  52. package/packages/apps/tiny-erp/package.json +13 -6
  53. package/packages/apps/tiny-erp/src/event-to-tiny.ts +129 -0
  54. package/packages/apps/tiny-erp/src/index.ts +1 -0
  55. package/packages/apps/tiny-erp/src/integration/after-tiny-queue.ts +80 -0
  56. package/packages/apps/tiny-erp/src/integration/export-order-to-tiny.ts +86 -0
  57. package/packages/apps/tiny-erp/src/integration/export-product-to-tiny.ts +60 -0
  58. package/packages/apps/tiny-erp/src/integration/helpers/format-tiny-date.ts +6 -0
  59. package/packages/apps/tiny-erp/src/integration/import-order-from-tiny.ts +104 -0
  60. package/packages/apps/tiny-erp/src/integration/import-product-from-tiny.ts +174 -0
  61. package/packages/apps/tiny-erp/src/integration/parsers/order-from-tiny.ts +49 -0
  62. package/packages/apps/tiny-erp/src/integration/parsers/order-to-tiny.ts +205 -0
  63. package/packages/apps/tiny-erp/src/integration/parsers/product-from-tiny.ts +215 -0
  64. package/packages/apps/tiny-erp/src/integration/parsers/product-to-tiny.ts +138 -0
  65. package/packages/apps/tiny-erp/src/integration/parsers/status-from-tiny.ts +35 -0
  66. package/packages/apps/tiny-erp/src/integration/parsers/status-to-tiny.ts +42 -0
  67. package/packages/apps/tiny-erp/src/integration/post-tiny-erp.ts +52 -0
  68. package/packages/apps/tiny-erp/src/tiny-erp.ts +23 -0
  69. package/packages/apps/tiny-erp/src/tiny-webhook.ts +143 -0
  70. package/packages/cli/package.json +1 -1
  71. package/packages/events/lib/firebase.js +2 -26
  72. package/packages/events/lib/firebase.js.map +1 -1
  73. package/packages/events/lib/index.js +1 -1
  74. package/packages/events/lib/index.js.map +1 -1
  75. package/packages/events/package.json +1 -1
  76. package/packages/events/src/firebase.ts +2 -28
  77. package/packages/events/src/index.ts +1 -1
  78. package/packages/firebase/lib/config.d.ts +2 -2
  79. package/packages/firebase/lib/config.js +7 -5
  80. package/packages/firebase/lib/config.js.map +1 -1
  81. package/packages/firebase/lib/const.d.ts +2 -0
  82. package/packages/firebase/lib/const.js +6 -0
  83. package/packages/firebase/lib/const.js.map +1 -0
  84. package/packages/firebase/lib/handlers/check-store-events.js +50 -27
  85. package/packages/firebase/lib/handlers/check-store-events.js.map +1 -1
  86. package/packages/firebase/lib/helpers/pubsub.d.ts +9 -0
  87. package/packages/firebase/lib/helpers/pubsub.js +32 -0
  88. package/packages/firebase/lib/helpers/pubsub.js.map +1 -0
  89. package/packages/firebase/lib/helpers/update-app-data.d.ts +9 -0
  90. package/packages/firebase/lib/helpers/update-app-data.js +45 -0
  91. package/packages/firebase/lib/helpers/update-app-data.js.map +1 -0
  92. package/packages/firebase/lib/index.d.ts +1 -2
  93. package/packages/firebase/lib/index.js +1 -6
  94. package/packages/firebase/lib/index.js.map +1 -1
  95. package/packages/firebase/lib/init.d.ts +2 -0
  96. package/packages/firebase/lib/init.js +9 -0
  97. package/packages/firebase/lib/init.js.map +1 -0
  98. package/packages/firebase/package.json +5 -2
  99. package/packages/firebase/src/config.ts +9 -6
  100. package/packages/firebase/src/const.ts +5 -0
  101. package/packages/firebase/src/handlers/check-store-events.ts +56 -33
  102. package/packages/firebase/src/helpers/pubsub.ts +52 -0
  103. package/packages/firebase/src/helpers/update-app-data.ts +49 -0
  104. package/packages/firebase/src/index.ts +1 -7
  105. package/packages/firebase/src/init.ts +9 -0
  106. package/packages/modules/lib/firebase/handle-module.js +4 -5
  107. package/packages/modules/lib/firebase/handle-module.js.map +1 -1
  108. package/packages/modules/lib/firebase/serve-modules-api.js +2 -2
  109. package/packages/modules/lib/firebase/serve-modules-api.js.map +1 -1
  110. package/packages/modules/lib/firebase.js +2 -7
  111. package/packages/modules/lib/firebase.js.map +1 -1
  112. package/packages/modules/package.json +1 -1
  113. package/packages/modules/src/firebase/handle-module.ts +2 -5
  114. package/packages/modules/src/firebase/serve-modules-api.ts +2 -6
  115. package/packages/modules/src/firebase.ts +2 -7
  116. package/packages/passport/lib/firebase/handle-passport.js +12 -10
  117. package/packages/passport/lib/firebase/handle-passport.js.map +1 -1
  118. package/packages/passport/lib/firebase/serve-passport-api.js +2 -2
  119. package/packages/passport/lib/firebase/serve-passport-api.js.map +1 -1
  120. package/packages/passport/lib/firebase.js +2 -7
  121. package/packages/passport/lib/firebase.js.map +1 -1
  122. package/packages/passport/package.json +1 -1
  123. package/packages/passport/src/firebase/handle-passport.ts +10 -19
  124. package/packages/passport/src/firebase/serve-passport-api.ts +0 -2
  125. package/packages/passport/src/firebase.ts +1 -7
  126. package/packages/ssr/lib/firebase.js +1 -4
  127. package/packages/ssr/lib/firebase.js.map +1 -1
  128. package/packages/ssr/package.json +1 -1
  129. package/packages/ssr/src/firebase.ts +1 -4
  130. package/packages/storefront/package.json +4 -4
  131. package/packages/types/index.ts +18 -3
  132. package/packages/types/package.json +1 -1
  133. package/packages/api/lib/index.d.ts +0 -9974
  134. package/packages/api/lib/index.js.map +0 -1
  135. package/packages/apps/tiny-erp/src/firebase.ts +0 -0
@@ -0,0 +1,45 @@
1
+ import { PubSub } from '@google-cloud/pubsub';
2
+ import logger from 'firebase-functions/lib/logger';
3
+ import api from '@cloudcommerce/api';
4
+ import { EVENT_SKIP_FLAG, GET_PUBSUB_TOPIC } from '../const.js';
5
+
6
+ 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);
37
+ }
38
+ }
39
+ return api.patch(`applications/${applicationId}/${subresource}`, data, {
40
+ headers: {
41
+ 'X-Event-Flag': EVENT_SKIP_FLAG,
42
+ },
43
+ });
44
+ };
45
+ // # sourceMappingURL=update-app-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-app-data.js","sourceRoot":"","sources":["../../src/helpers/update-app-data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,MAAM,MAAM,+BAA+B,CAAC;AACnD,OAAO,GAAG,MAAM,oBAAoB,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE7D,eAAe,KAAK,EAClB,WAA+C,EAC/C,IAAyB,EACzB,EAAE,YAAY,GAAG,KAAK,EAAE,aAAa,GAAG,IAAI,EAAE,GAAG,EAAE,EACnD,EAAE;IACF,MAAM,aAAa,GAAG,OAAO,WAAW,KAAK,QAAQ;QACnD,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;IAClC,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1D,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,aAAa,EAAE;QACnE,6CAA6C;QAC7C,WAAW,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;QAChC,MAAM,IAAI,GAAqB;YAC7B,MAAM,EAAE,sBAAsB;YAC9B,QAAQ,EAAE;gBACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,WAAW,EAAE,aAAa;gBAC1B,MAAM,EAAE,QAAQ;gBAChB,eAAe,EAAE,CAAC,WAAW,CAAC;gBAC9B,iBAAiB,EAAE,IAAI;aACxB;YACD,MAAM,EAAE,WAAW;YACnB,GAAG,EAAE;gBACH,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,WAAW,EAAE,WAAW,CAAC,WAAW;aACrC;YACD,UAAU,EAAE,IAAI;SACjB,CAAC;QACF,IAAI;YACF,MAAM,IAAI,MAAM,EAAE;iBACf,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;iBAC3C,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACnB;KACF;IACD,OAAO,GAAG,CAAC,KAAK,CAAC,gBAAgB,aAAa,IAAI,WAAW,EAAE,EAAE,IAAI,EAAE;QACrE,OAAO,EAAE;YACP,cAAc,EAAE,eAAe;SAChC;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -1,4 +1,3 @@
1
- import 'source-map-support/register.js';
2
- import '@cloudcommerce/api/fetch-polyfill.js';
1
+ import './init';
3
2
  import functions from 'firebase-functions';
4
3
  export declare const cronStoreEvents: functions.CloudFunction<unknown>;
@@ -1,14 +1,9 @@
1
1
  /* eslint-disable import/prefer-default-export */
2
- import 'source-map-support/register.js';
3
- import '@cloudcommerce/api/fetch-polyfill.js';
4
- // https://github.com/import-js/eslint-plugin-import/issues/1810
5
- // eslint-disable-next-line import/no-unresolved
6
- import { initializeApp } from 'firebase-admin/app';
2
+ import './init';
7
3
  import functions from 'firebase-functions';
8
4
  import config from './config.js';
9
5
  import checkStoreEvents from './handlers/check-store-events.js';
10
6
 
11
- initializeApp();
12
7
  const { httpsFunctionOptions: { region } } = config.get();
13
8
  const functionBuilder = functions
14
9
  .region(region)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD,OAAO,gCAAgC,CAAC;AACxC,OAAO,sCAAsC,CAAC;AAC9C,gEAAgE;AAChE,gDAAgD;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAE7D,aAAa,EAAE,CAAC;AAEhB,MAAM,EAAE,oBAAoB,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;AAE1D,MAAM,eAAe,GAAG,SAAS;KAC9B,MAAM,CAAC,MAAM,CAAC;KACd,OAAO,CAAC;IACP,cAAc,EAAE,GAAG;IACnB,MAAM,EAAE,OAAO;CAChB,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM;KAClD,QAAQ,CAAC,WAAW,CAAC;KACrB,KAAK,CAAC,GAAG,EAAE;IACV,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD,OAAO,QAAQ,CAAC;AAChB,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAE7D,MAAM,EAAE,oBAAoB,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;AAE1D,MAAM,eAAe,GAAG,SAAS;KAC9B,MAAM,CAAC,MAAM,CAAC;KACd,OAAO,CAAC;IACP,cAAc,EAAE,GAAG;IACnB,MAAM,EAAE,OAAO;CAChB,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM;KAClD,QAAQ,CAAC,WAAW,CAAC;KACrB,KAAK,CAAC,GAAG,EAAE;IACV,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import 'source-map-support/register.js';
2
+ import '@cloudcommerce/api/fetch-polyfill.js';
@@ -0,0 +1,9 @@
1
+ /* eslint-disable import/first */
2
+ import 'source-map-support/register.js';
3
+ import '@cloudcommerce/api/fetch-polyfill.js';
4
+ // https://github.com/import-js/eslint-plugin-import/issues/1810
5
+ // eslint-disable-next-line import/no-unresolved
6
+ import { initializeApp } from 'firebase-admin/app';
7
+
8
+ initializeApp();
9
+ // # sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,OAAO,gCAAgC,CAAC;AACxC,OAAO,sCAAsC,CAAC;AAC9C,gEAAgE;AAChE,gDAAgD;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,aAAa,EAAE,CAAC"}
@@ -1,15 +1,18 @@
1
1
  {
2
2
  "name": "@cloudcommerce/firebase",
3
3
  "type": "module",
4
- "version": "0.0.59",
4
+ "version": "0.0.60",
5
5
  "description": "E-Com Plus Cloud Commerce on Firebase",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
8
8
  "exports": {
9
9
  ".": "./lib/index.js",
10
10
  "./config": "./config.js",
11
+ "./lib/init": "./lib/init.js",
11
12
  "./lib/config": "./lib/config.js",
12
- "./lib/env": "./lib/env.js"
13
+ "./lib/env": "./lib/env.js",
14
+ "./lib/helpers/pubsub": "./lib/helpers/pubsub.js",
15
+ "./lib/helpers/update-app-data": "./lib/helpers/update-app-data.js"
13
16
  },
14
17
  "repository": {
15
18
  "type": "git",
@@ -1,4 +1,4 @@
1
- import type { AppEventsTopic } from '@cloudcommerce/types';
1
+ import type { ApiEventName } from '@cloudcommerce/types';
2
2
  import Deepmerge from '@fastify/deepmerge';
3
3
  import {
4
4
  DEFAULT_LANG,
@@ -14,6 +14,13 @@ const env: { [key: string]: string } = (typeof process === 'object' && process?.
14
14
 
15
15
  const deepmerge = Deepmerge();
16
16
 
17
+ const tinyErpEvents: ApiEventName[] = [
18
+ 'orders-anyStatusSet',
19
+ 'products-new',
20
+ 'products-priceSet',
21
+ 'applications-dataSet',
22
+ ];
23
+
17
24
  const self = {
18
25
  __config: {
19
26
  hello: 'from @cloudcommerce/firebase',
@@ -31,11 +38,7 @@ const self = {
31
38
  },
32
39
  tinyErp: {
33
40
  appId: 105922,
34
- events: [
35
- 'orders-anyStatusSet',
36
- 'products-new',
37
- 'products-priceSet',
38
- ] as AppEventsTopic[],
41
+ events: tinyErpEvents,
39
42
  },
40
43
  },
41
44
  },
@@ -0,0 +1,5 @@
1
+ export const EVENT_SKIP_FLAG = '_skip';
2
+
3
+ export const GET_PUBSUB_TOPIC = (appId: number) => {
4
+ return `app${appId}_api_events`;
5
+ };
@@ -1,25 +1,27 @@
1
- import type { Resource, AppEventsTopic } from '@cloudcommerce/types';
1
+ import type { Resource, ApiEventName, AppEventsPayload } from '@cloudcommerce/types';
2
2
  // eslint-disable-next-line import/no-unresolved
3
3
  import { getFirestore } from 'firebase-admin/firestore';
4
4
  import logger from 'firebase-functions/lib/logger';
5
5
  import { PubSub } from '@google-cloud/pubsub';
6
6
  import api, { ApiConfig } from '@cloudcommerce/api';
7
- import getEnv from '../env';
8
7
  import config from '../config';
8
+ import { EVENT_SKIP_FLAG, GET_PUBSUB_TOPIC } from '../const';
9
9
 
10
- const parseEventsTopic = (
11
- eventsTopic: AppEventsTopic,
10
+ const parseEventName = (
11
+ evName: ApiEventName,
12
12
  baseApiEventsFilter: Record<string, string>,
13
13
  ) => {
14
- const [resource, eventName] = eventsTopic.split('-');
15
- const params: ApiConfig['params'] = {};
14
+ const [resource, actionName] = evName.split('-');
15
+ const params: ApiConfig['params'] = {
16
+ 'flag!': EVENT_SKIP_FLAG,
17
+ };
16
18
  const bodySet: { [key: string]: any } = { ...baseApiEventsFilter };
17
- if (eventName === 'new') {
19
+ if (actionName === 'new') {
18
20
  params.action = 'create';
19
21
  } else {
20
22
  switch (resource) {
21
23
  case 'orders':
22
- switch (eventName) {
24
+ switch (actionName) {
23
25
  case 'paid':
24
26
  bodySet['financial_status.current'] = 'paid';
25
27
  break;
@@ -28,7 +30,7 @@ const parseEventsTopic = (
28
30
  break;
29
31
  case 'shipped':
30
32
  case 'delivered':
31
- bodySet['fulfillment_status.current'] = eventName;
33
+ bodySet['fulfillment_status.current'] = actionName;
32
34
  break;
33
35
  case 'cancelled':
34
36
  bodySet.status = 'cancelled';
@@ -42,13 +44,16 @@ const parseEventsTopic = (
42
44
  }
43
45
  break;
44
46
  case 'products':
45
- params.modified_fields = eventName === 'priceSet'
47
+ params.modified_fields = actionName === 'priceSet'
46
48
  ? ['price', 'variations.price']
47
49
  : ['quantity']; // quantitySet
48
50
  break;
49
51
  case 'carts':
50
52
  params.modified_fields = ['customers']; // customerSet
51
53
  break;
54
+ case 'applications':
55
+ params.modified_fields = ['data', 'hidden_data']; // dataSet
56
+ break;
52
57
  default:
53
58
  }
54
59
  }
@@ -56,8 +61,8 @@ const parseEventsTopic = (
56
61
  params[`body.${field}`] = bodySet[field];
57
62
  });
58
63
  return { resource, params } as {
59
- resource: Resource;
60
- params: ApiConfig['params'];
64
+ resource: Resource,
65
+ params: ApiConfig['params'],
61
66
  };
62
67
  };
63
68
 
@@ -90,35 +95,37 @@ export default async () => {
90
95
  'timestamp<': new Date(timestamp).toISOString(),
91
96
  };
92
97
  const { apps } = config.get();
93
- const { apiAuth } = getEnv();
94
- const subscribersApps: Array<{ appId: number, events: AppEventsTopic[] }> = [];
98
+ const subscribersApps: Array<{ appId: number, events: ApiEventName[] }> = [];
95
99
  Object.keys(apps).forEach((appName) => {
96
100
  const appObj = apps[appName];
97
101
  if (appObj.events && appObj.events.length) {
98
102
  subscribersApps.push(appObj);
99
103
  }
100
104
  });
101
- const activeAppsIds = (await api.get('applications', {
105
+ const activeApps = (await api.get('applications', {
102
106
  params: {
103
107
  state: 'active',
104
108
  app_id: subscribersApps.map(({ appId }) => appId),
105
- fields: 'app_id',
109
+ fields: '_id,app_id,data,hidden_data',
106
110
  },
107
- })).data.result.map((app) => app.app_id);
108
- const listenedEvents: AppEventsTopic[] = [];
111
+ })).data.result as Array<AppEventsPayload['app']>;
112
+ const listenedEvents: ApiEventName[] = [];
109
113
  subscribersApps.forEach(({ appId, events }) => {
110
- if (activeAppsIds.includes(appId)) {
111
- events.forEach((eventsTopic) => {
112
- if (!listenedEvents.includes(eventsTopic)) {
113
- listenedEvents.push(eventsTopic);
114
+ if (activeApps.find((app) => app.app_id === appId)) {
115
+ events.forEach((evName) => {
116
+ if (!listenedEvents.includes(evName)) {
117
+ listenedEvents.push(evName);
114
118
  }
115
119
  });
116
120
  }
117
121
  });
118
- listenedEvents.forEach(async (eventsTopic) => {
119
- const { resource, params } = parseEventsTopic(eventsTopic, baseApiEventsFilter);
122
+ listenedEvents.forEach(async (listenedEventName) => {
123
+ const { resource, params } = parseEventName(listenedEventName, baseApiEventsFilter);
124
+ if (resource !== 'orders' && resource !== 'carts' && new Date().getMinutes() % 5) {
125
+ // Other resource events are not listened to every minute
126
+ return;
127
+ }
120
128
  let { data: { result } } = await api.get(`events/${resource}`, {
121
- ...apiAuth,
122
129
  params,
123
130
  });
124
131
  /*
@@ -136,23 +143,39 @@ export default async () => {
136
143
  if (typeof middleware === 'function') {
137
144
  result = await middleware(resource, result);
138
145
  }
139
- result.forEach((apiEvent) => {
140
- subscribersApps.forEach(({ appId, events }) => {
141
- if (events.includes(eventsTopic) && activeAppsIds.includes(appId)) {
142
- const topicName = `app${appId}_${eventsTopic}`;
146
+ const resourceIdsRead: string[] = [];
147
+ result.forEach(async (apiEvent) => {
148
+ const resourceId = apiEvent.resource_id;
149
+ if (resourceIdsRead.includes(resourceId)) {
150
+ return;
151
+ }
152
+ resourceIdsRead.push(resourceId);
153
+ const apiDoc = resource !== 'applications'
154
+ ? (await api.get(`${resource}/${resourceId}`)).data
155
+ : null;
156
+ activeApps.forEach((app) => {
157
+ const appConfig = subscribersApps.find(({ appId }) => appId === app.app_id);
158
+ if (appConfig?.events.includes(listenedEventName)) {
159
+ const topicName = GET_PUBSUB_TOPIC(app.app_id);
160
+ const json: AppEventsPayload = {
161
+ evName: listenedEventName,
162
+ apiEvent,
163
+ apiDoc: apiDoc || app,
164
+ app,
165
+ };
143
166
  const messageObj = {
144
- messageId: `${eventsTopic}_${apiEvent.timestamp}`,
145
- json: apiEvent,
167
+ messageId: `${resourceId}_${apiEvent.timestamp}`,
168
+ json,
146
169
  };
147
170
  tryPubSubPublish(topicName, messageObj);
148
171
  }
149
172
  });
150
173
  });
151
- logger.info(`> '${eventsTopic}' events: `, result);
174
+ logger.info(`> '${listenedEventName}' events: `, result);
152
175
  });
153
176
  return documentRef.set({
154
177
  timestamp,
155
- activeAppsIds,
178
+ activeApps,
156
179
  listenedEvents,
157
180
  });
158
181
  };
@@ -0,0 +1,52 @@
1
+ import type { AppEventsPayload } from '@cloudcommerce/types';
2
+ import functions from 'firebase-functions';
3
+ import config from '../config';
4
+ import { GET_PUBSUB_TOPIC } from '../const';
5
+
6
+ const { logger } = functions;
7
+
8
+ /* eslint-disable no-unused-vars */
9
+ type PubSubHandler<TMessage> = (
10
+ json: TMessage,
11
+ context: functions.EventContext,
12
+ message: functions.pubsub.Message,
13
+ ) => void;
14
+ type ApiEventHandler = PubSubHandler<AppEventsPayload>;
15
+ /* eslint-enable no-unused-vars */
16
+
17
+ const createPubSubFunction = (
18
+ pubSubTopic: string,
19
+ fn: PubSubHandler<any>,
20
+ eventMaxAgeMs = 60000,
21
+ ) => {
22
+ const { httpsFunctionOptions: { region } } = config.get();
23
+ return functions.region(region)
24
+ .runWith({ failurePolicy: true })
25
+ .pubsub.topic(pubSubTopic).onPublish((message, context) => {
26
+ const eventAgeMs = Date.now() - Date.parse(context.timestamp);
27
+ if (eventAgeMs > eventMaxAgeMs) {
28
+ logger.warn(`Dropping event ${context.eventId} with age[ms]: ${eventAgeMs}`);
29
+ }
30
+ fn(message.json, context, message);
31
+ });
32
+ };
33
+
34
+ const createAppEventsFunction = (
35
+ appNameOrId: string | number,
36
+ fn: ApiEventHandler,
37
+ eventMaxAgeMs = 60000,
38
+ ) => {
39
+ let appId: number;
40
+ if (typeof appNameOrId === 'string') {
41
+ appId = config.get().apps[appNameOrId].appId;
42
+ } else {
43
+ appId = appNameOrId;
44
+ }
45
+ return createPubSubFunction(GET_PUBSUB_TOPIC(appId), fn, eventMaxAgeMs);
46
+ };
47
+
48
+ export default createPubSubFunction;
49
+
50
+ export { createPubSubFunction, createAppEventsFunction };
51
+
52
+ export type { PubSubHandler, ApiEventHandler };
@@ -0,0 +1,49 @@
1
+ import type { Applications, AppEventsPayload } from '@cloudcommerce/types';
2
+ import { PubSub } from '@google-cloud/pubsub';
3
+ import logger from 'firebase-functions/lib/logger';
4
+ import api from '@cloudcommerce/api';
5
+ import { EVENT_SKIP_FLAG, GET_PUBSUB_TOPIC } from '../const';
6
+
7
+ export default async (
8
+ application: Applications | Applications['_id'],
9
+ data: Record<string, any>,
10
+ { isHiddenData = false, canSendPubSub = true } = {},
11
+ ) => {
12
+ const applicationId = typeof application === 'string'
13
+ ? application : application._id;
14
+ const subresource = isHiddenData ? 'hidden_data' : 'data';
15
+ if (application && typeof application === 'object' && canSendPubSub) {
16
+ // eslint-disable-next-line no-param-reassign
17
+ application[subresource] = data;
18
+ const json: AppEventsPayload = {
19
+ evName: 'applications-dataSet',
20
+ apiEvent: {
21
+ timestamp: new Date().toISOString(),
22
+ resource_id: applicationId,
23
+ action: 'update',
24
+ modified_fields: [subresource],
25
+ authentication_id: null,
26
+ },
27
+ apiDoc: application,
28
+ app: {
29
+ _id: applicationId,
30
+ app_id: application.app_id,
31
+ data: application.data,
32
+ hidden_data: application.hidden_data,
33
+ },
34
+ isInternal: true,
35
+ };
36
+ try {
37
+ await new PubSub()
38
+ .topic(GET_PUBSUB_TOPIC(application.app_id))
39
+ .publishMessage({ json });
40
+ } catch (err) {
41
+ logger.error(err);
42
+ }
43
+ }
44
+ return api.patch(`applications/${applicationId}/${subresource}`, data, {
45
+ headers: {
46
+ 'X-Event-Flag': EVENT_SKIP_FLAG,
47
+ },
48
+ });
49
+ };
@@ -1,16 +1,10 @@
1
1
  /* eslint-disable import/prefer-default-export */
2
2
 
3
- import 'source-map-support/register.js';
4
- import '@cloudcommerce/api/fetch-polyfill.js';
5
- // https://github.com/import-js/eslint-plugin-import/issues/1810
6
- // eslint-disable-next-line import/no-unresolved
7
- import { initializeApp } from 'firebase-admin/app';
3
+ import './init';
8
4
  import functions from 'firebase-functions';
9
5
  import config from './config';
10
6
  import checkStoreEvents from './handlers/check-store-events';
11
7
 
12
- initializeApp();
13
-
14
8
  const { httpsFunctionOptions: { region } } = config.get();
15
9
 
16
10
  const functionBuilder = functions
@@ -0,0 +1,9 @@
1
+ /* eslint-disable import/first */
2
+
3
+ import 'source-map-support/register.js';
4
+ import '@cloudcommerce/api/fetch-polyfill.js';
5
+ // https://github.com/import-js/eslint-plugin-import/issues/1810
6
+ // eslint-disable-next-line import/no-unresolved
7
+ import { initializeApp } from 'firebase-admin/app';
8
+
9
+ initializeApp();
@@ -11,7 +11,7 @@ const ajvAppsResponse = new Ajv({ ...ajvOptions, allErrors: true });
11
11
  // Cache apps list and no params modules results
12
12
  const appsCache = {};
13
13
  const resultsCache = {};
14
- async function runModule(apiAuth, params, res, modName, validate, responseValidate, appId) {
14
+ async function runModule(params, res, modName, validate, responseValidate, appId) {
15
15
  const respond = (result) => res.send({
16
16
  result,
17
17
  meta: params,
@@ -47,7 +47,6 @@ async function runModule(apiAuth, params, res, modName, validate, responseValida
47
47
  } else {
48
48
  try {
49
49
  const { data } = await api.get('applications', {
50
- ...apiAuth,
51
50
  params: listAppsParams,
52
51
  });
53
52
  appsList = data.result;
@@ -151,15 +150,15 @@ async function runModule(apiAuth, params, res, modName, validate, responseValida
151
150
  return res.sendStatus(501);
152
151
  }
153
152
 
154
- export default (modName, schema, responseSchema, req, res, apiAuth) => {
153
+ export default (modName, schema, responseSchema, req, res) => {
155
154
  const validate = ajv.compile(schema);
156
155
  const responseValidate = ajvAppsResponse.compile(responseSchema);
157
156
  return {
158
157
  GET() {
159
- runModule(apiAuth, req.query, res, modName, validate, responseValidate);
158
+ runModule(req.query, res, modName, validate, responseValidate);
160
159
  },
161
160
  POST() {
162
- runModule(apiAuth, req.body, res, modName, validate, responseValidate, req.query.app_id);
161
+ runModule(req.body, res, modName, validate, responseValidate, req.query.app_id);
163
162
  },
164
163
  };
165
164
  };
@@ -1 +1 @@
1
- {"version":3,"file":"handle-module.js","sourceRoot":"","sources":["../../src/firebase/handle-module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,GAAyB,MAAM,KAAK,CAAC;AAC5C,OAAO,GAA4B,MAAM,oBAAoB,CAAC;AAC9D,OAAO,MAAM,MAAM,oCAAoC,CAAC;AACxD,OAAO,EACL,GAAG,EACH,UAAU,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,OAAO,CAAC;AACf,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAE9C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAEpE,gDAAgD;AAChD,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,KAAK,UAAU,SAAS,CACtB,OAAqD,EACrD,MAA8B,EAC9B,GAAa,EACb,OAAe,EACf,QAA0B,EAC1B,gBAAkC,EAClC,KAAW;IAEX,MAAM,OAAO,GAAG,CAAC,MAAa,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1C,MAAM;QACN,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACrB,OAAO,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;KACxD;IACD,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC;IACzC,MAAM,cAAc,GAAwB;QAC1C,KAAK,EAAE,QAAQ;QACf,CAAC,WAAW,OAAO,UAAU,CAAC,EAAE,IAAI;QACpC,MAAM,EAAE,+CAA+C,OAAO,EAAE;KACjE,CAAC;IACF,IACE,KAAK;WACF,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACpF;QACA,QAAQ,GAAG,KAAK,CAAC;QACjB,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC;QAC9B,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC;KAC1B;IACD,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,QAAQ,IAAI,aAAa,EAAE;QAC7B,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE;YAC1B,OAAO,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;SACxC;QACD,eAAe,GAAG,IAAI,CAAC;KACxB;IAED,IAAI,QAAwB,CAAC;IAC7B,IAAI,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE;QACnC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;KAChC;SAAM;QACL,IAAI;YACF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE;gBAC7C,GAAG,OAAO;gBACV,MAAM,EAAE,cAAc;aACvB,CAAC,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;SACxB;QAAC,OAAO,GAAQ,EAAE;YACjB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClB,MAAM,KAAK,GAAG,GAAe,CAAC;YAC9B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,GAAG;gBACX,UAAU,EAAE,QAAQ;gBACpB,OAAO,EAAE,6BAA6B,KAAK,CAAC,UAAU,sBAAsB;gBAC5E,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK;aAC3C,CAAC,CAAC;SACJ;KACF;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACpB,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;SACpB;QACD,IAAI,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACpC,SAAS,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;YAC/B,UAAU,CAAC,GAAG,EAAE;gBACd,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;gBAC3B,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACpC;QACD,MAAM,UAAU,GAAmB,EAAE,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAuD,CAAC;YACtF,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;gBAC5B,WAAW,CAAC,WAAW,GAAG,EAAE,CAAC;aAC9B;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;gBACrB,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC;aACvB;YACD,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAkB,CAAC;YACrE,mEAAmE;YACnE,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,aAAa,GAAkB;gBACnC,OAAO;gBACP,MAAM,EAAE,OAAwB;gBAChC,MAAM;gBACN,WAAW;aACZ,CAAC;YAEF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtC,IAAI,QAAa,CAAC;gBAClB,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,IAAI,YAAY,GAAkB,IAAI,CAAC;gBACvC,aAAa,CACX,KAAK,EACL,OAAwB,EACxB,YAAY,EACZ,aAAa,EACb,YAAY,CACb;qBACE,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;oBACpB,QAAQ,GAAG,WAAW,CAAC;oBACvB,IAAI,WAAW,EAAE,KAAK,EAAE;wBACtB,OAAO,GAAG,IAAI,CAAC;wBACf,YAAY,GAAG,WAAW,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;qBACjE;gBACH,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;oBAClB,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,GAAG,IAAI,CAAC;oBACf,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC;gBAC7B,CAAC,CAAC;qBACD,OAAO,CAAC,GAAG,EAAE;oBACZ,MAAM,MAAM,GAAG;wBACb,GAAG,EAAE,WAAW,CAAC,GAAG;wBACpB,MAAM,EAAE,WAAW,CAAC,MAAM;wBAC1B,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY;wBAC/B,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,SAAS,EAAE,KAAK;wBAChB,eAAe,EAAE,IAAI;wBACrB,KAAK,EAAE,OAAO;wBACd,aAAa,EAAE,YAAY;wBAC3B,QAAQ;qBACT,CAAC;oBACF,IAAI,CAAC,OAAO,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE;wBACjE,MAAM,CAAC,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;wBAC9C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;4BACrB,aAAa;4BACb,MAAM,CAAC,eAAe,GAAG,cAAc,CACrC,gBAAgB,CAAC,MAAM,EACvB,eAAe,CAChB,CAAC;yBACH;qBACF;oBACD,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC,CAAC;SACL;QAED,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;gBAC7C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChB,eAAe,GAAG,KAAK,CAAC;aACzB;YACD,IAAI,eAAe,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;gBAC9C,YAAY,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;gBACjC,UAAU,CAAC,GAAG,EAAE;oBACd,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;oBAC9B,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAChC,CAAC,EAAE,KAAK,CAAC,CAAC;aACX;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;KACJ;IACD,qBAAqB;IACrB,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,eAAe,CACb,OAAe,EACf,MAA8B,EAC9B,cAAsC,EACtC,GAAY,EACZ,GAAa,EACb,OAAqD,EACrD,EAAE;IACF,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,gBAAgB,GAAG,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACjE,OAAO;QACL,GAAG;YACD,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI;YACF,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3F,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"handle-module.js","sourceRoot":"","sources":["../../src/firebase/handle-module.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { schemas } from '../index.js';
2
2
  import handleModule from './handle-module.js';
3
3
 
4
- export default (req, res, apiAuth) => {
4
+ export default (req, res) => {
5
5
  const { method } = req;
6
6
  if (method !== 'POST' && method !== 'GET') {
7
7
  return res.sendStatus(405);
@@ -49,7 +49,7 @@ export default (req, res, apiAuth) => {
49
49
  return sendSchema(true);
50
50
  }
51
51
  if (url === `/${modName}`) {
52
- return handleModule(modName, schema, responseSchema, req, res, apiAuth);
52
+ return handleModule(modName, schema, responseSchema, req, res);
53
53
  }
54
54
  }
55
55
  return res.sendStatus(404);
@@ -1 +1 @@
1
- {"version":3,"file":"serve-modules-api.js","sourceRoot":"","sources":["../../src/firebase/serve-modules-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAE3C,eAAe,CACb,GAAY,EACZ,GAAa,EACb,OAAqD,EACrD,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACvB,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK,EAAE;QACzC,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KAC5B;IACD,IACE,MAAM,KAAK,MAAM;WACd,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EACzE;QACA,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KAC5B;IAED,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IAClB,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACzB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KACxB;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,CAAC,gBAAgB,GAAG,KAAK,EAAE,EAAE;QAC9C,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;aACnB,SAAS,CAAC,eAAe,EAAE,sBAAsB,CAAC;aAClD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC;IAEF,IAAI,OAAO,KAAK,WAAW,EAAE;QAC3B,IAAI,GAAG,KAAK,YAAY,EAAE;YACxB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,UAAU;aACpB,CAAC,CAAC;SACJ;QACD,IAAI,GAAG,KAAK,mBAAmB,EAAE;YAC/B,OAAO,UAAU,EAAE,CAAC;SACrB;QACD,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KAC5B;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QACpB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACnB,MAAM,CAAC,OAAO,GAAG,yCAAyC,CAAC;YAC3D,MAAM,CAAC,KAAK,GAAG,YAAY,OAAO,kBAAkB,CAAC;SACtD;QACD,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YAC3B,cAAc,CAAC,OAAO,GAAG,yCAAyC,CAAC;YACnE,cAAc,CAAC,KAAK,GAAG,YAAY,OAAO,wBAAwB,CAAC;SACpE;QACD,IAAI,GAAG,KAAK,IAAI,OAAO,SAAS,EAAE;YAChC,OAAO,UAAU,EAAE,CAAC;SACrB;QACD,IAAI,GAAG,KAAK,IAAI,OAAO,kBAAkB,EAAE;YACzC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;SACzB;QACD,IAAI,GAAG,KAAK,IAAI,OAAO,EAAE,EAAE;YACzB,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;SACzE;KACF;IACD,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC,CAAC"}
1
+ {"version":3,"file":"serve-modules-api.js","sourceRoot":"","sources":["../../src/firebase/serve-modules-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAE3C,eAAe,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;IAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACvB,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK,EAAE;QACzC,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KAC5B;IACD,IACE,MAAM,KAAK,MAAM;WACd,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EACzE;QACA,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KAC5B;IAED,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IAClB,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACzB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KACxB;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,CAAC,gBAAgB,GAAG,KAAK,EAAE,EAAE;QAC9C,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;aACnB,SAAS,CAAC,eAAe,EAAE,sBAAsB,CAAC;aAClD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC;IAEF,IAAI,OAAO,KAAK,WAAW,EAAE;QAC3B,IAAI,GAAG,KAAK,YAAY,EAAE;YACxB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,UAAU;aACpB,CAAC,CAAC;SACJ;QACD,IAAI,GAAG,KAAK,mBAAmB,EAAE;YAC/B,OAAO,UAAU,EAAE,CAAC;SACrB;QACD,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KAC5B;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QACpB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACnB,MAAM,CAAC,OAAO,GAAG,yCAAyC,CAAC;YAC3D,MAAM,CAAC,KAAK,GAAG,YAAY,OAAO,kBAAkB,CAAC;SACtD;QACD,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YAC3B,cAAc,CAAC,OAAO,GAAG,yCAAyC,CAAC;YACnE,cAAc,CAAC,KAAK,GAAG,YAAY,OAAO,wBAAwB,CAAC;SACpE;QACD,IAAI,GAAG,KAAK,IAAI,OAAO,SAAS,EAAE;YAChC,OAAO,UAAU,EAAE,CAAC;SACrB;QACD,IAAI,GAAG,KAAK,IAAI,OAAO,kBAAkB,EAAE;YACzC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;SACzB;QACD,IAAI,GAAG,KAAK,IAAI,OAAO,EAAE,EAAE;YACzB,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SAChE;KACF;IACD,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC,CAAC"}
@@ -1,18 +1,13 @@
1
1
  /* eslint-disable import/prefer-default-export */
2
- import 'source-map-support/register.js';
3
- // eslint-disable-next-line import/no-unresolved
4
- import { initializeApp } from 'firebase-admin/app';
2
+ import '@cloudcommerce/firebase/lib/init';
5
3
  // eslint-disable-next-line import/no-unresolved
6
4
  import { onRequest } from 'firebase-functions/v2/https';
7
5
  import config from '@cloudcommerce/firebase/lib/config';
8
- import getEnv from '@cloudcommerce/firebase/lib/env';
9
6
  import serveModulesApi from './firebase/serve-modules-api.js';
10
7
 
11
- initializeApp();
12
8
  const { httpsFunctionOptions } = config.get();
13
9
 
14
10
  export const modules = onRequest(httpsFunctionOptions, (req, res) => {
15
- const { apiAuth } = getEnv();
16
- serveModulesApi(req, res, apiAuth);
11
+ serveModulesApi(req, res);
17
12
  });
18
13
  // # sourceMappingURL=firebase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"firebase.js","sourceRoot":"","sources":["../src/firebase.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD,OAAO,gCAAgC,CAAC;AACxC,gDAAgD;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,gDAAgD;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,MAAM,MAAM,oCAAoC,CAAC;AACxD,OAAO,MAAM,MAAM,iCAAiC,CAAC;AACrD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAE3D,aAAa,EAAE,CAAC;AAChB,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;AAE9C,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAClE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;IAC7B,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"firebase.js","sourceRoot":"","sources":["../src/firebase.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD,OAAO,kCAAkC,CAAC;AAC1C,gDAAgD;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,MAAM,MAAM,oCAAoC,CAAC;AACxD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAE3D,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;AAE9C,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAClE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/modules",
3
3
  "type": "module",
4
- "version": "0.0.59",
4
+ "version": "0.0.60",
5
5
  "description": "E-Com Plus Cloud Commerce modules API",
6
6
  "main": "lib/index.cjs",
7
7
  "exports": {
@@ -19,7 +19,6 @@ const appsCache = {};
19
19
  const resultsCache = {};
20
20
 
21
21
  async function runModule(
22
- apiAuth: { authenticationId: string, apiKey: string },
23
22
  params: { [key: string]: any },
24
23
  res: Response,
25
24
  modName: string,
@@ -65,7 +64,6 @@ async function runModule(
65
64
  } else {
66
65
  try {
67
66
  const { data } = await api.get('applications', {
68
- ...apiAuth,
69
67
  params: listAppsParams,
70
68
  });
71
69
  appsList = data.result;
@@ -187,16 +185,15 @@ export default (
187
185
  responseSchema: { [key: string]: any },
188
186
  req: Request,
189
187
  res: Response,
190
- apiAuth: { authenticationId: string, apiKey: string },
191
188
  ) => {
192
189
  const validate = ajv.compile(schema);
193
190
  const responseValidate = ajvAppsResponse.compile(responseSchema);
194
191
  return {
195
192
  GET() {
196
- runModule(apiAuth, req.query, res, modName, validate, responseValidate);
193
+ runModule(req.query, res, modName, validate, responseValidate);
197
194
  },
198
195
  POST() {
199
- runModule(apiAuth, req.body, res, modName, validate, responseValidate, req.query.app_id);
196
+ runModule(req.body, res, modName, validate, responseValidate, req.query.app_id);
200
197
  },
201
198
  };
202
199
  };