···11import assert from 'assert'
22import {
33 Kysely,
44- KyselyPlugin,
44+ type KyselyPlugin,
55 Migrator,
66- PluginTransformQueryArgs,
77- PluginTransformResultArgs,
66+ type PluginTransformQueryArgs,
77+ type PluginTransformResultArgs,
88 PostgresDialect,
99- QueryResult,
1010- RootOperationNode,
1111- UnknownRow,
99+ type QueryResult,
1010+ type RootOperationNode,
1111+ type UnknownRow,
1212} from 'kysely'
1313import {default as Pg} from 'pg'
14141515import {dbLogger as log} from '../logger.js'
1616import {default as migrations} from './migrations/index.js'
1717import {DbMigrationProvider} from './migrations/provider.js'
1818-import {DbSchema} from './schema.js'
1818+import {type DbSchema} from './schema.js'
19192020export class Database {
2121 migrator: Migrator
2222 destroyed = false
23232424- constructor(public db: Kysely<DbSchema>, public cfg: PgConfig) {
2424+ constructor(
2525+ public db: Kysely<DbSchema>,
2626+ public cfg: PgConfig,
2727+ ) {
2528 this.migrator = new Migrator({
2629 db,
2730 migrationTableSchema: cfg.schema,
+7-4
bskylink/src/index.ts
···11import events from 'node:events'
22-import http from 'node:http'
22+import type http from 'node:http'
3344import cors from 'cors'
55import express from 'express'
66-import {createHttpTerminator, HttpTerminator} from 'http-terminator'
66+import {createHttpTerminator, type HttpTerminator} from 'http-terminator'
7788-import {Config} from './config.js'
88+import {type Config} from './config.js'
99import {AppContext} from './context.js'
1010import {default as routes, errorHandler} from './routes/index.js'
1111···1717 public server?: http.Server
1818 private terminator?: HttpTerminator
19192020- constructor(public app: express.Application, public ctx: AppContext) {}
2020+ constructor(
2121+ public app: express.Application,
2222+ public ctx: AppContext,
2323+ ) {}
21242225 static async create(cfg: Config): Promise<LinkService> {
2326 let app = express()
+7-4
bskyogcard/src/index.ts
···11import events from 'node:events'
22-import http from 'node:http'
22+import type http from 'node:http'
3344import express from 'express'
55-import {createHttpTerminator, HttpTerminator} from 'http-terminator'
55+import {createHttpTerminator, type HttpTerminator} from 'http-terminator'
6677-import {Config} from './config.js'
77+import {type Config} from './config.js'
88import {AppContext} from './context.js'
99import {default as routes, errorHandler} from './routes/index.js'
1010···1515 public server?: http.Server
1616 private terminator?: HttpTerminator
17171818- constructor(public app: express.Application, public ctx: AppContext) {}
1818+ constructor(
1919+ public app: express.Application,
2020+ public ctx: AppContext,
2121+ ) {}
19222023 static async create(cfg: Config): Promise<CardService> {
2124 let app = express()
···128128 label={_(msg`Message options`)}
129129 contentLabel={_(
130130 msg`Message from @${
131131- sender?.handle ?? // should always be defined
132132- 'unknown'
131131+ sender?.handle ?? 'unknown' // should always be defined
133132 }: ${message.text}`,
134133 )}>
135134 {children}
···11import React from 'react'
22-import {StyleProp, View, ViewStyle} from 'react-native'
33-import {ModerationUI} from '@atproto/api'
22+import {type StyleProp, View, type ViewStyle} from 'react-native'
33+import {type ModerationUI} from '@atproto/api'
44import {msg, Trans} from '@lingui/macro'
55import {useLingui} from '@lingui/react'
66···148148 modui.noOverride
149149 ? _(msg`Learn more about the moderation applied to this content`)
150150 : override
151151- ? _(msg`Hides the content`)
152152- : _(msg`Shows the content`)
151151+ ? _(msg`Hides the content`)
152152+ : _(msg`Shows the content`)
153153 }>
154154 {state => (
155155 <View
···11import React from 'react'
22import {
33 BSKY_LABELER_DID,
44- ModerationCause,
55- ModerationCauseSource,
44+ type ModerationCause,
55+ type ModerationCauseSource,
66} from '@atproto/api'
77import {msg} from '@lingui/macro'
88import {useLingui} from '@lingui/react'
···1212import {useSession} from '#/state/session'
1313import {CircleBanSign_Stroke2_Corner0_Rounded as CircleBanSign} from '#/components/icons/CircleBanSign'
1414import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo'
1515-import {Props as SVGIconProps} from '#/components/icons/common'
1515+import {type Props as SVGIconProps} from '#/components/icons/common'
1616import {EyeSlash_Stroke2_Corner0_Rounded as EyeSlash} from '#/components/icons/EyeSlash'
1717import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning'
1818-import {AppModerationCause} from '#/components/Pills'
1818+import {type AppModerationCause} from '#/components/Pills'
1919import {useGlobalLabelStrings} from './useGlobalLabelStrings'
2020import {getDefinition, getLabelStrings} from './useLabelInfo'
2121···153153 def.identifier === '!no-unauthenticated'
154154 ? EyeSlash
155155 : def.severity === 'alert'
156156- ? Warning
157157- : CircleInfo,
156156+ ? Warning
157157+ : CircleInfo,
158158 name: strings.name,
159159 description: strings.description,
160160 source,
+5-5
src/lib/statsig/statsig.tsx
···11import React from 'react'
22import {Platform} from 'react-native'
33-import {AppState, AppStateStatus} from 'react-native'
33+import {AppState, type AppStateStatus} from 'react-native'
44import {Statsig, StatsigProvider} from 'statsig-react-native-expo'
5566import {BUNDLE_DATE, BUNDLE_IDENTIFIER, IS_TESTFLIGHT} from '#/lib/app-info'
77import {logger} from '#/logger'
88-import {MetricEvents} from '#/logger/metrics'
88+import {type MetricEvents} from '#/logger/metrics'
99import {isWeb} from '#/platform/detection'
1010import * as persisted from '#/state/persisted'
1111import {useSession} from '../../state/session'
1212import {timeout} from '../async/timeout'
1313import {useNonReactiveCallback} from '../hooks/useNonReactiveCallback'
1414-import {Gate} from './gates'
1414+import {type Gate} from './gates'
15151616const SDK_KEY = 'client-SXJakO39w9vIhl3D44u8UupyzFl4oZ2qPIkjwcvuPsV'
1717···5151 process.env.NODE_ENV === 'development'
5252 ? 'development'
5353 : IS_TESTFLIGHT
5454- ? 'staging'
5555- : 'production',
5454+ ? 'staging'
5555+ : 'production',
5656 },
5757 // Don't block on waiting for network. The fetched config will kick in on next load.
5858 // This ensures the UI is always consistent and doesn't update mid-session.
···11import {useCallback, useEffect, useState} from 'react'
22import {MMKV} from 'react-native-mmkv'
3344-import {Account, Device} from '#/storage/schema'
44+import {type Account, type Device} from '#/storage/schema'
5566export * from '#/storage/schema'
77···8383 }
8484}
85858686-type StorageSchema<T extends Storage<any, any>> = T extends Storage<
8787- any,
8888- infer U
8989->
9090- ? U
9191- : never
9292-type StorageScopes<T extends Storage<any, any>> = T extends Storage<
9393- infer S,
9494- any
9595->
9696- ? S
9797- : never
8686+type StorageSchema<T extends Storage<any, any>> =
8787+ T extends Storage<any, infer U> ? U : never
8888+type StorageScopes<T extends Storage<any, any>> =
8989+ T extends Storage<infer S, any> ? S : never
98909991/**
10092 * Hook to use a storage instance. Acts like a useState hook, but persists the
···11import React from 'react'
22import {View} from 'react-native'
33-import {AppBskyActorDefs, AppBskyFeedGetAuthorFeed, AtUri} from '@atproto/api'
33+import {
44+ type AppBskyActorDefs,
55+ AppBskyFeedGetAuthorFeed,
66+ AtUri,
77+} from '@atproto/api'
48import {msg as msgLingui, Trans} from '@lingui/macro'
59import {useLingui} from '@lingui/react'
610import {useNavigation} from '@react-navigation/native'
711812import {usePalette} from '#/lib/hooks/usePalette'
99-import {NavigationProp} from '#/lib/routes/types'
1313+import {type NavigationProp} from '#/lib/routes/types'
1014import {cleanError} from '#/lib/strings/errors'
1115import {logger} from '#/logger'
1212-import {FeedDescriptor} from '#/state/queries/post-feed'
1616+import {type FeedDescriptor} from '#/state/queries/post-feed'
1317import {useRemoveFeedMutation} from '#/state/queries/preferences'
1418import * as Prompt from '#/components/Prompt'
1519import {EmptyState} from '../util/EmptyState'
···119123 [KnownError.FeedTooManyRequests]: _l(
120124 msgLingui`This feed is currently receiving high traffic and is temporarily unavailable. Please try again later.`,
121125 ),
122122- }[knownError]),
126126+ })[knownError],
123127 [_l, knownError],
124128 )
125129 const [_, uri] = feedDesc.split('|')
+6-6
src/view/com/profile/ProfileMenu.tsx
···461461 msg`The account will be able to interact with you after unblocking.`,
462462 )
463463 : profile.associated?.labeler
464464- ? _(
465465- msg`Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you.`,
466466- )
467467- : _(
468468- msg`Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you.`,
469469- )
464464+ ? _(
465465+ msg`Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you.`,
466466+ )
467467+ : _(
468468+ msg`Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you.`,
469469+ )
470470 }
471471 onConfirm={blockAccount}
472472 confirmButtonCta={
+8-3
src/view/com/util/List.web.tsx
···11import React, {isValidElement, memo, startTransition, useRef} from 'react'
22-import {FlatListProps, StyleSheet, View, ViewProps} from 'react-native'
33-import {ReanimatedScrollEvent} from 'react-native-reanimated/lib/typescript/hook/commonTypes'
22+import {
33+ type FlatListProps,
44+ StyleSheet,
55+ View,
66+ type ViewProps,
77+} from 'react-native'
88+import {type ReanimatedScrollEvent} from 'react-native-reanimated/lib/typescript/hook/commonTypes'
49510import {batchedUpdates} from '#/lib/batchedUpdates'
611import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
···205210 behavior: animated ? 'smooth' : 'instant',
206211 })
207212 },
208208- } as any), // TODO: Better types.
213213+ }) as any, // TODO: Better types.
209214 [getScrollableNode],
210215 )
211216