Repository navigation
Expand file tree
/
Copy pathpsalm.xml
More file actions
240 lines (238 loc) · 14.6 KB
/
Copy pathpsalm.xml
File metadata and controls
240 lines (238 loc) · 14.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
<?xml version="1.0"?>
<psalm
errorLevel="4"
resolveFromConfigFile="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://getpsalm.org/schema/config"
findUnusedBaselineEntry="true"
findUnusedCode="true"
findUnusedVariablesAndParams="true"
>
<projectFiles>
<directory name="lib" />
<ignoreFiles>
<directory name="vendor" />
</ignoreFiles>
</projectFiles>
<stubs>
<file name="vendor/nextcloud/ocp/OCP/Capabilities/ICapability.php" preloadClasses="true" />
<!--
OpenRegister's AppHost composition-root entry point. `openregister`
is a sibling Nextcloud app, not a composer dependency, so
`OCA\OpenRegister\AppHost\Bootstrap` is genuinely absent here.
Without it psalm cannot resolve the class named in
`RegistrationBootstrap::bindStoreController()`'s `class_exists()`
guard, concludes the guarded block is dead, and reports
`UnusedParam - Param context is never referenced in this method`
about a parameter passed on the very next line. The stub answers the
question instead of suppressing the answer, so the next genuinely
unused parameter in that method still fails the build.
Shared, not vendored per app: decidiq and planninq adopted the same
route table and carry the same call.
-->
<file name="vendor/conduction/hydra-gates/hydra-gates/stubs/openregister-apphost-bootstrap.stub.php" />
</stubs>
<issueHandlers>
<UndefinedDocblockClass errorLevel="suppress"/>
<UndefinedClass>
<errorLevel type="suppress">
<!-- Nextcloud's legacy bootstrap class. There is no OCP interface for
registering another app's autoloader, so the ADR-040 AppHost prelude
in AppInfo\OpenRegisterAutoloader calls OC_App::registerAutoloading()
directly. It is server-private, so absent from nextcloud/ocp. -->
<referencedClass name="OC_App"/>
<!-- Nextcloud OCP Classes -->
<referencedClass name="OCP\AppFramework\App"/>
<referencedClass name="OCP\AppFramework\Bootstrap\IBootstrap"/>
<referencedClass name="OCP\AppFramework\Controller"/>
<referencedClass name="OCP\AppFramework\IAppContainer"/>
<referencedClass name="OCP\App\IAppManager"/>
<referencedClass name="OCP\BackgroundJob\IJobList"/>
<referencedClass name="OCP\BackgroundJob\QueuedJob"/>
<referencedClass name="OCP\BackgroundJob\TimedJob"/>
<referencedClass name="OCP\EventDispatcher\Event"/>
<referencedClass name="OCP\EventDispatcher\IEventListener"/>
<referencedClass name="OCP\IAppConfig"/>
<referencedClass name="OCP\ICacheFactory"/>
<referencedClass name="OCP\IConfig"/>
<referencedClass name="OCP\IDBConnection"/>
<referencedClass name="OCP\IGroupManager"/>
<referencedClass name="OCP\IUserManager"/>
<referencedClass name="OCP\IUserSession"/>
<referencedClass name="OCP\IMemcache"/>
<referencedClass name="OCP\IRequest"/>
<referencedClass name="OCP\EventDispatcher\IEventDispatcher"/>
<referencedClass name="OCP\DB\QueryBuilder\IQueryBuilder"/>
<referencedClass name="OCP\AppFramework\Db\QBMapper"/>
<referencedClass name="OCP\AppFramework\Db\Entity"/>
<referencedClass name="OCP\Files\IRootFolder"/>
<referencedClass name="OCP\Files\Node"/>
<referencedClass name="OCP\Files\File"/>
<referencedClass name="OCP\Files\Folder"/>
<referencedClass name="OCP\Files\NotFoundException"/>
<referencedClass name="OCP\AppFramework\Http\JSONResponse"/>
<referencedClass name="OCP\AppFramework\Http\TemplateResponse"/>
<referencedClass name="OCP\AppFramework\Http\DataResponse"/>
<referencedClass name="OCP\IL10N"/>
<referencedClass name="OCP\IURLGenerator"/>
<referencedClass name="OCP\Http\Client\IClient"/>
<referencedClass name="OCP\Http\Client\IClientService"/>
<referencedClass name="OCP\Notification\IManager"/>
<referencedClass name="OCP\Share\IManager"/>
<!-- OpenRegister cross-app classes (loaded dynamically) -->
<referencedClass name="OCA\OpenRegister\Db\ObjectEntity"/>
<referencedClass name="OCA\OpenRegister\Db\RegisterMapper"/>
<referencedClass name="OCA\OpenRegister\Db\SchemaMapper"/>
<referencedClass name="OCA\OpenRegister\Db\AuditTrail"/>
<referencedClass name="OCA\OpenRegister\Db\AuditTrailMapper"/>
<!--
GdprEntity is instantiated by FQCN string in
AnonymizationService::lookupOrCreateCustomDictionaryEntity()
precisely so this app stays loadable without OpenRegister
installed. Same category (and same file) as the OR Db
classes above; the real class lives in
openregister/lib/Db/GdprEntity.php.
-->
<referencedClass name="OCA\OpenRegister\Db\GdprEntity"/>
<referencedClass name="OCA\OpenRegister\Event\DeepLinkRegistrationEvent"/>
<referencedClass name="OCA\OpenRegister\Event\ObjectCreatingEvent"/>
<referencedClass name="OCA\OpenRegister\Event\ObjectCreatedEvent"/>
<referencedClass name="OCA\OpenRegister\Event\ObjectUpdatingEvent"/>
<referencedClass name="OCA\OpenRegister\Event\ObjectUpdatedEvent"/>
<referencedClass name="OCA\OpenRegister\Event\ObjectDeletedEvent"/>
<referencedClass name="OCA\OpenRegister\Service\ObjectService"/>
<!--
ADR-084's published contract. Services type-hint this interface
rather than OR's concrete class, and the binding is stated in
RegistrationBootstrap — but the interface itself lives in
openregister, which this repo does not depend on, so psalm
cannot resolve it. Same category as the classes around it.
-->
<referencedClass name="OCA\OpenRegister\Contract\ObjectServiceInterface"/>
<referencedClass name="OCA\OpenRegister\Service\ConfigurationService"/>
<referencedClass name="OCA\OpenRegister\Service\RegisterService"/>
<referencedClass name="OCA\OpenRegister\Service\FileService"/>
<referencedClass name="OCA\OpenRegister\Service\File\PlaceholderIdTranslator"/>
<referencedClass name="OCA\OpenRegister\Service\CalendarEventService"/>
<referencedClass name="OCA\OpenRegister\Mcp\IMcpToolProvider"/>
<!--
ADR-063 chain 3/3. FilinqScannableServices implements this
interface in production and the stub in tests/stubs; the app
has no composer dependency on openregister, and must still be
loadable when openregister is absent.
-->
<referencedClass name="OCA\OpenRegister\Mcp\IMcpScannableServices"/>
<referencedClass name="OCA\OpenRegister\Db\EntityRelationMapper"/>
<referencedClass name="OCA\OpenRegister\Service\RiskLevelService"/>
<!--
Thrown by OpenRegister's ObjectService::deleteObject() for any
user-driven delete on a schema declaring x-openregister-archival.
PolicyController catches it to answer HTTP 409 instead of leaking a
500; the real class lives in
openregister/lib/Exception/ArchivalImmutableException.php.
-->
<referencedClass name="OCA\OpenRegister\Exception\ArchivalImmutableException"/>
<!-- OpenRegister DB types used in signing/approval events -->
<referencedClass name="OCA\OpenRegister\Db\ApprovalChain"/>
<referencedClass name="OCA\OpenRegister\Db\ApprovalStep"/>
<!-- OpenRegister AppHost controller base classes -->
<referencedClass name="OCA\OpenRegister\AppHost\Controller\GenericDashboardController"/>
<referencedClass name="OCA\OpenRegister\AppHost\Controller\GenericHealthController"/>
<referencedClass name="OCA\OpenRegister\AppHost\Controller\GenericMetricsController"/>
<referencedClass name="OCA\OpenRegister\AppHost\Controller\GenericPreferencesController"/>
<!-- OpenRegister Observability classes (AppHost engine) -->
<referencedClass name="OCA\OpenRegister\AppHost\Observability\ManifestLoader"/>
<referencedClass name="OCA\OpenRegister\AppHost\Observability\HealthCheckExecutor"/>
<referencedClass name="OCA\OpenRegister\AppHost\Observability\MetricsEngine"/>
<referencedClass name="OCA\OpenRegister\AppHost\Observability\PrometheusRenderer"/>
<referencedClass name="OCA\OpenRegister\AppHost\Observability\Source\ObjectMetricSource"/>
<referencedClass name="OCA\OpenRegister\AppHost\Observability\Source\TableMetricSource"/>
<referencedClass name="OCA\OpenRegister\AppHost\Observability\Source\AppConfigMetricSource"/>
<referencedClass name="OCA\OpenRegister\AppHost\Observability\Source\ProviderMetricSource"/>
<!-- OpenRegister Approval events -->
<referencedClass name="OCA\OpenRegister\Event\ApprovalStepInitiatedEvent"/>
<referencedClass name="OCA\OpenRegister\Event\ApprovalStepApprovedEvent"/>
<referencedClass name="OCA\OpenRegister\Event\ApprovalStepRejectedEvent"/>
<referencedClass name="OCA\OpenRegister\Event\ApprovalStepCompletedEvent"/>
<!-- OpenRegister Language service -->
<referencedClass name="OCA\OpenRegister\Service\LanguageService"/>
<!-- Additional OCP infrastructure types used across the fleet -->
<referencedClass name="OCP\AppFramework\Bootstrap\IBootContext"/>
<referencedClass name="OCP\AppFramework\Bootstrap\IRegistrationContext"/>
<referencedClass name="OCP\AppFramework\Db\DoesNotExistException"/>
<referencedClass name="OCP\AppFramework\Middleware"/>
<referencedClass name="OCP\Constants"/>
<referencedClass name="OCP\Dashboard\IWidget"/>
<referencedClass name="OCP\DB\Exception"/>
<referencedClass name="OCP\Files\Conversion\IConversionManager"/>
<referencedClass name="OCP\ICache"/>
<referencedClass name="OCP\IGroup"/>
<referencedClass name="OCP\ITempManager"/>
<referencedClass name="OCP\IUser"/>
<referencedClass name="OCP\Lock\ILockingProvider"/>
<referencedClass name="OCP\Lock\LockedException"/>
<referencedClass name="OCP\Migration\IRepairStep"/>
<referencedClass name="OCP\Settings\IDelegatedSettings"/>
<referencedClass name="OCP\Settings\IIconSection"/>
<!-- Nextcloud server internals -->
<referencedClass name="OC"/>
<!-- GuzzleHttp (loaded via composer at runtime) -->
<referencedClass name="GuzzleHttp\Client"/>
<referencedClass name="GuzzleHttp\Exception\GuzzleException"/>
<!-- Filinq-specific runtime dependencies -->
<referencedClass name="thiagoalessio\TesseractOCR\TesseractOCR"/>
<!--
PhpOffice\PhpWord — declared in composer.json as a
hard require (^1.2), but the package is only present
after `composer install` finishes resolving it.
Class-existence is guarded at runtime by
PhpWordBackend::isAvailable() via class_exists().
-->
<referencedClass name="PhpOffice\PhpWord\Settings"/>
<referencedClass name="PhpOffice\PhpWord\IOFactory"/>
</errorLevel>
</UndefinedClass>
<!--
`#[McpTool]` is OpenRegister's attribute (ADR-063 chain 3/3). PHP only
resolves an attribute class when something reflects it, so an absent
openregister does not stop this app loading — but psalm resolves it
statically and cannot see a cross-app class this repo does not depend
on. Same category as the UndefinedClass suppressions above; unlike
those, psalm's attribute check takes no per-class filter.
-->
<UndefinedAttributeClass errorLevel="suppress"/>
<UndefinedMagicMethod errorLevel="suppress"/>
<UnusedClass errorLevel="suppress"/>
<PossiblyUnusedMethod errorLevel="suppress"/>
<UnusedMethod errorLevel="suppress"/>
<UnusedProperty errorLevel="suppress"/>
<PossiblyUnusedParam errorLevel="suppress"/>
<UnusedDocblockParam errorLevel="suppress"/>
<UnusedVariable errorLevel="suppress"/>
<PossiblyUnusedReturnValue errorLevel="suppress"/>
<RedundantCondition errorLevel="suppress"/>
<RedundantFunctionCall errorLevel="suppress"/>
<RedundantCast errorLevel="suppress"/>
<InvalidDocblock errorLevel="suppress"/>
<MoreSpecificImplementedParamType errorLevel="suppress"/>
<MissingDependency errorLevel="suppress"/>
<UnevaluatedCode errorLevel="suppress"/>
<NoValue errorLevel="suppress"/>
<TypeDoesNotContainNull errorLevel="suppress"/>
<TypeDoesNotContainType errorLevel="suppress"/>
<InvalidArrayOffset errorLevel="suppress"/>
<InvalidCast errorLevel="suppress"/>
<InvalidArgument errorLevel="suppress"/>
<InvalidReturnType errorLevel="suppress"/>
<InvalidReturnStatement errorLevel="suppress"/>
<MismatchingDocblockReturnType errorLevel="suppress"/>
<EmptyArrayAccess errorLevel="suppress"/>
<ImplementedReturnTypeMismatch errorLevel="suppress"/>
<InvalidMethodCall errorLevel="suppress"/>
<UndefinedInterfaceMethod errorLevel="suppress"/>
<MissingTemplateParam errorLevel="suppress"/>
</issueHandlers>
<extraFiles>
<directory name="vendor/nextcloud/ocp" />
</extraFiles>
</psalm>