@feedmepos/mf-connect 0.1.116-dev → 0.1.117-dev
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.
- package/README.md +42 -44
- package/dist/{App-DWDgsBqW.js → App-BpcsgH7K.js} +380 -397
- package/dist/{AuditLogs-BqEtvKFs.js → AuditLogs-BNnUiVnD.js} +12 -12
- package/dist/{Bin-Cz6fmewG.js → Bin-Cm0wjQeR.js} +8 -8
- package/dist/{Broadcast-CQ0pfKpx.js → Broadcast-BoJaHqnO.js} +12 -12
- package/dist/{CampaignAnalytic-CiRCB3kh.js → CampaignAnalytic-Eg4xZW0B.js} +7 -7
- package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-Bp7UeQWJ.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-BXylK6Ze.js} +8 -8
- package/dist/{Card-Kw2PFL2m.js → Card-BfkMcFaG.js} +22 -22
- package/dist/{Collections-D8Vx_EEH.js → Collections-RXmxQbII.js} +8 -8
- package/dist/{Credit-B1jsQ5zg.js → Credit-CsRPM1jv.js} +12 -12
- package/dist/{DateRangeChip.vue_vue_type_script_setup_true_lang-B6Fpf8zy.js → DateRangeChip.vue_vue_type_script_setup_true_lang-D2tvK7pw.js} +1 -1
- package/dist/{EditCampaignSheet.vue_vue_type_script_setup_true_lang-BW1RntIP.js → EditCampaignSheet.vue_vue_type_script_setup_true_lang-BgPeHurN.js} +35 -35
- package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-Cdpr9Ku4.js → EffectSheet.vue_vue_type_style_index_0_lang-CUx8UIIq.js} +6 -6
- package/dist/{Experience-B0JIA3sL.js → Experience-BC8Pj-v9.js} +13 -13
- package/dist/{FileSaver.min-M-9kTN8q.js → FileSaver.min-DzmoQFA0.js} +1 -1
- package/dist/{Game-CNJyqnK3.js → Game-DJXNHFBs.js} +13 -13
- package/dist/{GiftCardSetup-DSQIC7fD.js → GiftCardSetup-_0n8lU-t.js} +10 -10
- package/dist/{GoalPickerPanel.vue_vue_type_script_setup_true_lang-ABiLOF1j.js → GoalPickerPanel.vue_vue_type_script_setup_true_lang-C-AiJdui.js} +7 -7
- package/dist/{Goals-DBPzGIRK.js → Goals-DSZwKpds.js} +4 -4
- package/dist/{Grab-CGWinKBS.js → Grab-DDc7e-AC.js} +9 -9
- package/dist/{ImageInput.vue_vue_type_script_setup_true_lang-B2edB52s.js → ImageInput.vue_vue_type_script_setup_true_lang-BZb-H4fM.js} +1 -1
- package/dist/{Index-CiWyZXnK.js → Index-Cbi0bquE.js} +10 -10
- package/dist/{LocationPicker.vue_vue_type_script_setup_true_lang-DnP03_b7.js → LocationPicker.vue_vue_type_script_setup_true_lang-GLhMtvzi.js} +1 -1
- package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-DM17LaNE.js → LottieAnimation.vue_vue_type_script_setup_true_lang-Bt9CO_QR.js} +1 -1
- package/dist/{LoyaltyDashboard-C4ZlK9Hv.js → LoyaltyDashboard-fK90c27A.js} +15 -15
- package/dist/{MainLayout-D22Q2_jN.js → MainLayout-Bf-l9yL4.js} +1 -1
- package/dist/{MainLayout.vue_vue_type_script_setup_true_lang-CJncINki.js → MainLayout.vue_vue_type_script_setup_true_lang-COR6YYYI.js} +3 -3
- package/dist/{Marketing-CmVnvEN6.js → Marketing-B7cZGsO-.js} +4 -4
- package/dist/{MarketingMaterialEdit-CQ55zG-W.js → MarketingMaterialEdit-5IcV2ct6.js} +6 -6
- package/dist/{Member-B-l5P9jk.js → Member-BGTrRVdq.js} +7 -7
- package/dist/{MemberDetailSheet.vue_vue_type_script_setup_true_lang-C_ZjHH4I.js → MemberDetailSheet.vue_vue_type_script_setup_true_lang-DJr2hV2W.js} +23 -23
- package/dist/{MemberImportHistory-BJcu-ahG.js → MemberImportHistory--FxkTJmu.js} +7 -7
- package/dist/{MemberList-DVsWNWIc.js → MemberList-EjY5dgwt.js} +14 -14
- package/dist/{MemberTransactions-C2VPySEO.js → MemberTransactions-Oia7LIFK.js} +1 -1
- package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-BXqrn9tg.js → MessageInput.vue_vue_type_script_setup_true_lang-CLOQZCYy.js} +10 -10
- package/dist/{MetricInfoTooltip.vue_vue_type_script_setup_true_lang-BouFp66T.js → MetricInfoTooltip.vue_vue_type_script_setup_true_lang-Ev3bB8cg.js} +1 -1
- package/dist/{Mission-DWO-IF0f.js → Mission-BFHYb4aT.js} +14 -14
- package/dist/{Overview-DPcWm2S0.js → Overview-BVNyQxFL.js} +20 -20
- package/dist/{Overview-Dbp4Sv-H.js → Overview-d5U37aot.js} +4 -4
- package/dist/{Point-PnWrzVOY.js → Point-CXkqH02Z.js} +14 -14
- package/dist/{Promotion-Bwpi60dN.js → Promotion-DdxNvlOO.js} +14 -14
- package/dist/{Queue-BvEcKyVJ.js → Queue-C96oNKyP.js} +12 -12
- package/dist/{Record-DzNvU2fM.js → Record-Bj2e2Y4i.js} +9 -9
- package/dist/{Review-HDYwnMd6.js → Review-CJK5S1oI.js} +2 -2
- package/dist/{ReviewFacebookCallback-rAlgcTQ_.js → ReviewFacebookCallback-ChG7TRy5.js} +5 -5
- package/dist/{ReviewGoogleCallback-6V9JNKsl.js → ReviewGoogleCallback-Dmk4VyGA.js} +5 -5
- package/dist/{Reward-DI6IyG-d.js → Reward-Dh2YI0Xb.js} +16 -16
- package/dist/{RewardGroup.vue_vue_type_script_setup_true_lang-DFAIPMe7.js → RewardGroup.vue_vue_type_script_setup_true_lang-U47m3AAn.js} +13 -13
- package/dist/{RuleGroup.vue_vue_type_script_setup_true_lang-CDoba0oG.js → RuleGroup.vue_vue_type_script_setup_true_lang-2L6ZGMW7.js} +14 -14
- package/dist/{Segment-DrV6pQyx.js → Segment-FYvtCkqH.js} +25 -25
- package/dist/{SendCollectionSheet.vue_vue_type_script_setup_true_lang-CXHt_ZeT.js → SendCollectionSheet.vue_vue_type_script_setup_true_lang-DPZZz2e0.js} +14 -14
- package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-XRXkLy6j.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-D8wBgLlS.js} +4 -4
- package/dist/{Setting-aLQCUCP9.js → Setting-CUAWjCqa.js} +14 -14
- package/dist/{SettingAdvertisements-BtqKt4Ca.js → SettingAdvertisements-COIQwUD6.js} +12 -12
- package/dist/{Settings-BkYtKb4l.js → Settings-D2gFPvmW.js} +5 -5
- package/dist/{Store-HZs9GG03.js → Store-BAXwiyvx.js} +26 -26
- package/dist/{StoreRewards-BSTXL4FR.js → StoreRewards-2mUavtUg.js} +15 -15
- package/dist/{StoreTransactions.vue_vue_type_script_setup_true_lang-D9nykzc3.js → StoreTransactions.vue_vue_type_script_setup_true_lang-5g3yIL1a.js} +24 -24
- package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-DBnHk6jn.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-DHi4rdT1.js} +2 -2
- package/dist/{Tier-Ka0rbjC_.js → Tier-BmAOzRHL.js} +26 -26
- package/dist/{Title-7jvrf34J.js → Title-DMxiUg30.js} +22 -22
- package/dist/{Transaction-D-M3udf5.js → Transaction-CF6hXEpN.js} +2 -2
- package/dist/{UserRuleGroup.vue_vue_type_script_setup_true_lang-CrlpuElX.js → UserRuleGroup.vue_vue_type_script_setup_true_lang-BON_t0dL.js} +6 -6
- package/dist/{Voucher-BZCLPyDk.js → Voucher-DrtITxq-.js} +18 -18
- package/dist/{VoucherEditor.vue_vue_type_script_setup_true_lang-C_MOMFkX.js → VoucherEditor.vue_vue_type_script_setup_true_lang-1DZOzJKx.js} +12 -12
- package/dist/{WhatsappAccount-BG0dIroG.js → WhatsappAccount-Bb0Y7ikk.js} +6 -6
- package/dist/{WhatsappAccountStatusLabel.vue_vue_type_script_setup_true_lang-Co05OXon.js → WhatsappAccountStatusLabel.vue_vue_type_script_setup_true_lang-CPlyzkp4.js} +1 -1
- package/dist/{WhatsappBot-O5h5UKXz.js → WhatsappBot-DNvvaPey.js} +6 -6
- package/dist/{WhatsappBotLogs-BOPTuu6o.js → WhatsappBotLogs-C8M-1pvv.js} +6 -6
- package/dist/{WhatsappBotSettings-BSiIvpGO.js → WhatsappBotSettings-D6egqUyU.js} +4 -4
- package/dist/WhatsappLayout-DeQTPuF6.js +21 -0
- package/dist/{WhatsappNotificationGroupDialog.vue_vue_type_script_setup_true_lang-DJdi7dV6.js → WhatsappNotificationGroupDialog.vue_vue_type_script_setup_true_lang-DI0pcHcE.js} +3 -3
- package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-Do4GTTKx.js → ZodTextField.vue_vue_type_script_setup_true_lang-CKZscSjU.js} +2 -2
- package/dist/{app-CEe3kSZM.js → app-BjdLqYQq.js} +69 -69
- package/dist/app.js +1 -1
- package/dist/{base.export-BjSdr85q.js → base.export-B68z5BF6.js} +2 -2
- package/dist/{business-CJjiItSo.js → business-D9fgkHxb.js} +1 -1
- package/dist/{campaign-D4MWLs1D.js → campaign-Dw_ujovr.js} +8 -8
- package/dist/{campaign-DEXq52fE.js → campaign-eMaPX8r6.js} +2 -2
- package/dist/{campaign.fn-DiadKjES.js → campaign.fn-DFjGNvmN.js} +20 -20
- package/dist/{collection.fn-CfqIdnSS.js → collection.fn-CCOWtB-c.js} +2 -2
- package/dist/{currency-CPB6E_s-.js → currency-CTLKReFC.js} +1 -1
- package/dist/{duplicateCampaign-BzWvsZwc.js → duplicateCampaign-BcpBfUGL.js} +2 -2
- package/dist/{effect-DFodA5mh.js → effect-CTI1ZH57.js} +1 -1
- package/dist/{email-addresses-C0CwgNs_.js → email-addresses-B74e3bnB.js} +2 -2
- package/dist/{feature-flag-Bap2oi_S.js → feature-flag-DVdEaChJ.js} +156 -140
- package/dist/{helper-DKKsSb2o.js → helper-as9K-piK.js} +1 -1
- package/dist/{index-CJGb1iJi.js → index-3LjKJhQa.js} +1 -1
- package/dist/{index-DDmpyI6z.js → index-8mBfDn3M.js} +7 -7
- package/dist/{index-CFZMwKR6.js → index-B0h0iYWP.js} +2 -2
- package/dist/{index-BS6725ZB.js → index-BEKMTiFb.js} +3 -3
- package/dist/{index-CXqPYmyv.js → index-BW7FoVEA.js} +1 -1
- package/dist/{index-BWsGYTzB.js → index-B_wRpO02.js} +2 -2
- package/dist/{index-CEFEuMOF.js → index-Ba719MYq.js} +1 -1
- package/dist/{index-DxmlvoHV.js → index-BbVbqe4Y.js} +2 -2
- package/dist/{index-C_4eW8Sr.js → index-BhTrG89b.js} +4 -4
- package/dist/{index-D5veZ8LP.js → index-C5V6u2Qd.js} +2 -2
- package/dist/{index-DRnUcSVN.js → index-CHU3UePP.js} +1 -1
- package/dist/{index-CfqmNZUH.js → index-CQxkDpX0.js} +4 -4
- package/dist/{index-RUdMURTx.js → index-CWLOcQ6j.js} +8 -8
- package/dist/{index-CtwPthW5.js → index-Ckz6u3ac.js} +2 -2
- package/dist/{index-BJCirs9i.js → index-Czg-2Ni0.js} +3 -3
- package/dist/{index-qAQiQd-s.js → index-DKI8401o.js} +2 -2
- package/dist/{index-4LQanFJi.js → index-DcZiikOH.js} +2 -2
- package/dist/{index-BdGo-qgB.js → index-QHqcSN2q.js} +1 -1
- package/dist/{index-DFV2ydYE.js → index-TAoQpeLQ.js} +1 -1
- package/dist/{index-C1C21iKU.js → index-wsCCqwdr.js} +1 -1
- package/dist/{index.esm2017-i1myv90H.js → index.esm2017-DL6rTGDW.js} +1 -1
- package/dist/{loading-BAFiJnEb.js → loading-x6IScY4K.js} +1 -1
- package/dist/{lodash-De2KDgqX.js → lodash-nwnDizYo.js} +1 -1
- package/dist/{member-import-BP4RZGbA.js → member-import-C-b01Tyd.js} +1 -1
- package/dist/{membership-CQWw-rTa.js → membership-DfarOMtO.js} +2 -2
- package/dist/{money-rwjWYzdi.js → money-CFn-jR4W.js} +1 -1
- package/dist/{number-DwSvkBpS.js → number-CSlyDL2x.js} +1 -1
- package/dist/objectid-zcT6ESET.js +145 -0
- package/dist/{onboarding-u7cpl6k3.js → onboarding-DyaFaaF2.js} +3 -3
- package/dist/{onboardingSetup-DoxDlcVN.js → onboardingSetup-DQt91O9f.js} +2 -2
- package/dist/{plugins-CKaeoHSK.js → plugins-DEHr0UOe.js} +3 -3
- package/dist/{reward-BasbGRWt.js → reward-Du_Pv-4p.js} +1 -1
- package/dist/{rule-IN41b-qE.js → rule-DfqmQTVK.js} +9 -9
- package/dist/{template-3Nu_MAMG.js → template-CcbNF4PF.js} +6 -6
- package/dist/{timezone-C68y8HiI.js → timezone-_4tabIaK.js} +1 -1
- package/dist/{transaction.fn-Ckxm2gof.js → transaction.fn-C46PHwCV.js} +2 -2
- package/dist/{trigger-xA8j3s9B.js → trigger-Dipr6btC.js} +5 -5
- package/dist/{useMarketingMaterialActions-ClYoBaFw.js → useMarketingMaterialActions-BAw2ZjeF.js} +4 -4
- package/dist/{usePagination-CIRxyVr8.js → usePagination-D6RZ18zS.js} +1 -1
- package/dist/{user-PTTQTMyQ.js → user-BCexQj3Q.js} +1 -1
- package/dist/{vue-i18n-DYnrLWFT.js → vue-i18n-DXvyTCZf.js} +109 -109
- package/dist/{xlsx-l0AsOrP1.js → xlsx-BTxt_Jg6.js} +166 -166
- package/dist/{zod-Bm1pKYLC.js → zod-T4wMYjWT.js} +1 -1
- package/package.json +1 -1
- package/dist/WhatsappLayout-DLVIfkzJ.js +0 -21
- package/dist/feature-flag--GbS6Qn_.js +0 -50
- package/dist/objectid-DtEPzPd_.js +0 -145
package/README.md
CHANGED
|
@@ -22,70 +22,68 @@ pnpm build
|
|
|
22
22
|
|
|
23
23
|
### Feature Flags
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
25
|
+
Connect uses `@feedmepos/feature-flag` directly in the frontend. WhatsApp Bot
|
|
26
|
+
shares the business flag loading used by broadcast channels in
|
|
27
|
+
`src/feature-flag.ts` and uses the `connect_whatsapp_bot` flag.
|
|
28
|
+
|
|
29
|
+
| Feature | Flagsmith key |
|
|
30
|
+
| ------------------- | --------------------------------------- |
|
|
31
|
+
| WhatsApp Bot | `connect_whatsapp_bot` |
|
|
32
|
+
| Broadcast App Inbox | `connect_broadcast_app_inbox_countries` |
|
|
33
|
+
| Broadcast Push | `connect_broadcast_push_countries` |
|
|
34
|
+
| Broadcast WhatsApp | `connect_broadcast_whatsapp_countries` |
|
|
35
|
+
|
|
36
|
+
WhatsApp Bot checks only whether `connect_whatsapp_bot` is enabled. Its remote
|
|
37
|
+
config value and the selected country do not affect access; no remote config
|
|
38
|
+
value is required.
|
|
39
|
+
|
|
40
|
+
Broadcast channel flags also check the current business country. Their values are
|
|
41
|
+
comma-separated country codes, such as `MY,SG`; an empty value or `*` allows every
|
|
42
|
+
country. Country codes are case-insensitive.
|
|
43
|
+
|
|
44
|
+
Connect loads flags on startup and when the selected business changes. Country
|
|
45
|
+
changes re-evaluate broadcast channel flags. The WhatsApp sidebar entry stays
|
|
46
|
+
hidden and WhatsApp views stay unmounted while flags load. Direct links show a
|
|
47
|
+
loading screen until the check finishes; disabled or failed checks redirect to
|
|
48
|
+
analytics.
|
|
40
49
|
|
|
41
50
|
#### Local setup
|
|
42
51
|
|
|
43
|
-
|
|
52
|
+
Set the frontend Flagsmith API key in Connect's local environment, then restart
|
|
53
|
+
the Vite dev server:
|
|
44
54
|
|
|
45
55
|
```dotenv
|
|
46
|
-
|
|
47
|
-
FLAGSMITH_ENVIRONMENT_KEY=<Development environment SDK key>
|
|
56
|
+
FEATURE_FLAG_API_KEY=<Development environment client key>
|
|
48
57
|
```
|
|
49
58
|
|
|
50
|
-
|
|
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
|
+
This is the same frontend configuration used by broadcast channel flags.
|
|
59
60
|
|
|
60
61
|
#### Enable selected businesses
|
|
61
62
|
|
|
62
63
|
1. In <https://flagsmith.feedme.farm>, open organisation **Feedme**, project
|
|
63
64
|
**MAIN**, and **Development** for local testing.
|
|
64
|
-
2. Create
|
|
65
|
+
2. Create or rename the flag to `connect_whatsapp_bot`, disabled by default.
|
|
65
66
|
3. Open Connect with the desired business selected. The first flag evaluation
|
|
66
67
|
registers that business ID as a Flagsmith identity.
|
|
67
|
-
4. In **Identities**, find
|
|
68
|
-
`
|
|
69
|
-
|
|
70
|
-
5.
|
|
71
|
-
|
|
68
|
+
4. In **Identities**, find `business-<businessId>` and enable the
|
|
69
|
+
`connect_whatsapp_bot` override. Identity or segment overrides can enable selected
|
|
70
|
+
businesses; no country-list value is required.
|
|
71
|
+
5. Reload Connect, then open `/whatsapp`. To revoke access, disable the override
|
|
72
|
+
and reload.
|
|
72
73
|
|
|
73
|
-
Configure **Production** separately
|
|
74
|
-
|
|
75
|
-
continue to apply. The `fm-flagsmith` skill can inspect configuration and overrides;
|
|
76
|
-
its GET-only helper cannot create or change them.
|
|
74
|
+
Configure **Production** separately with its frontend API key. This flag controls
|
|
75
|
+
page visibility; existing WhatsApp API permissions continue to apply.
|
|
77
76
|
|
|
78
77
|
#### Verify locally
|
|
79
78
|
|
|
80
|
-
With Connect signed in, inspect the browser's Network tab for
|
|
81
|
-
`
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
permission. A 404 usually means campaign-service needs restarting or Connect is
|
|
86
|
-
pointing at the wrong backend.
|
|
79
|
+
With Connect signed in, inspect the browser's Network tab for the frontend
|
|
80
|
+
Flagsmith request using identity `business-<businessId>`. Verify the WhatsApp Bot
|
|
81
|
+
navigation entry and `/whatsapp` are available only when
|
|
82
|
+
`connect_whatsapp_bot` is enabled. Disabled, missing, or failed flag checks keep the
|
|
83
|
+
entry hidden and redirect direct links to analytics.
|
|
87
84
|
|
|
88
85
|
### Formatting is with prettier, set default formatter to Prettier
|
|
86
|
+
|
|
89
87
|
```json
|
|
90
88
|
"[typescript]": {
|
|
91
89
|
"editor.defaultFormatter": "esbenp.prettier-vscode"
|