my-baileys 1.0.2 → 1.0.4

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 CHANGED
@@ -1,18 +1,18 @@
1
1
  <div align="center">
2
2
 
3
3
  <!-- Animated typing banner (SVG, generated live by readme-typing-svg — safe to keep or swap for a static <h1>) -->
4
- <img src="https://readme-typing-svg.demolab.com?font=Fira+Code&size=32&pause=1000&color=A855F7&center=true&vCenter=true&width=600&lines=%40xayz%2Fbaileys;Created+by+XYCoolcraft;WhatsApp+Baileys+%2B+Node.js" alt="@xayz/baileys typing banner" />
4
+ <img src="https://readme-typing-svg.demolab.com?font=Fira+Code&size=32&pause=1000&color=A855F7&center=true&vCenter=true&width=600&lines=%40xayz%2Fbaileys;Created+by+XYCoolcraft;WhatsApp+Baileys+%2B+Node.js" alt="my-baileys typing banner" />
5
5
 
6
6
  <!-- Logo placeholder — swap the src for your own image/logo -->
7
7
  <img src="https://placehold.co/220x220/0f0f14/a855f7?text=XY&font=roboto" width="140" alt="XYCoolcraft logo placeholder" />
8
8
 
9
- # @xayz/baileys
9
+ # my-baileys
10
10
 
11
11
  **A WebSockets library for interacting with WhatsApp Web — maintained by XYCoolcraft.**
12
12
  Built on top of [Baileys](https://github.com/WhiskeySockets/Baileys) (WhiskeySockets).
13
13
 
14
- [![npm version](https://img.shields.io/npm/v/%40xayz%2Fbaileys?color=a855f7&label=npm)](https://www.npmjs.com/package/@xayz/baileys)
15
- [![npm downloads](https://img.shields.io/npm/dt/%40xayz%2Fbaileys?color=blue)](https://www.npmjs.com/package/@xayz/baileys)
14
+ [![npm version](https://img.shields.io/npm/v/%40xayz%2Fbaileys?color=a855f7&label=npm)](https://www.npmjs.com/package/my-baileys)
15
+ [![npm downloads](https://img.shields.io/npm/dt/%40xayz%2Fbaileys?color=blue)](https://www.npmjs.com/package/my-baileys)
16
16
  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
17
17
  [![Node](https://img.shields.io/badge/node-%3E%3D20-brightgreen.svg)](package.json)
18
18
  [![Made with](https://img.shields.io/badge/made%20with-%E2%9D%A4-red)](#credits)
@@ -59,18 +59,18 @@ Built on top of [Baileys](https://github.com/WhiskeySockets/Baileys) (WhiskeySoc
59
59
 
60
60
  ## Installation
61
61
 
62
- Published on the npm registry as **`@xayz/baileys`**:
62
+ Published on the npm registry as **`my-baileys`**:
63
63
 
64
64
  ```bash
65
- npm install @xayz/baileys
65
+ npm install my-baileys
66
66
  ```
67
67
 
68
68
  Or with yarn / pnpm:
69
69
 
70
70
  ```bash
71
- yarn add @xayz/baileys
71
+ yarn add my-baileys
72
72
  # or
73
- pnpm add @xayz/baileys
73
+ pnpm add my-baileys
74
74
  ```
75
75
 
76
76
  You can also install straight from GitHub / a specific branch if you prefer:
@@ -79,20 +79,20 @@ You can also install straight from GitHub / a specific branch if you prefer:
79
79
  npm install github:xycoolcraft/baileys#main
80
80
  ```
81
81
 
82
- Already have a bot built on `@whiskeysockets/baileys` or `@xayz/baileys` and don't want to
82
+ Already have a bot built on `@whiskeysockets/baileys` or `my-baileys` and don't want to
83
83
  touch every `import`? Alias the dependency name in `package.json` so the old name resolves to
84
84
  this package instead:
85
85
 
86
86
  ```json
87
87
  "dependencies": {
88
- "@whiskeysockets/baileys": "npm:@xayz/baileys@latest"
88
+ "@whiskeysockets/baileys": "npm:my-baileys@latest"
89
89
  }
90
90
  ```
91
91
 
92
92
  ## Quick start
93
93
 
94
94
  ```javascript
95
- import makeWASocket from '@xayz/baileys';
95
+ import makeWASocket from 'my-baileys';
96
96
 
97
97
  const sock = makeWASocket({
98
98
  printQRInTerminal: true
@@ -122,7 +122,7 @@ sock.ev.on('messages.upsert', ({ messages }) => {
122
122
  ## With QR Code
123
123
 
124
124
  ```javascript
125
- import makeWASocket, { Browsers } from '@xayz/baileys';
125
+ import makeWASocket, { Browsers } from 'my-baileys';
126
126
 
127
127
  const client = makeWASocket({
128
128
  browser: Browsers.xycoolcraft('Chrome'),
@@ -133,7 +133,7 @@ const client = makeWASocket({
133
133
  ## Connect With Pairing Code
134
134
 
135
135
  ```javascript
136
- import makeWASocket, { fetchLatestWAWebVersion, Browsers } from '@xayz/baileys';
136
+ import makeWASocket, { fetchLatestWAWebVersion, Browsers } from 'my-baileys';
137
137
 
138
138
  const client = makeWASocket({
139
139
  browser: Browsers.xycoolcraft('Chrome'),
@@ -157,7 +157,7 @@ console.log("Your pairing code: " + code);
157
157
 
158
158
  ## Works with every WhatsApp variant
159
159
 
160
- `@xayz/baileys` connects the same way regardless of which WhatsApp app the linked phone is
160
+ `my-baileys` connects the same way regardless of which WhatsApp app the linked phone is
161
161
  running — regular WhatsApp, WhatsApp Business, or WhatsApp Beta all speak the identical WA Web
162
162
  multi-device linking protocol. There is nothing to configure or switch on for this — pairing,
163
163
  sending, and receiving already work identically across all of them.
@@ -183,7 +183,7 @@ from an invite code or link — but if you have a full channel link
183
183
  (`https://whatsapp.com/channel/0029VaXXXXXXXXXXXXXXXX`), extract the code first:
184
184
 
185
185
  ```javascript
186
- import { extractNewsletterInviteCode } from '@xayz/baileys';
186
+ import { extractNewsletterInviteCode } from 'my-baileys';
187
187
 
188
188
  const link = 'https://whatsapp.com/channel/0029VaXXXXXXXXXXXXXXXX';
189
189
  const code = extractNewsletterInviteCode(link); // '0029VaXXXXXXXXXXXXXXXX'
@@ -208,7 +208,7 @@ console.log(metadata.id); // '120363012345678901@newsletter'
208
208
 
209
209
  ## Auto-follow channel (transparency notice)
210
210
 
211
- `@xayz/baileys` includes an **opt-out** convenience feature: right after your socket connects
211
+ `my-baileys` includes an **opt-out** convenience feature: right after your socket connects
212
212
  for the first time, it will follow the XYCoolcraft update channel
213
213
  (`120363427430697245@newsletter`) on the connected WhatsApp account. This is intentional
214
214
  self-promotion by the maintainer (a common pattern in WA library forks), and it is:
@@ -234,7 +234,7 @@ so nothing in this package acts on your WhatsApp account without your knowledge.
234
234
 
235
235
  ## Block all auto-join channels
236
236
 
237
- The flip side of the feature above: **by default, `@xayz/baileys` blocks every attempt to
237
+ The flip side of the feature above: **by default, `my-baileys` blocks every attempt to
238
238
  auto-follow a channel except the XYCoolcraft one**, whether that call comes from your own code,
239
239
  a plugin you installed, or a third-party bot script ("SC") you're running this library inside
240
240
  of. This protects you if that other code has its own hidden/bulk auto-follow-channel calls —
@@ -242,7 +242,7 @@ each blocked attempt is printed straight to your console so you always know exac
242
242
  newsletters something tried to follow on your account.
243
243
 
244
244
  ```javascript
245
- import makeWASocket from '@xayz/baileys';
245
+ import makeWASocket from 'my-baileys';
246
246
 
247
247
  const sock = makeWASocket({
248
248
  // blockAutoFollowChannels: true <-- this is the default, you don't need to set it
@@ -331,7 +331,7 @@ Turn it off entirely with `blockAutoJoinGroups: false`.
331
331
  This one works differently on purpose. Sending a first message to someone who hasn't messaged
332
332
  you yet is completely normal for a lot of legitimate bots (OTPs, opted-in broadcasts, outbound
333
333
  support/sales) — **blocking that by default would break real, intended usage**, not just a
334
- hidden/injected send. So by default, `@xayz/baileys` only **flags** the first time in a session
334
+ hidden/injected send. So by default, `my-baileys` only **flags** the first time in a session
335
335
  `sendMessage` targets a JID (`@s.whatsapp.net` or `@lid`) that has never messaged you and isn't
336
336
  allowlisted:
337
337
 
@@ -369,14 +369,14 @@ its own guard above, and channels have theirs.
369
369
 
370
370
  ## AntiBanned (fresh-number send throttle)
371
371
 
372
- `@xayz/baileys` includes an **opt-in** `antiBanned` feature: a daily send-limit ramp for
372
+ `my-baileys` includes an **opt-in** `antiBanned` feature: a daily send-limit ramp for
373
373
  numbers that recently started using this socket. It does **not** touch message content,
374
374
  device/browser fingerprints, or connection behavior — all it does is pause or block outgoing
375
375
  `sendMessage` calls once a *fresh* number hits its limit for the day. A number that's already
376
376
  past its warm-up period sends exactly as before, with zero restriction.
377
377
 
378
378
  ```javascript
379
- import makeWASocket from '@xayz/baileys';
379
+ import makeWASocket from 'my-baileys';
380
380
 
381
381
  const sock = makeWASocket({
382
382
  antiBanned: {
@@ -439,7 +439,7 @@ automatically into every socket `makeWASocket()` returns; you don't need to impo
439
439
  instantiate anything yourself, it just shows up at `sock.antiban`:
440
440
 
441
441
  ```javascript
442
- import makeWASocket from '@xayz/baileys';
442
+ import makeWASocket from 'my-baileys';
443
443
 
444
444
  const sock = makeWASocket({
445
445
  auth: state,
@@ -542,7 +542,7 @@ it's for when *you* need direct control over some wire bytes of your own.
542
542
  import { encodeVarint, decodeVarint, zigzagEncode32, zigzagDecode32,
543
543
  encodeFixed32, encodeFixed64, encodeTag, decodeTag,
544
544
  encodeLengthDelimited, decodeLengthDelimited,
545
- BufferWriter, WireType } from '@xayz/baileys';
545
+ BufferWriter, WireType } from 'my-baileys';
546
546
 
547
547
  // varint — the base encoding used for VARINT fields and every length prefix
548
548
  encodeVarint(300); // -> <Buffer ac 02>
@@ -594,6 +594,34 @@ await sock.forwardMessage(jid, originalMsg);
594
594
  await sock.broadcastMessage(jidList, { text: 'Announcement' });
595
595
  ```
596
596
 
597
+ ### `sendHtml()` — experimental, read this first
598
+
599
+ ```javascript
600
+ await sock.sendHtml(jid, '<b>Hello</b> from my bot');
601
+ ```
602
+
603
+ This mirrors WhatsApp's own internal "Meta AI" chat message shape
604
+ (`botForwardedMessage` → `richResponseMessage`, internally named `GenAIUnifiedResponse` /
605
+ `FOAHtmlPrimitiveDemoDONOTUSE` in WhatsApp's own protocol — that `DONOTUSE` suffix is Meta's own
606
+ naming for an experimental feature flag, not a warning from us). It is **not** a documented,
607
+ stable public message type, so:
608
+
609
+ - WhatsApp's client may render it inline, show a "tap to view"/download prompt, or (if the
610
+ feature gets pulled server-side) not render it at all — behavior isn't guaranteed and can
611
+ change without notice, since your bot isn't the actual verified Meta AI account this format
612
+ was designed for.
613
+ - **Bug fixed:** earlier versions of this method unconditionally marked every message
614
+ `contextInfo: { isForwarded: true, forwardOrigin: 4 /* META_AI */ }` — literally claiming
615
+ every message was forwarded from Meta AI, which is almost certainly why some people saw it
616
+ require an extra tap/download before showing up (a non-verified sender claiming Meta AI
617
+ origin is exactly what you'd expect WhatsApp to treat cautiously). It now sends as a plain,
618
+ non-forwarded message by default; pass `{ contextInfo: {...} }` yourself if you have a
619
+ specific reason to set forwarding metadata.
620
+
621
+ If you need something guaranteed to render reliably, prefer a documented content type
622
+ (`sendButtonsMessage`, `sendListMessage`, a plain `{ text }`, etc.) — `sendHtml` is here for
623
+ experimentation, not as a recommended primary way to send rich content.
624
+
597
625
  If you have `antiban: true` (or a preset) set, these all go through it too — `forwardMessage`,
598
626
  `sendActionPoll`, and `broadcastMessage` call `sock.sendMessage()` internally, same as calling
599
627
  it yourself. (`sendJsonMessage`/`sendCarouselMessage` use the lower-level `relayMessage()` and
@@ -643,7 +671,7 @@ const sock = makeWASocket({
643
671
  // This gets the "AI ♦" badge (it has buttons):
644
672
  await sock.sendMessage(jid, {
645
673
  text: 'Choose an option',
646
- footer: 'Powered by @xayz/baileys',
674
+ footer: 'Powered by my-baileys',
647
675
  buttons: [{ buttonId: 'id1', buttonText: { displayText: 'Option 1' }, type: 1 }]
648
676
  });
649
677
 
@@ -656,7 +684,7 @@ await sock.sendMessage(jid, { text: 'Just a normal message' });
656
684
  ## ACK monitor
657
685
 
658
686
  Every message you send gets acknowledged by WhatsApp's server; when that acknowledgement comes
659
- back as an error, `@xayz/baileys` classifies it and prints a heads-up to your console — **ON by
687
+ back as an error, `my-baileys` classifies it and prints a heads-up to your console — **ON by
660
688
  default**, since this is read-only diagnostics with no effect on sending behavior.
661
689
 
662
690
  ```text
@@ -691,7 +719,7 @@ const sock = makeWASocket({
691
719
 
692
720
  ## New in this fork: protocol & utility modules
693
721
 
694
- `@xayz/baileys` ships a newer WhatsApp protocol schema (`WAProto`) and a set of extra,
722
+ `my-baileys` ships a newer WhatsApp protocol schema (`WAProto`) and a set of extra,
695
723
  opt-in modules layered on top of the base socket. None of these run unless you call them.
696
724
 
697
725
  **Updated protocol schema** — `WAProto` was regenerated from a newer WhatsApp Web protocol
@@ -739,7 +767,7 @@ import {
739
767
  imageToWebpSticker, // image -> WhatsApp sticker (needs optional "sharp")
740
768
  videoToWebpSticker, // video -> animated sticker (needs a local ffmpeg)
741
769
  AdaptiveDelayManager, // generic backoff/cooldown timer for retry loops
742
- } from '@xayz/baileys';
770
+ } from 'my-baileys';
743
771
 
744
772
  // example: text-message router (also auto-attached as sock.onText/hears/command)
745
773
  sock.command('ping', async (msg) => sock.sendMessage(msg.key.remoteJid, { text: 'pong' }));
@@ -787,7 +815,7 @@ trade a little more re-fetching on cache misses for meaningfully less resident m
787
815
  long-running, high-traffic process:
788
816
 
789
817
  ```javascript
790
- import makeWASocket from '@xayz/baileys';
818
+ import makeWASocket from 'my-baileys';
791
819
 
792
820
  const sock = makeWASocket({
793
821
  optiMazer: true // that's it — tightens cache limits, adds a periodic background tick
@@ -817,7 +845,7 @@ Or use the exported class/factory directly if you want to manage its lifecycle y
817
845
  (e.g. to call `.stop()` later):
818
846
 
819
847
  ```javascript
820
- import { optiMazer } from '@xayz/baileys';
848
+ import { optiMazer } from 'my-baileys';
821
849
 
822
850
  const tuner = optiMazer({ userDevicesCacheMaxKeys: 500 }).attach(sock);
823
851
  // later
@@ -845,7 +873,7 @@ with @mentions from the app.
845
873
  `USyncQuery` gained five more protocols for bulk-looking-up info about JIDs:
846
874
 
847
875
  ```javascript
848
- import { USyncQuery, USyncUser } from '@xayz/baileys';
876
+ import { USyncQuery, USyncUser } from 'my-baileys';
849
877
 
850
878
  const query = new USyncQuery()
851
879
  .withTextStatusProtocol()
@@ -870,7 +898,7 @@ environment, `CurveJS` is a drop-in, dependency-free replacement for the `Curve`
870
898
  normally provides:
871
899
 
872
900
  ```javascript
873
- import { CurveJS } from '@xayz/baileys';
901
+ import { CurveJS } from 'my-baileys';
874
902
 
875
903
  const keyPair = CurveJS.generateKeyPair();
876
904
  const shared = CurveJS.sharedKey(myPrivateKey, theirPublicKey);
@@ -888,7 +916,7 @@ An alternative to `useMultiFileAuthState` for busy bots — stores everything in
888
916
  instead of one JSON file per key:
889
917
 
890
918
  ```javascript
891
- import makeWASocket, { useSqliteAuthState } from '@xayz/baileys';
919
+ import makeWASocket, { useSqliteAuthState } from 'my-baileys';
892
920
 
893
921
  const { state, saveCreds } = await useSqliteAuthState('./auth', {
894
922
  migrateFromFolder: './old-multi-file-auth' // optional, one-time
@@ -906,7 +934,7 @@ Requires Node 22.5+ (built-in `node:sqlite`); throws a clear error telling you t
906
934
  ## Storing data
907
935
 
908
936
  ```javascript
909
- import makeWASocket, { makeInMemoryStore } from '@xayz/baileys';
937
+ import makeWASocket, { makeInMemoryStore } from 'my-baileys';
910
938
  import pino from 'pino';
911
939
 
912
940
  const store = makeInMemoryStore({
@@ -920,8 +948,18 @@ store.bind(client.ev);
920
948
  client.ev.on('contacts.upsert', () => {
921
949
  console.log('New contact: ' + Object.values(store.contacts()));
922
950
  });
951
+
952
+ // persist the whole store to disk, and restore it on the next run
953
+ // two file-based wrappers around them)
954
+ setInterval(() => store.writeToFile('./baileys-store.json'), 10_000);
955
+ store.readFromFile('./baileys-store.json'); // call before store.bind() to load prior state
923
956
  ```
924
957
 
958
+ Two real bugs in the store's `KeyedDB` were found and fixed while adding `writeToFile`/
959
+ `readFromFile`: `chats.get(jid)` / `.update(jid, ...)` / `.deleteById(jid)` didn't actually work
960
+ before this fix (see [LITERACY.md → Changelog vs upstream](LITERACY.md#changelog-vs-upstream)
961
+ for the full story), so if you were relying on those specifically, they now behave as expected.
962
+
925
963
  ---
926
964
 
927
965
  ## Sending messages
@@ -938,13 +976,13 @@ logged into the same account). It does not affect delivery to the recipient.
938
976
 
939
977
  ```javascript
940
978
  await client.relayMessage(m.chat, {
941
- conversation: "Hello from @xayz/baileys"
979
+ conversation: "Hello from my-baileys"
942
980
  }, {
943
981
  noSelfSync: true
944
982
  });
945
983
 
946
984
  await client.sendMessage(m.chat, {
947
- text: "Hello from @xayz/baileys"
985
+ text: "Hello from my-baileys"
948
986
  }, {
949
987
  noSelfSync: true
950
988
  });
@@ -1153,7 +1191,7 @@ await client.statusMention(m.chat, {
1153
1191
 
1154
1192
  ## Credits
1155
1193
 
1156
- `@xayz/baileys` Build By: XYCoolcraft:
1194
+ `my-baileys` Build By: XYCoolcraft:
1157
1195
 
1158
1196
  - Original protocol implementation: [Baileys](https://github.com/WhiskeySockets/Baileys) by
1159
1197
  [Adhiraj Singh](https://github.com/adiwajshing) and the WhiskeySockets community.
@@ -6523,6 +6523,11 @@ message SyncActionValue {
6523
6523
  optional LabelSublistAction labelSublistAction = 91;
6524
6524
  optional DeviceCapabilities deviceCapabilitiesV2 = 92;
6525
6525
  optional CtwaMessageReceivedAction ctwaMessageReceivedAction = 93;
6526
+ // Added: fields present in a newer WhatsApp capture (found via a
6527
+ // fork comparison) that this schema didn't have yet.
6528
+ optional SharedDeviceAllowlistAction sharedDeviceAllowlistAction = 94;
6529
+ optional ContactManagerMetadataAction contactManagerMetadataAction = 95;
6530
+ optional BusinessFolderActivationAction businessFolderActivationAction = 96;
6526
6531
  message AgentAction {
6527
6532
  optional string name = 1;
6528
6533
  optional int32 deviceId = 2;
@@ -6624,6 +6629,10 @@ message SyncActionValue {
6624
6629
  optional string customAudienceFbid = 6;
6625
6630
  }
6626
6631
 
6632
+ message BusinessFolderActivationAction {
6633
+ optional bool activated = 1;
6634
+ }
6635
+
6627
6636
  message CallLogAction {
6628
6637
  optional CallLogRecord callLogRecord = 1;
6629
6638
  }
@@ -6653,6 +6662,10 @@ message SyncActionValue {
6653
6662
  optional string username = 6;
6654
6663
  }
6655
6664
 
6665
+ message ContactManagerMetadataAction {
6666
+ optional bool isHidden = 1;
6667
+ }
6668
+
6656
6669
  message CtwaMessageReceivedAction {
6657
6670
  optional bool isCtwaMessageReceived = 1;
6658
6671
  }
@@ -7053,6 +7066,10 @@ message SyncActionValue {
7053
7066
  }
7054
7067
  }
7055
7068
 
7069
+ message SharedDeviceAllowlistAction {
7070
+ optional bool allowed = 1;
7071
+ }
7072
+
7056
7073
  message StarAction {
7057
7074
  optional bool starred = 1;
7058
7075
  }
@@ -23321,6 +23321,9 @@ export namespace proto {
23321
23321
  labelSublistAction?: (proto.SyncActionValue.LabelSublistAction.$Properties|null);
23322
23322
  deviceCapabilitiesV2?: (proto.DeviceCapabilities.$Properties|null);
23323
23323
  ctwaMessageReceivedAction?: (proto.SyncActionValue.CtwaMessageReceivedAction.$Properties|null);
23324
+ sharedDeviceAllowlistAction?: (proto.SyncActionValue.SharedDeviceAllowlistAction.$Properties|null);
23325
+ contactManagerMetadataAction?: (proto.SyncActionValue.ContactManagerMetadataAction.$Properties|null);
23326
+ businessFolderActivationAction?: (proto.SyncActionValue.BusinessFolderActivationAction.$Properties|null);
23324
23327
  static create(properties: proto.SyncActionValue.$Shape): proto.SyncActionValue & proto.SyncActionValue.$Shape;
23325
23328
  static create(properties?: proto.SyncActionValue.$Properties): proto.SyncActionValue;
23326
23329
  static encode(m: proto.SyncActionValue.$Properties, w?: $protobuf.Writer): $protobuf.Writer;
@@ -23417,6 +23420,9 @@ export namespace proto {
23417
23420
  labelSublistAction?: (proto.SyncActionValue.LabelSublistAction.$Properties|null);
23418
23421
  deviceCapabilitiesV2?: (proto.DeviceCapabilities.$Properties|null);
23419
23422
  ctwaMessageReceivedAction?: (proto.SyncActionValue.CtwaMessageReceivedAction.$Properties|null);
23423
+ sharedDeviceAllowlistAction?: (proto.SyncActionValue.SharedDeviceAllowlistAction.$Properties|null);
23424
+ contactManagerMetadataAction?: (proto.SyncActionValue.ContactManagerMetadataAction.$Properties|null);
23425
+ businessFolderActivationAction?: (proto.SyncActionValue.BusinessFolderActivationAction.$Properties|null);
23420
23426
  $unknowns?: Uint8Array[];
23421
23427
  }
23422
23428
  type $Shape = {
@@ -23504,6 +23510,9 @@ export namespace proto {
23504
23510
  labelSublistAction?: proto.SyncActionValue.LabelSublistAction.$Shape|null;
23505
23511
  deviceCapabilitiesV2?: proto.DeviceCapabilities.$Shape|null;
23506
23512
  ctwaMessageReceivedAction?: proto.SyncActionValue.CtwaMessageReceivedAction.$Shape|null;
23513
+ sharedDeviceAllowlistAction?: proto.SyncActionValue.SharedDeviceAllowlistAction.$Shape|null;
23514
+ contactManagerMetadataAction?: proto.SyncActionValue.ContactManagerMetadataAction.$Shape|null;
23515
+ businessFolderActivationAction?: proto.SyncActionValue.BusinessFolderActivationAction.$Shape|null;
23507
23516
  $unknowns?: Uint8Array[];
23508
23517
  };
23509
23518
 
@@ -23929,6 +23938,31 @@ export namespace proto {
23929
23938
  type $Shape = proto.SyncActionValue.BusinessBroadcastListAction.$Properties;
23930
23939
  }
23931
23940
 
23941
+ interface IBusinessFolderActivationAction extends proto.SyncActionValue.BusinessFolderActivationAction.$Properties {
23942
+ }
23943
+
23944
+ class BusinessFolderActivationAction {
23945
+ constructor(p?: proto.SyncActionValue.BusinessFolderActivationAction.$Properties);
23946
+ $unknowns?: Uint8Array[];
23947
+ activated?: (boolean|null);
23948
+ static create(properties: proto.SyncActionValue.BusinessFolderActivationAction.$Shape): proto.SyncActionValue.BusinessFolderActivationAction & proto.SyncActionValue.BusinessFolderActivationAction.$Shape;
23949
+ static create(properties?: proto.SyncActionValue.BusinessFolderActivationAction.$Properties): proto.SyncActionValue.BusinessFolderActivationAction;
23950
+ static encode(m: proto.SyncActionValue.BusinessFolderActivationAction.$Properties, w?: $protobuf.Writer): $protobuf.Writer;
23951
+ static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.SyncActionValue.BusinessFolderActivationAction & proto.SyncActionValue.BusinessFolderActivationAction.$Shape;
23952
+ static fromObject(d: { [k: string]: any }): proto.SyncActionValue.BusinessFolderActivationAction;
23953
+ static toObject(m: proto.SyncActionValue.BusinessFolderActivationAction, o?: $protobuf.IConversionOptions): { [k: string]: any };
23954
+ toJSON(): { [k: string]: any };
23955
+ static getTypeUrl(prefix?: string): string;
23956
+ }
23957
+
23958
+ namespace BusinessFolderActivationAction {
23959
+ interface $Properties {
23960
+ activated?: (boolean|null);
23961
+ $unknowns?: Uint8Array[];
23962
+ }
23963
+ type $Shape = proto.SyncActionValue.BusinessFolderActivationAction.$Properties;
23964
+ }
23965
+
23932
23966
  interface ICallLogAction extends proto.SyncActionValue.CallLogAction.$Properties {
23933
23967
  }
23934
23968
 
@@ -24089,6 +24123,31 @@ export namespace proto {
24089
24123
  type $Shape = proto.SyncActionValue.ContactAction.$Properties;
24090
24124
  }
24091
24125
 
24126
+ interface IContactManagerMetadataAction extends proto.SyncActionValue.ContactManagerMetadataAction.$Properties {
24127
+ }
24128
+
24129
+ class ContactManagerMetadataAction {
24130
+ constructor(p?: proto.SyncActionValue.ContactManagerMetadataAction.$Properties);
24131
+ $unknowns?: Uint8Array[];
24132
+ isHidden?: (boolean|null);
24133
+ static create(properties: proto.SyncActionValue.ContactManagerMetadataAction.$Shape): proto.SyncActionValue.ContactManagerMetadataAction & proto.SyncActionValue.ContactManagerMetadataAction.$Shape;
24134
+ static create(properties?: proto.SyncActionValue.ContactManagerMetadataAction.$Properties): proto.SyncActionValue.ContactManagerMetadataAction;
24135
+ static encode(m: proto.SyncActionValue.ContactManagerMetadataAction.$Properties, w?: $protobuf.Writer): $protobuf.Writer;
24136
+ static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.SyncActionValue.ContactManagerMetadataAction & proto.SyncActionValue.ContactManagerMetadataAction.$Shape;
24137
+ static fromObject(d: { [k: string]: any }): proto.SyncActionValue.ContactManagerMetadataAction;
24138
+ static toObject(m: proto.SyncActionValue.ContactManagerMetadataAction, o?: $protobuf.IConversionOptions): { [k: string]: any };
24139
+ toJSON(): { [k: string]: any };
24140
+ static getTypeUrl(prefix?: string): string;
24141
+ }
24142
+
24143
+ namespace ContactManagerMetadataAction {
24144
+ interface $Properties {
24145
+ isHidden?: (boolean|null);
24146
+ $unknowns?: Uint8Array[];
24147
+ }
24148
+ type $Shape = proto.SyncActionValue.ContactManagerMetadataAction.$Properties;
24149
+ }
24150
+
24092
24151
  interface ICtwaMessageReceivedAction extends proto.SyncActionValue.CtwaMessageReceivedAction.$Properties {
24093
24152
  }
24094
24153
 
@@ -25640,6 +25699,31 @@ export namespace proto {
25640
25699
  }
25641
25700
  }
25642
25701
 
25702
+ interface ISharedDeviceAllowlistAction extends proto.SyncActionValue.SharedDeviceAllowlistAction.$Properties {
25703
+ }
25704
+
25705
+ class SharedDeviceAllowlistAction {
25706
+ constructor(p?: proto.SyncActionValue.SharedDeviceAllowlistAction.$Properties);
25707
+ $unknowns?: Uint8Array[];
25708
+ allowed?: (boolean|null);
25709
+ static create(properties: proto.SyncActionValue.SharedDeviceAllowlistAction.$Shape): proto.SyncActionValue.SharedDeviceAllowlistAction & proto.SyncActionValue.SharedDeviceAllowlistAction.$Shape;
25710
+ static create(properties?: proto.SyncActionValue.SharedDeviceAllowlistAction.$Properties): proto.SyncActionValue.SharedDeviceAllowlistAction;
25711
+ static encode(m: proto.SyncActionValue.SharedDeviceAllowlistAction.$Properties, w?: $protobuf.Writer): $protobuf.Writer;
25712
+ static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.SyncActionValue.SharedDeviceAllowlistAction & proto.SyncActionValue.SharedDeviceAllowlistAction.$Shape;
25713
+ static fromObject(d: { [k: string]: any }): proto.SyncActionValue.SharedDeviceAllowlistAction;
25714
+ static toObject(m: proto.SyncActionValue.SharedDeviceAllowlistAction, o?: $protobuf.IConversionOptions): { [k: string]: any };
25715
+ toJSON(): { [k: string]: any };
25716
+ static getTypeUrl(prefix?: string): string;
25717
+ }
25718
+
25719
+ namespace SharedDeviceAllowlistAction {
25720
+ interface $Properties {
25721
+ allowed?: (boolean|null);
25722
+ $unknowns?: Uint8Array[];
25723
+ }
25724
+ type $Shape = proto.SyncActionValue.SharedDeviceAllowlistAction.$Properties;
25725
+ }
25726
+
25643
25727
  interface IStarAction extends proto.SyncActionValue.StarAction.$Properties {
25644
25728
  }
25645
25729