{
	"name": "External Data",
	"version": "3.4",
	"author": [
		"Yaron Koren",
		"Alexander Mashin",
		"..."
	],
	"url": "https://www.mediawiki.org/wiki/Extension:External_Data",
	"descriptionmsg": "externaldata-desc",
	"license-name": "GPL-2.0-or-later",
	"type": "parserhook",
	"requires": {
		"MediaWiki": ">= 1.39.4"
	},
	"load_composer_autoloader": true,
	"SpecialPages": {
		"GetData": {
			"class": "EDGetData",
			"services": [
				"PermissionManager"
			]
		}
	},
	"MessagesDirs": {
		"ExternalData": [
			"i18n"
		]
	},
	"ExtensionMessagesFiles": {
		"ExternalDataMagic": "ExternalData.i18n.magic.php",
		"ExternalDataAlias": "ExternalData.i18n.alias.php"
	},
	"AutoloadClasses": {
		"EDParserFunctions": "includes/EDParserFunctions.php",
		"EDGetData": "includes/EDGetData.php",
		"EDJsonObject": "includes/EDJsonObject.php",
		"EDArraySlice": "includes/EDArraySlice.php",
		"EDReparseJob": "includes/EDReparseJob.php",
		"EDParsesParams": "includes/EDParsesParams.php",
		"EDConnectorCached": "includes/connectors/traits/EDConnectorCached.php",
		"EDConnectorThrottled": "includes/connectors/traits/EDConnectorThrottled.php",
		"EDConnectorParsable": "includes/connectors/traits/EDConnectorParsable.php",
		"EDConnectorBase": "includes/connectors/EDConnectorBase.php",
		"EDConnectorHttp": "includes/connectors/EDConnectorHttp.php",
		"EDConnectorWeb": "includes/connectors/EDConnectorWeb.php",
		"EDConnectorSoap": "includes/connectors/EDConnectorSoap.php",
		"EDConnectorLdap": "includes/connectors/EDConnectorLdap.php",
		"EDConnectorPath": "includes/connectors/EDConnectorPath.php",
		"EDConnectorFile": "includes/connectors/EDConnectorFile.php",
		"EDConnectorDirectory": "includes/connectors/EDConnectorDirectory.php",
		"EDConnectorDirectoryWalker": "includes/connectors/EDConnectorDirectoryWalker.php",
		"EDConnectorDb": "includes/connectors/EDConnectorDb.php",
		"EDConnectorComposed": "includes/connectors/EDConnectorComposed.php",
		"EDConnectorRdbms": "includes/connectors/EDConnectorRdbms.php",
		"EDConnectorSql": "includes/connectors/EDConnectorSql.php",
		"EDConnectorPostgresql": "includes/connectors/EDConnectorPostgresql.php",
		"EDConnectorSqlite": "includes/connectors/EDConnectorSqlite.php",
		"EDConnectorOdbc": "includes/connectors/EDConnectorOdbc.php",
		"EDConnectorOdbcMssql": "includes/connectors/EDConnectorOdbcMssql.php",
		"EDConnectorMongodb": "includes/connectors/EDConnectorMongodb.php",
		"EDConnectorPrepared": "includes/connectors/EDConnectorPrepared.php",
		"EDConnectorPreparedMysql": "includes/connectors/EDConnectorPreparedMysql.php",
		"EDConnectorPreparedPostgresql": "includes/connectors/EDConnectorPreparedPostgresql.php",
		"EDConnectorPreparedOdbc": "includes/connectors/EDConnectorPreparedOdbc.php",
		"EDConnectorExe": "includes/connectors/EDConnectorExe.php",
		"EDConnectorInline": "includes/connectors/EDConnectorInline.php",
		"EDConnectorDummy": "includes/connectors/EDConnectorDummy.php",
		"EDParserBase": "includes/parsers/EDParserBase.php",
		"EDParserText": "includes/parsers/EDParserText.php",
		"EDParserRegex": "includes/parsers/EDParserRegex.php",
		"EDParserIni": "includes/parsers/EDParserIni.php",
		"EDParserHTMLwithCSS": "includes/parsers/EDParserHTMLwithCSS.php",
		"EDParserHTMLwithXPath": "includes/parsers/EDParserHTMLwithXPath.php",
		"EDParserXML": "includes/parsers/EDParserXML.php",
		"EDParserXMLsimple": "includes/parsers/EDParserXMLsimple.php",
		"EDParserXMLwithXPath": "includes/parsers/EDParserXMLwithXPath.php",
		"EDParserJSON": "includes/parsers/EDParserJSON.php",
		"EDParserJSONsimple": "includes/parsers/EDParserJSONsimple.php",
		"EDParserJSONwithJSONPath": "includes/parsers/EDParserJSONwithJSONPath.php",
		"EDParserYAMLsimple": "includes/parsers/EDParserYAMLsimple.php",
		"EDParserYAMLwithJSONPath": "includes/parsers/EDParserYAMLwithJSONPath.php",
		"EDParserCSV": "includes/parsers/EDParserCSV.php",
		"EDParserGFF": "includes/parsers/EDParserGFF.php",
		"EDParserArchive": "includes/parsers/EDParserArchive.php",
		"EDParserPhar": "includes/parsers/EDParserPhar.php",
		"EDParserZip": "includes/parsers/EDParserZip.php",
		"EDParserRar": "includes/parsers/EDParserRar.php",
		"EDParserAuto": "includes/parsers/EDParserAuto.php",
		"EDParserException": "includes/parsers/EDParserException.php",
		"EDScribunto": "includes/EDScribunto.php",
		"ExternalData\\Hooks": "includes/Hooks.php",
		"ExternalData\\SchemaHooks": "includes/SchemaHooks.php",
		"ExternalData\\ScribuntoHooks": "includes/ScribuntoHooks.php"
	},
	"AutoloadNamespaces": {
		"ExternalData\\Presets\\": "includes/presets/"
	},
	"HookHandlers": {
		"main": {
			"class": "ExternalData\\Hooks",
			"services": [
				"MainConfig"
			]
		},
		"schema": {
			"class": "ExternalData\\SchemaHooks"
		},
		"scribunto": {
			"class": "ExternalData\\ScribuntoHooks"
		}
	},
	"Hooks": {
		"ParserFirstCallInit": "main",
		"ScribuntoExternalLibraries": "scribunto",
		"SoftwareInfo": "main",
		"LoadExtensionSchemaUpdates": "schema"
	},
	"JobClasses": { "edReparse": "EDReparseJob" },
	"callback": "ExternalData\\Hooks::onRegistration",
	"config_prefix": "wgExternalData",
	"config": {
		"Sources": {
			"description": "An array of settings for data sources. Index '*' contains global fallbacks",
			"value": {
				"*": {
					"min cache seconds": 3600,
					"always use stale cache": false,
					"throttle key": "$2nd_lvl_domain$",
					"throttle interval": 0,
					"replacements": [],
					"allowed urls": [],
					"options": { "timeout": "default" },
					"encodings": [ "ASCII", "UTF-8", "Windows-1251", "Windows-1252", "Windows-1254", "KOI8-R", "ISO-8859-1" ],
					"params": [],
					"param filters": [],
					"verbose": true
				},
				"load test presets": false,
				"load reference presets": false,
				"load media presets": false,
				"load all presets": false
			},
			"merge_strategy": "array_plus_2d"
		},
		"Verbose": {
			"description": "Show an error message if there is no external value",
			"value": true
		},
		"Connectors": {
			"description": "Rules for choosing EDConnector* class in compatibility mode",
			"value": [
				[ { "__pf": "get_web_data", "hidden": false }, "EDConnectorWeb" ],
				[ { "__pf": "get_file_data", "directory": true, "file name": "/[[\\]?*]/", "hidden": false }, "EDConnectorDirectoryWalker" ],
				[ { "__pf": "get_file_data", "source": true, "file name": "/[[\\]?*]/", "hidden": false }, "EDConnectorDirectoryWalker" ],
				[ { "__pf": "get_file_data", "directory": true, "hidden": false }, "EDConnectorDirectory" ],
				[ { "__pf": "get_file_data", "source": true, "file name": true, "hidden": false }, "EDConnectorDirectory" ],
				[ { "__pf": "get_file_data", "hidden": false }, "EDConnectorFile" ],
				[ { "__pf": "get_soap_data", "hidden": false }, "EDConnectorSoap" ],
				[ { "__pf": "get_ldap_data", "hidden": false }, "EDConnectorLdap" ],
				[ { "__pf": "get_db_data", "type": "mysql", "prepared": true, "hidden": false }, "EDConnectorPreparedMysql" ],
				[ { "__pf": "get_db_data", "type": "postgres", "prepared": true, "hidden": false }, "EDConnectorPreparedPostgresql" ],
				[ { "__pf": "get_db_data", "type": "sqlite", "hidden": false }, "EDConnectorSqlite" ],
				[ { "__pf": "get_db_data", "type": "odbc", "prepared": true, "hidden": false }, "EDConnectorPreparedOdbc" ],
				[ { "__pf": "get_db_data", "type": "odbc", "prepared": false, "driver": "/ODBC Driver \\d+ for SQL Server/", "hidden": false }, "EDConnectorOdbcMssql" ],
				[ { "__pf": "get_db_data", "type": "mongodb", "hidden": false }, "EDConnectorMongodb" ],
				[ { "__pf": "get_db_data", "type": "postgres", "hidden": false }, "EDConnectorPostgresql" ],
				[ { "__pf": "get_db_data", "hidden": false }, "EDConnectorSql" ],
				[ { "__pf": "get_program_data", "hidden": false }, "EDConnectorExe" ],
				[ { "__pf": "get_program_data", "hidden": false }, "EDConnectorExe" ],
				[ { "__pf": "get_inline_data", "hidden": false }, "EDConnectorInline" ],
				[ { "__pf": "get_external_data", "hidden": true, "source": false }, "EDConnectorDummy" ],
				[ { "__pf": "get_external_data", "url": true, "request": false }, "EDConnectorWeb" ],
				[ { "__pf": "get_external_data", "post data": true }, "EDConnectorWeb" ],
				[ { "__pf": "get_external_data", "directory": true, "file name": "/[[\\]?*]/" }, "EDConnectorDirectoryWalker" ],
				[ { "__pf": "get_external_data", "source": true, "file name": "/[[\\]?*]/" }, "EDConnectorDirectoryWalker" ],
				[ { "__pf": "get_external_data", "directory": true, "host": false }, "EDConnectorDirectory" ],
				[ { "__pf": "get_external_data", "source": true, "file name": true }, "EDConnectorDirectory" ],
				[ { "__pf": "get_external_data", "file": true }, "EDConnectorFile" ],
				[ { "__pf": "get_external_data", "source": true, "path": true }, "EDConnectorFile" ],
				[ { "__pf": "get_external_data", "request": true }, "EDConnectorSoap" ],
				[ { "__pf": "get_external_data", "source": true, "requestData": true }, "EDConnectorSoap" ],
				[ { "__pf": "get_external_data", "domain": true }, "EDConnectorLdap" ],
				[ { "__pf": "get_external_data", "source": true, "base dn": true }, "EDConnectorLdap" ],
				[ { "__pf": "get_external_data", "type": "mysql", "prepared": true }, "EDConnectorPreparedMysql" ],
				[ { "__pf": "get_external_data", "type": "postgres", "prepared": true }, "EDConnectorPreparedPostgresql" ],
				[ { "__pf": "get_external_data", "type": "sqlite" }, "EDConnectorSqlite" ],
				[ { "__pf": "get_external_data", "type": "odbc", "prepared": true }, "EDConnectorPreparedOdbc" ],
				[ { "__pf": "get_external_data", "type": "odbc", "prepared": false, "driver": "/ODBC Driver \\d+ for SQL Server/" }, "EDConnectorOdbcMssql" ],
				[ { "__pf": "get_external_data", "type": "mongodb" }, "EDConnectorMongodb" ],
				[ { "__pf": "get_external_data", "type": "postgres" }, "EDConnectorPostgresql" ],
				[ { "__pf": "get_external_data", "from": true }, "EDConnectorSql" ],
				[ { "__pf": "get_external_data", "prepared": true }, "EDConnectorPreparedMysql" ],
				[ { "__pf": "get_external_data", "type": "mysql" }, "EDConnectorSql" ],
				[ { "__pf": "get_external_data", "type": "sqlite" }, "EDConnectorSql" ],
				[ { "__pf": "get_external_data", "command": true }, "EDConnectorExe" ],
				[ { "__pf": "get_external_data", "program": true }, "EDConnectorExe" ],
				[ { "__pf": "get_external_data", "text": true }, "EDConnectorInline" ]
			]
		},
		"IntegratedConnectors": {
			"description": "Rules for choosing EDConnector* class in standalone mode",
			"value": [
				[ { "__pf": null, "url": true, "request": false }, "EDConnectorWeb" ],
				[ { "__pf": null, "post data": true }, "EDConnectorWeb" ],
				[ { "__pf": null, "file name": "/[[\\]?*]/" }, "EDConnectorDirectoryWalker" ],
				[ { "__pf": null, "file name": true }, "EDConnectorDirectory" ],
				[ { "__pf": null, "path": true }, "EDConnectorFile" ],
				[ { "__pf": null, "request": true }, "EDConnectorSoap" ],
				[ { "__pf": null, "requestData": true }, "EDConnectorSoap" ],
				[ { "__pf": null, "base dn": true }, "EDConnectorLdap" ],
				[ { "__pf": null, "type": "mysql", "prepared": true }, "EDConnectorPreparedMysql" ],
				[ { "__pf": null, "type": "postgres", "prepared": true }, "EDConnectorPreparedPostgresql" ],
				[ { "__pf": null, "type": "sqlite" }, "EDConnectorSqlite" ],
				[ { "__pf": null, "type": "odbc", "prepared": true }, "EDConnectorPreparedOdbc" ],
				[ { "__pf": null, "type": "odbc", "driver": "/ODBC Driver \\d+ for SQL Server/" }, "EDConnectorOdbcMssql" ],
				[ { "__pf": null, "type": "mongodb" }, "EDConnectorMongodb" ],
				[ { "__pf": null, "type": "postgres" }, "EDConnectorPostgresql" ],
				[ { "__pf": null, "prepared": true }, "EDConnectorPreparedMysql" ],
				[ { "__pf": null, "from": true }, "EDConnectorSql" ],
				[ { "__pf": null, "type": "mysql" }, "EDConnectorSql" ],
				[ { "__pf": null, "type": "sqlite" }, "EDConnectorSql" ],
				[ { "__pf": null, "command": true }, "EDConnectorExe" ],
				[ { "__pf": null, "program": true }, "EDConnectorExe" ],
				[ { "__pf": null, "text": true }, "EDConnectorInline" ],
				[ { "__pf": null }, "EDConnectorDummy" ],
				[ { "__pf": true }, "EDConnectorDummy" ]
			]
		},
		"Parsers": {
			"description": "Rules for choosing EDParser* class",
			"value": [
				[ { "__exists": "ZipArchive", "url": "/\\.zip$/i", "archive path": true }, "EDParserZip" ],
				[ { "__exists": "ZipArchive", "file name": "/\\.zip$/i", "archive path": true }, "EDParserZip" ],
				[ { "__exists": "ZipArchive", "path": "/\\.zip$/i", "archive path": true }, "EDParserZip" ],
				[ { "__exists": "ZipArchive", "source": "/\\.zip$/i", "archive path": true }, "EDParserZip" ],

				[ { "__exists": "RarArchive", "url": "/\\.rar$/i", "archive path": true }, "EDParserRar" ],
				[ { "__exists": "RarArchive", "file name": "/\\.rar$/i", "archive path": true }, "EDParserRar" ],
				[ { "__exists": "RarArchive", "path": "/\\.rar$/i", "archive path": true }, "EDParserRar" ],
				[ { "__exists": "RarArchive", "source": "/\\.rar$/i", "archive path": true }, "EDParserRar" ],

				[ { "__exists": "PharData", "url": "/\\.tar$/i", "archive path": true }, "EDParserPhar" ],
				[ { "__exists": "PharData", "file name": "/\\.tar$/i", "archive path": true }, "EDParserPhar" ],
				[ { "__exists": "PharData", "path": "/\\.tar$/i", "archive path": true }, "EDParserPhar" ],
				[ { "__exists": "PharData", "source": "/\\.tar$/i", "archive path": true }, "EDParserPhar" ],

				[ { "__exists": [ "PharData", "gzopen" ], "url": "/\\.tar\\.gz$/i", "archive path": true }, "EDParserPhar" ],
				[ { "__exists": [ "PharData", "gzopen" ], "file name": "/\\.tar\\.gz$/i", "archive path": true }, "EDParserPhar" ],
				[ { "__exists": [ "PharData", "gzopen" ], "path": "/\\.tar\\.gz$/i", "archive path": true }, "EDParserPhar" ],
				[ { "__exists": [ "PharData", "gzopen" ], "source": "/\\.tar\\.gz$/i", "archive path": true }, "EDParserPhar" ],

				[ { "__exists": [ "PharData", "bzopen" ], "url": "/\\.tar\\.bz2$/i", "archive path": true }, "EDParserPhar" ],
				[ { "__exists": [ "PharData", "bzopen" ], "file name": "/\\.tar\\.bz2$/i", "archive path": true }, "EDParserPhar" ],
				[ { "__exists": [ "PharData", "bzopen" ], "path": "/\\.tar\\.bz2$/i", "archive path": true }, "EDParserPhar" ],
				[ { "__exists": [ "PharData", "bzopen" ], "source": "/\\.tar\\.bz2$/i", "archive path": true }, "EDParserPhar" ],

				[ { "format": "text", "regex": true }, "EDParserRegex" ],
				[ { "format": "auto", "regex": true }, "EDParserRegex" ],
				[ { "format": "text with regex" }, "EDParserRegex" ],
				[ { "format": "text" }, "EDParserText" ],
				[ { "format": "ini" }, "EDParserIni" ],
				[ { "format": "html", "use xpath": true }, "EDParserHTMLwithXPath" ],
				[ { "format": "html with xpath" }, "EDParserHTMLwithXPath" ],
				[ { "format": "html with css" }, "EDParserHTMLwithCSS" ],
				[ { "format": "html", "use css": true }, "EDParserHTMLwithCSS" ],
				[ { "format": "html" }, "EDParserHTMLwithCSS" ],
				[ { "format": "xml", "use xpath": true }, "EDParserXMLwithXPath" ],
				[ { "format": "xml with xpath" }, "EDParserXMLwithXPath" ],
				[ { "format": "xml" }, "EDParserXMLsimple" ],
				[ { "format": "json", "use jsonpath": true }, "EDParserJSONwithJSONPath" ],
				[ { "format": "json with jsonpath" }, "EDParserJSONwithJSONPath" ],
				[ { "format": "json" }, "EDParserJSONsimple" ],
				[ { "format": "yaml", "use jsonpath": true }, "EDParserYAMLwithJSONPath" ],
				[ { "format": "yaml with jsonpath" }, "EDParserYAMLwithJSONPath" ],
				[ { "format": "yaml" }, "EDParserYAMLsimple" ],
				[ { "format": "csv" }, "EDParserCSV" ],
				[ { "format": "csv with header" }, "EDParserCSV" ],
				[ { "format": "csv with headers" }, "EDParserCSV" ],
				[ { "format": "gff" }, "EDParserGFF" ],
				[ { "format": "auto" }, "EDParserAuto" ],
				[ {}, "EDParserText" ]
			]
		},
		"AllowGetters": {
			"description": "Drop all {{#get_*_data:}} functions and all mw.ext.getExternalData.get*Data() except mw.ext.getExternalData.getExternalData()",
			"value": true
		}
	},
	"TestAutoloadClasses": {
		"EDTestBase": "tests/phpunit/unit/EDTestBase.php",
		"EDParserTestBase": "tests/phpunit/unit/parsers/EDParserTestBase.php",
		"EDParserArchiveTestBase": "tests/phpunit/unit/parsers/EDParserArchiveTestBase.php"
	},
	"manifest_version": 2
}
