style: auto-fix lint errors and formatting issues

Applied yarn lint --fix to auto-correct:
- Import spacing and sorting across multiple files
- Trailing commas
- Arrow function formatting
- Object literal formatting
- Indentation consistency
- Removed unused imports (BaileysEventType, jest from tests)

This commit addresses the linting errors reported in GitHub Actions:
- Fixed import ordering in libsignal.ts
- Fixed trailing commas in Defaults/index.ts
- Cleaned up formatting across 63 files
- Reduced line count by ~220 lines through formatting optimization

Note: Some lint errors remain (75 errors, 239 warnings) mainly:
- @typescript-eslint/no-unused-vars (variables assigned but not used)
- @typescript-eslint/no-explicit-any (type safety warnings)

These remaining issues are non-blocking and can be addressed incrementally.

https://claude.ai/code/session_015R3U3kiprQiNTTNNt31Sg6
This commit is contained in:
Claude
2026-02-13 21:59:35 +00:00
parent ce98b240ca
commit 4b02652369
63 changed files with 1677 additions and 1897 deletions
+23 -21
View File
@@ -70,7 +70,10 @@ describe('LIDMappingStore', () => {
const lidTwo = '44444:99@hosted.lid'
// @ts-ignore
mockKeys.get.mockResolvedValue({ '33333_reverse': '77777', '44444_reverse': '88888' } as SignalDataTypeMap['lid-mapping'])
mockKeys.get.mockResolvedValue({
'33333_reverse': '77777',
'44444_reverse': '88888'
} as SignalDataTypeMap['lid-mapping'])
const result = await lidMappingStore.getPNsForLIDs([lidOne, lidTwo])
@@ -96,7 +99,9 @@ describe('LIDMappingStore', () => {
mockKeys.get.mockResolvedValue({ '12345': lidUser } as SignalDataTypeMap['lid-mapping'])
// Make 10 concurrent calls for the same PN
const promises = Array(10).fill(null).map(() => lidMappingStore.getLIDForPN(pn))
const promises = Array(10)
.fill(null)
.map(() => lidMappingStore.getLIDForPN(pn))
// All should resolve to same result
const results = await Promise.all(promises)
@@ -115,7 +120,9 @@ describe('LIDMappingStore', () => {
mockKeys.get.mockResolvedValue({ '54321_reverse': pnUser } as SignalDataTypeMap['lid-mapping'])
// Make 10 concurrent calls for the same LID
const promises = Array(10).fill(null).map(() => lidMappingStore.getPNForLID(lid))
const promises = Array(10)
.fill(null)
.map(() => lidMappingStore.getPNForLID(lid))
// All should resolve to same result
const results = await Promise.all(promises)
@@ -133,10 +140,7 @@ describe('LIDMappingStore', () => {
mockKeys.get.mockResolvedValue({ '11111': 'aaaaa', '22222': 'bbbbb' } as SignalDataTypeMap['lid-mapping'])
// Concurrent calls for DIFFERENT PNs
const [result1, result2] = await Promise.all([
lidMappingStore.getLIDForPN(pn1),
lidMappingStore.getLIDForPN(pn2)
])
const [result1, result2] = await Promise.all([lidMappingStore.getLIDForPN(pn1), lidMappingStore.getLIDForPN(pn2)])
expect(result1).toBe('aaaaa@lid')
expect(result2).toBe('bbbbb@lid')
@@ -155,14 +159,15 @@ describe('LIDMappingStore', () => {
lidMappingStore.destroy()
// All operations should throw after destroy
await expect(lidMappingStore.getLIDForPN('12345@s.whatsapp.net'))
.rejects.toThrow('LIDMappingStore has been destroyed')
await expect(lidMappingStore.getLIDForPN('12345@s.whatsapp.net')).rejects.toThrow(
'LIDMappingStore has been destroyed'
)
await expect(lidMappingStore.getPNForLID('54321@lid'))
.rejects.toThrow('LIDMappingStore has been destroyed')
await expect(lidMappingStore.getPNForLID('54321@lid')).rejects.toThrow('LIDMappingStore has been destroyed')
await expect(lidMappingStore.storeLIDPNMappings([{ lid: 'a@lid', pn: 'b@s.whatsapp.net' }]))
.rejects.toThrow('LIDMappingStore has been destroyed')
await expect(lidMappingStore.storeLIDPNMappings([{ lid: 'a@lid', pn: 'b@s.whatsapp.net' }])).rejects.toThrow(
'LIDMappingStore has been destroyed'
)
})
it('should allow destroy() to be called multiple times safely', () => {
@@ -208,8 +213,7 @@ describe('LIDMappingStore', () => {
expect(operationCompleted).toBe(true)
// But new operations should be rejected
await expect(lidMappingStore.getLIDForPN(pn))
.rejects.toThrow('LIDMappingStore has been destroyed')
await expect(lidMappingStore.getLIDForPN(pn)).rejects.toThrow('LIDMappingStore has been destroyed')
})
})
@@ -286,15 +290,13 @@ describe('LIDMappingStore', () => {
mockKeys.get.mockResolvedValue({ '12345': 'aaaaa' } as SignalDataTypeMap['lid-mapping'])
const result = await lidMappingStore.getLIDsForPNs([
'12345@s.whatsapp.net', // Valid
'invalid', // Invalid
'67890@s.whatsapp.net' // Valid but not in DB
'12345@s.whatsapp.net', // Valid
'invalid', // Invalid
'67890@s.whatsapp.net' // Valid but not in DB
])
// Should only return valid results
expect(result).toEqual([
{ pn: '12345@s.whatsapp.net', lid: 'aaaaa@lid' }
])
expect(result).toEqual([{ pn: '12345@s.whatsapp.net', lid: 'aaaaa@lid' }])
})
})
})
@@ -1,7 +1,7 @@
import { jest } from '@jest/globals'
import P from 'pino'
import { makeSessionActivityTracker } from '../../Signal/session-activity-tracker'
import type { SessionActivityMetadata } from '../../Signal/session-activity-tracker'
import { makeSessionActivityTracker } from '../../Signal/session-activity-tracker'
import type { SignalKeyStoreWithTransaction } from '../../Types'
const mockKeys: jest.Mocked<SignalKeyStoreWithTransaction> = {
@@ -137,7 +137,7 @@ describe('SessionActivityTracker', () => {
const tracker = makeSessionActivityTracker(mockKeys, logger, config)
// @ts-ignore
mockKeys.get.mockRejectedValue(new Error('Disk read error'))
mockKeys.get.mockRejectedValue(new Error('Disk read error'))
const lastActivity = await tracker.getLastActivity('5511999999999@s.whatsapp.net')
expect(lastActivity).toBeUndefined()
@@ -495,10 +495,10 @@ describe('SessionActivityTracker', () => {
const tracker = makeSessionActivityTracker(mockKeys, logger, config)
const specialJids = [
'5511999999999:1@s.whatsapp.net', // Device ID
'123456789@lid', // LID
'5511999999999:99@hosted', // Hosted device
'123456789:5@hosted.lid' // Hosted LID
'5511999999999:1@s.whatsapp.net', // Device ID
'123456789@lid', // LID
'5511999999999:99@hosted', // Hosted device
'123456789:5@hosted.lid' // Hosted LID
]
specialJids.forEach(jid => tracker.recordActivity(jid))
+36 -132
View File
@@ -1,8 +1,8 @@
import { jest } from '@jest/globals'
import P from 'pino'
import { makeSessionCleanup } from '../../Signal/session-cleanup'
import type { SessionActivityTracker } from '../../Signal/session-activity-tracker'
import type { LIDMappingStore } from '../../Signal/lid-mapping'
import type { SessionActivityTracker } from '../../Signal/session-activity-tracker'
import { makeSessionCleanup } from '../../Signal/session-cleanup'
import type { SignalKeyStoreWithTransaction } from '../../Types'
const mockKeys: jest.Mocked<SignalKeyStoreWithTransaction> = {
@@ -44,7 +44,7 @@ describe('SessionCleanup', () => {
it('should delete LID orphan after 24h of inactivity', async () => {
const now = Date.now()
const lastActivity = now - (25 * HOUR_MS) // 25 hours ago
const lastActivity = now - 25 * HOUR_MS // 25 hours ago
// Mock sessions: 1 LID orphan
// @ts-ignore
@@ -56,17 +56,9 @@ describe('SessionCleanup', () => {
mockLidMapping.getPNForLID.mockResolvedValue(null)
// Mock: Activity 25h ago
mockActivityTracker.getAllActivities.mockResolvedValue(
new Map([['123456789@lid', lastActivity]])
)
mockActivityTracker.getAllActivities.mockResolvedValue(new Map([['123456789@lid', lastActivity]]))
const cleanup = makeSessionCleanup(
mockKeys,
mockLidMapping as any,
mockActivityTracker as any,
logger,
config
)
const cleanup = makeSessionCleanup(mockKeys, mockLidMapping as any, mockActivityTracker as any, logger, config)
const stats = await cleanup.runCleanup()
@@ -79,7 +71,7 @@ describe('SessionCleanup', () => {
it('should NOT delete LID orphan before 24h', async () => {
const now = Date.now()
const lastActivity = now - (23 * HOUR_MS) // 23 hours ago
const lastActivity = now - 23 * HOUR_MS // 23 hours ago
// @ts-ignore
mockKeys.get.mockResolvedValue({
@@ -88,17 +80,9 @@ describe('SessionCleanup', () => {
mockLidMapping.getPNForLID.mockResolvedValue(null)
mockActivityTracker.getAllActivities.mockResolvedValue(
new Map([['123456789@lid', lastActivity]])
)
mockActivityTracker.getAllActivities.mockResolvedValue(new Map([['123456789@lid', lastActivity]]))
const cleanup = makeSessionCleanup(
mockKeys,
mockLidMapping as any,
mockActivityTracker as any,
logger,
config
)
const cleanup = makeSessionCleanup(mockKeys, mockLidMapping as any, mockActivityTracker as any, logger, config)
const stats = await cleanup.runCleanup()
@@ -118,13 +102,7 @@ describe('SessionCleanup', () => {
// No activity tracked
mockActivityTracker.getAllActivities.mockResolvedValue(new Map())
const cleanup = makeSessionCleanup(
mockKeys,
mockLidMapping as any,
mockActivityTracker as any,
logger,
config
)
const cleanup = makeSessionCleanup(mockKeys, mockLidMapping as any, mockActivityTracker as any, logger, config)
const stats = await cleanup.runCleanup()
@@ -134,7 +112,7 @@ describe('SessionCleanup', () => {
it('should NOT delete LID with valid PN mapping', async () => {
const now = Date.now()
const lastActivity = now - (25 * HOUR_MS)
const lastActivity = now - 25 * HOUR_MS
// @ts-ignore
mockKeys.get.mockResolvedValue({
@@ -144,17 +122,9 @@ describe('SessionCleanup', () => {
// Has PN mapping - not orphan
mockLidMapping.getPNForLID.mockResolvedValue('5511999999999@s.whatsapp.net')
mockActivityTracker.getAllActivities.mockResolvedValue(
new Map([['123456789@lid', lastActivity]])
)
mockActivityTracker.getAllActivities.mockResolvedValue(new Map([['123456789@lid', lastActivity]]))
const cleanup = makeSessionCleanup(
mockKeys,
mockLidMapping as any,
mockActivityTracker as any,
logger,
config
)
const cleanup = makeSessionCleanup(mockKeys, mockLidMapping as any, mockActivityTracker as any, logger, config)
const stats = await cleanup.runCleanup()
@@ -177,7 +147,7 @@ describe('SessionCleanup', () => {
it('should delete secondary device (Web/Desktop) after 15 days', async () => {
const now = Date.now()
const lastActivity = now - (16 * DAY_MS) // 16 days ago
const lastActivity = now - 16 * DAY_MS // 16 days ago
// Mock: Secondary device (device ID = 1)
// @ts-ignore
@@ -189,13 +159,7 @@ describe('SessionCleanup', () => {
new Map([['5511999999999:1@s.whatsapp.net', lastActivity]])
)
const cleanup = makeSessionCleanup(
mockKeys,
mockLidMapping as any,
mockActivityTracker as any,
logger,
config
)
const cleanup = makeSessionCleanup(mockKeys, mockLidMapping as any, mockActivityTracker as any, logger, config)
const stats = await cleanup.runCleanup()
@@ -205,7 +169,7 @@ describe('SessionCleanup', () => {
it('should NOT delete secondary device before 15 days', async () => {
const now = Date.now()
const lastActivity = now - (14 * DAY_MS) // 14 days ago
const lastActivity = now - 14 * DAY_MS // 14 days ago
// @ts-ignore
mockKeys.get.mockResolvedValue({
@@ -216,13 +180,7 @@ describe('SessionCleanup', () => {
new Map([['5511999999999:1@s.whatsapp.net', lastActivity]])
)
const cleanup = makeSessionCleanup(
mockKeys,
mockLidMapping as any,
mockActivityTracker as any,
logger,
config
)
const cleanup = makeSessionCleanup(mockKeys, mockLidMapping as any, mockActivityTracker as any, logger, config)
const stats = await cleanup.runCleanup()
@@ -239,13 +197,7 @@ describe('SessionCleanup', () => {
// No activity tracked - grace period
mockActivityTracker.getAllActivities.mockResolvedValue(new Map())
const cleanup = makeSessionCleanup(
mockKeys,
mockLidMapping as any,
mockActivityTracker as any,
logger,
config
)
const cleanup = makeSessionCleanup(mockKeys, mockLidMapping as any, mockActivityTracker as any, logger, config)
const stats = await cleanup.runCleanup()
@@ -268,7 +220,7 @@ describe('SessionCleanup', () => {
it('should delete primary device after 30 days', async () => {
const now = Date.now()
const lastActivity = now - (31 * DAY_MS) // 31 days ago
const lastActivity = now - 31 * DAY_MS // 31 days ago
// Mock: Primary device (device ID = 0)
// @ts-ignore
@@ -276,17 +228,9 @@ describe('SessionCleanup', () => {
'5511999999999_0.0': Buffer.from('session-data')
})
mockActivityTracker.getAllActivities.mockResolvedValue(
new Map([['5511999999999@s.whatsapp.net', lastActivity]])
)
mockActivityTracker.getAllActivities.mockResolvedValue(new Map([['5511999999999@s.whatsapp.net', lastActivity]]))
const cleanup = makeSessionCleanup(
mockKeys,
mockLidMapping as any,
mockActivityTracker as any,
logger,
config
)
const cleanup = makeSessionCleanup(mockKeys, mockLidMapping as any, mockActivityTracker as any, logger, config)
const stats = await cleanup.runCleanup()
@@ -296,24 +240,16 @@ describe('SessionCleanup', () => {
it('should NOT delete primary device before 30 days', async () => {
const now = Date.now()
const lastActivity = now - (29 * DAY_MS) // 29 days ago
const lastActivity = now - 29 * DAY_MS // 29 days ago
// @ts-ignore
mockKeys.get.mockResolvedValue({
'5511999999999_0.0': Buffer.from('session-data')
})
mockActivityTracker.getAllActivities.mockResolvedValue(
new Map([['5511999999999@s.whatsapp.net', lastActivity]])
)
mockActivityTracker.getAllActivities.mockResolvedValue(new Map([['5511999999999@s.whatsapp.net', lastActivity]]))
const cleanup = makeSessionCleanup(
mockKeys,
mockLidMapping as any,
mockActivityTracker as any,
logger,
config
)
const cleanup = makeSessionCleanup(mockKeys, mockLidMapping as any, mockActivityTracker as any, logger, config)
const stats = await cleanup.runCleanup()
@@ -336,7 +272,7 @@ describe('SessionCleanup', () => {
it('should handle exactly 24h for LID orphan (boundary)', async () => {
const now = Date.now()
const lastActivity = now - (24 * HOUR_MS) // Exactly 24h
const lastActivity = now - 24 * HOUR_MS // Exactly 24h
// @ts-ignore
mockKeys.get.mockResolvedValue({
@@ -345,17 +281,9 @@ describe('SessionCleanup', () => {
mockLidMapping.getPNForLID.mockResolvedValue(null)
mockActivityTracker.getAllActivities.mockResolvedValue(
new Map([['123456789@lid', lastActivity]])
)
mockActivityTracker.getAllActivities.mockResolvedValue(new Map([['123456789@lid', lastActivity]]))
const cleanup = makeSessionCleanup(
mockKeys,
mockLidMapping as any,
mockActivityTracker as any,
logger,
config
)
const cleanup = makeSessionCleanup(mockKeys, mockLidMapping as any, mockActivityTracker as any, logger, config)
const stats = await cleanup.runCleanup()
@@ -367,13 +295,7 @@ describe('SessionCleanup', () => {
// @ts-ignore
mockKeys.get.mockResolvedValue({})
const cleanup = makeSessionCleanup(
mockKeys,
mockLidMapping as any,
mockActivityTracker as any,
logger,
config
)
const cleanup = makeSessionCleanup(mockKeys, mockLidMapping as any, mockActivityTracker as any, logger, config)
const stats = await cleanup.runCleanup()
@@ -392,13 +314,7 @@ describe('SessionCleanup', () => {
mockLidMapping.getPNForLID.mockResolvedValue(null)
// Pass null tracker
const cleanup = makeSessionCleanup(
mockKeys,
mockLidMapping as any,
null,
logger,
config
)
const cleanup = makeSessionCleanup(mockKeys, mockLidMapping as any, null, logger, config)
const stats = await cleanup.runCleanup()
@@ -439,20 +355,14 @@ describe('SessionCleanup', () => {
mockActivityTracker.getAllActivities.mockResolvedValue(
new Map([
['123456789@lid', now - (25 * HOUR_MS)], // LID orphan: 25h ago
['5511999999999:1@s.whatsapp.net', now - (16 * DAY_MS)], // Secondary: 16 days ago
['5511888888888@s.whatsapp.net', now - (31 * DAY_MS)], // Primary: 31 days ago
['5511777777777@s.whatsapp.net', now - (5 * DAY_MS)] // Primary: 5 days ago (active)
['123456789@lid', now - 25 * HOUR_MS], // LID orphan: 25h ago
['5511999999999:1@s.whatsapp.net', now - 16 * DAY_MS], // Secondary: 16 days ago
['5511888888888@s.whatsapp.net', now - 31 * DAY_MS], // Primary: 31 days ago
['5511777777777@s.whatsapp.net', now - 5 * DAY_MS] // Primary: 5 days ago (active)
])
)
const cleanup = makeSessionCleanup(
mockKeys,
mockLidMapping as any,
mockActivityTracker as any,
logger,
config
)
const cleanup = makeSessionCleanup(mockKeys, mockLidMapping as any, mockActivityTracker as any, logger, config)
const stats = await cleanup.runCleanup()
@@ -482,13 +392,7 @@ describe('SessionCleanup', () => {
'123456789_2.0': Buffer.from('session-data')
})
const cleanup = makeSessionCleanup(
mockKeys,
mockLidMapping as any,
mockActivityTracker as any,
logger,
config
)
const cleanup = makeSessionCleanup(mockKeys, mockLidMapping as any, mockActivityTracker as any, logger, config)
const stats = await cleanup.runCleanup()
@@ -520,8 +424,8 @@ describe('SessionCleanup', () => {
mockActivityTracker.getAllActivities.mockResolvedValue(
new Map([
['123456789@lid', now - (13 * HOUR_MS)], // 13h ago
['5511999999999:1@s.whatsapp.net', now - (6 * DAY_MS)] // 6 days ago
['123456789@lid', now - 13 * HOUR_MS], // 13h ago
['5511999999999:1@s.whatsapp.net', now - 6 * DAY_MS] // 6 days ago
])
)