@openbrf/plugin-sdk 1.2.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.
package/dist/host.js CHANGED
@@ -20,6 +20,21 @@ export class PluginPermissionError extends Error {
20
20
  this.name = "PluginPermissionError";
21
21
  }
22
22
  }
23
+ /** The bounds `host.audit.record` holds an entry to. */
24
+ export const PLUGIN_AUDIT_LIMITS = {
25
+ /** Characters in `event`, which is also part of a text key. */
26
+ event: 64,
27
+ /** Characters in `targetKind`. */
28
+ targetKind: 64,
29
+ /** Characters in `targetId`. */
30
+ targetId: 200,
31
+ /** Values in `detail`. */
32
+ detailValues: 8,
33
+ /** Characters in a key of `detail`, letters and digits. */
34
+ detailKey: 64,
35
+ /** Characters in a string value of `detail`. */
36
+ detailValue: 200,
37
+ };
23
38
  /** Why `host.recipients.fetch` sent nothing, or got no answer. */
24
39
  export const PLUGIN_RECIPIENT_ERROR_CODES = [
25
40
  /** The manifest declares no recipient by that id. */
package/dist/host.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;GAUG;AAEH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAEnC,QAAQ;IACR,UAAU;IAFrB,YACW,QAAgB,EAChB,UAA4B;QAErC,KAAK,CACH,WAAW,QAAQ,mCAAmC,UAAU,IAAI;YAClE,kDAAkD,CACrD,CAAC;wBANO,QAAQ;0BACR,UAAU;QAMnB,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAskBD,kEAAkE;AAClE,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,qDAAqD;IACrD,wBAAwB;IACxB,wDAAwD;IACxD,cAAc;IACd,+EAA+E;IAC/E,iBAAiB;IACjB,gFAAgF;IAChF,4BAA4B;IAC5B,wEAAwE;IACxE,iBAAiB;IACjB,wEAAwE;IACxE,iBAAiB;IACjB,2EAA2E;IAC3E,kBAAkB;IAClB,+DAA+D;IAC/D,aAAa;IACb,gDAAgD;IAChD,oBAAoB;CACZ,CAAC;AAKX;;;;;GAKG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAElC,QAAQ;IACR,SAAS;IACT,IAAI;IAHf,YACW,QAAgB,EAChB,SAAiB,EACjB,IAA8B;QAEvC,KAAK,CACH,WAAW,QAAQ,oCAAoC,SAAS,MAAM,IAAI,GAAG,CAC9E,CAAC;wBANO,QAAQ;yBACR,SAAS;oBACT,IAAI;QAKb,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAyND;;;;;;;GAOG;AACH,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAExC,QAAQ;IACR,MAAM;IAFjB,YACW,QAAgB,EAChB,MAAc;QAEvB,KAAK,CAAC,WAAW,QAAQ,yBAAyB,MAAM,EAAE,CAAC,CAAC;wBAHnD,QAAQ;sBACR,MAAM;QAGf,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;GAUG;AAEH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAEnC,QAAQ;IACR,UAAU;IAFrB,YACW,QAAgB,EAChB,UAA4B;QAErC,KAAK,CACH,WAAW,QAAQ,mCAAmC,UAAU,IAAI;YAClE,kDAAkD,CACrD,CAAC;wBANO,QAAQ;0BACR,UAAU;QAMnB,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAiND,wDAAwD;AACxD,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,+DAA+D;IAC/D,KAAK,EAAE,EAAE;IACT,kCAAkC;IAClC,UAAU,EAAE,EAAE;IACd,gCAAgC;IAChC,QAAQ,EAAE,GAAG;IACb,0BAA0B;IAC1B,YAAY,EAAE,CAAC;IACf,2DAA2D;IAC3D,SAAS,EAAE,EAAE;IACb,gDAAgD;IAChD,WAAW,EAAE,GAAG;CACR,CAAC;AA6cX,kEAAkE;AAClE,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,qDAAqD;IACrD,wBAAwB;IACxB,wDAAwD;IACxD,cAAc;IACd,+EAA+E;IAC/E,iBAAiB;IACjB,gFAAgF;IAChF,4BAA4B;IAC5B,wEAAwE;IACxE,iBAAiB;IACjB,wEAAwE;IACxE,iBAAiB;IACjB,2EAA2E;IAC3E,kBAAkB;IAClB,+DAA+D;IAC/D,aAAa;IACb,gDAAgD;IAChD,oBAAoB;CACZ,CAAC;AAKX;;;;;GAKG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAElC,QAAQ;IACR,SAAS;IACT,IAAI;IAHf,YACW,QAAgB,EAChB,SAAiB,EACjB,IAA8B;QAEvC,KAAK,CACH,WAAW,QAAQ,oCAAoC,SAAS,MAAM,IAAI,GAAG,CAC9E,CAAC;wBANO,QAAQ;yBACR,SAAS;oBACT,IAAI;QAKb,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAiOD;;;;;;;GAOG;AACH,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAExC,QAAQ;IACR,MAAM;IAFjB,YACW,QAAgB,EAChB,MAAc;QAEvB,KAAK,CAAC,WAAW,QAAQ,yBAAyB,MAAM,EAAE,CAAC,CAAC;wBAHnD,QAAQ;sBACR,MAAM;QAGf,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -13,7 +13,7 @@ export { ACTION_ERROR_MCP, ACTION_ERROR_REASONS, type ActionErrorReason, type Ac
13
13
  export { actionInputJsonSchema, actionOutputJsonSchema, isHostZodSchema, } from "./action-schema.ts";
14
14
  export { isSupportedApiVersion, PLUGIN_API_VERSION, SUPPORTED_PLUGIN_API_VERSIONS, } from "./api-version.ts";
15
15
  export { PLUGIN_BLOCK_ATTRIBUTES, PLUGIN_BLOCK_CATEGORIES, PLUGIN_BLOCK_ELEMENTS, PLUGIN_BLOCK_ICONS, PLUGIN_BLOCK_NAME_PATTERN, PLUGIN_BLOCK_RENDER_TIMEOUT_MS, type PluginBlockAbortSignal, type PluginBlockCategory, type PluginBlockContent, type PluginBlockDeclaration, type PluginBlockElement, type PluginBlockElementName, type PluginBlockIcon, type PluginBlockNode, type PluginBlockRegistration, type PluginBlockRenderContext, type PluginBlocks, pluginBlockSchema, pluginBlocksSchema, pluginBlockType, } from "./blocks.ts";
16
- export { type Catalog, CATALOG_INDEX_VERSIONS, CATALOG_REFUSALS, type CatalogArtifact, catalogArtifactSchema, type CatalogDiagnostic, type CatalogEntry, catalogEntrySchema, type CatalogExtensionPoint, catalogExtensionPointSchema, type CatalogParseResult, type CatalogPluginEntry, catalogPluginEntrySchema, type CatalogRefusal, type CatalogRefusalCode, catalogSchema, type CatalogThemeEntry, catalogThemeEntrySchema, type LocalizedText, parseCatalogIndex, } from "./catalog.ts";
16
+ export { type Catalog, CATALOG_INDEX_VERSIONS, CATALOG_REFUSALS, type CatalogArtifact, catalogArtifactSchema, type CatalogDiagnostic, type CatalogEntry, catalogEntrySchema, catalogEntryV2Schema, CATALOG_INDEX_VERSION, type CatalogExtensionPoint, catalogExtensionPointSchema, type CatalogParseResult, type CatalogPluginEntry, catalogPluginEntrySchema, catalogPluginEntryV2Schema, type CatalogRefusal, type CatalogRefusalCode, catalogSchema, type CatalogThemeEntry, catalogThemeEntrySchema, type LocalizedText, parseCatalogIndex, } from "./catalog.ts";
17
17
  export { definePlugin } from "./define-plugin.ts";
18
18
  export { createTestEntitlements, ENTITLEMENT_STATUSES, type EntitlementState, type EntitlementStatus, LICENCE_FILE_MAX_BYTES, LICENCE_FORMAT, LICENCE_PRESENTATION_FORMAT, LICENCE_PRESENTATION_MAX_BYTES, type PluginEntitlements, type TestEntitlementsOptions, undeclaredAudienceError, } from "./entitlements.ts";
19
19
  export { EXTENSION_MAX_OUTPUT_LENGTH, EXTENSION_MAX_TIMEOUT_MS, EXTENSION_POINT_ID_PATTERN, EXTENSION_RESULT_REASONS, EXTENSION_TIMEOUT_MS, type ExtensionContext, type ExtensionContributionDefinition, type ExtensionContributionSummary, type ExtensionPointDefinition, type ExtensionResult, type ExtensionResultReason, type ExtensionTarget, MAX_EXTENSION_POINTS, type PluginExtensions, } from "./extensions.ts";
@@ -21,9 +21,9 @@ export { PLUGIN_FINANCE_EVENTS, PluginDeliveryRefusedError, type PluginDeliveryR
21
21
  export { IMPORT_PROPOSAL_REFUSAL_REASONS, IMPORT_PROPOSAL_STATES, type ImportProposalFile, type ImportProposalReceipt, type ImportProposalRefusalReason, ImportProposalRefusedError, type ImportProposalState, type ImportProposalStatus, type PluginImports, } from "./imports.ts";
22
22
  export { formatSha512, IntegrityError, parseSha512 } from "./integrity.ts";
23
23
  export { PLUGIN_FINDING_REASONS, PLUGIN_MANIFEST_RULES, type PluginFindingDetail, type PluginFindingReason, type PluginManifestRule, } from "./findings.ts";
24
- export { PLUGIN_RECIPIENT_ERROR_CODES, type DeviceTokenSummary, type PluginAddress, type PluginAddressBook, type PluginAddresses, type PluginApartment, type PluginBookableResource, type PluginBookings, type PluginBusyInterval, type PluginCalendar, type PluginContentAudience, type PluginDevices, type PluginDisclosure, type PluginHost, PluginHostUnavailableError, type PluginJobs, type PluginLogger, type PluginMail, type PluginMailMessage, type PluginMedia, type PluginMediaFile, type PluginMediaStream, type PluginMeetingNotice, type PluginNews, type PluginNewsItem, type PluginOccupancySummary, type PluginOccurrence, PluginPermissionError, PluginRecipientError, type PluginRecipientErrorCode, type PluginRecipientRequest, type PluginRecipientResponse, type PluginRecipients, type PluginResident, type PluginSettings, type PluginInstalledTheme, type PluginSms, type PluginSmsMessage, type PluginThemeInstallOptions, type PluginThemeInstallResult, type PluginThemeInstallWarning, type PluginThemes, } from "./host.ts";
24
+ export { PLUGIN_RECIPIENT_ERROR_CODES, type DeviceTokenSummary, type PluginAddress, type PluginAddressBook, type PluginAddresses, type PluginApartment, type PluginAudit, type PluginAuditEntry, PLUGIN_AUDIT_LIMITS, type PluginBookableResource, type PluginBookings, type PluginBusyInterval, type PluginCalendar, type PluginContentAudience, type PluginDevices, type PluginDisclosure, type PluginHost, PluginHostUnavailableError, type PluginJobs, type PluginLogger, type PluginMail, type PluginMailMessage, type PluginMedia, type PluginMediaFile, type PluginMediaStream, type PluginMeetingNotice, type PluginNews, type PluginNewsItem, type PluginOccupancySummary, type PluginOccurrence, PluginPermissionError, PluginRecipientError, type PluginRecipientErrorCode, type PluginRecipientRequest, type PluginRecipientResponse, type PluginRecipients, type PluginResident, type PluginResidentFilter, type PluginSettings, type PluginInstalledTheme, type PluginSms, type PluginSmsMessage, type PluginThemeInstallOptions, type PluginThemeInstallResult, type PluginThemeInstallWarning, type PluginThemes, } from "./host.ts";
25
25
  export type { PluginModuleFactory } from "./module.ts";
26
- export { assertPluginPackage, composedActionName, CURRENT_PLUGIN_API_VERSION, declaredExtensionPointsSchema, declaredExtensionsSchema, extensionGroupRefusals, extensionHostPersonalDataRefused, extensionPermissionsRefused, extensionPointIdSchema, extensionPointRefusal, type ExtensionPointRefusal, extensionRuleIssues, MAX_DEVICE_ROUTES, isCalendarDay, licenceAudienceSchema, licenceKeyIdSchema, licencePublicKeySchema, type ManifestParseResult, type PluginActionDeclaration, pluginActionSchema, pluginActionsSchema, type PluginDeviceRoute, pluginDeviceRouteSchema, pluginDeviceRoutesSchema, type PluginEntry, pluginEntrySchema, type PluginExtensionDeclaration, type PluginExtensionPointDeclaration, pluginExtensionPointSchema, pluginExtensionSchema, pluginIdSchema, type PluginLicenceDeclaration, pluginLicenceSchema, type PluginManifest, pluginManifestSchema, type PluginPackage, pluginPackageSchema, type PluginView, pluginViewSchema, type PluginViewSection, PLUGIN_VIEW_SECTIONS, parsePluginPackage, proposeImportPersonalDataIssues, routePathsOverlap, } from "./manifest.ts";
26
+ export { assertPluginPackage, composedActionName, CURRENT_PLUGIN_API_VERSION, declaredExtensionPointsSchema, declaredExtensionsSchema, extensionGroupRefusals, extensionHostPersonalDataRefused, extensionPermissionsRefused, extensionPointIdSchema, extensionPointRefusal, type ExtensionPointRefusal, extensionRuleIssues, MAX_DEVICE_ROUTES, isCalendarDay, licenceAudienceSchema, licenceKeyIdSchema, licencePublicKeySchema, type ManifestParseResult, missingProcessingProblem, readsAddressBook, undeclaredPersonalDataProblem, PLUGIN_DATA_SUBJECTS, PLUGIN_LEGAL_BASES, type PluginActionDeclaration, pluginActionSchema, pluginActionsSchema, type PluginDeviceRoute, pluginDeviceRouteSchema, pluginDeviceRoutesSchema, type PluginEntry, pluginEntrySchema, type PluginExtensionDeclaration, type PluginExtensionPointDeclaration, pluginExtensionPointSchema, pluginExtensionSchema, pluginIdSchema, type PluginDataSubject, type PluginLegalBasis, type PluginLicenceDeclaration, pluginLicenceSchema, type PluginManifest, pluginManifestSchema, type PluginPackage, pluginPackageSchema, type PluginProcessing, pluginProcessingSchema, type PluginView, pluginViewSchema, type PluginViewSection, PLUGIN_VIEW_SECTIONS, parsePluginPackage, proposeImportPersonalDataIssues, routePathsOverlap, } from "./manifest.ts";
27
27
  export { HOST_SHARED_PACKAGES, type PluginPackageContents, pluginPackageProblems, } from "./package-check.ts";
28
28
  export { PLUGIN_ROUTE_CAPABILITIES, type PluginRouteCapability, REQUIRED_CAPABILITIES_KEY, RequireCapability, } from "./require-capability.ts";
29
29
  export type { StandardSchemaIssue, StandardSchemaResult, StandardSchemaV1, } from "./standard-schema.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -12,7 +12,7 @@ export { ACTION_ERROR_MCP, ACTION_ERROR_REASONS, isActionRefusal, } from "./acti
12
12
  export { actionInputJsonSchema, actionOutputJsonSchema, isHostZodSchema, } from "./action-schema.js";
13
13
  export { isSupportedApiVersion, PLUGIN_API_VERSION, SUPPORTED_PLUGIN_API_VERSIONS, } from "./api-version.js";
14
14
  export { PLUGIN_BLOCK_ATTRIBUTES, PLUGIN_BLOCK_CATEGORIES, PLUGIN_BLOCK_ELEMENTS, PLUGIN_BLOCK_ICONS, PLUGIN_BLOCK_NAME_PATTERN, PLUGIN_BLOCK_RENDER_TIMEOUT_MS, pluginBlockSchema, pluginBlocksSchema, pluginBlockType, } from "./blocks.js";
15
- export { CATALOG_INDEX_VERSIONS, CATALOG_REFUSALS, catalogArtifactSchema, catalogEntrySchema, catalogExtensionPointSchema, catalogPluginEntrySchema, catalogSchema, catalogThemeEntrySchema, parseCatalogIndex, } from "./catalog.js";
15
+ export { CATALOG_INDEX_VERSIONS, CATALOG_REFUSALS, catalogArtifactSchema, catalogEntrySchema, catalogEntryV2Schema, CATALOG_INDEX_VERSION, catalogExtensionPointSchema, catalogPluginEntrySchema, catalogPluginEntryV2Schema, catalogSchema, catalogThemeEntrySchema, parseCatalogIndex, } from "./catalog.js";
16
16
  export { definePlugin } from "./define-plugin.js";
17
17
  export { createTestEntitlements, ENTITLEMENT_STATUSES, LICENCE_FILE_MAX_BYTES, LICENCE_FORMAT, LICENCE_PRESENTATION_FORMAT, LICENCE_PRESENTATION_MAX_BYTES, undeclaredAudienceError, } from "./entitlements.js";
18
18
  export { EXTENSION_MAX_OUTPUT_LENGTH, EXTENSION_MAX_TIMEOUT_MS, EXTENSION_POINT_ID_PATTERN, EXTENSION_RESULT_REASONS, EXTENSION_TIMEOUT_MS, MAX_EXTENSION_POINTS, } from "./extensions.js";
@@ -20,8 +20,8 @@ export { PLUGIN_FINANCE_EVENTS, PluginDeliveryRefusedError, } from "./finances.j
20
20
  export { IMPORT_PROPOSAL_REFUSAL_REASONS, IMPORT_PROPOSAL_STATES, ImportProposalRefusedError, } from "./imports.js";
21
21
  export { formatSha512, IntegrityError, parseSha512 } from "./integrity.js";
22
22
  export { PLUGIN_FINDING_REASONS, PLUGIN_MANIFEST_RULES, } from "./findings.js";
23
- export { PLUGIN_RECIPIENT_ERROR_CODES, PluginHostUnavailableError, PluginPermissionError, PluginRecipientError, } from "./host.js";
24
- export { assertPluginPackage, composedActionName, CURRENT_PLUGIN_API_VERSION, declaredExtensionPointsSchema, declaredExtensionsSchema, extensionGroupRefusals, extensionHostPersonalDataRefused, extensionPermissionsRefused, extensionPointIdSchema, extensionPointRefusal, extensionRuleIssues, MAX_DEVICE_ROUTES, isCalendarDay, licenceAudienceSchema, licenceKeyIdSchema, licencePublicKeySchema, pluginActionSchema, pluginActionsSchema, pluginDeviceRouteSchema, pluginDeviceRoutesSchema, pluginEntrySchema, pluginExtensionPointSchema, pluginExtensionSchema, pluginIdSchema, pluginLicenceSchema, pluginManifestSchema, pluginPackageSchema, pluginViewSchema, PLUGIN_VIEW_SECTIONS, parsePluginPackage, proposeImportPersonalDataIssues, routePathsOverlap, } from "./manifest.js";
23
+ export { PLUGIN_RECIPIENT_ERROR_CODES, PLUGIN_AUDIT_LIMITS, PluginHostUnavailableError, PluginPermissionError, PluginRecipientError, } from "./host.js";
24
+ export { assertPluginPackage, composedActionName, CURRENT_PLUGIN_API_VERSION, declaredExtensionPointsSchema, declaredExtensionsSchema, extensionGroupRefusals, extensionHostPersonalDataRefused, extensionPermissionsRefused, extensionPointIdSchema, extensionPointRefusal, extensionRuleIssues, MAX_DEVICE_ROUTES, isCalendarDay, licenceAudienceSchema, licenceKeyIdSchema, licencePublicKeySchema, missingProcessingProblem, readsAddressBook, undeclaredPersonalDataProblem, PLUGIN_DATA_SUBJECTS, PLUGIN_LEGAL_BASES, pluginActionSchema, pluginActionsSchema, pluginDeviceRouteSchema, pluginDeviceRoutesSchema, pluginEntrySchema, pluginExtensionPointSchema, pluginExtensionSchema, pluginIdSchema, pluginLicenceSchema, pluginManifestSchema, pluginPackageSchema, pluginProcessingSchema, pluginViewSchema, PLUGIN_VIEW_SECTIONS, parsePluginPackage, proposeImportPersonalDataIssues, routePathsOverlap, } from "./manifest.js";
25
25
  export { HOST_SHARED_PACKAGES, pluginPackageProblems, } from "./package-check.js";
26
26
  export { PLUGIN_ROUTE_CAPABILITIES, REQUIRED_CAPABILITIES_KEY, RequireCapability, } from "./require-capability.js";
27
27
  export { isPluginPermission, PLUGIN_PERMISSIONS, PLUGIN_PERSONAL_DATA_CATEGORIES, PROPOSE_IMPORT_ONLY_PERSONAL_DATA, PROPOSE_IMPORT_PERSONAL_DATA, } from "./permissions.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -153,6 +153,53 @@ export declare function composedActionName(pluginId: string, actionId: string):
153
153
  */
154
154
  export declare const PLUGIN_VIEW_SECTIONS: readonly ["association", "building", "board", "settings"];
155
155
  export type PluginViewSection = (typeof PLUGIN_VIEW_SECTIONS)[number];
156
+ /**
157
+ * The art. 6(1) bases a plugin may declare its processing on.
158
+ *
159
+ * Four of the six. Vital interests and public task are not bases a housing
160
+ * cooperative's plugin has any business with, and a declaration naming one
161
+ * would be a claim the board then has to correct rather than a statement it can
162
+ * publish.
163
+ */
164
+ export declare const PLUGIN_LEGAL_BASES: readonly ["consent", "contract", "legalObligation", "legitimateInterest"];
165
+ export type PluginLegalBasis = (typeof PLUGIN_LEGAL_BASES)[number];
166
+ /** Whose personal data a plugin's processing concerns. */
167
+ export declare const PLUGIN_DATA_SUBJECTS: readonly ["members", "residents"];
168
+ export type PluginDataSubject = (typeof PLUGIN_DATA_SUBJECTS)[number];
169
+ /**
170
+ * What a plugin's processing of personal data is for, on what basis, for how
171
+ * long, and about whom (ADR 0035).
172
+ *
173
+ * The install seeds the plugin's row in the record of processing activities
174
+ * from it, in the association's language, and the consent screen shows it
175
+ * before anything is downloaded. It grants nothing: what a plugin may read is
176
+ * its permissions.
177
+ */
178
+ export declare const pluginProcessingSchema: z.ZodObject<{
179
+ purpose: z.ZodObject<{
180
+ sv: z.ZodString;
181
+ en: z.ZodString;
182
+ }, z.core.$strict>;
183
+ legalBasis: z.ZodEnum<{
184
+ consent: "consent";
185
+ contract: "contract";
186
+ legalObligation: "legalObligation";
187
+ legitimateInterest: "legitimateInterest";
188
+ }>;
189
+ legitimateInterest: z.ZodOptional<z.ZodObject<{
190
+ sv: z.ZodString;
191
+ en: z.ZodString;
192
+ }, z.core.$strict>>;
193
+ retention: z.ZodObject<{
194
+ sv: z.ZodString;
195
+ en: z.ZodString;
196
+ }, z.core.$strict>;
197
+ dataSubjects: z.ZodArray<z.ZodEnum<{
198
+ members: "members";
199
+ residents: "residents";
200
+ }>>;
201
+ }, z.core.$strict>;
202
+ export type PluginProcessing = z.infer<typeof pluginProcessingSchema>;
156
203
  export declare const pluginViewSchema: z.ZodObject<{
157
204
  module: z.ZodDefault<z.ZodString>;
158
205
  titleKey: z.ZodString;
@@ -237,6 +284,7 @@ export interface ExtensionDeclarations {
237
284
  readonly id: string;
238
285
  readonly permissions: readonly string[];
239
286
  readonly personalData: readonly string[];
287
+ readonly deviceRoutes?: readonly unknown[];
240
288
  readonly extensionPoints: readonly {
241
289
  readonly personalData: readonly string[];
242
290
  }[];
@@ -255,6 +303,7 @@ export interface ExtensionDeclarations {
255
303
  export declare function extensionRuleIssues(declaration: ExtensionDeclarations): {
256
304
  path: (string | number)[];
257
305
  message: string;
306
+ rule?: PluginManifestRule;
258
307
  }[];
259
308
  /**
260
309
  * The permissions that keep an addon and the plugin it extends apart, or an
@@ -531,6 +580,30 @@ export declare const pluginManifestSchema: z.ZodObject<{
531
580
  protected: "protected";
532
581
  residency: "residency";
533
582
  }>>>;
583
+ processing: z.ZodOptional<z.ZodObject<{
584
+ purpose: z.ZodObject<{
585
+ sv: z.ZodString;
586
+ en: z.ZodString;
587
+ }, z.core.$strict>;
588
+ legalBasis: z.ZodEnum<{
589
+ consent: "consent";
590
+ contract: "contract";
591
+ legalObligation: "legalObligation";
592
+ legitimateInterest: "legitimateInterest";
593
+ }>;
594
+ legitimateInterest: z.ZodOptional<z.ZodObject<{
595
+ sv: z.ZodString;
596
+ en: z.ZodString;
597
+ }, z.core.$strict>>;
598
+ retention: z.ZodObject<{
599
+ sv: z.ZodString;
600
+ en: z.ZodString;
601
+ }, z.core.$strict>;
602
+ dataSubjects: z.ZodArray<z.ZodEnum<{
603
+ members: "members";
604
+ residents: "residents";
605
+ }>>;
606
+ }, z.core.$strict>>;
534
607
  settingsSchema: z.ZodOptional<z.ZodObject<{
535
608
  fields: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
536
609
  key: z.ZodString;
@@ -779,6 +852,38 @@ export type PluginView = z.infer<typeof pluginViewSchema>;
779
852
  export type PluginExtensionPointDeclaration = z.infer<typeof pluginExtensionPointSchema>;
780
853
  export type PluginExtensionDeclaration = z.infer<typeof pluginExtensionSchema>;
781
854
  export type PluginDeviceRoute = z.infer<typeof pluginDeviceRouteSchema>;
855
+ /**
856
+ * The problem with a declaration that names personal data and no processing,
857
+ * or null when there is none.
858
+ *
859
+ * Not part of the manifest schema, which the loader also reads: a plugin
860
+ * published before the field existed has to keep loading, and its row keeps
861
+ * the placeholder it was seeded with. The package check and version 2 of the
862
+ * catalog index refuse it, so nothing listed from now on lacks one.
863
+ */
864
+ export declare function missingProcessingProblem(declaration: {
865
+ personalData: readonly string[];
866
+ processing?: PluginProcessing | undefined;
867
+ }): string | null;
868
+ /**
869
+ * Whether these permissions read the address book: a plugin holding one
870
+ * processes the residents' personal data, whatever it declares.
871
+ */
872
+ export declare function readsAddressBook(permissions: readonly string[]): boolean;
873
+ /**
874
+ * The problem with a declaration that reads the address book and names no
875
+ * personal data, or null when there is none.
876
+ *
877
+ * Such a plugin would have no processing declaration and no row in the record
878
+ * of processing activities, so nobody could object to what it reads. Held
879
+ * where `missingProcessingProblem` is, and for the same reason not in the
880
+ * manifest schema: a plugin published before this rule keeps loading, and its
881
+ * install keeps a row (`readsAddressBook`).
882
+ */
883
+ export declare function undeclaredPersonalDataProblem(declaration: {
884
+ permissions: readonly string[];
885
+ personalData: readonly string[];
886
+ }): string | null;
782
887
  /**
783
888
  * Dependency fields npm installs at install time.
784
889
  *
@@ -840,6 +945,30 @@ export declare const pluginPackageSchema: z.ZodObject<{
840
945
  protected: "protected";
841
946
  residency: "residency";
842
947
  }>>>;
948
+ processing: z.ZodOptional<z.ZodObject<{
949
+ purpose: z.ZodObject<{
950
+ sv: z.ZodString;
951
+ en: z.ZodString;
952
+ }, z.core.$strict>;
953
+ legalBasis: z.ZodEnum<{
954
+ consent: "consent";
955
+ contract: "contract";
956
+ legalObligation: "legalObligation";
957
+ legitimateInterest: "legitimateInterest";
958
+ }>;
959
+ legitimateInterest: z.ZodOptional<z.ZodObject<{
960
+ sv: z.ZodString;
961
+ en: z.ZodString;
962
+ }, z.core.$strict>>;
963
+ retention: z.ZodObject<{
964
+ sv: z.ZodString;
965
+ en: z.ZodString;
966
+ }, z.core.$strict>;
967
+ dataSubjects: z.ZodArray<z.ZodEnum<{
968
+ members: "members";
969
+ residents: "residents";
970
+ }>>;
971
+ }, z.core.$strict>>;
843
972
  settingsSchema: z.ZodOptional<z.ZodObject<{
844
973
  fields: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
845
974
  key: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
package/dist/manifest.js CHANGED
@@ -173,6 +173,81 @@ export const PLUGIN_VIEW_SECTIONS = [
173
173
  "board",
174
174
  "settings",
175
175
  ];
176
+ /**
177
+ * Text a plugin author writes in both languages the interface is offered in.
178
+ *
179
+ * Strict, as everything in the processing declaration is: a field the
180
+ * declaration does not define is refused rather than dropped, so a misspelled
181
+ * key cannot leave a row of the record of processing activities without the
182
+ * text its author meant to put there.
183
+ */
184
+ const pluginLocalizedTextSchema = z.strictObject({
185
+ sv: z.string().trim().min(1).max(500),
186
+ en: z.string().trim().min(1).max(500),
187
+ });
188
+ /**
189
+ * The art. 6(1) bases a plugin may declare its processing on.
190
+ *
191
+ * Four of the six. Vital interests and public task are not bases a housing
192
+ * cooperative's plugin has any business with, and a declaration naming one
193
+ * would be a claim the board then has to correct rather than a statement it can
194
+ * publish.
195
+ */
196
+ export const PLUGIN_LEGAL_BASES = [
197
+ "consent",
198
+ "contract",
199
+ "legalObligation",
200
+ "legitimateInterest",
201
+ ];
202
+ /** Whose personal data a plugin's processing concerns. */
203
+ export const PLUGIN_DATA_SUBJECTS = ["members", "residents"];
204
+ /**
205
+ * What a plugin's processing of personal data is for, on what basis, for how
206
+ * long, and about whom (ADR 0035).
207
+ *
208
+ * The install seeds the plugin's row in the record of processing activities
209
+ * from it, in the association's language, and the consent screen shows it
210
+ * before anything is downloaded. It grants nothing: what a plugin may read is
211
+ * its permissions.
212
+ */
213
+ export const pluginProcessingSchema = z
214
+ .strictObject({
215
+ purpose: pluginLocalizedTextSchema,
216
+ legalBasis: z.enum(PLUGIN_LEGAL_BASES),
217
+ /** The interest relied on, which art. 13(1)(d) requires on the notice. */
218
+ legitimateInterest: pluginLocalizedTextSchema.optional(),
219
+ /** How long the data is kept and when it goes. */
220
+ retention: pluginLocalizedTextSchema,
221
+ dataSubjects: z
222
+ .array(z.enum(PLUGIN_DATA_SUBJECTS))
223
+ .min(1)
224
+ .max(PLUGIN_DATA_SUBJECTS.length)
225
+ .refine((subjects) => new Set(subjects).size === subjects.length, "names a category of data subjects twice"),
226
+ })
227
+ .superRefine((processing, ctx) => {
228
+ /*
229
+ * Both ways. A processing on legitimate interest names the interest,
230
+ * because the privacy notice has to; one on another basis names none,
231
+ * because the row would then carry an interest for a processing that does
232
+ * not rest on one.
233
+ */
234
+ if (processing.legalBasis === "legitimateInterest" &&
235
+ processing.legitimateInterest === undefined) {
236
+ ctx.addIssue({
237
+ code: "custom",
238
+ path: ["legitimateInterest"],
239
+ message: "a processing on legitimate interest names the interest",
240
+ });
241
+ }
242
+ if (processing.legalBasis !== "legitimateInterest" &&
243
+ processing.legitimateInterest !== undefined) {
244
+ ctx.addIssue({
245
+ code: "custom",
246
+ path: ["legitimateInterest"],
247
+ message: 'only a processing on "legitimateInterest" names a legitimate interest',
248
+ });
249
+ }
250
+ });
176
251
  export const pluginViewSchema = z.object({
177
252
  /** Named export of the remote module, per Module Federation. */
178
253
  module: z.string().min(1).max(100).default("./View"),
@@ -327,6 +402,20 @@ export function extensionRuleIssues(declaration) {
327
402
  message: 'a plugin that asks for "site:blocks" declares extension points that accept no personal data',
328
403
  });
329
404
  }
405
+ /*
406
+ * A device is a screen on a wall, and a device token reaches a plugin's
407
+ * routes. A point that accepted contact details would let it reach them
408
+ * through an addon, so a plugin with device routes declares none that does
409
+ * (ADR 0030, ADR 0031).
410
+ */
411
+ const contact = point.personalData.filter((category) => category === "email" || category === "phone");
412
+ if ((declaration.deviceRoutes ?? []).length > 0 && contact.length > 0) {
413
+ issues.push({
414
+ path: ["extensionPoints", index, "personalData"],
415
+ message: `a plugin that declares deviceRoutes declares no extension point that accepts ${contact.join(" or ")}: contact details have no business on a device`,
416
+ rule: "device-route-extension-point-contact",
417
+ });
418
+ }
330
419
  }
331
420
  for (const [index, extension] of declaration.extends.entries()) {
332
421
  if (extension.plugin === declaration.id) {
@@ -783,6 +872,16 @@ export const pluginManifestSchema = z
783
872
  .array(z.enum(PLUGIN_PERSONAL_DATA_CATEGORIES))
784
873
  .max(16)
785
874
  .default([]),
875
+ /**
876
+ * What the processing of that personal data is for (ADR 0035).
877
+ *
878
+ * Declared by a plugin that declares personal data, and by no other: a
879
+ * plugin with none has no row in the record of processing activities.
880
+ * Optional here, so a plugin published before the field existed keeps
881
+ * loading; the package check, and so the catalog, refuses a package that
882
+ * declares personal data without it.
883
+ */
884
+ processing: pluginProcessingSchema.optional(),
786
885
  settingsSchema: pluginSettingsSchema.optional(),
787
886
  /**
788
887
  * The plugin's own screen in the application, when it has one, at
@@ -873,11 +972,24 @@ export const pluginManifestSchema = z
873
972
  released: calendarDaySchema.optional(),
874
973
  })
875
974
  .superRefine((manifest, ctx) => {
876
- for (const issue of extensionRuleIssues(manifest)) {
975
+ for (const { rule, ...issue } of extensionRuleIssues(manifest)) {
877
976
  ctx.addIssue({
878
977
  code: "custom",
879
- path: issue.path,
880
- message: issue.message,
978
+ ...issue,
979
+ ...(rule === undefined ? {} : { params: { rule } }),
980
+ });
981
+ }
982
+ /*
983
+ * A processing with no personal data in it would seed a row of the record
984
+ * of processing activities claiming the plugin processes somebody's data,
985
+ * which is the placeholder this declaration exists to remove.
986
+ */
987
+ if (manifest.processing !== undefined &&
988
+ manifest.personalData.length === 0) {
989
+ ctx.addIssue({
990
+ code: "custom",
991
+ path: ["processing"],
992
+ message: "a plugin that declares no personal data declares no processing",
881
993
  });
882
994
  }
883
995
  /*
@@ -1004,6 +1116,45 @@ export const pluginManifestSchema = z
1004
1116
  }
1005
1117
  }
1006
1118
  });
1119
+ /**
1120
+ * The problem with a declaration that names personal data and no processing,
1121
+ * or null when there is none.
1122
+ *
1123
+ * Not part of the manifest schema, which the loader also reads: a plugin
1124
+ * published before the field existed has to keep loading, and its row keeps
1125
+ * the placeholder it was seeded with. The package check and version 2 of the
1126
+ * catalog index refuse it, so nothing listed from now on lacks one.
1127
+ */
1128
+ export function missingProcessingProblem(declaration) {
1129
+ return declaration.personalData.length > 0 &&
1130
+ declaration.processing === undefined
1131
+ ? "a plugin that declares personal data declares its processing"
1132
+ : null;
1133
+ }
1134
+ /**
1135
+ * Whether these permissions read the address book: a plugin holding one
1136
+ * processes the residents' personal data, whatever it declares.
1137
+ */
1138
+ export function readsAddressBook(permissions) {
1139
+ return (permissions.includes("addressBook:read") ||
1140
+ permissions.includes("addressBook:readContact"));
1141
+ }
1142
+ /**
1143
+ * The problem with a declaration that reads the address book and names no
1144
+ * personal data, or null when there is none.
1145
+ *
1146
+ * Such a plugin would have no processing declaration and no row in the record
1147
+ * of processing activities, so nobody could object to what it reads. Held
1148
+ * where `missingProcessingProblem` is, and for the same reason not in the
1149
+ * manifest schema: a plugin published before this rule keeps loading, and its
1150
+ * install keeps a row (`readsAddressBook`).
1151
+ */
1152
+ export function undeclaredPersonalDataProblem(declaration) {
1153
+ return readsAddressBook(declaration.permissions) &&
1154
+ declaration.personalData.length === 0
1155
+ ? "a plugin that reads the address book declares the personal data it reads"
1156
+ : null;
1157
+ }
1007
1158
  /**
1008
1159
  * Dependency fields npm installs at install time.
1009
1160
  *