@openbrf/plugin-sdk 1.0.0 → 1.2.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 (100) 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 +399 -7
  21. package/dist/catalog.d.ts.map +1 -1
  22. package/dist/catalog.js +373 -9
  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 +90 -1
  37. package/dist/findings.d.ts.map +1 -1
  38. package/dist/findings.js +89 -0
  39. package/dist/findings.js.map +1 -1
  40. package/dist/host.d.ts +621 -2
  41. package/dist/host.d.ts.map +1 -1
  42. package/dist/host.js +39 -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 +730 -0
  57. package/dist/manifest.d.ts.map +1 -1
  58. package/dist/manifest.js +805 -11
  59. package/dist/manifest.js.map +1 -1
  60. package/dist/permissions.d.ts +170 -11
  61. package/dist/permissions.d.ts.map +1 -1
  62. package/dist/permissions.js +210 -2
  63. package/dist/permissions.js.map +1 -1
  64. package/dist/recipients.d.ts +139 -0
  65. package/dist/recipients.d.ts.map +1 -0
  66. package/dist/recipients.js +223 -0
  67. package/dist/recipients.js.map +1 -0
  68. package/dist/records.d.ts +130 -0
  69. package/dist/records.d.ts.map +1 -0
  70. package/dist/records.js +85 -0
  71. package/dist/records.js.map +1 -0
  72. package/dist/require-capability.d.ts +37 -0
  73. package/dist/require-capability.d.ts.map +1 -0
  74. package/dist/require-capability.js +88 -0
  75. package/dist/require-capability.js.map +1 -0
  76. package/dist/settings-schema.d.ts +35 -0
  77. package/dist/settings-schema.d.ts.map +1 -1
  78. package/dist/settings-schema.js +55 -2
  79. package/dist/settings-schema.js.map +1 -1
  80. package/package.json +4 -4
  81. package/src/abort-signal.ts +22 -0
  82. package/src/action-refusal.ts +178 -0
  83. package/src/action-schema.ts +4 -1
  84. package/src/actions.ts +103 -6
  85. package/src/blocks.ts +289 -0
  86. package/src/catalog.ts +500 -57
  87. package/src/entitlements.ts +150 -0
  88. package/src/extensions.ts +212 -0
  89. package/src/finances.ts +317 -0
  90. package/src/findings.ts +92 -0
  91. package/src/host.ts +656 -2
  92. package/src/imports.ts +135 -0
  93. package/src/index.ts +193 -0
  94. package/src/localized-text.ts +19 -0
  95. package/src/manifest.ts +1039 -12
  96. package/src/permissions.ts +223 -3
  97. package/src/recipients.ts +294 -0
  98. package/src/records.ts +172 -0
  99. package/src/require-capability.ts +106 -0
  100. 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,36 @@ 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";
37
71
  "addressBook:read": "addressBook:read";
38
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";
39
78
  "jobs:schedule": "jobs:schedule";
40
79
  "mail:send": "mail:send";
80
+ "media:read": "media:read";
81
+ "news:read": "news:read";
82
+ "site:blocks": "site:blocks";
41
83
  "sms:send": "sms:send";
84
+ "themes:install": "themes:install";
42
85
  }>>>;
43
86
  personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
87
+ account: "account";
44
88
  apartment: "apartment";
89
+ auditTrail: "auditTrail";
45
90
  email: "email";
91
+ financial: "financial";
92
+ freeText: "freeText";
93
+ health: "health";
46
94
  name: "name";
95
+ personalIdentityNumber: "personalIdentityNumber";
47
96
  phone: "phone";
97
+ photograph: "photograph";
98
+ postalAddress: "postalAddress";
99
+ protected: "protected";
48
100
  residency: "residency";
49
101
  }>>>;
50
102
  actions: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -78,6 +130,94 @@ export declare const catalogPluginEntrySchema: z.ZodObject<{
78
130
  }>>>;
79
131
  }, z.core.$strict>>>;
80
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>;
81
221
  }, z.core.$strict>;
82
222
  /**
83
223
  * A theme entry. Themes install through the same download-and-verify path and
@@ -131,17 +271,36 @@ export declare const catalogEntrySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
131
271
  packageName: z.ZodString;
132
272
  apiVersion: z.ZodInt;
133
273
  permissions: z.ZodDefault<z.ZodArray<z.ZodEnum<{
274
+ "addressBook:proposeImport": "addressBook:proposeImport";
134
275
  "addressBook:read": "addressBook:read";
135
276
  "addressBook:readContact": "addressBook:readContact";
277
+ "addresses:read": "addresses:read";
278
+ "bookings:readAvailability": "bookings:readAvailability";
279
+ "calendar:read": "calendar:read";
280
+ "finances:read": "finances:read";
281
+ "finances:recordDelivery": "finances:recordDelivery";
136
282
  "jobs:schedule": "jobs:schedule";
137
283
  "mail:send": "mail:send";
284
+ "media:read": "media:read";
285
+ "news:read": "news:read";
286
+ "site:blocks": "site:blocks";
138
287
  "sms:send": "sms:send";
288
+ "themes:install": "themes:install";
139
289
  }>>>;
140
290
  personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
291
+ account: "account";
141
292
  apartment: "apartment";
293
+ auditTrail: "auditTrail";
142
294
  email: "email";
295
+ financial: "financial";
296
+ freeText: "freeText";
297
+ health: "health";
143
298
  name: "name";
299
+ personalIdentityNumber: "personalIdentityNumber";
144
300
  phone: "phone";
301
+ photograph: "photograph";
302
+ postalAddress: "postalAddress";
303
+ protected: "protected";
145
304
  residency: "residency";
146
305
  }>>>;
147
306
  actions: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -175,6 +334,94 @@ export declare const catalogEntrySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
175
334
  }>>>;
176
335
  }, z.core.$strict>>>;
177
336
  oauthProtectedResource: z.ZodOptional<z.ZodString>;
337
+ extensionPoints: z.ZodOptional<z.ZodArray<z.ZodObject<{
338
+ id: z.ZodString;
339
+ version: z.ZodInt;
340
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
341
+ account: "account";
342
+ apartment: "apartment";
343
+ auditTrail: "auditTrail";
344
+ email: "email";
345
+ financial: "financial";
346
+ freeText: "freeText";
347
+ health: "health";
348
+ name: "name";
349
+ personalIdentityNumber: "personalIdentityNumber";
350
+ phone: "phone";
351
+ photograph: "photograph";
352
+ postalAddress: "postalAddress";
353
+ protected: "protected";
354
+ residency: "residency";
355
+ }>>>;
356
+ title: z.ZodObject<{
357
+ sv: z.ZodString;
358
+ en: z.ZodString;
359
+ }, z.core.$strict>;
360
+ description: z.ZodObject<{
361
+ sv: z.ZodString;
362
+ en: z.ZodString;
363
+ }, z.core.$strict>;
364
+ }, z.core.$strict>>>;
365
+ extends: z.ZodOptional<z.ZodArray<z.ZodObject<{
366
+ plugin: z.ZodString;
367
+ point: z.ZodString;
368
+ version: z.ZodInt;
369
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
370
+ account: "account";
371
+ apartment: "apartment";
372
+ auditTrail: "auditTrail";
373
+ email: "email";
374
+ financial: "financial";
375
+ freeText: "freeText";
376
+ health: "health";
377
+ name: "name";
378
+ personalIdentityNumber: "personalIdentityNumber";
379
+ phone: "phone";
380
+ photograph: "photograph";
381
+ postalAddress: "postalAddress";
382
+ protected: "protected";
383
+ residency: "residency";
384
+ }>>>;
385
+ }, z.core.$strict>>>;
386
+ recipients: z.ZodOptional<z.ZodArray<z.ZodObject<{
387
+ id: z.ZodString;
388
+ origin: z.ZodString;
389
+ purpose: z.ZodObject<{
390
+ sv: z.ZodString;
391
+ en: z.ZodString;
392
+ }, z.core.$strict>;
393
+ personalData: z.ZodArray<z.ZodEnum<{
394
+ account: "account";
395
+ apartment: "apartment";
396
+ auditTrail: "auditTrail";
397
+ email: "email";
398
+ financial: "financial";
399
+ freeText: "freeText";
400
+ health: "health";
401
+ name: "name";
402
+ personalIdentityNumber: "personalIdentityNumber";
403
+ phone: "phone";
404
+ photograph: "photograph";
405
+ postalAddress: "postalAddress";
406
+ protected: "protected";
407
+ residency: "residency";
408
+ }>>;
409
+ }, z.core.$strict>>>;
410
+ deviceRoutes: z.ZodOptional<z.ZodArray<z.ZodObject<{
411
+ id: z.ZodString;
412
+ path: z.ZodString;
413
+ }, z.core.$strict>>>;
414
+ ai: z.ZodDefault<z.ZodBoolean>;
415
+ licence: z.ZodOptional<z.ZodObject<{
416
+ entitlement: z.ZodString;
417
+ issuer: z.ZodObject<{
418
+ name: z.ZodString;
419
+ url: z.ZodString;
420
+ }, z.core.$strict>;
421
+ keys: z.ZodRecord<z.ZodString, z.ZodString>;
422
+ audiences: z.ZodDefault<z.ZodArray<z.ZodString>>;
423
+ }, z.core.$strict>>;
424
+ released: z.ZodOptional<z.ZodString>;
178
425
  }, z.core.$strict>, z.ZodObject<{
179
426
  id: z.ZodString;
180
427
  version: z.ZodString;
@@ -200,8 +447,17 @@ export declare const catalogEntrySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
200
447
  export type CatalogPluginEntry = z.infer<typeof catalogPluginEntrySchema>;
201
448
  export type CatalogThemeEntry = z.infer<typeof catalogThemeEntrySchema>;
202
449
  export type CatalogEntry = z.infer<typeof catalogEntrySchema>;
450
+ /**
451
+ * The index versions this package reads.
452
+ *
453
+ * Version 2 adds the fields ADR 0030 lists: `extensionPoints` and `extends`
454
+ * (ADR 0030), `recipients` (ADR 0037) and `deviceRoutes` (ADR 0031). An
455
+ * instance reads both, and the catalog serves version 1, without the entries
456
+ * that need version 2, to instances that have not upgraded.
457
+ */
458
+ export declare const CATALOG_INDEX_VERSIONS: readonly [1, 2];
203
459
  export declare const catalogSchema: z.ZodObject<{
204
- version: z.ZodLiteral<1>;
460
+ version: z.ZodLiteral<1 | 2>;
205
461
  entries: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
206
462
  id: z.ZodString;
207
463
  version: z.ZodString;
@@ -224,17 +480,36 @@ export declare const catalogSchema: z.ZodObject<{
224
480
  packageName: z.ZodString;
225
481
  apiVersion: z.ZodInt;
226
482
  permissions: z.ZodDefault<z.ZodArray<z.ZodEnum<{
483
+ "addressBook:proposeImport": "addressBook:proposeImport";
227
484
  "addressBook:read": "addressBook:read";
228
485
  "addressBook:readContact": "addressBook:readContact";
486
+ "addresses:read": "addresses:read";
487
+ "bookings:readAvailability": "bookings:readAvailability";
488
+ "calendar:read": "calendar:read";
489
+ "finances:read": "finances:read";
490
+ "finances:recordDelivery": "finances:recordDelivery";
229
491
  "jobs:schedule": "jobs:schedule";
230
492
  "mail:send": "mail:send";
493
+ "media:read": "media:read";
494
+ "news:read": "news:read";
495
+ "site:blocks": "site:blocks";
231
496
  "sms:send": "sms:send";
497
+ "themes:install": "themes:install";
232
498
  }>>>;
233
499
  personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
500
+ account: "account";
234
501
  apartment: "apartment";
502
+ auditTrail: "auditTrail";
235
503
  email: "email";
504
+ financial: "financial";
505
+ freeText: "freeText";
506
+ health: "health";
236
507
  name: "name";
508
+ personalIdentityNumber: "personalIdentityNumber";
237
509
  phone: "phone";
510
+ photograph: "photograph";
511
+ postalAddress: "postalAddress";
512
+ protected: "protected";
238
513
  residency: "residency";
239
514
  }>>>;
240
515
  actions: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -268,6 +543,94 @@ export declare const catalogSchema: z.ZodObject<{
268
543
  }>>>;
269
544
  }, z.core.$strict>>>;
270
545
  oauthProtectedResource: z.ZodOptional<z.ZodString>;
546
+ extensionPoints: z.ZodOptional<z.ZodArray<z.ZodObject<{
547
+ id: z.ZodString;
548
+ version: z.ZodInt;
549
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
550
+ account: "account";
551
+ apartment: "apartment";
552
+ auditTrail: "auditTrail";
553
+ email: "email";
554
+ financial: "financial";
555
+ freeText: "freeText";
556
+ health: "health";
557
+ name: "name";
558
+ personalIdentityNumber: "personalIdentityNumber";
559
+ phone: "phone";
560
+ photograph: "photograph";
561
+ postalAddress: "postalAddress";
562
+ protected: "protected";
563
+ residency: "residency";
564
+ }>>>;
565
+ title: z.ZodObject<{
566
+ sv: z.ZodString;
567
+ en: z.ZodString;
568
+ }, z.core.$strict>;
569
+ description: z.ZodObject<{
570
+ sv: z.ZodString;
571
+ en: z.ZodString;
572
+ }, z.core.$strict>;
573
+ }, z.core.$strict>>>;
574
+ extends: z.ZodOptional<z.ZodArray<z.ZodObject<{
575
+ plugin: z.ZodString;
576
+ point: z.ZodString;
577
+ version: z.ZodInt;
578
+ personalData: z.ZodDefault<z.ZodArray<z.ZodEnum<{
579
+ account: "account";
580
+ apartment: "apartment";
581
+ auditTrail: "auditTrail";
582
+ email: "email";
583
+ financial: "financial";
584
+ freeText: "freeText";
585
+ health: "health";
586
+ name: "name";
587
+ personalIdentityNumber: "personalIdentityNumber";
588
+ phone: "phone";
589
+ photograph: "photograph";
590
+ postalAddress: "postalAddress";
591
+ protected: "protected";
592
+ residency: "residency";
593
+ }>>>;
594
+ }, z.core.$strict>>>;
595
+ recipients: z.ZodOptional<z.ZodArray<z.ZodObject<{
596
+ id: z.ZodString;
597
+ origin: z.ZodString;
598
+ purpose: z.ZodObject<{
599
+ sv: z.ZodString;
600
+ en: z.ZodString;
601
+ }, z.core.$strict>;
602
+ personalData: z.ZodArray<z.ZodEnum<{
603
+ account: "account";
604
+ apartment: "apartment";
605
+ auditTrail: "auditTrail";
606
+ email: "email";
607
+ financial: "financial";
608
+ freeText: "freeText";
609
+ health: "health";
610
+ name: "name";
611
+ personalIdentityNumber: "personalIdentityNumber";
612
+ phone: "phone";
613
+ photograph: "photograph";
614
+ postalAddress: "postalAddress";
615
+ protected: "protected";
616
+ residency: "residency";
617
+ }>>;
618
+ }, z.core.$strict>>>;
619
+ deviceRoutes: z.ZodOptional<z.ZodArray<z.ZodObject<{
620
+ id: z.ZodString;
621
+ path: z.ZodString;
622
+ }, z.core.$strict>>>;
623
+ ai: z.ZodDefault<z.ZodBoolean>;
624
+ licence: z.ZodOptional<z.ZodObject<{
625
+ entitlement: z.ZodString;
626
+ issuer: z.ZodObject<{
627
+ name: z.ZodString;
628
+ url: z.ZodString;
629
+ }, z.core.$strict>;
630
+ keys: z.ZodRecord<z.ZodString, z.ZodString>;
631
+ audiences: z.ZodDefault<z.ZodArray<z.ZodString>>;
632
+ }, z.core.$strict>>;
633
+ released: z.ZodOptional<z.ZodString>;
271
634
  }, z.core.$strict>, z.ZodObject<{
272
635
  id: z.ZodString;
273
636
  version: z.ZodString;
@@ -292,12 +655,42 @@ export declare const catalogSchema: z.ZodObject<{
292
655
  }, z.core.$strict>], "type">>;
293
656
  }, z.core.$strict>;
294
657
  export type Catalog = z.infer<typeof catalogSchema>;
658
+ /**
659
+ * The refusals of an index that its reader is told in their own language.
660
+ *
661
+ * What the schema says about one entry's field is English for the catalog's
662
+ * curator, who fixes the index from it. These hold one entry against another,
663
+ * an addon against the plugin it extends or against the plugins joined to it,
664
+ * and are the loader's own refusals of the same pair, under the same codes. So
665
+ * the refusal carries its code and the values its sentence is completed with
666
+ * beside the English line, and whoever shows it translates the code.
667
+ */
668
+ 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"];
669
+ export type CatalogRefusalCode = (typeof CATALOG_REFUSALS)[number];
670
+ /**
671
+ * One refusal of `CATALOG_REFUSALS`: its code, and the refused entry's id as
672
+ * `addon` with the plugin, point and lists its sentence names.
673
+ */
674
+ export interface CatalogRefusal {
675
+ readonly code: CatalogRefusalCode;
676
+ readonly detail: PluginFindingDetail;
677
+ }
678
+ /** One problem with an index: the English line, and its refusal if it has one. */
679
+ export interface CatalogDiagnostic {
680
+ /** The line, already naming the field. */
681
+ readonly issue: string;
682
+ /** The refusal the line states, or null when it is a field's own problem. */
683
+ readonly refusal: CatalogRefusal | null;
684
+ }
295
685
  export type CatalogParseResult = {
296
686
  ok: true;
297
687
  value: Catalog;
298
688
  } | {
299
689
  ok: false;
690
+ /** One line per problem, already naming the field. */
300
691
  issues: readonly string[];
692
+ /** The same problems, each with its refusal where it has one. */
693
+ diagnostics: readonly CatalogDiagnostic[];
301
694
  };
302
695
  /**
303
696
  * Parses a catalog index.
@@ -311,5 +704,4 @@ export type CatalogParseResult = {
311
704
  * catalog's own check can list every problem at once.
312
705
  */
313
706
  export declare function parseCatalogIndex(input: unknown): CatalogParseResult;
314
- export {};
315
707
  //# sourceMappingURL=catalog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqDxB,uDAAuD;AACvD,eAAO,MAAM,qBAAqB;;;;kBAyBhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,2EAA2E;AAC3E,QAAA,MAAM,mBAAmB;;;kBAGvB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAmBhE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA6CnC,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;kBAMlC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAG7B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0BtB,CAAC;AAEL,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,MAAM,MAAM,kBAAkB,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAE1E;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAWpE"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}