Reorganize plugin models
This commit is contained in:
		
							parent
							
								
									2b02c520e6
								
							
						
					
					
						commit
						428ccb8b7a
					
				
					 48 changed files with 113 additions and 112 deletions
				
			
		| 
						 | 
				
			
			@ -5,8 +5,7 @@ import { PluginApiService } from '@app/+admin/plugins/shared/plugin-api.service'
 | 
			
		|||
import { ComponentPagination, ConfirmService, hasMoreItems, Notifier } from '@app/core'
 | 
			
		||||
import { PluginService } from '@app/core/plugins/plugin.service'
 | 
			
		||||
import { compareSemVer } from '@shared/core-utils/miscs/miscs'
 | 
			
		||||
import { PeerTubePlugin } from '@shared/models/plugins/peertube-plugin.model'
 | 
			
		||||
import { PluginType } from '@shared/models/plugins/plugin.type'
 | 
			
		||||
import { PeerTubePlugin, PluginType } from '@shared/models'
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'my-plugin-list-installed',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,8 +4,7 @@ import { Component, OnInit } from '@angular/core'
 | 
			
		|||
import { ActivatedRoute, Router } from '@angular/router'
 | 
			
		||||
import { PluginApiService } from '@app/+admin/plugins/shared/plugin-api.service'
 | 
			
		||||
import { ComponentPagination, ConfirmService, hasMoreItems, Notifier, PluginService } from '@app/core'
 | 
			
		||||
import { PeerTubePluginIndex } from '@shared/models/plugins/peertube-plugin-index.model'
 | 
			
		||||
import { PluginType } from '@shared/models/plugins/plugin.type'
 | 
			
		||||
import { PeerTubePluginIndex, PluginType } from '@shared/models'
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'my-plugin-search',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,8 +21,15 @@ import {
 | 
			
		|||
import { FormReactiveValidationMessages, FormValidatorService } from '@app/shared/shared-forms'
 | 
			
		||||
import { InstanceService } from '@app/shared/shared-instance'
 | 
			
		||||
import { VideoCaptionEdit, VideoEdit, VideoService } from '@app/shared/shared-main'
 | 
			
		||||
import { LiveVideo, ServerConfig, VideoConstant, VideoDetails, VideoPrivacy } from '@shared/models'
 | 
			
		||||
import { RegisterClientFormFieldOptions, RegisterClientVideoFieldOptions } from '@shared/models/plugins/register-client-form-field.model'
 | 
			
		||||
import {
 | 
			
		||||
  LiveVideo,
 | 
			
		||||
  RegisterClientFormFieldOptions,
 | 
			
		||||
  RegisterClientVideoFieldOptions,
 | 
			
		||||
  ServerConfig,
 | 
			
		||||
  VideoConstant,
 | 
			
		||||
  VideoDetails,
 | 
			
		||||
  VideoPrivacy
 | 
			
		||||
} from '@shared/models'
 | 
			
		||||
import { I18nPrimengCalendarService } from './i18n-primeng-calendar.service'
 | 
			
		||||
import { VideoCaptionAddModalComponent } from './video-caption-add-modal.component'
 | 
			
		||||
import { VideoEditType } from './video-edit.type'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,14 +1,15 @@
 | 
			
		|||
import { RegisterClientHelpers } from 'src/types/register-client-option.model'
 | 
			
		||||
import { getHookType, internalRunHook } from '@shared/core-utils/plugins/hooks'
 | 
			
		||||
import { RegisterClientFormFieldOptions, RegisterClientVideoFieldOptions } from '@shared/models/plugins/register-client-form-field.model'
 | 
			
		||||
import {
 | 
			
		||||
  ClientHookName,
 | 
			
		||||
  clientHookObject,
 | 
			
		||||
  ClientScript,
 | 
			
		||||
  PluginType,
 | 
			
		||||
  RegisterClientFormFieldOptions,
 | 
			
		||||
  RegisterClientHookOptions,
 | 
			
		||||
  ServerConfigPlugin,
 | 
			
		||||
  RegisterClientSettingsScript
 | 
			
		||||
  RegisterClientSettingsScript,
 | 
			
		||||
  RegisterClientVideoFieldOptions,
 | 
			
		||||
  ServerConfigPlugin
 | 
			
		||||
} from '../../../shared/models'
 | 
			
		||||
import { ClientScript as ClientScriptModule } from '../types/client-script.model'
 | 
			
		||||
import { importModule } from './utils'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,16 +1,18 @@
 | 
			
		|||
import * as express from 'express'
 | 
			
		||||
import { getFormattedObjects } from '../../helpers/utils'
 | 
			
		||||
import { logger } from '@server/helpers/logger'
 | 
			
		||||
import { getFormattedObjects } from '@server/helpers/utils'
 | 
			
		||||
import { listAvailablePluginsFromIndex } from '@server/lib/plugins/plugin-index'
 | 
			
		||||
import { PluginManager } from '@server/lib/plugins/plugin-manager'
 | 
			
		||||
import {
 | 
			
		||||
  asyncMiddleware,
 | 
			
		||||
  authenticate,
 | 
			
		||||
  availablePluginsSortValidator,
 | 
			
		||||
  ensureUserHasRight,
 | 
			
		||||
  paginationValidator,
 | 
			
		||||
  pluginsSortValidator,
 | 
			
		||||
  setDefaultPagination,
 | 
			
		||||
  setDefaultSort
 | 
			
		||||
} from '../../middlewares'
 | 
			
		||||
import { availablePluginsSortValidator, pluginsSortValidator } from '../../middlewares/validators'
 | 
			
		||||
import { PluginModel } from '../../models/server/plugin'
 | 
			
		||||
import { UserRight } from '../../../shared/models/users'
 | 
			
		||||
} from '@server/middlewares'
 | 
			
		||||
import {
 | 
			
		||||
  existingPluginValidator,
 | 
			
		||||
  installOrUpdatePluginValidator,
 | 
			
		||||
| 
						 | 
				
			
			@ -18,16 +20,17 @@ import {
 | 
			
		|||
  listPluginsValidator,
 | 
			
		||||
  uninstallPluginValidator,
 | 
			
		||||
  updatePluginSettingsValidator
 | 
			
		||||
} from '../../middlewares/validators/plugins'
 | 
			
		||||
import { PluginManager } from '../../lib/plugins/plugin-manager'
 | 
			
		||||
import { InstallOrUpdatePlugin } from '../../../shared/models/plugins/install-plugin.model'
 | 
			
		||||
import { ManagePlugin } from '../../../shared/models/plugins/manage-plugin.model'
 | 
			
		||||
import { logger } from '../../helpers/logger'
 | 
			
		||||
import { listAvailablePluginsFromIndex } from '../../lib/plugins/plugin-index'
 | 
			
		||||
import { PeertubePluginIndexList } from '../../../shared/models/plugins/peertube-plugin-index-list.model'
 | 
			
		||||
import { RegisteredServerSettings } from '../../../shared/models/plugins/register-server-setting.model'
 | 
			
		||||
import { PublicServerSetting } from '../../../shared/models/plugins/public-server.setting'
 | 
			
		||||
import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
 | 
			
		||||
} from '@server/middlewares/validators/plugins'
 | 
			
		||||
import { PluginModel } from '@server/models/server/plugin'
 | 
			
		||||
import { HttpStatusCode } from '@shared/core-utils'
 | 
			
		||||
import {
 | 
			
		||||
  InstallOrUpdatePlugin,
 | 
			
		||||
  ManagePlugin,
 | 
			
		||||
  PeertubePluginIndexList,
 | 
			
		||||
  PublicServerSetting,
 | 
			
		||||
  RegisteredServerSettings,
 | 
			
		||||
  UserRight
 | 
			
		||||
} from '@shared/models'
 | 
			
		||||
 | 
			
		||||
const pluginRouter = express.Router()
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
import { ServerActionHookName, ServerFilterHookName } from '../../../shared/models/plugins/server-hook.model'
 | 
			
		||||
import { PluginManager } from './plugin-manager'
 | 
			
		||||
import { logger } from '../../helpers/logger'
 | 
			
		||||
import * as Bluebird from 'bluebird'
 | 
			
		||||
import { ServerActionHookName, ServerFilterHookName } from '../../../shared/models'
 | 
			
		||||
import { logger } from '../../helpers/logger'
 | 
			
		||||
import { PluginManager } from './plugin-manager'
 | 
			
		||||
 | 
			
		||||
type PromiseFunction <U, T> = (params: U) => Promise<T> | Bluebird<T>
 | 
			
		||||
type RawFunction <U, T> = (params: U) => T
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,16 +1,16 @@
 | 
			
		|||
import { sanitizeUrl } from '@server/helpers/core-utils'
 | 
			
		||||
import { ResultList } from '../../../shared/models'
 | 
			
		||||
import { PeertubePluginIndexList } from '../../../shared/models/plugins/peertube-plugin-index-list.model'
 | 
			
		||||
import { PeerTubePluginIndex } from '../../../shared/models/plugins/peertube-plugin-index.model'
 | 
			
		||||
import { logger } from '@server/helpers/logger'
 | 
			
		||||
import { doJSONRequest } from '@server/helpers/requests'
 | 
			
		||||
import { CONFIG } from '@server/initializers/config'
 | 
			
		||||
import { PEERTUBE_VERSION } from '@server/initializers/constants'
 | 
			
		||||
import { PluginModel } from '@server/models/server/plugin'
 | 
			
		||||
import {
 | 
			
		||||
  PeerTubePluginIndex,
 | 
			
		||||
  PeertubePluginIndexList,
 | 
			
		||||
  PeertubePluginLatestVersionRequest,
 | 
			
		||||
  PeertubePluginLatestVersionResponse
 | 
			
		||||
} from '../../../shared/models/plugins/peertube-plugin-latest-version.model'
 | 
			
		||||
import { logger } from '../../helpers/logger'
 | 
			
		||||
import { doJSONRequest } from '../../helpers/requests'
 | 
			
		||||
import { CONFIG } from '../../initializers/config'
 | 
			
		||||
import { PEERTUBE_VERSION } from '../../initializers/constants'
 | 
			
		||||
import { PluginModel } from '../../models/server/plugin'
 | 
			
		||||
  PeertubePluginLatestVersionResponse,
 | 
			
		||||
  ResultList
 | 
			
		||||
} from '@shared/models'
 | 
			
		||||
import { PluginManager } from './plugin-manager'
 | 
			
		||||
 | 
			
		||||
async function listAvailablePluginsFromIndex (options: PeertubePluginIndexList) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,16 +4,11 @@ import { createReadStream, createWriteStream } from 'fs'
 | 
			
		|||
import { ensureDir, outputFile, readJSON } from 'fs-extra'
 | 
			
		||||
import { basename, join } from 'path'
 | 
			
		||||
import { MOAuthTokenUser, MUser } from '@server/types/models'
 | 
			
		||||
import { RegisterServerHookOptions } from '@shared/models/plugins/register-server-hook.model'
 | 
			
		||||
import { getCompleteLocale } from '@shared/core-utils'
 | 
			
		||||
import { ClientScript, PluginPackageJson, PluginTranslation, PluginTranslationPaths, RegisterServerHookOptions } from '@shared/models'
 | 
			
		||||
import { getHookType, internalRunHook } from '../../../shared/core-utils/plugins/hooks'
 | 
			
		||||
import {
 | 
			
		||||
  ClientScript,
 | 
			
		||||
  PluginPackageJson,
 | 
			
		||||
  PluginTranslationPaths as PackagePluginTranslations
 | 
			
		||||
} from '../../../shared/models/plugins/plugin-package-json.model'
 | 
			
		||||
import { PluginTranslation } from '../../../shared/models/plugins/plugin-translation.model'
 | 
			
		||||
import { PluginType } from '../../../shared/models/plugins/plugin.type'
 | 
			
		||||
import { ServerHook, ServerHookName } from '../../../shared/models/plugins/server-hook.model'
 | 
			
		||||
import { ServerHook, ServerHookName } from '../../../shared/models/plugins/server/server-hook.model'
 | 
			
		||||
import { isLibraryCodeValid, isPackageJSONValid } from '../../helpers/custom-validators/plugins'
 | 
			
		||||
import { logger } from '../../helpers/logger'
 | 
			
		||||
import { CONFIG } from '../../initializers/config'
 | 
			
		||||
| 
						 | 
				
			
			@ -23,7 +18,6 @@ import { PluginLibrary, RegisterServerAuthExternalOptions, RegisterServerAuthPas
 | 
			
		|||
import { ClientHtml } from '../client-html'
 | 
			
		||||
import { RegisterHelpers } from './register-helpers'
 | 
			
		||||
import { installNpmPlugin, installNpmPluginFromDisk, removeNpmPlugin } from './yarn'
 | 
			
		||||
import { getCompleteLocale } from '@shared/core-utils'
 | 
			
		||||
 | 
			
		||||
export interface RegisteredPlugin {
 | 
			
		||||
  npmName: string
 | 
			
		||||
| 
						 | 
				
			
			@ -443,7 +437,7 @@ export class PluginManager implements ServerHook {
 | 
			
		|||
 | 
			
		||||
  // ###################### Translations ######################
 | 
			
		||||
 | 
			
		||||
  private async addTranslations (plugin: PluginModel, npmName: string, translationPaths: PackagePluginTranslations) {
 | 
			
		||||
  private async addTranslations (plugin: PluginModel, npmName: string, translationPaths: PluginTranslationPaths) {
 | 
			
		||||
    for (const locale of Object.keys(translationPaths)) {
 | 
			
		||||
      const path = translationPaths[locale]
 | 
			
		||||
      const json = await readJSON(join(this.getPluginPath(plugin.name, plugin.type), path))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,9 +26,9 @@ import {
 | 
			
		|||
  PluginVideoLicenceManager,
 | 
			
		||||
  PluginVideoPrivacyManager,
 | 
			
		||||
  RegisterServerHookOptions,
 | 
			
		||||
  RegisterServerSettingOptions
 | 
			
		||||
  RegisterServerSettingOptions,
 | 
			
		||||
  serverHookObject
 | 
			
		||||
} from '@shared/models'
 | 
			
		||||
import { serverHookObject } from '@shared/models/plugins/server-hook.model'
 | 
			
		||||
import { VideoTranscodingProfilesManager } from '../transcoding/video-transcoding-profiles'
 | 
			
		||||
import { buildPluginHelpers } from './plugin-helpers-builder'
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,15 +1,15 @@
 | 
			
		|||
import * as express from 'express'
 | 
			
		||||
import { body, param, query, ValidationChain } from 'express-validator'
 | 
			
		||||
import { logger } from '../../helpers/logger'
 | 
			
		||||
import { areValidationErrors } from './utils'
 | 
			
		||||
import { isNpmPluginNameValid, isPluginNameValid, isPluginTypeValid, isPluginVersionValid } from '../../helpers/custom-validators/plugins'
 | 
			
		||||
import { PluginManager } from '../../lib/plugins/plugin-manager'
 | 
			
		||||
import { isBooleanValid, isSafePath, toBooleanOrNull, exists, toIntOrNull } from '../../helpers/custom-validators/misc'
 | 
			
		||||
import { PluginModel } from '../../models/server/plugin'
 | 
			
		||||
import { InstallOrUpdatePlugin } from '../../../shared/models/plugins/install-plugin.model'
 | 
			
		||||
import { PluginType } from '../../../shared/models/plugins/plugin.type'
 | 
			
		||||
import { CONFIG } from '../../initializers/config'
 | 
			
		||||
import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
 | 
			
		||||
import { PluginType } from '../../../shared/models/plugins/plugin.type'
 | 
			
		||||
import { InstallOrUpdatePlugin } from '../../../shared/models/plugins/server/api/install-plugin.model'
 | 
			
		||||
import { exists, isBooleanValid, isSafePath, toBooleanOrNull, toIntOrNull } from '../../helpers/custom-validators/misc'
 | 
			
		||||
import { isNpmPluginNameValid, isPluginNameValid, isPluginTypeValid, isPluginVersionValid } from '../../helpers/custom-validators/plugins'
 | 
			
		||||
import { logger } from '../../helpers/logger'
 | 
			
		||||
import { CONFIG } from '../../initializers/config'
 | 
			
		||||
import { PluginManager } from '../../lib/plugins/plugin-manager'
 | 
			
		||||
import { PluginModel } from '../../models/server/plugin'
 | 
			
		||||
import { areValidationErrors } from './utils'
 | 
			
		||||
 | 
			
		||||
const getPluginValidator = (pluginType: PluginType, withVersion = true) => {
 | 
			
		||||
  const validators: (ValidationChain | express.Handler)[] = [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,9 +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 { PeerTubePlugin } from '../../../shared/models/plugins/peertube-plugin.model'
 | 
			
		||||
import { PluginType } from '../../../shared/models/plugins/plugin.type'
 | 
			
		||||
import { RegisterServerSettingOptions } from '../../../shared/models/plugins/register-server-setting.model'
 | 
			
		||||
import { PeerTubePlugin, PluginType, RegisterServerSettingOptions } from '../../../shared/models'
 | 
			
		||||
import {
 | 
			
		||||
  isPluginDescriptionValid,
 | 
			
		||||
  isPluginHomepage,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
 | 
			
		||||
 | 
			
		||||
import 'mocha'
 | 
			
		||||
 | 
			
		||||
import { HttpStatusCode } from '@shared/core-utils'
 | 
			
		||||
import {
 | 
			
		||||
  checkBadCountPagination,
 | 
			
		||||
  checkBadSortPagination,
 | 
			
		||||
| 
						 | 
				
			
			@ -11,14 +11,14 @@ import {
 | 
			
		|||
  flushAndRunServer,
 | 
			
		||||
  immutableAssign,
 | 
			
		||||
  installPlugin,
 | 
			
		||||
  makeGetRequest, makePostBodyRequest, makePutBodyRequest,
 | 
			
		||||
  makeGetRequest,
 | 
			
		||||
  makePostBodyRequest,
 | 
			
		||||
  makePutBodyRequest,
 | 
			
		||||
  ServerInfo,
 | 
			
		||||
  setAccessTokensToServers,
 | 
			
		||||
  userLogin
 | 
			
		||||
} from '../../../../shared/extra-utils'
 | 
			
		||||
import { PluginType } from '../../../../shared/models/plugins/plugin.type'
 | 
			
		||||
import { PeerTubePlugin } from '../../../../shared/models/plugins/peertube-plugin.model'
 | 
			
		||||
import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
 | 
			
		||||
} from '@shared/extra-utils'
 | 
			
		||||
import { PeerTubePlugin, PluginType } from '@shared/models'
 | 
			
		||||
 | 
			
		||||
describe('Test server plugins API validators', function () {
 | 
			
		||||
  let server: ServerInfo
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,14 +28,8 @@ import {
 | 
			
		|||
  updatePluginSettings,
 | 
			
		||||
  wait,
 | 
			
		||||
  waitUntilLog
 | 
			
		||||
} from '../../../../shared/extra-utils'
 | 
			
		||||
import { PeerTubePluginIndex } from '../../../../shared/models/plugins/peertube-plugin-index.model'
 | 
			
		||||
import { PeerTubePlugin } from '../../../../shared/models/plugins/peertube-plugin.model'
 | 
			
		||||
import { PluginPackageJson } from '../../../../shared/models/plugins/plugin-package-json.model'
 | 
			
		||||
import { PluginType } from '../../../../shared/models/plugins/plugin.type'
 | 
			
		||||
import { PublicServerSetting } from '../../../../shared/models/plugins/public-server.setting'
 | 
			
		||||
import { ServerConfig } from '../../../../shared/models/server'
 | 
			
		||||
import { User } from '../../../../shared/models/users'
 | 
			
		||||
} from '@shared/extra-utils'
 | 
			
		||||
import { PeerTubePlugin, PeerTubePluginIndex, PluginPackageJson, PluginType, PublicServerSetting, ServerConfig, User } from '@shared/models'
 | 
			
		||||
 | 
			
		||||
const expect = chai.expect
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,10 +4,9 @@ import { registerTSPaths } from '../helpers/register-ts-paths'
 | 
			
		|||
registerTSPaths()
 | 
			
		||||
 | 
			
		||||
import * as program from 'commander'
 | 
			
		||||
import { PluginType } from '../../shared/models/plugins/plugin.type'
 | 
			
		||||
import { installPlugin, listPlugins, uninstallPlugin, updatePlugin } from '../../shared/extra-utils/server/plugins'
 | 
			
		||||
import { getAdminTokenOrDie, getServerCredentials } from './cli'
 | 
			
		||||
import { PeerTubePlugin } from '../../shared/models/plugins/peertube-plugin.model'
 | 
			
		||||
import { PeerTubePlugin, PluginType } from '../../shared/models'
 | 
			
		||||
import { isAbsolute } from 'path'
 | 
			
		||||
import * as CliTable3 from 'cli-table3'
 | 
			
		||||
import commander = require('commander')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,12 +4,12 @@ import { expect } from 'chai'
 | 
			
		|||
import { readJSON, writeJSON } from 'fs-extra'
 | 
			
		||||
import { join } from 'path'
 | 
			
		||||
import { RegisteredServerSettings } from '@shared/models'
 | 
			
		||||
import { PeertubePluginIndexList } from '../../models/plugins/peertube-plugin-index-list.model'
 | 
			
		||||
import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
 | 
			
		||||
import { PeertubePluginIndexList } from '../../models/plugins/plugin-index/peertube-plugin-index-list.model'
 | 
			
		||||
import { PluginType } from '../../models/plugins/plugin.type'
 | 
			
		||||
import { buildServerDirectory, root } from '../miscs/miscs'
 | 
			
		||||
import { makeGetRequest, makePostBodyRequest, makePutBodyRequest } from '../requests/requests'
 | 
			
		||||
import { ServerInfo } from './servers'
 | 
			
		||||
import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
 | 
			
		||||
 | 
			
		||||
function listPlugins (parameters: {
 | 
			
		||||
  url: string
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										6
									
								
								shared/models/plugins/client/index.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								shared/models/plugins/client/index.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
export * from './client-hook.model'
 | 
			
		||||
export * from './plugin-client-scope.type'
 | 
			
		||||
export * from './plugin-element-placeholder.type'
 | 
			
		||||
export * from './register-client-form-field.model'
 | 
			
		||||
export * from './register-client-hook.model'
 | 
			
		||||
export * from './register-client-settings-script.model'
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
import { RegisterServerSettingOptions } from "./register-server-setting.model"
 | 
			
		||||
import { RegisterServerSettingOptions } from '../server'
 | 
			
		||||
 | 
			
		||||
export interface RegisterClientSettingsScript {
 | 
			
		||||
  isSettingHidden (options: {
 | 
			
		||||
| 
						 | 
				
			
			@ -1,28 +1,6 @@
 | 
			
		|||
export * from './client-hook.model'
 | 
			
		||||
export * from './client'
 | 
			
		||||
export * from './plugin-index'
 | 
			
		||||
export * from './server'
 | 
			
		||||
export * from './hook-type.enum'
 | 
			
		||||
export * from './install-plugin.model'
 | 
			
		||||
export * from './manage-plugin.model'
 | 
			
		||||
export * from './peertube-plugin-index-list.model'
 | 
			
		||||
export * from './peertube-plugin-index.model'
 | 
			
		||||
export * from './peertube-plugin-latest-version.model'
 | 
			
		||||
export * from './peertube-plugin.model'
 | 
			
		||||
export * from './plugin-client-scope.type'
 | 
			
		||||
export * from './plugin-element-placeholder.type'
 | 
			
		||||
export * from './plugin-package-json.model'
 | 
			
		||||
export * from './plugin-playlist-privacy-manager.model'
 | 
			
		||||
export * from './plugin-settings-manager.model'
 | 
			
		||||
export * from './plugin-storage-manager.model'
 | 
			
		||||
export * from './plugin-transcoding-manager.model'
 | 
			
		||||
export * from './plugin-translation.model'
 | 
			
		||||
export * from './plugin-video-category-manager.model'
 | 
			
		||||
export * from './plugin-video-language-manager.model'
 | 
			
		||||
export * from './plugin-video-licence-manager.model'
 | 
			
		||||
export * from './plugin-video-privacy-manager.model'
 | 
			
		||||
export * from './plugin.type'
 | 
			
		||||
export * from './public-server.setting'
 | 
			
		||||
export * from './register-client-hook.model'
 | 
			
		||||
export * from './register-client-settings-script.model'
 | 
			
		||||
export * from './register-client-form-field.model'
 | 
			
		||||
export * from './register-server-hook.model'
 | 
			
		||||
export * from './register-server-setting.model'
 | 
			
		||||
export * from './server-hook.model'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										3
									
								
								shared/models/plugins/plugin-index/index.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								shared/models/plugins/plugin-index/index.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
export * from './peertube-plugin-index-list.model'
 | 
			
		||||
export * from './peertube-plugin-index.model'
 | 
			
		||||
export * from './peertube-plugin-latest-version.model'
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
import { PluginType } from './plugin.type'
 | 
			
		||||
import { PluginType } from '../plugin.type'
 | 
			
		||||
 | 
			
		||||
export interface PeertubePluginIndexList {
 | 
			
		||||
  start: number
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
import { PluginClientScope } from './plugin-client-scope.type'
 | 
			
		||||
import { PluginClientScope } from './client/plugin-client-scope.type'
 | 
			
		||||
 | 
			
		||||
export type PluginTranslationPaths = {
 | 
			
		||||
  [ locale: string ]: string
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										3
									
								
								shared/models/plugins/server/api/index.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								shared/models/plugins/server/api/index.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
export * from './install-plugin.model'
 | 
			
		||||
export * from './manage-plugin.model'
 | 
			
		||||
export * from './peertube-plugin.model'
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
import { PluginType } from './plugin.type'
 | 
			
		||||
import { PluginType } from '../../plugin.type'
 | 
			
		||||
 | 
			
		||||
export interface PeerTubePlugin {
 | 
			
		||||
  name: string
 | 
			
		||||
							
								
								
									
										6
									
								
								shared/models/plugins/server/index.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								shared/models/plugins/server/index.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
export * from './api'
 | 
			
		||||
export * from './managers'
 | 
			
		||||
export * from './settings'
 | 
			
		||||
export * from './plugin-translation.model'
 | 
			
		||||
export * from './register-server-hook.model'
 | 
			
		||||
export * from './server-hook.model'
 | 
			
		||||
							
								
								
									
										9
									
								
								shared/models/plugins/server/managers/index.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								shared/models/plugins/server/managers/index.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
 | 
			
		||||
export * from './plugin-playlist-privacy-manager.model'
 | 
			
		||||
export * from './plugin-settings-manager.model'
 | 
			
		||||
export * from './plugin-storage-manager.model'
 | 
			
		||||
export * from './plugin-transcoding-manager.model'
 | 
			
		||||
export * from './plugin-video-category-manager.model'
 | 
			
		||||
export * from './plugin-video-language-manager.model'
 | 
			
		||||
export * from './plugin-video-licence-manager.model'
 | 
			
		||||
export * from './plugin-video-privacy-manager.model'
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
import { VideoPlaylistPrivacy } from '../videos/playlist/video-playlist-privacy.model'
 | 
			
		||||
import { VideoPlaylistPrivacy } from '../../../videos/playlist/video-playlist-privacy.model'
 | 
			
		||||
 | 
			
		||||
export interface PluginPlaylistPrivacyManager {
 | 
			
		||||
  // PUBLIC = 1,
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
import { EncoderOptionsBuilder } from '../videos/video-transcoding.model'
 | 
			
		||||
import { EncoderOptionsBuilder } from '../../../videos/video-transcoding.model'
 | 
			
		||||
 | 
			
		||||
export interface PluginTranscodingManager {
 | 
			
		||||
  addLiveProfile (encoder: string, profile: string, builder: EncoderOptionsBuilder): boolean
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
import { VideoPrivacy } from '../videos/video-privacy.enum'
 | 
			
		||||
import { VideoPrivacy } from '../../../videos/video-privacy.enum'
 | 
			
		||||
 | 
			
		||||
export interface PluginVideoPrivacyManager {
 | 
			
		||||
  // PUBLIC = 1
 | 
			
		||||
							
								
								
									
										2
									
								
								shared/models/plugins/server/settings/index.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								shared/models/plugins/server/settings/index.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
export * from './public-server.setting'
 | 
			
		||||
export * from './register-server-setting.model'
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
import { RegisterClientFormFieldOptions } from './register-client-form-field.model'
 | 
			
		||||
import { RegisterClientFormFieldOptions } from '../../client'
 | 
			
		||||
 | 
			
		||||
export type RegisterServerSettingOptions = RegisterClientFormFieldOptions & {
 | 
			
		||||
  // If the setting is not private, anyone can view its value (client code included)
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue