1
0
Fork 0

Move typescript utils in its own directory

This commit is contained in:
Chocobozzz 2021-12-16 18:04:16 +01:00
parent 077f344891
commit 6b5f72beda
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
78 changed files with 91 additions and 133 deletions

View File

@ -2,7 +2,7 @@ import 'multer'
import express from 'express'
import { auditLoggerFactory, getAuditIdFromRes, UserAuditView } from '@server/helpers/audit-logger'
import { Hooks } from '@server/lib/plugins/hooks'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { ActorImageType, UserUpdateMe, UserVideoRate as FormattedUserVideoRate } from '../../../../shared'
import { HttpStatusCode } from '../../../../shared/models/http/http-error-codes'
import { UserVideoQuota } from '../../../../shared/models/users/user-video-quota.model'

View File

@ -9,7 +9,7 @@ import { VideoPlaylistModel } from '@server/models/video/video-playlist'
import { VideoPlaylistElementModel } from '@server/models/video/video-playlist-element'
import { FilteredModelAttributes } from '@server/types'
import { MThumbnail, MVideoPlaylist, MVideoPlaylistFull, MVideoPlaylistVideosLength } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { PlaylistObject } from '@shared/models'
import { getOrCreateAPActor } from '../actors'
import { crawlCollectionPage } from '../crawl'

View File

@ -2,7 +2,7 @@ import { ACTIVITY_PUB } from '@server/initializers/constants'
import { VideoPlaylistModel } from '@server/models/video/video-playlist'
import { VideoPlaylistElementModel } from '@server/models/video/video-playlist-element'
import { MVideoId, MVideoPlaylistId } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { PlaylistElementObject, PlaylistObject, VideoPlaylistPrivacy } from '@shared/models'
function playlistObjectToDBAttributes (playlistObject: PlaylistObject, to: string[]) {

View File

@ -1,7 +1,7 @@
import { AllowNull, BelongsTo, Column, CreatedAt, DataType, ForeignKey, Is, Model, Table, UpdatedAt } from 'sequelize-typescript'
import { isAbuseMessageValid } from '@server/helpers/custom-validators/abuses'
import { MAbuseMessage, MAbuseMessageFormattable } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { AbuseMessage } from '@shared/models'
import { AccountModel, ScopeNames as AccountScopeNames } from '../account/account'
import { getSort, throwIfNotValid } from '../utils'

View File

@ -16,7 +16,7 @@ import {
UpdatedAt
} from 'sequelize-typescript'
import { isAbuseModerationCommentValid, isAbuseReasonValid, isAbuseStateValid } from '@server/helpers/custom-validators/abuses'
import { abusePredefinedReasonsMap, AttributesOnly } from '@shared/core-utils'
import { abusePredefinedReasonsMap } from '@shared/core-utils'
import {
AbuseFilter,
AbuseObject,
@ -30,6 +30,7 @@ import {
UserAbuse,
UserVideoAbuse
} from '@shared/models'
import { AttributesOnly } from '@shared/typescript-utils'
import { ABUSE_STATES, CONSTRAINTS_FIELDS } from '../../initializers/constants'
import { MAbuseAdminFormattable, MAbuseAP, MAbuseFull, MAbuseReporter, MAbuseUserFormattable, MUserAccountId } from '../../types/models'
import { AccountModel, ScopeNames as AccountScopeNames, SummaryOptions as AccountSummaryOptions } from '../account/account'

View File

@ -1,5 +1,5 @@
import { AllowNull, BelongsTo, Column, CreatedAt, DataType, Default, ForeignKey, Model, Table, UpdatedAt } from 'sequelize-typescript'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { VideoDetails } from '@shared/models'
import { VideoModel } from '../video/video'
import { AbuseModel } from './abuse'

View File

@ -1,5 +1,5 @@
import { BelongsTo, Column, CreatedAt, ForeignKey, Model, Table, UpdatedAt } from 'sequelize-typescript'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { VideoCommentModel } from '../video/video-comment'
import { AbuseModel } from './abuse'

View File

@ -2,7 +2,7 @@ import { Op, QueryTypes } from 'sequelize'
import { BelongsTo, Column, CreatedAt, ForeignKey, Model, Scopes, Table, UpdatedAt } from 'sequelize-typescript'
import { handlesToNameAndHost } from '@server/helpers/actors'
import { MAccountBlocklist, MAccountBlocklistAccounts, MAccountBlocklistFormattable } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { AccountBlock } from '../../../shared/models'
import { ActorModel } from '../actor/actor'
import { ServerModel } from '../server/server'

View File

@ -7,7 +7,7 @@ import {
MAccountVideoRateAccountVideo,
MAccountVideoRateFormattable
} from '@server/types/models/video/video-rate'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { AccountVideoRate } from '../../../shared'
import { VideoRateType } from '../../../shared/models/videos'
import { isActivityPubUrlValid } from '../../helpers/custom-validators/activitypub/misc'

View File

@ -17,7 +17,7 @@ import {
UpdatedAt
} from 'sequelize-typescript'
import { ModelCache } from '@server/models/model-cache'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { Account, AccountSummary } from '../../../shared/models/actors'
import { isAccountDescriptionValid } from '../../helpers/custom-validators/accounts'
import { CONSTRAINTS_FIELDS, SERVER_ACTOR_NAME, WEBSERVER } from '../../initializers/constants'

View File

@ -30,7 +30,7 @@ import {
MActorFollowFormattable,
MActorFollowSubscriptions
} from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { ActivityPubActorType } from '@shared/models'
import { FollowState } from '../../../shared/models/actors'
import { ActorFollow } from '../../../shared/models/actors/follow.model'

View File

@ -2,7 +2,7 @@ import { remove } from 'fs-extra'
import { join } from 'path'
import { AfterDestroy, AllowNull, Column, CreatedAt, Default, Is, Model, Table, UpdatedAt } from 'sequelize-typescript'
import { MActorImageFormattable } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { ActorImageType } from '@shared/models'
import { ActorImage } from '../../../shared/models/actors/actor-image.model'
import { isActivityPubUrlValid } from '../../helpers/custom-validators/activitypub/misc'

View File

@ -17,7 +17,8 @@ import {
UpdatedAt
} from 'sequelize-typescript'
import { ModelCache } from '@server/models/model-cache'
import { getLowercaseExtension, AttributesOnly } from '@shared/core-utils'
import { getLowercaseExtension } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { ActivityIconObject, ActivityPubActorType } from '../../../shared/models/activitypub'
import { ActorImage } from '../../../shared/models/actors/actor-image.model'
import { activityPubContextify } from '../../helpers/activitypub'

View File

@ -1,6 +1,6 @@
import memoizee from 'memoizee'
import { AllowNull, Column, Default, DefaultScope, HasOne, IsInt, Model, Table } from 'sequelize-typescript'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { AccountModel } from '../account/account'
export const getServerActor = memoizee(async function () {

View File

@ -1,5 +1,5 @@
import { AllowNull, Column, CreatedAt, DataType, HasMany, Model, Table, UpdatedAt } from 'sequelize-typescript'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { OAuthTokenModel } from './oauth-token'
@Table({

View File

@ -15,7 +15,7 @@ import {
import { TokensCache } from '@server/lib/auth/tokens-cache'
import { MUserAccountId } from '@server/types/models'
import { MOAuthTokenUser } from '@server/types/models/oauth/oauth-token'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { logger } from '../../helpers/logger'
import { AccountModel } from '../account/account'
import { ActorModel } from '../actor/actor'

View File

@ -16,7 +16,7 @@ import {
} from 'sequelize-typescript'
import { getServerActor } from '@server/models/application/application'
import { MActor, MVideoForRedundancyAPI, MVideoRedundancy, MVideoRedundancyAP, MVideoRedundancyVideo } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { VideoRedundanciesTarget } from '@shared/models/redundancy/video-redundancies-filters.model'
import {
FileRedundancyInformation,

View File

@ -1,7 +1,7 @@
import { FindAndCountOptions, json, QueryTypes } from 'sequelize'
import { AllowNull, Column, CreatedAt, DataType, DefaultScope, Is, Model, Table, UpdatedAt } from 'sequelize-typescript'
import { MPlugin, MPluginFormattable } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { PeerTubePlugin, PluginType, RegisterServerSettingOptions } from '../../../shared/models'
import {
isPluginDescriptionValid,

View File

@ -1,7 +1,7 @@
import { Op, QueryTypes } from 'sequelize'
import { BelongsTo, Column, CreatedAt, ForeignKey, Model, Scopes, Table, UpdatedAt } from 'sequelize-typescript'
import { MServerBlocklist, MServerBlocklistAccountServer, MServerBlocklistFormattable } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { ServerBlock } from '@shared/models'
import { AccountModel } from '../account/account'
import { createSafeIn, getSort, searchAttribute } from '../utils'

View File

@ -1,7 +1,7 @@
import { Transaction } from 'sequelize'
import { AllowNull, Column, CreatedAt, Default, HasMany, Is, Model, Table, UpdatedAt } from 'sequelize-typescript'
import { MServer, MServerFormattable } from '@server/types/models/server'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { isHostValid } from '../../helpers/custom-validators/servers'
import { ActorModel } from '../actor/actor'
import { throwIfNotValid } from '../utils'

View File

@ -1,7 +1,7 @@
import { AllowNull, BelongsToMany, Column, CreatedAt, Model, Table, UpdatedAt } from 'sequelize-typescript'
import { Transaction } from 'sequelize/types'
import { MTracker } from '@server/types/models/server/tracker'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { VideoModel } from '../video/video'
import { VideoTrackerModel } from './video-tracker'

View File

@ -1,5 +1,5 @@
import { Column, CreatedAt, ForeignKey, Model, Table, UpdatedAt } from 'sequelize-typescript'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { VideoModel } from '../video/video'
import { TrackerModel } from './tracker'

View File

@ -14,7 +14,7 @@ import {
} from 'sequelize-typescript'
import { TokensCache } from '@server/lib/auth/tokens-cache'
import { MNotificationSettingFormattable } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { UserNotificationSetting, UserNotificationSettingValue } from '../../../shared/models/users/user-notification-setting.model'
import { isUserNotificationSettingValid } from '../../helpers/custom-validators/user-notifications'
import { throwIfNotValid } from '../utils'

View File

@ -2,7 +2,7 @@ import { FindOptions, ModelIndexesOptions, Op, WhereOptions } from 'sequelize'
import { AllowNull, BelongsTo, Column, CreatedAt, Default, ForeignKey, Is, Model, Scopes, Table, UpdatedAt } from 'sequelize-typescript'
import { uuidToShort } from '@shared/core-utils/uuid'
import { UserNotificationIncludes, UserNotificationModelForApi } from '@server/types/models/user'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { UserNotification, UserNotificationType } from '../../../shared'
import { isBooleanValid } from '../../helpers/custom-validators/misc'
import { isUserNotificationTypeValid } from '../../helpers/custom-validators/user-notifications'

View File

@ -1,7 +1,7 @@
import { DestroyOptions, Op, Transaction } from 'sequelize'
import { AllowNull, BelongsTo, Column, CreatedAt, ForeignKey, IsInt, Model, Table, UpdatedAt } from 'sequelize-typescript'
import { MUserAccountId, MUserId } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { VideoModel } from '../video/video'
import { UserModel } from './user'
import { getServerActor } from '../application/application'

View File

@ -31,7 +31,7 @@ import {
MUserWithNotificationSetting,
MVideoWithRights
} from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { hasUserRight, USER_ROLE_LABELS } from '../../../shared/core-utils/users'
import { AbuseState, MyUser, UserRight, VideoPlaylistType, VideoPrivacy } from '../../../shared/models'
import { User, UserRole } from '../../../shared/models/users'

View File

@ -1,7 +1,7 @@
import { Op, Transaction } from 'sequelize'
import { AllowNull, BelongsTo, Column, CreatedAt, Default, ForeignKey, Model, Table, UpdatedAt } from 'sequelize-typescript'
import { MScheduleVideoUpdateFormattable, MScheduleVideoUpdate } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { VideoPrivacy } from '../../../shared/models/videos'
import { VideoModel } from './video'

View File

@ -1,7 +1,7 @@
import { col, fn, QueryTypes, Transaction } from 'sequelize'
import { AllowNull, BelongsToMany, Column, CreatedAt, Is, Model, Table, UpdatedAt } from 'sequelize-typescript'
import { MTag } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { VideoPrivacy, VideoState } from '../../../shared/models/videos'
import { isVideoTagValid } from '../../helpers/custom-validators/videos'
import { throwIfNotValid } from '../utils'

View File

@ -17,7 +17,7 @@ import {
} from 'sequelize-typescript'
import { afterCommitIfTransaction } from '@server/helpers/database-utils'
import { MThumbnail, MThumbnailVideo, MVideo } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { ThumbnailType } from '../../../shared/models/videos/thumbnail.type'
import { logger } from '../../helpers/logger'
import { CONFIG } from '../../initializers/config'

View File

@ -1,7 +1,7 @@
import { FindOptions } from 'sequelize'
import { AllowNull, BelongsTo, Column, CreatedAt, DataType, Default, ForeignKey, Is, Model, Table, UpdatedAt } from 'sequelize-typescript'
import { MVideoBlacklist, MVideoBlacklistFormattable } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { VideoBlacklist, VideoBlacklistType } from '../../../shared/models/videos'
import { isVideoBlacklistReasonValid, isVideoBlacklistTypeValid } from '../../helpers/custom-validators/video-blacklist'
import { CONSTRAINTS_FIELDS } from '../../initializers/constants'

View File

@ -17,7 +17,7 @@ import {
} from 'sequelize-typescript'
import { buildUUID } from '@shared/core-utils/uuid'
import { MVideo, MVideoCaption, MVideoCaptionFormattable, MVideoCaptionVideo } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { VideoCaption } from '../../../shared/models/videos/caption/video-caption.model'
import { isVideoCaptionLanguageValid } from '../../helpers/custom-validators/video-captions'
import { logger } from '../../helpers/logger'

View File

@ -1,6 +1,6 @@
import { AllowNull, BelongsTo, Column, CreatedAt, ForeignKey, Model, Scopes, Table, UpdatedAt } from 'sequelize-typescript'
import { MVideoChangeOwnershipFormattable, MVideoChangeOwnershipFull } from '@server/types/models/video/video-change-ownership'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { VideoChangeOwnership, VideoChangeOwnershipStatus } from '../../../shared/models/videos'
import { AccountModel } from '../account/account'
import { getSort } from '../utils'

View File

@ -17,8 +17,10 @@ import {
Table,
UpdatedAt
} from 'sequelize-typescript'
import { CONFIG } from '@server/initializers/config'
import { MAccountActor } from '@server/types/models'
import { AttributesOnly, pick } from '@shared/core-utils'
import { pick } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { ActivityPubActor } from '../../../shared/models/activitypub'
import { VideoChannel, VideoChannelSummary } from '../../../shared/models/videos'
import {
@ -44,7 +46,6 @@ import { setAsUpdated } from '../shared'
import { buildServerIdsFollowedBy, buildTrigramSearchIndex, createSimilarityAttribute, getSort, throwIfNotValid } from '../utils'
import { VideoModel } from './video'
import { VideoPlaylistModel } from './video-playlist'
import { CONFIG } from '@server/initializers/config'
export enum ScopeNames {
FOR_API = 'FOR_API',

View File

@ -16,7 +16,7 @@ import {
} from 'sequelize-typescript'
import { getServerActor } from '@server/models/application/application'
import { MAccount, MAccountId, MUserAccountId } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { VideoPrivacy } from '@shared/models'
import { ActivityTagObject, ActivityTombstoneObject } from '../../../shared/models/activitypub/objects/common-objects'
import { VideoCommentObject } from '../../../shared/models/activitypub/objects/video-comment-object'

View File

@ -26,7 +26,7 @@ import { extractVideo } from '@server/helpers/video'
import { getHLSPublicFileUrl, getWebTorrentPublicFileUrl } from '@server/lib/object-storage'
import { getFSTorrentFilePath } from '@server/lib/paths'
import { isStreamingPlaylist, MStreamingPlaylistVideo, MVideo, MVideoWithHost } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { VideoStorage } from '@shared/models'
import {
isVideoFileExtnameValid,

View File

@ -15,7 +15,7 @@ import {
} from 'sequelize-typescript'
import { afterCommitIfTransaction } from '@server/helpers/database-utils'
import { MVideoImportDefault, MVideoImportFormattable } from '@server/types/models/video/video-import'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { VideoImport, VideoImportState } from '../../../shared'
import { isVideoImportStateValid, isVideoImportTargetUrlValid } from '../../helpers/custom-validators/video-imports'
import { isVideoMagnetUriValid } from '../../helpers/custom-validators/videos'

View File

@ -1,6 +1,6 @@
import { Op, QueryTypes, Transaction } from 'sequelize'
import { AllowNull, BelongsTo, Column, CreatedAt, Default, ForeignKey, IsInt, Model, Table, Unique, UpdatedAt } from 'sequelize-typescript'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { VideoModel } from './video'
export type VideoJobInfoColumnType = 'pendingMove' | 'pendingTranscode'

View File

@ -1,7 +1,7 @@
import { AllowNull, BelongsTo, Column, CreatedAt, DataType, DefaultScope, ForeignKey, Model, Table, UpdatedAt } from 'sequelize-typescript'
import { WEBSERVER } from '@server/initializers/constants'
import { MVideoLive, MVideoLiveVideo } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { LiveVideo, VideoState } from '@shared/models'
import { VideoModel } from './video'
import { VideoBlacklistModel } from './video-blacklist'

View File

@ -32,7 +32,7 @@ import { AccountModel } from '../account/account'
import { getSort, throwIfNotValid } from '../utils'
import { ForAPIOptions, ScopeNames as VideoScopeNames, VideoModel } from './video'
import { VideoPlaylistModel } from './video-playlist'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
@Table({
tableName: 'videoPlaylistElement',

View File

@ -17,9 +17,10 @@ import {
Table,
UpdatedAt
} from 'sequelize-typescript'
import { buildUUID, uuidToShort } from '@shared/core-utils/uuid'
import { MAccountId, MChannelId } from '@server/types/models'
import { AttributesOnly, buildPlaylistEmbedPath, buildPlaylistWatchPath, pick } from '@shared/core-utils'
import { buildPlaylistEmbedPath, buildPlaylistWatchPath, pick } from '@shared/core-utils'
import { buildUUID, uuidToShort } from '@shared/core-utils/uuid'
import { AttributesOnly } from '@shared/typescript-utils'
import { ActivityIconObject } from '../../../shared/models/activitypub/objects'
import { PlaylistObject } from '../../../shared/models/activitypub/objects/playlist-object'
import { VideoPlaylistPrivacy } from '../../../shared/models/videos/playlist/video-playlist-privacy.model'

View File

@ -1,6 +1,6 @@
import { literal, Op, QueryTypes, Transaction } from 'sequelize'
import { AllowNull, BelongsTo, Column, CreatedAt, DataType, ForeignKey, Is, Model, Scopes, Table, UpdatedAt } from 'sequelize-typescript'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { isActivityPubUrlValid } from '../../helpers/custom-validators/activitypub/misc'
import { CONSTRAINTS_FIELDS } from '../../initializers/constants'
import { MActorDefault } from '../../types/models'

View File

@ -18,7 +18,7 @@ import {
import { getHLSPublicFileUrl } from '@server/lib/object-storage'
import { VideoFileModel } from '@server/models/video/video-file'
import { MStreamingPlaylist, MVideo } from '@server/types/models'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { VideoStorage } from '@shared/models'
import { VideoStreamingPlaylistType } from '../../../shared/models/videos/video-streaming-playlist.type'
import { sha1 } from '@shared/core-utils/crypto'

View File

@ -1,5 +1,5 @@
import { Column, CreatedAt, ForeignKey, Model, Table, UpdatedAt } from 'sequelize-typescript'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { TagModel } from './tag'
import { VideoModel } from './video'

View File

@ -1,6 +1,6 @@
import { literal, Op } from 'sequelize'
import { AllowNull, BelongsTo, Column, CreatedAt, DataType, ForeignKey, Model, Table } from 'sequelize-typescript'
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { VideoModel } from './video'
@Table({

View File

@ -25,7 +25,6 @@ import {
UpdatedAt
} from 'sequelize-typescript'
import { buildNSFWFilter } from '@server/helpers/express-utils'
import { uuidToShort } from '@shared/core-utils/uuid'
import { getPrivaciesForFederation, isPrivacyForFederation, isStateForFederation } from '@server/helpers/video'
import { LiveManager } from '@server/lib/live/live-manager'
import { removeHLSObjectStorage, removeWebTorrentObjectStorage } from '@server/lib/object-storage'
@ -33,8 +32,10 @@ import { getHLSDirectory, getHLSRedundancyDirectory } from '@server/lib/paths'
import { VideoPathManager } from '@server/lib/video-path-manager'
import { getServerActor } from '@server/models/application/application'
import { ModelCache } from '@server/models/model-cache'
import { AttributesOnly, buildVideoEmbedPath, buildVideoWatchPath, pick } from '@shared/core-utils'
import { buildVideoEmbedPath, buildVideoWatchPath, pick } from '@shared/core-utils'
import { uuidToShort } from '@shared/core-utils/uuid'
import { VideoFile, VideoInclude } from '@shared/models'
import { AttributesOnly } from '@shared/typescript-utils'
import { ResultList, UserRight, VideoPrivacy, VideoState } from '../../../shared'
import { VideoObject } from '../../../shared/models/activitypub/objects'
import { Video, VideoDetails, VideoRateType, VideoStorage } from '../../../shared/models/videos'

View File

@ -1,5 +1,5 @@
import { AbuseMessageModel } from '@server/models/abuse/abuse-message'
import { PickWith } from '@shared/core-utils'
import { PickWith } from '@shared/typescript-utils'
import { AbuseModel } from '../../../models/abuse/abuse'
import { MAccountFormattable } from '../account'

View File

@ -1,7 +1,7 @@
import { VideoAbuseModel } from '@server/models/abuse/video-abuse'
import { VideoCommentAbuseModel } from '@server/models/abuse/video-comment-abuse'
import { VideoCommentModel } from '@server/models/video/video-comment'
import { PickWith } from '@shared/core-utils'
import { PickWith } from '@shared/typescript-utils'
import { AbuseModel } from '../../../models/abuse/abuse'
import { MAccountDefault, MAccountFormattable, MAccountLight, MAccountUrl } from '../account'
import { MComment, MCommentOwner, MCommentUrl, MCommentVideo, MVideoUrl } from '../video'

View File

@ -1,5 +1,5 @@
import { AccountBlocklistModel } from '../../../models/account/account-blocklist'
import { PickWith } from '@shared/core-utils'
import { PickWith } from '@shared/typescript-utils'
import { MAccountDefault, MAccountFormattable } from './account'
type Use<K extends keyof AccountBlocklistModel, M> = PickWith<AccountBlocklistModel, K, M>

View File

@ -1,4 +1,4 @@
import { FunctionProperties, PickWith } from '@shared/core-utils'
import { FunctionProperties, PickWith } from '@shared/typescript-utils'
import { AccountModel } from '../../../models/account/account'
import {
MActor,

View File

@ -1,4 +1,3 @@
import { ActorCustomPageModel } from '../../../models/account/actor-custom-page'
export type MActorCustomPage = Omit<ActorCustomPageModel, 'Actor'>

View File

@ -1,4 +1,4 @@
import { PickWith } from '@shared/core-utils'
import { PickWith } from '@shared/typescript-utils'
import { ActorFollowModel } from '../../../models/actor/actor-follow'
import {
MActor,

View File

@ -1,4 +1,4 @@
import { FunctionProperties } from '@shared/core-utils'
import { FunctionProperties } from '@shared/typescript-utils'
import { ActorImageModel } from '../../../models/actor/actor-image'
export type MActorImage = ActorImageModel

View File

@ -1,4 +1,4 @@
import { FunctionProperties, PickWith, PickWithOpt } from '@shared/core-utils'
import { FunctionProperties, PickWith, PickWithOpt } from '@shared/typescript-utils'
import { ActorModel } from '../../../models/actor/actor'
import { MAccount, MAccountDefault, MAccountId, MAccountIdActor } from '../account'
import { MServer, MServerHost, MServerHostBlocks, MServerRedundancyAllowed } from '../server'

View File

@ -1,5 +1,5 @@
import { OAuthTokenModel } from '@server/models/oauth/oauth-token'
import { PickWith } from '@shared/core-utils'
import { PickWith } from '@shared/typescript-utils'
import { MUserAccountUrl } from '../user/user'
type Use<K extends keyof OAuthTokenModel, M> = PickWith<OAuthTokenModel, K, M>

View File

@ -1,5 +1,5 @@
import { ServerBlocklistModel } from '@server/models/server/server-blocklist'
import { PickWith } from '@shared/core-utils'
import { PickWith } from '@shared/typescript-utils'
import { MAccountDefault, MAccountFormattable } from '../account/account'
import { MServer, MServerFormattable } from './server'

View File

@ -1,5 +1,5 @@
import { FunctionProperties, PickWith } from '@shared/typescript-utils'
import { ServerModel } from '../../../models/server/server'
import { FunctionProperties, PickWith } from '@shared/core-utils'
import { MAccountBlocklistId } from '../account'
type Use<K extends keyof ServerModel, M> = PickWith<ServerModel, K, M>

View File

@ -3,7 +3,7 @@ import { VideoCommentAbuseModel } from '@server/models/abuse/video-comment-abuse
import { ApplicationModel } from '@server/models/application/application'
import { PluginModel } from '@server/models/server/plugin'
import { UserNotificationModel } from '@server/models/user/user-notification'
import { PickWith, PickWithOpt } from '@shared/core-utils'
import { PickWith, PickWithOpt } from '@shared/typescript-utils'
import { AbuseModel } from '../../../models/abuse/abuse'
import { AccountModel } from '../../../models/account/account'
import { ActorModel } from '../../../models/actor/actor'

View File

@ -1,7 +1,7 @@
import { AccountModel } from '@server/models/account/account'
import { UserModel } from '@server/models/user/user'
import { MVideoPlaylist } from '@server/types/models'
import { PickWith, PickWithOpt } from '@shared/core-utils'
import { PickWith, PickWithOpt } from '@shared/typescript-utils'
import {
MAccount,
MAccountDefault,

View File

@ -1,4 +1,4 @@
import { PickWith } from '@shared/core-utils'
import { PickWith } from '@shared/typescript-utils'
import { ThumbnailModel } from '../../../models/video/thumbnail'
import { MVideo } from './video'

View File

@ -1,5 +1,5 @@
import { PickWith } from '@shared/typescript-utils'
import { VideoBlacklistModel } from '../../../models/video/video-blacklist'
import { PickWith } from '@shared/core-utils'
import { MVideo, MVideoFormattable } from './video'
type Use<K extends keyof VideoBlacklistModel, M> = PickWith<VideoBlacklistModel, K, M>

View File

@ -1,4 +1,4 @@
import { PickWith } from '@shared/core-utils'
import { PickWith } from '@shared/typescript-utils'
import { VideoCaptionModel } from '../../../models/video/video-caption'
import { MVideo, MVideoUUID } from './video'

View File

@ -1,7 +1,7 @@
import { VideoChangeOwnershipModel } from '@server/models/video/video-change-ownership'
import { PickWith } from '@shared/core-utils'
import { PickWith } from '@shared/typescript-utils'
import { MAccountDefault, MAccountFormattable } from '../account/account'
import { MVideoWithAllFiles, MVideoFormattable } from './video'
import { MVideoFormattable, MVideoWithAllFiles } from './video'
type Use<K extends keyof VideoChangeOwnershipModel, M> = PickWith<VideoChangeOwnershipModel, K, M>

View File

@ -1,4 +1,4 @@
import { FunctionProperties, PickWith, PickWithOpt } from '@shared/core-utils'
import { FunctionProperties, PickWith, PickWithOpt } from '@shared/typescript-utils'
import { VideoChannelModel } from '../../../models/video/video-channel'
import {
MAccountActor,

View File

@ -1,4 +1,4 @@
import { PickWith, PickWithOpt } from '@shared/core-utils'
import { PickWith, PickWithOpt } from '@shared/typescript-utils'
import { VideoCommentModel } from '../../../models/video/video-comment'
import { MAccountDefault, MAccountFormattable, MAccountUrl } from '../account'
import { MVideo, MVideoAccountLight, MVideoFeed, MVideoIdUrl, MVideoUrl } from './video'

View File

@ -1,8 +1,8 @@
import { PickWith, PickWithOpt } from '@shared/typescript-utils'
import { VideoFileModel } from '../../../models/video/video-file'
import { PickWith, PickWithOpt } from '@shared/core-utils'
import { MVideo, MVideoUUID } from './video'
import { MVideoRedundancy, MVideoRedundancyFileUrl } from './video-redundancy'
import { MStreamingPlaylistVideo, MStreamingPlaylist } from './video-streaming-playlist'
import { MStreamingPlaylist, MStreamingPlaylistVideo } from './video-streaming-playlist'
type Use<K extends keyof VideoFileModel, M> = PickWith<VideoFileModel, K, M>

View File

@ -1,7 +1,7 @@
import { VideoImportModel } from '@server/models/video/video-import'
import { PickWith, PickWithOpt } from '@shared/core-utils'
import { MVideo, MVideoAccountLight, MVideoFormattable, MVideoTag, MVideoThumbnail, MVideoWithFile } from './video'
import { PickWith, PickWithOpt } from '@shared/typescript-utils'
import { MUser } from '../user/user'
import { MVideo, MVideoAccountLight, MVideoFormattable, MVideoTag, MVideoThumbnail, MVideoWithFile } from './video'
type Use<K extends keyof VideoImportModel, M> = PickWith<VideoImportModel, K, M>

View File

@ -1,5 +1,5 @@
import { VideoLiveModel } from '@server/models/video/video-live'
import { PickWith } from '@shared/core-utils'
import { PickWith } from '@shared/typescript-utils'
import { MVideo } from './video'
type Use<K extends keyof VideoLiveModel, M> = PickWith<VideoLiveModel, K, M>

View File

@ -1,5 +1,5 @@
import { VideoPlaylistElementModel } from '@server/models/video/video-playlist-element'
import { PickWith } from '@shared/core-utils'
import { PickWith } from '@shared/typescript-utils'
import { MVideoFormattable, MVideoThumbnail, MVideoUrl } from './video'
import { MVideoPlaylistPrivacy } from './video-playlist'

View File

@ -1,9 +1,9 @@
import { MVideoPlaylistElementLight } from '@server/types/models/video/video-playlist-element'
import { PickWith } from '@shared/typescript-utils'
import { VideoPlaylistModel } from '../../../models/video/video-playlist'
import { PickWith } from '@shared/core-utils'
import { MAccount, MAccountDefault, MAccountSummary, MAccountSummaryFormattable } from '../account'
import { MThumbnail } from './thumbnail'
import { MChannelDefault, MChannelSummary, MChannelSummaryFormattable, MChannelUrl } from './video-channels'
import { MVideoPlaylistElementLight } from '@server/types/models/video/video-playlist-element'
type Use<K extends keyof VideoPlaylistModel, M> = PickWith<VideoPlaylistModel, K, M>

View File

@ -1,5 +1,5 @@
import { AccountVideoRateModel } from '@server/models/account/account-video-rate'
import { PickWith } from '@shared/core-utils'
import { PickWith } from '@shared/typescript-utils'
import { MAccountAudience, MAccountUrl } from '../account/account'
import { MVideo, MVideoFormattable } from './video'

View File

@ -1,10 +1,10 @@
import { VideoRedundancyModel } from '../../../models/redundancy/video-redundancy'
import { PickWith, PickWithOpt } from '@shared/core-utils'
import { VideoStreamingPlaylistModel } from '@server/models/video/video-streaming-playlist'
import { VideoFileModel } from '@server/models/video/video-file'
import { VideoStreamingPlaylistModel } from '@server/models/video/video-streaming-playlist'
import { PickWith, PickWithOpt } from '@shared/typescript-utils'
import { VideoRedundancyModel } from '../../../models/redundancy/video-redundancy'
import { MVideoUrl } from './video'
import { MVideoFile, MVideoFileVideo } from './video-file'
import { MStreamingPlaylistVideo } from './video-streaming-playlist'
import { MVideoUrl } from './video'
type Use<K extends keyof VideoRedundancyModel, M> = PickWith<VideoRedundancyModel, K, M>

View File

@ -1,4 +1,4 @@
import { PickWith } from '@shared/core-utils'
import { PickWith } from '@shared/typescript-utils'
import { VideoShareModel } from '../../../models/video/video-share'
import { MActorDefault } from '../actor'
import { MVideo } from './video'

View File

@ -1,8 +1,8 @@
import { PickWith, PickWithOpt } from '@shared/typescript-utils'
import { VideoStreamingPlaylistModel } from '../../../models/video/video-streaming-playlist'
import { PickWith, PickWithOpt } from '@shared/core-utils'
import { MVideoRedundancyFileUrl, MVideoRedundancy } from './video-redundancy'
import { MVideo } from './video'
import { MVideoFile } from './video-file'
import { MVideoRedundancy, MVideoRedundancyFileUrl } from './video-redundancy'
type Use<K extends keyof VideoStreamingPlaylistModel, M> = PickWith<VideoStreamingPlaylistModel, K, M>

View File

@ -1,4 +1,4 @@
import { PickWith, PickWithOpt } from '@shared/core-utils'
import { PickWith, PickWithOpt } from '@shared/typescript-utils'
import { VideoModel } from '../../../models/video/video'
import { MTrackerUrl } from '../server/tracker'
import { MUserVideoHistoryTime } from '../user/user-video-history'

View File

@ -1,4 +1,4 @@
import { AttributesOnly } from '@shared/core-utils'
import { AttributesOnly } from '@shared/typescript-utils'
import { Model } from 'sequelize'
// Thanks to sequelize-typescript: https://github.com/RobinBuschmann/sequelize-typescript

View File

@ -2,5 +2,4 @@ export * from './date'
export * from './miscs'
export * from './regexp'
export * from './promises'
export * from './types'
export * from './url'

View File

@ -1,45 +0,0 @@
/* eslint-disable @typescript-eslint/array-type */
export type FunctionPropertyNames<T> = {
[K in keyof T]: T[K] extends Function ? K : never
}[keyof T]
export type FunctionProperties<T> = Pick<T, FunctionPropertyNames<T>>
export type AttributesOnly<T> = {
[K in keyof T]: T[K] extends Function ? never : T[K]
}
export type PickWith<T, KT extends keyof T, V> = {
[P in KT]: T[P] extends V ? V : never
}
export type PickWithOpt<T, KT extends keyof T, V> = {
[P in KT]?: T[P] extends V ? V : never
}
// https://github.com/krzkaczor/ts-essentials Rocks!
export type DeepPartial<T> = {
[P in keyof T]?: T[P] extends Array<infer U>
? Array<DeepPartial<U>>
: T[P] extends ReadonlyArray<infer U>
? ReadonlyArray<DeepPartial<U>>
: DeepPartial<T[P]>
}
type Primitive = string | Function | number | boolean | Symbol | undefined | null
export type DeepOmitHelper<T, K extends keyof T> = {
[P in K]: // extra level of indirection needed to trigger homomorhic behavior
T[P] extends infer TP // distribute over unions
? TP extends Primitive
? TP // leave primitives and functions alone
: TP extends any[]
? DeepOmitArray<TP, K> // Array special handling
: DeepOmit<TP, K>
: never
}
export type DeepOmit<T, K> = T extends Primitive ? T : DeepOmitHelper<T, Exclude<keyof T, K>>
export type DeepOmitArray<T extends any[], K> = {
[P in keyof T]: DeepOmit<T[P], K>
}

View File

@ -1,5 +1,5 @@
import { merge } from 'lodash'
import { DeepPartial } from '@shared/core-utils'
import { DeepPartial } from '@shared/typescript-utils'
import { About, HttpStatusCode, ServerConfig } from '@shared/models'
import { CustomConfig } from '../../models/server/custom-config.model'
import { AbstractCommand, OverrideCommandOptions } from '../shared'