Merge branch 'master' into claude/evaluate-workflow-errors-PDDoJ

This commit is contained in:
Renato Alcara
2026-02-14 08:12:09 -03:00
committed by GitHub
13 changed files with 2173 additions and 2998 deletions
+6 -4
View File
@@ -28,10 +28,9 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: | run: |
# Force git to use HTTPS instead of SSH for GitHub repositories # Force git to use HTTPS with token instead of SSH for GitHub repositories
git config --global url."https://github.com/".insteadOf "ssh://git@github.com/" git config --global url."https://x-access-token:${GITHUB_TOKEN}@github.com/".insteadOf "ssh://git@github.com/"
git config --global url."https://github.com/".insteadOf "git@github.com:" git config --global url."https://x-access-token:${GITHUB_TOKEN}@github.com/".insteadOf "git@github.com:"
# Configure git to use GITHUB_TOKEN for authentication
git config --global url."https://x-access-token:${GITHUB_TOKEN}@github.com/".insteadOf "https://github.com/" git config --global url."https://x-access-token:${GITHUB_TOKEN}@github.com/".insteadOf "https://github.com/"
- name: Restore Yarn Cache - name: Restore Yarn Cache
@@ -46,6 +45,9 @@ jobs:
${{ runner.os }}-yarn- ${{ runner.os }}-yarn-
- name: Install dependencies - name: Install dependencies
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GIT_TERMINAL_PROMPT: 0
run: yarn install --immutable run: yarn install --immutable
- name: Build project - name: Build project
+6 -4
View File
@@ -28,10 +28,9 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: | run: |
# Force git to use HTTPS instead of SSH for GitHub repositories # Force git to use HTTPS with token instead of SSH for GitHub repositories
git config --global url."https://github.com/".insteadOf "ssh://git@github.com/" git config --global url."https://x-access-token:${GITHUB_TOKEN}@github.com/".insteadOf "ssh://git@github.com/"
git config --global url."https://github.com/".insteadOf "git@github.com:" git config --global url."https://x-access-token:${GITHUB_TOKEN}@github.com/".insteadOf "git@github.com:"
# Configure git to use GITHUB_TOKEN for authentication
git config --global url."https://x-access-token:${GITHUB_TOKEN}@github.com/".insteadOf "https://github.com/" git config --global url."https://x-access-token:${GITHUB_TOKEN}@github.com/".insteadOf "https://github.com/"
- name: Restore Yarn Cache - name: Restore Yarn Cache
@@ -46,6 +45,9 @@ jobs:
${{ runner.os }}-yarn- ${{ runner.os }}-yarn-
- name: Install packages - name: Install packages
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GIT_TERMINAL_PROMPT: 0
run: yarn install --immutable run: yarn install --immutable
- name: Check linting - name: Check linting
+1 -1
View File
@@ -18,7 +18,7 @@ jobs:
- uses: mshick/add-pr-comment@v2 - uses: mshick/add-pr-comment@v2
with: with:
repo-token: ${{ secrets.PERSONAL_TOKEN }} repo-token: ${{ secrets.GITHUB_TOKEN }}
message-id: pr-test message-id: pr-test
message: | message: |
Thanks for opening this pull request and contributing to the project! Thanks for opening this pull request and contributing to the project!
+6 -4
View File
@@ -29,10 +29,9 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: | run: |
# Force git to use HTTPS instead of SSH for GitHub repositories # Force git to use HTTPS with token instead of SSH for GitHub repositories
git config --global url."https://github.com/".insteadOf "ssh://git@github.com/" git config --global url."https://x-access-token:${GITHUB_TOKEN}@github.com/".insteadOf "ssh://git@github.com/"
git config --global url."https://github.com/".insteadOf "git@github.com:" git config --global url."https://x-access-token:${GITHUB_TOKEN}@github.com/".insteadOf "git@github.com:"
# Configure git to use GITHUB_TOKEN for authentication
git config --global url."https://x-access-token:${GITHUB_TOKEN}@github.com/".insteadOf "https://github.com/" git config --global url."https://x-access-token:${GITHUB_TOKEN}@github.com/".insteadOf "https://github.com/"
- name: Restore Yarn Cache - name: Restore Yarn Cache
@@ -47,6 +46,9 @@ jobs:
${{ runner.os }}-yarn- ${{ runner.os }}-yarn-
- name: Install dependencies - name: Install dependencies
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GIT_TERMINAL_PROMPT: 0
run: yarn install --immutable run: yarn install --immutable
- name: Run tests - name: Run tests
+42 -10
View File
@@ -1,7 +1,7 @@
syntax = "proto3"; syntax = "proto3";
package proto; package proto;
/// WhatsApp Version: 2.3000.1033381705 /// WhatsApp Version: 2.3000.1033472679
message ADVDeviceIdentity { message ADVDeviceIdentity {
optional uint32 rawId = 1; optional uint32 rawId = 1;
@@ -342,14 +342,6 @@ message BotAgeCollectionMetadata {
} }
} }
message BotAvatarMetadata {
optional uint32 sentiment = 1;
optional string behaviorGraph = 2;
optional uint32 action = 3;
optional uint32 intensity = 4;
optional uint32 wordCount = 5;
}
message BotCapabilityMetadata { message BotCapabilityMetadata {
repeated BotCapabilityType capabilities = 1; repeated BotCapabilityType capabilities = 1;
enum BotCapabilityType { enum BotCapabilityType {
@@ -608,7 +600,6 @@ message BotMessageSharingInfo {
} }
message BotMetadata { message BotMetadata {
optional BotAvatarMetadata avatarMetadata = 1;
optional string personaId = 2; optional string personaId = 2;
optional BotPluginMetadata pluginMetadata = 3; optional BotPluginMetadata pluginMetadata = 3;
optional BotSuggestedPromptMetadata suggestedPromptMetadata = 4; optional BotSuggestedPromptMetadata suggestedPromptMetadata = 4;
@@ -2407,6 +2398,7 @@ message Message {
optional string nativeFlowCallButtonPayload = 8; optional string nativeFlowCallButtonPayload = 8;
optional string deeplinkPayload = 9; optional string deeplinkPayload = 9;
optional MessageContextInfo messageContextInfo = 10; optional MessageContextInfo messageContextInfo = 10;
optional uint32 callEntryPoint = 11;
} }
message CallLogMessage { message CallLogMessage {
@@ -2621,8 +2613,15 @@ message Message {
} }
} }
message FullHistorySyncOnDemandConfig {
optional uint64 historyFromTimestamp = 1;
optional uint32 historyDurationDays = 2;
}
message FullHistorySyncOnDemandRequestMetadata { message FullHistorySyncOnDemandRequestMetadata {
optional string requestId = 1; optional string requestId = 1;
optional string businessProduct = 2;
optional bytes opaqueClientData = 3;
} }
message FutureProofMessage { message FutureProofMessage {
@@ -3158,14 +3157,18 @@ message Message {
message FullHistorySyncOnDemandRequest { message FullHistorySyncOnDemandRequest {
optional Message.FullHistorySyncOnDemandRequestMetadata requestMetadata = 1; optional Message.FullHistorySyncOnDemandRequestMetadata requestMetadata = 1;
optional DeviceProps.HistorySyncConfig historySyncConfig = 2; optional DeviceProps.HistorySyncConfig historySyncConfig = 2;
optional Message.FullHistorySyncOnDemandConfig fullHistorySyncOnDemandConfig = 3;
} }
message GalaxyFlowAction { message GalaxyFlowAction {
optional GalaxyFlowActionType type = 1; optional GalaxyFlowActionType type = 1;
optional string flowId = 2; optional string flowId = 2;
optional string stanzaId = 3; optional string stanzaId = 3;
optional string galaxyFlowDownloadRequestId = 4;
optional string agmId = 5;
enum GalaxyFlowActionType { enum GalaxyFlowActionType {
NOTIFY_LAUNCH = 1; NOTIFY_LAUNCH = 1;
DOWNLOAD_RESPONSES = 2;
} }
} }
@@ -3220,6 +3223,7 @@ message Message {
optional SyncDSnapshotFatalRecoveryResponse syncdSnapshotFatalRecoveryResponse = 8; optional SyncDSnapshotFatalRecoveryResponse syncdSnapshotFatalRecoveryResponse = 8;
optional CompanionCanonicalUserNonceFetchResponse companionCanonicalUserNonceFetchRequestResponse = 9; optional CompanionCanonicalUserNonceFetchResponse companionCanonicalUserNonceFetchRequestResponse = 9;
optional HistorySyncChunkRetryResponse historySyncChunkRetryResponse = 10; optional HistorySyncChunkRetryResponse historySyncChunkRetryResponse = 10;
optional FlowResponsesCsvBundle flowResponsesCsvBundle = 11;
message CompanionCanonicalUserNonceFetchResponse { message CompanionCanonicalUserNonceFetchResponse {
optional string nonce = 1; optional string nonce = 1;
optional string waFbid = 2; optional string waFbid = 2;
@@ -3230,6 +3234,19 @@ message Message {
optional string nonce = 1; optional string nonce = 1;
} }
message FlowResponsesCsvBundle {
optional string flowId = 1;
optional string galaxyFlowDownloadRequestId = 2;
optional string fileName = 3;
optional string mimetype = 4;
optional bytes fileSha256 = 5;
optional bytes mediaKey = 6;
optional bytes fileEncSha256 = 7;
optional string directPath = 8;
optional int64 mediaKeyTimestamp = 9;
optional uint64 fileLength = 10;
}
message FullHistorySyncOnDemandRequestResponse { message FullHistorySyncOnDemandRequestResponse {
optional Message.FullHistorySyncOnDemandRequestMetadata requestMetadata = 1; optional Message.FullHistorySyncOnDemandRequestMetadata requestMetadata = 1;
optional Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode responseCode = 2; optional Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode responseCode = 2;
@@ -3453,6 +3470,7 @@ message Message {
optional AIQueryFanout aiQueryFanout = 26; optional AIQueryFanout aiQueryFanout = 26;
optional MemberLabel memberLabel = 27; optional MemberLabel memberLabel = 27;
optional AIMediaCollectionMessage aiMediaCollectionMessage = 28; optional AIMediaCollectionMessage aiMediaCollectionMessage = 28;
optional uint32 afterReadDurationMs = 29;
enum Type { enum Type {
REVOKE = 0; REVOKE = 0;
EPHEMERAL_SETTING = 3; EPHEMERAL_SETTING = 3;
@@ -4025,6 +4043,8 @@ enum MutationProps {
AI_THREAD_RENAME_ACTION = 76; AI_THREAD_RENAME_ACTION = 76;
INTERACTIVE_MESSAGE_ACTION = 77; INTERACTIVE_MESSAGE_ACTION = 77;
SETTINGS_SYNC_ACTION = 78; SETTINGS_SYNC_ACTION = 78;
OUT_CONTACT_ACTION = 79;
NCT_SALT_SYNC_ACTION = 80;
SHARE_OWN_PN = 10001; SHARE_OWN_PN = 10001;
BUSINESS_BROADCAST_ACTION = 10002; BUSINESS_BROADCAST_ACTION = 10002;
AI_THREAD_DELETE_ACTION = 10003; AI_THREAD_DELETE_ACTION = 10003;
@@ -4655,6 +4675,8 @@ message SyncActionValue {
optional AiThreadRenameAction aiThreadRenameAction = 76; optional AiThreadRenameAction aiThreadRenameAction = 76;
optional InteractiveMessageAction interactiveMessageAction = 77; optional InteractiveMessageAction interactiveMessageAction = 77;
optional SettingsSyncAction settingsSyncAction = 78; optional SettingsSyncAction settingsSyncAction = 78;
optional OutContactAction outContactAction = 79;
optional NctSaltSyncAction nctSaltSyncAction = 80;
message AgentAction { message AgentAction {
optional string name = 1; optional string name = 1;
optional int32 deviceID = 2; optional int32 deviceID = 2;
@@ -4781,6 +4803,7 @@ message SyncActionValue {
message InteractiveMessageAction { message InteractiveMessageAction {
optional InteractiveMessageActionMode type = 1; optional InteractiveMessageActionMode type = 1;
optional string agmId = 2;
enum InteractiveMessageActionMode { enum InteractiveMessageActionMode {
DISABLE_CTA = 1; DISABLE_CTA = 1;
} }
@@ -4890,6 +4913,10 @@ message SyncActionValue {
optional int64 muteEveryoneMentionEndTimestamp = 4; optional int64 muteEveryoneMentionEndTimestamp = 4;
} }
message NctSaltSyncAction {
optional bytes salt = 1;
}
message NewsletterSavedInterestsAction { message NewsletterSavedInterestsAction {
optional string newsletterSavedInterests = 1; optional string newsletterSavedInterests = 1;
} }
@@ -4920,6 +4947,11 @@ message SyncActionValue {
optional bool acknowledged = 1; optional bool acknowledged = 1;
} }
message OutContactAction {
optional string fullName = 1;
optional string firstName = 2;
}
message PaymentInfoAction { message PaymentInfoAction {
optional string cpi = 1; optional string cpi = 1;
} }
+112 -27
View File
@@ -976,30 +976,6 @@ export namespace proto {
} }
} }
interface IBotAvatarMetadata {
sentiment?: (number|null);
behaviorGraph?: (string|null);
action?: (number|null);
intensity?: (number|null);
wordCount?: (number|null);
}
class BotAvatarMetadata implements IBotAvatarMetadata {
constructor(p?: proto.IBotAvatarMetadata);
public sentiment?: (number|null);
public behaviorGraph?: (string|null);
public action?: (number|null);
public intensity?: (number|null);
public wordCount?: (number|null);
public static create(properties?: proto.IBotAvatarMetadata): proto.BotAvatarMetadata;
public static encode(m: proto.IBotAvatarMetadata, w?: $protobuf.Writer): $protobuf.Writer;
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.BotAvatarMetadata;
public static fromObject(d: { [k: string]: any }): proto.BotAvatarMetadata;
public static toObject(m: proto.BotAvatarMetadata, o?: $protobuf.IConversionOptions): { [k: string]: any };
public toJSON(): { [k: string]: any };
public static getTypeUrl(typeUrlPrefix?: string): string;
}
interface IBotCapabilityMetadata { interface IBotCapabilityMetadata {
capabilities?: (proto.BotCapabilityMetadata.BotCapabilityType[]|null); capabilities?: (proto.BotCapabilityMetadata.BotCapabilityType[]|null);
} }
@@ -1627,7 +1603,6 @@ export namespace proto {
} }
interface IBotMetadata { interface IBotMetadata {
avatarMetadata?: (proto.IBotAvatarMetadata|null);
personaId?: (string|null); personaId?: (string|null);
pluginMetadata?: (proto.IBotPluginMetadata|null); pluginMetadata?: (proto.IBotPluginMetadata|null);
suggestedPromptMetadata?: (proto.IBotSuggestedPromptMetadata|null); suggestedPromptMetadata?: (proto.IBotSuggestedPromptMetadata|null);
@@ -1670,7 +1645,6 @@ export namespace proto {
class BotMetadata implements IBotMetadata { class BotMetadata implements IBotMetadata {
constructor(p?: proto.IBotMetadata); constructor(p?: proto.IBotMetadata);
public avatarMetadata?: (proto.IBotAvatarMetadata|null);
public personaId?: (string|null); public personaId?: (string|null);
public pluginMetadata?: (proto.IBotPluginMetadata|null); public pluginMetadata?: (proto.IBotPluginMetadata|null);
public suggestedPromptMetadata?: (proto.IBotSuggestedPromptMetadata|null); public suggestedPromptMetadata?: (proto.IBotSuggestedPromptMetadata|null);
@@ -6036,6 +6010,7 @@ export namespace proto {
nativeFlowCallButtonPayload?: (string|null); nativeFlowCallButtonPayload?: (string|null);
deeplinkPayload?: (string|null); deeplinkPayload?: (string|null);
messageContextInfo?: (proto.IMessageContextInfo|null); messageContextInfo?: (proto.IMessageContextInfo|null);
callEntryPoint?: (number|null);
} }
class Call implements ICall { class Call implements ICall {
@@ -6050,6 +6025,7 @@ export namespace proto {
public nativeFlowCallButtonPayload?: (string|null); public nativeFlowCallButtonPayload?: (string|null);
public deeplinkPayload?: (string|null); public deeplinkPayload?: (string|null);
public messageContextInfo?: (proto.IMessageContextInfo|null); public messageContextInfo?: (proto.IMessageContextInfo|null);
public callEntryPoint?: (number|null);
public static create(properties?: proto.Message.ICall): proto.Message.Call; public static create(properties?: proto.Message.ICall): proto.Message.Call;
public static encode(m: proto.Message.ICall, w?: $protobuf.Writer): $protobuf.Writer; public static encode(m: proto.Message.ICall, w?: $protobuf.Writer): $protobuf.Writer;
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.Message.Call; public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.Message.Call;
@@ -6596,13 +6572,35 @@ export namespace proto {
} }
} }
interface IFullHistorySyncOnDemandConfig {
historyFromTimestamp?: (number|Long|null);
historyDurationDays?: (number|null);
}
class FullHistorySyncOnDemandConfig implements IFullHistorySyncOnDemandConfig {
constructor(p?: proto.Message.IFullHistorySyncOnDemandConfig);
public historyFromTimestamp?: (number|Long|null);
public historyDurationDays?: (number|null);
public static create(properties?: proto.Message.IFullHistorySyncOnDemandConfig): proto.Message.FullHistorySyncOnDemandConfig;
public static encode(m: proto.Message.IFullHistorySyncOnDemandConfig, w?: $protobuf.Writer): $protobuf.Writer;
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.Message.FullHistorySyncOnDemandConfig;
public static fromObject(d: { [k: string]: any }): proto.Message.FullHistorySyncOnDemandConfig;
public static toObject(m: proto.Message.FullHistorySyncOnDemandConfig, o?: $protobuf.IConversionOptions): { [k: string]: any };
public toJSON(): { [k: string]: any };
public static getTypeUrl(typeUrlPrefix?: string): string;
}
interface IFullHistorySyncOnDemandRequestMetadata { interface IFullHistorySyncOnDemandRequestMetadata {
requestId?: (string|null); requestId?: (string|null);
businessProduct?: (string|null);
opaqueClientData?: (Uint8Array|null);
} }
class FullHistorySyncOnDemandRequestMetadata implements IFullHistorySyncOnDemandRequestMetadata { class FullHistorySyncOnDemandRequestMetadata implements IFullHistorySyncOnDemandRequestMetadata {
constructor(p?: proto.Message.IFullHistorySyncOnDemandRequestMetadata); constructor(p?: proto.Message.IFullHistorySyncOnDemandRequestMetadata);
public requestId?: (string|null); public requestId?: (string|null);
public businessProduct?: (string|null);
public opaqueClientData?: (Uint8Array|null);
public static create(properties?: proto.Message.IFullHistorySyncOnDemandRequestMetadata): proto.Message.FullHistorySyncOnDemandRequestMetadata; public static create(properties?: proto.Message.IFullHistorySyncOnDemandRequestMetadata): proto.Message.FullHistorySyncOnDemandRequestMetadata;
public static encode(m: proto.Message.IFullHistorySyncOnDemandRequestMetadata, w?: $protobuf.Writer): $protobuf.Writer; public static encode(m: proto.Message.IFullHistorySyncOnDemandRequestMetadata, w?: $protobuf.Writer): $protobuf.Writer;
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.Message.FullHistorySyncOnDemandRequestMetadata; public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.Message.FullHistorySyncOnDemandRequestMetadata;
@@ -8083,12 +8081,14 @@ export namespace proto {
interface IFullHistorySyncOnDemandRequest { interface IFullHistorySyncOnDemandRequest {
requestMetadata?: (proto.Message.IFullHistorySyncOnDemandRequestMetadata|null); requestMetadata?: (proto.Message.IFullHistorySyncOnDemandRequestMetadata|null);
historySyncConfig?: (proto.DeviceProps.IHistorySyncConfig|null); historySyncConfig?: (proto.DeviceProps.IHistorySyncConfig|null);
fullHistorySyncOnDemandConfig?: (proto.Message.IFullHistorySyncOnDemandConfig|null);
} }
class FullHistorySyncOnDemandRequest implements IFullHistorySyncOnDemandRequest { class FullHistorySyncOnDemandRequest implements IFullHistorySyncOnDemandRequest {
constructor(p?: proto.Message.PeerDataOperationRequestMessage.IFullHistorySyncOnDemandRequest); constructor(p?: proto.Message.PeerDataOperationRequestMessage.IFullHistorySyncOnDemandRequest);
public requestMetadata?: (proto.Message.IFullHistorySyncOnDemandRequestMetadata|null); public requestMetadata?: (proto.Message.IFullHistorySyncOnDemandRequestMetadata|null);
public historySyncConfig?: (proto.DeviceProps.IHistorySyncConfig|null); public historySyncConfig?: (proto.DeviceProps.IHistorySyncConfig|null);
public fullHistorySyncOnDemandConfig?: (proto.Message.IFullHistorySyncOnDemandConfig|null);
public static create(properties?: proto.Message.PeerDataOperationRequestMessage.IFullHistorySyncOnDemandRequest): proto.Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest; public static create(properties?: proto.Message.PeerDataOperationRequestMessage.IFullHistorySyncOnDemandRequest): proto.Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest;
public static encode(m: proto.Message.PeerDataOperationRequestMessage.IFullHistorySyncOnDemandRequest, w?: $protobuf.Writer): $protobuf.Writer; public static encode(m: proto.Message.PeerDataOperationRequestMessage.IFullHistorySyncOnDemandRequest, w?: $protobuf.Writer): $protobuf.Writer;
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest; public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest;
@@ -8102,6 +8102,8 @@ export namespace proto {
type?: (proto.Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType|null); type?: (proto.Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType|null);
flowId?: (string|null); flowId?: (string|null);
stanzaId?: (string|null); stanzaId?: (string|null);
galaxyFlowDownloadRequestId?: (string|null);
agmId?: (string|null);
} }
class GalaxyFlowAction implements IGalaxyFlowAction { class GalaxyFlowAction implements IGalaxyFlowAction {
@@ -8109,6 +8111,8 @@ export namespace proto {
public type?: (proto.Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType|null); public type?: (proto.Message.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType|null);
public flowId?: (string|null); public flowId?: (string|null);
public stanzaId?: (string|null); public stanzaId?: (string|null);
public galaxyFlowDownloadRequestId?: (string|null);
public agmId?: (string|null);
public static create(properties?: proto.Message.PeerDataOperationRequestMessage.IGalaxyFlowAction): proto.Message.PeerDataOperationRequestMessage.GalaxyFlowAction; public static create(properties?: proto.Message.PeerDataOperationRequestMessage.IGalaxyFlowAction): proto.Message.PeerDataOperationRequestMessage.GalaxyFlowAction;
public static encode(m: proto.Message.PeerDataOperationRequestMessage.IGalaxyFlowAction, w?: $protobuf.Writer): $protobuf.Writer; public static encode(m: proto.Message.PeerDataOperationRequestMessage.IGalaxyFlowAction, w?: $protobuf.Writer): $protobuf.Writer;
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.Message.PeerDataOperationRequestMessage.GalaxyFlowAction; public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.Message.PeerDataOperationRequestMessage.GalaxyFlowAction;
@@ -8121,7 +8125,8 @@ export namespace proto {
namespace GalaxyFlowAction { namespace GalaxyFlowAction {
enum GalaxyFlowActionType { enum GalaxyFlowActionType {
NOTIFY_LAUNCH = 1 NOTIFY_LAUNCH = 1,
DOWNLOAD_RESPONSES = 2
} }
} }
@@ -8275,6 +8280,7 @@ export namespace proto {
syncdSnapshotFatalRecoveryResponse?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ISyncDSnapshotFatalRecoveryResponse|null); syncdSnapshotFatalRecoveryResponse?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ISyncDSnapshotFatalRecoveryResponse|null);
companionCanonicalUserNonceFetchRequestResponse?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ICompanionCanonicalUserNonceFetchResponse|null); companionCanonicalUserNonceFetchRequestResponse?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ICompanionCanonicalUserNonceFetchResponse|null);
historySyncChunkRetryResponse?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.IHistorySyncChunkRetryResponse|null); historySyncChunkRetryResponse?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.IHistorySyncChunkRetryResponse|null);
flowResponsesCsvBundle?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.IFlowResponsesCsvBundle|null);
} }
class PeerDataOperationResult implements IPeerDataOperationResult { class PeerDataOperationResult implements IPeerDataOperationResult {
@@ -8289,6 +8295,7 @@ export namespace proto {
public syncdSnapshotFatalRecoveryResponse?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ISyncDSnapshotFatalRecoveryResponse|null); public syncdSnapshotFatalRecoveryResponse?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ISyncDSnapshotFatalRecoveryResponse|null);
public companionCanonicalUserNonceFetchRequestResponse?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ICompanionCanonicalUserNonceFetchResponse|null); public companionCanonicalUserNonceFetchRequestResponse?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ICompanionCanonicalUserNonceFetchResponse|null);
public historySyncChunkRetryResponse?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.IHistorySyncChunkRetryResponse|null); public historySyncChunkRetryResponse?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.IHistorySyncChunkRetryResponse|null);
public flowResponsesCsvBundle?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.IFlowResponsesCsvBundle|null);
public static create(properties?: proto.Message.PeerDataOperationRequestResponseMessage.IPeerDataOperationResult): proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult; public static create(properties?: proto.Message.PeerDataOperationRequestResponseMessage.IPeerDataOperationResult): proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult;
public static encode(m: proto.Message.PeerDataOperationRequestResponseMessage.IPeerDataOperationResult, w?: $protobuf.Writer): $protobuf.Writer; public static encode(m: proto.Message.PeerDataOperationRequestResponseMessage.IPeerDataOperationResult, w?: $protobuf.Writer): $protobuf.Writer;
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult; public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult;
@@ -8336,6 +8343,40 @@ export namespace proto {
public static getTypeUrl(typeUrlPrefix?: string): string; public static getTypeUrl(typeUrlPrefix?: string): string;
} }
interface IFlowResponsesCsvBundle {
flowId?: (string|null);
galaxyFlowDownloadRequestId?: (string|null);
fileName?: (string|null);
mimetype?: (string|null);
fileSha256?: (Uint8Array|null);
mediaKey?: (Uint8Array|null);
fileEncSha256?: (Uint8Array|null);
directPath?: (string|null);
mediaKeyTimestamp?: (number|Long|null);
fileLength?: (number|Long|null);
}
class FlowResponsesCsvBundle implements IFlowResponsesCsvBundle {
constructor(p?: proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.IFlowResponsesCsvBundle);
public flowId?: (string|null);
public galaxyFlowDownloadRequestId?: (string|null);
public fileName?: (string|null);
public mimetype?: (string|null);
public fileSha256?: (Uint8Array|null);
public mediaKey?: (Uint8Array|null);
public fileEncSha256?: (Uint8Array|null);
public directPath?: (string|null);
public mediaKeyTimestamp?: (number|Long|null);
public fileLength?: (number|Long|null);
public static create(properties?: proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.IFlowResponsesCsvBundle): proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FlowResponsesCsvBundle;
public static encode(m: proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.IFlowResponsesCsvBundle, w?: $protobuf.Writer): $protobuf.Writer;
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FlowResponsesCsvBundle;
public static fromObject(d: { [k: string]: any }): proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FlowResponsesCsvBundle;
public static toObject(m: proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FlowResponsesCsvBundle, o?: $protobuf.IConversionOptions): { [k: string]: any };
public toJSON(): { [k: string]: any };
public static getTypeUrl(typeUrlPrefix?: string): string;
}
interface IFullHistorySyncOnDemandRequestResponse { interface IFullHistorySyncOnDemandRequestResponse {
requestMetadata?: (proto.Message.IFullHistorySyncOnDemandRequestMetadata|null); requestMetadata?: (proto.Message.IFullHistorySyncOnDemandRequestMetadata|null);
responseCode?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode|null); responseCode?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode|null);
@@ -8895,6 +8936,7 @@ export namespace proto {
aiQueryFanout?: (proto.IAIQueryFanout|null); aiQueryFanout?: (proto.IAIQueryFanout|null);
memberLabel?: (proto.IMemberLabel|null); memberLabel?: (proto.IMemberLabel|null);
aiMediaCollectionMessage?: (proto.IAIMediaCollectionMessage|null); aiMediaCollectionMessage?: (proto.IAIMediaCollectionMessage|null);
afterReadDurationMs?: (number|null);
} }
class ProtocolMessage implements IProtocolMessage { class ProtocolMessage implements IProtocolMessage {
@@ -8924,6 +8966,7 @@ export namespace proto {
public aiQueryFanout?: (proto.IAIQueryFanout|null); public aiQueryFanout?: (proto.IAIQueryFanout|null);
public memberLabel?: (proto.IMemberLabel|null); public memberLabel?: (proto.IMemberLabel|null);
public aiMediaCollectionMessage?: (proto.IAIMediaCollectionMessage|null); public aiMediaCollectionMessage?: (proto.IAIMediaCollectionMessage|null);
public afterReadDurationMs?: (number|null);
public static create(properties?: proto.Message.IProtocolMessage): proto.Message.ProtocolMessage; public static create(properties?: proto.Message.IProtocolMessage): proto.Message.ProtocolMessage;
public static encode(m: proto.Message.IProtocolMessage, w?: $protobuf.Writer): $protobuf.Writer; public static encode(m: proto.Message.IProtocolMessage, w?: $protobuf.Writer): $protobuf.Writer;
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.Message.ProtocolMessage; public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.Message.ProtocolMessage;
@@ -10233,6 +10276,8 @@ export namespace proto {
AI_THREAD_RENAME_ACTION = 76, AI_THREAD_RENAME_ACTION = 76,
INTERACTIVE_MESSAGE_ACTION = 77, INTERACTIVE_MESSAGE_ACTION = 77,
SETTINGS_SYNC_ACTION = 78, SETTINGS_SYNC_ACTION = 78,
OUT_CONTACT_ACTION = 79,
NCT_SALT_SYNC_ACTION = 80,
SHARE_OWN_PN = 10001, SHARE_OWN_PN = 10001,
BUSINESS_BROADCAST_ACTION = 10002, BUSINESS_BROADCAST_ACTION = 10002,
AI_THREAD_DELETE_ACTION = 10003 AI_THREAD_DELETE_ACTION = 10003
@@ -11821,6 +11866,8 @@ export namespace proto {
aiThreadRenameAction?: (proto.SyncActionValue.IAiThreadRenameAction|null); aiThreadRenameAction?: (proto.SyncActionValue.IAiThreadRenameAction|null);
interactiveMessageAction?: (proto.SyncActionValue.IInteractiveMessageAction|null); interactiveMessageAction?: (proto.SyncActionValue.IInteractiveMessageAction|null);
settingsSyncAction?: (proto.SyncActionValue.ISettingsSyncAction|null); settingsSyncAction?: (proto.SyncActionValue.ISettingsSyncAction|null);
outContactAction?: (proto.SyncActionValue.IOutContactAction|null);
nctSaltSyncAction?: (proto.SyncActionValue.INctSaltSyncAction|null);
} }
class SyncActionValue implements ISyncActionValue { class SyncActionValue implements ISyncActionValue {
@@ -11894,6 +11941,8 @@ export namespace proto {
public aiThreadRenameAction?: (proto.SyncActionValue.IAiThreadRenameAction|null); public aiThreadRenameAction?: (proto.SyncActionValue.IAiThreadRenameAction|null);
public interactiveMessageAction?: (proto.SyncActionValue.IInteractiveMessageAction|null); public interactiveMessageAction?: (proto.SyncActionValue.IInteractiveMessageAction|null);
public settingsSyncAction?: (proto.SyncActionValue.ISettingsSyncAction|null); public settingsSyncAction?: (proto.SyncActionValue.ISettingsSyncAction|null);
public outContactAction?: (proto.SyncActionValue.IOutContactAction|null);
public nctSaltSyncAction?: (proto.SyncActionValue.INctSaltSyncAction|null);
public static create(properties?: proto.ISyncActionValue): proto.SyncActionValue; public static create(properties?: proto.ISyncActionValue): proto.SyncActionValue;
public static encode(m: proto.ISyncActionValue, w?: $protobuf.Writer): $protobuf.Writer; public static encode(m: proto.ISyncActionValue, w?: $protobuf.Writer): $protobuf.Writer;
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.SyncActionValue; public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.SyncActionValue;
@@ -12357,11 +12406,13 @@ export namespace proto {
interface IInteractiveMessageAction { interface IInteractiveMessageAction {
type?: (proto.SyncActionValue.InteractiveMessageAction.InteractiveMessageActionMode|null); type?: (proto.SyncActionValue.InteractiveMessageAction.InteractiveMessageActionMode|null);
agmId?: (string|null);
} }
class InteractiveMessageAction implements IInteractiveMessageAction { class InteractiveMessageAction implements IInteractiveMessageAction {
constructor(p?: proto.SyncActionValue.IInteractiveMessageAction); constructor(p?: proto.SyncActionValue.IInteractiveMessageAction);
public type?: (proto.SyncActionValue.InteractiveMessageAction.InteractiveMessageActionMode|null); public type?: (proto.SyncActionValue.InteractiveMessageAction.InteractiveMessageActionMode|null);
public agmId?: (string|null);
public static create(properties?: proto.SyncActionValue.IInteractiveMessageAction): proto.SyncActionValue.InteractiveMessageAction; public static create(properties?: proto.SyncActionValue.IInteractiveMessageAction): proto.SyncActionValue.InteractiveMessageAction;
public static encode(m: proto.SyncActionValue.IInteractiveMessageAction, w?: $protobuf.Writer): $protobuf.Writer; public static encode(m: proto.SyncActionValue.IInteractiveMessageAction, w?: $protobuf.Writer): $protobuf.Writer;
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.SyncActionValue.InteractiveMessageAction; public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.SyncActionValue.InteractiveMessageAction;
@@ -12690,6 +12741,22 @@ export namespace proto {
public static getTypeUrl(typeUrlPrefix?: string): string; public static getTypeUrl(typeUrlPrefix?: string): string;
} }
interface INctSaltSyncAction {
salt?: (Uint8Array|null);
}
class NctSaltSyncAction implements INctSaltSyncAction {
constructor(p?: proto.SyncActionValue.INctSaltSyncAction);
public salt?: (Uint8Array|null);
public static create(properties?: proto.SyncActionValue.INctSaltSyncAction): proto.SyncActionValue.NctSaltSyncAction;
public static encode(m: proto.SyncActionValue.INctSaltSyncAction, w?: $protobuf.Writer): $protobuf.Writer;
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.SyncActionValue.NctSaltSyncAction;
public static fromObject(d: { [k: string]: any }): proto.SyncActionValue.NctSaltSyncAction;
public static toObject(m: proto.SyncActionValue.NctSaltSyncAction, o?: $protobuf.IConversionOptions): { [k: string]: any };
public toJSON(): { [k: string]: any };
public static getTypeUrl(typeUrlPrefix?: string): string;
}
interface INewsletterSavedInterestsAction { interface INewsletterSavedInterestsAction {
newsletterSavedInterests?: (string|null); newsletterSavedInterests?: (string|null);
} }
@@ -12780,6 +12847,24 @@ export namespace proto {
public static getTypeUrl(typeUrlPrefix?: string): string; public static getTypeUrl(typeUrlPrefix?: string): string;
} }
interface IOutContactAction {
fullName?: (string|null);
firstName?: (string|null);
}
class OutContactAction implements IOutContactAction {
constructor(p?: proto.SyncActionValue.IOutContactAction);
public fullName?: (string|null);
public firstName?: (string|null);
public static create(properties?: proto.SyncActionValue.IOutContactAction): proto.SyncActionValue.OutContactAction;
public static encode(m: proto.SyncActionValue.IOutContactAction, w?: $protobuf.Writer): $protobuf.Writer;
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): proto.SyncActionValue.OutContactAction;
public static fromObject(d: { [k: string]: any }): proto.SyncActionValue.OutContactAction;
public static toObject(m: proto.SyncActionValue.OutContactAction, o?: $protobuf.IConversionOptions): { [k: string]: any };
public toJSON(): { [k: string]: any };
public static getTypeUrl(typeUrlPrefix?: string): string;
}
interface IPaymentInfoAction { interface IPaymentInfoAction {
cpi?: (string|null); cpi?: (string|null);
} }
+874 -195
View File
File diff suppressed because it is too large Load Diff
+31 -67
View File
@@ -11,14 +11,14 @@
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@cacheable/node-cache": "^1.4.0", "@cacheable/node-cache": "^1.4.0",
"@hapi/boom": "^9.1.3", "@hapi/boom": "^10.0.1",
"async-mutex": "^0.5.0", "async-mutex": "^0.5.0",
"fflate": "^0.8.2", "fflate": "^0.8.2",
"libsignal": "git+https://github.com/whiskeysockets/libsignal-node", "libsignal": "github:whiskeysockets/libsignal-node",
"lru-cache": "^11.1.0", "lru-cache": "^11.1.0",
"music-metadata": "^11.7.0", "music-metadata": "^11.7.0",
"p-queue": "^9.0.0", "p-queue": "^9.0.0",
"pino": "^9.6", "pino": "^10.3.1",
"prom-client": "^15.1.3", "prom-client": "^15.1.3",
"protobufjs": "^7.2.4", "protobufjs": "^7.2.4",
"whatsapp-rust-bridge": "0.5.2", "whatsapp-rust-bridge": "0.5.2",
@@ -43,7 +43,7 @@
"jimp": "^1.6.0", "jimp": "^1.6.0",
"jiti": "^2.4.2", "jiti": "^2.4.2",
"json": "^11.0.0", "json": "^11.0.0",
"link-preview-js": "^3.0.0", "link-preview-js": "^4.0.0",
"lru-cache": "^11.1.0", "lru-cache": "^11.1.0",
"open": "^8.4.2", "open": "^8.4.2",
"pino-pretty": "^13.1.1", "pino-pretty": "^13.1.1",
@@ -61,9 +61,9 @@
"node": ">=20.0.0" "node": ">=20.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"audio-decode": "^2.1.3", "audio-decode": "^2.2.3",
"jimp": "^1.6.0", "jimp": "^1.6.0",
"link-preview-js": "^3.0.0", "link-preview-js": "^4.0.0",
"sharp": "*" "sharp": "*"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
@@ -1296,18 +1296,18 @@
} }
}, },
"node_modules/@hapi/boom": { "node_modules/@hapi/boom": {
"version": "9.1.4", "version": "10.0.1",
"resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-10.0.1.tgz",
"integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", "integrity": "sha512-ERcCZaEjdH3OgSJlyjVk8pHIFeus91CjKP3v+MpgBNp5IvGzP2l/bRiD78nqYcKPaZdbKkK5vDBVPd2ohHBlsA==",
"license": "BSD-3-Clause", "license": "BSD-3-Clause",
"dependencies": { "dependencies": {
"@hapi/hoek": "9.x.x" "@hapi/hoek": "^11.0.2"
} }
}, },
"node_modules/@hapi/hoek": { "node_modules/@hapi/hoek": {
"version": "9.3.0", "version": "11.0.7",
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-11.0.7.tgz",
"integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", "integrity": "sha512-HV5undWkKzcB4RZUusqOpcgxOaq6VOAH7zhhIr2g3G8NF/MlFO75SjOr2NfuSx0Mh40+1FqCkagKLJRykUWoFQ==",
"license": "BSD-3-Clause" "license": "BSD-3-Clause"
}, },
"node_modules/@humanfs/core": { "node_modules/@humanfs/core": {
@@ -10222,14 +10222,13 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/link-preview-js": { "node_modules/link-preview-js": {
"version": "3.2.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/link-preview-js/-/link-preview-js-3.2.0.tgz", "resolved": "https://registry.npmjs.org/link-preview-js/-/link-preview-js-4.0.0.tgz",
"integrity": "sha512-FvrLltjOPGbTzt+RugbzM7g8XuUNLPO2U/INSLczrYdAA32E7nZVUrVL1gr61DGOArGJA2QkPGMEvNMLLsXREA==", "integrity": "sha512-KYYiMVOAguIFNdoVGVjd+6cgknv5XHbr1IuRdj3T5EkN7JNaqUh4a1NSCi5FX6zyZzILI55OQA6+YxBAcPY2wA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"cheerio": "1.0.0-rc.11", "cheerio": "1.0.0-rc.11"
"url": "0.11.0"
}, },
"engines": { "engines": {
"node": ">=18" "node": ">=18"
@@ -11546,31 +11545,31 @@
} }
}, },
"node_modules/pino": { "node_modules/pino": {
"version": "9.14.0", "version": "10.3.1",
"resolved": "https://registry.npmjs.org/pino/-/pino-9.14.0.tgz", "resolved": "https://registry.npmjs.org/pino/-/pino-10.3.1.tgz",
"integrity": "sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==", "integrity": "sha512-r34yH/GlQpKZbU1BvFFqOjhISRo1MNx1tWYsYvmj6KIRHSPMT2+yHOEb1SG6NMvRoHRF0a07kCOox/9yakl1vg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@pinojs/redact": "^0.4.0", "@pinojs/redact": "^0.4.0",
"atomic-sleep": "^1.0.0", "atomic-sleep": "^1.0.0",
"on-exit-leak-free": "^2.1.0", "on-exit-leak-free": "^2.1.0",
"pino-abstract-transport": "^2.0.0", "pino-abstract-transport": "^3.0.0",
"pino-std-serializers": "^7.0.0", "pino-std-serializers": "^7.0.0",
"process-warning": "^5.0.0", "process-warning": "^5.0.0",
"quick-format-unescaped": "^4.0.3", "quick-format-unescaped": "^4.0.3",
"real-require": "^0.2.0", "real-require": "^0.2.0",
"safe-stable-stringify": "^2.3.1", "safe-stable-stringify": "^2.3.1",
"sonic-boom": "^4.0.1", "sonic-boom": "^4.0.1",
"thread-stream": "^3.0.0" "thread-stream": "^4.0.0"
}, },
"bin": { "bin": {
"pino": "bin.js" "pino": "bin.js"
} }
}, },
"node_modules/pino-abstract-transport": { "node_modules/pino-abstract-transport": {
"version": "2.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-3.0.0.tgz",
"integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", "integrity": "sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"split2": "^4.0.0" "split2": "^4.0.0"
@@ -11601,16 +11600,6 @@
"pino-pretty": "bin.js" "pino-pretty": "bin.js"
} }
}, },
"node_modules/pino-pretty/node_modules/pino-abstract-transport": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-3.0.0.tgz",
"integrity": "sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==",
"dev": true,
"license": "MIT",
"dependencies": {
"split2": "^4.0.0"
}
},
"node_modules/pino-pretty/node_modules/strip-json-comments": { "node_modules/pino-pretty/node_modules/strip-json-comments": {
"version": "5.0.3", "version": "5.0.3",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.3.tgz", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.3.tgz",
@@ -12121,16 +12110,6 @@
"node": ">=20" "node": ">=20"
} }
}, },
"node_modules/querystring": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
"integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==",
"deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.",
"dev": true,
"engines": {
"node": ">=0.4.x"
}
},
"node_modules/queue-microtask": { "node_modules/queue-microtask": {
"version": "1.2.3", "version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -13735,12 +13714,15 @@
} }
}, },
"node_modules/thread-stream": { "node_modules/thread-stream": {
"version": "3.1.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-4.0.0.tgz",
"integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", "integrity": "sha512-4iMVL6HAINXWf1ZKZjIPcz5wYaOdPhtO8ATvZ+Xqp3BTdaqtAwQkNmKORqcIo5YkQqGXq5cwfswDwMqqQNrpJA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"real-require": "^0.2.0" "real-require": "^0.2.0"
},
"engines": {
"node": ">=20"
} }
}, },
"node_modules/through": { "node_modules/through": {
@@ -14434,17 +14416,6 @@
"punycode": "^2.1.0" "punycode": "^2.1.0"
} }
}, },
"node_modules/url": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
"integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"punycode": "1.3.2",
"querystring": "0.2.0"
}
},
"node_modules/url-join": { "node_modules/url-join": {
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz",
@@ -14455,13 +14426,6 @@
"node": "^12.20.0 || ^14.13.1 || >=16.0.0" "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
} }
}, },
"node_modules/url/node_modules/punycode": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
"integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==",
"dev": true,
"license": "MIT"
},
"node_modules/utif2": { "node_modules/utif2": {
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/utif2/-/utif2-4.1.0.tgz", "resolved": "https://registry.npmjs.org/utif2/-/utif2-4.1.0.tgz",
+15 -9
View File
@@ -41,15 +41,18 @@
"update:version": "tsx ./scripts/update-version.ts" "update:version": "tsx ./scripts/update-version.ts"
}, },
"dependencies": { "dependencies": {
"@cacheable/node-cache": "^1.4.0", "@cacheable/node-cache": "^2.0.1",
"@hapi/boom": "^9.1.3", "@hapi/boom": "^10.0.1",
"async-mutex": "^0.5.0", "async-mutex": "^0.5.0",
"fflate": "^0.8.2", "fflate": "^0.8.2",
"libsignal": "github:whiskeysockets/libsignal-node", "libsignal": "github:whiskeysockets/libsignal-node",
"lru-cache": "^11.2.6", "lru-cache": "^11.2.6",
"music-metadata": "^11.12.0", "music-metadata": "^11.12.0",
"libsignal": "https://github.com/whiskeysockets/libsignal-node.git",
"lru-cache": "^11.1.0",
"music-metadata": "^11.7.0",
"p-queue": "^9.0.0", "p-queue": "^9.0.0",
"pino": "^9.6", "pino": "^10.3.1",
"prom-client": "^15.1.3", "prom-client": "^15.1.3",
"protobufjs": "^7.2.4", "protobufjs": "^7.2.4",
"whatsapp-rust-bridge": "0.5.2", "whatsapp-rust-bridge": "0.5.2",
@@ -59,7 +62,7 @@
"@eslint/eslintrc": "^3.3.1", "@eslint/eslintrc": "^3.3.1",
"@eslint/js": "^9.31.0", "@eslint/js": "^9.31.0",
"@types/jest": "^30.0.0", "@types/jest": "^30.0.0",
"@types/node": "^20.9.0", "@types/node": "^20.19.33",
"@types/ws": "^8.0.0", "@types/ws": "^8.0.0",
"@typescript-eslint/eslint-plugin": "^8.55.0", "@typescript-eslint/eslint-plugin": "^8.55.0",
"@typescript-eslint/parser": "^8.55.0", "@typescript-eslint/parser": "^8.55.0",
@@ -77,21 +80,24 @@
"link-preview-js": "^3.0.0", "link-preview-js": "^3.0.0",
"lru-cache": "^11.2.6", "lru-cache": "^11.2.6",
"open": "^8.4.2", "open": "^8.4.2",
"link-preview-js": "^4.0.0",
"lru-cache": "^11.1.0",
"open": "^11.0.0",
"pino-pretty": "^13.1.1", "pino-pretty": "^13.1.1",
"prettier": "^3.8.1", "prettier": "^3.8.1",
"protobufjs-cli": "^1.1.3", "protobufjs-cli": "^1.1.3",
"release-it": "^15.10.3", "release-it": "^19.2.4",
"ts-jest": "^29.4.0", "ts-jest": "^29.4.0",
"tsc-esm-fix": "^3.1.2", "tsc-esm-fix": "^3.1.2",
"tsx": "^4.20.3", "tsx": "^4.20.3",
"typedoc": "^0.27.9", "typedoc": "^0.28.17",
"typedoc-plugin-markdown": "4.4.2", "typedoc-plugin-markdown": "^4.10.0",
"typescript": "^5.8.2" "typescript": "^5.8.2"
}, },
"peerDependencies": { "peerDependencies": {
"audio-decode": "^2.1.3", "audio-decode": "^2.2.3",
"jimp": "^1.6.0", "jimp": "^1.6.0",
"link-preview-js": "^3.0.0", "link-preview-js": "^4.0.0",
"sharp": "*" "sharp": "*"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
+6 -1
View File
@@ -499,7 +499,12 @@ async function findAppModules() {
const decodedProto = Object.keys(decodedProtoMap).sort(); const decodedProto = Object.keys(decodedProtoMap).sort();
const sortedStr = decodedProto.map((d) => decodedProtoMap[d]).join('\n'); const sortedStr = decodedProto.map((d) => decodedProtoMap[d]).join('\n');
const decodedProtoStr = `syntax = "proto3";\npackage proto;\n\n/// WhatsApp Version: ${whatsAppVersion}\n\n${sortedStr}`; let decodedProtoStr = `syntax = "proto3";\npackage proto;\n\n/// WhatsApp Version: ${whatsAppVersion}\n\n${sortedStr}`;
// Fix: proto3 doesn't support 'required' keyword (only proto2 does)
// Convert all 'required' fields to 'optional' for proto3 compatibility
decodedProtoStr = decodedProtoStr.replace(/(\n\s+)required /g, '$1optional ');
const destinationPath = '../WAProto/WAProto.proto'; const destinationPath = '../WAProto/WAProto.proto';
await fs.writeFile(destinationPath, decodedProtoStr); await fs.writeFile(destinationPath, decodedProtoStr);
+1 -3
View File
@@ -1,3 +1 @@
{ {"version":[2,3000,1033479614]}
"version": [2, 3000, 1033381705]
}
+21 -12
View File
@@ -271,24 +271,33 @@ describe('SessionCleanup', () => {
} }
it('should handle exactly 24h for LID orphan (boundary)', async () => { it('should handle exactly 24h for LID orphan (boundary)', async () => {
const now = Date.now() const fixedNow = 1700000000000 // Fixed timestamp to avoid race conditions
const lastActivity = now - 24 * HOUR_MS // Exactly 24h const lastActivity = fixedNow - 24 * HOUR_MS // Exactly 24h
// @ts-ignore // Mock Date.now() to return consistent value
mockKeys.get.mockResolvedValue({ const originalDateNow = Date.now
'123456789_2.0': Buffer.from('session-data') Date.now = jest.fn(() => fixedNow)
})
mockLidMapping.getPNForLID.mockResolvedValue(null) try {
// @ts-ignore
mockKeys.get.mockResolvedValue({
'123456789_2.0': Buffer.from('session-data')
})
mockActivityTracker.getAllActivities.mockResolvedValue(new Map([['123456789@lid', lastActivity]])) mockLidMapping.getPNForLID.mockResolvedValue(null)
const cleanup = makeSessionCleanup(mockKeys, mockLidMapping as any, mockActivityTracker as any, logger, config) mockActivityTracker.getAllActivities.mockResolvedValue(new Map([['123456789@lid', lastActivity]]))
const stats = await cleanup.runCleanup() const cleanup = makeSessionCleanup(mockKeys, mockLidMapping as any, mockActivityTracker as any, logger, config)
// Exactly 24h should NOT delete (> threshold, not >=) const stats = await cleanup.runCleanup()
expect(stats.lidOrphansDeleted).toBe(0)
// Exactly 24h should NOT delete (> threshold, not >=)
expect(stats.lidOrphansDeleted).toBe(0)
} finally {
// Restore original Date.now
Date.now = originalDateNow
}
}) })
it('should handle empty session list', async () => { it('should handle empty session list', async () => {
+1052 -2661
View File
File diff suppressed because it is too large Load Diff