cloudcommerce 0.1.0 → 0.1.1

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 (107) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/ecomplus-stores/monocard/.vscode/settings.json +5 -1
  3. package/ecomplus-stores/monocard/functions/core/package.json +1 -1
  4. package/ecomplus-stores/monocard/functions/events/package.json +2 -2
  5. package/ecomplus-stores/monocard/functions/modules/package.json +2 -2
  6. package/ecomplus-stores/monocard/functions/passport/package.json +2 -2
  7. package/ecomplus-stores/monocard/functions/ssr/package.json +15 -11
  8. package/ecomplus-stores/monocard/functions/ssr/src/pages/_vue.ts +3 -0
  9. package/ecomplus-stores/monocard/package.json +1 -1
  10. package/ecomplus-stores/tia-sonia/.firebaserc +5 -0
  11. package/ecomplus-stores/tia-sonia/.vscode/settings.json +5 -1
  12. package/ecomplus-stores/tia-sonia/functions/config.json +2 -2
  13. package/ecomplus-stores/tia-sonia/functions/core/package.json +1 -1
  14. package/ecomplus-stores/tia-sonia/functions/events/package.json +2 -2
  15. package/ecomplus-stores/tia-sonia/functions/modules/package.json +2 -2
  16. package/ecomplus-stores/tia-sonia/functions/passport/package.json +2 -2
  17. package/ecomplus-stores/tia-sonia/functions/ssr/package.json +15 -7
  18. package/ecomplus-stores/tia-sonia/functions/ssr/src/pages/_vue.ts +3 -0
  19. package/ecomplus-stores/tia-sonia/functions/ssr/src/scripts/InlineScripts.astro +6 -7
  20. package/ecomplus-stores/tia-sonia/package.json +1 -1
  21. package/package.json +1 -1
  22. package/packages/api/package.json +1 -1
  23. package/packages/apps/correios/package.json +1 -1
  24. package/packages/apps/custom-payment/package.json +1 -1
  25. package/packages/apps/custom-shipping/package.json +1 -1
  26. package/packages/apps/discounts/package.json +1 -1
  27. package/packages/apps/emails/package.json +1 -1
  28. package/packages/apps/frenet/package.json +1 -1
  29. package/packages/apps/galaxpay/package.json +1 -1
  30. package/packages/apps/infinitepay/package.json +1 -1
  31. package/packages/apps/jadlog/package.json +1 -1
  32. package/packages/apps/loyalty-points/CHANGELOG.md +1 -0
  33. package/packages/apps/loyalty-points/README.md +1 -0
  34. package/packages/apps/loyalty-points/events.js +1 -0
  35. package/packages/apps/loyalty-points/lib/functions-lib/get-program-id.d.ts +5 -0
  36. package/packages/apps/loyalty-points/lib/functions-lib/get-program-id.js +20 -0
  37. package/packages/apps/loyalty-points/lib/functions-lib/get-program-id.js.map +1 -0
  38. package/packages/apps/loyalty-points/lib/functions-lib/handle-loyalty-points-event.d.ts +3 -0
  39. package/packages/apps/loyalty-points/lib/functions-lib/handle-loyalty-points-event.js +172 -0
  40. package/packages/apps/loyalty-points/lib/functions-lib/handle-loyalty-points-event.js.map +1 -0
  41. package/packages/apps/loyalty-points/lib/index.d.ts +1 -0
  42. package/packages/apps/loyalty-points/lib/index.js +2 -0
  43. package/packages/apps/loyalty-points/lib/index.js.map +1 -0
  44. package/packages/apps/loyalty-points/lib/loyalty-create-transaction.d.ts +76 -0
  45. package/packages/apps/loyalty-points/lib/loyalty-create-transaction.js +210 -0
  46. package/packages/apps/loyalty-points/lib/loyalty-create-transaction.js.map +1 -0
  47. package/packages/apps/loyalty-points/lib/loyalty-list-payments.d.ts +3 -0
  48. package/packages/apps/loyalty-points/lib/loyalty-list-payments.js +44 -0
  49. package/packages/apps/loyalty-points/lib/loyalty-list-payments.js.map +1 -0
  50. package/packages/apps/loyalty-points/lib/loyalty-points-events.d.ts +4 -0
  51. package/packages/apps/loyalty-points/lib/loyalty-points-events.js +28 -0
  52. package/packages/apps/loyalty-points/lib/loyalty-points-events.js.map +1 -0
  53. package/packages/apps/loyalty-points/lib/loyalty-points.d.ts +77 -0
  54. package/packages/apps/loyalty-points/lib/loyalty-points.js +12 -0
  55. package/packages/apps/loyalty-points/lib/loyalty-points.js.map +1 -0
  56. package/packages/apps/loyalty-points/package.json +32 -0
  57. package/packages/apps/loyalty-points/src/functions-lib/get-program-id.ts +23 -0
  58. package/packages/apps/loyalty-points/src/functions-lib/handle-loyalty-points-event.ts +207 -0
  59. package/packages/apps/loyalty-points/src/index.ts +1 -0
  60. package/packages/apps/loyalty-points/src/loyalty-create-transaction.ts +241 -0
  61. package/packages/apps/loyalty-points/src/loyalty-list-payments.ts +55 -0
  62. package/packages/apps/loyalty-points/src/loyalty-points-events.ts +41 -0
  63. package/packages/apps/loyalty-points/src/loyalty-points.ts +12 -0
  64. package/packages/apps/loyalty-points/tsconfig.json +6 -0
  65. package/packages/apps/mercadopago/package.json +1 -1
  66. package/packages/apps/pagarme/package.json +1 -1
  67. package/packages/apps/pix/package.json +1 -1
  68. package/packages/apps/tiny-erp/package.json +1 -1
  69. package/packages/cli/package.json +1 -1
  70. package/packages/config/package.json +1 -1
  71. package/packages/emails/package.json +1 -1
  72. package/packages/events/lib/firebase.js +2 -0
  73. package/packages/events/lib/firebase.js.map +1 -1
  74. package/packages/events/package.json +2 -1
  75. package/packages/events/src/firebase.ts +2 -0
  76. package/packages/firebase/lib/config.d.ts +4 -0
  77. package/packages/firebase/lib/config.js +8 -0
  78. package/packages/firebase/lib/config.js.map +1 -1
  79. package/packages/firebase/package.json +1 -1
  80. package/packages/firebase/src/config.ts +9 -0
  81. package/packages/i18n/package.json +1 -1
  82. package/packages/modules/lib/firebase/call-app-module.js +12 -0
  83. package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
  84. package/packages/modules/package.json +2 -1
  85. package/packages/modules/src/firebase/call-app-module.ts +12 -0
  86. package/packages/passport/package.json +1 -1
  87. package/packages/ssr/package.json +1 -1
  88. package/packages/storefront/dist/client/HeaderButtons.8acf8a3b.js +1 -0
  89. package/packages/storefront/dist/client/Prices.9099fe99.js +1 -0
  90. package/packages/storefront/dist/client/{ProductCard.f477b7a1.js → ProductCard.7b68cc35.js} +1 -1
  91. package/packages/storefront/dist/client/assets/{_...slug_.15766f41.css → _...slug_.f19a16ca.css} +1 -1
  92. package/packages/storefront/dist/client/assets/server.55b8d73d.css +1 -0
  93. package/packages/storefront/dist/client/chunks/{HeaderButtons.27ab2180.js → HeaderButtons.cbbb059d.js} +1 -1
  94. package/packages/storefront/dist/client/chunks/{LoginForm.36774236.js → LoginForm.ac2f1b1f.js} +1 -1
  95. package/packages/storefront/dist/client/chunks/{Prices.vue_vue_type_script_setup_true_lang.522e4ac4.js → Prices.vue_vue_type_script_setup_true_lang.c37148c1.js} +1 -1
  96. package/packages/storefront/dist/client/chunks/{_plugin-vue_export-helper.979dc9e3.js → _plugin-vue_export-helper.5ccc5d75.js} +1 -1
  97. package/packages/storefront/dist/client/chunks/{runtime-core.esm-bundler.6c012e5d.js → runtime-core.esm-bundler.d5646b29.js} +1 -1
  98. package/packages/storefront/dist/client/client.9783ef49.js +1 -0
  99. package/packages/storefront/dist/client/sw.js +1 -1
  100. package/packages/storefront/dist/server/entry.mjs +1544 -28
  101. package/packages/storefront/package.json +1 -1
  102. package/packages/storefront/src/lib/pages/_vue.ts +1 -1
  103. package/packages/types/package.json +1 -1
  104. package/packages/storefront/dist/client/HeaderButtons.f1c92fd8.js +0 -1
  105. package/packages/storefront/dist/client/Prices.795d082c.js +0 -1
  106. package/packages/storefront/dist/client/assets/server.4d9646d8.css +0 -1
  107. package/packages/storefront/dist/client/client.8b4e336b.js +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.1.1](https://github.com/ecomplus/cloud-commerce/compare/v0.1.0...v0.1.1) (2022-12-22)
6
+
7
+
8
+ ### Features
9
+
10
+ * **loyalty-points:** Setup loyalty points payment app from https://github.com/ecomplus/app-loyalty-points ([#92](https://github.com/ecomplus/cloud-commerce/issues/92)) ([f796092](https://github.com/ecomplus/cloud-commerce/commit/f796092efb52a22a10fb1f30e579fbc8b667097b))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **storefront:** Import `VTooltip` TS src (to be compiled) to prevent ESM error ([22a84f5](https://github.com/ecomplus/cloud-commerce/commit/22a84f5bbd8d548e505dfe52a7d2d9d0207fa9ba))
16
+
5
17
  ## [0.1.0](https://github.com/ecomplus/cloud-commerce/compare/v0.0.133...v0.1.0) (2022-12-21)
6
18
 
7
19
 
@@ -1,5 +1,9 @@
1
1
  {
2
2
  "editor.quickSuggestions": {
3
3
  "strings": true
4
- }
4
+ },
5
+ "files.associations": {
6
+ "*.css": "tailwindcss"
7
+ },
8
+ "css.lint.unknownAtRules": "ignore"
5
9
  }
@@ -15,6 +15,6 @@
15
15
  },
16
16
  "main": "index.js",
17
17
  "dependencies": {
18
- "@cloudcommerce/firebase": "^0.0.126"
18
+ "@cloudcommerce/firebase": "^0.1.0"
19
19
  }
20
20
  }
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "main": "index.js",
17
17
  "dependencies": {
18
- "@cloudcommerce/events": "^0.0.126",
19
- "@cloudcommerce/firebase": "^0.0.126"
18
+ "@cloudcommerce/events": "^0.1.0",
19
+ "@cloudcommerce/firebase": "^0.1.0"
20
20
  }
21
21
  }
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "main": "index.js",
17
17
  "dependencies": {
18
- "@cloudcommerce/firebase": "^0.0.126",
19
- "@cloudcommerce/modules": "^0.0.126"
18
+ "@cloudcommerce/firebase": "^0.1.0",
19
+ "@cloudcommerce/modules": "^0.1.0"
20
20
  }
21
21
  }
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "main": "index.js",
17
17
  "dependencies": {
18
- "@cloudcommerce/firebase": "^0.0.126",
19
- "@cloudcommerce/passport": "^0.0.126"
18
+ "@cloudcommerce/firebase": "^0.1.0",
19
+ "@cloudcommerce/passport": "^0.1.0"
20
20
  }
21
21
  }
@@ -17,18 +17,22 @@
17
17
  },
18
18
  "main": "index.js",
19
19
  "dependencies": {
20
- "@astrojs/image": "^0.11.0",
21
- "@astrojs/node": "^2.0.2",
22
- "@cloudcommerce/api": "^0.0.126",
23
- "@cloudcommerce/firebase": "^0.0.126",
24
- "@cloudcommerce/ssr": "^0.0.126"
20
+ "@astrojs/image": "^0.12.1",
21
+ "@astrojs/node": "^4.0.0",
22
+ "@cloudcommerce/api": "^0.1.0",
23
+ "@cloudcommerce/firebase": "^0.1.0",
24
+ "@cloudcommerce/ssr": "^0.1.0"
25
25
  },
26
26
  "devDependencies": {
27
- "@cloudcommerce/i18n": "^0.0.126",
28
- "@cloudcommerce/storefront": "^0.0.126",
29
- "@iconify-json/arcticons": "^1.1.29",
30
- "@iconify-json/wpf": "^1.1.2",
31
- "lottie-web": "^5.9.6",
32
- "lozad": "^1.16.0"
27
+ "@cloudcommerce/i18n": "^0.1.0",
28
+ "@cloudcommerce/storefront": "^0.1.0",
29
+ "@cloudcommerce/types": "^0.1.0"
30
+ },
31
+ "pnpm": {
32
+ "peerDependencyRules": {
33
+ "ignoreMissing": [
34
+ "astro"
35
+ ]
36
+ }
33
37
  }
34
38
  }
@@ -0,0 +1,3 @@
1
+ import createApp from '@@sf/pages/_vue';
2
+
3
+ export default createApp;
@@ -23,6 +23,6 @@
23
23
  "url": "https://github.com/ecomplus/cloud-commerce/issues"
24
24
  },
25
25
  "dependencies": {
26
- "@cloudcommerce/cli": "^0.0.126"
26
+ "@cloudcommerce/cli": "^0.1.0"
27
27
  }
28
28
  }
@@ -0,0 +1,5 @@
1
+ {
2
+ "projects": {
3
+ "default": "ecom2-tiasonia"
4
+ }
5
+ }
@@ -1,5 +1,9 @@
1
1
  {
2
2
  "editor.quickSuggestions": {
3
3
  "strings": true
4
- }
4
+ },
5
+ "files.associations": {
6
+ "*.css": "tailwindcss"
7
+ },
8
+ "css.lint.unknownAtRules": "ignore"
5
9
  }
@@ -1,3 +1,3 @@
1
1
  {
2
-
3
- }
2
+ "storeId": 1024
3
+ }
@@ -15,6 +15,6 @@
15
15
  },
16
16
  "main": "index.js",
17
17
  "dependencies": {
18
- "@cloudcommerce/firebase": "^0.0.126"
18
+ "@cloudcommerce/firebase": "^0.1.0"
19
19
  }
20
20
  }
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "main": "index.js",
17
17
  "dependencies": {
18
- "@cloudcommerce/events": "^0.0.126",
19
- "@cloudcommerce/firebase": "^0.0.126"
18
+ "@cloudcommerce/events": "^0.1.0",
19
+ "@cloudcommerce/firebase": "^0.1.0"
20
20
  }
21
21
  }
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "main": "index.js",
17
17
  "dependencies": {
18
- "@cloudcommerce/firebase": "^0.0.126",
19
- "@cloudcommerce/modules": "^0.0.126"
18
+ "@cloudcommerce/firebase": "^0.1.0",
19
+ "@cloudcommerce/modules": "^0.1.0"
20
20
  }
21
21
  }
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "main": "index.js",
17
17
  "dependencies": {
18
- "@cloudcommerce/firebase": "^0.0.126",
19
- "@cloudcommerce/passport": "^0.0.126"
18
+ "@cloudcommerce/firebase": "^0.1.0",
19
+ "@cloudcommerce/passport": "^0.1.0"
20
20
  }
21
21
  }
@@ -17,14 +17,22 @@
17
17
  },
18
18
  "main": "index.js",
19
19
  "dependencies": {
20
- "@astrojs/image": "^0.11.0",
21
- "@astrojs/node": "^2.0.2",
22
- "@cloudcommerce/api": "^0.0.126",
23
- "@cloudcommerce/firebase": "^0.0.126",
24
- "@cloudcommerce/ssr": "^0.0.126"
20
+ "@astrojs/image": "^0.12.1",
21
+ "@astrojs/node": "^4.0.0",
22
+ "@cloudcommerce/api": "^0.1.0",
23
+ "@cloudcommerce/firebase": "^0.1.0",
24
+ "@cloudcommerce/ssr": "^0.1.0"
25
25
  },
26
26
  "devDependencies": {
27
- "@cloudcommerce/i18n": "^0.0.126",
28
- "@cloudcommerce/storefront": "^0.0.126"
27
+ "@cloudcommerce/i18n": "^0.1.0",
28
+ "@cloudcommerce/storefront": "^0.1.0",
29
+ "@cloudcommerce/types": "^0.1.0"
30
+ },
31
+ "pnpm": {
32
+ "peerDependencyRules": {
33
+ "ignoreMissing": [
34
+ "astro"
35
+ ]
36
+ }
29
37
  }
30
38
  }
@@ -0,0 +1,3 @@
1
+ import createApp from '@@sf/pages/_vue';
2
+
3
+ export default createApp;
@@ -1,11 +1,10 @@
1
1
  <script is:inline>
2
2
  window.firebaseConfig = {
3
- apiKey: 'AIzaSyCrVzemDgpyp9i6ni7Yc5ZuEVfXYwl-4J0',
4
- authDomain: 'ecom2-002.firebaseapp.com',
5
- projectId: 'ecom2-002',
6
- storageBucket: 'ecom2-002.appspot.com',
7
- messagingSenderId: '402807248219',
8
- appId: '1:402807248219:web:cf7d57759751e74776367e',
9
- measurementId: 'G-SC592CE0GB',
3
+ apiKey: "AIzaSyDZ5QPJaLZM1bxEJyGbyK1weoBZ1TiLgFc",
4
+ authDomain: "ecom2-tiasonia.firebaseapp.com",
5
+ projectId: "ecom2-tiasonia",
6
+ storageBucket: "ecom2-tiasonia.appspot.com",
7
+ messagingSenderId: "895718193792",
8
+ appId: "1:895718193792:web:1d4fd74466248202994465"
10
9
  };
11
10
  </script>
@@ -23,6 +23,6 @@
23
23
  "url": "https://github.com/ecomplus/cloud-commerce/issues"
24
24
  },
25
25
  "dependencies": {
26
- "@cloudcommerce/cli": "^0.0.126"
26
+ "@cloudcommerce/cli": "^0.1.0"
27
27
  }
28
28
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cloudcommerce",
3
3
  "type": "module",
4
- "version": "0.1.0",
4
+ "version": "0.1.1",
5
5
  "description": "Open fair-code headless commerce platform: API-first, microservices based, event driven and cloud native",
6
6
  "main": "packages/api/lib/index.js",
7
7
  "author": "E-Com Club Softwares para E-commerce <ti@e-com.club>",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/api",
3
3
  "type": "module",
4
- "version": "0.1.0",
4
+ "version": "0.1.1",
5
5
  "description": "E-Com Plus Cloud Commerce APIs client/adapter",
6
6
  "main": "lib/api.js",
7
7
  "types": "lib/api.d.ts",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-correios",
3
3
  "type": "module",
4
- "version": "0.1.0",
4
+ "version": "0.1.1",
5
5
  "description": "E-Com Plus Cloud Commerce app for Correios shipping calculation",
6
6
  "main": "lib/correios.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-custom-payment",
3
3
  "type": "module",
4
- "version": "0.1.0",
4
+ "version": "0.1.1",
5
5
  "description": "E-Com Plus Cloud Commerce app for simple custom payment methods",
6
6
  "main": "lib/index.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-custom-shipping",
3
3
  "type": "module",
4
- "version": "0.1.0",
4
+ "version": "0.1.1",
5
5
  "description": "E-Com Plus Cloud Commerce app for custom shipping methods",
6
6
  "main": "lib/custom-shipping.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-discounts",
3
3
  "type": "module",
4
- "version": "0.1.0",
4
+ "version": "0.1.1",
5
5
  "description": "E-Com Plus Cloud Commerce app for complex discount rules",
6
6
  "main": "lib/discounts.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-emails",
3
3
  "type": "module",
4
- "version": "0.1.0",
4
+ "version": "0.1.1",
5
5
  "description": "E-Com Plus Cloud Commerce default transactional email app",
6
6
  "main": "lib/index.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-frenet",
3
3
  "type": "module",
4
- "version": "0.1.0",
4
+ "version": "0.1.1",
5
5
  "description": "E-Com Plus Cloud Commerce app for Frenet shipping calculation",
6
6
  "main": "lib/frenet.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-galaxpay",
3
3
  "type": "module",
4
- "version": "0.1.0",
4
+ "version": "0.1.1",
5
5
  "description": "E-Com Plus Cloud Commerce app to integrate Galax Pay for recurring payments",
6
6
  "main": "lib/galaxpay.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-infinitepay",
3
3
  "type": "module",
4
- "version": "0.1.0",
4
+ "version": "0.1.1",
5
5
  "description": "E-Com Plus Cloud Commerce app to integrate InfinitePay",
6
6
  "main": "lib/infinitepay.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-jadlog",
3
3
  "type": "module",
4
- "version": "0.1.0",
4
+ "version": "0.1.1",
5
5
  "description": "E-Com Plus Cloud Commerce app for Jadlog shipping calculation",
6
6
  "main": "lib/index.js",
7
7
  "repository": {
@@ -0,0 +1 @@
1
+ Please refer to GitHub [repository releases](https://github.com/ecomplus/cloud-commerce/releases) or monorepo unified [CHANGELOG.md](https://github.com/ecomplus/cloud-commerce/blob/main/CHANGELOG.md).
@@ -0,0 +1 @@
1
+ # `@cloudcommerce/app-loyalty-points`
@@ -0,0 +1 @@
1
+ export * from './lib/loyalty-points-events';
@@ -0,0 +1,5 @@
1
+ declare const _default: (programRule: {
2
+ program_id: string;
3
+ name: string;
4
+ }, index: number) => string;
5
+ export default _default;
@@ -0,0 +1,20 @@
1
+ export default (programRule, index) => {
2
+ let programId = `lpt__${index}`;
3
+ if (programRule.program_id) {
4
+ programId = programRule.program_id;
5
+ } else if (programRule.name && typeof programRule.name === 'string') {
6
+ programId = (`p0_${programRule.name.toLowerCase()}`)
7
+ .replace(/\n\s/g, '_')
8
+ .replace(/__/g, '_')
9
+ .replace(/áàãâ/g, 'a')
10
+ .replace(/éê/g, 'e')
11
+ .replace(/óõô/g, 'o')
12
+ .replace(/í/g, 'e')
13
+ .replace(/ú/g, 'u')
14
+ .replace(/ç/g, 'c')
15
+ .replace(/[^a-z0-9_]/g, '')
16
+ .substring(0, 30);
17
+ }
18
+ return programId;
19
+ };
20
+ // # sourceMappingURL=get-program-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-program-id.js","sourceRoot":"","sources":["../../src/functions-lib/get-program-id.ts"],"names":[],"mappings":"AAAA,eAAe,CACb,WAAkD,EAClD,KAAa,EACb,EAAE;IACF,IAAI,SAAS,GAAG,QAAQ,KAAK,EAAE,CAAC;IAChC,IAAI,WAAW,CAAC,UAAU,EAAE;QAC1B,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC;KACpC;SAAM,IAAI,WAAW,CAAC,IAAI,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;QACnE,SAAS,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;aACjD,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;aAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;aAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;aAClB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;aAC1B,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KACrB;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Orders } from '@cloudcommerce/types';
2
+ declare const handleLoyaltyPointsEvent: (order: Orders, programRules: any[]) => Promise<null>;
3
+ export default handleLoyaltyPointsEvent;
@@ -0,0 +1,172 @@
1
+ import api from '@cloudcommerce/api';
2
+ import { getFirestore } from 'firebase-admin/firestore';
3
+ import logger from 'firebase-functions/logger';
4
+ import getProgramId from './get-program-id.js';
5
+
6
+ const ECHO_SUCCESS = 'SUCCESS';
7
+ const ECHO_SKIP = 'SKIP';
8
+ const responsePubSub = (response) => {
9
+ logger.log('(App: Loyalty Points): ', response);
10
+ return null;
11
+ };
12
+ const haveEarnedPoints = (pointsList, orderId) => {
13
+ if (pointsList) {
14
+ let hasEarned = false;
15
+ for (let i = 0; i < pointsList.length; i++) {
16
+ const point = pointsList[i];
17
+ if (point.order_id === orderId) {
18
+ hasEarned = true;
19
+ break;
20
+ }
21
+ }
22
+ return hasEarned;
23
+ }
24
+ return false;
25
+ };
26
+ const findPointIndex = (pointsList, pointEntry) => {
27
+ if (pointsList) {
28
+ for (let i = 0; i < pointsList.length; i++) {
29
+ const point = pointsList[i];
30
+ if (point.name === pointEntry.name) {
31
+ return i;
32
+ }
33
+ }
34
+ }
35
+ return null;
36
+ };
37
+ const handleLoyaltyPointsEvent = async (order, programRules) => {
38
+ const orderId = order._id;
39
+ const currentStatus = order.financial_status && order.financial_status.current;
40
+ let isPaid = false;
41
+ let isCancelled = false;
42
+ switch (currentStatus) {
43
+ case 'paid':
44
+ isPaid = true;
45
+ break;
46
+ case 'unauthorized':
47
+ case 'partially_refunded':
48
+ case 'refunded':
49
+ case 'voided':
50
+ isCancelled = true;
51
+ break;
52
+ case 'partially_paid':
53
+ if (order.transactions) {
54
+ order.transactions.forEach((transaction) => {
55
+ if (transaction.payment_method.code !== 'loyalty_points' && transaction.status) {
56
+ switch (transaction.status.current) {
57
+ case 'unauthorized':
58
+ case 'refunded':
59
+ case 'voided':
60
+ isCancelled = true;
61
+ break;
62
+ default:
63
+ break;
64
+ }
65
+ }
66
+ });
67
+ }
68
+ break;
69
+ default:
70
+ break;
71
+ }
72
+ try {
73
+ if (isPaid || isCancelled) {
74
+ // get app configured options
75
+ const { amount, buyers } = order;
76
+ const customerId = buyers && buyers[0] && buyers[0]._id;
77
+ if (customerId) {
78
+ const pointsList = (await api.get(`customers/${customerId}/loyalty_points_entries`)).data;
79
+ if (pointsList) {
80
+ const hasEarnedPoints = haveEarnedPoints(pointsList, orderId);
81
+ if (isPaid && !hasEarnedPoints) {
82
+ for (let i = 0; i < programRules.length; i++) {
83
+ const rule = programRules[i];
84
+ if (amount.subtotal) {
85
+ if (!rule.min_subtotal_to_earn || rule.min_subtotal_to_earn <= amount.subtotal) {
86
+ const pointsValue = ((rule.earn_percentage || 1) / 100)
87
+ * (amount.subtotal - (amount.discount || 0));
88
+ let validThru;
89
+ if (rule.expiration_days > 0) {
90
+ const d = new Date();
91
+ d.setDate(d.getDate() + rule.expiration_days);
92
+ validThru = d.toISOString();
93
+ }
94
+ const data = {
95
+ name: rule.name,
96
+ program_id: getProgramId(rule, i),
97
+ earned_points: pointsValue,
98
+ active_points: pointsValue,
99
+ ratio: rule.ratio || 1,
100
+ valid_thru: validThru,
101
+ order_id: orderId,
102
+ }; // TODO: set the correct type
103
+ // eslint-disable-next-line no-await-in-loop
104
+ await api.post(`customers/${customerId}/loyalty_points_entries`, data);
105
+ return responsePubSub(ECHO_SUCCESS);
106
+ }
107
+ }
108
+ }
109
+ }
110
+ if (isCancelled && hasEarnedPoints) {
111
+ for (let i = 0; i < pointsList.length; i++) {
112
+ if (pointsList[i].order_id === orderId) {
113
+ // eslint-disable-next-line no-await-in-loop
114
+ await api.delete(`customers/${customerId}/loyalty_points_entries/${i}`);
115
+ }
116
+ }
117
+ return responsePubSub(ECHO_SUCCESS);
118
+ }
119
+ }
120
+ if (isCancelled) {
121
+ const documentRef = getFirestore().doc(`billedPoints/${orderId}`);
122
+ const documentSnapshot = await documentRef.get();
123
+ if (documentSnapshot.exists) {
124
+ const usedPointsEntries = documentSnapshot.get('usedPointsEntries');
125
+ documentRef.delete();
126
+ if (Array.isArray(usedPointsEntries)) {
127
+ for (let i = 0; i < usedPointsEntries.length; i++) {
128
+ const pointsEntry = usedPointsEntries[i];
129
+ const pointsToRefund = pointsEntry.original_active_points
130
+ - pointsEntry.active_points;
131
+ if (pointsToRefund > 0) {
132
+ const pointIndex = findPointIndex(pointsList, pointsEntry);
133
+ if (pointIndex && pointsList) {
134
+ const activePoints = pointsList[pointIndex].active_points;
135
+ const body = {
136
+ active_points: activePoints + pointsToRefund,
137
+ };
138
+ // eslint-disable-next-line no-await-in-loop
139
+ await api.patch(`customers/${customerId}/loyalty_points_entries/${pointIndex}`, body);
140
+ return responsePubSub(ECHO_SUCCESS);
141
+ }
142
+ }
143
+ }
144
+ const transaction = order.transactions
145
+ && order.transactions.find((transactionFound) => {
146
+ return transactionFound.payment_method.code === 'loyalty_points';
147
+ });
148
+ if (transaction) {
149
+ const bodyPaymentHistory = {
150
+ transaction_id: transaction._id,
151
+ date_time: new Date().toISOString(),
152
+ status: currentStatus?.startsWith('partially') ? 'refunded' : currentStatus,
153
+ customer_notified: true,
154
+ }; // TODO: incompatible type=> amount and status
155
+ await api.post(`orders/${orderId}/payments_history`, bodyPaymentHistory);
156
+ }
157
+ }
158
+ }
159
+ }
160
+ }
161
+ return responsePubSub('');
162
+ }
163
+ // not paid nor cancelled
164
+ return responsePubSub(ECHO_SKIP);
165
+ } catch (err) {
166
+ logger.error('(App Loyalty Points) Error =>', err);
167
+ throw err;
168
+ }
169
+ };
170
+
171
+ export default handleLoyaltyPointsEvent;
172
+ // # sourceMappingURL=handle-loyalty-points-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-loyalty-points-event.js","sourceRoot":"","sources":["../../src/functions-lib/handle-loyalty-points-event.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,oBAAoB,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAC/C,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAE5C,MAAM,YAAY,GAAG,SAAS,CAAC;AAC/B,MAAM,SAAS,GAAG,MAAM,CAAC;AAKzB,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC1C,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,UAA+C,EAAE,OAAe,EAAE,EAAE;IAC5F,IAAI,UAAU,EAAE;QACd,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE;gBAC9B,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM;aACP;SACF;QACD,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,UAA+C,EAAE,UAA6B,EAAE,EAAE;IACxG,IAAI,UAAU,EAAE;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE;gBAClC,OAAO,CAAC,CAAC;aACV;SACF;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,KAAK,EACpC,KAAa,EACb,YAAmB,EACnB,EAAE;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC;IAC1B,MAAM,aAAa,GAAG,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC;IAC/E,IAAI,MAAM,GAAY,KAAK,CAAC;IAC5B,IAAI,WAAW,GAAY,KAAK,CAAC;IAEjC,QAAQ,aAAa,EAAE;QACrB,KAAK,MAAM;YACT,MAAM,GAAG,IAAI,CAAC;YACd,MAAM;QACR,KAAK,cAAc,CAAC;QACpB,KAAK,oBAAoB,CAAC;QAC1B,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ;YACX,WAAW,GAAG,IAAI,CAAC;YACnB,MAAM;QACR,KAAK,gBAAgB;YACnB,IAAI,KAAK,CAAC,YAAY,EAAE;gBACtB,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;oBACzC,IAAI,WAAW,CAAC,cAAc,CAAC,IAAI,KAAK,gBAAgB,IAAI,WAAW,CAAC,MAAM,EAAE;wBAC9E,QAAQ,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE;4BAClC,KAAK,cAAc,CAAC;4BACpB,KAAK,UAAU,CAAC;4BAChB,KAAK,QAAQ;gCACX,WAAW,GAAG,IAAI,CAAC;gCACnB,MAAM;4BACR;gCACE,MAAM;yBACT;qBACF;gBACH,CAAC,CAAC,CAAC;aACJ;YACD,MAAM;QACR;YACE,MAAM;KACT;IAED,IAAI;QACF,IAAI,MAAM,IAAI,WAAW,EAAE;YACzB,6BAA6B;YAC7B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;YACjC,MAAM,UAAU,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YACxD,IAAI,UAAU,EAAE;gBACd,MAAM,UAAU,GAAwC,CAAC,MAAM,GAAG,CAAC,GAAG,CACpE,aAAa,UAAU,yBAAyB,CACjD,CACA,CAAC,IAAI,CAAC;gBAEP,IAAI,UAAU,EAAE;oBACd,MAAM,eAAe,GAAG,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oBAE9D,IAAI,MAAM,IAAI,CAAC,eAAe,EAAE;wBAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAC5C,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;4BAC7B,IAAI,MAAM,CAAC,QAAQ,EAAE;gCACnB,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,oBAAoB,IAAI,MAAM,CAAC,QAAQ,EAAE;oCAC9E,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;0CACnD,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;oCAE/C,IAAI,SAA6B,CAAC;oCAClC,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE;wCAC5B,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;wCACrB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;wCAC9C,SAAS,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;qCAC7B;oCAED,MAAM,IAAI,GAAG;wCACX,IAAI,EAAE,IAAI,CAAC,IAAI;wCACf,UAAU,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;wCACjC,aAAa,EAAE,WAAW;wCAC1B,aAAa,EAAE,WAAW;wCAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;wCACtB,UAAU,EAAE,SAAS;wCACrB,QAAQ,EAAE,OAAO;qCACX,CAAC,CAAC,6BAA6B;oCAEvC,4CAA4C;oCAC5C,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,UAAU,yBAAyB,EAAE,IAAI,CAAC,CAAC;oCAEvE,OAAO,cAAc,CAAC,YAAY,CAAC,CAAC;iCACrC;6BACF;yBACF;qBACF;oBAED,IAAI,WAAW,IAAI,eAAe,EAAE;wBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAC1C,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,EAAE;gCACtC,4CAA4C;gCAC5C,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,UAAU,2BAA2B,CAAC,EAAE,CAAC,CAAC;6BACzE;yBACF;wBAED,OAAO,cAAc,CAAC,YAAY,CAAC,CAAC;qBACrC;iBACF;gBAED,IAAI,WAAW,EAAE;oBACf,MAAM,WAAW,GAAG,YAAY,EAAE,CAAC,GAAG,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAC;oBAClE,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,CAAC;oBAEjD,IAAI,gBAAgB,CAAC,MAAM,EAAE;wBAC3B,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,GAAG,CAAC,mBAAmB,CAAwB,CAAC;wBAC3F,WAAW,CAAC,MAAM,EAAE,CAAC;wBAErB,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;4BACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCACjD,MAAM,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;gCACzC,MAAM,cAAc,GAAG,WAAW,CAAC,sBAAsB;sCACrD,WAAW,CAAC,aAAa,CAAC;gCAC9B,IAAI,cAAc,GAAG,CAAC,EAAE;oCACtB,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;oCAE3D,IAAI,UAAU,IAAI,UAAU,EAAE;wCAC5B,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC;wCAC1D,MAAM,IAAI,GAAG;4CACX,aAAa,EAAE,YAAY,GAAG,cAAc;yCAC7C,CAAC;wCAEF,4CAA4C;wCAC5C,MAAM,GAAG,CAAC,KAAK,CACb,aAAa,UAAU,2BAA2B,UAAU,EAAE,EAC9D,IAAI,CACL,CAAC;wCAEF,OAAO,cAAc,CAAC,YAAY,CAAC,CAAC;qCACrC;iCACF;6BACF;4BAED,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY;mCACjC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,EAAE;oCAC9C,OAAO,gBAAgB,CAAC,cAAc,CAAC,IAAI,KAAK,gBAAgB,CAAC;gCACnE,CAAC,CAAC,CAAC;4BAEL,IAAI,WAAW,EAAE;gCACf,MAAM,kBAAkB,GAAG;oCACzB,cAAc,EAAE,WAAW,CAAC,GAAG;oCAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oCACnC,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa;oCAC3E,iBAAiB,EAAE,IAAI;iCACjB,CAAC,CAAC,8CAA8C;gCAExD,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,OAAO,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;6BAC1E;yBACF;qBACF;iBACF;aACF;YACD,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;SAC3B;QACD,yBAAyB;QACzB,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;KAClC;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,GAAG,CAAC;KACX;AACH,CAAC,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './loyalty-points';
@@ -0,0 +1,2 @@
1
+ export * from './loyalty-points.js';
2
+ // # sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}