SYMBOL INDEX (3277 symbols across 873 files) FILE: apps/client-server/src/app/account/account.controller.ts class AccountController (line 21) | class AccountController extends PostyBirbController<'AccountSchema'> { method constructor (line 22) | constructor(readonly service: AccountService) { method create (line 29) | create(@Body() createAccountDto: CreateAccountDto) { method clear (line 38) | async clear(@Param('id') id: AccountId) { method refresh (line 49) | async refresh(@Param('id') id: AccountId) { method update (line 56) | update( method setWebsiteData (line 67) | setWebsiteData(@Body() oauthRequestDto: SetWebsiteDataRequestDto) { FILE: apps/client-server/src/app/account/account.events.ts type AccountEventTypes (line 5) | type AccountEventTypes = AccountUpdateEvent; class AccountUpdateEvent (line 7) | class AccountUpdateEvent implements WebsocketEvent { FILE: apps/client-server/src/app/account/account.module.ts class AccountModule (line 12) | class AccountModule {} FILE: apps/client-server/src/app/account/account.service.spec.ts method withWebsiteInstance (line 25) | withWebsiteInstance(websiteInstance) { method withWebsiteInstance (line 35) | withWebsiteInstance(websiteInstance) { method withWebsiteInstance (line 45) | withWebsiteInstance(websiteInstance) { FILE: apps/client-server/src/app/account/account.service.ts class AccountService (line 34) | class AccountService method constructor (line 48) | constructor( method onModuleInit (line 67) | async onModuleInit() { method pollLoginStates (line 91) | private pollLoginStates() { method deleteUnregisteredAccounts (line 97) | private async deleteUnregisteredAccounts() { method populateNullAccount (line 124) | private async populateNullAccount(): Promise { method initWebsiteRegistry (line 133) | private async initWebsiteRegistry(): Promise { method initWebsiteLoginRefreshTimers (line 147) | private initWebsiteLoginRefreshTimers(): void { method emit (line 166) | public async emit() { method executeOnLoginForInterval (line 183) | private async executeOnLoginForInterval(interval: string | number) { method afterCreate (line 201) | private afterCreate(account: Account, website: UnknownWebsite) { method manuallyExecuteOnLogin (line 214) | async manuallyExecuteOnLogin(id: AccountId): Promise { method create (line 231) | async create(createDto: CreateAccountDto): Promise { method findById (line 246) | public findById(id: AccountId, options?: FindOptions) { method findAll (line 252) | public async findAll() { method update (line 262) | async update(id: AccountId, update: UpdateAccountDto) { method remove (line 269) | async remove(id: AccountId) { method clearAccountData (line 282) | async clearAccountData(id: AccountId) { method setAccountData (line 296) | async setAccountData(setWebsiteDataRequestDto: SetWebsiteDataRequestDt... method injectWebsiteInstance (line 308) | private injectWebsiteInstance(account?: Account): Account | null { FILE: apps/client-server/src/app/account/dtos/create-account.dto.ts class CreateAccountDto (line 8) | class CreateAccountDto implements ICreateAccountDto { FILE: apps/client-server/src/app/account/dtos/set-website-data-request.dto.ts class SetWebsiteDataRequestDto (line 9) | class SetWebsiteDataRequestDto FILE: apps/client-server/src/app/account/dtos/update-account.dto.ts class UpdateAccountDto (line 8) | class UpdateAccountDto implements IUpdateAccountDto { FILE: apps/client-server/src/app/account/login-state-poller.ts class LoginStatePoller (line 13) | class LoginStatePoller { method constructor (line 22) | constructor( method checkForChanges (line 31) | checkForChanges(): void { method checkInstance (line 71) | checkInstance(instance: UnknownWebsite): void { method statesEqual (line 89) | private statesEqual(a: ILoginState, b: ILoginState): boolean { FILE: apps/client-server/src/app/app.controller.ts class AppController (line 6) | class AppController { method constructor (line 7) | constructor(private readonly appService: AppService) {} method getData (line 10) | getData() { FILE: apps/client-server/src/app/app.module.ts class AppModule (line 69) | class AppModule implements NestModule { method configure (line 70) | configure(consumer: MiddlewareConsumer) { FILE: apps/client-server/src/app/app.service.ts class AppService (line 5) | class AppService { method getData (line 6) | getData(): Record { FILE: apps/client-server/src/app/common/controller/postybirb-controller.ts method constructor (line 13) | constructor(protected readonly service: PostyBirbService) {} method findOne (line 17) | findOne(@Param('id') id: EntityId) { method findAll (line 25) | findAll() { method remove (line 35) | async remove(@Query('ids') ids: EntityId | EntityId[]) { FILE: apps/client-server/src/app/common/service/postybirb-service.ts method constructor (line 22) | constructor( method emit (line 39) | protected async emit(event: WebSocketEvents) { method schema (line 49) | protected get schema() { method throwIfExists (line 59) | protected async throwIfExists(where: SQL) { method findById (line 71) | public findById(id: EntityId, options?: FindOptions) { method findAll (line 75) | public findAll() { method remove (line 79) | public remove(id: EntityId) { FILE: apps/client-server/src/app/constants.ts constant WEBSITE_IMPLEMENTATIONS (line 2) | const WEBSITE_IMPLEMENTATIONS = 'WEBSITE_IMPLEMENTATIONS'; FILE: apps/client-server/src/app/custom-shortcuts/custom-shortcut.events.ts type CustomShortcutEventTypes (line 5) | type CustomShortcutEventTypes = CustomShortcutEvent; class CustomShortcutEvent (line 7) | class CustomShortcutEvent implements WebsocketEvent { FILE: apps/client-server/src/app/custom-shortcuts/custom-shortcuts.controller.ts class CustomShortcutsController (line 10) | class CustomShortcutsController extends PostyBirbController<'CustomShort... method constructor (line 11) | constructor(readonly service: CustomShortcutsService) { method create (line 17) | async create(@Body() createCustomShortcutDto: CreateCustomShortcutDto) { method update (line 25) | async update( FILE: apps/client-server/src/app/custom-shortcuts/custom-shortcuts.module.ts class CustomShortcutsModule (line 10) | class CustomShortcutsModule {} FILE: apps/client-server/src/app/custom-shortcuts/custom-shortcuts.service.ts class CustomShortcutsService (line 12) | class CustomShortcutsService extends PostyBirbService<'CustomShortcutSch... method constructor (line 13) | constructor(@Optional() webSocket?: WSGateway) { method emit (line 18) | public async emit() { method create (line 26) | public async create( method update (line 38) | public async update( method remove (line 52) | public async remove(id: EntityId) { FILE: apps/client-server/src/app/custom-shortcuts/dtos/create-custom-shortcut.dto.ts class CreateCustomShortcutDto (line 4) | class CreateCustomShortcutDto implements ICreateCustomShortcutDto { FILE: apps/client-server/src/app/custom-shortcuts/dtos/update-custom-shortcut.dto.ts class UpdateCustomShortcutDto (line 4) | class UpdateCustomShortcutDto implements IUpdateCustomShortcutDto { FILE: apps/client-server/src/app/directory-watchers/directory-watcher.events.ts type DirectoryWatcherEventTypes (line 5) | type DirectoryWatcherEventTypes = DirectoryWatcherUpdateEvent; class DirectoryWatcherUpdateEvent (line 7) | class DirectoryWatcherUpdateEvent FILE: apps/client-server/src/app/directory-watchers/directory-watchers.controller.ts class DirectoryWatchersController (line 21) | class DirectoryWatchersController extends PostyBirbController<'Directory... method constructor (line 22) | constructor(readonly service: DirectoryWatchersService) { method create (line 29) | create(@Body() createDto: CreateDirectoryWatcherDto) { method update (line 36) | update( method checkPath (line 46) | checkPath(@Body() checkPathDto: CheckPathDto) { FILE: apps/client-server/src/app/directory-watchers/directory-watchers.module.ts class DirectoryWatchersModule (line 12) | class DirectoryWatchersModule {} FILE: apps/client-server/src/app/directory-watchers/directory-watchers.service.spec.ts function createSubmission (line 50) | async function createSubmission() { FILE: apps/client-server/src/app/directory-watchers/directory-watchers.service.ts constant FILE_COUNT_WARNING_THRESHOLD (line 45) | const FILE_COUNT_WARNING_THRESHOLD = 10; type CheckPathResult (line 50) | interface CheckPathResult { class DirectoryWatchersService (line 62) | class DirectoryWatchersService extends PostyBirbService<'DirectoryWatche... method constructor (line 73) | constructor( method emitUpdates (line 84) | protected async emitUpdates() { method run (line 95) | private async run() { method ensureDirectoryStructure (line 122) | private async ensureDirectoryStructure(basePath: string): Promise { method recoverOrphanedFiles (line 147) | private async recoverOrphanedFiles(watcher: DirectoryWatcher): Promise... method read (line 195) | private async read(watcher: DirectoryWatcher) { method processFileWithMove (line 261) | private async processFileWithMove( method create (line 373) | async create( method update (line 393) | async update(id: EntityId, update: UpdateDirectoryWatcherDto) { method checkPath (line 441) | async checkPath(path: string): Promise { FILE: apps/client-server/src/app/directory-watchers/dtos/check-path.dto.ts class CheckPathDto (line 4) | class CheckPathDto { FILE: apps/client-server/src/app/directory-watchers/dtos/create-directory-watcher.dto.ts class CreateDirectoryWatcherDto (line 8) | class CreateDirectoryWatcherDto implements ICreateDirectoryWatcherDto { FILE: apps/client-server/src/app/directory-watchers/dtos/update-directory-watcher.dto.ts class UpdateDirectoryWatcherDto (line 9) | class UpdateDirectoryWatcherDto implements IUpdateDirectoryWatcherDto { FILE: apps/client-server/src/app/drizzle/models/account.entity.ts class Account (line 7) | class Account extends DatabaseEntity implements IAccount { method constructor (line 26) | constructor(entity: Partial) { method toObject (line 31) | toObject(): IAccount { method toDTO (line 37) | toDTO(): IAccountDto { method withWebsiteInstance (line 56) | withWebsiteInstance(websiteInstance: UnknownWebsite): this { FILE: apps/client-server/src/app/drizzle/models/custom-shortcut.entity.ts class CustomShortcut (line 10) | class CustomShortcut extends DatabaseEntity implements ICustomShortcut { method constructor (line 15) | constructor(entity: Partial) { method toObject (line 20) | public toObject(): ICustomShortcut { method toDTO (line 26) | public toDTO(): ICustomShortcutDto { FILE: apps/client-server/src/app/drizzle/models/database-entity.spec.ts class TestEntity (line 6) | class TestEntity extends DatabaseEntity { method constructor (line 9) | constructor(entity: Partial) { method toObject (line 14) | toObject(): IEntity { method toDTO (line 20) | toDTO(): IEntityDto { FILE: apps/client-server/src/app/drizzle/models/database-entity.ts function fromDatabaseRecord (line 18) | function fromDatabaseRecord( method constructor (line 39) | constructor(entity: Partial) { method toJSON (line 50) | public toJSON(): string { FILE: apps/client-server/src/app/drizzle/models/directory-watcher.entity.ts class DirectoryWatcher (line 11) | class DirectoryWatcher method toObject (line 24) | toObject(): IDirectoryWatcher { method toDTO (line 30) | toDTO(): DirectoryWatcherDto { FILE: apps/client-server/src/app/drizzle/models/file-buffer.entity.ts class FileBuffer (line 5) | class FileBuffer extends DatabaseEntity implements IFileBuffer { method constructor (line 22) | constructor(entity: Partial) { method toObject (line 27) | toObject(): IFileBuffer { method toDTO (line 33) | toDTO(): FileBufferDto { FILE: apps/client-server/src/app/drizzle/models/notification.entity.ts class Notification (line 5) | class Notification extends DatabaseEntity implements INotification { method toObject (line 20) | toObject(): INotification { method toDTO (line 24) | toDTO(): INotification { FILE: apps/client-server/src/app/drizzle/models/post-event.entity.ts class PostEvent (line 15) | class PostEvent extends DatabaseEntity implements IPostEvent { method constructor (line 36) | constructor(entity: Partial) { method toObject (line 41) | toObject(): IPostEvent { method toDTO (line 47) | toDTO(): PostEventDto { FILE: apps/client-server/src/app/drizzle/models/post-queue-record.entity.ts class PostQueueRecord (line 12) | class PostQueueRecord method toObject (line 26) | toObject(): IPostQueueRecord { method toDTO (line 32) | toDTO(): PostQueueRecordDto { FILE: apps/client-server/src/app/drizzle/models/post-record.entity.ts class PostRecord (line 15) | class PostRecord extends DatabaseEntity implements IPostRecord { method constructor (line 48) | constructor(entity: Partial) { method toObject (line 58) | toObject(): IPostRecord { method toDTO (line 64) | toDTO(): PostRecordDto { FILE: apps/client-server/src/app/drizzle/models/settings.entity.ts class Settings (line 10) | class Settings extends DatabaseEntity implements ISettings { method toObject (line 15) | toObject(): ISettings { method toDTO (line 21) | toDTO(): SettingsDto { FILE: apps/client-server/src/app/drizzle/models/submission-file.entity.ts class SubmissionFile (line 14) | class SubmissionFile extends DatabaseEntity implements ISubmissionFile { method constructor (line 57) | constructor(entity: Partial) { method toObject (line 62) | toObject(): ISubmissionFile { method toDTO (line 68) | toDTO(): ISubmissionFileDto { method load (line 77) | public async load(fileTarget?: 'file' | 'thumbnail' | 'alt') { FILE: apps/client-server/src/app/drizzle/models/submission.entity.ts class Submission (line 16) | class Submission method constructor (line 52) | constructor(entity: Partial>) { method toObject (line 57) | toObject(): ISubmission { method toDTO (line 63) | toDTO(): ISubmissionDto { method getSubmissionName (line 76) | getSubmissionName(): string { FILE: apps/client-server/src/app/drizzle/models/tag-converter.entity.ts class TagConverter (line 5) | class TagConverter extends DatabaseEntity implements ITagConverter { method constructor (line 10) | constructor(entity: ITagConverter) { method toObject (line 15) | toObject(): ITagConverter { method toDTO (line 21) | toDTO(): TagConverterDto { FILE: apps/client-server/src/app/drizzle/models/tag-group.entity.ts class TagGroup (line 5) | class TagGroup extends DatabaseEntity implements ITagGroup { method toObject (line 10) | toObject(): ITagGroup { method toDTO (line 16) | toDTO(): TagGroupDto { FILE: apps/client-server/src/app/drizzle/models/user-converter.entity.ts class UserConverter (line 5) | class UserConverter extends DatabaseEntity implements IUserConverter { method constructor (line 10) | constructor(entity: IUserConverter) { method toObject (line 15) | toObject(): IUserConverter { method toDTO (line 21) | toDTO(): UserConverterDto { FILE: apps/client-server/src/app/drizzle/models/user-specified-website-options.entity.ts class UserSpecifiedWebsiteOptions (line 12) | class UserSpecifiedWebsiteOptions method toObject (line 25) | toObject(): IUserSpecifiedWebsiteOptions { method toDTO (line 31) | toDTO(): UserSpecifiedWebsiteOptionsDto { FILE: apps/client-server/src/app/drizzle/models/website-data.entity.ts class WebsiteData (line 11) | class WebsiteData method toObject (line 20) | toObject(): IWebsiteData { method toDTO (line 24) | toDTO(): IWebsiteDataDto { FILE: apps/client-server/src/app/drizzle/models/website-options.entity.ts class WebsiteOptions (line 14) | class WebsiteOptions extends DatabaseEntity implements IWebsiteOptions { method constructor (line 29) | constructor(entity: Partial) { method toObject (line 34) | toObject(): IWebsiteOptions { method toDTO (line 40) | toDTO(): WebsiteOptionsDto { FILE: apps/client-server/src/app/drizzle/postybirb-database/find-options.type.ts type FindOptions (line 1) | type FindOptions = { FILE: apps/client-server/src/app/drizzle/postybirb-database/postybirb-database.ts type ExtractedRelations (line 24) | type ExtractedRelations = ExtractTablesWithRelations; type Relation (line 26) | type Relation = type Action (line 29) | type Action = 'delete' | 'insert' | 'update'; type SubscribeCallback (line 31) | type SubscribeCallback = (ids: EntityId[], action: Action) => void; class PostyBirbDatabase (line 33) | class PostyBirbDatabase< method constructor (line 62) | constructor( method subscribe (line 76) | public subscribe( method notify (line 91) | private notify(ids: EntityId[], action: Action) { method forceNotify (line 105) | public forceNotify(ids: EntityId[], action: Action) { method notifySubscribers (line 117) | public static notifySubscribers( method EntityClass (line 127) | public get EntityClass() { method schemaEntity (line 131) | public get schemaEntity() { method classConverter (line 137) | private classConverter(value: any | any[]): TEntityClass | TEntityClas... method insert (line 146) | public async insert( method deleteById (line 165) | public async deleteById(ids: EntityId[]) { method findById (line 176) | public async findById( method select (line 200) | public async select(query: SQL): Promise { method find (line 205) | public async find< method findOne (line 232) | public async findOne< method findAll (line 259) | public async findAll(): Promise { method update (line 268) | public async update( method count (line 283) | public count(filter?: SQL): Promise { FILE: apps/client-server/src/app/drizzle/postybirb-database/postybirb-database.util.ts class PostyBirbDatabaseUtil (line 6) | class PostyBirbDatabaseUtil { method saveFromEntity (line 7) | static async saveFromEntity(entity: T) { FILE: apps/client-server/src/app/drizzle/postybirb-database/schema-entity-map.ts type DatabaseSchemaEntityMap (line 22) | type DatabaseSchemaEntityMap = { FILE: apps/client-server/src/app/drizzle/transaction-context.ts type TrackedEntity (line 8) | interface TrackedEntity { class TransactionContext (line 18) | class TransactionContext { method constructor (line 25) | constructor(db: PostyBirbDatabaseType) { method track (line 33) | track(schemaKey: SchemaKey, id: EntityId): void { method trackMany (line 40) | trackMany(schemaKey: SchemaKey, ids: EntityId[]): void { method getDb (line 47) | getDb(): PostyBirbDatabaseType { method cleanup (line 55) | async cleanup(): Promise { method commit (line 83) | commit(): void { function withTransactionContext (line 123) | async function withTransactionContext( FILE: apps/client-server/src/app/file-converter/converters/file-converter.ts type IFileConverter (line 3) | interface IFileConverter { FILE: apps/client-server/src/app/file-converter/converters/text-file-converter.ts type SupportedInputMimeTypes (line 13) | type SupportedInputMimeTypes = (typeof supportedInputMimeTypes)[number]; type SupportedOutputMimeTypes (line 14) | type SupportedOutputMimeTypes = (typeof supportedOutputMimeTypes)[number]; type ConversionMap (line 16) | type ConversionMap = { type ConversionWeights (line 24) | type ConversionWeights = { class TextFileConverter (line 34) | class TextFileConverter implements IFileConverter { method canConvert (line 98) | canConvert(file: IFileBuffer, allowableOutputMimeTypes: string[]): boo... method convert (line 107) | async convert( method toMergedBuffer (line 135) | private toMergedBuffer( FILE: apps/client-server/src/app/file-converter/file-converter.module.ts class FileConverterModule (line 8) | class FileConverterModule {} FILE: apps/client-server/src/app/file-converter/file-converter.service.ts class FileConverterService (line 7) | class FileConverterService { method convert (line 10) | public async convert( method canConvert (line 25) | public async canConvert( FILE: apps/client-server/src/app/file/file.controller.ts class FileController (line 15) | class FileController { method constructor (line 16) | constructor(private readonly service: FileService) {} method getThumbnail (line 21) | async getThumbnail( method getFileBufferForTarget (line 39) | private getFileBufferForTarget( FILE: apps/client-server/src/app/file/file.module.ts class FileModule (line 14) | class FileModule {} FILE: apps/client-server/src/app/file/file.service.spec.ts function createSubmission (line 43) | async function createSubmission() { function createMulterData (line 52) | function createMulterData(path: string): MulterFileInfo { function createMulterData2 (line 66) | function createMulterData2(path: string): MulterFileInfo { function setup (line 80) | function setup(): string[] { function loadBuffers (line 136) | async function loadBuffers(rec: SubmissionFile) { FILE: apps/client-server/src/app/file/file.service.ts class FileService (line 29) | class FileService { method constructor (line 45) | constructor( method remove (line 56) | public async remove(id: EntityId) { method create (line 68) | public async create( method update (line 83) | public async update( method doTask (line 96) | private async doTask(task: Task): Promise { method sanitizeFilename (line 126) | private sanitizeFilename(filename: string): string { method getFile (line 132) | private async getFile(path: string, taskOrigin: TaskOrigin): Promise { method getAltFileSize (line 155) | async getAltFileSize(id: EntityId): Promise { method getAltText (line 166) | async getAltText(id: EntityId): Promise { method updateAltText (line 182) | async updateAltText(id: EntityId, update: UpdateAltFileDto) { method updateMetadata (line 191) | async updateMetadata(id: string, update: SubmissionFileMetadata) { method reorderFiles (line 197) | async reorderFiles(update: ReorderSubmissionFilesDto) { FILE: apps/client-server/src/app/file/models/multer-file-info.ts type MulterFileInfo (line 7) | interface MulterFileInfo { type TaskOrigin (line 24) | type TaskOrigin = 'directory-watcher'; FILE: apps/client-server/src/app/file/models/task-type.enum.ts type TaskType (line 4) | enum TaskType { FILE: apps/client-server/src/app/file/models/task.ts type Task (line 6) | type Task = CreateTask | UpdateTask; type CreateTask (line 9) | type CreateTask = { type UpdateTask (line 24) | type UpdateTask = { FILE: apps/client-server/src/app/file/services/create-file.service.ts class CreateFileService (line 40) | class CreateFileService { method constructor (line 51) | constructor( method create (line 65) | public async create( method createSubmissionTextAltFile (line 128) | async createSubmissionTextAltFile( method createSubmissionFile (line 199) | private async createSubmissionFile( method populateAsImageFile (line 241) | private async populateAsImageFile( method createFileThumbnail (line 289) | public async createFileThumbnail( method generateThumbnail (line 326) | public async generateThumbnail( method createFileBufferEntity (line 359) | public async createFileBufferEntity( FILE: apps/client-server/src/app/file/services/update-file.service.ts class UpdateFileService (line 32) | class UpdateFileService { method constructor (line 43) | constructor( method update (line 57) | public async update( method replaceFileThumbnail (line 81) | private async replaceFileThumbnail( method replacePrimaryFile (line 135) | async replacePrimaryFile( method updateFileEntity (line 144) | private async updateFileEntity( method repopulateTextFile (line 223) | async repopulateTextFile( method updateImageFileProps (line 261) | private async updateImageFileProps( method getImageDetails (line 348) | private async getImageDetails(file: MulterFileInfo, buf: Buffer) { method findFile (line 362) | private async findFile(id: EntityId): Promise { FILE: apps/client-server/src/app/file/utils/image.util.ts class ImageUtil (line 9) | class ImageUtil { method isImage (line 10) | static isImage(mimetype: string, includeGIF = false): boolean { FILE: apps/client-server/src/app/form-generator/dtos/form-generation-request.dto.ts class FormGenerationRequestDto (line 9) | class FormGenerationRequestDto implements IFormGenerationRequestDto { FILE: apps/client-server/src/app/form-generator/form-generator.controller.ts class FormGeneratorController (line 9) | class FormGeneratorController { method constructor (line 10) | constructor(private readonly service: FormGeneratorService) {} method getFormForWebsite (line 22) | getFormForWebsite(@Body() request: FormGenerationRequestDto) { FILE: apps/client-server/src/app/form-generator/form-generator.module.ts class FormGeneratorModule (line 14) | class FormGeneratorModule {} FILE: apps/client-server/src/app/form-generator/form-generator.service.ts class FormGeneratorService (line 22) | class FormGeneratorService { method constructor (line 23) | constructor( method generateForm (line 35) | async generateForm( method getDefaultForm (line 86) | async getDefaultForm(type: SubmissionType, isMultiSubmission = false) { method populateUserDefaults (line 98) | private async populateUserDefaults( FILE: apps/client-server/src/app/image-processing/image-processing.module.ts class ImageProcessingModule (line 14) | class ImageProcessingModule {} FILE: apps/client-server/src/app/image-processing/sharp-instance-manager.ts type SharpWorkerInput (line 13) | interface SharpWorkerInput { type SharpWorkerResult (line 31) | interface SharpWorkerResult { class SharpInstanceManager (line 56) | class SharpInstanceManager implements OnModuleDestroy { method constructor (line 69) | constructor() { method runHealthCheck (line 108) | private async runHealthCheck(): Promise { method onModuleDestroy (line 135) | async onModuleDestroy() { method resolveWorkerPath (line 158) | private resolveWorkerPath(): string { method processImage (line 202) | async processImage(input: SharpWorkerInput): Promise { method getMetadata (line 235) | async getMetadata(buffer: Buffer): Promise<{ method generateThumbnail (line 259) | async generateThumbnail( method resizeForPost (line 292) | async resizeForPost(input: { method getStats (line 324) | getStats() { FILE: apps/client-server/src/app/legacy-database-importer/converters/legacy-converter.ts method constructor (line 18) | constructor(protected readonly databasePath: string) {} method getEntityFilePath (line 20) | private getEntityFilePath(): string { method getModernDatabase (line 24) | private getModernDatabase() { method import (line 28) | public async import(): Promise { FILE: apps/client-server/src/app/legacy-database-importer/converters/legacy-custom-shortcut.converter.ts class LegacyCustomShortcutConverter (line 5) | class LegacyCustomShortcutConverter extends LegacyConverter { FILE: apps/client-server/src/app/legacy-database-importer/converters/legacy-tag-converter.converter.ts class LegacyTagConverterConverter (line 5) | class LegacyTagConverterConverter extends LegacyConverter { FILE: apps/client-server/src/app/legacy-database-importer/converters/legacy-tag-group.converter.ts class LegacyTagGroupConverter (line 5) | class LegacyTagGroupConverter extends LegacyConverter { FILE: apps/client-server/src/app/legacy-database-importer/converters/legacy-user-account.converter.ts class LegacyUserAccountConverter (line 5) | class LegacyUserAccountConverter extends LegacyConverter { FILE: apps/client-server/src/app/legacy-database-importer/converters/legacy-website-data.converter.spec.ts function runConverters (line 47) | async function runConverters() { FILE: apps/client-server/src/app/legacy-database-importer/converters/legacy-website-data.converter.ts class LegacyWebsiteDataConverter (line 17) | class LegacyWebsiteDataConverter extends LegacyConverter { FILE: apps/client-server/src/app/legacy-database-importer/dtos/legacy-import.dto.ts class LegacyImportDto (line 3) | class LegacyImportDto { FILE: apps/client-server/src/app/legacy-database-importer/legacy-database-importer.controller.ts class LegacyDatabaseImporterController (line 6) | class LegacyDatabaseImporterController { method constructor (line 7) | constructor( method import (line 12) | async import(@Body() importRequest: LegacyImportDto) { FILE: apps/client-server/src/app/legacy-database-importer/legacy-database-importer.module.ts class LegacyDatabaseImporterModule (line 12) | class LegacyDatabaseImporterModule {} FILE: apps/client-server/src/app/legacy-database-importer/legacy-database-importer.service.ts class LegacyDatabaseImporterService (line 15) | class LegacyDatabaseImporterService { method constructor (line 23) | constructor(private readonly accountService: AccountService) {} method import (line 25) | async import(importRequest: LegacyImportDto): Promise<{ errors: Error[... method processImport (line 87) | private async processImport( FILE: apps/client-server/src/app/legacy-database-importer/legacy-entities/legacy-converter-entity.ts type MinimalEntity (line 3) | type MinimalEntity = Omit< type LegacyConverterEntity (line 8) | interface LegacyConverterEntity { FILE: apps/client-server/src/app/legacy-database-importer/legacy-entities/legacy-custom-shortcut.ts class LegacyCustomShortcut (line 41) | class LegacyCustomShortcut implements LegacyConverterEntity) { method convert (line 58) | async convert(): Promise> { method convertLegacyToModernShortcut (line 93) | private convertLegacyToModernShortcut(blocks: TipTapNode[]): TipTapNod... method convertDefaultToBlock (line 239) | private convertDefaultToBlock(blocks: TipTapNode[]): TipTapNode[] { method wrapLegacyShortcuts (line 315) | private wrapLegacyShortcuts(content: string): string { FILE: apps/client-server/src/app/legacy-database-importer/legacy-entities/legacy-tag-converter.ts class LegacyTagConverter (line 12) | class LegacyTagConverter method constructor (line 25) | constructor(data: Partial) { method convert (line 29) | async convert(): Promise> { FILE: apps/client-server/src/app/legacy-database-importer/legacy-entities/legacy-tag-group.ts class LegacyTagGroup (line 11) | class LegacyTagGroup implements LegacyConverterEntity { method constructor (line 22) | constructor(data: Partial) { method convert (line 26) | async convert(): Promise> { FILE: apps/client-server/src/app/legacy-database-importer/legacy-entities/legacy-user-account.ts class LegacyUserAccount (line 12) | class LegacyUserAccount implements LegacyConverterEntity { method constructor (line 25) | constructor(data: Partial) { method convert (line 29) | async convert(): Promise | null> { FILE: apps/client-server/src/app/legacy-database-importer/legacy-entities/legacy-website-data.ts class LegacyWebsiteData (line 19) | class LegacyWebsiteData implements LegacyConverterEntity { method constructor (line 32) | constructor(data: Partial) { method convert (line 36) | async convert(): Promise | null> { FILE: apps/client-server/src/app/legacy-database-importer/transformers/implementations/bluesky-data-transformer.ts type LegacyBlueskyAccountData (line 7) | interface LegacyBlueskyAccountData { class BlueskyDataTransformer (line 20) | class BlueskyDataTransformer method transform (line 23) | transform(legacyData: LegacyBlueskyAccountData): BlueskyAccountData | ... FILE: apps/client-server/src/app/legacy-database-importer/transformers/implementations/custom-data-transformer.ts type LegacyCustomAccountData (line 8) | interface LegacyCustomAccountData { class CustomDataTransformer (line 29) | class CustomDataTransformer method transform (line 32) | transform(legacyData: LegacyCustomAccountData): CustomAccountData | nu... FILE: apps/client-server/src/app/legacy-database-importer/transformers/implementations/discord-data-transformer.ts type LegacyDiscordAccountData (line 7) | interface LegacyDiscordAccountData { class DiscordDataTransformer (line 23) | class DiscordDataTransformer method transform (line 26) | transform(legacyData: LegacyDiscordAccountData): DiscordAccountData | ... FILE: apps/client-server/src/app/legacy-database-importer/transformers/implementations/e621-data-transformer.ts type LegacyE621AccountData (line 7) | interface LegacyE621AccountData { class E621DataTransformer (line 20) | class E621DataTransformer method transform (line 23) | transform(legacyData: LegacyE621AccountData): E621AccountData | null { FILE: apps/client-server/src/app/legacy-database-importer/transformers/implementations/inkbunny-data-transformer.ts type LegacyInkbunnyAccountData (line 7) | interface LegacyInkbunnyAccountData { class InkbunnyDataTransformer (line 21) | class InkbunnyDataTransformer method transform (line 24) | transform(legacyData: LegacyInkbunnyAccountData): InkbunnyAccountData ... FILE: apps/client-server/src/app/legacy-database-importer/transformers/implementations/megalodon-data-transformer.ts type LegacyMegalodonAccountData (line 8) | interface LegacyMegalodonAccountData { class MegalodonDataTransformer (line 27) | class MegalodonDataTransformer method transform (line 30) | transform(legacyData: LegacyMegalodonAccountData): MegalodonAccountDat... method normalizeInstanceUrl (line 55) | private normalizeInstanceUrl(url: string): string { FILE: apps/client-server/src/app/legacy-database-importer/transformers/implementations/telegram-data-transformer.ts type LegacyTelegramAccountData (line 7) | interface LegacyTelegramAccountData { class TelegramDataTransformer (line 27) | class TelegramDataTransformer method transform (line 30) | transform(legacyData: LegacyTelegramAccountData): TelegramAccountData ... FILE: apps/client-server/src/app/legacy-database-importer/transformers/implementations/twitter-data-transformer.ts type LegacyTwitterAccountData (line 7) | interface LegacyTwitterAccountData { class TwitterDataTransformer (line 27) | class TwitterDataTransformer method transform (line 30) | transform(legacyData: LegacyTwitterAccountData): TwitterAccountData | ... FILE: apps/client-server/src/app/legacy-database-importer/transformers/legacy-website-data-transformer.ts type LegacyWebsiteDataTransformer (line 6) | interface LegacyWebsiteDataTransformer { class PassthroughTransformer (line 19) | class PassthroughTransformer> method transform (line 22) | transform(legacyData: T): T | null { FILE: apps/client-server/src/app/legacy-database-importer/transformers/website-data-transformer-registry.ts class WebsiteDataTransformerRegistry (line 16) | class WebsiteDataTransformerRegistry { method getTransformer (line 45) | static getTransformer( method hasTransformer (line 56) | static hasTransformer(legacyWebsiteName: string): boolean { method getTransformableWebsites (line 63) | static getTransformableWebsites(): string[] { FILE: apps/client-server/src/app/legacy-database-importer/utils/ndjson-parser.ts type ParseResult (line 5) | interface ParseResult { type ParseError (line 10) | interface ParseError { class NdjsonParser (line 21) | class NdjsonParser { method parseFile (line 27) | async parseFile( method fileExists (line 83) | async fileExists(filePath: string): Promise { FILE: apps/client-server/src/app/legacy-database-importer/utils/website-name-mapper.ts class WebsiteNameMapper (line 6) | class WebsiteNameMapper { method map (line 54) | static map(legacyName: string): string | null { method mapMany (line 61) | static mapMany( method hasMapping (line 73) | static hasMapping(legacyName: string): boolean { method getAllLegacyNames (line 80) | static getAllLegacyNames(): string[] { method getAllNewNames (line 87) | static getAllNewNames(): string[] { FILE: apps/client-server/src/app/logs/logs.controller.ts class LogsController (line 11) | class LogsController { method constructor (line 12) | constructor(private readonly service: LogsService) {} method download (line 16) | download(@Res() response) { FILE: apps/client-server/src/app/logs/logs.module.ts class LogsModule (line 10) | class LogsModule {} FILE: apps/client-server/src/app/logs/logs.service.ts class LogsService (line 13) | class LogsService { method getLogsArchive (line 22) | getLogsArchive(): Buffer { method createTar (line 36) | private createTar(dir: string, fileNames: string[]): Buffer { method createTarHeader (line 66) | private createTarHeader(fileName: string, fileSize: number): Buffer { FILE: apps/client-server/src/app/notifications/dtos/create-notification.dto.ts class CreateNotificationDto (line 5) | class CreateNotificationDto implements ICreateNotificationDto { FILE: apps/client-server/src/app/notifications/dtos/update-notification.dto.ts class UpdateNotificationDto (line 5) | class UpdateNotificationDto implements IUpdateNotificationDto { FILE: apps/client-server/src/app/notifications/notification.events.ts type NotificationEventTypes (line 5) | type NotificationEventTypes = NotificationEvent; class NotificationEvent (line 7) | class NotificationEvent implements WebsocketEvent { FILE: apps/client-server/src/app/notifications/notifications.controller.ts class NotificationsController (line 27) | class NotificationsController { method constructor (line 28) | constructor(readonly service: NotificationsService) {} method create (line 33) | create(@Body() createDto: CreateNotificationDto) { method update (line 40) | update(@Param('id') id: EntityId, @Body() updateDto: UpdateNotificatio... method findAll (line 46) | findAll() { method remove (line 55) | async remove(@Query('ids') ids: EntityId | EntityId[]) { FILE: apps/client-server/src/app/notifications/notifications.module.ts class NotificationsModule (line 20) | class NotificationsModule {} FILE: apps/client-server/src/app/notifications/notifications.service.ts class NotificationsService (line 19) | class NotificationsService extends PostyBirbService<'NotificationSchema'> { method constructor (line 26) | constructor( method removeStaleNotifications (line 40) | private async removeStaleNotifications() { method create (line 61) | async create( method trimNotifications (line 80) | private async trimNotifications() { method sendDesktopNotification (line 98) | async sendDesktopNotification( method update (line 160) | update(id: EntityId, update: UpdateNotificationDto) { method emit (line 169) | protected async emit() { FILE: apps/client-server/src/app/post-parsers/models/description-node/converters/base-converter.ts method convertBlocks (line 38) | convertBlocks(nodes: TipTapNode[], context: ConversionContext): string { method convertRawBlocks (line 46) | convertRawBlocks(blocks: TipTapNode[], context: ConversionContext): stri... method convertContent (line 73) | protected convertContent( method convertChildren (line 96) | protected convertChildren( method shouldRenderShortcut (line 116) | protected shouldRenderShortcut( method getUsernameShortcutLink (line 133) | protected getUsernameShortcutLink( FILE: apps/client-server/src/app/post-parsers/models/description-node/converters/bbcode-converter.ts class BBCodeConverter (line 6) | class BBCodeConverter extends BaseConverter { method getBlockSeparator (line 7) | protected getBlockSeparator(): string { method convertBlockNode (line 11) | convertBlockNode( method convertInlineNode (line 97) | convertInlineNode( method convertTextNode (line 141) | convertTextNode( method renderTextWithMarks (line 168) | private renderTextWithMarks(text: string, marks: any[]): string { FILE: apps/client-server/src/app/post-parsers/models/description-node/converters/custom-converter.ts type CustomNodeHandler (line 6) | type CustomNodeHandler = ( class CustomConverter (line 15) | class CustomConverter extends BaseConverter { method constructor (line 16) | constructor( method getBlockSeparator (line 24) | protected getBlockSeparator(): string { method convertBlockNode (line 28) | convertBlockNode( method convertInlineNode (line 35) | convertInlineNode( method convertTextNode (line 45) | convertTextNode( FILE: apps/client-server/src/app/post-parsers/models/description-node/converters/html-converter.ts class HtmlConverter (line 7) | class HtmlConverter extends BaseConverter { method getBlockSeparator (line 8) | protected getBlockSeparator(): string { method convertBlockNode (line 12) | convertBlockNode( method convertInlineNode (line 71) | convertInlineNode( method convertTextNode (line 122) | convertTextNode( method renderTextWithMarks (line 152) | private renderTextWithMarks(text: string, marks: any[]): string { method getBlockTag (line 196) | private getBlockTag(node: TipTapNode): string { method getBlockStyles (line 203) | private getBlockStyles(node: TipTapNode): string { method convertImage (line 221) | private convertImage(node: TipTapNode): string { FILE: apps/client-server/src/app/post-parsers/models/description-node/converters/npf-converter.ts class NpfConverter (line 16) | class NpfConverter extends BaseConverter { method getBlockSeparator (line 23) | protected getBlockSeparator(): string { method convertBlocks (line 30) | convertBlocks(nodes: TipTapNode[], context: ConversionContext): string { method convertBlockNodeRecursive (line 41) | private convertBlockNodeRecursive( method convertListItemToNpf (line 108) | private convertListItemToNpf( method convertBlockNode (line 160) | convertBlockNode(node: TipTapNode, context: ConversionContext): string { method convertBlockNodeToNpf (line 168) | private convertBlockNodeToNpf( method convertParagraph (line 191) | private convertParagraph( method convertHeading (line 201) | private convertHeading( method convertImage (line 217) | private convertImage(node: TipTapNode): NPFImageBlock { method convertInlineNode (line 244) | convertInlineNode(node: TipTapNode, context: ConversionContext): string { method convertTextNode (line 317) | convertTextNode(node: TipTapNode): string { method extractText (line 330) | private extractText( method addFormattingForMarks (line 348) | private addFormattingForMarks( method getMimeType (line 398) | private getMimeType(url: string): string | undefined { FILE: apps/client-server/src/app/post-parsers/models/description-node/converters/plaintext-converter.ts class PlainTextConverter (line 6) | class PlainTextConverter extends BaseConverter { method getBlockSeparator (line 7) | protected getBlockSeparator(): string { method convertBlockNode (line 11) | convertBlockNode(node: TipTapNode, context: ConversionContext): string { method convertInlineNode (line 63) | convertInlineNode(node: TipTapNode, context: ConversionContext): string { method convertTextNode (line 101) | convertTextNode(node: TipTapNode, context: ConversionContext): string { FILE: apps/client-server/src/app/post-parsers/models/description-node/description-node-tree.ts type InsertionOptions (line 14) | type InsertionOptions = { class DescriptionNodeTree (line 20) | class DescriptionNodeTree { method constructor (line 50) | constructor( method toBBCode (line 60) | toBBCode(): string { method toPlainText (line 65) | toPlainText(): string { method toHtml (line 70) | toHtml(): string { method toMarkdown (line 75) | toMarkdown(turndownService?: TurndownService): string { method parseCustom (line 90) | parseCustom(blockHandler: CustomNodeHandler): string { method parseWithConverter (line 95) | parseWithConverter(converter: BaseConverter): string { method updateContext (line 99) | public updateContext(updates: Partial): void { method findNodesByType (line 106) | public findNodesByType(type: string): TipTapNode[] { method findCustomShortcutIds (line 127) | public findCustomShortcutIds(): Set { method findUsernames (line 144) | public findUsernames(): Set { method isEmptyNode (line 163) | private isEmptyNode(node: TipTapNode): boolean { method trimEmptyEdgeNodes (line 183) | private trimEmptyEdgeNodes(nodes: TipTapNode[]): TipTapNode[] { method withInsertions (line 200) | private withInsertions(): TipTapNode[] { FILE: apps/client-server/src/app/post-parsers/models/description-node/description-node.base.ts type ConversionContext (line 8) | interface ConversionContext { FILE: apps/client-server/src/app/post-parsers/models/description-node/description-node.types.ts type ITipTapBlockNode (line 13) | interface ITipTapBlockNode extends TipTapNode { type ITipTapTextNode (line 21) | interface ITipTapTextNode extends TipTapNode { function isTextNode (line 58) | function isTextNode(node: TipTapNode): node is ITipTapTextNode { function isInlineShortcut (line 65) | function isInlineShortcut(node: TipTapNode): boolean { function hasMark (line 72) | function hasMark(node: ITipTapTextNode, markType: string): boolean { function getMarkAttrs (line 79) | function getMarkAttrs( FILE: apps/client-server/src/app/post-parsers/parsers/content-warning-parser.ts class ContentWarningParser (line 6) | class ContentWarningParser { method parse (line 7) | public async parse( FILE: apps/client-server/src/app/post-parsers/parsers/description-parser.service.spec.ts function createWebsiteOptions (line 107) | function createWebsiteOptions( class PlaintextBaseWebsiteOptions (line 133) | class PlaintextBaseWebsiteOptions extends BaseWebsiteOptions { class MarkdownBaseWebsiteOptions (line 187) | class MarkdownBaseWebsiteOptions extends BaseWebsiteOptions { class NoneBaseWebsiteOptions (line 215) | class NoneBaseWebsiteOptions extends BaseWebsiteOptions { class PlaintextBaseWebsiteOptions (line 342) | class PlaintextBaseWebsiteOptions extends BaseWebsiteOptions { class PlaintextBaseWebsiteOptions (line 572) | class PlaintextBaseWebsiteOptions extends BaseWebsiteOptions { class PlaintextBaseWebsiteOptions (line 903) | class PlaintextBaseWebsiteOptions extends BaseWebsiteOptions { FILE: apps/client-server/src/app/post-parsers/parsers/description-parser.service.ts class DescriptionParserService (line 24) | class DescriptionParserService { method constructor (line 27) | constructor( method parse (line 43) | public async parse( method createDescription (line 146) | private createDescription( method resolveCustomShortcutsFromTree (line 188) | private async resolveCustomShortcutsFromTree( method resolveUsernamesFromTree (line 210) | private async resolveUsernamesFromTree( method mergeBlocks (line 227) | public mergeBlocks(blocks: TipTapNode[]): TipTapNode[] { method hasInlineContentType (line 234) | private hasInlineContentType(blocks: TipTapNode[], type: string): bool... FILE: apps/client-server/src/app/post-parsers/parsers/rating-parser.ts class RatingParser (line 5) | class RatingParser { method parse (line 6) | public parse( FILE: apps/client-server/src/app/post-parsers/parsers/tag-parser.service.spec.ts class TagOptions (line 156) | class TagOptions extends BaseWebsiteOptions { method processTag (line 175) | protected processTag(tag: string): string { class TagOptions (line 171) | class TagOptions extends BaseWebsiteOptions { method processTag (line 175) | protected processTag(tag: string): string { class TagOptions (line 224) | class TagOptions extends BaseWebsiteOptions { method processTag (line 175) | protected processTag(tag: string): string { FILE: apps/client-server/src/app/post-parsers/parsers/tag-parser.service.ts class TagParserService (line 8) | class TagParserService { method constructor (line 9) | constructor(private readonly tagConvertersService: TagConvertersServic... method parse (line 11) | public async parse( FILE: apps/client-server/src/app/post-parsers/parsers/title-parser.spec.ts class TestWebsiteOptions (line 63) | class TestWebsiteOptions extends BaseWebsiteOptions { class TestDefaultWebsiteOptions (line 68) | class TestDefaultWebsiteOptions extends DefaultWebsiteOptions { FILE: apps/client-server/src/app/post-parsers/parsers/title-parser.ts class TitleParser (line 6) | class TitleParser { method parse (line 7) | public async parse( FILE: apps/client-server/src/app/post-parsers/post-parsers.module.ts class PostParsersModule (line 28) | class PostParsersModule {} FILE: apps/client-server/src/app/post-parsers/post-parsers.service.ts class PostParsersService (line 17) | class PostParsersService { method constructor (line 25) | constructor( method parse (line 30) | public async parse( FILE: apps/client-server/src/app/post/dtos/post-queue-action.dto.ts class PostQueueActionDto (line 5) | class PostQueueActionDto implements IPostQueueActionDto { FILE: apps/client-server/src/app/post/dtos/queue-post-record.dto.ts class QueuePostRecordRequestDto (line 6) | class QueuePostRecordRequestDto implements IQueuePostRecordRequestDto { FILE: apps/client-server/src/app/post/errors/invalid-post-chain.error.ts class InvalidPostChainError (line 14) | class InvalidPostChainError extends Error { method constructor (line 21) | constructor( FILE: apps/client-server/src/app/post/models/cancellable-token.ts class CancellableToken (line 7) | class CancellableToken { method isCancelled (line 10) | public get isCancelled(): boolean { method cancel (line 14) | public cancel(): void { method throwIfCancelled (line 18) | public throwIfCancelled(): void { FILE: apps/client-server/src/app/post/models/cancellation-error.ts class CancellationError (line 5) | class CancellationError extends Error { method constructor (line 6) | constructor(message = 'Task was cancelled.') { FILE: apps/client-server/src/app/post/models/posting-file.ts type ThumbnailOptions (line 11) | type ThumbnailOptions = Pick< type FormDataFileFormat (line 16) | type FormDataFileFormat = { class PostingFile (line 24) | class PostingFile { method constructor (line 43) | public constructor( method normalizeFileName (line 58) | private normalizeFileName(file: IFileBuffer): string { method withMetadata (line 63) | public withMetadata(metadata: SubmissionFileMetadata): PostingFile { method toPostFormat (line 68) | public toPostFormat(): FormFile { method thumbnailToPostFormat (line 75) | public thumbnailToPostFormat(): FormFile | undefined { FILE: apps/client-server/src/app/post/post.controller.ts class PostController (line 13) | class PostController extends PostyBirbController<'PostRecordSchema'> { method constructor (line 14) | constructor(readonly service: PostService) { method getEvents (line 27) | async getEvents(@Param('id') id: EntityId) { FILE: apps/client-server/src/app/post/post.module.ts class PostModule (line 52) | class PostModule {} FILE: apps/client-server/src/app/post/post.service.ts class PostService (line 12) | class PostService extends PostyBirbService<'PostRecordSchema'> { method constructor (line 17) | constructor(@Optional() webSocket?: WSGateway) { method getEvents (line 27) | async getEvents(postRecordId: EntityId): Promise { FILE: apps/client-server/src/app/post/services/post-file-resizer/post-file-resizer.service.spec.ts function createFile (line 19) | function createFile( FILE: apps/client-server/src/app/post/services/post-file-resizer/post-file-resizer.service.ts type ResizeRequest (line 13) | type ResizeRequest = { class PostFileResizerService (line 30) | class PostFileResizerService { method constructor (line 33) | constructor( method resize (line 37) | public async resize(request: ResizeRequest): Promise { method process (line 41) | private async process(request: ResizeRequest): Promise { method processPrimaryFile (line 63) | private async processPrimaryFile( method processThumbnailFile (line 94) | private async processThumbnailFile( FILE: apps/client-server/src/app/post/services/post-manager-v2/base-post-manager.service.ts type WebsiteInfo (line 34) | interface WebsiteInfo { method constructor (line 67) | constructor( method cancelIfRunning (line 89) | public async cancelIfRunning(submissionId: EntityId): Promise { method isPosting (line 102) | public isPosting(): boolean { method startPost (line 111) | public async startPost( method postToWebsite (line 158) | protected async postToWebsite( method emitPostAttemptStarted (line 302) | protected async emitPostAttemptStarted( method handlePostFailure (line 337) | protected async handlePostFailure( method preparePostData (line 395) | protected async preparePostData( method getPostOrder (line 410) | protected getPostOrder(entity: PostRecord): WebsiteInfo[][] { method finishPost (line 473) | protected async finishPost(entity: PostRecord): Promise { method waitForPostingWaitInterval (line 519) | protected async waitForPostingWaitInterval( method ensureLoggedIn (line 553) | protected async ensureLoggedIn(instance: Website): Promise { method redactPostDataForLogging (line 578) | protected redactPostDataForLogging(postData: PostData): string { FILE: apps/client-server/src/app/post/services/post-manager-v2/file-submission-post-manager.service.spec.ts function createFileBuffer (line 97) | function createFileBuffer(): FileBuffer { function createSubmissionFile (line 111) | function createSubmissionFile( function createSubmission (line 135) | function createSubmission( function createPostRecord (line 156) | function createPostRecord( function createMockFileWebsite (line 168) | function createMockFileWebsite(accountId: AccountId): UnknownWebsite { function createPostingFile (line 193) | function createPostingFile(file: SubmissionFile): PostingFile { FILE: apps/client-server/src/app/post/services/post-manager-v2/file-submission-post-manager.service.ts function mimeTypeIsAccepted (line 42) | function mimeTypeIsAccepted(mimeType: string, patterns: string[]): boole... class FileSubmissionPostManager (line 61) | class FileSubmissionPostManager extends BasePostManager { method constructor (line 64) | constructor( method getSupportedType (line 82) | getSupportedType(): SubmissionType { method attemptToPost (line 86) | protected async attemptToPost( method getFilesToPost (line 266) | private getFilesToPost( method verifyPostingFiles (line 300) | private verifyPostingFiles( method resizeOrModifyFile (line 325) | private async resizeOrModifyFile( method getResizeParameters (line 420) | private getResizeParameters( FILE: apps/client-server/src/app/post/services/post-manager-v2/message-submission-post-manager.service.spec.ts function createSubmission (line 68) | function createSubmission(): Submission { function createPostRecord (line 87) | function createPostRecord(submission: Submission): PostRecord { function createMockWebsite (line 97) | function createMockWebsite(accountId: AccountId): UnknownWebsite { FILE: apps/client-server/src/app/post/services/post-manager-v2/message-submission-post-manager.service.ts class MessageSubmissionPostManager (line 25) | class MessageSubmissionPostManager extends BasePostManager { method constructor (line 29) | constructor( method getSupportedType (line 45) | getSupportedType(): SubmissionType { method attemptToPost (line 49) | protected async attemptToPost( FILE: apps/client-server/src/app/post/services/post-manager-v2/post-manager-registry.service.ts class PostManagerRegistry (line 17) | class PostManagerRegistry { method constructor (line 22) | constructor( method getManager (line 37) | public getManager(type: SubmissionType): BasePostManager | undefined { method startPost (line 46) | public async startPost(postRecord: PostRecord): Promise { method cancelIfRunning (line 78) | public async cancelIfRunning(submissionId: EntityId): Promise { method isPostingType (line 92) | public isPostingType(type: SubmissionType): boolean { FILE: apps/client-server/src/app/post/services/post-manager/post-manager.controller.ts class PostManagerController (line 9) | class PostManagerController { method constructor (line 10) | constructor( method cancelIfRunning (line 17) | async cancelIfRunning(@Param('id') id: SubmissionId) { method isPosting (line 25) | async isPosting(@Param('submissionType') submissionType: SubmissionTyp... FILE: apps/client-server/src/app/post/services/post-queue/post-queue.controller.ts class PostQueueController (line 13) | class PostQueueController extends PostyBirbController<'PostQueueRecordSc... method constructor (line 14) | constructor(readonly service: PostQueueService) { method enqueue (line 20) | async enqueue(@Body() request: PostQueueActionDto) { method dequeue (line 26) | async dequeue(@Body() request: PostQueueActionDto) { method isPaused (line 32) | async isPaused() { method pause (line 38) | async pause() { method resume (line 45) | async resume() { FILE: apps/client-server/src/app/post/services/post-queue/post-queue.service.spec.ts function createSubmissionDto (line 82) | function createSubmissionDto(): CreateSubmissionDto { function createAccountDto (line 89) | function createAccountDto(): CreateAccountDto { function createWebsiteOptionsDto (line 96) | function createWebsiteOptionsDto( FILE: apps/client-server/src/app/post/services/post-queue/post-queue.service.ts class PostQueueService (line 36) | class PostQueueService method constructor (line 59) | constructor( method onModuleInit (line 79) | async onModuleInit() { method resumeInterruptedPosts (line 127) | private async resumeInterruptedPosts( method failOrphanedPostRecords (line 162) | private async failOrphanedPostRecords(): Promise { method isPaused (line 211) | public async isPaused(): Promise { method pause (line 216) | public async pause() { method resume (line 224) | public async resume() { method remove (line 232) | public override remove(id: EntityId) { method getMostRecentTerminalPostRecord (line 241) | private async getMostRecentTerminalPostRecord( method handleTerminalState (line 263) | private async handleTerminalState(record: PostRecord): Promise { method enqueue (line 344) | public async enqueue( method dequeue (line 434) | public async dequeue(submissionIds: SubmissionId[]) { method checkForScheduledSubmissions (line 461) | public async checkForScheduledSubmissions() { method run (line 503) | public async run() { method isStuck (line 523) | private isStuck(record: PostRecord): boolean { method execute (line 545) | public async execute() { method peek (line 643) | public async peek(): Promise { FILE: apps/client-server/src/app/post/services/post-record-factory/post-event.repository.ts class PostEventRepository (line 17) | class PostEventRepository { method constructor (line 20) | constructor() { method getSourceUrlsFromPost (line 33) | async getSourceUrlsFromPost( method getFailedEvents (line 63) | async getFailedEvents(postRecordId: EntityId): Promise { method insert (line 82) | async insert(event: Insert<'PostEventSchema'>): Promise { FILE: apps/client-server/src/app/post/services/post-record-factory/post-record-factory.service.spec.ts function createSubmission (line 59) | async function createSubmission(): Promise { function createAccount (line 67) | async function createAccount(name: string): Promise { function createPostRecordWithState (line 277) | async function createPostRecordWithState( function addEvent (line 292) | async function addEvent( function createPostRecordWithState (line 839) | async function createPostRecordWithState( function addEvent (line 854) | async function addEvent( FILE: apps/client-server/src/app/post/services/post-record-factory/post-record-factory.service.ts type ResumeContext (line 20) | interface ResumeContext { class PostRecordFactory (line 55) | class PostRecordFactory { method constructor (line 60) | constructor(private readonly postEventRepository: PostEventRepository) { method create (line 76) | async create( method findMostRecentOrigin (line 128) | private async findMostRecentOrigin( method findInProgressRecord (line 151) | private async findInProgressRecord( method buildResumeContext (line 191) | async buildResumeContext( method combineRecordsForAggregation (line 257) | private combineRecordsForAggregation( method aggregateFromRecords (line 284) | private aggregateFromRecords( method createEmptyContext (line 300) | private createEmptyContext(resumeMode: PostRecordResumeMode): ResumeCo... method getRecordsToAggregate (line 321) | private async getRecordsToAggregate( method aggregateSourceUrls (line 365) | private aggregateSourceUrls( method aggregateCompletedAccounts (line 387) | private aggregateCompletedAccounts( method aggregatePostedFiles (line 408) | private aggregatePostedFiles( method isSourceUrlEvent (line 430) | private isSourceUrlEvent(event: PostEvent): boolean { method addSourceUrl (line 440) | private addSourceUrl( method addPostedFile (line 456) | private addPostedFile( method shouldSkipAccount (line 479) | shouldSkipAccount(context: ResumeContext, accountId: AccountId): boole... method shouldSkipFile (line 490) | shouldSkipFile( method getSourceUrlsForAccount (line 518) | getSourceUrlsForAccount( method getAllSourceUrls (line 530) | getAllSourceUrls(context: ResumeContext): string[] { method getSourceUrlsExcludingAccount (line 545) | getSourceUrlsExcludingAccount( FILE: apps/client-server/src/app/remote/models/update-cookies-remote.dto.ts class UpdateCookiesRemoteDto (line 4) | class UpdateCookiesRemoteDto implements UpdateCookiesRemote { FILE: apps/client-server/src/app/remote/remote.controller.ts class RemoteController (line 6) | class RemoteController { method constructor (line 7) | constructor(private readonly remoteService: RemoteService) {} method ping (line 10) | ping(@Param('password') password: string) { method setCookies (line 15) | setCookies(@Body() updateCookies: UpdateCookiesRemoteDto) { FILE: apps/client-server/src/app/remote/remote.middleware.ts class RemotePasswordMiddleware (line 10) | class RemotePasswordMiddleware implements NestMiddleware { method constructor (line 11) | constructor(private readonly remoteService: RemoteService) {} method use (line 13) | async use(req: Request, res: Response, next: NextFunction) { FILE: apps/client-server/src/app/remote/remote.module.ts class RemoteModule (line 12) | class RemoteModule {} FILE: apps/client-server/src/app/remote/remote.service.ts class RemoteService (line 8) | class RemoteService { method validate (line 11) | async validate(password: string): Promise { method setCookies (line 32) | async setCookies(updateCookies: UpdateCookiesRemoteDto) { method convertCookie (line 61) | private convertCookie(cookie: Electron.Cookie): Electron.CookiesSetDet... FILE: apps/client-server/src/app/security-and-authentication/ssl.ts class SSL (line 7) | class SSL { method getOrCreateSSL (line 10) | static async getOrCreateSSL(): Promise<{ key: string; cert: string }> { FILE: apps/client-server/src/app/settings/dtos/update-settings.dto.ts class UpdateSettingsDto (line 8) | class UpdateSettingsDto implements IUpdateSettingsDto { FILE: apps/client-server/src/app/settings/dtos/update-startup-settings.dto.ts class UpdateStartupSettingsDto (line 5) | class UpdateStartupSettingsDto implements StartupOptions { FILE: apps/client-server/src/app/settings/settings.controller.ts class SettingsController (line 15) | class SettingsController extends PostyBirbController<'SettingsSchema'> { method constructor (line 16) | constructor(readonly service: SettingsService) { method update (line 23) | update( method getStartupSettings (line 33) | getStartupSettings() { method updateStartupSettings (line 38) | updateStartupSettings(@Body() startupOptions: UpdateStartupSettingsDto) { FILE: apps/client-server/src/app/settings/settings.events.ts type SettingsEventTypes (line 5) | type SettingsEventTypes = SettingsUpdateEvent; class SettingsUpdateEvent (line 7) | class SettingsUpdateEvent implements WebsocketEvent { FILE: apps/client-server/src/app/settings/settings.module.ts class SettingsModule (line 10) | class SettingsModule {} FILE: apps/client-server/src/app/settings/settings.service.ts class SettingsService (line 21) | class SettingsService method constructor (line 25) | constructor(@Optional() webSocket: WSGateway) { method onModuleInit (line 35) | async onModuleInit() { method create (line 105) | create(createDto: unknown): Promise { method createDefaultSettings (line 112) | private createDefaultSettings() { method emit (line 129) | async emit() { method getStartupSettings (line 139) | public getStartupSettings() { method getDefaultSettings (line 146) | public getDefaultSettings() { method updateStartupSettings (line 156) | public updateStartupSettings(startUpOptions: Partial) { method update (line 181) | async update(id: EntityId, updateSettingsDto: UpdateSettingsDto) { method testRemoteConnection (line 196) | async testRemoteConnection( FILE: apps/client-server/src/app/submission/dtos/apply-multi-submission.dto.ts class ApplyMultiSubmissionDto (line 5) | class ApplyMultiSubmissionDto implements IApplyMultiSubmissionDto { FILE: apps/client-server/src/app/submission/dtos/apply-template-options.dto.ts class ApplyTemplateOptionsDto (line 16) | class ApplyTemplateOptionsDto { FILE: apps/client-server/src/app/submission/dtos/create-submission.dto.ts function parseJsonField (line 22) | function parseJsonField(value: unknown): T | undefined { class CreateSubmissionDto (line 36) | class CreateSubmissionDto implements ICreateSubmissionDto { FILE: apps/client-server/src/app/submission/dtos/reorder-submission-files.dto.ts class ReorderSubmissionFilesDto (line 4) | class ReorderSubmissionFilesDto implements IReorderSubmissionFilesDto { FILE: apps/client-server/src/app/submission/dtos/reorder-submission.dto.ts class ReorderSubmissionDto (line 5) | class ReorderSubmissionDto { FILE: apps/client-server/src/app/submission/dtos/template-option.dto.ts class TemplateOptionDto (line 8) | class TemplateOptionDto { FILE: apps/client-server/src/app/submission/dtos/update-alt-file.dto.ts class UpdateAltFileDto (line 4) | class UpdateAltFileDto implements IUpdateAltFileDto { FILE: apps/client-server/src/app/submission/dtos/update-submission-template-name.dto.ts class UpdateSubmissionTemplateNameDto (line 5) | class UpdateSubmissionTemplateNameDto FILE: apps/client-server/src/app/submission/dtos/update-submission.dto.ts class UpdateSubmissionDto (line 19) | class UpdateSubmissionDto implements IUpdateSubmissionDto { FILE: apps/client-server/src/app/submission/file-submission.controller.ts type Target (line 32) | type Target = 'file' | 'thumbnail'; class FileSubmissionController (line 41) | class FileSubmissionController { method constructor (line 42) | constructor( method findOne (line 47) | private findOne(id: SubmissionId) { method appendFile (line 56) | async appendFile( method replaceFile (line 80) | async replaceFile( method removeFile (line 103) | async removeFile( method getAltFileText (line 122) | async getAltFileText(@Param('id') id: EntityId) { method updateAltFileText (line 128) | async updateAltFileText( method updateMetadata (line 137) | async updateMetadata( method reorderFiles (line 146) | async reorderFiles(@Body() update: ReorderSubmissionFilesDto) { FILE: apps/client-server/src/app/submission/services/file-submission.service.ts class FileSubmissionService (line 36) | class FileSubmissionService method constructor (line 40) | constructor( method populate (line 52) | async populate( method guardIsFileSubmission (line 65) | private guardIsFileSubmission(submission: ISubmission) { method guardFileTypeCompatibility (line 87) | private guardFileTypeCompatibility( method appendFile (line 118) | async appendFile(id: EntityId | FileSubmission, file: MulterFileInfo) { method replaceFile (line 142) | async replaceFile(id: EntityId, fileId: EntityId, file: MulterFileInfo) { method replaceThumbnail (line 158) | async replaceThumbnail( method removeFile (line 177) | async removeFile(id: SubmissionId, fileId: EntityId) { method getAltFileText (line 189) | getAltFileText(id: EntityId) { method updateAltFileText (line 193) | updateAltFileText(id: EntityId, update: UpdateAltFileDto) { method updateMetadata (line 197) | updateMetadata(id: EntityId, update: SubmissionFileMetadata) { method reorderFiles (line 201) | reorderFiles(update: ReorderSubmissionFilesDto) { FILE: apps/client-server/src/app/submission/services/message-submission.service.ts class MessageSubmissionService (line 7) | class MessageSubmissionService method populate (line 10) | async populate( FILE: apps/client-server/src/app/submission/services/submission-service.interface.ts type ISubmissionService (line 5) | interface ISubmissionService< FILE: apps/client-server/src/app/submission/services/submission.service.spec.ts function setup (line 97) | function setup(): string { function createAccount (line 103) | async function createAccount() { function createSubmissionDto (line 113) | function createSubmissionDto(): CreateSubmissionDto { function createMulterData (line 120) | function createMulterData(path: string): MulterFileInfo { FILE: apps/client-server/src/app/submission/services/submission.service.ts type SubmissionEntity (line 49) | type SubmissionEntity = Submission; class SubmissionService (line 56) | class SubmissionService method constructor (line 62) | constructor( method onModuleInit (line 108) | async onModuleInit() { method normalizeOrders (line 121) | private async normalizeOrders() { method cleanupUninitializedSubmissions (line 144) | private async cleanupUninitializedSubmissions() { method emit (line 163) | public async emit() { method performEmit (line 178) | private async performEmit() { method findAllAsDto (line 187) | public async findAllAsDto(): Promise { method create (line 53) | async create( method duplicate (line 86) | async duplicate(@Param('id') id: SubmissionId) { method unarchive (line 93) | async unarchive(@Param('id') id: SubmissionId) { method archive (line 100) | async archive(@Param('id') id: SubmissionId) { method reorder (line 109) | async reorder(@Body() reorderDto: ReorderSubmissionDto) { method update (line 120) | async update( method updateTemplateName (line 132) | async updateTemplateName( method applyMulti (line 144) | async applyMulti(@Body() applyMultiSubmissionDto: ApplyMultiSubmission... method applyTemplateOptions (line 151) | async applyTemplateOptions( method applyTemplate (line 160) | async applyTemplate( FILE: apps/client-server/src/app/submission/submission.events.ts type SubmissionEventTypes (line 5) | type SubmissionEventTypes = SubmissionUpdateEvent; class SubmissionUpdateEvent (line 7) | class SubmissionUpdateEvent FILE: apps/client-server/src/app/submission/submission.module.ts method destination (line 28) | destination(req, file, cb) { method filename (line 31) | filename(req, file, cb) { class SubmissionModule (line 45) | class SubmissionModule {} FILE: apps/client-server/src/app/tag-converters/dtos/create-tag-converter.dto.ts class CreateTagConverterDto (line 5) | class CreateTagConverterDto implements ICreateTagConverterDto { FILE: apps/client-server/src/app/tag-converters/dtos/update-tag-converter.dto.ts class UpdateTagConverterDto (line 5) | class UpdateTagConverterDto implements IUpdateTagConverterDto { FILE: apps/client-server/src/app/tag-converters/tag-converter.events.ts type TagConverterEventTypes (line 5) | type TagConverterEventTypes = TagConverterUpdateEvent; class TagConverterUpdateEvent (line 7) | class TagConverterUpdateEvent implements WebsocketEvent { method constructor (line 14) | constructor(@Optional() webSocket?: WSGateway) { method create (line 21) | async create(createDto: CreateTagConverterDto): Promise { method update (line 29) | update(id: EntityId, update: UpdateTagConverterDto) { method convert (line 43) | async convert( method emit (line 68) | protected async emit() { FILE: apps/client-server/src/app/tag-groups/dtos/create-tag-group.dto.ts class CreateTagGroupDto (line 5) | class CreateTagGroupDto implements ICreateTagGroupDto { FILE: apps/client-server/src/app/tag-groups/dtos/update-tag-group.dto.ts class UpdateTagGroupDto (line 5) | class UpdateTagGroupDto implements IUpdateTagGroupDto { FILE: apps/client-server/src/app/tag-groups/tag-group.events.ts type TagGroupEventTypes (line 5) | type TagGroupEventTypes = TagGroupUpdateEvent; class TagGroupUpdateEvent (line 7) | class TagGroupUpdateEvent implements WebsocketEvent { FILE: apps/client-server/src/app/tag-groups/tag-groups.controller.ts class TagGroupsController (line 20) | class TagGroupsController extends PostyBirbController<'TagGroupSchema'> { method constructor (line 21) | constructor(readonly service: TagGroupsService) { method create (line 28) | create(@Body() createDto: CreateTagGroupDto) { method update (line 35) | update(@Param('id') id: EntityId, @Body() updateDto: UpdateTagGroupDto) { FILE: apps/client-server/src/app/tag-groups/tag-groups.module.ts class TagGroupsModule (line 9) | class TagGroupsModule {} FILE: apps/client-server/src/app/tag-groups/tag-groups.service.spec.ts function createTagGroupDto (line 11) | function createTagGroupDto(name: string, tags: string[]) { FILE: apps/client-server/src/app/tag-groups/tag-groups.service.ts class TagGroupsService (line 12) | class TagGroupsService extends PostyBirbService<'TagGroupSchema'> { method constructor (line 13) | constructor(@Optional() webSocket?: WSGateway) { method create (line 18) | async create(createDto: CreateTagGroupDto): Promise { method update (line 26) | update(id: EntityId, update: UpdateTagGroupDto) { method emit (line 31) | protected async emit() { FILE: apps/client-server/src/app/update/update.controller.ts class UpdateController (line 6) | class UpdateController { method constructor (line 7) | constructor(private readonly service: UpdateService) {} method checkForUpdates (line 15) | checkForUpdates(): UpdateState { method update (line 20) | update() { method install (line 28) | install() { FILE: apps/client-server/src/app/update/update.events.ts type UpdateEventTypes (line 5) | type UpdateEventTypes = UpdateUpdateEvent; class UpdateUpdateEvent (line 7) | class UpdateUpdateEvent implements WebsocketEvent { FILE: apps/client-server/src/app/update/update.module.ts class UpdateModule (line 11) | class UpdateModule {} FILE: apps/client-server/src/app/update/update.service.ts class UpdateService (line 15) | class UpdateService { method constructor (line 27) | constructor(@Optional() private readonly webSocket?: WSGateway) { method emit (line 40) | private emit() { method registerListeners (line 49) | private registerListeners() { method onUpdateDownloaded (line 64) | private onUpdateDownloaded() { method onUpdateAvailable (line 74) | private onUpdateAvailable(update: UpdateInfo) { method onUpdateError (line 83) | private onUpdateError(error: Error) { method onDownloadProgress (line 93) | private onDownloadProgress(progress: ProgressInfo) { method checkForUpdates (line 101) | public checkForUpdates() { method getUpdateState (line 112) | public getUpdateState() { method update (line 116) | public update() { method install (line 138) | public install() { FILE: apps/client-server/src/app/user-converters/dtos/create-user-converter.dto.ts class CreateUserConverterDto (line 5) | class CreateUserConverterDto implements ICreateUserConverterDto { FILE: apps/client-server/src/app/user-converters/dtos/update-user-converter.dto.ts class UpdateUserConverterDto (line 5) | class UpdateUserConverterDto FILE: apps/client-server/src/app/user-converters/user-converter.events.ts type UserConverterEventTypes (line 5) | type UserConverterEventTypes = UserConverterUpdateEvent; class UserConverterUpdateEvent (line 7) | class UserConverterUpdateEvent implements WebsocketEvent { method update (line 29) | update(id: EntityId, update: UpdateUserConverterDto) { method convert (line 41) | async convert(instance: Website, username: string): Promise = { function isBlockNoteFormat (line 60) | function isBlockNoteFormat(desc: unknown): desc is BNBlock[] { function convertStyles (line 69) | function convertStyles(styles: Record): TipTapMark[] { function convertInlineContent (line 114) | function convertInlineContent( function convertBlock (line 169) | function convertBlock(block: BNBlock): TipTapNode[] { function extractBlockAttrs (line 354) | function extractBlockAttrs( function mergeAdjacentLists (line 381) | function mergeAdjacentLists(nodes: TipTapNode[]): TipTapNode[] { function convertBlockNoteToTipTap (line 403) | function convertBlockNoteToTipTap(blocks: BNBlock[]): Description { function migrateDescription (line 421) | function migrateDescription(desc: unknown): Description { FILE: apps/client-server/src/app/utils/coerce.util.ts class Coerce (line 1) | class Coerce { method boolean (line 2) | static boolean(value: string | boolean): boolean { FILE: apps/client-server/src/app/utils/filesize.util.ts class FileSize (line 5) | class FileSize { method megabytes (line 6) | static megabytes(size: number): number { method bytesToMB (line 10) | static bytesToMB(size: number): number { FILE: apps/client-server/src/app/utils/html-parser.util.ts class HtmlParserUtil (line 3) | class HtmlParserUtil { method getInputValue (line 4) | public static getInputValue(html: string, name: string, index = 0): st... FILE: apps/client-server/src/app/utils/select-option.util.ts class SelectOptionUtil (line 3) | class SelectOptionUtil { method findOptionById (line 4) | static findOptionById( FILE: apps/client-server/src/app/utils/wait.util.ts function wait (line 3) | function wait(milliseconds: number): Promise { function waitUntil (line 9) | async function waitUntil( function waitUntilPromised (line 27) | async function waitUntilPromised( FILE: apps/client-server/src/app/validation/validation.module.ts class ValidationModule (line 13) | class ValidationModule {} FILE: apps/client-server/src/app/validation/validation.service.ts type ValidationCacheRecord (line 30) | type ValidationCacheRecord = { class ValidationService (line 42) | class ValidationService { method constructor (line 52) | constructor( method getCachedValidation (line 59) | private getCachedValidation( method clearCachedValidation (line 65) | private clearCachedValidation(submissionId: SubmissionId) { method setCachedValidation (line 69) | private setCachedValidation( method validateSubmission (line 99) | public async validateSubmission( method isStale (line 117) | private isStale(submission: Submission): boolean { method validate (line 143) | public async validate( method validateWebsiteInstance (line 243) | private async validateWebsiteInstance( FILE: apps/client-server/src/app/validation/validators/common-field-validators.ts function validateRequiredTextField (line 6) | async function validateRequiredTextField({ function validateRequiredSelectField (line 45) | async function validateRequiredSelectField({ function validateRequiredRadioField (line 79) | async function validateRequiredRadioField({ function validateRequiredBooleanField (line 108) | async function validateRequiredBooleanField({ function validateRequiredDescriptionField (line 137) | async function validateRequiredDescriptionField({ FILE: apps/client-server/src/app/validation/validators/datetime-field-validators.ts function validateDateTimeFormat (line 6) | async function validateDateTimeFormat({ function validateDateTimeMinimum (line 42) | async function validateDateTimeMinimum({ function validateDateTimeMaximum (line 86) | async function validateDateTimeMaximum({ function validateDateTimeRange (line 131) | async function validateDateTimeRange({ FILE: apps/client-server/src/app/validation/validators/description-validators.ts function validateDescriptionMaxLength (line 5) | async function validateDescriptionMaxLength({ function validateDescriptionMinLength (line 32) | async function validateDescriptionMinLength({ function validateTagsPresence (line 59) | async function validateTagsPresence({ function validateTitlePresence (line 95) | async function validateTitlePresence({ FILE: apps/client-server/src/app/validation/validators/file-submission-validators.ts function isFileHandlingWebsite (line 20) | function isFileHandlingWebsite( function isFileSubmission (line 26) | function isFileSubmission( function isFileFiltered (line 32) | function isFileFiltered( function validateTextFileRequiresFallback (line 43) | async function validateTextFileRequiresFallback({ function validateNotAllFilesIgnored (line 90) | async function validateNotAllFilesIgnored({ function validateAcceptedFiles (line 115) | async function validateAcceptedFiles({ function validateFileBatchSize (line 186) | async function validateFileBatchSize({ function validateFileSize (line 217) | async function validateFileSize({ function validateImageFileDimensions (line 256) | async function validateImageFileDimensions({ FILE: apps/client-server/src/app/validation/validators/select-field-validators.ts function isSelectField (line 8) | function isSelectField(field: FieldAggregateType): field is SelectFieldT... function validateSelectFieldMinSelected (line 12) | async function validateSelectFieldMinSelected({ function validateSelectFieldValidOptions (line 42) | async function validateSelectFieldValidOptions({ function flattenSelectOptions (line 116) | function flattenSelectOptions(options: SelectOption[]): string[] { FILE: apps/client-server/src/app/validation/validators/tag-validators.ts function validateMaxTags (line 3) | async function validateMaxTags({ function validateMinTags (line 23) | async function validateMinTags({ function validateMaxTagLength (line 43) | async function validateMaxTagLength({ function validateTagHashtag (line 64) | async function validateTagHashtag({ FILE: apps/client-server/src/app/validation/validators/title-validators.ts function validateTitleMaxLength (line 3) | async function validateTitleMaxLength({ function validateTitleMinLength (line 23) | async function validateTitleMinLength({ FILE: apps/client-server/src/app/validation/validators/validator.type.ts type ValidatorParams (line 13) | type ValidatorParams = { type Validator (line 24) | type Validator = (props: ValidatorParams) => Promise; class FieldValidator (line 26) | class FieldValidator extends SubmissionValidator { method constructor (line 27) | constructor( FILE: apps/client-server/src/app/web-socket/models/web-socket-event.ts method constructor (line 6) | constructor(data: D) { FILE: apps/client-server/src/app/web-socket/web-socket-adapter.ts class WebSocketAdapter (line 4) | class WebSocketAdapter extends IoAdapter { method createIOServer (line 5) | createIOServer( FILE: apps/client-server/src/app/web-socket/web-socket-gateway.ts class WSGateway (line 11) | class WSGateway implements OnGatewayInit { method afterInit (line 15) | afterInit(server: Server) { method emit (line 25) | public emit(socketEvent: WebSocketEvents) { FILE: apps/client-server/src/app/web-socket/web-socket.events.ts type WebSocketEvents (line 13) | type WebSocketEvents = FILE: apps/client-server/src/app/web-socket/web-socket.module.ts class WebSocketModule (line 9) | class WebSocketModule {} FILE: apps/client-server/src/app/website-options/dtos/create-website-options.dto.ts class CreateWebsiteOptionsDto (line 10) | class CreateWebsiteOptionsDto implements ICreateWebsiteOptionsDto { FILE: apps/client-server/src/app/website-options/dtos/preview-description.dto.ts class PreviewDescriptionDto (line 9) | class PreviewDescriptionDto implements IPreviewDescriptionDto { FILE: apps/client-server/src/app/website-options/dtos/update-submission-website-options.dto.ts class UpdateSubmissionWebsiteOptionsDto (line 9) | class UpdateSubmissionWebsiteOptionsDto FILE: apps/client-server/src/app/website-options/dtos/update-website-options.dto.ts class UpdateWebsiteOptionsDto (line 5) | class UpdateWebsiteOptionsDto implements IUpdateWebsiteOptionsDto { FILE: apps/client-server/src/app/website-options/dtos/validate-website-options.dto.ts class ValidateWebsiteOptionsDto (line 9) | class ValidateWebsiteOptionsDto implements IValidateWebsiteOptionsDto { FILE: apps/client-server/src/app/website-options/website-options.controller.ts class WebsiteOptionsController (line 24) | class WebsiteOptionsController extends PostyBirbController<'WebsiteOptio... method constructor (line 25) | constructor(readonly service: WebsiteOptionsService) { method create (line 37) | create( method update (line 47) | update( method updateSubmission (line 58) | updateSubmission( method validate (line 72) | validate(@Body() validateOptionsDto: ValidateWebsiteOptionsDto) { method validateSubmission (line 80) | validateSubmission(@Param('submissionId') submissionId: SubmissionId) { method previewDescription (line 88) | previewDescription(@Body() dto: PreviewDescriptionDto) { FILE: apps/client-server/src/app/website-options/website-options.module.ts class WebsiteOptionsModule (line 26) | class WebsiteOptionsModule {} FILE: apps/client-server/src/app/website-options/website-options.service.spec.ts function createAccount (line 39) | async function createAccount() { function createSubmission (line 49) | async function createSubmission() { FILE: apps/client-server/src/app/website-options/website-options.service.ts class WebsiteOptionsService (line 50) | class WebsiteOptionsService method constructor (line 58) | constructor( method onModuleInit (line 89) | async onModuleInit() { method migrateBlockNoteDescriptions (line 98) | private async migrateBlockNoteDescriptions() { method createOption (line 180) | async createOption( method createOptionInsertObject (line 203) | async createOptionInsertObject( method create (line 270) | async create(createDto: CreateWebsiteOptionsDto) { method update (line 335) | async update(id: EntityId, update: UpdateWebsiteOptionsDto) { method createDefaultSubmissionOptions (line 351) | async createDefaultSubmissionOptions( method populateDefaultWebsiteOptions (line 375) | private async populateDefaultWebsiteOptions( method validateWebsiteOption (line 419) | async validateWebsiteOption( method validateSubmission (line 439) | async validateSubmission( method previewDescription (line 456) | async previewDescription( method updateSubmissionOptions (line 505) | async updateSubmissionOptions( method onCustomShortcutDelete (line 542) | private async onCustomShortcutDelete(id: EntityId) { method filterCustomShortcut (line 579) | public filterCustomShortcut( FILE: apps/client-server/src/app/websites/commons/post-builder.spec.ts function createPostingFile (line 26) | function createPostingFile(overrides = {}) { FILE: apps/client-server/src/app/websites/commons/post-builder.ts type FieldValue (line 16) | type FieldValue = string | number | boolean | null | undefined | object; type Value (line 21) | type Value = FieldValue | FieldValue[]; class PostBuilder (line 38) | class PostBuilder { method constructor (line 87) | constructor( method withHeader (line 105) | withHeader(key: string, value: string) { method withHeaders (line 125) | withHeaders(headers: Record) { method asMultipart (line 143) | asMultipart() { method asJson (line 154) | asJson() { method asUrlEncoded (line 165) | asUrlEncoded(skipIndex = false) { method asRawData (line 183) | asRawData() { method withData (line 204) | withData(data: Record) { method getField (line 209) | getField(key: string): T | undefined { method removeField (line 213) | removeField(key: string) { method setField (line 235) | setField(key: string, value: Value) { method setConditional (line 256) | setConditional( method forEach (line 280) | forEach( method addFile (line 304) | addFile(key: string, file: PostingFile | FormFile) { method addFiles (line 322) | addFiles(key: string, files: PostingFile[]) { method addThumbnail (line 343) | addThumbnail(key: string, file: PostingFile) { method whenTrue (line 370) | whenTrue(predicate: boolean, callback: (builder: PostBuilder) => void) { method send (line 397) | async send(url: string) { method build (line 485) | public build(): Record { method convert (line 525) | private convert(value: FieldValue | PostingFile): FieldValue | FormFile { method insert (line 540) | private insert( method getSanitizedData (line 555) | public getSanitizedData(): Record { method sanitizeDataForLogging (line 559) | private sanitizeDataForLogging( FILE: apps/client-server/src/app/websites/commons/validator-passthru.ts function validatorPassthru (line 3) | async function validatorPassthru(): Promise< FILE: apps/client-server/src/app/websites/commons/validator.ts type KeysToOmit (line 8) | type KeysToOmit = type ValidationArray (line 14) | type ValidationArray = ValidationMess... class SubmissionValidator (line 19) | class SubmissionValidator { method error (line 31) | error( method warning (line 46) | warning( method result (line 57) | get result(): SimpleValidationResult { FILE: apps/client-server/src/app/websites/decorators/disable-ads.decorator.ts function DisableAds (line 3) | function DisableAds() { FILE: apps/client-server/src/app/websites/decorators/login-flow.decorator.ts function UserLoginFlow (line 11) | function UserLoginFlow(url: string) { function CustomLoginFlow (line 28) | function CustomLoginFlow(loginComponentName?: string) { FILE: apps/client-server/src/app/websites/decorators/supports-files.decorator.ts function SupportsFiles (line 16) | function SupportsFiles( function getSupportedFileSize (line 52) | function getSupportedFileSize( FILE: apps/client-server/src/app/websites/decorators/supports-username-shortcut.decorator.ts function SupportsUsernameShortcut (line 10) | function SupportsUsernameShortcut(usernameShortcut: UsernameShortcut) { FILE: apps/client-server/src/app/websites/decorators/website-decorator-props.ts type WebsiteDecoratorProps (line 12) | type WebsiteDecoratorProps = { function defaultWebsiteDecoratorProps (line 58) | function defaultWebsiteDecoratorProps(): WebsiteDecoratorProps { function injectWebsiteDecoratorProps (line 73) | function injectWebsiteDecoratorProps( function validateWebsiteDecoratorProps (line 91) | function validateWebsiteDecoratorProps( FILE: apps/client-server/src/app/websites/decorators/website-metadata.decorator.ts function WebsiteMetadata (line 6) | function WebsiteMetadata(metadata: IWebsiteMetadata) { FILE: apps/client-server/src/app/websites/dtos/oauth-website-request.dto.ts class OAuthWebsiteRequestDto (line 5) | class OAuthWebsiteRequestDto FILE: apps/client-server/src/app/websites/implementations/artconomy/artconomy.website.ts class Artconomy (line 52) | class Artconomy method onLogin (line 63) | public async onLogin(): Promise { method createFileModel (line 96) | createFileModel(): ArtconomyFileSubmission { method calculateImageResize (line 100) | calculateImageResize(file: ISubmissionFile): ImageResizeProps { method onPostFileSubmission (line 104) | async onPostFileSubmission( method createMessageModel (line 196) | createMessageModel(): ArtconomyMessageSubmission { method onPostMessageSubmission (line 200) | async onPostMessageSubmission( method getRating (line 243) | private getRating(rating: SubmissionRating): number { FILE: apps/client-server/src/app/websites/implementations/artconomy/models/artconomy-account-data.ts type ArtconomyAccountData (line 3) | type ArtconomyAccountData = { FILE: apps/client-server/src/app/websites/implementations/artconomy/models/artconomy-file-submission.ts class ArtconomyFileSubmission (line 15) | class ArtconomyFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/artconomy/models/artconomy-message-submission.ts class ArtconomyMessageSubmission (line 5) | class ArtconomyMessageSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/aryion/aryion.website.ts class Aryion (line 58) | class Aryion method onLogin (line 69) | public async onLogin(): Promise { method getFolders (line 90) | private async getFolders($: HTMLElement): Promise { method parseFolderItem (line 108) | private parseFolderItem(li: HTMLElement, parent: SelectOption[]): void { method createFileModel (line 146) | createFileModel(): AryionFileSubmission { method calculateImageResize (line 150) | calculateImageResize(): ImageResizeProps { method onPostFileSubmission (line 154) | async onPostFileSubmission( method onValidateFileSubmission (line 226) | async onValidateFileSubmission( FILE: apps/client-server/src/app/websites/implementations/aryion/models/aryion-account-data.ts type AryionAccountData (line 3) | type AryionAccountData = { FILE: apps/client-server/src/app/websites/implementations/aryion/models/aryion-file-submission.ts class AryionFileSubmission (line 14) | class AryionFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/bluesky/bluesky.website.ts class Bluesky (line 85) | class Bluesky method getLoggedInAgent (line 110) | private getLoggedInAgent(): AtpAgent { method onLogin (line 115) | public async onLogin(): Promise { method createFileModel (line 135) | createFileModel(): BlueskyFileSubmission { method calculateImageResize (line 139) | calculateImageResize(file: ISubmissionFile): ImageResizeProps { method getDescriptionConverter (line 147) | getDescriptionConverter(): BaseConverter { method onPostFileSubmission (line 151) | async onPostFileSubmission( method onPostMessageSubmission (line 168) | async onPostMessageSubmission( method post (line 182) | private async post( method createPostResponse (line 213) | private createPostResponse( method createMessageModel (line 246) | createMessageModel(): BlueskyMessageSubmission { method onValidateFileSubmission (line 250) | async onValidateFileSubmission( method onValidateMessageSubmission (line 284) | async onValidateMessageSubmission( method validateRating (line 296) | private validateRating( method validateDescription (line 321) | private async validateDescription( method validateReplyToUrl (line 340) | private validateReplyToUrl( method getReplyRef (line 356) | private async getReplyRef( method getPostIdFromUrl (line 375) | private getPostIdFromUrl(url: string): { repo: string; rkey: string } ... method countFileTypes (line 388) | private countFileTypes(files: (PostingFile | ISubmissionFile)[]): { method createThreadgate (line 414) | private createThreadgate( method uploadEmbeds (line 446) | private async uploadEmbeds( method uploadImage (line 491) | private async uploadImage( method checkVideoUploadLimits (line 519) | private async checkVideoUploadLimits(agent: AtpAgent): Promise { method uploadVideo (line 549) | private async uploadVideo( method generateVideoName (line 587) | private generateVideoName(): string { method waitForVideoProcessing (line 597) | private async waitForVideoProcessing(jobId: string): Promise { method checkFetchResult (line 638) | private async checkFetchResult( method getAuthToken (line 661) | private async getAuthToken( method tryGetErrorBody (line 685) | private async tryGetErrorBody(res: Response): Promise { method getRichText (line 694) | async getRichText(description: string) { class BlueskyConverter (line 768) | class BlueskyConverter extends PlainTextConverter { method convertTextNode (line 775) | convertTextNode(node: TipTapNode, context: ConversionContext): string { method convertBlocks (line 794) | convertBlocks(nodes: TipTapNode[], context: ConversionContext): string { type RichTextLinkPosition (line 819) | interface RichTextLinkPosition { type DescriptionWithLinks (line 825) | interface DescriptionWithLinks { FILE: apps/client-server/src/app/websites/implementations/bluesky/models/bluesky-file-submission.ts class BlueskyFileSubmission (line 15) | class BlueskyFileSubmission extends BaseWebsiteOptions { method processTag (line 29) | override processTag(tag: string) { FILE: apps/client-server/src/app/websites/implementations/bluesky/models/bluesky-message-submission.ts class BlueskyMessageSubmission (line 3) | class BlueskyMessageSubmission extends BlueskyFileSubmission {} FILE: apps/client-server/src/app/websites/implementations/cara/cara.website.ts type CaraPostResult (line 31) | type CaraPostResult = { type S3UploadCredentials (line 62) | type S3UploadCredentials = { type S3UploadRequest (line 75) | type S3UploadRequest = { type CaraMediaItem (line 84) | type CaraMediaItem = { type CaraUploadResult (line 99) | type CaraUploadResult = CaraMediaItem[]; class Cara (line 141) | class Cara method onLogin (line 152) | public async onLogin(): Promise { method createFileModel (line 171) | createFileModel(): CaraFileSubmission { method calculateImageResize (line 175) | calculateImageResize(file: ISubmissionFile): ImageResizeProps { method getS3UploadCredentials (line 182) | private async getS3UploadCredentials( method uploadToS3 (line 206) | private async uploadToS3( method uploadImage (line 240) | private async uploadImage( method onPostFileSubmission (line 328) | async onPostFileSubmission( method onValidateFileSubmission (line 400) | async onValidateFileSubmission( method createMessageModel (line 415) | createMessageModel(): CaraMessageSubmission { method onPostMessageSubmission (line 419) | async onPostMessageSubmission( method onValidateMessageSubmission (line 458) | async onValidateMessageSubmission( FILE: apps/client-server/src/app/websites/implementations/cara/models/cara-account-data.ts type CaraAccountData (line 2) | type CaraAccountData = {}; FILE: apps/client-server/src/app/websites/implementations/cara/models/cara-file-submission.ts class CaraFileSubmission (line 14) | class CaraFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/cara/models/cara-message-submission.ts class CaraMessageSubmission (line 10) | class CaraMessageSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/custom/custom.website.ts class Custom (line 35) | class Custom method onLogin (line 60) | public async onLogin(): Promise { method onWebsiteDataChange (line 74) | async onWebsiteDataChange(newData: CustomAccountData): Promise { method createFileModel (line 82) | createFileModel(): CustomFileSubmission { method calculateImageResize (line 86) | calculateImageResize(file: ISubmissionFile): ImageResizeProps { method onPostFileSubmission (line 90) | async onPostFileSubmission( method createMessageModel (line 187) | createMessageModel(): CustomMessageSubmission { method onPostMessageSubmission (line 191) | async onPostMessageSubmission( method getRuntimeParser (line 250) | getRuntimeParser(): DescriptionType { FILE: apps/client-server/src/app/websites/implementations/custom/models/custom-file-submission.ts class CustomFileSubmission (line 5) | class CustomFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/custom/models/custom-message-submission.ts class CustomMessageSubmission (line 5) | class CustomMessageSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/default/default.website.ts class DefaultWebsite (line 22) | class DefaultWebsite method createMessageModel (line 28) | createMessageModel(): BaseWebsiteOptions { method createFileModel (line 32) | createFileModel(): BaseWebsiteOptions { method onPostMessageSubmission (line 36) | onPostMessageSubmission( method onValidateMessageSubmission (line 43) | async onValidateMessageSubmission( method calculateImageResize (line 49) | calculateImageResize(file: ISubmissionFile): ImageResizeProps | undefi... method onPostFileSubmission (line 53) | onPostFileSubmission( method onValidateFileSubmission (line 61) | async onValidateFileSubmission( method onLogin (line 71) | public onLogin(): Promise { FILE: apps/client-server/src/app/websites/implementations/derpibooru/derpibooru.website.ts class Derpibooru (line 32) | class Derpibooru extends PhilomenaWebsite { method createFileModel (line 35) | createFileModel(): DerpibooruFileSubmission { FILE: apps/client-server/src/app/websites/implementations/derpibooru/models/derpibooru-file-submission.ts class DerpibooruFileSubmission (line 3) | class DerpibooruFileSubmission extends PhilomenaFileSubmission {} FILE: apps/client-server/src/app/websites/implementations/deviant-art/deviant-art-description-converter.ts method validate (line 42) | validate(url) { method addCommands (line 52) | addCommands() { class DeviantArtDescriptionConverter (line 69) | class DeviantArtDescriptionConverter { method convert (line 70) | static convert(html: string): string { FILE: apps/client-server/src/app/websites/implementations/deviant-art/deviant-art.website.ts type DeviantArtFolder (line 32) | interface DeviantArtFolder { class DeviantArt (line 72) | class DeviantArt method onLogin (line 87) | public async onLogin(): Promise { method getCSRF (line 106) | private async getCSRF(accountId = this.accountId) { method getFolders (line 113) | private async getFolders(username: string) { method createFileModel (line 173) | createFileModel(): DeviantArtFileSubmission { method calculateImageResize (line 177) | calculateImageResize(file: ISubmissionFile): ImageResizeProps { method onPostFileSubmission (line 181) | async onPostFileSubmission( method onValidateFileSubmission (line 325) | async onValidateFileSubmission( method createMessageModel (line 347) | createMessageModel(): DeviantArtMessageSubmission { method onPostMessageSubmission (line 351) | async onPostMessageSubmission( method stripInvalidCharacters (line 418) | private stripInvalidCharacters(title: string) { FILE: apps/client-server/src/app/websites/implementations/deviant-art/models/deviant-art-account-data.ts type DeviantArtAccountData (line 3) | type DeviantArtAccountData = { FILE: apps/client-server/src/app/websites/implementations/deviant-art/models/deviant-art-file-submission.ts class DeviantArtFileSubmission (line 17) | class DeviantArtFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/deviant-art/models/deviant-art-message-submission.ts class DeviantArtMessageSubmission (line 5) | class DeviantArtMessageSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/discord/discord.website.ts class Discord (line 42) | class Discord method onLogin (line 58) | public async onLogin(): Promise { method createMessageModel (line 80) | createMessageModel(): DiscordMessageSubmission { method createFileModel (line 84) | createFileModel(): DiscordFileSubmission { method calculateImageResize (line 88) | calculateImageResize(): ImageResizeProps { method getDynamicFileSizeLimits (line 92) | getDynamicFileSizeLimits(): DynamicFileSizeLimits { method onPostFileSubmission (line 106) | onPostFileSubmission( method onPostMessageSubmission (line 157) | onPostMessageSubmission( method handleResponse (line 180) | private handleResponse(res: HttpResponse): IPostResponse { method handleError (line 189) | private handleError(error: Error, payload: unknown): IPostResponse { method buildDescription (line 201) | private buildDescription( FILE: apps/client-server/src/app/websites/implementations/discord/models/discord-file-submission.ts class DiscordFileSubmission (line 9) | class DiscordFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/discord/models/discord-message-submission.ts class DiscordMessageSubmission (line 9) | class DiscordMessageSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/e621/e621.website.ts class E621 (line 58) | class E621 method onLogin (line 73) | public async onLogin(): Promise { method createFileModel (line 102) | createFileModel(): E621FileSubmission { method calculateImageResize (line 106) | calculateImageResize(file: ISubmissionFile): ImageResizeProps { method getDescriptionConverter (line 110) | getDescriptionConverter(): BaseConverter { method request (line 116) | private async request( method onPostFileSubmission (line 136) | async onPostFileSubmission( method onValidateFileSubmission (line 190) | async onValidateFileSubmission( method getRating (line 201) | private getRating(rating: SubmissionRating) { method validateUserFeedback (line 214) | private async validateUserFeedback( method validateTags (line 252) | private async validateTags( method tagIsInvalid (line 301) | private tagIsInvalid(context: TagCheckingContext, tag: string) { method validateTag (line 312) | private validateTag(tag: E621Tag, context: TagCheckingContext) { method getUserFeedback (line 332) | private async getUserFeedback(username: string) { method getTagMetadata (line 338) | private async getTagMetadata(formattedTags: string[]) { method getMetadata (line 348) | private async getMetadata(url: string) { class E621Converter (line 368) | class E621Converter extends BBCodeConverter { method convertBlockNode (line 369) | convertBlockNode(node: TipTapNode, context: ConversionContext): string { method convertBlocks (line 378) | convertBlocks(nodes: TipTapNode[], context: ConversionContext): string { type TagCheckingContext (line 387) | interface TagCheckingContext { type E621TagsEmpty (line 394) | interface E621TagsEmpty { type E621Tags (line 399) | type E621Tags = E621Tag[]; type E621Tag (line 402) | interface E621Tag { type E621UserFeedbacksEmpty (line 426) | interface E621UserFeedbacksEmpty { type E621UserFeedbacks (line 431) | type E621UserFeedbacks = E621UserFeedback[]; type E621UserFeedbackCategory (line 434) | enum E621UserFeedbackCategory { type E621UserFeedback (line 441) | interface E621UserFeedback { FILE: apps/client-server/src/app/websites/implementations/e621/models/e621-file-submission.ts class E621FileSubmission (line 10) | class E621FileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/firefish/firefish.website.ts class Firefish (line 47) | class Firefish extends MegalodonWebsite { method getMegalodonInstanceType (line 48) | protected getMegalodonInstanceType(): 'firefish' { method getDefaultMaxDescriptionLength (line 52) | protected getDefaultMaxDescriptionLength(): number { FILE: apps/client-server/src/app/websites/implementations/friendica/friendica.website.ts class Friendica (line 47) | class Friendica extends MegalodonWebsite { method getMegalodonInstanceType (line 48) | protected getMegalodonInstanceType(): 'friendica' { method getDefaultMaxDescriptionLength (line 52) | protected getDefaultMaxDescriptionLength(): number { FILE: apps/client-server/src/app/websites/implementations/fur-affinity/fur-affinity.website.ts class FurAffinity (line 74) | class FurAffinity method onLogin (line 87) | public async onLogin(): Promise { method getFolders (line 111) | private getFolders($: HTMLElement) { method createFileModel (line 153) | createFileModel(): FurAffinityFileSubmission { method calculateImageResize (line 157) | calculateImageResize(): ImageResizeProps { method processForError (line 161) | private processForError(body: string): string | undefined { method onPostFileSubmission (line 177) | async onPostFileSubmission( method onValidateFileSubmission (line 291) | async onValidateFileSubmission( method createMessageModel (line 311) | createMessageModel(): FurAffinityMessageSubmission { method onPostMessageSubmission (line 315) | async onPostMessageSubmission( method getContentType (line 362) | private getContentType(type: FileType) { method getContentCategory (line 376) | private getContentCategory(type: FileType) { method getRating (line 390) | private getRating(rating: SubmissionRating) { FILE: apps/client-server/src/app/websites/implementations/fur-affinity/models/fur-affinity-account-data.ts type FurAffinityAccountData (line 3) | type FurAffinityAccountData = { FILE: apps/client-server/src/app/websites/implementations/fur-affinity/models/fur-affinity-file-submission.ts class FurAffinityFileSubmission (line 21) | class FurAffinityFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/fur-affinity/models/fur-affinity-message-submission.ts class FurAffinityMessageSubmission (line 10) | class FurAffinityMessageSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/furbooru/furbooru.website.ts class Furbooru (line 31) | class Furbooru extends PhilomenaWebsite { method createFileModel (line 34) | createFileModel(): FurbooruFileSubmission { method onPostFileSubmission (line 38) | async onPostFileSubmission( FILE: apps/client-server/src/app/websites/implementations/furbooru/models/furbooru-file-submission.ts class FurbooruFileSubmission (line 5) | class FurbooruFileSubmission extends PhilomenaFileSubmission { FILE: apps/client-server/src/app/websites/implementations/gotosocial/gotosocial.website.ts class GoToSocial (line 47) | class GoToSocial extends MegalodonWebsite { method getMegalodonInstanceType (line 48) | protected getMegalodonInstanceType(): 'gotosocial' { method getDefaultMaxDescriptionLength (line 52) | protected getDefaultMaxDescriptionLength(): number { FILE: apps/client-server/src/app/websites/implementations/hentai-foundry/hentai-foundry.website.ts class HentaiFoundry (line 50) | class HentaiFoundry method onLogin (line 63) | public async onLogin(): Promise { method createFileModel (line 84) | createFileModel(): HentaiFoundryFileSubmission { method createMessageModel (line 88) | createMessageModel(): HentaiFoundryMessageSubmission { method calculateImageResize (line 92) | calculateImageResize(file: ISubmissionFile): ImageResizeProps | undefi... method onPostFileSubmission (line 100) | async onPostFileSubmission( method onPostMessageSubmission (line 211) | async onPostMessageSubmission( method formatTags (line 247) | private formatTags(tags: string[]): string[] { FILE: apps/client-server/src/app/websites/implementations/hentai-foundry/models/hentai-foundry-account-data.ts type HentaiFoundryAccountData (line 3) | type HentaiFoundryAccountData = { FILE: apps/client-server/src/app/websites/implementations/hentai-foundry/models/hentai-foundry-file-submission.ts class HentaiFoundryFileSubmission (line 16) | class HentaiFoundryFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/hentai-foundry/models/hentai-foundry-message-submission.ts class HentaiFoundryMessageSubmission (line 5) | class HentaiFoundryMessageSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/inkbunny/inkbunny.website.ts class Inkbunny (line 78) | class Inkbunny method onLogin (line 122) | public async onLogin(): Promise { method createFileModel (line 153) | createFileModel(): InkbunnyFileSubmission { method calculateImageResize (line 157) | calculateImageResize(): ImageResizeProps { method onPostFileSubmission (line 161) | async onPostFileSubmission( method formatTags (line 259) | private formatTags(tags: string[]): string[] { method getRating (line 265) | private getRating(rating: SubmissionRating): string { FILE: apps/client-server/src/app/websites/implementations/inkbunny/models/inkbunny-file-submission.ts class InkbunnyFileSubmission (line 16) | class InkbunnyFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/instagram/instagram-api-service/instagram-api-service.ts constant GRAPH_API_BASE (line 4) | const GRAPH_API_BASE = 'https://graph.instagram.com/v21.0'; function getInstagramRedirectUri (line 10) | function getInstagramRedirectUri(port: string | number): string { constant CODE_EXPIRY_MS (line 24) | const CODE_EXPIRY_MS = 5 * 60 * 1000; function storeOAuthCode (line 29) | function storeOAuthCode(state: string, code: string): void { function retrieveOAuthCode (line 37) | function retrieveOAuthCode(state: string): string | undefined { type InstagramTokenResult (line 50) | interface InstagramTokenResult { type InstagramLongLivedTokenResult (line 56) | interface InstagramLongLivedTokenResult { type InstagramBusinessAccount (line 62) | interface InstagramBusinessAccount { type InstagramContainerResult (line 67) | interface InstagramContainerResult { type InstagramContainerStatus (line 71) | type InstagramContainerStatus = type InstagramPublishResult (line 78) | interface InstagramPublishResult { type InstagramPublishingLimit (line 82) | interface InstagramPublishingLimit { class InstagramApiService (line 94) | class InstagramApiService { method logger (line 98) | private static get logger(): PostyBirbLogger { method getAuthUrl (line 113) | static getAuthUrl(appId: string, redirectUri: string, state: string): ... method exchangeCodeForToken (line 136) | static async exchangeCodeForToken( method getLongLivedToken (line 175) | static async getLongLivedToken( method refreshLongLivedToken (line 209) | static async refreshLongLivedToken( method getInstagramBusinessAccount (line 240) | static async getInstagramBusinessAccount( method verifyToken (line 269) | static async verifyToken( method createImageContainer (line 295) | static async createImageContainer( method createCarouselContainer (line 342) | static async createCarouselContainer( method checkContainerStatus (line 382) | static async checkContainerStatus( method pollUntilReady (line 403) | static async pollUntilReady( method publishMedia (line 452) | static async publishMedia( method getMediaPermalink (line 484) | static async getMediaPermalink( method checkPublishingLimit (line 510) | static async checkPublishingLimit( FILE: apps/client-server/src/app/websites/implementations/instagram/instagram-blob-service/instagram-blob-service.ts constant FUNCTION_BASE_URL (line 3) | const FUNCTION_BASE_URL = type UploadResponse (line 6) | interface UploadResponse { class InstagramBlobService (line 17) | class InstagramBlobService { method logger (line 20) | private static get logger(): PostyBirbLogger { method upload (line 31) | static async upload( FILE: apps/client-server/src/app/websites/implementations/instagram/instagram.website.ts class Instagram (line 65) | class Instagram method onLogin (line 218) | public async onLogin(): Promise { method createFileModel (line 261) | createFileModel(): InstagramFileSubmission { method calculateImageResize (line 265) | calculateImageResize(file: ISubmissionFile): ImageResizeProps { method onPostFileSubmission (line 280) | async onPostFileSubmission( method onValidateFileSubmission (line 386) | async onValidateFileSubmission( FILE: apps/client-server/src/app/websites/implementations/instagram/models/instagram-file-submission.ts class InstagramFileSubmission (line 15) | class InstagramFileSubmission extends BaseWebsiteOptions { method processTag (line 47) | override processTag(tag: string): string { FILE: apps/client-server/src/app/websites/implementations/itaku/itaku.website.ts type ItakuSessionData (line 31) | type ItakuSessionData = { class Itaku (line 61) | class Itaku method onLogin (line 75) | public async onLogin(): Promise { method retrieveFolders (line 102) | private async retrieveFolders(): Promise { method convertRating (line 157) | private convertRating(rating: SubmissionRating): string { method createFileModel (line 170) | createFileModel(): ItakuFileSubmission { method calculateImageResize (line 174) | calculateImageResize(): ImageResizeProps { method uploadFile (line 178) | private async uploadFile( method postSubmission (line 225) | async postSubmission( method onPostFileSubmission (line 264) | async onPostFileSubmission( method onValidateFileSubmission (line 292) | async onValidateFileSubmission( method createMessageModel (line 315) | createMessageModel(): ItakuMessageSubmission { method onPostMessageSubmission (line 319) | async onPostMessageSubmission( FILE: apps/client-server/src/app/websites/implementations/itaku/models/itaku-account-data.ts type ItakuAccountData (line 3) | type ItakuAccountData = { FILE: apps/client-server/src/app/websites/implementations/itaku/models/itaku-file-submission.ts class ItakuFileSubmission (line 18) | class ItakuFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/itaku/models/itaku-message-submission.ts class ItakuMessageSubmission (line 11) | class ItakuMessageSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/itaku/models/itaku-user-info.ts type ItakuUserInfo (line 1) | type ItakuUserInfo = { FILE: apps/client-server/src/app/websites/implementations/ko-fi/ko-fi.website.ts type KoFiSessionData (line 29) | type KoFiSessionData = { class KoFi (line 43) | class KoFi method onLogin (line 56) | public async onLogin(): Promise { method calculateImageResize (line 92) | calculateImageResize(file: ISubmissionFile): ImageResizeProps | undefi... method extractId (line 96) | private extractId(html: string): string | null { method retrieveAlbums (line 101) | private async retrieveAlbums(id: string): Promise { method createMessageModel (line 133) | createMessageModel(): BaseWebsiteOptions { method createFileModel (line 137) | createFileModel(): KoFiFileSubmission { method onPostFileSubmission (line 141) | async onPostFileSubmission( method onPostMessageSubmission (line 231) | async onPostMessageSubmission( FILE: apps/client-server/src/app/websites/implementations/ko-fi/models/ko-fi-account-data.ts type KoFiAccountData (line 3) | interface KoFiAccountData { FILE: apps/client-server/src/app/websites/implementations/ko-fi/models/ko-fi-file-submission.ts class KoFiFileSubmission (line 17) | class KoFiFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/ko-fi/models/ko-fi-message-submission.ts class KoFiMessageSubmission (line 5) | class KoFiMessageSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/manebooru/manebooru.website.ts class Manebooru (line 32) | class Manebooru extends PhilomenaWebsite { method createFileModel (line 35) | createFileModel(): ManebooruFileSubmission { FILE: apps/client-server/src/app/websites/implementations/manebooru/models/manebooru-file-submission.ts class ManebooruFileSubmission (line 3) | class ManebooruFileSubmission extends PhilomenaFileSubmission {} FILE: apps/client-server/src/app/websites/implementations/mastodon/mastodon.website.ts class Mastodon (line 47) | class Mastodon extends MegalodonWebsite { method getMegalodonInstanceType (line 48) | protected getMegalodonInstanceType(): 'mastodon' { method getDefaultMaxDescriptionLength (line 52) | protected getDefaultMaxDescriptionLength(): number { FILE: apps/client-server/src/app/websites/implementations/megalodon/megalodon-api-service.ts type AppRegistrationData (line 3) | interface AppRegistrationData { type FediverseInstanceTypes (line 8) | type FediverseInstanceTypes = class MegalodonApiService (line 19) | class MegalodonApiService { method registerApp (line 23) | static async registerApp( method generateAuthUrl (line 53) | static generateAuthUrl( method fetchAccessToken (line 73) | static async fetchAccessToken( method createClient (line 98) | static createClient( FILE: apps/client-server/src/app/websites/implementations/megalodon/megalodon.website.ts type InstanceLimits (line 34) | interface InstanceLimits { method getAppName (line 82) | protected getAppName(): string { method getAppWebsite (line 90) | protected getAppWebsite(): string { method getRedirectUri (line 98) | protected getRedirectUri(): string { method getScopes (line 106) | protected getScopes(): string { method detectMegalodonInstanceType (line 116) | private async detectMegalodonInstanceType( method getInstanceType (line 123) | private async getInstanceType( method normalizeInstanceUrl (line 244) | private normalizeInstanceUrl(url: string): string { method onLogin (line 251) | public async onLogin(): Promise { method fetchInstanceLimits (line 311) | private async fetchInstanceLimits( method getMaxDescriptionLength (line 372) | protected getMaxDescriptionLength(): number { method getMaxMediaAttachments (line 388) | protected getMaxMediaAttachments(): number { method getImageSizeLimit (line 395) | protected getImageSizeLimit(): number | undefined { method getVideoSizeLimit (line 402) | protected getVideoSizeLimit(): number | undefined { method getImageMatrixLimit (line 409) | protected getImageMatrixLimit(): number | undefined { method getVideoMatrixLimit (line 416) | protected getVideoMatrixLimit(): number | undefined { method getSupportedMimeTypes (line 423) | protected getSupportedMimeTypes(): string[] | undefined { method createFileModel (line 427) | createFileModel(): MegalodonFileSubmission { method createMessageModel (line 431) | createMessageModel(): MegalodonMessageSubmission { method calculateImageResize (line 435) | calculateImageResize(file: ISubmissionFile): ImageResizeProps { method onPostFileSubmission (line 491) | async onPostFileSubmission( method onPostMessageSubmission (line 585) | async onPostMessageSubmission( method onValidateFileSubmission (line 633) | async onValidateFileSubmission( method onValidateMessageSubmission (line 653) | async onValidateMessageSubmission( FILE: apps/client-server/src/app/websites/implementations/megalodon/models/megalodon-file-submission.ts class MegalodonFileSubmission (line 16) | class MegalodonFileSubmission extends BaseWebsiteOptions { method processTag (line 30) | override processTag(tag: string) { FILE: apps/client-server/src/app/websites/implementations/megalodon/models/megalodon-message-submission.ts class MegalodonMessageSubmission (line 3) | class MegalodonMessageSubmission extends MegalodonFileSubmission {} FILE: apps/client-server/src/app/websites/implementations/misskey/misskey-api-service.ts function ensureJson (line 11) | function ensureJson(body: T | string): T { type MisskeyUser (line 18) | interface MisskeyUser { type MisskeyPolicies (line 25) | interface MisskeyPolicies { type MisskeyMeta (line 33) | interface MisskeyMeta { type MisskeyDriveFile (line 39) | interface MisskeyDriveFile { type MisskeyNote (line 47) | interface MisskeyNote { class MisskeyApiService (line 56) | class MisskeyApiService { method buildMiAuthUrl (line 60) | static buildMiAuthUrl( method checkMiAuth (line 77) | static async checkMiAuth( method verifyCredentials (line 98) | static async verifyCredentials( method getInstanceMeta (line 119) | static async getInstanceMeta( method uploadFile (line 134) | static async uploadFile( method createNote (line 189) | static async createNote( FILE: apps/client-server/src/app/websites/implementations/misskey/misskey.website.ts constant MIAUTH_PERMISSIONS (line 31) | const MIAUTH_PERMISSIONS = [ class Misskey (line 64) | class Misskey method onLogin (line 161) | public async onLogin(): Promise { method createFileModel (line 212) | createFileModel(): MisskeyFileSubmission { method calculateImageResize (line 216) | calculateImageResize(file: ISubmissionFile): ImageResizeProps | undefi... method onPostFileSubmission (line 224) | async onPostFileSubmission( method onValidateFileSubmission (line 296) | async onValidateFileSubmission( method createMessageModel (line 320) | createMessageModel(): MisskeyMessageSubmission { method onPostMessageSubmission (line 324) | async onPostMessageSubmission( method onValidateMessageSubmission (line 361) | async onValidateMessageSubmission( FILE: apps/client-server/src/app/websites/implementations/misskey/models/misskey-file-submission.ts class MisskeyFileSubmission (line 16) | class MisskeyFileSubmission extends BaseWebsiteOptions { method processTag (line 29) | override processTag(tag: string) { FILE: apps/client-server/src/app/websites/implementations/misskey/models/misskey-message-submission.ts class MisskeyMessageSubmission (line 3) | class MisskeyMessageSubmission extends MisskeyFileSubmission {} FILE: apps/client-server/src/app/websites/implementations/newgrounds/models/newgrounds-account-data.ts type NewgroundsAccountData (line 2) | type NewgroundsAccountData = {}; FILE: apps/client-server/src/app/websites/implementations/newgrounds/models/newgrounds-base-submission.ts class NewgroundsBaseSubmission (line 5) | class NewgroundsBaseSubmission extends BaseWebsiteOptions { method processTag (line 17) | protected processTag(tag: string): string { FILE: apps/client-server/src/app/websites/implementations/newgrounds/models/newgrounds-file-submission.ts type NewgroundsRating (line 10) | type NewgroundsRating = 'a' | 'b' | 'c'; class NewgroundsFileSubmission (line 12) | class NewgroundsFileSubmission extends NewgroundsBaseSubmission { FILE: apps/client-server/src/app/websites/implementations/newgrounds/models/newgrounds-message-submission.ts class NewgroundsMessageSubmission (line 5) | class NewgroundsMessageSubmission extends NewgroundsBaseSubmission { FILE: apps/client-server/src/app/websites/implementations/newgrounds/newgrounds.website.ts type NewgroundsPostResponse (line 31) | type NewgroundsPostResponse = { class Newgrounds (line 59) | class Newgrounds method onLogin (line 70) | public async onLogin(): Promise { method createFileModel (line 89) | createFileModel(): NewgroundsFileSubmission { method calculateImageResize (line 93) | calculateImageResize(file: ISubmissionFile): ImageResizeProps { method parseDescription (line 97) | private parseDescription(text: string): string { method getSuitabilityRating (line 101) | private getSuitabilityRating(rating: SubmissionRating | string): string { method checkIsSaved (line 117) | private checkIsSaved(response: NewgroundsPostResponse): boolean { method cleanUpFailedProject (line 121) | private async cleanUpFailedProject( method onPostFileSubmission (line 138) | async onPostFileSubmission( method onValidateFileSubmission (line 334) | async onValidateFileSubmission( method createMessageModel (line 342) | createMessageModel(): NewgroundsMessageSubmission { method onPostMessageSubmission (line 346) | async onPostMessageSubmission( FILE: apps/client-server/src/app/websites/implementations/patreon/models/patreon-account-data.ts type PatreonAccountData (line 3) | type PatreonAccountData = { FILE: apps/client-server/src/app/websites/implementations/patreon/models/patreon-campaign-types.ts type PatreonCampaignResponse (line 5) | interface PatreonCampaignResponse { type PatreonCampaign (line 13) | interface PatreonCampaign { type PatreonCampaignAttributes (line 20) | interface PatreonCampaignAttributes { type PatreonCampaignRelationships (line 75) | interface PatreonCampaignRelationships { type PatreonUser (line 85) | interface PatreonUser { type PatreonUserAttributes (line 94) | interface PatreonUserAttributes { type PatreonSocialConnections (line 127) | interface PatreonSocialConnections { type PatreonDiscordConnection (line 143) | interface PatreonDiscordConnection { type PatreonSocialConnection (line 148) | type PatreonSocialConnection = Record | null; type PatreonReward (line 150) | interface PatreonReward { type PatreonAccessRule (line 159) | interface PatreonAccessRule { type PatreonRewardAttributes (line 180) | interface PatreonRewardAttributes { type PatreonRelationship (line 210) | interface PatreonRelationship { type PatreonRelationshipData (line 217) | interface PatreonRelationshipData { FILE: apps/client-server/src/app/websites/implementations/patreon/models/patreon-collection-types.ts type PatreonCollectionThumbnail (line 1) | type PatreonCollectionThumbnail = { type PatreonCollectionAttributes (line 16) | type PatreonCollectionAttributes = { type PatreonCollection (line 32) | type PatreonCollection = { type PatreonCollectionPaginationCursors (line 38) | type PatreonCollectionPaginationCursors = { type PatreonCollectionPagination (line 42) | type PatreonCollectionPagination = { type PatreonCollectionMeta (line 47) | type PatreonCollectionMeta = { type PatreonCollectionResponse (line 51) | type PatreonCollectionResponse = { FILE: apps/client-server/src/app/websites/implementations/patreon/models/patreon-file-submission.ts class PatreonFileSubmission (line 12) | class PatreonFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/patreon/models/patreon-media-upload-types.ts type PatreonMediaState (line 1) | type PatreonMediaState = type PatreonMediaOwnerType (line 7) | type PatreonMediaOwnerType = 'post' | 'user' | 'campaign'; type PatreonMediaOwnerRelationship (line 9) | type PatreonMediaOwnerRelationship = type PatreonMediaType (line 15) | type PatreonMediaType = 'image' | 'video' | 'audio'; type PatreonMediaUploadAttributes (line 17) | type PatreonMediaUploadAttributes = { type PatreonMediaUpload (line 27) | type PatreonMediaUpload = { type PatreonMediaUploadRequest (line 32) | type PatreonMediaUploadRequest = { type PatreonMediaUploadParameters (line 37) | type PatreonMediaUploadParameters = { type PatreonMediaImageUrls (line 49) | type PatreonMediaImageUrls = { type PatreonMediaDimensions (line 62) | type PatreonMediaDimensions = { type PatreonMediaMetadata (line 67) | type PatreonMediaMetadata = { type PatreonMediaDisplay (line 71) | type PatreonMediaDisplay = { type PatreonMediaUploadResponseAttributes (line 77) | type PatreonMediaUploadResponseAttributes = { type PatreonMediaUploadResponseData (line 96) | type PatreonMediaUploadResponseData = { type PatreonMediaUploadResponseLinks (line 102) | type PatreonMediaUploadResponseLinks = { type PatreonMediaUploadResponse (line 106) | type PatreonMediaUploadResponse = { FILE: apps/client-server/src/app/websites/implementations/patreon/models/patreon-message-submission.ts class PatreonMessageSubmission (line 12) | class PatreonMessageSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/patreon/models/patreon-post-types.ts type PatreonNewPostResponse (line 22) | interface PatreonNewPostResponse { FILE: apps/client-server/src/app/websites/implementations/patreon/patreon-description-converter.ts method addAttributes (line 25) | addAttributes() { method addAttributes (line 44) | addAttributes() { method renderHTML (line 50) | renderHTML() { method parseHTML (line 54) | parseHTML() { type PatreonContentOptions (line 80) | interface PatreonContentOptions { class PatreonDescriptionConverter (line 88) | class PatreonDescriptionConverter { method convert (line 93) | static convert(html: string, options: PatreonContentOptions): string { FILE: apps/client-server/src/app/websites/implementations/patreon/patreon.website.ts type PatreonAccessRuleSegment (line 43) | type PatreonAccessRuleSegment = Array<{ type PatreonTagSegment (line 49) | type PatreonTagSegment = Array<{ class Patreon (line 92) | class Patreon method onLogin (line 114) | public async onLogin(): Promise { method parseTiers (line 168) | private parseTiers(campaign: PatreonCampaignResponse): SelectOption[] { method loadCollections (line 224) | private async loadCollections(campaignId: string): Promise { method calculateImageResize (line 59) | calculateImageResize(file: ISubmissionFile): ImageResizeProps { method getRating (line 66) | protected getRating(rating: SubmissionRating): string { method getKnownRatings (line 83) | protected getKnownRatings(): string[] { method tagsWithRatingTag (line 98) | protected tagsWithRatingTag( method getUploadFormFields (line 129) | protected async getUploadFormFields(): Promise> { method onPostFileSubmission (line 151) | async onPostFileSubmission( FILE: apps/client-server/src/app/websites/implementations/picarto/models/picarto-account-data.ts type PicartoAccountData (line 3) | type PicartoAccountData = { FILE: apps/client-server/src/app/websites/implementations/picarto/models/picarto-file-submission.ts class PicartoFileSubmission (line 12) | class PicartoFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/picarto/picarto.website.ts class Picarto (line 41) | class Picarto method onLogin (line 55) | public async onLogin(): Promise { method createFileModel (line 85) | createFileModel(): PicartoFileSubmission { method calculateImageResize (line 89) | calculateImageResize(file: ISubmissionFile): ImageResizeProps { method onPostFileSubmission (line 97) | async onPostFileSubmission( method retrieveAlbums (line 235) | private async retrieveAlbums() { method convertRating (line 267) | private convertRating(rating: SubmissionRating): 'SFW' | 'ECCHI' | 'NS... FILE: apps/client-server/src/app/websites/implementations/piczel/models/piczel-account-data.ts type PiczelAccountData (line 3) | type PiczelAccountData = { FILE: apps/client-server/src/app/websites/implementations/piczel/models/piczel-file-submission.ts class PiczelFileSubmission (line 13) | class PiczelFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/piczel/piczel.website.ts class Piczel (line 41) | class Piczel method onLogin (line 63) | public async onLogin(): Promise { method getFolders (line 95) | private async getFolders(username: string): Promise { method createFileModel (line 118) | createFileModel(): PiczelFileSubmission { method calculateImageResize (line 122) | calculateImageResize(): ImageResizeProps | undefined { method onPostFileSubmission (line 126) | async onPostFileSubmission( FILE: apps/client-server/src/app/websites/implementations/pillowfort/models/pillowfort-account-data.ts type PillowfortAccountData (line 1) | type PillowfortAccountData = { FILE: apps/client-server/src/app/websites/implementations/pillowfort/models/pillowfort-file-submission.ts class PillowfortFileSubmission (line 9) | class PillowfortFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/pillowfort/models/pillowfort-message-submission.ts class PillowfortMessageSubmission (line 9) | class PillowfortMessageSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/pillowfort/pillowfort.website.ts class Pillowfort (line 43) | class Pillowfort method onLogin (line 54) | public async onLogin(): Promise { method createFileModel (line 78) | createFileModel(): PillowfortFileSubmission { method calculateImageResize (line 82) | calculateImageResize(): ImageResizeProps { method onPostFileSubmission (line 87) | async onPostFileSubmission( method createMessageModel (line 193) | createMessageModel(): PillowfortMessageSubmission { method onPostMessageSubmission (line 197) | async onPostMessageSubmission( FILE: apps/client-server/src/app/websites/implementations/pixelfed/pixelfed.website.ts class Pixelfed (line 31) | class Pixelfed extends MegalodonWebsite { method getMegalodonInstanceType (line 32) | protected getMegalodonInstanceType(): 'pixelfed' { method getDefaultMaxDescriptionLength (line 36) | protected getDefaultMaxDescriptionLength(): number { FILE: apps/client-server/src/app/websites/implementations/pixiv/models/pixiv-account-data.ts type PixivAccountData (line 2) | type PixivAccountData = {}; FILE: apps/client-server/src/app/websites/implementations/pixiv/models/pixiv-file-submission.ts class PixivFileSubmission (line 19) | class PixivFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/pixiv/pixiv.website.ts class Pixiv (line 37) | class Pixiv method onLogin (line 46) | public async onLogin(): Promise { method createFileModel (line 75) | createFileModel(): PixivFileSubmission { method calculateImageResize (line 79) | calculateImageResize(): ImageResizeProps { method onPostFileSubmission (line 83) | async onPostFileSubmission( method getContentRating (line 183) | private getContentRating(rating: SubmissionRating) { FILE: apps/client-server/src/app/websites/implementations/pleroma/pleroma.website.ts class Pleroma (line 35) | class Pleroma extends MegalodonWebsite { method getMegalodonInstanceType (line 36) | protected getMegalodonInstanceType(): 'pleroma' { method getDefaultMaxDescriptionLength (line 40) | protected getDefaultMaxDescriptionLength(): number { FILE: apps/client-server/src/app/websites/implementations/sofurry/models/sofurry-account-data.ts type SofurryAccountData (line 3) | type SofurryAccountData = { FILE: apps/client-server/src/app/websites/implementations/sofurry/models/sofurry-categories.ts function getCategoryFromType (line 108) | function getCategoryFromType(typeId: string): string { function getDefaultTypeForCategory (line 116) | function getDefaultTypeForCategory(categoryId: string): string { FILE: apps/client-server/src/app/websites/implementations/sofurry/models/sofurry-file-submission.ts class SofurryFileSubmission (line 22) | class SofurryFileSubmission extends BaseWebsiteOptions { method processTag (line 128) | processTag(tag: string): string { FILE: apps/client-server/src/app/websites/implementations/sofurry/sofurry.website.ts type SofurrySubmissionResponse (line 26) | interface SofurrySubmissionResponse { type SoFurryFileUploadResponse (line 57) | interface SoFurryFileUploadResponse { type SoFurryThumbnailUploadResponse (line 69) | interface SoFurryThumbnailUploadResponse { class Sofurry (line 103) | class Sofurry method onLogin (line 114) | public async onLogin(): Promise { method fetchCsrfToken (line 147) | private async fetchCsrfToken(): Promise { method getFolders (line 161) | private async getFolders(csrfToken: string): Promise { method createFileModel (line 188) | createFileModel(): SofurryFileSubmission { method calculateImageResize (line 192) | calculateImageResize(): ImageResizeProps { method getRating (line 196) | private getRating(rating: SubmissionRating): number { method getDefaultCategoryAndType (line 209) | private getDefaultCategoryAndType(fileType: FileType): { method onPostFileSubmission (line 226) | async onPostFileSubmission( FILE: apps/client-server/src/app/websites/implementations/subscribe-star/base-subscribe-star.website.ts type SubscribeStarSession (line 24) | type SubscribeStarSession = { type SubscribeStarUploadData (line 29) | type SubscribeStarUploadData = { type SubscribeStarPostResponse (line 35) | type SubscribeStarPostResponse = { type SubscribeStarUploadItem (line 44) | type SubscribeStarUploadItem = { type SubscribeStarProcessFileResponse (line 59) | type SubscribeStarProcessFileResponse = { method onLogin (line 79) | public async onLogin(): Promise { method loadTiers (line 112) | private loadTiers($: HTMLElement) { method createFileModel (line 149) | createFileModel(): SubscribeStarFileSubmission { method calculateImageResize (line 153) | calculateImageResize(file: ISubmissionFile): ImageResizeProps { method getPostData (line 157) | private async getPostData(): Promise { method fallbackS3TokenLoader (line 200) | private async fallbackS3TokenLoader( method uploadFile (line 247) | private async uploadFile( method onPostFileSubmission (line 343) | async onPostFileSubmission( method onValidateFileSubmission (line 415) | async onValidateFileSubmission( method createMessageModel (line 423) | createMessageModel(): SubscribeStarMessageSubmission { method onPostMessageSubmission (line 427) | async onPostMessageSubmission( method onValidateMessageSubmission (line 475) | async onValidateMessageSubmission( FILE: apps/client-server/src/app/websites/implementations/subscribe-star/models/subscribe-star-account-data.ts type SubscribeStarAccountData (line 3) | type SubscribeStarAccountData = { FILE: apps/client-server/src/app/websites/implementations/subscribe-star/models/subscribe-star-file-submission.ts class SubscribeStarFileSubmission (line 6) | class SubscribeStarFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/subscribe-star/models/subscribe-star-message-submission.ts class SubscribeStarMessageSubmission (line 6) | class SubscribeStarMessageSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/subscribe-star/subscribe-star-adult.website.ts class SubscribeStarAdult (line 87) | class SubscribeStarAdult extends BaseSubscribeStar { FILE: apps/client-server/src/app/websites/implementations/subscribe-star/subscribe-star.website.ts class SubscribeStar (line 87) | class SubscribeStar extends BaseSubscribeStar { FILE: apps/client-server/src/app/websites/implementations/telegram/models/telegram-file-submission.ts class TelegramFileSubmission (line 15) | class TelegramFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/telegram/models/telegram-message-submission.ts class TelegramMessageSubmission (line 3) | class TelegramMessageSubmission extends TelegramFileSubmission {} FILE: apps/client-server/src/app/websites/implementations/telegram/telegram.website.ts class Telegram (line 67) | class Telegram method getTelegramClient (line 88) | private async getTelegramClient( method resolveProxySettings (line 166) | private async resolveProxySettings() { method loadChannels (line 223) | private async loadChannels(telegram: TelegramClient) { method canSendMediaInChat (line 251) | private canSendMediaInChat(chat: Entity): chat is Api.Channel | Api.Ch... method onLogin (line 266) | public async onLogin(): Promise { method createFileModel (line 288) | createFileModel(): TelegramFileSubmission { method calculateImageResize (line 292) | calculateImageResize(file: ISubmissionFile): ImageResizeProps { method onPostFileSubmission (line 299) | async onPostFileSubmission( method getSourceFromResponse (line 453) | private getSourceFromResponse(response?: Api.TypeUpdates) { method getPeer (line 469) | private getPeer(channel: string) { method validateDescription (line 484) | private async validateDescription( method onValidateFileSubmission (line 503) | async onValidateFileSubmission( method createMessageModel (line 513) | createMessageModel(): TelegramMessageSubmission { method onPostMessageSubmission (line 517) | async onPostMessageSubmission( method onValidateMessageSubmission (line 547) | async onValidateMessageSubmission( method getDescriptionConverter (line 557) | getDescriptionConverter(): BaseConverter { class TelegramConverter (line 562) | class TelegramConverter extends HtmlConverter { method getBlockSeparator (line 563) | protected getBlockSeparator(): string { method convertBlocks (line 567) | convertBlocks(nodes: TipTapNode[], context: ConversionContext): string { method fromJson (line 588) | static fromJson(json: string) { method fromHtml (line 594) | private static fromHtml(html: string) { FILE: apps/client-server/src/app/websites/implementations/test/models/test-file-submission.ts class TestFileSubmission (line 5) | class TestFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/test/models/test-message-submission.ts class TestMessageSubmission (line 3) | class TestMessageSubmission extends BaseWebsiteOptions {} FILE: apps/client-server/src/app/websites/implementations/test/test.website.ts class TestWebsite (line 34) | class TestWebsite method onLogin (line 47) | public async onLogin(): Promise { method createFileModel (line 57) | createFileModel(): TestFileSubmission { method createMessageModel (line 61) | createMessageModel(): TestMessageSubmission { method calculateImageResize (line 65) | calculateImageResize(): ImageResizeProps { method onPostFileSubmission (line 69) | async onPostFileSubmission( method onValidateFileSubmission (line 80) | async onValidateFileSubmission( method onPostMessageSubmission (line 89) | async onPostMessageSubmission( method onValidateMessageSubmission (line 114) | async onValidateMessageSubmission( FILE: apps/client-server/src/app/websites/implementations/toyhouse/models/toyhouse-account-data.ts type ToyhouseAccountData (line 3) | type ToyhouseAccountData = { FILE: apps/client-server/src/app/websites/implementations/toyhouse/models/toyhouse-file-submission.ts class ToyhouseFileSubmission (line 26) | class ToyhouseFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/toyhouse/toyhouse.website.ts class Toyhouse (line 36) | class Toyhouse method onLogin (line 47) | public async onLogin(): Promise { method loadAllCharacters (line 80) | private async loadAllCharacters(firstPage: HTMLElement) { method createFileModel (line 108) | createFileModel(): ToyhouseFileSubmission { method calculateImageResize (line 112) | calculateImageResize(file: ISubmissionFile): ImageResizeProps { method onPostFileSubmission (line 116) | async onPostFileSubmission( method onValidateFileSubmission (line 210) | async onValidateFileSubmission( method getCharacters (line 218) | private getCharacters($: HTMLElement) { function isLoggedIn (line 237) | function isLoggedIn(res: HttpResponse) { function parseIsSexual (line 245) | function parseIsSexual(rating: SubmissionRating) { function parseArtistInfo (line 259) | function parseArtistInfo(submission: PostFields) { FILE: apps/client-server/src/app/websites/implementations/tumblr/models/tumblr-account-data.ts type TumblrAccountData (line 3) | type TumblrAccountData = { FILE: apps/client-server/src/app/websites/implementations/tumblr/models/tumblr-file-submission.ts class TumblrFileSubmission (line 17) | class TumblrFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/tumblr/models/tumblr-message-submission.ts class TumblrMessageSubmission (line 3) | class TumblrMessageSubmission extends TumblrFileSubmission {} FILE: apps/client-server/src/app/websites/implementations/tumblr/tumblr.website.ts type TumblrSessionData (line 35) | type TumblrSessionData = { type TumblrPostResponse (line 41) | type TumblrPostResponse = { class Tumblr (line 84) | class Tumblr method onLogin (line 98) | public async onLogin(): Promise { method createFileModel (line 144) | createFileModel(): TumblrFileSubmission { method calculateImageResize (line 148) | calculateImageResize(file: ISubmissionFile): ImageResizeProps { method onPostFileSubmission (line 152) | async onPostFileSubmission( method onValidateFileSubmission (line 228) | async onValidateFileSubmission( method createMessageModel (line 236) | createMessageModel(): TumblrMessageSubmission { method getDescriptionConverter (line 240) | getDescriptionConverter(): BaseConverter { method onPostMessageSubmission (line 244) | async onPostMessageSubmission( method onValidateMessageSubmission (line 302) | async onValidateMessageSubmission( method getCommunityLabelCategories (line 310) | private getCommunityLabelCategories( method uploadFiles (line 337) | private async uploadFiles( method getMediaType (line 380) | private getMediaType(file: PostingFile): string { method uploadSingleFile (line 398) | private async uploadSingleFile( FILE: apps/client-server/src/app/websites/implementations/twitter/models/twitter-file-submission.ts class TwitterFileSubmission (line 5) | class TwitterFileSubmission extends TwitterMessageSubmission { FILE: apps/client-server/src/app/websites/implementations/twitter/models/twitter-message-submission.ts class TwitterMessageSubmission (line 9) | class TwitterMessageSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/twitter/twitter-api-service/twitter-api-service.ts type TwitterAuthLinkResult (line 13) | interface TwitterAuthLinkResult { type TwitterAccessTokenResult (line 19) | interface TwitterAccessTokenResult { type TwitterAccessKeys (line 26) | interface TwitterAccessKeys { type TweetResultMeta (line 33) | interface TweetResultMeta { type ContentBlurValue (line 44) | type ContentBlurValue = class TwitterApiServiceV2 (line 58) | class TwitterApiServiceV2 { method Logger (line 61) | private static get Logger() { method createClient (line 73) | private static createClient(auth: TwitterAccessKeys): TwitterApi { method uploadMediaFiles (line 85) | static async uploadMediaFiles( method getUserInfo (line 144) | static async getUserInfo(client: TwitterApi): Promise { method createFileModel (line 174) | createFileModel(): TwitterFileSubmission { method calculateImageResize (line 178) | calculateImageResize(file: ISubmissionFile): ImageResizeProps { method onPostFileSubmission (line 182) | async onPostFileSubmission( method cleanUpFailedPost (line 224) | private async cleanUpFailedPost( method onValidateFileSubmission (line 258) | async onValidateFileSubmission( method createMessageModel (line 277) | createMessageModel(): TwitterMessageSubmission { method onPostMessageSubmission (line 281) | async onPostMessageSubmission( method onValidateMessageSubmission (line 311) | async onValidateMessageSubmission( FILE: apps/client-server/src/app/websites/implementations/weasyl/models/weasyl-account-data.ts type WeasylAccountData (line 3) | type WeasylAccountData = { FILE: apps/client-server/src/app/websites/implementations/weasyl/models/weasyl-file-submission.ts class WeasylFileSubmission (line 6) | class WeasylFileSubmission extends BaseWebsiteOptions { FILE: apps/client-server/src/app/websites/implementations/weasyl/models/weasyl-message-submission.ts class WeasylMessageSubmission (line 3) | class WeasylMessageSubmission extends BaseWebsiteOptions {} FILE: apps/client-server/src/app/websites/implementations/weasyl/weasyl.website.ts class Weasyl (line 66) | class Weasyl method onLogin (line 79) | public async onLogin(): Promise { method getFolders (line 97) | private async getFolders(username: string): Promise { method createFileModel (line 139) | createFileModel(): WeasylFileSubmission { method calculateImageResize (line 143) | calculateImageResize(): ImageResizeProps { method modifyDescription (line 147) | private modifyDescription(html: string) { method convertRating (line 157) | private convertRating(rating: SubmissionRating) { method getContentType (line 170) | private getContentType(type: FileType) { method onPostFileSubmission (line 183) | async onPostFileSubmission( method createMessageModel (line 295) | createMessageModel(): WeasylMessageSubmission { method onPostMessageSubmission (line 299) | async onPostMessageSubmission( FILE: apps/client-server/src/app/websites/models/base-website-options.spec.ts class ExtendedWebsiteOptions (line 48) | class ExtendedWebsiteOptions extends BaseWebsiteOptions { method processTag (line 170) | protected processTag(tag: string): string { class ExtendedWebsiteOptions (line 162) | class ExtendedWebsiteOptions extends BaseWebsiteOptions { method processTag (line 170) | protected processTag(tag: string): string { FILE: apps/client-server/src/app/websites/models/base-website-options.ts class BaseWebsiteOptions (line 27) | class BaseWebsiteOptions implements IWebsiteFormFields { method constructor (line 69) | constructor(options: Partial ... method mergeDefaults (line 79) | public mergeDefaults(options: DefaultWebsiteOptions): this { method getFormFields (line 117) | public getFormFields(params: Record = {}) { method getFormFieldFor (line 126) | public getFormFieldFor(key: keyof IWebsiteFormFields) { method getProcessedTags (line 135) | public async getProcessedTags( method processTag (line 173) | protected processTag(tag: string): string { FILE: apps/client-server/src/app/websites/models/data-property-accessibility.ts type DataPropertyAccessibility (line 1) | type DataPropertyAccessibility = { FILE: apps/client-server/src/app/websites/models/default-website-options.ts class DefaultWebsiteOptions (line 5) | class DefaultWebsiteOptions extends BaseWebsiteOptions { method constructor (line 17) | constructor(options: Partial = {}) { FILE: apps/client-server/src/app/websites/models/website-modifiers/file-website.ts type ImplementedFileWebsite (line 16) | type ImplementedFileWebsite = FileWebsite & UnknownWebsite; type PostBatchData (line 18) | interface PostBatchData { type FileWebsite (line 28) | interface FileWebsite< function isFileWebsite (line 56) | function isFileWebsite( FILE: apps/client-server/src/app/websites/models/website-modifiers/message-website.ts type MessageWebsite (line 18) | interface MessageWebsite< function isMessageWebsite (line 33) | function isMessageWebsite( FILE: apps/client-server/src/app/websites/models/website-modifiers/oauth-website.ts type OAuthWebsite (line 8) | interface OAuthWebsite { FILE: apps/client-server/src/app/websites/models/website-modifiers/with-custom-description-parser.ts type WithCustomDescriptionParser (line 3) | interface WithCustomDescriptionParser { function isWithCustomDescriptionParser (line 11) | function isWithCustomDescriptionParser( FILE: apps/client-server/src/app/websites/models/website-modifiers/with-dynamic-file-size-limits.ts type DynamicFileSizeLimits (line 3) | type DynamicFileSizeLimits = WebsiteFileOptions['acceptedFileSizes']; type WithDynamicFileSizeLimits (line 5) | interface WithDynamicFileSizeLimits { function isWithDynamicFileSizeLimits (line 9) | function isWithDynamicFileSizeLimits( function getDynamicFileSizeLimits (line 19) | function getDynamicFileSizeLimits(website: unknown) { FILE: apps/client-server/src/app/websites/models/website-modifiers/with-runtime-description-parser.ts type WithRuntimeDescriptionParser (line 3) | interface WithRuntimeDescriptionParser { function isWithRuntimeDescriptionParser (line 7) | function isWithRuntimeDescriptionParser( FILE: apps/client-server/src/app/websites/website-data-manager.spec.ts function populateAccount (line 25) | function populateAccount(): Promise { FILE: apps/client-server/src/app/websites/website-data-manager.ts class WebsiteDataManager (line 11) | class WebsiteDataManager { method constructor (line 22) | constructor(userAccount: IAccount) { method createOrLoadWebsiteData (line 28) | private async createOrLoadWebsiteData() { method saveData (line 40) | private async saveData() { method initialize (line 50) | public async initialize(repository: PostyBirbDatabase<'WebsiteDataSche... method isInitialized (line 58) | public isInitialized(): boolean { method clearData (line 65) | public async clearData(recreateEntity = true) { method getData (line 81) | public getData(): T { method setData (line 93) | public async setData(data: T) { FILE: apps/client-server/src/app/websites/website-registry.service.ts type WebsiteInstances (line 29) | type WebsiteInstances = Record>; class WebsiteRegistryService (line 36) | class WebsiteRegistryService { method constructor (line 54) | constructor( method emit (line 92) | public async emit() { method markAsInitialized (line 105) | public markAsInitialized(): void { method isRegistryInitialized (line 119) | public isRegistryInitialized(): boolean { method waitForInitialization (line 129) | public async waitForInitialization(timeoutMs?: number): Promise { method getRepository (line 151) | getRepository() { method canCreate (line 165) | public canCreate(websiteName: string): boolean { method create (line 173) | public async create(account: Account): Promise { method findInstance (line 204) | public findInstance(account: IAccount): UnknownWebsite | undefined { method getInstancesOf (line 217) | public getInstancesOf(website: Class): UnknownWebsite[] { method getAll (line 231) | public getAll(): UnknownWebsite[] { method getAvailableWebsites (line 242) | public getAvailableWebsites(): Class[] { method getWebsiteInfo (line 250) | public async getWebsiteInfo(): Promise { method remove (line 284) | public async remove(account: IAccount): Promise { method performOAuthStep (line 298) | public async performOAuthStep( FILE: apps/client-server/src/app/websites/website.events.ts type WebsiteEventTypes (line 5) | type WebsiteEventTypes = WebsiteUpdateEvent; class WebsiteUpdateEvent (line 7) | class WebsiteUpdateEvent implements WebsocketEvent { FILE: apps/client-server/src/app/websites/website.spec.ts function populateAccount (line 33) | function populateAccount(): Promise { FILE: apps/client-server/src/app/websites/website.ts type UnknownWebsite (line 30) | type UnknownWebsite = Website; method id (line 104) | public get id(): string { method accountId (line 114) | public get accountId(): string { method supportsFile (line 124) | public get supportsFile(): boolean { method supportsMessage (line 134) | public get supportsMessage(): boolean { method getModelFor (line 141) | getModelFor(type: SubmissionType) { method createValidator (line 156) | protected createValidator() { method constructor (line 160) | constructor(userAccount: Account) { method clearLoginStateAndData (line 170) | public async clearLoginStateAndData(forWebsiteDeletion = false) { method getWebsiteData (line 183) | public getWebsiteData(): D { method getFormProperties (line 200) | public getFormProperties(): DynamicObject { method getLoginState (line 212) | public getLoginState() { method getSupportedTypes (line 219) | public getSupportedTypes(): SubmissionType[] { method setWebsiteData (line 237) | public async setWebsiteData(data: D) { method onWebsiteDataChange (line 248) | protected async onWebsiteDataChange(newData: D) { method login (line 264) | public async login(): Promise { method executeLogin (line 297) | private async executeLogin(): Promise { method onInitialize (line 316) | public async onInitialize( method cycleCookies (line 326) | private async cycleCookies(): Promise { method onBeforeLogin (line 344) | protected async onBeforeLogin() { FILE: apps/client-server/src/app/websites/websites.controller.ts class WebsitesController (line 15) | class WebsitesController { method constructor (line 16) | constructor( method performOAuthStep (line 27) | performOAuthStep( method getWebsiteLoginInfo (line 35) | getWebsiteLoginInfo() { method handleInstagramCallback (line 45) | handleInstagramCallback( FILE: apps/client-server/src/app/websites/websites.module.ts class WebsitesModule (line 11) | class WebsitesModule {} FILE: apps/client-server/src/assets/sharp-worker.js function load (line 33) | function load(buffer) { function applyOutputFormat (line 85) | function applyOutputFormat(instance, outputMimeType) { function resizeImage (line 107) | async function resizeImage(inputBuffer, width, height) { function scaleDownImage (line 173) | async function scaleDownImage( function encodeAtScale (line 304) | async function encodeAtScale( function generateThumbnail (line 350) | async function generateThumbnail( FILE: apps/client-server/src/main.ts class CustomClassSerializer (line 21) | class CustomClassSerializer extends ClassSerializerInterceptor { method serialize (line 22) | serialize( function bootstrap (line 34) | async function bootstrap() { FILE: apps/postybirb-cloud-server/src/functions/upload.ts constant CONTAINER_NAME (line 10) | const CONTAINER_NAME = 'instagram'; constant MAX_FILE_SIZE (line 11) | const MAX_FILE_SIZE = 30 * 1024 * 1024; constant RATE_LIMIT_WINDOW_MS (line 15) | const RATE_LIMIT_WINDOW_MS = 60 * 1000; constant RATE_LIMIT_MAX (line 16) | const RATE_LIMIT_MAX = 20; function getRateLimitInfo (line 31) | function getRateLimitInfo(ip: string): { function getContainerClient (line 60) | function getContainerClient() { function upload (line 70) | async function upload( FILE: apps/postybirb-ui/src/api/account.api.ts class AccountApi (line 12) | class AccountApi extends BaseApi< method constructor (line 17) | constructor() { method updateRemoteCookies (line 21) | private async updateRemoteCookies(accountId: AccountId) { method clear (line 33) | async clear(id: AccountId) { method setWebsiteData (line 38) | setWebsiteData(request: ISetWebsiteDataRequestDto) { method refreshLogin (line 42) | async refreshLogin(id: AccountId) { FILE: apps/postybirb-ui/src/api/base.api.ts class BaseApi (line 5) | class BaseApi< method constructor (line 12) | constructor(basePath: string) { method get (line 16) | public get(id: EntityId) { method getAll (line 20) | public getAll() { method create (line 24) | public create(createDto: CreateType) { method update (line 28) | public update(id: EntityId, updateDto: UpdateType) { method remove (line 32) | public remove(ids: EntityId[]) { FILE: apps/postybirb-ui/src/api/custom-shortcut.api.ts class CustomShortcutsApi (line 8) | class CustomShortcutsApi extends BaseApi< method constructor (line 13) | constructor() { FILE: apps/postybirb-ui/src/api/directory-watchers.api.ts constant FILE_COUNT_WARNING_THRESHOLD (line 8) | const FILE_COUNT_WARNING_THRESHOLD = 10; type CheckPathResult (line 10) | interface CheckPathResult { class DirectoryWatchersApi (line 17) | class DirectoryWatchersApi extends BaseApi< method constructor (line 22) | constructor() { method checkPath (line 26) | public checkPath(path: string) { FILE: apps/postybirb-ui/src/api/file-submission.api.ts type FileUpdateTarget (line 10) | type FileUpdateTarget = 'file' | 'thumbnail'; class FileSubmissionsApi (line 12) | class FileSubmissionsApi { method appendFiles (line 15) | appendFiles(id: SubmissionId, target: FileUpdateTarget, files: Blob[]) { method replaceFile (line 21) | replaceFile( method removeFile (line 34) | removeFile(id: SubmissionId, fileId: EntityId, target: FileUpdateTarge... method getAltText (line 40) | getAltText(id: EntityId) { method updateAltText (line 44) | updateAltText(altFileId: EntityId, text: string) { method updateMetadata (line 48) | updateMetadata(id: EntityId, update: SubmissionFileMetadata) { method reorder (line 52) | reorder(update: IReorderSubmissionFilesDto) { function getRemoveFileUrl (line 59) | function getRemoveFileUrl( function getReplaceFileUrl (line 67) | function getReplaceFileUrl( function getAppendFileUrl (line 75) | function getAppendFileUrl( FILE: apps/postybirb-ui/src/api/form-generator.api.ts class FormGeneratorApi (line 5) | class FormGeneratorApi { method getForm (line 8) | getForm(dto: IFormGenerationRequestDto) { FILE: apps/postybirb-ui/src/api/legacy-database-importer.api.ts type LegacyImportDto (line 3) | interface LegacyImportDto { type LegacyImportResponse (line 11) | interface LegacyImportResponse { class LegacyDatabaseImporterApi (line 15) | class LegacyDatabaseImporterApi { method constructor (line 18) | constructor() { method import (line 22) | public import(importRequest: LegacyImportDto) { FILE: apps/postybirb-ui/src/api/notification.api.ts class NotificationApi (line 8) | class NotificationApi extends BaseApi< method constructor (line 13) | constructor() { FILE: apps/postybirb-ui/src/api/post-manager.api.ts class PostManagerApi (line 4) | class PostManagerApi { method constructor (line 7) | constructor() { method cancelIfRunning (line 11) | cancelIfRunning(submissionId: SubmissionId) { method isPosting (line 15) | isPosting(submissionType: SubmissionType) { FILE: apps/postybirb-ui/src/api/post-queue.api.ts class PostQueueApi (line 4) | class PostQueueApi extends BaseApi< method constructor (line 9) | constructor() { method enqueue (line 13) | enqueue(submissionIds: string[], resumeMode?: PostRecordResumeMode) { method dequeue (line 17) | dequeue(submissionIds: string[]) { method getAll (line 21) | getAll() { method isPaused (line 25) | isPaused() { method pause (line 29) | pause() { method resume (line 33) | resume() { FILE: apps/postybirb-ui/src/api/post.api.ts class PostApi (line 4) | class PostApi extends BaseApi< method constructor (line 9) | constructor() { FILE: apps/postybirb-ui/src/api/remote.api.ts class RemoteApi (line 9) | class RemoteApi { method testPing (line 15) | async testPing() { method setCookies (line 46) | async setCookies(accountId: AccountId) { FILE: apps/postybirb-ui/src/api/settings.api.ts class SettingsApi (line 5) | class SettingsApi { method getAll (line 9) | getAll() { method getStartupOptions (line 13) | getStartupOptions() { method update (line 17) | update(id: EntityId, dto: IUpdateSettingsDto) { method updateSystemStartupSettings (line 21) | updateSystemStartupSettings( FILE: apps/postybirb-ui/src/api/submission.api.ts type CreateFileSubmissionOptions (line 19) | interface CreateFileSubmissionOptions { type ApplyTemplateOptionsDto (line 33) | interface ApplyTemplateOptionsDto { type ApplyTemplateOptionsResult (line 50) | interface ApplyTemplateOptionsResult { class SubmissionsApi (line 56) | class SubmissionsApi extends BaseApi< method constructor (line 61) | constructor() { method createMessageSubmission (line 65) | createMessageSubmission(name: string) { method duplicate (line 72) | duplicate(id: SubmissionId) { method updateTemplateName (line 76) | updateTemplateName(id: SubmissionId, dto: IUpdateSubmissionTemplateNam... method createFileSubmission (line 88) | createFileSubmission( method reorder (line 119) | reorder(id: SubmissionId, targetId: SubmissionId, position: 'before' |... method applyToMultipleSubmissions (line 123) | applyToMultipleSubmissions(dto: IApplyMultiSubmissionDto) { method applyTemplate (line 127) | applyTemplate(id: SubmissionId, templateId: SubmissionId) { method applyTemplateOptions (line 131) | applyTemplateOptions(dto: ApplyTemplateOptionsDto) { method unarchive (line 138) | unarchive(id: SubmissionId) { method archive (line 142) | archive(id: SubmissionId) { FILE: apps/postybirb-ui/src/api/tag-converters.api.ts class TagConvertersApi (line 8) | class TagConvertersApi extends BaseApi< method constructor (line 13) | constructor() { FILE: apps/postybirb-ui/src/api/tag-groups.api.ts class TagGroupsApi (line 8) | class TagGroupsApi extends BaseApi< method constructor (line 13) | constructor() { FILE: apps/postybirb-ui/src/api/update.api.ts class UpdateApi (line 4) | class UpdateApi { method checkForUpdates (line 7) | checkForUpdates() { method startUpdate (line 11) | startUpdate() { method installUpdate (line 15) | installUpdate() { FILE: apps/postybirb-ui/src/api/user-converters.api.ts class UserConvertersApi (line 8) | class UserConvertersApi extends BaseApi< method constructor (line 13) | constructor() { FILE: apps/postybirb-ui/src/api/user-specified-website-options.api.ts class UserSpecifiedWebsiteOptionsApi (line 8) | class UserSpecifiedWebsiteOptionsApi extends BaseApi< method constructor (line 13) | constructor() { FILE: apps/postybirb-ui/src/api/website-options.api.ts class WebsiteOptionsApi (line 14) | class WebsiteOptionsApi extends BaseApi< method constructor (line 19) | constructor() { method validate (line 23) | validate(dto: IValidateWebsiteOptionsDto) { method validateSubmission (line 27) | validateSubmission(submissionId: SubmissionId) { method previewDescription (line 31) | previewDescription(dto: IPreviewDescriptionDto) { method updateSubmissionOptions (line 38) | updateSubmissionOptions( method modifySubmission (line 45) | modifySubmission( FILE: apps/postybirb-ui/src/api/websites.api.ts class WebsitesApi (line 9) | class WebsitesApi { method getWebsiteInfo (line 12) | getWebsiteInfo() { method performOAuthStep (line 16) | async performOAuthStep) { FILE: apps/postybirb-ui/src/components/drawers/converter-drawer/converter-drawer.tsx type ConverterRecord (line 58) | interface ConverterRecord extends BaseRecord { type ConverterApi (line 66) | interface ConverterApi { type ConverterDrawerConfig (line 75) | interface ConverterDrawerConfig< type WebsiteOption (line 104) | interface WebsiteOption { function useConverterSearch (line 116) | function useConverterSearch( function WebsiteConversionRow (line 161) | function WebsiteConversionRow({ function AddWebsiteDropdown (line 219) | function AddWebsiteDropdown({ function WebsiteConversionsEditor (line 296) | function WebsiteConversionsEditor({ function DeleteSelectedButton (line 524) | function DeleteSelectedButton({ function CreateConverterForm (line 572) | function CreateConverterForm({ type ConverterDrawerProps (line 644) | interface ConverterDrawerProps< function ConverterDrawer (line 663) | function ConverterDrawer< FILE: apps/postybirb-ui/src/components/drawers/custom-shortcuts-drawer/custom-shortcuts-drawer.tsx type CustomShortcutsDrawerProps (line 54) | interface CustomShortcutsDrawerProps { function useShortcutSearch (line 68) | function useShortcutSearch( type ShortcutCardProps (line 100) | interface ShortcutCardProps { type CreateShortcutFormProps (line 237) | interface CreateShortcutFormProps { function CreateShortcutForm (line 243) | function CreateShortcutForm({ function CustomShortcutsDrawer (line 322) | function CustomShortcutsDrawer({ FILE: apps/postybirb-ui/src/components/drawers/drawers.tsx function CustomShortcutsDrawer (line 41) | function CustomShortcutsDrawer() { FILE: apps/postybirb-ui/src/components/drawers/file-watcher-drawer/file-watcher-drawer.tsx constant DRAWER_KEY (line 52) | const DRAWER_KEY = 'fileWatchers' as const; type FolderConfirmModalProps (line 58) | interface FolderConfirmModalProps { function FolderConfirmModal (line 69) | function FolderConfirmModal({ type FileWatcherCardProps (line 114) | interface FileWatcherCardProps { function FileWatcherCard (line 121) | function FileWatcherCard({ watcher }: FileWatcherCardProps) { function CreateWatcherButton (line 324) | function CreateWatcherButton() { type WatcherListProps (line 360) | interface WatcherListProps { function WatcherList (line 367) | function WatcherList({ watchers }: WatcherListProps) { function FileWatcherDrawer (line 399) | function FileWatcherDrawer() { function FileWatcherDrawerContent (line 411) | function FileWatcherDrawerContent({ onClose }: { onClose: () => void }) { FILE: apps/postybirb-ui/src/components/drawers/notifications-drawer/notifications-drawer.tsx type ReadFilterValue (line 56) | type ReadFilterValue = 'all' | 'unread' | 'read'; type TypeFilterValue (line 57) | type TypeFilterValue = 'all' | 'error' | 'warning' | 'success' | 'info'; function getTypeColor (line 66) | function getTypeColor(type: NotificationRecord['type']): string { function getTypeIcon (line 83) | function getTypeIcon(type: NotificationRecord['type']): React.ReactNode { function useNotificationFilters (line 105) | function useNotificationFilters() { function ReadStatusFilter (line 151) | function ReadStatusFilter({ function TypeFilter (line 191) | function TypeFilter({ function BulkActions (line 257) | function BulkActions({ function NotificationList (line 446) | function NotificationList({ function NotificationsDrawer (line 499) | function NotificationsDrawer() { function NotificationsDrawerContent (line 511) | function NotificationsDrawerContent({ onClose }: { onClose: () => void }) { FILE: apps/postybirb-ui/src/components/drawers/schedule-drawer/schedule-calendar.tsx function ScheduleCalendar (line 47) | function ScheduleCalendar() { FILE: apps/postybirb-ui/src/components/drawers/schedule-drawer/schedule-drawer.tsx function ScheduleDrawer (line 20) | function ScheduleDrawer() { FILE: apps/postybirb-ui/src/components/drawers/schedule-drawer/submission-list.tsx function DraggableSubmissionItem (line 28) | function DraggableSubmissionItem({ function SubmissionList (line 65) | function SubmissionList() { FILE: apps/postybirb-ui/src/components/drawers/section-drawer.tsx type SectionDrawerProps (line 15) | interface SectionDrawerProps { function SectionDrawer (line 36) | function SectionDrawer({ FILE: apps/postybirb-ui/src/components/drawers/tag-converter-drawer/tag-converter-drawer.tsx constant DRAWER_KEY (line 27) | const DRAWER_KEY = 'tagConverters'; function TagConverterDrawer (line 33) | function TagConverterDrawer() { function TagConverterDrawerContent (line 45) | function TagConverterDrawerContent({ onClose }: { onClose: () => void }) { FILE: apps/postybirb-ui/src/components/drawers/tag-group-drawer/tag-group-drawer.tsx function useTagGroupSearch (line 44) | function useTagGroupSearch(searchQuery: string) { function EditableNameCell (line 76) | function EditableNameCell({ function EditableTagsCell (line 141) | function EditableTagsCell({ function DeleteSelectedButton (line 188) | function DeleteSelectedButton({ function CreateTagGroupForm (line 232) | function CreateTagGroupForm() { function TagGroupsTable (line 327) | function TagGroupsTable({ function TagGroupDrawer (line 386) | function TagGroupDrawer() { function TagGroupDrawerContent (line 398) | function TagGroupDrawerContent({ onClose }: { onClose: () => void }) { FILE: apps/postybirb-ui/src/components/drawers/user-converter-drawer/user-converter-drawer.tsx constant DRAWER_KEY (line 27) | const DRAWER_KEY = 'userConverters'; function UserConverterDrawer (line 33) | function UserConverterDrawer() { function UserConverterDrawerContent (line 45) | function UserConverterDrawerContent({ onClose }: { onClose: () => void }) { FILE: apps/postybirb-ui/src/components/empty-state/empty-state.tsx type EmptyStatePreset (line 14) | type EmptyStatePreset = type EmptyStateProps (line 20) | interface EmptyStateProps { function getPresetIcon (line 36) | function getPresetIcon(preset: EmptyStatePreset): ReactNode { function getPresetMessage (line 54) | function getPresetMessage(preset: EmptyStatePreset): ReactNode { function getSizes (line 71) | function getSizes(size: 'sm' | 'md' | 'lg') { function EmptyState (line 103) | function EmptyState({ FILE: apps/postybirb-ui/src/components/error-boundary/error-boundary.tsx function CopyableErrorDetails (line 26) | function CopyableErrorDetails({ type ErrorBoundaryState (line 122) | interface ErrorBoundaryState { type ErrorBoundaryProps (line 128) | interface ErrorBoundaryProps { class ErrorBoundary (line 141) | class ErrorBoundary extends Component< method constructor (line 147) | constructor(props: ErrorBoundaryProps) { method getDerivedStateFromError (line 152) | static getDerivedStateFromError(error: Error): ErrorBoundaryState { method componentDidCatch (line 156) | componentDidCatch(error: Error, errorInfo: { componentStack: string }) { method componentDidUpdate (line 192) | componentDidUpdate(prevProps: ErrorBoundaryProps) { method render (line 227) | render() { method renderDefaultFallback (line 244) | private renderDefaultFallback( FILE: apps/postybirb-ui/src/components/error-boundary/specialized-error-boundaries.tsx function FormErrorFallback (line 15) | function FormErrorFallback({ function PageErrorBoundary (line 55) | function PageErrorBoundary({ children }: { children: ReactNode }) { function FormErrorBoundary (line 73) | function FormErrorBoundary({ function ComponentErrorBoundary (line 98) | function ComponentErrorBoundary({ children }: { children: ReactNode }) { function RouteErrorBoundary (line 115) | function RouteErrorBoundary({ FILE: apps/postybirb-ui/src/components/hold-to-confirm/hold-to-confirm.tsx constant DEFAULT_HOLD_DURATION (line 10) | const DEFAULT_HOLD_DURATION = 1000; constant PROGRESS_INTERVAL (line 12) | const PROGRESS_INTERVAL = 16; type UseHoldToConfirmOptions (line 14) | interface UseHoldToConfirmOptions { type UseHoldToConfirmReturn (line 23) | interface UseHoldToConfirmReturn { function useHoldToConfirm (line 37) | function useHoldToConfirm({ type HoldToConfirmButtonProps (line 86) | interface HoldToConfirmButtonProps FILE: apps/postybirb-ui/src/components/language-picker/language-picker.tsx type LanguagePickerProps (line 27) | interface LanguagePickerProps { function LanguagePicker (line 37) | function LanguagePicker({ collapsed = false, kbd }: LanguagePickerProps) { FILE: apps/postybirb-ui/src/components/layout/content-area.tsx function ContentArea (line 14) | function ContentArea({ children, loading = false }: ContentAreaProps) { FILE: apps/postybirb-ui/src/components/layout/content-navbar.tsx function ContentNavbar (line 14) | function ContentNavbar({ config, onPageChange }: ContentNavbarProps) { FILE: apps/postybirb-ui/src/components/layout/layout.tsx function Layout (line 36) | function Layout() { FILE: apps/postybirb-ui/src/components/layout/primary-content.tsx type PrimaryContentProps (line 16) | interface PrimaryContentProps { function ViewContent (line 27) | function ViewContent({ viewState }: PrimaryContentProps) { function PrimaryContent (line 61) | function PrimaryContent({ FILE: apps/postybirb-ui/src/components/layout/section-panel.tsx type SectionPanelProps (line 15) | interface SectionPanelProps { function SectionContent (line 23) | function SectionContent({ viewState }: SectionPanelProps) { function SectionPanel (line 52) | function SectionPanel({ viewState }: SectionPanelProps) { FILE: apps/postybirb-ui/src/components/layout/side-nav.tsx function TourButton (line 33) | function TourButton({ collapsed }: { collapsed: boolean }) { function NavItemRenderer (line 60) | function NavItemRenderer({ function SideNav (line 166) | function SideNav({ items, collapsed, onCollapsedChange }: SideNavProps) { FILE: apps/postybirb-ui/src/components/onboarding-tour/mantine-tooltip.tsx function MantineTooltip (line 19) | function MantineTooltip({ FILE: apps/postybirb-ui/src/components/onboarding-tour/tour-provider.tsx function useTourSteps (line 28) | function useTourSteps(tourId: string | null) { function TourProvider (line 77) | function TourProvider({ children }: { children: React.ReactNode }) { FILE: apps/postybirb-ui/src/components/onboarding-tour/tours/accounts-tour.tsx constant ACCOUNTS_TOUR_ID (line 10) | const ACCOUNTS_TOUR_ID = 'accounts'; function useAccountsTourSteps (line 15) | function useAccountsTourSteps(): Step[] { FILE: apps/postybirb-ui/src/components/onboarding-tour/tours/custom-shortcuts-tour.tsx constant CUSTOM_SHORTCUTS_TOUR_ID (line 10) | const CUSTOM_SHORTCUTS_TOUR_ID = 'custom-shortcuts'; function useCustomShortcutsTourSteps (line 15) | function useCustomShortcutsTourSteps(): Step[] { FILE: apps/postybirb-ui/src/components/onboarding-tour/tours/file-watchers-tour.tsx constant FILE_WATCHERS_TOUR_ID (line 10) | const FILE_WATCHERS_TOUR_ID = 'file-watchers'; function useFileWatchersTourSteps (line 15) | function useFileWatchersTourSteps(): Step[] { FILE: apps/postybirb-ui/src/components/onboarding-tour/tours/home-tour.tsx constant HOME_TOUR_ID (line 10) | const HOME_TOUR_ID = 'home'; function useHomeTourSteps (line 15) | function useHomeTourSteps(): Step[] { FILE: apps/postybirb-ui/src/components/onboarding-tour/tours/layout-tour.tsx function useLayoutTourSteps (line 14) | function useLayoutTourSteps(): Step[] { constant LAYOUT_TOUR_ID (line 257) | const LAYOUT_TOUR_ID = 'layout'; FILE: apps/postybirb-ui/src/components/onboarding-tour/tours/notifications-tour.tsx constant NOTIFICATIONS_TOUR_ID (line 10) | const NOTIFICATIONS_TOUR_ID = 'notifications'; function useNotificationsTourSteps (line 15) | function useNotificationsTourSteps(): Step[] { FILE: apps/postybirb-ui/src/components/onboarding-tour/tours/schedule-tour.tsx constant SCHEDULE_TOUR_ID (line 10) | const SCHEDULE_TOUR_ID = 'schedule'; function useScheduleTourSteps (line 15) | function useScheduleTourSteps(): Step[] { FILE: apps/postybirb-ui/src/components/onboarding-tour/tours/submission-edit-tour.tsx constant SUBMISSION_EDIT_TOUR_ID (line 10) | const SUBMISSION_EDIT_TOUR_ID = 'submission-edit'; function useSubmissionEditTourSteps (line 15) | function useSubmissionEditTourSteps(): Step[] { FILE: apps/postybirb-ui/src/components/onboarding-tour/tours/submissions-tour.tsx constant SUBMISSIONS_TOUR_ID (line 11) | const SUBMISSIONS_TOUR_ID = 'submissions'; function useSubmissionsTourSteps (line 16) | function useSubmissionsTourSteps(): Step[] { FILE: apps/postybirb-ui/src/components/onboarding-tour/tours/tag-converters-tour.tsx constant TAG_CONVERTERS_TOUR_ID (line 10) | const TAG_CONVERTERS_TOUR_ID = 'tag-converters'; function useTagConvertersTourSteps (line 15) | function useTagConvertersTourSteps(): Step[] { FILE: apps/postybirb-ui/src/components/onboarding-tour/tours/tag-groups-tour.tsx constant TAG_GROUPS_TOUR_ID (line 10) | const TAG_GROUPS_TOUR_ID = 'tag-groups'; function useTagGroupsTourSteps (line 15) | function useTagGroupsTourSteps(): Step[] { FILE: apps/postybirb-ui/src/components/onboarding-tour/tours/templates-tour.tsx constant TEMPLATES_TOUR_ID (line 10) | const TEMPLATES_TOUR_ID = 'templates'; function useTemplatesTourSteps (line 15) | function useTemplatesTourSteps(): Step[] { FILE: apps/postybirb-ui/src/components/onboarding-tour/tours/user-converters-tour.tsx constant USER_CONVERTERS_TOUR_ID (line 10) | const USER_CONVERTERS_TOUR_ID = 'user-converters'; function useUserConvertersTourSteps (line 15) | function useUserConvertersTourSteps(): Step[] { FILE: apps/postybirb-ui/src/components/sections/accounts-section/account-section-header.tsx function AccountSectionHeader (line 27) | function AccountSectionHeader() { FILE: apps/postybirb-ui/src/components/sections/accounts-section/accounts-content.tsx type AccountsContentProps (line 28) | interface AccountsContentProps { type AccountHeaderProps (line 36) | interface AccountHeaderProps { function AccountHeader (line 42) | function AccountHeader({ type UserLoginContentProps (line 83) | interface UserLoginContentProps { function UserLoginContent (line 91) | function UserLoginContent({ type CustomLoginContentProps (line 116) | interface CustomLoginContentProps { function CustomLoginContent (line 123) | function CustomLoginContent({ function AccountsContent (line 154) | function AccountsContent({ viewState }: AccountsContentProps) { FILE: apps/postybirb-ui/src/components/sections/accounts-section/accounts-section.tsx type AccountsSectionProps (line 33) | interface AccountsSectionProps { function AccountsSection (line 42) | function AccountsSection({ viewState }: AccountsSectionProps) { FILE: apps/postybirb-ui/src/components/sections/accounts-section/context/accounts-context.tsx type AccountsContextValue (line 11) | interface AccountsContextValue { function useAccountsContext (line 33) | function useAccountsContext(): AccountsContextValue { function useAccountsContextOptional (line 48) | function useAccountsContextOptional(): AccountsContextValue | null { type AccountsProviderProps (line 52) | interface AccountsProviderProps extends AccountsContextValue { function AccountsProvider (line 60) | function AccountsProvider({ FILE: apps/postybirb-ui/src/components/sections/accounts-section/custom-login-placeholder.tsx type CustomLoginPlaceholderProps (line 13) | interface CustomLoginPlaceholderProps { function CustomLoginPlaceholder (line 26) | function CustomLoginPlaceholder({ FILE: apps/postybirb-ui/src/components/sections/accounts-section/hooks/use-account-actions.ts type BoundAccountActions (line 12) | interface BoundAccountActions { function useAccountActions (line 45) | function useAccountActions(accountId: string): BoundAccountActions { FILE: apps/postybirb-ui/src/components/sections/accounts-section/login-webview.tsx type LoginWebviewProps (line 31) | interface LoginWebviewProps { function LoginWebview (line 43) | function LoginWebview({ src, accountId }: LoginWebviewProps) { FILE: apps/postybirb-ui/src/components/sections/accounts-section/website-account-card.tsx type WebsiteAccountCardProps (line 45) | interface WebsiteAccountCardProps { constant MAX_ACCOUNT_NAME_LENGTH (line 53) | const MAX_ACCOUNT_NAME_LENGTH = 24; FILE: apps/postybirb-ui/src/components/sections/accounts-section/website-visibility-picker.tsx function WebsiteVisibilityPicker (line 25) | function WebsiteVisibilityPicker() { FILE: apps/postybirb-ui/src/components/sections/accounts-section/webview-tag.ts type WebviewTag (line 31) | interface WebviewTag extends HTMLElement { FILE: apps/postybirb-ui/src/components/sections/file-submissions-section/hooks/use-file-submissions.ts type UseFileSubmissionsResult (line 11) | interface UseFileSubmissionsResult { function useFileSubmissions (line 31) | function useFileSubmissions(): UseFileSubmissionsResult { FILE: apps/postybirb-ui/src/components/sections/home-section/account-health-panel.tsx function AccountHealthPanel (line 32) | function AccountHealthPanel() { FILE: apps/postybirb-ui/src/components/sections/home-section/home-content.tsx function WelcomeEmptyState (line 58) | function WelcomeEmptyState() { function HomeContent (line 119) | function HomeContent() { FILE: apps/postybirb-ui/src/components/sections/home-section/queue-control-card.tsx function QueueControlCard (line 17) | function QueueControlCard() { FILE: apps/postybirb-ui/src/components/sections/home-section/recent-activity-panel.tsx function getNotificationIcon (line 24) | function getNotificationIcon(type: NotificationRecord['type']): { function RecentActivityPanel (line 45) | function RecentActivityPanel() { FILE: apps/postybirb-ui/src/components/sections/home-section/schedule-calendar-panel.tsx function useWeekdays (line 32) | function useWeekdays() { type DayCell (line 51) | type DayCell = function getMonthDays (line 58) | function getMonthDays(year: number, month: number): DayCell[] { function isSameDay (line 82) | function isSameDay(date1: Date, date2: Date): boolean { function ScheduleCalendarPanel (line 94) | function ScheduleCalendarPanel() { FILE: apps/postybirb-ui/src/components/sections/home-section/stat-card.tsx type StatCardProps (line 18) | interface StatCardProps { function StatCard (line 35) | function StatCard({ FILE: apps/postybirb-ui/src/components/sections/home-section/upcoming-posts-panel.tsx function UpcomingPostsPanel (line 22) | function UpcomingPostsPanel() { FILE: apps/postybirb-ui/src/components/sections/home-section/validation-issues-panel.tsx function ValidationIssuesPanel (line 27) | function ValidationIssuesPanel() { FILE: apps/postybirb-ui/src/components/sections/submissions-section/archived-submission-list.tsx type ArchivedSubmissionListProps (line 19) | interface ArchivedSubmissionListProps { function ArchivedSubmissionList (line 27) | function ArchivedSubmissionList({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/context/submissions-context.tsx type SubmissionsDataValue (line 17) | interface SubmissionsDataValue { type SubmissionsActionsValue (line 29) | interface SubmissionsActionsValue { function useSubmissionsData (line 64) | function useSubmissionsData(): SubmissionsDataValue { function useSubmissionsActions (line 80) | function useSubmissionsActions(): SubmissionsActionsValue { type SubmissionsProviderProps (line 91) | interface SubmissionsProviderProps { function SubmissionsProvider (line 129) | function SubmissionsProvider({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/file-submission-modal/file-dropzone.tsx type FileDropzoneProps (line 28) | interface FileDropzoneProps { function getFilesFromClipboard (line 40) | async function getFilesFromClipboard(): Promise { function FileDropzone (line 70) | function FileDropzone({ onDrop, isUploading, type }: FileDropzoneProps) { FILE: apps/postybirb-ui/src/components/sections/submissions-section/file-submission-modal/file-list.tsx constant ESTIMATED_ITEM_HEIGHT (line 17) | const ESTIMATED_ITEM_HEIGHT = 72; constant OVERSCAN_COUNT (line 19) | const OVERSCAN_COUNT = 3; type FileListProps (line 21) | interface FileListProps { function FileList (line 35) | function FileList({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/file-submission-modal/file-preview.tsx type FilePreviewProps (line 33) | interface FilePreviewProps { function FilePreview (line 44) | function FilePreview({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/file-submission-modal/file-submission-modal.tsx type FileSubmissionModalProps (line 49) | interface FileSubmissionModalProps { function FileSubmissionModal (line 74) | function FileSubmissionModal({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/file-submission-modal/file-submission-modal.utils.ts type FileItem (line 10) | interface FileItem { function getDefaultTitle (line 18) | function getDefaultTitle(filename: string): string { function generateThumbnail (line 30) | async function generateThumbnail( constant TEXT_MIME_TYPES (line 92) | const TEXT_MIME_TYPES = [ constant VIDEO_MIME_TYPES (line 105) | const VIDEO_MIME_TYPES = ['video/mp4', 'video/x-m4v', 'video/*']; FILE: apps/postybirb-ui/src/components/sections/submissions-section/file-submission-modal/image-editor.tsx type ImageEditorProps (line 49) | interface ImageEditorProps { constant ASPECT_RATIOS (line 62) | const ASPECT_RATIOS = [ function ImageEditor (line 77) | function ImageEditor({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/file-submission-modal/submission-options.tsx type OptionsMode (line 29) | type OptionsMode = 'custom' | 'template'; type SubmissionOptionsProps (line 31) | interface SubmissionOptionsProps { function SubmissionOptions (line 56) | function SubmissionOptions({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/hooks/use-global-dropzone.ts type UseGlobalDropzoneProps (line 8) | interface UseGlobalDropzoneProps { type UseGlobalDropzoneResult (line 21) | interface UseGlobalDropzoneResult { function useGlobalDropzone (line 30) | function useGlobalDropzone({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/hooks/use-submission-actions.ts type BoundSubmissionActions (line 14) | interface BoundSubmissionActions { function useSubmissionActions (line 55) | function useSubmissionActions( FILE: apps/postybirb-ui/src/components/sections/submissions-section/hooks/use-submission-create.ts type FileSubmissionUploadParams (line 20) | interface FileSubmissionUploadParams { type UseSubmissionCreateProps (line 31) | interface UseSubmissionCreateProps { type UseSubmissionCreateResult (line 36) | interface UseSubmissionCreateResult { function useSubmissionCreate (line 60) | function useSubmissionCreate({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/hooks/use-submission-delete.ts type UseSubmissionDeleteResult (line 15) | interface UseSubmissionDeleteResult { function useSubmissionDelete (line 26) | function useSubmissionDelete(): UseSubmissionDeleteResult { FILE: apps/postybirb-ui/src/components/sections/submissions-section/hooks/use-submission-handlers.ts type UseSubmissionHandlersProps (line 23) | interface UseSubmissionHandlersProps { type UseSubmissionHandlersResult (line 28) | interface UseSubmissionHandlersResult { function useSubmissionHandlers (line 86) | function useSubmissionHandlers({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/hooks/use-submission-post.ts type UseSubmissionPostResult (line 15) | interface UseSubmissionPostResult { function useSubmissionPost (line 34) | function useSubmissionPost(): UseSubmissionPostResult { FILE: apps/postybirb-ui/src/components/sections/submissions-section/hooks/use-submission-selection.ts type UseSubmissionSelectionProps (line 12) | interface UseSubmissionSelectionProps { type UseSubmissionSelectionResult (line 19) | interface UseSubmissionSelectionResult { function useSubmissionSelection (line 39) | function useSubmissionSelection({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/hooks/use-submission-update.ts type UseSubmissionUpdateResult (line 19) | interface UseSubmissionUpdateResult { function useSubmissionUpdate (line 43) | function useSubmissionUpdate(): UseSubmissionUpdateResult { FILE: apps/postybirb-ui/src/components/sections/submissions-section/hooks/use-submissions.ts type UseSubmissionsResult (line 11) | interface UseSubmissionsResult { type UseSubmissionsProps (line 30) | interface UseSubmissionsProps { function useSubmissions (line 38) | function useSubmissions({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/post-confirm-modal/post-confirm-modal.tsx type PostConfirmModalProps (line 14) | interface PostConfirmModalProps { function PostConfirmModal (line 33) | function PostConfirmModal({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/resume-mode-modal/resume-mode-modal.tsx type ResumeModeModalProps (line 11) | interface ResumeModeModalProps { function ResumeModeModal (line 27) | function ResumeModeModal({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-card/archived-submission-card.tsx type ArchivedSubmissionCardProps (line 39) | interface ArchivedSubmissionCardProps extends Omit< FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-card/sortable-submission-card.tsx type SortableSubmissionCardProps (line 13) | interface SortableSubmissionCardProps extends SubmissionCardProps { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-card/submission-actions.tsx type SubmissionActionsProps (line 24) | interface SubmissionActionsProps { function SubmissionActions (line 61) | function SubmissionActions({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-card/submission-badges.tsx type SubmissionBadgesProps (line 19) | interface SubmissionBadgesProps { function SubmissionBadges (line 30) | function SubmissionBadges({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-card/submission-quick-edit-actions.tsx type SubmissionQuickEditActionsProps (line 16) | type SubmissionQuickEditActionsProps = { type QuickEditTagsProps (line 20) | type QuickEditTagsProps = { function QuickEditTags (line 28) | function QuickEditTags({ tags, onChange }: QuickEditTagsProps) { function SubmissionQuickEditActions (line 79) | function SubmissionQuickEditActions({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-card/submission-thumbnail.tsx type SubmissionThumbnailProps (line 11) | interface SubmissionThumbnailProps { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-card/submission-title.tsx type SubmissionTitleProps (line 9) | interface SubmissionTitleProps { function SubmissionTitle (line 23) | function SubmissionTitle({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-card/types.ts type SubmissionCardProps (line 13) | interface SubmissionCardProps { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-card/utils.ts function getThumbnailUrl (line 12) | function getThumbnailUrl( FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/account-option-row.tsx type AccountOptionRowProps (line 26) | interface AccountOptionRowProps { function AccountOptionRow (line 40) | function AccountOptionRow({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/account-select.tsx type AccountGroupItem (line 42) | interface AccountGroupItem { function AccountSelect (line 51) | function AccountSelect() { type WebsiteGroupHeaderProps (line 484) | interface WebsiteGroupHeaderProps { function WebsiteGroupHeader (line 496) | function WebsiteGroupHeader({ type AccountOptionItemProps (line 534) | interface AccountOptionItemProps { function AccountOptionItem (line 542) | function AccountOptionItem({ account, isSelected }: AccountOptionItemPro... FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/account-selection-form.tsx type WebsiteAccountGroupProps (line 43) | interface WebsiteAccountGroupProps { function WebsiteAccountGroup (line 58) | function WebsiteAccountGroup({ function AccountSelectionForm (line 162) | function AccountSelectionForm() { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/fields/boolean-field.tsx function BooleanField (line 17) | function BooleanField({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/fields/datetime-field.tsx function DateTimePickerField (line 15) | function DateTimePickerField({ function DateTimeField (line 58) | function DateTimeField({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/fields/description-field.tsx function hasInlineContentType (line 28) | function hasInlineContentType( constant LEGACY_SHORTCUT_PATTERN (line 53) | const LEGACY_SHORTCUT_PATTERN = /\{[a-zA-Z0-9]+(?:\[[^\]]+\])?(?::[^}]+)... function hasLegacyShortcuts (line 58) | function hasLegacyShortcuts( function DescriptionField (line 81) | function DescriptionField({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/fields/description-preview-panel.tsx type DescriptionPreviewPanelProps (line 34) | interface DescriptionPreviewPanelProps { type PreviewState (line 46) | interface PreviewState { function formatDescriptionType (line 52) | function formatDescriptionType(type: DescriptionType): string { function PreviewContent (line 69) | function PreviewContent({ function DescriptionPreviewPanel (line 194) | function DescriptionPreviewPanel({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/fields/field-copy-button.tsx function FieldCopyButton (line 8) | function FieldCopyButton({ value }: { value: string | undefined }) { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/fields/field-label.tsx type FieldLabelProps (line 14) | interface FieldLabelProps { function getTranslatedLabel (line 20) | function getTranslatedLabel( function FieldLabel (line 38) | function FieldLabel( FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/fields/form-field.type.ts type FormFieldProps (line 7) | interface FormFieldProps< FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/fields/input-field.tsx function TextField (line 14) | function TextField({ function TextAreaField (line 41) | function TextAreaField({ function InputField (line 68) | function InputField({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/fields/radio-field.tsx type RadioFieldProps (line 13) | interface RadioFieldProps { type RatingFieldControlProps (line 18) | interface RatingFieldControlProps { type InnerRadioFieldProps (line 24) | interface InnerRadioFieldProps { function RatingFieldControl (line 29) | function RatingFieldControl({ function InnerRadioField (line 70) | function InnerRadioField({ fieldName, field }: InnerRadioFieldProps) { function RadioField (line 94) | function RadioField({ fieldName, field }: RadioFieldProps) { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/fields/select-field.tsx function getSelectOptions (line 22) | function getSelectOptions( function flattenForMantine (line 56) | function flattenForMantine( function SelectField (line 85) | function SelectField({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/fields/select-utils.ts function isOptionGroup (line 14) | function isOptionGroup(option: SelectOption): option is SelectOptionGroup { function isOptionSingle (line 21) | function isOptionSingle(option: SelectOption): option is SelectOptionSin... function hasNestedGroups (line 29) | function hasNestedGroups(options: SelectOption[]): boolean { function flattenSelectableOptions (line 42) | function flattenSelectableOptions( function getSelectedOptions (line 71) | function getSelectedOptions( function handleMutuallyExclusiveSelection (line 94) | function handleMutuallyExclusiveSelection( function filterOptions (line 134) | function filterOptions( function countSelectableOptions (line 187) | function countSelectableOptions(options: SelectOption[]): number { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/fields/tag-field.tsx constant TAG_GROUP_LABEL (line 36) | const TAG_GROUP_LABEL = 'GROUP:'; function containsAllTagsInGroup (line 41) | function containsAllTagsInGroup(tags: Tag[], group: TagGroupRecord): boo... function getTagConversion (line 48) | function getTagConversion( function TagField (line 67) | function TagField({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/fields/tree-select.tsx constant SEARCH_THRESHOLD (line 42) | const SEARCH_THRESHOLD = 7; type TreeNodeProps (line 46) | interface TreeNodeProps { type TreeSelectProps (line 152) | interface TreeSelectProps { function TreeSelect (line 163) | function TreeSelect({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/form-field.tsx type FormFieldProps (line 28) | interface FormFieldProps { function FormField (line 33) | function FormField({ fieldName, field }: FormFieldProps) { function evaluateShowWhen (line 129) | function evaluateShowWhen( FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/form-fields-context.tsx type FormFieldsContextValue (line 27) | interface FormFieldsContextValue { type FormFieldsProviderProps (line 48) | interface FormFieldsProviderProps extends PropsWithChildren { function FormFieldsProvider (line 53) | function FormFieldsProvider({ function useFormFieldsContext (line 202) | function useFormFieldsContext(): FormFieldsContextValue { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/hooks/use-default-option.tsx function useDefaultOption (line 8) | function useDefaultOption(fieldName: string): T | undefined { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/hooks/use-validations.tsx type UseValidationResult (line 9) | interface UseValidationResult { function useValidations (line 15) | function useValidations(fieldName: string): UseValidationResult { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/save-defaults-popover.tsx function getLabelString (line 35) | function getLabelString( function SaveDefaultsPopover (line 45) | function SaveDefaultsPopover() { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/section-layout.tsx constant COMMON_SECTION (line 15) | const COMMON_SECTION = 'common'; type SectionGroup (line 17) | interface SectionGroup { function groupFieldsBySection (line 25) | function groupFieldsBySection( type GridItemProps (line 75) | interface GridItemProps { function GridItem (line 80) | function GridItem({ field, fieldName }: GridItemProps) { type SectionGroupComponentProps (line 98) | interface SectionGroupComponentProps { function SectionGroupComponent (line 102) | function SectionGroupComponent({ section }: SectionGroupComponentProps) { function SectionLayout (line 114) | function SectionLayout() { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/form/validation-alerts.tsx function ValidationAlerts (line 15) | function ValidationAlerts() { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/account-selection/selected-accounts-forms.tsx type WebsiteFormGroupProps (line 47) | interface WebsiteFormGroupProps { function AccountStatusIcon (line 61) | function AccountStatusIcon({ status, errors }: { status: AccountPostStat... function GroupStatusIcon (line 94) | function GroupStatusIcon({ options, accountStatusMap }: { function WebsiteFormGroup (line 147) | function WebsiteFormGroup({ website, options, accountStatusMap }: Websit... function SelectedAccountsForms (line 276) | function SelectedAccountsForms() { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/actions/apply-template-action.tsx function ApplyTemplateAction (line 15) | function ApplyTemplateAction() { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/actions/save-to-many-action.tsx function SaveToManyAction (line 22) | function SaveToManyAction() { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/actions/submission-edit-card-actions.tsx function SubmissionEditCardActions (line 37) | function SubmissionEditCardActions() { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/body/submission-edit-card-body.tsx function SubmissionEditCardBody (line 21) | function SubmissionEditCardBody() { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/context/submission-edit-card-context.tsx type SubmissionEditCardViewMode (line 16) | type SubmissionEditCardViewMode = 'edit' | 'history'; type SubmissionEditCardContextValue (line 21) | interface SubmissionEditCardContextValue { type SubmissionEditCardProviderProps (line 42) | interface SubmissionEditCardProviderProps { function SubmissionEditCardProvider (line 55) | function SubmissionEditCardProvider({ function useSubmissionEditCardContext (line 87) | function useSubmissionEditCardContext(): SubmissionEditCardContextValue { function useSubmissionEditCardContextOptional (line 102) | function useSubmissionEditCardContextOptional(): SubmissionEditCardConte... FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/defaults-form/defaults-form.tsx function DefaultsForm (line 31) | function DefaultsForm() { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/file-management/bulk-file-editor.tsx type BulkFileEditorProps (line 37) | interface BulkFileEditorProps { function BulkFileEditor (line 41) | function BulkFileEditor({ files }: BulkFileEditorProps) { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/file-management/file-actions.tsx type FileActionsProps (line 37) | interface FileActionsProps { function FileActions (line 45) | function FileActions({ file, submissionId }: FileActionsProps) { function ThumbnailDisplay (line 318) | function ThumbnailDisplay({ file }: { file: ISubmissionFileDto }) { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/file-management/file-alt-text-editor.tsx type FileAltTextEditorProps (line 15) | interface FileAltTextEditorProps { function FileAltTextEditor (line 22) | function FileAltTextEditor({ file }: FileAltTextEditorProps) { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/file-management/file-metadata.tsx type FileMetadataProps (line 43) | interface FileMetadataProps { function FileMetadata (line 48) | function FileMetadata({ file, accounts }: FileMetadataProps) { type FileDimensionsProps (line 138) | interface FileDimensionsProps { function FileDimensions (line 144) | function FileDimensions({ file, accounts, save }: FileDimensionsProps) { type CustomAccountDimensionsProps (line 293) | interface CustomAccountDimensionsProps { function CustomAccountDimensions (line 300) | function CustomAccountDimensions({ type FileSourceUrlsProps (line 454) | interface FileSourceUrlsProps { function FileSourceUrls (line 459) | function FileSourceUrls({ metadata, save }: FileSourceUrlsProps) { function isValidUrl (line 538) | function isValidUrl(url: string): boolean { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/file-management/file-preview.tsx type FilePreviewProps (line 12) | interface FilePreviewProps { type ThumbnailPreviewProps (line 89) | interface ThumbnailPreviewProps { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/file-management/file-uploader.tsx constant TEXT_MIME_TYPES (line 27) | const TEXT_MIME_TYPES = [ constant VIDEO_MIME_TYPES (line 37) | const VIDEO_MIME_TYPES = ['video/mp4', 'video/x-m4v', 'video/*']; constant AUDIO_MIME_TYPES (line 38) | const AUDIO_MIME_TYPES = ['audio/*']; constant MAX_SIZE (line 40) | const MAX_SIZE = 100 * 1024 * 1024; function getFileTypeLabel (line 45) | function getFileTypeLabel(fileType: FileType): string { function FileUploader (line 60) | function FileUploader() { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/file-management/submission-file-card.tsx type SubmissionFileCardProps (line 39) | interface SubmissionFileCardProps { function getFileTypeColor (line 182) | function getFileTypeColor(fileType: FileType): string { function formatFileSize (line 197) | function formatFileSize(bytes: number): string { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/file-management/submission-file-manager.tsx constant DRAGGABLE_FILE_CLASS (line 52) | const DRAGGABLE_FILE_CLASS = 'postybirb-sortable-file'; function orderFiles (line 54) | function orderFiles(files: ISubmissionFileDto[]): ISubmissionFileDto[] { function SortableFileCard (line 65) | function SortableFileCard({ function SubmissionFileManager (line 103) | function SubmissionFileManager() { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/file-management/use-submission-accounts.ts function useSubmissionAccounts (line 11) | function useSubmissionAccounts(): IAccountDto[] { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/header/submission-edit-card-header.tsx type SubmissionEditCardHeaderProps (line 11) | interface SubmissionEditCardHeaderProps { function SubmissionEditCardHeader (line 20) | function SubmissionEditCardHeader({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/schedule-form/schedule-form.tsx type ScheduleFormProps (line 18) | interface ScheduleFormProps { constant SCHEDULE_GLOBAL_KEY (line 29) | const SCHEDULE_GLOBAL_KEY = 'postybirb-last-schedule'; constant DEFAULT_CRON (line 30) | const DEFAULT_CRON = '0 9 * * 5'; function ScheduleForm (line 35) | function ScheduleForm({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-edit-card/submission-edit-card.tsx type SubmissionEditCardProps (line 22) | interface SubmissionEditCardProps { function SubmissionEditCardInner (line 36) | function SubmissionEditCardInner() { function SubmissionEditCard (line 109) | function SubmissionEditCard({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-history-drawer.tsx type SubmissionHistoryDrawerProps (line 11) | interface SubmissionHistoryDrawerProps { function SubmissionHistoryDrawer (line 23) | function SubmissionHistoryDrawer({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-history/history-utils.ts type DerivedWebsitePost (line 17) | interface DerivedWebsitePost { function extractWebsitePostsFromEvents (line 30) | function extractWebsitePostsFromEvents( function exportPostRecordToFile (line 95) | function exportPostRecordToFile(record: PostRecordDto): string { function formatDuration (line 117) | function formatDuration(ms: number): string { function getPostRecordStateInfo (line 142) | function getPostRecordStateInfo(state: PostRecordState): { type AccountPostStatus (line 170) | type AccountPostStatus = type AccountPostStatusEntry (line 180) | interface AccountPostStatusEntry { function getAccountPostStatusMap (line 200) | function getAccountPostStatusMap( FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-history/post-history-content.tsx type PostHistoryContentProps (line 13) | interface PostHistoryContentProps { function PostHistoryContent (line 21) | function PostHistoryContent({ submission }: PostHistoryContentProps) { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-history/post-record-card.tsx function getStateIcon (line 40) | function getStateIcon(state: PostRecordState): React.ReactNode { type PostRecordCardProps (line 54) | interface PostRecordCardProps { function PostRecordCard (line 62) | function PostRecordCard({ record, accountsMap }: PostRecordCardProps) { FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-list.tsx constant NORMAL_CARD_HEIGHT (line 38) | const NORMAL_CARD_HEIGHT = 102; constant COMPACT_CARD_HEIGHT (line 40) | const COMPACT_CARD_HEIGHT = 89; constant OVERSCAN_COUNT (line 42) | const OVERSCAN_COUNT = 5; type SubmissionListProps (line 44) | interface SubmissionListProps { function SubmissionList (line 57) | function SubmissionList({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submission-section-header.tsx type SelectionState (line 47) | type SelectionState = 'none' | 'partial' | 'all'; type SubmissionSectionHeaderProps (line 49) | interface SubmissionSectionHeaderProps { function SubmissionSectionHeader (line 80) | function SubmissionSectionHeader({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submissions-content.tsx type SubmissionsContentProps (line 47) | interface SubmissionsContentProps { function EmptySubmissionSelection (line 57) | function EmptySubmissionSelection() { type SubmissionsContentHeaderProps (line 70) | interface SubmissionsContentHeaderProps { function SubmissionsContentHeader (line 76) | function SubmissionsContentHeader({ function SubmissionsContent (line 133) | function SubmissionsContent({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/submissions-section.tsx type SubmissionTab (line 40) | type SubmissionTab = 'submissions' | 'archived'; function SubmissionsSection (line 46) | function SubmissionsSection({ FILE: apps/postybirb-ui/src/components/sections/submissions-section/types.ts type SubmissionsSectionProps (line 19) | interface SubmissionsSectionProps { constant DRAGGABLE_SUBMISSION_CLASS (line 27) | const DRAGGABLE_SUBMISSION_CLASS = 'draggable-submission-card'; type SubmissionsViewState (line 36) | type SubmissionsViewState = function isSubmissionsViewState (line 44) | function isSubmissionsViewState( constant SUBMISSION_FILTERS (line 61) | const SUBMISSION_FILTERS = { type SubmissionFilterValue (line 72) | type SubmissionFilterValue = FILE: apps/postybirb-ui/src/components/sections/templates-section/template-card.tsx type TemplateCardProps (line 39) | interface TemplateCardProps { function TemplateCard (line 48) | function TemplateCard({ FILE: apps/postybirb-ui/src/components/sections/templates-section/templates-content.tsx type TemplatesContentProps (line 35) | interface TemplatesContentProps { function EmptyTemplateSelection (line 42) | function EmptyTemplateSelection() { function TemplatesContentHeader (line 58) | function TemplatesContentHeader() { function TemplatesContent (line 100) | function TemplatesContent({ viewState }: TemplatesContentProps) { FILE: apps/postybirb-ui/src/components/sections/templates-section/templates-section.tsx type TemplatesSectionProps (line 51) | interface TemplatesSectionProps { function TemplatesSection (line 58) | function TemplatesSection({ viewState }: TemplatesSectionProps) { FILE: apps/postybirb-ui/src/components/shared/account-picker/account-picker.tsx type AccountPickerProps (line 31) | interface AccountPickerProps { type WebsiteAccountGroupProps (line 40) | interface WebsiteAccountGroupProps { function WebsiteAccountGroup (line 50) | function WebsiteAccountGroup({ function AccountPicker (line 150) | function AccountPicker({ FILE: apps/postybirb-ui/src/components/shared/basic-website-select/basic-website-select.tsx type WebsiteSelectProps (line 22) | type WebsiteSelectProps = { function BasicWebsiteSelect (line 29) | function BasicWebsiteSelect(props: WebsiteSelectProps) { FILE: apps/postybirb-ui/src/components/shared/copy-to-clipboard/copy-to-clipboard.tsx type CopyToClipboardProps (line 10) | interface CopyToClipboardProps { constant ICON_SIZE_MAP (line 26) | const ICON_SIZE_MAP: Record< function CopyToClipboard (line 40) | function CopyToClipboard({ FILE: apps/postybirb-ui/src/components/shared/description-editor/components/bubble-toolbar.tsx type BubbleToolbarProps (line 22) | interface BubbleToolbarProps { function BubbleToolbar (line 30) | function BubbleToolbar({ editor }: BubbleToolbarProps) { function BubbleButton (line 165) | function BubbleButton({ FILE: apps/postybirb-ui/src/components/shared/description-editor/components/description-toolbar.tsx type DescriptionToolbarProps (line 43) | interface DescriptionToolbarProps { function DescriptionToolbar (line 54) | function DescriptionToolbar({ function ToolbarButton (line 233) | function ToolbarButton({ function LinkButton (line 262) | function LinkButton({ editor }: { editor: Editor }) { function TextColorButton (line 355) | function TextColorButton({ editor }: { editor: Editor }) { FILE: apps/postybirb-ui/src/components/shared/description-editor/components/html-edit-modal.tsx type HtmlEditModalProps (line 6) | interface HtmlEditModalProps { function HtmlEditModal (line 15) | function HtmlEditModal({ editor, opened, onClose }: HtmlEditModalProps) { FILE: apps/postybirb-ui/src/components/shared/description-editor/components/insert-media-modal.tsx type InsertMediaModalProps (line 15) | interface InsertMediaModalProps { type MediaType (line 21) | type MediaType = 'image' | 'video'; function InsertMediaModal (line 26) | function InsertMediaModal({ FILE: apps/postybirb-ui/src/components/shared/description-editor/components/suggestion-menu.tsx type SuggestionItem (line 12) | interface SuggestionItem { type SuggestionMenuRef (line 20) | interface SuggestionMenuRef { type SuggestionMenuProps (line 24) | interface SuggestionMenuProps { function filterSuggestionItems (line 161) | function filterSuggestionItems( FILE: apps/postybirb-ui/src/components/shared/description-editor/custom-blocks/website-only-selector.tsx type WebsiteOnlySelectorProps (line 28) | interface WebsiteOnlySelectorProps { function WebsiteOnlySelector (line 39) | function WebsiteOnlySelector({ FILE: apps/postybirb-ui/src/components/shared/description-editor/description-editor.tsx type DescriptionEditorProps (line 75) | type DescriptionEditorProps = { function createSuggestionExtension (line 97) | function createSuggestionExtension( function DescriptionEditor (line 173) | function DescriptionEditor({ FILE: apps/postybirb-ui/src/components/shared/description-editor/extensions/content-warning-shortcut.tsx function ContentWarningShortcutView (line 13) | function ContentWarningShortcutView({ method addAttributes (line 56) | addAttributes() { method parseHTML (line 62) | parseHTML() { method renderHTML (line 66) | renderHTML({ HTMLAttributes }) { method addNodeView (line 70) | addNodeView() { method addCommands (line 75) | addCommands() { FILE: apps/postybirb-ui/src/components/shared/description-editor/extensions/custom-shortcut.tsx function CustomShortcutView (line 13) | function CustomShortcutView({ method addAttributes (line 65) | addAttributes() { method parseHTML (line 72) | parseHTML() { method renderHTML (line 76) | renderHTML({ HTMLAttributes }) { method addNodeView (line 80) | addNodeView() { method addCommands (line 85) | addCommands() { FILE: apps/postybirb-ui/src/components/shared/description-editor/extensions/default-shortcut.tsx function DefaultShortcutView (line 13) | function DefaultShortcutView({ method addAttributes (line 56) | addAttributes() { method parseHTML (line 62) | parseHTML() { method renderHTML (line 66) | renderHTML({ HTMLAttributes }) { method addNodeView (line 70) | addNodeView() { method addCommands (line 75) | addCommands() { FILE: apps/postybirb-ui/src/components/shared/description-editor/extensions/indent.ts type IndentOptions (line 4) | interface IndentOptions { type Commands (line 14) | interface Commands { method addOptions (line 31) | addOptions() { method addGlobalAttributes (line 39) | addGlobalAttributes() { method addCommands (line 65) | addCommands() { method addKeyboardShortcuts (line 121) | addKeyboardShortcuts() { FILE: apps/postybirb-ui/src/components/shared/description-editor/extensions/resizable-image.tsx type ResizableImageAttrs (line 20) | interface ResizableImageAttrs { function ResizableImageView (line 33) | function ResizableImageView({ method addAttributes (line 371) | addAttributes() { method parseHTML (line 381) | parseHTML() { method renderHTML (line 385) | renderHTML({ HTMLAttributes }) { method addNodeView (line 389) | addNodeView() { method addCommands (line 394) | addCommands() { FILE: apps/postybirb-ui/src/components/shared/description-editor/extensions/tags-shortcut.tsx function TagsShortcutView (line 13) | function TagsShortcutView({ method addAttributes (line 56) | addAttributes() { method parseHTML (line 62) | parseHTML() { method renderHTML (line 66) | renderHTML({ HTMLAttributes }) { method addNodeView (line 70) | addNodeView() { method addCommands (line 75) | addCommands() { FILE: apps/postybirb-ui/src/components/shared/description-editor/extensions/title-shortcut.tsx function TitleShortcutView (line 13) | function TitleShortcutView({ method addAttributes (line 56) | addAttributes() { method parseHTML (line 62) | parseHTML() { method renderHTML (line 66) | renderHTML({ HTMLAttributes }) { method addNodeView (line 70) | addNodeView() { method addCommands (line 75) | addCommands() { FILE: apps/postybirb-ui/src/components/shared/description-editor/extensions/username-shortcut.tsx function UsernameShortcutView (line 40) | function UsernameShortcutView({ method addAttributes (line 460) | addAttributes() { method parseHTML (line 468) | parseHTML() { method renderHTML (line 472) | renderHTML({ HTMLAttributes }) { method addNodeView (line 476) | addNodeView() { method addCommands (line 481) | addCommands() { FILE: apps/postybirb-ui/src/components/shared/external-link/external-link.tsx function openLink (line 14) | function openLink(url?: string) { function ExternalLink (line 28) | function ExternalLink( FILE: apps/postybirb-ui/src/components/shared/multi-scheduler-modal/multi-scheduler-modal.tsx constant SCHEDULE_STORAGE_KEY (line 35) | const SCHEDULE_STORAGE_KEY = 'postybirb-last-schedule-date'; type MultiSchedulerModalProps (line 37) | interface MultiSchedulerModalProps { function getNextDate (line 50) | function getNextDate( function MultiSchedulerModal (line 70) | function MultiSchedulerModal({ FILE: apps/postybirb-ui/src/components/shared/rating-input/rating-input.tsx type RatingInputProps (line 17) | interface RatingInputProps { function getEmptyIcon (line 57) | function getEmptyIcon(size: 'xs' | 'sm' | 'md', value: number) { function getFullIcon (line 74) | function getFullIcon(size: 'xs' | 'sm' | 'md', value: number) { function RatingInput (line 94) | function RatingInput({ FILE: apps/postybirb-ui/src/components/shared/reorderable-submission-list/reorderable-submission-list.tsx type ReorderableSubmissionListProps (line 32) | interface ReorderableSubmissionListProps { function ReorderableSubmissionList (line 50) | function ReorderableSubmissionList({ function SortableReorderableItem (line 163) | function SortableReorderableItem({ FILE: apps/postybirb-ui/src/components/shared/schedule-popover/cron-picker.tsx type CronPickerProps (line 32) | interface CronPickerProps { type Frequency (line 39) | type Frequency = 'daily' | 'weekly' | 'monthly'; type CronMode (line 40) | type CronMode = 'builder' | 'custom'; constant DAYS_OF_WEEK (line 44) | const DAYS_OF_WEEK = [ constant DAYS_OF_MONTH (line 55) | const DAYS_OF_MONTH = Array.from({ length: 31 }, (_, i) => ({ function getOrdinalSuffix (line 61) | function getOrdinalSuffix(n: number): string { function parseCron (line 70) | function parseCron(cron: string): { function buildCron (line 137) | function buildCron( function CronPicker (line 164) | function CronPicker({ value, onChange }: CronPickerProps) { FILE: apps/postybirb-ui/src/components/shared/schedule-popover/schedule-popover.tsx type SchedulePopoverProps (line 34) | interface SchedulePopoverProps { constant SCHEDULE_GLOBAL_KEY (line 47) | const SCHEDULE_GLOBAL_KEY = 'postybirb-last-schedule'; constant DEFAULT_CRON (line 48) | const DEFAULT_CRON = '0 9 * * 5'; function SchedulePopover (line 53) | function SchedulePopover({ FILE: apps/postybirb-ui/src/components/shared/search-input.tsx type SearchInputSize (line 10) | type SearchInputSize = 'xs' | 'sm' | 'md'; type SearchInputProps (line 12) | interface SearchInputProps constant ICON_SIZES (line 29) | const ICON_SIZES: Record(url: string): Promise { type E621AutocompleteTag (line 29) | interface E621AutocompleteTag { class E621TagSearchProvider (line 48) | class E621TagSearchProvider extends TagSearchProvider { method searchImplementation (line 51) | protected async searchImplementation(query: string): Promise { method renderSearchItem (line 62) | renderSearchItem( type E621WikiPage (line 73) | interface E621WikiPage { function E621TagSearchItem (line 79) | function E621TagSearchItem(props: { FILE: apps/postybirb-ui/src/components/website-components/furaffinity/furaffinity-bbcode.ts type RenderOptions (line 10) | interface RenderOptions { type TokenType (line 14) | type TokenType = type BaseToken (line 28) | interface BaseToken { type TextToken (line 33) | interface TextToken extends BaseToken { type OpenTagToken (line 37) | interface OpenTagToken extends BaseToken { type CloseTagToken (line 43) | interface CloseTagToken extends BaseToken { type IconAndUsernameLinkToken (line 48) | interface IconAndUsernameLinkToken extends BaseToken { type IconOnlyLinkToken (line 53) | interface IconOnlyLinkToken extends BaseToken { type UsernameOnlyLinkToken (line 58) | interface UsernameOnlyLinkToken extends BaseToken { type HorizontalRuleToken (line 63) | interface HorizontalRuleToken extends BaseToken { type LineBreakToken (line 67) | interface LineBreakToken extends BaseToken { type ForcedLineBreakToken (line 71) | interface ForcedLineBreakToken extends BaseToken { type ForcedParagraphBreakToken (line 75) | interface ForcedParagraphBreakToken extends BaseToken { type AutomaticLinkToken (line 79) | interface AutomaticLinkToken extends BaseToken { type SeriesNavigationToken (line 83) | interface SeriesNavigationToken extends BaseToken { type Token (line 90) | type Token = constant CSS3_OPAQUE_COLOUR (line 140) | const CSS3_OPAQUE_COLOUR = function tokenize (line 143) | function tokenize(input: string): Token[] { type Node (line 226) | interface Node { type OpenTagInfo (line 232) | interface OpenTagInfo { type ClosedOverInfo (line 239) | interface ClosedOverInfo { function transform (line 244) | function transform( function createSeriesLink (line 330) | function createSeriesLink(label: string, id: string): string { function createSeriesNavigation (line 335) | function createSeriesNavigation(token: SeriesNavigationToken): string { function furaffinityBBCodeRenderToHTML (line 339) | function furaffinityBBCodeRenderToHTML( function generateHref (line 531) | function generateHref(href: string, internal: boolean) { FILE: apps/postybirb-ui/src/components/website-components/tumblr/tumblr-npf-renderer.tsx function renderTextBlock (line 53) | function renderTextBlock(block: NPFTextBlock): React.ReactNode { function renderImageBlock (line 153) | function renderImageBlock(block: NPFImageBlock): React.ReactNode { function renderLinkBlock (line 177) | function renderLinkBlock(block: NPFLinkBlock): React.ReactNode { function renderOtherBlock (line 221) | function renderOtherBlock(block: NPFContentBlock): React.ReactNode { FILE: apps/postybirb-ui/src/components/website-login-views/bluesky/bluesky-login-view.tsx function safeUrlParse (line 31) | function safeUrlParse(url: string) { function BlueskyLoginView (line 41) | function BlueskyLoginView( FILE: apps/postybirb-ui/src/components/website-login-views/custom/custom-login-view.tsx type HeaderWithId (line 23) | interface HeaderWithId { constant HEADER_NAME_PLACEHOLDER (line 30) | const HEADER_NAME_PLACEHOLDER = 'Header name'; constant HEADER_VALUE_PLACEHOLDER (line 31) | const HEADER_VALUE_PLACEHOLDER = 'Header value'; function CustomLoginView (line 33) | function CustomLoginView( FILE: apps/postybirb-ui/src/components/website-login-views/discord/discord-login-view.tsx function DiscordLoginView (line 42) | function DiscordLoginView( FILE: apps/postybirb-ui/src/components/website-login-views/e621/e621-login-view.tsx function E621LoginView (line 18) | function E621LoginView( FILE: apps/postybirb-ui/src/components/website-login-views/helpers.tsx function notifyInfo (line 15) | function notifyInfo(title: React.ReactNode, message: React.ReactNode) { function notifyLoginSuccess (line 27) | function notifyLoginSuccess( function notifyLoginFailed (line 43) | function notifyLoginFailed(message?: React.ReactNode) { function notifyLoginError (line 57) | function notifyLoginError(error: Error) { function createLoginHttpErrorHandler (line 70) | function createLoginHttpErrorHandler(action?: React.ReactNode) { FILE: apps/postybirb-ui/src/components/website-login-views/index.ts function getLoginViewComponent (line 55) | function getLoginViewComponent( function hasLoginViewComponent (line 66) | function hasLoginViewComponent(loginComponentName: string): boolean { FILE: apps/postybirb-ui/src/components/website-login-views/inkbunny/inkbunny-login-view.tsx function InkbunnyLoginView (line 30) | function InkbunnyLoginView({ FILE: apps/postybirb-ui/src/components/website-login-views/instagram/instagram-login-view.tsx function InstagramLoginView (line 41) | function InstagramLoginView( FILE: apps/postybirb-ui/src/components/website-login-views/instagram/instagram-setup-guide.tsx type SetupStep (line 25) | interface SetupStep { type SetupSection (line 31) | interface SetupSection { constant REDIRECT_URL (line 39) | const REDIRECT_URL = `https://localhost:${window.electron?.app_port || '... constant SETUP_SECTIONS (line 41) | const SETUP_SECTIONS: SetupSection[] = [ constant STORAGE_KEY (line 155) | const STORAGE_KEY = 'instagram-setup-checklist'; function loadCheckedState (line 157) | function loadCheckedState(): Record { function saveCheckedState (line 166) | function saveCheckedState(state: Record) { function InstagramSetupGuide (line 174) | function InstagramSetupGuide() { FILE: apps/postybirb-ui/src/components/website-login-views/login-view-container.tsx type LoginViewContainerProps (line 4) | interface LoginViewContainerProps extends BoxProps { function LoginViewContainer (line 14) | function LoginViewContainer({ FILE: apps/postybirb-ui/src/components/website-login-views/megalodon/megalodon-login-view.tsx constant AUTH_CODE_PLACEHOLDER (line 22) | const AUTH_CODE_PLACEHOLDER = 'Authorization code'; function MegalodonLoginView (line 24) | function MegalodonLoginView( FILE: apps/postybirb-ui/src/components/website-login-views/misskey/misskey-login-view.tsx function MisskeyLoginView (line 22) | function MisskeyLoginView( FILE: apps/postybirb-ui/src/components/website-login-views/telegram/telegram-login-view.tsx function TelegramLoginView (line 25) | function TelegramLoginView( FILE: apps/postybirb-ui/src/components/website-login-views/twitter/twitter-login-view.tsx function TwitterLoginView (line 36) | function TwitterLoginView( FILE: apps/postybirb-ui/src/components/website-login-views/types.ts type LoginViewProps (line 12) | interface LoginViewProps { type LoginViewComponent (line 24) | type LoginViewComponent = React.ComponentType< FILE: apps/postybirb-ui/src/config/keybindings.ts function toTinykeysFormat (line 43) | function toTinykeysFormat(keybinding: string): string { FILE: apps/postybirb-ui/src/config/nav-items.tsx function UnreadNotificationsBadge (line 227) | function UnreadNotificationsBadge() { FILE: apps/postybirb-ui/src/hooks/tag-search/tag-search-provider.ts method search (line 33) | async search(query: string): Promise { FILE: apps/postybirb-ui/src/hooks/tag-search/use-tag-search.ts type UseTagSearchResult (line 12) | interface UseTagSearchResult { function useTagSearch (line 47) | function useTagSearch(fieldProviderId?: string): UseTagSearchResult { FILE: apps/postybirb-ui/src/hooks/use-keybindings.ts function useKeybindings (line 44) | function useKeybindings(): void { FILE: apps/postybirb-ui/src/hooks/use-locale.ts type UseLocaleResult (line 19) | interface UseLocaleResult { constant DEFAULT_DATETIME_OPTIONS (line 47) | const DEFAULT_DATETIME_OPTIONS: Intl.DateTimeFormatOptions = { constant DEFAULT_DATE_OPTIONS (line 54) | const DEFAULT_DATE_OPTIONS: Intl.DateTimeFormatOptions = { constant DEFAULT_TIME_OPTIONS (line 60) | const DEFAULT_TIME_OPTIONS: Intl.DateTimeFormatOptions = { function useLocale (line 80) | function useLocale(): UseLocaleResult { FILE: apps/postybirb-ui/src/i18n/validation-translation.tsx type TranslationsMap (line 16) | type TranslationsMap = { function ValidationTranslation (line 421) | function ValidationTranslation({ FILE: apps/postybirb-ui/src/index.tsx function AppContent (line 40) | function AppContent() { function PostyBirb (line 65) | function PostyBirb() { FILE: apps/postybirb-ui/src/main.tsx function Root (line 9) | function Root() { type Window (line 27) | interface Window { FILE: apps/postybirb-ui/src/models/http-error-response.ts type HttpErrorResponse (line 1) | interface HttpErrorResponse { FILE: apps/postybirb-ui/src/providers/i18n-provider.tsx function I18nProvider (line 20) | function I18nProvider({ children }: { children: React.ReactNode }) { FILE: apps/postybirb-ui/src/shared/platform-utils.ts function getNavigationModifier (line 19) | function getNavigationModifier(): 'Control' | 'Alt' { function getActionModifier (line 27) | function getActionModifier(): 'Meta' | 'Control' { function formatKeybindingDisplay (line 41) | function formatKeybindingDisplay(keybinding: string): string { FILE: apps/postybirb-ui/src/stores/create-entity-store.ts type LoadingState (line 17) | type LoadingState = 'idle' | 'loading' | 'loaded' | 'error'; type BaseEntityState (line 22) | interface BaseEntityState { type BaseEntityActions (line 38) | interface BaseEntityActions { type EntityStore (line 52) | type EntityStore = BaseEntityState & type CreateEntityStoreOptions (line 58) | interface CreateEntityStoreOptions< function shallowDiff (line 84) | function shallowDiff( function diffRecords (line 117) | function diffRecords< function createEntityStore (line 233) | function createEntityStore< function useRecordsSelector (line 363) | function useRecordsSelector( function useLoadingStateSelector (line 374) | function useLoadingStateSelector( FILE: apps/postybirb-ui/src/stores/create-typed-store.ts type TypedStoreConfig (line 13) | interface TypedStoreConfig { function createTypedStore (line 78) | function createTypedStore = T extends TypedStoreResult FILE: apps/postybirb-ui/src/stores/entity/account-store.ts function accountHasChanged (line 23) | function accountHasChanged(existing: AccountRecord, dto: IAccountDto): b... type AccountStoreState (line 62) | type AccountStoreState = EntityStore; type AccountStore (line 65) | type AccountStore = AccountStoreState; FILE: apps/postybirb-ui/src/stores/entity/custom-shortcut-store.ts type CustomShortcutStore (line 38) | type CustomShortcutStore = EntityStore; FILE: apps/postybirb-ui/src/stores/entity/directory-watcher-store.ts type DirectoryWatcherStore (line 33) | type DirectoryWatcherStore = EntityStore; FILE: apps/postybirb-ui/src/stores/entity/notification-store.ts function getNotificationColor (line 27) | function getNotificationColor(type: INotification['type']): MantineColor { function showUINotification (line 45) | function showUINotification(notification: INotification): void { type NotificationStore (line 99) | type NotificationStore = EntityStore; FILE: apps/postybirb-ui/src/stores/entity/settings-store.ts type SettingsStore (line 39) | type SettingsStore = EntityStore; FILE: apps/postybirb-ui/src/stores/entity/submission-store.ts function validationFingerprint (line 21) | function validationFingerprint(v: ValidationResult): string { function maxUpdatedAt (line 29) | function maxUpdatedAt(items: { updatedAt: string }[]): string { function submissionHasChanged (line 52) | function submissionHasChanged(existing: SubmissionRecord, dto: ISubmissi... type SubmissionStoreState (line 119) | type SubmissionStoreState = EntityStore; type SubmissionStore (line 122) | type SubmissionStore = SubmissionStoreState; FILE: apps/postybirb-ui/src/stores/entity/tag-converter-store.ts type TagConverterStore (line 36) | type TagConverterStore = EntityStore; FILE: apps/postybirb-ui/src/stores/entity/tag-group-store.ts type TagGroupStore (line 41) | type TagGroupStore = EntityStore; FILE: apps/postybirb-ui/src/stores/entity/user-converter-store.ts type UserConverterStore (line 44) | type UserConverterStore = EntityStore; FILE: apps/postybirb-ui/src/stores/entity/website-store.ts type WebsiteState (line 18) | interface WebsiteState { type WebsiteActions (line 34) | interface WebsiteActions { type WebsiteStore (line 48) | type WebsiteStore = WebsiteState & WebsiteActions; FILE: apps/postybirb-ui/src/stores/records/account-record.ts class AccountRecord (line 11) | class AccountRecord extends BaseRecord { method constructor (line 19) | constructor(dto: IAccountDto) { method accountId (line 32) | get accountId(): AccountId { method isLoggedIn (line 39) | get isLoggedIn(): boolean { method isPending (line 46) | get isPending(): boolean { method username (line 53) | get username(): string | null { method websiteDisplayName (line 60) | get websiteDisplayName(): string { method hasGroup (line 67) | hasGroup(group: string): boolean { FILE: apps/postybirb-ui/src/stores/records/base-record.ts type IBaseRecord (line 11) | interface IBaseRecord { method constructor (line 26) | constructor(dto: { id: EntityId; createdAt: string; updatedAt: string }) { method matches (line 35) | matches(id: EntityId): boolean { method isNewerThan (line 42) | isNewerThan(other: BaseRecord): boolean { FILE: apps/postybirb-ui/src/stores/records/custom-shortcut-record.ts class CustomShortcutRecord (line 11) | class CustomShortcutRecord extends BaseRecord { method constructor (line 15) | constructor(dto: ICustomShortcutDto) { method getShortcutValue (line 24) | getShortcutValue(): string { FILE: apps/postybirb-ui/src/stores/records/directory-watcher-record.ts class DirectoryWatcherRecord (line 15) | class DirectoryWatcherRecord extends BaseRecord { method constructor (line 20) | constructor(dto: DirectoryWatcherDto) { method hasPath (line 30) | get hasPath(): boolean { method hasTemplate (line 37) | get hasTemplate(): boolean { FILE: apps/postybirb-ui/src/stores/records/notification-record.ts type NotificationType (line 11) | type NotificationType = 'warning' | 'error' | 'info' | 'success'; class NotificationRecord (line 16) | class NotificationRecord extends BaseRecord { method constructor (line 25) | constructor(dto: INotification) { method isUnread (line 39) | get isUnread(): boolean { method isError (line 46) | get isError(): boolean { method isWarning (line 53) | get isWarning(): boolean { method hasTag (line 60) | hasTag(tag: string): boolean { FILE: apps/postybirb-ui/src/stores/records/settings-record.ts class SettingsRecord (line 18) | class SettingsRecord extends BaseRecord { method constructor (line 25) | constructor(dto: SettingsDto) { method hiddenWebsites (line 36) | get hiddenWebsites(): WebsiteId[] { method language (line 41) | get language(): string { method allowAd (line 46) | get allowAd(): boolean { method queuePaused (line 51) | get queuePaused(): boolean { method desktopNotifications (line 56) | get desktopNotifications(): DesktopNotificationSettings { method tagSearchProvider (line 61) | get tagSearchProvider(): TagSearchProviderSettings { method isWebsiteHidden (line 72) | isWebsiteHidden(websiteId: WebsiteId): boolean { method filterVisibleWebsites (line 79) | filterVisibleWebsites(allWebsiteIds: WebsiteId[]): WebsiteId[] { method isDesktopNotificationEnabled (line 86) | isDesktopNotificationEnabled( method toDto (line 95) | toDto(): SettingsDto { FILE: apps/postybirb-ui/src/stores/records/submission-record.ts class SubmissionRecord (line 24) | class SubmissionRecord extends BaseRecord { method constructor (line 45) | constructor(dto: ISubmissionDto) { method submissionId (line 81) | get submissionId(): SubmissionId { method hasFiles (line 88) | get hasFiles(): boolean { method primaryFile (line 95) | get primaryFile(): ISubmissionFileDto | undefined { method hasErrors (line 102) | get hasErrors(): boolean { method hasWarnings (line 109) | get hasWarnings(): boolean { method isQueued (line 116) | get isQueued(): boolean { method isPosting (line 123) | get isPosting(): boolean { method hasWebsiteOptions (line 131) | get hasWebsiteOptions(): boolean { method scheduledDate (line 138) | get scheduledDate(): Date | null { method getDefaultOptions (line 149) | getDefaultOptions(): method title (line 162) | get title(): string { method lastModified (line 174) | get lastModified(): Date { method computeLastModified (line 178) | private computeLastModified(): Date { method hasScheduleTime (line 201) | get hasScheduleTime(): boolean { method sortedPosts (line 213) | get sortedPosts(): PostRecordDto[] { method sortedPostsDescending (line 221) | get sortedPostsDescending(): PostRecordDto[] { method latestPost (line 228) | get latestPost(): PostRecordDto | undefined { method latestCompletedPost (line 236) | get latestCompletedPost(): PostRecordDto | undefined { method postingStats (line 247) | get postingStats(): { method hasBeenPostedSuccessfully (line 268) | get hasBeenPostedSuccessfully(): boolean { method hasFailedPostingAttempts (line 275) | get hasFailedPostingAttempts(): boolean { method isCurrentlyPosting (line 282) | get isCurrentlyPosting(): boolean { FILE: apps/postybirb-ui/src/stores/records/tag-converter-record.ts class TagConverterRecord (line 11) | class TagConverterRecord extends BaseRecord { method constructor (line 15) | constructor(dto: TagConverterDto) { method getConvertedTag (line 24) | getConvertedTag(websiteId: WebsiteId): Tag | undefined { method hasConversionFor (line 31) | hasConversionFor(websiteId: WebsiteId): boolean { method websiteIds (line 38) | get websiteIds(): WebsiteId[] { method conversionCount (line 45) | get conversionCount(): number { FILE: apps/postybirb-ui/src/stores/records/tag-group-record.ts class TagGroupRecord (line 11) | class TagGroupRecord extends BaseRecord { method constructor (line 15) | constructor(dto: TagGroupDto) { method hasTag (line 24) | hasTag(tag: Tag): boolean { method tagCount (line 31) | get tagCount(): number { method isEmpty (line 38) | get isEmpty(): boolean { method tagsString (line 45) | get tagsString(): string { FILE: apps/postybirb-ui/src/stores/records/user-converter-record.ts class UserConverterRecord (line 11) | class UserConverterRecord extends BaseRecord { method constructor (line 15) | constructor(dto: UserConverterDto) { method getConvertedUsername (line 24) | getConvertedUsername(websiteId: WebsiteId): string | undefined { method hasConversionFor (line 31) | hasConversionFor(websiteId: WebsiteId): boolean { method websiteIds (line 38) | get websiteIds(): WebsiteId[] { method conversionCount (line 45) | get conversionCount(): number { FILE: apps/postybirb-ui/src/stores/records/website-record.ts class WebsiteRecord (line 19) | class WebsiteRecord { method constructor (line 33) | constructor(dto: IWebsiteInfoDto) { method matches (line 53) | matches(id: WebsiteId): boolean { method accountCount (line 60) | get accountCount(): number { method loggedInAccounts (line 67) | get loggedInAccounts(): IAccountDto[] { method loggedInCount (line 74) | get loggedInCount(): number { method hasLoggedInAccounts (line 81) | get hasLoggedInAccounts(): boolean { method isUserLogin (line 88) | get isUserLogin(): boolean { method isCustomLogin (line 95) | get isCustomLogin(): boolean { FILE: apps/postybirb-ui/src/stores/store-init.ts function loadAllStores (line 22) | async function loadAllStores(): Promise { function useInitializeStores (line 41) | function useInitializeStores() { function areAllStoresLoaded (line 68) | function areAllStoresLoaded(): boolean { function clearAllStores (line 86) | function clearAllStores(): void { FILE: apps/postybirb-ui/src/stores/ui/accounts-ui-store.ts type AccountsUIState (line 21) | interface AccountsUIState { type AccountsUIActions (line 35) | interface AccountsUIActions { type AccountsUIStore (line 55) | type AccountsUIStore = AccountsUIState & AccountsUIActions; constant STORAGE_KEY (line 64) | const STORAGE_KEY = 'postybirb-accounts-ui'; FILE: apps/postybirb-ui/src/stores/ui/appearance-store.ts type ColorScheme (line 17) | type ColorScheme = 'light' | 'dark' | 'auto'; type SubmissionViewMode (line 22) | type SubmissionViewMode = 'compact' | 'detailed'; constant MANTINE_COLORS (line 27) | const MANTINE_COLORS = [ type MantinePrimaryColor (line 42) | type MantinePrimaryColor = (typeof MANTINE_COLORS)[number]; type AppearanceState (line 47) | interface AppearanceState { type AppearanceActions (line 61) | interface AppearanceActions { type AppearanceStore (line 81) | type AppearanceStore = AppearanceState & AppearanceActions; constant STORAGE_KEY (line 90) | const STORAGE_KEY = 'postybirb-appearance'; FILE: apps/postybirb-ui/src/stores/ui/drawer-store.ts type DrawerKey (line 17) | type DrawerKey = type DrawerState (line 30) | interface DrawerState { type DrawerActions (line 38) | interface DrawerActions { type DrawerStore (line 52) | type DrawerStore = DrawerState & DrawerActions; FILE: apps/postybirb-ui/src/stores/ui/locale-store.ts type LocaleState (line 17) | interface LocaleState { type LocaleActions (line 25) | interface LocaleActions { type LocaleStore (line 36) | type LocaleStore = LocaleState & LocaleActions; constant STORAGE_KEY (line 45) | const STORAGE_KEY = 'postybirb-locale'; constant SUPPORTED_LOCALES (line 50) | const SUPPORTED_LOCALES = ['en', 'de', 'lt', 'pt-BR', 'ru', 'es', 'ta']; FILE: apps/postybirb-ui/src/stores/ui/navigation-store.ts type NavigationState (line 29) | interface NavigationState { type NavigationActions (line 46) | interface NavigationActions { type NavigationStore (line 63) | type NavigationStore = NavigationState & NavigationActions; constant STORAGE_KEY (line 72) | const STORAGE_KEY = 'postybirb-navigation'; constant MAX_HISTORY_LENGTH (line 77) | const MAX_HISTORY_LENGTH = 30; function validateViewState (line 87) | function validateViewState(viewState: ViewState): ViewState { function getDefaultViewState (line 161) | function getDefaultViewState(sectionId: SectionId): ViewState { FILE: apps/postybirb-ui/src/stores/ui/submissions-ui-store.ts type SubmissionFilter (line 18) | type SubmissionFilter = type SubmissionsUIState (line 28) | interface SubmissionsUIState { type SubmissionsUIActions (line 54) | interface SubmissionsUIActions { type SubmissionsUIStore (line 89) | type SubmissionsUIStore = SubmissionsUIState & SubmissionsUIActions; constant STORAGE_KEY (line 98) | const STORAGE_KEY = 'postybirb-submissions-ui'; FILE: apps/postybirb-ui/src/stores/ui/templates-ui-store.ts type TemplatesUIState (line 18) | interface TemplatesUIState { type TemplatesUIActions (line 29) | interface TemplatesUIActions { type TemplatesUIStore (line 43) | type TemplatesUIStore = TemplatesUIState & TemplatesUIActions; constant STORAGE_KEY (line 52) | const STORAGE_KEY = 'postybirb-templates-ui'; FILE: apps/postybirb-ui/src/stores/ui/tour-store.ts type TourState (line 14) | interface TourState { type TourActions (line 25) | interface TourActions { type TourStore (line 45) | type TourStore = TourState & TourActions; constant STORAGE_KEY (line 51) | const STORAGE_KEY = 'postybirb-tour-state'; function useActiveTourId (line 116) | function useActiveTourId() { function useTourStarted (line 120) | function useTourStarted() { function useIsTourCompleted (line 124) | function useIsTourCompleted(tourId: string) { function useTourActions (line 128) | function useTourActions() { FILE: apps/postybirb-ui/src/theme/theme.ts constant Z_INDEX (line 21) | const Z_INDEX = { constant CONTAINER_SIZES (line 29) | const CONTAINER_SIZES: Record = { function createAppTheme (line 42) | function createAppTheme( FILE: apps/postybirb-ui/src/transports/http-client.ts constant REMOTE_PASSWORD_KEY (line 6) | const REMOTE_PASSWORD_KEY = 'remote_password'; constant REMOTE_HOST_KEY (line 7) | const REMOTE_HOST_KEY = 'remote_host'; constant REMOTE_MODE_KEY (line 8) | const REMOTE_MODE_KEY = 'remote_mode'; type RemoteConfig (line 18) | interface RemoteConfig { type FetchMethod (line 67) | type FetchMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; class NetworkError (line 72) | class NetworkError extends Error { method constructor (line 73) | constructor( class HttpError (line 85) | class HttpError extends Error { method constructor (line 89) | constructor(response: HttpResponse) { type ErrorResponse (line 100) | type ErrorResponse = { type HttpResponse (line 105) | type HttpResponse = { type RequestBody (line 113) | type RequestBody = Object | BodyInit | undefined; type SearchBody (line 114) | type SearchBody = string | object | undefined; type HttpOptions (line 115) | type HttpOptions = { class HttpClient (line 123) | class HttpClient { method constructor (line 127) | constructor( method get (line 132) | public get( method post (line 140) | public post( method put (line 148) | public put( method patch (line 156) | public patch( method delete (line 164) | public delete( method shouldRetry (line 175) | private shouldRetry(status: number): boolean { method delay (line 188) | private async delay(attempt: number, baseDelay: number): Promise { method performRequest (line 195) | private async performRequest( method buildResponse (line 289) | private async buildResponse(res: Response): Promise> { method createPath (line 310) | private createPath(path: string, searchBody: SearchBody): URL { method handleRequestData (line 334) | private handleRequestData(body: RequestBody): BodyInit | undefined { method supportsBody (line 350) | private supportsBody(method: FetchMethod): boolean { method processResponse (line 363) | private async processResponse(res: Response): Promise { method processJson (line 371) | private async processJson(res: Response): Promise { method processText (line 375) | private async processText(res: Response): Promise { FILE: apps/postybirb-ui/src/transports/websocket.ts constant INITIAL_RETRY_DELAY (line 7) | const INITIAL_RETRY_DELAY = 1000; constant MAX_RETRY_DELAY (line 8) | const MAX_RETRY_DELAY = 30000; constant BACKOFF_MULTIPLIER (line 9) | const BACKOFF_MULTIPLIER = 1.5; FILE: apps/postybirb-ui/src/types/account-filters.ts type AccountLoginFilter (line 8) | enum AccountLoginFilter { FILE: apps/postybirb-ui/src/types/navigation.ts type NavigationItemBase (line 17) | interface NavigationItemBase { type NavigationViewItem (line 38) | interface NavigationViewItem extends NavigationItemBase { type NavigationLinkItem (line 47) | interface NavigationLinkItem extends NavigationItemBase { type NavigationDrawerItem (line 56) | interface NavigationDrawerItem extends NavigationItemBase { type NavigationCustomItem (line 65) | interface NavigationCustomItem extends NavigationItemBase { type NavigationSpecialItemBase (line 74) | interface NavigationSpecialItemBase { type NavigationThemeItem (line 85) | interface NavigationThemeItem extends NavigationSpecialItemBase { type NavigationLanguageItem (line 93) | interface NavigationLanguageItem extends NavigationSpecialItemBase { type NavigationDivider (line 100) | interface NavigationDivider { type NavigationItem (line 108) | type NavigationItem = function isStandardNavItem (line 120) | function isStandardNavItem( function isViewNavItem (line 129) | function isViewNavItem( function isSpecialNavItem (line 138) | function isSpecialNavItem( type PaginationState (line 155) | interface PaginationState { type ContentNavbarConfig (line 172) | interface ContentNavbarConfig { type LayoutProps (line 193) | interface LayoutProps { type SideNavProps (line 201) | interface SideNavProps { type ContentNavbarProps (line 218) | interface ContentNavbarProps { type ContentAreaProps (line 229) | interface ContentAreaProps { constant LAYOUT_CONSTANTS (line 244) | const LAYOUT_CONSTANTS = { FILE: apps/postybirb-ui/src/types/view-state.ts type SectionId (line 16) | type SectionId = type HomeParams (line 31) | interface HomeParams { type AccountsParams (line 38) | interface AccountsParams { type FileSubmissionsParams (line 48) | interface FileSubmissionsParams { type MessageSubmissionsParams (line 60) | interface MessageSubmissionsParams { type TemplatesParams (line 72) | interface TemplatesParams { type HomeViewState (line 84) | interface HomeViewState { type AccountsViewState (line 92) | interface AccountsViewState { type FileSubmissionsViewState (line 100) | interface FileSubmissionsViewState { type MessageSubmissionsViewState (line 108) | interface MessageSubmissionsViewState { type TemplatesViewState (line 116) | interface TemplatesViewState { type ViewState (line 124) | type ViewState = type SectionPanelConfig (line 138) | interface SectionPanelConfig { function getSectionPanelConfig (line 159) | function getSectionPanelConfig(viewState: ViewState): SectionPanelConfig { function createHomeViewState (line 178) | function createHomeViewState(): HomeViewState { function createAccountsViewState (line 188) | function createAccountsViewState( function createFileSubmissionsViewState (line 204) | function createFileSubmissionsViewState( function createMessageSubmissionsViewState (line 221) | function createMessageSubmissionsViewState( function createTemplatesViewState (line 238) | function createTemplatesViewState( function isHomeViewState (line 257) | function isHomeViewState(state: ViewState): state is HomeViewState { function isAccountsViewState (line 264) | function isAccountsViewState( function isFileSubmissionsViewState (line 273) | function isFileSubmissionsViewState( function isMessageSubmissionsViewState (line 282) | function isMessageSubmissionsViewState( function isTemplatesViewState (line 291) | function isTemplatesViewState( function hasSectionPanel (line 300) | function hasSectionPanel(state: ViewState): boolean { FILE: apps/postybirb-ui/src/utils/class-names.ts type ConditionalClasses (line 20) | type ConditionalClasses = Record; type StaticClasses (line 21) | type StaticClasses = (string | undefined | null)[]; function cn (line 30) | function cn( FILE: apps/postybirb-ui/src/utils/environment.ts function isElectron (line 5) | function isElectron(): boolean { FILE: apps/postybirb-ui/src/utils/notifications.tsx function showSuccessNotification (line 23) | function showSuccessNotification(message: React.ReactNode) { function showCreatedNotification (line 34) | function showCreatedNotification(itemName?: string) { function showUpdatedNotification (line 46) | function showUpdatedNotification(itemName?: string) { function showDeletedNotification (line 59) | function showDeletedNotification(count = 1) { function showCopiedNotification (line 75) | function showCopiedNotification() { function showDuplicatedNotification (line 86) | function showDuplicatedNotification(itemName?: string) { function showRestoredNotification (line 98) | function showRestoredNotification() { function showUploadSuccessNotification (line 109) | function showUploadSuccessNotification() { function showConnectionSuccessNotification (line 120) | function showConnectionSuccessNotification(message?: React.ReactNode) { function showScheduleUpdatedNotification (line 131) | function showScheduleUpdatedNotification(itemName?: string) { function showCreateErrorNotification (line 147) | function showCreateErrorNotification(itemName?: string) { function showUpdateErrorNotification (line 159) | function showUpdateErrorNotification(itemName?: string) { function showDeleteErrorNotification (line 171) | function showDeleteErrorNotification() { function showErrorNotification (line 182) | function showErrorNotification(message?: React.ReactNode) { function showErrorWithTitleNotification (line 195) | function showErrorWithTitleNotification( function showErrorWithContext (line 211) | function showErrorWithContext( function showDuplicateErrorNotification (line 226) | function showDuplicateErrorNotification() { function showPostErrorNotification (line 237) | function showPostErrorNotification() { function showRestoreErrorNotification (line 248) | function showRestoreErrorNotification() { function showUploadErrorNotification (line 259) | function showUploadErrorNotification(message?: React.ReactNode) { function showConnectionErrorNotification (line 270) | function showConnectionErrorNotification( function showSaveErrorNotification (line 285) | function showSaveErrorNotification(message?: React.ReactNode) { function showInfoNotification (line 300) | function showInfoNotification( function showWarningNotification (line 315) | function showWarningNotification( FILE: apps/postybirb-ui/src/utils/open-url.ts function openUrl (line 3) | function openUrl(url: string): void { FILE: apps/postybirb/src/app/app.ts class PostyBirb (line 29) | class PostyBirb { method isDevelopmentMode (line 44) | public static isDevelopmentMode() { method onWindowAllClosed (line 48) | private static onWindowAllClosed() {} method onClose (line 50) | private static onClose() { method onReady (line 57) | private static onReady() { method onActivate (line 66) | private static onActivate() { method onQuit (line 74) | private static async onQuit() { method initMainWindow (line 81) | private static initMainWindow() { method loadMainWindow (line 120) | private static loadMainWindow() { method initAppTray (line 131) | private static initAppTray() { method refreshAppTray (line 183) | private static refreshAppTray() { method showMainWindow (line 191) | private static showMainWindow() { method main (line 203) | static main(electronApp: Electron.App, browserWindow: typeof BrowserWi... method registerNestApp (line 222) | static registerNestApp(nestApp: INestApplication) { FILE: apps/postybirb/src/app/events/electron.events.ts class ElectronEvents (line 9) | class ElectronEvents { method bootstrapElectronEvents (line 10) | static bootstrapElectronEvents(): Electron.IpcMain { FILE: apps/postybirb/src/app/loader/loader.js function show (line 9) | function show() { function hide (line 42) | function hide() { FILE: apps/postybirb/src/main.ts class Main (line 141) | class Main { method initialize (line 142) | static async initialize() { method bootstrapClientServer (line 146) | static async bootstrapClientServer(): Promise { method bootstrapApp (line 153) | static bootstrapApp(nestApp: INestApplication) { method bootstrapAppEvents (line 158) | static bootstrapAppEvents() { function start (line 163) | async function start() { FILE: apps/postybirb/src/migrations/0000_tough_ken_ellis.sql type `account` (line 1) | CREATE TABLE `account` ( type `account_id_unique` (line 10) | CREATE UNIQUE INDEX `account_id_unique` ON `account` (`id`) type `directory-watcher` (line 11) | CREATE TABLE `directory-watcher` ( type `directory-watcher_id_unique` (line 21) | CREATE UNIQUE INDEX `directory-watcher_id_unique` ON `directory-watcher`... type `file-buffer` (line 22) | CREATE TABLE `file-buffer` ( type `file-buffer_id_unique` (line 36) | CREATE UNIQUE INDEX `file-buffer_id_unique` ON `file-buffer` (`id`) type `notification` (line 37) | CREATE TABLE `notification` ( type `notification_id_unique` (line 50) | CREATE UNIQUE INDEX `notification_id_unique` ON `notification` (`id`) type `post-queue` (line 51) | CREATE TABLE `post-queue` ( type `post-queue_id_unique` (line 61) | CREATE UNIQUE INDEX `post-queue_id_unique` ON `post-queue` (`id`) type `post-record` (line 62) | CREATE TABLE `post-record` ( type `post-record_id_unique` (line 73) | CREATE UNIQUE INDEX `post-record_id_unique` ON `post-record` (`id`) type `settings` (line 74) | CREATE TABLE `settings` ( type `settings_id_unique` (line 82) | CREATE UNIQUE INDEX `settings_id_unique` ON `settings` (`id`) type `settings_profile_unique` (line 83) | CREATE UNIQUE INDEX `settings_profile_unique` ON `settings` (`profile`) type `submission-file` (line 84) | CREATE TABLE `submission-file` ( type `submission-file_id_unique` (line 107) | CREATE UNIQUE INDEX `submission-file_id_unique` ON `submission-file` (`id`) type `submission` (line 108) | CREATE TABLE `submission` ( type `submission_id_unique` (line 122) | CREATE UNIQUE INDEX `submission_id_unique` ON `submission` (`id`) type `tag-converter` (line 123) | CREATE TABLE `tag-converter` ( type `tag-converter_id_unique` (line 131) | CREATE UNIQUE INDEX `tag-converter_id_unique` ON `tag-converter` (`id`) type `tag-converter_tag_unique` (line 132) | CREATE UNIQUE INDEX `tag-converter_tag_unique` ON `tag-converter` (`tag`) type `tag-group` (line 133) | CREATE TABLE `tag-group` ( type `tag-group_id_unique` (line 141) | CREATE UNIQUE INDEX `tag-group_id_unique` ON `tag-group` (`id`) type `tag-group_name_unique` (line 142) | CREATE UNIQUE INDEX `tag-group_name_unique` ON `tag-group` (`name`) type `user-specified-website-options` (line 143) | CREATE TABLE `user-specified-website-options` ( type `user-specified-website-options_id_unique` (line 153) | CREATE UNIQUE INDEX `user-specified-website-options_id_unique` ON `user-... type `website-data` (line 154) | CREATE TABLE `website-data` ( type `website-data_id_unique` (line 162) | CREATE UNIQUE INDEX `website-data_id_unique` ON `website-data` (`id`) type `website-options` (line 163) | CREATE TABLE `website-options` ( type `website-options_id_unique` (line 175) | CREATE UNIQUE INDEX `website-options_id_unique` ON `website-options` (`id`) type `website-post-record` (line 176) | CREATE TABLE `website-post-record` ( type `website-post-record_id_unique` (line 191) | CREATE UNIQUE INDEX `website-post-record_id_unique` ON `website-post-rec... FILE: apps/postybirb/src/migrations/0001_noisy_kate_bishop.sql type `custom-shortcut` (line 1) | CREATE TABLE `custom-shortcut` ( type `custom-shortcut_id_unique` (line 9) | CREATE UNIQUE INDEX `custom-shortcut_id_unique` ON `custom-shortcut` (`id`) type `custom-shortcut_name_unique` (line 10) | CREATE UNIQUE INDEX `custom-shortcut_name_unique` ON `custom-shortcut` (... type `__new_settings` (line 12) | CREATE TABLE `__new_settings` ( type `settings_id_unique` (line 24) | CREATE UNIQUE INDEX `settings_id_unique` ON `settings` (`id`) type `settings_profile_unique` (line 25) | CREATE UNIQUE INDEX `settings_profile_unique` ON `settings` (`profile`) FILE: apps/postybirb/src/migrations/0003_glamorous_power_pack.sql type `__new_website-post-record` (line 2) | CREATE TABLE `__new_website-post-record` ( type `website-post-record_id_unique` (line 21) | CREATE UNIQUE INDEX `website-post-record_id_unique` ON `website-post-rec... FILE: apps/postybirb/src/migrations/0004_fuzzy_rafael_vega.sql type `user-converter` (line 1) | CREATE TABLE `user-converter` ( type `user-converter_id_unique` (line 9) | CREATE UNIQUE INDEX `user-converter_id_unique` ON `user-converter` (`id`) type `user-converter_username_unique` (line 10) | CREATE UNIQUE INDEX `user-converter_username_unique` ON `user-converter`... FILE: apps/postybirb/src/migrations/0006_cooing_songbird.sql type `post-event` (line 5) | CREATE TABLE `post-event` ( type `post-event_id_unique` (line 19) | CREATE UNIQUE INDEX `post-event_id_unique` ON `post-event` (`id`) type `idx_post_event_type` (line 20) | CREATE INDEX `idx_post_event_type` ON `post-event` (`postRecordId`,`even... type `idx_post_event_account` (line 21) | CREATE INDEX `idx_post_event_account` ON `post-event` (`postRecordId`,`a... FILE: jest.reporter.js class Reporter (line 8) | class Reporter extends DefaultReporter { method printTestFileHeader (line 14) | printTestFileHeader(_testPath, _config, result) { FILE: libs/database/src/lib/database.ts type PostyBirbDatabaseType (line 8) | type PostyBirbDatabaseType = BetterSQLite3Database; function getDatabase (line 20) | function getDatabase() { function clearDatabase (line 39) | function clearDatabase() { FILE: libs/database/src/lib/helper-types.ts type SchemaKey (line 4) | type SchemaKey = keyof PostyBirbDatabaseType['_']['schema']; type PostyBirbTransaction (line 6) | type PostyBirbTransaction = Parameters< type Insert (line 10) | type Insert = type Select (line 13) | type Select = FILE: libs/database/src/lib/schemas/common.schema.ts function CommonSchema (line 8) | function CommonSchema() { function submissionType (line 25) | function submissionType() { FILE: libs/form-builder/src/constants.ts constant METADATA_KEY (line 1) | const METADATA_KEY = 'POSTYBIRB_FORM_BUILDER_METADATA'; FILE: libs/form-builder/src/lib/decorators/date-time-field.decorator.ts type DateString (line 5) | type DateString = string; type ExtraOptions (line 7) | type ExtraOptions = { FILE: libs/form-builder/src/lib/decorators/description-field.decorator.ts type DescriptionExtraFields (line 9) | type DescriptionExtraFields = { method onCreate (line 39) | onCreate(options) { FILE: libs/form-builder/src/lib/decorators/radio-field.decorator.ts type RadioOption (line 5) | type RadioOption = { type ExtraOptions (line 10) | type ExtraOptions = { FILE: libs/form-builder/src/lib/decorators/rating.decorator.ts type RatingOption (line 6) | type RatingOption = { type ExtraOptions (line 11) | type ExtraOptions = { FILE: libs/form-builder/src/lib/decorators/select-field.decorator.ts type SelectOptionWithDiscriminator (line 4) | type SelectOptionWithDiscriminator = { type SelectOptionSingle (line 9) | type SelectOptionSingle = { type SelectOptionGroup (line 17) | type SelectOptionGroup = { type SelectOption (line 26) | type SelectOption = SelectOptionGroup | SelectOptionSingle; type ExtraOptions (line 28) | type ExtraOptions = { FILE: libs/form-builder/src/lib/decorators/tag-field.decorator.ts type TagExtraFields (line 5) | type TagExtraFields = { FILE: libs/form-builder/src/lib/decorators/text-field.decorator.ts type ExtraOptions (line 4) | type ExtraOptions = { FILE: libs/form-builder/src/lib/decorators/title-field.decorator.ts type ExtraOptions (line 4) | type ExtraOptions = { FILE: libs/form-builder/src/lib/form-builder.spec.ts class BooleanType (line 13) | class BooleanType { class BooleanType (line 35) | class BooleanType { class ExtendedType (line 40) | class ExtendedType extends BooleanType { class ExtendedAndOverrideType (line 48) | class ExtendedAndOverrideType extends ExtendedType { class TextType (line 159) | class TextType { class TestType (line 181) | class TestType { class TestType (line 210) | class TestType { type TestType (line 238) | type TestType = { testBoolean: true }; class BooleanType (line 240) | class BooleanType { FILE: libs/form-builder/src/lib/form-builder.ts function formBuilder (line 7) | function formBuilder( FILE: libs/form-builder/src/lib/types/field-aggregate.ts type RatingFieldType (line 14) | type RatingFieldType = ExtractFieldTypeFromDecorator; type TagFieldType (line 15) | type TagFieldType = ExtractFieldTypeFromDecorator; type DescriptionFieldType (line 16) | type DescriptionFieldType = ExtractFieldTypeFromDecorator< type TextFieldType (line 19) | type TextFieldType = ExtractFieldTypeFromDecorator; type TitleFieldType (line 20) | type TitleFieldType = ExtractFieldTypeFromDecorator; type SelectFieldType (line 21) | type SelectFieldType = ExtractFieldTypeFromDecorator; type BooleanFieldType (line 22) | type BooleanFieldType = ExtractFieldTypeFromDecorator< type RadioFieldType (line 25) | type RadioFieldType = ExtractFieldTypeFromDecorator; type DateTimeFieldType (line 26) | type DateTimeFieldType = ExtractFieldTypeFromDecorator< type FieldAggregateType (line 30) | type FieldAggregateType = FILE: libs/form-builder/src/lib/types/field.ts type FieldType (line 7) | type FieldType< FILE: libs/form-builder/src/lib/types/form-builder-metadata.ts type FormBuilderMetadata (line 3) | type FormBuilderMetadata = Record; FILE: libs/form-builder/src/lib/types/primitive-record.ts type ValidValue (line 3) | type ValidValue = Primitive | Primitive[]; type PrimitiveRecord (line 5) | type PrimitiveRecord< FILE: libs/form-builder/src/lib/utils/assign-metadata.ts function getMetadataKey (line 10) | function getMetadataKey(name: string) { function getParentMetadataKeys (line 14) | function getParentMetadataKeys(proto: object) { type PartialOnly (line 27) | type PartialOnly = Omit & function createFieldDecorator (line 38) | function createFieldDecorator< type ExtractFieldTypeFromDecorator (line 177) | type ExtractFieldTypeFromDecorator = D extends { field: infer T } FILE: libs/fs/src/lib/directories.ts function getPostyBirbDirectory (line 8) | function getPostyBirbDirectory() { constant POSTYBIRB_DIRECTORY (line 19) | const POSTYBIRB_DIRECTORY = getPostyBirbDirectory(); constant DATA_DIRECTORY (line 22) | const DATA_DIRECTORY = join(POSTYBIRB_DIRECTORY, 'data'); constant LOGS_DIRECTORY (line 25) | const LOGS_DIRECTORY = join(POSTYBIRB_DIRECTORY, 'logs'); constant TEMP_DIRECTORY (line 28) | const TEMP_DIRECTORY = join(POSTYBIRB_DIRECTORY, 'temp'); function clearTempDirectory (line 30) | function clearTempDirectory() { FILE: libs/fs/src/lib/fs.ts function validatePath (line 12) | function validatePath(path: string) { function ensureDirSync (line 18) | function ensureDirSync(path: string) { function deleteDirSync (line 26) | function deleteDirSync(path: string) { function writeSync (line 35) | function writeSync(path: string, data: string | Buffer) { function write (line 40) | function write(path: string, data: string | Buffer) { function writeJson (line 45) | function writeJson(path: string, data: Record) { function writeJsonSync (line 49) | function writeJsonSync(path: string, data: Record) { function read (line 53) | function read(path: string) { function readSync (line 58) | function readSync(path: string): Buffer { function readJson (line 63) | function readJson>(path: string) { function readJsonSync (line 67) | function readJsonSync>( function removeFile (line 73) | function removeFile(path: string) { function removeFileSync (line 78) | function removeFileSync(path: string) { FILE: libs/http/src/lib/form-file.ts type FormFileOptions (line 1) | type FormFileOptions = { class FormFile (line 6) | class FormFile { method constructor (line 7) | constructor( method buffer (line 12) | get buffer(): Buffer { method fileOptions (line 16) | get fileOptions(): FormFileOptions { method fileName (line 20) | get fileName(): string { method contentType (line 24) | get contentType(): string { method setContentType (line 28) | setContentType(contentType: string): void { method setFileName (line 32) | setFileName(fileName: string): void { method toString (line 36) | toString(): string { FILE: libs/http/src/lib/http.spec.ts class TestServer (line 4) | class TestServer { method constructor (line 7) | constructor() { method start (line 30) | public start(): Promise { method stop (line 36) | public stop(): void { FILE: libs/http/src/lib/http.ts constant RESTRICTED_HEADERS (line 17) | const RESTRICTED_HEADERS: string[] = [ constant DEFAULT_HEADERS (line 30) | const DEFAULT_HEADERS: Record = { type HttpRequestOptions (line 34) | interface HttpRequestOptions { type HttpOptions (line 39) | interface HttpOptions { type PostOptions (line 54) | interface PostOptions extends HttpOptions { type BinaryPostOptions (line 65) | interface BinaryPostOptions extends HttpOptions { type HttpResponse (line 75) | interface HttpResponse { type CreateBodyData (line 82) | interface CreateBodyData { function getPartitionKey (line 87) | function getPartitionKey(partition: string): string { class Http (line 97) | class Http { method trackHttpDependency (line 105) | private static trackHttpDependency( method createClientRequest (line 152) | private static createClientRequest( method createPostBody (line 209) | private static createPostBody( method handleError (line 272) | private static handleError( method handleResponse (line 282) | private static handleResponse( method getUserAgent (line 341) | static getUserAgent(appVersion: string): string { method getWebsiteCookies (line 353) | static async getWebsiteCookies( method get (line 369) | static async get( method post (line 430) | static async post( method patch (line 445) | static patch( method put (line 460) | static put( method postLike (line 468) | private static async postLike( method performBrowserWindowGetRequest (line 541) | private static async performBrowserWindowGetRequest( method performBrowserWindowPostRequest (line 566) | private static async performBrowserWindowPostRequest( method isOnCloudFlareChallengePage (line 607) | private static isOnCloudFlareChallengePage(html: string): boolean { method awaitCloudFlareChallengePage (line 617) | private static async awaitCloudFlareChallengePage( method awaitCheckInterval (line 642) | private static async awaitCheckInterval(interval: number): Promise( FILE: libs/http/src/lib/proxy.ts function getParsedProxiesFor (line 46) | async function getParsedProxiesFor(url: string) { class ElectronProxyAgent (line 80) | class ElectronProxyAgent extends Agent { method connect (line 83) | async connect(req: http.ClientRequest, options: AgentConnectOpts) { method getAgent (line 98) | private async getAgent(url: string, secure: boolean): Promise { FILE: libs/logger/src/lib/app-insights.ts type AppInsightsConfig (line 9) | interface AppInsightsConfig { function initializeAppInsights (line 24) | function initializeAppInsights(config: AppInsightsConfig): void { function getAppInsightsClient (line 140) | function getAppInsightsClient(): appInsights.TelemetryClient | null { function isAppInsightsInitialized (line 147) | function isAppInsightsInitialized(): boolean { function trackEvent (line 154) | function trackEvent( function trackException (line 177) | function trackException( function trackMetric (line 198) | function trackMetric( function trackTrace (line 221) | function trackTrace( function trackDependency (line 243) | function trackDependency( function flushAppInsights (line 276) | function flushAppInsights(): Promise { FILE: libs/logger/src/lib/logger.ts type PostyBirbLogger (line 9) | type PostyBirbLogger = LogLayer; function Logger (line 13) | function Logger(prefix?: string): PostyBirbLogger { function initializeLogger (line 23) | function initializeLogger(): void { FILE: libs/logger/src/lib/serialize-log.ts class SerializeLog (line 10) | class SerializeLog { method transform (line 15) | transform(info: winston.Logform.TransformableInfo) { FILE: libs/logger/src/lib/winston-appinsights-transport.ts class AppInsightsTransport (line 8) | class AppInsightsTransport extends TransportStream { method log (line 10) | log(info: any, callback: () => void) { FILE: libs/socket-events/src/lib/socket-events.ts constant ACCOUNT_UPDATES (line 1) | const ACCOUNT_UPDATES = 'ACCOUNT_UPDATES'; constant DIRECTORY_WATCHER_UPDATES (line 2) | const DIRECTORY_WATCHER_UPDATES = 'DIRECTORY_WATCHER_UPDATES'; constant NOTIFICATION_UPDATES (line 3) | const NOTIFICATION_UPDATES = 'NOTIFICATION_UPDATES'; constant SETTINGS_UPDATES (line 4) | const SETTINGS_UPDATES = 'SETTINGS_UPDATES'; constant SUBMISSION_TEMPLATE_UPDATES (line 5) | const SUBMISSION_TEMPLATE_UPDATES = 'SUBMISSION_TEMPLATE_UPDATES'; constant SUBMISSION_UPDATES (line 6) | const SUBMISSION_UPDATES = 'SUBMISSION_UPDATES'; constant TAG_CONVERTER_UPDATES (line 7) | const TAG_CONVERTER_UPDATES = 'TAG_CONVERTER_UPDATES'; constant TAG_GROUP_UPDATES (line 8) | const TAG_GROUP_UPDATES = 'TAG_GROUP_UPDATES'; constant UPDATE_UPDATES (line 9) | const UPDATE_UPDATES = 'UPDATE_UPDATES'; constant USER_CONVERTER_UPDATES (line 10) | const USER_CONVERTER_UPDATES = 'USER_CONVERTER_UPDATES'; constant WEBSITE_UPDATES (line 11) | const WEBSITE_UPDATES = 'WEBSITE_UPDATES'; constant CUSTOM_SHORTCUT_UPDATES (line 12) | const CUSTOM_SHORTCUT_UPDATES = 'CUSTOM_SHORTCUT_UPDATES'; FILE: libs/translations/src/lib/field-translations.ts type FieldLabelTranslationsId (line 100) | type FieldLabelTranslationsId = keyof typeof FieldLabelTranslations; FILE: libs/types/src/dtos/account/account.dto.ts type IAccountDto (line 6) | type IAccountDto = IEntityDto & { FILE: libs/types/src/dtos/account/create-account.dto.ts type ICreateAccountDto (line 3) | type ICreateAccountDto = Pick; FILE: libs/types/src/dtos/account/update-account.dto.ts type IUpdateAccountDto (line 3) | type IUpdateAccountDto = Pick; FILE: libs/types/src/dtos/custom-shortcut/create-custom-shortcut.dto.ts type ICreateCustomShortcutDto (line 3) | type ICreateCustomShortcutDto = Pick; FILE: libs/types/src/dtos/custom-shortcut/custom-shortcut.dto.ts type ICustomShortcutDto (line 4) | type ICustomShortcutDto = IEntityDto; FILE: libs/types/src/dtos/custom-shortcut/update-custom-shortcut.dto.ts type IUpdateCustomShortcutDto (line 3) | type IUpdateCustomShortcutDto = Pick< FILE: libs/types/src/dtos/database/entity.dto.ts type IEntityDto (line 3) | type IEntityDto = T; FILE: libs/types/src/dtos/directory-watcher/create-directory-watcher.dto.ts type ICreateDirectoryWatcherDto (line 3) | type ICreateDirectoryWatcherDto = Pick< FILE: libs/types/src/dtos/directory-watcher/directory-watcher.dto.ts type DirectoryWatcherDto (line 4) | type DirectoryWatcherDto = Omit< FILE: libs/types/src/dtos/directory-watcher/update-directory-watcher.dto.ts type IUpdateDirectoryWatcherDto (line 3) | type IUpdateDirectoryWatcherDto = Partial< FILE: libs/types/src/dtos/notification/create-notification.dto.ts type ICreateNotificationDto (line 3) | type ICreateNotificationDto = Pick< FILE: libs/types/src/dtos/notification/update-notification.dto.ts type IUpdateNotificationDto (line 3) | type IUpdateNotificationDto = Pick< FILE: libs/types/src/dtos/post/post-event.dto.ts type PostEventDto (line 5) | type PostEventDto = Omit, 'account'> & { FILE: libs/types/src/dtos/post/post-queue-action.dto.ts type IPostQueueActionDto (line 4) | type IPostQueueActionDto = { FILE: libs/types/src/dtos/post/post-queue-record.dto.ts type PostQueueRecordDto (line 3) | type PostQueueRecordDto = IPostQueueRecord; FILE: libs/types/src/dtos/post/post-record.dto.ts type PostRecordDto (line 5) | type PostRecordDto = Omit, 'events'> & { FILE: libs/types/src/dtos/post/queue-post-record-request.dto.ts type IQueuePostRecordRequestDto (line 7) | interface IQueuePostRecordRequestDto { FILE: libs/types/src/dtos/settings/settings.dto.ts type SettingsDto (line 4) | type SettingsDto = IEntityDto; FILE: libs/types/src/dtos/settings/update-settings.dto.ts type IUpdateSettingsDto (line 3) | type IUpdateSettingsDto = Pick; FILE: libs/types/src/dtos/submission/apply-multi-submission.dto.ts type IApplyMultiSubmissionDto (line 8) | type IApplyMultiSubmissionDto = { FILE: libs/types/src/dtos/submission/create-submission.dto.ts type ICreateSubmissionDefaultOptions (line 8) | interface ICreateSubmissionDefaultOptions { type IFileMetadata (line 17) | interface IFileMetadata { type ICreateSubmissionDto (line 24) | interface ICreateSubmissionDto { FILE: libs/types/src/dtos/submission/file-buffer.dto.ts type FileBufferDto (line 4) | type FileBufferDto = Omit, 'buffer'>; FILE: libs/types/src/dtos/submission/reorder-submission-files.dto.ts type IReorderSubmissionFilesDto (line 3) | interface IReorderSubmissionFilesDto { FILE: libs/types/src/dtos/submission/submission-file.dto.ts type ISubmissionFileDto (line 4) | type ISubmissionFileDto = IEntityDto; FILE: libs/types/src/dtos/submission/submission.dto.ts type ISubmissionDto (line 12) | type ISubmissionDto< FILE: libs/types/src/dtos/submission/update-alt-file.dto.ts type IUpdateAltFileDto (line 1) | interface IUpdateAltFileDto { FILE: libs/types/src/dtos/submission/update-submission-template-name.dto.ts type IUpdateSubmissionTemplateNameDto (line 1) | type IUpdateSubmissionTemplateNameDto = { FILE: libs/types/src/dtos/submission/update-submission.dto.ts type IUpdateSubmissionDto (line 8) | type IUpdateSubmissionDto = Partial< FILE: libs/types/src/dtos/tag/create-tag-converter.dto.ts type ICreateTagConverterDto (line 3) | type ICreateTagConverterDto = Pick; FILE: libs/types/src/dtos/tag/create-tag-group.dto.ts type ICreateTagGroupDto (line 3) | type ICreateTagGroupDto = Pick; FILE: libs/types/src/dtos/tag/tag-converter.dto.ts type TagConverterDto (line 4) | type TagConverterDto = IEntityDto; FILE: libs/types/src/dtos/tag/tag-group.dto.ts type TagGroupDto (line 4) | type TagGroupDto = IEntityDto; FILE: libs/types/src/dtos/tag/update-tag-converter.dto.ts type IUpdateTagConverterDto (line 3) | type IUpdateTagConverterDto = Pick; FILE: libs/types/src/dtos/tag/update-tag-group.dto.ts type IUpdateTagGroupDto (line 3) | type IUpdateTagGroupDto = Pick; FILE: libs/types/src/dtos/user/create-user-converter.dto.ts type ICreateUserConverterDto (line 3) | type ICreateUserConverterDto = Pick; FILE: libs/types/src/dtos/website-options/user-specified-website-options.dto.ts type UserSpecifiedWebsiteOptionsDto (line 4) | type UserSpecifiedWebsiteOptionsDto = FILE: libs/types/src/dtos/website-options/validate-website-options.dto.ts type IValidateWebsiteOptionsDto (line 3) | interface IValidateWebsiteOptionsDto { FILE: libs/types/src/dtos/website-options/website-options.dto.ts type WebsiteOptionsDto (line 5) | type WebsiteOptionsDto< FILE: libs/types/src/dtos/website/custom-website-route.dto.ts type ICustomWebsiteRouteDto (line 3) | interface ICustomWebsiteRouteDto { FILE: libs/types/src/dtos/website/form-generation-request.dto.ts type IFormGenerationRequestDto (line 4) | interface IFormGenerationRequestDto { FILE: libs/types/src/dtos/website/oauth-website-request.dto.ts type IOAuthWebsiteRequestDto (line 3) | interface IOAuthWebsiteRequestDto { FILE: libs/types/src/dtos/website/set-website-data-request.dto.ts type ISetWebsiteDataRequestDto (line 3) | interface ISetWebsiteDataRequestDto { FILE: libs/types/src/dtos/website/website-data.dto.ts type IWebsiteDataDto (line 5) | type IWebsiteDataDto = IEntityDto< FILE: libs/types/src/dtos/website/website-info.dto.ts type IWebsiteInfoDto (line 8) | interface IWebsiteInfoDto { FILE: libs/types/src/enums/description-types.enum.ts type DescriptionType (line 1) | enum DescriptionType { FILE: libs/types/src/enums/directory-watcher-import-action.enum.ts type DirectoryWatcherImportAction (line 5) | enum DirectoryWatcherImportAction { FILE: libs/types/src/enums/file-type.enum.ts type FileType (line 5) | enum FileType { FILE: libs/types/src/enums/post-event-type.enum.ts type PostEventType (line 6) | enum PostEventType { FILE: libs/types/src/enums/post-record-resume-mode.enum.ts type PostRecordResumeMode (line 5) | enum PostRecordResumeMode { FILE: libs/types/src/enums/post-record-state.enum.ts type PostRecordState (line 5) | enum PostRecordState { FILE: libs/types/src/enums/schedule-type.enum.ts type ScheduleType (line 5) | enum ScheduleType { FILE: libs/types/src/enums/submission-rating.enum.ts type SubmissionRating (line 5) | enum SubmissionRating { FILE: libs/types/src/enums/submission-type.enum.ts type SubmissionType (line 5) | enum SubmissionType { FILE: libs/types/src/models/account/account.interface.ts type AccountId (line 4) | type AccountId = EntityId; type IAccount (line 9) | interface IAccount extends IEntity { constant NULL_ACCOUNT_ID (line 35) | const NULL_ACCOUNT_ID = 'NULL_ACCOUNT'; class NullAccount (line 37) | class NullAccount implements IAccount { FILE: libs/types/src/models/common/dynamic-object.ts type DynamicObject (line 3) | type DynamicObject = Record; FILE: libs/types/src/models/custom-shortcut/custom-shortcut.interface.ts type ICustomShortcut (line 6) | interface ICustomShortcut extends IEntity { FILE: libs/types/src/models/database/entity-primitive.type.ts type EntityPrimitive (line 4) | type EntityPrimitive = Omit< FILE: libs/types/src/models/database/entity.interface.ts type EntityId (line 1) | type EntityId = string; type IEntity (line 6) | interface IEntity { FILE: libs/types/src/models/directory-watcher/directory-watcher.interface.ts type IDirectoryWatcher (line 10) | interface IDirectoryWatcher extends IEntity { FILE: libs/types/src/models/file/file-buffer.interface.ts type IFileBuffer (line 10) | interface IFileBuffer extends IFileDimensions, IEntity { FILE: libs/types/src/models/file/file-dimensions.interface.ts type IFileDimensions (line 5) | interface IFileDimensions { FILE: libs/types/src/models/notification/notification.interface.ts type INotification (line 3) | interface INotification extends IEntity { FILE: libs/types/src/models/post/post-event.interface.ts type WebsitePostRecordData (line 11) | type WebsitePostRecordData = { type IPostEventError (line 29) | interface IPostEventError { type IAccountSnapshot (line 60) | interface IAccountSnapshot { type IFileSnapshot (line 79) | interface IFileSnapshot { type IPostEventMetadata (line 110) | interface IPostEventMetadata { type IPostEvent (line 163) | interface IPostEvent extends IEntity { FILE: libs/types/src/models/post/post-queue-record.interface.ts type IPostQueueRecord (line 5) | interface IPostQueueRecord extends IEntity { FILE: libs/types/src/models/post/post-record.interface.ts type IPostRecord (line 12) | interface IPostRecord extends IEntity { FILE: libs/types/src/models/post/post-response.type.ts type IPostResponse (line 3) | type IPostResponse = { class PostResponse (line 43) | class PostResponse implements IPostResponse { method constructor (line 56) | protected constructor(readonly instanceId: string) {} method fromWebsite (line 58) | static fromWebsite(website: { id: string }) { method validateBody (line 62) | static validateBody( method withException (line 81) | withException(exception: Error) { method withMessage (line 89) | withMessage(message: string) { method withSourceUrl (line 94) | withSourceUrl(url: string) { method withAdditionalInfo (line 99) | withAdditionalInfo(info: unknown) { method atStage (line 104) | atStage(stage: string) { FILE: libs/types/src/models/remote/update-cookies-remote.type.ts type UpdateCookiesRemote (line 1) | type UpdateCookiesRemote = { FILE: libs/types/src/models/settings/settings-options.interface.ts type ISettingsOptions (line 7) | interface ISettingsOptions { type TagSearchProviderSettings (line 43) | type TagSearchProviderSettings = { type DesktopNotificationSettings (line 48) | type DesktopNotificationSettings = { FILE: libs/types/src/models/settings/settings.constants.ts class SettingsConstants (line 3) | class SettingsConstants { FILE: libs/types/src/models/settings/settings.interface.ts type ISettings (line 8) | interface ISettings extends IEntity { FILE: libs/types/src/models/submission/description-value.type.ts type TipTapMark (line 6) | interface TipTapMark { type TipTapNode (line 15) | interface TipTapNode { type TipTapDoc (line 26) | interface TipTapDoc { type Description (line 35) | type Description = TipTapDoc; type DescriptionValue (line 48) | type DescriptionValue = { FILE: libs/types/src/models/submission/file-submission/file-submission-metadata.type.ts type FileSubmissionMetadata (line 7) | type FileSubmissionMetadata = ISubmissionMetadata; FILE: libs/types/src/models/submission/file-submission/file-submission.ts type FileSubmission (line 10) | type FileSubmission = ISubmission; function isFileSubmission (line 17) | function isFileSubmission( FILE: libs/types/src/models/submission/file-submission/modified-file-dimension.type.ts type ModifiedFileDimension (line 8) | type ModifiedFileDimension = { FILE: libs/types/src/models/submission/message-submission/message-submission.type.ts type MessageSubmissionMetadata (line 8) | type MessageSubmissionMetadata = ISubmissionMetadata; type MessageSubmission (line 14) | type MessageSubmission = ISubmission; FILE: libs/types/src/models/submission/npf-description.type.ts type NPFContentBlock (line 5) | type NPFContentBlock = type NPFTextBlock (line 12) | interface NPFTextBlock { type NPFInlineFormatting (line 28) | interface NPFInlineFormatting { type NPFImageBlock (line 44) | interface NPFImageBlock { type NPFMediaObject (line 52) | interface NPFMediaObject { type NPFLinkBlock (line 60) | interface NPFLinkBlock { type NPFAudioBlock (line 71) | interface NPFAudioBlock { type NPFVideoBlock (line 82) | interface NPFVideoBlock { FILE: libs/types/src/models/submission/submission-file-props.interface.ts type ISubmissionFileProps (line 2) | interface ISubmissionFileProps { FILE: libs/types/src/models/submission/submission-file.interface.ts type SubmissionFileId (line 8) | type SubmissionFileId = EntityId; type ISubmissionFile (line 17) | interface ISubmissionFile extends IFileDimensions, IEntity { type SubmissionFileMetadata (line 103) | interface SubmissionFileMetadata { FILE: libs/types/src/models/submission/submission-metadata.interface.ts type ISubmissionMetadata (line 1) | interface ISubmissionMetadata { type SubmissionTemplateMetadata (line 5) | type SubmissionTemplateMetadata = { FILE: libs/types/src/models/submission/submission-metadata.type.ts type SubmissionMetadataType (line 9) | type SubmissionMetadataType = FILE: libs/types/src/models/submission/submission-schedule-info.interface.ts type ISubmissionScheduleInfo (line 7) | interface ISubmissionScheduleInfo { FILE: libs/types/src/models/submission/submission.interface.ts type SubmissionId (line 11) | type SubmissionId = EntityId; type ISubmission (line 19) | interface ISubmission< FILE: libs/types/src/models/submission/validation-result.type.ts type SimpleValidationResult (line 8) | type SimpleValidationResult = Omit< type ValidationResult (line 13) | type ValidationResult = { type ValidationMessage (line 36) | type ValidationMessage< type ValidationMessages (line 59) | interface ValidationMessages { FILE: libs/types/src/models/submission/website-form-fields.interface.ts type IWebsiteFormFields (line 9) | interface IWebsiteFormFields { FILE: libs/types/src/models/tag/tag-converter.interface.ts type ITagConverter (line 10) | interface ITagConverter extends IEntity { FILE: libs/types/src/models/tag/tag-group.interface.ts type ITagGroup (line 9) | interface ITagGroup extends IEntity { FILE: libs/types/src/models/tag/tag-value.type.ts type TagValue (line 9) | type TagValue = { FILE: libs/types/src/models/tag/tag.type.ts type Tag (line 1) | type Tag = string; FILE: libs/types/src/models/update/update.type.ts type ReleaseNoteInfo (line 4) | interface ReleaseNoteInfo { type UpdateState (line 18) | interface UpdateState { FILE: libs/types/src/models/user/user-converter.interface.ts type IUserConverter (line 9) | interface IUserConverter extends IEntity { FILE: libs/types/src/models/website-options/user-specified-website-options.interface.ts type IUserSpecifiedWebsiteOptions (line 11) | interface IUserSpecifiedWebsiteOptions extends IEntity { FILE: libs/types/src/models/website-options/website-options.interface.ts type IWebsiteOptions (line 13) | interface IWebsiteOptions< FILE: libs/types/src/models/website/file-website-form-fields.interface.ts type FileWebsiteFormFields (line 10) | interface FileWebsiteFormFields extends IWebsiteFormFields {} FILE: libs/types/src/models/website/folder.type.ts type Folder (line 1) | type Folder = { FILE: libs/types/src/models/website/image-resize-props.ts type ImageResizeProps (line 1) | type ImageResizeProps = { FILE: libs/types/src/models/website/login-request-data.type.ts type LoginRequestData (line 7) | type LoginRequestData = { FILE: libs/types/src/models/website/login-response.interface.ts type ILoginResponse (line 5) | interface ILoginResponse { FILE: libs/types/src/models/website/login-state.class.ts class LoginState (line 8) | class LoginState implements ILoginState { method touch (line 36) | private touch(): void { method logout (line 44) | public logout(): LoginState { method setLogin (line 58) | public setLogin(isLoggedIn: boolean, username: string | null): ILoginS... method setPending (line 69) | public setPending(value: boolean): void { method getState (line 78) | getState(): ILoginState { FILE: libs/types/src/models/website/login-state.interface.ts type ILoginState (line 5) | interface ILoginState { FILE: libs/types/src/models/website/post-data.type.ts type PostFields (line 4) | type PostFields = type PostData (line 18) | type PostData = { FILE: libs/types/src/models/website/website-data.interface.ts type IWebsiteData (line 11) | interface IWebsiteData extends IEntity { FILE: libs/types/src/models/website/website-info.interface.ts type IWebsiteInfo (line 8) | interface IWebsiteInfo { FILE: libs/types/src/models/website/website-login-type.ts type WebsiteLoginType (line 1) | type WebsiteLoginType = UserLoginType | CustomLoginType; type BaseLoginType (line 3) | interface BaseLoginType { type UserLoginType (line 7) | interface UserLoginType extends BaseLoginType { type CustomLoginType (line 12) | interface CustomLoginType extends BaseLoginType { FILE: libs/types/src/models/website/website.type.ts type WebsiteId (line 6) | type WebsiteId = string | 'default'; FILE: libs/types/src/website-modifiers/oauth-routes.ts type OAuthRoutes (line 3) | type OAuthRoutes = Record< type MaybePromise (line 8) | type MaybePromise = T | Promise; type OAuthRouteHandlers (line 10) | type OAuthRouteHandlers = { FILE: libs/types/src/website-modifiers/username-shortcut.ts type UsernameShortcut (line 1) | type UsernameShortcut = { FILE: libs/types/src/website-modifiers/website-file-options.ts type WebsiteFileOptions (line 3) | type WebsiteFileOptions = { FILE: libs/types/src/website-modifiers/website-metadata.ts type IWebsiteMetadata (line 1) | interface IWebsiteMetadata { FILE: libs/types/src/website-public/bluesky-account-data.ts type BlueskyAccountData (line 1) | type BlueskyAccountData = { type BlueskyOAuthRoutes (line 8) | type BlueskyOAuthRoutes = { FILE: libs/types/src/website-public/custom-account-data.ts type CustomAccountData (line 1) | interface CustomAccountData { FILE: libs/types/src/website-public/discord-account-data.ts type DiscordAccountData (line 1) | type DiscordAccountData = { FILE: libs/types/src/website-public/e621-account-data.ts type E621AccountData (line 1) | type E621AccountData = { type E621OAuthRoutes (line 6) | type E621OAuthRoutes = { type E621TagCategory (line 14) | enum E621TagCategory { FILE: libs/types/src/website-public/inkbunny-account-data.ts type InkbunnyAccountData (line 1) | type InkbunnyAccountData = { type InkbunnyOAuthRoutes (line 11) | type InkbunnyOAuthRoutes = { FILE: libs/types/src/website-public/instagram-account-data.ts type InstagramAccountData (line 1) | type InstagramAccountData = { type InstagramOAuthRoutes (line 16) | type InstagramOAuthRoutes = { FILE: libs/types/src/website-public/megalodon-account-data.ts type MegalodonAccountData (line 1) | type MegalodonAccountData = { type MegalodonOAuthRoutes (line 25) | type MegalodonOAuthRoutes = { type MastodonAccountData (line 55) | type MastodonAccountData = MegalodonAccountData & { type PleromaAccountData (line 59) | type PleromaAccountData = MegalodonAccountData & { type PixelfedAccountData (line 63) | type PixelfedAccountData = MegalodonAccountData & { FILE: libs/types/src/website-public/misskey-account-data.ts type MisskeyAccountData (line 1) | type MisskeyAccountData = { type MisskeyOAuthRoutes (line 15) | type MisskeyOAuthRoutes = { FILE: libs/types/src/website-public/telegram-account-data.ts type TelegramAccountLoginData (line 3) | interface TelegramAccountLoginData { type TelegramAccountData (line 9) | interface TelegramAccountData extends TelegramAccountLoginData { type TelegramOAuthRoutes (line 14) | type TelegramOAuthRoutes = { FILE: libs/types/src/website-public/twitter-account-data.ts type TwitterAccountData (line 1) | type TwitterAccountData = { type TwitterOAuthRoutes (line 12) | type TwitterOAuthRoutes = { FILE: libs/utils/electron/src/lib/browser-window-utils.ts function delay (line 3) | function delay(ms: number): Promise { function createWindow (line 9) | async function createWindow(partition: string, url: string) { class BrowserWindowUtils (line 27) | class BrowserWindowUtils { method getLocalStorage (line 28) | static async getLocalStorage( method runScriptOnPage (line 51) | public static async runScriptOnPage( method ping (line 88) | public static async ping(partition: string, url: string): Promise { method getFormData (line 95) | public static async getFormData( FILE: libs/utils/electron/src/lib/postybirb-env-config.ts type AppEnvConfig (line 5) | type AppEnvConfig = { function showHelp (line 10) | function showHelp(): void { FILE: libs/utils/electron/src/lib/remote-utils.ts type RemoteConfig (line 7) | type RemoteConfig = { constant CACHE_CHECK_INTERVAL_MS (line 18) | const CACHE_CHECK_INTERVAL_MS = 60_000; function getRemoteConfigPath (line 20) | function getRemoteConfigPath(): string { function createRemoteConfig (line 24) | function createRemoteConfig(): Promise { function createRemoteConfigSync (line 34) | function createRemoteConfigSync(): void { function ensureRemoteConfigExists (line 44) | async function ensureRemoteConfigExists(): Promise { function startCacheInvalidationCheck (line 56) | function startCacheInvalidationCheck(): void { function getRemoteConfig (line 82) | async function getRemoteConfig(): Promise { function getRemoteConfigSync (line 109) | function getRemoteConfigSync(): RemoteConfig | null { FILE: libs/utils/electron/src/lib/startup-options-electron.ts type StartupOptions (line 12) | type StartupOptions = { constant FILE_PATH (line 19) | const FILE_PATH = join(app.getPath('userData'), 'startup.json'); constant DOCUMENTS_PATH (line 20) | const DOCUMENTS_PATH = join(app.getPath('documents'), 'PostyBirb'); constant DEFAULT_APP_DATA_PATH (line 21) | const DEFAULT_APP_DATA_PATH = constant DEFAULT_STARTUP_OPTIONS (line 26) | const DEFAULT_STARTUP_OPTIONS: StartupOptions = { function init (line 33) | function init(): StartupOptions { function saveStartupOptions (line 52) | function saveStartupOptions(opts: StartupOptions) { function setStartupOptions (line 80) | function setStartupOptions(opts: Partial): void { function onStartupOptionsUpdate (line 89) | function onStartupOptionsUpdate( FILE: libs/utils/electron/src/lib/utils-electron.ts function getPartitionKey (line 7) | function getPartitionKey(partitionId: string): string { function isWindows (line 11) | function isWindows(): boolean { function isOSX (line 15) | function isOSX(): boolean { function isLinux (line 19) | function isLinux(): boolean { FILE: libs/utils/electron/src/lib/utils-test.ts function IsTestEnvironment (line 1) | function IsTestEnvironment(): boolean { function IsDevelopmentEnvironment (line 5) | function IsDevelopmentEnvironment(): boolean { FILE: libs/utils/file-type/src/lib/calculate-image-resize.ts type ImageResizeLimits (line 6) | interface ImageResizeLimits { function calculateImageResize (line 23) | function calculateImageResize( FILE: libs/utils/file-type/src/lib/get-file-type.ts function getFileType (line 7) | function getFileType(filenameOrExtension: string): FileType { function getFileTypeFromMimeType (line 16) | function getFileTypeFromMimeType(mimeType: string): FileType { FILE: libs/utils/file-type/src/lib/is-audio.ts constant SUPPORTED_MIME (line 3) | const SUPPORTED_MIME: string[] = [ function supportsAudio (line 52) | function supportsAudio(mimeType: string): boolean { function isAudio (line 56) | function isAudio(filenameOrExtension: string): boolean { FILE: libs/utils/file-type/src/lib/is-image.ts constant SUPPORTED_MIME (line 4) | const SUPPORTED_MIME: string[] = [ function supportsImage (line 83) | function supportsImage(mimeType: string): boolean { function isImage (line 87) | function isImage(filenameOrExtension: string): boolean { FILE: libs/utils/file-type/src/lib/is-text.ts constant SUPPORTED_MIME (line 3) | const SUPPORTED_MIME: string[] = [ function supportsText (line 99) | function supportsText(mimeType: string): boolean { function isText (line 103) | function isText(filenameOrExtension: string): boolean { FILE: libs/utils/file-type/src/lib/is-video.ts constant SUPPORTED_MIME (line 3) | const SUPPORTED_MIME: string[] = [ function supportsVideo (line 44) | function supportsVideo(mimeType: string): boolean { function isVideo (line 48) | function isVideo(filenameOrExtension: string): boolean { FILE: libs/utils/file-type/src/lib/mime-helper.ts function getMimeTypeForFile (line 3) | function getMimeTypeForFile(filenameOrExtension: string): string | null { FILE: scripts/add-website/create-file-from-template.js function createFromTemplate (line 12) | function createFromTemplate(data, templateFileName, folder, fileName) { FILE: scripts/add-website/create-website.js function createWebsite (line 9) | function createWebsite(data, baseAppPath) { FILE: scripts/add-website/parse-add-website-input.js function parseAddWebsiteInput (line 11) | function parseAddWebsiteInput(answers) { FILE: scripts/inject-app-insights.js constant ROOT_DIR (line 8) | const ROOT_DIR = path.resolve(__dirname, '..'); constant TARGET_FILES (line 9) | const TARGET_FILES = [ constant PLACEHOLDER_STATEMENT (line 13) | const PLACEHOLDER_STATEMENT = 'const appInsightsConnectionString: string... constant STATEMENT_REGEX (line 14) | const STATEMENT_REGEX = /const appInsightsConnectionString(?::\s*string\... function updateFile (line 31) | function updateFile(relativePath) { FILE: scripts/windows-signing/hasher.cjs function hashFile (line 27) | function hashFile(file, algorithm = 'sha512', encoding = 'base64', optio...