@aglyn/aglyn 1.0.0-beta.143
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/LICENSE +201 -0
- package/README.md +11 -0
- package/package.json +66 -0
- package/src/index.d.ts +25 -0
- package/src/index.js +26 -0
- package/src/index.js.map +1 -0
- package/src/lib/aglyn.d.ts +31 -0
- package/src/lib/aglyn.js +114 -0
- package/src/lib/aglyn.js.map +1 -0
- package/src/lib/app-utils/abuse-report.d.ts +193 -0
- package/src/lib/app-utils/abuse-report.js +321 -0
- package/src/lib/app-utils/abuse-report.js.map +1 -0
- package/src/lib/app-utils/accept-negotiation.d.ts +129 -0
- package/src/lib/app-utils/accept-negotiation.js +266 -0
- package/src/lib/app-utils/accept-negotiation.js.map +1 -0
- package/src/lib/app-utils/account-emails.d.ts +263 -0
- package/src/lib/app-utils/account-emails.js +264 -0
- package/src/lib/app-utils/account-emails.js.map +1 -0
- package/src/lib/app-utils/actions.d.ts +717 -0
- package/src/lib/app-utils/actions.js +1031 -0
- package/src/lib/app-utils/actions.js.map +1 -0
- package/src/lib/app-utils/activity-presenter.d.ts +152 -0
- package/src/lib/app-utils/activity-presenter.js +326 -0
- package/src/lib/app-utils/activity-presenter.js.map +1 -0
- package/src/lib/app-utils/advertising-tag-mounts.d.ts +133 -0
- package/src/lib/app-utils/advertising-tag-mounts.js +118 -0
- package/src/lib/app-utils/advertising-tag-mounts.js.map +1 -0
- package/src/lib/app-utils/advertising-tags.d.ts +307 -0
- package/src/lib/app-utils/advertising-tags.js +525 -0
- package/src/lib/app-utils/advertising-tags.js.map +1 -0
- package/src/lib/app-utils/agent-api-catalog.d.ts +94 -0
- package/src/lib/app-utils/agent-api-catalog.js +106 -0
- package/src/lib/app-utils/agent-api-catalog.js.map +1 -0
- package/src/lib/app-utils/agent-openapi.d.ts +103 -0
- package/src/lib/app-utils/agent-openapi.js +1128 -0
- package/src/lib/app-utils/agent-openapi.js.map +1 -0
- package/src/lib/app-utils/analytics-beacon.d.ts +154 -0
- package/src/lib/app-utils/analytics-beacon.js +152 -0
- package/src/lib/app-utils/analytics-beacon.js.map +1 -0
- package/src/lib/app-utils/analytics-environment.d.ts +133 -0
- package/src/lib/app-utils/analytics-environment.js +152 -0
- package/src/lib/app-utils/analytics-environment.js.map +1 -0
- package/src/lib/app-utils/analytics-events.d.ts +744 -0
- package/src/lib/app-utils/analytics-events.js +650 -0
- package/src/lib/app-utils/analytics-events.js.map +1 -0
- package/src/lib/app-utils/analytics-link-clicks.d.ts +102 -0
- package/src/lib/app-utils/analytics-link-clicks.js +267 -0
- package/src/lib/app-utils/analytics-link-clicks.js.map +1 -0
- package/src/lib/app-utils/analytics-path-key.d.ts +46 -0
- package/src/lib/app-utils/analytics-path-key.js +46 -0
- package/src/lib/app-utils/analytics-path-key.js.map +1 -0
- package/src/lib/app-utils/api-adapter.d.ts +47 -0
- package/src/lib/app-utils/api-adapter.js +367 -0
- package/src/lib/app-utils/api-adapter.js.map +1 -0
- package/src/lib/app-utils/api-idempotency.d.ts +169 -0
- package/src/lib/app-utils/api-idempotency.js +213 -0
- package/src/lib/app-utils/api-idempotency.js.map +1 -0
- package/src/lib/app-utils/api-plugins.d.ts +210 -0
- package/src/lib/app-utils/api-plugins.js +221 -0
- package/src/lib/app-utils/api-plugins.js.map +1 -0
- package/src/lib/app-utils/assist-credits.d.ts +482 -0
- package/src/lib/app-utils/assist-credits.js +509 -0
- package/src/lib/app-utils/assist-credits.js.map +1 -0
- package/src/lib/app-utils/attribution-attribute.d.ts +34 -0
- package/src/lib/app-utils/attribution-attribute.js +34 -0
- package/src/lib/app-utils/attribution-attribute.js.map +1 -0
- package/src/lib/app-utils/attribution-guard.d.ts +130 -0
- package/src/lib/app-utils/attribution-guard.js +410 -0
- package/src/lib/app-utils/attribution-guard.js.map +1 -0
- package/src/lib/app-utils/author-css.d.ts +123 -0
- package/src/lib/app-utils/author-css.js +275 -0
- package/src/lib/app-utils/author-css.js.map +1 -0
- package/src/lib/app-utils/author-html-markdown.d.ts +31 -0
- package/src/lib/app-utils/author-html-markdown.js +497 -0
- package/src/lib/app-utils/author-html-markdown.js.map +1 -0
- package/src/lib/app-utils/author-html.d.ts +135 -0
- package/src/lib/app-utils/author-html.js +1037 -0
- package/src/lib/app-utils/author-html.js.map +1 -0
- package/src/lib/app-utils/automation-placeholders.d.ts +72 -0
- package/src/lib/app-utils/automation-placeholders.js +207 -0
- package/src/lib/app-utils/automation-placeholders.js.map +1 -0
- package/src/lib/app-utils/bandwidth-cap.d.ts +183 -0
- package/src/lib/app-utils/bandwidth-cap.js +193 -0
- package/src/lib/app-utils/bandwidth-cap.js.map +1 -0
- package/src/lib/app-utils/binding-token-catalog.d.ts +82 -0
- package/src/lib/app-utils/binding-token-catalog.js +293 -0
- package/src/lib/app-utils/binding-token-catalog.js.map +1 -0
- package/src/lib/app-utils/binding-tokens.d.ts +157 -0
- package/src/lib/app-utils/binding-tokens.js +251 -0
- package/src/lib/app-utils/binding-tokens.js.map +1 -0
- package/src/lib/app-utils/breadcrumb-json-ld.d.ts +57 -0
- package/src/lib/app-utils/breadcrumb-json-ld.js +67 -0
- package/src/lib/app-utils/breadcrumb-json-ld.js.map +1 -0
- package/src/lib/app-utils/campaign-attribution.d.ts +117 -0
- package/src/lib/app-utils/campaign-attribution.js +162 -0
- package/src/lib/app-utils/campaign-attribution.js.map +1 -0
- package/src/lib/app-utils/campaign-forwarding.d.ts +220 -0
- package/src/lib/app-utils/campaign-forwarding.js +332 -0
- package/src/lib/app-utils/campaign-forwarding.js.map +1 -0
- package/src/lib/app-utils/campaign-membership.d.ts +109 -0
- package/src/lib/app-utils/campaign-membership.js +176 -0
- package/src/lib/app-utils/campaign-membership.js.map +1 -0
- package/src/lib/app-utils/campaign-touch.d.ts +206 -0
- package/src/lib/app-utils/campaign-touch.js +326 -0
- package/src/lib/app-utils/campaign-touch.js.map +1 -0
- package/src/lib/app-utils/child-contract-compose.d.ts +28 -0
- package/src/lib/app-utils/child-contract-compose.js +140 -0
- package/src/lib/app-utils/child-contract-compose.js.map +1 -0
- package/src/lib/app-utils/child-contract.d.ts +129 -0
- package/src/lib/app-utils/child-contract.js +153 -0
- package/src/lib/app-utils/child-contract.js.map +1 -0
- package/src/lib/app-utils/collection-delete.d.ts +113 -0
- package/src/lib/app-utils/collection-delete.js +120 -0
- package/src/lib/app-utils/collection-delete.js.map +1 -0
- package/src/lib/app-utils/collection-entries.d.ts +833 -0
- package/src/lib/app-utils/collection-entries.js +1285 -0
- package/src/lib/app-utils/collection-entries.js.map +1 -0
- package/src/lib/app-utils/collection-entry-date.d.ts +129 -0
- package/src/lib/app-utils/collection-entry-date.js +183 -0
- package/src/lib/app-utils/collection-entry-date.js.map +1 -0
- package/src/lib/app-utils/collection-kind.d.ts +55 -0
- package/src/lib/app-utils/collection-kind.js +69 -0
- package/src/lib/app-utils/collection-kind.js.map +1 -0
- package/src/lib/app-utils/collection-slug.d.ts +79 -0
- package/src/lib/app-utils/collection-slug.js +70 -0
- package/src/lib/app-utils/collection-slug.js.map +1 -0
- package/src/lib/app-utils/compose-layout-nodes.d.ts +147 -0
- package/src/lib/app-utils/compose-layout-nodes.js +261 -0
- package/src/lib/app-utils/compose-layout-nodes.js.map +1 -0
- package/src/lib/app-utils/compose-layout-props.d.ts +71 -0
- package/src/lib/app-utils/compose-layout-props.js +61 -0
- package/src/lib/app-utils/compose-layout-props.js.map +1 -0
- package/src/lib/app-utils/compose-reusable-components.d.ts +504 -0
- package/src/lib/app-utils/compose-reusable-components.js +1366 -0
- package/src/lib/app-utils/compose-reusable-components.js.map +1 -0
- package/src/lib/app-utils/compress.d.ts +35 -0
- package/src/lib/app-utils/compress.js +38 -0
- package/src/lib/app-utils/compress.js.map +1 -0
- package/src/lib/app-utils/consent-banner-ui.d.ts +226 -0
- package/src/lib/app-utils/consent-banner-ui.js +583 -0
- package/src/lib/app-utils/consent-banner-ui.js.map +1 -0
- package/src/lib/app-utils/consent-groups.d.ts +189 -0
- package/src/lib/app-utils/consent-groups.js +219 -0
- package/src/lib/app-utils/consent-groups.js.map +1 -0
- package/src/lib/app-utils/consent-preferences-dialog.d.ts +58 -0
- package/src/lib/app-utils/consent-preferences-dialog.js +106 -0
- package/src/lib/app-utils/consent-preferences-dialog.js.map +1 -0
- package/src/lib/app-utils/console-record-links.d.ts +163 -0
- package/src/lib/app-utils/console-record-links.js +178 -0
- package/src/lib/app-utils/console-record-links.js.map +1 -0
- package/src/lib/app-utils/console-routes.d.ts +658 -0
- package/src/lib/app-utils/console-routes.js +489 -0
- package/src/lib/app-utils/console-routes.js.map +1 -0
- package/src/lib/app-utils/console-widget-slot-context.d.ts +46 -0
- package/src/lib/app-utils/console-widget-slot-context.js +23 -0
- package/src/lib/app-utils/console-widget-slot-context.js.map +1 -0
- package/src/lib/app-utils/contact-custom-fields.d.ts +191 -0
- package/src/lib/app-utils/contact-custom-fields.js +349 -0
- package/src/lib/app-utils/contact-custom-fields.js.map +1 -0
- package/src/lib/app-utils/contact-holder.d.ts +52 -0
- package/src/lib/app-utils/contact-holder.js +98 -0
- package/src/lib/app-utils/contact-holder.js.map +1 -0
- package/src/lib/app-utils/contact-merge.d.ts +136 -0
- package/src/lib/app-utils/contact-merge.js +379 -0
- package/src/lib/app-utils/contact-merge.js.map +1 -0
- package/src/lib/app-utils/contacts.d.ts +554 -0
- package/src/lib/app-utils/contacts.js +401 -0
- package/src/lib/app-utils/contacts.js.map +1 -0
- package/src/lib/app-utils/content-author-profile.d.ts +68 -0
- package/src/lib/app-utils/content-author-profile.js +118 -0
- package/src/lib/app-utils/content-author-profile.js.map +1 -0
- package/src/lib/app-utils/content-authors.d.ts +662 -0
- package/src/lib/app-utils/content-authors.js +771 -0
- package/src/lib/app-utils/content-authors.js.map +1 -0
- package/src/lib/app-utils/content-schema-type.d.ts +81 -0
- package/src/lib/app-utils/content-schema-type.js +87 -0
- package/src/lib/app-utils/content-schema-type.js.map +1 -0
- package/src/lib/app-utils/contexts.d.ts +35 -0
- package/src/lib/app-utils/contexts.js +35 -0
- package/src/lib/app-utils/contexts.js.map +1 -0
- package/src/lib/app-utils/create-resource-uid.d.ts +18 -0
- package/src/lib/app-utils/create-resource-uid.js +23 -0
- package/src/lib/app-utils/create-resource-uid.js.map +1 -0
- package/src/lib/app-utils/crm-booking.d.ts +75 -0
- package/src/lib/app-utils/crm-booking.js +133 -0
- package/src/lib/app-utils/crm-booking.js.map +1 -0
- package/src/lib/app-utils/crm-csv.d.ts +232 -0
- package/src/lib/app-utils/crm-csv.js +432 -0
- package/src/lib/app-utils/crm-csv.js.map +1 -0
- package/src/lib/app-utils/crm-digest.d.ts +179 -0
- package/src/lib/app-utils/crm-digest.js +271 -0
- package/src/lib/app-utils/crm-digest.js.map +1 -0
- package/src/lib/app-utils/crm-email-templates.d.ts +172 -0
- package/src/lib/app-utils/crm-email-templates.js +382 -0
- package/src/lib/app-utils/crm-email-templates.js.map +1 -0
- package/src/lib/app-utils/crm-inbound.d.ts +245 -0
- package/src/lib/app-utils/crm-inbound.js +407 -0
- package/src/lib/app-utils/crm-inbound.js.map +1 -0
- package/src/lib/app-utils/crm-kinds.d.ts +73 -0
- package/src/lib/app-utils/crm-kinds.js +92 -0
- package/src/lib/app-utils/crm-kinds.js.map +1 -0
- package/src/lib/app-utils/crm-next-activity.d.ts +107 -0
- package/src/lib/app-utils/crm-next-activity.js +140 -0
- package/src/lib/app-utils/crm-next-activity.js.map +1 -0
- package/src/lib/app-utils/crm-reports.d.ts +479 -0
- package/src/lib/app-utils/crm-reports.js +680 -0
- package/src/lib/app-utils/crm-reports.js.map +1 -0
- package/src/lib/app-utils/crm-task-reminders.d.ts +129 -0
- package/src/lib/app-utils/crm-task-reminders.js +139 -0
- package/src/lib/app-utils/crm-task-reminders.js.map +1 -0
- package/src/lib/app-utils/crm.d.ts +1546 -0
- package/src/lib/app-utils/crm.js +1814 -0
- package/src/lib/app-utils/crm.js.map +1 -0
- package/src/lib/app-utils/csp-report.d.ts +84 -0
- package/src/lib/app-utils/csp-report.js +177 -0
- package/src/lib/app-utils/csp-report.js.map +1 -0
- package/src/lib/app-utils/csv-import.d.ts +192 -0
- package/src/lib/app-utils/csv-import.js +279 -0
- package/src/lib/app-utils/csv-import.js.map +1 -0
- package/src/lib/app-utils/dataset-csv.d.ts +109 -0
- package/src/lib/app-utils/dataset-csv.js +235 -0
- package/src/lib/app-utils/dataset-csv.js.map +1 -0
- package/src/lib/app-utils/dataset-models.d.ts +194 -0
- package/src/lib/app-utils/dataset-models.js +409 -0
- package/src/lib/app-utils/dataset-models.js.map +1 -0
- package/src/lib/app-utils/dataset-query.d.ts +57 -0
- package/src/lib/app-utils/dataset-query.js +126 -0
- package/src/lib/app-utils/dataset-query.js.map +1 -0
- package/src/lib/app-utils/datasets.d.ts +136 -0
- package/src/lib/app-utils/datasets.js +177 -0
- package/src/lib/app-utils/datasets.js.map +1 -0
- package/src/lib/app-utils/decompress.d.ts +36 -0
- package/src/lib/app-utils/decompress.js +32 -0
- package/src/lib/app-utils/decompress.js.map +1 -0
- package/src/lib/app-utils/dedicated-sending-domain.d.ts +47 -0
- package/src/lib/app-utils/dedicated-sending-domain.js +114 -0
- package/src/lib/app-utils/dedicated-sending-domain.js.map +1 -0
- package/src/lib/app-utils/deferred-image.d.ts +86 -0
- package/src/lib/app-utils/deferred-image.js +83 -0
- package/src/lib/app-utils/deferred-image.js.map +1 -0
- package/src/lib/app-utils/definition-canvas-tree.d.ts +61 -0
- package/src/lib/app-utils/definition-canvas-tree.js +126 -0
- package/src/lib/app-utils/definition-canvas-tree.js.map +1 -0
- package/src/lib/app-utils/deployment-shape.d.ts +167 -0
- package/src/lib/app-utils/deployment-shape.js +238 -0
- package/src/lib/app-utils/deployment-shape.js.map +1 -0
- package/src/lib/app-utils/detect-template-placeholders.d.ts +30 -0
- package/src/lib/app-utils/detect-template-placeholders.js +53 -0
- package/src/lib/app-utils/detect-template-placeholders.js.map +1 -0
- package/src/lib/app-utils/dmca-counter-notice.d.ts +185 -0
- package/src/lib/app-utils/dmca-counter-notice.js +277 -0
- package/src/lib/app-utils/dmca-counter-notice.js.map +1 -0
- package/src/lib/app-utils/docs-deflection.d.ts +156 -0
- package/src/lib/app-utils/docs-deflection.js +547 -0
- package/src/lib/app-utils/docs-deflection.js.map +1 -0
- package/src/lib/app-utils/docs-help.d.ts +57 -0
- package/src/lib/app-utils/docs-help.generated.d.ts +303 -0
- package/src/lib/app-utils/docs-help.generated.js +867 -0
- package/src/lib/app-utils/docs-help.generated.js.map +1 -0
- package/src/lib/app-utils/docs-help.js +46 -0
- package/src/lib/app-utils/docs-help.js.map +1 -0
- package/src/lib/app-utils/docs-index.generated.d.ts +29 -0
- package/src/lib/app-utils/docs-index.generated.js +8388 -0
- package/src/lib/app-utils/docs-index.generated.js.map +1 -0
- package/src/lib/app-utils/docs-retrieval.d.ts +67 -0
- package/src/lib/app-utils/docs-retrieval.js +188 -0
- package/src/lib/app-utils/docs-retrieval.js.map +1 -0
- package/src/lib/app-utils/document-landmark.d.ts +50 -0
- package/src/lib/app-utils/document-landmark.js +100 -0
- package/src/lib/app-utils/document-landmark.js.map +1 -0
- package/src/lib/app-utils/duplicate-resource.d.ts +101 -0
- package/src/lib/app-utils/duplicate-resource.js +206 -0
- package/src/lib/app-utils/duplicate-resource.js.map +1 -0
- package/src/lib/app-utils/dynamic-list-rule.d.ts +471 -0
- package/src/lib/app-utils/dynamic-list-rule.js +914 -0
- package/src/lib/app-utils/dynamic-list-rule.js.map +1 -0
- package/src/lib/app-utils/element-animation.d.ts +200 -0
- package/src/lib/app-utils/element-animation.js +233 -0
- package/src/lib/app-utils/element-animation.js.map +1 -0
- package/src/lib/app-utils/element-hidden-style.d.ts +46 -0
- package/src/lib/app-utils/element-hidden-style.js +48 -0
- package/src/lib/app-utils/element-hidden-style.js.map +1 -0
- package/src/lib/app-utils/element-ui.d.ts +243 -0
- package/src/lib/app-utils/element-ui.js +459 -0
- package/src/lib/app-utils/element-ui.js.map +1 -0
- package/src/lib/app-utils/email-starter-policy.d.ts +160 -0
- package/src/lib/app-utils/email-starter-policy.js +327 -0
- package/src/lib/app-utils/email-starter-policy.js.map +1 -0
- package/src/lib/app-utils/email-topics.d.ts +310 -0
- package/src/lib/app-utils/email-topics.js +336 -0
- package/src/lib/app-utils/email-topics.js.map +1 -0
- package/src/lib/app-utils/enabled-plugins-context.d.ts +100 -0
- package/src/lib/app-utils/enabled-plugins-context.js +113 -0
- package/src/lib/app-utils/enabled-plugins-context.js.map +1 -0
- package/src/lib/app-utils/ensure-canvas-root.d.ts +38 -0
- package/src/lib/app-utils/ensure-canvas-root.js +61 -0
- package/src/lib/app-utils/ensure-canvas-root.js.map +1 -0
- package/src/lib/app-utils/entity-picker-context.d.ts +199 -0
- package/src/lib/app-utils/entity-picker-context.js +93 -0
- package/src/lib/app-utils/entity-picker-context.js.map +1 -0
- package/src/lib/app-utils/error-beacon.d.ts +107 -0
- package/src/lib/app-utils/error-beacon.js +296 -0
- package/src/lib/app-utils/error-beacon.js.map +1 -0
- package/src/lib/app-utils/expand-repeatables.d.ts +172 -0
- package/src/lib/app-utils/expand-repeatables.js +299 -0
- package/src/lib/app-utils/expand-repeatables.js.map +1 -0
- package/src/lib/app-utils/foreign-script.d.ts +82 -0
- package/src/lib/app-utils/foreign-script.js +102 -0
- package/src/lib/app-utils/foreign-script.js.map +1 -0
- package/src/lib/app-utils/form-abuse-ceiling.d.ts +146 -0
- package/src/lib/app-utils/form-abuse-ceiling.js +158 -0
- package/src/lib/app-utils/form-abuse-ceiling.js.map +1 -0
- package/src/lib/app-utils/form-contract.d.ts +198 -0
- package/src/lib/app-utils/form-contract.js +282 -0
- package/src/lib/app-utils/form-contract.js.map +1 -0
- package/src/lib/app-utils/form-dataset-binding.d.ts +50 -0
- package/src/lib/app-utils/form-dataset-binding.js +74 -0
- package/src/lib/app-utils/form-dataset-binding.js.map +1 -0
- package/src/lib/app-utils/forms.d.ts +727 -0
- package/src/lib/app-utils/forms.js +777 -0
- package/src/lib/app-utils/forms.js.map +1 -0
- package/src/lib/app-utils/functions.d.ts +188 -0
- package/src/lib/app-utils/functions.js +529 -0
- package/src/lib/app-utils/functions.js.map +1 -0
- package/src/lib/app-utils/guarded-version-save.d.ts +91 -0
- package/src/lib/app-utils/guarded-version-save.js +131 -0
- package/src/lib/app-utils/guarded-version-save.js.map +1 -0
- package/src/lib/app-utils/health-report.d.ts +1766 -0
- package/src/lib/app-utils/health-report.js +2072 -0
- package/src/lib/app-utils/health-report.js.map +1 -0
- package/src/lib/app-utils/host-naming.d.ts +135 -0
- package/src/lib/app-utils/host-naming.js +188 -0
- package/src/lib/app-utils/host-naming.js.map +1 -0
- package/src/lib/app-utils/host-permissions.d.ts +76 -0
- package/src/lib/app-utils/host-permissions.js +119 -0
- package/src/lib/app-utils/host-permissions.js.map +1 -0
- package/src/lib/app-utils/host-tokens.d.ts +228 -0
- package/src/lib/app-utils/host-tokens.js +304 -0
- package/src/lib/app-utils/host-tokens.js.map +1 -0
- package/src/lib/app-utils/idp-profile.d.ts +83 -0
- package/src/lib/app-utils/idp-profile.js +268 -0
- package/src/lib/app-utils/idp-profile.js.map +1 -0
- package/src/lib/app-utils/image-upload-types.d.ts +49 -0
- package/src/lib/app-utils/image-upload-types.js +86 -0
- package/src/lib/app-utils/image-upload-types.js.map +1 -0
- package/src/lib/app-utils/index.d.ts +18 -0
- package/src/lib/app-utils/index.js +23 -0
- package/src/lib/app-utils/index.js.map +1 -0
- package/src/lib/app-utils/internal-traffic.d.ts +197 -0
- package/src/lib/app-utils/internal-traffic.js +288 -0
- package/src/lib/app-utils/internal-traffic.js.map +1 -0
- package/src/lib/app-utils/lineal-order.d.ts +62 -0
- package/src/lib/app-utils/lineal-order.js +65 -0
- package/src/lib/app-utils/lineal-order.js.map +1 -0
- package/src/lib/app-utils/link-references.d.ts +36 -0
- package/src/lib/app-utils/link-references.js +89 -0
- package/src/lib/app-utils/link-references.js.map +1 -0
- package/src/lib/app-utils/link-target-search-context.d.ts +123 -0
- package/src/lib/app-utils/link-target-search-context.js +221 -0
- package/src/lib/app-utils/link-target-search-context.js.map +1 -0
- package/src/lib/app-utils/list-assignment-policy.d.ts +169 -0
- package/src/lib/app-utils/list-assignment-policy.js +170 -0
- package/src/lib/app-utils/list-assignment-policy.js.map +1 -0
- package/src/lib/app-utils/list-import.d.ts +158 -0
- package/src/lib/app-utils/list-import.js +332 -0
- package/src/lib/app-utils/list-import.js.map +1 -0
- package/src/lib/app-utils/llms-txt.d.ts +104 -0
- package/src/lib/app-utils/llms-txt.js +144 -0
- package/src/lib/app-utils/llms-txt.js.map +1 -0
- package/src/lib/app-utils/local-storage-budget.d.ts +75 -0
- package/src/lib/app-utils/local-storage-budget.js +153 -0
- package/src/lib/app-utils/local-storage-budget.js.map +1 -0
- package/src/lib/app-utils/lockdown.d.ts +698 -0
- package/src/lib/app-utils/lockdown.js +929 -0
- package/src/lib/app-utils/lockdown.js.map +1 -0
- package/src/lib/app-utils/margin-utilization.d.ts +267 -0
- package/src/lib/app-utils/margin-utilization.js +351 -0
- package/src/lib/app-utils/margin-utilization.js.map +1 -0
- package/src/lib/app-utils/markdown-lite.d.ts +297 -0
- package/src/lib/app-utils/markdown-lite.js +705 -0
- package/src/lib/app-utils/markdown-lite.js.map +1 -0
- package/src/lib/app-utils/marketing-consent.d.ts +704 -0
- package/src/lib/app-utils/marketing-consent.js +783 -0
- package/src/lib/app-utils/marketing-consent.js.map +1 -0
- package/src/lib/app-utils/marketplace-listing-visibility.d.ts +120 -0
- package/src/lib/app-utils/marketplace-listing-visibility.js +139 -0
- package/src/lib/app-utils/marketplace-listing-visibility.js.map +1 -0
- package/src/lib/app-utils/marketplace-overrides.d.ts +271 -0
- package/src/lib/app-utils/marketplace-overrides.js +462 -0
- package/src/lib/app-utils/marketplace-overrides.js.map +1 -0
- package/src/lib/app-utils/marketplace-provenance.d.ts +150 -0
- package/src/lib/app-utils/marketplace-provenance.js +136 -0
- package/src/lib/app-utils/marketplace-provenance.js.map +1 -0
- package/src/lib/app-utils/marketplace-theme.d.ts +237 -0
- package/src/lib/app-utils/marketplace-theme.js +525 -0
- package/src/lib/app-utils/marketplace-theme.js.map +1 -0
- package/src/lib/app-utils/marketplace-update-state.d.ts +119 -0
- package/src/lib/app-utils/marketplace-update-state.js +132 -0
- package/src/lib/app-utils/marketplace-update-state.js.map +1 -0
- package/src/lib/app-utils/marketplace-verification.d.ts +95 -0
- package/src/lib/app-utils/marketplace-verification.js +81 -0
- package/src/lib/app-utils/marketplace-verification.js.map +1 -0
- package/src/lib/app-utils/measure-node-map.d.ts +76 -0
- package/src/lib/app-utils/measure-node-map.js +111 -0
- package/src/lib/app-utils/measure-node-map.js.map +1 -0
- package/src/lib/app-utils/media-alt.d.ts +55 -0
- package/src/lib/app-utils/media-alt.js +58 -0
- package/src/lib/app-utils/media-alt.js.map +1 -0
- package/src/lib/app-utils/media-asset-facts.d.ts +125 -0
- package/src/lib/app-utils/media-asset-facts.js +467 -0
- package/src/lib/app-utils/media-asset-facts.js.map +1 -0
- package/src/lib/app-utils/media-cdn-scope.d.ts +65 -0
- package/src/lib/app-utils/media-cdn-scope.js +75 -0
- package/src/lib/app-utils/media-cdn-scope.js.map +1 -0
- package/src/lib/app-utils/media-folders.d.ts +161 -0
- package/src/lib/app-utils/media-folders.js +230 -0
- package/src/lib/app-utils/media-folders.js.map +1 -0
- package/src/lib/app-utils/media-metadata.d.ts +277 -0
- package/src/lib/app-utils/media-metadata.js +388 -0
- package/src/lib/app-utils/media-metadata.js.map +1 -0
- package/src/lib/app-utils/media-picker-context.d.ts +93 -0
- package/src/lib/app-utils/media-picker-context.js +26 -0
- package/src/lib/app-utils/media-picker-context.js.map +1 -0
- package/src/lib/app-utils/media-quarantine.d.ts +247 -0
- package/src/lib/app-utils/media-quarantine.js +323 -0
- package/src/lib/app-utils/media-quarantine.js.map +1 -0
- package/src/lib/app-utils/media-ref.d.ts +661 -0
- package/src/lib/app-utils/media-ref.js +1055 -0
- package/src/lib/app-utils/media-ref.js.map +1 -0
- package/src/lib/app-utils/media-takedown-reach.d.ts +126 -0
- package/src/lib/app-utils/media-takedown-reach.js +143 -0
- package/src/lib/app-utils/media-takedown-reach.js.map +1 -0
- package/src/lib/app-utils/member-email-aliases.d.ts +180 -0
- package/src/lib/app-utils/member-email-aliases.js +217 -0
- package/src/lib/app-utils/member-email-aliases.js.map +1 -0
- package/src/lib/app-utils/merge-node-sx.d.ts +47 -0
- package/src/lib/app-utils/merge-node-sx.js +123 -0
- package/src/lib/app-utils/merge-node-sx.js.map +1 -0
- package/src/lib/app-utils/name-match.d.ts +155 -0
- package/src/lib/app-utils/name-match.js +175 -0
- package/src/lib/app-utils/name-match.js.map +1 -0
- package/src/lib/app-utils/name-search.d.ts +117 -0
- package/src/lib/app-utils/name-search.js +145 -0
- package/src/lib/app-utils/name-search.js.map +1 -0
- package/src/lib/app-utils/node-capabilities.d.ts +85 -0
- package/src/lib/app-utils/node-capabilities.js +88 -0
- package/src/lib/app-utils/node-capabilities.js.map +1 -0
- package/src/lib/app-utils/node-definition-sanitizer.d.ts +164 -0
- package/src/lib/app-utils/node-definition-sanitizer.js +402 -0
- package/src/lib/app-utils/node-definition-sanitizer.js.map +1 -0
- package/src/lib/app-utils/node-identity.d.ts +47 -0
- package/src/lib/app-utils/node-identity.js +50 -0
- package/src/lib/app-utils/node-identity.js.map +1 -0
- package/src/lib/app-utils/node-interactions.d.ts +102 -0
- package/src/lib/app-utils/node-interactions.js +192 -0
- package/src/lib/app-utils/node-interactions.js.map +1 -0
- package/src/lib/app-utils/node-url-policy.d.ts +54 -0
- package/src/lib/app-utils/node-url-policy.js +72 -0
- package/src/lib/app-utils/node-url-policy.js.map +1 -0
- package/src/lib/app-utils/notifications.d.ts +71 -0
- package/src/lib/app-utils/notifications.js +101 -0
- package/src/lib/app-utils/notifications.js.map +1 -0
- package/src/lib/app-utils/onboarding-deep-link.d.ts +120 -0
- package/src/lib/app-utils/onboarding-deep-link.js +142 -0
- package/src/lib/app-utils/onboarding-deep-link.js.map +1 -0
- package/src/lib/app-utils/operator-identity.d.ts +207 -0
- package/src/lib/app-utils/operator-identity.js +186 -0
- package/src/lib/app-utils/operator-identity.js.map +1 -0
- package/src/lib/app-utils/org-billing-doc.d.ts +231 -0
- package/src/lib/app-utils/org-billing-doc.js +238 -0
- package/src/lib/app-utils/org-billing-doc.js.map +1 -0
- package/src/lib/app-utils/org-override-reason.d.ts +100 -0
- package/src/lib/app-utils/org-override-reason.js +116 -0
- package/src/lib/app-utils/org-override-reason.js.map +1 -0
- package/src/lib/app-utils/org-permissions.d.ts +194 -0
- package/src/lib/app-utils/org-permissions.js +357 -0
- package/src/lib/app-utils/org-permissions.js.map +1 -0
- package/src/lib/app-utils/org-roles.d.ts +72 -0
- package/src/lib/app-utils/org-roles.js +131 -0
- package/src/lib/app-utils/org-roles.js.map +1 -0
- package/src/lib/app-utils/organizations.d.ts +407 -0
- package/src/lib/app-utils/organizations.js +511 -0
- package/src/lib/app-utils/organizations.js.map +1 -0
- package/src/lib/app-utils/page-header-actions-context.d.ts +83 -0
- package/src/lib/app-utils/page-header-actions-context.js +58 -0
- package/src/lib/app-utils/page-header-actions-context.js.map +1 -0
- package/src/lib/app-utils/page-header-record-context.d.ts +80 -0
- package/src/lib/app-utils/page-header-record-context.js +64 -0
- package/src/lib/app-utils/page-header-record-context.js.map +1 -0
- package/src/lib/app-utils/page-markdown.d.ts +103 -0
- package/src/lib/app-utils/page-markdown.js +385 -0
- package/src/lib/app-utils/page-markdown.js.map +1 -0
- package/src/lib/app-utils/paid-media-source.d.ts +90 -0
- package/src/lib/app-utils/paid-media-source.js +184 -0
- package/src/lib/app-utils/paid-media-source.js.map +1 -0
- package/src/lib/app-utils/palette-sx.d.ts +34 -0
- package/src/lib/app-utils/palette-sx.js +150 -0
- package/src/lib/app-utils/palette-sx.js.map +1 -0
- package/src/lib/app-utils/password-policy.d.ts +47 -0
- package/src/lib/app-utils/password-policy.js +46 -0
- package/src/lib/app-utils/password-policy.js.map +1 -0
- package/src/lib/app-utils/payments-configured.d.ts +84 -0
- package/src/lib/app-utils/payments-configured.js +88 -0
- package/src/lib/app-utils/payments-configured.js.map +1 -0
- package/src/lib/app-utils/person-erasure.d.ts +126 -0
- package/src/lib/app-utils/person-erasure.js +121 -0
- package/src/lib/app-utils/person-erasure.js.map +1 -0
- package/src/lib/app-utils/person-key.d.ts +32 -0
- package/src/lib/app-utils/person-key.js +62 -0
- package/src/lib/app-utils/person-key.js.map +1 -0
- package/src/lib/app-utils/plan-entitlements.d.ts +2756 -0
- package/src/lib/app-utils/plan-entitlements.js +4085 -0
- package/src/lib/app-utils/plan-entitlements.js.map +1 -0
- package/src/lib/app-utils/platform-ad-conversions.d.ts +122 -0
- package/src/lib/app-utils/platform-ad-conversions.js +174 -0
- package/src/lib/app-utils/platform-ad-conversions.js.map +1 -0
- package/src/lib/app-utils/platform-advertising-tags.d.ts +139 -0
- package/src/lib/app-utils/platform-advertising-tags.js +203 -0
- package/src/lib/app-utils/platform-advertising-tags.js.map +1 -0
- package/src/lib/app-utils/platform-brand.d.ts +151 -0
- package/src/lib/app-utils/platform-brand.js +175 -0
- package/src/lib/app-utils/platform-brand.js.map +1 -0
- package/src/lib/app-utils/platform-consent-default.d.ts +142 -0
- package/src/lib/app-utils/platform-consent-default.js +295 -0
- package/src/lib/app-utils/platform-consent-default.js.map +1 -0
- package/src/lib/app-utils/platform-marketing-consent.d.ts +151 -0
- package/src/lib/app-utils/platform-marketing-consent.js +182 -0
- package/src/lib/app-utils/platform-marketing-consent.js.map +1 -0
- package/src/lib/app-utils/platform-marketing-host.d.ts +33 -0
- package/src/lib/app-utils/platform-marketing-host.js +97 -0
- package/src/lib/app-utils/platform-marketing-host.js.map +1 -0
- package/src/lib/app-utils/platform-visitor-consent.d.ts +252 -0
- package/src/lib/app-utils/platform-visitor-consent.js +533 -0
- package/src/lib/app-utils/platform-visitor-consent.js.map +1 -0
- package/src/lib/app-utils/plugin-api-cross-origin.d.ts +61 -0
- package/src/lib/app-utils/plugin-api-cross-origin.js +202 -0
- package/src/lib/app-utils/plugin-api-cross-origin.js.map +1 -0
- package/src/lib/app-utils/plugin-api-rate-limit.d.ts +192 -0
- package/src/lib/app-utils/plugin-api-rate-limit.js +270 -0
- package/src/lib/app-utils/plugin-api-rate-limit.js.map +1 -0
- package/src/lib/app-utils/plugin-artifact-path.d.ts +32 -0
- package/src/lib/app-utils/plugin-artifact-path.js +33 -0
- package/src/lib/app-utils/plugin-artifact-path.js.map +1 -0
- package/src/lib/app-utils/plugin-bundle-checks.d.ts +148 -0
- package/src/lib/app-utils/plugin-bundle-checks.js +989 -0
- package/src/lib/app-utils/plugin-bundle-checks.js.map +1 -0
- package/src/lib/app-utils/plugin-manifest.d.ts +516 -0
- package/src/lib/app-utils/plugin-manifest.js +687 -0
- package/src/lib/app-utils/plugin-manifest.js.map +1 -0
- package/src/lib/app-utils/published-legal-pages.d.ts +71 -0
- package/src/lib/app-utils/published-legal-pages.js +90 -0
- package/src/lib/app-utils/published-legal-pages.js.map +1 -0
- package/src/lib/app-utils/publisher-agreement.d.ts +254 -0
- package/src/lib/app-utils/publisher-agreement.js +274 -0
- package/src/lib/app-utils/publisher-agreement.js.map +1 -0
- package/src/lib/app-utils/publisher-attestation.d.ts +99 -0
- package/src/lib/app-utils/publisher-attestation.js +158 -0
- package/src/lib/app-utils/publisher-attestation.js.map +1 -0
- package/src/lib/app-utils/recipient-email-render.d.ts +216 -0
- package/src/lib/app-utils/recipient-email-render.js +221 -0
- package/src/lib/app-utils/recipient-email-render.js.map +1 -0
- package/src/lib/app-utils/redispatch-caught-error.d.ts +38 -0
- package/src/lib/app-utils/redispatch-caught-error.js +46 -0
- package/src/lib/app-utils/redispatch-caught-error.js.map +1 -0
- package/src/lib/app-utils/registering-plugin.d.ts +19 -0
- package/src/lib/app-utils/registering-plugin.js +38 -0
- package/src/lib/app-utils/registering-plugin.js.map +1 -0
- package/src/lib/app-utils/release-flags.d.ts +283 -0
- package/src/lib/app-utils/release-flags.js +518 -0
- package/src/lib/app-utils/release-flags.js.map +1 -0
- package/src/lib/app-utils/repair-canvas-nodes.d.ts +130 -0
- package/src/lib/app-utils/repair-canvas-nodes.js +298 -0
- package/src/lib/app-utils/repair-canvas-nodes.js.map +1 -0
- package/src/lib/app-utils/repeat-infringer.d.ts +166 -0
- package/src/lib/app-utils/repeat-infringer.js +188 -0
- package/src/lib/app-utils/repeat-infringer.js.map +1 -0
- package/src/lib/app-utils/repeat-sources.d.ts +115 -0
- package/src/lib/app-utils/repeat-sources.js +86 -0
- package/src/lib/app-utils/repeat-sources.js.map +1 -0
- package/src/lib/app-utils/request-geo.d.ts +114 -0
- package/src/lib/app-utils/request-geo.js +247 -0
- package/src/lib/app-utils/request-geo.js.map +1 -0
- package/src/lib/app-utils/request-ip.d.ts +213 -0
- package/src/lib/app-utils/request-ip.js +344 -0
- package/src/lib/app-utils/request-ip.js.map +1 -0
- package/src/lib/app-utils/resolve-named-tokens.d.ts +26 -0
- package/src/lib/app-utils/resolve-named-tokens.js +59 -0
- package/src/lib/app-utils/resolve-named-tokens.js.map +1 -0
- package/src/lib/app-utils/responsive-typography-sx.d.ts +77 -0
- package/src/lib/app-utils/responsive-typography-sx.js +122 -0
- package/src/lib/app-utils/responsive-typography-sx.js.map +1 -0
- package/src/lib/app-utils/reusable-component-keys.d.ts +135 -0
- package/src/lib/app-utils/reusable-component-keys.js +140 -0
- package/src/lib/app-utils/reusable-component-keys.js.map +1 -0
- package/src/lib/app-utils/reusable-prop-values.d.ts +199 -0
- package/src/lib/app-utils/reusable-prop-values.js +494 -0
- package/src/lib/app-utils/reusable-prop-values.js.map +1 -0
- package/src/lib/app-utils/safe-json-ld.d.ts +29 -0
- package/src/lib/app-utils/safe-json-ld.js +37 -0
- package/src/lib/app-utils/safe-json-ld.js.map +1 -0
- package/src/lib/app-utils/sanitize-svg.d.ts +55 -0
- package/src/lib/app-utils/sanitize-svg.js +460 -0
- package/src/lib/app-utils/sanitize-svg.js.map +1 -0
- package/src/lib/app-utils/scheme-sx.d.ts +84 -0
- package/src/lib/app-utils/scheme-sx.js +148 -0
- package/src/lib/app-utils/scheme-sx.js.map +1 -0
- package/src/lib/app-utils/scope-tokens.d.ts +249 -0
- package/src/lib/app-utils/scope-tokens.js +331 -0
- package/src/lib/app-utils/scope-tokens.js.map +1 -0
- package/src/lib/app-utils/screen-link-context-value.d.ts +57 -0
- package/src/lib/app-utils/screen-link-context-value.js +43 -0
- package/src/lib/app-utils/screen-link-context-value.js.map +1 -0
- package/src/lib/app-utils/screen-link-context.d.ts +185 -0
- package/src/lib/app-utils/screen-link-context.js +304 -0
- package/src/lib/app-utils/screen-link-context.js.map +1 -0
- package/src/lib/app-utils/screen-link-value.d.ts +269 -0
- package/src/lib/app-utils/screen-link-value.js +384 -0
- package/src/lib/app-utils/screen-link-value.js.map +1 -0
- package/src/lib/app-utils/screen-route.d.ts +669 -0
- package/src/lib/app-utils/screen-route.js +751 -0
- package/src/lib/app-utils/screen-route.js.map +1 -0
- package/src/lib/app-utils/screen-seo-fields.d.ts +37 -0
- package/src/lib/app-utils/screen-seo-fields.js +42 -0
- package/src/lib/app-utils/screen-seo-fields.js.map +1 -0
- package/src/lib/app-utils/search-indexing.d.ts +162 -0
- package/src/lib/app-utils/search-indexing.js +207 -0
- package/src/lib/app-utils/search-indexing.js.map +1 -0
- package/src/lib/app-utils/seo-listing-fields.d.ts +70 -0
- package/src/lib/app-utils/seo-listing-fields.js +75 -0
- package/src/lib/app-utils/seo-listing-fields.js.map +1 -0
- package/src/lib/app-utils/seo-locale.d.ts +119 -0
- package/src/lib/app-utils/seo-locale.js +133 -0
- package/src/lib/app-utils/seo-locale.js.map +1 -0
- package/src/lib/app-utils/seo-title-variables.d.ts +149 -0
- package/src/lib/app-utils/seo-title-variables.js +190 -0
- package/src/lib/app-utils/seo-title-variables.js.map +1 -0
- package/src/lib/app-utils/seo-title.d.ts +70 -0
- package/src/lib/app-utils/seo-title.js +117 -0
- package/src/lib/app-utils/seo-title.js.map +1 -0
- package/src/lib/app-utils/server.d.ts +174 -0
- package/src/lib/app-utils/server.js +314 -0
- package/src/lib/app-utils/server.js.map +1 -0
- package/src/lib/app-utils/site-context.d.ts +106 -0
- package/src/lib/app-utils/site-context.js +100 -0
- package/src/lib/app-utils/site-context.js.map +1 -0
- package/src/lib/app-utils/sitemap.d.ts +117 -0
- package/src/lib/app-utils/sitemap.js +183 -0
- package/src/lib/app-utils/sitemap.js.map +1 -0
- package/src/lib/app-utils/social-image.d.ts +112 -0
- package/src/lib/app-utils/social-image.js +191 -0
- package/src/lib/app-utils/social-image.js.map +1 -0
- package/src/lib/app-utils/starter-templates.d.ts +99 -0
- package/src/lib/app-utils/starter-templates.js +579 -0
- package/src/lib/app-utils/starter-templates.js.map +1 -0
- package/src/lib/app-utils/stored-nodes.d.ts +120 -0
- package/src/lib/app-utils/stored-nodes.js +174 -0
- package/src/lib/app-utils/stored-nodes.js.map +1 -0
- package/src/lib/app-utils/strip-undefined.d.ts +59 -0
- package/src/lib/app-utils/strip-undefined.js +95 -0
- package/src/lib/app-utils/strip-undefined.js.map +1 -0
- package/src/lib/app-utils/stripe-deployment-mode.d.ts +47 -0
- package/src/lib/app-utils/stripe-deployment-mode.js +70 -0
- package/src/lib/app-utils/stripe-deployment-mode.js.map +1 -0
- package/src/lib/app-utils/support-tiers.d.ts +108 -0
- package/src/lib/app-utils/support-tiers.js +201 -0
- package/src/lib/app-utils/support-tiers.js.map +1 -0
- package/src/lib/app-utils/timezone-geo-hint.d.ts +36 -0
- package/src/lib/app-utils/timezone-geo-hint.js +180 -0
- package/src/lib/app-utils/timezone-geo-hint.js.map +1 -0
- package/src/lib/app-utils/upload-cors.d.ts +155 -0
- package/src/lib/app-utils/upload-cors.js +254 -0
- package/src/lib/app-utils/upload-cors.js.map +1 -0
- package/src/lib/app-utils/upload-inspection.d.ts +159 -0
- package/src/lib/app-utils/upload-inspection.js +539 -0
- package/src/lib/app-utils/upload-inspection.js.map +1 -0
- package/src/lib/app-utils/url-slug.d.ts +40 -0
- package/src/lib/app-utils/url-slug.js +42 -0
- package/src/lib/app-utils/url-slug.js.map +1 -0
- package/src/lib/app-utils/usage-budget.d.ts +429 -0
- package/src/lib/app-utils/usage-budget.js +421 -0
- package/src/lib/app-utils/usage-budget.js.map +1 -0
- package/src/lib/app-utils/variables.d.ts +96 -0
- package/src/lib/app-utils/variables.js +233 -0
- package/src/lib/app-utils/variables.js.map +1 -0
- package/src/lib/app-utils/video-asset-facts.d.ts +61 -0
- package/src/lib/app-utils/video-asset-facts.js +70 -0
- package/src/lib/app-utils/video-asset-facts.js.map +1 -0
- package/src/lib/app-utils/video-object.d.ts +89 -0
- package/src/lib/app-utils/video-object.js +245 -0
- package/src/lib/app-utils/video-object.js.map +1 -0
- package/src/lib/app-utils/visitor-consent.d.ts +757 -0
- package/src/lib/app-utils/visitor-consent.js +981 -0
- package/src/lib/app-utils/visitor-consent.js.map +1 -0
- package/src/lib/app-utils/visitor-record-ceiling.d.ts +223 -0
- package/src/lib/app-utils/visitor-record-ceiling.js +215 -0
- package/src/lib/app-utils/visitor-record-ceiling.js.map +1 -0
- package/src/lib/app-utils/web-vitals-rum.d.ts +53 -0
- package/src/lib/app-utils/web-vitals-rum.js +278 -0
- package/src/lib/app-utils/web-vitals-rum.js.map +1 -0
- package/src/lib/app-utils/webhook-delivery.d.ts +324 -0
- package/src/lib/app-utils/webhook-delivery.js +413 -0
- package/src/lib/app-utils/webhook-delivery.js.map +1 -0
- package/src/lib/app-utils/where-used.d.ts +57 -0
- package/src/lib/app-utils/where-used.js +59 -0
- package/src/lib/app-utils/where-used.js.map +1 -0
- package/src/lib/app-utils/wistia-embed.d.ts +86 -0
- package/src/lib/app-utils/wistia-embed.js +119 -0
- package/src/lib/app-utils/wistia-embed.js.map +1 -0
- package/src/lib/app-utils/workflows.d.ts +136 -0
- package/src/lib/app-utils/workflows.js +346 -0
- package/src/lib/app-utils/workflows.js.map +1 -0
- package/src/lib/canvas-manager/canvas-manager-tree.d.ts +109 -0
- package/src/lib/canvas-manager/canvas-manager-tree.js +139 -0
- package/src/lib/canvas-manager/canvas-manager-tree.js.map +1 -0
- package/src/lib/canvas-manager/canvas-manager.d.ts +549 -0
- package/src/lib/canvas-manager/canvas-manager.js +1311 -0
- package/src/lib/canvas-manager/canvas-manager.js.map +1 -0
- package/src/lib/canvas-manager/index.d.ts +20 -0
- package/src/lib/canvas-manager/index.js +21 -0
- package/src/lib/canvas-manager/index.js.map +1 -0
- package/src/lib/canvas-manager/stores/index.d.ts +17 -0
- package/src/lib/canvas-manager/stores/index.js +18 -0
- package/src/lib/canvas-manager/stores/index.js.map +1 -0
- package/src/lib/canvas-manager/stores/node.store.d.ts +30 -0
- package/src/lib/canvas-manager/stores/node.store.js +45 -0
- package/src/lib/canvas-manager/stores/node.store.js.map +1 -0
- package/src/lib/components-manager/components-manager.d.ts +56 -0
- package/src/lib/components-manager/components-manager.js +191 -0
- package/src/lib/components-manager/components-manager.js.map +1 -0
- package/src/lib/components-manager/index.d.ts +18 -0
- package/src/lib/components-manager/index.js +19 -0
- package/src/lib/components-manager/index.js.map +1 -0
- package/src/lib/emit-manager/emit-manager.d.ts +56 -0
- package/src/lib/emit-manager/emit-manager.js +60 -0
- package/src/lib/emit-manager/emit-manager.js.map +1 -0
- package/src/lib/emit-manager/index.d.ts +18 -0
- package/src/lib/emit-manager/index.js +19 -0
- package/src/lib/emit-manager/index.js.map +1 -0
- package/src/lib/foundation/constants/_internal.d.ts +18 -0
- package/src/lib/foundation/constants/_internal.js +62 -0
- package/src/lib/foundation/constants/_internal.js.map +1 -0
- package/src/lib/foundation/constants/app.d.ts +23 -0
- package/src/lib/foundation/constants/app.js +25 -0
- package/src/lib/foundation/constants/app.js.map +1 -0
- package/src/lib/foundation/constants/canvas.d.ts +18 -0
- package/src/lib/foundation/constants/canvas.js +18 -0
- package/src/lib/foundation/constants/canvas.js.map +1 -0
- package/src/lib/foundation/constants/components.d.ts +54 -0
- package/src/lib/foundation/constants/components.js +61 -0
- package/src/lib/foundation/constants/components.js.map +1 -0
- package/src/lib/foundation/constants/shared.d.ts +50 -0
- package/src/lib/foundation/constants/shared.js +49 -0
- package/src/lib/foundation/constants/shared.js.map +1 -0
- package/src/lib/foundation/constants/symbol.d.ts +63 -0
- package/src/lib/foundation/constants/symbol.js +75 -0
- package/src/lib/foundation/constants/symbol.js.map +1 -0
- package/src/lib/foundation/definitions/components.types.d.ts +372 -0
- package/src/lib/foundation/definitions/components.types.js +180 -0
- package/src/lib/foundation/definitions/components.types.js.map +1 -0
- package/src/lib/foundation/definitions/contact.types.d.ts +73 -0
- package/src/lib/foundation/definitions/contact.types.js +107 -0
- package/src/lib/foundation/definitions/contact.types.js.map +1 -0
- package/src/lib/foundation/definitions/host-content-collections.d.ts +137 -0
- package/src/lib/foundation/definitions/host-content-collections.js +219 -0
- package/src/lib/foundation/definitions/host-content-collections.js.map +1 -0
- package/src/lib/foundation/definitions/org-billing.types.d.ts +1361 -0
- package/src/lib/foundation/definitions/org-billing.types.js +77 -0
- package/src/lib/foundation/definitions/org-billing.types.js.map +1 -0
- package/src/lib/foundation/definitions/organization.types.d.ts +307 -0
- package/src/lib/foundation/definitions/organization.types.js +42 -0
- package/src/lib/foundation/definitions/organization.types.js.map +1 -0
- package/src/lib/foundation/definitions/platform.types.d.ts +1326 -0
- package/src/lib/foundation/definitions/platform.types.js +124 -0
- package/src/lib/foundation/definitions/platform.types.js.map +1 -0
- package/src/lib/foundation/definitions/property-kinds.d.ts +189 -0
- package/src/lib/foundation/definitions/property-kinds.js +565 -0
- package/src/lib/foundation/definitions/property-kinds.js.map +1 -0
- package/src/lib/foundation/definitions/shared.d.ts +23 -0
- package/src/lib/foundation/definitions/shared.js +18 -0
- package/src/lib/foundation/definitions/shared.js.map +1 -0
- package/src/lib/foundation/definitions/write-deny-coverage.util.d.ts +249 -0
- package/src/lib/foundation/definitions/write-deny-coverage.util.js +499 -0
- package/src/lib/foundation/definitions/write-deny-coverage.util.js.map +1 -0
- package/src/lib/foundation/index.d.ts +32 -0
- package/src/lib/foundation/index.js +67 -0
- package/src/lib/foundation/index.js.map +1 -0
- package/src/lib/lifecycle.d.ts +24 -0
- package/src/lib/lifecycle.js +39 -0
- package/src/lib/lifecycle.js.map +1 -0
- package/src/lib/mst/common.d.ts +17 -0
- package/src/lib/mst/common.js +23 -0
- package/src/lib/mst/common.js.map +1 -0
- package/src/lib/mst/index.d.ts +19 -0
- package/src/lib/mst/index.js +20 -0
- package/src/lib/mst/index.js.map +1 -0
- package/src/lib/mst/json.d.ts +22 -0
- package/src/lib/mst/json.js +23 -0
- package/src/lib/mst/json.js.map +1 -0
- package/src/lib/mst/types.d.ts +20 -0
- package/src/lib/mst/types.js +18 -0
- package/src/lib/mst/types.js.map +1 -0
- package/src/lib/plugin-manager/billing-webhook-hooks.d.ts +77 -0
- package/src/lib/plugin-manager/billing-webhook-hooks.js +55 -0
- package/src/lib/plugin-manager/billing-webhook-hooks.js.map +1 -0
- package/src/lib/plugin-manager/commerce-zone-props.d.ts +172 -0
- package/src/lib/plugin-manager/commerce-zone-props.js +31 -0
- package/src/lib/plugin-manager/commerce-zone-props.js.map +1 -0
- package/src/lib/plugin-manager/custom-fields.d.ts +60 -0
- package/src/lib/plugin-manager/custom-fields.js +39 -0
- package/src/lib/plugin-manager/custom-fields.js.map +1 -0
- package/src/lib/plugin-manager/editor-sessions.d.ts +109 -0
- package/src/lib/plugin-manager/editor-sessions.js +137 -0
- package/src/lib/plugin-manager/editor-sessions.js.map +1 -0
- package/src/lib/plugin-manager/enabled-plugins.d.ts +438 -0
- package/src/lib/plugin-manager/enabled-plugins.js +403 -0
- package/src/lib/plugin-manager/enabled-plugins.js.map +1 -0
- package/src/lib/plugin-manager/feature-plugins.d.ts +1314 -0
- package/src/lib/plugin-manager/feature-plugins.js +609 -0
- package/src/lib/plugin-manager/feature-plugins.js.map +1 -0
- package/src/lib/plugin-manager/first-party-plugins.generated.d.ts +11 -0
- package/src/lib/plugin-manager/first-party-plugins.generated.js +149 -0
- package/src/lib/plugin-manager/first-party-plugins.generated.js.map +1 -0
- package/src/lib/plugin-manager/index.d.ts +42 -0
- package/src/lib/plugin-manager/index.js +46 -0
- package/src/lib/plugin-manager/index.js.map +1 -0
- package/src/lib/plugin-manager/install-presets.d.ts +93 -0
- package/src/lib/plugin-manager/install-presets.js +86 -0
- package/src/lib/plugin-manager/install-presets.js.map +1 -0
- package/src/lib/plugin-manager/media-delivery-provider.d.ts +124 -0
- package/src/lib/plugin-manager/media-delivery-provider.js +53 -0
- package/src/lib/plugin-manager/media-delivery-provider.js.map +1 -0
- package/src/lib/plugin-manager/order-fulfilment.d.ts +142 -0
- package/src/lib/plugin-manager/order-fulfilment.js +104 -0
- package/src/lib/plugin-manager/order-fulfilment.js.map +1 -0
- package/src/lib/plugin-manager/plugin-activity-actions.d.ts +122 -0
- package/src/lib/plugin-manager/plugin-activity-actions.js +140 -0
- package/src/lib/plugin-manager/plugin-activity-actions.js.map +1 -0
- package/src/lib/plugin-manager/plugin-bridge.d.ts +98 -0
- package/src/lib/plugin-manager/plugin-bridge.js +154 -0
- package/src/lib/plugin-manager/plugin-bridge.js.map +1 -0
- package/src/lib/plugin-manager/plugin-config.d.ts +148 -0
- package/src/lib/plugin-manager/plugin-config.js +228 -0
- package/src/lib/plugin-manager/plugin-config.js.map +1 -0
- package/src/lib/plugin-manager/plugin-console-crons.d.ts +139 -0
- package/src/lib/plugin-manager/plugin-console-crons.js +177 -0
- package/src/lib/plugin-manager/plugin-console-crons.js.map +1 -0
- package/src/lib/plugin-manager/plugin-contact-capture.d.ts +220 -0
- package/src/lib/plugin-manager/plugin-contact-capture.js +89 -0
- package/src/lib/plugin-manager/plugin-contact-capture.js.map +1 -0
- package/src/lib/plugin-manager/plugin-contributions.d.ts +244 -0
- package/src/lib/plugin-manager/plugin-contributions.js +283 -0
- package/src/lib/plugin-manager/plugin-contributions.js.map +1 -0
- package/src/lib/plugin-manager/plugin-entitlement-keys.d.ts +169 -0
- package/src/lib/plugin-manager/plugin-entitlement-keys.js +84 -0
- package/src/lib/plugin-manager/plugin-entitlement-keys.js.map +1 -0
- package/src/lib/plugin-manager/plugin-entitlements.d.ts +181 -0
- package/src/lib/plugin-manager/plugin-entitlements.js +188 -0
- package/src/lib/plugin-manager/plugin-entitlements.js.map +1 -0
- package/src/lib/plugin-manager/plugin-events.d.ts +145 -0
- package/src/lib/plugin-manager/plugin-events.js +79 -0
- package/src/lib/plugin-manager/plugin-events.js.map +1 -0
- package/src/lib/plugin-manager/plugin-figures.d.ts +251 -0
- package/src/lib/plugin-manager/plugin-figures.js +252 -0
- package/src/lib/plugin-manager/plugin-figures.js.map +1 -0
- package/src/lib/plugin-manager/plugin-host-collections.d.ts +146 -0
- package/src/lib/plugin-manager/plugin-host-collections.js +116 -0
- package/src/lib/plugin-manager/plugin-host-collections.js.map +1 -0
- package/src/lib/plugin-manager/plugin-jobs.d.ts +130 -0
- package/src/lib/plugin-manager/plugin-jobs.js +182 -0
- package/src/lib/plugin-manager/plugin-jobs.js.map +1 -0
- package/src/lib/plugin-manager/plugin-loader.d.ts +86 -0
- package/src/lib/plugin-manager/plugin-loader.js +223 -0
- package/src/lib/plugin-manager/plugin-loader.js.map +1 -0
- package/src/lib/plugin-manager/plugin-manager.d.ts +95 -0
- package/src/lib/plugin-manager/plugin-manager.js +343 -0
- package/src/lib/plugin-manager/plugin-manager.js.map +1 -0
- package/src/lib/plugin-manager/plugin-metered-lines.d.ts +97 -0
- package/src/lib/plugin-manager/plugin-metered-lines.js +123 -0
- package/src/lib/plugin-manager/plugin-metered-lines.js.map +1 -0
- package/src/lib/plugin-manager/plugin-org-erasure.d.ts +52 -0
- package/src/lib/plugin-manager/plugin-org-erasure.js +100 -0
- package/src/lib/plugin-manager/plugin-org-erasure.js.map +1 -0
- package/src/lib/plugin-manager/plugin-permissions.d.ts +69 -0
- package/src/lib/plugin-manager/plugin-permissions.js +77 -0
- package/src/lib/plugin-manager/plugin-permissions.js.map +1 -0
- package/src/lib/plugin-manager/plugin-person-erasure.d.ts +58 -0
- package/src/lib/plugin-manager/plugin-person-erasure.js +109 -0
- package/src/lib/plugin-manager/plugin-person-erasure.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-cards.d.ts +99 -0
- package/src/lib/plugin-manager/plugin-record-cards.js +59 -0
- package/src/lib/plugin-manager/plugin-record-cards.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-facts.d.ts +111 -0
- package/src/lib/plugin-manager/plugin-record-facts.js +51 -0
- package/src/lib/plugin-manager/plugin-record-facts.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-routes.d.ts +129 -0
- package/src/lib/plugin-manager/plugin-record-routes.js +93 -0
- package/src/lib/plugin-manager/plugin-record-routes.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-timeline.d.ts +147 -0
- package/src/lib/plugin-manager/plugin-record-timeline.js +39 -0
- package/src/lib/plugin-manager/plugin-record-timeline.js.map +1 -0
- package/src/lib/plugin-manager/plugin-resource-drafts.d.ts +137 -0
- package/src/lib/plugin-manager/plugin-resource-drafts.js +51 -0
- package/src/lib/plugin-manager/plugin-resource-drafts.js.map +1 -0
- package/src/lib/plugin-manager/plugin-services.d.ts +94 -0
- package/src/lib/plugin-manager/plugin-services.js +153 -0
- package/src/lib/plugin-manager/plugin-services.js.map +1 -0
- package/src/lib/plugin-manager/plugin-styles-ui.d.ts +71 -0
- package/src/lib/plugin-manager/plugin-styles-ui.js +80 -0
- package/src/lib/plugin-manager/plugin-styles-ui.js.map +1 -0
- package/src/lib/plugin-manager/plugin-styles.d.ts +176 -0
- package/src/lib/plugin-manager/plugin-styles.js +186 -0
- package/src/lib/plugin-manager/plugin-styles.js.map +1 -0
- package/src/lib/plugin-manager/plugin-subprocessors.d.ts +135 -0
- package/src/lib/plugin-manager/plugin-subprocessors.js +129 -0
- package/src/lib/plugin-manager/plugin-subprocessors.js.map +1 -0
- package/src/lib/plugin-manager/plugin-tax-profile.d.ts +84 -0
- package/src/lib/plugin-manager/plugin-tax-profile.js +39 -0
- package/src/lib/plugin-manager/plugin-tax-profile.js.map +1 -0
- package/src/lib/plugin-manager/plugin-user-erasure.d.ts +53 -0
- package/src/lib/plugin-manager/plugin-user-erasure.js +84 -0
- package/src/lib/plugin-manager/plugin-user-erasure.js.map +1 -0
- package/src/lib/plugin-manager/plugin-zones.d.ts +121 -0
- package/src/lib/plugin-manager/plugin-zones.js +74 -0
- package/src/lib/plugin-manager/plugin-zones.js.map +1 -0
- package/src/lib/plugin-manager/realm-plugins.d.ts +112 -0
- package/src/lib/plugin-manager/realm-plugins.js +196 -0
- package/src/lib/plugin-manager/realm-plugins.js.map +1 -0
- package/src/lib/plugin-manager/realm-server.d.ts +54 -0
- package/src/lib/plugin-manager/realm-server.js +88 -0
- package/src/lib/plugin-manager/realm-server.js.map +1 -0
- package/src/lib/plugin-manager/record-zone-props.d.ts +126 -0
- package/src/lib/plugin-manager/record-zone-props.js +31 -0
- package/src/lib/plugin-manager/record-zone-props.js.map +1 -0
- package/src/lib/plugin-manager/site-page-hooks.d.ts +102 -0
- package/src/lib/plugin-manager/site-page-hooks.js +114 -0
- package/src/lib/plugin-manager/site-page-hooks.js.map +1 -0
- package/src/lib/plugin-manager/site-runtime.d.ts +57 -0
- package/src/lib/plugin-manager/site-runtime.js +25 -0
- package/src/lib/plugin-manager/site-runtime.js.map +1 -0
- package/src/lib/plugin-manager/usage-alert-contributors.d.ts +115 -0
- package/src/lib/plugin-manager/usage-alert-contributors.js +106 -0
- package/src/lib/plugin-manager/usage-alert-contributors.js.map +1 -0
- package/src/lib/types/ast.d.ts +199 -0
- package/src/lib/types/ast.js +20 -0
- package/src/lib/types/ast.js.map +1 -0
- package/src/lib/types/index.d.ts +20 -0
- package/src/lib/types/index.js +21 -0
- package/src/lib/types/index.js.map +1 -0
- package/src/lib/types/nodes.d.ts +608 -0
- package/src/lib/types/nodes.js +28 -0
- package/src/lib/types/nodes.js.map +1 -0
- package/src/lib/types/routing.d.ts +17 -0
- package/src/lib/types/routing.js +18 -0
- package/src/lib/types/routing.js.map +1 -0
- package/src/lib/types/screen.d.ts +23 -0
- package/src/lib/types/screen.js +18 -0
- package/src/lib/types/screen.js.map +1 -0
- package/src/lib/utils.d.ts +25 -0
- package/src/lib/utils.js +42 -0
- package/src/lib/utils.js.map +1 -0
- package/src/server.d.ts +37 -0
- package/src/server.js +55 -0
- package/src/server.js.map +1 -0
|
@@ -0,0 +1,687 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/ import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
17
|
+
import { _ as _object_without_properties_loose } from "@swc/helpers/_/_object_without_properties_loose";
|
|
18
|
+
import { sanitizePluginContributions } from "../plugin-manager/plugin-contributions.js";
|
|
19
|
+
/**
|
|
20
|
+
* Categories a third-party element may declare.
|
|
21
|
+
*
|
|
22
|
+
* Deliberately not the whole enum. `LAYOUT` and `NAVIGATION` are structural —
|
|
23
|
+
* a third-party element appearing among the containers a page is built out of
|
|
24
|
+
* invites placements the sandbox cannot honour, and taking a category away
|
|
25
|
+
* later breaks every site that used it. Cheaper to decide now, as the issue
|
|
26
|
+
* says; widening later is easy and narrowing is not.
|
|
27
|
+
*/ export const PLUGIN_ELEMENT_CATEGORIES = [
|
|
28
|
+
'Data Display',
|
|
29
|
+
'Media',
|
|
30
|
+
'Commerce',
|
|
31
|
+
'Forms',
|
|
32
|
+
'Input',
|
|
33
|
+
'Text',
|
|
34
|
+
'Sections & Blocks'
|
|
35
|
+
];
|
|
36
|
+
/** Bound on how many elements one plugin may contribute to the palette. */ export const PLUGIN_MAX_ELEMENTS = 12;
|
|
37
|
+
export * from "./plugin-artifact-path.js";
|
|
38
|
+
export const PLUGIN_ID_PATTERN = /^[a-z][a-z0-9-]{1,63}$/;
|
|
39
|
+
export const PLUGIN_VERSION_PATTERN = /^\d+\.\d+\.\d+$/;
|
|
40
|
+
export const PLUGIN_MAX_NETWORK_ORIGINS = 10;
|
|
41
|
+
export const PLUGIN_MAX_PROPS = 32;
|
|
42
|
+
/** Label/description/default text is publisher-authored; keep it bounded. */ const PLUGIN_PROP_TEXT_MAX = 200;
|
|
43
|
+
/**
|
|
44
|
+
* `mdiTimerOutline` — an icon NAME from the set the host already ships.
|
|
45
|
+
*
|
|
46
|
+
* Never a path: a path is arbitrary SVG from a publisher rendered into console
|
|
47
|
+
* chrome. A name is a lookup, so the worst an unknown one does is render
|
|
48
|
+
* nothing.
|
|
49
|
+
*/ const MDI_ICON_NAME_PATTERN = /^mdi[A-Za-z0-9]{1,48}$/;
|
|
50
|
+
const PROP_SCHEMA_TYPES = new Set([
|
|
51
|
+
'string',
|
|
52
|
+
'number',
|
|
53
|
+
'boolean',
|
|
54
|
+
'color',
|
|
55
|
+
'date',
|
|
56
|
+
'url',
|
|
57
|
+
'select'
|
|
58
|
+
]);
|
|
59
|
+
export const PLUGIN_MAX_EVENTS = 32;
|
|
60
|
+
export const PLUGIN_MAX_SIZE_PX = 4096;
|
|
61
|
+
const HTTPS_ORIGIN_PATTERN = /^https:\/\/[a-z0-9.-]+(:\d+)?$/i;
|
|
62
|
+
const IDENTIFIER_PATTERN = /^[A-Za-z_][A-Za-z0-9_]{0,63}$/;
|
|
63
|
+
/**
|
|
64
|
+
* Validates a manifest at publish time. Returns the normalized manifest or
|
|
65
|
+
* a human-readable error — the publish Cloud Function refuses to store a
|
|
66
|
+
* bundle whose manifest doesn't pass, so bad capabilities never reach a
|
|
67
|
+
* consumer's install screen.
|
|
68
|
+
*/ /**
|
|
69
|
+
* Sanitizes a publisher-authored prop schema against a set of declared props.
|
|
70
|
+
*
|
|
71
|
+
* Shared by `capabilities.propSchema` and each element's `attributes`, so a
|
|
72
|
+
* declared element cannot describe its way past the allowlist any more than a
|
|
73
|
+
* top-level schema can. One implementation, one rule.
|
|
74
|
+
*/ function sanitizePropSchemaList(input, declared) {
|
|
75
|
+
if (!Array.isArray(input)) return [];
|
|
76
|
+
const out = [];
|
|
77
|
+
const seen = new Set();
|
|
78
|
+
for (const raw of input.slice(0, PLUGIN_MAX_PROPS)){
|
|
79
|
+
if (!raw || typeof raw !== 'object') continue;
|
|
80
|
+
const entry = raw;
|
|
81
|
+
const name = entry['name'];
|
|
82
|
+
if (typeof name !== 'string' || !IDENTIFIER_PATTERN.test(name)) continue;
|
|
83
|
+
if (!declared.has(name) || seen.has(name)) continue;
|
|
84
|
+
seen.add(name);
|
|
85
|
+
const type = PROP_SCHEMA_TYPES.has(String(entry['type'])) ? entry['type'] : 'string';
|
|
86
|
+
const next = {
|
|
87
|
+
name,
|
|
88
|
+
type
|
|
89
|
+
};
|
|
90
|
+
for (const key of [
|
|
91
|
+
'label',
|
|
92
|
+
'description'
|
|
93
|
+
]){
|
|
94
|
+
const value = entry[key];
|
|
95
|
+
if (typeof value === 'string' && value.trim()) {
|
|
96
|
+
next[key] = value.trim().slice(0, PLUGIN_PROP_TEXT_MAX);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const fallback = entry['default'];
|
|
100
|
+
if (typeof fallback === 'string' || typeof fallback === 'number' || typeof fallback === 'boolean') {
|
|
101
|
+
next.default = typeof fallback === 'string' ? fallback.slice(0, PLUGIN_PROP_TEXT_MAX) : fallback;
|
|
102
|
+
}
|
|
103
|
+
if (type === 'select' && Array.isArray(entry['options'])) {
|
|
104
|
+
const options = entry['options'].map((option)=>{
|
|
105
|
+
const record = option != null ? option : {};
|
|
106
|
+
const value = record['value'];
|
|
107
|
+
if (typeof value !== 'string' || !value) return null;
|
|
108
|
+
const label = record['label'];
|
|
109
|
+
return _extends({
|
|
110
|
+
value: value.slice(0, PLUGIN_PROP_TEXT_MAX)
|
|
111
|
+
}, typeof label === 'string' && label.trim() ? {
|
|
112
|
+
label: label.trim().slice(0, PLUGIN_PROP_TEXT_MAX)
|
|
113
|
+
} : {});
|
|
114
|
+
}).filter(Boolean);
|
|
115
|
+
if (options.length) next.options = options.slice(0, PLUGIN_MAX_PROPS);
|
|
116
|
+
}
|
|
117
|
+
out.push(next);
|
|
118
|
+
}
|
|
119
|
+
return out;
|
|
120
|
+
}
|
|
121
|
+
export function validatePluginManifest(input) {
|
|
122
|
+
var _raw_id, _raw_version, _raw_name, _raw_entry, _raw_capabilities;
|
|
123
|
+
if (!input || typeof input !== 'object') {
|
|
124
|
+
return {
|
|
125
|
+
ok: false,
|
|
126
|
+
error: 'Manifest must be an object'
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
const raw = input;
|
|
130
|
+
const id = String((_raw_id = raw['id']) != null ? _raw_id : '');
|
|
131
|
+
if (!PLUGIN_ID_PATTERN.test(id)) {
|
|
132
|
+
return {
|
|
133
|
+
ok: false,
|
|
134
|
+
error: 'Invalid plugin id'
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
const version = String((_raw_version = raw['version']) != null ? _raw_version : '');
|
|
138
|
+
if (!PLUGIN_VERSION_PATTERN.test(version)) {
|
|
139
|
+
return {
|
|
140
|
+
ok: false,
|
|
141
|
+
error: 'Version must be semver (e.g. 1.0.0)'
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
const name = String((_raw_name = raw['name']) != null ? _raw_name : '').trim();
|
|
145
|
+
if (!name || name.length > 80) {
|
|
146
|
+
return {
|
|
147
|
+
ok: false,
|
|
148
|
+
error: 'Name is required (max 80 chars)'
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
const entry = String((_raw_entry = raw['entry']) != null ? _raw_entry : '').trim();
|
|
152
|
+
// Entry is a relative bundle path — absolute URLs would let a plugin
|
|
153
|
+
// point the loader at an off-origin script.
|
|
154
|
+
if (!entry || /^[a-z][a-z0-9+.-]*:/i.test(entry) || entry.startsWith('//')) {
|
|
155
|
+
return {
|
|
156
|
+
ok: false,
|
|
157
|
+
error: 'Entry must be a relative bundle path'
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
const capabilitiesInput = (_raw_capabilities = raw['capabilities']) != null ? _raw_capabilities : {};
|
|
161
|
+
const capabilities = {};
|
|
162
|
+
const network = capabilitiesInput['network'];
|
|
163
|
+
if (network !== undefined) {
|
|
164
|
+
if (!Array.isArray(network) || network.length > PLUGIN_MAX_NETWORK_ORIGINS) {
|
|
165
|
+
return {
|
|
166
|
+
ok: false,
|
|
167
|
+
error: 'Too many network origins declared'
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
for (const origin of network){
|
|
171
|
+
if (typeof origin !== 'string' || !HTTPS_ORIGIN_PATTERN.test(origin)) {
|
|
172
|
+
return {
|
|
173
|
+
ok: false,
|
|
174
|
+
error: `Network origin "${origin}" must be an https origin`
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (network.length) capabilities.network = [
|
|
179
|
+
...new Set(network)
|
|
180
|
+
];
|
|
181
|
+
}
|
|
182
|
+
for (const key of [
|
|
183
|
+
'props',
|
|
184
|
+
'events'
|
|
185
|
+
]){
|
|
186
|
+
const list = capabilitiesInput[key];
|
|
187
|
+
if (list === undefined) continue;
|
|
188
|
+
const max = key === 'props' ? PLUGIN_MAX_PROPS : PLUGIN_MAX_EVENTS;
|
|
189
|
+
if (!Array.isArray(list) || list.length > max) {
|
|
190
|
+
return {
|
|
191
|
+
ok: false,
|
|
192
|
+
error: `Too many ${key} declared`
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
for (const name of list){
|
|
196
|
+
if (typeof name !== 'string' || !IDENTIFIER_PATTERN.test(name)) {
|
|
197
|
+
return {
|
|
198
|
+
ok: false,
|
|
199
|
+
error: `Invalid ${key} name "${name}"`
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
if (list.length) capabilities[key] = [
|
|
204
|
+
...new Set(list)
|
|
205
|
+
];
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Editing metadata (AGL-1049). Sanitized, never trusted, and INTERSECTED
|
|
209
|
+
* with the allowlist above — an entry naming a prop that is not declared in
|
|
210
|
+
* `props` is dropped rather than rejected.
|
|
211
|
+
*
|
|
212
|
+
* Dropped and not rejected on purpose: a publisher who describes a prop they
|
|
213
|
+
* forgot to declare has made an authoring mistake, not an attack, and
|
|
214
|
+
* refusing the whole manifest for it would fail the publish over a label.
|
|
215
|
+
* The prop still does not cross the bridge, because `filterPluginProps`
|
|
216
|
+
* reads `props` and never this.
|
|
217
|
+
*
|
|
218
|
+
* An unknown `type` degrades to a text field rather than failing: a manifest
|
|
219
|
+
* written against a newer platform must not make an older host refuse a
|
|
220
|
+
* plugin that is otherwise fine.
|
|
221
|
+
*/ const propSchemaInput = capabilitiesInput['propSchema'];
|
|
222
|
+
if (propSchemaInput !== undefined) {
|
|
223
|
+
var _capabilities_props;
|
|
224
|
+
if (!Array.isArray(propSchemaInput) || propSchemaInput.length > PLUGIN_MAX_PROPS) {
|
|
225
|
+
return {
|
|
226
|
+
ok: false,
|
|
227
|
+
error: 'Too many prop schemas declared'
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
const propSchema = sanitizePropSchemaList(propSchemaInput, new Set((_capabilities_props = capabilities.props) != null ? _capabilities_props : []));
|
|
231
|
+
if (propSchema.length) capabilities.propSchema = propSchema;
|
|
232
|
+
}
|
|
233
|
+
const size = capabilitiesInput['size'];
|
|
234
|
+
if (size) {
|
|
235
|
+
var _size_width, _size_height;
|
|
236
|
+
const width = Number((_size_width = size.width) != null ? _size_width : 0);
|
|
237
|
+
const height = Number((_size_height = size.height) != null ? _size_height : 0);
|
|
238
|
+
if (size.width !== undefined && (!Number.isFinite(width) || width < 0 || width > PLUGIN_MAX_SIZE_PX) || size.height !== undefined && (!Number.isFinite(height) || height < 0 || height > PLUGIN_MAX_SIZE_PX)) {
|
|
239
|
+
return {
|
|
240
|
+
ok: false,
|
|
241
|
+
error: 'Declared size is out of range'
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
capabilities.size = _extends({}, size.width !== undefined ? {
|
|
245
|
+
width
|
|
246
|
+
} : {}, size.height !== undefined ? {
|
|
247
|
+
height
|
|
248
|
+
} : {});
|
|
249
|
+
}
|
|
250
|
+
const restrict = (value)=>{
|
|
251
|
+
if (!Array.isArray(value)) return undefined;
|
|
252
|
+
const ids = value.filter((entry)=>typeof entry === 'string' && entry.length > 0);
|
|
253
|
+
return ids.length ? [
|
|
254
|
+
...new Set(ids)
|
|
255
|
+
] : undefined;
|
|
256
|
+
};
|
|
257
|
+
const hostAbiRaw = raw['hostAbi'];
|
|
258
|
+
let hostAbi;
|
|
259
|
+
if (hostAbiRaw !== undefined) {
|
|
260
|
+
hostAbi = Number(hostAbiRaw);
|
|
261
|
+
if (!Number.isInteger(hostAbi) || hostAbi < 1 || hostAbi > 99) {
|
|
262
|
+
return {
|
|
263
|
+
ok: false,
|
|
264
|
+
error: 'hostAbi must be a small positive integer'
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Declared canvas elements (AGL-1031). Sanitized hard, because every field
|
|
270
|
+
* here is publisher-authored data the HOST renders into its own chrome.
|
|
271
|
+
*
|
|
272
|
+
* A malformed `elements` array is refused — that is a build error a
|
|
273
|
+
* publisher can see and fix. A single bad ENTRY is dropped instead, so one
|
|
274
|
+
* typo cannot fail a whole release.
|
|
275
|
+
*/ const elementsInput = raw['elements'];
|
|
276
|
+
const elements = [];
|
|
277
|
+
if (elementsInput !== undefined) {
|
|
278
|
+
var _capabilities_props1;
|
|
279
|
+
if (!Array.isArray(elementsInput) || elementsInput.length > PLUGIN_MAX_ELEMENTS) {
|
|
280
|
+
return {
|
|
281
|
+
ok: false,
|
|
282
|
+
error: 'Too many elements declared'
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
const declaredProps = new Set((_capabilities_props1 = capabilities.props) != null ? _capabilities_props1 : []);
|
|
286
|
+
const seenIds = new Set();
|
|
287
|
+
for (const rawElement of elementsInput){
|
|
288
|
+
if (!rawElement || typeof rawElement !== 'object') continue;
|
|
289
|
+
const entryRecord = rawElement;
|
|
290
|
+
const elementId = entryRecord['id'];
|
|
291
|
+
const elementName = entryRecord['displayName'];
|
|
292
|
+
if (typeof elementId !== 'string' || !IDENTIFIER_PATTERN.test(elementId)) {
|
|
293
|
+
continue;
|
|
294
|
+
}
|
|
295
|
+
if (seenIds.has(elementId)) continue;
|
|
296
|
+
if (typeof elementName !== 'string' || !elementName.trim()) continue;
|
|
297
|
+
seenIds.add(elementId);
|
|
298
|
+
const element = {
|
|
299
|
+
id: elementId,
|
|
300
|
+
displayName: elementName.trim().slice(0, PLUGIN_PROP_TEXT_MAX)
|
|
301
|
+
};
|
|
302
|
+
const elementDescription = entryRecord['description'];
|
|
303
|
+
if (typeof elementDescription === 'string' && elementDescription.trim()) {
|
|
304
|
+
element.description = elementDescription.trim().slice(0, PLUGIN_PROP_TEXT_MAX);
|
|
305
|
+
}
|
|
306
|
+
// A category outside the permitted subset is DROPPED, not refused: the
|
|
307
|
+
// structural ones are withheld deliberately (see
|
|
308
|
+
// PLUGIN_ELEMENT_CATEGORIES), and a publisher aiming at one should still
|
|
309
|
+
// get a usable element rather than a failed publish.
|
|
310
|
+
const elementCategory = entryRecord['category'];
|
|
311
|
+
if (typeof elementCategory === 'string' && PLUGIN_ELEMENT_CATEGORIES.includes(elementCategory)) {
|
|
312
|
+
element.category = elementCategory;
|
|
313
|
+
}
|
|
314
|
+
const elementIcon = entryRecord['icon'];
|
|
315
|
+
if (typeof elementIcon === 'string' && MDI_ICON_NAME_PATTERN.test(elementIcon)) {
|
|
316
|
+
element.icon = elementIcon;
|
|
317
|
+
}
|
|
318
|
+
const elementAttributes = sanitizePropSchemaList(entryRecord['attributes'], declaredProps);
|
|
319
|
+
if (elementAttributes.length) element.attributes = elementAttributes;
|
|
320
|
+
elements.push(element);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Declared contributions (AGL-3116). Refused whole when malformed rather
|
|
325
|
+
* than trimmed: a loader places the plugin by this block, and an entry
|
|
326
|
+
* dropped on the way in would stop it loading where it is used.
|
|
327
|
+
*/ let contributes;
|
|
328
|
+
if (raw['contributes'] !== undefined) {
|
|
329
|
+
const verdict = sanitizePluginContributions(raw['contributes']);
|
|
330
|
+
if (verdict.ok === false) return {
|
|
331
|
+
ok: false,
|
|
332
|
+
error: verdict.error
|
|
333
|
+
};
|
|
334
|
+
contributes = verdict.contributions;
|
|
335
|
+
}
|
|
336
|
+
return {
|
|
337
|
+
ok: true,
|
|
338
|
+
manifest: _extends({
|
|
339
|
+
id,
|
|
340
|
+
name,
|
|
341
|
+
version,
|
|
342
|
+
entry
|
|
343
|
+
}, hostAbi !== undefined ? {
|
|
344
|
+
hostAbi
|
|
345
|
+
} : {}, contributes ? {
|
|
346
|
+
contributes
|
|
347
|
+
} : {}, Object.keys(capabilities).length ? {
|
|
348
|
+
capabilities
|
|
349
|
+
} : {}, elements.length ? {
|
|
350
|
+
elements
|
|
351
|
+
} : {}, restrict(raw['restrictParent']) ? {
|
|
352
|
+
restrictParent: restrict(raw['restrictParent'])
|
|
353
|
+
} : {}, restrict(raw['restrictChildren']) ? {
|
|
354
|
+
restrictChildren: restrict(raw['restrictChildren'])
|
|
355
|
+
} : {}, typeof raw['description'] === 'string' ? {
|
|
356
|
+
description: String(raw['description']).slice(0, 500)
|
|
357
|
+
} : {})
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* The sandbox CSP is NOT built here (AGL-1092).
|
|
362
|
+
*
|
|
363
|
+
* A `pluginContentSecurityPolicy` used to live at this spot: exported,
|
|
364
|
+
* unit-tested, and called by nothing. The policy that actually reaches a
|
|
365
|
+
* browser is `csp()` in `tools/plugin-loader/origin/api/load.mjs`, on the
|
|
366
|
+
* plugin-origin deployment, and the two disagreed — this one emitted
|
|
367
|
+
* `connect-src 'none'` for a manifest with no network, which would have
|
|
368
|
+
* broken every sandboxed load, since the frame fetches its own bundle from
|
|
369
|
+
* its own origin. Deleted rather than reconciled: a tested policy nobody
|
|
370
|
+
* serves is worse than none, because it answers a reader's question wrongly.
|
|
371
|
+
* `capabilities.network` still decides the allowlist — the loader reads it
|
|
372
|
+
* from the public listing-versions endpoint and appends it to `connect-src`,
|
|
373
|
+
* with tests beside it (`npm run test:plugin-loader`).
|
|
374
|
+
*/ /**
|
|
375
|
+
* True when a pinned version is killed — the whole listing (`'all'`) or the
|
|
376
|
+
* specific version. Loaders check this before executing and render a safe
|
|
377
|
+
* placeholder when true (AGL-45 §3.5 kill switch).
|
|
378
|
+
*/ export function isPluginRevoked(revocation, version) {
|
|
379
|
+
if (!revocation) return false;
|
|
380
|
+
if (isListingWideRevocation(revocation)) return true;
|
|
381
|
+
return Array.isArray(revocation.versions) && revocation.versions.includes(version);
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* True when the kill switch is thrown on the WHOLE listing, not one build.
|
|
385
|
+
*
|
|
386
|
+
* Split out for the one caller that has no version to ask about: marketplace
|
|
387
|
+
* checkout (AGL-2288) must refuse to SELL a listing the platform has switched
|
|
388
|
+
* off, and it decides that before any version is chosen. Written here rather
|
|
389
|
+
* than as `revocation?.versions === 'all'` at that call site for the reason
|
|
390
|
+
* the doc comment on `nextRevocationState` gives — what `'all'` means is a
|
|
391
|
+
* property of this document's shape, and a second reader that spelled it out
|
|
392
|
+
* itself is how a kill switch silently stops killing.
|
|
393
|
+
*
|
|
394
|
+
* A per-version revocation is deliberately NOT listing-wide: it stops one
|
|
395
|
+
* build while the rest stay installable.
|
|
396
|
+
*/ export function isListingWideRevocation(revocation) {
|
|
397
|
+
return (revocation == null ? void 0 : revocation.versions) === 'all';
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* What a listing OFFERS a client right now (AGL-2368).
|
|
401
|
+
*
|
|
402
|
+
* `newestInstallableVersion` is the derivation, and it needs the version set —
|
|
403
|
+
* which is server-only (`pluginVersions`). A client has the listing's
|
|
404
|
+
* `latestApprovedVersion` mirror instead, and since AGL-2306 every writer of
|
|
405
|
+
* that mirror computes it with `newestInstallableVersion`. So on a client the
|
|
406
|
+
* mirror IS the answer, with one gap: the revocation document and the listing
|
|
407
|
+
* document are two non-transactional writes, and a live listener sees them
|
|
408
|
+
* land at different times. In that window the mirror names a version the kill
|
|
409
|
+
* switch has already stopped, which is the whole shape of this bug.
|
|
410
|
+
*
|
|
411
|
+
* So a client that holds the revocation checks it against the mirror and, when
|
|
412
|
+
* they disagree, offers NOTHING rather than the next-best guess. It cannot
|
|
413
|
+
* compute the next-best guess — it has no version list — and "no update to
|
|
414
|
+
* offer" is the safe reading of a mirror it has caught mid-repair. The repair
|
|
415
|
+
* lands moments later and the real answer appears.
|
|
416
|
+
*
|
|
417
|
+
* A client with no revocation in hand passes `undefined` and gets the mirror,
|
|
418
|
+
* which is what it had before. That is a real fallback, not a silent one: the
|
|
419
|
+
* gap it leaves is bounded by the repair, and the install route derives live
|
|
420
|
+
* and refuses regardless.
|
|
421
|
+
*/ export function offeredPluginVersion(listing, revocation) {
|
|
422
|
+
var _ref;
|
|
423
|
+
const offered = String((_ref = listing == null ? void 0 : listing.latestApprovedVersion) != null ? _ref : '');
|
|
424
|
+
if (!offered) return null;
|
|
425
|
+
return isPluginRevoked(revocation, offered) ? null : offered;
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* The newest version a buyer could actually install right now (AGL-2306).
|
|
429
|
+
*
|
|
430
|
+
* Two things have to be true of an offer, and the listing's
|
|
431
|
+
* `latestApprovedVersion` mirror only ever tracked one of them: the version
|
|
432
|
+
* must be APPROVED (AGL-966 — review lives on the version) and it must not be
|
|
433
|
+
* REVOKED (AGL-1085 — `install-plugin` answers 409 to a revoked pin).
|
|
434
|
+
*
|
|
435
|
+
* Written here rather than in the console route that repairs the mirror, and
|
|
436
|
+
* rather than reusing `newestApprovedVersion` in the marketplace plugin's
|
|
437
|
+
* model, because the console is `scope:app` and may not depend on
|
|
438
|
+
* `aglyn:addons`. Both may import core, and "what is on offer" is one
|
|
439
|
+
* question that must have one answer.
|
|
440
|
+
*
|
|
441
|
+
* `compare` is injected rather than imported so this module stays free of the
|
|
442
|
+
* artifact-version comparator's own dependencies; every caller already has it.
|
|
443
|
+
* A `null` comparison (an unparseable version string) sorts as "not newer",
|
|
444
|
+
* which keeps a malformed version out of an offer rather than into one.
|
|
445
|
+
*
|
|
446
|
+
* Returns `null` when nothing qualifies — an ABSENT mirror reads as "no update
|
|
447
|
+
* to offer", while a stale string reads as an update that does not exist.
|
|
448
|
+
*/ export function newestInstallableVersion(versions, revocation, compare) {
|
|
449
|
+
let newest = null;
|
|
450
|
+
for (const entry of versions){
|
|
451
|
+
var _compare;
|
|
452
|
+
if (!(entry == null ? void 0 : entry.version)) continue;
|
|
453
|
+
if (entry.reviewState !== 'approved') continue;
|
|
454
|
+
if (isPluginRevoked(revocation, entry.version)) continue;
|
|
455
|
+
if (newest == null || ((_compare = compare(newest, entry.version)) != null ? _compare : 0) < 0) {
|
|
456
|
+
newest = entry.version;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
return newest;
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* The next `revocations/{listingId}` state after one write (AGL-1085).
|
|
463
|
+
*
|
|
464
|
+
* Two writers share this doc and neither may erase the other:
|
|
465
|
+
*
|
|
466
|
+
* * a **takedown** kills the listing, flattening `versions` to `'all'`, and
|
|
467
|
+
* un-hiding removes what it wrote (AGL-948);
|
|
468
|
+
* * a **review** decision stops one version's bytes — the reviewer's only
|
|
469
|
+
* alternative used to be a full takedown, which also revokes the version
|
|
470
|
+
* customers are happily running.
|
|
471
|
+
*
|
|
472
|
+
* `versions` stays the single field every reader consults, so `isPluginRevoked`
|
|
473
|
+
* and the loaders are untouched. `reviewVersions` is the durable record of the
|
|
474
|
+
* review-owned half, which is what lets un-hiding restore rather than clear it.
|
|
475
|
+
* Returns `null` when nothing is revoked any more and the doc should be
|
|
476
|
+
* deleted — an empty `versions: []` would read as "revoked nothing" but keep a
|
|
477
|
+
* doc around that a later reader has to interpret.
|
|
478
|
+
*
|
|
479
|
+
* Pure so both transitions are testable without Firestore, and colocated with
|
|
480
|
+
* `isPluginRevoked` on purpose: a writer that disagreed with the reader about
|
|
481
|
+
* this doc's shape is exactly how a kill switch silently stops killing.
|
|
482
|
+
*/ export function nextRevocationState(current, change) {
|
|
483
|
+
var _ref;
|
|
484
|
+
const takenDown = (current == null ? void 0 : current.source) === 'takedown';
|
|
485
|
+
// A document written before AGL-1085 — or by hand, which the rules permit
|
|
486
|
+
// any staff client to do — has `versions` and NO `reviewVersions`
|
|
487
|
+
// (AGL-2305). `withReview` REPLACES `versions` wholesale from this seed, so
|
|
488
|
+
// reading it as an empty list silently rebuilt the document: revoking a
|
|
489
|
+
// second version un-revoked the first, and un-revoking any version returned
|
|
490
|
+
// `null`, which the caller turns into a DELETE of the whole kill switch.
|
|
491
|
+
//
|
|
492
|
+
// A legacy `versions` array is adopted as the review-owned half, which is
|
|
493
|
+
// what it actually was: before AGL-1085 the only writer that produced an
|
|
494
|
+
// array here was a reviewer, and `'all'` (the takedown form) is excluded
|
|
495
|
+
// because that half is owned by `source` and restored by `restore`.
|
|
496
|
+
const reviewVersions = [
|
|
497
|
+
...(_ref = current == null ? void 0 : current.reviewVersions) != null ? _ref : Array.isArray(current == null ? void 0 : current.versions) ? current.versions : []
|
|
498
|
+
];
|
|
499
|
+
const withReview = (versions, stillTakenDown)=>{
|
|
500
|
+
if (stillTakenDown) {
|
|
501
|
+
return _extends({}, current, {
|
|
502
|
+
versions: 'all',
|
|
503
|
+
reviewVersions: versions
|
|
504
|
+
});
|
|
505
|
+
}
|
|
506
|
+
if (!versions.length) return null;
|
|
507
|
+
const _ref = current != null ? current : {}, { source: _source } = _ref, rest = _object_without_properties_loose(_ref, [
|
|
508
|
+
"source"
|
|
509
|
+
]);
|
|
510
|
+
return _extends({}, rest, {
|
|
511
|
+
versions,
|
|
512
|
+
reviewVersions: versions
|
|
513
|
+
});
|
|
514
|
+
};
|
|
515
|
+
switch(change.type){
|
|
516
|
+
case 'revoke-version':
|
|
517
|
+
{
|
|
518
|
+
const next = reviewVersions.includes(change.version) ? reviewVersions : [
|
|
519
|
+
...reviewVersions,
|
|
520
|
+
change.version
|
|
521
|
+
];
|
|
522
|
+
return withReview(next, takenDown);
|
|
523
|
+
}
|
|
524
|
+
case 'unrevoke-version':
|
|
525
|
+
{
|
|
526
|
+
return withReview(reviewVersions.filter((entry)=>entry !== change.version), takenDown);
|
|
527
|
+
}
|
|
528
|
+
case 'takedown':
|
|
529
|
+
return _extends({}, current, {
|
|
530
|
+
versions: 'all',
|
|
531
|
+
source: 'takedown',
|
|
532
|
+
reviewVersions
|
|
533
|
+
});
|
|
534
|
+
case 'restore':
|
|
535
|
+
// Only the takedown's own contribution goes away. A version a reviewer
|
|
536
|
+
// stopped stays stopped — un-hiding is not a review decision.
|
|
537
|
+
return withReview(reviewVersions, false);
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
/** Methods a host-mediated plugin fetch may use (AGL-191). */ export const PLUGIN_FETCH_METHODS = [
|
|
541
|
+
'GET',
|
|
542
|
+
'POST'
|
|
543
|
+
];
|
|
544
|
+
/** Request/response body cap for host-mediated fetch (bytes). */ export const PLUGIN_FETCH_MAX_BODY_BYTES = 256 * 1024;
|
|
545
|
+
/**
|
|
546
|
+
* True when `url`'s origin is an exact match against the manifest's
|
|
547
|
+
* declared `network` allowlist (AGL-191). The host re-checks this before
|
|
548
|
+
* proxying a plugin's `fetch-request`, so a plugin can only reach origins
|
|
549
|
+
* it declared at install (and the install screen surfaced). No allowlist =
|
|
550
|
+
* no host-mediated network; https-only.
|
|
551
|
+
*/ export function isPluginNetworkAllowed(url, capabilities) {
|
|
552
|
+
const allow = capabilities == null ? void 0 : capabilities.network;
|
|
553
|
+
if (!(allow == null ? void 0 : allow.length)) return false;
|
|
554
|
+
try {
|
|
555
|
+
const parsed = new URL(url);
|
|
556
|
+
if (parsed.protocol !== 'https:') return false;
|
|
557
|
+
return allow.includes(parsed.origin);
|
|
558
|
+
} catch (unused) {
|
|
559
|
+
return false;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
/** Component id of the sandboxed plugin canvas element (plugins-mui). */ export const PLUGIN_COMPONENT_ID = 'marketplacePlugin';
|
|
563
|
+
/**
|
|
564
|
+
* Compose-time injection (AGL-45), mirroring `attachFunctionDefinitions`:
|
|
565
|
+
* a `marketplacePlugin` node carries only a `listingId` in the saved screen;
|
|
566
|
+
* the tenant compose pass resolves that to the host's pinned install
|
|
567
|
+
* (version/sha256/capabilities) and the kill-switch state, and stamps them
|
|
568
|
+
* onto the node's props so `PluginFrame` renders without a client read.
|
|
569
|
+
* Unknown/uninstalled listings leave the node untouched (it shows a safe
|
|
570
|
+
* "not installed" placeholder rather than taking the screen down).
|
|
571
|
+
*/ export function attachPluginInstalls(nodes, installsByListingId) {
|
|
572
|
+
if (!Object.keys(installsByListingId).length) return nodes;
|
|
573
|
+
const next = {};
|
|
574
|
+
for (const [id, node] of Object.entries(nodes)){
|
|
575
|
+
var _node_props;
|
|
576
|
+
const listingId = (node == null ? void 0 : node.componentId) === PLUGIN_COMPONENT_ID ? node == null ? void 0 : (_node_props = node.props) == null ? void 0 : _node_props.listingId : undefined;
|
|
577
|
+
const install = listingId ? installsByListingId[String(listingId)] : undefined;
|
|
578
|
+
next[id] = install ? _extends({}, node, {
|
|
579
|
+
props: _extends({}, node.props, {
|
|
580
|
+
version: install.version,
|
|
581
|
+
sha256: install.sha256,
|
|
582
|
+
capabilities: install.capabilities,
|
|
583
|
+
revoked: Boolean(install.revoked)
|
|
584
|
+
})
|
|
585
|
+
}) : node;
|
|
586
|
+
}
|
|
587
|
+
return next;
|
|
588
|
+
}
|
|
589
|
+
/**
|
|
590
|
+
* The settings an author may edit on a placed plugin (AGL-1049).
|
|
591
|
+
*
|
|
592
|
+
* Driven by `capabilities.props` — THE allowlist — and decorated by
|
|
593
|
+
* `propSchema` where the publisher supplied one. That order is the whole
|
|
594
|
+
* security property: the list of editable settings can never be longer than
|
|
595
|
+
* the list of props that cross the bridge, whatever the schema says, so a
|
|
596
|
+
* publisher cannot describe their way into a prop they did not declare.
|
|
597
|
+
*
|
|
598
|
+
* A plugin published before `propSchema` existed still gets a field per
|
|
599
|
+
* declared prop, as plain text. That is the difference between guessing key
|
|
600
|
+
* names in a JSON textarea and being shown them, and it needs no manifest
|
|
601
|
+
* change to work — which matters, because every plugin installed today
|
|
602
|
+
* predates this.
|
|
603
|
+
*/ export function resolvePluginPropFields(manifest) {
|
|
604
|
+
var _ref, _ref1;
|
|
605
|
+
var _manifest_capabilities, _manifest_capabilities1;
|
|
606
|
+
const props = (_ref = manifest == null ? void 0 : (_manifest_capabilities = manifest.capabilities) == null ? void 0 : _manifest_capabilities.props) != null ? _ref : [];
|
|
607
|
+
const schema = new Map(((_ref1 = manifest == null ? void 0 : (_manifest_capabilities1 = manifest.capabilities) == null ? void 0 : _manifest_capabilities1.propSchema) != null ? _ref1 : []).map((entry)=>[
|
|
608
|
+
entry.name,
|
|
609
|
+
entry
|
|
610
|
+
]));
|
|
611
|
+
return props.map((name)=>{
|
|
612
|
+
var _ref, _ref1;
|
|
613
|
+
const declared = schema.get(name);
|
|
614
|
+
return _extends({
|
|
615
|
+
name,
|
|
616
|
+
type: (_ref = declared == null ? void 0 : declared.type) != null ? _ref : 'string',
|
|
617
|
+
label: (_ref1 = declared == null ? void 0 : declared.label) != null ? _ref1 : name
|
|
618
|
+
}, (declared == null ? void 0 : declared.description) ? {
|
|
619
|
+
description: declared.description
|
|
620
|
+
} : {}, (declared == null ? void 0 : declared.default) !== undefined ? {
|
|
621
|
+
default: declared.default
|
|
622
|
+
} : {}, (declared == null ? void 0 : declared.options) ? {
|
|
623
|
+
options: declared.options
|
|
624
|
+
} : {});
|
|
625
|
+
});
|
|
626
|
+
}
|
|
627
|
+
/**
|
|
628
|
+
* Keys an author has set that the plugin will silently ignore.
|
|
629
|
+
*
|
|
630
|
+
* The failure this exists to surface: `filterPluginProps` drops anything not
|
|
631
|
+
* in the allowlist, so a typo does not fail — it just quietly does nothing,
|
|
632
|
+
* which is the worst of the options. Naming the key is the whole fix.
|
|
633
|
+
*/ export function unknownPluginPropKeys(manifest, values) {
|
|
634
|
+
var _ref;
|
|
635
|
+
var _manifest_capabilities;
|
|
636
|
+
if (!values) return [];
|
|
637
|
+
const allowed = new Set((_ref = manifest == null ? void 0 : (_manifest_capabilities = manifest.capabilities) == null ? void 0 : _manifest_capabilities.props) != null ? _ref : []);
|
|
638
|
+
return Object.keys(values).filter((key)=>!allowed.has(key));
|
|
639
|
+
}
|
|
640
|
+
/**
|
|
641
|
+
* The palette entries an installed plugin contributes (AGL-1031).
|
|
642
|
+
*
|
|
643
|
+
* Resolved from the PINNED install, which is what makes the two guarantees in
|
|
644
|
+
* the issue hold without extra machinery: an element only appears where the
|
|
645
|
+
* plugin is installed, and a revoked or downgraded version's elements vanish
|
|
646
|
+
* with it, because the palette is rebuilt from whatever the pin now points at.
|
|
647
|
+
*
|
|
648
|
+
* Attributes come back through `resolvePluginPropFields`, so an element's
|
|
649
|
+
* editable fields are bounded by `capabilities.props` exactly like the generic
|
|
650
|
+
* plugin element's are. A declared element cannot widen what crosses the
|
|
651
|
+
* bridge; it only gives the same props a better name and a better editor.
|
|
652
|
+
*/ export function resolvePluginElements(install) {
|
|
653
|
+
var _ref, _ref1;
|
|
654
|
+
var _install_manifest;
|
|
655
|
+
const listingId = install == null ? void 0 : install.listingId;
|
|
656
|
+
if (!listingId) return [];
|
|
657
|
+
const declared = (_ref = (_ref1 = install == null ? void 0 : install.elements) != null ? _ref1 : install == null ? void 0 : (_install_manifest = install.manifest) == null ? void 0 : _install_manifest.elements) != null ? _ref : [];
|
|
658
|
+
const capabilities = install == null ? void 0 : install.capabilities;
|
|
659
|
+
return declared.map((element)=>{
|
|
660
|
+
var _element_category;
|
|
661
|
+
var _element_attributes;
|
|
662
|
+
return _extends({
|
|
663
|
+
listingId,
|
|
664
|
+
elementId: element.id,
|
|
665
|
+
displayName: element.displayName
|
|
666
|
+
}, element.description ? {
|
|
667
|
+
description: element.description
|
|
668
|
+
} : {}, {
|
|
669
|
+
category: (_element_category = element.category) != null ? _element_category : 'Data Display'
|
|
670
|
+
}, element.icon ? {
|
|
671
|
+
icon: element.icon
|
|
672
|
+
} : {}, {
|
|
673
|
+
// Per-element attributes when declared; otherwise the plugin's whole
|
|
674
|
+
// declared prop set, which is still better than a JSON box.
|
|
675
|
+
fields: ((_element_attributes = element.attributes) == null ? void 0 : _element_attributes.length) ? resolvePluginPropFields({
|
|
676
|
+
capabilities: {
|
|
677
|
+
props: element.attributes.map((attribute)=>attribute.name),
|
|
678
|
+
propSchema: element.attributes
|
|
679
|
+
}
|
|
680
|
+
}) : resolvePluginPropFields({
|
|
681
|
+
capabilities
|
|
682
|
+
})
|
|
683
|
+
});
|
|
684
|
+
});
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
//# sourceMappingURL=plugin-manifest.js.map
|