From a15871560f80e07386c1dabb8370cd2664ecfd1f Mon Sep 17 00:00:00 2001
From: Chocobozzz <me@florianbigard.com>
Date: Fri, 31 Jan 2020 16:56:52 +0100
Subject: Move to eslint

---
 shared/models/activitypub/activity.ts              | 43 ++++++++++++++++------
 shared/models/activitypub/activitypub-actor.ts     |  8 +---
 shared/models/activitypub/activitypub-signature.ts |  4 +-
 .../activitypub/objects/cache-file-object.ts       |  2 +-
 .../models/activitypub/objects/common-objects.ts   | 32 ++++++++--------
 .../activitypub/objects/video-abuse-object.ts      |  2 +-
 .../activitypub/objects/video-torrent-object.ts    |  4 +-
 shared/models/activitypub/objects/view-object.ts   |  2 +-
 shared/models/i18n/i18n.ts                         |  2 +
 shared/models/nodeinfo/index.d.ts                  |  2 +-
 .../peertube-plugin-latest-version.model.ts        |  2 +-
 shared/models/plugins/plugin-package-json.model.ts | 12 +++---
 shared/models/plugins/server-hook.model.ts         |  2 +-
 shared/models/redundancy/video-redundancy.model.ts |  2 +
 shared/models/server/custom-config.model.ts        |  4 +-
 shared/models/server/job.model.ts                  | 27 +++++++-------
 shared/models/server/server-config.model.ts        |  6 +--
 shared/models/users/user.model.ts                  |  1 -
 18 files changed, 90 insertions(+), 67 deletions(-)

(limited to 'shared/models')

diff --git a/shared/models/activitypub/activity.ts b/shared/models/activitypub/activity.ts
index 492b672c7..20ecf176c 100644
--- a/shared/models/activitypub/activity.ts
+++ b/shared/models/activitypub/activity.ts
@@ -8,12 +8,33 @@ import { ViewObject } from './objects/view-object'
 import { APObject } from './objects/object.model'
 import { PlaylistObject } from './objects/playlist-object'
 
-export type Activity = ActivityCreate | ActivityUpdate |
-  ActivityDelete | ActivityFollow | ActivityAccept | ActivityAnnounce |
-  ActivityUndo | ActivityLike | ActivityReject | ActivityView | ActivityDislike | ActivityFlag
-
-export type ActivityType = 'Create' | 'Update' | 'Delete' | 'Follow' | 'Accept' | 'Announce' | 'Undo' | 'Like' | 'Reject' |
-  'View' | 'Dislike' | 'Flag'
+export type Activity =
+  ActivityCreate |
+  ActivityUpdate |
+  ActivityDelete |
+  ActivityFollow |
+  ActivityAccept |
+  ActivityAnnounce |
+  ActivityUndo |
+  ActivityLike |
+  ActivityReject |
+  ActivityView |
+  ActivityDislike |
+  ActivityFlag
+
+export type ActivityType =
+  'Create' |
+  'Update' |
+  'Delete' |
+  'Follow' |
+  'Accept' |
+  'Announce' |
+  'Undo' |
+  'Like' |
+  'Reject' |
+  'View' |
+  'Dislike' |
+  'Flag'
 
 export interface ActivityAudience {
   to: string[]
@@ -66,17 +87,17 @@ export interface ActivityAnnounce extends BaseActivity {
 }
 
 export interface ActivityUndo extends BaseActivity {
-  type: 'Undo',
+  type: 'Undo'
   object: ActivityFollow | ActivityLike | ActivityDislike | ActivityCreate | ActivityAnnounce
 }
 
 export interface ActivityLike extends BaseActivity {
-  type: 'Like',
+  type: 'Like'
   object: APObject
 }
 
 export interface ActivityView extends BaseActivity {
-  type: 'View',
+  type: 'View'
   actor: string
   object: APObject
 }
@@ -89,7 +110,7 @@ export interface ActivityDislike extends BaseActivity {
 }
 
 export interface ActivityFlag extends BaseActivity {
-  type: 'Flag',
-  content: string,
+  type: 'Flag'
+  content: string
   object: APObject | APObject[]
 }
diff --git a/shared/models/activitypub/activitypub-actor.ts b/shared/models/activitypub/activitypub-actor.ts
index b8a2dc925..f022f3d02 100644
--- a/shared/models/activitypub/activitypub-actor.ts
+++ b/shared/models/activitypub/activitypub-actor.ts
@@ -1,4 +1,4 @@
-import { ActivityPubAttributedTo } from './objects/common-objects'
+import { ActivityIconObject, ActivityPubAttributedTo } from './objects/common-objects'
 
 export type ActivityPubActorType = 'Person' | 'Application' | 'Group' | 'Service' | 'Organization'
 
@@ -27,9 +27,5 @@ export interface ActivityPubActor {
     publicKeyPem: string
   }
 
-  icon: {
-    type: 'Image'
-    mediaType: 'image/png'
-    url: string
-  }
+  icon: ActivityIconObject
 }
diff --git a/shared/models/activitypub/activitypub-signature.ts b/shared/models/activitypub/activitypub-signature.ts
index 1d9f4b3b3..fafdc246d 100644
--- a/shared/models/activitypub/activitypub-signature.ts
+++ b/shared/models/activitypub/activitypub-signature.ts
@@ -1,6 +1,6 @@
 export interface ActivityPubSignature {
-  type: 'GraphSignature2012'
-  created: Date,
+  type: string
+  created: Date
   creator: string
   signatureValue: string
 }
diff --git a/shared/models/activitypub/objects/cache-file-object.ts b/shared/models/activitypub/objects/cache-file-object.ts
index 4b0a3a724..19a817582 100644
--- a/shared/models/activitypub/objects/cache-file-object.ts
+++ b/shared/models/activitypub/objects/cache-file-object.ts
@@ -2,7 +2,7 @@ import { ActivityVideoUrlObject, ActivityPlaylistUrlObject } from './common-obje
 
 export interface CacheFileObject {
   id: string
-  type: 'CacheFile',
+  type: 'CacheFile'
   object: string
   expires: string
   url: ActivityVideoUrlObject | ActivityPlaylistUrlObject
diff --git a/shared/models/activitypub/objects/common-objects.ts b/shared/models/activitypub/objects/common-objects.ts
index bab3ce366..e94d05429 100644
--- a/shared/models/activitypub/objects/common-objects.ts
+++ b/shared/models/activitypub/objects/common-objects.ts
@@ -7,9 +7,9 @@ export interface ActivityIdentifierObject {
 export interface ActivityIconObject {
   type: 'Image'
   url: string
-  mediaType: 'image/jpeg'
-  width: number
-  height: number
+  mediaType: 'image/jpeg' | 'image/png'
+  width?: number
+  height?: number
 }
 
 export type ActivityVideoUrlObject = {
@@ -72,19 +72,21 @@ export interface ActivityMentionObject {
   name: string
 }
 
-export type ActivityTagObject = ActivityPlaylistSegmentHashesObject |
-  ActivityPlaylistInfohashesObject |
-  ActivityVideoUrlObject |
-  ActivityHashTagObject |
-  ActivityMentionObject |
-  ActivityBitTorrentUrlObject |
-  ActivityMagnetUrlObject
+export type ActivityTagObject =
+  ActivityPlaylistSegmentHashesObject
+  | ActivityPlaylistInfohashesObject
+  | ActivityVideoUrlObject
+  | ActivityHashTagObject
+  | ActivityMentionObject
+  | ActivityBitTorrentUrlObject
+  | ActivityMagnetUrlObject
 
-export type ActivityUrlObject = ActivityVideoUrlObject |
-  ActivityPlaylistUrlObject |
-  ActivityBitTorrentUrlObject |
-  ActivityMagnetUrlObject |
-  ActivityHtmlUrlObject
+export type ActivityUrlObject =
+  ActivityVideoUrlObject
+  | ActivityPlaylistUrlObject
+  | ActivityBitTorrentUrlObject
+  | ActivityMagnetUrlObject
+  | ActivityHtmlUrlObject
 
 export interface ActivityPubAttributedTo {
   type: 'Group' | 'Person'
diff --git a/shared/models/activitypub/objects/video-abuse-object.ts b/shared/models/activitypub/objects/video-abuse-object.ts
index 5f1264a76..d9622b414 100644
--- a/shared/models/activitypub/objects/video-abuse-object.ts
+++ b/shared/models/activitypub/objects/video-abuse-object.ts
@@ -1,5 +1,5 @@
 export interface VideoAbuseObject {
-  type: 'Flag',
+  type: 'Flag'
   content: string
   object: string | string[]
 }
diff --git a/shared/models/activitypub/objects/video-torrent-object.ts b/shared/models/activitypub/objects/video-torrent-object.ts
index cadd0ea49..11de8fc56 100644
--- a/shared/models/activitypub/objects/video-torrent-object.ts
+++ b/shared/models/activitypub/objects/video-torrent-object.ts
@@ -20,8 +20,8 @@ export interface VideoTorrentObject {
   subtitleLanguage: ActivityIdentifierObject[]
   views: number
   sensitive: boolean
-  commentsEnabled: boolean,
-  downloadEnabled: boolean,
+  commentsEnabled: boolean
+  downloadEnabled: boolean
   waitTranscoding: boolean
   state: VideoState
   published: string
diff --git a/shared/models/activitypub/objects/view-object.ts b/shared/models/activitypub/objects/view-object.ts
index 00348116a..4dd21ce8e 100644
--- a/shared/models/activitypub/objects/view-object.ts
+++ b/shared/models/activitypub/objects/view-object.ts
@@ -1,5 +1,5 @@
 export interface ViewObject {
-  type: 'View',
+  type: 'View'
   actor: string
   object: string
 }
diff --git a/shared/models/i18n/i18n.ts b/shared/models/i18n/i18n.ts
index 032944281..9ae175df9 100644
--- a/shared/models/i18n/i18n.ts
+++ b/shared/models/i18n/i18n.ts
@@ -56,6 +56,8 @@ export function isDefaultLocale (locale: string) {
 }
 
 export function peertubeTranslate (str: string, translations?: { [ id: string ]: string }) {
+  // FIXME: remove disable rule when the client is upgraded to typescript 3.7
+  // eslint-disable-next-line
   return translations && translations[str] ? translations[str] : str
 }
 
diff --git a/shared/models/nodeinfo/index.d.ts b/shared/models/nodeinfo/index.d.ts
index 0a2d0492e..336cb66d2 100644
--- a/shared/models/nodeinfo/index.d.ts
+++ b/shared/models/nodeinfo/index.d.ts
@@ -98,7 +98,7 @@ export interface HttpNodeinfoDiasporaSoftwareNsSchema20 {
        * The amount of users that signed in at least once in the last 30 days.
        */
       activeMonth?: number
-    };
+    }
     /**
      * The amount of posts that were made by users that are registered on this server.
      */
diff --git a/shared/models/plugins/peertube-plugin-latest-version.model.ts b/shared/models/plugins/peertube-plugin-latest-version.model.ts
index dec4618fa..811a64429 100644
--- a/shared/models/plugins/peertube-plugin-latest-version.model.ts
+++ b/shared/models/plugins/peertube-plugin-latest-version.model.ts
@@ -1,5 +1,5 @@
 export interface PeertubePluginLatestVersionRequest {
-  currentPeerTubeEngine?: string,
+  currentPeerTubeEngine?: string
 
   npmNames: string[]
 }
diff --git a/shared/models/plugins/plugin-package-json.model.ts b/shared/models/plugins/plugin-package-json.model.ts
index 3f3077671..c26e9ae5b 100644
--- a/shared/models/plugins/plugin-package-json.model.ts
+++ b/shared/models/plugins/plugin-package-json.model.ts
@@ -5,7 +5,7 @@ export type PluginTranslationPaths = {
 }
 
 export type ClientScript = {
-  script: string,
+  script: string
   scopes: PluginClientScope[]
 }
 
@@ -13,12 +13,12 @@ export type PluginPackageJson = {
   name: string
   version: string
   description: string
-  engine: { peertube: string },
+  engine: { peertube: string }
 
-  homepage: string,
-  author: string,
-  bugs: string,
-  library: string,
+  homepage: string
+  author: string
+  bugs: string
+  library: string
 
   staticDirs: { [ name: string ]: string }
   css: string[]
diff --git a/shared/models/plugins/server-hook.model.ts b/shared/models/plugins/server-hook.model.ts
index 80ecd9e24..20f89b86d 100644
--- a/shared/models/plugins/server-hook.model.ts
+++ b/shared/models/plugins/server-hook.model.ts
@@ -70,7 +70,7 @@ export const serverActionHookObject = {
   // Fired when a user is updated by an admin/moderator
   'action:api.user.updated': true,
 
-   // Fired when a user got a new oauth2 token
+  // Fired when a user got a new oauth2 token
   'action:api.user.oauth2-got-token': true
 }
 
diff --git a/shared/models/redundancy/video-redundancy.model.ts b/shared/models/redundancy/video-redundancy.model.ts
index 014f69634..fa6e05832 100644
--- a/shared/models/redundancy/video-redundancy.model.ts
+++ b/shared/models/redundancy/video-redundancy.model.ts
@@ -24,10 +24,12 @@ interface RedundancyInformation {
   size: number
 }
 
+// eslint-disable-next-line @typescript-eslint/no-empty-interface
 export interface FileRedundancyInformation extends RedundancyInformation {
 
 }
 
+// eslint-disable-next-line @typescript-eslint/no-empty-interface
 export interface StreamingPlaylistRedundancyInformation extends RedundancyInformation {
 
 }
diff --git a/shared/models/server/custom-config.model.ts b/shared/models/server/custom-config.model.ts
index 032b91a29..07e17bda2 100644
--- a/shared/models/server/custom-config.model.ts
+++ b/shared/models/server/custom-config.model.ts
@@ -97,7 +97,7 @@ export interface CustomConfig {
     videos: {
       http: {
         enabled: boolean
-      },
+      }
       torrent: {
         enabled: boolean
       }
@@ -114,7 +114,7 @@ export interface CustomConfig {
 
   followers: {
     instance: {
-      enabled: boolean,
+      enabled: boolean
       manualApproval: boolean
     }
   }
diff --git a/shared/models/server/job.model.ts b/shared/models/server/job.model.ts
index 19fd4c659..cf29d20d4 100644
--- a/shared/models/server/job.model.ts
+++ b/shared/models/server/job.model.ts
@@ -1,23 +1,24 @@
 export type JobState = 'active' | 'completed' | 'failed' | 'waiting' | 'delayed'
 
-export type JobType = 'activitypub-http-unicast' |
-  'activitypub-http-broadcast' |
-  'activitypub-http-fetcher' |
-  'activitypub-follow' |
-  'video-file-import' |
-  'video-transcoding' |
-  'email' |
-  'video-import' |
-  'videos-views' |
-  'activitypub-refresher' |
-  'video-redundancy'
+export type JobType =
+  | 'activitypub-http-unicast'
+  | 'activitypub-http-broadcast'
+  | 'activitypub-http-fetcher'
+  | 'activitypub-follow'
+  | 'video-file-import'
+  | 'video-transcoding'
+  | 'email'
+  | 'video-import'
+  | 'videos-views'
+  | 'activitypub-refresher'
+  | 'video-redundancy'
 
 export interface Job {
   id: number
   state: JobState
   type: JobType
-  data: any,
-  error: any,
+  data: any
+  error: any
   createdAt: Date | string
   finishedOn: Date | string
   processedOn: Date | string
diff --git a/shared/models/server/server-config.model.ts b/shared/models/server/server-config.model.ts
index f1bb2153c..76e0d6f2d 100644
--- a/shared/models/server/server-config.model.ts
+++ b/shared/models/server/server-config.model.ts
@@ -46,7 +46,7 @@ export interface ServerConfig {
   }
 
   signup: {
-    allowed: boolean,
+    allowed: boolean
     allowedForCurrentIP: boolean
     requiresEmailVerification: boolean
   }
@@ -97,7 +97,7 @@ export interface ServerConfig {
         max: number
       }
       extensions: string[]
-    },
+    }
     file: {
       extensions: string[]
     }
@@ -107,7 +107,7 @@ export interface ServerConfig {
     file: {
       size: {
         max: number
-      },
+      }
       extensions: string[]
     }
   }
diff --git a/shared/models/users/user.model.ts b/shared/models/users/user.model.ts
index 168851196..efb451014 100644
--- a/shared/models/users/user.model.ts
+++ b/shared/models/users/user.model.ts
@@ -1,6 +1,5 @@
 import { Account } from '../actors'
 import { VideoChannel } from '../videos/channel/video-channel.model'
-import { VideoPlaylist } from '../videos/playlist/video-playlist.model'
 import { UserRole } from './user-role'
 import { NSFWPolicyType } from '../videos/nsfw-policy.type'
 import { UserNotificationSetting } from './user-notification-setting.model'
-- 
cgit v1.2.3