@openbrf/plugin-sdk 1.0.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +95 -0
  2. package/dist/abort-signal.d.ts +23 -0
  3. package/dist/abort-signal.d.ts.map +1 -0
  4. package/dist/abort-signal.js +2 -0
  5. package/dist/abort-signal.js.map +1 -0
  6. package/dist/action-refusal.d.ts +101 -0
  7. package/dist/action-refusal.d.ts.map +1 -0
  8. package/dist/action-refusal.js +96 -0
  9. package/dist/action-refusal.js.map +1 -0
  10. package/dist/action-schema.d.ts.map +1 -1
  11. package/dist/action-schema.js +4 -1
  12. package/dist/action-schema.js.map +1 -1
  13. package/dist/actions.d.ts +94 -6
  14. package/dist/actions.d.ts.map +1 -1
  15. package/dist/actions.js.map +1 -1
  16. package/dist/blocks.d.ts +310 -0
  17. package/dist/blocks.d.ts.map +1 -0
  18. package/dist/blocks.js +185 -0
  19. package/dist/blocks.js.map +1 -0
  20. package/dist/catalog.d.ts +1092 -41
  21. package/dist/catalog.d.ts.map +1 -1
  22. package/dist/catalog.js +472 -15
  23. package/dist/catalog.js.map +1 -1
  24. package/dist/entitlements.d.ts +117 -0
  25. package/dist/entitlements.d.ts.map +1 -0
  26. package/dist/entitlements.js +62 -0
  27. package/dist/entitlements.js.map +1 -0
  28. package/dist/extensions.d.ts +183 -0
  29. package/dist/extensions.d.ts.map +1 -0
  30. package/dist/extensions.js +67 -0
  31. package/dist/extensions.js.map +1 -0
  32. package/dist/finances.d.ts +294 -0
  33. package/dist/finances.d.ts.map +1 -0
  34. package/dist/finances.js +56 -0
  35. package/dist/finances.js.map +1 -0
  36. package/dist/findings.d.ts +92 -1
  37. package/dist/findings.d.ts.map +1 -1
  38. package/dist/findings.js +91 -0
  39. package/dist/findings.js.map +1 -1
  40. package/dist/host.d.ts +729 -4
  41. package/dist/host.d.ts.map +1 -1
  42. package/dist/host.js +54 -0
  43. package/dist/host.js.map +1 -1
  44. package/dist/imports.d.ts +104 -0
  45. package/dist/imports.d.ts.map +1 -0
  46. package/dist/imports.js +70 -0
  47. package/dist/imports.js.map +1 -0
  48. package/dist/index.d.ts +17 -7
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +15 -6
  51. package/dist/index.js.map +1 -1
  52. package/dist/localized-text.d.ts +18 -0
  53. package/dist/localized-text.d.ts.map +1 -0
  54. package/dist/localized-text.js +17 -0
  55. package/dist/localized-text.js.map +1 -0
  56. package/dist/manifest.d.ts +859 -0
  57. package/dist/manifest.d.ts.map +1 -1
  58. package/dist/manifest.js +957 -12
  59. package/dist/manifest.js.map +1 -1
  60. package/dist/package-check.d.ts.map +1 -1
  61. package/dist/package-check.js +9 -1
  62. package/dist/package-check.js.map +1 -1
  63. package/dist/permissions.d.ts +170 -11
  64. package/dist/permissions.d.ts.map +1 -1
  65. package/dist/permissions.js +210 -2
  66. package/dist/permissions.js.map +1 -1
  67. package/dist/recipients.d.ts +139 -0
  68. package/dist/recipients.d.ts.map +1 -0
  69. package/dist/recipients.js +223 -0
  70. package/dist/recipients.js.map +1 -0
  71. package/dist/records.d.ts +130 -0
  72. package/dist/records.d.ts.map +1 -0
  73. package/dist/records.js +85 -0
  74. package/dist/records.js.map +1 -0
  75. package/dist/require-capability.d.ts +37 -0
  76. package/dist/require-capability.d.ts.map +1 -0
  77. package/dist/require-capability.js +88 -0
  78. package/dist/require-capability.js.map +1 -0
  79. package/dist/settings-schema.d.ts +35 -0
  80. package/dist/settings-schema.d.ts.map +1 -1
  81. package/dist/settings-schema.js +55 -2
  82. package/dist/settings-schema.js.map +1 -1
  83. package/package.json +4 -4
  84. package/src/abort-signal.ts +22 -0
  85. package/src/action-refusal.ts +178 -0
  86. package/src/action-schema.ts +4 -1
  87. package/src/actions.ts +103 -6
  88. package/src/blocks.ts +289 -0
  89. package/src/catalog.ts +630 -72
  90. package/src/entitlements.ts +150 -0
  91. package/src/extensions.ts +212 -0
  92. package/src/finances.ts +317 -0
  93. package/src/findings.ts +94 -0
  94. package/src/host.ts +768 -4
  95. package/src/imports.ts +135 -0
  96. package/src/index.ts +209 -0
  97. package/src/localized-text.ts +19 -0
  98. package/src/manifest.ts +1231 -12
  99. package/src/package-check.ts +15 -0
  100. package/src/permissions.ts +223 -3
  101. package/src/recipients.ts +294 -0
  102. package/src/records.ts +172 -0
  103. package/src/require-capability.ts +106 -0
  104. package/src/settings-schema.ts +64 -2
package/dist/catalog.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import type { PluginFindingDetail } from "./findings.ts";
2
3
  /** A tarball and the digest its bytes must hash to. */
3
4
  export declare const catalogArtifactSchema: z.ZodObject<{
4
5
  url: z.ZodString;
@@ -6,12 +7,44 @@ export declare const catalogArtifactSchema: z.ZodObject<{
6
7
  bytes: z.ZodOptional<z.ZodInt>;
7
8
  }, z.core.$strict>;
8
9
  export type CatalogArtifact = z.infer<typeof catalogArtifactSchema>;
9
- /** Text a curator writes in both languages the interface is offered in. */
10
- declare const localizedTextSchema: z.ZodObject<{
11
- sv: z.ZodString;
12
- en: z.ZodString;
10
+ export type { LocalizedText } from "./localized-text.ts";
11
+ /**
12
+ * An extension point as the index lists it: the manifest's fields, and the
13
+ * curator's title and description in both languages.
14
+ *
15
+ * The text is the curator's rather than the plugin's own, as an entry's `name`
16
+ * is, because an addon's consent screen has to name the point before the host
17
+ * plugin's locale files exist on the instance (ADR 0030).
18
+ */
19
+ export declare const catalogExtensionPointSchema: z.ZodObject<{
20
+ id: z.ZodString;
21
+ version: z.ZodInt;
22
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
23
+ account: "account";
24
+ apartment: "apartment";
25
+ auditTrail: "auditTrail";
26
+ email: "email";
27
+ financial: "financial";
28
+ freeText: "freeText";
29
+ health: "health";
30
+ name: "name";
31
+ personalIdentityNumber: "personalIdentityNumber";
32
+ phone: "phone";
33
+ photograph: "photograph";
34
+ postalAddress: "postalAddress";
35
+ protected: "protected";
36
+ residency: "residency";
37
+ }>>>;
38
+ title: z.ZodObject<{
39
+ sv: z.ZodString;
40
+ en: z.ZodString;
41
+ }, z.core.$strict>;
42
+ description: z.ZodObject<{
43
+ sv: z.ZodString;
44
+ en: z.ZodString;
45
+ }, z.core.$strict>;
13
46
  }, z.core.$strict>;
14
- export type LocalizedText = z.infer<typeof localizedTextSchema>;
47
+ export type CatalogExtensionPoint = z.infer<typeof catalogExtensionPointSchema>;
15
48
  export declare const catalogPluginEntrySchema: z.ZodObject<{
16
49
  id: z.ZodString;
17
50
  version: z.ZodString;
@@ -34,17 +67,220 @@ export declare const catalogPluginEntrySchema: z.ZodObject<{
34
67
  packageName: z.ZodString;
35
68
  apiVersion: z.ZodInt;
36
69
  permissions: z.ZodDefault<z.ZodArray<z.ZodEnum<{
70
+ "addressBook:proposeImport": "addressBook:proposeImport";
71
+ "addressBook:read": "addressBook:read";
72
+ "addressBook:readContact": "addressBook:readContact";
73
+ "addresses:read": "addresses:read";
74
+ "bookings:readAvailability": "bookings:readAvailability";
75
+ "calendar:read": "calendar:read";
76
+ "finances:read": "finances:read";
77
+ "finances:recordDelivery": "finances:recordDelivery";
78
+ "jobs:schedule": "jobs:schedule";
79
+ "mail:send": "mail:send";
80
+ "media:read": "media:read";
81
+ "news:read": "news:read";
82
+ "site:blocks": "site:blocks";
83
+ "sms:send": "sms:send";
84
+ "themes:install": "themes:install";
85
+ }>>>;
86
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
87
+ account: "account";
88
+ apartment: "apartment";
89
+ auditTrail: "auditTrail";
90
+ email: "email";
91
+ financial: "financial";
92
+ freeText: "freeText";
93
+ health: "health";
94
+ name: "name";
95
+ personalIdentityNumber: "personalIdentityNumber";
96
+ phone: "phone";
97
+ photograph: "photograph";
98
+ postalAddress: "postalAddress";
99
+ protected: "protected";
100
+ residency: "residency";
101
+ }>>>;
102
+ actions: z.ZodDefault<z.ZodArray<z.ZodObject<{
103
+ id: z.ZodString;
104
+ capability: z.ZodString;
105
+ effect: z.ZodEnum<{
106
+ delete: "delete";
107
+ read: "read";
108
+ write: "write";
109
+ }>;
110
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
111
+ account: "account";
112
+ apartment: "apartment";
113
+ auditTrail: "auditTrail";
114
+ email: "email";
115
+ financial: "financial";
116
+ freeText: "freeText";
117
+ health: "health";
118
+ name: "name";
119
+ personalIdentityNumber: "personalIdentityNumber";
120
+ phone: "phone";
121
+ photograph: "photograph";
122
+ postalAddress: "postalAddress";
123
+ protected: "protected";
124
+ residency: "residency";
125
+ }>>>;
126
+ surfaces: z.ZodDefault<z.ZodArray<z.ZodEnum<{
127
+ ai: "ai";
128
+ mcp: "mcp";
129
+ ui: "ui";
130
+ }>>>;
131
+ }, z.core.$strict>>>;
132
+ oauthProtectedResource: z.ZodOptional<z.ZodString>;
133
+ extensionPoints: z.ZodOptional<z.ZodArray<z.ZodObject<{
134
+ id: z.ZodString;
135
+ version: z.ZodInt;
136
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
137
+ account: "account";
138
+ apartment: "apartment";
139
+ auditTrail: "auditTrail";
140
+ email: "email";
141
+ financial: "financial";
142
+ freeText: "freeText";
143
+ health: "health";
144
+ name: "name";
145
+ personalIdentityNumber: "personalIdentityNumber";
146
+ phone: "phone";
147
+ photograph: "photograph";
148
+ postalAddress: "postalAddress";
149
+ protected: "protected";
150
+ residency: "residency";
151
+ }>>>;
152
+ title: z.ZodObject<{
153
+ sv: z.ZodString;
154
+ en: z.ZodString;
155
+ }, z.core.$strict>;
156
+ description: z.ZodObject<{
157
+ sv: z.ZodString;
158
+ en: z.ZodString;
159
+ }, z.core.$strict>;
160
+ }, z.core.$strict>>>;
161
+ extends: z.ZodOptional<z.ZodArray<z.ZodObject<{
162
+ plugin: z.ZodString;
163
+ point: z.ZodString;
164
+ version: z.ZodInt;
165
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
166
+ account: "account";
167
+ apartment: "apartment";
168
+ auditTrail: "auditTrail";
169
+ email: "email";
170
+ financial: "financial";
171
+ freeText: "freeText";
172
+ health: "health";
173
+ name: "name";
174
+ personalIdentityNumber: "personalIdentityNumber";
175
+ phone: "phone";
176
+ photograph: "photograph";
177
+ postalAddress: "postalAddress";
178
+ protected: "protected";
179
+ residency: "residency";
180
+ }>>>;
181
+ }, z.core.$strict>>>;
182
+ recipients: z.ZodOptional<z.ZodArray<z.ZodObject<{
183
+ id: z.ZodString;
184
+ origin: z.ZodString;
185
+ purpose: z.ZodObject<{
186
+ sv: z.ZodString;
187
+ en: z.ZodString;
188
+ }, z.core.$strict>;
189
+ personalData: z.ZodArray<z.ZodEnum<{
190
+ account: "account";
191
+ apartment: "apartment";
192
+ auditTrail: "auditTrail";
193
+ email: "email";
194
+ financial: "financial";
195
+ freeText: "freeText";
196
+ health: "health";
197
+ name: "name";
198
+ personalIdentityNumber: "personalIdentityNumber";
199
+ phone: "phone";
200
+ photograph: "photograph";
201
+ postalAddress: "postalAddress";
202
+ protected: "protected";
203
+ residency: "residency";
204
+ }>>;
205
+ }, z.core.$strict>>>;
206
+ deviceRoutes: z.ZodOptional<z.ZodArray<z.ZodObject<{
207
+ id: z.ZodString;
208
+ path: z.ZodString;
209
+ }, z.core.$strict>>>;
210
+ ai: z.ZodDefault<z.ZodBoolean>;
211
+ licence: z.ZodOptional<z.ZodObject<{
212
+ entitlement: z.ZodString;
213
+ issuer: z.ZodObject<{
214
+ name: z.ZodString;
215
+ url: z.ZodString;
216
+ }, z.core.$strict>;
217
+ keys: z.ZodRecord<z.ZodString, z.ZodString>;
218
+ audiences: z.ZodDefault<z.ZodArray<z.ZodString>>;
219
+ }, z.core.$strict>>;
220
+ released: z.ZodOptional<z.ZodString>;
221
+ }, z.core.$strict>;
222
+ /**
223
+ * A plugin entry in version 2 of the index: version 1's, and the processing
224
+ * declaration.
225
+ *
226
+ * Repeated from the manifest on the terms the permissions are, because the
227
+ * consent screen shows it before anything is downloaded and the install seeds
228
+ * the record of processing activities from what that screen showed. Whether it
229
+ * is there is decided with the personal data, by the index as a whole below,
230
+ * since a refined object cannot be extended into the next version's entry.
231
+ */
232
+ export declare const catalogPluginEntryV2Schema: z.ZodObject<{
233
+ id: z.ZodString;
234
+ version: z.ZodString;
235
+ name: z.ZodObject<{
236
+ sv: z.ZodString;
237
+ en: z.ZodString;
238
+ }, z.core.$strict>;
239
+ description: z.ZodObject<{
240
+ sv: z.ZodString;
241
+ en: z.ZodString;
242
+ }, z.core.$strict>;
243
+ artifact: z.ZodObject<{
244
+ url: z.ZodString;
245
+ sha512: z.ZodString;
246
+ bytes: z.ZodOptional<z.ZodInt>;
247
+ }, z.core.$strict>;
248
+ homepage: z.ZodOptional<z.ZodString>;
249
+ deprecated: z.ZodDefault<z.ZodBoolean>;
250
+ type: z.ZodLiteral<"plugin">;
251
+ packageName: z.ZodString;
252
+ apiVersion: z.ZodInt;
253
+ permissions: z.ZodDefault<z.ZodArray<z.ZodEnum<{
254
+ "addressBook:proposeImport": "addressBook:proposeImport";
37
255
  "addressBook:read": "addressBook:read";
38
256
  "addressBook:readContact": "addressBook:readContact";
257
+ "addresses:read": "addresses:read";
258
+ "bookings:readAvailability": "bookings:readAvailability";
259
+ "calendar:read": "calendar:read";
260
+ "finances:read": "finances:read";
261
+ "finances:recordDelivery": "finances:recordDelivery";
39
262
  "jobs:schedule": "jobs:schedule";
40
263
  "mail:send": "mail:send";
264
+ "media:read": "media:read";
265
+ "news:read": "news:read";
266
+ "site:blocks": "site:blocks";
41
267
  "sms:send": "sms:send";
268
+ "themes:install": "themes:install";
42
269
  }>>>;
43
270
  personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
271
+ account: "account";
44
272
  apartment: "apartment";
273
+ auditTrail: "auditTrail";
45
274
  email: "email";
275
+ financial: "financial";
276
+ freeText: "freeText";
277
+ health: "health";
46
278
  name: "name";
279
+ personalIdentityNumber: "personalIdentityNumber";
47
280
  phone: "phone";
281
+ photograph: "photograph";
282
+ postalAddress: "postalAddress";
283
+ protected: "protected";
48
284
  residency: "residency";
49
285
  }>>>;
50
286
  actions: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -78,6 +314,118 @@ export declare const catalogPluginEntrySchema: z.ZodObject<{
78
314
  }>>>;
79
315
  }, z.core.$strict>>>;
80
316
  oauthProtectedResource: z.ZodOptional<z.ZodString>;
317
+ extensionPoints: z.ZodOptional<z.ZodArray<z.ZodObject<{
318
+ id: z.ZodString;
319
+ version: z.ZodInt;
320
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
321
+ account: "account";
322
+ apartment: "apartment";
323
+ auditTrail: "auditTrail";
324
+ email: "email";
325
+ financial: "financial";
326
+ freeText: "freeText";
327
+ health: "health";
328
+ name: "name";
329
+ personalIdentityNumber: "personalIdentityNumber";
330
+ phone: "phone";
331
+ photograph: "photograph";
332
+ postalAddress: "postalAddress";
333
+ protected: "protected";
334
+ residency: "residency";
335
+ }>>>;
336
+ title: z.ZodObject<{
337
+ sv: z.ZodString;
338
+ en: z.ZodString;
339
+ }, z.core.$strict>;
340
+ description: z.ZodObject<{
341
+ sv: z.ZodString;
342
+ en: z.ZodString;
343
+ }, z.core.$strict>;
344
+ }, z.core.$strict>>>;
345
+ extends: z.ZodOptional<z.ZodArray<z.ZodObject<{
346
+ plugin: z.ZodString;
347
+ point: z.ZodString;
348
+ version: z.ZodInt;
349
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
350
+ account: "account";
351
+ apartment: "apartment";
352
+ auditTrail: "auditTrail";
353
+ email: "email";
354
+ financial: "financial";
355
+ freeText: "freeText";
356
+ health: "health";
357
+ name: "name";
358
+ personalIdentityNumber: "personalIdentityNumber";
359
+ phone: "phone";
360
+ photograph: "photograph";
361
+ postalAddress: "postalAddress";
362
+ protected: "protected";
363
+ residency: "residency";
364
+ }>>>;
365
+ }, z.core.$strict>>>;
366
+ recipients: z.ZodOptional<z.ZodArray<z.ZodObject<{
367
+ id: z.ZodString;
368
+ origin: z.ZodString;
369
+ purpose: z.ZodObject<{
370
+ sv: z.ZodString;
371
+ en: z.ZodString;
372
+ }, z.core.$strict>;
373
+ personalData: z.ZodArray<z.ZodEnum<{
374
+ account: "account";
375
+ apartment: "apartment";
376
+ auditTrail: "auditTrail";
377
+ email: "email";
378
+ financial: "financial";
379
+ freeText: "freeText";
380
+ health: "health";
381
+ name: "name";
382
+ personalIdentityNumber: "personalIdentityNumber";
383
+ phone: "phone";
384
+ photograph: "photograph";
385
+ postalAddress: "postalAddress";
386
+ protected: "protected";
387
+ residency: "residency";
388
+ }>>;
389
+ }, z.core.$strict>>>;
390
+ deviceRoutes: z.ZodOptional<z.ZodArray<z.ZodObject<{
391
+ id: z.ZodString;
392
+ path: z.ZodString;
393
+ }, z.core.$strict>>>;
394
+ ai: z.ZodDefault<z.ZodBoolean>;
395
+ licence: z.ZodOptional<z.ZodObject<{
396
+ entitlement: z.ZodString;
397
+ issuer: z.ZodObject<{
398
+ name: z.ZodString;
399
+ url: z.ZodString;
400
+ }, z.core.$strict>;
401
+ keys: z.ZodRecord<z.ZodString, z.ZodString>;
402
+ audiences: z.ZodDefault<z.ZodArray<z.ZodString>>;
403
+ }, z.core.$strict>>;
404
+ released: z.ZodOptional<z.ZodString>;
405
+ processing: z.ZodOptional<z.ZodObject<{
406
+ purpose: z.ZodObject<{
407
+ sv: z.ZodString;
408
+ en: z.ZodString;
409
+ }, z.core.$strict>;
410
+ legalBasis: z.ZodEnum<{
411
+ consent: "consent";
412
+ contract: "contract";
413
+ legalObligation: "legalObligation";
414
+ legitimateInterest: "legitimateInterest";
415
+ }>;
416
+ legitimateInterest: z.ZodOptional<z.ZodObject<{
417
+ sv: z.ZodString;
418
+ en: z.ZodString;
419
+ }, z.core.$strict>>;
420
+ retention: z.ZodObject<{
421
+ sv: z.ZodString;
422
+ en: z.ZodString;
423
+ }, z.core.$strict>;
424
+ dataSubjects: z.ZodArray<z.ZodEnum<{
425
+ members: "members";
426
+ residents: "residents";
427
+ }>>;
428
+ }, z.core.$strict>>;
81
429
  }, z.core.$strict>;
82
430
  /**
83
431
  * A theme entry. Themes install through the same download-and-verify path and
@@ -131,17 +479,36 @@ export declare const catalogEntrySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
131
479
  packageName: z.ZodString;
132
480
  apiVersion: z.ZodInt;
133
481
  permissions: z.ZodDefault<z.ZodArray<z.ZodEnum<{
482
+ "addressBook:proposeImport": "addressBook:proposeImport";
134
483
  "addressBook:read": "addressBook:read";
135
484
  "addressBook:readContact": "addressBook:readContact";
485
+ "addresses:read": "addresses:read";
486
+ "bookings:readAvailability": "bookings:readAvailability";
487
+ "calendar:read": "calendar:read";
488
+ "finances:read": "finances:read";
489
+ "finances:recordDelivery": "finances:recordDelivery";
136
490
  "jobs:schedule": "jobs:schedule";
137
491
  "mail:send": "mail:send";
492
+ "media:read": "media:read";
493
+ "news:read": "news:read";
494
+ "site:blocks": "site:blocks";
138
495
  "sms:send": "sms:send";
496
+ "themes:install": "themes:install";
139
497
  }>>>;
140
498
  personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
499
+ account: "account";
141
500
  apartment: "apartment";
501
+ auditTrail: "auditTrail";
142
502
  email: "email";
503
+ financial: "financial";
504
+ freeText: "freeText";
505
+ health: "health";
143
506
  name: "name";
507
+ personalIdentityNumber: "personalIdentityNumber";
144
508
  phone: "phone";
509
+ photograph: "photograph";
510
+ postalAddress: "postalAddress";
511
+ protected: "protected";
145
512
  residency: "residency";
146
513
  }>>>;
147
514
  actions: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -175,40 +542,363 @@ export declare const catalogEntrySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
175
542
  }>>>;
176
543
  }, z.core.$strict>>>;
177
544
  oauthProtectedResource: z.ZodOptional<z.ZodString>;
178
- }, z.core.$strict>, z.ZodObject<{
179
- id: z.ZodString;
180
- version: z.ZodString;
181
- name: z.ZodObject<{
182
- sv: z.ZodString;
183
- en: z.ZodString;
184
- }, z.core.$strict>;
185
- description: z.ZodObject<{
186
- sv: z.ZodString;
187
- en: z.ZodString;
188
- }, z.core.$strict>;
189
- artifact: z.ZodObject<{
190
- url: z.ZodString;
191
- sha512: z.ZodString;
192
- bytes: z.ZodOptional<z.ZodInt>;
193
- }, z.core.$strict>;
194
- homepage: z.ZodOptional<z.ZodString>;
195
- deprecated: z.ZodDefault<z.ZodBoolean>;
196
- type: z.ZodLiteral<"theme">;
197
- contract: z.ZodOptional<z.ZodString>;
198
- extends: z.ZodOptional<z.ZodString>;
199
- }, z.core.$strict>], "type">;
200
- export type CatalogPluginEntry = z.infer<typeof catalogPluginEntrySchema>;
201
- export type CatalogThemeEntry = z.infer<typeof catalogThemeEntrySchema>;
202
- export type CatalogEntry = z.infer<typeof catalogEntrySchema>;
203
- export declare const catalogSchema: z.ZodObject<{
204
- version: z.ZodLiteral<1>;
205
- entries: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
545
+ extensionPoints: z.ZodOptional<z.ZodArray<z.ZodObject<{
206
546
  id: z.ZodString;
207
- version: z.ZodString;
208
- name: z.ZodObject<{
209
- sv: z.ZodString;
210
- en: z.ZodString;
211
- }, z.core.$strict>;
547
+ version: z.ZodInt;
548
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
549
+ account: "account";
550
+ apartment: "apartment";
551
+ auditTrail: "auditTrail";
552
+ email: "email";
553
+ financial: "financial";
554
+ freeText: "freeText";
555
+ health: "health";
556
+ name: "name";
557
+ personalIdentityNumber: "personalIdentityNumber";
558
+ phone: "phone";
559
+ photograph: "photograph";
560
+ postalAddress: "postalAddress";
561
+ protected: "protected";
562
+ residency: "residency";
563
+ }>>>;
564
+ title: z.ZodObject<{
565
+ sv: z.ZodString;
566
+ en: z.ZodString;
567
+ }, z.core.$strict>;
568
+ description: z.ZodObject<{
569
+ sv: z.ZodString;
570
+ en: z.ZodString;
571
+ }, z.core.$strict>;
572
+ }, z.core.$strict>>>;
573
+ extends: z.ZodOptional<z.ZodArray<z.ZodObject<{
574
+ plugin: z.ZodString;
575
+ point: z.ZodString;
576
+ version: z.ZodInt;
577
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
578
+ account: "account";
579
+ apartment: "apartment";
580
+ auditTrail: "auditTrail";
581
+ email: "email";
582
+ financial: "financial";
583
+ freeText: "freeText";
584
+ health: "health";
585
+ name: "name";
586
+ personalIdentityNumber: "personalIdentityNumber";
587
+ phone: "phone";
588
+ photograph: "photograph";
589
+ postalAddress: "postalAddress";
590
+ protected: "protected";
591
+ residency: "residency";
592
+ }>>>;
593
+ }, z.core.$strict>>>;
594
+ recipients: z.ZodOptional<z.ZodArray<z.ZodObject<{
595
+ id: z.ZodString;
596
+ origin: z.ZodString;
597
+ purpose: z.ZodObject<{
598
+ sv: z.ZodString;
599
+ en: z.ZodString;
600
+ }, z.core.$strict>;
601
+ personalData: z.ZodArray<z.ZodEnum<{
602
+ account: "account";
603
+ apartment: "apartment";
604
+ auditTrail: "auditTrail";
605
+ email: "email";
606
+ financial: "financial";
607
+ freeText: "freeText";
608
+ health: "health";
609
+ name: "name";
610
+ personalIdentityNumber: "personalIdentityNumber";
611
+ phone: "phone";
612
+ photograph: "photograph";
613
+ postalAddress: "postalAddress";
614
+ protected: "protected";
615
+ residency: "residency";
616
+ }>>;
617
+ }, z.core.$strict>>>;
618
+ deviceRoutes: z.ZodOptional<z.ZodArray<z.ZodObject<{
619
+ id: z.ZodString;
620
+ path: z.ZodString;
621
+ }, z.core.$strict>>>;
622
+ ai: z.ZodDefault<z.ZodBoolean>;
623
+ licence: z.ZodOptional<z.ZodObject<{
624
+ entitlement: z.ZodString;
625
+ issuer: z.ZodObject<{
626
+ name: z.ZodString;
627
+ url: z.ZodString;
628
+ }, z.core.$strict>;
629
+ keys: z.ZodRecord<z.ZodString, z.ZodString>;
630
+ audiences: z.ZodDefault<z.ZodArray<z.ZodString>>;
631
+ }, z.core.$strict>>;
632
+ released: z.ZodOptional<z.ZodString>;
633
+ }, z.core.$strict>, z.ZodObject<{
634
+ id: z.ZodString;
635
+ version: z.ZodString;
636
+ name: z.ZodObject<{
637
+ sv: z.ZodString;
638
+ en: z.ZodString;
639
+ }, z.core.$strict>;
640
+ description: z.ZodObject<{
641
+ sv: z.ZodString;
642
+ en: z.ZodString;
643
+ }, z.core.$strict>;
644
+ artifact: z.ZodObject<{
645
+ url: z.ZodString;
646
+ sha512: z.ZodString;
647
+ bytes: z.ZodOptional<z.ZodInt>;
648
+ }, z.core.$strict>;
649
+ homepage: z.ZodOptional<z.ZodString>;
650
+ deprecated: z.ZodDefault<z.ZodBoolean>;
651
+ type: z.ZodLiteral<"theme">;
652
+ contract: z.ZodOptional<z.ZodString>;
653
+ extends: z.ZodOptional<z.ZodString>;
654
+ }, z.core.$strict>], "type">;
655
+ export declare const catalogEntryV2Schema: z.ZodDiscriminatedUnion<[z.ZodObject<{
656
+ id: z.ZodString;
657
+ version: z.ZodString;
658
+ name: z.ZodObject<{
659
+ sv: z.ZodString;
660
+ en: z.ZodString;
661
+ }, z.core.$strict>;
662
+ description: z.ZodObject<{
663
+ sv: z.ZodString;
664
+ en: z.ZodString;
665
+ }, z.core.$strict>;
666
+ artifact: z.ZodObject<{
667
+ url: z.ZodString;
668
+ sha512: z.ZodString;
669
+ bytes: z.ZodOptional<z.ZodInt>;
670
+ }, z.core.$strict>;
671
+ homepage: z.ZodOptional<z.ZodString>;
672
+ deprecated: z.ZodDefault<z.ZodBoolean>;
673
+ type: z.ZodLiteral<"plugin">;
674
+ packageName: z.ZodString;
675
+ apiVersion: z.ZodInt;
676
+ permissions: z.ZodDefault<z.ZodArray<z.ZodEnum<{
677
+ "addressBook:proposeImport": "addressBook:proposeImport";
678
+ "addressBook:read": "addressBook:read";
679
+ "addressBook:readContact": "addressBook:readContact";
680
+ "addresses:read": "addresses:read";
681
+ "bookings:readAvailability": "bookings:readAvailability";
682
+ "calendar:read": "calendar:read";
683
+ "finances:read": "finances:read";
684
+ "finances:recordDelivery": "finances:recordDelivery";
685
+ "jobs:schedule": "jobs:schedule";
686
+ "mail:send": "mail:send";
687
+ "media:read": "media:read";
688
+ "news:read": "news:read";
689
+ "site:blocks": "site:blocks";
690
+ "sms:send": "sms:send";
691
+ "themes:install": "themes:install";
692
+ }>>>;
693
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
694
+ account: "account";
695
+ apartment: "apartment";
696
+ auditTrail: "auditTrail";
697
+ email: "email";
698
+ financial: "financial";
699
+ freeText: "freeText";
700
+ health: "health";
701
+ name: "name";
702
+ personalIdentityNumber: "personalIdentityNumber";
703
+ phone: "phone";
704
+ photograph: "photograph";
705
+ postalAddress: "postalAddress";
706
+ protected: "protected";
707
+ residency: "residency";
708
+ }>>>;
709
+ actions: z.ZodDefault<z.ZodArray<z.ZodObject<{
710
+ id: z.ZodString;
711
+ capability: z.ZodString;
712
+ effect: z.ZodEnum<{
713
+ delete: "delete";
714
+ read: "read";
715
+ write: "write";
716
+ }>;
717
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
718
+ account: "account";
719
+ apartment: "apartment";
720
+ auditTrail: "auditTrail";
721
+ email: "email";
722
+ financial: "financial";
723
+ freeText: "freeText";
724
+ health: "health";
725
+ name: "name";
726
+ personalIdentityNumber: "personalIdentityNumber";
727
+ phone: "phone";
728
+ photograph: "photograph";
729
+ postalAddress: "postalAddress";
730
+ protected: "protected";
731
+ residency: "residency";
732
+ }>>>;
733
+ surfaces: z.ZodDefault<z.ZodArray<z.ZodEnum<{
734
+ ai: "ai";
735
+ mcp: "mcp";
736
+ ui: "ui";
737
+ }>>>;
738
+ }, z.core.$strict>>>;
739
+ oauthProtectedResource: z.ZodOptional<z.ZodString>;
740
+ extensionPoints: z.ZodOptional<z.ZodArray<z.ZodObject<{
741
+ id: z.ZodString;
742
+ version: z.ZodInt;
743
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
744
+ account: "account";
745
+ apartment: "apartment";
746
+ auditTrail: "auditTrail";
747
+ email: "email";
748
+ financial: "financial";
749
+ freeText: "freeText";
750
+ health: "health";
751
+ name: "name";
752
+ personalIdentityNumber: "personalIdentityNumber";
753
+ phone: "phone";
754
+ photograph: "photograph";
755
+ postalAddress: "postalAddress";
756
+ protected: "protected";
757
+ residency: "residency";
758
+ }>>>;
759
+ title: z.ZodObject<{
760
+ sv: z.ZodString;
761
+ en: z.ZodString;
762
+ }, z.core.$strict>;
763
+ description: z.ZodObject<{
764
+ sv: z.ZodString;
765
+ en: z.ZodString;
766
+ }, z.core.$strict>;
767
+ }, z.core.$strict>>>;
768
+ extends: z.ZodOptional<z.ZodArray<z.ZodObject<{
769
+ plugin: z.ZodString;
770
+ point: z.ZodString;
771
+ version: z.ZodInt;
772
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
773
+ account: "account";
774
+ apartment: "apartment";
775
+ auditTrail: "auditTrail";
776
+ email: "email";
777
+ financial: "financial";
778
+ freeText: "freeText";
779
+ health: "health";
780
+ name: "name";
781
+ personalIdentityNumber: "personalIdentityNumber";
782
+ phone: "phone";
783
+ photograph: "photograph";
784
+ postalAddress: "postalAddress";
785
+ protected: "protected";
786
+ residency: "residency";
787
+ }>>>;
788
+ }, z.core.$strict>>>;
789
+ recipients: z.ZodOptional<z.ZodArray<z.ZodObject<{
790
+ id: z.ZodString;
791
+ origin: z.ZodString;
792
+ purpose: z.ZodObject<{
793
+ sv: z.ZodString;
794
+ en: z.ZodString;
795
+ }, z.core.$strict>;
796
+ personalData: z.ZodArray<z.ZodEnum<{
797
+ account: "account";
798
+ apartment: "apartment";
799
+ auditTrail: "auditTrail";
800
+ email: "email";
801
+ financial: "financial";
802
+ freeText: "freeText";
803
+ health: "health";
804
+ name: "name";
805
+ personalIdentityNumber: "personalIdentityNumber";
806
+ phone: "phone";
807
+ photograph: "photograph";
808
+ postalAddress: "postalAddress";
809
+ protected: "protected";
810
+ residency: "residency";
811
+ }>>;
812
+ }, z.core.$strict>>>;
813
+ deviceRoutes: z.ZodOptional<z.ZodArray<z.ZodObject<{
814
+ id: z.ZodString;
815
+ path: z.ZodString;
816
+ }, z.core.$strict>>>;
817
+ ai: z.ZodDefault<z.ZodBoolean>;
818
+ licence: z.ZodOptional<z.ZodObject<{
819
+ entitlement: z.ZodString;
820
+ issuer: z.ZodObject<{
821
+ name: z.ZodString;
822
+ url: z.ZodString;
823
+ }, z.core.$strict>;
824
+ keys: z.ZodRecord<z.ZodString, z.ZodString>;
825
+ audiences: z.ZodDefault<z.ZodArray<z.ZodString>>;
826
+ }, z.core.$strict>>;
827
+ released: z.ZodOptional<z.ZodString>;
828
+ processing: z.ZodOptional<z.ZodObject<{
829
+ purpose: z.ZodObject<{
830
+ sv: z.ZodString;
831
+ en: z.ZodString;
832
+ }, z.core.$strict>;
833
+ legalBasis: z.ZodEnum<{
834
+ consent: "consent";
835
+ contract: "contract";
836
+ legalObligation: "legalObligation";
837
+ legitimateInterest: "legitimateInterest";
838
+ }>;
839
+ legitimateInterest: z.ZodOptional<z.ZodObject<{
840
+ sv: z.ZodString;
841
+ en: z.ZodString;
842
+ }, z.core.$strict>>;
843
+ retention: z.ZodObject<{
844
+ sv: z.ZodString;
845
+ en: z.ZodString;
846
+ }, z.core.$strict>;
847
+ dataSubjects: z.ZodArray<z.ZodEnum<{
848
+ members: "members";
849
+ residents: "residents";
850
+ }>>;
851
+ }, z.core.$strict>>;
852
+ }, z.core.$strict>, z.ZodObject<{
853
+ id: z.ZodString;
854
+ version: z.ZodString;
855
+ name: z.ZodObject<{
856
+ sv: z.ZodString;
857
+ en: z.ZodString;
858
+ }, z.core.$strict>;
859
+ description: z.ZodObject<{
860
+ sv: z.ZodString;
861
+ en: z.ZodString;
862
+ }, z.core.$strict>;
863
+ artifact: z.ZodObject<{
864
+ url: z.ZodString;
865
+ sha512: z.ZodString;
866
+ bytes: z.ZodOptional<z.ZodInt>;
867
+ }, z.core.$strict>;
868
+ homepage: z.ZodOptional<z.ZodString>;
869
+ deprecated: z.ZodDefault<z.ZodBoolean>;
870
+ type: z.ZodLiteral<"theme">;
871
+ contract: z.ZodOptional<z.ZodString>;
872
+ extends: z.ZodOptional<z.ZodString>;
873
+ }, z.core.$strict>], "type">;
874
+ /**
875
+ * A plugin entry, as whichever version of the index it came from. A version 1
876
+ * entry is one with no processing and no device routes declared.
877
+ */
878
+ export type CatalogPluginEntry = z.infer<typeof catalogPluginEntryV2Schema>;
879
+ export type CatalogThemeEntry = z.infer<typeof catalogThemeEntrySchema>;
880
+ export type CatalogEntry = CatalogPluginEntry | CatalogThemeEntry;
881
+ /**
882
+ * The index versions this package reads.
883
+ *
884
+ * Version 2 adds the fields ADR 0030 lists: `extensionPoints` and `extends`
885
+ * (ADR 0030), `recipients` (ADR 0037) and `deviceRoutes` (ADR 0031), and
886
+ * `processing` (ADR 0035). An instance reads both, and the catalog serves
887
+ * version 1, without the entries that need version 2, to instances that have
888
+ * not upgraded.
889
+ */
890
+ export declare const CATALOG_INDEX_VERSIONS: readonly [1, 2];
891
+ /** The version of the index this SDK writes and reads first. */
892
+ export declare const CATALOG_INDEX_VERSION = 2;
893
+ export declare const catalogSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
894
+ version: z.ZodLiteral<1>;
895
+ entries: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
896
+ id: z.ZodString;
897
+ version: z.ZodString;
898
+ name: z.ZodObject<{
899
+ sv: z.ZodString;
900
+ en: z.ZodString;
901
+ }, z.core.$strict>;
212
902
  description: z.ZodObject<{
213
903
  sv: z.ZodString;
214
904
  en: z.ZodString;
@@ -224,17 +914,36 @@ export declare const catalogSchema: z.ZodObject<{
224
914
  packageName: z.ZodString;
225
915
  apiVersion: z.ZodInt;
226
916
  permissions: z.ZodDefault<z.ZodArray<z.ZodEnum<{
917
+ "addressBook:proposeImport": "addressBook:proposeImport";
227
918
  "addressBook:read": "addressBook:read";
228
919
  "addressBook:readContact": "addressBook:readContact";
920
+ "addresses:read": "addresses:read";
921
+ "bookings:readAvailability": "bookings:readAvailability";
922
+ "calendar:read": "calendar:read";
923
+ "finances:read": "finances:read";
924
+ "finances:recordDelivery": "finances:recordDelivery";
229
925
  "jobs:schedule": "jobs:schedule";
230
926
  "mail:send": "mail:send";
927
+ "media:read": "media:read";
928
+ "news:read": "news:read";
929
+ "site:blocks": "site:blocks";
231
930
  "sms:send": "sms:send";
931
+ "themes:install": "themes:install";
232
932
  }>>>;
233
933
  personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
934
+ account: "account";
234
935
  apartment: "apartment";
936
+ auditTrail: "auditTrail";
235
937
  email: "email";
938
+ financial: "financial";
939
+ freeText: "freeText";
940
+ health: "health";
236
941
  name: "name";
942
+ personalIdentityNumber: "personalIdentityNumber";
237
943
  phone: "phone";
944
+ photograph: "photograph";
945
+ postalAddress: "postalAddress";
946
+ protected: "protected";
238
947
  residency: "residency";
239
948
  }>>>;
240
949
  actions: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -268,6 +977,94 @@ export declare const catalogSchema: z.ZodObject<{
268
977
  }>>>;
269
978
  }, z.core.$strict>>>;
270
979
  oauthProtectedResource: z.ZodOptional<z.ZodString>;
980
+ extensionPoints: z.ZodOptional<z.ZodArray<z.ZodObject<{
981
+ id: z.ZodString;
982
+ version: z.ZodInt;
983
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
984
+ account: "account";
985
+ apartment: "apartment";
986
+ auditTrail: "auditTrail";
987
+ email: "email";
988
+ financial: "financial";
989
+ freeText: "freeText";
990
+ health: "health";
991
+ name: "name";
992
+ personalIdentityNumber: "personalIdentityNumber";
993
+ phone: "phone";
994
+ photograph: "photograph";
995
+ postalAddress: "postalAddress";
996
+ protected: "protected";
997
+ residency: "residency";
998
+ }>>>;
999
+ title: z.ZodObject<{
1000
+ sv: z.ZodString;
1001
+ en: z.ZodString;
1002
+ }, z.core.$strict>;
1003
+ description: z.ZodObject<{
1004
+ sv: z.ZodString;
1005
+ en: z.ZodString;
1006
+ }, z.core.$strict>;
1007
+ }, z.core.$strict>>>;
1008
+ extends: z.ZodOptional<z.ZodArray<z.ZodObject<{
1009
+ plugin: z.ZodString;
1010
+ point: z.ZodString;
1011
+ version: z.ZodInt;
1012
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
1013
+ account: "account";
1014
+ apartment: "apartment";
1015
+ auditTrail: "auditTrail";
1016
+ email: "email";
1017
+ financial: "financial";
1018
+ freeText: "freeText";
1019
+ health: "health";
1020
+ name: "name";
1021
+ personalIdentityNumber: "personalIdentityNumber";
1022
+ phone: "phone";
1023
+ photograph: "photograph";
1024
+ postalAddress: "postalAddress";
1025
+ protected: "protected";
1026
+ residency: "residency";
1027
+ }>>>;
1028
+ }, z.core.$strict>>>;
1029
+ recipients: z.ZodOptional<z.ZodArray<z.ZodObject<{
1030
+ id: z.ZodString;
1031
+ origin: z.ZodString;
1032
+ purpose: z.ZodObject<{
1033
+ sv: z.ZodString;
1034
+ en: z.ZodString;
1035
+ }, z.core.$strict>;
1036
+ personalData: z.ZodArray<z.ZodEnum<{
1037
+ account: "account";
1038
+ apartment: "apartment";
1039
+ auditTrail: "auditTrail";
1040
+ email: "email";
1041
+ financial: "financial";
1042
+ freeText: "freeText";
1043
+ health: "health";
1044
+ name: "name";
1045
+ personalIdentityNumber: "personalIdentityNumber";
1046
+ phone: "phone";
1047
+ photograph: "photograph";
1048
+ postalAddress: "postalAddress";
1049
+ protected: "protected";
1050
+ residency: "residency";
1051
+ }>>;
1052
+ }, z.core.$strict>>>;
1053
+ deviceRoutes: z.ZodOptional<z.ZodArray<z.ZodObject<{
1054
+ id: z.ZodString;
1055
+ path: z.ZodString;
1056
+ }, z.core.$strict>>>;
1057
+ ai: z.ZodDefault<z.ZodBoolean>;
1058
+ licence: z.ZodOptional<z.ZodObject<{
1059
+ entitlement: z.ZodString;
1060
+ issuer: z.ZodObject<{
1061
+ name: z.ZodString;
1062
+ url: z.ZodString;
1063
+ }, z.core.$strict>;
1064
+ keys: z.ZodRecord<z.ZodString, z.ZodString>;
1065
+ audiences: z.ZodDefault<z.ZodArray<z.ZodString>>;
1066
+ }, z.core.$strict>>;
1067
+ released: z.ZodOptional<z.ZodString>;
271
1068
  }, z.core.$strict>, z.ZodObject<{
272
1069
  id: z.ZodString;
273
1070
  version: z.ZodString;
@@ -290,14 +1087,269 @@ export declare const catalogSchema: z.ZodObject<{
290
1087
  contract: z.ZodOptional<z.ZodString>;
291
1088
  extends: z.ZodOptional<z.ZodString>;
292
1089
  }, z.core.$strict>], "type">>;
293
- }, z.core.$strict>;
294
- export type Catalog = z.infer<typeof catalogSchema>;
1090
+ }, z.core.$strict>, z.ZodObject<{
1091
+ version: z.ZodLiteral<2>;
1092
+ entries: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1093
+ id: z.ZodString;
1094
+ version: z.ZodString;
1095
+ name: z.ZodObject<{
1096
+ sv: z.ZodString;
1097
+ en: z.ZodString;
1098
+ }, z.core.$strict>;
1099
+ description: z.ZodObject<{
1100
+ sv: z.ZodString;
1101
+ en: z.ZodString;
1102
+ }, z.core.$strict>;
1103
+ artifact: z.ZodObject<{
1104
+ url: z.ZodString;
1105
+ sha512: z.ZodString;
1106
+ bytes: z.ZodOptional<z.ZodInt>;
1107
+ }, z.core.$strict>;
1108
+ homepage: z.ZodOptional<z.ZodString>;
1109
+ deprecated: z.ZodDefault<z.ZodBoolean>;
1110
+ type: z.ZodLiteral<"plugin">;
1111
+ packageName: z.ZodString;
1112
+ apiVersion: z.ZodInt;
1113
+ permissions: z.ZodDefault<z.ZodArray<z.ZodEnum<{
1114
+ "addressBook:proposeImport": "addressBook:proposeImport";
1115
+ "addressBook:read": "addressBook:read";
1116
+ "addressBook:readContact": "addressBook:readContact";
1117
+ "addresses:read": "addresses:read";
1118
+ "bookings:readAvailability": "bookings:readAvailability";
1119
+ "calendar:read": "calendar:read";
1120
+ "finances:read": "finances:read";
1121
+ "finances:recordDelivery": "finances:recordDelivery";
1122
+ "jobs:schedule": "jobs:schedule";
1123
+ "mail:send": "mail:send";
1124
+ "media:read": "media:read";
1125
+ "news:read": "news:read";
1126
+ "site:blocks": "site:blocks";
1127
+ "sms:send": "sms:send";
1128
+ "themes:install": "themes:install";
1129
+ }>>>;
1130
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
1131
+ account: "account";
1132
+ apartment: "apartment";
1133
+ auditTrail: "auditTrail";
1134
+ email: "email";
1135
+ financial: "financial";
1136
+ freeText: "freeText";
1137
+ health: "health";
1138
+ name: "name";
1139
+ personalIdentityNumber: "personalIdentityNumber";
1140
+ phone: "phone";
1141
+ photograph: "photograph";
1142
+ postalAddress: "postalAddress";
1143
+ protected: "protected";
1144
+ residency: "residency";
1145
+ }>>>;
1146
+ actions: z.ZodDefault<z.ZodArray<z.ZodObject<{
1147
+ id: z.ZodString;
1148
+ capability: z.ZodString;
1149
+ effect: z.ZodEnum<{
1150
+ delete: "delete";
1151
+ read: "read";
1152
+ write: "write";
1153
+ }>;
1154
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
1155
+ account: "account";
1156
+ apartment: "apartment";
1157
+ auditTrail: "auditTrail";
1158
+ email: "email";
1159
+ financial: "financial";
1160
+ freeText: "freeText";
1161
+ health: "health";
1162
+ name: "name";
1163
+ personalIdentityNumber: "personalIdentityNumber";
1164
+ phone: "phone";
1165
+ photograph: "photograph";
1166
+ postalAddress: "postalAddress";
1167
+ protected: "protected";
1168
+ residency: "residency";
1169
+ }>>>;
1170
+ surfaces: z.ZodDefault<z.ZodArray<z.ZodEnum<{
1171
+ ai: "ai";
1172
+ mcp: "mcp";
1173
+ ui: "ui";
1174
+ }>>>;
1175
+ }, z.core.$strict>>>;
1176
+ oauthProtectedResource: z.ZodOptional<z.ZodString>;
1177
+ extensionPoints: z.ZodOptional<z.ZodArray<z.ZodObject<{
1178
+ id: z.ZodString;
1179
+ version: z.ZodInt;
1180
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
1181
+ account: "account";
1182
+ apartment: "apartment";
1183
+ auditTrail: "auditTrail";
1184
+ email: "email";
1185
+ financial: "financial";
1186
+ freeText: "freeText";
1187
+ health: "health";
1188
+ name: "name";
1189
+ personalIdentityNumber: "personalIdentityNumber";
1190
+ phone: "phone";
1191
+ photograph: "photograph";
1192
+ postalAddress: "postalAddress";
1193
+ protected: "protected";
1194
+ residency: "residency";
1195
+ }>>>;
1196
+ title: z.ZodObject<{
1197
+ sv: z.ZodString;
1198
+ en: z.ZodString;
1199
+ }, z.core.$strict>;
1200
+ description: z.ZodObject<{
1201
+ sv: z.ZodString;
1202
+ en: z.ZodString;
1203
+ }, z.core.$strict>;
1204
+ }, z.core.$strict>>>;
1205
+ extends: z.ZodOptional<z.ZodArray<z.ZodObject<{
1206
+ plugin: z.ZodString;
1207
+ point: z.ZodString;
1208
+ version: z.ZodInt;
1209
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
1210
+ account: "account";
1211
+ apartment: "apartment";
1212
+ auditTrail: "auditTrail";
1213
+ email: "email";
1214
+ financial: "financial";
1215
+ freeText: "freeText";
1216
+ health: "health";
1217
+ name: "name";
1218
+ personalIdentityNumber: "personalIdentityNumber";
1219
+ phone: "phone";
1220
+ photograph: "photograph";
1221
+ postalAddress: "postalAddress";
1222
+ protected: "protected";
1223
+ residency: "residency";
1224
+ }>>>;
1225
+ }, z.core.$strict>>>;
1226
+ recipients: z.ZodOptional<z.ZodArray<z.ZodObject<{
1227
+ id: z.ZodString;
1228
+ origin: z.ZodString;
1229
+ purpose: z.ZodObject<{
1230
+ sv: z.ZodString;
1231
+ en: z.ZodString;
1232
+ }, z.core.$strict>;
1233
+ personalData: z.ZodArray<z.ZodEnum<{
1234
+ account: "account";
1235
+ apartment: "apartment";
1236
+ auditTrail: "auditTrail";
1237
+ email: "email";
1238
+ financial: "financial";
1239
+ freeText: "freeText";
1240
+ health: "health";
1241
+ name: "name";
1242
+ personalIdentityNumber: "personalIdentityNumber";
1243
+ phone: "phone";
1244
+ photograph: "photograph";
1245
+ postalAddress: "postalAddress";
1246
+ protected: "protected";
1247
+ residency: "residency";
1248
+ }>>;
1249
+ }, z.core.$strict>>>;
1250
+ deviceRoutes: z.ZodOptional<z.ZodArray<z.ZodObject<{
1251
+ id: z.ZodString;
1252
+ path: z.ZodString;
1253
+ }, z.core.$strict>>>;
1254
+ ai: z.ZodDefault<z.ZodBoolean>;
1255
+ licence: z.ZodOptional<z.ZodObject<{
1256
+ entitlement: z.ZodString;
1257
+ issuer: z.ZodObject<{
1258
+ name: z.ZodString;
1259
+ url: z.ZodString;
1260
+ }, z.core.$strict>;
1261
+ keys: z.ZodRecord<z.ZodString, z.ZodString>;
1262
+ audiences: z.ZodDefault<z.ZodArray<z.ZodString>>;
1263
+ }, z.core.$strict>>;
1264
+ released: z.ZodOptional<z.ZodString>;
1265
+ processing: z.ZodOptional<z.ZodObject<{
1266
+ purpose: z.ZodObject<{
1267
+ sv: z.ZodString;
1268
+ en: z.ZodString;
1269
+ }, z.core.$strict>;
1270
+ legalBasis: z.ZodEnum<{
1271
+ consent: "consent";
1272
+ contract: "contract";
1273
+ legalObligation: "legalObligation";
1274
+ legitimateInterest: "legitimateInterest";
1275
+ }>;
1276
+ legitimateInterest: z.ZodOptional<z.ZodObject<{
1277
+ sv: z.ZodString;
1278
+ en: z.ZodString;
1279
+ }, z.core.$strict>>;
1280
+ retention: z.ZodObject<{
1281
+ sv: z.ZodString;
1282
+ en: z.ZodString;
1283
+ }, z.core.$strict>;
1284
+ dataSubjects: z.ZodArray<z.ZodEnum<{
1285
+ members: "members";
1286
+ residents: "residents";
1287
+ }>>;
1288
+ }, z.core.$strict>>;
1289
+ }, z.core.$strict>, z.ZodObject<{
1290
+ id: z.ZodString;
1291
+ version: z.ZodString;
1292
+ name: z.ZodObject<{
1293
+ sv: z.ZodString;
1294
+ en: z.ZodString;
1295
+ }, z.core.$strict>;
1296
+ description: z.ZodObject<{
1297
+ sv: z.ZodString;
1298
+ en: z.ZodString;
1299
+ }, z.core.$strict>;
1300
+ artifact: z.ZodObject<{
1301
+ url: z.ZodString;
1302
+ sha512: z.ZodString;
1303
+ bytes: z.ZodOptional<z.ZodInt>;
1304
+ }, z.core.$strict>;
1305
+ homepage: z.ZodOptional<z.ZodString>;
1306
+ deprecated: z.ZodDefault<z.ZodBoolean>;
1307
+ type: z.ZodLiteral<"theme">;
1308
+ contract: z.ZodOptional<z.ZodString>;
1309
+ extends: z.ZodOptional<z.ZodString>;
1310
+ }, z.core.$strict>], "type">>;
1311
+ }, z.core.$strict>], "version">;
1312
+ /** An index of either version, read as one shape. */
1313
+ export interface Catalog {
1314
+ version: z.infer<typeof catalogSchema>["version"];
1315
+ entries: CatalogEntry[];
1316
+ }
1317
+ /**
1318
+ * The refusals of an index that its reader is told in their own language.
1319
+ *
1320
+ * What the schema says about one entry's field is English for the catalog's
1321
+ * curator, who fixes the index from it. These hold one entry against another,
1322
+ * an addon against the plugin it extends or against the plugins joined to it,
1323
+ * and are the loader's own refusals of the same pair, under the same codes. So
1324
+ * the refusal carries its code and the values its sentence is completed with
1325
+ * beside the English line, and whoever shows it translates the code.
1326
+ */
1327
+ export declare const CATALOG_REFUSALS: readonly ["extension-point-unknown", "extension-version-unsupported", "extension-personal-data-refused", "extension-permission-refused", "extension-host-personal-data-refused", "extension-group-refused"];
1328
+ export type CatalogRefusalCode = (typeof CATALOG_REFUSALS)[number];
1329
+ /**
1330
+ * One refusal of `CATALOG_REFUSALS`: its code, and the refused entry's id as
1331
+ * `addon` with the plugin, point and lists its sentence names.
1332
+ */
1333
+ export interface CatalogRefusal {
1334
+ readonly code: CatalogRefusalCode;
1335
+ readonly detail: PluginFindingDetail;
1336
+ }
1337
+ /** One problem with an index: the English line, and its refusal if it has one. */
1338
+ export interface CatalogDiagnostic {
1339
+ /** The line, already naming the field. */
1340
+ readonly issue: string;
1341
+ /** The refusal the line states, or null when it is a field's own problem. */
1342
+ readonly refusal: CatalogRefusal | null;
1343
+ }
295
1344
  export type CatalogParseResult = {
296
1345
  ok: true;
297
1346
  value: Catalog;
298
1347
  } | {
299
1348
  ok: false;
1349
+ /** One line per problem, already naming the field. */
300
1350
  issues: readonly string[];
1351
+ /** The same problems, each with its refusal where it has one. */
1352
+ diagnostics: readonly CatalogDiagnostic[];
301
1353
  };
302
1354
  /**
303
1355
  * Parses a catalog index.
@@ -311,5 +1363,4 @@ export type CatalogParseResult = {
311
1363
  * catalog's own check can list every problem at once.
312
1364
  */
313
1365
  export declare function parseCatalogIndex(input: unknown): CatalogParseResult;
314
- export {};
315
1366
  //# sourceMappingURL=catalog.d.ts.map