{
	"name": "Moderation",
	"version": "1.5.30",
	"author": "Edward Chernenko",
	"url": "https://www.mediawiki.org/wiki/Extension:Moderation",
	"descriptionmsg": "moderation-desc",
	"license-name": "GPL-3.0+",
	"type": "antispam",
	"requires": {
		"MediaWiki": ">= 1.31.0"
	},
	"GroupPermissions": {
		"automoderated": {
			"skip-moderation": true,
			"skip-move-moderation": true
		},
		"moderator": {
			"moderation": true
		},
		"checkuser": {
			"moderation-checkuser": true
		},
		"bot": {
			"skip-moderation": true,
			"skip-move-moderation": true
		},
		"sysop": {
			"skip-moderation": true,
			"skip-move-moderation": true,
			"moderation": true
		}
	},
	"AddGroups": {
		"sysop": [
			"automoderated"
		]
	},
	"RemoveGroups": {
		"sysop": [
			"automoderated"
		]
	},
	"GrantPermissions": {
		"basic": {
			"skip-moderation": true
		}
	},
	"AvailableRights": [
		"moderation",
		"skip-moderation",
		"skip-move-moderation"
	],
	"SpecialPages": {
		"Moderation": "SpecialModeration"
	},
	"ActionFilteredLogs": {
		"moderation": {
			"approve": [
				"approve",
				"approveall",
				"approve-move"
			],
			"reject": [
				"reject",
				"rejectall"
			],
			"block": [
				"block",
				"unblock"
			],
			"merge": [
				"merge"
			]
		}
	},
	"APIModules": {
		"moderation": "ApiModeration"
	},
	"APIPropModules": {
		"moderationpreload": "ApiQueryModerationPreload"
	},
	"LogTypes": [
		"moderation"
	],
	"LogRestrictions": {
		"moderation": "moderation"
	},
	"LogActionsHandlers": {
		"moderation/*": "ModerationLogFormatter"
	},
	"MessagesDirs": {
		"Moderation": [
			"i18n",
			"api/i18n"
		]
	},
	"ExtensionMessagesFiles": {
		"ModerationAlias": "Moderation.alias.php"
	},
	"AutoloadClasses": {
		"ApiModeration": "api/ApiModeration.php",
		"ApiQueryModerationPreload": "api/ApiQueryModerationPreload.php",
		"MediaWiki\\Moderation\\ActionFactory": "action/ActionFactory.php",
		"MediaWiki\\Moderation\\ActionLinkRenderer": "util/ActionLinkRenderer.php",
		"MediaWiki\\Moderation\\AddLogEntryConsequence": "lib/consequence/AddLogEntryConsequence.php",
		"MediaWiki\\Moderation\\ApproveEditConsequence": "lib/consequence/ApproveEditConsequence.php",
		"MediaWiki\\Moderation\\ApproveMoveConsequence": "lib/consequence/ApproveMoveConsequence.php",
		"MediaWiki\\Moderation\\ApproveUploadConsequence": "lib/consequence/ApproveUploadConsequence.php",
		"MediaWiki\\Moderation\\BlockUserConsequence": "lib/consequence/BlockUserConsequence.php",
		"MediaWiki\\Moderation\\ConsequenceManager": "lib/consequence/manager/ConsequenceManager.php",
		"MediaWiki\\Moderation\\DeleteRowFromModerationTableConsequence": "lib/consequence/DeleteRowFromModerationTableConsequence.php",
		"MediaWiki\\Moderation\\EditFormOptions": "util/EditFormOptions.php",
		"MediaWiki\\Moderation\\EntryFactory": "lib/entry/EntryFactory.php",
		"MediaWiki\\Moderation\\ForgetAnonIdConsequence": "lib/consequence/ForgetAnonIdConsequence.php",
		"MediaWiki\\Moderation\\GiveAnonChangesToNewUserConsequence": "lib/consequence/GiveAnonChangesToNewUserConsequence.php",
		"MediaWiki\\Moderation\\IConsequence": "lib/consequence/IConsequence.php",
		"MediaWiki\\Moderation\\IConsequenceManager": "lib/consequence/manager/IConsequenceManager.php",
		"MediaWiki\\Moderation\\InsertRowIntoModerationTableConsequence": "lib/consequence/InsertRowIntoModerationTableConsequence.php",
		"MediaWiki\\Moderation\\InvalidatePendingTimeCacheConsequence": "lib/consequence/InvalidatePendingTimeCacheConsequence.php",
		"MediaWiki\\Moderation\\MarkAsConflictConsequence": "lib/consequence/MarkAsConflictConsequence.php",
		"MediaWiki\\Moderation\\MarkAsMergedConsequence": "lib/consequence/MarkAsMergedConsequence.php",
		"MediaWiki\\Moderation\\ModifyPendingChangeConsequence": "lib/consequence/ModifyPendingChangeConsequence.php",
		"MediaWiki\\Moderation\\PendingEdit": "lib/entry/PendingEdit.php",
		"MediaWiki\\Moderation\\QueueEditConsequence": "lib/consequence/QueueEditConsequence.php",
		"MediaWiki\\Moderation\\QueueMoveConsequence": "lib/consequence/QueueMoveConsequence.php",
		"MediaWiki\\Moderation\\QueueUploadConsequence": "lib/consequence/QueueUploadConsequence.php",
		"MediaWiki\\Moderation\\RejectAllConsequence": "lib/consequence/RejectAllConsequence.php",
		"MediaWiki\\Moderation\\RejectOneConsequence": "lib/consequence/RejectOneConsequence.php",
		"MediaWiki\\Moderation\\RememberAnonIdConsequence": "lib/consequence/RememberAnonIdConsequence.php",
		"MediaWiki\\Moderation\\RollbackResistantQuery": "util/RollbackResistantQuery.php",
		"MediaWiki\\Moderation\\SendNotificationEmailConsequence": "lib/consequence/SendNotificationEmailConsequence.php",
		"MediaWiki\\Moderation\\TagRevisionAsMergedConsequence": "lib/consequence/TagRevisionAsMergedConsequence.php",
		"MediaWiki\\Moderation\\TimestampFormatter": "util/TimestampFormatter.php",
		"MediaWiki\\Moderation\\UnblockUserConsequence": "lib/consequence/UnblockUserConsequence.php",
		"MediaWiki\\Moderation\\WatchOrUnwatchConsequence": "lib/consequence/WatchOrUnwatchConsequence.php",
		"ModerationAction": "action/ModerationAction.php",
		"ModerationActionApprove": "action/ModerationActionApprove.php",
		"ModerationActionBlock": "action/ModerationActionBlock.php",
		"ModerationActionEditChange": "action/review/ModerationActionEditChange.php",
		"ModerationActionEditChangeSubmit": "action/review/ModerationActionEditChangeSubmit.php",
		"ModerationActionMerge": "action/ModerationActionMerge.php",
		"ModerationActionPreview": "action/review/ModerationActionPreview.php",
		"ModerationActionReject": "action/ModerationActionReject.php",
		"ModerationActionShow": "action/ModerationActionShow.php",
		"ModerationActionShowImage": "action/ModerationActionShowImage.php",
		"ModerationAjaxHook": "util/ModerationAjaxHook.php",
		"ModerationApiHooks": "hooks/ModerationApiHooks.php",
		"ModerationApprovableEntry": "lib/entry/ModerationApprovableEntry.php",
		"ModerationApproveHook": "hooks/ModerationApproveHook.php",
		"ModerationBlockCheck": "util/ModerationBlockCheck.php",
		"ModerationCanSkip": "util/ModerationCanSkip.php",
		"ModerationCompatTools": "util/ModerationCompatTools.php",
		"ModerationEditHooks": "hooks/ModerationEditHooks.php",
		"ModerationEditChangePage": "action/review/ModerationEditChangePage.php",
		"ModerationEntryEdit": "lib/entry/ModerationEntryEdit.php",
		"ModerationEntryFormatter": "lib/entry/ModerationEntryFormatter.php",
		"ModerationEntry": "lib/entry/ModerationEntry.php",
		"ModerationEntryMove": "lib/entry/ModerationEntryMove.php",
		"ModerationEntryUpload": "lib/entry/ModerationEntryUpload.php",
		"ModerationError": "lib/exception/ModerationError.php",
		"ModerationLogFormatter": "ModerationLogFormatter.php",
		"ModerationMoveHooks": "hooks/ModerationMoveHooks.php",
		"ModerationNewChange": "lib/ModerationNewChange.php",
		"ModerationNotifyModerator": "hooks/ModerationNotifyModerator.php",
		"ModerationPageForms": "plugins/ModerationPageForms.php",
		"ModerationPlugins": "plugins/ModerationPlugins.php",
		"ModerationPreload": "hooks/ModerationPreload.php",
		"ModerationQueuedSuccessException": "lib/exception/ModerationQueuedSuccessException.php",
		"ModerationUpdater": "hooks/ModerationUpdater.php",
		"ModerationUploadHooks": "hooks/ModerationUploadHooks.php",
		"ModerationUploadStorage": "lib/ModerationUploadStorage.php",
		"ModerationVersionCheck": "util/ModerationVersionCheck.php",
		"ModerationViewableEntry": "lib/entry/ModerationViewableEntry.php",
		"SpecialModeration": "SpecialModeration.php"
	},
	"ResourceModules": {
		"ext.moderation.ajaxhook": {
			"scripts": "ext.moderation.ajaxhook.js",
			"targets": [
				"desktop",
				"mobile"
			]
		},
		"ext.moderation.edit": {
			"styles": "ext.moderation.edit.css"
		},
		"ext.moderation.mf.notify": {
			"scripts": [
				"mobilefrontend/notify.mf.js"
			],
			"styles": [
				"mobilefrontend/notify.mf.css"
			],
			"targets": [
				"mobile"
			],
			"dependencies": [
				"mediawiki.notification",
				"ext.moderation.ajaxhook",
				"mobile.startup"
			],
			"messages": [
				"mobile-frontend-editor-success-new-page",
				"mobile-frontend-editor-success-landmark-1",
				"mobile-frontend-editor-success"
			]
		},
		"ext.moderation.mf.preload31": {
			"scripts": [
				"mobilefrontend/preload31.mf.js"
			],
			"targets": [
				"mobile"
			],
			"dependencies": [
				"mediawiki.api",
				"mediawiki.util",
				"mobile.editor.api"
			]
		},
		"ext.moderation.mf.preload33": {
			"scripts": [
				"mobilefrontend/preload33.mf.js"
			],
			"targets": [
				"mobile"
			],
			"dependencies": [
				"mediawiki.api",
				"mediawiki.Uri"
			]
		},
		"ext.moderation.notify": {
			"scripts": "ext.moderation.notify.js",
			"styles": "ext.moderation.notify.css",
			"dependencies": [
				"jquery.cookie",
				"mediawiki.jqueryMsg",
				"mediawiki.user",
				"mediawiki.Uri",
				"mediawiki.util"
			],
			"messages": [
				"moderation-edit-queued",
				"moderation-pending-review",
				"moderation-suggest-signup"
			],
			"targets": [
				"desktop",
				"mobile"
			]
		},
		"ext.moderation.notify.desktop": {
			"scripts": "ext.moderation.notify.desktop.js",
			"styles": "ext.moderation.notify.desktop.css",
			"targets": [
				"desktop"
			]
		},
		"ext.moderation.special.ajax": {
			"scripts": "ext.moderation.special.ajax.js",
			"styles": "ext.moderation.special.ajax.css",
			"dependencies": [
				"mediawiki.api",
				"mediawiki.Uri"
			],
			"messages": [
				"moderation-block",
				"moderation-unblock"
			]
		},
		"ext.moderation.special.css": {
			"styles": "ext.moderation.special.css"
		},
		"ext.moderation.ve": {
			"scripts": [
				"visualeditor/ajaxhook.ve.js",
				"visualeditor/preload.ve.js"
			],
			"targets": [
				"desktop"
			],
			"dependencies": [
				"mediawiki.api",
				"ext.visualEditor.targetLoader",
				"ext.moderation.ajaxhook"
			]
		}
	},
	"ResourceFileModulePaths": {
		"localBasePath": "modules",
		"remoteExtPath": "Moderation/modules"
	},
	"Hooks": {
		"AlternateEdit": "ModerationPreload::onAlternateEdit",
		"ApiBeforeMain": "ModerationApiHooks::onApiBeforeMain",
		"ApiCheckCanExecute": "ModerationApiHooks::onApiCheckCanExecute",
		"BeforeInitialize": "ModerationPlugins::install",
		"BeforePageDisplay": "ModerationEditHooks::onBeforePageDisplay",
		"CheckUserInsertForRecentChange": "ModerationApproveHook::onCheckUserInsertForRecentChange",
		"EditFilter": "MediaWiki\\Moderation\\EditFormOptions::onEditFilter",
		"EditFormInitialText": "ModerationPreload::onEditFormInitialText",
		"EditFormPreloadText": "ModerationPreload::onEditFormPreloadText",
		"EditPage::showEditForm:fields": "ModerationEditHooks::prepareEditForm",
		"FileUpload": "ModerationApproveHook::onFileUpload",
		"getUserPermissionsErrors": "ModerationUploadHooks::ongetUserPermissionsErrors",
		"LoadExtensionSchemaUpdates": "ModerationUpdater::onLoadExtensionSchemaUpdates",
		"ListDefinedTags": "ModerationEditHooks::onListDefinedTags",
		"LocalUserCreated": "ModerationPreload::onLocalUserCreated",
		"MovePageCheckPermissions": "ModerationMoveHooks::onMovePageCheckPermissions",
		"PageContentSave": "ModerationEditHooks::onPageContentSave",
		"PageSaveComplete": [
			"ModerationApproveHook::onPageSaveComplete",
			"ModerationEditHooks::onPageSaveComplete"
		],
		"PageForms::EditFormInitialText": "ModerationPageForms::preloadText",
		"PageForms::EditFormPreloadText": "ModerationPageForms::preloadText",
		"PageMoveComplete": "ModerationApproveHook::onPageMoveComplete",
		"RecentChange_save": "ModerationApproveHook::onRecentChange_save",
		"RevisionFromEditComplete": "ModerationApproveHook::onRevisionFromEditComplete",
		"SpecialPageBeforeExecute": "MediaWiki\\Moderation\\EditFormOptions::onSpecialPageBeforeExecute",
		"UploadVerifyUpload": "ModerationUploadHooks::onUploadVerifyUpload",
		"wgQueryPages": "ModerationApiHooks::onwgQueryPages"
	},
	"ExtensionFunctions": [
		"ModerationCompatTools::installCompatHooks"
	],
	"config": {
		"ModerationEnable": {
			"value": true,
			"description": "If false, new edits are applied as usual (not sent to moderation)."
		},
		"ModerationTimeToOverrideRejection": {
			"value": 1209600,
			"description": "Time (in seconds) after which rejected edit could no longer be approved."
		},
		"ModerationPreviewLink": {
			"value": false,
			"description": "If true, Preview link is shown for pending edits. Normally you shouldn't enable this (when following Best Practices, approval/rejection depends on content, not formatting)."
		},
		"ModerationNotificationEnable": {
			"value": false,
			"description": "If true, administrator is notified of new changes that await moderation."
		},
		"ModerationNotificationNewOnly": {
			"value": false,
			"description": "If true, only notify about new pages, not all edits."
		},
		"ModerationEmail": {
			"value": "",
			"description": "Email address to send notifications to."
		},
		"ModerationUseAjax":  {
			"value": false,
			"description": "Experimental: if true, enable Ajax handling of links on Special:Moderation."
		},
		"ModerationOnlyInNamespaces":  {
			"value": [],
			"description": "If set to an array of namespace numbers (e.g. NS_MAIN, NS_FILE), moderation is only enabled in these namespaces (edits in other namespaces will bypass moderation). Default (empty array): moderation is enabled everywhere."
		},
		"ModerationIgnoredInNamespaces":  {
			"value": [],
			"description": "If set to an array of namespace numbers (e.g. NS_MAIN, NS_FILE), non-automoderated users can bypass moderation in these namespaces. Default (empty array): moderation can't be bypassed anywhere."
		},
		"ModerationEnableEditChange":  {
			"value": false,
			"description": "If true, moderators are allowed to edit pending changes before approving. DANGEROUS: moderator can accidentally delete the text of pending change. Enable this only when you use Moderation for pre-publish review."
		}
	},
	"ServiceWiringFiles": [
		"hooks/ServiceWiring.php"
	],
	"manifest_version": 2
}
