{"master":{"name":"GrowthExperiments","descriptionmsg":"growthexperiments-desc","license-name":"GPL-3.0-or-later","author":["Stephane Bisson","Kosta Harlan","Roan Kattouw","Gerg\u0151 Tisza","Martin Urbanec","Mew Ophaswongse","Sergio Gimeno","Kayla Morgan","Viviana Yanez"],"url":"https:\/\/www.mediawiki.org\/wiki\/Extension:GrowthExperiments","requires":{"MediaWiki":">= 1.47.0","extensions":{"CommunityConfiguration":"*","VisualEditor":"*"}},"ExtensionMessagesFiles":{"GrowthExperimentsAlias":"GrowthExperiments.alias.php","GrowthExperimentsMagic":"GrowthExperiments.i18n.magic.php"},"ServiceWiringFiles":["ServiceWiring.php"],"ConfigRegistry":{"GrowthExperiments":"MediaWiki\\Config\\GlobalVarConfig::newInstance"},"JobClasses":{"newcomerTasksCacheRefreshJob":{"needsPage":false,"class":"GrowthExperiments\\NewcomerTasks\\TaskSuggester\\NewcomerTasksCacheRefreshJob","services":["UserIdentityLookup","GrowthExperimentsNewcomerTasksUserOptionsLookup","GrowthExperimentsTaskSuggesterFactory"]},"setUserMentorDatabaseJob":{"needsPage":false,"class":"GrowthExperiments\\Mentorship\\Store\\SetUserMentorDatabaseJob","services":["UserIdentityLookup","GrowthExperimentsMentorStoreDatabase"]},"reassignMenteesJob":{"needsPage":false,"class":"GrowthExperiments\\Mentorship\\ReassignMenteesJob","services":["MainConfig","UserIdentityLookup","GrowthExperimentsMentorStore","GrowthExperimentsReassignMenteesFactory"]},"menteeOverviewUpdateDataForMentor":{"needsPage":false,"class":"GrowthExperiments\\MentorDashboard\\MenteeOverview\\MenteeOverviewUpdateDataForMentorJob","services":["UserIdentityLookup","GrowthExperimentsMenteeOverviewDataUpdater"]},"refreshUserImpactJob":{"needsPage":false,"class":"GrowthExperiments\\UserImpact\\RefreshUserImpactJob","services":["UserIdentityLookup","UserFactory","GrowthExperimentsUserImpactStore","GrowthExperimentsUserImpactLookup","GrowthExperimentsUserImpactFormatter"]},"notificationKeepGoingJob":{"class":"GrowthExperiments\\LevelingUp\\NotificationKeepGoingJob","services":["StatsFactory","UserIdentityLookup","SpecialPageFactory","GrowthExperimentsLevelingUpManager"]},"notificationGetStartedJob":{"class":"GrowthExperiments\\LevelingUp\\NotificationGetStartedJob","services":["StatsFactory","UserIdentityLookup","SpecialPageFactory","GrowthExperimentsLevelingUpManager"]},"notificationReEngageJob":{"class":"GrowthExperiments\\LevelingUp\\NotificationReEngageJob","services":["StatsFactory","UserIdentityLookup","SpecialPageFactory","GrowthExperimentsLevelingUpManager"]}},"APIModules":{"helppanelquestionposter":{"class":"GrowthExperiments\\Api\\ApiHelpPanelPostQuestion","services":["GrowthExperimentsQuestionPosterFactory"]},"homepagequestionstore":"GrowthExperiments\\Api\\ApiQuestionStore","growthsetmentor":{"class":"GrowthExperiments\\Api\\ApiSetMentor","services":["GrowthExperimentsMentorManager","GrowthExperimentsMentorProvider","GrowthExperimentsChangeMentorFactory","UserIdentityUtils"]},"growthstarmentee":{"class":"GrowthExperiments\\Api\\ApiStarMentee","services":["GrowthExperimentsStarredMenteesStore"]},"growthsetmenteestatus":{"class":"GrowthExperiments\\Api\\ApiSetMenteeStatus","services":["GrowthExperimentsCommunityConfig","GrowthExperimentsMentorManager"]},"growthmanagementorlist":{"class":"GrowthExperiments\\Api\\ApiManageMentorList","services":["GrowthExperimentsMentorProvider","GrowthExperimentsMentorWriter","GrowthExperimentsMentorStatusManager"]},"growthmentordashboardupdatedata":{"class":"GrowthExperiments\\Api\\ApiMentorDashboardUpdateData","services":["GrowthExperimentsMentorProvider","JobQueueGroup"]},"growthinvalidatepersonalizedpraisesuggestion":{"class":"GrowthExperiments\\Api\\ApiInvalidatePersonalizedPraiseSuggestion","services":["GrowthExperimentsMentorProvider","GrowthExperimentsMentorStore","GrowthExperimentsPraiseworthyMenteeSuggester","GrowthExperimentsPersonalizedPraiseLogger"]},"growthinvalidateimagerecommendation":{"class":"GrowthExperiments\\Api\\ApiInvalidateImageRecommendation","services":["GrowthExperimentsNewcomerTasksConfigurationLoader","GrowthExperimentsAddImageSubmissionHandler","TitleFactory","GrowthExperimentsFeatureManager"]},"growthinvalidaterevisetonerecommendation":{"class":"GrowthExperiments\\Api\\ApiInvalidateReviseToneRecommendation","services":["GrowthExperimentsReviseToneWeightedTagManager","TitleFactory"]}},"APIPropModules":{"growthimagesuggestiondata":{"class":"GrowthExperiments\\Api\\ApiQueryImageSuggestionData","services":["GrowthExperimentsImageRecommendationProvider","GrowthExperimentsNewcomerTasksConfigurationLoader","MainConfig","TitleFactory","GrowthExperimentsFeatureManager"]}},"APIListModules":{"growthtasks":{"class":"GrowthExperiments\\Api\\ApiQueryGrowthTasks","services":["JobQueueGroup","GrowthExperimentsTaskSuggesterFactory","GrowthExperimentsNewcomerTasksConfigurationLoader","GrowthExperimentsLinkRecommendationFilter","GrowthExperimentsImageRecommendationFilter","GrowthExperimentsProtectionFilter","GrowthExperimentsTopicRegistry","GrowthExperimentsFeatureManager"]},"growthstarredmentees":{"class":"GrowthExperiments\\Api\\ApiQueryStarredMentees","services":["GrowthExperimentsStarredMenteesStore"]},"growthmentormentee":{"class":"GrowthExperiments\\Api\\ApiQueryMentorMentee","services":["GrowthExperimentsMentorStore"]},"growthmentorlist":{"class":"GrowthExperiments\\Api\\ApiQueryMentorList","services":["GrowthExperimentsMentorProvider"]}},"APIMetaModules":{"growthmentorstatus":{"class":"GrowthExperiments\\Api\\ApiQueryMentorStatus","services":["GrowthExperimentsMentorProvider","GrowthExperimentsMentorStatusManager"]},"growthmenteestatus":{"class":"GrowthExperiments\\Api\\ApiQueryMenteeStatus","services":["GrowthExperimentsMentorManager"]},"growthnextsuggestedtasktype":{"class":"GrowthExperiments\\Api\\ApiQueryNextSuggestedTaskType","services":["GrowthExperimentsNewcomerTasksConfigurationLoader","GrowthExperimentsLevelingUpManager","GrowthExperimentsUserImpactLookup","GrowthExperimentsTaskTypeManager","GrowthExperimentsFeatureManager"]}},"RestModuleFiles":["includes\/Rest\/growthexperiments.v0.json"],"HookHandlers":{"communityconfig":{"class":"GrowthExperiments\\Config\\CommunityConfigurationHooks","services":["MainConfig"]},"config":{"class":"GrowthExperiments\\Config\\ConfigHooks"},"earlylifecycle":{"class":"GrowthExperiments\\EarlyLifeCycleHooks","services":["UserOptionsLookup"]},"helppanel":{"class":"GrowthExperiments\\HelpPanelHooks","services":["MainConfig","GrowthExperimentsCommunityConfig","GenderCache","UserEditTracker","UserOptionsManager","GrowthExperimentsMentorManager","GrowthExperimentsMentorStatusManager","GrowthExperimentsHelpPanel"]},"homepage":{"class":"GrowthExperiments\\HomepageHooks","services":["MainConfig","UserOptionsManager","UserOptionsLookup","UserIdentityUtils","NamespaceInfo","TitleFactory","StatsFactory","JobQueueGroup","FormatterFactory","GrowthExperimentsNewcomerTasksConfigurationLoader","GrowthExperimentsCampaignConfig","GrowthExperimentsExperimentUserManager","GrowthExperimentsTaskTypeHandlerRegistry","GrowthExperimentsTaskSuggesterFactory","GrowthExperimentsNewcomerTasksUserOptionsLookup","SpecialPageFactory","GrowthExperimentsNewcomerTasksChangeTagsManager","GrowthExperimentsUserImpactLookup_Computed","GrowthExperimentsUserImpactStore","GrowthExperimentsTaskTypeManager","GrowthExperimentsLevelingUpManager","GrowthExperimentsFeatureManager"]},"impact":{"class":"GrowthExperiments\\ImpactHooks","services":["GrowthExperimentsUserImpactUpdater","UserFactory"]},"levelingup":{"class":"GrowthExperiments\\LevelingUp\\LevelingUpHooks","services":["MainConfig","GrowthExperimentsNewcomerTasksConfigurationLoader","GrowthExperimentsLevelingUpManager","GrowthExperimentsFeatureManager"]},"mediawikiservices":{"class":"GrowthExperiments\\MediaWikiServicesHooks"},"mentor":{"class":"GrowthExperiments\\Mentorship\\Hooks\\MentorHooks","services":["GrowthExperimentsCommunityConfig","UserIdentityLookup","GenderCache","GrowthExperimentsMentorManager","GrowthExperimentsMentorProvider","GrowthExperimentsMentorStore","UserRegistrationLookup"]},"mentordashboard":{"class":"GrowthExperiments\\MentorDashboard\\MentorDashboardHooks"},"mentordashboarddiscovery":{"class":"GrowthExperiments\\MentorDashboard\\MentorDashboardDiscoveryHooks","services":["GrowthExperimentsMentorProvider","UserOptionsLookup"]},"mentorfilters":{"class":"GrowthExperiments\\Mentorship\\Hooks\\MentorFilterHooks","services":["GrowthExperimentsMentorStore","GrowthExperimentsStarredMenteesStore","GrowthExperimentsMentorProvider"]},"mentoruseroptions":{"class":"GrowthExperiments\\Mentorship\\Hooks\\MentorUserOptionsHooks"},"parserfunctions":{"class":"GrowthExperiments\\ParserFunctionsHooks"},"personalizedpraise":{"class":"GrowthExperiments\\MentorDashboard\\PersonalizedPraise\\PersonalizedPraiseHooks","services":["GrowthExperimentsConfig","GrowthExperimentsMentorManager","GrowthExperimentsUserImpactLookup","GrowthExperimentsPraiseworthyConditionsLookup","GrowthExperimentsPraiseworthyMenteeSuggester"]},"schema":{"class":"GrowthExperiments\\SchemaHooks"},"tour":{"class":"GrowthExperiments\\TourHooks","services":["UserOptionsLookup"]},"variant":{"class":"GrowthExperiments\\VariantHooks","services":["UserOptionsManager","GrowthExperimentsCampaignConfig","SpecialPageFactory","GrowthExperimentsExperimentUserManager","GrowthExperimentsCampaignLoader","GrowthExperimentsFeatureManager"]},"visualeditor":{"class":"GrowthExperiments\\VisualEditorHooks","services":["TitleFactory","GrowthExperimentsNewcomerTasksConfigurationLoader","GrowthExperimentsTaskTypeHandlerRegistry","StatsFactory","UserIdentityUtils","FormatterFactory"]},"welcomeSurvey":{"class":"GrowthExperiments\\WelcomeSurveyHooks","services":["MainConfig","TitleFactory","SpecialPageFactory","GrowthExperimentsWelcomeSurveyFactory","GrowthExperimentsCampaignConfig","GrowthExperimentsCampaignLoader"]},"confirmEmail":{"class":"GrowthExperiments\\ConfirmEmailHooks","services":["TitleFactory","GrowthExperimentsFeatureManager","MainConfig","GrowthExperimentsExperimentUserManager","StatsFactory"]}},"Hooks":{"APIGetAllowedParams":"visualeditor","AuthChangeFormFields":["confirmEmail","variant","mentor"],"BeforeCreateEchoEvent":["GrowthExperiments\\Mentorship\\Hooks\\MentorHooks::onBeforeCreateEchoEvent","GrowthExperiments\\LevelingUp\\LevelingUpHooks::onBeforeCreateEchoEvent"],"BeforePageDisplay":["helppanel","homepage","levelingup","mentordashboarddiscovery","tour","welcomeSurvey","mentor"],"BlockIpComplete":["mentor"],"CentralAuthPostLoginRedirect":["welcomeSurvey"],"ChangesListSpecialPageStructuredFilters":"mentorfilters","ChangeTagsListActive":["helppanel","homepage","mentor"],"CirrusSearchAddQueryFeatures":"GrowthExperiments\\HomepageHooks::onCirrusSearchAddQueryFeatures","CirrusSearchScoreBuilder":"homepage","ConfirmEmailComplete":"homepage","ContributeCards":"homepage","CommunityConfigurationSchemaBeforeEditor":"communityconfig","CommunityConfigurationProvider_initList":"communityconfig","FormatAutocomments":["homepage","mentor"],"GetPreferences":["helppanel","homepage","mentordashboard","mentoruseroptions","personalizedpraise","tour","variant","welcomeSurvey"],"ListDefinedTags":["helppanel","homepage","mentor"],"LoadExtensionSchemaUpdates":"schema","AuthPreserveQueryParams":"confirmEmail","LocalUserCreated":["confirmEmail","helppanel","homepage","mentor","variant","welcomeSurvey"],"ManualLogEntryBeforePublish":["impact"],"MediaWikiServices":"mediawikiservices","MessageCacheFetchOverrides":"earlylifecycle","ParserFirstCallInit":"parserfunctions","PostLoginRedirect":["variant","welcomeSurvey"],"RecentChange_save":"homepage","RenameUserComplete":["mentor"],"ResourceLoaderExcludeUserOptions":["helppanel","homepage","mentordashboard","mentoruseroptions","variant"],"ResourceLoaderGetConfigVars":"variant","ResourceLoaderRegisterModules":"tour","SpecialContributionsBeforeMainOutput":"homepage","SidebarBeforeOutput":"homepage","SiteNoticeAfter":"homepage","SkinAddFooterLinks":"variant","SkinMinervaOptionsInit":["GrowthExperiments\\HomepageHooks::onSkinMinervaOptionsInit"],"SkinTemplateNavigation::Universal":["homepage","mentordashboarddiscovery"],"SpecialCreateAccountBenefits":"variant","SpecialPage_initList":["config","homepage","welcomeSurvey"],"SpecialPageBeforeExecute":["variant","welcomeSurvey"],"UserGetDefaultOptions":["helppanel","homepage","mentordashboard","mentoruseroptions","personalizedpraise","tour","levelingup"],"UserGetRights":"mentor","VisualEditorApiVisualEditorEditPreSave":"visualeditor","VisualEditorApiVisualEditorEditPostSave":["levelingup","visualeditor"],"WikimediaEventsShouldSchemaEditAttemptStepOversample":["GrowthExperiments\\HomepageHooks::onWikimediaEventsShouldSchemaEditAttemptStepOversample"]},"DomainEventIngresses":[{"events":["PageLatestRevisionChanged"],"class":"GrowthExperiments\\Mentorship\\MediaWikiEventIngress\\PageLatestRevisionChangedIngress","services":["GrowthExperimentsMentorStore","GrowthExperimentsMenteeGraduation"]},{"events":["PageLatestRevisionChanged"],"class":"GrowthExperiments\\NewcomerTasks\\MediaWikiEventIngress\\PageLatestRevisionChangedIngress","services":["ChangeTagsStore","ConnectionProvider","StatsFactory","GrowthExperimentsLinkRecommendationHelper","GrowthExperimentsFeatureManager"]},{"events":["PageLatestRevisionChanged"],"class":"GrowthExperiments\\UserImpact\\MediaWikiEventIngress\\PageLatestRevisionChangedIngress","services":["GrowthExperimentsUserImpactUpdater"]},{"events":["PageLatestRevisionChanged"],"class":"GrowthExperiments\\MentorDashboard\\PersonalizedPraise\\MediaWikiEventIngress\\PageLatestRevisionChangedIngress","services":["GrowthExperimentsConfig","UserIdentityUtils","GrowthExperimentsMentorManager","GrowthExperimentsUserImpactLookup","GrowthExperimentsPraiseworthyConditionsLookup","GrowthExperimentsPraiseworthyMenteeSuggester"]},{"events":["PageLatestRevisionChanged"],"class":"GrowthExperiments\\NewcomerTasks\\MediaWikiEventIngress\\NewcomerMilestoneIngress","services":["UserEditTracker","GrowthExperimentsNewcomerTasksConfigurationLoader","GrowthExperimentsNewcomerTasksUserOptionsLookup","GrowthExperimentsUserImpactLookup_Computed","MainConfig"]}],"attributes":{"EventLogging":{"Schemas":{"HelpPanel":"\/analytics\/legacy\/helppanel\/1.4.1","HomepageModule":"\/analytics\/legacy\/homepagemodule\/1.6.7","NewcomerTask":"\/analytics\/legacy\/newcomertask\/1.2.0","HomepageVisit":"\/analytics\/legacy\/homepagevisit\/1.6.2"}},"CirrusSearch":{"RescoreProfiles":{"growth_underlinked":{"i18n_msg":"growthexperiments-underlinked-rescore-profile","supported_namespaces":"content","fallback_profile":"classic_noboostlinks","rescore":[{"window":8192,"window_size_override":"CirrusSearchFunctionRescoreWindowSize","query_weight":"1.0","rescore_query_weight":"1.0","score_mode":"multiply","type":"function_score","function_chain":"growth_underlinked_chain"}]}},"RescoreFunctionScoreChains":{"growth_underlinked_chain":{"functions":[{"type":"growth_underlinked"}]}}},"CommunityConfiguration":{"ProviderClasses":{"GrowthSuggestedEdits":{"class":"GrowthExperiments\\Config\\Providers\\SuggestedEditsConfigProvider","services":[]},"GrowthMentorList":{"class":"GrowthExperiments\\Config\\Providers\\MentorListConfigProvider"}},"Validators":{"GrowthMentorship":{"class":"GrowthExperiments\\Config\\Validation\\CommunityStructuredMentorListValidator"}},"Providers":{"HelpPanel":{"store":{"type":"wikipage","args":["MediaWiki:GrowthExperimentsHelpPanel.json"]},"validator":{"type":"jsonschema","args":["GrowthExperiments\\Config\\Schemas\\HelpPanelSchema"]},"type":"mw-config","options":{"helpURL":"https:\/\/www.mediawiki.org\/wiki\/Special:MyLanguage\/Growth\/Feature_summary#Help_panel"}},"Mentorship":{"store":{"type":"wikipage","args":["MediaWiki:GrowthExperimentsMentorship.json"]},"validator":{"type":"jsonschema","args":["GrowthExperiments\\Config\\Schemas\\MentorshipSchema"]},"type":"mw-config","options":{"helpPage":"Help:Growth\/Mentorship"}},"GrowthHomepage":{"store":{"type":"wikipage","args":["MediaWiki:GrowthExperimentsHomepage.json"]},"validator":{"type":"jsonschema","args":["GrowthExperiments\\Config\\Schemas\\HomepageSchema"]},"type":"mw-config","options":{"helpURL":"https:\/\/www.mediawiki.org\/wiki\/Special:MyLanguage\/Growth\/Feature_summary#Newcomer_homepage"}},"GrowthSuggestedEdits":{"store":{"type":"wikipage","args":["MediaWiki:GrowthExperimentsSuggestedEdits.json"]},"validator":{"type":"jsonschema","args":["GrowthExperiments\\Config\\Schemas\\SuggestedEditsSchema"]},"type":"GrowthSuggestedEdits","options":{"helpPage":"Help:Growth\/Tools\/Suggested_edits"}},"GrowthMentorList":{"store":{"type":"wikipage","args":["MediaWiki:GrowthMentors.json"],"options":{"extraTags":["mentor list change"]}},"validator":{"type":"jsonschema","args":["GrowthExperiments\\Config\\Schemas\\MentorListSchema"]},"type":"GrowthMentorList","options":{"excludeFromUI":true}}}}},"ForeignResourcesDir":"modules\/lib","QUnitTestModule":{"localBasePath":"","remoteExtPath":"GrowthExperiments","packageFiles":["tests\/qunit\/index.js","modules\/utils\/Utils.js","tests\/qunit\/utils\/Utils.test.js","modules\/ext.growthExperiments.Homepage.SuggestedEdits\/NewcomerTaskLogger.js","tests\/qunit\/ext.growthExperiments.Homepage.SuggestedEdits\/NewcomerTaskLogger.test.js","modules\/utils\/HelpPanelLogger.js","tests\/qunit\/ext.growthExperiments.Help\/HelpPanelLogger.test.js","modules\/ext.growthExperiments.Help\/HelpPanelProcessDialog.js","modules\/ext.growthExperiments.Help\/HelpPanelSearchWidget.js","modules\/ext.growthExperiments.Help\/HelpPanelProcessDialog.SuggestedEditsPanel.js","modules\/ui-components\/SuggestedEditsPeek.js","modules\/ext.growthExperiments.Help\/QuickStartTips.js","modules\/ext.growthExperiments.Help\/QuickStartTipsTabPanelLayout.js","modules\/ext.growthExperiments.Help\/HelpPanelHomeButtonWidget.js","modules\/ext.growthExperiments.DataStore\/TaskTypesAbFilter.js","tests\/qunit\/ext.growthExperiments.Help\/HelpPanelProcessDialog.test.js","modules\/ext.growthExperiments.Help\/HelpPanelProcessDialog.SwitchEditorPanel.js","tests\/qunit\/ext.growthExperiments.Help\/HelpPanelProcessDialog.SwitchEditorPanel.test.js","modules\/ext.growthExperiments.Help\/AskHelpPanel.js","tests\/qunit\/ext.growthExperiments.Help\/AskHelpPanel.test.js","modules\/ext.growthExperiments.Homepage.SuggestedEdits\/PagerWidget.js","tests\/qunit\/ext.growthExperiments.Homepage.SuggestedEdits\/PagerWidget.test.js","tests\/qunit\/ext.growthExperiments.Homepage.SuggestedEdits\/ErrorCardWidget.test.js","modules\/ext.growthExperiments.StructuredTask\/addlink\/AddLinkArticleTarget.js","modules\/ext.growthExperiments.StructuredTask\/addlink\/LinkSuggestionInteractionLogger.js","modules\/ext.growthExperiments.StructuredTask\/StructuredTaskLogger.js","tests\/qunit\/ext.growthExperiments.StructuredTask\/addlink\/AddLinkArticleTarget.test.js","tests\/qunit\/ext.growthExperiments.StructuredTask\/addlink\/dataprovider.json","modules\/ext.growthExperiments.StructuredTask\/addimage\/AddImageUtils.js","tests\/qunit\/ext.growthExperiments.StructuredTask\/addimage\/AddImageUtils.test.js","modules\/ext.growthExperiments.StructuredTask\/addimage\/ImageSuggestionInteractionLogger.js","tests\/qunit\/ext.growthExperiments.PostEdit\/PostEditPanel.test.js","tests\/qunit\/ext.growthExperiments.PostEdit\/PostEditToastMessage.test.js","tests\/qunit\/ext.growthExperiments.PostEdit\/PostEditDrawer.test.js","modules\/ext.growthExperiments.Homepage.SuggestedEdits\/SmallTaskCard.js","modules\/utils\/IconUtils.js","modules\/ext.growthExperiments.Homepage.SuggestedEdits\/NewcomerTaskLogger.js","modules\/utils\/HelpPanelLogger.js","tests\/qunit\/ext.growthExperiments.StructuredTask\/StructuredTaskLogger.test.js","modules\/ext.growthExperiments.Homepage.mobile\/index.js","modules\/ext.growthExperiments.Homepage.mobile\/TaskPreviewWidget.js","modules\/ext.growthExperiments.Homepage.mobile\/MobileNoTasksWidget.js","modules\/ext.growthExperiments.Homepage.mobile\/SuggestedEditsMobileSummary.js","tests\/qunit\/ext.growthExperiments.Homepage.mobile\/SuggestedEditsMobileSummary.test.js","modules\/ext.growthExperiments.DataStore\/constants.js","modules\/ext.growthExperiments.DataStore\/TopicFilters.js","modules\/ext.growthExperiments.DataStore\/GrowthTasksApi.js","tests\/qunit\/ext.growthExperiments.DataStore\/GrowthTasksApi.test.js","modules\/ext.growthExperiments.DataStore\/Topics.js","tests\/qunit\/ext.growthExperiments.Homepage.SuggestedEdits\/FiltersButtonGroupWidget.test.js","modules\/ui-components\/SwipePane.js","tests\/qunit\/ext.growthExperiments.Homepage.SuggestedEdits\/StartEditingDialog.test.js","modules\/ext.growthExperiments.DataStore\/FiltersStore.js","tests\/qunit\/ext.growthExperiments.DataStore\/FiltersStore.test.js","modules\/ext.growthExperiments.DataStore\/NewcomerTasksStore.js","tests\/qunit\/ext.growthExperiments.DataStore\/NewcomerTasksStore.test.js","modules\/ui-components\/CollapsibleDrawer.js","tests\/qunit\/ui-components\/CollapsibleDrawer.test.js","modules\/ui-components\/AdaptiveSelectWidget.js","tests\/qunit\/ui-components\/AdaptiveSelectWidget.test.js","tests\/qunit\/__mocks__\/config.json","tests\/qunit\/__mocks__\/GroupedTopics.json","tests\/qunit\/__mocks__\/Topics.json","tests\/qunit\/__mocks__\/store.js",{"name":"modules\/ext.growthExperiments.DataStore\/config.json","file":"tests\/qunit\/__mocks__\/config.json"},{"name":"modules\/ext.growthExperiments.Help\/data.json","file":"tests\/qunit\/ext.growthExperiments.Help\/configData.json"},{"name":"modules\/ext.growthExperiments.DataStore\/Topics.json","file":"tests\/qunit\/__mocks__\/Topics.json"},{"name":"modules\/ext.growthExperiments.DataStore\/TaskTypes.json","file":"tests\/qunit\/__mocks__\/TaskTypes.json"},{"name":"modules\/ext.growthExperiments.DataStore\/DefaultTaskTypes.json","file":"tests\/qunit\/__mocks__\/DefaultTaskTypes.json"},{"name":"modules\/ext.growthExperiments.DataStore\/AQSConfig.json","file":"tests\/qunit\/__mocks__\/AQSConfig.json"}],"dependencies":["oojs-ui","mediawiki.qunit-testrunner","mediawiki.base","mediawiki.router","ext.growthExperiments.Homepage.SuggestedEdits","ext.growthExperiments.PostEdit","ext.growthExperiments.SuggestedEditSession","ext.growthExperiments.DataStore","sinonjs"]},"config":{"GEApiQueryGrowthTasksLookaheadSize":{"description":"Number of items to fetch lookahead when querying the GrowthTasks API.","value":null},"GELevelingUpKeepGoingNotificationSendAfterSeconds":{"description":"Send a 'keep going' notification to new editors after this many seconds. Defaults to 48 hours.","value":172800},"GELevelingUpGetStartedNotificationSendAfterSeconds":{"description":"Send a 'get started' notification to new editors after this many seconds. Defaults to 48 hours.","value":172800},"GELevelingUpManagerTaskTypeCountThresholdMultiple":{"description":"The task type count threshold to use when determining whether to prompt a user to try a new task type. If the user has completed more than this number of a particular task type, it will not be suggested as a next task type to try. If a user completes edits for a task type in a multiple of of this number (e.g. 3, 6, or 12 with the default value), then the user is prompted to try a new task type.","value":3},"GELevelingUpNotificationsTrackingEnabled":{"description":"Feature flag to enable click-through rate tracking for leveling up notifications.","value":false},"GERefreshUserImpactDataMaintenanceScriptEnabled":{"description":"Feature flag to determine if the refreshUserImpactData.php maintenance script may run.","value":true},"GEUserImpactMaxArticlesToProcessForPageviews":{"description":"The maximum number of articles to consider when fetching pageview data from the AQS service. Only relevant to the RefreshUserImpactJob. This doubles as a feature flag; set this value to 5 to have it use the same limit used in web requests where we refresh user impact data.","value":1000},"GEUserImpactMaximumProcessTimeSeconds":{"description":"The maximum amount of time, in seconds, that may be used to fetch page view data from AQS. Currently used in job queue context. Default is 5 minutes.","value":300},"GEHelpPanelNewAccountEnableWithHomepage":{"description":"By default, the help panel is enabled for new accounts. To disable this behavior and use GEHelpPanelNewAccountEnablePercentage instead, set this to false.","value":true},"GEHelpPanelNewAccountEnablePercentage":{"description":"Percentage of new accounts to enable help panel for. Must be a whole number. Ignored by default, only used if GEHelpPanelNewAccountEnableWithHomepage is false.","value":100},"GEHelpPanelSearchForeignAPI":{"description":"api.php URL of a foreign wiki to search instead of the current wiki. Used for testing\/development to get more\/better results.","value":false},"GEHelpPanelSuggestedEditsPreferredEditor":{"description":"The preferred editor interface for suggested edits. The key is the task type handler ID (template-based or link-recommendation). Valid values for template-based are 'visualeditor' or 'wikitext'; for link-recommendation & image-recommendation only machineSuggestions is valid","value":{"template-based":"visualeditor","link-recommendation":"machineSuggestions","image-recommendation":"machineSuggestions","section-image-recommendation":"machineSuggestions","revise-tone":"visualeditor"}},"WelcomeSurveyEnabled":{"description":"Global ON\/OFF switch for the Welcome survey feature.","value":true},"WelcomeSurveyAllowFreetextResponses":{"description":"If set to true, freetext responses with the welcome survey are allowed.","value":false},"WelcomeSurveyPrivacyStatementUrl":{"description":"URL of the privacy statement to be used on the Welcome survey.","value":"https:\/\/foundation.wikimedia.org\/wiki\/Special:Mylanguage\/Legal:New_User_Welcome_Survey_Privacy_Statement"},"WelcomeSurveyReminderExpiry":{"description":"Number of days a reminder on Special:Homepage should be shown for if the user has not filled out the welcome survey yet. Set to 0 to disable the reminder.","value":30},"GEHomepageDefaultVariant":{"description":"Experiment variant to use for users on sites where TestKitchen is not available (non-WMF). Valid values: virtually anything, there's no validation, in practice this should be a string representing a valid variant name for the current experiment.","value":"control"},"GEMentorshipNewAccountEnablePercentage":{"description":"Percentage of new homepage-enabled users who will receive the mentorship module.","value":100},"GEMentorshipReassignMenteesBatchSize":{"description":"Batch size for reassignMenteesJob","value":5000},"GEMentorshipCleanupEnabled":{"description":"Feature flag controlling whether the mentor list cleanup (cleanMentorList.php) is enabled.","value":true},"GEPersonalizedPraiseBackendEnabled":{"description":"Feature flag controlling whether personalized praise's backend is enabled","value":true},"GEPersonalizedPraiseNotificationsEnabled":{"description":"Feature flag controlling whether personalized praise notifications are enabled","value":true},"GEPersonalizedPraiseMaxReverts":{"description":"Maximum number of total reverted edits a mentee can have to be considered praiseworthy or null if check should be skipped.","value":null},"GEStructuredMentorList":{"description":"Title of the wiki page that has the mentor list in JSON format (used by StructuredMentorProvider)","value":"MediaWiki:GrowthMentors.json"},"GEMentorDashboardEnabledModules":{"description":"List of enabled modules in the Mentor dashboard","value":{"mentee-overview":true,"mentor-tools":true,"resources":true,"personalized-praise":true}},"GEHomepageSuggestedEditsEnabled":{"description":"Global ON\/OFF switch for the suggested edits feature on the homepage.","value":true},"GEHomepageSuggestedEditsEnableTopics":{"description":"Enable topic filters for suggested edits","value":true},"GENewcomerTasksTaskTypeHandlers":{"description":"Used for registering TaskTypeHandlers to the TaskTypeHandlerRegistry. An associative array with handler ID => handler specification, which is an ObjectFactory specification or a factory callable. Handlers IDs correspond to the 'type' parameters in the task config page.","value":{"template-based":{"class":"GrowthExperiments\\NewcomerTasks\\TaskType\\TemplateBasedTaskTypeHandler","services":["GrowthExperimentsNewcomerTasksConfigurationValidator","GrowthExperimentsTemplateBasedTaskSubmissionHandler","TitleParser"]},"link-recommendation":{"class":"GrowthExperiments\\NewcomerTasks\\TaskType\\LinkRecommendationTaskTypeHandler","services":["GrowthExperimentsNewcomerTasksConfigurationValidator","TitleParser","GrowthExperimentsLinkRecommendationProvider","GrowthExperimentsAddLinkSubmissionHandler","GrowthExperimentsConfig"]},"image-recommendation":{"class":"GrowthExperiments\\NewcomerTasks\\TaskType\\ImageRecommendationTaskTypeHandler","services":["GrowthExperimentsNewcomerTasksConfigurationValidator","TitleParser","GrowthExperimentsImageRecommendationProvider","GrowthExperimentsAddImageSubmissionHandler"]},"section-image-recommendation":{"class":"GrowthExperiments\\NewcomerTasks\\TaskType\\SectionImageRecommendationTaskTypeHandler","services":["GrowthExperimentsNewcomerTasksConfigurationValidator","TitleParser","GrowthExperimentsImageRecommendationProvider","GrowthExperimentsAddImageSubmissionHandler"]},"revise-tone":{"class":"GrowthExperiments\\NewcomerTasks\\TaskType\\ReviseToneTaskTypeHandler","services":["GrowthExperimentsNewcomerTasksConfigurationValidator","TitleParser","GrowthExperimentsReviseToneRecommendationProvider","MainConfig"]},"null":{"class":"GrowthExperiments\\NewcomerTasks\\TaskType\\NullTaskTypeHandler"}}},"GENewcomerTasksRemoteApiUrl":{"description":"URL of a remote API (ending with 'api.php') to use for identifying suggested edits. This is meant for developer setups.","value":null},"GENewcomerTasksRemoteArticleOrigin":{"description":"Origin to append suggested article URLs to (e.g. 'https:\/\/en.wikipedia.org'). This is meant for developer setups.","value":null},"GERestbaseUrl":{"description":"URL of the RESTBase service (PCS Summary API - see https:\/\/www.mediawiki.org\/wiki\/Page_Content_Service#\/page\/summary) used for task cards. Autogenerated from the wiki URL when not set.","value":false},"GEMediaInfoRepos":{"description":"List of repo names which provide WikibaseMediaInfo data.","value":["shared","wikimediacommons"]},"GEDeveloperSetup":{"description":"Set to true in developer (non-production) settings. In practice this will relax assumptions about page existence, which might be needed to approximate production behavior when e.g. a remote API is used for searching for pages, or a link recommendation service trained on a production wiki is used on a testing wiki.","value":false},"GENewcomerTasksLinkRecommendationsEnabled":{"description":"Global ON\/OFF switch for link recommendations.","value":true},"GELinkRecommendationsFrontendEnabled":{"description":"Global ON\/OFF switch for the link recommendations feature. Depending on the state, either the 'links' or the 'link-recommendation' task type is hidden. Can be overridden by SuggestedEdits::LINK_RECOMMENDATIONS_ENABLED_PREF.","value":true},"GELinkRecommendationsRefreshByIteratingThroughAllTitles":{"description":"Whether to refresh link recommendations by iterating through all titles. Temporary config while rolling out this new system, see T386250","value":false},"GETopicsMatchModeEnabled":{"description":"Global ON\/OFF switch for the topics match mode UI feature.","value":false},"GENewcomerTasksImageRecommendationsEnabled":{"description":"Global ON\/OFF switch for image recommendations.","value":true},"GENewcomerTasksSectionImageRecommendationsEnabled":{"description":"Global ON\/OFF switch for section-level image recommendations.","value":true},"GEImageRecommendationServiceUrl":{"description":"Root URL of the image recommendation service (no trailing slash).","value":false},"GEImageRecommendationServiceHttpProxy":{"description":"HTTP proxy for the service specified via GEImageRecommendationServiceUrl.","value":null},"GEImageRecommendationServiceUseTitles":{"description":"Use titles instead of page IDs when calling the service. Less ideal but allows setting up test environments to use the production service.","value":true},"GEImageRecommendationApiHandler":{"description":"Corresponding API handler to use for the (top-level and section-level) image recommendations; can be 'production' (ProductionImageRecommendationApiHandler), 'mvp' (MvpImageRecommendationApiHandler) or 'actionapi' (ActionApiImageRecommendationApiHandler). See these classes for more information.","value":"mvp"},"GEImageRecommendationServiceWikiIdMasquerade":{"description":"The wiki ID to use in requests to the image recommendation service. Used for developer setups.","value":null},"GEImageRecommendationServiceAccessToken":{"description":"Personal access token from the wiki GEImageRecommendationServiceUrl points to. For developer setups using the 'actionapi' handler only.","value":null},"GELinkRecommendationServiceUrl":{"description":"Root URL of the link recommendation service. When using the 'actionapi' handler, this should point to api.php.","value":false},"GELinkRecommendationServiceAccessToken":{"description":"Personal access token from api.wikimedia.org to use when accessing the external production service. For developer setups only.","value":null},"GELinkRecommendationServiceTimeout":{"description":"Request timeout when contacting the link recommendation service.","value":null},"GELinkRecommendationsUseEventGate":{"description":"Whether to use EventGate for notifying about link recommendation creation. When set to false, uses CirrusSearch diretcly.","value":false},"GELinkRecommendationServiceWikiIdMasquerade":{"description":"The wiki ID to use in requests to the link recommendation service. Used for developer setups.","value":null},"GELevelingUpManagerInvitationThresholds":{"description":"Article namespace edit count thresholds at which the user should be invited to try suggested edits (assuming they haven't before).","value":[3,7]},"GECampaigns":{"description":"A map of campaign ID to campaign configuration. Campaign configuration currently includes these fields:\n* pattern: a regexp matched against the \"campaign\" request parameter during signup to determine whether the user should be included in some campaign\n* signupPageTemplate: a template name to use for the \"benefits\" block of Special:CreateAccount\n* signupPageTemplateParameters: a map of parameters to pass to the template\n* topics: an array of topic IDs (which are defined in GECampaignTopics) to include on the top of the topic selector as custom topics\n\nExamples can be found at https:\/\/www.mediawiki.org\/wiki\/Extension:GrowthExperiments\/Technical_documentation\/Special:EditGrowthConfig.","value":[]},"GECampaignTopics":{"description":"Mapping of topic IDs to its search expression, used to show campaign-specific topics in the suggested edits module. Examples can be found at https:\/\/www.mediawiki.org\/wiki\/Extension:GrowthExperiments\/Technical_documentation\/Special:EditGrowthConfig.","value":[]},"WelcomeSurveyExperimentalGroups":{"description":"List of experimental groups. A group is defined with a range to randomly match users and the list of questions they will see on the survey.","merge_strategy":"array_plus_2d","value":{"control":{"percentage":100,"format":"specialpage","questions":["reason","edited","email","languages"]}}},"GECommunityUpdatesEnabled":{"description":"Are Community Updates enabled?","value":true},"GELinkRecommendationMinimumTasksPerTopic":{"value":500,"description":"Minimum number of link recommendation tasks to maintain per ORES topic."},"GEUserImpactMaxEdits":{"value":1000,"description":"Maximum number of edits to process for Impact Module statistics"},"GEUserImpactMaxThanks":{"value":1000,"description":"Maximum number of thanks to process for Impact Module statistics"},"GEReviseToneSuggestedEditEnabled":{"value":false,"description":"Enable the Revise Tone feature so newcomers can spot non-neutral wording and receive in-context guidance to help users rewrite a sentence in a more encyclopedic tone."},"GEReviseToneParagraphScoreThreshold":{"value":0.8,"description":"Threshold score above which a Tone issue is considered for the ReviseTone task"},"GEReviseToneOverrideSearchTerm":{"value":"","description":"Overrides generating the search terms for the ReviseTone task. Should only be set to something other than an empty string in beta or dev. Recommended value on beta: 'hastemplate:peacock_inline'. See ReviseToneTaskTypeHandler::getSearchTerm"},"GEReviseToneServiceUrl":{"description":"Root URL of the internal Revise Tone service (no trailing slash).","value":false},"GEReviseToneRecommendationProvider":{"description":"Corresponding Recommendation Provider to use for the Revise Tone recommendations; can be 'production' (ApiReviseToneRecommendationProvider), or 'subpage' (SubpageReviseToneRecommendationProvider).","value":"production"}},"SpecialPages":{"MentorDashboard":{"class":"GrowthExperiments\\Specials\\SpecialMentorDashboard","services":["GrowthExperimentsMentorDashboardModuleRegistry","GrowthExperimentsMentorProvider","UserOptionsLookup","JobQueueGroupFactory"]},"ManageMentors":{"class":"GrowthExperiments\\Specials\\SpecialManageMentors","services":["UserIdentityLookup","GrowthExperimentsLastActionTimestampLookup","GrowthExperimentsMentorProvider","GrowthExperimentsMentorWriter","GrowthExperimentsMentorStatusManager","GrowthExperimentsMentorRemover","GrowthExperimentsCommunityConfig"]},"EnrollAsMentor":{"class":"GrowthExperiments\\Specials\\SpecialEnrollAsMentor","services":["GrowthExperimentsCommunityConfig","GrowthExperimentsMentorProvider","GrowthExperimentsMentorWriter"]},"QuitMentorship":{"class":"GrowthExperiments\\Specials\\SpecialQuitMentorship","services":["GrowthExperimentsMentorProvider","GrowthExperimentsMentorRemover"]}},"LogTypes":["growthexperiments"],"LogNames":{"growthexperiments":"growthexperiments-log-name"},"LogHeaders":{"growthexperiments":"growthexperiments-log-header"},"LogActionsHandlers":{"growthexperiments\/setmentor":{"class":"GrowthExperiments\\Mentorship\\MentorChangeLogFormatter","services":["TitleParser"]},"growthexperiments\/claimmentee":{"class":"GrowthExperiments\\Mentorship\\MentorChangeLogFormatter","services":["TitleParser"]},"growthexperiments\/setmentor-no-previous-mentor":{"class":"GrowthExperiments\\Mentorship\\MentorChangeLogFormatter","services":["TitleParser"]},"growthexperiments\/claimmentee-no-previous-mentor":{"class":"GrowthExperiments\\Mentorship\\MentorChangeLogFormatter","services":["TitleParser"]},"growthexperiments\/addlink":"MediaWiki\\Logging\\LogFormatter","growthexperiments\/addimage":"GrowthExperiments\\NewcomerTasks\\AddImage\\AddImageLogFormatter","growthexperiments\/addsectionimage":"GrowthExperiments\\NewcomerTasks\\AddSectionImage\\AddSectionImageLogFormatter"},"ActionFilteredLogs":{"growthexperiments":{"mentorassignmentchanges":["claimmentee","claimmentee-no-previous-mentor","setmentor","setmentor-no-previous-mentor"],"addlink":["addlink"],"addimage":["addimage","addsectionimage"]}},"AvailableRights":["setmentor","managementors","enrollasmentor"],"GroupPermissions":{"sysop":{"setmentor":true,"managementors":true}},"GrantPermissions":{"managementorship":{"setmentor":true,"managementors":true,"enrollasmentor":true}},"GrantPermissionGroups":{"managementorship":"administration"},"GrantRiskGroups":{"managementorship":"low"},"RateLimits":{"growthmentordashboardupdatedata":{"&can-bypass":false,"user":[1,7200]},"growthexperimentsuserimpacthandler":{"&can-bypass":true,"anon":[5,86400],"user":[10,86400]},"growthexperiments-apiqueryimagesuggestiondata":{"&can-bypass":false,"user":[500,86400]}},"DatabaseVirtualDomains":["virtual-growthexperiments"],"repository":"https:\/\/gerrit.wikimedia.org\/r\/mediawiki\/extensions\/GrowthExperiments"}}