@feedmepos/mf-connect 0.1.112-prod → 0.1.113-beta.3

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 (158) hide show
  1. package/README.md +66 -1
  2. package/dist/{App-CFJcQZEE.js → App-YfpYV7C0.js} +700 -654
  3. package/dist/AuditLogs-kD0_HO_p.js +2016 -0
  4. package/dist/{Bin-DaqUNsSV.js → Bin-Dr-Xp3pn.js} +8 -8
  5. package/dist/Broadcast-CEbHu2xA.js +306 -0
  6. package/dist/{CampaignAnalytic-CpP7lgTX.js → CampaignAnalytic-DDiGxPwp.js} +7 -7
  7. package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-BQiQVQBN.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-Cc_Yho9-.js} +9 -9
  8. package/dist/{Card-Bmz5p5Pq.js → Card-BUnwg0eM.js} +25 -24
  9. package/dist/{Collections-BKND60cK.js → Collections-CKyBkKq2.js} +197 -185
  10. package/dist/{Credit-DQ_tDm8l.js → Credit-CJOXWLV1.js} +21 -20
  11. package/dist/{DateRangeChip.vue_vue_type_script_setup_true_lang-CCwpsEWf.js → DateRangeChip.vue_vue_type_script_setup_true_lang-DmEBLeNI.js} +1 -1
  12. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-Ce5R4Un6.js +4442 -0
  13. package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-wUV_beN0.js → EffectSheet.vue_vue_type_style_index_0_lang-CMFmlqfF.js} +32 -32
  14. package/dist/{Experience-BOE6jLIS.js → Experience-C_Am5CTY.js} +32 -31
  15. package/dist/{FileSaver.min-D0CP0E3N.js → FileSaver.min-CueAGbjq.js} +1 -1
  16. package/dist/{Game-B-8by2dp.js → Game-B6GO_LVU.js} +19 -18
  17. package/dist/{GiftCardSetup-CdqZd1ee.js → GiftCardSetup-CVLDDpI2.js} +75 -75
  18. package/dist/{GoalPickerPanel.vue_vue_type_script_setup_true_lang-BVTu4uTR.js → GoalPickerPanel.vue_vue_type_script_setup_true_lang-isfGhKO1.js} +7 -7
  19. package/dist/{Goals-xFHNbwt7.js → Goals-BX-sMV2V.js} +4 -4
  20. package/dist/Grab-Bh335Srh.js +301 -0
  21. package/dist/{ImageInput.vue_vue_type_script_setup_true_lang-B5Z1AZRV.js → ImageInput.vue_vue_type_script_setup_true_lang-srSgUY3e.js} +1 -1
  22. package/dist/{Index-t6veJ0lU.js → Index-CyXRbwcm.js} +10 -10
  23. package/dist/{LocationPicker.vue_vue_type_script_setup_true_lang-Deeanc8z.js → LocationPicker.vue_vue_type_script_setup_true_lang-S3GB2Ems.js} +1 -1
  24. package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-B8qOJYoS.js → LottieAnimation.vue_vue_type_script_setup_true_lang-ZlWHXwXZ.js} +1 -1
  25. package/dist/{LoyaltyDashboard-DXNBsnM5.js → LoyaltyDashboard-DrTq8oiu.js} +15 -15
  26. package/dist/MainLayout-KbKkpX5n.js +4 -0
  27. package/dist/{MainLayout-CmCboaEn.js → MainLayout.vue_vue_type_script_setup_true_lang-2D5ate_s.js} +5 -4
  28. package/dist/{Marketing-DCq9O5eb.js → Marketing-DQT1MWQg.js} +4 -4
  29. package/dist/MarketingMaterialEdit-fSqr53-M.js +1037 -0
  30. package/dist/{Member-BCYmEmhD.js → Member-DwDUCzlv.js} +7 -7
  31. package/dist/{MemberDetailSheet.vue_vue_type_script_setup_true_lang-Djrfmj9g.js → MemberDetailSheet.vue_vue_type_script_setup_true_lang-DaQ4Lw8f.js} +43 -50
  32. package/dist/{MemberImportHistory-D-5NAOfo.js → MemberImportHistory-D4ezvJGZ.js} +7 -7
  33. package/dist/{MemberList-IySTKOT_.js → MemberList-DFieV7Qk.js} +103 -105
  34. package/dist/{MemberTransactions-BgQZvc5O.js → MemberTransactions-BPOXyAuC.js} +1 -1
  35. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-N8PCSKBx.js → MessageInput.vue_vue_type_script_setup_true_lang-DhfsgDd4.js} +4228 -4176
  36. package/dist/{MetricInfoTooltip.vue_vue_type_script_setup_true_lang-_JNdYsBu.js → MetricInfoTooltip.vue_vue_type_script_setup_true_lang-CX8bk_IQ.js} +1 -1
  37. package/dist/{Mission-DtaTKWE2.js → Mission-nErb05Es.js} +22 -21
  38. package/dist/{Overview-DVMdPa97.js → Overview-7G31a7B-.js} +23 -22
  39. package/dist/{Overview-D-uC2-Pi.js → Overview-DuJr_hAg.js} +145 -144
  40. package/dist/{Point-jnPIgHMZ.js → Point-PWDLemD4.js} +22 -21
  41. package/dist/{Promotion-mdQg-RSh.js → Promotion-N80Tj8M6.js} +137 -131
  42. package/dist/{Queue-D8YY1lbn.js → Queue-M7ZpgiMT.js} +47 -46
  43. package/dist/{Record-Dh-rN7a0.js → Record-NhxrdvWv.js} +9 -9
  44. package/dist/{Review-C8B-SIR8.js → Review-DiAaAzIG.js} +2 -2
  45. package/dist/ReviewFacebookCallback-JdyxFbNl.js +225 -0
  46. package/dist/{ReviewGoogleCallback-pNF2ICvQ.js → ReviewGoogleCallback-BXbI3Bsh.js} +5 -5
  47. package/dist/{Reward-D7KPnzXt.js → Reward-yTaOqOT8.js} +29 -29
  48. package/dist/{RewardGroup.vue_vue_type_script_setup_true_lang-C87CDjxP.js → RewardGroup.vue_vue_type_script_setup_true_lang-BWPfjZ9K.js} +16 -15
  49. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-Cz2H9MKe.js +1923 -0
  50. package/dist/{Segment-Ct8JRTjV.js → Segment-DE9Bcd6R.js} +290 -291
  51. package/dist/{SendCollectionSheet.vue_vue_type_script_setup_true_lang-w-UpWetC.js → SendCollectionSheet.vue_vue_type_script_setup_true_lang-pmv0cb4J.js} +31 -30
  52. package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-BbEX2h2u.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-BeWwkTix.js} +4 -4
  53. package/dist/Setting-C0JAxIRT.js +574 -0
  54. package/dist/{SettingAdvertisements-BrB-dGPs.js → SettingAdvertisements-DxueyKU8.js} +12 -12
  55. package/dist/Settings-Cs46AcxZ.js +286 -0
  56. package/dist/{Store-EKPfHEmY.js → Store-DqQae9nE.js} +661 -654
  57. package/dist/{StoreRewards-B208ENOi.js → StoreRewards-JxSUsOzJ.js} +15 -15
  58. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-qgrBtUNX.js +1319 -0
  59. package/dist/TargetLocationInput.vue_vue_type_script_setup_true_lang-D7ifzgsI.js +7007 -0
  60. package/dist/{Tier-CjYiCZy_.js → Tier-DWhgWush.js} +2576 -687
  61. package/dist/{Title-BXkVolaL.js → Title-DUNeMdz8.js} +94 -92
  62. package/dist/{Transaction-D1T3aIC3.js → Transaction-DAv-LVhC.js} +2 -2
  63. package/dist/{UserRuleGroup.vue_vue_type_script_setup_true_lang-flUDCSA5.js → UserRuleGroup.vue_vue_type_script_setup_true_lang-Cih-9IoW.js} +26 -26
  64. package/dist/{Voucher-DnQ8jNjI.js → Voucher-uLTq9RSK.js} +19 -19
  65. package/dist/{VoucherEditor.vue_vue_type_script_setup_true_lang-Z9GDpO4z.js → VoucherEditor.vue_vue_type_script_setup_true_lang-BevVL_Kx.js} +16 -16
  66. package/dist/WhatsappAccount-BpXQ4q0P.js +158 -0
  67. package/dist/WhatsappAccountStatusLabel.vue_vue_type_script_setup_true_lang-EssnbsgT.js +39 -0
  68. package/dist/WhatsappBot-DB4NRZMd.js +589 -0
  69. package/dist/WhatsappBotLogs-DDN4H_bv.js +372 -0
  70. package/dist/WhatsappBotSettings-Bkv1VNwF.js +387 -0
  71. package/dist/WhatsappBotTickets-DAKgnE6T.js +162 -0
  72. package/dist/WhatsappLayout-DSnq84Uo.js +21 -0
  73. package/dist/WhatsappNotificationGroupDialog.vue_vue_type_script_setup_true_lang-1BvxPD-k.js +195 -0
  74. package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-Dcw8Oi-t.js → ZodTextField.vue_vue_type_script_setup_true_lang-CR-F0x1r.js} +2 -2
  75. package/dist/{app-BtGohMqA.js → app-Devzv4gO.js} +10468 -8156
  76. package/dist/app.js +4 -3
  77. package/dist/{base.export-DulNMo7e.js → base.export-CCSMkvAm.js} +2 -2
  78. package/dist/browser-BSAOEeIM.js +1478 -0
  79. package/dist/{business-Bla8vvZH.js → business-BjAmUqNA.js} +1 -1
  80. package/dist/campaign-C5c47GqT.js +400 -0
  81. package/dist/{campaign-BIPNFBY5.js → campaign-CTe-T5Gd.js} +31 -25
  82. package/dist/{campaign.enum-liUaxkcy.js → campaign.enum-Dx-Zo68Q.js} +3 -2
  83. package/dist/campaign.fn-DxAO8A5b.js +776 -0
  84. package/dist/{collectible.enum-C0FfRMrW.js → collectible.enum-Liy2wH3s.js} +1 -1
  85. package/dist/{collection.fn-DdDMfaFO.js → collection.fn-C9l-OtNt.js} +2 -2
  86. package/dist/{currency-BrVnqxQ1.js → currency-mwm4AWXK.js} +1 -1
  87. package/dist/duplicateCampaign-BbC4AwQ1.js +51 -0
  88. package/dist/{effect-gfVmfrm9.js → effect-D8ba9z0K.js} +1 -1
  89. package/dist/{email-addresses-Dy8NFNBw.js → email-addresses-BR5J6_Jz.js} +2 -2
  90. package/dist/feature-flag-C-5NdFW8.js +868 -0
  91. package/dist/feature-flag-CNcU4_3r.js +50 -0
  92. package/dist/google-BQK68wbe.js +5 -0
  93. package/dist/{helper-CMhQctQK.js → helper-D9cEaMIv.js} +1 -1
  94. package/dist/index-0H82-X0n.js +80 -0
  95. package/dist/{index-D6RDVy95.js → index-B1jP-_Z_.js} +691 -230
  96. package/dist/{index-Dalmv1m4.js → index-B7HH6vKF.js} +8 -7
  97. package/dist/{index-v1exQSyU.js → index-BFaZp6Et.js} +29 -15
  98. package/dist/{index-DKmtDBKS.js → index-B_gzo75q.js} +1 -1
  99. package/dist/{index-qJOEwQ_z.js → index-BfoDdVQS.js} +19 -6
  100. package/dist/{index-C5rRuwhC.js → index-BvY2hQac.js} +1 -1
  101. package/dist/{index-CZqwIQXi.js → index-Byg4ztr-.js} +396 -232
  102. package/dist/{index-otcusTFM.js → index-CZfqqrVu.js} +4 -3
  103. package/dist/index-C_H8jFYf.js +2743 -0
  104. package/dist/{index-CUFuU2eJ.js → index-CmzjBrHR.js} +11 -10
  105. package/dist/{index-CLiJUFmJ.js → index-Ct6YjTIW.js} +2 -2
  106. package/dist/{index-B6x6s8mu.js → index-D34iYRdc.js} +683 -581
  107. package/dist/{index-dyMdi0Rt.js → index-D4k1G2oE.js} +4 -4
  108. package/dist/{index-DvW-3flw.js → index-DnepoNWn.js} +8028 -10767
  109. package/dist/index-Drmh0FT-.js +14571 -0
  110. package/dist/{index-BqKrePY8.js → index-DtcUCknS.js} +2700 -2613
  111. package/dist/{index-D1T4Yf4t.js → index-DwTBiVts.js} +1 -1
  112. package/dist/{index-BOZ3oVHd.js → index-OvnHt5x5.js} +800 -793
  113. package/dist/index-RwNlbTO8.js +115 -0
  114. package/dist/{index-C67-z1uf.js → index-VqAbYyHH.js} +2 -2
  115. package/dist/{index-CghtzuVO.js → index-yGSko6Eq.js} +1 -1
  116. package/dist/{index.esm2017-BLKRIlb9.js → index.esm2017-DLb2VyCT.js} +156 -156
  117. package/dist/{loading-BkJ3h_4U.js → loading-CUNk5u1d.js} +1 -1
  118. package/dist/{lodash-C0Kbs8lQ.js → lodash-BJXravls.js} +1 -1
  119. package/dist/{member-import-trpK8l8R.js → member-import-DjYoddBi.js} +6 -5
  120. package/dist/{membership-TV1CoyKQ.js → membership-ByJUFP8f.js} +3 -3
  121. package/dist/{money-BM-DK9iD.js → money-Bf2IEMJJ.js} +1 -1
  122. package/dist/{number-BclgE86R.js → number-CRBHrRUL.js} +1 -1
  123. package/dist/objectid-58gyOvdR.js +145 -0
  124. package/dist/{onboarding-BLuoXyCY.js → onboarding-CQ3lw7eY.js} +25 -25
  125. package/dist/{onboardingSetup-BLmLAgIV.js → onboardingSetup-CsdZKGFk.js} +2 -2
  126. package/dist/{plugins-3_mD58dh.js → plugins-iTZLbJGy.js} +3 -3
  127. package/dist/{MarketingMaterialEdit-CGLxanxm.js → remy-icon-BhUGu2NI.js} +2 -1031
  128. package/dist/{reward-Bo4szVCU.js → reward-DTN6JpEd.js} +1 -1
  129. package/dist/{rule-Bwy5-zD7.js → rule-BYACNQOL.js} +572 -492
  130. package/dist/style.css +1 -1
  131. package/dist/template--Vr0PCjB.js +188 -0
  132. package/dist/{timezone-DQ7TNXmV.js → timezone-DwzjOED-.js} +1 -1
  133. package/dist/{transaction.fn-OT7ucfCB.js → transaction.fn-DapYe3n7.js} +2 -2
  134. package/dist/{trigger-BJKHGcNG.js → trigger-D8r76yb0.js} +9 -9
  135. package/dist/{useMarketingMaterialActions-BX3C1Gga.js → useMarketingMaterialActions-CdMmibPE.js} +3 -3
  136. package/dist/{usePagination-Qp0qoWBj.js → usePagination-BRcQJkO1.js} +1 -1
  137. package/dist/useWhatsappAccount-BOJ8fz84.js +62 -0
  138. package/dist/{user-BcE3fiEa.js → user-vBZFKqXQ.js} +1 -1
  139. package/dist/vue-i18n-Cw6fF11e.js +2365 -0
  140. package/dist/{xlsx-DYZ421PG.js → xlsx-Muy_Rjhk.js} +1 -1
  141. package/dist/{zod-DestzeIp.js → zod-CCPTOeUz.js} +1 -1
  142. package/package.json +12 -3
  143. package/dist/Broadcast-CdAN6JCa.js +0 -271
  144. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-Bn-lauCv.js +0 -2431
  145. package/dist/ReviewFacebookCallback-C3eyH0pS.js +0 -238
  146. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-D1S2sLOK.js +0 -1883
  147. package/dist/Setting-C3Binnn_.js +0 -2036
  148. package/dist/Settings-D6h2QM6X.js +0 -179
  149. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-Dy7_GFoi.js +0 -1264
  150. package/dist/TargetLocationInput.vue_vue_type_script_setup_true_lang-B2KJeL5Y.js +0 -142
  151. package/dist/campaign-DYqAyRCY.js +0 -228
  152. package/dist/campaign.fn-J7hYcX_7.js +0 -776
  153. package/dist/google-C3S8u0mT.js +0 -4
  154. package/dist/index-Culx-Z9v.js +0 -51
  155. package/dist/objectid-C2XvpEgx.js +0 -145
  156. package/dist/rule-builder-Co_1uuj4.js +0 -102
  157. package/dist/template-fImyGLa7.js +0 -236
  158. package/dist/vue-i18n-BQmB8Ex1.js +0 -2365
package/README.md CHANGED
@@ -20,6 +20,71 @@ pnpm dev
20
20
  pnpm build
21
21
  ```
22
22
 
23
+ ### Feature Flags
24
+
25
+ The WhatsApp Bot area reads `crm_whatsapp_bot` from Flagsmith through
26
+ `GET /portal/businesses/:businessId/feature-flags` on campaign-service. The exact
27
+ business `_id` is the Flagsmith identity identifier. The backend checks the
28
+ identity's **Enabled** state, including identity and segment overrides; a remote
29
+ config value of `true` is not required.
30
+
31
+ This reuses the backend's existing `FeatureFlagModule` and
32
+ `FeatureFlagService.getIdentityFlags(businessId)`, also used by credit OTP
33
+ evaluation. The SDK configuration and initialization are shared with that existing
34
+ integration.
35
+
36
+ Connect fetches flags on startup, business/country/user changes, and every 60
37
+ seconds after each completed request. The sidebar stays hidden and WhatsApp views
38
+ stay unmounted until enabled. Direct links wait for the initial check; disabled
39
+ or failed checks redirect to analytics. Failed checks are retried automatically.
40
+
41
+ #### Local setup
42
+
43
+ Configure these in the backend's local environment, then restart campaign-service:
44
+
45
+ ```dotenv
46
+ FLAGSMITH_URL=https://flagsmith.feedme.farm/api/v1/
47
+ FLAGSMITH_ENVIRONMENT_KEY=<Development environment SDK key>
48
+ ```
49
+
50
+ Use an environment SDK key, not an organisation admin token. The key stays on the
51
+ backend. Replace the obsolete singular hostname `flag.feedme.farm` if present.
52
+ The backend requires network access to Flagsmith (normally Twingate).
53
+ As with the existing Flagsmith integration, a missing SDK key prevents the service
54
+ from starting.
55
+
56
+ Point Connect's local `BACKEND_SERVICE_URL` at `http://localhost:3000/portal/`
57
+ (or your campaign-service port), then start/restart the Vite dev server. Localhost
58
+ uses the same flag checks as deployed environments.
59
+
60
+ #### Enable selected businesses
61
+
62
+ 1. In <https://flagsmith.feedme.farm>, open organisation **Feedme**, project
63
+ **MAIN**, and **Development** for local testing.
64
+ 2. Create `crm_whatsapp_bot` if missing and leave the environment default disabled.
65
+ 3. Open Connect with the desired business selected. The first flag evaluation
66
+ registers that business ID as a Flagsmith identity.
67
+ 4. In **Identities**, find that exact business `_id` and enable the
68
+ `crm_whatsapp_bot` identity override. Other businesses remain disabled unless
69
+ an identity or segment override enables them.
70
+ 5. Wait up to 60 seconds after the last check, or reload Connect, then open
71
+ `/whatsapp`. To revoke access, disable the override.
72
+
73
+ Configure **Production** separately and deploy the backend with that environment's
74
+ SDK key. This flag controls page visibility; existing WhatsApp API permissions
75
+ continue to apply. The `fm-flagsmith` skill can inspect configuration and overrides;
76
+ its GET-only helper cannot create or change them.
77
+
78
+ #### Verify locally
79
+
80
+ With Connect signed in, inspect the browser's Network tab for
81
+ `GET http://localhost:3000/portal/businesses/<businessId>/feature-flags`.
82
+ Its response data should contain `crm_whatsapp_bot: true` for an enabled identity
83
+ and `false` for other businesses. HTTP 503 indicates a failed Flagsmith evaluation
84
+ (check the SDK key, URL, and network access); 403 indicates missing business settings
85
+ permission. A 404 usually means campaign-service needs restarting or Connect is
86
+ pointing at the wrong backend.
87
+
23
88
  ### Formatting is with prettier, set default formatter to Prettier
24
89
  ```json
25
90
  "[typescript]": {
@@ -28,4 +93,4 @@ pnpm build
28
93
  "[vue]": {
29
94
  "editor.defaultFormatter": "esbenp.prettier-vscode"
30
95
  }
31
- ```
96
+ ```