@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,55 @@
|
|
|
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
|
+
/**
|
|
18
|
+
* Two unrelated features share `hosts/{hostId}/collections` (AGL-954):
|
|
19
|
+
*
|
|
20
|
+
* - **content** — the Content page's publishable collections. They own an
|
|
21
|
+
* `entries` subcollection and serve at `/{collectionSlug}/{entrySlug}`.
|
|
22
|
+
* - **catalog** — commerce's manual/smart product collections. They own
|
|
23
|
+
* nothing and serve at `/collections/{slug}`.
|
|
24
|
+
*
|
|
25
|
+
* Nothing on the documents said which was which, so every surface listed the
|
|
26
|
+
* other's rows and a public slug lookup could resolve to the wrong kind.
|
|
27
|
+
* Every document now carries `kind` — both console surfaces stamp it, site
|
|
28
|
+
* import stamps it, and the pre-existing documents were backfilled (AGL-979),
|
|
29
|
+
* so reads no longer infer anything from shape. `legacyCollectionKind` below
|
|
30
|
+
* is the one remaining inference, confined to the import adapter.
|
|
31
|
+
*/
|
|
32
|
+
export type HostCollectionKind = 'content' | 'catalog';
|
|
33
|
+
/** Written onto every collection doc created from here on (AGL-954). */
|
|
34
|
+
export declare const HOST_COLLECTION_KINDS: readonly HostCollectionKind[];
|
|
35
|
+
/**
|
|
36
|
+
* Which feature owns this `collections` doc.
|
|
37
|
+
*
|
|
38
|
+
* Reads `kind` and nothing else. A document that does not say what it is is
|
|
39
|
+
* treated as content — the safe direction, because content is the kind that
|
|
40
|
+
* owns `entries`, and mistaking it for catalog is what puts those entries in
|
|
41
|
+
* reach of a delete.
|
|
42
|
+
*/
|
|
43
|
+
export declare function hostCollectionKind(data: object | null | undefined): HostCollectionKind;
|
|
44
|
+
/**
|
|
45
|
+
* Classify a collection that predates the `kind` field, from its shape.
|
|
46
|
+
*
|
|
47
|
+
* ONLY for the site-import adapter: a bundle exported before AGL-954 has no
|
|
48
|
+
* `kind`, and that is the one path where an old catalog collection can still
|
|
49
|
+
* arrive. Every other reader uses {@link hostCollectionKind}, which does not
|
|
50
|
+
* guess. Only catalog collections carry the membership keys, so their presence
|
|
51
|
+
* is decisive; everything else is content.
|
|
52
|
+
*/
|
|
53
|
+
export declare function legacyCollectionKind(data: object | null | undefined): HostCollectionKind;
|
|
54
|
+
/** Filter helper: `docs.filter(isHostCollectionKind('catalog'))`. */
|
|
55
|
+
export declare function isHostCollectionKind(kind: HostCollectionKind): (data: object | null | undefined) => boolean;
|
|
@@ -0,0 +1,69 @@
|
|
|
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
|
+
* Two unrelated features share `hosts/{hostId}/collections` (AGL-954):
|
|
18
|
+
*
|
|
19
|
+
* - **content** — the Content page's publishable collections. They own an
|
|
20
|
+
* `entries` subcollection and serve at `/{collectionSlug}/{entrySlug}`.
|
|
21
|
+
* - **catalog** — commerce's manual/smart product collections. They own
|
|
22
|
+
* nothing and serve at `/collections/{slug}`.
|
|
23
|
+
*
|
|
24
|
+
* Nothing on the documents said which was which, so every surface listed the
|
|
25
|
+
* other's rows and a public slug lookup could resolve to the wrong kind.
|
|
26
|
+
* Every document now carries `kind` — both console surfaces stamp it, site
|
|
27
|
+
* import stamps it, and the pre-existing documents were backfilled (AGL-979),
|
|
28
|
+
* so reads no longer infer anything from shape. `legacyCollectionKind` below
|
|
29
|
+
* is the one remaining inference, confined to the import adapter.
|
|
30
|
+
*/ /** Written onto every collection doc created from here on (AGL-954). */ export const HOST_COLLECTION_KINDS = [
|
|
31
|
+
'content',
|
|
32
|
+
'catalog'
|
|
33
|
+
];
|
|
34
|
+
function isKind(value) {
|
|
35
|
+
return value === 'content' || value === 'catalog';
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Which feature owns this `collections` doc.
|
|
39
|
+
*
|
|
40
|
+
* Reads `kind` and nothing else. A document that does not say what it is is
|
|
41
|
+
* treated as content — the safe direction, because content is the kind that
|
|
42
|
+
* owns `entries`, and mistaking it for catalog is what puts those entries in
|
|
43
|
+
* reach of a delete.
|
|
44
|
+
*/ export function hostCollectionKind(data) {
|
|
45
|
+
if (!data) return 'content';
|
|
46
|
+
// Accepts any object shape — callers pass typed rows (HostCollection) as
|
|
47
|
+
// readily as raw Firestore data.
|
|
48
|
+
const fields = data['kind'];
|
|
49
|
+
return isKind(fields) ? fields : 'content';
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Classify a collection that predates the `kind` field, from its shape.
|
|
53
|
+
*
|
|
54
|
+
* ONLY for the site-import adapter: a bundle exported before AGL-954 has no
|
|
55
|
+
* `kind`, and that is the one path where an old catalog collection can still
|
|
56
|
+
* arrive. Every other reader uses {@link hostCollectionKind}, which does not
|
|
57
|
+
* guess. Only catalog collections carry the membership keys, so their presence
|
|
58
|
+
* is decisive; everything else is content.
|
|
59
|
+
*/ export function legacyCollectionKind(data) {
|
|
60
|
+
if (!data) return 'content';
|
|
61
|
+
const fields = data;
|
|
62
|
+
if (isKind(fields['kind'])) return fields['kind'];
|
|
63
|
+
return fields['mode'] !== undefined || fields['rules'] !== undefined || fields['productIds'] !== undefined ? 'catalog' : 'content';
|
|
64
|
+
}
|
|
65
|
+
/** Filter helper: `docs.filter(isHostCollectionKind('catalog'))`. */ export function isHostCollectionKind(kind) {
|
|
66
|
+
return (data)=>hostCollectionKind(data) === kind;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
//# sourceMappingURL=collection-kind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/collection-kind.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 * Two unrelated features share `hosts/{hostId}/collections` (AGL-954):\n *\n * - **content** — the Content page's publishable collections. They own an\n * `entries` subcollection and serve at `/{collectionSlug}/{entrySlug}`.\n * - **catalog** — commerce's manual/smart product collections. They own\n * nothing and serve at `/collections/{slug}`.\n *\n * Nothing on the documents said which was which, so every surface listed the\n * other's rows and a public slug lookup could resolve to the wrong kind.\n * Every document now carries `kind` — both console surfaces stamp it, site\n * import stamps it, and the pre-existing documents were backfilled (AGL-979),\n * so reads no longer infer anything from shape. `legacyCollectionKind` below\n * is the one remaining inference, confined to the import adapter.\n */\nexport type HostCollectionKind = 'content' | 'catalog'\n\n/** Written onto every collection doc created from here on (AGL-954). */\nexport const HOST_COLLECTION_KINDS: readonly HostCollectionKind[] = [\n 'content',\n 'catalog',\n]\n\nfunction isKind(value: unknown): value is HostCollectionKind {\n return value === 'content' || value === 'catalog'\n}\n\n/**\n * Which feature owns this `collections` doc.\n *\n * Reads `kind` and nothing else. A document that does not say what it is is\n * treated as content — the safe direction, because content is the kind that\n * owns `entries`, and mistaking it for catalog is what puts those entries in\n * reach of a delete.\n */\nexport function hostCollectionKind(\n data: object | null | undefined,\n): HostCollectionKind {\n if (!data) return 'content'\n // Accepts any object shape — callers pass typed rows (HostCollection) as\n // readily as raw Firestore data.\n const fields = (data as Record<string, unknown>)['kind']\n return isKind(fields) ? fields : 'content'\n}\n\n/**\n * Classify a collection that predates the `kind` field, from its shape.\n *\n * ONLY for the site-import adapter: a bundle exported before AGL-954 has no\n * `kind`, and that is the one path where an old catalog collection can still\n * arrive. Every other reader uses {@link hostCollectionKind}, which does not\n * guess. Only catalog collections carry the membership keys, so their presence\n * is decisive; everything else is content.\n */\nexport function legacyCollectionKind(\n data: object | null | undefined,\n): HostCollectionKind {\n if (!data) return 'content'\n const fields = data as Record<string, unknown>\n if (isKind(fields['kind'])) return fields['kind']\n return fields['mode'] !== undefined ||\n fields['rules'] !== undefined ||\n fields['productIds'] !== undefined\n ? 'catalog'\n : 'content'\n}\n\n/** Filter helper: `docs.filter(isHostCollectionKind('catalog'))`. */\nexport function isHostCollectionKind(kind: HostCollectionKind) {\n return (data: object | null | undefined): boolean =>\n hostCollectionKind(data) === kind\n}\n"],"names":["HOST_COLLECTION_KINDS","isKind","value","hostCollectionKind","data","fields","legacyCollectionKind","undefined","isHostCollectionKind","kind"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED;;;;;;;;;;;;;;CAcC,GAGD,sEAAsE,GACtE,OAAO,MAAMA,wBAAuD;IAClE;IACA;CACD,CAAA;AAED,SAASC,OAAOC,KAAc;IAC5B,OAAOA,UAAU,aAAaA,UAAU;AAC1C;AAEA;;;;;;;CAOC,GACD,OAAO,SAASC,mBACdC,IAA+B;IAE/B,IAAI,CAACA,MAAM,OAAO;IAClB,yEAAyE;IACzE,iCAAiC;IACjC,MAAMC,SAAS,AAACD,IAAgC,CAAC,OAAO;IACxD,OAAOH,OAAOI,UAAUA,SAAS;AACnC;AAEA;;;;;;;;CAQC,GACD,OAAO,SAASC,qBACdF,IAA+B;IAE/B,IAAI,CAACA,MAAM,OAAO;IAClB,MAAMC,SAASD;IACf,IAAIH,OAAOI,MAAM,CAAC,OAAO,GAAG,OAAOA,MAAM,CAAC,OAAO;IACjD,OAAOA,MAAM,CAAC,OAAO,KAAKE,aACxBF,MAAM,CAAC,QAAQ,KAAKE,aACpBF,MAAM,CAAC,aAAa,KAAKE,YACvB,YACA;AACN;AAEA,mEAAmE,GACnE,OAAO,SAASC,qBAAqBC,IAAwB;IAC3D,OAAO,CAACL,OACND,mBAAmBC,UAAUK;AACjC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
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
|
+
import { type HostCollectionKind } from './collection-kind';
|
|
18
|
+
/**
|
|
19
|
+
* A collection's slug is its public address — `/{slug}` for content,
|
|
20
|
+
* `/collections/{slug}` for catalog — and nothing made it unique (AGL-957).
|
|
21
|
+
* Two collections of the same kind could both be `blog`, and the resolvers,
|
|
22
|
+
* which take the first match of the right kind, then served whichever one
|
|
23
|
+
* Firestore happened to return. The other became unreachable, with no error
|
|
24
|
+
* anywhere to say so.
|
|
25
|
+
*
|
|
26
|
+
* Uniqueness is per host AND per kind: content and catalog have separate URL
|
|
27
|
+
* namespaces, so `/blog` and `/collections/blog` may coexist.
|
|
28
|
+
*/
|
|
29
|
+
export interface CollectionSlugCandidate {
|
|
30
|
+
$id?: string;
|
|
31
|
+
slug?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The id of the collection already using `slug`, or null when it is free.
|
|
35
|
+
*
|
|
36
|
+
* `exceptId` is the collection being edited — a rename that keeps the same
|
|
37
|
+
* slug must not collide with itself. Comparison is case- and space-
|
|
38
|
+
* insensitive because the slugifiers differ slightly between the two
|
|
39
|
+
* surfaces and "Blog" vs "blog" resolve to the same URL either way.
|
|
40
|
+
*/
|
|
41
|
+
export declare function findCollectionSlugOwner(slug: string, kind: HostCollectionKind, existing: readonly CollectionSlugCandidate[] | null | undefined, exceptId?: string | null): string | null;
|
|
42
|
+
/** Convenience predicate over {@link findCollectionSlugOwner}. */
|
|
43
|
+
export declare function isCollectionSlugTaken(slug: string, kind: HostCollectionKind, existing: readonly CollectionSlugCandidate[] | null | undefined, exceptId?: string | null): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* An ENTRY's slug is its public address too — `/{collectionSlug}/{entrySlug}`
|
|
46
|
+
* — and it has exactly the defect AGL-957 fixed one level up (AGL-2498).
|
|
47
|
+
*
|
|
48
|
+
* The tenant resolves an entry with `.where('slug', '==', entrySlug)` inside
|
|
49
|
+
* the collection and takes the first match, so two entries sharing a slug
|
|
50
|
+
* means one of them is simply unreachable, with nothing anywhere saying so.
|
|
51
|
+
* Nothing enforced it because nothing could: the slug was DERIVED from the
|
|
52
|
+
* title on every save, so a collision meant two posts with the same title and
|
|
53
|
+
* the console never offered a way to tell them apart.
|
|
54
|
+
*
|
|
55
|
+
* Now that the slug is editable the collision is reachable on purpose, so it
|
|
56
|
+
* has to be answerable. Scope is per COLLECTION — two collections may each
|
|
57
|
+
* have a `/hello`, because the collection segment disambiguates them.
|
|
58
|
+
*/
|
|
59
|
+
export interface EntrySlugCandidate {
|
|
60
|
+
$id?: string;
|
|
61
|
+
slug?: string;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The id of the entry already using `slug` in this collection, or null.
|
|
65
|
+
*
|
|
66
|
+
* `exceptId` is the entry being edited — re-saving a post without touching its
|
|
67
|
+
* slug must not collide with itself. Case- and space-insensitive for the same
|
|
68
|
+
* reason the collection rule is: `Hello` and `hello` resolve to one URL.
|
|
69
|
+
*
|
|
70
|
+
* ⚠️ This decides nothing on its own — it reports what the caller handed it.
|
|
71
|
+
* The console's caller asks Firestore for the slug directly, so its answer
|
|
72
|
+
* covers the whole collection rather than a loaded window; a caller that
|
|
73
|
+
* passes a page instead can only report collisions inside that page, and must
|
|
74
|
+
* say so rather than implying a guarantee this cannot make.
|
|
75
|
+
*
|
|
76
|
+
* It remains fast feedback rather than an enforcement point in either case:
|
|
77
|
+
* two authors saving the same address at once both read no owner.
|
|
78
|
+
*/
|
|
79
|
+
export declare function findEntrySlugOwner(slug: string, existing: readonly EntrySlugCandidate[] | null | undefined, exceptId?: string | null): string | null;
|
|
@@ -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
|
+
*/ import { hostCollectionKind } from "./collection-kind.js";
|
|
17
|
+
/**
|
|
18
|
+
* The id of the collection already using `slug`, or null when it is free.
|
|
19
|
+
*
|
|
20
|
+
* `exceptId` is the collection being edited — a rename that keeps the same
|
|
21
|
+
* slug must not collide with itself. Comparison is case- and space-
|
|
22
|
+
* insensitive because the slugifiers differ slightly between the two
|
|
23
|
+
* surfaces and "Blog" vs "blog" resolve to the same URL either way.
|
|
24
|
+
*/ export function findCollectionSlugOwner(slug, kind, existing, exceptId) {
|
|
25
|
+
const wanted = String(slug != null ? slug : '').trim().toLowerCase();
|
|
26
|
+
if (!wanted) return null;
|
|
27
|
+
for (const candidate of existing != null ? existing : []){
|
|
28
|
+
var _candidate_slug;
|
|
29
|
+
if (exceptId && candidate.$id === exceptId) continue;
|
|
30
|
+
if (hostCollectionKind(candidate) !== kind) continue;
|
|
31
|
+
if (String((_candidate_slug = candidate.slug) != null ? _candidate_slug : '').trim().toLowerCase() === wanted) {
|
|
32
|
+
var _candidate_$id;
|
|
33
|
+
return (_candidate_$id = candidate.$id) != null ? _candidate_$id : '';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
/** Convenience predicate over {@link findCollectionSlugOwner}. */ export function isCollectionSlugTaken(slug, kind, existing, exceptId) {
|
|
39
|
+
return findCollectionSlugOwner(slug, kind, existing, exceptId) !== null;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The id of the entry already using `slug` in this collection, or null.
|
|
43
|
+
*
|
|
44
|
+
* `exceptId` is the entry being edited — re-saving a post without touching its
|
|
45
|
+
* slug must not collide with itself. Case- and space-insensitive for the same
|
|
46
|
+
* reason the collection rule is: `Hello` and `hello` resolve to one URL.
|
|
47
|
+
*
|
|
48
|
+
* ⚠️ This decides nothing on its own — it reports what the caller handed it.
|
|
49
|
+
* The console's caller asks Firestore for the slug directly, so its answer
|
|
50
|
+
* covers the whole collection rather than a loaded window; a caller that
|
|
51
|
+
* passes a page instead can only report collisions inside that page, and must
|
|
52
|
+
* say so rather than implying a guarantee this cannot make.
|
|
53
|
+
*
|
|
54
|
+
* It remains fast feedback rather than an enforcement point in either case:
|
|
55
|
+
* two authors saving the same address at once both read no owner.
|
|
56
|
+
*/ export function findEntrySlugOwner(slug, existing, exceptId) {
|
|
57
|
+
const wanted = String(slug != null ? slug : '').trim().toLowerCase();
|
|
58
|
+
if (!wanted) return null;
|
|
59
|
+
for (const candidate of existing != null ? existing : []){
|
|
60
|
+
var _candidate_slug;
|
|
61
|
+
if (exceptId && candidate.$id === exceptId) continue;
|
|
62
|
+
if (String((_candidate_slug = candidate.slug) != null ? _candidate_slug : '').trim().toLowerCase() === wanted) {
|
|
63
|
+
var _candidate_$id;
|
|
64
|
+
return (_candidate_$id = candidate.$id) != null ? _candidate_$id : '';
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
//# sourceMappingURL=collection-slug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/collection-slug.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 { type HostCollectionKind, hostCollectionKind } from './collection-kind'\n\n/**\n * A collection's slug is its public address — `/{slug}` for content,\n * `/collections/{slug}` for catalog — and nothing made it unique (AGL-957).\n * Two collections of the same kind could both be `blog`, and the resolvers,\n * which take the first match of the right kind, then served whichever one\n * Firestore happened to return. The other became unreachable, with no error\n * anywhere to say so.\n *\n * Uniqueness is per host AND per kind: content and catalog have separate URL\n * namespaces, so `/blog` and `/collections/blog` may coexist.\n */\nexport interface CollectionSlugCandidate {\n $id?: string\n slug?: string\n}\n\n/**\n * The id of the collection already using `slug`, or null when it is free.\n *\n * `exceptId` is the collection being edited — a rename that keeps the same\n * slug must not collide with itself. Comparison is case- and space-\n * insensitive because the slugifiers differ slightly between the two\n * surfaces and \"Blog\" vs \"blog\" resolve to the same URL either way.\n */\nexport function findCollectionSlugOwner(\n slug: string,\n kind: HostCollectionKind,\n existing: readonly CollectionSlugCandidate[] | null | undefined,\n exceptId?: string | null,\n): string | null {\n const wanted = String(slug ?? '').trim().toLowerCase()\n if (!wanted) return null\n for (const candidate of existing ?? []) {\n if (exceptId && candidate.$id === exceptId) continue\n if (hostCollectionKind(candidate) !== kind) continue\n if (String(candidate.slug ?? '').trim().toLowerCase() === wanted) {\n return candidate.$id ?? ''\n }\n }\n return null\n}\n\n/** Convenience predicate over {@link findCollectionSlugOwner}. */\nexport function isCollectionSlugTaken(\n slug: string,\n kind: HostCollectionKind,\n existing: readonly CollectionSlugCandidate[] | null | undefined,\n exceptId?: string | null,\n): boolean {\n return findCollectionSlugOwner(slug, kind, existing, exceptId) !== null\n}\n\n/**\n * An ENTRY's slug is its public address too — `/{collectionSlug}/{entrySlug}`\n * — and it has exactly the defect AGL-957 fixed one level up (AGL-2498).\n *\n * The tenant resolves an entry with `.where('slug', '==', entrySlug)` inside\n * the collection and takes the first match, so two entries sharing a slug\n * means one of them is simply unreachable, with nothing anywhere saying so.\n * Nothing enforced it because nothing could: the slug was DERIVED from the\n * title on every save, so a collision meant two posts with the same title and\n * the console never offered a way to tell them apart.\n *\n * Now that the slug is editable the collision is reachable on purpose, so it\n * has to be answerable. Scope is per COLLECTION — two collections may each\n * have a `/hello`, because the collection segment disambiguates them.\n */\nexport interface EntrySlugCandidate {\n $id?: string\n slug?: string\n}\n\n/**\n * The id of the entry already using `slug` in this collection, or null.\n *\n * `exceptId` is the entry being edited — re-saving a post without touching its\n * slug must not collide with itself. Case- and space-insensitive for the same\n * reason the collection rule is: `Hello` and `hello` resolve to one URL.\n *\n * ⚠️ This decides nothing on its own — it reports what the caller handed it.\n * The console's caller asks Firestore for the slug directly, so its answer\n * covers the whole collection rather than a loaded window; a caller that\n * passes a page instead can only report collisions inside that page, and must\n * say so rather than implying a guarantee this cannot make.\n *\n * It remains fast feedback rather than an enforcement point in either case:\n * two authors saving the same address at once both read no owner.\n */\nexport function findEntrySlugOwner(\n slug: string,\n existing: readonly EntrySlugCandidate[] | null | undefined,\n exceptId?: string | null,\n): string | null {\n const wanted = String(slug ?? '').trim().toLowerCase()\n if (!wanted) return null\n for (const candidate of existing ?? []) {\n if (exceptId && candidate.$id === exceptId) continue\n if (String(candidate.slug ?? '').trim().toLowerCase() === wanted) {\n return candidate.$id ?? ''\n }\n }\n return null\n}\n"],"names":["hostCollectionKind","findCollectionSlugOwner","slug","kind","existing","exceptId","wanted","String","trim","toLowerCase","candidate","$id","isCollectionSlugTaken","findEntrySlugOwner"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED,SAAkCA,kBAAkB,QAAQ,uBAAmB;AAkB/E;;;;;;;CAOC,GACD,OAAO,SAASC,wBACdC,IAAY,EACZC,IAAwB,EACxBC,QAA+D,EAC/DC,QAAwB;IAExB,MAAMC,SAASC,OAAOL,eAAAA,OAAQ,IAAIM,IAAI,GAAGC,WAAW;IACpD,IAAI,CAACH,QAAQ,OAAO;IACpB,KAAK,MAAMI,aAAaN,mBAAAA,WAAY,EAAE,CAAE;YAG3BM;QAFX,IAAIL,YAAYK,UAAUC,GAAG,KAAKN,UAAU;QAC5C,IAAIL,mBAAmBU,eAAeP,MAAM;QAC5C,IAAII,QAAOG,kBAAAA,UAAUR,IAAI,YAAdQ,kBAAkB,IAAIF,IAAI,GAAGC,WAAW,OAAOH,QAAQ;gBACzDI;YAAP,QAAOA,iBAAAA,UAAUC,GAAG,YAAbD,iBAAiB;QAC1B;IACF;IACA,OAAO;AACT;AAEA,gEAAgE,GAChE,OAAO,SAASE,sBACdV,IAAY,EACZC,IAAwB,EACxBC,QAA+D,EAC/DC,QAAwB;IAExB,OAAOJ,wBAAwBC,MAAMC,MAAMC,UAAUC,cAAc;AACrE;AAsBA;;;;;;;;;;;;;;;CAeC,GACD,OAAO,SAASQ,mBACdX,IAAY,EACZE,QAA0D,EAC1DC,QAAwB;IAExB,MAAMC,SAASC,OAAOL,eAAAA,OAAQ,IAAIM,IAAI,GAAGC,WAAW;IACpD,IAAI,CAACH,QAAQ,OAAO;IACpB,KAAK,MAAMI,aAAaN,mBAAAA,WAAY,EAAE,CAAE;YAE3BM;QADX,IAAIL,YAAYK,UAAUC,GAAG,KAAKN,UAAU;QAC5C,IAAIE,QAAOG,kBAAAA,UAAUR,IAAI,YAAdQ,kBAAkB,IAAIF,IAAI,GAAGC,WAAW,OAAOH,QAAQ;gBACzDI;YAAP,QAAOA,iBAAAA,UAAUC,GAAG,YAAbD,iBAAiB;QAC1B;IACF;IACA,OAAO;AACT"}
|
|
@@ -0,0 +1,147 @@
|
|
|
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
|
+
import type { AglynNodeSchema, NodeId } from '../foundation';
|
|
18
|
+
/** Persisted component id of the layout content outlet (plugins-mui). */
|
|
19
|
+
export declare const LAYOUT_SLOT_COMPONENT_ID = "layoutSlot";
|
|
20
|
+
/**
|
|
21
|
+
* Prefix applied to layout node ids during composition so they can never
|
|
22
|
+
* collide with screen node ids (layout ids repeat across every bound
|
|
23
|
+
* screen).
|
|
24
|
+
*/
|
|
25
|
+
export declare const LAYOUT_NODE_ID_PREFIX = "layout__";
|
|
26
|
+
/**
|
|
27
|
+
* How many layouts deep a chain may nest (AGL-703).
|
|
28
|
+
*
|
|
29
|
+
* A layout can render inside another layout, so the chain is walked rather
|
|
30
|
+
* than read once. This bounds it: a cycle is already refused at both write
|
|
31
|
+
* time and resolution time, and this is the belt to that pair of braces —
|
|
32
|
+
* a hand-edited document must not be able to hang a render.
|
|
33
|
+
*/
|
|
34
|
+
export declare const MAX_LAYOUT_CHAIN_DEPTH = 5;
|
|
35
|
+
/**
|
|
36
|
+
* Namespace for one level of the layout chain (AGL-703).
|
|
37
|
+
*
|
|
38
|
+
* Depth 1 — the layout a screen names directly — keeps the original
|
|
39
|
+
* `layout__` exactly. Every interaction authored before nesting existed
|
|
40
|
+
* stores raw canvas ids that {@link normalizeLeafId} matches against this
|
|
41
|
+
* prefix, so changing it would silently break them. Outer levels take
|
|
42
|
+
* `layout2__`, `layout3__`, … which is what keeps a grandparent layout's
|
|
43
|
+
* node ids from colliding with its child's: without a per-level namespace,
|
|
44
|
+
* two layouts in one chain sharing a node id would collapse into one node.
|
|
45
|
+
*/
|
|
46
|
+
export declare function layoutNodeIdPrefix(depth?: number): string;
|
|
47
|
+
/** Every namespace a composed tree can carry, outermost depth first. */
|
|
48
|
+
export declare const LAYOUT_NODE_ID_PREFIXES: string[];
|
|
49
|
+
/**
|
|
50
|
+
* Whether a composed node id came from the LAYOUT chain rather than from the
|
|
51
|
+
* screen (AGL-1871).
|
|
52
|
+
*
|
|
53
|
+
* Composition namespaces ids by origin and nothing else does: a layout node
|
|
54
|
+
* is `layout__{id}` (`layout2__` … `layout5__` further up the chain, see
|
|
55
|
+
* {@link layoutNodeIdPrefix}) while a screen node keeps its raw canvas id. A
|
|
56
|
+
* reusable component grafted onto either one wears its host's id inside its
|
|
57
|
+
* own namespace — the marketing nav really ships as
|
|
58
|
+
* `cmp__layout__52Ef-3t6yd___R91yATrXH` — so the graft prefixes are peeled
|
|
59
|
+
* before the origin is read, and a graft nested in a graft peels the same way.
|
|
60
|
+
*
|
|
61
|
+
* A raw canvas id cannot collide with this: nanoid emits a single token with
|
|
62
|
+
* no `__` boundary in it, so `layout__` can only be a prefix that composition
|
|
63
|
+
* put there.
|
|
64
|
+
*/
|
|
65
|
+
export declare function isLayoutComposedNodeId(id: string | undefined | null): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Whether a composed tree contains anything the SCREEN put there (AGL-1871).
|
|
68
|
+
*
|
|
69
|
+
* `composeLayoutAndScreenNodes` always answers with a populated map when the
|
|
70
|
+
* host has a layout, because the layout chrome is in it whether or not the
|
|
71
|
+
* screen contributed a single node. So "compose returned nodes" is not the
|
|
72
|
+
* same question as "this screen has a page on it", and code that treats the
|
|
73
|
+
* two as one renders a header and a footer around nothing.
|
|
74
|
+
*
|
|
75
|
+
* That is not hypothetical. Measured on `aglyn.com` 2026-08-23, the published
|
|
76
|
+
* *"Not found (404)"* screen composed to **297 nodes, every one of them layout
|
|
77
|
+
* chrome**, with the `layoutSlot` holding an empty child list — the screen was
|
|
78
|
+
* routed, published and completely empty. The 404 boundary read the 297 as
|
|
79
|
+
* "the site has a designed 404", declined its own fallback, and every unmatched
|
|
80
|
+
* URL on the site served branding wrapped around a blank page.
|
|
81
|
+
*
|
|
82
|
+
* The root node is not evidence — composition synthesizes one for an empty
|
|
83
|
+
* screen — so it is excluded.
|
|
84
|
+
*/
|
|
85
|
+
export declare function hasScreenAuthoredNodes(nodes: Record<string, unknown> | null | undefined): boolean;
|
|
86
|
+
type NormalizedNodes<N extends AglynNodeSchema> = Record<NodeId, N>;
|
|
87
|
+
/**
|
|
88
|
+
* Grafts a screen's nodes into its layout's LayoutSlot, producing one
|
|
89
|
+
* normalized node map rooted at the layout root.
|
|
90
|
+
*
|
|
91
|
+
* - Layout node ids are namespaced with {@link LAYOUT_NODE_ID_PREFIX} (the
|
|
92
|
+
* root id excepted) to avoid collisions with screen ids.
|
|
93
|
+
* - The screen root's children are appended to the slot's own children and
|
|
94
|
+
* repointed at the slot. Slot children shouldn't normally exist, but
|
|
95
|
+
* designers do land chrome inside the slot — rendering it above the
|
|
96
|
+
* screen content preserves their intent instead of silently dropping it.
|
|
97
|
+
* - Inputs are never mutated. Without layout nodes — or when the layout has
|
|
98
|
+
* no slot — the screen nodes are returned unchanged so a stale or broken
|
|
99
|
+
* layout can't take a published screen down.
|
|
100
|
+
*/
|
|
101
|
+
export declare function composeLayoutAndScreenNodes<N extends AglynNodeSchema = AglynNodeSchema>(layoutNodes: NormalizedNodes<N> | undefined, screenNodes: NormalizedNodes<N>,
|
|
102
|
+
/** Position in the layout chain; 1 = the layout the screen names. */
|
|
103
|
+
depth?: number): NormalizedNodes<N>;
|
|
104
|
+
/**
|
|
105
|
+
* Grafts a screen through a CHAIN of layouts, innermost first (AGL-703).
|
|
106
|
+
*
|
|
107
|
+
* `layoutNodesChain[0]` is the layout the screen names, `[1]` is that
|
|
108
|
+
* layout's own layout, and so on outward. Each step drops the previous
|
|
109
|
+
* result into the next layout's slot, so the outermost layout ends up as
|
|
110
|
+
* the root — the same relationship a screen has always had with its layout,
|
|
111
|
+
* applied one more time.
|
|
112
|
+
*
|
|
113
|
+
* A layout with no slot is skipped rather than fatal, and skipping it does
|
|
114
|
+
* not strand the layouts outside it: the accumulated tree simply passes
|
|
115
|
+
* through. That matches the single-layout behaviour, where a broken layout
|
|
116
|
+
* degrades to the bare screen instead of taking a published page down.
|
|
117
|
+
*
|
|
118
|
+
* Cycles are refused before this point (see `resolveLayoutChainIds`), and
|
|
119
|
+
* the chain is capped at {@link MAX_LAYOUT_CHAIN_DEPTH} regardless.
|
|
120
|
+
*/
|
|
121
|
+
export declare function composeLayoutChainAndScreenNodes<N extends AglynNodeSchema = AglynNodeSchema>(layoutNodesChain: Array<NormalizedNodes<N> | undefined>, screenNodes: NormalizedNodes<N>): NormalizedNodes<N>;
|
|
122
|
+
/**
|
|
123
|
+
* Walks a layout's ancestry into a flat chain, innermost first (AGL-703).
|
|
124
|
+
*
|
|
125
|
+
* `parentOf` returns the layout a given layout renders inside, or undefined
|
|
126
|
+
* at the top. The walk stops on:
|
|
127
|
+
*
|
|
128
|
+
* - **self-reference** — a layout naming itself, which is the case worth
|
|
129
|
+
* naming out loud because it is the easy mistake to make;
|
|
130
|
+
* - **any repeat** — A → B → A would otherwise recurse forever, and a
|
|
131
|
+
* guard that only catches self-reference would miss it;
|
|
132
|
+
* - **depth** — {@link MAX_LAYOUT_CHAIN_DEPTH}.
|
|
133
|
+
*
|
|
134
|
+
* Stopping (rather than throwing) is deliberate: a cycle in stored data
|
|
135
|
+
* should render the layouts up to the repeat, not blank the site.
|
|
136
|
+
*/
|
|
137
|
+
export declare function resolveLayoutChainIds(layoutId: string | undefined | null, parentOf: (layoutId: string) => string | undefined | null): string[];
|
|
138
|
+
/**
|
|
139
|
+
* Whether `candidateParentId` may be set as `layoutId`'s parent layout.
|
|
140
|
+
*
|
|
141
|
+
* Refuses self-reference and any candidate that already has this layout
|
|
142
|
+
* somewhere above it — picking one would close a loop. This is the
|
|
143
|
+
* write-time half; `resolveLayoutChainIds` stays defensive anyway, because
|
|
144
|
+
* a document can be edited by something that never called this.
|
|
145
|
+
*/
|
|
146
|
+
export declare function canNestLayout(layoutId: string, candidateParentId: string, parentOf: (layoutId: string) => string | undefined | null): boolean;
|
|
147
|
+
export default composeLayoutAndScreenNodes;
|