SYMBOL INDEX (120 symbols across 22 files) FILE: migrations/20230706133935_init.ts function up (line 3) | async function up(knex: Knex): Promise { function down (line 55) | async function down(knex: Knex): Promise { FILE: migrations/20230713094839_fs_updates.ts function up (line 3) | async function up(knex: Knex): Promise { function down (line 17) | async function down(knex: Knex): Promise { FILE: migrations/20230716103734_file.ts function up (line 3) | async function up(knex: Knex): Promise { function down (line 15) | async function down(knex: Knex): Promise { FILE: migrations/20230725081357_settings.ts function up (line 3) | async function up(knex: Knex): Promise { function down (line 12) | async function down(knex: Knex): Promise { FILE: src/app.ts function log (line 39) | function log(message: string): void { function waitTonStorage (line 51) | async function waitTonStorage(tonStorage: TonstorageCLI): Promise { function createTonStorageInstance (line 95) | function createTonStorageInstance(): TonstorageCLI { function syncFileSystem (line 116) | async function syncFileSystem(): Promise { function clearFileSystem (line 130) | function clearFileSystem(): void { FILE: src/controllers/file-system/app/publish-action.ts type PublishBody (line 9) | interface PublishBody { FILE: src/controllers/file-system/blob/get-article-action.ts function checkUserExists (line 14) | function checkUserExists(address: string): void { function getArticleData (line 28) | async function getArticleData(address: string, slug: string): Promise { function getFileInfo (line 77) | async function getFileInfo(sha256: string): Promise { function isSha256Uploaded (line 101) | async function isSha256Uploaded(sha256: string): Promise { function removeFileAndDirectory (line 128) | function removeFileAndDirectory(filePath: string, directoryPath: string)... function assertValidFile (line 145) | function assertValidFile(file: Express.Multer.File | undefined): asserts... function handleFileUpload (line 174) | async function handleFileUpload( function checkPathExists (line 217) | function checkPathExists(path: string, message: string): void { function removeUploadedFile (line 230) | async function removeUploadedFile(filePath: string): Promise { function setPermissions (line 245) | function setPermissions(reference: string): void { FILE: src/controllers/file-system/blob/utils.ts constant SHORT_ARTICLE_LENGTH (line 8) | const SHORT_ARTICLE_LENGTH = 1000 constant ARTICLE_INDEX_FILE_NAME (line 13) | const ARTICLE_INDEX_FILE_NAME = 'index-json' type ShortArticle (line 18) | interface ShortArticle { type Article (line 38) | interface Article { type ArticlesResponse (line 58) | interface ArticlesResponse { type ArticleResponse (line 78) | interface ArticleResponse { type PathInfoResponse (line 108) | interface PathInfoResponse { function directoryToShortArticle (line 135) | async function directoryToShortArticle(directory: Directory): Promise { FILE: src/controllers/file-system/const.ts constant DEFAULT_DIRECTORY (line 4) | const DEFAULT_DIRECTORY = 'articles' constant PROJECT_NAME (line 9) | const PROJECT_NAME = 'fairjournal' constant MAX_BLOB_SIZE (line 14) | const MAX_BLOB_SIZE = 1024 * 1024 * 10 FILE: src/controllers/file-system/types.ts type FileStatus (line 4) | enum FileStatus { FILE: src/controllers/file-system/update/apply-action.ts type ApplyBody (line 15) | interface ApplyBody { function insertUpdate (line 29) | async function insertUpdate(update: UpdateDataSigned): Promise { function validateUpdate (line 48) | async function validateUpdate(update: UpdateDataSigned): Promise { function downloadData (line 116) | async function downloadData(reference: string): Promise { function upsertSettings (line 129) | async function upsertSettings(pool: Pool, key: string, value: string): P... function getSetting (line 146) | async function getSetting(pool: Pool, key: string): Promise { FILE: src/fs.ts type AsyncFunction (line 12) | type AsyncFunction = (records: any[]) => Promise function processInBatches (line 20) | async function processInBatches(pool: Pool, asyncFn: AsyncFunction): Pro... function initFs (line 49) | function initFs(): FileSystem { function syncFs (line 63) | async function syncFs(fs: FileSystem): Promise { function getReferencePath (line 80) | function getReferencePath(reference: string): string { function isReferenceExists (line 96) | async function isReferenceExists(reference: string): Promise { function getContentByReference (line 105) | async function getContentByReference(reference: string): Promise { FILE: src/models/Article.ts type Article (line 1) | interface Article { FILE: src/models/User.ts type User (line 1) | interface User { FILE: src/ton-utils.ts type DaemonResponse (line 4) | interface DaemonResponse { type TorrentFull (line 13) | interface TorrentFull { type Torrent (line 22) | interface Torrent { type FileInfo (line 45) | interface FileInfo { function assertIsDefined (line 64) | function assertIsDefined(property: T | undefined | null, name: string... function assertIsNumber (line 76) | function assertIsNumber(value: unknown, name: string): asserts value is ... function assertIsBoolean (line 88) | function assertIsBoolean(value: unknown, name: string): asserts value is... function assertFileInfo (line 99) | function assertFileInfo(fileInfo: FileInfo): asserts fileInfo is FileInfo { function assertTorrent (line 112) | function assertTorrent(torrent: Torrent): asserts torrent is Torrent { function assertDaemonResponse (line 135) | function assertDaemonResponse(data: DaemonResponse): asserts data is Dae... FILE: src/utils.ts constant PUBLIC_KEY_LENGTH (line 11) | const PUBLIC_KEY_LENGTH = 64 constant REFERENCE_LENGTH (line 16) | const REFERENCE_LENGTH = 64 constant MAX_ARTICLE_NAME_LENGTH (line 21) | const MAX_ARTICLE_NAME_LENGTH = 64 function isString (line 28) | function isString(value: unknown): boolean { function assertString (line 37) | function assertString(data: unknown): asserts data is string { function assertStringLength (line 49) | function assertStringLength(data: unknown, length: number): asserts data... function assertAddress (line 62) | function assertAddress(data: unknown): asserts data is string { function isHexString (line 72) | function isHexString(value: string): boolean { function assertHex (line 83) | function assertHex(data: unknown): asserts data is string { function assertReference (line 96) | function assertReference(data: unknown): asserts data is string { function getPathParts (line 106) | function getPathParts(path: string): string[] { function assertArticleName (line 115) | function assertArticleName(data: unknown): asserts data is string { function isObject (line 130) | function isObject(data: unknown): data is Record { function assertObject (line 140) | function assertObject(data: unknown, customError?: string): asserts data... function bytesToString (line 151) | function bytesToString(data: Uint8Array): string { function stringToBytes (line 162) | function stringToBytes(data: string): Uint8Array { function assertJson (line 173) | function assertJson(data: unknown): asserts data is string { function calculateSHA256 (line 190) | async function calculateSHA256(filePath: string): Promise { function toAbsolutePath (line 213) | function toAbsolutePath(...paths: string[]): string { function delay (line 222) | async function delay(ms: number): Promise { function extractHash (line 231) | function extractHash(message: string): string { function base64ToHex (line 245) | function base64ToHex(base64: string): string { function hexToBase64 (line 252) | function hexToBase64(hex: string): string { FILE: test/utils.ts type FakeStorage (line 16) | interface FakeStorage { constant UPDATES_TABLE_NAME (line 32) | const UPDATES_TABLE_NAME = 'fs_update' constant TON_SAFE_SIGN_MAGIC (line 37) | const TON_SAFE_SIGN_MAGIC = 'ton-safe-sign-magic' function createWallet (line 42) | async function createWallet(userSeed?: string): Promise { function getRecordCount (line 54) | async function getRecordCount(db: Knex, tableName: string): Promise { function randomNumber (line 74) | function randomNumber(max = 1000): number { function generateArticle (line 81) | function generateArticle(): Article { function padStringWithZeros (line 118) | function padStringWithZeros(input: string, resultSize = 64): string { function getFakeStorage (line 126) | function getFakeStorage(): FakeStorage { function tonStorageFilesList (line 154) | async function tonStorageFilesList(tonStorage: TonstorageCLI): Promise