@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,190 @@
|
|
|
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
|
+
* The variables a page title may be written in terms of, and how a written
|
|
18
|
+
* title becomes a rendered one.
|
|
19
|
+
*
|
|
20
|
+
* ## Why this exists
|
|
21
|
+
*
|
|
22
|
+
* A title is verbatim (AGL-1341, and that rule is right — see `seo-title`), so
|
|
23
|
+
* an author who wants the brand in a title TYPES it. Fifty screens on the
|
|
24
|
+
* marketing site end in a literal ` | Aglyn`, which means the site name and
|
|
25
|
+
* the character in front of it are stored fifty times, and changing either one
|
|
26
|
+
* is fifty edits that nothing reminds you to make. `seo.separator` already
|
|
27
|
+
* exists as a setting and every one of those titles ignores it.
|
|
28
|
+
*
|
|
29
|
+
* So a title may now be WRITTEN in terms of what it depends on:
|
|
30
|
+
*
|
|
31
|
+
* ```
|
|
32
|
+
* {{page.name}} {{site.separator}} {{site.name}}
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* and a site-name change is one edit in Host setup → SEO.
|
|
36
|
+
*
|
|
37
|
+
* ## ⛔ No rendered title changes because this shipped
|
|
38
|
+
*
|
|
39
|
+
* The whole feature is opt-in at the string level: a title with no `{{` in it
|
|
40
|
+
* is returned unchanged, character for character, by the same code path that
|
|
41
|
+
* returned it before. Nothing migrates the fifty existing titles — a migration
|
|
42
|
+
* could not be output-preserving anyway, because ` | Aglyn` is not what
|
|
43
|
+
* `{{site.separator}}{{site.name}}` resolves to on a host whose separator is
|
|
44
|
+
* `-` and whose site title is the long form. They keep working as literals
|
|
45
|
+
* until somebody decides otherwise, one at a time.
|
|
46
|
+
*
|
|
47
|
+
* `DEFAULT_TITLE_PATTERN` is held to the same standard: it is the composition
|
|
48
|
+
* `resolveSeoTitle` already performed for a page with no authored title, said
|
|
49
|
+
* in tokens instead of in code, and `seo-title.spec` pins that the two agree.
|
|
50
|
+
*
|
|
51
|
+
* ## The grammar is `{{…}}`, not `[…]`
|
|
52
|
+
*
|
|
53
|
+
* Because the platform already has one: the besigner's attribute fields, the
|
|
54
|
+
* markdown blocks and the campaign editors all serialize `{{…}}` and the
|
|
55
|
+
* people writing SEO titles are the same people who write those. A second
|
|
56
|
+
* grammar for the same idea is a second thing to learn and a second parser to
|
|
57
|
+
* keep in step.
|
|
58
|
+
*
|
|
59
|
+
* ## What is NOT a variable here
|
|
60
|
+
*
|
|
61
|
+
* Anything per-visitor or per-request. A `<title>` is rendered into a cached,
|
|
62
|
+
* shared HTML document and read by crawlers, so a variable that resolved to
|
|
63
|
+
* something about the reader would be wrong for everyone it was cached for.
|
|
64
|
+
* These three are properties of the page and the site, both of which are the
|
|
65
|
+
* same for everybody who asks for that URL.
|
|
66
|
+
*/ /** A variable's name, as it is written between the braces. */ /**
|
|
67
|
+
* Every variable a title may use, in the order a picker should offer them —
|
|
68
|
+
* which is the order they appear in the default pattern, so the menu reads as
|
|
69
|
+
* the sentence it builds.
|
|
70
|
+
*/ export const SEO_TITLE_VARIABLES = [
|
|
71
|
+
{
|
|
72
|
+
name: 'page.name',
|
|
73
|
+
label: 'Page name',
|
|
74
|
+
description: 'What this page is called — a screen’s display name.'
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: 'site.separator',
|
|
78
|
+
label: 'Separator',
|
|
79
|
+
description: 'The character from Host setup → SEO that joins the two.'
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: 'site.name',
|
|
83
|
+
label: 'Site name',
|
|
84
|
+
description: 'The site title from Host setup → SEO.'
|
|
85
|
+
}
|
|
86
|
+
];
|
|
87
|
+
/**
|
|
88
|
+
* The composition every untitled page gets when the site sets no pattern of
|
|
89
|
+
* its own.
|
|
90
|
+
*
|
|
91
|
+
* This is `resolveSeoTitle`'s previous hard-coded composition, written out:
|
|
92
|
+
* name, separator padded by a space on each side, site title. It is a constant
|
|
93
|
+
* rather than a string built at the call site so that the setting's default,
|
|
94
|
+
* the placeholder the editor shows and the value the renderer falls back to
|
|
95
|
+
* are one thing.
|
|
96
|
+
*/ export const DEFAULT_TITLE_PATTERN = '{{page.name}} {{site.separator}} {{site.name}}';
|
|
97
|
+
/** Trimmed, or `''` for anything that is not a live string. */ function clean(value) {
|
|
98
|
+
return typeof value === 'string' ? value.trim() : '';
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* The separator a site uses when it has set none.
|
|
102
|
+
*
|
|
103
|
+
* An en dash, which is what `seo-title` has padded around since AGL-1341. It
|
|
104
|
+
* lives here because `{{site.separator}}` has to resolve to the SAME character
|
|
105
|
+
* the code composed with — a variable that stood for "the separator, unless
|
|
106
|
+
* it is unset, in which case nothing" would silently change the title of every
|
|
107
|
+
* untitled page on every site that never filled the field in.
|
|
108
|
+
*/ export const DEFAULT_TITLE_SEPARATOR = '\u2013';
|
|
109
|
+
/** The site's separator, defaulted the one way everything defaults it. */ export function seoSeparatorOrDefault(separator) {
|
|
110
|
+
return clean(separator) || DEFAULT_TITLE_SEPARATOR;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Whether a written value uses any variable at all.
|
|
114
|
+
*
|
|
115
|
+
* The cheap gate in front of every path here: a title with no `{{` is returned
|
|
116
|
+
* by identity, which is what makes "nothing renders differently" a property of
|
|
117
|
+
* the code rather than a claim about the data.
|
|
118
|
+
*/ export function hasSeoTitleVariables(value) {
|
|
119
|
+
return typeof value === 'string' && value.includes('{{');
|
|
120
|
+
}
|
|
121
|
+
/** Whether a name is one this catalog defines. */ export function isSeoTitleVariable(name) {
|
|
122
|
+
return SEO_TITLE_VARIABLES.some((variable)=>variable.name === name);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* `{{ name }}` — the whole token, and the name inside it with its padding
|
|
126
|
+
* trimmed, so a human who typed a space after the braces is not punished for
|
|
127
|
+
* it.
|
|
128
|
+
*/ const TOKEN = /\{\{\s*([a-zA-Z][\w.]*)\s*\}\}/g;
|
|
129
|
+
/** The written string as literal runs and variable slots, in order. */ function partsOf(source, values) {
|
|
130
|
+
const parts = [];
|
|
131
|
+
let at = 0;
|
|
132
|
+
TOKEN.lastIndex = 0;
|
|
133
|
+
for(let match = TOKEN.exec(source); match; match = TOKEN.exec(source)){
|
|
134
|
+
if (match.index > at) parts.push({
|
|
135
|
+
text: source.slice(at, match.index)
|
|
136
|
+
});
|
|
137
|
+
const name = match[1];
|
|
138
|
+
parts.push({
|
|
139
|
+
variable: name,
|
|
140
|
+
// An unknown variable renders AS ITSELF — see the resolver's docblock.
|
|
141
|
+
text: !isSeoTitleVariable(name) ? match[0] : name === 'site.separator' ? seoSeparatorOrDefault(values[name]) : clean(values[name])
|
|
142
|
+
});
|
|
143
|
+
at = match.index + match[0].length;
|
|
144
|
+
}
|
|
145
|
+
if (at < source.length) parts.push({
|
|
146
|
+
text: source.slice(at)
|
|
147
|
+
});
|
|
148
|
+
return parts;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Resolve a written title into the one that is rendered.
|
|
152
|
+
*
|
|
153
|
+
* ## An unknown variable is left alone
|
|
154
|
+
*
|
|
155
|
+
* `{{page.subtitle}}` renders as itself, visibly, rather than as an empty gap.
|
|
156
|
+
* A typo that vanished would produce a title that is silently missing a piece,
|
|
157
|
+
* and the author's next look at the live page would show them a sentence that
|
|
158
|
+
* merely reads a bit short. Leaving it visible is the version somebody
|
|
159
|
+
* notices. The editor's picker and autocomplete are what keep it from
|
|
160
|
+
* happening; this is what happens when they are bypassed.
|
|
161
|
+
*
|
|
162
|
+
* ## A separator needs something on BOTH sides
|
|
163
|
+
*
|
|
164
|
+
* This is `resolveSeoTitle`'s own rule (AGL-1341) and it survives the move into
|
|
165
|
+
* a pattern, because it is the rule that stops `<title>` from beginning with a
|
|
166
|
+
* dash on a page whose name is missing. A `{{site.separator}}` with nothing
|
|
167
|
+
* rendered on one side of it is dropped, whatever order the pattern put the
|
|
168
|
+
* pieces in — which is why the parts are walked rather than regex-substituted:
|
|
169
|
+
* a substitution cannot see its neighbours.
|
|
170
|
+
*
|
|
171
|
+
* ## An empty variable takes its spacing with it
|
|
172
|
+
*
|
|
173
|
+
* Otherwise a site with no name set renders `Pricing ` — the gap where the
|
|
174
|
+
* missing piece was, and a trailing separator's worth of whitespace. Runs
|
|
175
|
+
* collapse to one space and the result is trimmed.
|
|
176
|
+
*/ export function resolveSeoTitleVariables(written, values) {
|
|
177
|
+
const source = typeof written === 'string' ? written : '';
|
|
178
|
+
if (!hasSeoTitleVariables(source)) return source;
|
|
179
|
+
const parts = partsOf(source, values);
|
|
180
|
+
const rendered = parts.map((part)=>part.text);
|
|
181
|
+
// A separator survives only where something renders on each side of it.
|
|
182
|
+
parts.forEach((part, index)=>{
|
|
183
|
+
if (part.variable !== 'site.separator') return;
|
|
184
|
+
const live = (from, to)=>rendered.slice(from, to).some((text)=>text.trim());
|
|
185
|
+
if (!live(0, index) || !live(index + 1, rendered.length)) rendered[index] = '';
|
|
186
|
+
});
|
|
187
|
+
return rendered.join('').replace(/\s{2,}/g, ' ').trim();
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
//# sourceMappingURL=seo-title-variables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/seo-title-variables.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * The variables a page title may be written in terms of, and how a written\n * title becomes a rendered one.\n *\n * ## Why this exists\n *\n * A title is verbatim (AGL-1341, and that rule is right — see `seo-title`), so\n * an author who wants the brand in a title TYPES it. Fifty screens on the\n * marketing site end in a literal ` | Aglyn`, which means the site name and\n * the character in front of it are stored fifty times, and changing either one\n * is fifty edits that nothing reminds you to make. `seo.separator` already\n * exists as a setting and every one of those titles ignores it.\n *\n * So a title may now be WRITTEN in terms of what it depends on:\n *\n * ```\n * {{page.name}} {{site.separator}} {{site.name}}\n * ```\n *\n * and a site-name change is one edit in Host setup → SEO.\n *\n * ## ⛔ No rendered title changes because this shipped\n *\n * The whole feature is opt-in at the string level: a title with no `{{` in it\n * is returned unchanged, character for character, by the same code path that\n * returned it before. Nothing migrates the fifty existing titles — a migration\n * could not be output-preserving anyway, because ` | Aglyn` is not what\n * `{{site.separator}}{{site.name}}` resolves to on a host whose separator is\n * `-` and whose site title is the long form. They keep working as literals\n * until somebody decides otherwise, one at a time.\n *\n * `DEFAULT_TITLE_PATTERN` is held to the same standard: it is the composition\n * `resolveSeoTitle` already performed for a page with no authored title, said\n * in tokens instead of in code, and `seo-title.spec` pins that the two agree.\n *\n * ## The grammar is `{{…}}`, not `[…]`\n *\n * Because the platform already has one: the besigner's attribute fields, the\n * markdown blocks and the campaign editors all serialize `{{…}}` and the\n * people writing SEO titles are the same people who write those. A second\n * grammar for the same idea is a second thing to learn and a second parser to\n * keep in step.\n *\n * ## What is NOT a variable here\n *\n * Anything per-visitor or per-request. A `<title>` is rendered into a cached,\n * shared HTML document and read by crawlers, so a variable that resolved to\n * something about the reader would be wrong for everyone it was cached for.\n * These three are properties of the page and the site, both of which are the\n * same for everybody who asks for that URL.\n */\n\n/** A variable's name, as it is written between the braces. */\nexport type SeoTitleVariableName = 'page.name' | 'site.name' | 'site.separator'\n\nexport interface SeoTitleVariableDefinition {\n name: SeoTitleVariableName\n /** What the insert menu calls it. */\n label: string\n /** One line under the label, saying where the value comes from. */\n description: string\n}\n\n/**\n * Every variable a title may use, in the order a picker should offer them —\n * which is the order they appear in the default pattern, so the menu reads as\n * the sentence it builds.\n */\nexport const SEO_TITLE_VARIABLES: readonly SeoTitleVariableDefinition[] = [\n {\n name: 'page.name',\n label: 'Page name',\n description: 'What this page is called — a screen’s display name.',\n },\n {\n name: 'site.separator',\n label: 'Separator',\n description: 'The character from Host setup → SEO that joins the two.',\n },\n {\n name: 'site.name',\n label: 'Site name',\n description: 'The site title from Host setup → SEO.',\n },\n]\n\n/**\n * The composition every untitled page gets when the site sets no pattern of\n * its own.\n *\n * This is `resolveSeoTitle`'s previous hard-coded composition, written out:\n * name, separator padded by a space on each side, site title. It is a constant\n * rather than a string built at the call site so that the setting's default,\n * the placeholder the editor shows and the value the renderer falls back to\n * are one thing.\n */\nexport const DEFAULT_TITLE_PATTERN = '{{page.name}} {{site.separator}} {{site.name}}'\n\n/** The values the variables stand for, for one page of one site. */\nexport interface SeoTitleVariableValues {\n 'page.name'?: string | null\n 'site.name'?: string | null\n 'site.separator'?: string | null\n}\n\n/** Trimmed, or `''` for anything that is not a live string. */\nfunction clean(value?: string | null): string {\n return typeof value === 'string' ? value.trim() : ''\n}\n\n/**\n * The separator a site uses when it has set none.\n *\n * An en dash, which is what `seo-title` has padded around since AGL-1341. It\n * lives here because `{{site.separator}}` has to resolve to the SAME character\n * the code composed with — a variable that stood for \"the separator, unless\n * it is unset, in which case nothing\" would silently change the title of every\n * untitled page on every site that never filled the field in.\n */\nexport const DEFAULT_TITLE_SEPARATOR = '\\u2013'\n\n/** The site's separator, defaulted the one way everything defaults it. */\nexport function seoSeparatorOrDefault(separator?: string | null): string {\n return clean(separator) || DEFAULT_TITLE_SEPARATOR\n}\n\n/**\n * Whether a written value uses any variable at all.\n *\n * The cheap gate in front of every path here: a title with no `{{` is returned\n * by identity, which is what makes \"nothing renders differently\" a property of\n * the code rather than a claim about the data.\n */\nexport function hasSeoTitleVariables(value?: string | null): boolean {\n return typeof value === 'string' && value.includes('{{')\n}\n\n/** Whether a name is one this catalog defines. */\nexport function isSeoTitleVariable(name: string): name is SeoTitleVariableName {\n return SEO_TITLE_VARIABLES.some((variable) => variable.name === name)\n}\n\n/**\n * `{{ name }}` — the whole token, and the name inside it with its padding\n * trimmed, so a human who typed a space after the braces is not punished for\n * it.\n */\nconst TOKEN = /\\{\\{\\s*([a-zA-Z][\\w.]*)\\s*\\}\\}/g\n\ninterface Part {\n /** What renders here, once the variable is resolved. */\n text: string\n /** The variable this came from, if it came from one. */\n variable?: string\n}\n\n/** The written string as literal runs and variable slots, in order. */\nfunction partsOf(source: string, values: SeoTitleVariableValues): Part[] {\n const parts: Part[] = []\n let at = 0\n TOKEN.lastIndex = 0\n for (let match = TOKEN.exec(source); match; match = TOKEN.exec(source)) {\n if (match.index > at) parts.push({ text: source.slice(at, match.index) })\n const name = match[1]\n parts.push({\n variable: name,\n // An unknown variable renders AS ITSELF — see the resolver's docblock.\n text: !isSeoTitleVariable(name)\n ? match[0]\n : name === 'site.separator'\n ? seoSeparatorOrDefault(values[name])\n : clean(values[name]),\n })\n at = match.index + match[0].length\n }\n if (at < source.length) parts.push({ text: source.slice(at) })\n return parts\n}\n\n/**\n * Resolve a written title into the one that is rendered.\n *\n * ## An unknown variable is left alone\n *\n * `{{page.subtitle}}` renders as itself, visibly, rather than as an empty gap.\n * A typo that vanished would produce a title that is silently missing a piece,\n * and the author's next look at the live page would show them a sentence that\n * merely reads a bit short. Leaving it visible is the version somebody\n * notices. The editor's picker and autocomplete are what keep it from\n * happening; this is what happens when they are bypassed.\n *\n * ## A separator needs something on BOTH sides\n *\n * This is `resolveSeoTitle`'s own rule (AGL-1341) and it survives the move into\n * a pattern, because it is the rule that stops `<title>` from beginning with a\n * dash on a page whose name is missing. A `{{site.separator}}` with nothing\n * rendered on one side of it is dropped, whatever order the pattern put the\n * pieces in — which is why the parts are walked rather than regex-substituted:\n * a substitution cannot see its neighbours.\n *\n * ## An empty variable takes its spacing with it\n *\n * Otherwise a site with no name set renders `Pricing ` — the gap where the\n * missing piece was, and a trailing separator's worth of whitespace. Runs\n * collapse to one space and the result is trimmed.\n */\nexport function resolveSeoTitleVariables(\n written: string | null | undefined,\n values: SeoTitleVariableValues,\n): string {\n const source = typeof written === 'string' ? written : ''\n if (!hasSeoTitleVariables(source)) return source\n\n const parts = partsOf(source, values)\n const rendered = parts.map((part) => part.text)\n // A separator survives only where something renders on each side of it.\n parts.forEach((part, index) => {\n if (part.variable !== 'site.separator') return\n const live = (from: number, to: number) =>\n rendered.slice(from, to).some((text) => text.trim())\n if (!live(0, index) || !live(index + 1, rendered.length)) rendered[index] = ''\n })\n\n return rendered.join('').replace(/\\s{2,}/g, ' ').trim()\n}\n"],"names":["SEO_TITLE_VARIABLES","name","label","description","DEFAULT_TITLE_PATTERN","clean","value","trim","DEFAULT_TITLE_SEPARATOR","seoSeparatorOrDefault","separator","hasSeoTitleVariables","includes","isSeoTitleVariable","some","variable","TOKEN","partsOf","source","values","parts","at","lastIndex","match","exec","index","push","text","slice","length","resolveSeoTitleVariables","written","rendered","map","part","forEach","live","from","to","join","replace"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDC,GAED,4DAA4D,GAW5D;;;;CAIC,GACD,OAAO,MAAMA,sBAA6D;IACxE;QACEC,MAAM;QACNC,OAAO;QACPC,aAAa;IACf;IACA;QACEF,MAAM;QACNC,OAAO;QACPC,aAAa;IACf;IACA;QACEF,MAAM;QACNC,OAAO;QACPC,aAAa;IACf;CACD,CAAA;AAED;;;;;;;;;CASC,GACD,OAAO,MAAMC,wBAAwB,iDAAgD;AASrF,6DAA6D,GAC7D,SAASC,MAAMC,KAAqB;IAClC,OAAO,OAAOA,UAAU,WAAWA,MAAMC,IAAI,KAAK;AACpD;AAEA;;;;;;;;CAQC,GACD,OAAO,MAAMC,0BAA0B,SAAQ;AAE/C,wEAAwE,GACxE,OAAO,SAASC,sBAAsBC,SAAyB;IAC7D,OAAOL,MAAMK,cAAcF;AAC7B;AAEA;;;;;;CAMC,GACD,OAAO,SAASG,qBAAqBL,KAAqB;IACxD,OAAO,OAAOA,UAAU,YAAYA,MAAMM,QAAQ,CAAC;AACrD;AAEA,gDAAgD,GAChD,OAAO,SAASC,mBAAmBZ,IAAY;IAC7C,OAAOD,oBAAoBc,IAAI,CAAC,CAACC,WAAaA,SAASd,IAAI,KAAKA;AAClE;AAEA;;;;CAIC,GACD,MAAMe,QAAQ;AASd,qEAAqE,GACrE,SAASC,QAAQC,MAAc,EAAEC,MAA8B;IAC7D,MAAMC,QAAgB,EAAE;IACxB,IAAIC,KAAK;IACTL,MAAMM,SAAS,GAAG;IAClB,IAAK,IAAIC,QAAQP,MAAMQ,IAAI,CAACN,SAASK,OAAOA,QAAQP,MAAMQ,IAAI,CAACN,QAAS;QACtE,IAAIK,MAAME,KAAK,GAAGJ,IAAID,MAAMM,IAAI,CAAC;YAAEC,MAAMT,OAAOU,KAAK,CAACP,IAAIE,MAAME,KAAK;QAAE;QACvE,MAAMxB,OAAOsB,KAAK,CAAC,EAAE;QACrBH,MAAMM,IAAI,CAAC;YACTX,UAAUd;YACV,uEAAuE;YACvE0B,MAAM,CAACd,mBAAmBZ,QACtBsB,KAAK,CAAC,EAAE,GACRtB,SAAS,mBACPQ,sBAAsBU,MAAM,CAAClB,KAAK,IAClCI,MAAMc,MAAM,CAAClB,KAAK;QAC1B;QACAoB,KAAKE,MAAME,KAAK,GAAGF,KAAK,CAAC,EAAE,CAACM,MAAM;IACpC;IACA,IAAIR,KAAKH,OAAOW,MAAM,EAAET,MAAMM,IAAI,CAAC;QAAEC,MAAMT,OAAOU,KAAK,CAACP;IAAI;IAC5D,OAAOD;AACT;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BC,GACD,OAAO,SAASU,yBACdC,OAAkC,EAClCZ,MAA8B;IAE9B,MAAMD,SAAS,OAAOa,YAAY,WAAWA,UAAU;IACvD,IAAI,CAACpB,qBAAqBO,SAAS,OAAOA;IAE1C,MAAME,QAAQH,QAAQC,QAAQC;IAC9B,MAAMa,WAAWZ,MAAMa,GAAG,CAAC,CAACC,OAASA,KAAKP,IAAI;IAC9C,wEAAwE;IACxEP,MAAMe,OAAO,CAAC,CAACD,MAAMT;QACnB,IAAIS,KAAKnB,QAAQ,KAAK,kBAAkB;QACxC,MAAMqB,OAAO,CAACC,MAAcC,KAC1BN,SAASJ,KAAK,CAACS,MAAMC,IAAIxB,IAAI,CAAC,CAACa,OAASA,KAAKpB,IAAI;QACnD,IAAI,CAAC6B,KAAK,GAAGX,UAAU,CAACW,KAAKX,QAAQ,GAAGO,SAASH,MAAM,GAAGG,QAAQ,CAACP,MAAM,GAAG;IAC9E;IAEA,OAAOO,SAASO,IAAI,CAAC,IAAIC,OAAO,CAAC,WAAW,KAAKjC,IAAI;AACvD"}
|
|
@@ -0,0 +1,70 @@
|
|
|
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 interface SeoTitleOptions {
|
|
18
|
+
/**
|
|
19
|
+
* The page's own AUTHORED title (screen `seo.title`, entry `seoTitle`).
|
|
20
|
+
* Rendered verbatim when set — nothing is appended to it.
|
|
21
|
+
*/
|
|
22
|
+
title?: string | null;
|
|
23
|
+
/**
|
|
24
|
+
* What the page is CALLED when nobody authored a title for it: a screen's
|
|
25
|
+
* `displayName`, an entry's headline, a collection or category name. This is
|
|
26
|
+
* the side the site title joins.
|
|
27
|
+
*/
|
|
28
|
+
name?: string | null;
|
|
29
|
+
/** The host's `seo.title` (or `displayName`) — the site-level fallback. */
|
|
30
|
+
siteTitle?: string | null;
|
|
31
|
+
/** The host's `seo.separator`; padded and defaulted, see below. */
|
|
32
|
+
separator?: string | null;
|
|
33
|
+
/**
|
|
34
|
+
* Last resort for a page with no name and a site that named itself nothing.
|
|
35
|
+
* Callers pass a brand-resolved string (never a hard-coded "Aglyn" — a
|
|
36
|
+
* white-label site must not leak the platform brand into its `<title>`).
|
|
37
|
+
*/
|
|
38
|
+
fallback?: string | null;
|
|
39
|
+
/**
|
|
40
|
+
* The site's title PATTERN — `seo.titlePattern` — for the composed case
|
|
41
|
+
* (AGL-3197).
|
|
42
|
+
*
|
|
43
|
+
* Rule 2 below was one composition written in code, so the only thing a site
|
|
44
|
+
* could change about it was the separator. It is now a written pattern with
|
|
45
|
+
* a default that says the same thing, so a site can put its name first, drop
|
|
46
|
+
* it from the composition entirely, or keep what it has by setting nothing.
|
|
47
|
+
*
|
|
48
|
+
* It composes the FALLBACK only. A pattern that also wrapped authored titles
|
|
49
|
+
* would rewrite every title anyone has already written, which is the one
|
|
50
|
+
* outcome this feature is not allowed to have — an authored title that wants
|
|
51
|
+
* the site name in it says so with a variable of its own.
|
|
52
|
+
*/
|
|
53
|
+
pattern?: string | null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Resolves the `<title>` (and the matching `og:title`) for a page.
|
|
57
|
+
*
|
|
58
|
+
* See the module docblock for the rule; the short version is that `title` is
|
|
59
|
+
* an override and `siteTitle` is a fallback, never a suffix.
|
|
60
|
+
*/
|
|
61
|
+
export declare function resolveSeoTitle(options: SeoTitleOptions): string;
|
|
62
|
+
/**
|
|
63
|
+
* The pattern a site composes untitled pages with, ready to render.
|
|
64
|
+
*
|
|
65
|
+
* Separate from the resolver so the console's editor can show the same default
|
|
66
|
+
* as a placeholder without duplicating the constant, and so a stored pattern
|
|
67
|
+
* of `''` — what a cleared field writes (AGL-1191) — means "the default"
|
|
68
|
+
* rather than "compose nothing".
|
|
69
|
+
*/
|
|
70
|
+
export declare function seoTitlePatternOrDefault(pattern?: string | null): string;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/ import { DEFAULT_TITLE_PATTERN, hasSeoTitleVariables, resolveSeoTitleVariables } from "./seo-title-variables.js";
|
|
17
|
+
/**
|
|
18
|
+
* The rendered page title (AGL-1341).
|
|
19
|
+
*
|
|
20
|
+
* ## The bug this ends
|
|
21
|
+
*
|
|
22
|
+
* Every head built its title the same way — `{page}{separator}{host title}` —
|
|
23
|
+
* so the host's SEO title was an unconditional SUFFIX rather than a fallback.
|
|
24
|
+
* On a site whose titles are written to be self-contained that reads the brand
|
|
25
|
+
* twice and blows the budget:
|
|
26
|
+
*
|
|
27
|
+
* ```
|
|
28
|
+
* Aglyn — the visual builder with a real platform underneath-Website Builder - Create Your Own Websites - Aglyn
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* 111 characters, of which Google shows about 60 — so the distinctive half is
|
|
32
|
+
* exactly the half that gets cut. `Title*` and `Separator*` are both REQUIRED
|
|
33
|
+
* in Host Setup → SEO, so no setting could switch this off; it had to be the
|
|
34
|
+
* rule that changed.
|
|
35
|
+
*
|
|
36
|
+
* ## The rule
|
|
37
|
+
*
|
|
38
|
+
* 1. An **authored** SEO title wins **verbatim** — a screen's `seo.title`, an
|
|
39
|
+
* entry's `seoTitle`. Someone typed those into a field labelled "Title"
|
|
40
|
+
* with a 60-character counter beside it; appending to them overrides the
|
|
41
|
+
* only person who knows what the page is called.
|
|
42
|
+
* 2. Otherwise the page's **name** (screen `displayName`, entry headline,
|
|
43
|
+
* collection or category name) composes with the site title, separator in
|
|
44
|
+
* between. This is what keeps the fallback path branded — and, more to the
|
|
45
|
+
* point, DISTINCT: falling straight back to the host title would give every
|
|
46
|
+
* untitled screen on a site the same `<title>`, which is a worse SEO defect
|
|
47
|
+
* than the one being fixed.
|
|
48
|
+
* 3. The separator appears only with a live value on BOTH sides. A page with a
|
|
49
|
+
* name and no site title, or a site title and no name, renders the one it
|
|
50
|
+
* has; a page with neither renders the caller's `fallback`. No head ever
|
|
51
|
+
* emits a leading separator or an empty `<title>`.
|
|
52
|
+
*
|
|
53
|
+
* Empty and whitespace-only are ABSENT, not set — the console writes `''` for
|
|
54
|
+
* a cleared field (AGL-1191), and a title of `' '` is not a title.
|
|
55
|
+
*
|
|
56
|
+
* The brand does not disappear from the head: `og:site_name` still carries the
|
|
57
|
+
* site title on every page, which is where a consumer looks for it.
|
|
58
|
+
*
|
|
59
|
+
* ## Why a shared function
|
|
60
|
+
*
|
|
61
|
+
* Four surfaces composed this independently — the screen branch, the
|
|
62
|
+
* collection branch, the built-in gated pages and the search page — and they
|
|
63
|
+
* had already drifted (the search page hard-coded an en dash and ignored the
|
|
64
|
+
* host's separator entirely). One rule in one place is what makes the answer
|
|
65
|
+
* uniform for the fifth surface nobody has written yet.
|
|
66
|
+
*/ /** Trimmed, or `''` for anything that is not a live string. */ function clean(value) {
|
|
67
|
+
return typeof value === 'string' ? value.trim() : '';
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The separator, padded.
|
|
71
|
+
*
|
|
72
|
+
* The field caps at 3 characters and hosts type a bare `-`, which joined
|
|
73
|
+
* without padding produced `…open web-Website Builder…` — two titles run
|
|
74
|
+
* together into one word. Padding is applied around whatever was typed (and a
|
|
75
|
+
* separator that is only whitespace is no separator), so an author who typed
|
|
76
|
+
* `|` gets ` | ` and one who typed `·` gets ` · `.
|
|
77
|
+
*/ function padSeparator(separator) {
|
|
78
|
+
return ` ${clean(separator) || '–'} `;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Resolves the `<title>` (and the matching `og:title`) for a page.
|
|
82
|
+
*
|
|
83
|
+
* See the module docblock for the rule; the short version is that `title` is
|
|
84
|
+
* an override and `siteTitle` is a fallback, never a suffix.
|
|
85
|
+
*/ export function resolveSeoTitle(options) {
|
|
86
|
+
const name = clean(options.name);
|
|
87
|
+
const siteTitle = clean(options.siteTitle);
|
|
88
|
+
const values = {
|
|
89
|
+
'page.name': name,
|
|
90
|
+
'site.name': siteTitle,
|
|
91
|
+
'site.separator': clean(options.separator)
|
|
92
|
+
};
|
|
93
|
+
const authored = clean(options.title);
|
|
94
|
+
if (authored) {
|
|
95
|
+
// Verbatim, still — rule 1 is untouched. A title with no variables in it
|
|
96
|
+
// does not reach the resolver at all, so it comes back identical by the
|
|
97
|
+
// shortest path there is (AGL-3197).
|
|
98
|
+
return hasSeoTitleVariables(authored) ? resolveSeoTitleVariables(authored, values) || clean(options.fallback) : authored;
|
|
99
|
+
}
|
|
100
|
+
const pattern = clean(options.pattern);
|
|
101
|
+
if (pattern) return resolveSeoTitleVariables(pattern, values) || clean(options.fallback);
|
|
102
|
+
// Both sides live: this is the only case that renders a separator.
|
|
103
|
+
if (name && siteTitle) return `${name}${padSeparator(options.separator)}${siteTitle}`;
|
|
104
|
+
return name || siteTitle || clean(options.fallback);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* The pattern a site composes untitled pages with, ready to render.
|
|
108
|
+
*
|
|
109
|
+
* Separate from the resolver so the console's editor can show the same default
|
|
110
|
+
* as a placeholder without duplicating the constant, and so a stored pattern
|
|
111
|
+
* of `''` — what a cleared field writes (AGL-1191) — means "the default"
|
|
112
|
+
* rather than "compose nothing".
|
|
113
|
+
*/ export function seoTitlePatternOrDefault(pattern) {
|
|
114
|
+
return clean(pattern) || DEFAULT_TITLE_PATTERN;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
//# sourceMappingURL=seo-title.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/seo-title.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n DEFAULT_TITLE_PATTERN,\n hasSeoTitleVariables,\n resolveSeoTitleVariables,\n} from './seo-title-variables'\n\n/**\n * The rendered page title (AGL-1341).\n *\n * ## The bug this ends\n *\n * Every head built its title the same way — `{page}{separator}{host title}` —\n * so the host's SEO title was an unconditional SUFFIX rather than a fallback.\n * On a site whose titles are written to be self-contained that reads the brand\n * twice and blows the budget:\n *\n * ```\n * Aglyn — the visual builder with a real platform underneath-Website Builder - Create Your Own Websites - Aglyn\n * ```\n *\n * 111 characters, of which Google shows about 60 — so the distinctive half is\n * exactly the half that gets cut. `Title*` and `Separator*` are both REQUIRED\n * in Host Setup → SEO, so no setting could switch this off; it had to be the\n * rule that changed.\n *\n * ## The rule\n *\n * 1. An **authored** SEO title wins **verbatim** — a screen's `seo.title`, an\n * entry's `seoTitle`. Someone typed those into a field labelled \"Title\"\n * with a 60-character counter beside it; appending to them overrides the\n * only person who knows what the page is called.\n * 2. Otherwise the page's **name** (screen `displayName`, entry headline,\n * collection or category name) composes with the site title, separator in\n * between. This is what keeps the fallback path branded — and, more to the\n * point, DISTINCT: falling straight back to the host title would give every\n * untitled screen on a site the same `<title>`, which is a worse SEO defect\n * than the one being fixed.\n * 3. The separator appears only with a live value on BOTH sides. A page with a\n * name and no site title, or a site title and no name, renders the one it\n * has; a page with neither renders the caller's `fallback`. No head ever\n * emits a leading separator or an empty `<title>`.\n *\n * Empty and whitespace-only are ABSENT, not set — the console writes `''` for\n * a cleared field (AGL-1191), and a title of `' '` is not a title.\n *\n * The brand does not disappear from the head: `og:site_name` still carries the\n * site title on every page, which is where a consumer looks for it.\n *\n * ## Why a shared function\n *\n * Four surfaces composed this independently — the screen branch, the\n * collection branch, the built-in gated pages and the search page — and they\n * had already drifted (the search page hard-coded an en dash and ignored the\n * host's separator entirely). One rule in one place is what makes the answer\n * uniform for the fifth surface nobody has written yet.\n */\n\n/** Trimmed, or `''` for anything that is not a live string. */\nfunction clean(value?: string | null): string {\n return typeof value === 'string' ? value.trim() : ''\n}\n\nexport interface SeoTitleOptions {\n /**\n * The page's own AUTHORED title (screen `seo.title`, entry `seoTitle`).\n * Rendered verbatim when set — nothing is appended to it.\n */\n title?: string | null\n /**\n * What the page is CALLED when nobody authored a title for it: a screen's\n * `displayName`, an entry's headline, a collection or category name. This is\n * the side the site title joins.\n */\n name?: string | null\n /** The host's `seo.title` (or `displayName`) — the site-level fallback. */\n siteTitle?: string | null\n /** The host's `seo.separator`; padded and defaulted, see below. */\n separator?: string | null\n /**\n * Last resort for a page with no name and a site that named itself nothing.\n * Callers pass a brand-resolved string (never a hard-coded \"Aglyn\" — a\n * white-label site must not leak the platform brand into its `<title>`).\n */\n fallback?: string | null\n /**\n * The site's title PATTERN — `seo.titlePattern` — for the composed case\n * (AGL-3197).\n *\n * Rule 2 below was one composition written in code, so the only thing a site\n * could change about it was the separator. It is now a written pattern with\n * a default that says the same thing, so a site can put its name first, drop\n * it from the composition entirely, or keep what it has by setting nothing.\n *\n * It composes the FALLBACK only. A pattern that also wrapped authored titles\n * would rewrite every title anyone has already written, which is the one\n * outcome this feature is not allowed to have — an authored title that wants\n * the site name in it says so with a variable of its own.\n */\n pattern?: string | null\n}\n\n/**\n * The separator, padded.\n *\n * The field caps at 3 characters and hosts type a bare `-`, which joined\n * without padding produced `…open web-Website Builder…` — two titles run\n * together into one word. Padding is applied around whatever was typed (and a\n * separator that is only whitespace is no separator), so an author who typed\n * `|` gets ` | ` and one who typed `·` gets ` · `.\n */\nfunction padSeparator(separator?: string | null): string {\n return ` ${clean(separator) || '–'} `\n}\n\n/**\n * Resolves the `<title>` (and the matching `og:title`) for a page.\n *\n * See the module docblock for the rule; the short version is that `title` is\n * an override and `siteTitle` is a fallback, never a suffix.\n */\nexport function resolveSeoTitle(options: SeoTitleOptions): string {\n const name = clean(options.name)\n const siteTitle = clean(options.siteTitle)\n const values = {\n 'page.name': name,\n 'site.name': siteTitle,\n 'site.separator': clean(options.separator),\n }\n\n const authored = clean(options.title)\n if (authored) {\n // Verbatim, still — rule 1 is untouched. A title with no variables in it\n // does not reach the resolver at all, so it comes back identical by the\n // shortest path there is (AGL-3197).\n return hasSeoTitleVariables(authored)\n ? resolveSeoTitleVariables(authored, values) || clean(options.fallback)\n : authored\n }\n\n const pattern = clean(options.pattern)\n if (pattern) return resolveSeoTitleVariables(pattern, values) || clean(options.fallback)\n\n // Both sides live: this is the only case that renders a separator.\n if (name && siteTitle) return `${name}${padSeparator(options.separator)}${siteTitle}`\n return name || siteTitle || clean(options.fallback)\n}\n\n/**\n * The pattern a site composes untitled pages with, ready to render.\n *\n * Separate from the resolver so the console's editor can show the same default\n * as a placeholder without duplicating the constant, and so a stored pattern\n * of `''` — what a cleared field writes (AGL-1191) — means \"the default\"\n * rather than \"compose nothing\".\n */\nexport function seoTitlePatternOrDefault(pattern?: string | null): string {\n return clean(pattern) || DEFAULT_TITLE_PATTERN\n}\n"],"names":["DEFAULT_TITLE_PATTERN","hasSeoTitleVariables","resolveSeoTitleVariables","clean","value","trim","padSeparator","separator","resolveSeoTitle","options","name","siteTitle","values","authored","title","fallback","pattern","seoTitlePatternOrDefault"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED,SACEA,qBAAqB,EACrBC,oBAAoB,EACpBC,wBAAwB,QACnB,2BAAuB;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDC,GAED,6DAA6D,GAC7D,SAASC,MAAMC,KAAqB;IAClC,OAAO,OAAOA,UAAU,WAAWA,MAAMC,IAAI,KAAK;AACpD;AAyCA;;;;;;;;CAQC,GACD,SAASC,aAAaC,SAAyB;IAC7C,OAAO,CAAC,CAAC,EAAEJ,MAAMI,cAAc,IAAI,CAAC,CAAC;AACvC;AAEA;;;;;CAKC,GACD,OAAO,SAASC,gBAAgBC,OAAwB;IACtD,MAAMC,OAAOP,MAAMM,QAAQC,IAAI;IAC/B,MAAMC,YAAYR,MAAMM,QAAQE,SAAS;IACzC,MAAMC,SAAS;QACb,aAAaF;QACb,aAAaC;QACb,kBAAkBR,MAAMM,QAAQF,SAAS;IAC3C;IAEA,MAAMM,WAAWV,MAAMM,QAAQK,KAAK;IACpC,IAAID,UAAU;QACZ,yEAAyE;QACzE,wEAAwE;QACxE,qCAAqC;QACrC,OAAOZ,qBAAqBY,YACxBX,yBAAyBW,UAAUD,WAAWT,MAAMM,QAAQM,QAAQ,IACpEF;IACN;IAEA,MAAMG,UAAUb,MAAMM,QAAQO,OAAO;IACrC,IAAIA,SAAS,OAAOd,yBAAyBc,SAASJ,WAAWT,MAAMM,QAAQM,QAAQ;IAEvF,mEAAmE;IACnE,IAAIL,QAAQC,WAAW,OAAO,GAAGD,OAAOJ,aAAaG,QAAQF,SAAS,IAAII,WAAW;IACrF,OAAOD,QAAQC,aAAaR,MAAMM,QAAQM,QAAQ;AACpD;AAEA;;;;;;;CAOC,GACD,OAAO,SAASE,yBAAyBD,OAAuB;IAC9D,OAAOb,MAAMa,YAAYhB;AAC3B"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022 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
|
+
/**
|
|
18
|
+
* Server-safe app-utils: every app-util EXCEPT the client-only React
|
|
19
|
+
* contexts (see ./contexts). Nothing here calls `createContext` at module
|
|
20
|
+
* scope, so this barrel — re-exported by `@aglyn/aglyn/server` — is safe to
|
|
21
|
+
* import from tenant Server Components (AGL-405). The full `./index` barrel
|
|
22
|
+
* re-adds the contexts for client consumers.
|
|
23
|
+
*/
|
|
24
|
+
export * from './binding-token-catalog';
|
|
25
|
+
export * from './binding-tokens';
|
|
26
|
+
export * from './breadcrumb-json-ld';
|
|
27
|
+
export * from './seo-listing-fields';
|
|
28
|
+
export * from './video-object';
|
|
29
|
+
export * from './collection-delete';
|
|
30
|
+
export * from './collection-entries';
|
|
31
|
+
export * from './collection-kind';
|
|
32
|
+
export * from './collection-slug';
|
|
33
|
+
export * from './content-authors';
|
|
34
|
+
export * from './content-schema-type';
|
|
35
|
+
export * from './content-author-profile';
|
|
36
|
+
export * from './url-slug';
|
|
37
|
+
export * from './child-contract';
|
|
38
|
+
export * from './child-contract-compose';
|
|
39
|
+
export * from './lineal-order';
|
|
40
|
+
export * from './node-definition-sanitizer';
|
|
41
|
+
export * from './console-routes';
|
|
42
|
+
export * from './console-record-links';
|
|
43
|
+
export * from './screen-link-value';
|
|
44
|
+
export * from './link-references';
|
|
45
|
+
export * from './analytics-path-key';
|
|
46
|
+
export * from './contacts';
|
|
47
|
+
export * from './crm';
|
|
48
|
+
export * from './crm-email-templates';
|
|
49
|
+
export * from './crm-booking';
|
|
50
|
+
export * from './contact-merge';
|
|
51
|
+
export * from './person-erasure';
|
|
52
|
+
export * from './crm-reports';
|
|
53
|
+
export * from './crm-csv';
|
|
54
|
+
export * from './contact-holder';
|
|
55
|
+
export * from './crm-digest';
|
|
56
|
+
export * from './crm-task-reminders';
|
|
57
|
+
export * from './crm-inbound';
|
|
58
|
+
export * from './member-email-aliases';
|
|
59
|
+
export * from './crm-next-activity';
|
|
60
|
+
export { csvCell, csvDocument, customImportTarget, customImportTargetKey, } from './csv-import';
|
|
61
|
+
export type { ImportChunkResult, ImportDroppedValue, ImportSkippedRow, } from './csv-import';
|
|
62
|
+
export * from './contact-custom-fields';
|
|
63
|
+
export * from './consent-groups';
|
|
64
|
+
export * from './marketing-consent';
|
|
65
|
+
export * from './list-assignment-policy';
|
|
66
|
+
export * from './list-import';
|
|
67
|
+
export * from './dynamic-list-rule';
|
|
68
|
+
export * from './email-topics';
|
|
69
|
+
export * from './compose-layout-nodes';
|
|
70
|
+
export * from './compose-layout-props';
|
|
71
|
+
export * from './document-landmark';
|
|
72
|
+
export * from './functions';
|
|
73
|
+
export * from './compose-reusable-components';
|
|
74
|
+
export * from './compress';
|
|
75
|
+
export * from './merge-node-sx';
|
|
76
|
+
export * from './palette-sx';
|
|
77
|
+
export * from './scheme-sx';
|
|
78
|
+
export * from './create-resource-uid';
|
|
79
|
+
export * from './decompress';
|
|
80
|
+
export * from './stored-nodes';
|
|
81
|
+
export * from './strip-undefined';
|
|
82
|
+
export * from './organizations';
|
|
83
|
+
export * from './org-permissions';
|
|
84
|
+
export * from './host-permissions';
|
|
85
|
+
export * from './password-policy';
|
|
86
|
+
export * from './idp-profile';
|
|
87
|
+
export * from './onboarding-deep-link';
|
|
88
|
+
export * from './campaign-attribution';
|
|
89
|
+
export * from './campaign-membership';
|
|
90
|
+
export * from './deployment-shape';
|
|
91
|
+
export * from './upload-cors';
|
|
92
|
+
export * from './docs-help';
|
|
93
|
+
export * from './platform-brand';
|
|
94
|
+
export * from './plan-entitlements';
|
|
95
|
+
export * from './bandwidth-cap';
|
|
96
|
+
export * from './form-abuse-ceiling';
|
|
97
|
+
export * from './forms';
|
|
98
|
+
export * from './form-contract';
|
|
99
|
+
export * from './visitor-record-ceiling';
|
|
100
|
+
export * from './health-report';
|
|
101
|
+
export * from './webhook-delivery';
|
|
102
|
+
export * from './support-tiers';
|
|
103
|
+
export * from './release-flags';
|
|
104
|
+
export * from './operator-identity';
|
|
105
|
+
export * from './lockdown';
|
|
106
|
+
export * from './media-quarantine';
|
|
107
|
+
export * from './media-takedown-reach';
|
|
108
|
+
export * from './upload-inspection';
|
|
109
|
+
export * from './abuse-report';
|
|
110
|
+
export * from './dmca-counter-notice';
|
|
111
|
+
export * from './repeat-infringer';
|
|
112
|
+
export * from './org-override-reason';
|
|
113
|
+
export * from './host-tokens';
|
|
114
|
+
export * from './variables';
|
|
115
|
+
export * from './workflows';
|
|
116
|
+
export * from './datasets';
|
|
117
|
+
export * from './expand-repeatables';
|
|
118
|
+
export * from './org-roles';
|
|
119
|
+
export * from './markdown-lite';
|
|
120
|
+
export * from './notifications';
|
|
121
|
+
export * from './definition-canvas-tree';
|
|
122
|
+
export * from './ensure-canvas-root';
|
|
123
|
+
export * from './repair-canvas-nodes';
|
|
124
|
+
export * from './detect-template-placeholders';
|
|
125
|
+
export * from './guarded-version-save';
|
|
126
|
+
export * from './local-storage-budget';
|
|
127
|
+
export * from './measure-node-map';
|
|
128
|
+
export * from './resolve-named-tokens';
|
|
129
|
+
export * from './screen-route';
|
|
130
|
+
export * from './host-naming';
|
|
131
|
+
export * from './marketplace-verification';
|
|
132
|
+
export * from './name-search';
|
|
133
|
+
export * from './name-match';
|
|
134
|
+
export * from './api-plugins';
|
|
135
|
+
export * from './plugin-api-rate-limit';
|
|
136
|
+
export * from './plugin-api-cross-origin';
|
|
137
|
+
export * from './actions';
|
|
138
|
+
export * from './element-animation';
|
|
139
|
+
export * from './attribution-guard';
|
|
140
|
+
export * from './node-interactions';
|
|
141
|
+
export * from './element-ui';
|
|
142
|
+
export * from './image-upload-types';
|
|
143
|
+
export * from './sanitize-svg';
|
|
144
|
+
export * from './media-folders';
|
|
145
|
+
export * from './media-metadata';
|
|
146
|
+
export * from './media-ref';
|
|
147
|
+
export * from './paid-media-source';
|
|
148
|
+
export * from './author-css';
|
|
149
|
+
export * from './author-html';
|
|
150
|
+
export * from './dataset-models';
|
|
151
|
+
export * from './dataset-csv';
|
|
152
|
+
export * from './marketplace-provenance';
|
|
153
|
+
export * from './marketplace-update-state';
|
|
154
|
+
export * from './dataset-query';
|
|
155
|
+
export * from './plugin-manifest';
|
|
156
|
+
export * from './email-starter-policy';
|
|
157
|
+
export * from './safe-json-ld';
|
|
158
|
+
export * from './accept-negotiation';
|
|
159
|
+
export * from './agent-api-catalog';
|
|
160
|
+
export * from './agent-openapi';
|
|
161
|
+
export * from './author-html-markdown';
|
|
162
|
+
export * from './llms-txt';
|
|
163
|
+
export * from './page-markdown';
|
|
164
|
+
export * from './request-geo';
|
|
165
|
+
export * from './request-ip';
|
|
166
|
+
export * from './search-indexing';
|
|
167
|
+
export * from './seo-title';
|
|
168
|
+
export * from './sitemap';
|
|
169
|
+
export * from './visitor-consent';
|
|
170
|
+
export * from './social-image';
|
|
171
|
+
export * from './scope-tokens';
|
|
172
|
+
export * from './org-billing-doc';
|
|
173
|
+
export * from './stripe-deployment-mode';
|
|
174
|
+
export * from './deferred-image';
|