Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
Types
n/a
0 / 0
n/a
0 / 0
0
n/a
0 / 0
1<?php
2
3declare(strict_types=1);
4
5namespace Cosray\Config;
6
7/**
8 * @phpstan-type SessionOptions = array{
9 *     cookie_httponly: bool,
10 *     cookie_samesite: string,
11 *     cookie_secure: bool,
12 *     cookie_lifetime: int,
13 *     gc_maxlifetime: int,
14 *     cache_expire: int,
15 *     ...<string, mixed>
16 * }
17 *
18 * @phpstan-type MimeMap = array<string, non-empty-list<string>>
19 * @phpstan-type DbPlaceholders = array<non-empty-string, array<non-empty-string, string>>
20 *
21 * @phpstan-type BuiltinConfig = array{
22 *     'app.name': string,
23 *     'app.title': ?string,
24 *     'app.debug': bool,
25 *     'app.env': string,
26 *     'app.secret': ?string,
27 *     'app.timezone': string,
28 *     'app.url_prefix': string,
29 *     'app.url': ?string,
30 *     'app.trusted_proxies': string|list<string>,
31 *
32 *     'plugins': list<class-string<\Cosray\Plugin\Plugin>|\Cosray\Plugin\Plugin>,
33 *     'webhooks': list<array{url: string, secret?: ?string, events?: list<string>}>,
34 *
35 *     'auth.remember_lifetime': int,
36 *
37 *     'path.root': string,
38 *     'path.public': string,
39 *     'path.assets': string,
40 *     'path.cache': string,
41 *     'path.views': string,
42 *
43 *     'panel.path': string,
44 *     'panel.theme': null|string|list<string>,
45 *     'panel.logo': ?string,
46 *     'panel.dashboard': bool,
47 *     'panel.locale': ?string,
48 *     'panel.embed': list<string>,
49 *
50 *     'api.path': ?string,
51 *     'api.origins': list<string>,
52 *     'api.max_age': int,
53 *     'api.preview': ?string,
54 *
55 *     'error.enabled': bool,
56 *     'error.renderer': null|class-string<\Celema\Core\Error\Renderer>|\Celema\Core\Error\Renderer,
57 *     'error.trusted': list<class-string>,
58 *     'error.views': null|string|list<string>,
59 *     'error.whoops': bool,
60 *
61 *     'icons.local.paths': string|list<string>,
62 *     'icons.iconify.base_url': string,
63 *     'icons.iconify.timeout': int,
64 *     'icons.iconify.user_agent': string,
65 *
66 *     'db.dsn': ?string,
67 *     'db.sql': string|list<string>,
68 *     'db.migrations': string|list<string>,
69 *     'db.placeholders': DbPlaceholders,
70 *     'db.print': bool,
71 *     'db.options': array<int, mixed>,
72 *     'db.reuse': bool,
73 *
74 *     'session.enabled': bool,
75 *     'session.options': SessionOptions,
76 *     'session.handler': ?\SessionHandlerInterface,
77 *
78 *     'media.fileserver': null|'apache'|'nginx',
79 *
80 *     'upload.mimetypes.file': MimeMap,
81 *     'upload.mimetypes.image': MimeMap,
82 *     'upload.mimetypes.video': MimeMap,
83 *     'upload.maxsize': int,
84 *
85 *     'uid.alphabet': non-empty-string,
86 *     'uid.length': positive-int,
87 *
88 *     'password.breach_check': bool,
89 *
90 *     'queue.after_response': bool,
91 *
92 *     'mail.transports': array<string, string>,
93 *     'mail.from': ?string,
94 *     'mail.redirect': string|list<string>,
95 *     'mail.views': string|list<string>
96 * }
97 *
98 * @phpstan-type BuiltinConfigInput = array{
99 *     'app.name'?: string,
100 *     'app.title'?: ?string,
101 *     'app.debug'?: bool,
102 *     'app.env'?: string,
103 *     'app.secret'?: null|string,
104 *     'app.timezone'?: string,
105 *     'app.url_prefix'?: string,
106 *     'app.url'?: ?string,
107 *     'app.trusted_proxies'?: string|list<string>,
108 *
109 *     'plugins'?: list<class-string<\Cosray\Plugin\Plugin>|\Cosray\Plugin\Plugin>,
110 *     'auth.remember_lifetime'?: int,
111 *     'path.root'?: string,
112 *     'path.public'?: string,
113 *     'path.assets'?: string,
114 *     'path.cache'?: string,
115 *     'path.views'?: string,
116 *     'panel.path'?: string,
117 *     'panel.theme'?: null|string|list<string>,
118 *     'panel.logo'?: null|string,
119 *     'panel.dashboard'?: bool,
120 *     'panel.locale'?: null|string,
121 *     'error.enabled'?: bool,
122 *     'error.renderer'?: mixed,
123 *     'error.trusted'?: list<class-string>,
124 *     'error.views'?: null|string|list<string>,
125 *     'error.whoops'?: bool,
126 *     'icons.local.paths'?: string|list<string>,
127 *     'icons.iconify.base_url'?: string,
128 *     'icons.iconify.timeout'?: int,
129 *     'icons.iconify.user_agent'?: string,
130 *     'db.dsn'?: null|string,
131 *     'db.sql'?: string|list<string>,
132 *     'db.migrations'?: string|list<string>,
133 *     'db.placeholders'?: DbPlaceholders,
134 *     'db.print'?: bool,
135 *     'db.options'?: array<int, mixed>,
136 *     'session.enabled'?: bool,
137 *     'session.options'?: array<string, mixed>,
138 *     'session.handler'?: ?\SessionHandlerInterface,
139 *     'media.fileserver'?: null|'apache'|'nginx',
140 *     'upload.mimetypes.file'?: MimeMap,
141 *     'upload.mimetypes.image'?: MimeMap,
142 *     'upload.mimetypes.video'?: MimeMap,
143 *     'upload.maxsize'?: int,
144 *     'uid.alphabet'?: non-empty-string,
145 *     'uid.length'?: positive-int,
146 *     'password.breach_check'?: bool,
147 *     'queue.after_response'?: bool,
148 *     'mail.transports'?: array<string, string>,
149 *     'mail.from'?: ?string,
150 *     'mail.redirect'?: string|list<string>,
151 *     'mail.views'?: string|list<string>
152 * }
153 */
154final class Types {}