diff --git a/src/core/types/provider.ts b/src/core/types/provider.ts index 1eb9082b..5fd6e5d5 100644 --- a/src/core/types/provider.ts +++ b/src/core/types/provider.ts @@ -241,8 +241,6 @@ export interface ProviderRawEventInput { sourceVersion?: string | null; } -const contactFieldNameSet = new Set(CONTACT_FIELD_NAME_VALUES); - export function buildNormalizedRawEventSchema( entityKind: RawEventEntityKind, eventKind: string, @@ -273,11 +271,3 @@ export function resolveRawEventNormalizedSchema( buildNormalizedRawEventSchema(input.entityKind, input.eventKind) ); } - -export function parseConversationType(value: string): ConversationType { - return value === "group" ? "group" : "dm"; -} - -export function isContactFieldName(value: string): value is ContactFieldName { - return contactFieldNameSet.has(value); -} diff --git a/src/db/schema.ts b/src/db/schema.ts index 6a417d38..71cb9833 100644 --- a/src/db/schema.ts +++ b/src/db/schema.ts @@ -22,11 +22,6 @@ function textEnum( return text(name, { enum: values }); } -export const schemaMigrations = sqliteTable("schema_migrations", { - id: text("id").primaryKey(), - appliedAt: integer("applied_at").notNull(), -}); - export const sourceAccounts = sqliteTable("source_accounts", { id: text("id").primaryKey(), platform: textEnum("platform", PLATFORM_VALUES).notNull(), diff --git a/src/platforms/contacts/sync.ts b/src/platforms/contacts/sync.ts index aeae46b1..df069438 100644 --- a/src/platforms/contacts/sync.ts +++ b/src/platforms/contacts/sync.ts @@ -2,10 +2,7 @@ import { execFileSync } from "node:child_process"; import { createHash, randomUUID } from "node:crypto"; import { readFileSync } from "node:fs"; import type { ContactObservationPayload } from "../../core/types/provider.js"; -import { - getMacOSNativeBinaryCandidates, - resolveMacOSNativeBinary, -} from "../../runtime/native-binary.js"; +import { resolveMacOSNativeBinary } from "../../runtime/native-binary.js"; import type { SyncBundle } from "../core/sync.js"; export interface ContactRecordInput { @@ -120,8 +117,6 @@ function loadContactsFromMacOS(): ContactRecordInput[] { return JSON.parse(stdout) as ContactRecordInput[]; } -export const getNativeContactsBinaryCandidates = getMacOSNativeBinaryCandidates; - export function resolveContactsLoader( env: NodeJS.ProcessEnv = process.env, repoRoot?: string, diff --git a/src/platforms/core/state/status.ts b/src/platforms/core/state/status.ts index b475f640..66534968 100644 --- a/src/platforms/core/state/status.ts +++ b/src/platforms/core/state/status.ts @@ -875,24 +875,6 @@ export function resolveCompletedMetadata( }; } -export function getPlatformRuntimeDefaults(platform: Platform): { - runtimeKind: IntegrationRuntimeKind; - accountKey: string; -} { - const runtimeKind = - platform === "contacts" || platform === "imessage" - ? "native" - : platform === "signal" || platform === "whatsapp" - ? "qr_native" - : platform === "gmail" - ? "oauth" - : "chromium"; - return { - runtimeKind, - accountKey: getDefaultAccountKeyForPlatform(platform), - }; -} - export function buildIntegrationStatus( db: CuedDatabase, options: { includeLiveLocalIntegrations?: boolean; includeDiagnostics?: boolean } = {}, diff --git a/src/platforms/core/state/types.ts b/src/platforms/core/state/types.ts index ce3897c5..19b6327b 100644 --- a/src/platforms/core/state/types.ts +++ b/src/platforms/core/state/types.ts @@ -1,5 +1,5 @@ import type { PlatformCapabilitySummary } from "../../../core/platform-capabilities.js"; -import type { AuthSessionRow, IntegrationStateRow } from "../../../db/database.js"; +import type { IntegrationStateRow } from "../../../db/database.js"; import type { AuthSessionState, ConnectionKind, @@ -98,4 +98,3 @@ export interface CompletedAuthSessionInput { } export type IntegrationRowLike = Pick; -export type AuthSessionRowLike = AuthSessionRow; diff --git a/src/platforms/core/types.ts b/src/platforms/core/types.ts index fd30efc2..43fdfc87 100644 --- a/src/platforms/core/types.ts +++ b/src/platforms/core/types.ts @@ -365,7 +365,6 @@ const adapterPlatformSet = new Set(ADAPTER_PLATFORM_VALUES); const requestableIntegrationPlatformSet = new Set(REQUESTABLE_INTEGRATION_PLATFORM_VALUES); const integrationAuthStateSet = new Set(INTEGRATION_AUTH_STATE_VALUES); const integrationRuntimeKindSet = new Set(INTEGRATION_RUNTIME_KIND_VALUES); -const hostOsSet = new Set(HOST_OS_VALUES); export function isPlatform(value: string): value is Platform { return platformSet.has(value); @@ -385,14 +384,6 @@ export function parsePlatform(value: string): Platform | null { return isPlatform(value) ? value : null; } -export function isHostOS(value: string): value is HostOS { - return hostOsSet.has(value); -} - -export function parseHostOS(value: string | null | undefined): HostOS | null { - return value && isHostOS(value) ? value : null; -} - export function getDefaultAccountKeyForPlatform(platform: Platform): string { return PLATFORM_DEFINITIONS[platform].defaultAccountKey; } diff --git a/src/platforms/linkedin/api/constants.ts b/src/platforms/linkedin/api/constants.ts index 96aeb970..3f621f28 100644 --- a/src/platforms/linkedin/api/constants.ts +++ b/src/platforms/linkedin/api/constants.ts @@ -65,14 +65,6 @@ export const RETRY_CONFIG = { authErrorStatusCodes: [401, 403], } as const; -export const REALTIME_TOPICS = { - conversations: "conversationsTopic", - conversationDeletes: "conversationDeletesTopic", - messageSeenReceipts: "messageSeenReceiptsTopic", - messages: "messagesTopic", - messageReactionSummaries: "messageReactionSummariesTopic", -} as const; - export const PAGINATION_DEFAULTS = { conversationsCount: 20, messagesCount: 20, diff --git a/src/platforms/linkedin/api/request.ts b/src/platforms/linkedin/api/request.ts index b282dc16..47221040 100644 --- a/src/platforms/linkedin/api/request.ts +++ b/src/platforms/linkedin/api/request.ts @@ -241,14 +241,6 @@ export function newGetRequest( return new AuthedRequest(url, cookies, options).withMethod("GET"); } -export function newPostRequest( - url: string, - cookies: Cookie[], - options?: RequestOptions, -): AuthedRequest { - return new AuthedRequest(url, cookies, options).withMethod("POST"); -} - export function newMessagingGraphQLRequest( cookies: Cookie[], queryId: keyof typeof GRAPHQL_QUERY_IDS, diff --git a/src/platforms/linkedin/sync/events.ts b/src/platforms/linkedin/sync/events.ts index aa616091..05b3c655 100644 --- a/src/platforms/linkedin/sync/events.ts +++ b/src/platforms/linkedin/sync/events.ts @@ -282,10 +282,6 @@ export function isLinkedInMessageEdited(message: Message): boolean { return message.messageBodyRenderFormat === "EDITED"; } -export function isLinkedInSystemMessage(message: Message): boolean { - return message.messageBodyRenderFormat === "SYSTEM"; -} - export function conversationSourceKey(conversationUrn: string): string { return `linkedin:${normalizeConversationUrn(conversationUrn)}`; } diff --git a/src/platforms/whatsapp/types.ts b/src/platforms/whatsapp/types.ts index b0973d33..dbf3ac1d 100644 --- a/src/platforms/whatsapp/types.ts +++ b/src/platforms/whatsapp/types.ts @@ -170,20 +170,6 @@ export type WhatsAppHelperCommand = command: "status"; }; -export interface WhatsAppHelperStatusResult { - accountJid?: string | null; - pushName?: string | null; - connected?: boolean; - helperVersion?: string | null; - lastHistorySyncAt?: number | null; - lastHistorySyncType?: string | null; - lastHistoryChunkOrder?: number | null; - lastHistoryProgress?: number | null; - queuedHistorySyncCount?: number | null; - lastHistorySyncError?: string | null; - lastHistoryNotificationAt?: number | null; -} - export interface WhatsAppHelperSendResult { messageID: string; chatJID: string; diff --git a/src/setup.ts b/src/setup.ts index 4a1cc7f1..c2328e7c 100644 --- a/src/setup.ts +++ b/src/setup.ts @@ -1,4 +1,3 @@ -import { existsSync } from "node:fs"; import { stdin as input, stdout as output } from "node:process"; import readline from "node:readline/promises"; import { openCuedDatabase } from "./db/database.js"; @@ -100,8 +99,3 @@ export async function runSetupTUI(): Promise { db.close(); } } - -export function hasInstalledAppBundle(): boolean { - const appPath = resolveInstalledAppPath(); - return Boolean(appPath && existsSync(appPath)); -} diff --git a/src/telemetry/context.ts b/src/telemetry/context.ts index 3ab21fc7..a8aa9a21 100644 --- a/src/telemetry/context.ts +++ b/src/telemetry/context.ts @@ -26,15 +26,6 @@ export function durationBucket(durationMs: number): string { return "gte_10m"; } -export function attemptBucket(attempt: number | null | undefined): string | undefined { - if (attempt == null || !Number.isFinite(attempt) || attempt < 0) { - return undefined; - } - if (attempt <= 1) return "first"; - if (attempt <= 3) return "retry_2_3"; - return "retry_4_plus"; -} - export function errorTelemetryProperties( error: unknown, fallbackCode = "unknown_error",