@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,277 @@
|
|
|
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
|
+
*/
|
|
17
|
+
export * from './media-alt';
|
|
18
|
+
export declare const MEDIA_TAG_MAX_COUNT = 20;
|
|
19
|
+
export declare const MEDIA_TAG_MAX_LENGTH = 40;
|
|
20
|
+
/**
|
|
21
|
+
* Trim, lowercase, dedupe, and cap tags. Accepts a comma-separated string
|
|
22
|
+
* or an array; empty and oversized entries are dropped.
|
|
23
|
+
*/
|
|
24
|
+
export declare function normalizeMediaTags(input: string | string[]): string[];
|
|
25
|
+
/**
|
|
26
|
+
* What a placement should store for `alt` once the asset's own alt text is
|
|
27
|
+
* taken into account (AGL-1896) — the DAM asset is the DEFAULT, the
|
|
28
|
+
* placement keeps the override.
|
|
29
|
+
*
|
|
30
|
+
* `AglynHostMedia.alt` has existed since AGL-173 and the library drawer has
|
|
31
|
+
* always been able to set it; what never existed is anybody READING it. Every
|
|
32
|
+
* placement surface asked the author to type alt again from scratch, so the
|
|
33
|
+
* same logo on eight pages needed its alt typed eight times and in practice
|
|
34
|
+
* shipped blank — on a customer's published site.
|
|
35
|
+
*
|
|
36
|
+
* ONE function, called at pick time by every surface, rather than a rule
|
|
37
|
+
* re-derived per surface. The three refusals are the whole contract:
|
|
38
|
+
*
|
|
39
|
+
* * **`decorative` wins outright.** It is the field AGL-1305 added to record
|
|
40
|
+
* "screen readers should skip this", and `image.tsx` already forces
|
|
41
|
+
* `alt=""` over any alt text when it is on. Inheriting into a node that has
|
|
42
|
+
* declared itself decorative would put text on a node whose renderer
|
|
43
|
+
* discards it — invisible, and misleading to the next author who opens the
|
|
44
|
+
* panel.
|
|
45
|
+
* * **A non-blank placement alt wins.** That is the per-placement override,
|
|
46
|
+
* and clobbering it is the one failure that would make this feature worse
|
|
47
|
+
* than not having it: the author's sentence about THIS placement is better
|
|
48
|
+
* than the asset's generic one by construction.
|
|
49
|
+
* * **A blank asset alt yields nothing.** Never a fabricated default. The
|
|
50
|
+
* file name is not alt text ("IMG_4021.jpg" announced to a screen reader is
|
|
51
|
+
* worse than silence), and nothing here has seen the image. Returning
|
|
52
|
+
* `undefined` is what lets callers omit the key entirely rather than
|
|
53
|
+
* writing `alt: ''`, which on a besigner node is itself an authored value.
|
|
54
|
+
*
|
|
55
|
+
* A blank placement alt DOES inherit, deliberately. Presets ship `alt: ''`
|
|
56
|
+
* (see `card.tsx`), so requiring an absent key would have skipped the single
|
|
57
|
+
* commonest authoring path — dropping a preset and pointing its image at a
|
|
58
|
+
* library asset — and left the issue open for the case it was filed about.
|
|
59
|
+
*
|
|
60
|
+
* @returns the alt to store, or `undefined` when the caller should write
|
|
61
|
+
* nothing at all.
|
|
62
|
+
*/
|
|
63
|
+
export declare function inheritedMediaAlt(options: {
|
|
64
|
+
/** The alt already on the placement — a node prop, a config field. */
|
|
65
|
+
placementAlt?: unknown;
|
|
66
|
+
/** The placement's explicit "skip me" intent, when it has one. */
|
|
67
|
+
decorative?: unknown;
|
|
68
|
+
/** The chosen DAM asset's stored alt text. */
|
|
69
|
+
assetAlt?: unknown;
|
|
70
|
+
}): string | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* The intrinsic `width`/`height` to copy onto a node when an author picks a
|
|
73
|
+
* library asset for it (AGL-2486).
|
|
74
|
+
*
|
|
75
|
+
* ## Why the copy happens at pick time, and why it is not the last word
|
|
76
|
+
*
|
|
77
|
+
* The pair rides on the node like every other prop, so the editor canvas, and
|
|
78
|
+
* any page whose asset cannot be read, still reserve a box. It is not the last
|
|
79
|
+
* word. A replace rewrites the asset's `width`/`height` and cannot reach the
|
|
80
|
+
* nodes that copied them, so the tenant composition reads every placed
|
|
81
|
+
* image's document, in one projected batch per page, and lays its current
|
|
82
|
+
* pair over this one (`media-asset-facts.ts`, AGL-2833). What is written here
|
|
83
|
+
* is what a page shows when that read cannot answer.
|
|
84
|
+
*
|
|
85
|
+
* ## Why it matters
|
|
86
|
+
*
|
|
87
|
+
* `image.tsx` lays images out with `width: 100%; height: auto`, under which an
|
|
88
|
+
* `<img>` has NO height until its bytes decode. Without an intrinsic pair the
|
|
89
|
+
* browser has no ratio to reserve a box from, so every image on the page
|
|
90
|
+
* shifts the content below it as it lands.
|
|
91
|
+
*
|
|
92
|
+
* ## The rules
|
|
93
|
+
*
|
|
94
|
+
* * **Both or neither.** A browser derives an aspect-ratio only from the
|
|
95
|
+
* pair; a lone `width` is read as a real dimension and reserves a box of
|
|
96
|
+
* the wrong shape, which is worse than reserving none.
|
|
97
|
+
* * **Only for renderers that read them**, see
|
|
98
|
+
* `INTRINSIC_SIZE_COMPONENT_IDS` — otherwise the prop lands on the DOM.
|
|
99
|
+
* * **Finite and positive.** Upload capture is best-effort, so a media
|
|
100
|
+
* document may carry `0`, a partial capture, or nothing at all; `width="0"`
|
|
101
|
+
* collapses the element.
|
|
102
|
+
* * **`{}` when anything is unknown**, never `{ intrinsicWidth: undefined }`.
|
|
103
|
+
* Callers spread the result into a props object that `updateNodeProps`
|
|
104
|
+
* REPLACES wholesale, so a key present with an undefined value would strip
|
|
105
|
+
* a pair a previous pick had correctly stored.
|
|
106
|
+
*
|
|
107
|
+
* @returns the props to spread, or `{}` when the caller should write nothing.
|
|
108
|
+
*/
|
|
109
|
+
export declare function intrinsicMediaSize(options: {
|
|
110
|
+
/** The element being written to — its persisted component id. */
|
|
111
|
+
componentId?: unknown;
|
|
112
|
+
/** The attribute the picker was opened for; only `src` carries an image. */
|
|
113
|
+
propName?: unknown;
|
|
114
|
+
/** The chosen asset's stored pixel width. */
|
|
115
|
+
assetWidth?: unknown;
|
|
116
|
+
/** The chosen asset's stored pixel height. */
|
|
117
|
+
assetHeight?: unknown;
|
|
118
|
+
}): {
|
|
119
|
+
intrinsicWidth?: number;
|
|
120
|
+
intrinsicHeight?: number;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* The video-only companions to {@link intrinsicMediaSize}, copied onto the
|
|
124
|
+
* node when an author picks a video asset (AGL-2741, rewritten against the
|
|
125
|
+
* real document shape in AGL-2749).
|
|
126
|
+
*
|
|
127
|
+
* Same route as the image dimensions, and like theirs not the last word. A
|
|
128
|
+
* replace rewrites the asset's `video` and `poster` records and cannot reach
|
|
129
|
+
* the nodes that copied them, so the tenant composition reads each placed
|
|
130
|
+
* film's document, in the same batch as the images', and lays its current
|
|
131
|
+
* records over these (`media-asset-facts.ts`, AGL-2807). What is written here
|
|
132
|
+
* is what a page shows when that read cannot answer.
|
|
133
|
+
*
|
|
134
|
+
* ## Why a video does not simply use {@link intrinsicMediaSize}
|
|
135
|
+
*
|
|
136
|
+
* A video's pixel dimensions are NOT in `media.width`/`media.height`. Those
|
|
137
|
+
* are read from the bytes by the server and carry a stronger claim than a
|
|
138
|
+
* browser's report, so AGL-2742 kept the client-measured triple in its own
|
|
139
|
+
* `video` record rather than widening them — a reader that folded the two
|
|
140
|
+
* together would lose the ability to tell which it had. A video therefore
|
|
141
|
+
* reaches its intrinsic pair through here, and `intrinsicMediaSize` finds
|
|
142
|
+
* nothing to copy for one.
|
|
143
|
+
*
|
|
144
|
+
* ## The three rules
|
|
145
|
+
*
|
|
146
|
+
* * **Only the `video` element, only its `src`.** A `durationSeconds` spread
|
|
147
|
+
* onto an element that does not destructure it becomes an invalid attribute
|
|
148
|
+
* in the published HTML.
|
|
149
|
+
* * **The duration is stored in SECONDS**, because the author-facing field is
|
|
150
|
+
* in seconds and a person types 63, not 63000. `videoDurationIso8601` takes
|
|
151
|
+
* milliseconds, and the structured-data builder is the one place that
|
|
152
|
+
* converts back.
|
|
153
|
+
* * **`{}` when unknown**, never a key with an `undefined` value: callers
|
|
154
|
+
* spread this into a props object `updateNodeProps` REPLACES wholesale, so
|
|
155
|
+
* a present-but-undefined key strips what an earlier pick stored.
|
|
156
|
+
*
|
|
157
|
+
* `posterFromSource` is a FLAG rather than a url, deliberately. The generated
|
|
158
|
+
* poster is `?poster=1` on the video's own reference, which
|
|
159
|
+
* {@link mediaPosterSrc} builds without reading anything — and that url is
|
|
160
|
+
* explicitly not a promise the poster exists. This flag IS the promise: it is
|
|
161
|
+
* written only when the document records one, which is what lets
|
|
162
|
+
* `videoPosterSrc` offer the derived url to an `<img>` and to a
|
|
163
|
+
* `thumbnailUrl`, where a 404 would be a broken image and a rich result
|
|
164
|
+
* pointing at nothing.
|
|
165
|
+
*
|
|
166
|
+
* An author's own poster is never touched here. It wins at render time
|
|
167
|
+
* instead (`videoPosterSrc`), so re-picking the SOURCE cannot quietly replace
|
|
168
|
+
* a frame somebody chose.
|
|
169
|
+
*
|
|
170
|
+
* @returns the props to spread, or `{}` when the caller should write nothing.
|
|
171
|
+
*/
|
|
172
|
+
export declare function videoMediaProps(options: {
|
|
173
|
+
/** The element being written to — its persisted component id. */
|
|
174
|
+
componentId?: unknown;
|
|
175
|
+
/** The attribute the picker was opened for; only `src` carries a video. */
|
|
176
|
+
propName?: unknown;
|
|
177
|
+
/**
|
|
178
|
+
* The chosen asset's `video` record, as {@link normalizeVideoMetadata}
|
|
179
|
+
* bounds it — `durationMs`, `width` and `height`, all three or none.
|
|
180
|
+
*/
|
|
181
|
+
assetVideo?: unknown;
|
|
182
|
+
/** The chosen asset's generated `poster` record, when it has one. */
|
|
183
|
+
assetPoster?: unknown;
|
|
184
|
+
}): {
|
|
185
|
+
durationSeconds?: number;
|
|
186
|
+
intrinsicWidth?: number;
|
|
187
|
+
intrinsicHeight?: number;
|
|
188
|
+
posterFromSource?: boolean;
|
|
189
|
+
};
|
|
190
|
+
export interface ImageDimensions {
|
|
191
|
+
width: number;
|
|
192
|
+
height: number;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Reads pixel dimensions from PNG, JPEG, GIF, and WebP headers. Returns
|
|
196
|
+
* null for anything unrecognized or truncated — callers treat dimensions
|
|
197
|
+
* as best-effort metadata, never a gate.
|
|
198
|
+
*/
|
|
199
|
+
export declare function readImageDimensions(bytes: Uint8Array): ImageDimensions | null;
|
|
200
|
+
/**
|
|
201
|
+
* What the platform knows about a VIDEO asset (AGL-2742).
|
|
202
|
+
*
|
|
203
|
+
* ## Why this is not `width`/`height` on the document beside an image's
|
|
204
|
+
*
|
|
205
|
+
* An image's dimensions are read from its own header by
|
|
206
|
+
* {@link readImageDimensions}, server-side, from bytes the platform holds.
|
|
207
|
+
* None of that is available for video: the dimensions live in a `moov` atom
|
|
208
|
+
* that an MP4 is free to place at the END of the file, so reading them
|
|
209
|
+
* server-side means fetching up to 200 MB back out of Storage to answer a
|
|
210
|
+
* question worth twelve bytes — the exact download `generateStoredMediaVariants`
|
|
211
|
+
* is written to avoid. So these numbers arrive from the BROWSER, which had
|
|
212
|
+
* the file in hand and a decoder already loaded, and they are consequently
|
|
213
|
+
* client data: every field is bounded here before it reaches a document.
|
|
214
|
+
*
|
|
215
|
+
* They live under their own key rather than widening `width`/`height`
|
|
216
|
+
* because the provenance differs and a reader should be able to tell. A
|
|
217
|
+
* `width` on a media document means "measured from the bytes"; a
|
|
218
|
+
* `video.width` means "reported by the uploader's browser". Folding the two
|
|
219
|
+
* together would make the weaker claim indistinguishable from the stronger
|
|
220
|
+
* one on every asset in the library.
|
|
221
|
+
*/
|
|
222
|
+
export interface MediaVideoMetadata {
|
|
223
|
+
/** Duration in whole milliseconds. Always finite and positive. */
|
|
224
|
+
durationMs: number;
|
|
225
|
+
/** Coded frame width in pixels, after any display-aspect correction. */
|
|
226
|
+
width: number;
|
|
227
|
+
height: number;
|
|
228
|
+
/**
|
|
229
|
+
* A short label for what produced the file, when the browser offered one
|
|
230
|
+
* (`video/mp4; codecs="avc1.640028"` collapses to `avc1.640028`). Absent
|
|
231
|
+
* far more often than present — no browser API reports the codec of a
|
|
232
|
+
* local file, so this is only ever filled from a `MediaCapabilities` probe
|
|
233
|
+
* or a container sniff, and nothing depends on it.
|
|
234
|
+
*/
|
|
235
|
+
codec?: string;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* The upper bound on a stored duration: 24 hours.
|
|
239
|
+
*
|
|
240
|
+
* Not a policy about what may be uploaded — the DAM's ceiling is 200 MB of
|
|
241
|
+
* bytes and says nothing about running time. This is the bound past which a
|
|
242
|
+
* number stops being a duration and starts being a bug, and the specific
|
|
243
|
+
* bug it exists for is real: `HTMLMediaElement.duration` is `Infinity` for a
|
|
244
|
+
* stream and for some WebM files until the element has been seeked to the
|
|
245
|
+
* end. `Infinity` fails the finite test below before it reaches this
|
|
246
|
+
* constant, but a browser that reports a plausible-looking 10^12 instead
|
|
247
|
+
* would otherwise write a document claiming a 31-year film.
|
|
248
|
+
*/
|
|
249
|
+
export declare const MEDIA_VIDEO_MAX_DURATION_MS: number;
|
|
250
|
+
/** The largest coded dimension accepted, matching the 8K ceiling encoders use. */
|
|
251
|
+
export declare const MEDIA_VIDEO_MAX_DIMENSION = 16384;
|
|
252
|
+
/**
|
|
253
|
+
* Bound a browser's report into something safe to store, or refuse it whole.
|
|
254
|
+
*
|
|
255
|
+
* All-or-nothing on purpose. A partial record — a duration with no
|
|
256
|
+
* dimensions — is worse than none: `VideoObject` JSON-LD would emit a
|
|
257
|
+
* `duration` and omit `width`, and a renderer sizing its container from
|
|
258
|
+
* `video.height` would find the key present and the value absent. The three
|
|
259
|
+
* numbers are produced by one `loadedmetadata` event and are meaningful only
|
|
260
|
+
* together, so they are accepted or rejected together.
|
|
261
|
+
*
|
|
262
|
+
* `codec` is the exception and is dropped rather than refused, for the same
|
|
263
|
+
* reason `formatMediaRef` drops a malformed content pin: it is a label
|
|
264
|
+
* nothing branches on, and losing the whole record over it would trade a
|
|
265
|
+
* working poster and a correct aspect ratio for a cosmetic string.
|
|
266
|
+
*/
|
|
267
|
+
export declare function normalizeVideoMetadata(input: unknown): MediaVideoMetadata | null;
|
|
268
|
+
/**
|
|
269
|
+
* The `duration` a schema.org `VideoObject` wants: an ISO 8601 duration.
|
|
270
|
+
*
|
|
271
|
+
* Whole seconds, and never a fractional component. Google's structured-data
|
|
272
|
+
* documentation accepts `PT1M30S` and treats sub-second precision as noise,
|
|
273
|
+
* and a `PT1M30.437S` in a rich result is a number nobody asked for. A
|
|
274
|
+
* duration under one second rounds UP to `PT1S` rather than to `PT0S`, which
|
|
275
|
+
* would read as "no duration" to a consumer that tests for truthiness.
|
|
276
|
+
*/
|
|
277
|
+
export declare function videoDurationIso8601(durationMs: number | undefined | null): string | undefined;
|
|
@@ -0,0 +1,388 @@
|
|
|
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
|
+
*/ /**
|
|
17
|
+
* Asset metadata helpers (AGL-173): tag normalization shared by the
|
|
18
|
+
* console editor and any future API validation, plus a dependency-free
|
|
19
|
+
* image header parser so the upload route can stamp dimensions without
|
|
20
|
+
* pulling in an image library.
|
|
21
|
+
*/ import { MEDIA_ALT_MAX_LENGTH } from "./media-alt.js";
|
|
22
|
+
export * from "./media-alt.js";
|
|
23
|
+
export const MEDIA_TAG_MAX_COUNT = 20;
|
|
24
|
+
export const MEDIA_TAG_MAX_LENGTH = 40;
|
|
25
|
+
/**
|
|
26
|
+
* Trim, lowercase, dedupe, and cap tags. Accepts a comma-separated string
|
|
27
|
+
* or an array; empty and oversized entries are dropped.
|
|
28
|
+
*/ export function normalizeMediaTags(input) {
|
|
29
|
+
const raw = Array.isArray(input) ? input : String(input != null ? input : '').split(',');
|
|
30
|
+
const seen = new Set();
|
|
31
|
+
const tags = [];
|
|
32
|
+
for (const entry of raw){
|
|
33
|
+
const tag = String(entry != null ? entry : '').trim().toLowerCase();
|
|
34
|
+
if (!tag || tag.length > MEDIA_TAG_MAX_LENGTH || seen.has(tag)) continue;
|
|
35
|
+
seen.add(tag);
|
|
36
|
+
tags.push(tag);
|
|
37
|
+
if (tags.length >= MEDIA_TAG_MAX_COUNT) break;
|
|
38
|
+
}
|
|
39
|
+
return tags;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* What a placement should store for `alt` once the asset's own alt text is
|
|
43
|
+
* taken into account (AGL-1896) — the DAM asset is the DEFAULT, the
|
|
44
|
+
* placement keeps the override.
|
|
45
|
+
*
|
|
46
|
+
* `AglynHostMedia.alt` has existed since AGL-173 and the library drawer has
|
|
47
|
+
* always been able to set it; what never existed is anybody READING it. Every
|
|
48
|
+
* placement surface asked the author to type alt again from scratch, so the
|
|
49
|
+
* same logo on eight pages needed its alt typed eight times and in practice
|
|
50
|
+
* shipped blank — on a customer's published site.
|
|
51
|
+
*
|
|
52
|
+
* ONE function, called at pick time by every surface, rather than a rule
|
|
53
|
+
* re-derived per surface. The three refusals are the whole contract:
|
|
54
|
+
*
|
|
55
|
+
* * **`decorative` wins outright.** It is the field AGL-1305 added to record
|
|
56
|
+
* "screen readers should skip this", and `image.tsx` already forces
|
|
57
|
+
* `alt=""` over any alt text when it is on. Inheriting into a node that has
|
|
58
|
+
* declared itself decorative would put text on a node whose renderer
|
|
59
|
+
* discards it — invisible, and misleading to the next author who opens the
|
|
60
|
+
* panel.
|
|
61
|
+
* * **A non-blank placement alt wins.** That is the per-placement override,
|
|
62
|
+
* and clobbering it is the one failure that would make this feature worse
|
|
63
|
+
* than not having it: the author's sentence about THIS placement is better
|
|
64
|
+
* than the asset's generic one by construction.
|
|
65
|
+
* * **A blank asset alt yields nothing.** Never a fabricated default. The
|
|
66
|
+
* file name is not alt text ("IMG_4021.jpg" announced to a screen reader is
|
|
67
|
+
* worse than silence), and nothing here has seen the image. Returning
|
|
68
|
+
* `undefined` is what lets callers omit the key entirely rather than
|
|
69
|
+
* writing `alt: ''`, which on a besigner node is itself an authored value.
|
|
70
|
+
*
|
|
71
|
+
* A blank placement alt DOES inherit, deliberately. Presets ship `alt: ''`
|
|
72
|
+
* (see `card.tsx`), so requiring an absent key would have skipped the single
|
|
73
|
+
* commonest authoring path — dropping a preset and pointing its image at a
|
|
74
|
+
* library asset — and left the issue open for the case it was filed about.
|
|
75
|
+
*
|
|
76
|
+
* @returns the alt to store, or `undefined` when the caller should write
|
|
77
|
+
* nothing at all.
|
|
78
|
+
*/ export function inheritedMediaAlt(options) {
|
|
79
|
+
const { placementAlt, decorative, assetAlt } = options != null ? options : {};
|
|
80
|
+
if (decorative === true) return undefined;
|
|
81
|
+
if (typeof placementAlt === 'string' && placementAlt.trim()) return undefined;
|
|
82
|
+
const inherited = typeof assetAlt === 'string' ? assetAlt.trim() : '';
|
|
83
|
+
if (!inherited) return undefined;
|
|
84
|
+
// Capped at the same length the library drawer saves through, so an alt
|
|
85
|
+
// that reaches a placement is one the DAM would also have stored.
|
|
86
|
+
return inherited.slice(0, MEDIA_ALT_MAX_LENGTH);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Component ids whose renderer reads intrinsic pixel dimensions off the node.
|
|
90
|
+
*
|
|
91
|
+
* Component ids are persisted in screen documents and never renamed, which is
|
|
92
|
+
* what makes matching on them safe. The list is the gate rather than a
|
|
93
|
+
* decoration: a prop written onto an element that does not destructure it
|
|
94
|
+
* reaches `...rest` and is spread onto the DOM, so an unlisted element would
|
|
95
|
+
* gain an invalid `intrinsicwidth` attribute in its published HTML.
|
|
96
|
+
*
|
|
97
|
+
* ⛔ `video` is NOT here, and its absence is a decision rather than an
|
|
98
|
+
* oversight (AGL-2749). A video needs the pair at least as badly as an image
|
|
99
|
+
* does — `preload="none"` means its metadata never arrives until someone
|
|
100
|
+
* presses play, so the element is zero-height for the whole life of the page
|
|
101
|
+
* without it — but it cannot get it from `width`/`height`. Those are read
|
|
102
|
+
* from the bytes by the server and are absent on every video, deliberately:
|
|
103
|
+
* AGL-2742 kept the client-measured triple in its own `video` record so a
|
|
104
|
+
* reader can tell a server measurement from a browser's report.
|
|
105
|
+
* {@link videoMediaProps} is where a video gets its pair.
|
|
106
|
+
*/ const INTRINSIC_SIZE_COMPONENT_IDS = new Set([
|
|
107
|
+
'image'
|
|
108
|
+
]);
|
|
109
|
+
/**
|
|
110
|
+
* The intrinsic `width`/`height` to copy onto a node when an author picks a
|
|
111
|
+
* library asset for it (AGL-2486).
|
|
112
|
+
*
|
|
113
|
+
* ## Why the copy happens at pick time, and why it is not the last word
|
|
114
|
+
*
|
|
115
|
+
* The pair rides on the node like every other prop, so the editor canvas, and
|
|
116
|
+
* any page whose asset cannot be read, still reserve a box. It is not the last
|
|
117
|
+
* word. A replace rewrites the asset's `width`/`height` and cannot reach the
|
|
118
|
+
* nodes that copied them, so the tenant composition reads every placed
|
|
119
|
+
* image's document, in one projected batch per page, and lays its current
|
|
120
|
+
* pair over this one (`media-asset-facts.ts`, AGL-2833). What is written here
|
|
121
|
+
* is what a page shows when that read cannot answer.
|
|
122
|
+
*
|
|
123
|
+
* ## Why it matters
|
|
124
|
+
*
|
|
125
|
+
* `image.tsx` lays images out with `width: 100%; height: auto`, under which an
|
|
126
|
+
* `<img>` has NO height until its bytes decode. Without an intrinsic pair the
|
|
127
|
+
* browser has no ratio to reserve a box from, so every image on the page
|
|
128
|
+
* shifts the content below it as it lands.
|
|
129
|
+
*
|
|
130
|
+
* ## The rules
|
|
131
|
+
*
|
|
132
|
+
* * **Both or neither.** A browser derives an aspect-ratio only from the
|
|
133
|
+
* pair; a lone `width` is read as a real dimension and reserves a box of
|
|
134
|
+
* the wrong shape, which is worse than reserving none.
|
|
135
|
+
* * **Only for renderers that read them**, see
|
|
136
|
+
* `INTRINSIC_SIZE_COMPONENT_IDS` — otherwise the prop lands on the DOM.
|
|
137
|
+
* * **Finite and positive.** Upload capture is best-effort, so a media
|
|
138
|
+
* document may carry `0`, a partial capture, or nothing at all; `width="0"`
|
|
139
|
+
* collapses the element.
|
|
140
|
+
* * **`{}` when anything is unknown**, never `{ intrinsicWidth: undefined }`.
|
|
141
|
+
* Callers spread the result into a props object that `updateNodeProps`
|
|
142
|
+
* REPLACES wholesale, so a key present with an undefined value would strip
|
|
143
|
+
* a pair a previous pick had correctly stored.
|
|
144
|
+
*
|
|
145
|
+
* @returns the props to spread, or `{}` when the caller should write nothing.
|
|
146
|
+
*/ export function intrinsicMediaSize(options) {
|
|
147
|
+
const { componentId, propName, assetWidth, assetHeight } = options != null ? options : {};
|
|
148
|
+
if (propName !== 'src') return {};
|
|
149
|
+
if (!INTRINSIC_SIZE_COMPONENT_IDS.has(String(componentId != null ? componentId : ''))) return {};
|
|
150
|
+
const usable = (value)=>typeof value === 'number' && Number.isFinite(value) && value > 0;
|
|
151
|
+
if (!usable(assetWidth) || !usable(assetHeight)) return {};
|
|
152
|
+
return {
|
|
153
|
+
intrinsicWidth: assetWidth,
|
|
154
|
+
intrinsicHeight: assetHeight
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
/** The one element that reads the props below off its node. */ const VIDEO_COMPONENT_ID = 'video';
|
|
158
|
+
/**
|
|
159
|
+
* The video-only companions to {@link intrinsicMediaSize}, copied onto the
|
|
160
|
+
* node when an author picks a video asset (AGL-2741, rewritten against the
|
|
161
|
+
* real document shape in AGL-2749).
|
|
162
|
+
*
|
|
163
|
+
* Same route as the image dimensions, and like theirs not the last word. A
|
|
164
|
+
* replace rewrites the asset's `video` and `poster` records and cannot reach
|
|
165
|
+
* the nodes that copied them, so the tenant composition reads each placed
|
|
166
|
+
* film's document, in the same batch as the images', and lays its current
|
|
167
|
+
* records over these (`media-asset-facts.ts`, AGL-2807). What is written here
|
|
168
|
+
* is what a page shows when that read cannot answer.
|
|
169
|
+
*
|
|
170
|
+
* ## Why a video does not simply use {@link intrinsicMediaSize}
|
|
171
|
+
*
|
|
172
|
+
* A video's pixel dimensions are NOT in `media.width`/`media.height`. Those
|
|
173
|
+
* are read from the bytes by the server and carry a stronger claim than a
|
|
174
|
+
* browser's report, so AGL-2742 kept the client-measured triple in its own
|
|
175
|
+
* `video` record rather than widening them — a reader that folded the two
|
|
176
|
+
* together would lose the ability to tell which it had. A video therefore
|
|
177
|
+
* reaches its intrinsic pair through here, and `intrinsicMediaSize` finds
|
|
178
|
+
* nothing to copy for one.
|
|
179
|
+
*
|
|
180
|
+
* ## The three rules
|
|
181
|
+
*
|
|
182
|
+
* * **Only the `video` element, only its `src`.** A `durationSeconds` spread
|
|
183
|
+
* onto an element that does not destructure it becomes an invalid attribute
|
|
184
|
+
* in the published HTML.
|
|
185
|
+
* * **The duration is stored in SECONDS**, because the author-facing field is
|
|
186
|
+
* in seconds and a person types 63, not 63000. `videoDurationIso8601` takes
|
|
187
|
+
* milliseconds, and the structured-data builder is the one place that
|
|
188
|
+
* converts back.
|
|
189
|
+
* * **`{}` when unknown**, never a key with an `undefined` value: callers
|
|
190
|
+
* spread this into a props object `updateNodeProps` REPLACES wholesale, so
|
|
191
|
+
* a present-but-undefined key strips what an earlier pick stored.
|
|
192
|
+
*
|
|
193
|
+
* `posterFromSource` is a FLAG rather than a url, deliberately. The generated
|
|
194
|
+
* poster is `?poster=1` on the video's own reference, which
|
|
195
|
+
* {@link mediaPosterSrc} builds without reading anything — and that url is
|
|
196
|
+
* explicitly not a promise the poster exists. This flag IS the promise: it is
|
|
197
|
+
* written only when the document records one, which is what lets
|
|
198
|
+
* `videoPosterSrc` offer the derived url to an `<img>` and to a
|
|
199
|
+
* `thumbnailUrl`, where a 404 would be a broken image and a rich result
|
|
200
|
+
* pointing at nothing.
|
|
201
|
+
*
|
|
202
|
+
* An author's own poster is never touched here. It wins at render time
|
|
203
|
+
* instead (`videoPosterSrc`), so re-picking the SOURCE cannot quietly replace
|
|
204
|
+
* a frame somebody chose.
|
|
205
|
+
*
|
|
206
|
+
* @returns the props to spread, or `{}` when the caller should write nothing.
|
|
207
|
+
*/ export function videoMediaProps(options) {
|
|
208
|
+
const { componentId, propName, assetVideo, assetPoster } = options != null ? options : {};
|
|
209
|
+
if (propName !== 'src') return {};
|
|
210
|
+
if (String(componentId != null ? componentId : '') !== VIDEO_COMPONENT_ID) return {};
|
|
211
|
+
const patch = {};
|
|
212
|
+
// Through the DAM's own validator rather than a second reading of the same
|
|
213
|
+
// three numbers: it is all-or-nothing by design, and re-deriving that rule
|
|
214
|
+
// here is how two files come to disagree about what a partial record means.
|
|
215
|
+
const video = normalizeVideoMetadata(assetVideo);
|
|
216
|
+
if (video) {
|
|
217
|
+
// Never rounds to zero: a sub-second clip is still a clip, and a stored
|
|
218
|
+
// `0` reads as "no duration" to everything downstream.
|
|
219
|
+
patch.durationSeconds = Math.max(1, Math.round(video.durationMs / 1000));
|
|
220
|
+
patch.intrinsicWidth = video.width;
|
|
221
|
+
patch.intrinsicHeight = video.height;
|
|
222
|
+
}
|
|
223
|
+
// A poster RECORD, not a poster url — see the note above. Its mere presence
|
|
224
|
+
// on the document is the whole fact being carried.
|
|
225
|
+
if (assetPoster && typeof assetPoster === 'object') {
|
|
226
|
+
patch.posterFromSource = true;
|
|
227
|
+
}
|
|
228
|
+
return patch;
|
|
229
|
+
}
|
|
230
|
+
const readU32BE = (bytes, offset)=>bytes[offset] << 24 | bytes[offset + 1] << 16 | bytes[offset + 2] << 8 | bytes[offset + 3];
|
|
231
|
+
const readU16BE = (bytes, offset)=>bytes[offset] << 8 | bytes[offset + 1];
|
|
232
|
+
const readU16LE = (bytes, offset)=>bytes[offset] | bytes[offset + 1] << 8;
|
|
233
|
+
/**
|
|
234
|
+
* Reads pixel dimensions from PNG, JPEG, GIF, and WebP headers. Returns
|
|
235
|
+
* null for anything unrecognized or truncated — callers treat dimensions
|
|
236
|
+
* as best-effort metadata, never a gate.
|
|
237
|
+
*/ export function readImageDimensions(bytes) {
|
|
238
|
+
if (bytes.length < 24) return null;
|
|
239
|
+
// PNG: 8-byte signature, IHDR width/height at offsets 16/20.
|
|
240
|
+
if (bytes[0] === 0x89 && bytes[1] === 0x50 && bytes[2] === 0x4e && bytes[3] === 0x47) {
|
|
241
|
+
const width = readU32BE(bytes, 16);
|
|
242
|
+
const height = readU32BE(bytes, 20);
|
|
243
|
+
return width > 0 && height > 0 ? {
|
|
244
|
+
width,
|
|
245
|
+
height
|
|
246
|
+
} : null;
|
|
247
|
+
}
|
|
248
|
+
// GIF87a/GIF89a: little-endian dimensions at offsets 6/8.
|
|
249
|
+
if (bytes[0] === 0x47 && bytes[1] === 0x49 && bytes[2] === 0x46) {
|
|
250
|
+
const width = readU16LE(bytes, 6);
|
|
251
|
+
const height = readU16LE(bytes, 8);
|
|
252
|
+
return width > 0 && height > 0 ? {
|
|
253
|
+
width,
|
|
254
|
+
height
|
|
255
|
+
} : null;
|
|
256
|
+
}
|
|
257
|
+
// JPEG: scan segments for a SOFn marker (C0–CF except C4/C8/CC).
|
|
258
|
+
if (bytes[0] === 0xff && bytes[1] === 0xd8) {
|
|
259
|
+
let offset = 2;
|
|
260
|
+
while(offset + 9 < bytes.length){
|
|
261
|
+
if (bytes[offset] !== 0xff) {
|
|
262
|
+
offset += 1;
|
|
263
|
+
continue;
|
|
264
|
+
}
|
|
265
|
+
const marker = bytes[offset + 1];
|
|
266
|
+
if (marker === 0xd8 || marker >= 0xd0 && marker <= 0xd9) {
|
|
267
|
+
offset += 2;
|
|
268
|
+
continue;
|
|
269
|
+
}
|
|
270
|
+
const length = readU16BE(bytes, offset + 2);
|
|
271
|
+
if (marker >= 0xc0 && marker <= 0xcf && marker !== 0xc4 && marker !== 0xc8 && marker !== 0xcc) {
|
|
272
|
+
const height = readU16BE(bytes, offset + 5);
|
|
273
|
+
const width = readU16BE(bytes, offset + 7);
|
|
274
|
+
return width > 0 && height > 0 ? {
|
|
275
|
+
width,
|
|
276
|
+
height
|
|
277
|
+
} : null;
|
|
278
|
+
}
|
|
279
|
+
if (length < 2) return null;
|
|
280
|
+
offset += 2 + length;
|
|
281
|
+
}
|
|
282
|
+
return null;
|
|
283
|
+
}
|
|
284
|
+
// WebP: RIFF....WEBP then VP8/VP8L/VP8X chunk.
|
|
285
|
+
if (bytes[0] === 0x52 && bytes[1] === 0x49 && bytes[2] === 0x46 && bytes[3] === 0x46 && bytes[8] === 0x57 && bytes[9] === 0x45 && bytes[10] === 0x42 && bytes[11] === 0x50) {
|
|
286
|
+
const chunk = String.fromCharCode(bytes[12], bytes[13], bytes[14], bytes[15]);
|
|
287
|
+
if (chunk === 'VP8X' && bytes.length >= 30) {
|
|
288
|
+
const width = 1 + (bytes[24] | bytes[25] << 8 | bytes[26] << 16);
|
|
289
|
+
const height = 1 + (bytes[27] | bytes[28] << 8 | bytes[29] << 16);
|
|
290
|
+
return {
|
|
291
|
+
width,
|
|
292
|
+
height
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
if (chunk === 'VP8 ' && bytes.length >= 30) {
|
|
296
|
+
const width = readU16LE(bytes, 26) & 0x3fff;
|
|
297
|
+
const height = readU16LE(bytes, 28) & 0x3fff;
|
|
298
|
+
return width > 0 && height > 0 ? {
|
|
299
|
+
width,
|
|
300
|
+
height
|
|
301
|
+
} : null;
|
|
302
|
+
}
|
|
303
|
+
if (chunk === 'VP8L' && bytes.length >= 25) {
|
|
304
|
+
const bits = bytes[21] | bytes[22] << 8 | bytes[23] << 16 | bytes[24] << 24;
|
|
305
|
+
const width = (bits & 0x3fff) + 1;
|
|
306
|
+
const height = (bits >> 14 & 0x3fff) + 1;
|
|
307
|
+
return {
|
|
308
|
+
width,
|
|
309
|
+
height
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
return null;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* The upper bound on a stored duration: 24 hours.
|
|
317
|
+
*
|
|
318
|
+
* Not a policy about what may be uploaded — the DAM's ceiling is 200 MB of
|
|
319
|
+
* bytes and says nothing about running time. This is the bound past which a
|
|
320
|
+
* number stops being a duration and starts being a bug, and the specific
|
|
321
|
+
* bug it exists for is real: `HTMLMediaElement.duration` is `Infinity` for a
|
|
322
|
+
* stream and for some WebM files until the element has been seeked to the
|
|
323
|
+
* end. `Infinity` fails the finite test below before it reaches this
|
|
324
|
+
* constant, but a browser that reports a plausible-looking 10^12 instead
|
|
325
|
+
* would otherwise write a document claiming a 31-year film.
|
|
326
|
+
*/ export const MEDIA_VIDEO_MAX_DURATION_MS = 24 * 60 * 60 * 1000;
|
|
327
|
+
/** The largest coded dimension accepted, matching the 8K ceiling encoders use. */ export const MEDIA_VIDEO_MAX_DIMENSION = 16384;
|
|
328
|
+
/**
|
|
329
|
+
* Bound a browser's report into something safe to store, or refuse it whole.
|
|
330
|
+
*
|
|
331
|
+
* All-or-nothing on purpose. A partial record — a duration with no
|
|
332
|
+
* dimensions — is worse than none: `VideoObject` JSON-LD would emit a
|
|
333
|
+
* `duration` and omit `width`, and a renderer sizing its container from
|
|
334
|
+
* `video.height` would find the key present and the value absent. The three
|
|
335
|
+
* numbers are produced by one `loadedmetadata` event and are meaningful only
|
|
336
|
+
* together, so they are accepted or rejected together.
|
|
337
|
+
*
|
|
338
|
+
* `codec` is the exception and is dropped rather than refused, for the same
|
|
339
|
+
* reason `formatMediaRef` drops a malformed content pin: it is a label
|
|
340
|
+
* nothing branches on, and losing the whole record over it would trade a
|
|
341
|
+
* working poster and a correct aspect ratio for a cosmetic string.
|
|
342
|
+
*/ export function normalizeVideoMetadata(input) {
|
|
343
|
+
if (!input || typeof input !== 'object') return null;
|
|
344
|
+
const source = input;
|
|
345
|
+
const durationMs = Math.round(Number(source['durationMs']));
|
|
346
|
+
const width = Math.round(Number(source['width']));
|
|
347
|
+
const height = Math.round(Number(source['height']));
|
|
348
|
+
if (!Number.isFinite(durationMs) || durationMs <= 0) return null;
|
|
349
|
+
if (durationMs > MEDIA_VIDEO_MAX_DURATION_MS) return null;
|
|
350
|
+
if (!Number.isFinite(width) || width <= 0 || width > MEDIA_VIDEO_MAX_DIMENSION) return null;
|
|
351
|
+
if (!Number.isFinite(height) || height <= 0 || height > MEDIA_VIDEO_MAX_DIMENSION) return null;
|
|
352
|
+
const rawCodec = source['codec'];
|
|
353
|
+
const codec = typeof rawCodec === 'string' && /^[\w.,\- ]{1,64}$/.test(rawCodec.trim()) ? rawCodec.trim() : undefined;
|
|
354
|
+
return codec ? {
|
|
355
|
+
durationMs,
|
|
356
|
+
width,
|
|
357
|
+
height,
|
|
358
|
+
codec
|
|
359
|
+
} : {
|
|
360
|
+
durationMs,
|
|
361
|
+
width,
|
|
362
|
+
height
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* The `duration` a schema.org `VideoObject` wants: an ISO 8601 duration.
|
|
367
|
+
*
|
|
368
|
+
* Whole seconds, and never a fractional component. Google's structured-data
|
|
369
|
+
* documentation accepts `PT1M30S` and treats sub-second precision as noise,
|
|
370
|
+
* and a `PT1M30.437S` in a rich result is a number nobody asked for. A
|
|
371
|
+
* duration under one second rounds UP to `PT1S` rather than to `PT0S`, which
|
|
372
|
+
* would read as "no duration" to a consumer that tests for truthiness.
|
|
373
|
+
*/ export function videoDurationIso8601(durationMs) {
|
|
374
|
+
const total = Math.max(1, Math.round(Number(durationMs) / 1000));
|
|
375
|
+
if (!Number.isFinite(total)) return undefined;
|
|
376
|
+
if (!durationMs || Number(durationMs) <= 0) return undefined;
|
|
377
|
+
const hours = Math.floor(total / 3600);
|
|
378
|
+
const minutes = Math.floor(total % 3600 / 60);
|
|
379
|
+
const seconds = total % 60;
|
|
380
|
+
const parts = [
|
|
381
|
+
hours ? `${hours}H` : '',
|
|
382
|
+
minutes ? `${minutes}M` : '',
|
|
383
|
+
seconds ? `${seconds}S` : ''
|
|
384
|
+
].join('');
|
|
385
|
+
return `PT${parts || '0S'}`;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
//# sourceMappingURL=media-metadata.js.map
|