Merge pull request #17350 from jonahtanjz/17348-fix-html-code-formatting
[phpmyadmin.git] / psalm.xml
blobbe42de0e808717bfdd8496c7f95be4540d200e07
1 <?xml version="1.0"?>
2 <psalm
3     autoloader="test/bootstrap-static.php"
4     errorLevel="1"
5     reportMixedIssues="true"
6     sealAllMethods="true"
7     resolveFromConfigFile="true"
8     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9     xmlns="https://getpsalm.org/schema/config"
10     xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
11     errorBaseline="psalm-baseline.xml"
13     <projectFiles>
14         <directory name="libraries"/>
15         <directory name="setup"/>
16         <directory name="test/classes"/>
17         <directory name="test/selenium"/>
18         <file name="js/messages.php"/>
19         <file name="index.php"/>
20         <file name="show_config_errors.php"/>
21         <file name="url.php"/>
22         <ignoreFiles>
23             <directory name="vendor"/>
24             <directory name="libraries/cache"/>
25         </ignoreFiles>
26     </projectFiles>
28     <stubs>
29         <file name="test/stubs/uploadprogress.stub"/>
30     </stubs>
32     <plugins>
33         <pluginClass class="Psalm\PhpUnitPlugin\Plugin"/>
34     </plugins>
36     <globals>
37         <var name="cfg" type="array{
38             AllowUserDropDatabase: bool,
39             blowfish_secret: string,
40             BrowseMIME: bool,
41             BZipDump: bool,
42             CaptchaCsp: string,
43             CookieSameSite: 'Lax'|'Strict'|'None',
44             CSPAllow: string,
45             DBG: array{sql: bool, sqllog: bool, demo: bool, simple2fa: bool},
46             DefaultTabDatabase: 'structure'|'sql'|'search'|'operations',
47             DefaultTabServer: 'welcome'|'databases'|'status'|'variables'|'privileges',
48             DefaultTabTable: 'structure'|'sql'|'search'|'insert'|'browse',
49             DisableMultiTableMaintenance: bool,
50             enable_drag_drop_import: bool,
51             EnableAutocompleteForTablesAndColumns: bool,
52             environment: 'production'|'development',
53             ExecTimeLimit: 0|positive-int,
54             Export: array,
55             FirstLevelNavigationItems: positive-int,
56             GridEditing: 'double-click'|'click'|'disabled',
57             GZipDump: bool,
58             IgnoreMultiSubmitErrors: bool,
59             InitialSlidersState: 'open'|'closed'|'disabled',
60             LimitChars: positive-int,
61             LoginCookieStore: 0|positive-int,
62             LoginCookieValidity: positive-int,
63             LoginCookieValidityDisableWarning: bool,
64             MaxDbList: positive-int,
65             MaxCharactersInDisplayedSQL: positive-int,
66             MaxRows: positive-int,
67             MaxTableList: positive-int,
68             NaturalOrder: bool,
69             NavigationDisplayLogo: bool,
70             NavigationDisplayServers: bool,
71             NavigationLinkWithMainPanel: bool,
72             NavigationLogoLink: string,
73             NavigationLogoLinkWindow: 'main'|'new',
74             NavigationTreeAutoexpandSingleDb: bool,
75             NavigationTreeDbSeparator: string,
76             NavigationTreeEnableGrouping: bool,
77             NavigationTreePointerEnable: bool,
78             NavigationTreeTableSeparator: string|string[]|false,
79             NavigationWidth: 0|positive-int,
80             NumFavoriteTables: 0|positive-int,
81             PmaNoRelation_DisableWarning: bool,
82             ProtectBinary: 'blob'|'noblob'|'all'|false,
83             ProxyPass: string,
84             ProxyUrl: string,
85             ProxyUser: string,
86             RepeatCells: 0|positive-int,
87             SendErrorReports: 'ask'|'always'|'never',
88             Server: array{
89                 AllowDeny: array{order: ''|'deny,allow'|'allow,deny'|'explicit', rules: string[]},
90                 AllowNoPassword: bool,
91                 AllowRoot: bool,
92                 auth_type: 'config'|'http'|'signon'|'cookie',
93                 controlpass: string,
94                 controluser: string,
95                 DisableIS: bool,
96                 host: string,
97                 password: string,
98                 pmadb: string|false,
99                 port: string,
100                 tracking_default_statements: string,
101                 user: string,
102                 verbose: string
103             },
104             ServerDefault: 0|positive-int,
105             Servers: array[],
106             ShowAll: bool,
107             ShowChgPassword: bool,
108             ShowCreateDb: bool,
109             ShowDatabasesNavigationAsTree: bool,
110             ShowFieldTypesInDataEditView: bool,
111             ShowFunctionFields: bool,
112             ShowPhpInfo: bool,
113             ShowServerInfo: bool,
114             ShowSQL: bool,
115             ShowStats: bool,
116             SkipLockedTables: bool,
117             SuhosinDisableWarning: bool,
118             ThemeManager: bool,
119             TranslationWarningThreshold: int,
120             UseDbSearch: bool,
121             VersionCheck: bool,
122             ZeroConf: bool,
123             ZipDump: bool
124         }"/>
125         <var name="containerBuilder" type="Symfony\Component\DependencyInjection\ContainerBuilder"/>
126         <var name="dbi" type="PhpMyAdmin\DatabaseInterface"/>
127         <var name="GLOBALS" type="array{
128             asfile: bool,
129             buffer_needed: bool,
130             cached_affected_rows: int|numeric-string,
131             cfg: array{
132                 AllowArbitraryServer: bool,
133                 AllowThirdPartyFraming: bool|'sameorigin',
134                 ArbitraryServerRegexp: string,
135                 AvailableCharsets: string[],
136                 BrowseMarkerEnable: bool,
137                 BrowsePointerEnable: bool,
138                 BrowseMIME: bool,
139                 BZipDump: bool,
140                 CaptchaApi: string,
141                 CaptchaLoginPublicKey: string,
142                 CaptchaRequestParam: string,
143                 CaptchaResponseParam: string,
144                 CharEditing: 'input'|'textarea',
145                 CharTextareaCols: positive-int,
146                 CharTextareaRows: positive-int,
147                 CodemirrorEnable: bool,
148                 CompressOnFly: bool,
149                 Confirm: bool,
150                 ConsoleEnterExecutes: bool,
151                 DBG: array{sql: bool, sqllog: bool, demo: bool, simple2fa: bool},
152                 DefaultForeignKeyChecks: 'default'|'enable'|'disable',
153                 DefaultQueryDatabase: string,
154                 DefaultQueryTable: string,
155                 DefaultTabDatabase: 'structure'|'sql'|'search'|'operations',
156                 DefaultTabServer: 'welcome'|'databases'|'status'|'variables'|'privileges',
157                 DefaultTabTable: 'structure'|'sql'|'search'|'insert'|'browse',
158                 DefaultTransformations: array{
159                     Bool2Text: array{string, string},
160                     DateFormat: array{0|positive-int, string, 'local'|'utc'},
161                     External: array{int, string, int, int},
162                     Hex: array{0|positive-int},
163                     Inline: array{0: 0|positive-int, 1: 0|positive-int, wrapper_link: string|null, wrapper_params: array&lt;array-key, string&gt;},
164                     PreApPend: array{string, string},
165                     Substring: array{0|positive-int, 'all'|int, string},
166                     TextImageLink: array{string|null, 0|positive-int, 0|positive-int},
167                     TextLink: array{string|null, string|null, bool|null}
168                 },
169                 DisableMultiTableMaintenance: bool,
170                 DisplayServersList: bool,
171                 enable_drag_drop_import: bool,
172                 ExecTimeLimit: 0|positive-int,
173                 FirstLevelNavigationItems: positive-int,
174                 ForeignKeyDropdownOrder: array{0: 'content-id'|'id-content', 1?: 'content-id'|'id-content'},
175                 ForeignKeyMaxLimit: positive-int,
176                 GridEditing: 'double-click'|'click'|'disabled',
177                 GZipDump: bool,
178                 HideStructureActions: bool,
179                 IgnoreMultiSubmitErrors: bool,
180                 Import: array,
181                 InitialSlidersState: 'open'|'closed'|'disabled',
182                 InsertRows: positive-int,
183                 LimitChars: positive-int,
184                 LinkLengthLimit: positive-int,
185                 LintEnable: bool,
186                 LoginCookieDeleteAll: bool,
187                 LoginCookieRecall: bool,
188                 LoginCookieStore: 0|positive-int,
189                 LoginCookieValidity: positive-int,
190                 LongtextDoubleTextarea: bool,
191                 MaxDbList: positive-int,
192                 MaxCharactersInDisplayedSQL: positive-int,
193                 MaxExactCount: positive-int,
194                 MaxExactCountViews: 0|positive-int,
195                 MaxNavigationItems: positive-int,
196                 MaxTableList: positive-int,
197                 maxRowPlotLimit: positive-int,
198                 MaxRows: positive-int,
199                 MaxSizeForInputField: positive-int,
200                 MinSizeForInputField: 0|positive-int,
201                 MysqlMinVersion: array{internal: int, human: string},
202                 MysqlSslWarningSafeHosts: string[],
203                 NaturalOrder: bool,
204                 NavigationLinkWithMainPanel: bool,
205                 NavigationTreeDbSeparator: string,
206                 NavigationTreeDefaultTabTable: 'structure'|'sql'|'search'|'insert'|'browse',
207                 NavigationTreeDefaultTabTable2: 'structure'|'sql'|'search'|'insert'|'browse'|'',
208                 NavigationTreeDisplayDbFilterMinimum: positive-int,
209                 NavigationTreeDisplayItemFilterMinimum: positive-int,
210                 NavigationTreeEnableExpansion: bool,
211                 NavigationTreeEnableGrouping: bool,
212                 NavigationTreeShowEvents: bool,
213                 NavigationTreeShowFunctions: bool,
214                 NavigationTreeShowProcedures: bool,
215                 NavigationTreeShowTables: bool,
216                 NavigationTreeShowViews: bool,
217                 NavigationTreeTableLevel: positive-int,
218                 NavigationTreeTableSeparator: string|string[]|false,
219                 NumFavoriteTables: 0|positive-int,
220                 NumRecentTables: 0|positive-int,
221                 OBGzip: 'auto'|bool,
222                 PDFDefaultPageSize: string,
223                 PDFPageSizes: string[],
224                 PersistentConnections: bool,
225                 PropertiesNumColumns: positive-int,
226                 ProtectBinary: 'blob'|'noblob'|'all'|false,
227                 QueryHistoryDB: bool,
228                 QueryHistoryMax: positive-int,
229                 RelationalDisplay: 'K'|'D',
230                 RememberSorting: bool,
231                 RepeatCells: 0|positive-int,
232                 ReservedWordDisableWarning: bool,
233                 RetainQueryBox: bool,
234                 RowActionLinks: 'left'|'right'|'both'|'none',
235                 RowActionLinksWithoutUnique: bool,
236                 SaveCellsAtOnce: bool,
237                 SendErrorReports: 'ask'|'always'|'never',
238                 Server: array{
239                     auth_type: 'config'|'http'|'signon'|'cookie',
240                     bookmarktable: string|false,
241                     central_columns: string|false,
242                     column_info: string|false,
243                     designer_settings: string|false,
244                     DisableIS: bool,
245                     export_templates: string|false,
246                     favorite: string|false,
247                     history: string|false,
248                     host: string,
249                     MaxTableUiprefs: positive-int,
250                     navigationhiding: string|false,
251                     only_db: string|string[],
252                     password: string,
253                     pdf_pages: string|false,
254                     pmadb: string|false,
255                     port: string,
256                     recent: string|false,
257                     relation: string|false,
258                     savedsearches: string|false,
259                     SessionTimeZone: string,
260                     SignonCookieParams: array{lifetime: 0|positive-int, path: string, domain: string, secure: bool, httponly: bool, samesite?: 'Lax'|'Strict'},
261                     SignonScript: string,
262                     SignonSession: string,
263                     SignonURL: string,
264                     table_coords: string|false,
265                     table_info: string|false,
266                     table_uiprefs: string|false,
267                     tracking: string|false,
268                     tracking_add_drop_database: bool,
269                     tracking_add_drop_table: bool,
270                     tracking_add_drop_view: bool,
271                     tracking_default_statements: string,
272                     tracking_version_auto_create: bool,
273                     user: string,
274                     userconfig: string|false,
275                     usergroups: string|false,
276                     users: string|false,
277                     verbose: string
278                 },
279                 ServerDefault: 0|positive-int,
280                 Servers: array[],
281                 ShowAll: bool,
282                 ShowBrowseComments: bool,
283                 ShowColumnComments: bool,
284                 ShowCreateDb: bool,
285                 ShowDatabasesNavigationAsTree: bool,
286                 ShowDbStructureCharset: bool,
287                 ShowDbStructureComment: bool,
288                 ShowDbStructureCreation: bool,
289                 ShowDbStructureLastCheck: bool,
290                 ShowDbStructureLastUpdate: bool,
291                 ShowFieldTypesInDataEditView: bool,
292                 ShowFunctionFields: bool,
293                 ShowHint: bool,
294                 ShowPropertyComments: bool,
295                 ShowSQL: bool,
296                 ShowStats: bool,
297                 TextareaAutoSelect: bool,
298                 TextareaCols: positive-int,
299                 TextareaRows: positive-int,
300                 ThemeDefault: string,
301                 ThemePerServer: bool,
302                 TitleDatabase: string,
303                 TitleDefault: string,
304                 TitleServer: string,
305                 TitleTable: string,
306                 UserprefsDeveloperTab: bool,
307                 UserprefsDisallow: string[],
308                 VersionCheck: bool,
309                 ZeroConf: bool,
310                 ZipDump: bool
311             },
312             charset: string,
313             charset_connection: string,
314             codegen_format: 0|1,
315             col_priv: bool,
316             collation_connection: string,
317             complete_query: string,
318             compression: 'none'|'zip'|'gzip',
319             conn_error: string,
320             config: PhpMyAdmin\Config,
321             ConfigFile: PhpMyAdmin\Config\ConfigFile,
322             crlf: string,
323             csv_columns: bool,
324             csv_enclosed: string,
325             csv_escaped: string,
326             csv_separator: string,
327             csv_terminated: string,
328             db: string,
329             db_priv: bool,
330             dbi: PhpMyAdmin\DatabaseInterface,
331             dbs_to_test: string[]|false,
332             dblist: PhpMyAdmin\Database\DatabaseList,
333             display_query: string,
334             errno: int,
335             error: bool,
336             error_message: string,
337             errorHandler: PhpMyAdmin\ErrorHandler,
338             excel_edition: 'win'|'mac_excel2003'|'mac_excel2008',
339             file_handle: resource|null,
340             finished: bool,
341             from_cookie: bool,
342             goto: string,
343             hostname: string,
344             import_file: string,
345             import_file_name: string,
346             import_run_buffer: array,
347             import_text: string,
348             is_create_db_priv: bool,
349             is_reload_priv: bool,
350             knjenc: string,
351             lang: string,
352             latex_data_caption: string,
353             latex_data_continued_caption: string,
354             latex_data_label: string,
355             latex_null: string,
356             latex_structure_caption: string,
357             latex_structure_continued_caption: string,
358             latex_structure_label: string,
359             maxsize: string,
360             memory_limit: int,
361             message: PhpMyAdmin\Message,
362             ods_buffer: string,
363             odt_buffer: string,
364             offset: int,
365             old_tz: string,
366             onfly_compression: bool,
367             output_charset_conversion: bool,
368             output_kanji_conversion: bool,
369             plugin_param: string|array{export_type: string, single_table: bool},
370             plugin_scripts: string[],
371             pma_auth_server: string,
372             PMA_PHP_SELF: string,
373             proc_priv: bool,
374             querytime: float|int,
375             read_limit: int,
376             save_on_server: bool,
377             server: int,
378             SESSION_KEY: string,
379             showtable: array&lt;string, string|null&gt;,
380             sql_compatibility: 'NONE'|'ANSI'|'DB2'|'MAXDB'|'MYSQL323'|'MYSQL40'|'MSSQL'|'ORACLE'|'TRADITIONAL',
381             sql_constraints: string,
382             sql_constraints_query: string,
383             sql_drop_foreign_keys: string,
384             sql_if_not_exists: bool,
385             sql_ignore: bool,
386             sql_insert_syntax: 'complete'|'extended'|'both'|'none',
387             sql_max_query_size: 0|positive-int,
388             sql_query: string,
389             sql_structure_or_data: 'structure'|'data'|'structure_and_data',
390             sql_type: 'INSERT'|'UPDATE'|'REPLACE',
391             table: string,
392             table_priv: bool,
393             tbl_storage_engine: string,
394             text_dir: string,
395             token_mismatch: bool,
396             token_provided: bool,
397             urlParams: array,
398             username: string,
399             xml_export_triggers: bool,
400             xml_export_views: bool
401         }"/>
402         <var name="PMA_PHP_SELF" type="string"/>
403     </globals>
404 </psalm>